diff --git a/backend/src/main/java/io/dataease/commons/utils/ExcelXlsxReader.java b/backend/src/main/java/io/dataease/commons/utils/ExcelXlsxReader.java index 15014155a6..5e2c2ea0ef 100644 --- a/backend/src/main/java/io/dataease/commons/utils/ExcelXlsxReader.java +++ b/backend/src/main/java/io/dataease/commons/utils/ExcelXlsxReader.java @@ -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 getDatasetTableFields() { + return datasetTableFields; + } + + public void setDatasetTableFields(List datasetTableFields) { + this.datasetTableFields = datasetTableFields; + } + + private List 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; diff --git a/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java b/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java index 35651738da..71ff655b11 100644 --- a/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java +++ b/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java @@ -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 datasetTableFields) throws Exception { List data = new ArrayList<>(); DataTableInfoDTO dataTableInfoDTO = new Gson().fromJson(datasetTable.getInfo(), DataTableInfoDTO.class); List 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; } @@ -1310,6 +1311,17 @@ public class ExtractDataService { .replace("ExcelCompletion", ""); } + String handleMysqlBIGINTUNSIGNEDStr = ""; + if (datasourceType.equals(DatasourceTypes.mysql)) { + for (DatasetTableField datasetTableField : datasetTableFields) { + if(datasetTableField.getType().equalsIgnoreCase("BIGINT UNSIGNED")){ + handleMysqlBIGINTUNSIGNEDStr = handleMysqlBIGINTUNSIGNEDStr + handleMysqlBIGINTUNSIGNED.replace("BIGINTUNSIGNEDFIELD", datasetTableField.getDataeaseName()) + "; \n"; + } + } + } + tmp_code = tmp_code.replace("handleMysqlBIGINTUNSIGNED", handleMysqlBIGINTUNSIGNEDStr); + + UserDefinedJavaClassDef userDefinedJavaClassDef = new UserDefinedJavaClassDef(UserDefinedJavaClassDef.ClassType.TRANSFORM_CLASS, "Processor", tmp_code); userDefinedJavaClassDef.setActive(true); @@ -1403,6 +1415,16 @@ public class ExtractDataService { " }catch (Exception e){}\n" + " }"; + private final static String handleMysqlBIGINTUNSIGNED = "if(filed.equalsIgnoreCase(\"BIGINTUNSIGNEDFIELD\")){\n" + + "\t\t\tif(tmp != null && tmp.endsWith(\".0\")){\n" + + " \ttry {\n" + + " Long.valueOf(tmp.substring(0, tmp.length()-2));\n" + + " get(Fields.Out, filed).setValue(r, tmp.substring(0, tmp.length()-2));\n" + + " get(Fields.Out, filed).getValueMeta().setType(2);\n" + + " }catch (Exception e){}\n" + + " \t\t}\n" + + "\t\t}"; + private final static String handleWraps = " if(tmp != null && ( tmp.contains(\"\\r\") || tmp.contains(\"\\n\"))){\n" + "\t\t\ttmp = tmp.trim();\n" + " tmp = tmp.replaceAll(\"\\r\",\" \");\n" + @@ -1445,6 +1467,7 @@ public class ExtractDataService { " List fields = Arrays.asList(\"Column_Fields\".split(\",\"));\n" + " for (String filed : fields) {\n" + " String tmp = get(Fields.In, filed).getString(r);\n" + + "handleMysqlBIGINTUNSIGNED \n" + "handleCharset \n" + "handleWraps \n" + "ExcelCompletion \n" + diff --git a/frontend/src/api/panel/enshrine.js b/frontend/src/api/panel/enshrine.js index e8b98951ec..92a64cf51e 100644 --- a/frontend/src/api/panel/enshrine.js +++ b/frontend/src/api/panel/enshrine.js @@ -29,6 +29,6 @@ export function starStatus(panelId) { return request({ url: '/api/store/status/' + panelId, method: 'post', - loading: true + loading: false }) } diff --git a/frontend/src/api/panel/linkJump.js b/frontend/src/api/panel/linkJump.js index ed85ac5398..e5d98dce45 100644 --- a/frontend/src/api/panel/linkJump.js +++ b/frontend/src/api/panel/linkJump.js @@ -33,6 +33,7 @@ export function queryTargetPanelJumpInfo(requestInfo) { export function queryPanelJumpInfo(panelId) { return request({ url: '/linkJump/queryPanelJumpInfo/' + panelId, - method: 'get' + method: 'get', + loading: false }) } diff --git a/frontend/src/api/panel/linkage.js b/frontend/src/api/panel/linkage.js index 6b0bd72fa6..80dc272446 100644 --- a/frontend/src/api/panel/linkage.js +++ b/frontend/src/api/panel/linkage.js @@ -21,6 +21,7 @@ export function saveLinkage(requestInfo) { export function getPanelAllLinkageInfo(panelId) { return request({ url: '/linkage/getPanelAllLinkageInfo/' + panelId, - method: 'get' + method: 'get', + loading: false }) } diff --git a/frontend/src/api/panel/panel.js b/frontend/src/api/panel/panel.js index 6bd6714b92..375c39fd17 100644 --- a/frontend/src/api/panel/panel.js +++ b/frontend/src/api/panel/panel.js @@ -97,7 +97,7 @@ export function viewPanelLog(data) { return request({ url: 'panel/group/viewLog', method: 'post', - loading: true, + loading: false, data }) } diff --git a/frontend/src/api/panel/pdfTemplate.js b/frontend/src/api/panel/pdfTemplate.js index 729a3c2b97..3e898ca1fa 100644 --- a/frontend/src/api/panel/pdfTemplate.js +++ b/frontend/src/api/panel/pdfTemplate.js @@ -4,6 +4,6 @@ export function queryAll() { return request({ url: '/pdf-template/queryAll', method: 'get', - loading: true + loading: false }) } diff --git a/frontend/src/views/dataset/data/UpdateInfo.vue b/frontend/src/views/dataset/data/UpdateInfo.vue index 0d13f46cd1..e6f68f94f6 100644 --- a/frontend/src/views/dataset/data/UpdateInfo.vue +++ b/frontend/src/views/dataset/data/UpdateInfo.vue @@ -909,7 +909,6 @@ export default { } this.incrementalConfig.tableId = this.table.id task.startTime = new Date(task.startTime).getTime() - console.log(task.endTime) task.endTime = new Date(task.endTime).getTime() task.tableId = this.table.id const form = JSON.parse(JSON.stringify(task))