소스 검색

adm 数据迁移 fix bug

lvxianyun 3 년 전
부모
커밋
b9f58373fb
13개의 변경된 파일55개의 추가작업 그리고 93개의 파일을 삭제
  1. 2 2
      adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/controller/DataMigrationController.java
  2. 18 6
      adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/handler/DataMigrationHandler.java
  3. 1 1
      adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/handler/IDataMigration.java
  4. 1 1
      adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/handler/IDataMigrationProcess.java
  5. 1 1
      adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/handler/IDefineDataMigration.java
  6. 3 2
      adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/service/MigrationAbstractService.java
  7. 1 1
      adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/service/MigrationLogService.java
  8. 6 23
      adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/handler/DefineInfoMigration.java
  9. 6 16
      adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/handler/DefineTypeMigration.java
  10. 2 2
      adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/service/Impl/MigrationAbstractServiceImpl.java
  11. 2 2
      adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/service/Impl/MigrationLogServiceImpl.java
  12. 6 18
      adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/handler/ObjectDigitalMigration.java
  13. 6 18
      adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/handler/ObjectRelationMigration.java

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

@@ -27,7 +27,7 @@ import com.persagy.proxy.migration.constant.MigrationObjType;
 import com.persagy.proxy.migration.handler.DataMigrationHandler;
 import com.persagy.proxy.migration.model.DataMigrationExcel;
 import com.persagy.proxy.migration.model.MigrationInfo;
-import com.persagy.proxy.migration.service.MigrationLogService;
+import com.persagy.proxy.migration.service.IMigrationLogService;
 import com.persagy.proxy.object.model.AdmProject;
 import com.persagy.proxy.object.service.IAdmProjectService;
 import lombok.RequiredArgsConstructor;
