diff --git a/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/request/ChangeStatusRequest.java b/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/request/ChangeStatusRequest.java index 674ee59d..e8126a34 100644 --- a/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/request/ChangeStatusRequest.java +++ b/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/request/ChangeStatusRequest.java @@ -3,6 +3,7 @@ package cn.axzo.nanopart.visa.api.request; import cn.axzo.framework.domain.ServiceException; import cn.axzo.nanopart.visa.api.enums.VisaLogTypeEnum; import cn.axzo.nanopart.visa.api.enums.VisaStatusEnum; +import cn.axzo.nanopart.visa.api.enums.VisaTypeEnum; import cn.axzo.nanopart.visa.api.response.VisaDetailByIdResponse; import lombok.AllArgsConstructor; import lombok.Builder; @@ -86,7 +87,7 @@ public class ChangeStatusRequest { */ private boolean editFormFlag = true; - + private VisaTypeEnum visaType; public void check() { if (Objects.nonNull(logType) && !VisaLogTypeEnum.isApproveNotAgree(logType)) { throw new ServiceException("不是审核不通过日志"); diff --git a/visa/visa-server/pom.xml b/visa/visa-server/pom.xml index b27ba208..e2e12740 100644 --- a/visa/visa-server/pom.xml +++ b/visa/visa-server/pom.xml @@ -7,6 +7,18 @@ ${revision} ../pom.xml + + + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + 8 + + + + 4.0.0 visa-server diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/mq/listener/workflow/process/ProcessInstanceOfVisaAllEventHandler.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/mq/listener/workflow/process/ProcessInstanceOfVisaAllEventHandler.java index 30705575..9c229109 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/mq/listener/workflow/process/ProcessInstanceOfVisaAllEventHandler.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/mq/listener/workflow/process/ProcessInstanceOfVisaAllEventHandler.java @@ -51,6 +51,7 @@ import static cn.axzo.nanopart.visa.api.constant.VisaConstant.IM_GROUP_BIZ_INFO_ import static cn.axzo.nanopart.visa.api.constant.VisaConstant.IM_GROUP_BIZ_INFO_INITIATOR_WORKSPACE_ID; import static cn.axzo.nanopart.visa.api.constant.VisaConstant.WORKFLOW_VAR_VISA_TYPE_KEY; import static cn.axzo.nanopart.visa.api.enums.VisaLogTypeEnum.APPROVE_ABORT; +import static cn.axzo.nanopart.visa.api.enums.VisaLogTypeEnum.APPROVE_COMPLETED; import static cn.axzo.nanopart.visa.api.enums.VisaLogTypeEnum.REJECT_APPROVE; import static cn.axzo.nanopart.visa.api.enums.VisaLogTypeEnum.REVERT_APPROVE; import static cn.axzo.nanopart.visa.api.enums.VisaRelationFieldEnum.PROCESS_INSTANCE_OF_PAY; @@ -127,8 +128,8 @@ public class ProcessInstanceOfVisaAllEventHandler extends BasicLogSupport implem log.info("send complete notice, onCompleted, processInstanceDTO: {}", JSON.toJSONString(dto)); sendCompleteNotice(dto); log.info("send complete notice success"); - - updateChangeRecordApprovalStatus(dto, BpmnProcessInstanceResultEnum.APPROVED); + BpmnProcessDefinitionVO processDefinition = workflowGateway.getActiveProcessDefinitionByKey(dto.getProcessDefinitionKey()); + updateChangeRecordApprovalStatus(dto, BpmnProcessInstanceResultEnum.APPROVED, processDefinition); if (isPayConfirm(dto)) { changeRecordService.lambdaUpdate() @@ -207,7 +208,7 @@ public class ProcessInstanceOfVisaAllEventHandler extends BasicLogSupport implem .build(); eventProducer.send(VisaChangeLogPayload.form(log)); - updateChangeRecordApprovalStatus(dto, BpmnProcessInstanceResultEnum.CANCELLED); + updateChangeRecordApprovalStatus(dto, BpmnProcessInstanceResultEnum.CANCELLED, processDefinition); } /** @@ -232,7 +233,7 @@ public class ProcessInstanceOfVisaAllEventHandler extends BasicLogSupport implem .build(); eventProducer.send(VisaChangeLogPayload.form(log)); - updateChangeRecordApprovalStatus(dto, BpmnProcessInstanceResultEnum.REJECTED); + updateChangeRecordApprovalStatus(dto, BpmnProcessInstanceResultEnum.REJECTED, processDefinition); } @@ -282,10 +283,10 @@ public class ProcessInstanceOfVisaAllEventHandler extends BasicLogSupport implem .build(); eventProducer.send(VisaChangeLogPayload.form(log)); - updateChangeRecordApprovalStatus(dto, BpmnProcessInstanceResultEnum.ABORTED); + updateChangeRecordApprovalStatus(dto, BpmnProcessInstanceResultEnum.ABORTED, processDefinition); } - private void updateChangeRecordApprovalStatus(ProcessInstanceDTO dto, BpmnProcessInstanceResultEnum resultEnum) { + private void updateChangeRecordApprovalStatus(ProcessInstanceDTO dto, BpmnProcessInstanceResultEnum resultEnum, BpmnProcessDefinitionVO processDefinition) { boolean isPayConfirm = isPayConfirm(dto); // 更新主表审批状态信息 Long visaId = Long.valueOf(dto.getBusinessKey()); @@ -331,18 +332,31 @@ public class ProcessInstanceOfVisaAllEventHandler extends BasicLogSupport implem ChangeRecord visa = changeRecordService.getById(visaId); BpmnTaskDelegateAssigner lastOperationAssigner = dto.getLastOperationAssigner(); - if (Objects.equals(resultEnum, BpmnProcessInstanceResultEnum.APPROVED) && isPayConfirm) { - changeRecordService.changeStatus(ChangeStatusRequest.builder() - .visaId(visaId) - .personId(Long.valueOf(lastOperationAssigner.getPersonId())) - .ouId(Long.valueOf(lastOperationAssigner.getOuId())) - .workspaceId(Long.valueOf(lastOperationAssigner.getTenantId())) - .updateStatus(VisaStatusEnum.COMPLETED) - .editFormFlag(false) - .build()); + if (Objects.equals(resultEnum, BpmnProcessInstanceResultEnum.APPROVED)) { + if (isPayConfirm) { + // 修改状态,并记录日志 + changeRecordService.changeStatus(ChangeStatusRequest.builder() + .visaId(visaId) + .personId(Long.valueOf(lastOperationAssigner.getPersonId())) + .ouId(Long.valueOf(lastOperationAssigner.getOuId())) + .workspaceId(Long.valueOf(lastOperationAssigner.getTenantId())) + .updateStatus(VisaStatusEnum.COMPLETED) + .visaType(PAY_CONFIRM) + .editFormFlag(false) + .build()); + + } else { + ChangeRecordLog log = ChangeRecordLog.builder() + .visaId(Long.valueOf(dto.getBusinessKey())) + .action(dto.getType().getTag()) + .title(String.format(APPROVE_COMPLETED.getTitle(), processDefinition.getName())) + .content(String.format(APPROVE_COMPLETED.getContent(), processDefinition.getName())) + .build(); + eventProducer.send(VisaChangeLogPayload.form(log)); + } return; } - if (!isPayConfirm && !Objects.equals(resultEnum, BpmnProcessInstanceResultEnum.APPROVED)) { + if (!isPayConfirm) { // 回退到待提报或决策中 changeRecordService.changeStatus(ChangeStatusRequest.builder() .visaId(visaId) diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java index ad7e84df..ac82879e 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java @@ -281,7 +281,9 @@ public class ChangeRecordServiceImpl extends ServiceImpl