diff --git a/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/request/UpdateVisaChangeReq.java b/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/request/UpdateVisaChangeReq.java index 90ca8b04..1e4cdaa8 100644 --- a/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/request/UpdateVisaChangeReq.java +++ b/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/request/UpdateVisaChangeReq.java @@ -57,7 +57,8 @@ public class UpdateVisaChangeReq { CANCEL("取消用印"), TX_CANCEL("腾讯侧撤销合同"), // 所有审批流审批完成时,自动完成审批,要区别手动完成用印操作,记录日志 - AUTO_COMPLETE("自动完成用印"); + AUTO_COMPLETE("自动完成用印"), + ALL_PROCESS_REJECTED("用印申请全被驳回"); private String desc; } diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/domain/ChangeRecord.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/domain/ChangeRecord.java index c47483b4..d7604b18 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/domain/ChangeRecord.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/domain/ChangeRecord.java @@ -233,6 +233,7 @@ public class ChangeRecord extends BaseEntity { VISA_STAMP_STATUS_ACTION.put(VisaStampStatusEnum.WITH_PRINT, UpdateVisaChangeReq.VisaStampAction.COMPLETE, VisaStampStatusEnum.USED_PRINTS); VISA_STAMP_STATUS_ACTION.put(VisaStampStatusEnum.WITH_PRINT, UpdateVisaChangeReq.VisaStampAction.CANCEL, VisaStampStatusEnum.UNPRINTED); VISA_STAMP_STATUS_ACTION.put(VisaStampStatusEnum.WITH_PRINT, UpdateVisaChangeReq.VisaStampAction.TX_CANCEL, VisaStampStatusEnum.UNPRINTED); + VISA_STAMP_STATUS_ACTION.put(VisaStampStatusEnum.WITH_PRINT, UpdateVisaChangeReq.VisaStampAction.ALL_PROCESS_REJECTED, VisaStampStatusEnum.UNPRINTED); VISA_STAMP_STATUS_ACTION.put(VisaStampStatusEnum.WITH_PRINT, UpdateVisaChangeReq.VisaStampAction.AUTO_COMPLETE, VisaStampStatusEnum.USED_PRINTS); } diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/mq/listener/workflow/process/CompleteVisaChangeStampHandler.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/mq/listener/workflow/process/CompleteVisaChangeStampHandler.java index 4d34de86..c63ef384 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/mq/listener/workflow/process/CompleteVisaChangeStampHandler.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/mq/listener/workflow/process/CompleteVisaChangeStampHandler.java @@ -49,8 +49,17 @@ public class CompleteVisaChangeStampHandler implements ProcessInstanceEventHandl return Objects.equals(dto.getProcessDefinitionKey(), refreshableConfiguration.getStampProcessDefinitionKey()); } + @Override + public void onRejected(ProcessInstanceDTO dto) { + process(dto, BpmnProcessInstanceResultEnum.REJECTED); + } + @Override public void onCompleted(ProcessInstanceDTO dto) { + process(dto, BpmnProcessInstanceResultEnum.APPROVED); + } + + private void process(ProcessInstanceDTO dto, BpmnProcessInstanceResultEnum result) { Long visaId = Long.valueOf(dto.getBusinessKey()); log.info("CompleteVisaChangeStampHandler visaId, {}", visaId); Long operatorId = Optional.ofNullable(dto.getLastOperationAssigner()) @@ -96,32 +105,35 @@ public class CompleteVisaChangeStampHandler implements ProcessInstanceEventHandl ChangeRecordRelation update = new ChangeRecordRelation(); update.setId(changeRecordRelation.getId()); - update.setContentExt(BpmnProcessInstanceResultEnum.APPROVED.getStatus()); + update.setContentExt(result.getStatus()); update.setUpdateBy(operatorId); changeRecordRelationService.updateById(update); - boolean approved = allRecordRelations.stream() + boolean approvedOrRejected = allRecordRelations.stream() .filter(e -> !Objects.equals(e.getVarExt(), changeRecordRelation.getVarExt())) .collect(Collectors.groupingBy(ChangeRecordRelation::getVarExt)) .entrySet() .stream() .allMatch(e -> e.getValue().stream() - .anyMatch(relation -> Objects.equals(BpmnProcessInstanceResultEnum.APPROVED.getStatus(), relation.getContentExt()))); - if (approved) { + .anyMatch(relation -> Objects.equals(result.getStatus(), relation.getContentExt()))); + if (approvedOrRejected) { // 有可能用户在界面手动完成用印, 这里就无法自动完成 if (Objects.isNull(changeRecord) || !Objects.equals(changeRecord.getStampStatus(), VisaStampStatusEnum.WITH_PRINT)) { log.info("CompleteVisaChangeStampHandler changeRecord stampStatus not withPrint"); return; } + boolean approved = result == BpmnProcessInstanceResultEnum.APPROVED; changeRecordService.update(UpdateVisaChangeReq.builder() .visaId(visaId) .phase(phase) .operatorId(operatorId) .operatorName(operatorName) - .visaStampAction(UpdateVisaChangeReq.VisaStampAction.AUTO_COMPLETE) - .scene("用印审批完成,自动完成用印申请") - .context("stamp:autoComplete") + .visaStampAction(approved + ? UpdateVisaChangeReq.VisaStampAction.AUTO_COMPLETE + : UpdateVisaChangeReq.VisaStampAction.ALL_PROCESS_REJECTED) + .scene(approved ? "用印审批完成,自动完成用印申请" : "用印审批全被驳回,设置成未用印") + .context(approved ? "stamp:autoComplete" : "stamp:allProcessRejected") .build()); } } diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/mq/listener/workflow/process/ProcessInstanceOfEssAllEventHandler.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/mq/listener/workflow/process/ProcessInstanceOfEssAllEventHandler.java index 2141f2d7..756bf5a9 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/mq/listener/workflow/process/ProcessInstanceOfEssAllEventHandler.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/mq/listener/workflow/process/ProcessInstanceOfEssAllEventHandler.java @@ -125,9 +125,9 @@ public class ProcessInstanceOfEssAllEventHandler extends BasicLogSupport impleme // case PROCESS_INSTANCE_COMPLETED: // e.setContentExt(BpmnProcessInstanceResultEnum.APPROVED.getStatus()); // break; - case PROCESS_INSTANCE_REJECTED: - e.setContentExt(BpmnProcessInstanceResultEnum.REJECTED.getStatus()); - break; +// case PROCESS_INSTANCE_REJECTED: +// e.setContentExt(BpmnProcessInstanceResultEnum.REJECTED.getStatus()); +// break; case PROCESS_INSTANCE_ABORTED: e.setContentExt(BpmnProcessInstanceResultEnum.ABORTED.getStatus()); break;