Selaa lähdekoodia

adm 数据迁移 fix bug

lvxianyun 3 vuotta sitten
vanhempi
commit
20002052c8

+ 2 - 2
adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/handler/DataMigrationHandler.java

@@ -31,7 +31,7 @@ public class DataMigrationHandler {
      */
     public Map<String, List<DataMigrationExcel>> handleDicData(InstanceUrlParam context, MigrationInfo migrationInfo){
         Map<String,List<DataMigrationExcel>> results = new HashMap<>(2);
-        AdmResponse admResponseType = DefineTypeMigration.getInstance().compareByCount(context, migrationInfo);
+       /* AdmResponse admResponseType = DefineTypeMigration.getInstance().compareByCount(context, migrationInfo);
 
         if(!admResponseType.getResult().equals(DmpResult.SUCCESS)){
             List<DataMigrationExcel> dataMigrationExcels = new ArrayList<>();
@@ -43,7 +43,7 @@ public class DataMigrationHandler {
             List<DataMigrationExcel> dataMigrationExcels = new ArrayList<>();
             dataMigrationExcels.addAll((Collection<? extends DataMigrationExcel>) admResponseInfo.getContent());
             results.put(MigrationTable.DTDEFINEINFO.getCode(), dataMigrationExcels);
-        }
+        }*/
         return results;
     }
 

+ 1 - 1
adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/handler/DefineInfoMigration.java

@@ -229,7 +229,7 @@ public class DefineInfoMigration extends MigrationAbstractServiceImpl<ObjectInfo
             excel.setName(define.getName());
             excel.setType(type);
             excel.setCreateTime(define.getCreationTime().toString());
-            excel.setUpdateTime(define.getModifiedTime() == null ? define.getCreationTime().toString() : define.getModifiedTime().toString());
+            excel.setUpdateTime(define.getModifiedTime() == null ? "" : define.getModifiedTime().toString());
             dataMigrationExcels.add(excel);
         }
         return dataMigrationExcels;

+ 1 - 1
adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/handler/DefineTypeMigration.java

@@ -225,7 +225,7 @@ public class DefineTypeMigration extends MigrationAbstractServiceImpl<ObjectType
             excel.setName(objectTypeDefine.getName());
             excel.setType(type);
             excel.setCreateTime(objectTypeDefine.getCreationTime().toString());
-            excel.setUpdateTime(objectTypeDefine.getModifiedTime() == null ? objectTypeDefine.getCreationTime().toString() : objectTypeDefine.getModifiedTime().toString());
+            excel.setUpdateTime(objectTypeDefine.getModifiedTime() == null ? "" : objectTypeDefine.getModifiedTime().toString());
             if(objectTypeDefine.getGroupCode().equals("0") && objectTypeDefine.getProjectId().equals("0")){
                 excel.setMark("标准字典");
             }else{

+ 12 - 25
adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/handler/ObjectRelationMigration.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;
@@ -102,12 +103,6 @@ public class ObjectRelationMigration extends MigrationAbstractServiceImpl<Object
                 log.error("######################### dt_relation 数据迁移内容获取失败"+e.getMessage());
             }
         }
-        /*for (MiGrationRelCode miGrationRelCode: MiGrationRelCode.values()){
-            //log.info("######################### dt_relation "+miGrationRelCode.getCode()+"数据迁移内容获取开始 #########################");
-            QueryCriteria queryCriteria = getQueryCriteria(miGrationRelCode.getCode());
-            dataMigrationExcels.addAll(startMigrateForExcel(context, migrationInfo, queryCriteria));
-            //log.info("######################### dt_relation "+miGrationRelCode.getCode()+"数据迁移内容获取结束 #########################");
-        }*/
         long end = System.currentTimeMillis();
         log.info("######################### dt_relation 数据迁移内容获取结束 "+(end-start)+"#########################");
         return dataMigrationExcels;
@@ -117,12 +112,6 @@ public class ObjectRelationMigration extends MigrationAbstractServiceImpl<Object
     public AdmResponse migrateForLog(InstanceUrlParam context, MigrationInfo migrationInfo) {
         log.info("######################### dt_relation 同步开始 #########################");
         long start = System.currentTimeMillis();
-        /*for (MiGrationRelCode miGrationRelCode: MiGrationRelCode.values()){
-            log.info("######################### dt_relation "+miGrationRelCode.getCode()+"同步开始 #########################");
-            QueryCriteria queryCriteria = getQueryCriteria(miGrationRelCode.getCode());
-            List<SyncData> syncDataList = startMigrateForLog(context, migrationInfo, queryCriteria);
-            log.info("######################### dt_relation "+miGrationRelCode.getCode()+"同步结束 共计:"+syncDataList.size()+"条 #########################");
-        }*/
         ExecutorService service = getExcecutor();
         List<SyncData> syncDataList = new ArrayList<>();
         List<Future<List<SyncData>>> list = new ArrayList<>();
@@ -193,9 +182,7 @@ public class ObjectRelationMigration extends MigrationAbstractServiceImpl<Object
             return dataMigrationExcels;
         }
 
