Browse Source

烟台:学历统计

dev
yinzuomei 2 years ago
parent
commit
72830128d6
  1. 21
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/resi/ResiPortrayalCommonFormDTO.java
  2. 28
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/resi/ResiPortrayalResultDTO.java
  3. 29
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java
  4. 11
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java
  5. 22
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java
  6. 60
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java
  7. 24
      epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

21
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其他情况orgTypeagency
*/
private String orgType;
}

28
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岁以下050-59岁160-69岁270-79岁380岁以上4
* 学历分布学历key
*/
private String code;
/**
* 学历分布小学及文盲/初中.....
* 年龄分布50岁以下/50-59岁/60-69岁/70-79岁/80岁以上
*/
private String codeName;
}

29
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.IcResiUserDTO;
import com.epmet.dto.form.*; import com.epmet.dto.form.*;
import com.epmet.dto.form.resi.IcResiPageNonDynamicFormDTO; import com.epmet.dto.form.resi.IcResiPageNonDynamicFormDTO;
import com.epmet.dto.form.resi.ResiPortrayalCommonFormDTO;
import com.epmet.dto.result.*; import com.epmet.dto.result.*;
import com.epmet.dto.result.demand.OptionDTO; import com.epmet.dto.result.demand.OptionDTO;
import com.epmet.dto.result.resi.IcResiNonDynamicResultDTO; import com.epmet.dto.result.resi.IcResiNonDynamicResultDTO;
import com.epmet.dto.result.resi.ResiPortrayalResultDTO;
import com.epmet.enums.IcResiUserTableEnum; import com.epmet.enums.IcResiUserTableEnum;
import com.epmet.excel.PartyMemberAgeExportExcel; import com.epmet.excel.PartyMemberAgeExportExcel;
import com.epmet.excel.PartyMemberEducationExportExcel; import com.epmet.excel.PartyMemberEducationExportExcel;
@ -1527,4 +1529,31 @@ public class IcResiUserController implements ResultDataResolver {
return new Result<List<RHZKStatisticsResultDTO>>().ok(icResiUserService.renHuConditionList(formDTO)); return new Result<List<RHZKStatisticsResultDTO>>().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<List<ResiPortrayalResultDTO>> queryAgeDistribute(@RequestBody ResiPortrayalCommonFormDTO formDTO) {
return new Result<List<ResiPortrayalResultDTO>>().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<List<ResiPortrayalResultDTO>> queryEducationDistribute(@LoginUser TokenDto tokenDto,@RequestBody ResiPortrayalCommonFormDTO formDTO) {
return new Result<List<ResiPortrayalResultDTO>>().ok(icResiUserService.queryEducationDistribute(tokenDto.getCustomerId(),tokenDto.getUserId(),formDTO.getOrgId(), formDTO.getOrgType()));
}
} }

11
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.IcVolunteerPolyDTO;
import com.epmet.dto.form.*; import com.epmet.dto.form.*;
import com.epmet.dto.result.*; import com.epmet.dto.result.*;
import com.epmet.dto.result.resi.ResiPortrayalResultDTO;
import com.epmet.entity.IcResiUserEntity; import com.epmet.entity.IcResiUserEntity;
import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -451,4 +452,14 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
List<IcResiUserDTO> getImportUserList(@Param("customerId")String customerId,@Param("agencyId")String agencyId); List<IcResiUserDTO> getImportUserList(@Param("customerId")String customerId,@Param("agencyId")String agencyId);
/**
* 烟台居民画像按照学历分组查询居民数量
* @param customerId
* @param orgId
* @param orgType:agency/grid
* @return
*/
List<ResiPortrayalResultDTO> queryEducationDistribute(@Param("customerId") String customerId,
@Param("orgId") String orgId,
@Param("orgType") String orgType);
} }

