feat: 制修订流程主起草人分发

This commit is contained in:
2023-12-27 12:02:12 +08:00
parent ccd17b056f
commit 0493b9f694
2 changed files with 22 additions and 15 deletions
@@ -21,14 +21,12 @@ public class OtherDrafterUploadCreateListener implements ExecutionListener {
@Override
public void notify(DelegateExecution delegateExecution) {
log.info("企标制修订流程 其他起草人上传节点 创建监听执行器开始执行");
// 获取流程实例ID
String processInstanceId = delegateExecution.getProcessInstanceId();
// 获取执行人
String otherDraftUser = (String) delegateExecution.getVariable("otherDraftUser");
// 获取对应的结束时间
String deadline = (String) delegateExecution.getVariable(otherDraftUser + "-deadline");
// 设置流程变量
delegateExecution.setVariableLocal("deadline", deadline);
delegateExecution.setVariable("deadline", deadline);
log.info("企标制修订流程 其他起草人上传节点 创建监听执行器开始执行");
}
}
@@ -132,6 +132,13 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
actVariables.put("distribute", true);
actVariables.put("otherDraftUserList", otherDraftUserVOS.stream().map(OtherDraftUserVO::getUser)
.collect(Collectors.toList()));
// 遍历其他起草人列表,将截止时间放置到流程变量中
Map<String, Object> deadlineMap = new HashMap<>();
otherDraftUserVOS.forEach(otherDraftUserVO -> deadlineMap
.put(otherDraftUserVO.getUser() + "-deadline", otherDraftUserVO.getISODeadlineTime()));
actVariables.putAll(deadlineMap);
data.setOtherDraftUserVOS(otherDraftUserVOS);
data.setOtherDrafterUploadFileJson(otherDraftUserVOS);
}
// 获取分发人
return actVariables;
@@ -413,18 +420,20 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
break;
case CONTACT_USER_LEADER_APPROVAL:
// 保存流程数据
data = revisionData.getData();
saveOrUpdate(data);
// 保存征求意见记录 先删后增
adviceService.remove(new LambdaQueryWrapper<EsRevisionAdvice>()
.eq(EsRevisionAdvice::getProcessInstanceId, processInstanceId)
.eq(EsRevisionAdvice::getExecutionId, executionId));
advices = data.getAdvices();
adviceWrapper.eq(EsRevisionAdvice::getExecutionId, executionId);
adviceService.remove(adviceWrapper);
advices.forEach(advice -> advice.setProcessInstanceId(processInstanceId));
advices.forEach(advice -> advice.setExecutionId(executionId));
adviceService.saveBatch(advices);
if (pass) {
data = revisionData.getData();
saveOrUpdate(data);
// 保存征求意见记录 先删后增
adviceService.remove(new LambdaQueryWrapper<EsRevisionAdvice>()
.eq(EsRevisionAdvice::getProcessInstanceId, processInstanceId)
.eq(EsRevisionAdvice::getExecutionId, executionId));
advices = data.getAdvices();
adviceWrapper.eq(EsRevisionAdvice::getExecutionId, executionId);
adviceService.remove(adviceWrapper);
advices.forEach(advice -> advice.setProcessInstanceId(processInstanceId));
advices.forEach(advice -> advice.setExecutionId(executionId));
adviceService.saveBatch(advices);
}
break;
case MAIN_DRAFT_USER_COLLECT_SECOND:
// 保存流程数据