-        //String insertUrl = requestUrl(context, migrationInfo, MigrationType.INSERT.getCode());
         if(CollUtil.isEmpty(projectRelations)){
-            //DataMigrationResponse dataMigrationResponse = insertBatch(admRelations, ObjectRelation.class, insertUrl);
             dataMigrationExcels.addAll(processDataForExcel(admRelations, MigrationType.CREATE.getCode()));
             return dataMigrationExcels;
         }
@@ -208,7 +195,6 @@ public class ObjectRelationMigration extends MigrationAbstractServiceImpl<Object
         Map<String,Object> doSubtractFromInsert = doSubtractAdd(admDefineMap, projectDefineMap);
         if(!CollUtil.isEmpty(doSubtractFromInsert)){
             List<ObjectRelation> insertData = toList(doSubtractFromInsert, admRelations);
-            //DataMigrationResponse dataMigrationResponse = insertBatch(insertData, ObjectRelation.class, insertUrl);
             dataMigrationExcels.addAll(processDataForExcel(insertData, MigrationType.CREATE.getCode()));
         }
 
@@ -217,8 +203,6 @@ public class ObjectRelationMigration extends MigrationAbstractServiceImpl<Object
         if(!CollUtil.isEmpty(doSubtractFromDelete)){
             List<String> deleteIds = doSubtractFromDelete.entrySet().stream().map(en -> en.getKey()).collect(Collectors.toList());
             List<ObjectRelation> deleteData = toListByIds(deleteIds, projectRelations);
-//            String delUrl = requestUrl(context, migrationInfo, MigrationType.DELETE.getCode());
-//            DataMigrationResponse dataMigrationResponse = deleteBatch(deleteIds, ObjectRelation.class, delUrl);
             dataMigrationExcels.addAll(processDataForExcel(deleteData, MigrationType.DELETE.getCode()));
         }
 
@@ -230,8 +214,6 @@ public class ObjectRelationMigration extends MigrationAbstractServiceImpl<Object
             Map<String, Object> compareData = compareData(intersectionUpdateFrom, intersectionUpdateTo);
             if(CollUtil.isNotEmpty(compareData) && compareData.size() > 0){
                 List<ObjectRelation> updateData = toList(compareData, admRelations);
-                //String updateUrl = requestUrl(context, migrationInfo, MigrationType.UPDATE.getCode());
-                //DataMigrationResponse dataMigrationResponse = updateBatch(updateData, ObjectRelation.class, updateUrl);
                 dataMigrationExcels.addAll(processDataForExcel(updateData, MigrationType.UPDATE.getCode()));
             }
         }
@@ -273,19 +255,14 @@ public class ObjectRelationMigration extends MigrationAbstractServiceImpl<Object
         if(!CollUtil.isEmpty(doSubtractFromDelete)){
             List<String> deleteIds = doSubtractFromDelete.entrySet().stream().map(en -> en.getKey()).collect(Collectors.toList());
             String delUrl = requestUrl(context, migrationInfo, MigrationType.DELETE.getCode());
-
             //处理删除的数据
-            DataMigrationResponse dataMigrationResponse = deleteBatch(deleteIds, ObjectRelation.class, delUrl);
-            List<String> successIds = (List<String>) dataMigrationResponse.getData();
-            List<ObjectRelation> delObjs = toListByIds(successIds, projectRelations);
-            dataMigrationResponse.setData(delObjs);
+            DataMigrationResponse dataMigrationResponse = deleteBatch(deleteIds, delUrl);
             syncDataList.addAll(processDataForLog(dataMigrationResponse, MigrationType.DELETE.getCode()));
         }
 
         //交集更新
         Map<String,Object> intersectionUpdateFrom = doIntersectionGetFrom(admDefineMap, projectDefineMap);
         Map<String,Object> intersectionUpdateTo = doIntersectionGetTo(admDefineMap, projectDefineMap);
-
         if(!CollUtil.isEmpty(intersectionUpdateFrom) && !CollUtil.isEmpty(intersectionUpdateTo)){
             Map<String, Object> compareData = compareData(intersectionUpdateFrom, intersectionUpdateTo);
             if(CollUtil.isNotEmpty(compareData) && compareData.size() > 0){
@@ -478,6 +455,16 @@ public class ObjectRelationMigration extends MigrationAbstractServiceImpl<Object
             }
 
         }
+    }
 
+    //删除关系,手动拼接删除条件
+    public DataMigrationResponse deleteBatch(List<String> ids, String url) {
+        QueryCriteria criteria = new QueryCriteria();
+        ObjectNode node = JsonNodeFactory.instance.objectNode();
+        //删除关系 然后重建
+        ArrayNode arrayNode = node.putArray("id");
+        ids.forEach(id -> arrayNode.add(id));
+        criteria.setCriteria(node);
+        return processProjectData(null, criteria, ObjectRelation.class, url);
     }
 }

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

@@ -393,7 +393,7 @@ public class MigrationAbstractServiceImpl<T> implements MigrationAbstractService
         return syncDataList;
     }
 
-    private DataMigrationResponse processProjectData(List vos, QueryCriteria queryCriteria, Class<T> clazz, String url){
+    public DataMigrationResponse processProjectData(List vos, QueryCriteria queryCriteria, Class<T> clazz, String url){
         //处理rwd 请求返回超时
         String body = null;
         try {