feat: 替换excel时,替换成功后,才更新数据集字段
This commit is contained in:
parent
db3e6fe7b5
commit
8f494f3755
@ -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);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user