From 9fce42f144e1b52a88dcdca5ab63285bf0c90ead Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Thu, 2 Jan 2025 17:37:44 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BF=AE=E5=A4=8D]=20=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E7=BC=96=E8=BE=91-=E5=A4=8D=E5=88=B6=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=EF=BC=8C=E5=9C=BA=E6=99=AF=E7=9A=84=E5=85=B3=E8=81=94=E6=AD=A5?= =?UTF-8?q?=E9=AA=A4=E6=95=B0=E6=8D=AE=E6=B2=A1=E6=9C=89=E6=B8=85=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1318739226624000]表单编辑-复制表单,场景的关联步骤数据没有清除 http://192.168.0.96:8090/demo/rdm.html#/bug-detail/939050947543040/939050947543057/1318739226624000 --- .../module/tenant/api/form/FormCopyApi.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/main/java/neatlogic/module/tenant/api/form/FormCopyApi.java b/src/main/java/neatlogic/module/tenant/api/form/FormCopyApi.java index a756263a..d3dc45a2 100644 --- a/src/main/java/neatlogic/module/tenant/api/form/FormCopyApi.java +++ b/src/main/java/neatlogic/module/tenant/api/form/FormCopyApi.java @@ -90,6 +90,7 @@ public class FormCopyApi extends PrivateApiComponentBase { newFrom.setIsActive(formVo.getIsActive()); formVersionVo.setUuid(null); formVersionVo.setFormUuid(newFrom.getUuid()); + updateSceneUuid(formVersionVo); newFormVersionList.add(formVersionVo); // Map formAttributeOldUuid2NewUuidMap = new HashMap<>(); // FormVersionVo newFormVersion = copyFormVersion(formVersionVo, newFrom.getUuid(), formAttributeOldUuid2NewUuidMap); @@ -104,6 +105,7 @@ public class FormCopyApi extends PrivateApiComponentBase { for (FormVersionVo formVersionVo : formVersionList) { formVersionVo.setUuid(null); formVersionVo.setFormUuid(newFrom.getUuid()); + updateSceneUuid(formVersionVo); newFormVersionList.add(formVersionVo); // Map formAttributeOldUuid2NewUuidMap = new HashMap<>(); // FormVersionVo newFormVersion = copyFormVersion(formVersionVo, newFrom.getUuid(), formAttributeOldUuid2NewUuidMap); @@ -165,6 +167,36 @@ public class FormCopyApi extends PrivateApiComponentBase { }; } + /** + * 复制一份表单版本配置信息,需要将所有场景的uuid值重新生成,避免不同表单的场景uuid冲突 + * @param formVersionVo + * @return + */ + private void updateSceneUuid(FormVersionVo formVersionVo) { + JSONObject formConfig = formVersionVo.getFormConfig(); + // 更新场景uuid + String defaultSceneUuid = formConfig.getString("defaultSceneUuid"); + JSONArray sceneList = formConfig.getJSONArray("sceneList"); + if (CollectionUtils.isNotEmpty(sceneList)) { + for (int i = 0; i < sceneList.size(); i++) { + JSONObject scene = sceneList.getJSONObject(i); + String uuid = scene.getString("uuid"); + String newUuid = UuidUtil.randomUuid(); + scene.put("uuid", newUuid); + if (Objects.equals(uuid, defaultSceneUuid)) { + formConfig.put("defaultSceneUuid", newUuid); + } + } + } + String uuid = formConfig.getString("uuid"); + String newUuid = UuidUtil.randomUuid(); + formConfig.put("uuid", newUuid); + if (Objects.equals(uuid, defaultSceneUuid)) { + formConfig.put("defaultSceneUuid", newUuid); + } + formVersionVo.setFormConfig(formConfig); + } + /** * 复制一份表单版本配置信息,需要将所有属性的uuid值重新生成,避免不同版本的属性uuid冲突 * @param oldFormVersionVo -- Gitee