| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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()); |
| | |
| | | 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(); |
| | | } |
| | | } |