diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/listener/MyGlobalEventListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/listener/MyGlobalEventListener.java index 35e8c047..8af27865 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/listener/MyGlobalEventListener.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/listener/MyGlobalEventListener.java @@ -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() + .eq(ProcessApprovalRecord::getProcessInstanceId, processInstanceId) + .eq(ProcessApprovalRecord::getNodeId, StandardInterpretCommon.INTERPRETING_PEOPLE_FILLOUT) + .eq(ProcessApprovalRecord::getParentTaskId, parentTaskId)); + if (count > 0){ + // 判断子流程是否还有未完成的节点 + int childCount = processApprovalRecordService.count( + new LambdaQueryWrapper() + .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 { //查询所有审批信息 diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/impl/StandardInterpretFlowServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/impl/StandardInterpretFlowServiceImpl.java index 7bfb8fa5..11f12374 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/impl/StandardInterpretFlowServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/impl/StandardInterpretFlowServiceImpl.java @@ -1367,6 +1367,11 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe } processStandardInterpretClauseService.saveOrUpdateBatch(processStandardInterpretClauseList); + if (CollectionUtils.isEmpty(processStandardInterpretClauseList)){ + // 列表为空不再继续分发 + map.put(StandardInterpretCommon.PASS, false); + } + // 生成 标准解读流程_条款中间表_子表 数据 List processStandardInterpretClauseSublists = new ArrayList<>();