update 流程图导入
This commit is contained in:
@@ -0,0 +1,141 @@
|
||||
# 法规合规评估流程开始
|
||||
# 下面以法规合规评估流程举例
|
||||
# 先修改流程图的id,以免和正在使用的混淆,配置初始sql的id:standard-assessment-1 正在使用的id:standard-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
|
||||
*/
|
||||
|
||||
+5
-9
@@ -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) {
|
||||
|
||||
+17
-17
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user