Browse Source

预警pie

master
zxc 4 years ago
parent
commit
ab11db590d
  1. 26
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/PersonWarnLeftPieDTO.java
  2. 48
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonWarnLeftPieResultDTO.java
  3. 14
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcStatsResiWarnController.java
  4. 10
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcStatsResiWarnDao.java
  5. 10
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcStatsResiWarnService.java
  6. 53
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcStatsResiWarnServiceImpl.java
  7. 16
      epmet-user/epmet-user-server/src/main/resources/mapper/IcStatsResiWarnDao.xml

26
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/PersonWarnLeftPieDTO.java

@ -0,0 +1,26 @@
package com.epmet.dto;
import com.epmet.commons.tools.constant.NumConstant;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2022/1/17 3:27 下午
* @DESC
*/
@Data
public class PersonWarnLeftPieDTO implements Serializable {
private static final long serialVersionUID = 337571869959815613L;
private Integer count;
private String configId;
public PersonWarnLeftPieDTO() {
this.count = NumConstant.ZERO;
this.configId = "";
}
}

48
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonWarnLeftPieResultDTO.java

@ -0,0 +1,48 @@
package com.epmet.dto.result;
import com.epmet.commons.tools.constant.NumConstant;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* @Author zxc
* @DateTime 2022/1/17 2:33 下午
* @DESC
*/
@Data
public class PersonWarnLeftPieResultDTO implements Serializable {
private static final long serialVersionUID = -111604873581992490L;
private Integer total;
private List<PersonWarnLeftPie> list;
public PersonWarnLeftPieResultDTO() {
this.total = NumConstant.ZERO;
this.list = new ArrayList<>();
}
@Data
public static class PersonWarnLeftPie{
@JsonIgnore
private String configId;
private String typeName;
private String typeCode;
private Integer typeCount;
public PersonWarnLeftPie() {
this.typeName = "";
this.typeCode = "";
this.typeCount = NumConstant.ZERO;
}
}
}

14
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcStatsResiWarnController.java

@ -17,7 +17,9 @@
package com.epmet.controller;
import com.epmet.commons.tools.annotation.LoginUser;
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;
import com.epmet.commons.tools.validator.AssertUtils;
@ -26,6 +28,7 @@ import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.dto.IcStatsResiWarnDTO;
import com.epmet.dto.result.PersonWarnLeftPieResultDTO;
import com.epmet.excel.IcStatsResiWarnExcel;
import com.epmet.service.IcStatsResiWarnService;
import org.springframework.beans.factory.annotation.Autowired;
@ -91,4 +94,15 @@ public class IcStatsResiWarnController {
ExcelUtils.exportExcelToTarget(response, null, list, IcStatsResiWarnExcel.class);
}
/**
* @Description 社区查询人员预警饼图
* @param tokenDto
* @author zxc
* @date 2022/1/17 2:39 下午
*/
@PostMapping("personwarn/leftpie")
public Result<PersonWarnLeftPieResultDTO> personWarnLeftPie(@LoginUser TokenDto tokenDto){
return new Result<PersonWarnLeftPieResultDTO>().ok(icStatsResiWarnService.personWarnLeftPie(tokenDto));
}
}

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

@ -19,6 +19,7 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.IcResiCategoryStatsConfigDTO;
import com.epmet.dto.PersonWarnLeftPieDTO;
import com.epmet.entity.IcStatsResiWarnEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -58,4 +59,13 @@ public interface IcStatsResiWarnDao extends BaseDao<IcStatsResiWarnEntity> {
@Param("columnName") String columnName,
@Param("icStatsResiWarn") IcStatsResiWarnEntity icStatsResiWarn);
/**
* @Description 查询分类下的人数
* @param configIds
* @param agencyId
* @author zxc
* @date 2022/1/17 3:30 下午
*/
List<PersonWarnLeftPieDTO> selectCategoryCount(@Param("configIds") List<String> configIds,@Param("agencyId")String agencyId);
}

10
epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcStatsResiWarnService.java

@ -19,7 +19,9 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dto.IcStatsResiWarnDTO;
import com.epmet.dto.result.PersonWarnLeftPieResultDTO;
import com.epmet.entity.IcStatsResiWarnEntity;
import java.util.List;
@ -92,4 +94,12 @@ public interface IcStatsResiWarnService extends BaseService<IcStatsResiWarnEntit
* @date 2021-11-04
*/
void delete(String[] ids);
/**
* @Description 社区查询人员预警饼图
* @param tokenDto
* @author zxc
* @date 2022/1/17 2:39 下午
*/
PersonWarnLeftPieResultDTO personWarnLeftPie(TokenDto tokenDto);
}

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

