diff --git a/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskFlowChartApi.java b/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskFlowChartApi.java index bfd0f47861b02ca857e7fb212bd603f15b5360ff..ebb122c0ee5ccdff06d355eda3fe163630fc906d 100644 --- a/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskFlowChartApi.java +++ b/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskFlowChartApi.java @@ -92,7 +92,17 @@ public class ProcessTaskFlowChartApi extends PrivateApiComponentBase { String channelUuid = jsonObj.getString("channelUuid"); if (processTaskId != null) { ProcessTaskVo processTaskVo = processTaskService.checkProcessTaskParamsIsLegal(processTaskId); - String config = selectContentByHashMapper.getProcessTaskConfigStringByHash(processTaskVo.getConfigHash()); + String configStr = selectContentByHashMapper.getProcessTaskConfigStringByHash(processTaskVo.getConfigHash()); + JSONObject config = JSONObject.parseObject(configStr); + if (MapUtils.isNotEmpty(config)) { + JSONObject processObj = config.getJSONObject("process"); + if (MapUtils.isNotEmpty(processObj)) { + JSONObject processConfig = processObj.getJSONObject("processConfig"); + if (MapUtils.isNotEmpty(processConfig)) { + processConfig.put("uuid", processTaskVo.getProcessUuid()); + } + } + } List processTaskStepList = processTaskMapper.getProcessTaskStepListByProcessTaskId(processTaskId); if (CollectionUtils.isNotEmpty(processTaskStepList)) { for (ProcessTaskStepVo processTaskStepVo : processTaskStepList) { @@ -119,7 +129,7 @@ public class ProcessTaskFlowChartApi extends PrivateApiComponentBase { } List processTaskStepRelVoList = processTaskMapper.getProcessTaskStepRelByProcessTaskId(processTaskId); JSONObject resultObj = new JSONObject(); - resultObj.put("config", JSONObject.parseObject(config)); + resultObj.put("config", config); resultObj.put("processTaskStepList", processTaskStepList); resultObj.put("processTaskStepRelList", processTaskStepRelVoList); return resultObj; @@ -162,7 +172,17 @@ public class ProcessTaskFlowChartApi extends PrivateApiComponentBase { List processTaskStepList = new ArrayList<>(); processTaskStepList.add(processTaskStepVo); JSONObject resultObj = new JSONObject(); - resultObj.put("config", processVo.getConfig()); + JSONObject config = processVo.getConfig(); + if (MapUtils.isNotEmpty(config)) { + JSONObject processObj = config.getJSONObject("process"); + if (MapUtils.isNotEmpty(processObj)) { + JSONObject processConfig = processObj.getJSONObject("processConfig"); + if (MapUtils.isNotEmpty(processConfig)) { + processConfig.put("uuid", processVo.getUuid()); + } + } + } + resultObj.put("config", config); resultObj.put("processTaskStepList", processTaskStepList); resultObj.put("processTaskStepRelList", new ArrayList<>()); return resultObj; diff --git a/src/main/java/neatlogic/module/process/service/ProcessServiceImpl.java b/src/main/java/neatlogic/module/process/service/ProcessServiceImpl.java index ed82617b9c398b2a6580d0660c988a05e3cd235b..6534ae75270fdff1fe203bdb552217d141364d13 100644 --- a/src/main/java/neatlogic/module/process/service/ProcessServiceImpl.java +++ b/src/main/java/neatlogic/module/process/service/ProcessServiceImpl.java @@ -76,6 +76,17 @@ public class ProcessServiceImpl implements ProcessService, IProcessCrossoverServ throw new ProcessNameRepeatException(processVo.getName()); } String uuid = processVo.getUuid(); + JSONObject config = processVo.getConfig(); + if (MapUtils.isNotEmpty(config)) { + JSONObject processObj = config.getJSONObject("process"); + if (MapUtils.isNotEmpty(processObj)) { + JSONObject processConfig = processObj.getJSONObject("processConfig"); + if (MapUtils.isNotEmpty(processConfig)) { + processConfig.put("uuid", uuid); + processConfig.put("name", processVo.getName()); + } + } + } ProcessVo oldProcessVo = processMapper.getProcessByUuid(uuid); if (oldProcessVo != null) { saveOrDeleteProcessDependency(oldProcessVo, "delete"); @@ -221,10 +232,28 @@ public class ProcessServiceImpl implements ProcessService, IProcessCrossoverServ throw new ProcessStepHandlerNotFoundException(handler); } } - if (Objects.equals(action, "save")) { + stepMap.put(processStepVo.getUuid(), processStepVo); + } + if (Objects.equals(action, "save")) { + JSONArray relList = processObj.getJSONArray("connectionList"); + if (CollectionUtils.isNotEmpty(relList)) { + for (int i = 0; i < relList.size(); i++) { + ProcessStepRelVo processStepRelVo = relList.getObject(i, ProcessStepRelVo.class); + 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()); + } + break; + } + } + } + for (Map.Entry entry : stepMap.entrySet()) { + ProcessStepVo processStepVo = entry.getValue(); processMapper.insertProcessStep(processStepVo); } - stepMap.put(processStepVo.getUuid(), processStepVo); } if (Objects.equals(action, "delete")) { processMapper.deleteProcessStepByProcessUuid(processVo.getUuid()); @@ -236,15 +265,6 @@ public class ProcessServiceImpl implements ProcessService, IProcessCrossoverServ if (Objects.equals(action, "save")) { for (int i = 0; i < relList.size(); i++) { ProcessStepRelVo processStepRelVo = relList.getObject(i, ProcessStepRelVo.class); - 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.setProcessUuid(processVo.getUuid()); String type = processStepRelVo.getType(); if (!ProcessFlowDirection.BACKWARD.getValue().equals(type)) {