功能: 扩展上传文件统计支持已删除状态

This commit is contained in:
wkc
2026-03-16 14:42:59 +08:00
parent 275fc7a264
commit e7ed2197e6
3 changed files with 21 additions and 0 deletions

View File

@@ -29,6 +29,9 @@ public class CcdiFileUploadStatisticsVO implements Serializable {
/** 解析失败数量 */
private Long parsedFailed;
/** 已删除数量 */
private Long deleted;
/** 总数量 */
private Long total;
}

View File

@@ -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<String, Object> 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);
}
}

View File

@@ -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<String> events, AtomicInteger sequence) {
doAnswer(invocation -> {
CcdiFileUploadRecord record = invocation.getArgument(0);