update 流程图导入

This commit is contained in:
lijiarao
2024-01-23 16:20:17 +08:00
parent 099a64809c
commit c5af015076
4 changed files with 170 additions and 26 deletions
+141
View File
@@ -0,0 +1,141 @@
#
#
# id使sql的idstandard-assessment-1 使idstandard-assessment
# key更新流程图
update process_model_node
set is_approval_node = 0
where process_key = 'standard-assessment';
# 使
# '%standard-assessment%''%standard-assessment-1%'sql后再换回来
SELECT *
FROM process_node
WHERE (process_definition_id LIKE '%standard-assessment%'
OR process_definition_id LIKE '%standard-assessment:9%')
and is_view = 1
ORDER BY process_definition_id, sort;
#
update process_node
set is_view = 0
where process_definition_id like 'standard-assessment:%'
and substr(xml_node_id, -2) in ('_2', '_3', '_4', '_5');
#
update process_node
set is_skip = 1
where process_definition_id like 'standard-assessment:%'
and xml_node_id = 'sjgcsbcgzlbh';
#
update process_node
set can_choose = 0
where process_definition_id like 'standard-assessment:%';
#
update process_node
set transfer_flag = 0
where process_definition_id like 'standard-assessment:%'
and xml_node_id in ('sjgcsbcgzlbh','fggcsfq');
#
update process_node
set sort = case
when xml_node_id = 'fggcsfq' then '1'
when xml_node_id = 'bszgjldxf' then '2'
when xml_node_id = 'mkzrrff_1' then '3'
when xml_node_id = 'sjgcspg_1' then '4'
when xml_node_id = 'mkzrrsp_1' then '5'
when xml_node_id = 'bszgjldsp_1' then '6'
when xml_node_id = 'fggcssp' then '10'
when xml_node_id = 'sjgcsbcgzlbh' then '15'
end
where process_definition_id like 'standard-assessment:%';
#
# /
# /
#
#
#
#
#
#
#
#
#
#
# /-
# /-
# /-
# /-
# -
# -
# -
# -
# //
# //
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
@@ -29,6 +29,13 @@ public class ProcessModelNode {
@ApiModelProperty(value = "主键id")
private String id;
/**
* process_key
*/
@TableField(value = "process_key")
@ApiModelProperty(value = "process_key")
private String processKey;
/**
* 模型id
*/
@@ -9,24 +9,17 @@ import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.modules.activiti.entity.ProcessModelNode;
import com.jero.modules.activiti.enums.VariableTypeEnum;
import com.jero.modules.activiti.listener.CompleteListener;
import com.jero.modules.activiti.listener.CreateListener;
import com.jero.modules.activiti.vo.AddTaskVO;
import lombok.Synchronized;
import lombok.extern.slf4j.Slf4j;
import org.activiti.bpmn.BpmnAutoLayout;
import org.activiti.bpmn.converter.BpmnXMLConverter;
import org.activiti.bpmn.model.*;
import org.activiti.bpmn.model.Process;
import org.activiti.editor.language.json.converter.BpmnJsonConverter;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.repository.Model;
import org.apache.commons.io.IOUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
@@ -62,6 +55,7 @@ public class ProcessModelNodeService extends ServiceImpl<ProcessModelNodeMapper,
}
BpmnModel bpmnModel = new BpmnJsonConverter().convertToBpmnModel(objectNode);
Process process = bpmnModel.getMainProcess();
String id = process.getId();
Collection<FlowElement> flowElements = process.getFlowElements();
List<ProcessModelNode> processModelNodeList = new ArrayList<>();
//审批节点list
@@ -72,9 +66,10 @@ public class ProcessModelNodeService extends ServiceImpl<ProcessModelNodeMapper,
.filter(item -> gatewayIdList.contains(item.getXmlTargetRef()))
.map(ProcessModelNode::getXmlSourceRef)
.collect(Collectors.toList());
//判断是否是审批节点
for (ProcessModelNode processModelNode : processModelNodeList) {
String xmlNodeId = processModelNode.getXmlNodeId();
processModelNode.setProcessKey(id);
//判断是否是审批节点
if (approvalNodeIdList.contains(xmlNodeId) ){
processModelNode.setIsApprovalNode(YesOrNoEnum.YES.getInteger());
}
@@ -383,12 +378,13 @@ public class ProcessModelNodeService extends ServiceImpl<ProcessModelNodeMapper,
processModelNode.setVariableName(inputDataItem.replace("${","").replace("}",""));
}else {
String replace = assignee.replace("${", "").replace("}", "");
processModelNode.setVariableName(replace);
if (multiInstanceElementVariableList.contains(replace)) {
processModelNode.setVariableType(VariableTypeEnum.LIST.getName());
replace += "List";
}else {
processModelNode.setVariableType(VariableTypeEnum.STRING.getName());
}
processModelNode.setVariableName(replace);
}
processModelNode.setSort(sort++);
} else if (flowElement instanceof SequenceFlow) {
@@ -71,7 +71,7 @@ public class ProcessNodeService extends ServiceImpl<ProcessNodeMapper, ProcessNo
* @Date: 2023/11/22 16:39
* @Description: 对流程节点做一下特殊处理
**/
private List<ProcessNode> getViewNodeList(List<ProcessNode> processNodeList, String processDefinitionId) {
private List<ProcessNode> getViewNodeList(List<ProcessNode> newProcessNodeList, String processDefinitionId) {
String[] parts = processDefinitionId.split(":");
String definitionKey = parts[0];
Integer version = Integer.valueOf(parts[1]) - 1;
@@ -81,34 +81,34 @@ public class ProcessNodeService extends ServiceImpl<ProcessNodeMapper, ProcessNo
List<ProcessNode> oldNodeList = list(queryWrapper);
if (CollectionUtils.isEmpty(oldNodeList)) {
return processNodeList;
return newProcessNodeList;
}
List<String> nodeIdList = oldNodeList.stream()
List<String> oldNodeIdList = oldNodeList.stream()
.map(ProcessNode::getXmlNodeId).distinct().collect(Collectors.toList());
// 给前端展示的节点
List<ProcessNode> viewNodeList = oldNodeList.stream()
.filter(node -> node.getIsView() == 1).collect(Collectors.toList());
Map<String, String> map = CollStreamUtil.toMap(processNodeList, ProcessNode::getXmlNodeId, ProcessNode::getNodeName);
viewNodeList.forEach(viewNode -> {
viewNode.setProcessDefinitionId(processDefinitionId);
viewNode.setId(null);
viewNode.setCreateTime(null);
viewNode.setCreateBy(null);
if (map.containsKey(viewNode.getXmlNodeId())) {
viewNode.setNodeName(map.get(viewNode.getXmlNodeId()));
//List<ProcessNode> oldViewNodeList = oldNodeList.stream()
// .filter(node -> node.getIsView() == 1).collect(Collectors.toList());
Map<String, String> newNodeMap = CollStreamUtil.toMap(newProcessNodeList, ProcessNode::getXmlNodeId, ProcessNode::getNodeName);
oldNodeList.forEach(oldNode -> {
oldNode.setProcessDefinitionId(processDefinitionId);
oldNode.setId(null);
oldNode.setCreateTime(null);
oldNode.setCreateBy(null);
if (newNodeMap.containsKey(oldNode.getXmlNodeId())) {
oldNode.setNodeName(newNodeMap.get(oldNode.getXmlNodeId()));
}
});
for (ProcessNode processNode : processNodeList) {
for (ProcessNode newProcessNode : newProcessNodeList) {
// 如果旧列表里面不存在这个名字,即为新增节点
if (!nodeIdList.contains(processNode.getXmlNodeId())) {
viewNodeList.add(processNode);
if (!oldNodeIdList.contains(newProcessNode.getXmlNodeId())) {
oldNodeList.add(newProcessNode);
}
}
return viewNodeList;
return oldNodeList;
}
public List<ProcessNode> getNodeList(String processDefinitionId, String processInstanceId) {