From ec71f31859be16d4ce4dec82155fa7a918e6dbe9 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 2 Jun 2022 16:49:25 +0800 Subject: [PATCH] =?UTF-8?q?=E9=83=A8=E9=97=A8=E8=81=94=E6=9F=A5=E5=B2=97?= =?UTF-8?q?=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../param/QuerySingleDeptListParam.java | 2 + .../organization/entity/job/bo/JobBO.java | 28 +++++++++++- .../entity/job/vo/SingleJobTreeVO.java | 44 +++++++++++++++++++ .../organization/mapper/job/JobMapper.java | 7 +++ .../organization/mapper/job/JobMapper.xml | 6 +++ .../service/DepartmentService.java | 10 +++++ .../service/impl/DepartmentServiceImpl.java | 14 ++++++ .../web/DepartmentController.java | 12 +++++ .../wrapper/DepartmentWrapper.java | 11 +++++ 9 files changed, 132 insertions(+), 2 deletions(-) create mode 100644 src/com/engine/organization/entity/job/vo/SingleJobTreeVO.java diff --git a/src/com/engine/organization/entity/department/param/QuerySingleDeptListParam.java b/src/com/engine/organization/entity/department/param/QuerySingleDeptListParam.java index aee890e3..e3120cb3 100644 --- a/src/com/engine/organization/entity/department/param/QuerySingleDeptListParam.java +++ b/src/com/engine/organization/entity/department/param/QuerySingleDeptListParam.java @@ -20,4 +20,6 @@ public class QuerySingleDeptListParam extends BaseQueryParam { private Long parentComp; + private Long parentDept; + } diff --git a/src/com/engine/organization/entity/job/bo/JobBO.java b/src/com/engine/organization/entity/job/bo/JobBO.java index f0345015..db506256 100644 --- a/src/com/engine/organization/entity/job/bo/JobBO.java +++ b/src/com/engine/organization/entity/job/bo/JobBO.java @@ -3,6 +3,7 @@ package com.engine.organization.entity.job.bo; import com.engine.organization.entity.job.dto.JobListDTO; import com.engine.organization.entity.job.param.JobSearchParam; import com.engine.organization.entity.job.po.JobPO; +import com.engine.organization.entity.job.vo.SingleJobTreeVO; import com.engine.organization.mapper.job.JobMapper; import com.engine.organization.transmethod.JobTransMethod; import com.engine.organization.util.db.MapperProxyFactory; @@ -28,8 +29,8 @@ public class JobBO { .id(param.getId() == null ? 0 : param.getId()) .jobNo(param.getJobNo()) .jobName(param.getJobName()) - .parentComp(null==param.getParentComp()?param.getSubcompanyid1():param.getParentComp()) - .parentDept(null==param.getParentDept()?param.getDepartmentid():param.getParentDept()) + .parentComp(null == param.getParentComp() ? param.getSubcompanyid1() : param.getParentComp()) + .parentDept(null == param.getParentDept() ? param.getDepartmentid() : param.getParentDept()) .sequenceId(param.getSequenceId()) .schemeId(param.getSchemeId()) .parentJob(param.getParentJob()) @@ -47,6 +48,29 @@ public class JobBO { } + public static List buildSingleJobTreeVOS(List jobPOS, Long parentDept) { + if (CollectionUtils.isEmpty(jobPOS)) { + return Collections.emptyList(); + } + Map poMaps = jobPOS.stream().collect(Collectors.toMap(JobPO::getId, item -> item)); + + List singleJobTreeVOS = jobPOS.stream().map(e -> + SingleJobTreeVO + .builder() + .id(e.getId()) + .jobNo(e.getJobNo()) + .jobName(e.getJobName()) + .parentJobName(null == poMaps.get(e.getParentJob()) ? "" : poMaps.get(e.getParentJob()).getJobName()) + .parentJob(e.getParentJob()) + .parentDept(e.getParentDept()) + .build()).collect(Collectors.toList()); + //获取非一级部门 + Map> collects = singleJobTreeVOS.stream().filter(item -> null != item.getParentJob()).collect(Collectors.groupingBy(SingleJobTreeVO::getParentJob)); + + return singleJobTreeVOS.stream().peek(e -> e.setChildren(collects.get(e.getId()))).filter(item -> parentDept.equals(item.getParentDept()) && null == item.getParentJob()).collect(Collectors.toList()); + } + + public static List buildDTOList(Collection list) { // 递归添加父级数据 Map poMaps = list.stream().collect(Collectors.toMap(JobListDTO::getId, item -> item)); diff --git a/src/com/engine/organization/entity/job/vo/SingleJobTreeVO.java b/src/com/engine/organization/entity/job/vo/SingleJobTreeVO.java new file mode 100644 index 00000000..3917bb05 --- /dev/null +++ b/src/com/engine/organization/entity/job/vo/SingleJobTreeVO.java @@ -0,0 +1,44 @@ +package com.engine.organization.entity.job.vo; + +import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.organization.annotation.OrganizationTable; +import com.engine.organization.annotation.TableTitle; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @description: TODO + * @author:dxfeng + * @createTime: 2022/06/02 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@OrganizationTable(pageId = "434c1b24-e248-11ec-8a67-00e04c680716", + tableType = WeaTableType.NONE) +public class SingleJobTreeVO { + + private Long id; + + @TableTitle(title = "编号", dataIndex = "jobNo", key = "jobNo") + private String jobNo; + + @TableTitle(title = "编号", dataIndex = "jobName", key = "jobName") + private String jobName; + + @TableTitle(title = "编号", dataIndex = "parentJobName", key = "parentJobName") + private String parentJobName; + + private Long parentJob; + + private Long parentDept; + + private List children; + +} diff --git a/src/com/engine/organization/mapper/job/JobMapper.java b/src/com/engine/organization/mapper/job/JobMapper.java index 18e51f78..607ef8b6 100644 --- a/src/com/engine/organization/mapper/job/JobMapper.java +++ b/src/com/engine/organization/mapper/job/JobMapper.java @@ -30,6 +30,13 @@ public interface JobMapper { */ List listNoFilter(); + /** + * 查询所有数据 + * + * @return + */ + List listAll(); + /** * 根据ID查询元素 * diff --git a/src/com/engine/organization/mapper/job/JobMapper.xml b/src/com/engine/organization/mapper/job/JobMapper.xml index a1700a05..6a6123b2 100644 --- a/src/com/engine/organization/mapper/job/JobMapper.xml +++ b/src/com/engine/organization/mapper/job/JobMapper.xml @@ -289,6 +289,12 @@ where delete_type = 0 and parent_dept = #{departmentId} + diff --git a/src/com/engine/organization/service/DepartmentService.java b/src/com/engine/organization/service/DepartmentService.java index aa695bae..a4261e2d 100644 --- a/src/com/engine/organization/service/DepartmentService.java +++ b/src/com/engine/organization/service/DepartmentService.java @@ -3,6 +3,7 @@ package com.engine.organization.service; import com.api.browser.bean.SearchConditionGroup; import com.engine.organization.entity.department.param.*; import com.engine.organization.entity.department.vo.SingleDeptTreeVO; +import com.engine.organization.entity.job.vo.SingleJobTreeVO; import com.engine.organization.entity.searchtree.SearchTreeParams; import com.engine.organization.util.page.PageInfo; @@ -27,6 +28,15 @@ public interface DepartmentService { */ PageInfo getDeptListByPid(QuerySingleDeptListParam param); + /** + * 部门联查岗位 + * + * @param param + * @return + */ + PageInfo getJobListByPid(QuerySingleDeptListParam param); + + /** * 列表左侧树 * diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index 9ec2e8fa..c958b145 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -18,7 +18,9 @@ import com.engine.organization.entity.department.dto.DepartmentListDTO; import com.engine.organization.entity.department.param.*; import com.engine.organization.entity.department.po.DepartmentPO; import com.engine.organization.entity.department.vo.SingleDeptTreeVO; +import com.engine.organization.entity.job.bo.JobBO; import com.engine.organization.entity.job.po.JobPO; +import com.engine.organization.entity.job.vo.SingleJobTreeVO; import com.engine.organization.entity.searchtree.SearchTree; import com.engine.organization.entity.searchtree.SearchTreeParams; import com.engine.organization.mapper.comp.CompMapper; @@ -109,6 +111,18 @@ public class DepartmentServiceImpl extends Service implements DepartmentService return pageInfos; } + @Override + public PageInfo getJobListByPid(QuerySingleDeptListParam param) { + List jobPOS = MapperProxyFactory.getProxy(JobMapper.class).listAll(); + PageInfo pageInfo = new PageInfo<>(jobPOS); + List singleDeptTreeVOS = JobBO.buildSingleJobTreeVOS(jobPOS, param.getParentDept()); + PageInfo pageInfos = new PageInfo<>(singleDeptTreeVOS, SingleJobTreeVO.class); + pageInfos.setTotal(pageInfo.getTotal()); + pageInfos.setPageNum(param.getCurrent()); + pageInfos.setPageSize(param.getPageSize()); + return pageInfos; + } + @Override public Map getSearchTree(SearchTreeParams params) { diff --git a/src/com/engine/organization/web/DepartmentController.java b/src/com/engine/organization/web/DepartmentController.java index 856c77da..97905666 100644 --- a/src/com/engine/organization/web/DepartmentController.java +++ b/src/com/engine/organization/web/DepartmentController.java @@ -48,6 +48,18 @@ public class DepartmentController { } } + @POST + @Path("/getJobListByPid") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getJobListByPid(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody QuerySingleDeptListParam querySingleDeptListParam) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getDepartmentWrapper(user).getJobListByPid(querySingleDeptListParam)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e.getMessage()); + } + } + /** * 左侧树接口 * diff --git a/src/com/engine/organization/wrapper/DepartmentWrapper.java b/src/com/engine/organization/wrapper/DepartmentWrapper.java index 4a617500..d8596edf 100644 --- a/src/com/engine/organization/wrapper/DepartmentWrapper.java +++ b/src/com/engine/organization/wrapper/DepartmentWrapper.java @@ -5,6 +5,7 @@ import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.organization.entity.department.param.*; import com.engine.organization.entity.department.vo.SingleDeptTreeVO; +import com.engine.organization.entity.job.vo.SingleJobTreeVO; import com.engine.organization.entity.searchtree.SearchTreeParams; import com.engine.organization.service.DepartmentService; import com.engine.organization.service.impl.DepartmentServiceImpl; @@ -33,6 +34,16 @@ public class DepartmentWrapper extends Service { return ReturnResult.successed(singleDeptTreeVOS); } + /** + * 部门联查岗位 + * + * @param param + * @return + */ + public PageInfo getJobListByPid(QuerySingleDeptListParam param) { + return getDepartmentService(user).getJobListByPid(param); + } + /** * 左侧树 *