From 3c884ccd7b51edf3b36840bf99de5edaa41a38a7 Mon Sep 17 00:00:00 2001
From: 张天森 <1292933220@qq.com>
Date: 星期三, 12 十月 2022 19:05:28 +0800
Subject: [PATCH] 三说会堂事件流程处理

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVillageServiceImpl.java |  231 +++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 158 insertions(+), 73 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVillageServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVillageServiceImpl.java
index f6f3c0d..24d319a 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVillageServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVillageServiceImpl.java
@@ -1,5 +1,16 @@
 package com.panzhihua.service_community.service.impl;
 
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+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.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -9,40 +20,23 @@
 import com.google.common.collect.Lists;
 import com.panzhihua.common.model.dtos.community.PageComMngVillageDTO;
 import com.panzhihua.common.model.dtos.grid.ComMngVillageListAppDTO;
-import com.panzhihua.common.model.dtos.grid.PageComMngVillageBuildHouseAppDTO;
-import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationListDTO;
 import com.panzhihua.common.model.dtos.grid.admin.ComMngVillageListExportAdminDTO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.community.ComMngVillageServeExcelVO;
 import com.panzhihua.common.model.vos.community.ComMngVillageVO;
-import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseVO;
 import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingVO;
-import com.panzhihua.common.model.vos.grid.admin.ComMngVillageStatisticsVO;
 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.ComMngPopulationDAO;
-import com.panzhihua.service_community.dao.ComMngPopulationHouseDAO;
-import com.panzhihua.service_community.model.dos.ComActDO;
-import com.panzhihua.service_community.model.dos.ComMngPopulationDO;
-import com.panzhihua.service_community.model.dos.ComMngPopulationHouseDO;
-import com.panzhihua.service_community.model.dos.ComMngVillageDO;
 import com.panzhihua.service_community.service.ComMngVillageService;
-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;
+import org.springframework.util.CollectionUtils;
 
 /**
  * @author: llming
  * @description: 实有房屋
  **/
 @Service
