Jelajahi Sumber

adm 数据迁移 fix bug

lvxianyun 3 tahun lalu
induk
melakukan
2c31d79e06

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

+ 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.getCreationTime().toString() : 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.getCreationTime().toString() : 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;