Browse Source

Merge remote-tracking branch 'origin/master'

master
luyan 2 years ago
parent
commit
70b50b3a53
  1. 24
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/StaffsByOrgAndRolesFormDTO.java
  2. 23
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/StaffsByOrgAndRoleRstDTO.java
  3. 19
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java
  4. 4
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java
  5. 3
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffAgencyDao.java
  6. 10
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/UserService.java
  7. 2
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java
  8. 9
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java
  9. 2
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java
  10. 6
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java
  11. 59
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/UserServiceImpl.java
  12. 25
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/CustomerStaffDao.xml
  13. 14
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffAgencyDao.xml

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

@ -0,0 +1,24 @@
package com.epmet.dataaggre.dto.epmetuser.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.List;
@Data
public class StaffsByOrgAndRolesFormDTO {
@NotBlank(message = "组织ID为必填项")
private String orgId;
/**
* agency,grid
*/
@NotBlank(message = "组织类型为必填项")
private String orgType;
private int pageNo = 1;
private int pageSize = 10;
private List<String> roleKeys;
}

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

@ -0,0 +1,23 @@
package com.epmet.dataaggre.dto.epmetuser.result;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Description 工作人员列表按照角色和组织查询
* @Author wangxianzhang
* @Time 2023/5/31 3:54 PM
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class StaffsByOrgAndRoleRstDTO {
private String staffName;
private String staffId;
private String mobile;
}

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

@ -4,6 +4,7 @@ import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.annotation.RequirePermission;
import com.epmet.commons.tools.enums.RequirePermissionEnum;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
@ -12,6 +13,7 @@ import com.epmet.dataaggre.dto.epmetuser.form.*;
import com.epmet.dataaggre.dto.epmetuser.result.*;
import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO;
import com.epmet.dataaggre.excel.StaffPatrollExcel;
import com.epmet.dataaggre.service.UserService;
import com.epmet.dataaggre.service.datastats.DataStatsService;
import com.epmet.dataaggre.service.epmetuser.EpmetUserService;
import com.epmet.dto.form.DetailByTypeFormDTO;
@ -39,6 +41,8 @@ public class EpmetUserController {
@Autowired
private DataStatsService dataStatsService;
@Autowired
private UserService userService;
/**
* @Param formDTO
@ -299,4 +303,19 @@ public class EpmetUserController {
return new Result<DetailByTypeResultDTO>().ok(epmetUserService.detailByType(formDTO,tokenDto));
}
/**
* @Description: 查询组织下某个角色的工作人员列表
* @Return com.epmet.commons.tools.utils.Result<com.epmet.commons.tools.page.PageData<com.epmet.dataaggre.dto.epmetuser.result.StaffsByOrgAndRoleRstDTO>>
* @Author: wangxianzhang
* @Date: 2023/5/31 3:56 PM
*/
@PostMapping("listStaffByOrgAndRoles")
public Result<PageData<StaffsByOrgAndRoleRstDTO>> listStaffByOrgAndRole(@RequestBody StaffsByOrgAndRolesFormDTO form) {
ValidatorUtils.validateEntity(form);
PageData<StaffsByOrgAndRoleRstDTO> pd = userService.listStaffByOrgAndRole(form.getOrgId(), form.getOrgType(), form.getPageNo(), form.getPageSize(), form.getRoleKeys());
return new Result<PageData<StaffsByOrgAndRoleRstDTO>>().ok(pd);
}
}

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

@ -22,6 +22,7 @@ import com.epmet.dataaggre.beans.StaffInfoInGridOfRole;
import com.epmet.dataaggre.dto.epmetuser.CustomerStaffDTO;
import com.epmet.dataaggre.dto.epmetuser.result.ListStaffResultDTO;
import com.epmet.dataaggre.dto.epmetuser.result.StaffSelectResDTO;
import com.epmet.dataaggre.dto.epmetuser.result.StaffsByOrgAndRoleRstDTO;
import com.epmet.dataaggre.dto.govorg.form.OrgStaffListFormDTO;
import com.epmet.dataaggre.entity.epmetuser.CustomerStaffEntity;
import org.apache.ibatis.annotations.Mapper;
@ -111,4 +112,7 @@ public interface CustomerStaffDao extends BaseDao<CustomerStaffEntity> {
* @Date: 2023/5/15 11:21 AM
*/
Integer countStaffQtyByStaffIdsAndRole(@Param("staffIds") Set<String> staffIds, @Param("roleId") String roleId);
// 给定的staffId种,具备某些角色的staffId列表
List<StaffsByOrgAndRoleRstDTO> staffsInRolesFromGivenStaffIds(@Param("staffIds") List<String> staffIds, @Param("roleKeys") List<String> roleKeys);
}

3
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffAgencyDao.java

@ -74,4 +74,7 @@ public interface CustomerStaffAgencyDao extends BaseDao<CustomerStaffAgencyEntit
List<StaffOrgRelationResultDTO> getStaffList(@Param("orgId") String orgId, @Param("orgType") String orgType);
List<String> listStaffIdsUnderAgency(@Param("customerId") String customerId,
@Param("orgIdPath") String orgIdPath,
@Param("agencyId") String agencyId);
}

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

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

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

@ -275,4 +275,6 @@ public interface EpmetUserService {
* @return
*/
PageData<IcResiUserResultDTO> listIcResiUserByHouseId(Integer pageNo,Integer pageSize,List<String> houseIds);
PageData<StaffsByOrgAndRoleRstDTO> staffsInRolesFromGivenStaffIds(List<String> staffIdsUnderAgency, List<String> roleKeys, Integer pageNo, Integer pageSize);
}

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

