Przeglądaj źródła

Merge remote-tracking branch 'origin/develop' into develop

liyang 3 lat temu
rodzic
commit
d80d450687

+ 0 - 5
adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/constant/MigrationConstant.java

@@ -18,11 +18,6 @@ public class MigrationConstant {
     /** 数据拼接 用于map的key和value拼接成一个串 **/
     public final static String SPLITER_UNION = "@@";
 
-    /**   日志 接口 ***/
-    public final static String DT_LOG = "/dmp-rwd/rwd/log/migrate?";
-    public final static String DT_LOG_INSERT = "/dmp-rwd/rwd/log/migrate/create?";
-
-
     /**   对象类型定义 接口 ***/
     public final static String DEF_CLASS = "/dmp-rwd/rwd/def/class?";
     public final static String DEF_CLASS_INSERT = "/dmp-rwd/rwd/def/class/createBatch?";

+ 1 - 1
adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/controller/DataMigrationController.java

@@ -263,7 +263,7 @@ public class DataMigrationController {
             Map<String, List<DataMigrationExcel>> validRes = dataMigrationHandler.handleDicData(context, migrationInfo);
             //字典验证失败
             try {
-                if(CollUtil.isNotEmpty(validRes) && CollUtil.isNotEmpty(validRes.keySet())){
+                if(CollUtil.isNotEmpty(validRes) && validRes.size()>0){
                     returnExcel(response, validRes);
                 }else{
                     Map<String, List<DataMigrationExcel>> results = dataMigrationHandler.handleAndGetExcelList(context, migrationInfo);

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

@@ -19,7 +19,6 @@ import java.util.*;
  * @date 2021/12/3 11:14
  */
 @Component
-
 public class DataMigrationHandler {
 
     private static Map<String, IDataMigration> migrationMap = new HashMap<>(16);

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

@@ -61,7 +61,7 @@ public class DefineInfoMigration extends MigrationAbstractServiceImpl<ObjectInfo
     @Override
     public List<DataMigrationExcel> migrateForExcel(InstanceUrlParam context, MigrationInfo migrationInfo) {
         log.info("######################### ObjectInfoDefine 数据迁移内容获取开始 #########################");
-        QueryCriteria queryCriteria = getCustomQueryCriteria();
+        QueryCriteria queryCriteria = getCustomQueryCriteria(context);
         List<ObjectInfoDefine> admDefineList = getAdmData(context, queryCriteria);
         String queryUrl = requestUrl(context, migrationInfo, MigrationType.QUERY.getCode());
         List<ObjectInfoDefine> projectDefineList = getProjectData(queryCriteria, ObjectInfoDefine.class, queryUrl);
@@ -76,7 +76,7 @@ public class DefineInfoMigration extends MigrationAbstractServiceImpl<ObjectInfo
         long start = System.currentTimeMillis();
         List<SyncData> syncDataList = new ArrayList<>();
 
-        QueryCriteria queryCriteria = getCustomQueryCriteria();
+        QueryCriteria queryCriteria = getCustomQueryCriteria(context);
 
         List<ObjectInfoDefine> admDefineList = getAdmData(context, queryCriteria);
         String queryUrl = requestUrl(context, migrationInfo, MigrationType.QUERY.getCode());
@@ -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().toString());
+            excel.setUpdateTime(define.getModifiedTime() == null ? "" : define.getModifiedTime().toString());
             dataMigrationExcels.add(excel);
         }
         return dataMigrationExcels;
@@ -343,8 +343,8 @@ public class DefineInfoMigration extends MigrationAbstractServiceImpl<ObjectInfo
     public List<DataMigrationExcel> compareCriterionByData(InstanceUrlParam context, MigrationInfo migrationInfo, long totalCount) {
         log.info("######################### ObjectInfoDefine 数据迁移 标准字典验证 开始 #########################");
         QueryCriteria queryCriteria = getCriterionQueryCriteria();
-        queryCriteria.setSize(10000l);
-        long pages = 1l;
+        queryCriteria.setSize(10000L);
+        long pages = 1L;
         if(totalCount > 10000){
             pages = totalCount / 10000 + 1;
         }
@@ -427,19 +427,14 @@ public class DefineInfoMigration extends MigrationAbstractServiceImpl<ObjectInfo
      * 项目级、集团级定义
      * @return
      */
-    private QueryCriteria getCustomQueryCriteria(){
+    private QueryCriteria getCustomQueryCriteria(InstanceUrlParam context){
         QueryCriteria queryCriteria = new QueryCriteria();
         ObjectNode criteria = JsonNodeFactory.instance.objectNode();
         criteria.put("valid", 1);
-        ObjectNode groupCode =  JsonNodeFactory.instance.objectNode();
-        groupCode.put("$ne", "0");
-
-        ObjectNode projectId =  JsonNodeFactory.instance.objectNode();
-        projectId.put("$ne", "0");
 
         ObjectNode andOr = JsonNodeFactory.instance.objectNode();
-        andOr.putPOJO("groupCode", projectId);
-        andOr.putPOJO("projectId", groupCode);
+        andOr.put("groupCode", context.getGroupCode());
+        andOr.put("projectId", context.getProjectId());
 
         criteria.putPOJO("$andOr", andOr);
 
@@ -457,8 +452,8 @@ public class DefineInfoMigration extends MigrationAbstractServiceImpl<ObjectInfo
         QueryCriteria queryCriteria = new QueryCriteria();
         ObjectNode criteria = JsonNodeFactory.instance.objectNode();
         criteria.put("valid", 1);
-        criteria.put("groupCode", 0);
-        criteria.put("projectId", 0);
+        criteria.put("groupCode", "0");
+        criteria.put("projectId", "0");
         queryCriteria.setCriteria(criteria);
         queryCriteria.setSize(-1L);
         return queryCriteria;

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

@@ -59,7 +59,7 @@ public class DefineTypeMigration extends MigrationAbstractServiceImpl<ObjectType
     @Override
     public List<DataMigrationExcel> migrateForExcel(InstanceUrlParam context, MigrationInfo migrationInfo) {
         log.info("######################### DefineType 数据迁移内容获取开始 #########################");
-        QueryCriteria queryCriteria = getCustomQueryCriteria();
+        QueryCriteria queryCriteria = getCustomQueryCriteria(context);
 
         List<ObjectTypeDefine> admDefineList = getAdmData(context, queryCriteria);
         String queryUrl = requestUrl(context, migrationInfo, MigrationType.QUERY.getCode());
@@ -75,7 +75,7 @@ public class DefineTypeMigration extends MigrationAbstractServiceImpl<ObjectType
         long start = System.currentTimeMillis();
         List<SyncData> syncDataList = new ArrayList<>();
 
-        QueryCriteria queryCriteria = getCustomQueryCriteria();
+        QueryCriteria queryCriteria = getCustomQueryCriteria(context);
 
         List<ObjectTypeDefine> admDefineList = getAdmData(context, queryCriteria);
         String queryUrl = requestUrl(context, migrationInfo, MigrationType.QUERY.getCode());
@@ -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().toString());
+            excel.setUpdateTime(objectTypeDefine.getModifiedTime() == null ? "" : objectTypeDefine.getModifiedTime().toString());
             if(objectTypeDefine.getGroupCode().equals("0") && objectTypeDefine.getProjectId().equals("0")){
                 excel.setMark("标准字典");
             }else{
@@ -413,19 +413,14 @@ public class DefineTypeMigration extends MigrationAbstractServiceImpl<ObjectType
      * 项目级、集团级定义
      * @return
      */
-    private QueryCriteria getCustomQueryCriteria(){
+    private QueryCriteria getCustomQueryCriteria(InstanceUrlParam context){
         QueryCriteria queryCriteria = new QueryCriteria();
         ObjectNode criteria = JsonNodeFactory.instance.objectNode();
         criteria.put("valid", 1);
-        ObjectNode groupCode =  JsonNodeFactory.instance.objectNode();
-        groupCode.put("$ne", "0");
-
-        ObjectNode projectId =  JsonNodeFactory.instance.objectNode();
-        projectId.put("$ne", "0");
 
         ObjectNode andOr = JsonNodeFactory.instance.objectNode();
-        andOr.putPOJO("groupCode", projectId);
-        andOr.putPOJO("projectId", groupCode);
+        andOr.put("groupCode", context.getGroupCode());
+        andOr.put("projectId", context.getProjectId());
 
         criteria.putPOJO("$andOr", andOr);
 
@@ -443,8 +438,8 @@ public class DefineTypeMigration extends MigrationAbstractServiceImpl<ObjectType
         QueryCriteria queryCriteria = new QueryCriteria();
         ObjectNode criteria = JsonNodeFactory.instance.objectNode();
         criteria.put("valid", 1);
-        criteria.put("groupCode", 0);
-        criteria.put("projectId", 0);
+        criteria.put("groupCode", "0");
+        criteria.put("projectId", "0");
         queryCriteria.setCriteria(criteria);
         queryCriteria.setSize(-1L);
         return queryCriteria;

+ 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);
     }
 }

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

@@ -275,10 +275,7 @@ public class MigrationAbstractServiceImpl<T> implements MigrationAbstractService
     private DataMigrationResponse saveOrUpdateCommProcess(List vos,  Class<T> clazz, String url){
         DataMigrationResponse dataMigrationResponse = DataMigrationResponse.success();
         if(vos.size() <= MigrationConstant.BATCH_SUBMIT_DATA_COUNT){
-            DataMigrationResponse temp = processProjectData(vos,null, clazz, url);
-            if(CollUtil.isNotEmpty(temp.getData())){
-                dataMigrationResponse.addData(temp.getData());
-            }
+            dataMigrationResponse = processProjectData(vos,null, clazz, url);
         }else{
             int count= vos.size() / MigrationConstant.BATCH_SUBMIT_DATA_COUNT;
             for(int k = 0; k< count + 1 ;k++){
@@ -393,7 +390,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 {