From dde8da82e8671bfa4d58b53032bc1d328555d40a Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Wed, 8 Jan 2025 17:28:11 +0800 Subject: [PATCH 1/2] =?UTF-8?q?[=E4=BF=AE=E5=A4=8D]=20=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E5=9B=BE=E4=BF=9D=E5=AD=98=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1329754400063488]流程图保存报错 http://192.168.0.96:8090/demo/rdm.html#/bug-detail/939050947543040/939050947543057/1329754400063488 --- .../process/dao/mapper/process/ProcessMapper.java | 2 ++ .../process/dao/mapper/process/ProcessMapper.xml | 15 +++++++++++++++ .../process/service/ProcessServiceImpl.java | 11 +++++++++-- 3 files changed, 26 insertions(+), 2 deletions(-) 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 7388ad111..1733e7f81 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 @@ -34,6 +34,8 @@ public interface ProcessMapper extends IProcessCrossoverMapper { List getProcessStepRelByProcessUuid(String processUuid); + ProcessStepRelVo getProcessStepRelByUuid(String uuid); + List getProcessSlaByProcessUuid(String processUuid); List getSlaUuidListByProcessUuid(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 edce4944d..9065aad85 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 @@ -78,6 +78,21 @@ process_uuid = #{processUuid} + + diff --git a/src/main/java/neatlogic/module/process/service/ProcessServiceImpl.java b/src/main/java/neatlogic/module/process/service/ProcessServiceImpl.java index 6534ae752..7148dc346 100644 --- a/src/main/java/neatlogic/module/process/service/ProcessServiceImpl.java +++ b/src/main/java/neatlogic/module/process/service/ProcessServiceImpl.java @@ -90,12 +90,14 @@ public class ProcessServiceImpl implements ProcessService, IProcessCrossoverServ ProcessVo oldProcessVo = processMapper.getProcessByUuid(uuid); if (oldProcessVo != null) { saveOrDeleteProcessDependency(oldProcessVo, "delete"); + } + saveOrDeleteProcessDependency(processVo, "save"); + if (oldProcessVo != null) { processMapper.updateProcess(processVo); } else { processVo.setFcu(UserContext.get().getUserUuid(true)); processMapper.insertProcess(processVo); } - saveOrDeleteProcessDependency(processVo, "save"); /* 清空自己的草稿 **/ ProcessDraftVo processDraftVo = new ProcessDraftVo(); processDraftVo.setProcessUuid(uuid); @@ -264,7 +266,12 @@ public class ProcessServiceImpl implements ProcessService, IProcessCrossoverServ if (CollectionUtils.isNotEmpty(relList)) { if (Objects.equals(action, "save")) { for (int i = 0; i < relList.size(); i++) { - ProcessStepRelVo processStepRelVo = relList.getObject(i, ProcessStepRelVo.class); + JSONObject relObj = relList.getJSONObject(i); + String uuid = relObj.getString("uuid"); + if (processMapper.getProcessStepRelByUuid(uuid) != null) { + relObj.put("uuid", UuidUtil.randomUuid()); + } + ProcessStepRelVo processStepRelVo = relObj.toJavaObject(ProcessStepRelVo.class); processStepRelVo.setProcessUuid(processVo.getUuid()); String type = processStepRelVo.getType(); if (!ProcessFlowDirection.BACKWARD.getValue().equals(type)) { -- Gitee From 0de2778feb4744b421d5fba96a10e8a8e615f3df Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Wed, 8 Jan 2025 17:38:36 +0800 Subject: [PATCH 2/2] =?UTF-8?q?[=E4=BF=AE=E5=A4=8D]=20=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E5=9B=BE=E4=BF=9D=E5=AD=98=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1329754400063488]流程图保存报错 http://192.168.0.96:8090/demo/rdm.html#/bug-detail/939050947543040/939050947543057/1329754400063488 --- .../module/process/service/ProcessServiceImpl.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/neatlogic/module/process/service/ProcessServiceImpl.java b/src/main/java/neatlogic/module/process/service/ProcessServiceImpl.java index 7148dc346..8f156456e 100644 --- a/src/main/java/neatlogic/module/process/service/ProcessServiceImpl.java +++ b/src/main/java/neatlogic/module/process/service/ProcessServiceImpl.java @@ -108,6 +108,7 @@ public class ProcessServiceImpl implements ProcessService, IProcessCrossoverServ @Override public void saveOrDeleteProcessDependency(ProcessVo processVo, String action) { + Map oldUuid2NewUuidMap = new HashMap<>(); JSONObject config = processVo.getConfig(); if (MapUtils.isEmpty(config)) { return; @@ -269,7 +270,9 @@ public class ProcessServiceImpl implements ProcessService, IProcessCrossoverServ JSONObject relObj = relList.getJSONObject(i); String uuid = relObj.getString("uuid"); if (processMapper.getProcessStepRelByUuid(uuid) != null) { - relObj.put("uuid", UuidUtil.randomUuid()); + String newUuid = UuidUtil.randomUuid(); + oldUuid2NewUuidMap.put(uuid, newUuid); + relObj.put("uuid", newUuid); } ProcessStepRelVo processStepRelVo = relObj.toJavaObject(ProcessStepRelVo.class); processStepRelVo.setProcessUuid(processVo.getUuid()); @@ -337,6 +340,14 @@ public class ProcessServiceImpl implements ProcessService, IProcessCrossoverServ } } } + + if (MapUtils.isNotEmpty(oldUuid2NewUuidMap)) { + String configStr = config.toJSONString(); + for (Map.Entry entry : oldUuid2NewUuidMap.entrySet()) { + configStr = configStr.replace(entry.getKey(), entry.getValue()); + } + processVo.setConfig(JSONObject.parseObject(configStr)); + } } } -- Gitee