fix(标准解读流程): 修复同一条条款分给多人,多人都进行过退回重新分发,走完其中一条分支后,主流程的却进行了任务完成,导致主流程进行到了下个节点,并且其余填写人员子流程走完后无法正常回归到主流程,因为主线的taskId已经被第一个走完的子流程的进行任务提交了,主流程taskId已经不存在了
This commit is contained in:
+27
-4
@@ -19,6 +19,7 @@ import com.jero.modules.activiti.enums.CommitFlagEnum;
|
||||
import com.jero.modules.activiti.enums.FinishFlagEnum;
|
||||
import com.jero.modules.activiti.enums.ProcessStatusEnum;
|
||||
import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
||||
import com.jero.modules.activiti.process.standardinterpret.common.StandardInterpretCommon;
|
||||
import com.jero.modules.activiti.service.ProcessAllService;
|
||||
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
||||
import com.jero.modules.activiti.service.ProcessNodeService;
|
||||
@@ -38,7 +39,8 @@ import org.springframework.stereotype.Component;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
import static com.jero.modules.activiti.process.fb.common.ProcessDefinitionKey.*;
|
||||
import static com.jero.modules.activiti.process.fb.common.ProcessDefinitionKey.STANDARD_COMPLIANCE_CHECK_DISTRIBUTE;
|
||||
import static com.jero.modules.activiti.process.fb.common.ProcessDefinitionKey.STANDARD_COMPLIANCE_CHECK_REDISTRIBUTE;
|
||||
|
||||
/**
|
||||
* @author liJiaRao
|
||||
@@ -403,9 +405,30 @@ public class MyGlobalEventListener implements ActivitiEventListener {
|
||||
String parentTaskId = (String) execution.getVariable(ActivitiCommon.PARENT_TASK_ID);
|
||||
if (StringUtils.isNotBlank(parentTaskId)) {
|
||||
int i = processAllService.countByParentTaskId(parentTaskId);
|
||||
if (i == 0) {
|
||||
TaskService taskService = SpringContextUtil.getBean(TaskService.class);
|
||||
taskService.complete(parentTaskId);
|
||||
|
||||
// 判断当前parentTaskId是否是第一个子流程 解读人填写信息节点的parentTaskId
|
||||
ProcessApprovalRecordService processApprovalRecordService = SpringContextUtil.getBean(ProcessApprovalRecordService.class);
|
||||
int count = processApprovalRecordService.count(
|
||||
new LambdaQueryWrapper<ProcessApprovalRecord>()
|
||||
.eq(ProcessApprovalRecord::getProcessInstanceId, processInstanceId)
|
||||
.eq(ProcessApprovalRecord::getNodeId, StandardInterpretCommon.INTERPRETING_PEOPLE_FILLOUT)
|
||||
.eq(ProcessApprovalRecord::getParentTaskId, parentTaskId));
|
||||
if (count > 0){
|
||||
// 判断子流程是否还有未完成的节点
|
||||
int childCount = processApprovalRecordService.count(
|
||||
new LambdaQueryWrapper<ProcessApprovalRecord>()
|
||||
.eq(ProcessApprovalRecord::getProcessInstanceId, processInstanceId)
|
||||
.isNotNull(ProcessApprovalRecord::getParentTaskId)
|
||||
.eq(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.INCOMPLETE.getValue()));
|
||||
if (childCount == 0){
|
||||
TaskService taskService = SpringContextUtil.getBean(TaskService.class);
|
||||
taskService.complete(parentTaskId);
|
||||
}
|
||||
}else {
|
||||
if (i == 0) {
|
||||
TaskService taskService = SpringContextUtil.getBean(TaskService.class);
|
||||
taskService.complete(parentTaskId);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//查询所有审批信息
|
||||
|
||||
+5
@@ -1367,6 +1367,11 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe
|
||||
}
|
||||
processStandardInterpretClauseService.saveOrUpdateBatch(processStandardInterpretClauseList);
|
||||
|
||||
if (CollectionUtils.isEmpty(processStandardInterpretClauseList)){
|
||||
// 列表为空不再继续分发
|
||||
map.put(StandardInterpretCommon.PASS, false);
|
||||
}
|
||||
|
||||
// 生成 标准解读流程_条款中间表_子表 数据
|
||||
List<ProcessStandardInterpretClauseSublist> processStandardInterpretClauseSublists =
|
||||
new ArrayList<>();
|
||||
|
||||
Reference in New Issue
Block a user