From 67dcab5a0f3c8adcaaa291cc4e6325cb99b89490 Mon Sep 17 00:00:00 2001 From: shl <1378304611@qq.com> Date: Mon, 19 Aug 2024 15:55:38 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=20=E4=BC=98=E5=8C=96=E9=A2=84=E7=AE=97?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pms/service/budget/BudgetServiceImpl.java | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/budget/BudgetServiceImpl.java b/yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/budget/BudgetServiceImpl.java index 627142bd2..51b67f121 100644 --- a/yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/budget/BudgetServiceImpl.java +++ b/yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/budget/BudgetServiceImpl.java @@ -1,11 +1,15 @@ package cn.iocoder.yudao.module.pms.service.budget; import cn.hutool.core.bean.BeanUtil; +import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; +import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; import cn.iocoder.yudao.module.cms.api.contract.ContractApi; import cn.iocoder.yudao.module.cms.api.contract.dto.ContractDTO; import cn.iocoder.yudao.module.cms.api.outscontract.OutsContractApi; import cn.iocoder.yudao.module.pms.dal.dataobject.budget.BudgetDetailDO; +import cn.iocoder.yudao.module.pms.dal.dataobject.budgethistory.BudgetHistoryDO; import cn.iocoder.yudao.module.pms.dal.dataobject.projecttracking.ProjectTrackingDO; +import cn.iocoder.yudao.module.pms.dal.mysql.budgethistory.BudgetHistoryMapper; import cn.iocoder.yudao.module.pms.service.projecttracking.ProjectTrackingService; import cn.iocoder.yudao.module.system.api.user.AdminUserApi; import org.springframework.stereotype.Service; @@ -36,6 +40,17 @@ import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.USER_NOT_E @Validated public class BudgetServiceImpl implements BudgetService { + /** + * 预算管理流程定义 + */ + public static final String PROCESS_KEY = "budget_init"; + + /** + * 版本 + */ + public static String VERSION = "1"; + + @Resource private BudgetMapper budgetMapper; @@ -51,6 +66,13 @@ public class BudgetServiceImpl implements BudgetService { @Resource private ProjectTrackingService projectTrackingService; + @Resource + private BpmProcessInstanceApi processInstanceApi; + + @Resource + private BudgetHistoryMapper budgetHistoryMapper; + + @Override public Long createBudget(Long loginUserId, BudgetSaveReqVO createReqVO) { @@ -76,6 +98,30 @@ public class BudgetServiceImpl implements BudgetService { budget.setCreator(userName); budget.setUpdater(userName); budgetMapper.insert(budget); + + Long budgetId = budget.getId(); + BudgetHistoryDO budgetHistory = BeanUtils.toBean(budget, BudgetHistoryDO.class); + // 启动流程,写入历史预算 todo + if (createReqVO.getId() == null) { + String processInstanceId = processInstanceApi.createProcessInstance(loginUserId, + new BpmProcessInstanceCreateReqDTO().setProcessDefinitionKey(PROCESS_KEY) + .setBusinessKey(String.valueOf(budgetId))); + + // 写入工作流编号 + // budgetHistory.setProcessInstanceId(processInstanceId); + // budgetHistory.setBudgetId(budgetId); + budgetHistoryMapper.updateById(budgetHistory.setBudgetId(budgetId).setProcessInstanceId(processInstanceId)); + + Long count = budgetHistoryMapper.selectCount("project_id", projectId); + if (count < 1) { + budgetHistory.setVersion(VERSION); + } else { + budgetHistory.setVersion(String.valueOf(count + 1)); + } + budgetHistory.setProcessStatus("0"); + budgetHistoryMapper.insert(budgetHistory); + } + // 返回 return budget.getId(); }