From 6ed033fff266a08b7e15068698e33028ae5ee1d5 Mon Sep 17 00:00:00 2001 From: super <2903208875@qq.com> Date: Wed, 1 Apr 2026 21:20:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=83=A8=E5=88=86=E5=86=85?= =?UTF-8?q?=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/DeleteBrandRunService.java | 26 +++++++++++-------- .../brand/components/BrandDeleteBrandTab.vue | 3 +-- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/backend-java/src/main/java/com/nanri/aiimage/modules/deletebrand/service/DeleteBrandRunService.java b/backend-java/src/main/java/com/nanri/aiimage/modules/deletebrand/service/DeleteBrandRunService.java index a562275..93da7b3 100644 --- a/backend-java/src/main/java/com/nanri/aiimage/modules/deletebrand/service/DeleteBrandRunService.java +++ b/backend-java/src/main/java/com/nanri/aiimage/modules/deletebrand/service/DeleteBrandRunService.java @@ -98,6 +98,7 @@ public class DeleteBrandRunService { List items = new ArrayList<>(); int parsedSuccessCount = 0; int parsedFailedCount = 0; + int processableFileCount = 0; Map parsedPayloadByFileIdentity = new LinkedHashMap<>(); Map storeMatchByShopName = new LinkedHashMap<>(); @@ -143,15 +144,18 @@ public class DeleteBrandRunService { } } - String fileIdentity = resolveFileIdentity(sourceFile); - DeleteBrandParsedFileCacheDto cacheDto = new DeleteBrandParsedFileCacheDto(); - cacheDto.setFileKey(sourceFile.getFileKey()); - cacheDto.setSourceFilename(sourceFile.getOriginalFilename()); - cacheDto.setShopName(item.getShopName()); - cacheDto.setTotalRows(parsed.totalRows()); - cacheDto.setCountries(parsed.countries()); - cacheDto.setPreviewRows(parsed.previewRows()); - parsedPayloadByFileIdentity.put(fileIdentity, cacheDto); + if (item.isMatched()) { + String fileIdentity = resolveFileIdentity(sourceFile); + DeleteBrandParsedFileCacheDto cacheDto = new DeleteBrandParsedFileCacheDto(); + cacheDto.setFileKey(sourceFile.getFileKey()); + cacheDto.setSourceFilename(sourceFile.getOriginalFilename()); + cacheDto.setShopName(item.getShopName()); + cacheDto.setTotalRows(parsed.totalRows()); + cacheDto.setCountries(parsed.countries()); + cacheDto.setPreviewRows(parsed.previewRows()); + parsedPayloadByFileIdentity.put(fileIdentity, cacheDto); + processableFileCount++; + } item.setSuccess(true); parsedSuccessCount++; @@ -195,8 +199,8 @@ public class DeleteBrandRunService { task.setFailedFileCount(parsedFailedCount); task.setResultJson(JSONUtil.toJsonStr(items)); task.setUpdatedAt(LocalDateTime.now()); - task.setSourceFileCount(parsedSuccessCount); - if (parsedSuccessCount <= 0) { + task.setSourceFileCount(processableFileCount); + if (processableFileCount <= 0) { task.setStatus("FAILED"); task.setErrorMessage(parsedFailedCount > 0 ? "全部文件解析或匹配失败" : null); task.setFinishedAt(LocalDateTime.now()); diff --git a/frontend-vue/src/pages/brand/components/BrandDeleteBrandTab.vue b/frontend-vue/src/pages/brand/components/BrandDeleteBrandTab.vue index 182e4f7..1519d57 100644 --- a/frontend-vue/src/pages/brand/components/BrandDeleteBrandTab.vue +++ b/frontend-vue/src/pages/brand/components/BrandDeleteBrandTab.vue @@ -469,8 +469,7 @@ function getQueueStatus(item: DeleteBrandResultItem) { } function canDownloadTaskResult(item: DeleteBrandResultItem) { - // 核心修复:只要单个项目已经成功(后端返回了下载地址或标记为成功),就允许下载,哪怕整包任务还在“执行中” - if (item.downloadUrl || item.success) return true + if (item.downloadUrl) return true const taskId = item.taskId if (!taskId) return false