REQ-3982: fix bugs
This commit is contained in:
parent
fa0913b715
commit
f3bcfa6f20
@ -57,7 +57,8 @@ public class UpdateVisaChangeReq {
|
||||
CANCEL("取消用印"),
|
||||
TX_CANCEL("腾讯侧撤销合同"),
|
||||
// 所有审批流审批完成时,自动完成审批,要区别手动完成用印操作,记录日志
|
||||
AUTO_COMPLETE("自动完成用印");
|
||||
AUTO_COMPLETE("自动完成用印"),
|
||||
ALL_PROCESS_REJECTED("用印申请全被驳回");
|
||||
|
||||
private String desc;
|
||||
}
|
||||
|
||||
@ -233,6 +233,7 @@ public class ChangeRecord extends BaseEntity<ChangeRecord> {
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user