fix: 旗标复审流程定时任务自动发起流程报错BUG
This commit is contained in:
+30
-22
@@ -198,18 +198,22 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
wrapper.eq(ProcessEsAnnualInit::getContactUser, userId);
|
||||
break;
|
||||
case STANDARD_ENGINEER_EDIT:
|
||||
wrapper.eq(ProcessEsAnnualInit::getExecutionId, executionId);
|
||||
wrapper.eq(ProcessEsAnnualInit::getRejectFlag, YesOrNoEnum.YES.getValue());
|
||||
break;
|
||||
case MAIN_DRAFT_LEADER_APPROVAL:
|
||||
wrapper.eq(ProcessEsAnnualInit::getApprovalUser, userId);
|
||||
wrapper.eq(ProcessEsAnnualInit::getApprovalUser, userId).or()
|
||||
.eq(ProcessEsAnnualInit::getExecutionId, executionId);
|
||||
break;
|
||||
case CONTACT_USER_EDIT:
|
||||
wrapper.eq(ProcessEsAnnualInit::getApprovalUser, userId);
|
||||
wrapper.eq(ProcessEsAnnualInit::getRejectFlag, YesOrNoEnum.YES.getValue());
|
||||
break;
|
||||
case MAIN_DRAFT_WRITE:
|
||||
wrapper.eq(ProcessEsAnnualInit::getPrcMainDraftUser, userId);
|
||||
break;
|
||||
case CONTACT_USER_COLLECT:
|
||||
wrapper.eq(ProcessEsAnnualInit::getContactUser, userId);
|
||||
wrapper.eq(ProcessEsAnnualInit::getExecutionId, executionId);
|
||||
break;
|
||||
case MAIN_DRAFT_LEADER_LEADER_APPROVAL:
|
||||
wrapper.eq(ProcessEsAnnualInit::getContactUser, userId);
|
||||
@@ -229,7 +233,6 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
public void approvalProcess(AnnualInitDataVO annualInitData, boolean pass) {
|
||||
String userId = UserUtils.getUserId();
|
||||
CommonVO commonVO = annualInitData.getCommonVO();
|
||||
Map<String, Object> flowUserVO = annualInitData.getFlowUser();
|
||||
List<ProcessEsAnnualInit> dataList = annualInitData.getDataList();
|
||||
String taskId = commonVO.getTaskId();
|
||||
// 获取task
|
||||
@@ -237,6 +240,8 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
throw new JeroBootException("taskId为空或任务不存在");
|
||||
}
|
||||
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
|
||||
// 获取执行id
|
||||
String executionId = task.getExecutionId();
|
||||
String taskName = task.getName();
|
||||
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
|
||||
switch (taskName) {
|
||||
@@ -244,58 +249,61 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
// 处理驳回
|
||||
if (pass) {
|
||||
dataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.NO.getValue()));
|
||||
List<String> approvalUserList = new ArrayList<>();
|
||||
dataList.forEach(d -> approvalUserList.add(d.getApprovalUser()));
|
||||
taskService.setVariable(taskId, "approvalUserList", approvalUserList);
|
||||
} else {
|
||||
dataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.YES.getValue()));
|
||||
}
|
||||
dataList.forEach(data -> data.setExecutionId(executionId));
|
||||
saveOrUpdateBatch(dataList);
|
||||
// 设置本地变量
|
||||
List<String> approvalUserList = new ArrayList<>();
|
||||
dataList.forEach(d -> approvalUserList.add(d.getApprovalUser()));
|
||||
|
||||
taskService.setVariableLocal(taskId, "approvalUserList", approvalUserList);
|
||||
break;
|
||||
case STANDARD_ENGINEER_EDIT:
|
||||
dataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.NO.getValue()));
|
||||
saveOrUpdateBatch(dataList);
|
||||
// 设置流程变量
|
||||
List<String> contactUserList = new ArrayList<>();
|
||||
dataList.forEach(d -> contactUserList.add(d.getContactUser()));
|
||||
|
||||
runtimeService.setVariable(processInstanceId, "contactUserList", contactUserList);
|
||||
break;
|
||||
case MAIN_DRAFT_LEADER_APPROVAL:
|
||||
// 如果不驳回
|
||||
if (!pass) {
|
||||
if (pass) {
|
||||
dataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.NO.getValue()));
|
||||
saveOrUpdateBatch(dataList);
|
||||
// 设置本地变量
|
||||
List<String> mainDraftUserList = new ArrayList<>();
|
||||
dataList.forEach(d -> mainDraftUserList.add(d.getPrcMainDraftUser()));
|
||||
|
||||
taskService.setVariableLocal(taskId, "mainDraftUserList", mainDraftUserList);
|
||||
taskService.setVariable(taskId, "mainDraftUserList", mainDraftUserList);
|
||||
} else {
|
||||
dataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.YES.getValue()));
|
||||
}
|
||||
// 获取执行id
|
||||
dataList.forEach(data -> data.setExecutionId(executionId));
|
||||
saveOrUpdateBatch(dataList);
|
||||
break;
|
||||
case MAIN_DRAFT_WRITE:
|
||||
dataList.forEach(d -> d.setMainDraftingUser(userId));
|
||||
saveOrUpdateBatch(dataList);
|
||||
break;
|
||||
case CONTACT_USER_COLLECT:
|
||||
saveOrUpdateBatch(dataList);
|
||||
break;
|
||||
case MAIN_DRAFT_LEADER_LEADER_APPROVAL:
|
||||
// 如果不驳回
|
||||
if (pass) {
|
||||
dataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.NO.getValue()));
|
||||
} else {
|
||||
dataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.YES.getValue()));
|
||||
}
|
||||
// 获取执行id
|
||||
dataList.forEach(data -> data.setExecutionId(executionId));
|
||||
saveOrUpdateBatch(dataList);
|
||||
break;
|
||||
case STANDARD_ENGINEER_COLLECT:
|
||||
// 根据流程ID删除所有数据后新增
|
||||
LambdaQueryWrapper<ProcessEsAnnualInit> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(ProcessEsAnnualInit::getProcessInstanceId, processInstanceId);
|
||||
remove(wrapper);
|
||||
saveOrUpdateBatch(dataList);
|
||||
saveBatch(dataList);
|
||||
break;
|
||||
}
|
||||
if (pass) {
|
||||
if (flowUserVO != null) {
|
||||
// Map<String, Object> userMap = new HashMap<>(this.setUserVariables(flowUserVO));
|
||||
// processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userMap);
|
||||
}
|
||||
runtimeService.setVariable(processInstanceId, "pass", true);
|
||||
} else {
|
||||
// 设置流程变量
|
||||
|
||||
+2
-2
@@ -102,8 +102,8 @@ public class ProcessEsRecheckServiceImpl extends ServiceImpl<ProcessEsRecheckMap
|
||||
// 人员数据
|
||||
Map<String, Object> variables = recheckData.getFlowUser();
|
||||
// 当前数据的标准化工程师
|
||||
String standardEngineerId = variables.get("standardEngineer").toString();
|
||||
String standardizationUserId = variables.get("standardizationUser").toString();
|
||||
String standardEngineerId = (String) variables.get("standardEngineer");
|
||||
String standardizationUserId = (String) variables.get("standardizationUser");
|
||||
String userId = StrUtil.isNotBlank(standardizationUserId) ? standardizationUserId : standardEngineerId;
|
||||
// 设置流程变量
|
||||
Map<String, Object> actVariables = this.setVariables(variables);
|
||||
|
||||
+7
-2
@@ -60,6 +60,10 @@ public class ESRecheckPlanJob implements Job {
|
||||
// 根据企标发布日期判断是否当前已经达到35个月
|
||||
|
||||
// 请确保es.getReleaseDate()返回的是Date类型的实例
|
||||
if (es.getReleaseDate() == null) {
|
||||
log.info("无法找到企标编号为{}的发布日期,无法进行复审计划定时任务", es.getStandardNumber());
|
||||
continue;
|
||||
}
|
||||
ZonedDateTime releaseZonedDateTime = es.getReleaseDate().toInstant()
|
||||
.atZone(ZoneId.of("Asia/Shanghai"));
|
||||
LocalDate releaseLocalDate = releaseZonedDateTime.toLocalDate();
|
||||
@@ -84,8 +88,9 @@ public class ESRecheckPlanJob implements Job {
|
||||
// 自动发起流程
|
||||
// 找到各自企标的联络人,如果找不到联络人则发给标准化工程师
|
||||
String deptId = es.getMainDraftingUnit();
|
||||
String standardNo = es.getStandardNumber();
|
||||
if (StrUtil.isBlank(deptId)) {
|
||||
log.error("企标复审流程发起失败,企标Id为{}的企标部门ID为空,无法找到其联络人", deptId);
|
||||
log.error("企标复审流程发起失败,企标编号为{}的企标部门ID为空,无法找到其联络人", standardNo);
|
||||
continue;
|
||||
}
|
||||
String standardizationUser = contactManageService.findContactUserByDept(deptId);
|
||||
@@ -94,7 +99,7 @@ public class ESRecheckPlanJob implements Job {
|
||||
standardEngineer = contactManageService.findStandardEngineerByDept(deptId);
|
||||
}
|
||||
if (StrUtil.isBlank(standardizationUser) && StrUtil.isBlank(standardEngineer)) {
|
||||
log.error("企标复审流程发起失败,无法找到企标Id为{}的联络人和标准化工程师", deptId);
|
||||
log.error("企标复审流程发起失败,无法找到企标编号为{}的联络人和标准化工程师", standardNo);
|
||||
continue;
|
||||
}
|
||||
// 构建发起流程数据
|
||||
|
||||
Reference in New Issue
Block a user