Browse Source

fix adm 数据迁移 异常出来 日志分批量入库

lvxianyun 3 years ago
parent
commit
4c8206a479

+ 9 - 5
adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/service/Impl/MigrationAbstractServiceImpl.java

@@ -242,6 +242,9 @@ public class MigrationAbstractServiceImpl<T> implements IMigrationAbstractServic
                         || fieldKey.equals(AuditableEntity.DO_PROP_MODIFIEDTIME)
                         || fieldKey.equals(AuditableEntity.PROP_MODIFIER)
                         || fieldKey.equals(BaseEntity.PROP_TS)
+                        || fieldKey.equals("createApp")
+                        || fieldKey.equals("updateApp")
+                        || fieldKey.equals(BaseEntity.PROP_TS)
                         || fieldKey.equals("dataSource")
                 ){
                     continue;
@@ -399,10 +402,10 @@ public class MigrationAbstractServiceImpl<T> implements IMigrationAbstractServic
         if(CollUtil.isEmpty(syncDataList)){
             return Collections.emptyList();
         }
-        List<SyncData> syncDatasResult = new ArrayList<>(syncDataList.size());
+        //List<SyncData> syncDatasResult = new ArrayList<>(syncDataList.size());
         // 调用中台新增
-        if(syncDataList.size() - MigrationConstant.BATCH_SUBMIT_DATA_COUNT > 0){
-            syncDatasResult = DigitalMigrateLogFacade.create(context.getGroupCode(),context.getProjectId(),context.getAppId(), context.getUserId(), syncDataList);
+        if(syncDataList.size() - MigrationConstant.BATCH_SUBMIT_DATA_COUNT < 0){
+            DigitalMigrateLogFacade.create(context.getGroupCode(),context.getProjectId(),context.getAppId(), context.getUserId(), syncDataList);
         }else{
             int count= syncDataList.size() / MigrationConstant.BATCH_SUBMIT_DATA_COUNT;
             for(int k = 0; k < count + 1 ;k++){
@@ -411,10 +414,11 @@ public class MigrationAbstractServiceImpl<T> implements IMigrationAbstractServic
                     end = syncDataList.size();
                 }
                 List syncData = syncDataList.subList(k * MigrationConstant.BATCH_SUBMIT_DATA_COUNT, end);
-                syncDatasResult.addAll(DigitalMigrateLogFacade.create(context.getGroupCode(),context.getProjectId(),context.getAppId(), context.getUserId(), syncData));
+                //syncDatasResult.addAll(DigitalMigrateLogFacade.create(context.getGroupCode(),context.getProjectId(),context.getAppId(), context.getUserId(), syncData));
+                DigitalMigrateLogFacade.create(context.getGroupCode(),context.getProjectId(),context.getAppId(), context.getUserId(), syncData);
             }
         }
-        return syncDatasResult;
+        return syncDataList;
     }
 
     public DataMigrationResponse processProjectData(List vos, QueryCriteria queryCriteria, Class<T> clazz, String url){

+ 17 - 11
adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/service/Impl/ObjectDigitalMigration.java

@@ -191,6 +191,7 @@ public class ObjectDigitalMigration extends MigrationAbstractServiceImpl<ObjectD
      *
      */
     private void startMigrateForLog(InstanceUrlParam context, MigrationInfo migrationInfo, QueryCriteria queryCriteria) {
+        List<SyncData> syncDataList = new ArrayList<>();
         List<ObjectNode> admData = getAdmData(context,queryCriteria);
 
         String queryUrl = requestUrl(context, migrationInfo, MigrationType.QUERY.getCode());
@@ -201,12 +202,17 @@ public class ObjectDigitalMigration extends MigrationAbstractServiceImpl<ObjectD
             log.error(" ######################### dt_object adm已交付:"+ ResponseCode.C0320.getDesc() +" 同步结束 #########################");
         }
 
-        String insertUrl = requestUrl(context, migrationInfo, MigrationType.CREATE.getCode());
+        //因获取的数据均有主键 使用更新
+        String insertUrl = requestUrl(context, migrationInfo, MigrationType.UPDATE.getCode());
         if(CollUtil.isEmpty(projObjectNodeList)){
-            DataMigrationResponse dataMigrationResponse = insertBatch(admData, ObjectDigital.class, insertUrl);
-            List<SyncData> syncDataList = processDataForLog(dataMigrationResponse, MigrationType.CREATE.getCode());
+            //调用中台验证待新增的数据
+            List<ObjectDigital> digitalList = validateInfoCode(admData, context);
             //处理并保存日志
-            super.addSynLog(context, syncDataList);
+            syncDataList.addAll(processDataForLog(DataMigrationResponse.success(digitalList), MigrationType.CREATE.getCode()));
+
+            DataMigrationResponse dataMigrationResponse = insertBatch(admData, ObjectDigital.class, insertUrl);
+            syncDataList.addAll(processDataForLog(dataMigrationResponse, MigrationType.CREATE.getCode()));
+
         }
         Map<String,Object> projectMap = toEntityMap(projObjectNodeList, ObjectDigital.class);
         Map<String,Object> admMap = toEntityMap(admData, ObjectDigital.class);
@@ -217,13 +223,12 @@ public class ObjectDigitalMigration extends MigrationAbstractServiceImpl<ObjectD
             //调用中台验证待新增的数据
             List<ObjectDigital> digitalList = validateInfoCode(insertData, context);
             //将验证结果放到日志
-            //处理并保存日志
-            super.addSynLog(context,processDataForLog(DataMigrationResponse.success(digitalList), MigrationType.CREATE.getCode()));
+            syncDataList.addAll(processDataForLog(DataMigrationResponse.success(digitalList), MigrationType.CREATE.getCode()));
 
             //插入数据
             DataMigrationResponse dataMigrationResponse = insertBatch(insertData, ObjectDigital.class, insertUrl);
             //处理并保存日志
-            super.addSynLog(context,processDataForLog(dataMigrationResponse, MigrationType.CREATE.getCode()));
+            syncDataList.addAll(processDataForLog(dataMigrationResponse, MigrationType.CREATE.getCode()));
         }
 
         //差集 删除
