Browse Source

灵山项目:修改工作人员查询,可以通过人名、电话、工作方式检索;

master
luyan 3 years ago
parent
commit
172caad068
  1. 21
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/StaffsByOrgAndRolesFormDTO.java
  2. 38
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/StaffsByOrgAndRoleRstDTO.java
  3. 2
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java
  4. 6
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java
  5. 5
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/UserService.java
  6. 2
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java
  7. 6
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java
  8. 26
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/UserServiceImpl.java
  9. 65
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/CustomerStaffDao.xml
  10. 1736
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/StaffServiceImpl.java

21
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/StaffsByOrgAndRolesFormDTO.java

@ -16,6 +16,27 @@ public class StaffsByOrgAndRolesFormDTO {
*/ */
@NotBlank(message = "组织类型为必填项") @NotBlank(message = "组织类型为必填项")
private String orgType; private String orgType;
/**
* 工作人员姓名
*/
private String name;
/**
* 工作人员电话
*/
private String mobile;
/**
* 工作人员角色 网格员grid_member网格长grid_manager
*/
private String roleType;
/**
* 工作类型专职fulltime 兼职parttime
*/
private String workType;
private int pageNo = 1; private int pageNo = 1;
private int pageSize = 10; private int pageSize = 10;

38
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/StaffsByOrgAndRoleRstDTO.java

@ -14,10 +14,48 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor @AllArgsConstructor
public class StaffsByOrgAndRoleRstDTO { public class StaffsByOrgAndRoleRstDTO {
/**
* 工作人员姓名
*/
private String staffName; private String staffName;
/**
* 工作人员ID
*/
private String staffId; private String staffId;
/**
* 电话
*/
private String mobile; private String mobile;
/**
* 性别 0.未知1男2.
*/
private String gender;
/**
* 文化程度灵山-红色待办0小学及文盲,1初中,2高中,3大专,4本科,5硕士,6博士,7中专
*/
private String culture;
/**
* 生日
*/
private String birthday;
/**
* 地址
*/
private String address;
/**
* 网格员类型专职fulltime 兼职parttime
*/
private String workType;
/**
* 头像
*/
private String headPhoto;
/**
* 身份证号码
*/
private String idCard;
} }

2
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java

@ -314,7 +314,7 @@ public class EpmetUserController {
ValidatorUtils.validateEntity(form); ValidatorUtils.validateEntity(form);
PageData<StaffsByOrgAndRoleRstDTO> pd = userService.listStaffByOrgAndRole(form.getOrgId(), form.getOrgType(), form.getPageNo(), form.getPageSize(), form.getRoleKeys()); PageData<StaffsByOrgAndRoleRstDTO> pd = userService.listStaffByOrgAndRole(form);
return new Result<PageData<StaffsByOrgAndRoleRstDTO>>().ok(pd); return new Result<PageData<StaffsByOrgAndRoleRstDTO>>().ok(pd);
} }

6
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java

@ -114,5 +114,9 @@ public interface CustomerStaffDao extends BaseDao<CustomerStaffEntity> {
Integer countStaffQtyByStaffIdsAndRole(@Param("staffIds") Set<String> staffIds, @Param("roleId") String roleId); Integer countStaffQtyByStaffIdsAndRole(@Param("staffIds") Set<String> staffIds, @Param("roleId") String roleId);
// 给定的staffId种,具备某些角色的staffId列表 // 给定的staffId种,具备某些角色的staffId列表
List<StaffsByOrgAndRoleRstDTO> staffsInRolesFromGivenStaffIds(@Param("staffIds") List<String> staffIds, @Param("roleKeys") List<String> roleKeys); List<StaffsByOrgAndRoleRstDTO> staffsInRolesFromGivenStaffIds(@Param("staffIds") List<String> staffIds,
@Param("roleKeys") List<String> roleKeys,
@Param("name") String name,
@Param("mobile") String mobile,
@Param("workType") String workType);
} }

5
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/UserService.java

@ -1,10 +1,9 @@
package com.epmet.dataaggre.service; package com.epmet.dataaggre.service;
import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.page.PageData;
import com.epmet.dataaggre.dto.epmetuser.form.StaffsByOrgAndRolesFormDTO;
import com.epmet.dataaggre.dto.epmetuser.result.StaffsByOrgAndRoleRstDTO; import com.epmet.dataaggre.dto.epmetuser.result.StaffsByOrgAndRoleRstDTO;
import java.util.List;
public interface UserService { public interface UserService {
PageData<StaffsByOrgAndRoleRstDTO> listStaffByOrgAndRole(String orgId, String orgType, Integer pageNo, Integer pageSize, List<String> roleKeys); PageData<StaffsByOrgAndRoleRstDTO> listStaffByOrgAndRole(StaffsByOrgAndRolesFormDTO form);
} }

