Browse Source

网格员数据向上汇聚

dev_shibei_match
yinzuomei 4 years ago
parent
commit
981863afb7
  1. 19
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/StatsCustomerAgencyDao.java
  2. 15
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerAgencyServiceImpl.java
  3. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/ScreenCentralZoneDataExtractServiceImpl.java
  4. 31
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/StatsCustomerAgencyDao.xml

19
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/StatsCustomerAgencyDao.java

@ -41,5 +41,22 @@ public interface StatsCustomerAgencyDao extends BaseDao<CustomerAgencyEntity> {
* @param customerId
* @return com.epmet.dto.org.result.OrgStaffResultDTO
*/
List<OrgStaffDTO> selectOrgStaffIds(String customerId);
List<OrgStaffDTO> selectGridStaffIds(String customerId);
/**
* 根据客户id下,查询所有的组织
*
* @param customerId
* @return com.epmet.entity.org.CustomerAgencyEntity
*/
List<CustomerAgencyEntity> selectListByCustomerId(@Param("customerId")String customerId);
/**
* 查询agency下面的网格员注意向上汇聚的
*
* @param agencyId
* @param customerId
* @return java.lang.String
*/
List<String> selectAgencyStaffIds(@Param("customerId") String customerId,@Param("agencyId")String agencyId);
}

15
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerAgencyServiceImpl.java

@ -60,7 +60,20 @@ public class CustomerAgencyServiceImpl implements CustomerAgencyService {
*/
@Override
public List<OrgStaffDTO> queryOrgStaffIds(String customerId) {
List<OrgStaffDTO> resultList=customerAgencyDao.selectOrgStaffIds(customerId);
List<OrgStaffDTO> resultList=new ArrayList<>();
List<CustomerAgencyEntity> list=customerAgencyDao.selectListByCustomerId(customerId);
for(CustomerAgencyEntity agencyEntity:list){
List<String> agencyStaffIds=customerAgencyDao.selectAgencyStaffIds(customerId,agencyEntity.getId());
if(!CollectionUtils.isEmpty(agencyStaffIds)){
OrgStaffDTO agencyStaffDTO=new OrgStaffDTO();
agencyStaffDTO.setOrgId(agencyEntity.getId());
agencyStaffDTO.setOrgType("agency");
agencyStaffDTO.setStaffIds(agencyStaffIds);
resultList.add(agencyStaffDTO);
}
}
List<OrgStaffDTO> gridStaffIds=customerAgencyDao.selectGridStaffIds(customerId);
resultList.addAll(gridStaffIds);
return resultList;
}
}

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/ScreenCentralZoneDataExtractServiceImpl.java

@ -161,7 +161,9 @@ public class ScreenCentralZoneDataExtractServiceImpl implements ScreenCentralZon
projectMap.putAll(gridProject.stream().collect(Collectors.toMap(ScreenUserTotalDataEntity::getOrgId,ScreenUserTotalDataEntity::getProjectTotal)));
//For:06.01新增:orgType=agency或者grid的时候,此列赋值:当前组织或者当前网格内的网格员人数
//先查询各个组织,各个网格下的用户id集合
List<OrgStaffDTO> orgStaffDTOList=customerAgencyService.queryOrgStaffIds(customerId);
//再查询这些人当中多少个网格员
Map<String,Integer> gridManagerMap=userService.queryOrgGridManager(customerId,orgStaffDTOList);
result.forEach(o -> {

31
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/StatsCustomerAgencyDao.xml

@ -134,7 +134,7 @@
</collection>
</resultMap>
<select id="selectOrgStaffIds" parameterType="java.lang.String" resultMap="OrgStaffResultDTOMap">
<select id="selectGridStaffIds" parameterType="java.lang.String" resultMap="OrgStaffResultDTOMap">
SELECT
csg.GRID_ID AS orgId,
'grid' AS orgType,
@ -144,17 +144,26 @@
WHERE
csg.DEL_FLAG = '0'
AND csg.CUSTOMER_ID = #{customerId}
UNION ALL
SELECT
csa.AGENCY_ID AS orgId,
'agency' AS orgType,
csa.USER_ID AS staffId
FROM
customer_staff_agency csa
WHERE
csa.DEL_FLAG = '0'
AND csa.CUSTOMER_ID = #{customerId}
ORDER BY
orgType asc,orgId ASC
</select>
<select id="selectListByCustomerId" parameterType="map" resultType="com.epmet.entity.org.CustomerAgencyEntity">
select * from customer_agency ca
where ca.DEL_FLAG='0'
and ca.CUSTOMER_ID=#{customerId}
</select>
<select id="selectAgencyStaffIds" parameterType="map" resultType="java.lang.String">
SELECT
distinct csa.USER_ID AS staffId
FROM customer_agency ca
left join customer_staff_agency csa
on(ca.id =csa.AGENCY_ID
and csa.DEL_FLAG='0')
WHERE
ca.DEL_FLAG = '0'
AND ca.CUSTOMER_ID = #{customerId}
and ca.pids like CONCAT(#{agencyId},'%')
</select>
</mapper>
Loading…
Cancel
Save