From 221b500a8673d3a44779674f5e17338108a2fbad Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 12 Apr 2023 12:47:44 +0800 Subject: [PATCH] =?UTF-8?q?=E7=83=9F=E5=8F=B0=E5=B1=85=E6=B0=91=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/resi/ResiPortrayalCommonFormDTO.java | 14 +++- .../result/resi/ResiPortrayalDetailDTO.java | 51 ++++++++++++ .../controller/IcResiUserController.java | 18 +++++ .../java/com/epmet/dao/IcResiUserDao.java | 15 ++++ .../com/epmet/service/IcResiUserService.java | 16 +++- .../service/impl/IcResiUserServiceImpl.java | 49 ++++++++++++ .../main/resources/mapper/IcResiUserDao.xml | 77 +++++++++++++++++-- 7 files changed, 230 insertions(+), 10 deletions(-) create mode 100644 epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/resi/ResiPortrayalDetailDTO.java 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 index 9679258c91..d5f763ceb4 100644 --- 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 @@ -1,5 +1,6 @@ package com.epmet.dto.form.resi; +import com.epmet.commons.tools.dto.form.PageFormDTO; import lombok.Data; /** @@ -8,7 +9,7 @@ import lombok.Data; * @Date 2023/4/11 17:03 */ @Data -public class ResiPortrayalCommonFormDTO { +public class ResiPortrayalCommonFormDTO extends PageFormDTO { /** * /gov/org/customeragency/agencygridtree返回的agencyId */ @@ -17,5 +18,16 @@ public class ResiPortrayalCommonFormDTO { * /gov/org/customeragency/agencygridtree返回level=grid时,orgType:grid;其他情况orgType:agency */ private String orgType; + + /** + * 查询居民列表 + * 年龄饼图/学历饼图返回的code + */ + private String code; + /** + * 学历:education + * 年龄:age + */ + private String codeType; } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/resi/ResiPortrayalDetailDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/resi/ResiPortrayalDetailDTO.java new file mode 100644 index 0000000000..a2f606cb3a --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/resi/ResiPortrayalDetailDTO.java @@ -0,0 +1,51 @@ +package com.epmet.dto.result.resi; + +import lombok.Data; + +/** + * @Description 烟台居民画像,居民列表 + * @Author yzm + * @Date 2023/4/12 10:10 + */ +@Data +public class ResiPortrayalDetailDTO { + /** + * 居民id + */ + private String icResiUserId; + /** + * 姓名 + */ + private String name; + /** + * 手机号 + */ + private String mobile; + /** + * 性别:1男;2女;0未知 + */ + private String gender; + /** + * 性别名称 + */ + private String genderName; + /** + * 身份证 + */ + private String idCard; + /** + * 年龄 + */ + private Integer age; + /** + * 学历key + */ + private String educationCode; + /** + * 学历 + */ + private String educationName; + + private String birthday; +} + 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 b06cd27b4e..15c9688fe1 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 @@ -63,6 +63,7 @@ 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.ResiPortrayalDetailDTO; import com.epmet.dto.result.resi.ResiPortrayalResultDTO; import com.epmet.enums.IcResiUserTableEnum; import com.epmet.excel.PartyMemberAgeExportExcel; @@ -1555,5 +1556,22 @@ public class IcResiUserController implements ResultDataResolver { return new Result>().ok(icResiUserService.queryEducationDistribute(tokenDto.getCustomerId(),tokenDto.getUserId(),formDTO.getOrgId(), formDTO.getOrgType())); } + /** + * 烟台需求:https://modao.cc/app/DUshpXWirii6amoDQsb8OP#screen=slfbvoz5w4z9f98 + * 居民画像,居民列表 + * + * @param tokenDto + * @param formDTO + * @return + */ + @MaskResponse(fieldNames = {"mobile", "idCard"},fieldsMaskType = {MaskResponse.MASK_TYPE_MOBILE, MaskResponse.MASK_TYPE_ID_CARD}) + @PostMapping("portrayal-list") + public Result> queryPortrayalResiList(@LoginUser TokenDto tokenDto, @RequestBody ResiPortrayalCommonFormDTO formDTO) { + return new Result>().ok(icResiUserService.queryPortrayalResiList(tokenDto.getCustomerId(), tokenDto.getUserId(), + formDTO.getPageNo(), formDTO.getPageSize(), + formDTO.getOrgId(), formDTO.getOrgType(), + formDTO.getCodeType(), + formDTO.getCode())); + } } 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 a351127c33..f69b949563 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.ResiPortrayalDetailDTO; import com.epmet.dto.result.resi.ResiPortrayalResultDTO; import com.epmet.entity.IcResiUserEntity; import org.apache.ibatis.annotations.MapKey; @@ -466,4 +467,18 @@ public interface IcResiUserDao extends BaseDao { List selectAgeAgeDistribute(@Param("customerId") String customerId, @Param("orgId") String orgId, @Param("orgType") String orgType); + + /** + * @param customerId + * @param orgId + * @param orgType + * @param codeType 学历:education 年龄:age + * @param code + * @return 居民画像,居民列表 + */ + List selectPortrayalResiList(@Param("customerId") String customerId, + @Param("orgId") String orgId, + @Param("orgType") String orgType, + @Param("codeType")String codeType, + @Param("code") String code); } 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 98b9e2acf1..c43853500a 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.ResiPortrayalDetailDTO; import com.epmet.dto.result.resi.ResiPortrayalResultDTO; import com.epmet.entity.IcResiUserEntity; import com.epmet.excel.support.ExportResiUserItemDTO; @@ -554,7 +555,7 @@ public interface IcResiUserService extends BaseService { * @param orgType * @return */ - List queryAgeDistribute(String customerId,String staffId,String orgId, String orgType); + List queryAgeDistribute(String customerId, String staffId, String orgId, String orgType); /** * 烟台需求:https://modao.cc/app/DUshpXWirii6amoDQsb8OP#screen=slfbvoz5w4z9f98 @@ -565,5 +566,16 @@ public interface IcResiUserService extends BaseService { * @param orgType agency/grid * @return */ - List queryEducationDistribute(String customerId,String staffId,String orgId, String orgType); + List queryEducationDistribute(String customerId, String staffId, String orgId, String orgType); + + /** + * 烟台需求:https://modao.cc/app/DUshpXWirii6amoDQsb8OP#screen=slfbvoz5w4z9f98 + * 居民画像,居民列表 + * + * @return + */ + PageData queryPortrayalResiList(String customerId, String staffId, + Integer pageNo, Integer pageSize, + String orgId, String orgType, + String codeType,String code); } 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 b6bd46e8fa..97867f7508 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.ResiPortrayalDetailDTO; import com.epmet.dto.result.resi.ResiPortrayalResultDTO; import com.epmet.entity.*; import com.epmet.enums.RenHuConditionEnum; @@ -3932,14 +3933,19 @@ public class IcResiUserServiceImpl extends BaseServiceImpl queryPortrayalResiList(String customerId, String staffId, + Integer pageNo, Integer pageSize, + String orgId, String orgType, + String codeType, + String code) { + // 获取文化程度字典 + 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(), "学历字典获取失败", "学历字典获取失败"); + } + Map educationMap = dictResult.getData().stream().collect(Collectors.toMap(DictListResultDTO::getValue, DictListResultDTO::getLabel)); + + if (StringUtils.isBlank(orgId)) { + orgId = CustomerStaffRedis.getStaffInfo(customerId, staffId).getAgencyId(); + orgType = OrgTypeEnum.AGENCY.getCode(); + } + PageHelper.startPage(pageNo, pageSize); + List list = baseDao.selectPortrayalResiList(customerId, orgId, orgType,codeType, code); + list.forEach(resi -> { + // 学历名称 + resi.setEducationName(educationMap.get(resi.getEducationCode())); + }); + PageInfo pageInfo = new PageInfo<>(list); + return new PageData<>(list, pageInfo.getTotal(), pageSize); + } + } 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 107980a03c..3ca4f4c8cc 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 @@ -1546,13 +1546,13 @@ from ( SELECT u.ID, - YEAR(NOW())-SUBSTR(u.ID_CARD, 7, 4) as age, + YEAR(NOW())-SUBSTR(u.BIRTHDAY, 1, 4) as age, ( - case when YEAR(NOW())-SUBSTR(u.ID_CARD, 7, 4) < 50 then '0' - when YEAR(NOW())-SUBSTR(u.ID_CARD, 7, 4) >=50 and YEAR(NOW())-SUBSTR(u.ID_CARD, 7, 4) <=59 then '1' - when YEAR(NOW())-SUBSTR(u.ID_CARD, 7, 4) >=60 and YEAR(NOW())-SUBSTR(u.ID_CARD, 7, 4) <=69 then '2' - when YEAR(NOW())-SUBSTR(u.ID_CARD, 7, 4) >=70 and YEAR(NOW())-SUBSTR(u.ID_CARD, 7, 4) <=79 then '3' - when YEAR(NOW())-SUBSTR(u.ID_CARD, 7, 4) >=80 then '4' + case when YEAR(NOW())-SUBSTR(u.BIRTHDAY, 1, 4) < 50 then '0' + when YEAR(NOW())-SUBSTR(u.BIRTHDAY, 1, 4) >=50 and YEAR(NOW())-SUBSTR(u.BIRTHDAY, 1, 4) <=59 then '1' + when YEAR(NOW())-SUBSTR(u.BIRTHDAY, 1, 4) >=60 and YEAR(NOW())-SUBSTR(u.BIRTHDAY, 1, 4) <=69 then '2' + when YEAR(NOW())-SUBSTR(u.BIRTHDAY, 1, 4) >=70 and YEAR(NOW())-SUBSTR(u.BIRTHDAY, 1, 4) <=79 then '3' + when YEAR(NOW())-SUBSTR(u.BIRTHDAY, 1, 4) >=80 then '4' end ) as `code` FROM @@ -1560,8 +1560,9 @@ WHERE u.DEL_FLAG = '0' AND u.CUSTOMER_ID = #{customerId} - AND u.ID_CARD IS NOT NULL and u.`STATUS`='0' + and u.BIRTHDAY is not null + and u.BIRTHDAY !='' AND ( u.AGENCY_ID = #{orgId} OR u.PIDS LIKE concat('%',#{orgId},'%') ) @@ -1571,4 +1572,66 @@ )temp group by temp.`code` + + +