From 8555f974846ca5b4f4734f52b51e39cd4502df44 Mon Sep 17 00:00:00 2001
From: DESKTOP-71BH0QO\L、ming <172680469@qq.com>
Date: 星期五, 02 四月 2021 15:46:30 +0800
Subject: [PATCH] fix:修改bug

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVillageServiceImpl.java |   55 +++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 41 insertions(+), 14 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 6437ed0..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
@@ -13,9 +13,11 @@
 import com.panzhihua.common.model.vos.community.ComMngVillageVO;
 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.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.service.ComMngVillageService;
 import org.springframework.beans.BeanUtils;
@@ -38,6 +40,8 @@
     ComActVillageDAO comActVillageDAO;
     @Resource
     ComActDAO comActDAO;
+    @Resource
+    ComMngPopulationDAO populationDAO;
 
     @Override
     public R addComActVillage(ComMngVillageVO comMngVillageVO) {
@@ -45,6 +49,7 @@
         LambdaQueryWrapper<ComMngVillageDO> param = new QueryWrapper<ComMngVillageDO>().lambda();
         param.eq(ComMngVillageDO::getCommunityId, comMngVillageVO.getCommunityId());
         param.eq(ComMngVillageDO::getAlley, comMngVillageVO.getAlley());
+        param.eq(ComMngVillageDO::getHouseNum, comMngVillageVO.getHouseNum());
         Integer resultCount = comActVillageDAO.selectCount(param);
         if (resultCount > 0) {
             return R.fail("实有房屋已经存在");
@@ -93,12 +98,18 @@
             userLambdaQueryWrapper.like(ComMngVillageDO::getAlley, pageComMngVillageDTO.getAlley());
         }
         Page userPage = new Page(pageNum, pageSize);
-        IPage<ComMngVillageDO> doPager = comActVillageDAO.selectPage(userPage, userLambdaQueryWrapper);
+        IPage<ComMngVillageDO> doPager = comActVillageDAO.selectPage(userPage, userLambdaQueryWrapper.orderByDesc(ComMngVillageDO::getCreateAt));
         return R.ok(doPager);
     }
 
     @Override
     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();
@@ -108,20 +119,36 @@
 
     @Override
     public R listSaveVillage(List<ComMngVillageServeExcelVO> list, Long communityId) {
-        //获取社区下所有的实有房屋(小区),打印已经存在的重复数据
-        List<ComMngVillageDO> comMngVillageDOs = comActVillageDAO.selectList(new QueryWrapper<ComMngVillageDO>().lambda().eq(ComMngVillageDO::getCommunityId, communityId));
-        List<String> alleyList = list.stream().map(vo -> vo.getAlley()).collect(Collectors.toList());
-        List<Integer> houseNumList = list.stream().map(vo -> vo.getHouseNum()).collect(Collectors.toList());
-        List<ComMngVillageDO> resultList = comMngVillageDOs.stream().filter(village -> alleyList.contains(village.getAlley()) && houseNumList.contains(village.getAlley())).collect(Collectors.toList());
-        if (resultList != null && resultList.size() > 0) {
-            List<String> repeatList = resultList.stream().map(ComMngVillageDO::getAlley).collect(Collectors.toList());
-            return R.fail("导入实有房屋,存在数据重复:" + repeatList.toArray());
+        //思路:获取社区下所有的实有房屋(小区),打印已经存在的重复数据
+        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();
-        BeanUtils.copyProperties(list, comMngVillageDOS);
-        /*this.saveBatch(comMngCarDOS);
-        return R.ok("共计导入车辆数量:" + comMngCarDOS.size());*/
-        System.out.println(comMngVillageDOS);
-        return null;
+        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