From 04264eaa6429a6ce10e3a40299b97357186edeb8 Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Thu, 5 Mar 2026 16:52:35 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E6=96=B0=E5=A2=9E=E5=8A=A0=E5=B7=A5?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=8E=A5=E5=8F=A3=E8=A1=A5=E5=85=85=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=90=8D=E7=A7=B0=E7=9A=84=E5=90=8C=E6=97=B6=E5=90=8C?= =?UTF-8?q?=E6=AD=A5json=E5=92=8Chash=EF=BC=9B2=E3=80=81=E8=A3=85=E9=85=8D?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=88=A0=E9=99=A4=E6=8E=A5=E5=8F=A3=E8=A1=A5?= =?UTF-8?q?=E5=85=85=E9=85=8D=E7=BD=AE=E8=BD=AC=E5=AF=BC=E5=85=A5=E6=81=A2?= =?UTF-8?q?=E5=A4=8D=E5=90=8D=E7=A7=B0=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AssemblyConfigServiceImpl.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/assemblyconfig/AssemblyConfigServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/assemblyconfig/AssemblyConfigServiceImpl.java index bb70e48cb..637f97b5a 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/assemblyconfig/AssemblyConfigServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/assemblyconfig/AssemblyConfigServiceImpl.java @@ -320,7 +320,7 @@ public class AssemblyConfigServiceImpl implements AssemblyConfigService { Long organId = SecurityFrameworkUtils.getUserOrganId(); // 1、校验本身 - getById(configId, organId); + AssemblyConfigDO assemblyConfigDO = getById(configId, organId); // 2、校验新的名字是否已有存在的部件 boolean exists = assemblyConfigMapper.exists(new LambdaQueryWrapper() @@ -345,13 +345,25 @@ public class AssemblyConfigServiceImpl implements AssemblyConfigService { ); AssertUtils.isTrue(newExists, ASSEMBLY_CONFIG_NEW_CONFIG_NAME_EXIST, name); - // 4、更新状态和名称 + // 新名更新到hash和json中 + String structureJson = assemblyConfigDO.getStructureJson(); + AssemblyConfigStructureVO structureVO = JsonUtils.parseObject(JsonUtils.unzipString(structureJson), AssemblyConfigStructureVO.class); + structureVO.setName(newName); + String newJson = JsonUtils.zipString(JsonUtils.toJsonString(structureVO)); + + // 重算hash + computeHashRecursively(structureVO); + String newHash = structureVO.getStructureHash(); + + // 更新状态和名称 assemblyConfigMapper.update(new LambdaUpdateWrapperX() .eq(AssemblyConfigDO::getId, configId) .eq(AssemblyConfigDO::getOrganId, organId) .eq(AssemblyConfigDO::getDeleted, DeletedCodeEnum.NOT_DELETED.getStatus()) - .setIfPresent(AssemblyConfigDO::getComponentName, newName) + .set(AssemblyConfigDO::getComponentName, newName) .set(AssemblyConfigDO::getStatus, AssemblyConfigStatusEnum.CONFIGURED.getStatus()) + .set(AssemblyConfigDO::getStructureHash, newHash) + .set(AssemblyConfigDO::getStructureJson, newJson) ); } else { throw new ServiceException(ASSEMBLY_CONFIG_NO_NEED_NEW_CONFIG, name); @@ -387,6 +399,7 @@ public class AssemblyConfigServiceImpl implements AssemblyConfigService { .eq(AssemblyConfigDO::getStatus, AssemblyConfigStatusEnum.CONFIGURED.getStatus()) .eq(AssemblyConfigDO::getDeleted, DeletedCodeEnum.NOT_DELETED.getStatus()) .set(AssemblyConfigDO::getStatus, AssemblyConfigStatusEnum.IMPORT.getStatus()) + .set(AssemblyConfigDO::getComponentName, assemblyConfigDO.getBaseName()) ); } else { // 导入状态的删除 @@ -396,7 +409,6 @@ public class AssemblyConfigServiceImpl implements AssemblyConfigService { .eq(AssemblyConfigDO::getStatus, AssemblyConfigStatusEnum.IMPORT.getStatus()) .eq(AssemblyConfigDO::getDeleted, DeletedCodeEnum.NOT_DELETED.getStatus()) .set(AssemblyConfigDO::getDeleted, DeletedCodeEnum.DELETED.getStatus()) - .set(AssemblyConfigDO::getComponentName, assemblyConfigDO.getBaseName()) ); } }