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