From 9cdebe5b6183cf67cbe613a6576524b284c175d7 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Thu, 26 Dec 2024 10:25:40 +0800 Subject: [PATCH 1/4] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20IT=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?-=E6=B5=81=E7=A8=8B=E5=9B=BE=E4=BF=9D=E5=AD=98=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1320124261302272]IT服务-流程图保存逻辑优化 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1320124261302272 --- .../crossover/IProcessCrossoverMapper.java | 2 +- .../crossover/IProcessCrossoverService.java | 8 + .../framework/process/dto/ProcessSlaVo.java | 21 +- .../framework/process/dto/ProcessStepVo.java | 186 ++++++----- .../process/dto/ProcessTaskStepVo.java | 18 +- .../framework/process/dto/ProcessVo.java | 288 +++--------------- .../core/IProcessStepInternalHandler.java | 7 + .../core/ProcessStepInternalHandlerBase.java | 11 + 8 files changed, 181 insertions(+), 360 deletions(-) diff --git a/src/main/java/neatlogic/framework/process/crossover/IProcessCrossoverMapper.java b/src/main/java/neatlogic/framework/process/crossover/IProcessCrossoverMapper.java index 32a67354..3899d0e2 100644 --- a/src/main/java/neatlogic/framework/process/crossover/IProcessCrossoverMapper.java +++ b/src/main/java/neatlogic/framework/process/crossover/IProcessCrossoverMapper.java @@ -42,7 +42,7 @@ public interface IProcessCrossoverMapper extends ICrossoverService { ProcessVo getProcessByName(String processName); -// ProcessVo getProcessBaseInfoByUuid(String processUuid); + ProcessVo getProcessBaseInfoByUuid(String processUuid); // List searchProcessStep(ProcessStepVo processStepVo); diff --git a/src/main/java/neatlogic/framework/process/crossover/IProcessCrossoverService.java b/src/main/java/neatlogic/framework/process/crossover/IProcessCrossoverService.java index 4fb98fe0..41063472 100644 --- a/src/main/java/neatlogic/framework/process/crossover/IProcessCrossoverService.java +++ b/src/main/java/neatlogic/framework/process/crossover/IProcessCrossoverService.java @@ -18,6 +18,7 @@ package neatlogic.framework.process.crossover; import neatlogic.framework.crossover.ICrossoverService; +import neatlogic.framework.process.dto.ProcessStepVo; import neatlogic.framework.process.dto.ProcessVo; import neatlogic.framework.process.exception.process.ProcessNameRepeatException; @@ -29,4 +30,11 @@ public interface IProcessCrossoverService extends ICrossoverService { * @throws ProcessNameRepeatException */ int saveProcess(ProcessVo processVo) throws ProcessNameRepeatException; + + /** + * 保存或删除流程步骤的依赖关系数据 + * @param processStepVo 流程步骤信息 + * @param action 保存或删除 + */ + void saveOrDeleteProcessStepDependency(ProcessStepVo processStepVo, String action); } diff --git a/src/main/java/neatlogic/framework/process/dto/ProcessSlaVo.java b/src/main/java/neatlogic/framework/process/dto/ProcessSlaVo.java index 7af3ee6a..4fd09feb 100644 --- a/src/main/java/neatlogic/framework/process/dto/ProcessSlaVo.java +++ b/src/main/java/neatlogic/framework/process/dto/ProcessSlaVo.java @@ -1,12 +1,11 @@ package neatlogic.framework.process.dto; +import org.apache.commons.lang3.StringUtils; + import java.io.Serializable; import java.util.ArrayList; import java.util.List; -import neatlogic.framework.notify.dto.InvokeNotifyPolicyConfigVo; -import org.apache.commons.lang3.StringUtils; - public class ProcessSlaVo implements Serializable { private static final long serialVersionUID = 2183891795903221664L; private String processUuid; @@ -15,7 +14,7 @@ public class ProcessSlaVo implements Serializable { private String calculateHandler; private String config; private List processStepUuidList; - private List notifyPolicyConfigList = new ArrayList<>(); +// private List notifyPolicyConfigList = new ArrayList<>(); public String getUuid() { return uuid; @@ -74,11 +73,11 @@ public class ProcessSlaVo implements Serializable { } } - public List getNotifyPolicyConfigList() { - return notifyPolicyConfigList; - } - - public void setNotifyPolicyConfigList(List notifyPolicyConfigList) { - this.notifyPolicyConfigList = notifyPolicyConfigList; - } +// public List getNotifyPolicyConfigList() { +// return notifyPolicyConfigList; +// } +// +// public void setNotifyPolicyConfigList(List notifyPolicyConfigList) { +// this.notifyPolicyConfigList = notifyPolicyConfigList; +// } } diff --git a/src/main/java/neatlogic/framework/process/dto/ProcessStepVo.java b/src/main/java/neatlogic/framework/process/dto/ProcessStepVo.java index cb33479d..b6ef9fa8 100644 --- a/src/main/java/neatlogic/framework/process/dto/ProcessStepVo.java +++ b/src/main/java/neatlogic/framework/process/dto/ProcessStepVo.java @@ -1,46 +1,42 @@ package neatlogic.framework.process.dto; -import neatlogic.framework.notify.dto.InvokeNotifyPolicyConfigVo; import com.alibaba.fastjson.JSONObject; -import com.alibaba.fastjson.annotation.JSONField; -import org.apache.commons.lang3.StringUtils; import java.io.Serializable; import java.util.Collections; import java.util.List; -import java.util.UUID; public class ProcessStepVo implements Serializable { private static final long serialVersionUID = -1211661404097123528L; private String processUuid; private String uuid; - private String chartUid; +// private String chartUid; private String name; private String type; - private String typeName; +// private String typeName; private String handler; private String config; - private String formUuid; +// private String formUuid; private String description; private JSONObject configObj; private Boolean isWorkerPolicyListSorted = false; - private Boolean isTimeoutPolicyListSorted = false; - private List relList; - private List teamList; +// private Boolean isTimeoutPolicyListSorted = false; +// private List relList; +// private List teamList; private List workerPolicyList; - private List timeoutPolicyList; +// private List timeoutPolicyList; // private List formAttributeList; - private String formSceneUuid; +// private String formSceneUuid; private Long commentTemplateId;//回复模版ID private List tagList; private ProcessStepTaskConfigVo taskConfigVo; - @JSONField(serialize=false) - private InvokeNotifyPolicyConfigVo notifyPolicyConfig; - @JSONField(serialize=false) - private List integrationUuidList; - @JSONField(serialize=false) - private List eoaTemplateIdList; +// @JSONField(serialize=false) +// private InvokeNotifyPolicyConfigVo notifyPolicyConfig; +// @JSONField(serialize=false) +// private List integrationUuidList; +// @JSONField(serialize=false) +// private List eoaTemplateIdList; @Override public boolean equals(Object other) { @@ -69,9 +65,9 @@ public class ProcessStepVo implements Serializable { } public synchronized String getUuid() { - if (StringUtils.isBlank(uuid)) { - uuid = UUID.randomUUID().toString().replace("-", ""); - } +// if (StringUtils.isBlank(uuid)) { +// uuid = UUID.randomUUID().toString().replace("-", ""); +// } return uuid; } @@ -103,13 +99,13 @@ public class ProcessStepVo implements Serializable { this.type = type; } - public String getTypeName() { - return typeName; - } - - public void setTypeName(String typeName) { - this.typeName = typeName; - } +// public String getTypeName() { +// return typeName; +// } +// +// public void setTypeName(String typeName) { +// this.typeName = typeName; +// } public String getHandler() { return handler; @@ -135,21 +131,21 @@ public class ProcessStepVo implements Serializable { this.configObj = configObj; } - public List getRelList() { - return relList; - } - - public void setRelList(List relList) { - this.relList = relList; - } - - public List getTeamList() { - return teamList; - } +// public List getRelList() { +// return relList; +// } +// +// public void setRelList(List relList) { +// this.relList = relList; +// } - public void setTeamList(List teamList) { - this.teamList = teamList; - } +// public List getTeamList() { +// return teamList; +// } +// +// public void setTeamList(List teamList) { +// this.teamList = teamList; +// } public List getWorkerPolicyList() { if (!isWorkerPolicyListSorted && workerPolicyList != null && workerPolicyList.size() > 0) { @@ -163,13 +159,13 @@ public class ProcessStepVo implements Serializable { this.workerPolicyList = workerPolicyList; } - public String getChartUid() { - return chartUid; - } - - public void setChartUid(String chartUid) { - this.chartUid = chartUid; - } +// public String getChartUid() { +// return chartUid; +// } +// +// public void setChartUid(String chartUid) { +// this.chartUid = chartUid; +// } public String getDescription() { return description; @@ -179,17 +175,17 @@ public class ProcessStepVo implements Serializable { this.description = description; } - public List getTimeoutPolicyList() { - if (!isTimeoutPolicyListSorted && timeoutPolicyList != null && timeoutPolicyList.size() > 0) { - Collections.sort(timeoutPolicyList); - isTimeoutPolicyListSorted = true; - } - return timeoutPolicyList; - } - - public void setTimeoutPolicyList(List timeoutPolicyList) { - this.timeoutPolicyList = timeoutPolicyList; - } +// public List getTimeoutPolicyList() { +// if (!isTimeoutPolicyListSorted && timeoutPolicyList != null && timeoutPolicyList.size() > 0) { +// Collections.sort(timeoutPolicyList); +// isTimeoutPolicyListSorted = true; +// } +// return timeoutPolicyList; +// } +// +// public void setTimeoutPolicyList(List timeoutPolicyList) { +// this.timeoutPolicyList = timeoutPolicyList; +// } // public List getFormAttributeList() { // return formAttributeList; @@ -199,37 +195,37 @@ public class ProcessStepVo implements Serializable { // this.formAttributeList = formAttributeList; // } - public String getFormSceneUuid() { - return formSceneUuid; - } - - public void setFormSceneUuid(String formSceneUuid) { - this.formSceneUuid = formSceneUuid; - } - - public String getFormUuid() { - return formUuid; - } - - public void setFormUuid(String formUuid) { - this.formUuid = formUuid; - } - - public InvokeNotifyPolicyConfigVo getNotifyPolicyConfig() { - return notifyPolicyConfig; - } +// public String getFormSceneUuid() { +// return formSceneUuid; +// } +// +// public void setFormSceneUuid(String formSceneUuid) { +// this.formSceneUuid = formSceneUuid; +// } - public void setNotifyPolicyConfig(InvokeNotifyPolicyConfigVo notifyPolicyConfig) { - this.notifyPolicyConfig = notifyPolicyConfig; - } +// public String getFormUuid() { +// return formUuid; +// } +// +// public void setFormUuid(String formUuid) { +// this.formUuid = formUuid; +// } - public List getIntegrationUuidList() { - return integrationUuidList; - } +// public InvokeNotifyPolicyConfigVo getNotifyPolicyConfig() { +// return notifyPolicyConfig; +// } +// +// public void setNotifyPolicyConfig(InvokeNotifyPolicyConfigVo notifyPolicyConfig) { +// this.notifyPolicyConfig = notifyPolicyConfig; +// } - public void setIntegrationUuidList(List integrationUuidList) { - this.integrationUuidList = integrationUuidList; - } +// public List getIntegrationUuidList() { +// return integrationUuidList; +// } +// +// public void setIntegrationUuidList(List integrationUuidList) { +// this.integrationUuidList = integrationUuidList; +// } public Long getCommentTemplateId() { return commentTemplateId; @@ -255,11 +251,11 @@ public class ProcessStepVo implements Serializable { this.taskConfigVo = taskConfigVo; } - public List getEoaTemplateIdList() { - return eoaTemplateIdList; - } - - public void setEoaTemplateIdList(List eoaTemplateIdList) { - this.eoaTemplateIdList = eoaTemplateIdList; - } +// public List getEoaTemplateIdList() { +// return eoaTemplateIdList; +// } +// +// public void setEoaTemplateIdList(List eoaTemplateIdList) { +// this.eoaTemplateIdList = eoaTemplateIdList; +// } } diff --git a/src/main/java/neatlogic/framework/process/dto/ProcessTaskStepVo.java b/src/main/java/neatlogic/framework/process/dto/ProcessTaskStepVo.java index 6ef0ab7d..5f9d818f 100644 --- a/src/main/java/neatlogic/framework/process/dto/ProcessTaskStepVo.java +++ b/src/main/java/neatlogic/framework/process/dto/ProcessTaskStepVo.java @@ -49,7 +49,7 @@ public class ProcessTaskStepVo extends BasePageVo { private String handler; @EntityField(name = "步骤类型", type = ApiParamType.STRING) private String type; - private String formUuid; +// private String formUuid; private Integer isActive = 0; @EntityField(name = "激活时间", type = ApiParamType.LONG) private Date activeTime; @@ -184,7 +184,7 @@ public class ProcessTaskStepVo extends BasePageVo { this.setName(processStepVo.getName()); this.setHandler(processStepVo.getHandler()); this.setType(processStepVo.getType()); - this.setFormUuid(processStepVo.getFormUuid()); +// this.setFormUuid(processStepVo.getFormUuid()); // if (processStepVo.getFormAttributeList() != null && processStepVo.getFormAttributeList().size() > 0) { // List attributeList = new ArrayList<>(); @@ -565,13 +565,13 @@ public class ProcessTaskStepVo extends BasePageVo { this.expireTimeLong = expireTimeLong; } - public String getFormUuid() { - return formUuid; - } - - public void setFormUuid(String formUuid) { - this.formUuid = formUuid; - } +// public String getFormUuid() { +// return formUuid; +// } +// +// public void setFormUuid(String formUuid) { +// this.formUuid = formUuid; +// } // public List getFormAttributeList() { // return formAttributeList; diff --git a/src/main/java/neatlogic/framework/process/dto/ProcessVo.java b/src/main/java/neatlogic/framework/process/dto/ProcessVo.java index 437d4eec..04639107 100644 --- a/src/main/java/neatlogic/framework/process/dto/ProcessVo.java +++ b/src/main/java/neatlogic/framework/process/dto/ProcessVo.java @@ -16,27 +16,14 @@ along with this program. If not, see .*/ package neatlogic.framework.process.dto; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.alibaba.fastjson.JSONPath; import com.alibaba.fastjson.annotation.JSONField; import neatlogic.framework.common.constvalue.ApiParamType; import neatlogic.framework.common.dto.BaseEditorVo; -import neatlogic.framework.notify.dto.InvokeNotifyPolicyConfigVo; -import neatlogic.framework.process.constvalue.ProcessFlowDirection; -import neatlogic.framework.process.constvalue.ProcessStepHandlerType; -import neatlogic.framework.process.constvalue.ProcessStepType; import neatlogic.framework.process.dto.score.ProcessScoreTemplateVo; -import neatlogic.framework.process.exception.process.ProcessStepHandlerNotFoundException; -import neatlogic.framework.process.stephandler.core.IProcessStepInternalHandler; -import neatlogic.framework.process.stephandler.core.ProcessStepHandlerTypeFactory; -import neatlogic.framework.process.stephandler.core.ProcessStepInternalHandlerFactory; import neatlogic.framework.restful.annotation.EntityField; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.collections4.MapUtils; -import org.apache.commons.lang3.StringUtils; -import java.util.*; +import java.util.List; public class ProcessVo extends BaseEditorVo { @@ -46,8 +33,8 @@ public class ProcessVo extends BaseEditorVo { @EntityField(name = "common.name", type = ApiParamType.STRING) private String name; - @EntityField(name = "common.typename", type = ApiParamType.STRING) - private String typeName; +// @EntityField(name = "common.typename", type = ApiParamType.STRING) +// private String typeName; @EntityField(name = "common.isactive", type = ApiParamType.INTEGER) private Integer isActive; @@ -59,26 +46,26 @@ public class ProcessVo extends BaseEditorVo { private int referenceCount; // @EntityField(name = "流程表单uuid", type = ApiParamType.STRING) private String formUuid; + @JSONField(serialize = false) private List stepList; - - // @EntityField(name = "流程属性列表", type = ApiParamType.JSONARRAY) + @JSONField(serialize = false) private List stepRelList; - - private List slaList; - - private ProcessScoreTemplateVo processScoreTemplateVo; @JSONField(serialize = false) - private InvokeNotifyPolicyConfigVo notifyPolicyConfig; + private List slaList; @JSONField(serialize = false) - private List integrationUuidList = new ArrayList<>(); + private ProcessScoreTemplateVo processScoreTemplateVo; +// @JSONField(serialize = false) +// private InvokeNotifyPolicyConfigVo notifyPolicyConfig; +// @JSONField(serialize = false) +// private List integrationUuidList = new ArrayList<>(); @JSONField(serialize = false) private String configStr; public synchronized String getUuid() { - if (StringUtils.isBlank(uuid)) { - uuid = UUID.randomUUID().toString().replace("-", ""); - } +// if (StringUtils.isBlank(uuid)) { +// uuid = UUID.randomUUID().toString().replace("-", ""); +// } return uuid; } @@ -94,13 +81,13 @@ public class ProcessVo extends BaseEditorVo { this.name = name; } - public String getTypeName() { - return typeName; - } - - public void setTypeName(String typeName) { - this.typeName = typeName; - } +// public String getTypeName() { +// return typeName; +// } +// +// public void setTypeName(String typeName) { +// this.typeName = typeName; +// } public Integer getIsActive() { return isActive; @@ -111,211 +98,20 @@ public class ProcessVo extends BaseEditorVo { } public JSONObject getConfig() { + if (config == null && configStr != null) { + config = JSON.parseObject(configStr); + } return config; } - public void setConfig(String configStr) { - this.config = JSON.parseObject(configStr); + public void setConfig(JSONObject config) { + this.config = config; } public List getStepList() { return stepList; } - public void makeupConfigObj() { - configStr = getConfigStr(); - JSONObject processObj = (JSONObject) JSONPath.read(configStr, "process"); - if (MapUtils.isEmpty(processObj)) { - return; - } - /* 组装表单属性 **/ -// Map> processStepFormAttributeMap = new HashMap<>(); - JSONObject formConfig = processObj.getJSONObject("formConfig"); - if (MapUtils.isNotEmpty(formConfig)) { - String formUuid = formConfig.getString("uuid"); - if (StringUtils.isNotBlank(formUuid)) { - this.setFormUuid(formUuid); -// JSONArray authorityList = formConfig.getJSONArray("authorityList"); -// if (CollectionUtils.isNotEmpty(authorityList)) { -// for (int i = 0; i < authorityList.size(); i++) { -// JSONObject authorityObj = authorityList.getJSONObject(i); -// JSONArray processStepUuidList = authorityObj.getJSONArray("processStepUuidList"); -// JSONArray attributeUuidList = authorityObj.getJSONArray("attributeUuidList"); -// String action = authorityObj.getString("action"); -// if (StringUtils.isBlank(action)) { -// continue; -// } -// String type = authorityObj.getString("type"); -// if (StringUtils.isBlank(type)) { -// continue; -// } -// if (CollectionUtils.isNotEmpty(processStepUuidList) -// && CollectionUtils.isNotEmpty(attributeUuidList) && StringUtils.isNotBlank(action)) { -// for (int j = 0; j < processStepUuidList.size(); j++) { -// String processStepUuid = processStepUuidList.getString(j); -// if (StringUtils.isBlank(processStepUuid)) { -// continue; -// } -// for (int k = 0; k < attributeUuidList.size(); k++) { -// String attributeUuid = attributeUuidList.getString(k); -// if (StringUtils.isBlank(attributeUuid)) { -// continue; -// } -// ProcessStepFormAttributeVo processStepFormAttributeVo = new ProcessStepFormAttributeVo(); -// processStepFormAttributeVo.setProcessUuid(this.getUuid()); -// processStepFormAttributeVo.setFormUuid(this.getFormUuid()); -// processStepFormAttributeVo.setProcessStepUuid(processStepUuid); -// processStepFormAttributeVo.setAttributeUuid(attributeUuid); -// processStepFormAttributeVo.setAction(action); -// processStepFormAttributeVo.setType(type); -// List processStepFormAttributeList = processStepFormAttributeMap.computeIfAbsent(processStepUuid, key -> new ArrayList<>()); -// if (!processStepFormAttributeList.contains(processStepFormAttributeVo)) { -// processStepFormAttributeList.add(processStepFormAttributeVo); -// } -// } -// -// } -// } -// } -// } - } - } - JSONArray slaList = processObj.getJSONArray("slaList"); - if (CollectionUtils.isNotEmpty(slaList)) { - this.slaList = new ArrayList<>(); - for (int i = 0; i < slaList.size(); i++) { - JSONObject slaObj = slaList.getJSONObject(i); - /* 关联了步骤的sla策略才保存 **/ - JSONArray processStepUuidList = slaObj.getJSONArray("processStepUuidList"); - if (CollectionUtils.isNotEmpty(processStepUuidList)) { - ProcessSlaVo processSlaVo = new ProcessSlaVo(); - processSlaVo.setProcessUuid(this.getUuid()); - processSlaVo.setUuid(slaObj.getString("uuid")); - processSlaVo.setName(slaObj.getString("name")); - processSlaVo.setCalculateHandler(slaObj.getString("calculateHandler")); - processSlaVo.setConfig(slaObj.toJSONString()); - this.slaList.add(processSlaVo); - for (int p = 0; p < processStepUuidList.size(); p++) { - processSlaVo.addProcessStepUuid(processStepUuidList.getString(p)); - } - - JSONArray notifyPolicyList = slaObj.getJSONArray("notifyPolicyList"); - if (CollectionUtils.isNotEmpty(notifyPolicyList)) { - List notifyPolicyConfigList = new ArrayList<>(); - for (int j = 0; j < notifyPolicyList.size(); j++) { - JSONObject notifyPolicy = notifyPolicyList.getJSONObject(j); - if (MapUtils.isNotEmpty(notifyPolicy)) { - notifyPolicyConfigList.add(notifyPolicy.getObject("notifyPolicyConfig", InvokeNotifyPolicyConfigVo.class)); - } - } - processSlaVo.setNotifyPolicyConfigList(notifyPolicyConfigList); - } - } - } - } - String virtualStartStepUuid = "";// 虚拟开始节点uuid - Map stepMap = new HashMap<>(); - JSONArray stepList = processObj.getJSONArray("stepList"); - if (stepList != null && !stepList.isEmpty()) { - this.stepList = new ArrayList<>(); - for (int i = 0; i < stepList.size(); i++) { - JSONObject stepObj = stepList.getJSONObject(i); - String handler = stepObj.getString("handler"); - if (ProcessStepHandlerType.START.getHandler().equals(handler)) {// 找到虚拟开始节点uuid,虚拟开始节点不写入process_step表 - virtualStartStepUuid = stepObj.getString("uuid"); - continue; - } - ProcessStepVo processStepVo = new ProcessStepVo(); - processStepVo.setProcessUuid(this.getUuid()); - processStepVo.setConfig(stepObj.getString("stepConfig")); - - String uuid = stepObj.getString("uuid"); - if (StringUtils.isNotBlank(uuid)) { - processStepVo.setUuid(uuid); -// processStepVo.setFormAttributeList(processStepFormAttributeMap.get(uuid)); - } - String name = stepObj.getString("name"); - if (StringUtils.isNotBlank(name)) { - processStepVo.setName(name); - } - - if (StringUtils.isNotBlank(handler)) { - processStepVo.setHandler(handler); - String type = ProcessStepHandlerTypeFactory.getType(handler); - processStepVo.setType(type); - IProcessStepInternalHandler procssStepUtilHandler = ProcessStepInternalHandlerFactory.getHandler(handler); - if (procssStepUtilHandler != null) { - JSONObject stepConfigObj = stepObj.getJSONObject("stepConfig"); - if (stepConfigObj != null) { - procssStepUtilHandler.makeupProcessStep(processStepVo, stepConfigObj); - } - } else { - throw new ProcessStepHandlerNotFoundException(handler); - } - } - this.stepList.add(processStepVo); - stepMap.put(processStepVo.getUuid(), processStepVo); - } - } - - JSONArray relList = processObj.getJSONArray("connectionList"); - if (relList != null && !relList.isEmpty()) { - this.stepRelList = new ArrayList<>(); - for (int i = 0; i < relList.size(); i++) { - ProcessStepRelVo processStepRelVo = relList.getObject(i, ProcessStepRelVo.class); -// JSONObject relObj = relList.getJSONObject(i); - String fromStepUuid = processStepRelVo.getFromStepUuid(); - String toStepUuid = processStepRelVo.getToStepUuid(); - if (virtualStartStepUuid.equals(fromStepUuid)) {// 通过虚拟开始节点连线找到真正的开始步骤 - ProcessStepVo startStep = stepMap.get(toStepUuid); - if (startStep != null) { - startStep.setType(ProcessStepType.START.getValue()); - } - continue; - } -// ProcessStepRelVo processStepRelVo = new ProcessStepRelVo(); -// processStepRelVo.setFromStepUuid(fromStepUuid); -// processStepRelVo.setToStepUuid(toStepUuid); -// processStepRelVo.setUuid(relObj.getString("uuid")); - processStepRelVo.setProcessUuid(this.getUuid()); -// processStepRelVo.setCondition(relObj.getString("conditionConfig")); -// processStepRelVo.setName(relObj.getString("name")); - String type = processStepRelVo.getType(); - if (!ProcessFlowDirection.BACKWARD.getValue().equals(type)) { - type = ProcessFlowDirection.FORWARD.getValue(); - } - processStepRelVo.setType(type); - stepRelList.add(processStepRelVo); - } - } - /* 组装评分设置 */ - JSONObject scoreConfig = processObj.getJSONObject("scoreConfig"); - if (MapUtils.isNotEmpty(scoreConfig)) { - Integer isActive = scoreConfig.getInteger("isActive"); - if (Objects.equals(isActive, 1)) { - this.processScoreTemplateVo = JSON.toJavaObject(scoreConfig, ProcessScoreTemplateVo.class); - this.processScoreTemplateVo.setProcessUuid(uuid); - } - } - /* 组装通知策略 **/ - JSONObject processConfig = processObj.getJSONObject("processConfig"); - if (MapUtils.isNotEmpty(processConfig)) { - notifyPolicyConfig = processConfig.getObject("notifyPolicyConfig", InvokeNotifyPolicyConfigVo.class); - } - - JSONArray actionList = (JSONArray) JSONPath.read(configStr, "process.processConfig.actionConfig.actionList"); - if (CollectionUtils.isNotEmpty(actionList)) { - integrationUuidList = new ArrayList<>(); - for (int i = 0; i < actionList.size(); i++) { - JSONObject ationObj = actionList.getJSONObject(i); - String integrationUuid = ationObj.getString("integrationUuid"); - if (StringUtils.isNotBlank(integrationUuid)) { - integrationUuidList.add(integrationUuid); - } - } - } - } - public void setStepList(List stepList) { this.stepList = stepList; } @@ -361,21 +157,21 @@ public class ProcessVo extends BaseEditorVo { this.processScoreTemplateVo = processScoreTemplateVo; } - public InvokeNotifyPolicyConfigVo getNotifyPolicyConfig() { - return notifyPolicyConfig; - } - - public void setNotifyPolicyConfig(InvokeNotifyPolicyConfigVo notifyPolicyConfig) { - this.notifyPolicyConfig = notifyPolicyConfig; - } - - public List getIntegrationUuidList() { - return integrationUuidList; - } +// public InvokeNotifyPolicyConfigVo getNotifyPolicyConfig() { +// return notifyPolicyConfig; +// } +// +// public void setNotifyPolicyConfig(InvokeNotifyPolicyConfigVo notifyPolicyConfig) { +// this.notifyPolicyConfig = notifyPolicyConfig; +// } - public void setIntegrationUuidList(List integrationUuidList) { - this.integrationUuidList = integrationUuidList; - } +// public List getIntegrationUuidList() { +// return integrationUuidList; +// } +// +// public void setIntegrationUuidList(List integrationUuidList) { +// this.integrationUuidList = integrationUuidList; +// } public String getConfigStr() { if (config != null) { @@ -383,4 +179,8 @@ public class ProcessVo extends BaseEditorVo { } return configStr; } + + public void setConfigStr(String configStr) { + this.configStr = configStr; + } } diff --git a/src/main/java/neatlogic/framework/process/stephandler/core/IProcessStepInternalHandler.java b/src/main/java/neatlogic/framework/process/stephandler/core/IProcessStepInternalHandler.java index 2fa7a8ad..bd671cb4 100644 --- a/src/main/java/neatlogic/framework/process/stephandler/core/IProcessStepInternalHandler.java +++ b/src/main/java/neatlogic/framework/process/stephandler/core/IProcessStepInternalHandler.java @@ -66,6 +66,13 @@ public interface IProcessStepInternalHandler { } } + /** + * 保存或删除流程步骤的依赖关系数据 + * @param processStepVo 流程步骤信息 + * @param action 保存或删除 + */ + void saveOrDeleteProcessStepDependency(ProcessStepVo processStepVo, String action); + /** * @return void * @Description: 子任务状态发生变化后,对子任务处理人的在 processtask_step_worker表和processtask_step_user表的数据做对应的变化 diff --git a/src/main/java/neatlogic/framework/process/stephandler/core/ProcessStepInternalHandlerBase.java b/src/main/java/neatlogic/framework/process/stephandler/core/ProcessStepInternalHandlerBase.java index 10e1b0ce..8ce13f93 100644 --- a/src/main/java/neatlogic/framework/process/stephandler/core/ProcessStepInternalHandlerBase.java +++ b/src/main/java/neatlogic/framework/process/stephandler/core/ProcessStepInternalHandlerBase.java @@ -312,4 +312,15 @@ public abstract class ProcessStepInternalHandlerBase implements IProcessStepInte IProcessTaskCrossoverMapper processTaskCrossoverMapper = CrossoverServiceFactory.getApi(IProcessTaskCrossoverMapper.class); return processTaskCrossoverMapper.getToProcessTaskStepByFromIdAndType(processTaskStepVo.getId(), type); } + + @Override + public void saveOrDeleteProcessStepDependency(ProcessStepVo processStepVo, String action) { + IProcessCrossoverService processCrossoverService = CrossoverServiceFactory.getApi(IProcessCrossoverService.class); + processCrossoverService.saveOrDeleteProcessStepDependency(processStepVo, action); + mySaveOrDeleteDependency(processStepVo, action); + } + + protected void mySaveOrDeleteDependency(ProcessStepVo processStepVo, String action) { + + } } -- Gitee From 7db8895ea2a1407399076abda119ccc150dd22b0 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Thu, 26 Dec 2024 15:42:54 +0800 Subject: [PATCH 2/4] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20IT=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?-=E6=B5=81=E7=A8=8B=E5=9B=BE=E4=BF=9D=E5=AD=98=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1320124261302272]IT服务-流程图保存逻辑优化 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1320124261302272 --- .../process/crossover/IProcessCrossoverService.java | 8 -------- .../stephandler/core/IProcessStepInternalHandler.java | 11 ++--------- .../stephandler/core/IProcessStepMakeupHandler.java | 2 +- .../core/ProcessStepInternalHandlerBase.java | 11 ----------- 4 files changed, 3 insertions(+), 29 deletions(-) diff --git a/src/main/java/neatlogic/framework/process/crossover/IProcessCrossoverService.java b/src/main/java/neatlogic/framework/process/crossover/IProcessCrossoverService.java index 41063472..4fb98fe0 100644 --- a/src/main/java/neatlogic/framework/process/crossover/IProcessCrossoverService.java +++ b/src/main/java/neatlogic/framework/process/crossover/IProcessCrossoverService.java @@ -18,7 +18,6 @@ package neatlogic.framework.process.crossover; import neatlogic.framework.crossover.ICrossoverService; -import neatlogic.framework.process.dto.ProcessStepVo; import neatlogic.framework.process.dto.ProcessVo; import neatlogic.framework.process.exception.process.ProcessNameRepeatException; @@ -30,11 +29,4 @@ public interface IProcessCrossoverService extends ICrossoverService { * @throws ProcessNameRepeatException */ int saveProcess(ProcessVo processVo) throws ProcessNameRepeatException; - - /** - * 保存或删除流程步骤的依赖关系数据 - * @param processStepVo 流程步骤信息 - * @param action 保存或删除 - */ - void saveOrDeleteProcessStepDependency(ProcessStepVo processStepVo, String action); } diff --git a/src/main/java/neatlogic/framework/process/stephandler/core/IProcessStepInternalHandler.java b/src/main/java/neatlogic/framework/process/stephandler/core/IProcessStepInternalHandler.java index bd671cb4..b52c1ea1 100644 --- a/src/main/java/neatlogic/framework/process/stephandler/core/IProcessStepInternalHandler.java +++ b/src/main/java/neatlogic/framework/process/stephandler/core/IProcessStepInternalHandler.java @@ -55,24 +55,17 @@ public interface IProcessStepInternalHandler { * @return void * @Description: 组装步骤节点信息,将步骤stepConfig配置信息中的字段值写入到ProcessStepVo对象对应属性中 */ - default void makeupProcessStep(ProcessStepVo processStepVo, JSONObject stepConfigObj) { + default void makeupProcessStep(ProcessStepVo processStepVo, JSONObject stepConfigObj, String action) { if (MapUtils.isNotEmpty(stepConfigObj)) { for (Map.Entry entry : stepConfigObj.entrySet()) { IProcessStepMakeupHandler handler = ProcessStepMakeupHandlerFactory.getHandlers(entry.getKey()); if (handler != null) { - handler.makeup(this, processStepVo, stepConfigObj); + handler.makeup(this, processStepVo, stepConfigObj, action); } } } } - /** - * 保存或删除流程步骤的依赖关系数据 - * @param processStepVo 流程步骤信息 - * @param action 保存或删除 - */ - void saveOrDeleteProcessStepDependency(ProcessStepVo processStepVo, String action); - /** * @return void * @Description: 子任务状态发生变化后,对子任务处理人的在 processtask_step_worker表和processtask_step_user表的数据做对应的变化 diff --git a/src/main/java/neatlogic/framework/process/stephandler/core/IProcessStepMakeupHandler.java b/src/main/java/neatlogic/framework/process/stephandler/core/IProcessStepMakeupHandler.java index 4ca724d6..39fc818f 100644 --- a/src/main/java/neatlogic/framework/process/stephandler/core/IProcessStepMakeupHandler.java +++ b/src/main/java/neatlogic/framework/process/stephandler/core/IProcessStepMakeupHandler.java @@ -26,5 +26,5 @@ import neatlogic.framework.process.dto.ProcessStepVo; public interface IProcessStepMakeupHandler { String getName(); - void makeup(IProcessStepInternalHandler processStepInternalHandler, ProcessStepVo processStepVo, JSONObject stepConfigObj); + void makeup(IProcessStepInternalHandler processStepInternalHandler, ProcessStepVo processStepVo, JSONObject stepConfigObj, String action); } diff --git a/src/main/java/neatlogic/framework/process/stephandler/core/ProcessStepInternalHandlerBase.java b/src/main/java/neatlogic/framework/process/stephandler/core/ProcessStepInternalHandlerBase.java index 8ce13f93..10e1b0ce 100644 --- a/src/main/java/neatlogic/framework/process/stephandler/core/ProcessStepInternalHandlerBase.java +++ b/src/main/java/neatlogic/framework/process/stephandler/core/ProcessStepInternalHandlerBase.java @@ -312,15 +312,4 @@ public abstract class ProcessStepInternalHandlerBase implements IProcessStepInte IProcessTaskCrossoverMapper processTaskCrossoverMapper = CrossoverServiceFactory.getApi(IProcessTaskCrossoverMapper.class); return processTaskCrossoverMapper.getToProcessTaskStepByFromIdAndType(processTaskStepVo.getId(), type); } - - @Override - public void saveOrDeleteProcessStepDependency(ProcessStepVo processStepVo, String action) { - IProcessCrossoverService processCrossoverService = CrossoverServiceFactory.getApi(IProcessCrossoverService.class); - processCrossoverService.saveOrDeleteProcessStepDependency(processStepVo, action); - mySaveOrDeleteDependency(processStepVo, action); - } - - protected void mySaveOrDeleteDependency(ProcessStepVo processStepVo, String action) { - - } } -- Gitee From 20b16d24197172eef33c838f30d18ce5fab861c4 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Thu, 26 Dec 2024 16:02:56 +0800 Subject: [PATCH 3/4] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20IT=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?-=E6=B5=81=E7=A8=8B=E5=9B=BE=E4=BF=9D=E5=AD=98=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1320124261302272]IT服务-流程图保存逻辑优化 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1320124261302272 --- .../framework/process/dto/ProcessStepVo.java | 48 ++++++++-------- .../framework/process/dto/ProcessVo.java | 55 +++++++++---------- 2 files changed, 51 insertions(+), 52 deletions(-) diff --git a/src/main/java/neatlogic/framework/process/dto/ProcessStepVo.java b/src/main/java/neatlogic/framework/process/dto/ProcessStepVo.java index b6ef9fa8..be2bf68d 100644 --- a/src/main/java/neatlogic/framework/process/dto/ProcessStepVo.java +++ b/src/main/java/neatlogic/framework/process/dto/ProcessStepVo.java @@ -28,9 +28,9 @@ public class ProcessStepVo implements Serializable { // private List timeoutPolicyList; // private List formAttributeList; // private String formSceneUuid; - private Long commentTemplateId;//回复模版ID - private List tagList; - private ProcessStepTaskConfigVo taskConfigVo; +// private Long commentTemplateId;//回复模版ID +// private List tagList; +// private ProcessStepTaskConfigVo taskConfigVo; // @JSONField(serialize=false) // private InvokeNotifyPolicyConfigVo notifyPolicyConfig; // @JSONField(serialize=false) @@ -227,29 +227,29 @@ public class ProcessStepVo implements Serializable { // this.integrationUuidList = integrationUuidList; // } - public Long getCommentTemplateId() { - return commentTemplateId; - } - - public void setCommentTemplateId(Long commentTemplateId) { - this.commentTemplateId = commentTemplateId; - } - - public List getTagList() { - return tagList; - } - - public void setTagList(List tagList) { - this.tagList = tagList; - } +// public Long getCommentTemplateId() { +// return commentTemplateId; +// } +// +// public void setCommentTemplateId(Long commentTemplateId) { +// this.commentTemplateId = commentTemplateId; +// } - public ProcessStepTaskConfigVo getTaskConfigVo() { - return taskConfigVo; - } +// public List getTagList() { +// return tagList; +// } +// +// public void setTagList(List tagList) { +// this.tagList = tagList; +// } - public void setTaskConfigVo(ProcessStepTaskConfigVo taskConfigVo) { - this.taskConfigVo = taskConfigVo; - } +// public ProcessStepTaskConfigVo getTaskConfigVo() { +// return taskConfigVo; +// } +// +// public void setTaskConfigVo(ProcessStepTaskConfigVo taskConfigVo) { +// this.taskConfigVo = taskConfigVo; +// } // public List getEoaTemplateIdList() { // return eoaTemplateIdList; diff --git a/src/main/java/neatlogic/framework/process/dto/ProcessVo.java b/src/main/java/neatlogic/framework/process/dto/ProcessVo.java index 04639107..c7ab1a22 100644 --- a/src/main/java/neatlogic/framework/process/dto/ProcessVo.java +++ b/src/main/java/neatlogic/framework/process/dto/ProcessVo.java @@ -20,7 +20,6 @@ import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.annotation.JSONField; import neatlogic.framework.common.constvalue.ApiParamType; import neatlogic.framework.common.dto.BaseEditorVo; -import neatlogic.framework.process.dto.score.ProcessScoreTemplateVo; import neatlogic.framework.restful.annotation.EntityField; import java.util.List; @@ -48,12 +47,12 @@ public class ProcessVo extends BaseEditorVo { private String formUuid; @JSONField(serialize = false) private List stepList; - @JSONField(serialize = false) - private List stepRelList; - @JSONField(serialize = false) - private List slaList; - @JSONField(serialize = false) - private ProcessScoreTemplateVo processScoreTemplateVo; +// @JSONField(serialize = false) +// private List stepRelList; +// @JSONField(serialize = false) +// private List slaList; +// @JSONField(serialize = false) +// private ProcessScoreTemplateVo processScoreTemplateVo; // @JSONField(serialize = false) // private InvokeNotifyPolicyConfigVo notifyPolicyConfig; // @JSONField(serialize = false) @@ -116,13 +115,13 @@ public class ProcessVo extends BaseEditorVo { this.stepList = stepList; } - public List getStepRelList() { - return stepRelList; - } - - public void setStepRelList(List stepRelList) { - this.stepRelList = stepRelList; - } +// public List getStepRelList() { +// return stepRelList; +// } +// +// public void setStepRelList(List stepRelList) { +// this.stepRelList = stepRelList; +// } public String getFormUuid() { return formUuid; @@ -141,21 +140,21 @@ public class ProcessVo extends BaseEditorVo { this.referenceCount = referenceCount; } - public List getSlaList() { - return slaList; - } - - public void setSlaList(List slaList) { - this.slaList = slaList; - } - - public ProcessScoreTemplateVo getProcessScoreTemplateVo() { - return processScoreTemplateVo; - } +// public List getSlaList() { +// return slaList; +// } +// +// public void setSlaList(List slaList) { +// this.slaList = slaList; +// } - public void setProcessScoreTemplateVo(ProcessScoreTemplateVo processScoreTemplateVo) { - this.processScoreTemplateVo = processScoreTemplateVo; - } +// public ProcessScoreTemplateVo getProcessScoreTemplateVo() { +// return processScoreTemplateVo; +// } +// +// public void setProcessScoreTemplateVo(ProcessScoreTemplateVo processScoreTemplateVo) { +// this.processScoreTemplateVo = processScoreTemplateVo; +// } // public InvokeNotifyPolicyConfigVo getNotifyPolicyConfig() { // return notifyPolicyConfig; -- Gitee From ed78a2a4fcc26390b89486c11400ecac78e8683d Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Thu, 26 Dec 2024 16:04:16 +0800 Subject: [PATCH 4/4] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20IT=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?-=E6=B5=81=E7=A8=8B=E5=9B=BE=E4=BF=9D=E5=AD=98=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1320124261302272]IT服务-流程图保存逻辑优化 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1320124261302272 --- .../framework/process/util/ProcessConfigUtil.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/neatlogic/framework/process/util/ProcessConfigUtil.java b/src/main/java/neatlogic/framework/process/util/ProcessConfigUtil.java index 6cd43089..f87f78d4 100644 --- a/src/main/java/neatlogic/framework/process/util/ProcessConfigUtil.java +++ b/src/main/java/neatlogic/framework/process/util/ProcessConfigUtil.java @@ -21,7 +21,10 @@ import com.alibaba.fastjson.JSONPath; import neatlogic.framework.form.constvalue.FormAttributeAction; import neatlogic.framework.form.constvalue.FormAttributeAuthRange; import neatlogic.framework.form.constvalue.FormAttributeAuthType; -import neatlogic.framework.process.constvalue.*; +import neatlogic.framework.process.constvalue.ProcessStepHandlerType; +import neatlogic.framework.process.constvalue.ProcessTaskStepStatus; +import neatlogic.framework.process.constvalue.ReplaceableText; +import neatlogic.framework.process.constvalue.WorkerPolicy; import neatlogic.framework.process.exception.process.ProcessConfigException; import neatlogic.framework.process.exception.process.ProcessStepUtilHandlerNotFoundException; import neatlogic.framework.process.operationauth.core.IOperationType; @@ -33,11 +36,10 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.ListUtils; import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Component; import java.util.*; -@Component +//@Component public class ProcessConfigUtil { /** * 获取第一个步骤的UUID @@ -538,12 +540,12 @@ public class ProcessConfigUtil { * @param configObj 流程图配置数据 * @return */ - public static String regulateProcessConfig(JSONObject configObj) { + public static JSONObject regulateProcessConfig(JSONObject configObj) { if (configObj == null) { return null; } if (configObj.isEmpty()) { - return "{}"; + return configObj; } JSONObject process = configObj.getJSONObject("process"); if (MapUtils.isNotEmpty(process)) { @@ -585,6 +587,6 @@ public class ProcessConfigUtil { ProcessMessageManager.release(); } } - return configObj.toJSONString(); + return configObj; } } -- Gitee