From 43f0578e80af82ecae6c61b51bd0539c6b960603 Mon Sep 17 00:00:00 2001 From: puhanshu <a9236326> Date: 星期二, 16 八月 2022 19:08:32 +0800 Subject: [PATCH] 服务范围优化 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActBuildingServiceImpl.java | 629 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 589 insertions(+), 40 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 cfc284c..f06b13b 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 @@ -1,6 +1,31 @@ package com.panzhihua.service_community.service.impl; -import com.alibaba.fastjson.JSON; +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.PopulIsOksEnum; +import com.panzhihua.common.enums.PopulPoliticalOutlookEnum; +import com.panzhihua.common.model.dtos.community.building.admin.*; +import com.panzhihua.common.model.vos.community.ComMngVillageVO; +import com.panzhihua.common.model.vos.community.ComPopulationActVO; +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 com.panzhihua.service_community.dao.*; +import com.panzhihua.service_community.model.dos.*; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Lists; @@ -9,29 +34,16 @@ import com.panzhihua.common.model.vos.community.ComMngPopulationImportErrorVO; import com.panzhihua.common.utlis.Snowflake; import com.panzhihua.common.utlis.StringUtils; -import com.panzhihua.service_community.dao.ComActDAO; -import com.panzhihua.service_community.dao.ComActVillageDAO; -import com.panzhihua.service_community.dao.ComMngBuildingDAO; -import com.panzhihua.service_community.model.dos.ComActDO; -import com.panzhihua.service_community.model.dos.ComMngBuildingDO; -import com.panzhihua.service_community.model.dos.ComMngVillageDO; -import com.panzhihua.service_community.model.dos.GridBuildRelationDO; import com.panzhihua.service_community.service.ComActBuildingService; import com.panzhihua.service_community.service.GridBuildRelationService; -import org.springframework.beans.BeanUtils; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; /** * @author xyh * @date 2021/6/10 13:46 */ @Service -public class ComActBuildingServiceImpl extends ServiceImpl<ComMngBuildingDAO, ComMngBuildingDO> implements ComActBuildingService { +public class ComActBuildingServiceImpl extends ServiceImpl<ComMngBuildingDAO, ComMngBuildingDO> + implements ComActBuildingService { @Resource private ComActVillageDAO comActVillageDAO; @@ -39,54 +51,70 @@ private ComActDAO comActDAO; @Resource private GridBuildRelationService gridBuildRelationService; + @Resource + private ComMngPopulationHouseDAO comMngPopulationHouseDAO; + @Resource + private ComMngPopulationDAO comMngPopulationDAO; + @Resource + private ComMngPopulationHouseUserDAO comMngPopulationHouseUserDAO; @Override public R batchSaveBuilding(List<ComMngBuildingExcelVO> newVoList, Long communityId) { ArrayList<ComMngBuildingDO> list = Lists.newArrayList(); List<GridBuildRelationDO> keyList = new ArrayList<>(); List<ComMngPopulationImportErrorVO> errorList = new ArrayList<>(); - ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO(); - importErrorVO.setErrorMsg("重复楼栋"); - StringBuilder sb = new StringBuilder(); - for(ComMngBuildingExcelVO vo:newVoList){ - ComMngVillageDO comMngVillageDO = comActVillageDAO.selectOne(new QueryWrapper<ComMngVillageDO>().eq("alley",vo.getAlley()).eq("house_num",vo.getDoorNo()).eq("community_id",communityId)); - if(comMngVillageDO == null){ + for (ComMngBuildingExcelVO vo : newVoList) { + ComMngVillageDO comMngVillageDO = comActVillageDAO.selectOne(new QueryWrapper<ComMngVillageDO>() + .eq("alley", vo.getAlley()).eq("house_num", vo.getDoorNo()).eq("community_id", communityId)); + if (comMngVillageDO == null) { + ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO(); + BeanUtils.copyProperties(vo,importErrorVO); + importErrorVO.setErrorMsg("该社区不存在此街路巷"); + errorList.add(importErrorVO); continue; } - vo.setName(vo.getName().replace("栋","")); - List<ComMngBuildingDO> buildingDOList = this.baseMapper.selectList(new QueryWrapper<ComMngBuildingDO>().eq("street_id",comMngVillageDO.getStreetId()).eq("act_id",communityId).eq("village_id",comMngVillageDO.getVillageId()).eq("name",vo.getName())); - if(buildingDOList.size() > 0){ - sb.append("街路巷:").append(vo.getAlley()).append(",门牌号:").append(vo.getDoorNo()).append(",楼栋号:").append(vo.getName()).append(";"); + vo.setName(vo.getName().replace("栋", "")); + List<ComMngBuildingDO> buildingDOList = this.baseMapper.selectList(new QueryWrapper<ComMngBuildingDO>() + .eq("act_id", communityId).eq("village_id", comMngVillageDO.getVillageId()).eq("name", vo.getName())); + if (buildingDOList.size() > 0) { + ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO(); + BeanUtils.copyProperties(vo,importErrorVO); + importErrorVO.setErrorMsg("该楼栋已存在"); + errorList.add(importErrorVO); continue; } ComMngBuildingDO comMngBuildingDO = new ComMngBuildingDO(); - BeanUtils.copyProperties(vo,comMngBuildingDO); + BeanUtils.copyProperties(vo, comMngBuildingDO); comMngBuildingDO.setActId(comMngVillageDO.getCommunityId()); comMngBuildingDO.setStreetId(comMngVillageDO.getStreetId()); comMngBuildingDO.setVillageId(comMngVillageDO.getVillageId()); +// comMngBuildingDO.setElevatorTotal(vo.getElevatorTotal()); ComActDO actDO = comActDAO.selectById(comMngVillageDO.getCommunityId()); StringBuilder path = new StringBuilder(); - path.append(vo.getAlley()).append(">").append(actDO.getName()).append(comMngVillageDO.getName()).append(">").append(vo.getName()); + path.append(vo.getAlley()).append(">").append(actDO.getName()).append(comMngVillageDO.getName()).append(">") + .append(vo.getName()); comMngBuildingDO.setPath(path.toString()); - comMngBuildingDO.setGridId(vo.getGridId()); +// comMngBuildingDO.setGridId(vo.getGridId()); list.add(comMngBuildingDO); - GridBuildRelationDO gridBuildRelation = getGridBuildRelationDO(communityId, comMngVillageDO.getStreetId(), vo, comMngBuildingDO); + GridBuildRelationDO gridBuildRelation = + getGridBuildRelationDO(communityId, comMngVillageDO.getStreetId(), vo, comMngBuildingDO); keyList.add(gridBuildRelation); } - if(list.size()>0){ + if (list.size() > 0) { this.saveBatch(list); + if(keyList.size() > 0){ + gridBuildRelationService.saveBatchGridBuildRelation(keyList); + } } - if(sb.length() > 0 && !StringUtils.isEmpty(sb.toString())){ - errorList.add(importErrorVO); - return R.fail(JSON.toJSONString(errorList)); + if (errorList.size() > 0) { + return R.fail(errorList); } - gridBuildRelationService.saveBatchGridBuildRelation(keyList); - this.saveBatch(list); return R.ok(); } - public GridBuildRelationDO getGridBuildRelationDO(Long communityId, Long streetId, ComMngBuildingExcelVO vo, ComMngBuildingDO comMngBuildingDO) { + public GridBuildRelationDO getGridBuildRelationDO(Long communityId, Long streetId, ComMngBuildingExcelVO vo, + ComMngBuildingDO comMngBuildingDO) { GridBuildRelationDO gridBuildRelation = new GridBuildRelationDO(); gridBuildRelation.setId(Snowflake.getId()); gridBuildRelation.setBuildId(comMngBuildingDO.getId()); @@ -94,12 +122,533 @@ gridBuildRelation.setVillageId(comMngBuildingDO.getVillageId()); gridBuildRelation.setGridCommunityId(communityId); gridBuildRelation.setGridStreetId(streetId); - if (vo.getGridId() != null) { - gridBuildRelation.setGridId(Long.valueOf(vo.getGridId())); - } +// if (vo.getGridId() != null) { +// gridBuildRelation.setGridId(Long.valueOf(vo.getGridId())); +// } gridBuildRelation.setGridName(vo.getGridName()); gridBuildRelation.setType(1); gridBuildRelation.setCreateAt(new Date()); return gridBuildRelation; } + + /** + * 社区后台-分页查询楼栋列表 + * @param pageBuildingListDto 请求参数 + * @return 楼栋列表 + */ + @Override + public R pageBuildingAdmin(PageBuildingListDto pageBuildingListDto){ + IPage<PageBuildingListAdminVo> pageBuildingList = this.baseMapper.pageBuildingAdmin( + new Page(pageBuildingListDto.getPageNum(),pageBuildingListDto.getPageSize()),pageBuildingListDto); + pageBuildingList.getRecords().forEach(building -> { + //查询该楼栋下最高的楼层 + if(StringUtils.isNotEmpty(building.getBuildFloorSum())){ + if(building.getBuildFloorSum().length() == 3){ + building.setBuildFloorSum(building.getBuildFloorSum().substring(0,1)); + }else if(building.getBuildFloorSum().length() == 4){ + building.setBuildFloorSum(building.getBuildFloorSum().substring(0,2)); + }else if(building.getBuildFloorSum().length() > 4){ + building.setBuildFloorSum(building.getBuildFloorSum().substring(0,2)); + } + } + }); + return R.ok(pageBuildingList); + } + + /** + * 社区后台-查询楼栋列表表头统计数据 + * @param communityId 社区id + * @return 楼栋列表表头统计数据 + */ + @Override + 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(StringUtils.isNotEmpty(villageBuilding.getFloor())){ + if (!villageBuilding.getFloor().contains("栋")) { + villageBuilding.setFloorString(villageBuilding.getFloor() + "栋"); + } else { + villageBuilding.setFloorString(villageBuilding.getFloor()); + } + } + if(StringUtils.isNotEmpty(villageBuilding.getUnitNo())){ + 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.isEmpty(house.getBuildingNum())){ + 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, null, 1); + 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); + } + + @Override + public R addBuildingUnitAdmin(AddBuildingUnitDto addBuildingUnitDto){ + //查询该楼栋信息 + ComMngBuildingDO buildingDO = this.baseMapper.selectById(addBuildingUnitDto.getId()); + if(buildingDO == null){ + return R.fail("未查询到该楼栋信息"); + } + + Integer count = comMngPopulationHouseDAO.selectCount(new QueryWrapper<ComMngPopulationHouseDO>().lambda() + .eq(ComMngPopulationHouseDO::getVillageId,buildingDO.getVillageId()) + .eq(ComMngPopulationHouseDO::getFloor,buildingDO.getName()) + .eq(ComMngPopulationHouseDO::getUnitNo,addBuildingUnitDto.getUnitNo())); + if(count > 0){ + return R.fail("该单元号已存在"); + } + + //查询小区信息 + ComMngVillageDO villageDO = comActVillageDAO.selectById(buildingDO.getVillageId()); + if(villageDO != null){ + StringBuilder address = new StringBuilder(); + StringBuilder housePath = new StringBuilder(); + ComPopulationActVO populationActVO = comActDAO.getPopulationActById(addBuildingUnitDto.getCommunityId()); + if(populationActVO != null){ + address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName()) + .append(populationActVO.getDistrictName()).append(populationActVO.getStreetName()) + .append(villageDO.getAlley()).append(villageDO.getHouseNum()).append("号"); + if (StringUtils.isNotEmpty(buildingDO.getName())) { + address.append(buildingDO.getName()).append("栋"); + } + if (StringUtils.isNotEmpty(addBuildingUnitDto.getUnitNo())) { + address.append(addBuildingUnitDto.getUnitNo()).append("单元"); + } + housePath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName()).append(">") + .append(villageDO.getAlley()).append(">").append(populationActVO.getName()).append(">").append(villageDO.getName()).append(">").append(address.toString()); + } + ComMngPopulationHouseDO populationHouseDO = new ComMngPopulationHouseDO(); + populationHouseDO.setId(Snowflake.getId()); + populationHouseDO.setStreetId(buildingDO.getStreetId()); + populationHouseDO.setVillageId(buildingDO.getVillageId()); + populationHouseDO.setAlley(villageDO.getAlley()); + populationHouseDO.setHouseNum(villageDO.getHouseNum()); + populationHouseDO.setStatus(ComMngPopulationHouseDO.status.kongzhi); + populationHouseDO.setCommunityId(addBuildingUnitDto.getCommunityId()); + populationHouseDO.setFloor(buildingDO.getName()); + populationHouseDO.setUnitNo(addBuildingUnitDto.getUnitNo()); + populationHouseDO.setAddress(address.toString()); + populationHouseDO.setUpdateAt(new Date()); + populationHouseDO.setPath(housePath.toString()); + populationHouseDO.setIsEmpty(PopulIsOksEnum.YES.getCode()); + comMngPopulationHouseDAO.insert(populationHouseDO); + }else{ + return R.fail(); + } + return R.ok(); + } + + @Override + public R editBuildingUnitAdmin(EditBuildingUnitDto editBuildingUnitDto){ + //查询该楼栋信息 + ComMngBuildingDO buildingDO = this.baseMapper.selectById(editBuildingUnitDto.getId()); + if(buildingDO == null){ + return R.fail("未查询到该楼栋信息"); + } + + Integer oldCount = comMngPopulationHouseDAO.selectCount(new QueryWrapper<ComMngPopulationHouseDO>().lambda() + .eq(ComMngPopulationHouseDO::getVillageId,buildingDO.getVillageId()) + .eq(ComMngPopulationHouseDO::getFloor,buildingDO.getName()) + .eq(ComMngPopulationHouseDO::getUnitNo,editBuildingUnitDto.getOldUnitNo())); + if(oldCount <= 0){ + return R.fail("原单元号不存在"); + } + + Integer newCount = comMngPopulationHouseDAO.selectCount(new QueryWrapper<ComMngPopulationHouseDO>().lambda() + .eq(ComMngPopulationHouseDO::getVillageId,buildingDO.getVillageId()) + .eq(ComMngPopulationHouseDO::getFloor,buildingDO.getName()) + .eq(ComMngPopulationHouseDO::getUnitNo,editBuildingUnitDto.getNewUnitNo())); + if(newCount > 0){ + return R.fail("新单元号已存在"); + } + + //查询小区信息 + ComMngVillageDO villageDO = comActVillageDAO.selectById(buildingDO.getVillageId()); + if(villageDO != null){ + String unitString = editBuildingUnitDto.getNewUnitNo() + "单元"; + + List<ComMngPopulationHouseDO> editHouseList = new ArrayList<>(); + //查询需要修改的房屋列表信息 + List<ComMngPopulationHouseDO> houseList = comMngPopulationHouseDAO.selectList(new QueryWrapper<ComMngPopulationHouseDO>().lambda() + .eq(ComMngPopulationHouseDO::getVillageId,villageDO.getVillageId()) + .eq(ComMngPopulationHouseDO::getFloor,buildingDO.getName()) + .eq(ComMngPopulationHouseDO::getUnitNo,editBuildingUnitDto.getOldUnitNo())); + houseList.forEach(house -> { + ComMngPopulationHouseDO houseDO = new ComMngPopulationHouseDO(); + houseDO.setId(house.getId()); + houseDO.setAddress(house.getAddress().replace(house.getUnitNo() + "单元", unitString)); + houseDO.setPath(house.getPath().replace(house.getUnitNo() + "单元", unitString)); + houseDO.setUnitNo(editBuildingUnitDto.getNewUnitNo()); + editHouseList.add(houseDO); + }); + + List<ComMngPopulationDO> editPopulationList = new ArrayList<>(); + //查询需要修改的人口信息 + List<ComMngPopulationDO> populationList = comMngPopulationDAO.selectList(new QueryWrapper<ComMngPopulationDO>().lambda() + .eq(ComMngPopulationDO::getVillageId,villageDO.getVillageId()) + .eq(ComMngPopulationDO::getFloor,buildingDO.getName()) + .eq(ComMngPopulationDO::getUnitNo,editBuildingUnitDto.getOldUnitNo())); + populationList.forEach(population -> { + ComMngPopulationDO populationDO = new ComMngPopulationDO(); + populationDO.setId(population.getId()); + populationDO.setAddress(population.getAddress().replace(population.getUnitNo() + "单元", unitString)); + populationDO.setUnitNo(editBuildingUnitDto.getNewUnitNo()); + editPopulationList.add(populationDO); + }); + + if(!editHouseList.isEmpty()){ + comMngPopulationHouseDAO.updateUnitAll(editHouseList); + } + + if(!editPopulationList.isEmpty()){ + comMngPopulationDAO.updateAll(editPopulationList); + } + }else{ + return R.fail(); + } + return R.ok(); + } + + @Override + public R addBuildingHouseAdmin(AddBuildingHouseDto addBuildingHouseDto){ + + //查询该楼栋信息 + ComMngBuildingDO buildingDO = this.baseMapper.selectById(addBuildingHouseDto.getId()); + if(buildingDO == null){ + return R.fail("未查询到该楼栋信息"); + } + + Integer count = comMngPopulationHouseDAO.selectCount(new QueryWrapper<ComMngPopulationHouseDO>().lambda() + .eq(ComMngPopulationHouseDO::getVillageId,buildingDO.getVillageId()) + .eq(ComMngPopulationHouseDO::getFloor,buildingDO.getName()) + .eq(ComMngPopulationHouseDO::getUnitNo,addBuildingHouseDto.getUnitNo()) + .eq(ComMngPopulationHouseDO::getHouseNo,addBuildingHouseDto.getHouseNo())); + if(count > 0){ + return R.fail("该房间已存在"); + } + + //查询小区信息 + ComMngVillageDO villageDO = comActVillageDAO.selectById(buildingDO.getVillageId()); + if(villageDO != null){ + StringBuilder address = new StringBuilder(); + StringBuilder housePath = new StringBuilder(); + ComPopulationActVO populationActVO = comActDAO.getPopulationActById(addBuildingHouseDto.getCommunityId()); + if(populationActVO != null){ + address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName()) + .append(populationActVO.getDistrictName()).append(populationActVO.getStreetName()) + .append(villageDO.getAlley()).append(villageDO.getHouseNum()).append("号"); + if (StringUtils.isNotEmpty(buildingDO.getName())) { + address.append(buildingDO.getName()).append("栋"); + } + if (StringUtils.isNotEmpty(addBuildingHouseDto.getUnitNo())) { + address.append(addBuildingHouseDto.getUnitNo()).append("单元"); + } + if (StringUtils.isNotEmpty(addBuildingHouseDto.getHouseNo())) { + address.append(addBuildingHouseDto.getHouseNo()).append("号"); + } + housePath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName()).append(">") + .append(villageDO.getAlley()).append(">").append(populationActVO.getName()).append(">").append(villageDO.getName()).append(">").append(address.toString()); + } + ComMngPopulationHouseDO populationHouseDO = new ComMngPopulationHouseDO(); + populationHouseDO.setId(Snowflake.getId()); + populationHouseDO.setStreetId(buildingDO.getStreetId()); + populationHouseDO.setVillageId(buildingDO.getVillageId()); + populationHouseDO.setAlley(villageDO.getAlley()); + populationHouseDO.setHouseNum(villageDO.getHouseNum()); + populationHouseDO.setStatus(ComMngPopulationHouseDO.status.kongzhi); + populationHouseDO.setCommunityId(addBuildingHouseDto.getCommunityId()); + populationHouseDO.setFloor(buildingDO.getName()); + populationHouseDO.setUnitNo(addBuildingHouseDto.getUnitNo()); + populationHouseDO.setHouseNo(addBuildingHouseDto.getHouseNo()); + populationHouseDO.setFloorNum(addBuildingHouseDto.getFloorNum()); + populationHouseDO.setAddress(address.toString()); + populationHouseDO.setUpdateAt(new Date()); + populationHouseDO.setPath(housePath.toString()); + populationHouseDO.setIsEmpty(PopulIsOksEnum.YES.getCode()); + comMngPopulationHouseDAO.insert(populationHouseDO); + }else{ + return R.fail(); + } + return R.ok(); + } + + @Override + public R editBuildingHouseAdmin(EditBuildingHouseDto editBuildingHouseDto){ + + ComMngPopulationHouseDO houseDO = comMngPopulationHouseDAO.selectById(editBuildingHouseDto.getHouseId()); + if(houseDO == null){ + return R.fail("未查询到该户室"); + } + + Integer count = comMngPopulationHouseDAO.selectCount(new QueryWrapper<ComMngPopulationHouseDO>().lambda() + .eq(ComMngPopulationHouseDO::getVillageId,houseDO.getVillageId()) + .eq(ComMngPopulationHouseDO::getFloor,houseDO.getFloor()) + .eq(ComMngPopulationHouseDO::getUnitNo,houseDO.getUnitNo()) + .eq(ComMngPopulationHouseDO::getHouseNo,editBuildingHouseDto.getHouseNo())); + if(count > 0){ + return R.fail("该房间已存在"); + } + + //查询小区信息 + ComMngVillageDO villageDO = comActVillageDAO.selectById(houseDO.getVillageId()); + if(villageDO != null){ + StringBuilder address = new StringBuilder(); + StringBuilder housePath = new StringBuilder(); + ComPopulationActVO populationActVO = comActDAO.getPopulationActById(editBuildingHouseDto.getCommunityId()); + if(populationActVO != null){ + address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName()) + .append(populationActVO.getDistrictName()).append(populationActVO.getStreetName()) + .append(villageDO.getAlley()).append(villageDO.getHouseNum()).append("号"); + if (StringUtils.isNotEmpty(houseDO.getFloor())) { + address.append(houseDO.getFloor()).append("栋"); + } + if (StringUtils.isNotEmpty(houseDO.getUnitNo())) { + address.append(houseDO.getUnitNo()).append("单元"); + } + if (StringUtils.isNotEmpty(editBuildingHouseDto.getHouseNo())) { + address.append(editBuildingHouseDto.getHouseNo()).append("号"); + } + housePath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName()).append(">") + .append(villageDO.getAlley()).append(">").append(populationActVO.getName()).append(">").append(villageDO.getName()).append(">").append(address.toString()); + houseDO.setAddress(address.toString()); + houseDO.setPath(housePath.toString()); + } + List<ComMngPopulationDO> editPopulationList = new ArrayList<>(); + //查询需要修改的人口信息 + List<ComMngPopulationDO> populationList = comMngPopulationDAO.selectList(new QueryWrapper<ComMngPopulationDO>().lambda() + .eq(ComMngPopulationDO::getVillageId,villageDO.getVillageId()) + .eq(ComMngPopulationDO::getFloor,houseDO.getFloor()) + .eq(ComMngPopulationDO::getUnitNo,houseDO.getUnitNo()) + .eq(ComMngPopulationDO::getHouseNo,houseDO.getHouseNo())); + populationList.forEach(population -> { + ComMngPopulationDO populationDO = new ComMngPopulationDO(); + populationDO.setId(population.getId()); + populationDO.setAddress(address.toString()); + populationDO.setHouseNo(editBuildingHouseDto.getHouseNo()); + editPopulationList.add(populationDO); + }); + + houseDO.setHouseNo(editBuildingHouseDto.getHouseNo()); + houseDO.setFloorNum(editBuildingHouseDto.getFloorNum()); + comMngPopulationHouseDAO.updateById(houseDO); + + if(!editPopulationList.isEmpty()){ + comMngPopulationDAO.updateAll(editPopulationList); + } + }else{ + return R.fail(); + } + return R.ok(); + } + + @Override + public R deleteBuildingHousePopulationAdmin(DeleteBuildingHousePopulationDto housePopulationDto){ + + ComMngPopulationHouseDO houseDO = comMngPopulationHouseDAO.selectById(housePopulationDto.getHouseId()); + if(houseDO == null){ + return R.fail("未查询到该户室"); + } + + if(housePopulationDto.getType().equals(DeleteBuildingHousePopulationDto.type.yz)){ + ComMngPopulationHouseUserDO houseUserDO = comMngPopulationHouseUserDAO.selectOne(new QueryWrapper<ComMngPopulationHouseUserDO>().lambda() + .eq(ComMngPopulationHouseUserDO::getHouseId,housePopulationDto.getHouseId()) + .eq(ComMngPopulationHouseUserDO::getPopulId,housePopulationDto.getPopulationId())); + if(houseUserDO != null){ + houseUserDO.setRelationId(ComMngPopulationHouseUserDO.relationId.zuzhu); + houseUserDO.setUpdateAt(new Date()); + comMngPopulationHouseUserDAO.updateById(houseUserDO); + } + }else if(housePopulationDto.getType().equals(DeleteBuildingHousePopulationDto.type.jzr)){ + //清理人员和房屋关联关系 + comMngPopulationHouseUserDAO.delete(new QueryWrapper<ComMngPopulationHouseUserDO>().lambda() + .eq(ComMngPopulationHouseUserDO::getHouseId,housePopulationDto.getHouseId()) + .eq(ComMngPopulationHouseUserDO::getPopulId,housePopulationDto.getPopulationId())); + + //查询该房屋是否还有人居住 + Integer count = comMngPopulationHouseUserDAO.selectCount(new QueryWrapper<ComMngPopulationHouseUserDO>().lambda() + .eq(ComMngPopulationHouseUserDO::getHouseId,housePopulationDto.getHouseId())); + if(count <= 0){ + houseDO.setStatus(ComMngPopulationHouseDO.status.kongzhi); + comMngPopulationHouseDAO.updateById(houseDO); + }else{ + //查询该房屋的居住人中是否还有租住的人 + Integer zCount = comMngPopulationHouseUserDAO.selectCount(new QueryWrapper<ComMngPopulationHouseUserDO>().lambda() + .eq(ComMngPopulationHouseUserDO::getHouseId,housePopulationDto.getHouseId()) + .eq(ComMngPopulationHouseUserDO::getRelationId,ComMngPopulationHouseUserDO.relationId.zuhu)); + if(zCount <= 0){ + houseDO.setStatus(ComMngPopulationHouseDO.status.zizhu); + comMngPopulationHouseDAO.updateById(houseDO); + } + } + } + return R.ok(); + } + + /** + * 根据小区id查询楼栋列表 + * @param villageId 小区id + * @return 查询楼栋列表 + */ + @Override + public R getBuildListByVillageId(Long villageId) { + return R.ok(this.baseMapper.getBuildListByVillageId(villageId)); + } + + @Override + public R delete(Long id) { + return R.ok(this.baseMapper.deleteById(id)); + } } -- Gitblit v1.7.1