From dc8f382ab2a86c88f25e289c5af948ed0a074b90 Mon Sep 17 00:00:00 2001 From: luogw <3132758203@qq.com> Date: Wed, 17 Jun 2026 10:11:14 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=83=E8=AF=95=E4=BB=BB=E5=8A=A1=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=AD=97=E6=AE=B5=EF=BC=9A=E5=8F=82=E4=B8=8E=E6=9C=AA?= =?UTF-8?q?=E9=80=9A=E8=BF=87=E4=BA=BA=E6=95=B0=EF=BC=8C=E6=9C=AA=E5=8F=82?= =?UTF-8?q?=E4=B8=8E=E4=BA=BA=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/project/task/domain/dto/TaskDTO.java | 10 ++++++++++ .../impl/SearchTaskDomainServiceImpl.java | 17 ++++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) 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);