删除本地APP项目

This commit is contained in:
super
2026-06-08 11:49:46 +08:00
parent c85e5b278f
commit eeb27e21ed
183 changed files with 65 additions and 49454 deletions

View File

@@ -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()) {