From e2178f6fcd04d58cc5f6e4298e571a11e896461e Mon Sep 17 00:00:00 2001 From: dxfeng Date: Mon, 21 Jul 2025 13:38:55 +0800 Subject: [PATCH] =?UTF-8?q?feat(organization):=20=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E8=81=8C=E4=BD=8D=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 getPositionInfo 接口,用于获取职位信息 - 实现职位信息的查询和分页功能 - 优化部门信息查询逻辑,使用缓存提高性能 - 调整数据库查询 SQL,提高查询效率 --- .../OrganizationInfoController.java | 10 +++ .../mapper/OrganizationInfoMapper.java | 49 +++++++------ .../impl/OrganizationInfoServiceImpl.java | 71 +++++++++++++------ .../mapper/OrganizationInfoMapper.xml | 39 ++++++---- 4 files changed, 110 insertions(+), 59 deletions(-) diff --git a/src/main/java/com/weaver/seconddev/organization/controller/OrganizationInfoController.java b/src/main/java/com/weaver/seconddev/organization/controller/OrganizationInfoController.java index 424e444..649e80b 100644 --- a/src/main/java/com/weaver/seconddev/organization/controller/OrganizationInfoController.java +++ b/src/main/java/com/weaver/seconddev/organization/controller/OrganizationInfoController.java @@ -34,4 +34,14 @@ public class OrganizationInfoController { params.put("oId", oId); return organizationInfoService.getDepartmentInfo(params); } + + @GetMapping("/getPositionInfo") + public Object getPositionInfo(@RequestParam(name = "code", required = false) String code, + @RequestParam(name = "oId", required = false) String oId) { + log.error("code=={},oId=={}", code, oId); + Map params = new HashMap<>(); + params.put("code", code); + params.put("oId", oId); + return organizationInfoService.getPositionInfo(params); + } } diff --git a/src/main/java/com/weaver/seconddev/organization/mapper/OrganizationInfoMapper.java b/src/main/java/com/weaver/seconddev/organization/mapper/OrganizationInfoMapper.java index c99f60a..3720ae5 100644 --- a/src/main/java/com/weaver/seconddev/organization/mapper/OrganizationInfoMapper.java +++ b/src/main/java/com/weaver/seconddev/organization/mapper/OrganizationInfoMapper.java @@ -3,7 +3,6 @@ package com.weaver.seconddev.organization.mapper; import com.weaver.seconddev.portal.entity.param.BaseParam; import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; import java.util.List; import java.util.Map; @@ -16,14 +15,14 @@ import java.util.Map; @Mapper public interface OrganizationInfoMapper { - /** - * 根据oId获取部门Id - * - * @param param - * @param oId - * @return - */ - Long getDepartmentIdByOId(@Param("param") BaseParam param, @Param("oId") String oId); + ///** + // * 根据oId获取部门Id + // * + // * @param param + // * @param oId + // * @return + // */ + //Long getDepartmentIdByOId(@Param("param") BaseParam param, @Param("oId") String oId); /** * 获取部门列表 @@ -31,7 +30,7 @@ public interface OrganizationInfoMapper { * @param param * @return */ - @MapKey("departmentId") + @MapKey("id") List> getDepartmentList(BaseParam param); /** @@ -48,20 +47,20 @@ public interface OrganizationInfoMapper { * @param id * @return */ - String getDepartmentCodeById(@Param("param") BaseParam param, @Param("id") Long id); + //String getDepartmentCodeById(@Param("param") BaseParam param, @Param("id") Long id); - /** - * 查询部门自定义表数据 - * - * @param param - * @param id - * @return - */ - @MapKey("departmentId") - Map getDepartmentCustomData(@Param("param") BaseParam param, @Param("id") Long id); - - @MapKey("positionId") - Map getPosition(@Param("param") BaseParam param, @Param("oId") String oId, @Param("code") String code); + ///** + // * 查询部门自定义表数据 + // * + // * @param param + // * @param id + // * @return + // */ + //@MapKey("departmentId") + //Map getDepartmentCustomData(@Param("param") BaseParam param, @Param("id") Long id); + // + //@MapKey("positionId") + //Map getPosition(@Param("param") BaseParam param, @Param("oId") String oId, @Param("code") String code); /** * 获取职位列表 @@ -70,7 +69,7 @@ public interface OrganizationInfoMapper { * @return */ @MapKey("positionId") - List> getPositionList(@Param("param") BaseParam param); + List> getPositionList(BaseParam param); /** * 统计职位列表 @@ -78,5 +77,5 @@ public interface OrganizationInfoMapper { * @param param * @return */ - int getPositionListSize(@Param("param") BaseParam param); + int getPositionListSize(BaseParam param); } diff --git a/src/main/java/com/weaver/seconddev/organization/service/impl/OrganizationInfoServiceImpl.java b/src/main/java/com/weaver/seconddev/organization/service/impl/OrganizationInfoServiceImpl.java index daf756b..77f4f8d 100644 --- a/src/main/java/com/weaver/seconddev/organization/service/impl/OrganizationInfoServiceImpl.java +++ b/src/main/java/com/weaver/seconddev/organization/service/impl/OrganizationInfoServiceImpl.java @@ -6,7 +6,6 @@ import com.weaver.common.form.datasource.FormdataTemplateDetails; import com.weaver.common.form.metadata.field.FormField; import com.weaver.common.hr.util.Util; import com.weaver.common.hrm.cache.HrmDepartmentComInfo; -import com.weaver.common.hrm.dao.HrmCommonDepartmentDao; import com.weaver.common.hrm.dao.HrmCommonEmployeeDao; import com.weaver.common.hrm.manage.HrmComInfoCacheHandler; import com.weaver.seconddev.organization.entity.param.OrgSearchCondition; @@ -14,9 +13,7 @@ import com.weaver.seconddev.organization.mapper.OrganizationInfoMapper; import com.weaver.seconddev.organization.service.OrganizationInfoService; import com.weaver.seconddev.portal.mapper.EbuilderBaseMapper; import com.weaver.seconddev.portal.mapper.EteamsBaseMapper; -import com.weaver.teams.domain.department.SimpleDepartment; import com.weaver.teams.domain.user.SimpleEmployee; -import com.weaver.workflow.common.cfg.org.service.DepartMentService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -37,11 +34,11 @@ import java.util.stream.Collectors; @Service public class OrganizationInfoServiceImpl implements OrganizationInfoService { - @Autowired - DepartMentService departMentService; - - @Autowired - HrmCommonDepartmentDao hrmCommonDepartmentDao; + //@Autowired + //DepartMentService departMentService; + // + //@Autowired + //HrmCommonDepartmentDao hrmCommonDepartmentDao; @Autowired HrmCommonEmployeeDao hrmCommonEmployeeDao; @@ -112,7 +109,8 @@ public class OrganizationInfoServiceImpl implements OrganizationInfoService { newMap.put("hrbpxm", hrbpxm); newMap.put("hrbpgh", hrbpgh); - HrmDepartmentComInfo department = hrmComInfoCacheHandler.getCacheById(HrmDepartmentComInfo.class, 1560052731319352218L); + Long departmentid = Convert.toLong(map.get("id")); + HrmDepartmentComInfo department = hrmComInfoCacheHandler.getCacheById(HrmDepartmentComInfo.class, departmentid); newMap.put("code", department.getCode()); newMap.put("name", department.getName()); @@ -128,19 +126,46 @@ public class OrganizationInfoServiceImpl implements OrganizationInfoService { newMap.put("pathName", pathName); orgList.add(newMap); } - Map returnMap = new HashMap<>(); - returnMap.put("data",orgList); - returnMap.put("current",current); - returnMap.put("total",total); + Map returnMap = new HashMap<>(); + returnMap.put("data", orgList); + returnMap.put("current", current); + returnMap.put("total", total); return WeaResult.success(returnMap); } @Override public WeaResult> getPositionInfo(Map params) { + OrgSearchCondition param = new OrgSearchCondition(); + String code = Util.null2String(params.get("code")); + String oId = Util.null2String(params.get("oId")); + int pageSize = Convert.toInt(params.get("pageSize"), 10); + int current = Convert.toInt(params.get("current"), 1); + + param.setCode(code); + param.setOId(oId); + param.setPageSize(pageSize); + param.setCurrent(current); + List> positionList = organizationInfoMapper.getPositionList(param); + int total = organizationInfoMapper.getPositionListSize(param); + List> orgList = new ArrayList<>(); + + for (Map map : positionList) { + Map newMap = new HashMap<>(); + newMap.put("oId", map.get("oid")); + newMap.put("code", map.get("positionCode")); + newMap.put("name", map.get("positionName")); + newMap.put("odeptid", map.get("odeptid")); + newMap.put("is_canceled", map.get("is_canceled")); + + orgList.add(newMap); + } + Map returnMap = new HashMap<>(); - + returnMap.put("data", orgList); + returnMap.put("current", current); + returnMap.put("total", total); return WeaResult.success(returnMap); } @@ -149,18 +174,20 @@ public class OrganizationInfoServiceImpl implements OrganizationInfoService { return null; } - private void getParentDeptList(SimpleDepartment department, List parentDeptList) { - parentDeptList.add(department); - if (department.getParent() != null) { - getParentDeptList(department.getParent(), parentDeptList); - } - } + /** + * 获取部门的所有上级部门 + * + * @param department + * @param parentDeptList + */ private void getParentDeptList(HrmDepartmentComInfo department, List parentDeptList) { - parentDeptList.add(department); + parentDeptList.add(0, department); if (department.getParent() != null) { HrmDepartmentComInfo cacheById = hrmComInfoCacheHandler.getCacheById(HrmDepartmentComInfo.class, department.getParent()); - getParentDeptList(cacheById, parentDeptList); + if (null != cacheById) { + getParentDeptList(cacheById, parentDeptList); + } } } diff --git a/src/main/resources/mapper/OrganizationInfoMapper.xml b/src/main/resources/mapper/OrganizationInfoMapper.xml index d65b14e..2b24a8e 100644 --- a/src/main/resources/mapper/OrganizationInfoMapper.xml +++ b/src/main/resources/mapper/OrganizationInfoMapper.xml @@ -45,12 +45,14 @@ +