From bef94392ff4aca049142b418d8efa59ac1bfb0c1 Mon Sep 17 00:00:00 2001
From: puhanshu <a9236326>
Date: 星期五, 04 三月 2022 14:11:00 +0800
Subject: [PATCH] 五微服务bug修改
---
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActBuildingServiceImpl.java | 624 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 584 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..6001f3f 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,528 @@
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));
+ }
}
--
Gitblit v1.7.1