From c3ce38cb41d4e4a7d036576b7be52ec2d8c3e724 Mon Sep 17 00:00:00 2001
From: CeDo <cedoogle@gmail.com>
Date: 星期一, 12 四月 2021 16:07:46 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVillageServiceImpl.java |   89 ++++++++++++++++++++++++++++++++++++--------
 1 files changed, 73 insertions(+), 16 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 2fce7d1..0770984 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
@@ -5,47 +5,63 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.collect.Lists;
 import com.panzhihua.common.model.dtos.community.PageComMngVillageDTO;
 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.community.ComStreetVO;
 import com.panzhihua.service_community.dao.ComActDAO;
-import com.panzhihua.service_community.dao.ComMngVillageDAO;
+import com.panzhihua.service_community.dao.ComActVillageDAO;
+import com.panzhihua.service_community.dao.ComMngPopulationDAO;
+import com.panzhihua.service_community.dao.ComMngVolunteerMngDAO;
 import com.panzhihua.service_community.model.dos.ComActDO;
+import com.panzhihua.service_community.model.dos.ComActDiscussDO;
+import com.panzhihua.service_community.model.dos.ComMngPopulationDO;
 import com.panzhihua.service_community.model.dos.ComMngVillageDO;
-import com.panzhihua.service_community.model.dos.ComStreetDO;
 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.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @author: llming
  * @description: 实有房屋
  **/
 @Service
-public class ComMngVillageServiceImpl implements ComMngVillageService {
+public class ComMngVillageServiceImpl extends ServiceImpl<ComActVillageDAO, ComMngVillageDO> implements ComMngVillageService {
     @Resource
-    ComMngVillageDAO comMngVillageDAO;
+    ComActVillageDAO comActVillageDAO;
+    @Resource
+    ComActDAO comActDAO;
+    @Resource
+    ComMngPopulationDAO populationDAO;
 
     @Override
-    public R addComMngVillage(ComMngVillageVO comMngVillageVO) {
+    public R addComActVillage(ComMngVillageVO comMngVillageVO) {
         ComMngVillageDO comMngVillageDO = new ComMngVillageDO();
         LambdaQueryWrapper<ComMngVillageDO> param = new QueryWrapper<ComMngVillageDO>().lambda();
         param.eq(ComMngVillageDO::getCommunityId, comMngVillageVO.getCommunityId());
-        Integer resultCount = comMngVillageDAO.selectCount(param);
+        param.eq(ComMngVillageDO::getAlley, comMngVillageVO.getAlley());
+        param.eq(ComMngVillageDO::getHouseNum, comMngVillageVO.getHouseNum());
+        Integer resultCount = comActVillageDAO.selectCount(param);
         if (resultCount > 0) {
             return R.fail("实有房屋已经存在");
         }
         BeanUtils.copyProperties(comMngVillageVO, comMngVillageDO);
-        int insert = comMngVillageDAO.insert(comMngVillageDO);
+        ComActDO comActDO = comActDAO.selectById(comMngVillageDO.getCommunityId());
+        comMngVillageDO.setStreetId(comActDO.getStreetId());
+        int insert = comActVillageDAO.insert(comMngVillageDO);
         if (insert > 0) {
             param.eq(ComMngVillageDO::getAlley, comMngVillageVO.getAlley());
             param.eq(ComMngVillageDO::getHouseNum, comMngVillageVO.getHouseNum());
-            ComMngVillageDO comMngVillageDO1 = comMngVillageDAO.selectOne(param);
+            ComMngVillageDO comMngVillageDO1 = comActVillageDAO.selectOne(param);
             BeanUtils.copyProperties(comMngVillageDO1, comMngVillageVO);
             return R.ok(comMngVillageVO);
         }
@@ -53,19 +69,19 @@
     }
 
     @Override
-    public R listComMngVillage(ComMngVillageVO comMngVillageVO) {
+    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 = comMngVillageDAO.selectList(param);
+        List<ComMngVillageDO> comMngVillageDOS = comActVillageDAO.selectList(param);
         BeanUtils.copyProperties(vos, comMngVillageDOS);
         return R.ok(vos);
     }
 
 
     @Override
-    public R pageComMngVillage(PageComMngVillageDTO pageComMngVillageDTO) {
+    public R pageComActVillage(PageComMngVillageDTO pageComMngVillageDTO) {
         Page page = new Page<>();
         Long pageNum = pageComMngVillageDTO.getPageNum();
         Long pageSize = pageComMngVillageDTO.getPageSize();
@@ -78,20 +94,61 @@
         page.setSize(pageSize);
         page.setCurrent(pageNum);
         LambdaQueryWrapper<ComMngVillageDO> userLambdaQueryWrapper = Wrappers.lambdaQuery();
-        if (!pageComMngVillageDTO.getAlley().isEmpty()) {
+        if (pageComMngVillageDTO.getAlley() != null) {
             userLambdaQueryWrapper.like(ComMngVillageDO::getAlley, pageComMngVillageDTO.getAlley());
         }
         Page userPage = new Page(pageNum, pageSize);
-        IPage<ComMngVillageDO> doPager = comMngVillageDAO.selectPage(userPage, userLambdaQueryWrapper);
+        IPage<ComMngVillageDO> doPager = comActVillageDAO.selectPage(userPage, userLambdaQueryWrapper.orderByDesc(ComMngVillageDO::getCreateAt));
         return R.ok(doPager);
     }
 
     @Override
-    public R delecComMngVillage(List<Long> Ids) {
-        int delete = comMngVillageDAO.deleteBatchIds(Ids);
+    public R delecComActVillage(List<Long> Ids) {
+        LambdaQueryWrapper<ComMngPopulationDO> paramWrapper = Wrappers.lambdaQuery();
+        paramWrapper.in(ComMngPopulationDO::getVillageId, Ids);
+        ComMngPopulationDO mngPopulationDO = populationDAO.selectOne(paramWrapper);
+        if (mngPopulationDO != null) {
+            return R.fail("无法删除,已绑定实有人口!");
+        }
+        int delete = comActVillageDAO.deleteBatchIds(Ids);
         if (delete > 0) {
             return R.ok();
         }
         return R.fail();
     }
+
+    @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));
+        int index = 2;
+        for (ComMngVillageServeExcelVO vo : list) {
+            if (vo.getHouseNum() == null) {
+                return R.fail("门牌号第" + index + "行为空!");
+            }
+            if (vo.getAlley() == null) {
+                return R.fail("街路巷第" + index + "行为空!");
+            }
+            //判断DB和exel数据重复判断
+            boolean result = comMngVillageDOs.stream().anyMatch(village -> village.getAlley().equals(vo.getAlley()) && village.getHouseNum().intValue() == vo.getHouseNum().intValue());
+            if (result) {
+                return R.fail("导入街路巷已存在(" + vo.getAlley() + ")");
+            }
+            index++;
+        }
+        ComActDO comActDO = comActDAO.selectById(communityId);
+        ArrayList<ComMngVillageDO> comMngVillageDOS = Lists.newArrayList();
+        list.forEach(vo -> {
+            ComMngVillageDO comMngVillageDO = new ComMngVillageDO();
+            BeanUtils.copyProperties(vo, comMngVillageDO);
+            comMngVillageDO.setCommunityId(comActDO.getCommunityId());
+            comMngVillageDO.setStreetId(comActDO.getStreetId());
+            comMngVillageDOS.add(comMngVillageDO);
+        });
+        this.saveBatch(comMngVillageDOS);
+        return R.ok("共计导入实有房屋数量:" + comMngVillageDOS.size());
+    }
 }

--
Gitblit v1.7.1