From c6f7ec51e53eb6ec344afc8428a2511516fbbc0d Mon Sep 17 00:00:00 2001 From: huanghongfa <huanghongfa123456> Date: 星期三, 13 十月 2021 12:02:27 +0800 Subject: [PATCH] 实有房屋-楼栋列表接口开发 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActBuildingServiceImpl.java | 178 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 176 insertions(+), 2 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActBuildingServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActBuildingServiceImpl.java index 8c25650..ee1b044 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActBuildingServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActBuildingServiceImpl.java @@ -3,13 +3,23 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Map; import javax.annotation.Resource; +import cn.hutool.core.util.IdcardUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.panzhihua.common.enums.PopulPoliticalOutlookEnum; import com.panzhihua.common.model.dtos.community.building.admin.PageBuildingListDto; -import com.panzhihua.common.model.vos.community.building.admin.PageBuildingListVo; +import com.panzhihua.common.model.dtos.community.building.admin.PageBuildingUnitHouseListDto; +import com.panzhihua.common.model.vos.community.ComMngVillageVO; +import com.panzhihua.common.model.vos.community.building.admin.BuildingUnitHouseListAdminVo; +import com.panzhihua.common.model.vos.community.building.admin.PageBuildingListAdminVo; +import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseDetailVO; +import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseVO; +import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingVO; +import com.panzhihua.common.model.vos.grid.PopulationListVO; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -124,7 +134,7 @@ */ @Override public R pageBuildingAdmin(PageBuildingListDto pageBuildingListDto){ - IPage<PageBuildingListVo> pageBuildingList = this.baseMapper.pageBuildingAdmin( + IPage<PageBuildingListAdminVo> pageBuildingList = this.baseMapper.pageBuildingAdmin( new Page(pageBuildingListDto.getPageNum(),pageBuildingListDto.getPageSize()),pageBuildingListDto); return R.ok(pageBuildingList); } @@ -138,4 +148,168 @@ public R buildingListHeaderStatisticsAdmin(Long communityId){ return R.ok(this.baseMapper.buildingListHeaderStatisticsAdmin(communityId)); } + + /** + * 社区后台-查询楼栋详情 + * @param id 楼栋id + * @return 楼栋详情 + */ + @Override + public R detailBuildAdmin(Long id){ + return R.ok(this.baseMapper.detailBuildAdmin(id)); + } + + /** + * 查询楼栋下单元列表 + * @param id 楼栋id + * @return 单元列表 + */ + @Override + public R buildingUnitListAdmin(Long id){ + //查询该楼栋信息 + ComMngBuildingDO buildingDO = this.baseMapper.selectById(id); + if(buildingDO == null){ + return R.fail("未查询到该楼栋信息"); + } + List<ComMngVillageBuildingVO> buildList = new ArrayList<>(); + if(StringUtils.isNotEmpty(buildingDO.getName())){ + buildList = this.baseMapper.buildingUnitList(buildingDO.getVillageId(),buildingDO.getName()); + buildList.forEach(villageBuilding -> { + if (!villageBuilding.getFloor().contains("栋")) { + villageBuilding.setFloorString(villageBuilding.getFloor() + "栋"); + } else { + villageBuilding.setFloorString(villageBuilding.getFloor()); + } + if (!villageBuilding.getUnitNo().contains("单元")) { + villageBuilding.setUnitNoString(villageBuilding.getUnitNo() + "单元"); + } else { + villageBuilding.setUnitNoString(villageBuilding.getUnitNo()); + } + }); + } + return R.ok(buildList); + } + + /** + * 查询楼栋单元下房屋列表 + * @param unitHouseListDto 请求参数 + * @return 单元列表 + */ + @Override + public R buildingUnitHouseListAdmin(PageBuildingUnitHouseListDto unitHouseListDto){ + + BuildingUnitHouseListAdminVo houseListAdminVo = new BuildingUnitHouseListAdminVo(); + //查询该楼栋信息 + ComMngBuildingDO buildingDO = this.baseMapper.selectById(unitHouseListDto.getId()); + if(buildingDO == null){ + return R.fail("未查询到该楼栋信息"); + } + unitHouseListDto.setVillageId(buildingDO.getVillageId()); + unitHouseListDto.setFloor(buildingDO.getName()); + List<ComMngVillageBuildingHouseVO> buildHouseList = new ArrayList<>(); + if(StringUtils.isNotEmpty(buildingDO.getName())){ + IPage<ComMngVillageBuildingHouseVO> buildingHousePage = this.baseMapper.getBuildingUnitHouseList(new Page(unitHouseListDto.getPageNum(),unitHouseListDto.getPageSize()),unitHouseListDto); + buildingHousePage.getRecords().forEach(house -> { + if(StringUtils.isNotEmpty(house.getHouseNo())){ + boolean result = house.getHouseNo().matches("[0-9]+"); + if (result) {// 该字段为纯数字 + if (house.getHouseNo().length() == 4) { + house.setBuildingNum(house.getHouseNo().substring(0, 2).replaceAll("^(0+)", "")); + } else if (house.getHouseNo().length() == 3) { + house.setBuildingNum(house.getHouseNo().substring(0, 1).replaceAll("^(0+)", "")); + } + } else { + house.setBuildingNum("-"); + } + } else { + house.setBuildingNum("-"); + } + }); + buildHouseList = buildingHousePage.getRecords(); + + //查询统计数据 + Map<String,Object> statisticsMap = this.baseMapper.getBuildingUnitHouseStatistics(buildingDO.getVillageId(),buildingDO.getName(),unitHouseListDto.getUnit()); + if(statisticsMap != null){ + houseListAdminVo.setHouseNum(Integer.parseInt(statisticsMap.get("houseNum").toString())); + houseListAdminVo.setLiveTotal(Integer.parseInt(statisticsMap.get("liveTotal").toString())); + houseListAdminVo.setLeaseTotal(Integer.parseInt(statisticsMap.get("leaseTotal").toString())); + houseListAdminVo.setVacantNum(Integer.parseInt(statisticsMap.get("vacantNum").toString())); + } + } + houseListAdminVo.setHouseList(buildHouseList); + + return R.ok(houseListAdminVo); + } + + @Override + public R buildingUnitHouseDetailAdmin(Long houseId,Long communityId){ + ComMngVillageBuildingHouseDetailVO buildingHouseDetailVO = + this.baseMapper.buildingUnitHouseDetailAdmin(houseId); + if (buildingHouseDetailVO != null) { + + // 转换楼层数 + String houseNo = buildingHouseDetailVO.getHouseNo(); + boolean result = houseNo.matches("[0-9]+"); + if (result) {// 该字段为纯数字 + if (houseNo.length() == 4) { + buildingHouseDetailVO.setBuildingNum(houseNo.substring(0, 2).replaceAll("^(0+)", "")); + } else if (houseNo.length() == 3) { + buildingHouseDetailVO.setBuildingNum(houseNo.substring(0, 1).replaceAll("^(0+)", "")); + } + } else { + buildingHouseDetailVO.setBuildingNum("-"); + } + + // 查询该房屋的户主信息 + List<PopulationListVO> householderList = + this.baseMapper.getGridVillageBuildingPopulationList(buildingHouseDetailVO.getId(),communityId, 1, null); + if (!householderList.isEmpty()) { + householderList.forEach(householder -> { + if(householder.getPoliticalOutlook() != null){ + householder.setOutlook(PopulPoliticalOutlookEnum.getCnDescByName(householder.getPoliticalOutlook())); + }else{ + householder.setOutlook("暂无"); + } + try { + Integer age = IdcardUtil.getAgeByIdCard(householder.getCardNo()); + householder.setAge(age); + } catch (Exception e) { + log.error("身份证号码转换年龄失败,人员id:" + householder.getId()); + } + }); + buildingHouseDetailVO.setHouseholderList(householderList); + } + // 查询该房屋的住户信息 + List<PopulationListVO> populationList = + this.baseMapper.getGridVillageBuildingPopulationList(buildingHouseDetailVO.getId(),communityId, null, null); + if (!populationList.isEmpty()) { + populationList.forEach(population -> { + if(population.getPoliticalOutlook() != null){ + population.setOutlook(PopulPoliticalOutlookEnum.getCnDescByName(population.getPoliticalOutlook())); + }else{ + population.setOutlook("暂无"); + } + try { + Integer age = IdcardUtil.getAgeByIdCard(population.getCardNo()); + population.setAge(age); + } catch (Exception e) { + log.error("身份证号码转换年龄失败,人员id:" + population.getId()); + } + }); + buildingHouseDetailVO.setPopulationList(populationList); + } + } + return R.ok(buildingHouseDetailVO); + } + + @Override + public R buildingVillageListAdmin(Long communityId){ + List<ComMngVillageVO> villageList = this.baseMapper.buildingVillageListAdmin(communityId); + villageList.forEach(village -> { + if(StringUtils.isEmpty(village.getName())){ + village.setName(village.getAlley() + village.getHouseNum()); + } + }); + return R.ok(villageList); + } } -- Gitblit v1.7.1