fix:修复提交审批的时候出现事件id重复的问题

This commit is contained in:
lulz1 2024-07-12 14:15:07 +08:00
parent c62a6f661a
commit bdbff65d70
1 changed files with 18 additions and 9 deletions

View File

@ -15,8 +15,7 @@ import java.util.stream.Collectors;
import static com.chint.domain.aggregates.approval.ApprovalMethod.APPROVE; import static com.chint.domain.aggregates.approval.ApprovalMethod.APPROVE;
import static com.chint.domain.aggregates.approval.ApprovalType.LEG_ADD_CHANGE_BATCH; import static com.chint.domain.aggregates.approval.ApprovalType.LEG_ADD_CHANGE_BATCH;
import static com.chint.infrastructure.constant.LegConstant.LEG_APPROVAL_STATUS_PREPARE; import static com.chint.infrastructure.constant.LegConstant.*;
import static com.chint.infrastructure.constant.LegConstant.LEG_APPROVAL_STATUS_SUBMIT;
public class ApprovalLegAddAndChangeBatch extends ApprovalProcess { public class ApprovalLegAddAndChangeBatch extends ApprovalProcess {
@ -113,26 +112,36 @@ public class ApprovalLegAddAndChangeBatch extends ApprovalProcess {
if (this.getApprovalMethod() == null || this.getApprovalMethod().equals(APPROVE)) { if (this.getApprovalMethod() == null || this.getApprovalMethod().equals(APPROVE)) {
//所有被提交审批的被加入审批事件 //所有被提交审批的被加入审批事件
String approvalRecordNo = approvalData.getApprovalRecordNo(); String approvalRecordNo = approvalData.getApprovalRecordNo();
addApprovalEventAndRecord(LegApprovalEvent.submit(approvalRecordNo)); addApprovalEventAndRecord(LEG_APPROVAL_STATUS_SUBMIT, approvalRecordNo);
} else { } else {
//所有被提交审批的被加入知会事件 //所有被提交审批的被加入知会事件
String approvalRecordNo = approvalData.getApprovalRecordNo(); String approvalRecordNo = approvalData.getApprovalRecordNo();
addApprovalEventAndRecord(LegApprovalEvent.notifyEvent(approvalRecordNo)); addApprovalEventAndRecord(LEG_APPROVAL_STATUS_NOTIFY, approvalRecordNo);
} }
bpmPlatform.submitLegAddOrChangeApproval(approvalData); bpmPlatform.submitLegAddOrChangeApproval(approvalData);
return this; return this;
} }
private void addApprovalEventAndRecord(LegApprovalEvent event) { private void addApprovalEventAndRecord(Integer legApprovalEventType, String approvalRecordNo) {
ApprovalRecord approvalRecord = this.getApprovalRecord(); ApprovalRecord approvalRecord = this.getApprovalRecord();
approvalData.getAddLegList().forEach(leg -> { approvalData.getAddLegList().forEach(leg -> {
leg.addEvent(event); if (legApprovalEventType == LEG_APPROVAL_STATUS_SUBMIT) {
approvalRecord.addLeg(leg); leg.addEvent(LegApprovalEvent.submit(approvalRecordNo));
approvalRecord.addLeg(leg);
} else {
leg.addEvent(LegApprovalEvent.notifyEvent(approvalRecordNo));
approvalRecord.addLeg(leg);
}
}); });
approvalData.getChangeLegList().forEach(it -> { approvalData.getChangeLegList().forEach(it -> {
Leg newLeg = it.getFirst(); Leg newLeg = it.getFirst();
newLeg.addEvent(event); if (legApprovalEventType == LEG_APPROVAL_STATUS_SUBMIT) {
approvalRecord.addLeg(newLeg); newLeg.addEvent(LegApprovalEvent.submit(approvalRecordNo));
approvalRecord.addLeg(newLeg);
} else {
newLeg.addEvent(LegApprovalEvent.notifyEvent(approvalRecordNo));
approvalRecord.addLeg(newLeg);
}
}); });
bpmPlatform.submitLegAddOrChangeApproval(approvalData); bpmPlatform.submitLegAddOrChangeApproval(approvalData);
} }