zxc 4 years ago
parent
commit
c0a8544306
  1. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcStatsResiWarnDao.java
  2. 30
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcStatsResiWarnServiceImpl.java
  3. 1
      epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml
  4. 30
      epmet-user/epmet-user-server/src/main/resources/mapper/IcStatsResiWarnDao.xml

2
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcStatsResiWarnDao.java

@ -74,4 +74,6 @@ public interface IcStatsResiWarnDao extends BaseDao<IcStatsResiWarnEntity> {
*/ */
List<PersonWarnLeftPieDTO> selectCategoryCount(@Param("configIds") List<String> configIds,@Param("agencyId")String agencyId); List<PersonWarnLeftPieDTO> selectCategoryCount(@Param("configIds") List<String> configIds,@Param("agencyId")String agencyId);
List<Map<String,String>> selectCategoryCountByColumn(@Param("columnNames") List<String> columnNames,@Param("agencyId")String agencyId);
} }

30
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcStatsResiWarnServiceImpl.java

@ -20,6 +20,7 @@ package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.page.PageData;
@ -44,10 +45,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.*;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -144,9 +142,27 @@ public class IcStatsResiWarnServiceImpl extends BaseServiceImpl<IcStatsResiWarnD
p.setConfigId(c.getWarnConfigId()); p.setConfigId(c.getWarnConfigId());
list.add(p); list.add(p);
}); });
List<PersonWarnLeftPieDTO> dtos = baseDao.selectCategoryCount(configList.stream().map(m -> m.getWarnConfigId()).collect(Collectors.toList()), staffInfo.getAgencyId()); // List<PersonWarnLeftPieDTO> dtos = baseDao.selectCategoryCount(configList.stream().map(m -> m.getWarnConfigId()).collect(Collectors.toList()), staffInfo.getAgencyId());
if (CollectionUtils.isNotEmpty(dtos)){ List<String> columns = configList.stream().map(m -> m.getColumnName()).collect(Collectors.toList());
list.forEach(l -> dtos.stream().filter(d -> d.getConfigId().equals(l.getConfigId())).forEach(d -> l.setTypeCount(d.getCount()))); List<Map<String, String>> maps = baseDao.selectCategoryCountByColumn(columns, staffInfo.getAgencyId());
// if (CollectionUtils.isNotEmpty(dtos)){
// list.forEach(l -> dtos.stream().filter(d -> d.getConfigId().equals(l.getConfigId())).forEach(d -> l.setTypeCount(d.getCount())));
// }
Map<String,Integer> columnCount = new HashMap<>(16);
if (CollectionUtils.isNotEmpty(maps)){
columns.forEach(c -> {
Map<String, List<Map<String, String>>> groupByColumn = maps.stream().collect(Collectors.groupingBy((Map<String, String> m) -> m.get(c)));
columnCount.put(c,CollectionUtils.isNotEmpty(groupByColumn.get(NumConstant.ONE_STR)) ? groupByColumn.get(NumConstant.ONE_STR).size() : NumConstant.ZERO);
});
}
if (!org.springframework.util.CollectionUtils.isEmpty(columnCount)){
list.forEach(l -> {
columnCount.forEach((k,v) -> {
if (l.getTypeCode().equals(k)){
l.setTypeCount(v);
}
});
});
} }
result.setTotal(list.stream().collect(Collectors.summingInt(PersonWarnLeftPieResultDTO.PersonWarnLeftPie::getTypeCount))); result.setTotal(list.stream().collect(Collectors.summingInt(PersonWarnLeftPieResultDTO.PersonWarnLeftPie::getTypeCount)));
result.setList(list); result.setList(list);

1
epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

@ -554,6 +554,7 @@
</foreach> </foreach>
FROM ic_resi_user FROM ic_resi_user
WHERE DEL_FLAG = 0 WHERE DEL_FLAG = 0
AND STATUS = '0'
AND CONCAT(PIDS,':',AGENCY_ID) LIKE CONCAT('%',#{orgId},'%') AND CONCAT(PIDS,':',AGENCY_ID) LIKE CONCAT('%',#{orgId},'%')
AND( AND(
<foreach collection="types" item="t" separator="OR"> <foreach collection="types" item="t" separator="OR">

30
epmet-user/epmet-user-server/src/main/resources/mapper/IcStatsResiWarnDao.xml

@ -151,26 +151,36 @@
<select id="userWarnListDTO" resultType="com.epmet.dto.result.UserWarnNameListResultDTO"> <select id="userWarnListDTO" resultType="com.epmet.dto.result.UserWarnNameListResultDTO">
select select
BUILD_ID as buildingId, BUILD_ID as buildingId,
name as residentName, name as residentName,
ID AS userId ID AS userId
from ic_resi_user from ic_resi_user
where where DEL_FLAG = '0'
BUILD_ID in and CUSTOMER_ID = #{customerId}
<foreach collection="buildingIdList" item="buildingId" open="(" separator="," close=" )">
#{buildingId}
</foreach>
<if test="tableName=='ic_resi_user'"> <if test="tableName=='ic_resi_user'">
and ${columnName} = '1' and ${columnName} = '1'
</if> </if>
AND BUILD_ID in
<foreach collection="buildingIdList" item="buildingId" open="(" separator="," close=" )">
#{buildingId}
</foreach>
<if test="tableName!='ic_resi_user'"> <if test="tableName!='ic_resi_user'">
and ID in ( and ID in (
select IC_RESI_USER from ${tableName} where ${columnName} = '1' and CUSTOMER_ID = #{customerId} and DEL_FLAG = '0' select IC_RESI_USER from ${tableName} where ${columnName} = '1' and CUSTOMER_ID = #{customerId} and DEL_FLAG = '0'
) )
</if> </if>
and CUSTOMER_ID = #{customerId}
and DEL_FLAG = '0'
group by ID group by ID
</select> </select>
<select id="selectCategoryCountByColumn" resultType="java.util.Map">
SELECT
<foreach collection="columnNames" item="t" separator=",">
IFNULL(${t},'0') AS #{t}
</foreach>
FROM ic_resi_user
WHERE DEL_FLAG = 0
AND `STATUS` = '0'
AND CONCAT(PIDS,':',AGENCY_ID) LIKE CONCAT('%',#{agencyId},'%')
</select>
</mapper> </mapper>
Loading…
Cancel
Save