@ -1225,4 +1225,13 @@ public class EpmetUserServiceImpl implements EpmetUserService, ResultDataResolve
pageInfo.setList(resultList);
return new PageData<>(resultList, pageInfo.getTotal(),pageSize);
}
@Override
public PageData<StaffsByOrgAndRoleRstDTO> staffsInRolesFromGivenStaffIds(List<String> staffIdsUnderAgency, List<String> roleKeys, Integer pageNo, Integer pageSize) {
PageHelper.startPage(pageNo, pageSize);
List<StaffsByOrgAndRoleRstDTO> sl = customerStaffDao.staffsInRolesFromGivenStaffIds(staffIdsUnderAgency, roleKeys);
return new PageData<>(sl, new PageInfo<>(sl).getTotal());
}
}

2
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java

@ -319,4 +319,6 @@ public interface GovOrgService {
* @return
*/
PageData<LingShanLianHuResiUserResultDTO> lianHuResi(Integer pageNo, Integer pageSize, String partyCenterHouseId);
List<String> listStaffIdsUnderAgency(String orgIdPath, String agencyId);
}

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

@ -30,6 +30,7 @@ import com.epmet.commons.tools.redis.common.bean.CustomerStaffInfoCache;
import com.epmet.commons.tools.redis.common.bean.GridInfoCache;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.EpmetRequestHolder;
import com.epmet.commons.tools.utils.HttpClientManager;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dataaggre.beans.LingShanAgentServiceStaffAndGrid;
@ -1613,5 +1614,8 @@ public class GovOrgServiceImpl implements GovOrgService {
return new PageData<>(resList, resiPage.getTotal(),pageSize);
}
@Override
public List<String> listStaffIdsUnderAgency(String orgIdPath, String agencyId) {
return customerStaffAgencyDao.listStaffIdsUnderAgency(EpmetRequestHolder.getLoginUserCustomerId(), orgIdPath, agencyId);
}
}

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

@ -0,0 +1,59 @@
package com.epmet.dataaggre.service.impl;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
import com.epmet.commons.tools.utils.PidUtils;
import com.epmet.constant.OrgInfoConstant;
import com.epmet.dataaggre.dto.epmetuser.result.StaffsByOrgAndRoleRstDTO;
import com.epmet.dataaggre.service.UserService;
import com.epmet.dataaggre.service.epmetuser.EpmetUserService;
import com.epmet.dataaggre.service.govorg.GovOrgService;
import com.epmet.dto.result.LoginUserDetailsResultDTO;
import com.epmet.remote.EpmetUserRemoteService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private GovOrgService govOrgService;
@Autowired
private EpmetUserService epmetUserService;
@Autowired
private EpmetUserRemoteService epmetUserRemoteService;
@Override
public PageData<StaffsByOrgAndRoleRstDTO> listStaffByOrgAndRole(String orgId, String orgType, Integer pageNo, Integer pageSize, List<String> roleKeys) {
String orgIdPath;
if (StringUtils.isAnyBlank(orgType, orgType)) {
// 这俩有一个不传,就用当前用户所属的
LoginUserDetailsResultDTO loginUserDetails = epmetUserRemoteService.getLoginUserDetails();
orgIdPath = loginUserDetails.getOrgIdPath();
orgId = loginUserDetails.getAgencyId();
orgType = OrgInfoConstant.AGENCY;
} else {
// 取用户传递的
if (OrgInfoConstant.AGENCY.equals(orgType)) {
// 行政组织
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(orgId);
orgIdPath = PidUtils.convertPid2OrgIdPath(agencyInfo.getId(), agencyInfo.getPids());
} else {
return null;
}
}
// 先通过org库查询出工作人员的id列表
List<String> staffIdsUnderAgency = govOrgService.listStaffIdsUnderAgency(orgIdPath, orgId);
// 再通过这些id列表,去过滤角色,并且查出详细信息
return epmetUserService.staffsInRolesFromGivenStaffIds(staffIdsUnderAgency, roleKeys, pageNo, pageSize);
}
}

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

@ -213,4 +213,29 @@
and sr.ROLE_ID = #{roleId}
</if>
</select>
<!--给定的staffId种,具备某些角色的staffId列表-->
<select id="staffsInRolesFromGivenStaffIds"
resultType="com.epmet.dataaggre.dto.epmetuser.result.StaffsByOrgAndRoleRstDTO">
select sr.STAFF_ID, cs.REAL_NAME as staffName, cs.MOBILE
from ( select distinct srr.STAFF_ID
from staff_role srr
inner join gov_staff_role gsr on (srr.ROLE_ID = gsr.ID)
where
srr.DEL_FLAG = 0
<if test="staffIds != null and staffIds.size() > 0">
and srr.STAFF_ID in
<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>
) sr
inner join customer_staff cs on (cs.USER_ID = sr.STAFF_ID and cs.DEL_FLAG = 0)
</select>
</mapper>

14
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffAgencyDao.xml

@ -159,4 +159,18 @@
</otherwise>
</choose>
</select>
<!--查询行政组织及其所有下级组织的工作人员-->
<select id="listStaffIdsUnderAgency"
resultType="java.lang.String">
select sa.USER_ID
from ( select ID
from customer_agency
where DEL_FLAG = 0
and CUSTOMER_ID = #{customerId}
and (PIDS like CONCAT(#{orgIdPath}, '%') OR ID=#{agencyId})
) ag
inner join customer_staff_agency sa on (ag.ID = sa.AGENCY_ID and sa.DEL_FLAG = 0)
</select>
</mapper>

Loading…
Cancel
Save