-public class ComMngVillageServiceImpl extends ServiceImpl<ComActVillageDAO, ComMngVillageDO> implements ComMngVillageService {
+public class ComMngVillageServiceImpl extends ServiceImpl<ComActVillageDAO, ComMngVillageDO>
+    implements ComMngVillageService {
     @Resource
     ComActVillageDAO comActVillageDAO;
     @Resource
@@ -51,6 +45,8 @@
     ComMngPopulationDAO populationDAO;
     @Resource
     private ComMngPopulationHouseDAO comMngPopulationHouseDAO;
+    @Resource
+    private ComMngBuildingDAO comMngBuildingDAO;
 
     @Override
     public R addComActVillage(ComMngVillageVO comMngVillageVO) {
@@ -73,9 +69,9 @@
         comMngVillageDO.setUpdateAt(new Date());
         int insert = comActVillageDAO.insert(comMngVillageDO);
         if (insert > 0) {
-//            param.eq(ComMngVillageDO::getAlley, comMngVillageVO.getAlley());
-//            param.eq(ComMngVillageDO::getHouseNum, comMngVillageVO.getHouseNum());
-//            ComMngVillageDO comMngVillageDO1 = comActVillageDAO.selectOne(param);
+            // param.eq(ComMngVillageDO::getAlley, comMngVillageVO.getAlley());
+            // param.eq(ComMngVillageDO::getHouseNum, comMngVillageVO.getHouseNum());
+            // ComMngVillageDO comMngVillageDO1 = comActVillageDAO.selectOne(param);
             BeanUtils.copyProperties(comMngVillageDO, comMngVillageVO);
             return R.ok(comMngVillageVO);
         }
@@ -85,20 +81,49 @@
     @Override
     public R listComActVillage(ComMngVillageVO comMngVillageVO) {
         List<ComMngVillageDO> vos = Lists.newArrayList();
-        LambdaQueryWrapper<ComMngVillageDO> param = new QueryWrapper<ComMngVillageDO>().lambda();
-        param.eq(ComMngVillageDO::getAlley, comMngVillageVO.getAlley());
-        param.eq(ComMngVillageDO::getCommunityId, comMngVillageVO.getCommunityId());
-        List<ComMngVillageDO> comMngVillageDOS = comActVillageDAO.selectList(param);
-        BeanUtils.copyProperties(vos, comMngVillageDOS);
+        if(comMngVillageVO.getCommunityId()!=null){
+            LambdaQueryWrapper<ComMngVillageDO> param = new QueryWrapper<ComMngVillageDO>().lambda();
+            if(StringUtils.isNotEmpty(comMngVillageVO.getName())){
+                param.like(ComMngVillageDO::getName, comMngVillageVO.getName());
+            }
+            if(comMngVillageVO.getCommunityId()!=0){
+                param.eq(ComMngVillageDO::getCommunityId, comMngVillageVO.getCommunityId());
+            }
+            List<ComMngVillageDO> comMngVillageDOS = comActVillageDAO.selectList(param);
+            BeanUtils.copyProperties(comMngVillageDOS, vos);
+            if(CollectionUtils.isEmpty(comMngVillageDOS)){
+                //默认添加小区
+                ComMngVillageDO comMngVillageDO=new ComMngVillageDO();
+                comMngVillageDO.setVillageId(1540264792718184449L);
+                comMngVillageDO.setType(1);
+                comMngVillageDO.setName("该社区/村暂未添加小区(院落),请先选择本项");
+                comMngVillageDOS.add(comMngVillageDO);
+            }
+            return R.ok(comMngVillageDOS);
+        }
+        if(CollectionUtils.isEmpty(vos)){
+            //默认添加小区
+            ComMngVillageDO comMngVillageDO=new ComMngVillageDO();
+            comMngVillageDO.setVillageId(1540264792718184449L);
+            comMngVillageDO.setType(1);
+            comMngVillageDO.setName("该社区/村暂未添加小区(院落),请先选择本项");
+            vos.add(comMngVillageDO);
+        }
         return R.ok(vos);
     }
 
+    @Override
+    public ComMngVillageDO getVillageById(Long villageId) {
+        ComMngVillageDO comMngVillageDO = new ComMngVillageDO();
+        comMngVillageDO = comActVillageDAO.selectById(villageId);
+        return comMngVillageDO;
+    }
 
     @Override
     public R pageComActVillage(PageComMngVillageDTO pageComMngVillageDTO) {
         LambdaQueryWrapper<ComMngVillageDO> userLambdaQueryWrapper = Wrappers.lambdaQuery();
-        if(pageComMngVillageDTO.getCommunityId() != null){
-            userLambdaQueryWrapper.eq(ComMngVillageDO::getCommunityId,pageComMngVillageDTO.getCommunityId());
+        if (pageComMngVillageDTO.getCommunityId() != null) {
+            userLambdaQueryWrapper.eq(ComMngVillageDO::getCommunityId, pageComMngVillageDTO.getCommunityId());
         }
         if (pageComMngVillageDTO.getAlley() != null) {
             userLambdaQueryWrapper.like(ComMngVillageDO::getAlley, pageComMngVillageDTO.getAlley());
@@ -109,33 +134,33 @@
         if (StringUtils.isNotEmpty(pageComMngVillageDTO.getGroupAt())) {
             userLambdaQueryWrapper.eq(ComMngVillageDO::getGroupAt, pageComMngVillageDTO.getGroupAt());
         }
-        if(pageComMngVillageDTO.getType() != null){
+        if (pageComMngVillageDTO.getType() != null) {
             userLambdaQueryWrapper.eq(ComMngVillageDO::getType, pageComMngVillageDTO.getType());
         }
         Page userPage = new Page(pageComMngVillageDTO.getPageNum(), pageComMngVillageDTO.getPageSize());
-        IPage<ComMngVillageDO> doPager = comActVillageDAO.selectPage(userPage, userLambdaQueryWrapper.orderByDesc(ComMngVillageDO::getCreateAt));
+        IPage<ComMngVillageDO> doPager =
+            comActVillageDAO.selectPage(userPage, userLambdaQueryWrapper.orderByDesc(ComMngVillageDO::getName));
 
         IPage<ComMngVillageVO> villageVOIPage = new Page<>();
         villageVOIPage.setCurrent(doPager.getCurrent());
         villageVOIPage.setPages(doPager.getPages());
         villageVOIPage.setSize(doPager.getSize());
         villageVOIPage.setTotal(doPager.getTotal());
-        if(!doPager.getRecords().isEmpty()){
+        if (!doPager.getRecords().isEmpty()) {
             List<ComMngVillageVO> villageVOList = new ArrayList<>();
-            //统计小区下的数据
+            // 统计小区下的数据
             doPager.getRecords().forEach(village -> {
                 ComMngVillageVO villageVO = new ComMngVillageVO();
-                BeanUtils.copyProperties(village,villageVO);
-                //查询小区统计数据
+                BeanUtils.copyProperties(village, villageVO);
+                // 查询小区统计数据
                 ComMngVillageVO villageTotal = comActVillageDAO.getStatisticsCount(village.getVillageId());
-                if(villageTotal != null){
+                if (villageTotal != null) {
                     villageVO.setFloorTotal(villageTotal.getFloorTotal());
                     villageVO.setCarTotal(villageTotal.getCarTotal());
                     villageVO.setHouseTotal(villageTotal.getHouseTotal());
                     villageVO.setPopulationTotal(villageTotal.getPopulationTotal());
                 }
                 villageVOList.add(villageVO);
-
             });
             villageVOIPage.setRecords(villageVOList);
         }
@@ -145,7 +170,7 @@
     @Override
     public R delecComActVillage(List<Long> Ids) {
         LambdaQueryWrapper<ComMngPopulationHouseDO> paramHouseWrapper = Wrappers.lambdaQuery();
-        paramHouseWrapper.in(ComMngPopulationHouseDO::getVillageId,Ids);
+        paramHouseWrapper.in(ComMngPopulationHouseDO::getVillageId, Ids);
         List<ComMngPopulationHouseDO> populationHouseDOList = comMngPopulationHouseDAO.selectList(paramHouseWrapper);
         if (!populationHouseDOList.isEmpty()) {
             return R.fail("无法删除,已绑定实有房屋!");
@@ -166,11 +191,12 @@
 
     @Override
     public R listSaveVillage(List<ComMngVillageServeExcelVO> list, Long communityId) {
-        //思路:获取社区下所有的实有房屋(小区),打印已经存在的重复数据
+        // 思路:获取社区下所有的实有房屋(小区),打印已经存在的重复数据
         if (list.size() == 0) {
             return R.fail("数据为空!");
         }
-        List<ComMngVillageDO> comMngVillageDOs = comActVillageDAO.selectList(new QueryWrapper<ComMngVillageDO>().lambda().eq(ComMngVillageDO::getCommunityId, communityId));
+        List<ComMngVillageDO> comMngVillageDOs = comActVillageDAO
+            .selectList(new QueryWrapper<ComMngVillageDO>().lambda().eq(ComMngVillageDO::getCommunityId, communityId));
         int index = 2;
         for (ComMngVillageServeExcelVO vo : list) {
             if (vo.getHouseNum() == null) {
@@ -179,31 +205,44 @@
             if (vo.getAlley() == null) {
                 return R.fail("街路巷第" + index + "行为空!");
             }
-            //判断DB和exel数据重复判断
-            boolean result = comMngVillageDOs.stream().anyMatch(village -> village.getAlley().equals(vo.getAlley()) && village.getHouseNum().equals(vo.getHouseNum()));
+            // 判断DB和exel数据重复判断
+            boolean result = comMngVillageDOs.stream().anyMatch(
+                village -> village.getAlley().equals(vo.getAlley()) && village.getHouseNum().equals(vo.getHouseNum()));
             if (result) {
-                return R.fail("导入街路巷已存在(" + vo.getAlley() + ")");
+                return R.fail("导入街路巷重复(" + vo.getAlley() + ")");
             }
+            ComMngVillageDO comMngVillageDO=new ComMngVillageDO();
+            BeanUtils.copyProperties(vo,comMngVillageDO);
+            comMngVillageDOs.add(comMngVillageDO);
             index++;
         }
         ComActDO comActDO = comActDAO.selectById(communityId);
-        if(comActDO.getStreetId()==null||comActDO.getStreetId().toString().equals("")){
+        if (comActDO.getStreetId() == null || comActDO.getStreetId().toString().equals("")) {
             return R.fail("请绑定街道,再操作!");
         }
         ArrayList<ComMngVillageDO> comMngVillageDOS = Lists.newArrayList();
         list.forEach(vo -> {
             ComMngVillageDO comMngVillageDO = new ComMngVillageDO();
             BeanUtils.copyProperties(vo, comMngVillageDO);
+            if(StringUtils.isNotEmpty(vo.getType())){
+                if("城镇".equals(vo.getType())){
+                    comMngVillageDO.setType(1);
+                }
+                else {
+                    comMngVillageDO.setType(2);
+                }
+            }
             comMngVillageDO.setCommunityId(comActDO.getCommunityId());
             comMngVillageDO.setStreetId(comActDO.getStreetId());
             StringBuilder path = new StringBuilder();
             path.append(vo.getAlley()).append(">").append(vo.getHouseNum()).append(">").append(vo.getGroupAt());
             comMngVillageDO.setPath(path.toString());
             comMngVillageDO.setUpdateAt(new Date());
+            comMngVillageDO.setName(comMngVillageDO.getGroupAt());
             comMngVillageDOS.add(comMngVillageDO);
         });
         this.saveBatch(comMngVillageDOS);
-        return R.ok("共计导入实有房屋数量:" + comMngVillageDOS.size());
+        return R.ok("共计导入实有小区数量:" + comMngVillageDOS.size());
     }
 
     @Override
@@ -212,15 +251,42 @@
         if (comMngVillageDO == null) {
             return R.fail("id有误!");
         }
-        BeanUtils.copyProperties(comMngVillageVO, comMngVillageDO);
+        if(!comMngVillageVO.getAlley().equals(comMngVillageDO.getAlley())&&!comMngVillageVO.getHouseNum().equals(comMngVillageDO.getHouseNum())){
+            Integer count= this.baseMapper.selectCount(new QueryWrapper<ComMngVillageDO>().lambda().eq(ComMngVillageDO::getAlley,comMngVillageVO.getAlley()).eq(ComMngVillageDO::getHouseNum,comMngVillageVO.getHouseNum()));
+            if(count>0){
+                return R.fail("街路巷已存在");
+            }
+            //历史人口数据处理
+            List<ComMngPopulationDO> populationDOS=this.populationDAO.selectList(new QueryWrapper<ComMngPopulationDO>().lambda().eq(ComMngPopulationDO::getVillageId,villageId));
+            if(!populationDOS.isEmpty()){
+                populationDOS.forEach(comMngPopulationDO -> {
+                    comMngPopulationDO.setRoad(comMngVillageVO.getAlley());
+                    comMngPopulationDO.setDoorNo(comMngVillageVO.getHouseNum());
+                    comMngPopulationDO.setAddress(comMngPopulationDO.getAddress().replace(comMngVillageDO.getAlley()+comMngVillageDO.getHouseNum(),comMngVillageVO.getAlley()+comMngVillageVO.getHouseNum()));
+                    this.populationDAO.updateById(comMngPopulationDO);
+                });
+            }
+            //历史房屋数据处理
+            List<ComMngPopulationHouseDO> comMngPopulationHouseDOS=this.comMngPopulationHouseDAO.selectList(new QueryWrapper<ComMngPopulationHouseDO>().lambda().eq(ComMngPopulationHouseDO::getVillageId,comMngVillageVO.getVillageId()));
+            if(!comMngPopulationHouseDOS.isEmpty()){
+                comMngPopulationHouseDOS.forEach(comMngPopulationHouseDO -> {
+                    comMngPopulationHouseDO.setAlley(comMngVillageVO.getAlley());
+                    comMngPopulationHouseDO.setHouseNum(comMngVillageVO.getHouseNum());
+                    comMngPopulationHouseDO.setAddress(comMngPopulationHouseDO.getAddress().replace(comMngVillageDO.getAlley()+comMngVillageDO.getHouseNum(),comMngVillageVO.getAlley()+comMngVillageVO.getHouseNum()));
+                    this.comMngPopulationHouseDAO.updateById(comMngPopulationHouseDO);
+                });
+            }
+        }
         ComActDO comActDO = comActDAO.selectById(comMngVillageDO.getCommunityId());
         if (comActDO == null || comActDO.getStreetId() == null) {
             return R.fail("社区没有绑定街道,请绑定后操作!");
         }
+        BeanUtils.copyProperties(comMngVillageVO, comMngVillageDO);
+        comMngVillageDO.setName(comMngVillageVO.getGroupAt());
         comMngVillageDO.setStreetId(comActDO.getStreetId());
-        int update = this.baseMapper.update(comMngVillageDO, new LambdaQueryWrapper<ComMngVillageDO>()
-                .eq(ComMngVillageDO::getVillageId, villageId));
-        if(update>0){
+        int update = this.baseMapper.update(comMngVillageDO,
+            new LambdaQueryWrapper<ComMngVillageDO>().eq(ComMngVillageDO::getVillageId, villageId));
+        if (update > 0) {
             return R.ok(comMngVillageVO);
         }
         return R.fail();
@@ -228,50 +294,69 @@
 
     /**
      * 统计社区内小区数量
-     * @param communityId   社区id
-     * @return  统计小区数量
+     * 
+     * @param communityId
+     *            社区id
+     * @return 统计小区数量
      */
     @Override
-    public R villageStatistics(Long communityId){
+    public R villageStatistics(Long communityId) {
         return R.ok(this.baseMapper.getVillageStatisticsCount(communityId));
     }
 
     /**
      * 小区详情
-     * @param villageId 小区id
-     * @return  小区详情
+     * 
+     * @param villageId
+     *            小区id
+     * @return 小区详情
      */
     @Override
-    public R getVillage(Long villageId){
+    public R getVillage(Long villageId) {
         return R.ok(this.baseMapper.getVillageById(villageId));
     }
 
     /**
      * 综治app-小区列表
-     * @param villageListAppDTO 请求参数
-     * @return  小区列表
+     * 
+     * @param villageListAppDTO
+     *            请求参数
+     * @return 小区列表
      */
     @Override
-    public R getGridVillageList(ComMngVillageListAppDTO villageListAppDTO){
-        return R.ok(this.baseMapper.getGridVillageList(new Page(villageListAppDTO.getPageNum(),villageListAppDTO.getPageSize()),villageListAppDTO));
+    public R getGridVillageList(ComMngVillageListAppDTO villageListAppDTO) {
+        return R.ok(this.baseMapper.getGridVillageList(
+            new Page(villageListAppDTO.getPageNum(), villageListAppDTO.getPageSize()), villageListAppDTO));
+    }
+
+    @Override
+    public R getGridVillageListApp(ComMngVillageListAppDTO villageListAppDTO) {
+        return R.ok(this.baseMapper.getGridVillageList(
+                new Page(villageListAppDTO.getPageNum(), villageListAppDTO.getPageSize()), villageListAppDTO));
     }
 
     /**
      * 综治app-根据小区id查询小区下楼栋列表
-     * @param villageId 小区id
-     * @return  楼栋列表
+     * 
+     * @param villageId
+     *            小区id
+     * @return 楼栋列表
      */
     @Override
-    public R getGridVillageBuildingList(Long villageId){
+    public R getGridVillageBuildingList(Long villageId) {
 
         List<ComMngVillageBuildingVO> villageBuildingList = this.baseMapper.getGridVillageBuildingList(villageId);
-        if(!villageBuildingList.isEmpty()){
+        if (!villageBuildingList.isEmpty()) {
             villageBuildingList.forEach(villageBuilding -> {
-                if(!villageBuilding.getFloor().contains("栋")){
+                if (!villageBuilding.getFloor().contains("栋")) {
                     villageBuilding.setFloorString(villageBuilding.getFloor() + "栋");
+                } else {
+                    villageBuilding.setFloorString(villageBuilding.getFloor());
                 }
-                if(!villageBuilding.getUnitNo().contains("单元")){
+                if (!villageBuilding.getUnitNo().contains("单元")) {
                     villageBuilding.setUnitNoString(villageBuilding.getUnitNo() + "单元");
+                } else {
+                    villageBuilding.setUnitNoString(villageBuilding.getUnitNo());
                 }
             });
         }
@@ -279,29 +364,29 @@
     }
 
     @Override
-    public R delGridVillage(List<Long> villageIds){
+    public R delGridVillage(List<Long> villageIds) {
 
-        if(villageIds.isEmpty()){
+        if (villageIds.isEmpty()) {
             return R.fail("请选择需要删除的小区");
         }
-        //查询需要删除的小区下面是否绑定的有房屋
+        // 查询需要删除的小区下面是否绑定的有房屋
         Integer count = this.baseMapper.getVillageHouseCount(villageIds);
-        if(count > 0){
+        if (count > 0) {
             return R.fail("您选择的小区已被引用,无法删除");
         }
-        if(this.baseMapper.deleteBatchIds(villageIds) > 0){
+        if (this.baseMapper.deleteBatchIds(villageIds) > 0) {
             return R.ok();
         }
         return R.fail("删除失败");
     }
 
     @Override
-    public R getGridVillageStatistics(){
+    public R getGridVillageStatistics() {
         return R.ok(this.baseMapper.getGridVillageStatistics());
     }
 
     @Override
-    public R getGridVillageListExport(ComMngVillageListExportAdminDTO villageListAppDTO){
+    public R getGridVillageListExport(ComMngVillageListExportAdminDTO villageListAppDTO) {
         return R.ok(this.baseMapper.getGridVillageLists(villageListAppDTO));
     }
 

--
Gitblit v1.7.1