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