xy il y a 1 mois
Parent
commit
da498ce73a

+ 11 - 6
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamictb/DynamicTbServiceImpl.java

@@ -77,7 +77,7 @@ public class DynamicTbServiceImpl extends ServiceImpl<DynamicTbMapper, DynamicTb
     @Override
     public String createDynamicTb(DynamicTbSaveReqVO createReqVO) {
         // 校验tbCode唯一性
-        validateTbCodeUnique(createReqVO.getTbCode());
+        validateTbCodeUnique(createReqVO.getTbCode(), null);
         // 插入
         DynamicTbDO dynamicTb = BeanUtils.toBean(createReqVO, DynamicTbDO.class);
         dynamicTbMapper.insert(dynamicTb);
@@ -89,8 +89,8 @@ public class DynamicTbServiceImpl extends ServiceImpl<DynamicTbMapper, DynamicTb
     public void updateDynamicTb(DynamicTbSaveReqVO updateReqVO) {
         // 校验存在
         validateDynamicTbExists(updateReqVO.getId());
-        // 校验tbCode唯一性
-        validateTbCodeUnique(updateReqVO.getTbCode());
+        // 校验tbCode唯一性(排除自身)
+        validateTbCodeUnique(updateReqVO.getTbCode(), updateReqVO.getId());
         // 更新
         DynamicTbDO updateObj = BeanUtils.toBean(updateReqVO, DynamicTbDO.class);
         dynamicTbMapper.updateById(updateObj);
@@ -158,12 +158,17 @@ public class DynamicTbServiceImpl extends ServiceImpl<DynamicTbMapper, DynamicTb
         }
     }
 
-    private void validateTbCodeUnique(String tbCode) {
+    private void validateTbCodeUnique(String tbCode, String excludeId) {
         if (StrUtil.isEmpty(tbCode)) {
             return;
         }
-        Long count = dynamicTbMapper.selectCount(new LambdaQueryWrapperX<DynamicTbDO>()
-                .eq(DynamicTbDO::getTbCode, tbCode));
+        LambdaQueryWrapperX<DynamicTbDO> wrapper = new LambdaQueryWrapperX<DynamicTbDO>()
+                .eq(DynamicTbDO::getTbCode, tbCode);
+        // 更新时排除自身
+        if (StrUtil.isNotEmpty(excludeId)) {
+            wrapper.ne(DynamicTbDO::getId, excludeId);
+        }
+        Long count = dynamicTbMapper.selectCount(wrapper);
         if (count > 0) {
             throw exception(DYNAMIC_TB_CODE_EXISTS);
         }