package com.panzhihua.service_community.service.impl; 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; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComMngBuildingExcelVO; 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.service.ComActBuildingService; import com.panzhihua.service_community.service.GridBuildRelationService; /** * @author xyh * @date 2021/6/10 13:46 */ @Service public class ComActBuildingServiceImpl extends ServiceImpl implements ComActBuildingService { @Resource private ComActVillageDAO comActVillageDAO; @Resource private ComActDAO comActDAO; @Resource private GridBuildRelationService gridBuildRelationService; @Resource private ComMngPopulationHouseDAO comMngPopulationHouseDAO; @Resource private ComMngPopulationDAO comMngPopulationDAO; @Resource private ComMngPopulationHouseUserDAO comMngPopulationHouseUserDAO; @Override public R batchSaveBuilding(List newVoList, Long communityId) { ArrayList list = Lists.newArrayList(); List keyList = new ArrayList<>(); List errorList = new ArrayList<>(); for (ComMngBuildingExcelVO vo : newVoList) { ComMngVillageDO comMngVillageDO = comActVillageDAO.selectOne(new QueryWrapper() .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 buildingDOList = this.baseMapper.selectList(new QueryWrapper() .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); 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()); comMngBuildingDO.setPath(path.toString()); // comMngBuildingDO.setGridId(vo.getGridId()); list.add(comMngBuildingDO); GridBuildRelationDO gridBuildRelation = getGridBuildRelationDO(communityId, comMngVillageDO.getStreetId(), vo, comMngBuildingDO); keyList.add(gridBuildRelation); } if (list.size() > 0) { this.saveBatch(list); if(keyList.size() > 0){ gridBuildRelationService.saveBatchGridBuildRelation(keyList); } } if (errorList.size() > 0) { return R.fail(errorList); } return R.ok(); } public GridBuildRelationDO getGridBuildRelationDO(Long communityId, Long streetId, ComMngBuildingExcelVO vo, ComMngBuildingDO comMngBuildingDO) { GridBuildRelationDO gridBuildRelation = new GridBuildRelationDO(); gridBuildRelation.setId(Snowflake.getId()); gridBuildRelation.setBuildId(comMngBuildingDO.getId()); gridBuildRelation.setBuildName(comMngBuildingDO.getPath()); gridBuildRelation.setVillageId(comMngBuildingDO.getVillageId()); gridBuildRelation.setGridCommunityId(communityId); gridBuildRelation.setGridStreetId(streetId); // 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 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 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 buildHouseList = new ArrayList<>(); if(StringUtils.isNotEmpty(buildingDO.getName())){ IPage 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 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 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 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 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().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().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().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 editHouseList = new ArrayList<>(); //查询需要修改的房屋列表信息 List houseList = comMngPopulationHouseDAO.selectList(new QueryWrapper().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 editPopulationList = new ArrayList<>(); //查询需要修改的人口信息 List populationList = comMngPopulationDAO.selectList(new QueryWrapper().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().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().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 editPopulationList = new ArrayList<>(); //查询需要修改的人口信息 List populationList = comMngPopulationDAO.selectList(new QueryWrapper().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().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().lambda() .eq(ComMngPopulationHouseUserDO::getHouseId,housePopulationDto.getHouseId()) .eq(ComMngPopulationHouseUserDO::getPopulId,housePopulationDto.getPopulationId())); //查询该房屋是否还有人居住 Integer count = comMngPopulationHouseUserDAO.selectCount(new QueryWrapper().lambda() .eq(ComMngPopulationHouseUserDO::getHouseId,housePopulationDto.getHouseId())); if(count <= 0){ houseDO.setStatus(ComMngPopulationHouseDO.status.kongzhi); comMngPopulationHouseDAO.updateById(houseDO); }else{ //查询该房屋的居住人中是否还有租住的人 Integer zCount = comMngPopulationHouseUserDAO.selectCount(new QueryWrapper().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)); } }