소스 검색

fix: 修改组织架构利用id查询人员以及人员所在的部门

zhaomuran 4 달 전
부모
커밋
a4697f81a3

+ 18 - 7
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/manager/FrameworkServiceImpl.java

@@ -55,16 +55,27 @@ public class FrameworkServiceImpl implements IFrameworkService {
         if (!Objects.nonNull(employeeDO)){
             return ResponseDTO.dataErrorParam("数据不存在!请检查");
         }
-        List<DepartmentDTO> departmentDTOS = dRepository.queryDepartmentByDepartmentId(employeeDO.getDepartmentId());
+        List<DepartmentDTO> departmentDTOSChild = dRepository.queryDepartmentByDepartmentId(employeeDO.getDepartmentId());
+        Set<Long> ids = departmentDTOSChild.stream().map(DepartmentDTO::getParentId)
+                .collect(Collectors.toSet());
+        List<DepartmentDTO> departmentDTOSParent = dRepository.supportsDepartmentQueryByIds(ids);
         List<FrameworkDTO> frameworkDTOS = new ArrayList<>();
-        for (DepartmentDTO departmentDTO : departmentDTOS) {
+        for (DepartmentDTO departmentDTOChild : departmentDTOSChild) {
             FrameworkDTO frameworkDTO = new FrameworkDTO();
-            if (departmentDTO.getDepartmentId().equals(employeeDO.getDepartmentId())){
-                frameworkDTO.setId(employeeDO.getEmployeeId());
-                frameworkDTO.setName(employeeDO.getActualName());
+            if (departmentDTOChild.getParentId() == 0){
+                frameworkDTO.setId(departmentDTOChild.getDepartmentId());
+                frameworkDTO.setName(departmentDTOChild.getName());
                 frameworkDTO.setNodeType("USER");
-                frameworkDTO.setParentId(employeeDO.getDepartmentId());
-                frameworkDTO.setParentName(departmentDTO.getName());
+            } else {
+                for (DepartmentDTO departmentDTOParent : departmentDTOSParent) {
+                    if (departmentDTOParent.getDepartmentId().equals(departmentDTOChild.getParentId())){
+                        frameworkDTO.setId(departmentDTOChild.getDepartmentId());
+                        frameworkDTO.setName(departmentDTOChild.getName());
+                        frameworkDTO.setNodeType("USER");
+                        frameworkDTO.setParentId(departmentDTOParent.getDepartmentId());
+                        frameworkDTO.setParentName(departmentDTOParent.getName());
+                    }
+                }
             }
             frameworkDTOS.add(frameworkDTO);
         }

+ 8 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/repository/DepartmentRepository.java

@@ -45,4 +45,12 @@ public interface DepartmentRepository extends BaseMapper<DepartmentDO> {
      */
     List<DepartmentDTO> queryDepartmentByDepartmentId(@Param("departmentId") Long departmentId);
 
+    /**
+     * 查询部门(根据ids)
+     *
+     * @param ids
+     * @return
+     */
+    List<DepartmentDTO> supportsDepartmentQueryByIds(@Param("ids") Set<Long> ids);
+
 }

+ 10 - 0
bound-link-api/blink-backend/src/main/resources/mapper/DepartmentRepositoryMapper.xml

@@ -41,4 +41,14 @@
         </foreach>
     </select>
 
+    <!--    查询部门(根据iIds)-->
+    <select id="supportsDepartmentQueryByIds" resultType="com.wx.blink.backend.domain.dto.DepartmentDTO">
+        select *
+        from mate_department
+        where department_id IN
+        <foreach collection="ids" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </select>
+
 </mapper>