From aa7e05f22a87234f3ef108cf71c43e83f86af2a4 Mon Sep 17 00:00:00 2001 From: liao Date: Wed, 22 Nov 2023 16:44:31 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E6=B5=81=E7=A8=8B=E9=83=A8=E7=BD=B2-?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=8A=82=E7=82=B9=E5=A4=8D=E5=88=B6=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activiti/service/ProcessNodeService.java | 46 +++++++++- .../main/resources/bpmn/标准征求意见流程.bpmn | 83 ++++++++++--------- 2 files changed, 90 insertions(+), 39 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessNodeService.java b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessNodeService.java index cba8842f..825b1a8a 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessNodeService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessNodeService.java @@ -3,6 +3,8 @@ package com.jero.modules.activiti.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.jero.modules.activiti.entity.ProcessModelNode; import com.jero.modules.activiti.mapper.ProcessModelNodeMapper; +import com.jero.modules.activiti.process.fb.common.ProcessDefinitionKey; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -13,6 +15,7 @@ import com.jero.modules.activiti.entity.ProcessNode; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** * @@ -20,6 +23,7 @@ import java.util.List; *@date 2023-09-26 15:12 */ @Service +@Slf4j public class ProcessNodeService extends ServiceImpl { @Resource private ProcessModelNodeMapper processModelNodeMapper; @@ -43,7 +47,47 @@ public class ProcessNodeService extends ServiceImpl viewNodeList = getViewNodeList(processNodeList, processDefinitionId); + + this.saveBatch(viewNodeList); + } + + /** + * @Author: liao + * @Date: 2023/11/22 16:39 + * @Description: 对流程节点做一下特殊处理 + **/ + private List getViewNodeList(List processNodeList, String processDefinitionId) { + String[] parts = processDefinitionId.split(":"); + String definitionKey = parts[0]; + Integer version = Integer.valueOf(parts[1]) - 1; + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.like(ProcessNode::getProcessDefinitionId, definitionKey + ":" + version); + List oldNodeList = list(queryWrapper); + + List nodeNameList = oldNodeList.stream() + .map(ProcessNode::getNodeName).distinct().collect(Collectors.toList()); + + // 给前端展示的节点 + List viewNodeList = oldNodeList.stream() + .filter(node -> node.getIsView() == 1).collect(Collectors.toList()); + + viewNodeList.forEach(viewNode -> { + viewNode.setProcessDefinitionId(processDefinitionId); + viewNode.setId(null); + }); + + for (ProcessNode processNode : processNodeList) { + // 如果旧列表里面不存在这个名字,即为新增节点 + if (!nodeNameList.contains(processNode.getNodeName())) { + viewNodeList.add(processNode); + } + } + + return viewNodeList; } public List getNodeList(String processDefinitionId, String processInstanceId) { diff --git a/laws-modules/src/main/resources/bpmn/标准征求意见流程.bpmn b/laws-modules/src/main/resources/bpmn/标准征求意见流程.bpmn index c9d40b49..1be585b6 100644 --- a/laws-modules/src/main/resources/bpmn/标准征求意见流程.bpmn +++ b/laws-modules/src/main/resources/bpmn/标准征求意见流程.bpmn @@ -1,6 +1,6 @@ - + Flow_1d5objw @@ -144,6 +144,7 @@ Flow_19vxot3 + Flow_06kgad6 Flow_1125yee @@ -161,6 +162,7 @@ Flow_0jjkrst + Flow_06kgad6 ${nrOfInstances== nrOfCompletedInstances} @@ -234,6 +236,7 @@ ${!passThird} + @@ -244,12 +247,6 @@ - - - - - - @@ -274,10 +271,6 @@ - - - - @@ -325,6 +318,10 @@ + + + + @@ -388,25 +385,18 @@ + + + + + + - - - - - - - - - - - - - @@ -415,17 +405,30 @@ + + + + + + + + + + + + + - - - + + + - - - + + + @@ -434,10 +437,6 @@ - - - - @@ -447,6 +446,14 @@ + + + + + + + + @@ -462,10 +469,6 @@ - - - - @@ -501,6 +504,10 @@ + + + +