diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/mapper/xml/ProcessNodeMapper.xml b/laws-modules/src/main/java/com/jero/modules/activiti/mapper/xml/ProcessNodeMapper.xml index cfd64646..748a1c83 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/mapper/xml/ProcessNodeMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/activiti/mapper/xml/ProcessNodeMapper.xml @@ -9,14 +9,12 @@ from process_node pn - left join process_node_link pnl on pn.id = pnl.process_node_id + left join (select * from process_node_link where process_instance_id = #{processInstanceId}) pnl + on pn.id = pnl.process_node_id pn.process_definition_id = #{processDefinitionId} and pn.is_view = 1 - - and pnl.process_instance_id = #{processInstanceId} - group by pn.id 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 7bf487f6..46ac7821 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 @@ -1,5 +1,6 @@ package com.jero.modules.activiti.service; +import cn.hutool.core.collection.CollStreamUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.jero.modules.activiti.entity.ProcessModelNode; import com.jero.modules.activiti.mapper.ProcessModelNodeMapper; @@ -16,6 +17,7 @@ import com.jero.modules.activiti.entity.ProcessNode; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -79,10 +81,13 @@ public class ProcessNodeService extends ServiceImpl viewNodeList = oldNodeList.stream() .filter(node -> node.getIsView() == 1).collect(Collectors.toList()); - + Map map = CollStreamUtil.toMap(processNodeList, ProcessNode::getNodeName, ProcessNode::getXmlNodeId); viewNodeList.forEach(viewNode -> { viewNode.setProcessDefinitionId(processDefinitionId); viewNode.setId(null); + if (map.containsKey(viewNode.getNodeName())){ + viewNode.setXmlNodeId(map.get(viewNode.getNodeName())); + } }); for (ProcessNode processNode : processNodeList) {