Merge pull request #13021 from dataease/pr@dev-v2@fixExportData

fix: [Bug] 仪表板视图名字带 / 导出 Excel 会失败 #12883
This commit is contained in:
taojinlong 2024-10-30 17:00:55 +08:00 committed by GitHub
commit 517f524e97
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -174,7 +174,12 @@ public class ExportCenterManage implements BaseExportApi {
response.setContentType("application/vnd.ms-excel"); response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(exportTask.getFileName(), StandardCharsets.UTF_8)); response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(exportTask.getFileName(), StandardCharsets.UTF_8));
InputStream fileInputStream = new FileInputStream(exportData_path + id + "/" + exportTask.getFileName()); InputStream fileInputStream;
if (exportTask.getExportTime() < 1730277243491L) {
fileInputStream = new FileInputStream(exportData_path + id + "/" + exportTask.getFileName());
} else {
fileInputStream = new FileInputStream(exportData_path + id + "/" + id + ".xlsx");
}
byte[] buffer = new byte[4096]; byte[] buffer = new byte[4096];
int bytesRead; int bytesRead;
while ((bytesRead = fileInputStream.read(buffer)) != -1) { while ((bytesRead = fileInputStream.read(buffer)) != -1) {
@ -396,7 +401,7 @@ public class ExportCenterManage implements BaseExportApi {
exportTask.setExportStatus("IN_PROGRESS"); exportTask.setExportStatus("IN_PROGRESS");
exportTaskMapper.updateById(exportTask); exportTaskMapper.updateById(exportTask);
getDataFillingApi().writeExcel(dataPath + "/" + exportTask.getFileName(), getDataFillingApi().writeExcel(dataPath + "/" + exportTask.getId() + ".xlsx",
new DataFillFormTableDataRequest() new DataFillFormTableDataRequest()
.setId(Long.parseLong(exportTask.getExportFrom())) .setId(Long.parseLong(exportTask.getExportFrom()))
.setWithoutLogs(true) .setWithoutLogs(true)
@ -406,7 +411,7 @@ public class ExportCenterManage implements BaseExportApi {
exportTask.setExportProgress("100"); exportTask.setExportProgress("100");
exportTask.setExportStatus("SUCCESS"); exportTask.setExportStatus("SUCCESS");
setFileSize(dataPath + "/" + exportTask.getFileName(), exportTask); setFileSize(dataPath + "/" + exportTask.getId() + ".xlsx", exportTask);
} catch (Exception e) { } catch (Exception e) {
exportTask.setMsg(e.getMessage()); exportTask.setMsg(e.getMessage());
LogUtil.error("Failed to export data", e); LogUtil.error("Failed to export data", e);
@ -508,7 +513,7 @@ public class ExportCenterManage implements BaseExportApi {
Long sheetLimit = 1000000L; Long sheetLimit = 1000000L;
Long sheetCount = (totalCount / sheetLimit) + (totalCount % sheetLimit > 0 ? 1 : 0); Long sheetCount = (totalCount / sheetLimit) + (totalCount % sheetLimit > 0 ? 1 : 0);
Workbook wb = new SXSSFWorkbook(); Workbook wb = new SXSSFWorkbook();
FileOutputStream fileOutputStream = new FileOutputStream(dataPath + "/" + request.getFilename() + ".xlsx"); FileOutputStream fileOutputStream = new FileOutputStream(dataPath + "/" + exportTask.getId() + ".xlsx");
for (Long s = 1L; s < sheetCount + 1; s++) { for (Long s = 1L; s < sheetCount + 1; s++) {
Long sheetSize; Long sheetSize;
if (s.equals(sheetCount)) { if (s.equals(sheetCount)) {
@ -607,7 +612,7 @@ public class ExportCenterManage implements BaseExportApi {
wb.close(); wb.close();
exportTask.setExportProgress("100"); exportTask.setExportProgress("100");
exportTask.setExportStatus("SUCCESS"); exportTask.setExportStatus("SUCCESS");
setFileSize(dataPath + "/" + request.getFilename() + ".xlsx", exportTask); setFileSize(dataPath + "/" + exportTask.getId() + ".xlsx", exportTask);
} catch (Exception e) { } catch (Exception e) {
LogUtil.error("Failed to export data", e); LogUtil.error("Failed to export data", e);
@ -676,14 +681,14 @@ public class ExportCenterManage implements BaseExportApi {
ChartDataServer.setExcelData(detailsSheet, cellStyle, header, details, detailFields, excelTypes); ChartDataServer.setExcelData(detailsSheet, cellStyle, header, details, detailFields, excelTypes);
} }
} }
try (FileOutputStream outputStream = new FileOutputStream(dataPath + "/" + request.getViewName() + ".xlsx")) { try (FileOutputStream outputStream = new FileOutputStream(dataPath + "/" + exportTask.getId() + ".xlsx")) {
wb.write(outputStream); wb.write(outputStream);
outputStream.flush(); outputStream.flush();
} }
wb.close(); wb.close();
exportTask.setExportProgress("100"); exportTask.setExportProgress("100");
exportTask.setExportStatus("SUCCESS"); exportTask.setExportStatus("SUCCESS");
setFileSize(dataPath + "/" + request.getViewName() + ".xlsx", exportTask); setFileSize(dataPath + "/" + exportTask.getId() + ".xlsx", exportTask);
} catch (Exception e) { } catch (Exception e) {
exportTask.setMsg(e.getMessage()); exportTask.setMsg(e.getMessage());
LogUtil.error("Failed to export data", e); LogUtil.error("Failed to export data", e);