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<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.metadata.IPage;
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.exception.EpmetException;
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.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -144,9 +142,27 @@ public class IcStatsResiWarnServiceImpl extends BaseServiceImpl<IcStatsResiWarnD
p.setConfigId(c.getWarnConfigId());
list.add(p);
});
List<PersonWarnLeftPieDTO> dtos = baseDao.selectCategoryCount(configList.stream().map(m -> m.getWarnConfigId()).collect(Collectors.toList()), staffInfo.getAgencyId());
if (CollectionUtils.isNotEmpty(dtos)){
list.forEach(l -> dtos.stream().filter(d -> d.getConfigId().equals(l.getConfigId())).forEach(d -> l.setTypeCount(d.getCount())));
// List<PersonWarnLeftPieDTO> dtos = baseDao.selectCategoryCount(configList.stream().map(m -> m.getWarnConfigId()).collect(Collectors.toList()), staffInfo.getAgencyId());
List<String> columns = configList.stream().map(m -> m.getColumnName()).collect(Collectors.toList());
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.setList(list);

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

@ -554,6 +554,7 @@
</foreach>
FROM ic_resi_user
WHERE DEL_FLAG = 0
AND STATUS = '0'
AND CONCAT(PIDS,':',AGENCY_ID) LIKE CONCAT('%',#{orgId},'%')
AND(
<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
BUILD_ID as buildingId,
name as residentName,
ID AS userId
BUILD_ID as buildingId,
name as residentName,
ID AS userId
from ic_resi_user
where
BUILD_ID in
<foreach collection="buildingIdList" item="buildingId" open="(" separator="," close=" )">
#{buildingId}
</foreach>
where DEL_FLAG = '0'
and CUSTOMER_ID = #{customerId}
<if test="tableName=='ic_resi_user'">
and ${columnName} = '1'
</if>
AND BUILD_ID in
<foreach collection="buildingIdList" item="buildingId" open="(" separator="," close=" )">
#{buildingId}
</foreach>
<if test="tableName!='ic_resi_user'">
and ID in (
select IC_RESI_USER from ${tableName} where ${columnName} = '1' and CUSTOMER_ID = #{customerId} and DEL_FLAG = '0'
)
</if>
and CUSTOMER_ID = #{customerId}
and DEL_FLAG = '0'
group by ID
</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>
Loading…
Cancel
Save