diff --git a/src/main/java/neatlogic/module/process/dao/mapper/process/ProcessMapper.java b/src/main/java/neatlogic/module/process/dao/mapper/process/ProcessMapper.java index 1733e7f814c92ab0c364caec1584c85b5927371a..8024a713b30d7239614dd12189abdd5a681d15f5 100644 --- a/src/main/java/neatlogic/module/process/dao/mapper/process/ProcessMapper.java +++ b/src/main/java/neatlogic/module/process/dao/mapper/process/ProcessMapper.java @@ -104,10 +104,14 @@ public interface ProcessMapper extends IProcessCrossoverMapper { int insertProcessStep(ProcessStepVo processStepVo); + int insertProcessStepList(List processStepVo); + // int insertProcessStepFormAttribute(ProcessStepFormAttributeVo processStepFormAttributeVo); int insertProcessStepRel(ProcessStepRelVo processStepRelVo); + int insertProcessStepRelList(List processStepRelList); + // int insertProcessStepTeam(ProcessStepTeamVo processStepTeamVo); int insertProcessStepWorkerPolicy(ProcessStepWorkerPolicyVo processStepWorkerPolicyVo); @@ -135,7 +139,7 @@ public interface ProcessMapper extends IProcessCrossoverMapper { int deleteProcessStepRelByProcessUuid(String processUuid); // int deleteProcessStepTeamByProcessUuid(String processUuid); -// int deleteProcessStepWorkerPolicyByProcessUuid(String processUuid); + int deleteProcessStepWorkerPolicyByProcessUuid(String processUuid); int deleteProcessStepWorkerPolicyByProcessStepUuid(String processUuid); diff --git a/src/main/java/neatlogic/module/process/dao/mapper/process/ProcessMapper.xml b/src/main/java/neatlogic/module/process/dao/mapper/process/ProcessMapper.xml index 76d804b022f534fe75a2cac0c5251f8f13108f2b..568583027b9a81135851e653b86b408ef7504b00 100644 --- a/src/main/java/neatlogic/module/process/dao/mapper/process/ProcessMapper.xml +++ b/src/main/java/neatlogic/module/process/dao/mapper/process/ProcessMapper.xml @@ -549,6 +549,30 @@ ) + + INSERT INTO `process_step` ( + `process_uuid`, + `uuid`, + `name`, + `type`, + `handler`, + `config`, + `description` + ) + VALUES + + ( + #{item.processUuid}, + #{item.uuid}, + #{item.name}, + #{item.type}, + #{item.handler}, + #{item.config, typeHandler=CompressHandler}, + #{item.description} + ) + + + INSERT INTO `process_step_worker_policy` ( `process_uuid`, @@ -589,6 +613,30 @@ ) + + INSERT INTO `process_step_rel` ( + `process_uuid`, + `uuid`, + `from_step_uuid`, + `to_step_uuid`, + `condition`, + `name`, + `type` + ) + VALUES + + ( + #{item.processUuid}, + #{item.uuid}, + #{item.fromStepUuid}, + #{item.toStepUuid}, + #{item.condition}, + #{item.name}, + #{item.type} + ) + + + - + DELETE diff --git a/src/main/java/neatlogic/module/process/service/ProcessServiceImpl.java b/src/main/java/neatlogic/module/process/service/ProcessServiceImpl.java index 4f0349792d1f8ec304744cfffa03fed7968bc6e0..9f5ae7cdac7f10f6a5c6174367dd5cd57e4a1ae7 100644 --- a/src/main/java/neatlogic/module/process/service/ProcessServiceImpl.java +++ b/src/main/java/neatlogic/module/process/service/ProcessServiceImpl.java @@ -34,7 +34,7 @@ import neatlogic.framework.process.crossover.IProcessCrossoverService; import neatlogic.framework.process.dto.*; import neatlogic.framework.process.dto.score.ProcessScoreTemplateVo; import neatlogic.framework.process.exception.process.ProcessNameRepeatException; -import neatlogic.framework.process.exception.process.ProcessStepHandlerNotFoundException; +import neatlogic.framework.process.exception.process.ProcessStepUtilHandlerNotFoundException; import neatlogic.framework.process.exception.sla.SlaCalculateHandlerNotFoundException; import neatlogic.framework.process.sla.core.ISlaCalculateHandler; import neatlogic.framework.process.sla.core.SlaCalculateHandlerFactory; @@ -118,6 +118,9 @@ public class ProcessServiceImpl implements ProcessService, IProcessCrossoverServ return; } + if (Objects.equals(action, "delete")) { + processMapper.deleteProcessStepWorkerPolicyByProcessUuid(processVo.getUuid()); + } JSONObject formConfig = processObj.getJSONObject("formConfig"); if (MapUtils.isNotEmpty(formConfig)) { String formUuid = formConfig.getString("uuid"); @@ -194,7 +197,6 @@ public class ProcessServiceImpl implements ProcessService, IProcessCrossoverServ DependencyManager.delete(NotifyPolicyProcessSlaDependencyHandler.class, slaUuidList); processMapper.deleteProcessSlaByProcessUuid(processVo.getUuid()); } - } String virtualStartStepUuid = "";// 虚拟开始节点uuid Map stepMap = new HashMap<>(); @@ -232,7 +234,9 @@ public class ProcessServiceImpl implements ProcessService, IProcessCrossoverServ processStepUtilHandler.makeupProcessStep(processStepVo, stepConfigObj, action); } } else { - throw new ProcessStepHandlerNotFoundException(handler); + if (Objects.equals(action, "save")) { + throw new ProcessStepUtilHandlerNotFoundException(handler); + } } } stepMap.put(processStepVo.getUuid(), processStepVo); @@ -253,9 +257,17 @@ public class ProcessServiceImpl implements ProcessService, IProcessCrossoverServ } } } + List processStepList = new ArrayList<>(); for (Map.Entry entry : stepMap.entrySet()) { ProcessStepVo processStepVo = entry.getValue(); - processMapper.insertProcessStep(processStepVo); + processStepList.add(processStepVo); + if (processStepList.size() > 50) { + processMapper.insertProcessStepList(processStepList); + processStepList.clear(); + } + } + if (!processStepList.isEmpty()) { + processMapper.insertProcessStepList(processStepList); } } if (Objects.equals(action, "delete")) { @@ -266,6 +278,7 @@ public class ProcessServiceImpl implements ProcessService, IProcessCrossoverServ JSONArray relList = processObj.getJSONArray("connectionList"); if (CollectionUtils.isNotEmpty(relList)) { if (Objects.equals(action, "save")) { + List processStepRelList = new ArrayList<>(); for (int i = 0; i < relList.size(); i++) { JSONObject relObj = relList.getJSONObject(i); String uuid = relObj.getString("uuid"); @@ -281,7 +294,14 @@ public class ProcessServiceImpl implements ProcessService, IProcessCrossoverServ type = ProcessFlowDirection.FORWARD.getValue(); } processStepRelVo.setType(type); - processMapper.insertProcessStepRel(processStepRelVo); + processStepRelList.add(processStepRelVo); + if (processStepRelList.size() > 50) { + processMapper.insertProcessStepRelList(processStepRelList); + processStepRelList.clear(); + } + } + if (!processStepRelList.isEmpty()) { + processMapper.insertProcessStepRelList(processStepRelList); } } else if (Objects.equals(action, "delete")) { processMapper.deleteProcessStepRelByProcessUuid(processVo.getUuid()); diff --git a/src/main/java/neatlogic/module/process/stephandler/makeup/WorkerPolicyConfigMakeupHandler.java b/src/main/java/neatlogic/module/process/stephandler/makeup/WorkerPolicyConfigMakeupHandler.java index 34efc6e21267ef47fc463757bc066a6dee11870d..926ae43d911d8e5c3874584e8744dfca1ab73bc1 100644 --- a/src/main/java/neatlogic/module/process/stephandler/makeup/WorkerPolicyConfigMakeupHandler.java +++ b/src/main/java/neatlogic/module/process/stephandler/makeup/WorkerPolicyConfigMakeupHandler.java @@ -63,9 +63,10 @@ public class WorkerPolicyConfigMakeupHandler implements IProcessStepMakeupHandle processStepWorkerPolicyVo.setConfig(policyObj.getString("config")); processMapper.insertProcessStepWorkerPolicy(processStepWorkerPolicyVo); } - } else if (Objects.equals(action, "delete")) { - processMapper.deleteProcessStepWorkerPolicyByProcessStepUuid(processStepVo.getUuid()); } +// else if (Objects.equals(action, "delete")) { +// processMapper.deleteProcessStepWorkerPolicyByProcessStepUuid(processStepVo.getUuid()); +// } } } }