Explorar el Código

准生产环境的交付数据,同步至客户生产环境 增加对象信息点验证

lvxianyun hace 3 años
padre
commit
ed1902fce4

+ 25 - 0
src/main/java/com/persagy/proxy/migration/handler/ObjectDigitalMigration.java

@@ -2,6 +2,7 @@ package com.persagy.proxy.migration.handler;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
+import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.JsonNodeFactory;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.persagy.dmp.basic.model.QueryCriteria;
@@ -138,6 +139,12 @@ public class ObjectDigitalMigration extends MigrationAbstractServiceImpl<ObjectD
         Map<String,Object> doSubtractFromInsert = doSubtractAdd(admMap, projectMap);
         if(!CollUtil.isEmpty(doSubtractFromInsert)){
             List<ObjectNode> insertData = toList(doSubtractFromInsert, admData);
+            //调用中台验证待新增的数据
+            List<ObjectDigital> digitalList = validateInfoCode(insertData, context);
+            //将验证结果放到日志
+            syncDataList.addAll(processDataForLog(DataMigrationResponse.success(digitalList), MigrationType.CREATE.getCode()));
+
+            //插入数据
             DataMigrationResponse dataMigrationResponse = insertBatch(insertData, ObjectDigital.class, insertUrl);
             syncDataList.addAll(processDataForLog(dataMigrationResponse, MigrationType.CREATE.getCode()));
         }
@@ -163,6 +170,12 @@ public class ObjectDigitalMigration extends MigrationAbstractServiceImpl<ObjectD
             Map<String, Object> compareData = compareData(intersectionUpdateFrom, intersectionUpdateTo);
             if(CollUtil.isNotEmpty(compareData) && compareData.size() > 0){
                 List<ObjectNode> updateData = toList(compareData, admData);
+                //调用中台验证待更新的数据
+                List<ObjectDigital> digitalList = validateInfoCode(updateData, context);
+                //将验证结果放到日志
+                syncDataList.addAll(processDataForLog(DataMigrationResponse.success(digitalList), MigrationType.UPDATE.getCode()));
+
+                //更新
                 String updateUrl = requestUrl(context, migrationInfo, MigrationType.UPDATE.getCode());
                 DataMigrationResponse dataMigrationResponse = updateBatch(updateData, ObjectDigital.class, updateUrl);
                 syncDataList.addAll(processDataForLog(dataMigrationResponse, MigrationType.UPDATE.getCode()));
@@ -389,4 +402,16 @@ public class ObjectDigitalMigration extends MigrationAbstractServiceImpl<ObjectD
         return syncDataList;
     }
 
+    /**
+     * 信息点值校验
+     * @param voList
+     */
+    private List<ObjectDigital> validateInfoCode(List<ObjectNode> voList, InstanceUrlParam context) {
+        if(CollUtil.isEmpty(voList)) {
+            return Collections.emptyList();
+        }
+        ArrayNode arrayNode = JsonNodeUtils.toArrayNode(voList, null, null);
+        return DigitalObjectFacade.validateInfoCodeAndGetErrorList(context.getGroupCode(),context.getProjectId(),context.getAppId(),context.getUserId(),arrayNode);
+    }
+
 }

+ 1 - 1
src/main/java/com/persagy/proxy/migration/service/Impl/MigrationAbstractServiceImpl.java

@@ -371,7 +371,7 @@ public class MigrationAbstractServiceImpl<T> implements MigrationAbstractService
         for(String msg : errorMsg){
             SyncData syncData = new SyncData();
             syncData.setTableName(tableName);
-            //syncData.setTargetId("error");
+            syncData.setTargetId("error");
             syncData.setError(msg);
             syncData.setSign(1);
             syncDataList.add(syncData);