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