@@ -237,7 +242,7 @@ public class ObjectDigitalMigration extends MigrationAbstractServiceImpl<ObjectD
             List<ObjectNode> delObjs = toListByIds(successIds, projObjectNodeList);
             dataMigrationResponse.setData(delObjs);
             //处理并保存日志
-            super.addSynLog(context,processDataForLog(dataMigrationResponse, MigrationType.DELETE.getCode()));
+            syncDataList.addAll(processDataForLog(dataMigrationResponse, MigrationType.DELETE.getCode()));
         }
 
         //交集更新
@@ -251,15 +256,17 @@ public class ObjectDigitalMigration extends MigrationAbstractServiceImpl<ObjectD
                 //调用中台验证待更新的数据
                 List<ObjectDigital> digitalList = validateInfoCode(updateData, context);
                 //将验证结果放到日志并保存
-                super.addSynLog(context,processDataForLog(DataMigrationResponse.success(digitalList), MigrationType.UPDATE.getCode()));
+                syncDataList.addAll(processDataForLog(DataMigrationResponse.success(digitalList), MigrationType.UPDATE.getCode()));
 
                 //更新
                 String updateUrl = requestUrl(context, migrationInfo, MigrationType.UPDATE.getCode());
                 DataMigrationResponse dataMigrationResponse = updateBatch(updateData, ObjectDigital.class, updateUrl);
                 //处理并保存日志
-                super.addSynLog(context,processDataForLog(dataMigrationResponse, MigrationType.UPDATE.getCode()));
+                syncDataList.addAll(processDataForLog(dataMigrationResponse, MigrationType.UPDATE.getCode()));
             }
         }
