diff --git a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/CcdiFileUploadStatisticsVO.java b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/CcdiFileUploadStatisticsVO.java index bc106773..3fc66bc9 100644 --- a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/CcdiFileUploadStatisticsVO.java +++ b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/CcdiFileUploadStatisticsVO.java @@ -29,6 +29,9 @@ public class CcdiFileUploadStatisticsVO implements Serializable { /** 解析失败数量 */ private Long parsedFailed; + /** 已删除数量 */ + private Long deleted; + /** 总数量 */ private Long total; } diff --git a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/impl/CcdiFileUploadServiceImpl.java b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/impl/CcdiFileUploadServiceImpl.java index d6f17a43..7d41c2db 100644 --- a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/impl/CcdiFileUploadServiceImpl.java +++ b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/impl/CcdiFileUploadServiceImpl.java @@ -274,6 +274,7 @@ public class CcdiFileUploadServiceImpl implements ICcdiFileUploadService { vo.setParsing(0L); vo.setParsedSuccess(0L); vo.setParsedFailed(0L); + vo.setDeleted(0L); long total = 0L; for (Map item : statusCounts) { @@ -286,6 +287,7 @@ public class CcdiFileUploadServiceImpl implements ICcdiFileUploadService { case "parsing" -> vo.setParsing(count); case "parsed_success" -> vo.setParsedSuccess(count); case "parsed_failed" -> vo.setParsedFailed(count); + case "deleted" -> vo.setDeleted(count); } } diff --git a/ccdi-project/src/test/java/com/ruoyi/ccdi/project/service/impl/CcdiFileUploadServiceImplTest.java b/ccdi-project/src/test/java/com/ruoyi/ccdi/project/service/impl/CcdiFileUploadServiceImplTest.java index cccfaef6..e744f20b 100644 --- a/ccdi-project/src/test/java/com/ruoyi/ccdi/project/service/impl/CcdiFileUploadServiceImplTest.java +++ b/ccdi-project/src/test/java/com/ruoyi/ccdi/project/service/impl/CcdiFileUploadServiceImplTest.java @@ -5,6 +5,7 @@ import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.read.ListAppender; import com.alibaba.excel.EasyExcel; import com.ruoyi.ccdi.project.domain.CcdiProject; +import com.ruoyi.ccdi.project.domain.vo.CcdiFileUploadStatisticsVO; import com.ruoyi.ccdi.project.domain.entity.CcdiFileUploadRecord; import com.ruoyi.ccdi.project.mapper.CcdiBankStatementMapper; import com.ruoyi.ccdi.project.mapper.CcdiFileUploadRecordMapper; @@ -38,6 +39,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.concurrent.Executor; import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicInteger; @@ -472,6 +474,20 @@ class CcdiFileUploadServiceImplTest { assertFalse(events.stream().anyMatch(event -> event.endsWith("record:parsed_success"))); } + @Test + void countByStatus_shouldIncludeDeletedCount() { + when(recordMapper.countByStatus(PROJECT_ID)).thenReturn(List.of( + Map.of("status", "uploading", "count", 1), + Map.of("status", "deleted", "count", 2) + )); + + CcdiFileUploadStatisticsVO result = service.countByStatus(PROJECT_ID); + + assertEquals(1L, result.getUploading()); + assertEquals(2L, result.getDeleted()); + assertEquals(3L, result.getTotal()); + } + private void captureRecordStatus(List events, AtomicInteger sequence) { doAnswer(invocation -> { CcdiFileUploadRecord record = invocation.getArgument(0);