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()) ); } }