From 00a59b93c16b24e7be77c6f1ce4866c75a2e0431 Mon Sep 17 00:00:00 2001 From: 101captain <237651143@qq.com> Date: 星期二, 19 四月 2022 16:32:21 +0800 Subject: [PATCH] 花城E+防疫修改 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java | 211 ++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 184 insertions(+), 27 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java index 468f3b1..9b78195 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java @@ -218,7 +218,7 @@ ComMngPopulationVO comMngPopulationVO = new ComMngPopulationVO(); BeanUtils.copyProperties(comMngPopulationDO, comMngPopulationVO); - + comMngPopulationVO.setCultureLevelName(PopulCultureLevelEnum.getCnDescByName(comMngPopulationVO.getCultureLevel())); // 查询户主关系信息 // List<ComHouseMemberVo> comMngFamilyInfoVOS = // populationDAO.listHouseMermberByUserId(comMngPopulationDO.getHouseId(),comMngPopulationDO.getId()); @@ -240,6 +240,7 @@ if (!comMngPopulationHouseUserDOS.isEmpty()) { comMngPopulationVO .setRelation(comMngPopulationHouseUserDOS.get(comMngPopulationHouseUserDOS.size() - 1).getRelation()); + comMngPopulationVO.setRelationName(PopulRelationEnum.getCnDescByName(comMngPopulationVO.getRelation())); } // 设置年龄 if (StringUtils.isNotEmpty(comMngPopulationVO.getBirthday())) { @@ -576,6 +577,66 @@ }); } return R.ok(iPage); + } + + @Override + public R exportOld(ComMngPopulationDTO comMngPopulationVO) { + if (StringUtils.isNotEmpty(comMngPopulationVO.getAgeStart())) { + String ageStartTime = DateUtils.getDateFormatString( + DateUtils.yearAddNum(new Date(), -(Integer.parseInt(comMngPopulationVO.getAgeStart()))), "yyyy-MM-dd"); + if (StringUtils.isNotEmpty(ageStartTime)) { + comMngPopulationVO.setAgeStartTime(ageStartTime); + } + } + + if (StringUtils.isNotEmpty(comMngPopulationVO.getAgeEnd())) { + String ageEndTime = DateUtils.getDateFormatString( + DateUtils.yearAddNum(new Date(), -(Integer.parseInt(comMngPopulationVO.getAgeEnd()))), "yyyy-MM-dd"); + if (StringUtils.isNotEmpty(ageEndTime)) { + comMngPopulationVO.setAgeEndTime(ageEndTime); + } + } + if (comMngPopulationVO.getAgeStartTime() != null && !"".equals(comMngPopulationVO.getAgeStartTime()) + && comMngPopulationVO.getAgeEndTime() != null && !"".equals(comMngPopulationVO.getAgeEndTime())) { + if (comMngPopulationVO.getAgeStartTime().equals(comMngPopulationVO.getAgeEndTime())) { + Date endAge = + DateUtils.stringToDate(comMngPopulationVO.getAgeEndTime(), new SimpleDateFormat("yyyy-MM-dd")); + String ageStartTime = DateUtils.getDateFormatString(DateUtils.yearAddNum(endAge, -1), "yyyy-MM-dd"); + if (StringUtils.isNotEmpty(ageStartTime)) { + comMngPopulationVO.setAgeStartTimeEnd(ageStartTime); + } + } else { + Date endAge = + DateUtils.stringToDate(comMngPopulationVO.getAgeEndTime(), new SimpleDateFormat("yyyy-MM-dd")); + String ageStartTime = DateUtils.getDateFormatString(DateUtils.yearAddNum(endAge, -1), "yyyy-MM-dd"); + if (StringUtils.isNotEmpty(ageStartTime)) { + comMngPopulationVO.setAgeEndTimeEnd(ageStartTime); + } + } + } + List<ComMngPopulationVO> comMngPopulationVOS=this.comMngPopulationDAO.exportOld(comMngPopulationVO); + if(!comMngPopulationVOS.isEmpty()){ + comMngPopulationVOS.forEach(populDO -> { + if (StringUtils.isNotEmpty(populDO.getBirthday())) { + populDO.setAge(AgeUtils.getAgeFromBirthTimes(populDO.getBirthday())); + populDO.setRelationName(PopulRelationEnum.getCnDescByName(populDO.getRelation())); + populDO.setCultureLevelName(PopulCultureLevelEnum.getCnDescByName(populDO.getCultureLevel())); + populDO.setPoliticalOutlookName( + PopulPoliticalOutlookEnum.getCnDescByName(populDO.getPoliticalOutlook())); + populDO.setMarriageName(PopulMarriageEnum.getCnDescByName(populDO.getMarriage())); + if(populDO.getAge()>=80&&populDO.getAge()<=89){ + populDO.setType(1); + } + if(populDO.getAge()>=90&&populDO.getAge()<=99){ + populDO.setType(2); + } + if(populDO.getAge()>=100){ + populDO.setType(3); + } + } + }); + } + return R.ok(comMngPopulationVOS); } /** @@ -6957,21 +7018,48 @@ int count=ageMap.get("age16").intValue()+ageMap.get("age27").intValue()+ageMap.get("age35").intValue() +ageMap.get("age45").intValue()+ageMap.get("age55").intValue()+ageMap.get("age55over").intValue()+ageMap.get("age65").intValue()+ageMap.get("age75").intValue(); ageStatisticsVO1.setSum(ageMap.get("age16").intValue()); - ageStatisticsVO1.setPercent(BigDecimal.valueOf(ageMap.get("age16").intValue()*100d/count).setScale(2,BigDecimal.ROUND_HALF_UP)); - ageStatisticsVO2.setSum(ageMap.get("age27").intValue()); - ageStatisticsVO2.setPercent(BigDecimal.valueOf(ageMap.get("age27").intValue()*100d/count).setScale(2,BigDecimal.ROUND_HALF_UP)); - ageStatisticsVO3.setSum(ageMap.get("age35").intValue()); - ageStatisticsVO3.setPercent(BigDecimal.valueOf(ageMap.get("age35").intValue()*100d/count).setScale(2,BigDecimal.ROUND_HALF_UP)); - ageStatisticsVO4.setSum(ageMap.get("age45").intValue()); - ageStatisticsVO4.setPercent(BigDecimal.valueOf(ageMap.get("age45").intValue()*100d/count).setScale(2,BigDecimal.ROUND_HALF_UP)); - ageStatisticsVO5.setSum(ageMap.get("age55").intValue()); - ageStatisticsVO5.setPercent(BigDecimal.valueOf(ageMap.get("age55").intValue()*100d/count).setScale(2,BigDecimal.ROUND_HALF_UP)); - ageStatisticsVO6.setSum(ageMap.get("age55over").intValue()); - ageStatisticsVO6.setPercent(BigDecimal.valueOf(ageMap.get("age55over").intValue()*100d/count).setScale(2,BigDecimal.ROUND_HALF_UP)); - ageStatisticsVO7.setSum(ageMap.get("age65").intValue()); - ageStatisticsVO7.setPercent(BigDecimal.valueOf(ageMap.get("age65").intValue()*100d/count).setScale(2,BigDecimal.ROUND_HALF_UP)); - ageStatisticsVO8.setSum(ageMap.get("age75").intValue()); - ageStatisticsVO8.setPercent(BigDecimal.valueOf(ageMap.get("age75").intValue()*100d/count).setScale(2,BigDecimal.ROUND_HALF_UP)); + if(count == 0){ + ageStatisticsVO1.setSum(0); + ageStatisticsVO2.setSum(0); + ageStatisticsVO3.setSum(0); + ageStatisticsVO4.setSum(0); + ageStatisticsVO5.setSum(0); + ageStatisticsVO6.setSum(0); + ageStatisticsVO7.setSum(0); + ageStatisticsVO8.setSum(0); + ageStatisticsVO1.setPercent(BigDecimal.ZERO); + ageStatisticsVO2.setPercent(BigDecimal.ZERO); + ageStatisticsVO3.setPercent(BigDecimal.ZERO); + ageStatisticsVO4.setPercent(BigDecimal.ZERO); + ageStatisticsVO5.setPercent(BigDecimal.ZERO); + ageStatisticsVO6.setPercent(BigDecimal.ZERO); + ageStatisticsVO7.setPercent(BigDecimal.ZERO); + ageStatisticsVO8.setPercent(BigDecimal.ZERO); + }else { + BigDecimal rate = BigDecimal.valueOf(ageMap.get("age16").intValue() * 100d).divide(BigDecimal.valueOf(count), 2, BigDecimal.ROUND_HALF_UP); + ageStatisticsVO1.setPercent(rate); + ageStatisticsVO2.setSum(ageMap.get("age27").intValue()); + rate = BigDecimal.valueOf(ageMap.get("age27").intValue() * 100d).divide(BigDecimal.valueOf(count), 2, BigDecimal.ROUND_HALF_UP); + ageStatisticsVO2.setPercent(rate); + ageStatisticsVO3.setSum(ageMap.get("age35").intValue()); + rate = BigDecimal.valueOf(ageMap.get("age35").intValue() * 100d).divide(BigDecimal.valueOf(count), 2, BigDecimal.ROUND_HALF_UP); + ageStatisticsVO3.setPercent(rate); + ageStatisticsVO4.setSum(ageMap.get("age45").intValue()); + rate = BigDecimal.valueOf(ageMap.get("age45").intValue() * 100d).divide(BigDecimal.valueOf(count), 2, BigDecimal.ROUND_HALF_UP); + ageStatisticsVO4.setPercent(rate); + ageStatisticsVO5.setSum(ageMap.get("age55").intValue()); + rate = BigDecimal.valueOf(ageMap.get("age55").intValue() * 100d).divide(BigDecimal.valueOf(count), 2, BigDecimal.ROUND_HALF_UP); + ageStatisticsVO5.setPercent(rate); + ageStatisticsVO6.setSum(ageMap.get("age55over").intValue()); + rate = BigDecimal.valueOf(ageMap.get("age55over").intValue() * 100d).divide(BigDecimal.valueOf(count), 2, BigDecimal.ROUND_HALF_UP); + ageStatisticsVO6.setPercent(rate); + ageStatisticsVO7.setSum(ageMap.get("age65").intValue()); + rate = BigDecimal.valueOf(ageMap.get("age65").intValue() * 100d).divide(BigDecimal.valueOf(count), 2, BigDecimal.ROUND_HALF_UP); + ageStatisticsVO7.setPercent(rate); + ageStatisticsVO8.setSum(ageMap.get("age75").intValue()); + rate = BigDecimal.valueOf(ageMap.get("age75").intValue() * 100d).divide(BigDecimal.valueOf(count), 2, BigDecimal.ROUND_HALF_UP); + ageStatisticsVO8.setPercent(rate); + } } agePopulationList.add(ageStatisticsVO1); @@ -7605,7 +7693,7 @@ /** * 综治后台-居民列表 - * + * * @param populationListDTO * 请求参数 * @return 居民列表 @@ -7645,7 +7733,7 @@ /** * 综治后台-删除居民 - * + * * @param ids * 居民id集合 * @return 删除结果 @@ -7687,7 +7775,7 @@ /** * 查询平台人口列表 - * + * * @param populationDTO * 请求参数 * @return 人口列表 @@ -7712,7 +7800,7 @@ /** * 综治后台-居民标签栏统计 - * + * * @return 居民统计 */ @Override @@ -7722,7 +7810,7 @@ /** * 综治后台-居民导出查询居民数据 - * + * * @param populationExportDTO * 请求参数 * @return 导出结果 @@ -7770,7 +7858,7 @@ /** * 综治后台-居民管理小区列表 - * + * * @param name * 小区名字 * @return 小区列表 @@ -7889,7 +7977,11 @@ count= comMngPopulationDAO.getSpecialStatisticsByLabel(userTag.getTagName(),communityId); } specialStatisticsVO.setSum(count); - specialStatisticsVO.setPercent(BigDecimal.valueOf(specialStatisticsVO.getSum()*100d/countAll).setScale(2,BigDecimal.ROUND_HALF_UP)); + if(countAll == 0){ + specialStatisticsVO.setPercent(BigDecimal.ZERO); + }else{ + specialStatisticsVO.setPercent(BigDecimal.valueOf(specialStatisticsVO.getSum()*100d/countAll).setScale(2,BigDecimal.ROUND_HALF_UP)); + } otherSpecialVO1.setSum(otherSpecialVO1.getSum()+count); specialStatisticsVOList.add(specialStatisticsVO); } @@ -7901,10 +7993,16 @@ } }); } - otherSpecialVO.setPercent(BigDecimal.valueOf(otherSpecialVO.getSum()*100d/countAll).setScale(2,BigDecimal.ROUND_HALF_UP)); + if(countAll == 0){ + otherSpecialVO.setPercent(BigDecimal.ZERO); + otherSpecialVO1.setPercent(BigDecimal.ZERO); + }else{ + otherSpecialVO.setPercent(BigDecimal.valueOf(otherSpecialVO.getSum()*100d/countAll).setScale(2,BigDecimal.ROUND_HALF_UP)); + otherSpecialVO1.setPercent(BigDecimal.valueOf(otherSpecialVO1.getSum()*100d/countAll).setScale(2,BigDecimal.ROUND_HALF_UP)); + } specialStatisticsVOList.add(otherSpecialVO); otherSpecialVO1.setSum(countAll-otherSpecialVO1.getSum()); - otherSpecialVO1.setPercent(BigDecimal.valueOf(otherSpecialVO1.getSum()*100d/countAll).setScale(2,BigDecimal.ROUND_HALF_UP)); + specialStatisticsVOList.add(otherSpecialVO1); indexInfo.setSpecialStatisticsVOList(specialStatisticsVOList); // 查询网格化治理 @@ -7981,6 +8079,65 @@ indexInfo.setBigScreenGridStaticsReturn(setData(bigscreenGridsGovernanceStatisticsVO)); return R.ok(indexInfo); + } + + /** + * 历史数据人员类型填充 + * @param list + * @param communityId + * @param userId + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public R filledPopulationPersonType(List<ComMngPopulationServeExcelVO> list, Long communityId, Long userId) { + // 需要修改的人口集合 + List<ComMngPopulationDO> updateList = new ArrayList<>(); + log.info("开始处理导入数据"); + List<ComMngPopulationMistakeExcelVO> mistakes = new ArrayList<>(); + try { + // 查询所有人口数据放入HashMap中 + List<ComMngPopulationDO> populationList = this.baseMapper.selectList(null); + HashMap<String, Object> populationMap = new HashMap<>(); + populationList.forEach(population -> { + String key = population.getCardNo(); + populationMap.put(key, population); + }); + for (ComMngPopulationServeExcelVO vo : list) { + // 判断实有人口是否已存在 + log.info("开始查询实有人口是否已存在"); + ComMngPopulationDO populationDO = null; + String populationKey = vo.getCardNo(); + if (!isOnly(populationKey, populationMap)) { + // 存在实有人口信息,则更新人员类型 + populationDO = (ComMngPopulationDO)populationMap.get(populationKey); + Integer personType = vo.getPersonType(); + if (nonNull(personType)) { + populationDO.setPersonType(personType.toString()); + } + updateList.add(populationDO); + } else { + // 不存在实有人口,返回 + ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO(); + BeanUtils.copyProperties(vo, mistake); + setMistake(mistake, vo); + mistake.setMistake("人口信息不存在,请下载实有人口模板导入"); + mistakes.add(mistake); + } + } + } catch (Exception e) { + log.info("出现错误,错误原因:" + e.getMessage()); + } + if (!updateList.isEmpty()) { + log.info("执行数据库更新人口"); + this.baseMapper.updateAll(updateList); + log.info("数据库更新人口完成"); + } + if (!mistakes.isEmpty()) { + log.info("返回错误数据"); + return R.fail(mistakes); + } + return R.ok(mistakes); } private void setMistake(ComMngPopulationMistakeExcelVO mvo, ComMngPopulationServeExcelVO vo) { @@ -8212,7 +8369,7 @@ /** * 判重方法 - * + * * @param key * 主键 * @param hashMap @@ -8322,4 +8479,4 @@ return bigScreenGridStaticsReturn; } -} \ No newline at end of file +} -- Gitblit v1.7.1