|
@@ -8,6 +8,9 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
import com.persagy.dmp.basic.model.QueryCriteria;
|
|
import com.persagy.dmp.basic.model.QueryCriteria;
|
|
import com.persagy.dmp.basic.utils.JsonNodeUtils;
|
|
import com.persagy.dmp.basic.utils.JsonNodeUtils;
|
|
import com.persagy.dmp.common.constant.ResponseCode;
|
|
import com.persagy.dmp.common.constant.ResponseCode;
|
|
|
|
+import com.persagy.dmp.common.model.entity.AuditableEntity;
|
|
|
|
+import com.persagy.dmp.common.model.entity.BaseEntity;
|
|
|
|
+import com.persagy.dmp.define.entity.ObjectTypeDefine;
|
|
import com.persagy.dmp.digital.client.DigitalObjectFacade;
|
|
import com.persagy.dmp.digital.client.DigitalObjectFacade;
|
|
import com.persagy.dmp.digital.entity.ObjectDigital;
|
|
import com.persagy.dmp.digital.entity.ObjectDigital;
|
|
import com.persagy.dmp.rwd.migrate.entity.SyncData;
|
|
import com.persagy.dmp.rwd.migrate.entity.SyncData;
|
|
@@ -90,6 +93,88 @@ public class ObjectDigitalMigration extends MigrationAbstractServiceImpl<ObjectD
|
|
return AdmResponse.success();
|
|
return AdmResponse.success();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 数据迁移
|
|
|
|
+ *
|
|
|
|
+ * @param context
|
|
|
|
+ * @return sql 文件
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public String migrateForSql(InstanceUrlParam context) {
|
|
|
|
+ StringBuffer sqls = new StringBuffer(" \n -- 数据迁移 dt_object ------ \n");
|
|
|
|
+ //获取已经采集的数据
|
|
|
|
+ StringBuffer sqls_temp = new StringBuffer();
|
|
|
|
+ for(MigrationObjType objType : MigrationObjType.values()){
|
|
|
|
+ QueryCriteria queryCriteria = getQueryCriteria(objType.getCode());
|
|
|
|
+ List<ObjectNode> admData = getAdmData(context,queryCriteria);
|
|
|
|
+ if(CollUtil.isEmpty(admData)){
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ appendValues(admData, sqls_temp);
|
|
|
|
+ }
|
|
|
|
+ if(sqls_temp.length() == 0){
|
|
|
|
+ return "";
|
|
|
|
+ }
|
|
|
|
+ sqls.append(MigrationConstant.DT_OBJECT_SQL_PRE);
|
|
|
|
+ sqls.append(sqls_temp);
|
|
|
|
+ String sql = sqls.toString();
|
|
|
|
+ sql = sql.substring(0, sql.lastIndexOf(","));
|
|
|
|
+ sql += ";";
|
|
|
|
+ return sql;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private StringBuffer appendValues(List<ObjectNode> admData, StringBuffer sqls){
|
|
|
|
+ admData.forEach(obj -> {
|
|
|
|
+ ObjectDigital objectDigital = JsonNodeUtils.toEntity(obj, ObjectDigital.class, "infos");
|
|
|
|
+ sqls.append("(");
|
|
|
|
+ sqls.append("'").append(objectDigital.getId()).append("',");
|
|
|
|
+ if (objectDigital.getName() == null) {
|
|
|
|
+ sqls.append(objectDigital.getName()).append(",");
|
|
|
|
+ } else {
|
|
|
|
+ sqls.append("'").append(objectDigital.getName()).append("',");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (objectDigital.getLocalId() == null) {
|
|
|
|
+ sqls.append(objectDigital.getLocalId()).append(",");
|
|
|
|
+ } else {
|
|
|
|
+ sqls.append("'").append(objectDigital.getLocalId()).append("',");
|
|
|
|
+ }
|
|
|
|
+ if (objectDigital.getLocalName() == null) {
|
|
|
|
+ sqls.append(objectDigital.getLocalName()).append(",");
|
|
|
|
+ } else {
|
|
|
|
+ sqls.append("'").append(objectDigital.getLocalName()).append("',");
|
|
|
|
+ }
|
|
|
|
+ sqls.append("'").append(objectDigital.getGroupCode()).append("',");
|
|
|
|
+ sqls.append("'").append(objectDigital.getProjectId()).append("',");
|
|
|
|
+ sqls.append("'").append(objectDigital.getObjType()).append("',");
|
|
|
|
+ sqls.append("'").append(objectDigital.getClassCode()).append("',");
|
|
|
|
+ sqls.append("'").append(objectDigital.getGrouping()).append("',");
|
|
|
|
+ sqls.append("'").append(objectDigital.getInfos()).append("',");
|
|
|
|
+ if (objectDigital.getVirtualCodes() == null) {
|
|
|
|
+ sqls.append(objectDigital.getVirtualCodes()).append(",");
|
|
|
|
+ } else {
|
|
|
|
+ sqls.append("'").append(objectDigital.getVirtualCodes()).append("',");
|
|
|
|
+ }
|
|
|
|
+ if (objectDigital.getCreateApp() == null) {
|
|
|
|
+ sqls.append(objectDigital.getCreateApp()).append(",");
|
|
|
|
+ } else {
|
|
|
|
+ sqls.append("'").append(objectDigital.getCreateApp()).append("',");
|
|
|
|
+ }
|
|
|
|
+ if (objectDigital.getUpdateApp() == null) {
|
|
|
|
+ sqls.append(objectDigital.getUpdateApp()).append(",");
|
|
|
|
+ } else {
|
|
|
|
+ sqls.append("'").append(objectDigital.getUpdateApp()).append("',");
|
|
|
|
+ }
|
|
|
|
+ sqls.append("'").append(objectDigital.getCreator()).append("',");
|
|
|
|
+ sqls.append("'").append(objectDigital.getCreationTime()).append("',");
|
|
|
|
+ sqls.append("'").append(objectDigital.getModifier()).append("',");
|
|
|
|
+ sqls.append("'").append(objectDigital.getModifiedTime()).append("',");
|
|
|
|
+ sqls.append(objectDigital.getValid()).append(",");
|
|
|
|
+ sqls.append(objectDigital.getTs());
|
|
|
|
+ sqls.append("),");
|
|
|
|
+ });
|
|
|
|
+ return sqls;
|
|
|
|
+ }
|
|
private QueryCriteria getQueryCriteria(String typeCode){
|
|
private QueryCriteria getQueryCriteria(String typeCode){
|
|
QueryCriteria queryCriteria = new QueryCriteria();
|
|
QueryCriteria queryCriteria = new QueryCriteria();
|
|
queryCriteria.setSize(-1L);
|
|
queryCriteria.setSize(-1L);
|
|
@@ -189,9 +274,7 @@ public class ObjectDigitalMigration extends MigrationAbstractServiceImpl<ObjectD
|
|
return Collections.emptyList();
|
|
return Collections.emptyList();
|
|
}
|
|
}
|
|
|
|
|
|
- //String insertUrl = requestUrl(context, migrationInfo, MigrationType.INSERT.getCode());
|
|
|
|
if(CollUtil.isEmpty(objectNodeList)){
|
|
if(CollUtil.isEmpty(objectNodeList)){
|
|
- //DataMigrationResponse dataMigrationResponse = insertBatch(admData, ObjectDigital.class, insertUrl);
|
|
|
|
dataMigrationExcels.addAll(processDataForExcel(admData, MigrationType.CREATE.getCode()));
|
|
dataMigrationExcels.addAll(processDataForExcel(admData, MigrationType.CREATE.getCode()));
|
|
return dataMigrationExcels;
|
|
return dataMigrationExcels;
|
|
}
|
|
}
|
|
@@ -201,7 +284,6 @@ public class ObjectDigitalMigration extends MigrationAbstractServiceImpl<ObjectD
|
|
Map<String,Object> doSubtractFromInsert = doSubtractAdd(admMap, projectMap);
|
|
Map<String,Object> doSubtractFromInsert = doSubtractAdd(admMap, projectMap);
|
|
if(!CollUtil.isEmpty(doSubtractFromInsert)){
|
|
if(!CollUtil.isEmpty(doSubtractFromInsert)){
|
|
List<ObjectNode> insertData = toList(doSubtractFromInsert, admData);
|
|
List<ObjectNode> insertData = toList(doSubtractFromInsert, admData);
|
|
- //DataMigrationResponse dataMigrationResponse = insertBatch(insertData, ObjectDigital.class, insertUrl);
|
|
|
|
dataMigrationExcels.addAll(processDataForExcel(insertData, MigrationType.CREATE.getCode()));
|
|
dataMigrationExcels.addAll(processDataForExcel(insertData, MigrationType.CREATE.getCode()));
|
|
}
|
|
}
|
|
|
|
|
|
@@ -211,8 +293,6 @@ public class ObjectDigitalMigration extends MigrationAbstractServiceImpl<ObjectD
|
|
List<String> deleteIds = doSubtractFromDelete.entrySet().stream().map(en -> en.getKey()).collect(Collectors.toList());
|
|
List<String> deleteIds = doSubtractFromDelete.entrySet().stream().map(en -> en.getKey()).collect(Collectors.toList());
|
|
|
|
|
|
List<ObjectNode> deleteData = toListByIds(deleteIds, objectNodeList);
|
|
List<ObjectNode> deleteData = toListByIds(deleteIds, objectNodeList);
|
|
- //String delUrl = requestUrl(context, migrationInfo, MigrationType.DELETE.getCode());
|
|
|
|
- //DataMigrationResponse dataMigrationResponse = deleteBatch(deleteIds, ObjectDigital.class, delUrl);
|
|
|
|
dataMigrationExcels.addAll(processDataForExcel(deleteData, MigrationType.DELETE.getCode()));
|
|
dataMigrationExcels.addAll(processDataForExcel(deleteData, MigrationType.DELETE.getCode()));
|
|
}
|
|
}
|
|
|
|
|
|
@@ -224,8 +304,6 @@ public class ObjectDigitalMigration extends MigrationAbstractServiceImpl<ObjectD
|
|
Map<String, Object> compareData = compareData(intersectionUpdateFrom, intersectionUpdateTo);
|
|
Map<String, Object> compareData = compareData(intersectionUpdateFrom, intersectionUpdateTo);
|
|
if(CollUtil.isNotEmpty(compareData) && compareData.size() > 0){
|
|
if(CollUtil.isNotEmpty(compareData) && compareData.size() > 0){
|
|
List<ObjectNode> updateData = toList(compareData, admData);
|
|
List<ObjectNode> updateData = toList(compareData, admData);
|
|
- //String updateUrl = requestUrl(context, migrationInfo, MigrationType.UPDATE.getCode());
|
|
|
|
- //DataMigrationResponse dataMigrationResponse = updateBatch(updateData, ObjectDigital.class, updateUrl);
|
|
|
|
dataMigrationExcels.addAll(processDataForExcel(updateData, MigrationType.UPDATE.getCode()));
|
|
dataMigrationExcels.addAll(processDataForExcel(updateData, MigrationType.UPDATE.getCode()));
|
|
}
|
|
}
|
|
}
|
|
}
|