101captain
2022-05-19 19f39f95190ae02a90b07c97bc9e5cb54de383a4
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())) {
@@ -578,6 +579,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);
    }
    /**
     * 删除实有人口
     *
@@ -746,33 +807,45 @@
                log.info("查询小区街路巷是否存在完成");
                log.info("开始查询房屋是否存在");
                // 先判断房屋是否存在
                ComMngPopulationHouseDO populationHouseDO = null;
                String houseKey =
                    communityId + comMngVillageDO.getVillageId() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
                if (isOnly(houseKey, houseMap)) {
                    if (!houseList.isEmpty()) {
                        for (ComMngPopulationHouseDO house : houseList) {
                            if (house.getVillageId().equals(comMngVillageDO.getVillageId())
                                && house.getCommunityId().equals(communityId) && house.getFloor().equals(vo.getFloor())
                                && house.getUnitNo().equals(vo.getUnitNo())
                                && house.getHouseNo().equals(vo.getHouseNo())) {
                                populationHouseDO = house;
                                break;
                // 先判断房屋是否存在
                if(StringUtils.isNotEmpty(vo.getFloor())&&StringUtils.isNotEmpty(vo.getHouseNo())&&StringUtils.isNotEmpty(vo.getUnitNo())){
                    String houseKey =
                            communityId + comMngVillageDO.getVillageId() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
                    if (isOnly(houseKey, houseMap)) {
                        if (!houseList.isEmpty()) {
                            for (ComMngPopulationHouseDO house : houseList) {
                                if (house.getVillageId().equals(comMngVillageDO.getVillageId())
                                        && house.getCommunityId().equals(communityId) && house.getFloor().equals(vo.getFloor())
                                        && house.getUnitNo().equals(vo.getUnitNo())
                                        && house.getHouseNo().equals(vo.getHouseNo())) {
                                    populationHouseDO = house;
                                    break;
                                }
                            }
                        }
                        if (populationHouseDO == null) {
                            // 房屋信息不存在建立房屋信息
                            populationHouseDO =
                                    savePopulationHouse(vo, comMngVillageDO, communityId, areaPath, populationActVO.getName());
                            houseList.add(populationHouseDO);
                        }
                    } else {
                        populationHouseDO = (ComMngPopulationHouseDO)houseMap.get(houseKey);
                    }
                    if (populationHouseDO == null) {
                        // 房屋信息不存在建立房屋信息
                        populationHouseDO =
                            savePopulationHouse(vo, comMngVillageDO, communityId, areaPath, populationActVO.getName());
                        houseList.add(populationHouseDO);
                    }
                } else {
                    populationHouseDO = (ComMngPopulationHouseDO)houseMap.get(houseKey);
                    vo.setHouseId(populationHouseDO.getId());
                    log.info("查询房屋是否存在完成");
                }else {
                    ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
                    BeanUtils.copyProperties(vo, mistake);
                    setMistake(mistake, vo);
                    mistake.setMistake("房屋数据填报不完整" );
                    mistakes.add(mistake);
                    log.info("房屋数据填报不完整");
                    continue;
                }
                vo.setHouseId(populationHouseDO.getId());
                log.info("查询房屋是否存在完成");
                if (StringUtils.isEmpty(vo.getName()) && StringUtils.isEmpty(vo.getCardNo())) {
                    // 空户处理完房屋信息,直接返回
@@ -782,7 +855,10 @@
                // 判断实有人口是否已存在
                log.info("开始查询实有人口是否已存在");
                ComMngPopulationDO populationDO = null;
                String populationKey = vo.getCardNo();
                String populationKey = cardNoAES;
                if(vo.getCardNo().equals("510402197505075515")){
                    System.out.println("111");
                }
                if (!isOnly(populationKey, populationMap)) {
                    // 存在实有人口信息,则更新
                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
@@ -792,7 +868,7 @@
                    // 不存在实有人口,则新增
                    populationDO = savePopulationDO(vo, populationActVO, comMngVillageDO, userId);
                    saveList.add(populationDO);
                    populationMap.put(populationDO.getCardNo(),populationDO);
                    populationMap.put(populationKey,populationDO);
                }
                log.info("查询实有人口是否已存在完成");
@@ -836,6 +912,7 @@
                        }
                        cpopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
                        cpopulationCommunityTagsDO.setCreateBy(userId);
                        populationCommunityMap.put(populationCommunityKey,cpopulationCommunityTagsDO);
                        savePopulationCommunityList.add(cpopulationCommunityTagsDO);
                    }else {
                        // 实有人口存在于当前社区,则更新
@@ -881,7 +958,7 @@
        }
        if (!updateList.isEmpty()) {
            log.info("执行数据库更新人口");
            this.baseMapper.updateAll(updateList);
            this.updateBatchById(updateList);
            // this.updateBatchById(updateList);
            log.info("数据库更新人口完成");
        }
@@ -897,7 +974,7 @@
        }
        if (!updatePopulationCommunityList.isEmpty()) {
            log.info("执行数据库更新人口社区关系");
            comMngPopulationCommunityTagsDAO.updateAll(updatePopulationCommunityList);
            comMngPopulationCommunityTagsService.updateBatchById(updatePopulationCommunityList);
            log.info("数据库更新人口社区关系完成");
        }
        log.info("执行数据库导入完成");
@@ -6357,7 +6434,11 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R deletePopulations(List<Long> ids, Long communityId) {
        comMngPopulationCommunityTagsDAO.deletePopulationRelation(ids,communityId);
        for(Long id:ids){
            comMngPopulationCommunityTagsDAO.delete(new QueryWrapper<ComMngPopulationCommunityTagsDO>().lambda().eq(ComMngPopulationCommunityTagsDO::getPopulationId,id));
            comMngPopulationDAO.deleteById(id);
            comMngPopulationHouseUserDAO.delete(new QueryWrapper<ComMngPopulationHouseUserDO>().lambda().eq(ComMngPopulationHouseUserDO::getPopulId,id));
        }
        return R.ok();
    }
@@ -6957,21 +7038,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 +7713,7 @@
    /**
     * 综治后台-居民列表
     *
     *
     * @param populationListDTO
     *            请求参数
     * @return 居民列表
@@ -7645,7 +7753,7 @@
    /**
     * 综治后台-删除居民
     *
     *
     * @param ids
     *            居民id集合
     * @return 删除结果
@@ -7687,7 +7795,7 @@
    /**
     * 查询平台人口列表
     *
     *
     * @param populationDTO
     *            请求参数
     * @return 人口列表
@@ -7712,7 +7820,7 @@
    /**
     * 综治后台-居民标签栏统计
     *
     *
     * @return 居民统计
     */
    @Override
@@ -7722,7 +7830,7 @@
    /**
     * 综治后台-居民导出查询居民数据
     *
     *
     * @param populationExportDTO
     *            请求参数
     * @return 导出结果
@@ -7770,7 +7878,7 @@
    /**
     * 综治后台-居民管理小区列表
     *
     *
     * @param name
     *            小区名字
     * @return 小区列表
@@ -7889,7 +7997,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 +8013,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);
        // 查询网格化治理
@@ -8017,7 +8135,6 @@
                    if (nonNull(personType)) {
                        populationDO.setPersonType(personType.toString());
                    }
                    populationDO.setUpdateBy(userId);
                    updateList.add(populationDO);
                } else {
                    // 不存在实有人口,返回
@@ -8272,7 +8389,7 @@
    /**
     * 判重方法
     *
     *
     * @param key
     *            主键
     * @param hashMap
@@ -8382,4 +8499,4 @@
        return bigScreenGridStaticsReturn;
    }
}
}