diff --git a/src/main/java/com/project/task/domain/dto/TaskDTO.java b/src/main/java/com/project/task/domain/dto/TaskDTO.java index 6b60276..8b972e7 100644 --- a/src/main/java/com/project/task/domain/dto/TaskDTO.java +++ b/src/main/java/com/project/task/domain/dto/TaskDTO.java @@ -90,6 +90,16 @@ public class TaskDTO extends BaseDTO { private String classicCategoryParentName; + /** + * 参与未通过人数 + */ + private Integer notPassNum; + + /** + * 未参与人数 + */ + private Integer notParticipatedNum; + // =============== V1.1 新增字段 结束 ============ } diff --git a/src/main/java/com/project/task/domain/service/impl/SearchTaskDomainServiceImpl.java b/src/main/java/com/project/task/domain/service/impl/SearchTaskDomainServiceImpl.java index 67888a2..efc34be 100644 --- a/src/main/java/com/project/task/domain/service/impl/SearchTaskDomainServiceImpl.java +++ b/src/main/java/com/project/task/domain/service/impl/SearchTaskDomainServiceImpl.java @@ -27,6 +27,7 @@ import org.springframework.stereotype.Service; import java.util.Date; import java.util.List; import java.util.Objects; +import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @Service @@ -90,17 +91,31 @@ public class SearchTaskDomainServiceImpl implements SearchTaskDomainService { } else { dto.setStatusText(TaskStatusEnum.Cut_Off.getValue()); } + //统计已通过人数、参与未通过、未参与人数 + AtomicInteger passedNum = new AtomicInteger(); + AtomicInteger notPassedNum = new AtomicInteger(); + AtomicInteger notParticipatedNum = new AtomicInteger(); + // 构造参与用户 List participantUserDTOList = taskUserBaseService.lambdaQuery() .eq(TaskUserEntity::getTaskId , dto.getId()) - .select(TaskUserEntity::getUserId, TaskUserEntity::getUserName) + .select(TaskUserEntity::getUserId, TaskUserEntity::getUserName, TaskUserEntity::getStatus) .list().stream().map(taskUserEntity -> { UserDTO userDTO = new UserDTO(); userDTO.setId(taskUserEntity.getUserId()); userDTO.setName(taskUserEntity.getUserName()); + switch (taskUserEntity.getStatus()) { + case 0 -> notParticipatedNum.getAndIncrement(); + case 1 -> notPassedNum.getAndIncrement(); + case 2 -> passedNum.getAndIncrement(); + } return userDTO; }).toList(); + dto.setPassNum(passedNum.get()); + dto.setNotPassNum(notPassedNum.get()); + dto.setNotParticipatedNum(notParticipatedNum.get()); + //获取子产品线名称 String subLineName = productLineApplicationService.searchLineNameById(dto.getSubLineId()); dto.setSubLineName(subLineName);