diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java index 2dfb4f8..8d8091a 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java @@ -917,16 +917,17 @@ public class ContractServiceImpl implements ContractService { if (DictEnum.BSE_CTRT_STS_PUSH_ERROR.getCode().equals(oldContractMainDO.getStatus())) { // “推送失败”的状态编辑后状态变为“待推送” newContractMainDO.setStatus(DictEnum.BSE_CTRT_STS_WAIT_PUSH.getCode()); - } else if (DictEnum.BSE_CTRT_STS_REJECTED.getCode().equals(oldContractMainDO.getStatus()) - || DictEnum.BSE_CTRT_STS_IN_PROGRESS.getCode().equals(oldContractMainDO.getStatus())) { - // 其它状态编辑后都为“待审核” - newContractMainDO.setStatus(DictEnum.BSE_CTRT_STS_WAIT_AUDIT.getCode()); } // 更新合同主信息 - int updateNum = contractMainMapper.updateById(newContractMainDO); + contractMainMapper.updateById(newContractMainDO); - return updateNum > 0; + if (DictEnum.BSE_CTRT_STS_IN_PROGRESS.getCode().equals(newContractMainDO.getStatus())) { + // 执行中合同重新提交erp + submitErp(newContractMainDO.getId()); + } + + return true; } @Override @@ -1025,7 +1026,7 @@ public class ContractServiceImpl implements ContractService { // 合同状态校验 if (!(DictEnum.BSE_CTRT_STS_DRAFT.getCode().equals(contractMainDO.getStatus()) - || DictEnum.BSE_CTRT_STS_WAIT_AUDIT.getCode().equals(contractMainDO.getStatus()))) { + || DictEnum.BSE_CTRT_STS_REJECTED.getCode().equals(contractMainDO.getStatus()))) { throw exception(CONTRACT_STATUS_NOT_SUBMIT_APPROVAL, DictEnum.getByCodeAndType(contractMainDO.getStatus(), DictTypeConstants.BSE_CTRT_STS).getLabel()); @@ -1128,6 +1129,33 @@ public class ContractServiceImpl implements ContractService { badrDto.setTaskId(undoTask.getId()); // 当前审核任务节点id BpmApprovalDetailRespDTO approvalDetail = bpmProcessInstanceApi.getApprovalDetail(SecurityFrameworkUtils.getLoginUserId(), badrDto).getData(); + // 需要调用bpm 审核接口更新审批中的状态 + if (DictEnum.BSE_CTRT_STS_WAIT_PUSH.getCode().equals(reqVO.getStatus()) && ObjectUtils.isNotEmpty(undoTask)) { + if (approvalDetail.getStatus().equals(BpmProcessInstanceStatusEnum.RUNNING.getStatus())) { + BpmTaskApproveReqDTO btarDto = new BpmTaskApproveReqDTO(); + btarDto.setId(undoTask.getId()); + btarDto.setReason(reqVO.getReviewOpinion()); + bpmProcessInstanceApi.approveTask(btarDto); + } + } else if (DictEnum.BSE_CTRT_STS_REJECTED.getCode().equals(reqVO.getStatus()) && ObjectUtils.isNotEmpty(undoTask)) { + if (approvalDetail.getStatus().equals(BpmProcessInstanceStatusEnum.RUNNING.getStatus())) { + BpmTaskRejectReqDTO btrrDto = new BpmTaskRejectReqDTO(); + btrrDto.setId(undoTask.getId()); + btrrDto.setReason(reqVO.getReviewOpinion()); + bpmProcessInstanceApi.rejectTask(btrrDto); + } + } + + // 获取当前流程正在审批的任务节点 + taskList = bpmTaskApi.getTaskListByProcessInstanceId(contractMainDO.getProcessInstanceId()).getData(); + undoTask = taskList.get(taskList.size() - 1); + + // 判断是否流程已经通过、驳回 + badrDto = new BpmApprovalDetailReqDTO(); + badrDto.setProcessInstanceId(contractMainDO.getProcessInstanceId()); // 流程实例id + badrDto.setTaskId(undoTask.getId()); // 当前审核任务节点id + approvalDetail = bpmProcessInstanceApi.getApprovalDetail(SecurityFrameworkUtils.getLoginUserId(), badrDto).getData(); + // 更新合同状态,状态需要根据流程的状态进行判断 contractMainDO.setReviewOpinion(reqVO.getReviewOpinion()); if (approvalDetail.getStatus().equals(BpmProcessInstanceStatusEnum.NOT_START.getStatus())) { @@ -1147,23 +1175,6 @@ public class ContractServiceImpl implements ContractService { } contractMainMapper.updateById(contractMainDO); - // 需要调用bpm 审核接口更新审批中的状态 - if (DictEnum.BSE_CTRT_STS_WAIT_PUSH.getCode().equals(reqVO.getStatus()) && ObjectUtils.isNotEmpty(undoTask)) { - if (approvalDetail.getStatus().equals(BpmProcessInstanceStatusEnum.RUNNING.getStatus())) { - BpmTaskApproveReqDTO btarDto = new BpmTaskApproveReqDTO(); - btarDto.setId(undoTask.getId()); - btarDto.setReason(reqVO.getReviewOpinion()); - bpmProcessInstanceApi.approveTask(btarDto); - } - } else if (DictEnum.BSE_CTRT_STS_REJECTED.getCode().equals(reqVO.getStatus()) && ObjectUtils.isNotEmpty(undoTask)) { - if (approvalDetail.getStatus().equals(BpmProcessInstanceStatusEnum.RUNNING.getStatus())) { - BpmTaskRejectReqDTO btrrDto = new BpmTaskRejectReqDTO(); - btrrDto.setId(undoTask.getId()); - btrrDto.setReason(reqVO.getReviewOpinion()); - bpmProcessInstanceApi.rejectTask(btrrDto); - } - } - return true; }