From ad057c6b43f229ac07e29d86eeeba6ebe0237d22 Mon Sep 17 00:00:00 2001 From: luoweijian <1329394916@qq.com> Date: Wed, 25 Feb 2026 14:40:56 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E9=83=A8=E9=97=A8=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=9E=84=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ding/domain/dto/DepartmentDTO.java | 2 ++ .../com/project/ding/domain/dto/UserDTO.java | 4 ++- .../impl/SearchUserDomainServiceImpl.java | 33 ++++++++++++++++--- .../com/project/task/domain/dto/TaskDTO.java | 2 ++ .../project/task/domain/param/TaskParam.java | 3 ++ .../impl/SearchTaskDomainServiceImpl.java | 4 +++ 6 files changed, 43 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/project/ding/domain/dto/DepartmentDTO.java b/src/main/java/com/project/ding/domain/dto/DepartmentDTO.java index bc33955..8510464 100644 --- a/src/main/java/com/project/ding/domain/dto/DepartmentDTO.java +++ b/src/main/java/com/project/ding/domain/dto/DepartmentDTO.java @@ -19,4 +19,6 @@ public class DepartmentDTO extends BaseDTO { private List deptIdPath; + private List deptNamePath; + } diff --git a/src/main/java/com/project/ding/domain/dto/UserDTO.java b/src/main/java/com/project/ding/domain/dto/UserDTO.java index 593e9df..d19e81f 100644 --- a/src/main/java/com/project/ding/domain/dto/UserDTO.java +++ b/src/main/java/com/project/ding/domain/dto/UserDTO.java @@ -32,6 +32,8 @@ public class UserDTO extends BaseDTO { private String deptIdStr; + private String deptNameStr; + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date hiredDate; @@ -72,7 +74,7 @@ public class UserDTO extends BaseDTO { public UserDTO desensitize() { this.mobile = DesensitizedUtil.mobilePhone(this.getMobile()); - this.setName(DesensitizedUtil.chineseName(this.getMobile())); + this.setName(DesensitizedUtil.chineseName(this.getName())); return this; } } diff --git a/src/main/java/com/project/ding/domain/service/impl/SearchUserDomainServiceImpl.java b/src/main/java/com/project/ding/domain/service/impl/SearchUserDomainServiceImpl.java index c206c7f..db6d88c 100644 --- a/src/main/java/com/project/ding/domain/service/impl/SearchUserDomainServiceImpl.java +++ b/src/main/java/com/project/ding/domain/service/impl/SearchUserDomainServiceImpl.java @@ -1,14 +1,19 @@ package com.project.ding.domain.service.impl; +import cn.hutool.core.util.BooleanUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.project.base.domain.result.PageResult; import com.project.base.domain.result.Result; import com.project.base.domain.utils.PageConverter; +import com.project.base.domain.utils.TreeUtils; +import com.project.ding.domain.dto.DepartmentDTO; import com.project.ding.domain.dto.UserDTO; +import com.project.ding.domain.entity.DepartmentEntity; import com.project.ding.domain.entity.UserEntity; import com.project.ding.domain.param.UserParam; +import com.project.ding.domain.service.DepartmentBaseService; import com.project.ding.domain.service.SearchUserDomainService; import com.project.ding.mapper.UserMapper; import com.project.task.domain.entity.TaskUserEntity; @@ -16,9 +21,8 @@ import com.project.task.domain.enums.TaskUserStatusEnum; import com.project.task.domain.service.TaskUserBaseService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.List; -import java.util.Objects; -import java.util.Set; + +import java.util.*; import java.util.stream.Collectors; @Service @@ -30,6 +34,9 @@ public class SearchUserDomainServiceImpl implements SearchUserDomainService { @Autowired private TaskUserBaseService taskUserBaseService; + @Autowired + private DepartmentBaseService departmentBaseService; + @Override public Result> search(UserParam param) throws Exception { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); @@ -63,7 +70,25 @@ public class SearchUserDomainServiceImpl implements SearchUserDomainService { dto.setPassedExamTaskCount(Long.valueOf(taskUserBaseService.count(new LambdaQueryWrapper() .eq(TaskUserEntity::getUserId, dto.getId()) .in(TaskUserEntity::getStatus, List.of(TaskUserStatusEnum.Pass.getValue())))).intValue()); - + // 构建部门信息 + List deptNameList = new ArrayList<>(); + for (String singleDeptIdStr : dto.getDeptIdStr().split(",")) { + Long singleDeptId = Long.valueOf(singleDeptIdStr); + DepartmentDTO departmentDTO = departmentBaseService.getById(singleDeptId).toDTO(DepartmentDTO::new); + List departmentDTOPathList = departmentBaseService.lambdaQuery().in(DepartmentEntity::getId, departmentDTO.getDeptIdPath()).list() + .stream().map(departmentEntity -> departmentEntity.toDTO(DepartmentDTO::new)).toList(); + departmentDTOPathList.forEach(depDTO -> + depDTO.setDeptNamePath(new ArrayList<>(Collections.singletonList(depDTO.getName())))); + departmentDTOPathList = TreeUtils.buildLongTree(departmentDTOPathList , DepartmentDTO::getId , DepartmentDTO::getParentId , (parentDTO , childrenList) -> { + parentDTO.setChildrenList(childrenList); + parentDTO.setLeaf(Boolean.FALSE); + childrenList.forEach(childDTO -> childDTO.getDeptNamePath().addAll(0, parentDTO.getDeptNamePath())); + }); + departmentDTOPathList = TreeUtils.tree2List(departmentDTOPathList, DepartmentDTO::getChildrenList); + deptNameList.add(String.join("-" , departmentDTOPathList.stream().filter(DepartmentDTO::getLeaf) + .findAny().orElse(new DepartmentDTO()).getDeptNamePath())); + } + dto.setDeptNameStr(String.join("," , deptNameList)); return dto; } 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 391086e..625eca0 100644 --- a/src/main/java/com/project/task/domain/dto/TaskDTO.java +++ b/src/main/java/com/project/task/domain/dto/TaskDTO.java @@ -57,4 +57,6 @@ public class TaskDTO extends BaseDTO { private Long businessId; private List participantUserDTOList; + + private Integer totalQuestionNum; } diff --git a/src/main/java/com/project/task/domain/param/TaskParam.java b/src/main/java/com/project/task/domain/param/TaskParam.java index 10416c6..0583459 100644 --- a/src/main/java/com/project/task/domain/param/TaskParam.java +++ b/src/main/java/com/project/task/domain/param/TaskParam.java @@ -11,6 +11,9 @@ public class TaskParam extends BaseParam { private Long subLineId; + + private Long businessId; + private String candidateTaskStatus; private Integer sortType; 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 0b052cd..2990a81 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 @@ -43,6 +43,9 @@ public class SearchTaskDomainServiceImpl implements SearchTaskDomainService { if (Objects.nonNull(param.getSubLineId())) { queryWrapper.eq(TaskEntity::getSubLineId , param.getSubLineId()); } + if (Objects.nonNull(param.getBusinessId())) { + queryWrapper.eq(TaskEntity::getBusinessId , param.getBusinessId()); + } queryWrapper.orderByDesc(TaskEntity::getId); IPage taskEntityPage = taskMapper.selectPage( PageConverter.toMpPage(param), @@ -70,6 +73,7 @@ public class SearchTaskDomainServiceImpl implements SearchTaskDomainService { return userDTO; }).toList(); dto.setParticipantUserDTOList(participantUserDTOList); + dto.setTotalQuestionNum(dto.getSingleChoiceNum() + dto.getMultipleChoiceNum() + dto.getTrueFalseNum()); return dto; }