2
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java

@ -276,5 +276,5 @@ public interface EpmetUserService {
*/ */
PageData<IcResiUserResultDTO> listIcResiUserByHouseId(Integer pageNo,Integer pageSize,List<String> houseIds); PageData<IcResiUserResultDTO> listIcResiUserByHouseId(Integer pageNo,Integer pageSize,List<String> houseIds);
PageData<StaffsByOrgAndRoleRstDTO> staffsInRolesFromGivenStaffIds(List<String> staffIdsUnderAgency, List<String> roleKeys, Integer pageNo, Integer pageSize); PageData<StaffsByOrgAndRoleRstDTO> staffsInRolesFromGivenStaffIds(List<String> staffIdsUnderAgency, StaffsByOrgAndRolesFormDTO form);
} }

6
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java

@ -1227,10 +1227,10 @@ public class EpmetUserServiceImpl implements EpmetUserService, ResultDataResolve
} }
@Override @Override
public PageData<StaffsByOrgAndRoleRstDTO> staffsInRolesFromGivenStaffIds(List<String> staffIdsUnderAgency, List<String> roleKeys, Integer pageNo, Integer pageSize) { public PageData<StaffsByOrgAndRoleRstDTO> staffsInRolesFromGivenStaffIds(List<String> staffIdsUnderAgency, StaffsByOrgAndRolesFormDTO form) {
PageHelper.startPage(pageNo, pageSize); PageHelper.startPage(form.getPageNo(), form.getPageSize());
List<StaffsByOrgAndRoleRstDTO> sl = customerStaffDao.staffsInRolesFromGivenStaffIds(staffIdsUnderAgency, roleKeys); List<StaffsByOrgAndRoleRstDTO> sl = customerStaffDao.staffsInRolesFromGivenStaffIds(staffIdsUnderAgency, form.getRoleKeys(),form.getName(),form.getMobile(),form.getWorkType());
return new PageData<>(sl, new PageInfo<>(sl).getTotal()); return new PageData<>(sl, new PageInfo<>(sl).getTotal());
} }

26
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/UserServiceImpl.java

