From 09a4f81860b8b91156d872f213355c152116235a Mon Sep 17 00:00:00 2001 From: yjz <3131811435@qq.com> Date: Wed, 17 Jul 2024 18:02:27 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=A0=87=E5=87=86=E8=A7=A3=E8=AF=BB?= =?UTF-8?q?=E6=B5=81=E7=A8=8B):=20=E4=BF=AE=E5=A4=8D=E5=90=8C=E4=B8=80?= =?UTF-8?q?=E6=9D=A1=E6=9D=A1=E6=AC=BE=E5=88=86=E7=BB=99=E5=A4=9A=E4=BA=BA?= =?UTF-8?q?=EF=BC=8C=E5=A4=9A=E4=BA=BA=E9=83=BD=E8=BF=9B=E8=A1=8C=E8=BF=87?= =?UTF-8?q?=E9=80=80=E5=9B=9E=E9=87=8D=E6=96=B0=E5=88=86=E5=8F=91=EF=BC=8C?= =?UTF-8?q?=E8=B5=B0=E5=AE=8C=E5=85=B6=E4=B8=AD=E4=B8=80=E6=9D=A1=E5=88=86?= =?UTF-8?q?=E6=94=AF=E5=90=8E=EF=BC=8C=E4=B8=BB=E6=B5=81=E7=A8=8B=E7=9A=84?= =?UTF-8?q?=E5=8D=B4=E8=BF=9B=E8=A1=8C=E4=BA=86=E4=BB=BB=E5=8A=A1=E5=AE=8C?= =?UTF-8?q?=E6=88=90=EF=BC=8C=E5=AF=BC=E8=87=B4=E4=B8=BB=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E5=88=B0=E4=BA=86=E4=B8=8B=E4=B8=AA=E8=8A=82?= =?UTF-8?q?=E7=82=B9=EF=BC=8C=E5=B9=B6=E4=B8=94=E5=85=B6=E4=BD=99=E5=A1=AB?= =?UTF-8?q?=E5=86=99=E4=BA=BA=E5=91=98=E5=AD=90=E6=B5=81=E7=A8=8B=E8=B5=B0?= =?UTF-8?q?=E5=AE=8C=E5=90=8E=E6=97=A0=E6=B3=95=E6=AD=A3=E5=B8=B8=E5=9B=9E?= =?UTF-8?q?=E5=BD=92=E5=88=B0=E4=B8=BB=E6=B5=81=E7=A8=8B=EF=BC=8C=E5=9B=A0?= =?UTF-8?q?=E4=B8=BA=E4=B8=BB=E7=BA=BF=E7=9A=84taskId=E5=B7=B2=E7=BB=8F?= =?UTF-8?q?=E8=A2=AB=E7=AC=AC=E4=B8=80=E4=B8=AA=E8=B5=B0=E5=AE=8C=E7=9A=84?= =?UTF-8?q?=E5=AD=90=E6=B5=81=E7=A8=8B=E7=9A=84=E8=BF=9B=E8=A1=8C=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E6=8F=90=E4=BA=A4=E4=BA=86=EF=BC=8C=E4=B8=BB=E6=B5=81?= =?UTF-8?q?=E7=A8=8BtaskId=E5=B7=B2=E7=BB=8F=E4=B8=8D=E5=AD=98=E5=9C=A8?= =?UTF-8?q?=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../listener/MyGlobalEventListener.java | 31 ++++++++++++++++--- .../StandardInterpretFlowServiceImpl.java | 5 +++ 2 files changed, 32 insertions(+), 4 deletions(-) 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<>();