diff --git a/db/流程图导入后初始sql.sql b/db/流程图导入后初始sql.sql new file mode 100644 index 00000000..72cfd32c --- /dev/null +++ b/db/流程图导入后初始sql.sql @@ -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:%'; +# 法规合规评估流程结束 + +# 标准法规入库/变更流程开始 + +# 标准法规入库/变更流程结束 + +# 标准法规征求意见流程开始 + +# 标准法规征求意见流程结束 + +# 项目合规评估流程开始 + +# 项目合规评估流程结束 + +# 未符合项跟踪流程开始 + +# 未符合项跟踪流程结束 + +# 法规合规评估流程开始 + +# 法规合规评估流程结束 + +# 法规采购流程开始 + +# 法规采购流程结束 + +# 企标计划立项/变更流程-立项开始 + +# 企标计划立项/变更流程-立项结束 + +# 企标计划立项/变更流程-变更开始 + +# 企标计划立项/变更流程-变更结束 + +# 年度制修订计划-各部门主动上报开始 + +# 年度制修订计划-各部门主动上报结束 + +# 年度制修订计划-标准化发起开始 + +# 年度制修订计划-标准化发起结束 + +# 企标制修订流程(草案编写/征求意见/报批)开始 + +# 企标制修订流程(草案编写/征求意见/报批)结束 + +# 企标更改流程开始 + +# 企标更改流程结束 + +# 企标复审流程开始 + +# 企标复审流程结束 + +# 企标废止流程开始 + +# 企标废止流程结束 + +# 企标封存流程开始 + +# 企标封存流程结束 + +# 已封存企标启用流程开始 + +# 已封存企标启用流程结束 + +# 企标稽查计划开始 + +# 企标稽查计划结束 + +# 企标稽查流程开始 + +# 企标稽查流程结束 + +# 稽查延期申请流程开始 + +# 稽查延期申请流程结束 + +# 企标稽查整改开始 + +# 企标稽查整改结束 + +# 权限申请流程开始 + +# 权限申请流程结束 + +# 标准宣贯流程开始 + +# 标准宣贯流程结束 + +# 会后管理流程开始 + +# 会后管理流程结束 diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/entity/ProcessModelNode.java b/laws-modules/src/main/java/com/jero/modules/activiti/entity/ProcessModelNode.java index 1e29be45..56596f47 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/entity/ProcessModelNode.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/entity/ProcessModelNode.java @@ -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 */ diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessModelNodeService.java b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessModelNodeService.java index 92cc97a2..fda5a412 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessModelNodeService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessModelNodeService.java @@ -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 flowElements = process.getFlowElements(); List processModelNodeList = new ArrayList<>(); //审批节点list @@ -72,9 +66,10 @@ public class ProcessModelNodeService extends ServiceImpl 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 getViewNodeList(List processNodeList, String processDefinitionId) { + private List getViewNodeList(List 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 oldNodeList = list(queryWrapper); if (CollectionUtils.isEmpty(oldNodeList)) { - return processNodeList; + return newProcessNodeList; } - List nodeIdList = oldNodeList.stream() + List oldNodeIdList = oldNodeList.stream() .map(ProcessNode::getXmlNodeId).distinct().collect(Collectors.toList()); // 给前端展示的节点 - List viewNodeList = oldNodeList.stream() - .filter(node -> node.getIsView() == 1).collect(Collectors.toList()); - Map 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 oldViewNodeList = oldNodeList.stream() + // .filter(node -> node.getIsView() == 1).collect(Collectors.toList()); + Map 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 getNodeList(String processDefinitionId, String processInstanceId) {