@ -5,6 +5,7 @@ import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
import com.epmet.commons.tools.utils.PidUtils; import com.epmet.commons.tools.utils.PidUtils;
import com.epmet.constant.OrgInfoConstant; import com.epmet.constant.OrgInfoConstant;
import com.epmet.dataaggre.dto.epmetuser.form.StaffsByOrgAndRolesFormDTO;
import com.epmet.dataaggre.dto.epmetuser.result.StaffsByOrgAndRoleRstDTO; import com.epmet.dataaggre.dto.epmetuser.result.StaffsByOrgAndRoleRstDTO;
import com.epmet.dataaggre.service.UserService; import com.epmet.dataaggre.service.UserService;
import com.epmet.dataaggre.service.epmetuser.EpmetUserService; import com.epmet.dataaggre.service.epmetuser.EpmetUserService;
@ -15,6 +16,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List; import java.util.List;
@Service @Service
@ -30,20 +32,20 @@ public class UserServiceImpl implements UserService {
private EpmetUserRemoteService epmetUserRemoteService; private EpmetUserRemoteService epmetUserRemoteService;
@Override @Override
public PageData<StaffsByOrgAndRoleRstDTO> listStaffByOrgAndRole(String orgId, String orgType, Integer pageNo, Integer pageSize, List<String> roleKeys) { public PageData<StaffsByOrgAndRoleRstDTO> listStaffByOrgAndRole(StaffsByOrgAndRolesFormDTO form) {
String orgIdPath; String orgIdPath;
if (StringUtils.isAnyBlank(orgType, orgType)) { if (StringUtils.isAnyBlank(form.getOrgId(), form.getOrgType())) {
// 这俩有一个不传,就用当前用户所属的 // 这俩有一个不传,就用当前用户所属的
LoginUserDetailsResultDTO loginUserDetails = epmetUserRemoteService.getLoginUserDetails(); LoginUserDetailsResultDTO loginUserDetails = epmetUserRemoteService.getLoginUserDetails();
orgIdPath = loginUserDetails.getOrgIdPath(); orgIdPath = loginUserDetails.getOrgIdPath();
orgId = loginUserDetails.getAgencyId(); form.setOrgId(loginUserDetails.getAgencyId());
orgType = OrgInfoConstant.AGENCY; form.setOrgType(OrgInfoConstant.AGENCY);
} else { } else {
// 取用户传递的 // 取用户传递的
if (OrgInfoConstant.AGENCY.equals(orgType)) { if (OrgInfoConstant.AGENCY.equals(form.getOrgType())) {
// 行政组织 // 行政组织
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(orgId); AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(form.getOrgId());
orgIdPath = PidUtils.convertPid2OrgIdPath(agencyInfo.getId(), agencyInfo.getPids()); orgIdPath = PidUtils.convertPid2OrgIdPath(agencyInfo.getId(), agencyInfo.getPids());
} else { } else {
return null; return null;
@ -51,9 +53,17 @@ public class UserServiceImpl implements UserService {
} }
// 先通过org库查询出工作人员的id列表 // 先通过org库查询出工作人员的id列表
List<String> staffIdsUnderAgency = govOrgService.listStaffIdsUnderAgency(orgIdPath, orgId); List<String> staffIdsUnderAgency = govOrgService.listStaffIdsUnderAgency(orgIdPath, form.getOrgId());
//多处调用,判断是否传参
if (null == form.getRoleKeys() && form.getRoleKeys().size() == 0) {
//如果roleKeys是空,则无传参,判断roleType,如果不为空,添加查询参数
if (StringUtils.isNotEmpty(form.getRoleType())) {
List<String> roleKeys = new ArrayList<>();
roleKeys.add(form.getRoleType());
}
}
// 再通过这些id列表,去过滤角色,并且查出详细信息 // 再通过这些id列表,去过滤角色,并且查出详细信息
return epmetUserService.staffsInRolesFromGivenStaffIds(staffIdsUnderAgency, roleKeys, pageNo, pageSize); return epmetUserService.staffsInRolesFromGivenStaffIds(staffIdsUnderAgency, form);
} }
} }

65
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/CustomerStaffDao.xml

@ -217,25 +217,48 @@
<!--给定的staffId种,具备某些角色的staffId列表--> <!--给定的staffId种,具备某些角色的staffId列表-->
<select id="staffsInRolesFromGivenStaffIds" <select id="staffsInRolesFromGivenStaffIds"
resultType="com.epmet.dataaggre.dto.epmetuser.result.StaffsByOrgAndRoleRstDTO"> resultType="com.epmet.dataaggre.dto.epmetuser.result.StaffsByOrgAndRoleRstDTO">
select sr.STAFF_ID, cs.REAL_NAME as staffName, cs.MOBILE SELECT
from ( select distinct srr.STAFF_ID sr.STAFF_ID,
from staff_role srr cs.REAL_NAME AS staffName,
inner join gov_staff_role gsr on (srr.ROLE_ID = gsr.ID) cs.MOBILE,
where cs.GENDER,
srr.DEL_FLAG = 0 cs.CULTURE,
<if test="staffIds != null and staffIds.size() > 0"> cs.BIRTHDAY,
and srr.STAFF_ID in cs.ADDRESS,
<foreach collection="staffIds" item="staffId" separator="," open="(" close=")"> cs.WORK_TYPE AS workType,
#{staffId} cs.HEAD_PHOTO AS headPhoto
</foreach> cs.ID_CARD AS idCard
</if> FROM (
<if test="roleKeys != null and roleKeys.size() > 0"> SELECT DISTINCT srr.STAFF_ID
and gsr.ROLE_KEY in FROM staff_role srr
<foreach collection="roleKeys" item="roleKey" separator="," open="(" close=")"> INNER JOIN gov_staff_role gsr ON (srr.ROLE_ID = gsr.ID)
#{roleKey} <where>
</foreach> srr.DEL_FLAG = 0
</if> <if test="staffIds != null and staffIds.size() > 0">
) sr AND srr.STAFF_ID IN
inner join customer_staff cs on (cs.USER_ID = sr.STAFF_ID and cs.DEL_FLAG = 0) <foreach collection="staffIds" item="staffId" separator="," open="(" close=")">
#{staffId}
</foreach>
</if>
<if test="roleKeys != null and roleKeys.size() > 0">
AND gsr.ROLE_KEY IN
<foreach collection="roleKeys" item="roleKey" separator="," open="(" close=")">
#{roleKey}
</foreach>
</if>
</where>
) sr
INNER JOIN customer_staff cs ON (
cs.USER_ID = sr.STAFF_ID AND cs.DEL_FLAG = 0
<if test="null != name and name != ''">
AND cs.REAL_NAME LIKE CONCAT('%',#{name},'%')
</if>
<if test="null != mobile and mobile != ''">
AND cs.MOBILE LIKE CONCAT('%',#{mobile},'%')
</if>
<if test="null != workType and workType != ''">
AND cs.WORK_TYPE = #{workType}
</if>
)
</select> </select>
</mapper> </mapper>

1736
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/StaffServiceImpl.java

File diff suppressed because it is too large
Loading…
Cancel
Save