diff --git a/src/main/java/cn/palmte/work/controller/backend/ProcessController.java b/src/main/java/cn/palmte/work/controller/backend/ProcessController.java index bac191e..734da7d 100644 --- a/src/main/java/cn/palmte/work/controller/backend/ProcessController.java +++ b/src/main/java/cn/palmte/work/controller/backend/ProcessController.java @@ -1,19 +1,27 @@ package cn.palmte.work.controller.backend; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; +import cn.palmte.work.model.DeptRepository; import cn.palmte.work.model.Project; import cn.palmte.work.model.ProjectRepository; +import cn.palmte.work.model.enums.ProcessStatus; +import cn.palmte.work.model.enums.SealType; /** * @author Harry Yang @@ -22,18 +30,43 @@ import cn.palmte.work.model.ProjectRepository; @Controller @RequestMapping("/process") public class ProcessController { + static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + private final DeptRepository deptRepository; private final ProjectRepository projectRepository; - public ProcessController(ProjectRepository projectRepository) { + public ProcessController(ProjectRepository projectRepository, DeptRepository deptRepository) { this.projectRepository = projectRepository; + this.deptRepository = deptRepository; + } + + static class FormMetadata { + // 部门 + + // 印章类型 + public Map sealTypes; + + // 税率 + public List taxRate; + } + + @ResponseBody + @GetMapping("/form/metadata") + public FormMetadata metadata() { + FormMetadata metadata = new FormMetadata(); + metadata.sealTypes = Arrays.stream(SealType.values()) + .collect(Collectors.toMap(SealType::getDescription, Enum::name)); + metadata.taxRate = Arrays.asList(0, 1, 3, 4, 5, 6, 9, 10, 13); + return metadata; } /** * 新建流程 */ @GetMapping("/new") - public String newProcess() { + public String newProcess(Model model) { + model.addAttribute("sealTypes", SealType.values()); + model.addAttribute("taxRate", Arrays.asList(0, 1, 3, 4, 5, 6, 9, 10, 13)); return "/admin/business/process-new"; } @@ -67,10 +100,95 @@ public class ProcessController { .collect(Collectors.toList()); } + public static class ProjectReturnValue { + public final String applyDate = LocalDate.now().format(formatter); + public String projectNo; + public Integer projectId; + + // 申请人 + public String applyPersonName; + + // 项目类型 + public String projectType; + // 合作类型 + public String cooperationType; + + // 合同金额 + public String contractAmount; + + } + @ResponseBody @GetMapping("/projects/{id}") public Project query(@PathVariable int id) { - return projectRepository.findById(id); + Project byId = projectRepository.findById(id); + + // projectType + // cooperationType + return byId; + } + + // 销售合同流程 + + static class SaleContractForm { + + public Integer projectId; + + // 项目编号 + public String projectNo; + + public LocalDate applyDate; + + // 项目标题 + public String title; + + // 项目类型 + public String projectType; + + // 合作类型 + public String cooperationType; + + // 申请人 + public String applyPersonName; + + public String applyDept; + + // 申请部门领导 + + public String applyDeptLeaderName; + + // 申请人电话 + public String applyPersonPhone; + + // 合同编号 + public String contractNo; + + // 合同名称 + public String contractName; + + // 客户名称 + public String clientName; + + // 用印类型 + public String[] sealType; + + // 税率 + public String taxRate; + + // 是否垫资 + + // 收款条件 + public String paymentTerms; + + public ProcessStatus status; + + } + + @ResponseBody + @PostMapping + public void post(SaleContractForm form) { + System.out.println(form); + } } diff --git a/src/main/java/cn/palmte/work/model/enums/ProcessStatus.java b/src/main/java/cn/palmte/work/model/enums/ProcessStatus.java new file mode 100644 index 0000000..f6b4ca0 --- /dev/null +++ b/src/main/java/cn/palmte/work/model/enums/ProcessStatus.java @@ -0,0 +1,12 @@ +package cn.palmte.work.model.enums; + +/** + * @author Harry Yang + * @since 1.0 2022/12/13 16:12 + */ +public enum ProcessStatus { + + draft, + completed + ; +} diff --git a/src/main/java/cn/palmte/work/model/enums/ProcessTaxRate.java b/src/main/java/cn/palmte/work/model/enums/ProcessTaxRate.java new file mode 100644 index 0000000..7004b84 --- /dev/null +++ b/src/main/java/cn/palmte/work/model/enums/ProcessTaxRate.java @@ -0,0 +1,23 @@ +package cn.palmte.work.model.enums; + +/** + * 业务应用里面的税率 + * + * @author Harry Yang + * @since 1.0 2022/12/13 15:41 + */ +public enum ProcessTaxRate { + + ; + + private final String description; + + ProcessTaxRate(String description) { + this.description = description; + } + + public String getDescription() { + return description; + } + +} diff --git a/src/main/java/cn/palmte/work/model/enums/SealType.java b/src/main/java/cn/palmte/work/model/enums/SealType.java new file mode 100644 index 0000000..817f469 --- /dev/null +++ b/src/main/java/cn/palmte/work/model/enums/SealType.java @@ -0,0 +1,41 @@ +package cn.palmte.work.model.enums; + +/** + * 印章类型 + * + * @author Harry Yang + * @since 1.0 2022/12/13 15:25 + */ +public enum SealType { + + // "公章" + // "法人章" + // "合同专用章" + // "项目章" + // "法人签名章" + // "总经理签名章" + // "财务专用章" + // "电子合同章" + // "其他" + + official("公章"), + legal("法人章"), + contract_special("合同专用章"), + project("项目章"), + legal_person_signature("法人签名章"), + general_manager_signature("总经理签名章"), + financial("财务专用章"), + electronic_contract("电子合同章"), + other("其他"); + + private final String description; + + SealType(String description) { + this.description = description; + } + + public String getDescription() { + return description; + } + +} diff --git a/src/main/resources/templates/admin/business/process-new.ftl b/src/main/resources/templates/admin/business/process-new.ftl index fef3f9d..6eae1b4 100644 --- a/src/main/resources/templates/admin/business/process-new.ftl +++ b/src/main/resources/templates/admin/business/process-new.ftl @@ -21,6 +21,13 @@ display: none !important; } + .el-textarea .el-input__count { + line-height: 15px; + } + + .admin-content-body { + margin-bottom: 100px; + }
@@ -32,7 +39,7 @@
- @@ -55,12 +62,265 @@ 查询
+
+ + <#-- 新增销售合同流程 --> + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ +
+ + + <#list sealTypes as sealType> + ${sealType.description} + + + +
+ +
+ + + + <#list taxRate as rate> + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + 点击上传 +
只能上传PDF、excel、word、图片、压缩包,且不超过50MB
+
+
+
+ +
+ + 详细清单 + +
+ +
+ + <#-- --> + + 返回上一级 + 保存草稿 + 提交 + + + +
+ + <#-- 销售合同清单明细 --> + +
+ + + + + + + + + + + + + + + + + + + + 保存并返回上一级 + + +
+ + <#-- 新增业务采购合同流程 --> + +
+
+
+ +
+ + + + +
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ +
+ +
+ + + + +
+ +
+ + +
+ +
+ + +
+ +
+ +
+ +
+ +
+ +
+ +
+
<#-- 选择 业务采购清单明细 -->
- + @@ -91,236 +351,6 @@
- <#-- 新增销售合同流程 --> - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - - - -
- -
- - - - - - - -
- -
- - - - - - - - - - - - - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -
- - - -
- -
- - - 点击上传 -
只能上传PDF、excel、word、图片、压缩包,且不超过50MB
-
-
-
- -
- - 详细清单 - -
- -
- -
- - <#-- 新增业务采购合同流程 --> - -
-
-
- -
- - - - -
- -
- - -
-
- - -
-
- - -
-
- - -
- -
- -
- -
- - - - -
- -
- - -
- -
- - -
- -
- -
- -
- -
- -
- -
- -
- @@ -333,13 +363,32 @@