22
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.*;
import com.epmet.dto.result.demand.OptionDTO; import com.epmet.dto.result.demand.OptionDTO;
import com.epmet.dto.result.resi.IcResiNonDynamicResultDTO; import com.epmet.dto.result.resi.IcResiNonDynamicResultDTO;
import com.epmet.dto.result.resi.ResiPortrayalResultDTO;
import com.epmet.entity.IcResiUserEntity; import com.epmet.entity.IcResiUserEntity;
import com.epmet.excel.support.ExportResiUserItemDTO; import com.epmet.excel.support.ExportResiUserItemDTO;
import com.epmet.resi.partymember.dto.partymember.IcPartyMemberDTO; import com.epmet.resi.partymember.dto.partymember.IcPartyMemberDTO;
@ -542,4 +543,25 @@ public interface IcResiUserService extends BaseService<IcResiUserEntity> {
List<RHZKStatisticsResultDTO> renHuConditionList(RHZKStatisticsFormDTO formDTO); List<RHZKStatisticsResultDTO> 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<ResiPortrayalResultDTO> 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<ResiPortrayalResultDTO> queryEducationDistribute(String customerId,String staffId,String orgId, String orgType);
} }

60
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.IcResiDemandDictDTO;
import com.epmet.dto.result.demand.OptionDTO; import com.epmet.dto.result.demand.OptionDTO;
import com.epmet.dto.result.resi.IcResiNonDynamicResultDTO; import com.epmet.dto.result.resi.IcResiNonDynamicResultDTO;
import com.epmet.dto.result.resi.ResiPortrayalResultDTO;
import com.epmet.entity.*; import com.epmet.entity.*;
import com.epmet.enums.RenHuConditionEnum; import com.epmet.enums.RenHuConditionEnum;
import com.epmet.excel.EpidemicPreventionExportExcel; import com.epmet.excel.EpidemicPreventionExportExcel;
@ -81,6 +82,7 @@ import com.google.common.cache.CacheBuilder;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.compress.utils.Lists; import org.apache.commons.compress.utils.Lists;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -3890,4 +3892,62 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
return fzBig.multiply(NumConstant.ONE_HUNDRED_DECIMAL).divide(totalBig, NumConstant.TWO, BigDecimal.ROUND_HALF_UP); return fzBig.multiply(NumConstant.ONE_HUNDRED_DECIMAL).divide(totalBig, NumConstant.TWO, BigDecimal.ROUND_HALF_UP);
} }
/**
* 烟台需求https://modao.cc/app/DUshpXWirii6amoDQsb8OP#screen=slfbvoz5w4z9f98
* 接口地址http://yapi.elinkservice.cn/project/356/interface/api/cat_1370
* 居民年龄分布饼图
*
* @param orgId
* @param orgType
* @return
*/
@Override
public List<ResiPortrayalResultDTO> 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<ResiPortrayalResultDTO> 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<List<DictListResultDTO>> dictResult = epmetAdminOpenFeignClient.dictList(dictFormDTO);
if (!dictResult.success() || CollectionUtils.isEmpty(dictResult.getData())) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "学历字典获取失败", "学历字典获取失败");
}
//按照学历分组,查询居民数量
List<ResiPortrayalResultDTO> totalList = baseDao.queryEducationDistribute(customerId, orgId, orgType);
Map<String,Integer> map = totalList.stream().collect(Collectors.toMap(ResiPortrayalResultDTO::getCode,ResiPortrayalResultDTO::getTotalResi));
List<ResiPortrayalResultDTO> 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;
}
} }

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

@ -1515,4 +1515,28 @@
</select> </select>
<!-- 烟台居民画像:按照学历分组,查询居民数量-->
<select id="queryEducationDistribute" parameterType="map" resultType="com.epmet.dto.result.resi.ResiPortrayalResultDTO">
SELECT
r.CULTURE AS `code`,
count( r.id ) AS totalResi
FROM
ic_resi_user r
WHERE
r.DEL_FLAG = '0'
AND r.CUSTOMER_ID = #{customerId}
<if test='orgType == "agency" '>
AND ( r.AGENCY_ID = #{orgId} OR r.PIDS LIKE concat('%',#{orgId},'%') )
</if>
<if test='orgType == "grid" '>
and r.GRID_ID = #{orgId}
</if>
AND r.`STATUS` = '0'
AND r.CULTURE IS NOT NULL
AND r.CULTURE != ''
GROUP BY
r.CULTURE
</select>
</mapper> </mapper>

Loading…
Cancel
Save