From c2027569624dfa4e88ccd42ace0a81ba058a36f6 Mon Sep 17 00:00:00 2001 From: chenhao <852066789@qq.com> Date: Thu, 19 Dec 2024 16:24:57 +0800 Subject: [PATCH] =?UTF-8?q?feat(activiti):=20=E6=B7=BB=E5=8A=A0=E5=9B=9B?= =?UTF-8?q?=E7=AE=97=E5=8D=8F=E5=90=8C=E8=A7=A3=E5=86=B3=E6=96=B9=E6=A1=88?= =?UTF-8?q?=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 ActConstant 中添加 KEY_RESOLVE_PLAN_SYNERGY 常量 - 在 ProjectBudget 模型中添加 resolvePlanSynergy 字段 - 修改 ProjectBudgetService 中的批量保存逻辑 - 在 ProjectInstanceService 中添加 resolvePlanSynergy 变量到流程启动参数 --- .../work/config/activiti/ActConstant.java | 1 + .../cn/palmte/work/model/ProjectBudget.java | 10 ++++++++ .../work/service/ProjectBudgetService.java | 24 +++++++++---------- .../work/service/ProjectInstanceService.java | 8 ++++++- 4 files changed, 30 insertions(+), 13 deletions(-) diff --git a/src/main/java/cn/palmte/work/config/activiti/ActConstant.java b/src/main/java/cn/palmte/work/config/activiti/ActConstant.java index 9ac8c44..28a1abd 100644 --- a/src/main/java/cn/palmte/work/config/activiti/ActConstant.java +++ b/src/main/java/cn/palmte/work/config/activiti/ActConstant.java @@ -28,6 +28,7 @@ public class ActConstant { public static final String PROCESS_TASKS_FINAL = "填报决算#工程管理部#产品系统集成部#财务人员#财务总监#总经理#执行董事"; public static final String KEY_PROJECT_TYPE = "projectType"; + public static final String KEY_RESOLVE_PLAN_SYNERGY = "resolvePlanSynergy"; } diff --git a/src/main/java/cn/palmte/work/model/ProjectBudget.java b/src/main/java/cn/palmte/work/model/ProjectBudget.java index 69a7e46..b6a4305 100644 --- a/src/main/java/cn/palmte/work/model/ProjectBudget.java +++ b/src/main/java/cn/palmte/work/model/ProjectBudget.java @@ -216,6 +216,16 @@ public class ProjectBudget { @Column(name = "calculation_collection_budget") private String calculationCollectionBudget; + public Boolean getResolvePlanSynergy() { + return resolvePlanSynergy; + } + + public void setResolvePlanSynergy(Boolean resolvePlanSynergy) { + this.resolvePlanSynergy = resolvePlanSynergy; + } + + @Column(name = "resolve_plan_synergy") + private Boolean resolvePlanSynergy; @Transient private String contractRoundBudget; diff --git a/src/main/java/cn/palmte/work/service/ProjectBudgetService.java b/src/main/java/cn/palmte/work/service/ProjectBudgetService.java index 3a928e6..609b5ad 100644 --- a/src/main/java/cn/palmte/work/service/ProjectBudgetService.java +++ b/src/main/java/cn/palmte/work/service/ProjectBudgetService.java @@ -1209,13 +1209,13 @@ public class ProjectBudgetService { } } projectBudgetIncomeDetailTempRepository.save(incomeDetailTempList); - for (ProjectBudgetIncomeDetailTemp projectBudgetIncomeDetailTemp : incomeDetailTempList) { - ProjectBudgetIncomeDetail projectBudgetIncomeDetail = projectBudgetIncomeDetailTemp.toProjectBudgetIncomeDetail(); - incomeDetailList.add(projectBudgetIncomeDetail); - } - projectBudgetIncomeDetailRepository.save(incomeDetailList); +// for (ProjectBudgetIncomeDetailTemp projectBudgetIncomeDetailTemp : incomeDetailTempList) { +// ProjectBudgetIncomeDetail projectBudgetIncomeDetail = projectBudgetIncomeDetailTemp.toProjectBudgetIncomeDetail(); +// incomeDetailList.add(projectBudgetIncomeDetail); +// } +// projectBudgetIncomeDetailRepository.save(incomeDetailList); final ResponseMsg msg = ResponseMsg.buildSuccessMsg(String.format("成功:%d, 失败:%d", successCount, errorCount)); - msg.setData(errorList); + msg.setData(new HashMap(){{put("errorList",errorList);put("successList",incomeDetailTempList);}}); return msg; } @@ -1276,13 +1276,13 @@ public class ProjectBudgetService { } } projectBudgetCostDetailTempRepository.save(costDetailTempList); - for (ProjectBudgetCostDetailTemp projectBudgetCostDetailTemp : costDetailTempList) { - ProjectBudgetCostDetail projectBudgetCostDetail = projectBudgetCostDetailTemp.toProjectBudgetCostDetail(); - CostDetailList.add(projectBudgetCostDetail); - } - projectBudgetCostDetailRepository.save(CostDetailList); +// for (ProjectBudgetCostDetailTemp projectBudgetCostDetailTemp : costDetailTempList) { +// ProjectBudgetCostDetail projectBudgetCostDetail = projectBudgetCostDetailTemp.toProjectBudgetCostDetail(); +// CostDetailList.add(projectBudgetCostDetail); +// } +// projectBudgetCostDetailRepository.save(CostDetailList); final ResponseMsg msg = ResponseMsg.buildSuccessMsg(String.format("成功:%d, 失败:%d", successCount, errorCount)); - msg.setData(errorList); + msg.setData(new HashMap(){{put("errorList",errorList);put("successList",costDetailTempList);}}); return msg; } diff --git a/src/main/java/cn/palmte/work/service/ProjectInstanceService.java b/src/main/java/cn/palmte/work/service/ProjectInstanceService.java index 084c30d..b848729 100644 --- a/src/main/java/cn/palmte/work/service/ProjectInstanceService.java +++ b/src/main/java/cn/palmte/work/service/ProjectInstanceService.java @@ -31,6 +31,8 @@ public class ProjectInstanceService { private ProjectInstanceRelationRepository projectInstanceRelationRepository; @Autowired private ActTaskDefService actTaskDefService; + @Autowired + private ProjectBudgetRepository projectBudgetRepository; /** @@ -94,7 +96,7 @@ public class ProjectInstanceService { /** * 发起四算项目流程 - * + *solution_synergy * @param project * @param keyEnum * @throws Exception @@ -102,6 +104,8 @@ public class ProjectInstanceService { public void startFourcalProcess(Project project, ActProcessKeyEnum keyEnum) throws Exception { HashMap variables = new HashMap<>(); variables.put(ActConstant.KEY_PROJECT_TYPE, project.getType()); + ProjectBudget firstByProjectId = projectBudgetRepository.findFirstByProjectId(project.getId()); + variables.put(ActConstant.KEY_RESOLVE_PLAN_SYNERGY, firstByProjectId.getResolvePlanSynergy()); String businessKey = String.valueOf(project.getId()); logger.info("startProcess processDefkey:{}, businessKey:{}", keyEnum.getKey(), businessKey); String processInstanceId = actProcInsService.startProcessInstance(keyEnum.getKey(), businessKey, variables); @@ -113,6 +117,8 @@ public class ProjectInstanceService { public String startProcessBySystem(Project project, ActProcessKeyEnum keyEnum, ProjectTaskRecord taskRecord) throws Exception { HashMap variables = new HashMap<>(); variables.put(ActConstant.KEY_PROJECT_TYPE, project.getType()); + ProjectBudget firstByProjectId = projectBudgetRepository.findFirstByProjectId(project.getId()); + variables.put(ActConstant.KEY_RESOLVE_PLAN_SYNERGY, firstByProjectId.getResolvePlanSynergy()); String businessKey = String.valueOf(project.getId()); logger.info("startProcessBySystem processDefkey:{}, businessKey:{}", keyEnum.getKey(), businessKey);