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<ComMngBuildingDAO, ComMngBuildingDO>
|
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<ComMngBuildingExcelVO> newVoList, Long communityId) {
|
ArrayList<ComMngBuildingDO> list = Lists.newArrayList();
|
List<GridBuildRelationDO> keyList = new ArrayList<>();
|
List<ComMngPopulationImportErrorVO> errorList = new ArrayList<>();
|
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("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<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));
|
}
|
}
|