forked from github/dataease
fix: 精简模式手动修改字段类型为数值后不生效
This commit is contained in:
parent
b99a3f8b5f
commit
21dad506a3
@ -2,6 +2,7 @@ package io.dataease.commons.utils;
|
||||
|
||||
import io.dataease.dto.dataset.ExcelSheetData;
|
||||
import io.dataease.i18n.Translator;
|
||||
import io.dataease.plugins.common.base.domain.DatasetTableField;
|
||||
import io.dataease.plugins.common.dto.datasource.TableField;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.poi.openxml4j.opc.OPCPackage;
|
||||
@ -109,6 +110,16 @@ public class ExcelXlsxReader extends DefaultHandler {
|
||||
//定义该文档一行最大的单元格数,用来补全一行最后可能缺失的单元格
|
||||
private String maxRef = null;
|
||||
|
||||
public List<DatasetTableField> getDatasetTableFields() {
|
||||
return datasetTableFields;
|
||||
}
|
||||
|
||||
public void setDatasetTableFields(List<DatasetTableField> datasetTableFields) {
|
||||
this.datasetTableFields = datasetTableFields;
|
||||
}
|
||||
|
||||
private List<DatasetTableField> datasetTableFields = null;
|
||||
|
||||
/**
|
||||
* 单元格
|
||||
*/
|
||||
@ -418,10 +429,10 @@ public class ExcelXlsxReader extends DefaultHandler {
|
||||
break;
|
||||
case NUMBER: //数字
|
||||
if (formatString != null && isDateFormat) {
|
||||
if (obtainedNum != null) {
|
||||
thisStr = formatter.formatRawCellContents(Double.parseDouble(value), formatIndex, formatString).trim();
|
||||
} else {
|
||||
if (getDatasetTableFields() != null && getDatasetTableFields().get(curCol).getDeExtractType() == 1) {
|
||||
thisStr = formatter.formatRawCellContents(Double.parseDouble(value), formatIndex, "yyyy-mm-dd hh:mm:ss").trim();
|
||||
} else {
|
||||
thisStr = formatter.formatRawCellContents(Double.parseDouble(value), formatIndex, formatString).trim();
|
||||
}
|
||||
} else {
|
||||
thisStr = value;
|
||||
|
@ -197,7 +197,7 @@ public class ExtractDataService {
|
||||
generateJobFile("all_scope", datasetTable, datasetTableFields.stream().map(DatasetTableField::getDataeaseName).collect(Collectors.joining(",")));
|
||||
extractData(datasetTable, "all_scope");
|
||||
} else {
|
||||
extractExcelDataForSimpleMode(datasetTable, "all_scope");
|
||||
extractExcelDataForSimpleMode(datasetTable, "all_scope", datasetTableFields);
|
||||
}
|
||||
replaceTable(TableUtils.tableName(datasetTableId));
|
||||
saveSuccessLog(datasetTableTaskLog, false);
|
||||
@ -250,7 +250,7 @@ public class ExtractDataService {
|
||||
generateJobFile("incremental_add", datasetTable, datasetTableFields.stream().map(DatasetTableField::getDataeaseName).collect(Collectors.joining(",")));
|
||||
extractData(datasetTable, "incremental_add");
|
||||
} else {
|
||||
extractExcelDataForSimpleMode(datasetTable, "incremental_add");
|
||||
extractExcelDataForSimpleMode(datasetTable, "incremental_add", datasetTableFields);
|
||||
}
|
||||
saveSuccessLog(datasetTableTaskLog, false);
|
||||
updateTableStatus(datasetTableId, JobStatus.Completed, execTime);
|
||||
@ -724,7 +724,7 @@ public class ExtractDataService {
|
||||
return datasetTableTaskLog;
|
||||
}
|
||||
|
||||
private void extractExcelDataForSimpleMode(DatasetTable datasetTable, String extractType) throws Exception {
|
||||
private void extractExcelDataForSimpleMode(DatasetTable datasetTable, String extractType, List<DatasetTableField> datasetTableFields) throws Exception {
|
||||
List<String[]> data = new ArrayList<>();
|
||||
DataTableInfoDTO dataTableInfoDTO = new Gson().fromJson(datasetTable.getInfo(), DataTableInfoDTO.class);
|
||||
List<ExcelSheetData> excelSheetDataList = dataTableInfoDTO.getExcelSheetDataList();
|
||||
@ -738,6 +738,7 @@ public class ExtractDataService {
|
||||
}
|
||||
if (StringUtils.equalsIgnoreCase(suffix, "xlsx")) {
|
||||
ExcelXlsxReader excelXlsxReader = new ExcelXlsxReader();
|
||||
excelXlsxReader.setDatasetTableFields(datasetTableFields);
|
||||
excelXlsxReader.process(new FileInputStream(excelSheetData.getPath()));
|
||||
totalSheets = excelXlsxReader.totalSheets;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user