@@ -59,7 +59,7 @@ import java.util.Map;
 public class DataMigrationController {
     private final DataMigrationHandler dataMigrationHandler;
     private final IAdmProjectService projectService;
-    private final MigrationLogService logService;
+    private final IMigrationLogService logService;
     /**
      * 导出待迁移的数据信息
      *

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

@@ -7,6 +7,12 @@ import com.persagy.proxy.common.entity.InstanceUrlParam;
 import com.persagy.proxy.migration.constant.MigrationTable;
 import com.persagy.proxy.migration.model.DataMigrationExcel;
 import com.persagy.proxy.migration.model.MigrationInfo;
+import com.persagy.proxy.migration.service.*;
+import com.persagy.proxy.migration.service.Impl.DefineInfoMigration;
+import com.persagy.proxy.migration.service.Impl.DefineTypeMigration;
+import com.persagy.proxy.migration.service.Impl.ObjectDigitalMigration;
+import com.persagy.proxy.migration.service.Impl.ObjectRelationMigration;
+import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.PostConstruct;
@@ -19,7 +25,13 @@ import java.util.*;
  * @date 2021/12/3 11:14
  */
 @Component
+@RequiredArgsConstructor
 public class DataMigrationHandler {
+    private final DefineTypeMigration typeMigration;
+    private final DefineInfoMigration infoMigration;
+
+    private final ObjectDigitalMigration objectDigitalMigration;
+    private final ObjectRelationMigration objectRelationMigration;
 
     private static Map<String, IDataMigration> migrationMap = new HashMap<>(16);
 
@@ -30,14 +42,14 @@ 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 = typeMigration.compareByCount(context, migrationInfo);
 
         if(!admResponseType.getResult().equals(DmpResult.SUCCESS)){
             List<DataMigrationExcel> dataMigrationExcels = new ArrayList<>();
             dataMigrationExcels.addAll((Collection<? extends DataMigrationExcel>) admResponseType.getContent());
             results.put(MigrationTable.DTDEFINETYPE.getCode(), dataMigrationExcels);
         }
-        AdmResponse admResponseInfo = DefineInfoMigration.getInstance().compareByCount(context, migrationInfo);
+        AdmResponse admResponseInfo = infoMigration.compareByCount(context, migrationInfo);
         if(!admResponseInfo.getResult().equals(DmpResult.SUCCESS)){
             List<DataMigrationExcel> dataMigrationExcels = new ArrayList<>();
             dataMigrationExcels.addAll((Collection<? extends DataMigrationExcel>) admResponseInfo.getContent());
@@ -87,9 +99,9 @@ public class DataMigrationHandler {
 
     @PostConstruct
     private void initHandleService(){
-        addMap(MigrationTable.DTDEFINETYPE.getCode(), DefineTypeMigration.getInstance());
-        addMap(MigrationTable.DTDEFINEINFO.getCode(), DefineInfoMigration.getInstance());
-        addMap(MigrationTable.DTOBJECT.getCode(), ObjectDigitalMigration.getInstance());
-        addMap(MigrationTable.DTRELATION.getCode(), ObjectRelationMigration.getInstance());
+        addMap(MigrationTable.DTDEFINETYPE.getCode(), typeMigration);
+        addMap(MigrationTable.DTDEFINEINFO.getCode(), infoMigration);
+        addMap(MigrationTable.DTOBJECT.getCode(), objectDigitalMigration);
+        addMap(MigrationTable.DTRELATION.getCode(), objectRelationMigration);
     }
 }

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

@@ -1,4 +1,4 @@
-package com.persagy.proxy.migration.handler;
+package com.persagy.proxy.migration.service;
 
 import com.persagy.proxy.adm.request.AdmResponse;
 import com.persagy.proxy.common.entity.InstanceUrlParam;

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

@@ -1,4 +1,4 @@
-package com.persagy.proxy.migration.handler;
+package com.persagy.proxy.migration.service;
 
 import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.rwd.migrate.entity.SyncData;

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

@@ -1,4 +1,4 @@
-package com.persagy.proxy.migration.handler;
+package com.persagy.proxy.migration.service;
 
 import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.proxy.common.entity.InstanceUrlParam;

+ 3 - 2
adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/service/MigrationAbstractService.java

@@ -14,16 +14,17 @@ import java.util.Set;
 
 /**
  * @author lvxianyun
- * @title: MigrationAbstractService
+ * @title: IMigrationAbstractService
  * @projectName adm-middleware
  * @description: 提供基础的数据操作方法
  * @date 2021/12/3 10:42
  */
-public interface MigrationAbstractService<T> {
+public interface IMigrationAbstractService<T> {
 
     /**
      * adm交付数据(A) ∩ 现场数据(B)
      * (A∩B) A
+     *
      *  需要进一步对比的数据
      */
     Map<String,Object> doIntersectionGetFrom(Map<String,Object> from, Map<String,Object> to);

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

@@ -12,7 +12,7 @@ import com.persagy.proxy.common.entity.InstanceUrlParam;
  * @description: 迁移日志服务
  * @date 2022/1/5 17:21
  */
-public interface MigrationLogService {
+public interface IMigrationLogService {
 
     AdmResponse queryMigrationLog(InstanceUrlParam context, AdmQueryCriteria request);
 }

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

@@ -1,4 +1,4 @@
-package com.persagy.proxy.migration.handler;
+package com.persagy.proxy.migration.service.Impl;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
@@ -19,8 +19,12 @@ import com.persagy.proxy.migration.constant.MigrationType;
 import com.persagy.proxy.migration.model.DataMigrationExcel;
 import com.persagy.proxy.migration.model.DataMigrationResponse;
 import com.persagy.proxy.migration.model.MigrationInfo;
+import com.persagy.proxy.migration.service.IDataMigration;
+import com.persagy.proxy.migration.service.IDataMigrationProcess;
+import com.persagy.proxy.migration.service.IDefineDataMigration;
 import com.persagy.proxy.migration.service.Impl.MigrationAbstractServiceImpl;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
 
 import java.util.*;
 import java.util.stream.Collectors;
@@ -33,23 +37,8 @@ import java.util.stream.Collectors;
  * @date 2021/12/8 17:28
  */
 @Slf4j
+@Service
 public class DefineInfoMigration extends MigrationAbstractServiceImpl<ObjectInfoDefine> implements IDataMigration, IDefineDataMigration<ObjectInfoDefine>, IDataMigrationProcess<ObjectInfoDefine> {
-    
-    private static DefineInfoMigration instance;
-
-    private DefineInfoMigration() {}
-
-    // 静态方法返回该实例
-    public static DefineInfoMigration getInstance() {
-        if(instance == null) {
-            synchronized (DefineInfoMigration.class) {
-                if (instance == null) {
-                    instance = new DefineInfoMigration();
-                }
-            }
-        }
-        return instance;
-    }
 
     /**
      * 数据迁移
@@ -371,10 +360,8 @@ public class DefineInfoMigration extends MigrationAbstractServiceImpl<ObjectInfo
             log.error(" ######################### DefineInfo adm已交付需要同步的数据:"+ ResponseCode.C0320.getDesc() +" 同步结束 #########################");
             return dataMigrationExcels;
         }
-        //String insertUrl = requestUrl(context, migrationInfo, MigrationType.INSERT.getCode());
         if(CollUtil.isEmpty(projectDefineList)){
             log.info("######################### DefineInfo 获取批量插入数据 #########################");
-            //DataMigrationResponse response = insertBatch(admDefineList, ObjectInfoDefine.class, insertUrl);
             dataMigrationExcels.addAll(processDataForExcel(admDefineList, MigrationType.CREATE.getCode()));
             return dataMigrationExcels;
         }
@@ -397,8 +384,6 @@ public class DefineInfoMigration extends MigrationAbstractServiceImpl<ObjectInfo
         Map<String,Object> subtractFromDelete = doSubtractDel(admDefineMap, projectDefineMap);
         if(!CollUtil.isEmpty(subtractFromDelete)){
             List<String> deleteIds = subtractFromDelete.entrySet().stream().map(en -> en.getKey()).collect(Collectors.toList());
-            //String delUrl = requestUrl(context, migrationInfo, MigrationType.DELETE.getCode());
-            //DataMigrationResponse response = deleteBatch(deleteIds, ObjectInfoDefine.class, delUrl);
             List<ObjectInfoDefine> delData = toListByIds(deleteIds, projectDefineList);
             dataMigrationExcels.addAll(processDataForExcel(delData, MigrationType.DELETE.getCode()));
         }
@@ -413,8 +398,6 @@ public class DefineInfoMigration extends MigrationAbstractServiceImpl<ObjectInfo
             Map<String, Object> compareData = compareData(intersectionUpdateFrom, intersectionUpdateTo);
             if(CollUtil.isNotEmpty(compareData) && compareData.size() > 0){
                 List<ObjectInfoDefine> updateData = toList(compareData, admDefineList);
-                //String updateUrl = requestUrl(context, migrationInfo, MigrationType.UPDATE.getCode());
-                //updateBatch(updateData, ObjectInfoDefine.class, updateUrl)
                 dataMigrationExcels.addAll(processDataForExcel(updateData, MigrationType.UPDATE.getCode()));
             }
         }

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

@@ -1,4 +1,4 @@
-package com.persagy.proxy.migration.handler;
+package com.persagy.proxy.migration.service.Impl;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
@@ -19,8 +19,12 @@ import com.persagy.proxy.migration.constant.MigrationType;
 import com.persagy.proxy.migration.model.DataMigrationExcel;
 import com.persagy.proxy.migration.model.DataMigrationResponse;
 import com.persagy.proxy.migration.model.MigrationInfo;
+import com.persagy.proxy.migration.service.IDataMigration;
+import com.persagy.proxy.migration.service.IDataMigrationProcess;
+import com.persagy.proxy.migration.service.IDefineDataMigration;
 import com.persagy.proxy.migration.service.Impl.MigrationAbstractServiceImpl;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
 
 import java.util.*;
 import java.util.stream.Collectors;
@@ -32,23 +36,9 @@ import java.util.stream.Collectors;
  * @date 2021/12/1 19:38
  */
 @Slf4j
+@Service
 public class DefineTypeMigration extends MigrationAbstractServiceImpl<ObjectTypeDefine> implements IDataMigration, IDefineDataMigration<ObjectTypeDefine>, IDataMigrationProcess<ObjectTypeDefine> {
 
-    private static DefineTypeMigration instance;
-
-    private DefineTypeMigration() {}
-
-    // 静态方法返回该实例
-    public static DefineTypeMigration getInstance() {
-        if(instance == null) {
-            synchronized (DefineTypeMigration.class) {
-                if (instance == null) {
-                    instance = new DefineTypeMigration();
-                }
-            }
-        }
-        return instance;
-    }
     /**
      * 数据迁移 迁移项目级 集团级 字典信息
      *

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

@@ -23,7 +23,7 @@ import com.persagy.proxy.migration.constant.MigrationConstant;
 import com.persagy.proxy.migration.model.DataMigrationExcel;
 import com.persagy.proxy.migration.model.DataMigrationResponse;
 import com.persagy.proxy.migration.model.MigrationInfo;
-import com.persagy.proxy.migration.service.MigrationAbstractService;
+import com.persagy.proxy.migration.service.IMigrationAbstractService;
 import lombok.extern.slf4j.Slf4j;
 
 import java.io.IOException;
@@ -39,7 +39,7 @@ import java.util.stream.Collectors;
  * @date 2021/12/3 10:56
  */
 @Slf4j
-public class MigrationAbstractServiceImpl<T> implements MigrationAbstractService<T> {
+public class MigrationAbstractServiceImpl<T> implements IMigrationAbstractService<T> {
 
     /**
      * adm交付数据(A) ∩ 现场数据(B)

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

@@ -18,7 +18,7 @@ import com.persagy.proxy.adm.utils.AdmQueryCriteriaHelper;
 import com.persagy.proxy.common.entity.DmpResult;
 import com.persagy.proxy.common.entity.InstanceUrlParam;
 import com.persagy.proxy.migration.constant.MigrationTable;
-import com.persagy.proxy.migration.service.MigrationLogService;
+import com.persagy.proxy.migration.service.IMigrationLogService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
@@ -36,7 +36,7 @@ import java.util.stream.Collectors;
  */
 @Service
 @Slf4j
-public class MigrationLogServiceImpl implements MigrationLogService {
+public class MigrationLogServiceImpl implements IMigrationLogService {
     @Override
     public AdmResponse queryMigrationLog(InstanceUrlParam context, AdmQueryCriteria request) {
         QueryCriteria queryCriteria = AdmQueryCriteriaHelper.toDmpCriteria(request);

+ 6 - 18
adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/handler/ObjectDigitalMigration.java

@@ -1,4 +1,4 @@
-package com.persagy.proxy.migration.handler;
+package com.persagy.proxy.migration.service.Impl;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
@@ -20,8 +20,11 @@ import com.persagy.proxy.migration.constant.MigrationType;
 import com.persagy.proxy.migration.model.DataMigrationExcel;
 import com.persagy.proxy.migration.model.DataMigrationResponse;
 import com.persagy.proxy.migration.model.MigrationInfo;
+import com.persagy.proxy.migration.service.IDataMigration;
+import com.persagy.proxy.migration.service.IDataMigrationProcess;
 import com.persagy.proxy.migration.service.Impl.MigrationAbstractServiceImpl;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
 
 import java.util.*;
 import java.util.stream.Collectors;
@@ -34,24 +37,9 @@ import java.util.stream.Collectors;
  * @date 2021/12/8 19:53
  */
 @Slf4j
+@Service
 public class ObjectDigitalMigration extends MigrationAbstractServiceImpl<ObjectDigital> implements IDataMigration, IDataMigrationProcess<ObjectDigital> {
 
-   private static ObjectDigitalMigration instance;
-
-    private ObjectDigitalMigration() {}
-
-    // 静态方法返回该实例
-    public static ObjectDigitalMigration getInstance() {
-        if(instance == null) {
-            synchronized (ObjectDigitalMigration.class) {
-                if (instance == null) {
-                    instance = new ObjectDigitalMigration();
-                }
-            }
-        }
-        return instance;
-    }
-
     /**
      * 数据迁移前,数据对比信息 汇总
      *
@@ -352,7 +340,7 @@ public class ObjectDigitalMigration extends MigrationAbstractServiceImpl<ObjectD
             excel.setName(String.join(StrUtil.DASHED, digital.getLocalId() == null ? "" : digital.getLocalId(), digital.getLocalName() == null ? "" : digital.getLocalName()));
             excel.setType(type);
             excel.setCreateTime(digital.getCreationTime().toString());
-            excel.setUpdateTime(digital.getModifiedTime().toString());
+            excel.setUpdateTime(digital.getModifiedTime() == null ? "" :digital.getModifiedTime().toString());
             dataMigrationExcels.add(excel);
         }
         return dataMigrationExcels;

+ 6 - 18
adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/handler/ObjectRelationMigration.java

@@ -1,4 +1,4 @@
-package com.persagy.proxy.migration.handler;
+package com.persagy.proxy.migration.service.Impl;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
@@ -26,8 +26,11 @@ import com.persagy.proxy.migration.constant.MigrationType;
 import com.persagy.proxy.migration.model.DataMigrationExcel;
 import com.persagy.proxy.migration.model.DataMigrationResponse;
 import com.persagy.proxy.migration.model.MigrationInfo;
+import com.persagy.proxy.migration.service.IDataMigration;
+import com.persagy.proxy.migration.service.IDataMigrationProcess;
 import com.persagy.proxy.migration.service.Impl.MigrationAbstractServiceImpl;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
 
 import java.util.*;
 import java.util.concurrent.*;
@@ -41,24 +44,9 @@ import java.util.stream.Collectors;
  * @date 2021/12/8 19:51
  */
 @Slf4j
+@Service
 public class ObjectRelationMigration extends MigrationAbstractServiceImpl<ObjectRelation> implements IDataMigration, IDataMigrationProcess<ObjectRelation> {
 
-    private static ObjectRelationMigration instance;
-
-    private ObjectRelationMigration() {}
-
-    // 静态方法返回该实例
-    public static ObjectRelationMigration getInstance() {
-        if(instance == null) {
-            synchronized (ObjectRelationMigration.class) {
-                if (instance == null) {
-                    instance = new ObjectRelationMigration();
-                }
-            }
-        }
-        return instance;
-    }
-
     /**
      * 数据迁移
      *
@@ -365,7 +353,7 @@ public class ObjectRelationMigration extends MigrationAbstractServiceImpl<Object
             excel.setObjTo(objectRelation.getObjTo());
             excel.setType(type);
             excel.setCreateTime(objectRelation.getCreationTime().toString());
-            excel.setUpdateTime(objectRelation.getModifiedTime().toString());
+            excel.setUpdateTime(objectRelation.getModifiedTime() == null ? "" :objectRelation.getModifiedTime().toString());
             dataMigrationExcels.add(excel);
         }
         return dataMigrationExcels;