From d02ce1738d7e8787ceb17de57bf003bdf51108fd Mon Sep 17 00:00:00 2001 From: chenhao <852066789@qq.com> Date: Wed, 20 Aug 2025 16:15:14 +0800 Subject: [PATCH] =?UTF-8?q?feat(project):=20=E6=8F=90=E4=BA=A4=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8=E6=97=B6=E6=B7=BB=E5=8A=A0=E5=A4=87=E6=B3=A8=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在项目预算编辑页面添加备注输入框 - 提交审核时将备注信息传递给后端 - 后端接收并处理备注信息,将其添加到审批流程中 - 修改相关服务方法以支持备注功能 --- .../cn/palmte/work/model/ProjectBudget.java | 10 ++++++ .../work/service/ActProcInsService.java | 4 +++ .../work/service/ProjectBudgetService.java | 9 ++++-- .../work/service/ProjectInstanceService.java | 7 ++++ .../palmte/work/service/ProjectService.java | 2 +- .../static/assets/js/project_budget.js | 19 +++++++++++ .../templates/admin/project_budget_edit.ftl | 32 ++++++++++++++++--- 7 files changed, 75 insertions(+), 8 deletions(-) diff --git a/src/main/java/cn/palmte/work/model/ProjectBudget.java b/src/main/java/cn/palmte/work/model/ProjectBudget.java index b6a4305..1cef3b3 100644 --- a/src/main/java/cn/palmte/work/model/ProjectBudget.java +++ b/src/main/java/cn/palmte/work/model/ProjectBudget.java @@ -258,6 +258,16 @@ public class ProjectBudget { @Transient private String advancePeakAmountRoundBudget; + @Transient + private String approveRemark; + + public String getApproveRemark() { + return approveRemark; + } + + public void setApproveRemark(String approveRemark) { + this.approveRemark = approveRemark; + } public String getCostDetailAttrName() { return costDetailAttrName; diff --git a/src/main/java/cn/palmte/work/service/ActProcInsService.java b/src/main/java/cn/palmte/work/service/ActProcInsService.java index d9d8c92..27c26c4 100644 --- a/src/main/java/cn/palmte/work/service/ActProcInsService.java +++ b/src/main/java/cn/palmte/work/service/ActProcInsService.java @@ -101,6 +101,10 @@ public class ActProcInsService { String taskId = task.getId(); String comment = "提交" + processDefinition.getName(); + Object message = variables.get("message"); + if (message != null && StringUtils.isNotEmpty(message.toString())) { + comment = comment+"-"+message; + } Authentication.setAuthenticatedUserId(adminId); taskService.addComment(taskId, procInsId, comment); diff --git a/src/main/java/cn/palmte/work/service/ProjectBudgetService.java b/src/main/java/cn/palmte/work/service/ProjectBudgetService.java index bb852fa..b7fa8dc 100644 --- a/src/main/java/cn/palmte/work/service/ProjectBudgetService.java +++ b/src/main/java/cn/palmte/work/service/ProjectBudgetService.java @@ -1053,11 +1053,14 @@ public class ProjectBudgetService { saveProjectExtend(projectInDb); - budgetApprove(approveStatusBudget, projectInDb, admin); + Map paramMap = new HashMap() {{ + put("message", projectBudget.getApproveRemark()); + }}; + budgetApprove(approveStatusBudget, projectInDb, admin,paramMap); } - public void budgetApprove(Integer approveStatusBudget, Project projectInDb, Admin admin) throws Exception { - projectInstanceService.startFourcalProcess(projectInDb, ActProcessKeyEnum.BUDGET); + public void budgetApprove(Integer approveStatusBudget, Project projectInDb, Admin admin,Map paramMap) throws Exception { + projectInstanceService.startFourcalProcess(projectInDb, ActProcessKeyEnum.BUDGET,paramMap); // int type = projectInDb.getType(); // List userIds = new ArrayList<>(); // if (type == 1) { diff --git a/src/main/java/cn/palmte/work/service/ProjectInstanceService.java b/src/main/java/cn/palmte/work/service/ProjectInstanceService.java index dac4f71..f2c003f 100644 --- a/src/main/java/cn/palmte/work/service/ProjectInstanceService.java +++ b/src/main/java/cn/palmte/work/service/ProjectInstanceService.java @@ -102,7 +102,14 @@ public class ProjectInstanceService { * @throws Exception */ public void startFourcalProcess(Project project, ActProcessKeyEnum keyEnum) throws Exception { + startFourcalProcess(project, keyEnum, null); + } + + public void startFourcalProcess(Project project, ActProcessKeyEnum keyEnum, Map paramMap) throws Exception { HashMap variables = new HashMap<>(); + if (paramMap != null) { + variables.putAll(paramMap); + } variables.put(ActConstant.KEY_PROJECT_TYPE, project.getType()); ProjectBudget firstByProjectId = projectBudgetRepository.findFirstByProjectId(project.getId()); variables.put(ActConstant.KEY_RESOLVE_PLAN_SYNERGY, firstByProjectId.getResolvePlanSynergy()); diff --git a/src/main/java/cn/palmte/work/service/ProjectService.java b/src/main/java/cn/palmte/work/service/ProjectService.java index 7b11c96..d826b4a 100644 --- a/src/main/java/cn/palmte/work/service/ProjectService.java +++ b/src/main/java/cn/palmte/work/service/ProjectService.java @@ -830,7 +830,7 @@ public class ProjectService { } else if (project.getApproveStatusBudget() == ApproveStatusEnum.APPROVAL_UNCOMMIT.getApproveStatus()) { Integer approveStatusBudget = project.getApproveStatusBudget(); - projectBudgetService.budgetApprove(approveStatusBudget, project, admin); + projectBudgetService.budgetApprove(approveStatusBudget, project, admin,null); project.setApproveStatusBudget(ApproveStatusEnum.APPROVAL_PENDING.getApproveStatus()); } else if (project.getApproveStatusSettle() == ApproveStatusEnum.APPROVAL_UNCOMMIT.getApproveStatus()) { projectInstanceService.startFourcalProcess(project, ActProcessKeyEnum.SETTLE); diff --git a/src/main/resources/static/assets/js/project_budget.js b/src/main/resources/static/assets/js/project_budget.js index a1a37b3..b53bafc 100644 --- a/src/main/resources/static/assets/js/project_budget.js +++ b/src/main/resources/static/assets/js/project_budget.js @@ -249,6 +249,25 @@ $(function () { $("#pmsForm").submit(); + }); + $("#saveApprovePre").click(async function () { + const _that=this + $('#my-message-modal').modal({ + relatedTarget: this, + closeOnConfirm: false, + onConfirm: function (e) { + let val = $('#approve-remark').val().trim(); + if (!val && val.length<=0){ + parent.layer.msg("备注必填"); + return + } + $('#my-message-modal').modal('close') + $("#saveApprove").click() + }, + onCancel: function (e) { + $('#my-message-modal').modal('close') + } + }); }); $("#saveApprove").click(async function () { $("#saveApprove").attr('disabled', true); diff --git a/src/main/resources/templates/admin/project_budget_edit.ftl b/src/main/resources/templates/admin/project_budget_edit.ftl index 1569ff2..71229e1 100644 --- a/src/main/resources/templates/admin/project_budget_edit.ftl +++ b/src/main/resources/templates/admin/project_budget_edit.ftl @@ -522,10 +522,11 @@ @@ -2302,14 +2303,37 @@ +
+
+ + +
+
- + + <#--
--> <#--
--> <#--
--> @@ -2321,7 +2345,7 @@ - +