@ -20,22 +20,34 @@ 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.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.IcStatsResiWarnDao;
import com.epmet.dto.IcResiCategoryWarnConfigDTO;
import com.epmet.dto.IcStatsResiWarnDTO;
import com.epmet.dto.PersonWarnLeftPieDTO;
import com.epmet.dto.result.PersonWarnLeftPieResultDTO;
import com.epmet.entity.IcStatsResiWarnEntity;
import com.epmet.feign.OperCustomizeOpenFeignClient;
import com.epmet.redis.IcStatsResiWarnRedis;
import com.epmet.service.IcStatsResiWarnService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
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.stream.Collectors;
/**
* 预警统计表
@ -47,7 +59,7 @@ import java.util.Map;
public class IcStatsResiWarnServiceImpl extends BaseServiceImpl<IcStatsResiWarnDao, IcStatsResiWarnEntity> implements IcStatsResiWarnService {
@Autowired
private IcStatsResiWarnRedis icStatsResiWarnRedis;
private OperCustomizeOpenFeignClient operCustomizeOpenFeignClient;
@Override
public PageData<IcStatsResiWarnDTO> page(Map<String, Object> params) {
@ -101,4 +113,43 @@ public class IcStatsResiWarnServiceImpl extends BaseServiceImpl<IcStatsResiWarnD
baseDao.deleteBatchIds(Arrays.asList(ids));
}
/**
* @Description 社区查询人员预警饼图
* @param tokenDto
* @author zxc
* @date 2022/1/17 2:39 下午
*/
@Override
public PersonWarnLeftPieResultDTO personWarnLeftPie(TokenDto tokenDto) {
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId());
if (null == staffInfo){
throw new EpmetException(String.format("未查询到此工作人员%s",tokenDto.getUserId()));
}
// 查询设置预警的分类
Result<List<IcResiCategoryWarnConfigDTO>> listResult = operCustomizeOpenFeignClient.resiCategoryWarnList(tokenDto.getCustomerId());
if (!listResult.success()){
throw new EpmetException("查询设置预警的分类失败...");
}
PersonWarnLeftPieResultDTO result = new PersonWarnLeftPieResultDTO();
if (CollectionUtils.isEmpty(listResult.getData())){
return result;
}
List<IcResiCategoryWarnConfigDTO> configList = listResult.getData();
List<PersonWarnLeftPieResultDTO.PersonWarnLeftPie> list = new ArrayList<>();
configList.forEach(c -> {
PersonWarnLeftPieResultDTO.PersonWarnLeftPie p = new PersonWarnLeftPieResultDTO.PersonWarnLeftPie();
p.setTypeName(c.getLabel());
p.setTypeCode(c.getColumnName());
p.setConfigId(c.getId());
list.add(p);
});
List<PersonWarnLeftPieDTO> dtos = baseDao.selectCategoryCount(configList.stream().map(m -> m.getId()).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())));
}
result.setTotal(list.stream().collect(Collectors.summingInt(PersonWarnLeftPieResultDTO.PersonWarnLeftPie::getTypeCount)));
result.setList(list);
return result;
}
}

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

@ -131,4 +131,20 @@
and AGENCY_ID = #{icStatsResiWarn.agencyId} and GRID_ID =#{icStatsResiWarn.gridId} and VILLAGE_ID=#{icStatsResiWarn.neighborHoodId} and BUILD_ID=#{icStatsResiWarn.buildingId}
group by AGENCY_ID,GRID_ID,VILLAGE_ID,BUILD_ID
</select>
<!-- 查询分类下的人数 -->
<select id="selectCategoryCount" resultType="com.epmet.dto.PersonWarnLeftPieDTO">
SELECT
CONFIG_ID,
COUNT(COUNT) AS count
FROM ic_stats_resi_warn
WHERE DEL_FLAG = '0'
AND CONCAT(AGENCY_PIDS,':',AGENCY_ID) LIKE CONCAT('%',#{agencyId},'%')
AND CONFIG_ID IN (
<foreach collection="configIds" item="c" separator=",">
#{c}
</foreach>
)
GROUP BY CONFIG_ID
</select>
</mapper>
Loading…
Cancel
Save