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

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

上级 db3e6fe7
......@@ -141,9 +141,9 @@ public class DataSetTableService {
sheetTable.setInfo(new Gson().toJson(info));
int insert = datasetTableMapper.insert(sheetTable);
if (insert == 1) {
saveExcelTableField(sheetTable.getId(), excelSheetDataList.get(0).getFields());
saveExcelTableField(sheetTable.getId(), excelSheetDataList.get(0).getFields(), true);
commonThreadPool.addTask(() -> {
extractDataService.extractExcelData(sheetTable.getId(), "all_scope", "初始导入");
extractDataService.extractExcelData(sheetTable.getId(), "all_scope", "初始导入", null);
});
}
}
......@@ -169,9 +169,9 @@ public class DataSetTableService {
sheetTable.setInfo(new Gson().toJson(info));
int insert = datasetTableMapper.insert(sheetTable);
if (insert == 1) {
saveExcelTableField(sheetTable.getId(), sheet.getFields());
saveExcelTableField(sheetTable.getId(), sheet.getFields(), true);
commonThreadPool.addTask(() -> {
extractDataService.extractExcelData(sheetTable.getId(), "all_scope", "初始导入");
extractDataService.extractExcelData(sheetTable.getId(), "all_scope", "初始导入", null);
});
}
}
......@@ -203,20 +203,16 @@ public class DataSetTableService {
info.setExcelSheetDataList(excelSheetDataList);
datasetTable.setInfo(new Gson().toJson(info));
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 (datasetTable.getEditType() == 0) {
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) {
commonThreadPool.addTask(() -> {
extractDataService.extractExcelData(datasetTable.getId(), "add_scope", "追加");
extractDataService.extractExcelData(datasetTable.getId(), "add_scope", "追加", null);
});
}
}
......@@ -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)) {
for (int i = 0; i < fields.size(); i++) {
TableFiled filed = fields.get(i);
......@@ -918,9 +915,13 @@ public class DataSetTableService {
datasetTableField.setLastSyncTime(System.currentTimeMillis());
datasetTableField.setExtField(0);
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 {
......
......@@ -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.setType("excel");
DatasetTable datasetTable = getDatasetTable(datasetTableId);
......@@ -161,7 +161,9 @@ public class ExtractDataService {
}
UpdateType updateType = UpdateType.valueOf(type);
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) -> {
if (o1.getColumnIndex() == null) {
return -1;
......@@ -186,6 +188,12 @@ public class ExtractDataService {
saveSucessLog(datasetTableTaskLog);
// sendWebMsg(datasetTable, null, true);
updateTableStatus(datasetTableId, datasetTable, JobStatus.Completed, execTime);
if(ops.equalsIgnoreCase("替换")){
dataSetTableFieldsService.deleteByTableId(datasetTable.getId());
datasetTableFields.forEach(datasetTableField -> {
dataSetTableFieldsService.save(datasetTableField);
});
}
} catch (Exception e) {
saveErrorLog(datasetTableId, null, e);
// sendWebMsg(datasetTable, null, false);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论