+        //处理并保存日志
+        super.addSynLog(context, syncDataList);
     }
 
     /**
@@ -275,7 +282,6 @@ public class ObjectDigitalMigration extends MigrationAbstractServiceImpl<ObjectD
         List<ObjectNode> objectNodeList = JsonNodeUtils.toListNode(projectData, null, null);
 
         if(CollUtil.isEmpty(admData)){
-            log.error(" ######################### dt_object adm已交付:"+ ResponseCode.C0320.getDesc() +" 同步结束 #########################");
             return Collections.emptyList();
         }
 

+ 8 - 6
adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/service/Impl/ObjectRelationMigration.java

@@ -319,6 +319,7 @@ public class ObjectRelationMigration extends MigrationAbstractServiceImpl<Object
     }
 
     private void startMigrateForLog(InstanceUrlParam context, MigrationInfo migrationInfo, String code){
+        List<SyncData> syncDataList = new ArrayList<>();
         QueryCriteria queryCriteria = getQueryCriteria(code);
         List<ObjectRelation> admRelations = getAdmData(context, queryCriteria);
 
@@ -331,9 +332,8 @@ public class ObjectRelationMigration extends MigrationAbstractServiceImpl<Object
         String insertUrl = requestUrl(context, migrationInfo, MigrationType.CREATE.getCode());
         if(CollUtil.isEmpty(projectRelations)){
             DataMigrationResponse dataMigrationResponse = insertBatch(admRelations, ObjectRelation.class, insertUrl);
-            List<SyncData> syncDataList = processDataForLog(dataMigrationResponse, MigrationType.CREATE.getCode());
-            //处理并保存日志
-            super.addSynLog(context,syncDataList);
+            syncDataList = processDataForLog(dataMigrationResponse, MigrationType.CREATE.getCode());
+
         }
         List<ObjectNode> objectNodeListPro = JsonNodeUtils.toListNode(projectRelations, null, null);
         Map<String,Object> projectDefineMap = toEntityMap(objectNodeListPro, ObjectRelation.class);
@@ -346,7 +346,7 @@ public class ObjectRelationMigration extends MigrationAbstractServiceImpl<Object
             List<ObjectRelation> insertData = toList(doSubtractFromInsert, admRelations);
             DataMigrationResponse dataMigrationResponse = insertBatch(insertData, ObjectRelation.class, insertUrl);
             //处理并保存日志
-            super.addSynLog(context,processDataForLog(dataMigrationResponse, MigrationType.CREATE.getCode()));
+            syncDataList.addAll(processDataForLog(dataMigrationResponse, MigrationType.CREATE.getCode()));
         }
 
         //差集 删除
@@ -357,7 +357,7 @@ public class ObjectRelationMigration extends MigrationAbstractServiceImpl<Object
             //处理删除的数据
             DataMigrationResponse dataMigrationResponse = deleteBatch(deleteIds, delUrl);
             //处理并保存日志
-            super.addSynLog(context,processDataForLog(dataMigrationResponse, MigrationType.DELETE.getCode()));
+            syncDataList.addAll(processDataForLog(dataMigrationResponse, MigrationType.DELETE.getCode()));
         }
 
         //交集更新
@@ -370,9 +370,11 @@ public class ObjectRelationMigration extends MigrationAbstractServiceImpl<Object
                 String updateUrl = requestUrl(context, migrationInfo, MigrationType.UPDATE.getCode());
                 DataMigrationResponse dataMigrationResponse = updateBatch(updateData, ObjectRelation.class, updateUrl);
                 //处理并保存日志
-                super.addSynLog(context,processDataForLog(dataMigrationResponse, MigrationType.UPDATE.getCode()));
+                syncDataList.addAll(processDataForLog(dataMigrationResponse, MigrationType.UPDATE.getCode()));
             }
         }
+        //处理并保存日志
+        super.addSynLog(context,syncDataList);
     }