删除本地APP项目
This commit is contained in:
@@ -748,7 +748,7 @@ public class CollectDataService {
|
||||
}
|
||||
|
||||
private void enqueueFinalWorkbook(FileTaskEntity task, FileResultEntity result, CollectDataStats stats) {
|
||||
String filename = buildResultFilename(task);
|
||||
String filename = buildResultFilename(task, result);
|
||||
result.setResultFilename(filename);
|
||||
result.setResultFileUrl(null);
|
||||
result.setResultFileSize(0L);
|
||||
@@ -789,7 +789,7 @@ public class CollectDataService {
|
||||
}
|
||||
List<CollectDataResultRowVo> rows = loadFinalRows(task.getId());
|
||||
File workRoot = FileUtil.mkdir(FileUtil.file(System.getProperty("java.io.tmpdir"), "collect-data-result", String.valueOf(task.getId())));
|
||||
String filename = buildResultFilename(task);
|
||||
String filename = buildResultFilename(task, result);
|
||||
File xlsx = FileUtil.file(workRoot, filename);
|
||||
try {
|
||||
excelAssemblyService.writeWorkbook(xlsx, rows);
|
||||
@@ -986,11 +986,26 @@ public class CollectDataService {
|
||||
return normalize(value).toLowerCase(Locale.ROOT);
|
||||
}
|
||||
|
||||
private String buildResultFilename(FileTaskEntity task) {
|
||||
String base = task == null || task.getTaskNo() == null || task.getTaskNo().isBlank()
|
||||
private String buildResultFilename(FileTaskEntity task, FileResultEntity result) {
|
||||
String base = result == null || result.getSourceFilename() == null || result.getSourceFilename().isBlank()
|
||||
? null
|
||||
: result.getSourceFilename();
|
||||
if (base == null || base.isBlank()) {
|
||||
base = task == null || task.getTaskNo() == null || task.getTaskNo().isBlank()
|
||||
? "collect-data-" + (task == null ? "result" : task.getId())
|
||||
: task.getTaskNo();
|
||||
return base.replaceAll("[\\\\/:*?\"<>|]", "_") + "-result.xlsx";
|
||||
}
|
||||
return safeFileStem(base) + "-result.xlsx";
|
||||
}
|
||||
|
||||
private String safeFileStem(String filename) {
|
||||
String name = filename == null || filename.isBlank() ? "collect-data" : filename;
|
||||
int idx = name.lastIndexOf('.');
|
||||
if (idx > 0) {
|
||||
name = name.substring(0, idx);
|
||||
}
|
||||
String safe = name.replaceAll("[\\\\/:*?\"<>|]", "_").trim();
|
||||
return safe.isBlank() ? "collect-data" : safe;
|
||||
}
|
||||
|
||||
private void deleteTransientTaskPayloads(Long taskId) {
|
||||
@@ -1212,7 +1227,7 @@ public class CollectDataService {
|
||||
vo.setResultId(row.getId());
|
||||
vo.setTaskId(row.getTaskId());
|
||||
vo.setSourceFilename(row.getSourceFilename());
|
||||
vo.setResultFilename(row.getResultFilename());
|
||||
vo.setResultFilename(resolveDisplayResultFilename(row, task));
|
||||
vo.setDownloadUrl(buildFreshDownloadUrl(row));
|
||||
vo.setRowCount(row.getRowCount());
|
||||
vo.setSuccess(row.getSuccess() != null && row.getSuccess() == 1);
|
||||
@@ -1234,6 +1249,21 @@ public class CollectDataService {
|
||||
return vo;
|
||||
}
|
||||
|
||||
private String resolveDisplayResultFilename(FileResultEntity row, FileTaskEntity task) {
|
||||
if (row == null) {
|
||||
return null;
|
||||
}
|
||||
String persisted = row.getResultFilename();
|
||||
if (persisted == null || persisted.isBlank() || isLegacyTaskNoResultFilename(persisted)) {
|
||||
return buildResultFilename(task, row);
|
||||
}
|
||||
return persisted;
|
||||
}
|
||||
|
||||
private boolean isLegacyTaskNoResultFilename(String filename) {
|
||||
return filename != null && filename.startsWith(MODULE_TYPE + "-") && filename.endsWith("-result.xlsx");
|
||||
}
|
||||
|
||||
private String buildFreshDownloadUrl(FileResultEntity row) {
|
||||
String resultFileUrl = row == null ? null : row.getResultFileUrl();
|
||||
if (resultFileUrl == null || resultFileUrl.isBlank()) {
|
||||
|
||||
Reference in New Issue
Block a user