提交 8f494f37 authored 作者: taojinlong's avatar taojinlong

feat: 替换excel时,替换成功后,才更新数据集字段

上级 db3e6fe7
...@@ -141,9 +141,9 @@ public class DataSetTableService { ...@@ -141,9 +141,9 @@ public class DataSetTableService {
sheetTable.setInfo(new Gson().toJson(info)); sheetTable.setInfo(new Gson().toJson(info));
int insert = datasetTableMapper.insert(sheetTable); int insert = datasetTableMapper.insert(sheetTable);
if (insert == 1) { if (insert == 1) {
saveExcelTableField(sheetTable.getId(), excelSheetDataList.get(0).getFields()); saveExcelTableField(sheetTable.getId(), excelSheetDataList.get(0).getFields(), true);
commonThreadPool.addTask(() -> { commonThreadPool.addTask(() -> {
extractDataService.extractExcelData(sheetTable.getId(), "all_scope", "初始导入"); extractDataService.extractExcelData(sheetTable.getId(), "all_scope", "初始导入", null);
}); });
} }
} }
...@@ -169,9 +169,9 @@ public class DataSetTableService { ...@@ -169,9 +169,9 @@ public class DataSetTableService {
sheetTable.setInfo(new Gson().toJson(info)); sheetTable.setInfo(new Gson().toJson(info));
int insert = datasetTableMapper.insert(sheetTable); int insert = datasetTableMapper.insert(sheetTable);
if (insert == 1) { if (insert == 1) {
saveExcelTableField(sheetTable.getId(), sheet.getFields()); saveExcelTableField(sheetTable.getId(), sheet.getFields(), true);
commonThreadPool.addTask(() -> { commonThreadPool.addTask(() -> {
extractDataService.extractExcelData(sheetTable.getId(), "all_scope", "初始导入"); extractDataService.extractExcelData(sheetTable.getId(), "all_scope", "初始导入", null);
}); });
} }
} }
...@@ -203,20 +203,16 @@ public class DataSetTableService { ...@@ -203,20 +203,16 @@ public class DataSetTableService {
info.setExcelSheetDataList(excelSheetDataList); info.setExcelSheetDataList(excelSheetDataList);
datasetTable.setInfo(new Gson().toJson(info)); datasetTable.setInfo(new Gson().toJson(info));
int update = datasetTableMapper.updateByPrimaryKeySelective(datasetTable); int update = datasetTableMapper.updateByPrimaryKeySelective(datasetTable);
// 删除所有字段,重新抽象 // 替換時,先不刪除旧字段;同步成功后再删除
if(datasetTable.getEditType() == 0){
dataSetTableFieldsService.deleteByTableId(datasetTable.getId());
saveExcelTableField(datasetTable.getId(), datasetTable.getSheets().get(0).getFields());
}
if (update == 1) { if (update == 1) {
if (datasetTable.getEditType() == 0) { if (datasetTable.getEditType() == 0) {
commonThreadPool.addTask(() -> { commonThreadPool.addTask(() -> {
extractDataService.extractExcelData(datasetTable.getId(), "all_scope", "替换"); extractDataService.extractExcelData(datasetTable.getId(), "all_scope", "替换", saveExcelTableField(datasetTable.getId(), datasetTable.getSheets().get(0).getFields(), false));
}); });
} else if (datasetTable.getEditType() == 1) { } else if (datasetTable.getEditType() == 1) {
commonThreadPool.addTask(() -> { commonThreadPool.addTask(() -> {
extractDataService.extractExcelData(datasetTable.getId(), "add_scope", "追加"); extractDataService.extractExcelData(datasetTable.getId(), "add_scope", "追加", null);
}); });
} }
} }
...@@ -900,7 +896,8 @@ public class DataSetTableService { ...@@ -900,7 +896,8 @@ public class DataSetTableService {
} }
} }
public void saveExcelTableField(String datasetTableId, List<TableFiled> fields) throws Exception { public List<DatasetTableField> saveExcelTableField(String datasetTableId, List<TableFiled> fields, boolean insert){
List<DatasetTableField> datasetTableFields = new ArrayList<>();
if (CollectionUtils.isNotEmpty(fields)) { if (CollectionUtils.isNotEmpty(fields)) {
for (int i = 0; i < fields.size(); i++) { for (int i = 0; i < fields.size(); i++) {
TableFiled filed = fields.get(i); TableFiled filed = fields.get(i);
...@@ -918,9 +915,13 @@ public class DataSetTableService { ...@@ -918,9 +915,13 @@ public class DataSetTableService {
datasetTableField.setLastSyncTime(System.currentTimeMillis()); datasetTableField.setLastSyncTime(System.currentTimeMillis());
datasetTableField.setExtField(0); datasetTableField.setExtField(0);
datasetTableField.setGroupType(datasetTableField.getDeType() < 2 ? "d" : "q"); datasetTableField.setGroupType(datasetTableField.getDeType() < 2 ? "d" : "q");
dataSetTableFieldsService.save(datasetTableField); if(insert){
dataSetTableFieldsService.save(datasetTableField);
}
datasetTableFields.add(datasetTableField);
} }
} }
return datasetTableFields;
} }
public void saveTableField(DatasetTable datasetTable) throws Exception { public void saveTableField(DatasetTable datasetTable) throws Exception {
......
...@@ -151,7 +151,7 @@ public class ExtractDataService { ...@@ -151,7 +151,7 @@ public class ExtractDataService {
} }
} }
public void extractExcelData(String datasetTableId, String type, String ops) { public void extractExcelData(String datasetTableId, String type, String ops, List<DatasetTableField> datasetTableFields) {
Datasource datasource = new Datasource(); Datasource datasource = new Datasource();
datasource.setType("excel"); datasource.setType("excel");
DatasetTable datasetTable = getDatasetTable(datasetTableId); DatasetTable datasetTable = getDatasetTable(datasetTableId);
...@@ -161,7 +161,9 @@ public class ExtractDataService { ...@@ -161,7 +161,9 @@ public class ExtractDataService {
} }
UpdateType updateType = UpdateType.valueOf(type); UpdateType updateType = UpdateType.valueOf(type);
DatasetTableTaskLog datasetTableTaskLog = new DatasetTableTaskLog(); DatasetTableTaskLog datasetTableTaskLog = new DatasetTableTaskLog();
List<DatasetTableField> datasetTableFields = dataSetTableFieldsService.list(DatasetTableField.builder().tableId(datasetTable.getId()).build()); if(datasetTableFields == null){
datasetTableFields = dataSetTableFieldsService.list(DatasetTableField.builder().tableId(datasetTable.getId()).build());
}
datasetTableFields.sort((o1, o2) -> { datasetTableFields.sort((o1, o2) -> {
if (o1.getColumnIndex() == null) { if (o1.getColumnIndex() == null) {
return -1; return -1;
...@@ -186,6 +188,12 @@ public class ExtractDataService { ...@@ -186,6 +188,12 @@ public class ExtractDataService {
saveSucessLog(datasetTableTaskLog); saveSucessLog(datasetTableTaskLog);
// sendWebMsg(datasetTable, null, true); // sendWebMsg(datasetTable, null, true);
updateTableStatus(datasetTableId, datasetTable, JobStatus.Completed, execTime); updateTableStatus(datasetTableId, datasetTable, JobStatus.Completed, execTime);
if(ops.equalsIgnoreCase("替换")){
dataSetTableFieldsService.deleteByTableId(datasetTable.getId());
datasetTableFields.forEach(datasetTableField -> {
dataSetTableFieldsService.save(datasetTableField);
});
}
} catch (Exception e) { } catch (Exception e) {
saveErrorLog(datasetTableId, null, e); saveErrorLog(datasetTableId, null, e);
// sendWebMsg(datasetTable, null, false); // sendWebMsg(datasetTable, null, false);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论