fix: scc流程强制撤回问题
This commit is contained in:
@@ -13,7 +13,7 @@ public enum ProcessTypeEnum {
|
||||
DEMO("测试流程", 0, "com.jero.modules.activiti.process.demo.service.ProcessDemoService", "/workCenter/StandardEntryOrChangeProcess", "/workCenter/StandardEntryOrChangeProcess"),
|
||||
NEW_STANDARD_IMPORT("新法规导入流程", 1, "com.jero.modules.activiti.process.ni.service.impl.ProcessNewStandardImportServiceImpl", "/workCenter/", "/workCenter/"),
|
||||
STANDARD_INTERPRET("标准解读流程", 2, "com.jero.modules.activiti.process.standardinterpret.service.impl.StandardInterpretFlow", "", ""),
|
||||
STANDARD_COMPLIANCE_CHECK("法规符合性排查流程", 3, "com.jero.modules.activiti.process.standardComplianceCheck.service.ProcessStandardComplianceCheckService", "/workCenter/StandardComplianceCheckProcess", "/workCenter/StandardComplianceCheckProcess"),
|
||||
STANDARD_COMPLIANCE_CHECK("法规符合性排查流程", 3, "com.jero.modules.activiti.process.standardComplianceCheck.service.impl.ProcessStandardComplianceCheckServiceImpl", "/workCenter/StandardComplianceCheckProcess", "/workCenter/StandardComplianceCheckProcess"),
|
||||
MARKET_STANDARD_PUBLISH("市场清单发布流程", 4, "com.jero.modules.activiti.process.ms.service.impl.ProcessMarketStandardReleaseServiceImpl", "/workCenter/", "/workCenter/"),
|
||||
;
|
||||
|
||||
|
||||
+11
-1
@@ -345,8 +345,18 @@ public class ActFlowCommonService {
|
||||
return processSnapshotService.getOne(draftWrapper);
|
||||
}
|
||||
|
||||
public String getParentTaskId(String taskId) {
|
||||
ProcessApprovalRecord processApprovalRecord = processApprovalRecordService.getByTaskId(taskId);
|
||||
String parentTaskId = processApprovalRecord.getParentTaskId();
|
||||
if (StrUtil.isBlank(parentTaskId)) {
|
||||
return taskId;
|
||||
}
|
||||
return parentTaskId;
|
||||
}
|
||||
|
||||
public BasicProcessInfoDTO getProcessInfo(String taskId) {
|
||||
String processInstanceId = this.getProcessInstanceIdByTaskId(taskId);
|
||||
String finalTaskId = this.getParentTaskId(taskId);
|
||||
String processInstanceId = this.getProcessInstanceIdByTaskId(finalTaskId);
|
||||
// 获取流程通用数据
|
||||
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
|
||||
BasicProcessInfoDTO basicProcessInfoDTO = new BasicProcessInfoDTO();
|
||||
|
||||
+3
-3
@@ -13,10 +13,10 @@ public class ProcessDefinitionKey {
|
||||
public static final String DEMO_JDR = "demo_jdr";
|
||||
public static final String DEMO_CXFF = "demo_cxff";
|
||||
// 法规符合性排查流程-主流程
|
||||
public static final String STANDARD_COMPLIANCE_CHECK_MAIN = "standard_compliance_check_main";
|
||||
public static final String STANDARD_COMPLIANCE_CHECK_MAIN = "laws-evaluation-main";
|
||||
// 法规符合性排查流程-分发
|
||||
public static final String STANDARD_COMPLIANCE_CHECK_DISTRIBUTE = "standard_compliance_check_distribute";
|
||||
public static final String STANDARD_COMPLIANCE_CHECK_DISTRIBUTE = "laws-evaluation-distribute";
|
||||
// 法规符合性排查流程-重新分发
|
||||
public static final String STANDARD_COMPLIANCE_CHECK_REDISTRIBUTE = "standard_compliance_check_redistribute";
|
||||
public static final String STANDARD_COMPLIANCE_CHECK_REDISTRIBUTE = "laws-evaluation-redistribute";
|
||||
|
||||
}
|
||||
|
||||
+24
-10
@@ -1,6 +1,5 @@
|
||||
package com.jero.modules.activiti.process.standardComplianceCheck.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
@@ -285,7 +284,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
||||
.collect(Collectors.toList());
|
||||
List<String> ids = distributeDetailList.stream().map(ProcessStandardComplianceCheckDetail::getId).collect(Collectors.toList());
|
||||
// 分发需要设置未分发数据条数
|
||||
unallocatedQuantity = distributeDetailList.size();
|
||||
unallocatedQuantity = detailInfoList.size() - distributeDetailList.size();
|
||||
// 去重找到所有设计师
|
||||
List<String> designEngineerList = distributeDetailList.stream()
|
||||
.map(ProcessStandardComplianceCheckDetail::getDesignEngineer)
|
||||
@@ -311,8 +310,8 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
||||
// 先删后增
|
||||
sccDetailService.removeByIds(ids);
|
||||
sccDetailService.saveBatch(needAddDetailInfoList);
|
||||
runtimeService.setVariable(processInstanceId, DESIGNER_LIST, String.join(",", designEngineerList));
|
||||
userMap.put(DESIGNER_LIST, standardInfo.getSeniorManager());
|
||||
runtimeService.setVariable(processInstanceId, DESIGNER_LIST, designEngineerList);
|
||||
userMap.put(DESIGNER_LIST, String.join(",", designEngineerList));
|
||||
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userMap);
|
||||
} else {
|
||||
// 不分发直接设置后续审批节点的人员变量
|
||||
@@ -378,10 +377,13 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
||||
queryWrapper.eq(ProcessStandardComplianceCheck::getProcessInstanceId, processInstanceId);
|
||||
ProcessStandardComplianceCheck scc = getOne(queryWrapper);
|
||||
LambdaQueryWrapper<ProcessStandardComplianceCheckDetail> detailQueryWrapper = new LambdaQueryWrapper<>();
|
||||
detailQueryWrapper.eq(ProcessStandardComplianceCheckDetail::getCheckId, scc.getId());
|
||||
List<ProcessStandardComplianceCheckDetail> detailList = sccDetailService.list(detailQueryWrapper);
|
||||
String xmlNodeId = record.getNodeId();
|
||||
List<ProcessStandardComplianceCheckDetail> detailList = null;
|
||||
if (Objects.nonNull(scc)) {
|
||||
detailQueryWrapper.eq(ProcessStandardComplianceCheckDetail::getCheckId, scc.getId());
|
||||
detailList = sccDetailService.list(detailQueryWrapper);
|
||||
}
|
||||
processSccVO.setStandardInfo(scc);
|
||||
String xmlNodeId = record.getNodeId();
|
||||
// 设置流程信息
|
||||
switch (xmlNodeId) {
|
||||
case STANDARD_ENGINEER_START:
|
||||
@@ -400,6 +402,8 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
||||
processSccVO.setDetailInfoList(detailList);
|
||||
break;
|
||||
case DESIGNER_ENGINEER_EVALUATION:
|
||||
this.setDesignerEngineerEvaluationHandleData(processSccVO, taskId);
|
||||
break;
|
||||
case MAIN_CHECK_USER_APPROVAL:
|
||||
detailList = detailList.stream()
|
||||
.filter(detail -> processInstanceId.equals(detail.getProcessInstanceId()))
|
||||
@@ -411,6 +415,18 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
||||
return result;
|
||||
}
|
||||
|
||||
private void setDesignerEngineerEvaluationHandleData(ProcessSccVO processSccVO, String taskId) {
|
||||
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
|
||||
LambdaQueryWrapper<ProcessStandardComplianceCheckDetail> detailQueryWrapper = new LambdaQueryWrapper<>();
|
||||
detailQueryWrapper.eq(ProcessStandardComplianceCheckDetail::getProcessInstanceId, processInstanceId);
|
||||
List<ProcessStandardComplianceCheckDetail> detailList = sccDetailService.list(detailQueryWrapper);
|
||||
processSccVO.setDetailInfoList(detailList);
|
||||
LambdaQueryWrapper<ProcessStandardComplianceCheck> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(ProcessStandardComplianceCheck::getId, detailList.get(0).getCheckId());
|
||||
ProcessStandardComplianceCheck scc = getOne(queryWrapper);
|
||||
processSccVO.setStandardInfo(scc);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createAutoTaskListener(DelegateTask delegateTask) {
|
||||
String taskId = delegateTask.getId();
|
||||
@@ -431,9 +447,6 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
||||
case AUTO_TASK_1:
|
||||
case AUTO_TASK_3:
|
||||
List<String> designerList = (List<String>) delegateTask.getVariable(DESIGNER_LIST);
|
||||
if (CollUtil.isEmpty(designerList)) {
|
||||
return;
|
||||
}
|
||||
String checkId = (String) delegateTask.getVariable(CHECK_ID);
|
||||
for (String designer : designerList) {
|
||||
userInfoMap.put(DESIGNER, designer);
|
||||
@@ -449,6 +462,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
||||
String childPrcId = processHandleService.startChildrenProcess(processInfoVO);
|
||||
// 更新子表数据,将数据绑定给子流程
|
||||
wrapper.eq(ProcessStandardComplianceCheckDetail::getCheckId, checkId);
|
||||
wrapper.eq(ProcessStandardComplianceCheckDetail::getDesignEngineer, designer);
|
||||
wrapper.isNull(ProcessStandardComplianceCheckDetail::getDesignEngineer);
|
||||
wrapper.set(ProcessStandardComplianceCheckDetail::getDesignEngineer, designer);
|
||||
wrapper.set(ProcessStandardComplianceCheckDetail::getProcessInstanceId, childPrcId);
|
||||
|
||||
Reference in New Issue
Block a user