Browse Source

数据迁移 fix bug
信息点 保存校验
仅仅验证单次提交的数据中,projectId-code-classCode组合后的编码不能重复,整体编码是否重复,使用数据库中的唯一索引控制

lvxianyun 3 years ago
parent
commit
4f4e6bf74c

+ 5 - 4
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/define/service/impl/ObjectInfoServiceImpl.java

@@ -109,7 +109,8 @@ public class ObjectInfoServiceImpl implements IObjectInfoService {
 
     /**
      * 保存校验
-     * 编码全局唯一
+     * 仅仅验证单次提交的数据中,projectId-code-classCode组合后的编码不能重复,整体编码是否重复,使用数据库中的唯一索引控制
+     *
      * @param voList
      * @param isUpdate
      */
@@ -118,11 +119,11 @@ public class ObjectInfoServiceImpl implements IObjectInfoService {
         List<String> idList = new ArrayList<>();
         for(ObjectInfoDefine vo:voList) {
             // 编码重复
-            if(!codeSet.add(vo.getCode())) {
-                throw new BusinessException(StrFormatter.format("存在重复编码{},不允许保存!", vo.getCode()));
+            if(!codeSet.add(String.join(StrUtil.UNDERLINE,vo.getProjectId(),vo.getCode(),vo.getClassCode()))) {
+                throw new BusinessException(StrFormatter.format("存在重复编码{}-{}-{},不允许保存!", vo.getProjectId(),vo.getCode(),vo.getClassCode()));
             }
             // 校验器校验
-            InfoDataFactory.parse(vo, null);
+           InfoDataFactory.parse(vo, null);
             // 修改时,收集待排除的主键
             if(isUpdate) {
                 idList.add(vo.getId());