diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/PersonWarnLeftPieDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/PersonWarnLeftPieDTO.java new file mode 100644 index 0000000000..d6feeb3c18 --- /dev/null +++ b/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 = ""; + } +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonWarnLeftPieResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonWarnLeftPieResultDTO.java new file mode 100644 index 0000000000..44d714a318 --- /dev/null +++ b/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 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; + } + } +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcStatsResiWarnController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcStatsResiWarnController.java index f0b9860e45..5b681b639b 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcStatsResiWarnController.java +++ b/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 personWarnLeftPie(@LoginUser TokenDto tokenDto){ + return new Result().ok(icStatsResiWarnService.personWarnLeftPie(tokenDto)); + } + } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcStatsResiWarnDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcStatsResiWarnDao.java index ef9fac802c..aeb0c2ca82 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcStatsResiWarnDao.java +++ b/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 { @Param("columnName") String columnName, @Param("icStatsResiWarn") IcStatsResiWarnEntity icStatsResiWarn); + /** + * @Description 查询分类下的人数 + * @param configIds + * @param agencyId + * @author zxc + * @date 2022/1/17 3:30 下午 + */ + List selectCategoryCount(@Param("configIds") List configIds,@Param("agencyId")String agencyId); + } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcStatsResiWarnService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcStatsResiWarnService.java index 6a0592adbe..b63f35a59e 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcStatsResiWarnService.java +++ b/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 implements IcStatsResiWarnService { @Autowired - private IcStatsResiWarnRedis icStatsResiWarnRedis; + private OperCustomizeOpenFeignClient operCustomizeOpenFeignClient; @Override public PageData page(Map params) { @@ -101,4 +113,43 @@ public class IcStatsResiWarnServiceImpl extends BaseServiceImpl> listResult = operCustomizeOpenFeignClient.resiCategoryWarnList(tokenDto.getCustomerId()); + if (!listResult.success()){ + throw new EpmetException("查询设置预警的分类失败..."); + } + PersonWarnLeftPieResultDTO result = new PersonWarnLeftPieResultDTO(); + if (CollectionUtils.isEmpty(listResult.getData())){ + return result; + } + List configList = listResult.getData(); + List 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 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; + } + } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcStatsResiWarnDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcStatsResiWarnDao.xml index 4a4a2a6cc3..683938f80e 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcStatsResiWarnDao.xml +++ b/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 + + + \ No newline at end of file