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);