diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java index e06011fe40..5fef749e49 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java @@ -25,6 +25,7 @@ import com.epmet.dataaggre.entity.epmetuser.CustomerStaffEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.LinkedList; import java.util.List; /** @@ -53,11 +54,17 @@ public interface CustomerStaffDao extends BaseDao { */ List selectByRealName(@Param("customerId") String customerId, @Param("realName") String realName); + /** + * @Description 分页查询排好序的工作人员Id列表 + * @author sun + */ + LinkedList selectOrderRole(OrgStaffListFormDTO formDTO); + /** * @Description 分页查询工作人员基础信息、角色信息【组织人员单位领导角色人员在前;部门人员部门领导角色人员在前;网格人员网格长角色人员在前】 * @author sun */ - List selectStaffList(OrgStaffListFormDTO formDTO); + List selectStaffList(@Param("staffIds") LinkedList staffIds); /** * @Description 查询工作人员基础信息 diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java index 3cfb3acf89..8806232b47 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java @@ -610,7 +610,10 @@ public class EpmetUserServiceImpl implements EpmetUserService { //分别查询不能类型下人员信息、角色信息,按需求排序 int pageIndex = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize(); formDTO.setPageNo(pageIndex); - List resultList = customerStaffDao.selectStaffList(formDTO); + //1.分页查询排好序的工作人员Id列表【原本1/2步可以用一个sql,但涉及2需要按1的顺序排序,sql复杂且效率低,所以拆开】 + LinkedList staffIds = customerStaffDao.selectOrderRole(formDTO); + //2.批量查询工作人员信息,按传入顺序排序 + List resultList = customerStaffDao.selectStaffList(staffIds); return resultList; } @@ -631,6 +634,7 @@ public class EpmetUserServiceImpl implements EpmetUserService { //汇总数据 result = ConvertUtils.sourceToTarget(dto, StaffDetailV2FormDTO.class); result.setName(dto.getRealName()); + result.setGender(dto.getGender().toString()); result.setRoles(list); return result; diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/CustomerStaffDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/CustomerStaffDao.xml index 2f1cae9706..b57e89ac99 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/CustomerStaffDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/CustomerStaffDao.xml @@ -51,6 +51,57 @@ AND real_name LIKE CONCAT('%', #{realName}, '%') + + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml index 7426446a05..4d96ec7735 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml @@ -53,7 +53,8 @@ staff_role sr INNER JOIN gov_staff_role gsr ON sr.role_id = gsr.id WHERE - sr.staff_id = #{staffId} + sr.del_flag = '0' + AND sr.staff_id = #{staffId} ORDER BY gsr.sort ASC diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml index ff6fd8e7c3..2573d8b674 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml @@ -83,7 +83,7 @@ WHERE sor.org_type = 'agency' - sor.staff_id IN ( + AND sor.staff_id IN ( #{staffId} @@ -93,14 +93,10 @@ SELECT ca.ID agencyId, sor.staff_id staffId, - IF( - ca.pid = '0', - cd.department_name, - CONCAT( - ca.organization_name, - '-', - cd.department_name - ) + CONCAT( + ca.organization_name, + '-', + cd.department_name )orgName, sor.org_id orgId, 'dept' orgType @@ -111,7 +107,7 @@ WHERE sor.org_type = 'dept' - sor.staff_id IN ( + AND sor.staff_id IN ( #{staffId} @@ -121,14 +117,10 @@ SELECT ca.ID agencyId, sor.staff_id staffId, - IF( - ca.pid = '0', - cg.grid_name, - CONCAT( - ca.organization_name, - '-', - cg.grid_name - ) + CONCAT( + ca.organization_name, + '-', + cg.grid_name )orgName, sor.org_id orgId, 'grid' orgType @@ -139,7 +131,7 @@ WHERE sor.org_type = 'grid' - sor.staff_id IN ( + AND sor.staff_id IN ( #{staffId}