From d3513e0cfbf1f0b5d748ca225831d6b3b25c2f36 Mon Sep 17 00:00:00 2001 From: wyw <13885678+wyw0828@user.noreply.gitee.com> Date: Wed, 7 Aug 2024 10:41:06 +0800 Subject: [PATCH] =?UTF-8?q?[feat]=20=E6=96=B0=E5=A2=9E=E5=A4=96=E5=8C=85?= =?UTF-8?q?=E5=90=88=E5=90=8C=EF=BC=8C=E5=A4=96=E9=83=A8=E5=90=88=E5=90=8C?= =?UTF-8?q?=E7=9A=84=E6=B5=81=E7=A8=8B=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yudao-module-cms/yudao-module-cms-biz/pom.xml | 1 + .../admin/contract/ContractController.java | 2 -- .../extContract/ExtContractController.java | 10 ++++++ .../outscontract/OutsContractController.java | 9 +++++ .../cms/service/contract/ContractService.java | 2 ++ .../extContract/ExtContractService.java | 10 ++++++ .../extContract/ExtContractServiceImpl.java | 33 +++++++++++++++++++ .../outscontract/OutsContractService.java | 8 +++++ .../outscontract/OutsContractServiceImpl.java | 33 +++++++++++++++++++ 9 files changed, 106 insertions(+), 2 deletions(-) diff --git a/yudao-module-cms/yudao-module-cms-biz/pom.xml b/yudao-module-cms/yudao-module-cms-biz/pom.xml index ca875d5e7..d3dabc24c 100644 --- a/yudao-module-cms/yudao-module-cms-biz/pom.xml +++ b/yudao-module-cms/yudao-module-cms-biz/pom.xml @@ -35,6 +35,7 @@ ${revision} + cn.iocoder.boot diff --git a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/controller/admin/contract/ContractController.java b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/controller/admin/contract/ContractController.java index 94f0bda3e..b7cb40e97 100644 --- a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/controller/admin/contract/ContractController.java +++ b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/controller/admin/contract/ContractController.java @@ -106,6 +106,4 @@ public class ContractController { } - - } \ No newline at end of file diff --git a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/controller/admin/extContract/ExtContractController.java b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/controller/admin/extContract/ExtContractController.java index 138657e67..44fa63dc9 100644 --- a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/controller/admin/extContract/ExtContractController.java +++ b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/controller/admin/extContract/ExtContractController.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.cms.controller.admin.extContract; +import cn.iocoder.yudao.module.cms.controller.admin.contract.vo.ContractProcessInstanceRespVO; import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractPageReqVO; import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractRespVO; import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractSaveReqVO; @@ -93,4 +94,13 @@ public class ExtContractController { BeanUtils.toBean(list, ExtContractRespVO.class)); } + @GetMapping("/get_process") + @Operation(summary = "查询流程") + @Parameter(name = "id", description = "外部合同id", required = true) + @PreAuthorize("@ss.hasPermission('cms:contract:process')") + public CommonResult getContractProcess(@RequestParam("id") Long id) { + ContractProcessInstanceRespVO contractProcessInstance = extContractService.getContractProcess(id); + return success(contractProcessInstance); + } + } \ No newline at end of file diff --git a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/controller/admin/outscontract/OutsContractController.java b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/controller/admin/outscontract/OutsContractController.java index 14d07d450..c43dea9ab 100644 --- a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/controller/admin/outscontract/OutsContractController.java +++ b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/controller/admin/outscontract/OutsContractController.java @@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.module.cms.controller.admin.contract.vo.ContractProcessInstanceRespVO; import cn.iocoder.yudao.module.cms.controller.admin.contract.vo.ContractRespVO; import cn.iocoder.yudao.module.cms.controller.admin.outscontract.vo.OutsContractPageReqVO; import cn.iocoder.yudao.module.cms.controller.admin.outscontract.vo.OutsContractRespVO; @@ -91,4 +92,12 @@ public class OutsContractController { ExcelUtils.write(response, "外包合同.xls", "数据", OutsContractRespVO.class, BeanUtils.toBean(list, OutsContractRespVO.class)); } + @GetMapping("/get_process") + @Operation(summary = "查询流程") + @Parameter(name = "id", description = "外包合同id", required = true) + @PreAuthorize("@ss.hasPermission('cms:contract:process')") + public CommonResult getContractProcess(@RequestParam("id") Long id) { + ContractProcessInstanceRespVO contractProcessInstance = outsContractService.getContractProcess(id); + return success(contractProcessInstance); + } } \ No newline at end of file diff --git a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/service/contract/ContractService.java b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/service/contract/ContractService.java index 3a222b8e6..27689ad53 100644 --- a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/service/contract/ContractService.java +++ b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/service/contract/ContractService.java @@ -78,4 +78,6 @@ public interface ContractService { */ ContractProcessInstanceRespVO getContractProcess(Long id); + + } \ No newline at end of file diff --git a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/service/extContract/ExtContractService.java b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/service/extContract/ExtContractService.java index 3c1b29219..0c84a25ad 100644 --- a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/service/extContract/ExtContractService.java +++ b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/service/extContract/ExtContractService.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.cms.service.extContract; +import cn.iocoder.yudao.module.cms.controller.admin.contract.vo.ContractProcessInstanceRespVO; import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractPageReqVO; import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractRespVO; import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractSaveReqVO; @@ -66,4 +67,13 @@ public interface ExtContractService { * @return */ BigDecimal getContractAmount(ExtContractSaveReqVO createReqVO); + + + /** + * 查询流程 + * @param id 合同id + */ + ContractProcessInstanceRespVO getContractProcess(Long id); + + } \ No newline at end of file diff --git a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/service/extContract/ExtContractServiceImpl.java b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/service/extContract/ExtContractServiceImpl.java index 58e5a32b7..9b90de01c 100644 --- a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/service/extContract/ExtContractServiceImpl.java +++ b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/service/extContract/ExtContractServiceImpl.java @@ -2,6 +2,9 @@ package cn.iocoder.yudao.module.cms.service.extContract; import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; +import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceRespDTO; +import cn.iocoder.yudao.module.bpm.api.task.dto.BpmTaskRespDTO; +import cn.iocoder.yudao.module.cms.controller.admin.contract.vo.ContractProcessInstanceRespVO; import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractPageReqVO; import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractRespVO; import cn.iocoder.yudao.module.cms.controller.admin.extContract.vo.ExtContractSaveReqVO; @@ -72,6 +75,7 @@ public class ExtContractServiceImpl implements ExtContractService { + @Override public Long createExtContract(Long loginUserId, ExtContractSaveReqVO createReqVO) { @@ -317,6 +321,35 @@ public class ExtContractServiceImpl implements ExtContractService { return preAmount.add(designFee).add(surveyFees).add(testingFee).add(other); } + @Override + public ContractProcessInstanceRespVO getContractProcess(Long id) { + validateExtContractExists(id); + //去历史里面找 + ExtContractHistoryDO extContractHistoryDO = extContractHistoryMapper.selectOne("ext_contract_id", id); + if (extContractHistoryDO == null) { + throw exception(CONTRACT_NOT_EXISTS); + } + //拿到历史之后 找到process_instance_id 和 status + String processInstanceId = extContractHistoryDO.getProcessInstanceId(); + String processStatus = extContractHistoryDO.getProcessStatus(); + //与当前流程里的进行比较 + String status = String.valueOf(processInstanceApi.getProcessInstance(processInstanceId).getStatus()); + + //如果不相等 + if (!status.equals(processStatus)){ + //更新当前合同对应历史表里面的状态 + extContractHistoryDO.setProcessStatus(status); + extContractHistoryMapper.updateById(extContractHistoryDO); + } + //返回给前端必要的数据 当前流程里面对应的数据 + BpmProcessInstanceRespDTO processInstance = processInstanceApi.getProcessInstance(processInstanceId); + List tasks = processInstanceApi.getTask(processInstanceId); + List taskList = BeanUtils.toBean(tasks, BpmProcessInstanceRespDTO.Task.class); + processInstance.setTasks(taskList); + + return BeanUtils.toBean(processInstance, ContractProcessInstanceRespVO.class); + } + private void validateExtContractExists(Long id) { if (extContractMapper.selectById(id) == null) { diff --git a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/service/outscontract/OutsContractService.java b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/service/outscontract/OutsContractService.java index a7df32d1d..e09226b2e 100644 --- a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/service/outscontract/OutsContractService.java +++ b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/service/outscontract/OutsContractService.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.cms.service.outscontract; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.cms.controller.admin.contract.vo.ContractProcessInstanceRespVO; import cn.iocoder.yudao.module.cms.controller.admin.contract.vo.ContractRespVO; import cn.iocoder.yudao.module.cms.controller.admin.outscontract.vo.OutsContractPageReqVO; import cn.iocoder.yudao.module.cms.controller.admin.outscontract.vo.OutsContractRespVO; @@ -55,4 +56,11 @@ public interface OutsContractService { */ PageResult getOutsContractPage(OutsContractPageReqVO pageReqVO); + /** + * 查询流程 + * @param id 合同id + */ + ContractProcessInstanceRespVO getContractProcess(Long id); + + } \ No newline at end of file diff --git a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/service/outscontract/OutsContractServiceImpl.java b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/service/outscontract/OutsContractServiceImpl.java index 6c5976751..acbf163d5 100644 --- a/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/service/outscontract/OutsContractServiceImpl.java +++ b/yudao-module-cms/yudao-module-cms-biz/src/main/java/cn/iocoder/yudao/module/cms/service/outscontract/OutsContractServiceImpl.java @@ -4,6 +4,9 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; +import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceRespDTO; +import cn.iocoder.yudao.module.bpm.api.task.dto.BpmTaskRespDTO; +import cn.iocoder.yudao.module.cms.controller.admin.contract.vo.ContractProcessInstanceRespVO; import cn.iocoder.yudao.module.cms.controller.admin.contract.vo.ContractRespVO; import cn.iocoder.yudao.module.cms.controller.admin.outscontract.vo.OutsContractPageReqVO; import cn.iocoder.yudao.module.cms.controller.admin.outscontract.vo.OutsContractRespVO; @@ -255,6 +258,36 @@ public class OutsContractServiceImpl implements OutsContractService { return pageResult; } + @Override + public ContractProcessInstanceRespVO getContractProcess(Long id) { + validateOutsContractExists(id); + //去历史里面找 + OutsContractHistoryDO outsContractHistory = outsContractHistoryMapper.selectOne("outs_contract_id", id); + if (outsContractHistory == null) { + throw exception(CONTRACT_NOT_EXISTS); + } + //拿到历史之后 找到process_instance_id 和 status + String processInstanceId = outsContractHistory.getProcessInstanceId(); + String processStatus = outsContractHistory.getProcessStatus(); + //与当前流程里的进行比较 + String status = String.valueOf(processInstanceApi.getProcessInstance(processInstanceId).getStatus()); + + //如果不相等 + if (!status.equals(processStatus)){ + //更新当前合同对应历史表里面的状态 + outsContractHistory.setProcessStatus(status); + outsContractHistoryMapper.updateById(outsContractHistory); + } + //返回给前端必要的数据 当前流程里面对应的数据 + BpmProcessInstanceRespDTO processInstance = processInstanceApi.getProcessInstance(processInstanceId); + List tasks = processInstanceApi.getTask(processInstanceId); + List taskList = BeanUtils.toBean(tasks, BpmProcessInstanceRespDTO.Task.class); + processInstance.setTasks(taskList); + + return BeanUtils.toBean(processInstance, ContractProcessInstanceRespVO.class); + } + + private void validateOutsContractExists(Long id) { if (outsContractMapper.selectById(id) == null) { throw exception(OUTS_CONTRACT_NOT_EXISTS);