diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/resi/ResiPortrayalCommonFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/resi/ResiPortrayalCommonFormDTO.java new file mode 100644 index 0000000000..9679258c91 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/resi/ResiPortrayalCommonFormDTO.java @@ -0,0 +1,21 @@ +package com.epmet.dto.form.resi; + +import lombok.Data; + +/** + * @Description 烟台居民画像入参 + * @Author yzm + * @Date 2023/4/11 17:03 + */ +@Data +public class ResiPortrayalCommonFormDTO { + /** + * /gov/org/customeragency/agencygridtree返回的agencyId + */ + private String orgId; + /** + * /gov/org/customeragency/agencygridtree返回level=grid时,orgType:grid;其他情况orgType:agency + */ + private String orgType; +} + diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/resi/ResiPortrayalResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/resi/ResiPortrayalResultDTO.java new file mode 100644 index 0000000000..4f0b95072a --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/resi/ResiPortrayalResultDTO.java @@ -0,0 +1,28 @@ +package com.epmet.dto.result.resi; + +import lombok.Data; + +/** + * @Description 烟台居民画像返参 + * @Author yzm + * @Date 2023/4/11 17:04 + */ +@Data +public class ResiPortrayalResultDTO { + /** + * 居民数量 + */ + private Integer totalResi; + /** + * 年龄分布:50岁以下:0;50-59岁:1;60-69岁:2;70-79岁:3;80岁以上:4 + * 学历分布:学历key + */ + private String code; + + /** + * 学历分布:小学及文盲/初中..... + * 年龄分布:50岁以下/50-59岁/60-69岁/70-79岁/80岁以上 + */ + private String codeName; +} + diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java index 407eb3c26c..e0e653a016 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java @@ -59,9 +59,11 @@ import com.epmet.constants.ImportTaskConstants; import com.epmet.dto.IcResiUserDTO; import com.epmet.dto.form.*; import com.epmet.dto.form.resi.IcResiPageNonDynamicFormDTO; +import com.epmet.dto.form.resi.ResiPortrayalCommonFormDTO; import com.epmet.dto.result.*; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.dto.result.resi.IcResiNonDynamicResultDTO; +import com.epmet.dto.result.resi.ResiPortrayalResultDTO; import com.epmet.enums.IcResiUserTableEnum; import com.epmet.excel.PartyMemberAgeExportExcel; import com.epmet.excel.PartyMemberEducationExportExcel; @@ -1527,4 +1529,31 @@ public class IcResiUserController implements ResultDataResolver { return new Result>().ok(icResiUserService.renHuConditionList(formDTO)); } + /** + * 烟台需求:https://modao.cc/app/DUshpXWirii6amoDQsb8OP#screen=slfbvoz5w4z9f98 + * 接口地址:http://yapi.elinkservice.cn/project/356/interface/api/cat_1370 + * 居民年龄分布饼图 + * + * @param formDTO + * @return + */ + @PostMapping("age-distribute") + public Result> queryAgeDistribute(@RequestBody ResiPortrayalCommonFormDTO formDTO) { + return new Result>().ok(icResiUserService.queryAgeDistribute(formDTO.getOrgId(), formDTO.getOrgType())); + } + + /** + * 烟台需求:https://modao.cc/app/DUshpXWirii6amoDQsb8OP#screen=slfbvoz5w4z9f98 + * 接口地址:http://yapi.elinkservice.cn/project/356/interface/api/cat_1370 + * 居民学历分布饼图 + * + * @param formDTO + * @return + */ + @PostMapping("education-distribute") + public Result> queryEducationDistribute(@LoginUser TokenDto tokenDto,@RequestBody ResiPortrayalCommonFormDTO formDTO) { + return new Result>().ok(icResiUserService.queryEducationDistribute(tokenDto.getCustomerId(),tokenDto.getUserId(),formDTO.getOrgId(), formDTO.getOrgType())); + } + + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java index 7ea3b00fbb..51510944dd 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java @@ -24,6 +24,7 @@ import com.epmet.dto.IcResiUserDTO; import com.epmet.dto.IcVolunteerPolyDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; +import com.epmet.dto.result.resi.ResiPortrayalResultDTO; import com.epmet.entity.IcResiUserEntity; import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Mapper; @@ -451,4 +452,14 @@ public interface IcResiUserDao extends BaseDao { List getImportUserList(@Param("customerId")String customerId,@Param("agencyId")String agencyId); + /** + * 烟台居民画像:按照学历分组,查询居民数量 + * @param customerId + * @param orgId + * @param orgType:agency/grid + * @return + */ + List queryEducationDistribute(@Param("customerId") String customerId, + @Param("orgId") String orgId, + @Param("orgType") String orgType); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java index c29d0cb69d..86fdc0e0d3 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java @@ -28,6 +28,7 @@ import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.dto.result.resi.IcResiNonDynamicResultDTO; +import com.epmet.dto.result.resi.ResiPortrayalResultDTO; import com.epmet.entity.IcResiUserEntity; import com.epmet.excel.support.ExportResiUserItemDTO; import com.epmet.resi.partymember.dto.partymember.IcPartyMemberDTO; @@ -542,4 +543,25 @@ public interface IcResiUserService extends BaseService { List renHuConditionList(RHZKStatisticsFormDTO formDTO); + /** + * 烟台需求:https://modao.cc/app/DUshpXWirii6amoDQsb8OP#screen=slfbvoz5w4z9f98 + * 接口地址:http://yapi.elinkservice.cn/project/356/interface/api/cat_1370 + * 居民年龄分布饼图 + * + * @param orgId + * @param orgType + * @return + */ + List queryAgeDistribute(String orgId, String orgType); + + /** + * 烟台需求:https://modao.cc/app/DUshpXWirii6amoDQsb8OP#screen=slfbvoz5w4z9f98 + * 接口地址:http://yapi.elinkservice.cn/project/356/interface/api/cat_1370 + * 居民学历分布饼图 + * + * @param orgId + * @param orgType agency/grid + * @return + */ + List queryEducationDistribute(String customerId,String staffId,String orgId, String orgType); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index d8e5ea3c17..8ac46dc8d7 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -62,6 +62,7 @@ import com.epmet.dto.result.*; import com.epmet.dto.result.demand.IcResiDemandDictDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.dto.result.resi.IcResiNonDynamicResultDTO; +import com.epmet.dto.result.resi.ResiPortrayalResultDTO; import com.epmet.entity.*; import com.epmet.enums.RenHuConditionEnum; import com.epmet.excel.EpidemicPreventionExportExcel; @@ -81,6 +82,7 @@ import com.google.common.cache.CacheBuilder; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.MapUtils; import org.apache.commons.compress.utils.Lists; import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; @@ -3890,4 +3892,62 @@ public class IcResiUserServiceImpl extends BaseServiceImpl queryAgeDistribute(String orgId, String orgType) { + // todo + + + return null; + } + + /** + * 烟台需求:https://modao.cc/app/DUshpXWirii6amoDQsb8OP#screen=slfbvoz5w4z9f98 + * 接口地址:http://yapi.elinkservice.cn/project/356/interface/api/cat_1370 + * 居民学历分布饼图 + * + * @param orgId + * @param orgType agency/grid + * @return + */ + @Override + public List queryEducationDistribute(String customerId, String staffId, String orgId, String orgType) { + if (StringUtils.isBlank(orgId)) { + orgId = CustomerStaffRedis.getStaffInfo(customerId, staffId).getAgencyId(); + orgType = OrgTypeEnum.AGENCY.getCode(); + } + // 获取文化程度字典 + DictListFormDTO dictFormDTO = new DictListFormDTO(); + dictFormDTO.setDictType(DictTypeEnum.EDUCATION.getCode()); + Result> dictResult = epmetAdminOpenFeignClient.dictList(dictFormDTO); + if (!dictResult.success() || CollectionUtils.isEmpty(dictResult.getData())) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "学历字典获取失败", "学历字典获取失败"); + } + //按照学历分组,查询居民数量 + List totalList = baseDao.queryEducationDistribute(customerId, orgId, orgType); + Map map = totalList.stream().collect(Collectors.toMap(ResiPortrayalResultDTO::getCode,ResiPortrayalResultDTO::getTotalResi)); + List resultDTOList = new ArrayList<>(); + dictResult.getData().forEach(dict -> { + ResiPortrayalResultDTO resultDTO = new ResiPortrayalResultDTO(); + resultDTO.setCode(dict.getValue()); + resultDTO.setCodeName(dict.getLabel()); + resultDTO.setTotalResi(NumConstant.ZERO); + if(MapUtils.isNotEmpty(map)&&map.containsKey(dict.getValue())){ + resultDTO.setTotalResi(map.get(dict.getValue())); + } + resultDTOList.add(resultDTO); + }); + return resultDTOList; + } + + + } diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml index 5f1104ddce..07278b80aa 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml @@ -1515,4 +1515,28 @@ + + + +