修改合同:执行中合同修改后重新提交erp;驳回状态合同修改后不修改合同状态为待审核

合同提交审核:驳回状态合同可提交审核,去除待审核状态
合同审核:bpm执行完成重新查询当前审批节点并更新合同审批信息
This commit is contained in:
guojunyun
2025-10-30 15:10:55 +08:00
parent 24a774767b
commit e76b5f0990

View File

@@ -917,16 +917,17 @@ public class ContractServiceImpl implements ContractService {
if (DictEnum.BSE_CTRT_STS_PUSH_ERROR.getCode().equals(oldContractMainDO.getStatus())) { if (DictEnum.BSE_CTRT_STS_PUSH_ERROR.getCode().equals(oldContractMainDO.getStatus())) {
// “推送失败”的状态编辑后状态变为“待推送” // “推送失败”的状态编辑后状态变为“待推送”
newContractMainDO.setStatus(DictEnum.BSE_CTRT_STS_WAIT_PUSH.getCode()); 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 @Override
@@ -1025,7 +1026,7 @@ public class ContractServiceImpl implements ContractService {
// 合同状态校验 // 合同状态校验
if (!(DictEnum.BSE_CTRT_STS_DRAFT.getCode().equals(contractMainDO.getStatus()) 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, throw exception(CONTRACT_STATUS_NOT_SUBMIT_APPROVAL,
DictEnum.getByCodeAndType(contractMainDO.getStatus(), DictTypeConstants.BSE_CTRT_STS).getLabel()); DictEnum.getByCodeAndType(contractMainDO.getStatus(), DictTypeConstants.BSE_CTRT_STS).getLabel());
@@ -1128,6 +1129,33 @@ public class ContractServiceImpl implements ContractService {
badrDto.setTaskId(undoTask.getId()); // 当前审核任务节点id badrDto.setTaskId(undoTask.getId()); // 当前审核任务节点id
BpmApprovalDetailRespDTO approvalDetail = bpmProcessInstanceApi.getApprovalDetail(SecurityFrameworkUtils.getLoginUserId(), badrDto).getData(); 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()); contractMainDO.setReviewOpinion(reqVO.getReviewOpinion());
if (approvalDetail.getStatus().equals(BpmProcessInstanceStatusEnum.NOT_START.getStatus())) { if (approvalDetail.getStatus().equals(BpmProcessInstanceStatusEnum.NOT_START.getStatus())) {
@@ -1147,23 +1175,6 @@ public class ContractServiceImpl implements ContractService {
} }
contractMainMapper.updateById(contractMainDO); 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; return true;
} }