From 70a6a075feccef889868161d709497edb77f8371 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Sat, 09 Dec 2023 10:39:30 +0800
Subject: [PATCH] 新增网格机构,范围处理

---
 src/main/java/org/springblade/modules/grid/mapper/GridRangeMapper.java            |    8 ++
 src/main/java/org/springblade/common/utils/NodeTreeUtil.java                      |   18 ++++--
 src/main/java/org/springblade/modules/grid/service/IGridRangeService.java         |    5 +
 src/main/java/org/springblade/modules/grid/mapper/GridRangeMapper.xml             |    5 +
 src/main/java/org/springblade/modules/system/controller/DeptController.java       |   10 +++
 src/main/java/org/springblade/modules/grid/controller/GridRangeController.java    |    8 ++
 src/main/java/org/springblade/modules/house/service/impl/HouseServiceImpl.java    |   11 +++
 src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java    |   33 +++++++++++
 src/main/java/org/springblade/modules/system/service/IDeptService.java            |    5 +
 src/main/java/org/springblade/modules/grid/service/impl/GridRangeServiceImpl.java |   43 ++++++++++++++
 10 files changed, 135 insertions(+), 11 deletions(-)

diff --git a/src/main/java/org/springblade/common/utils/NodeTreeUtil.java b/src/main/java/org/springblade/common/utils/NodeTreeUtil.java
index a81edf8..7568fd1 100644
--- a/src/main/java/org/springblade/common/utils/NodeTreeUtil.java
+++ b/src/main/java/org/springblade/common/utils/NodeTreeUtil.java
@@ -63,13 +63,19 @@
 	public static List<TreeStringNode> getStringNodeTree(Map<String, TreeStringNode> treeMap){
 		List<TreeStringNode> tree = new ArrayList<>();
 		if (treeMap.size() > 0) {
-			treeMap.forEach((id, treeNode) -> {
-				if (treeMap.containsKey(treeNode.getParentId())) {
-					treeMap.get(treeNode.getParentId()).getChildren().add(treeNode);
-				} else {
+			if (treeMap.size()==1){
+				treeMap.forEach((id, treeNode) -> {
 					tree.add(treeNode);
-				}
-			});
+				});
+			}else {
+				treeMap.forEach((id, treeNode) -> {
+					if (treeMap.containsKey(treeNode.getParentId())) {
+						treeMap.get(treeNode.getParentId()).getChildren().add(treeNode);
+					} else {
+						tree.add(treeNode);
+					}
+				});
+			}
 		}
 		return tree;
 	}
diff --git a/src/main/java/org/springblade/modules/grid/controller/GridRangeController.java b/src/main/java/org/springblade/modules/grid/controller/GridRangeController.java
index aacad44..555af96 100644
--- a/src/main/java/org/springblade/modules/grid/controller/GridRangeController.java
+++ b/src/main/java/org/springblade/modules/grid/controller/GridRangeController.java
@@ -120,5 +120,13 @@
 		return R.status(gridRangeService.removeByIds(Func.toLongList(ids)));
 	}
 
+	/**
+	 * 网格范围表数据处理
+	 */
+	@GetMapping("/dataHandle")
+	public R dataHandle() {
+		return R.data(gridRangeService.dataHandle());
+	}
+
 
 }
diff --git a/src/main/java/org/springblade/modules/grid/mapper/GridRangeMapper.java b/src/main/java/org/springblade/modules/grid/mapper/GridRangeMapper.java
index 6100cac..962f6e8 100644
--- a/src/main/java/org/springblade/modules/grid/mapper/GridRangeMapper.java
+++ b/src/main/java/org/springblade/modules/grid/mapper/GridRangeMapper.java
@@ -21,6 +21,8 @@
 import org.springblade.modules.grid.vo.GridRangeVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.modules.grid.vo.GridVO;
+
 import java.util.List;
 
 /**
@@ -40,5 +42,9 @@
 	 */
 	List<GridRangeVO> selectGridRangePage(IPage page,@Param("gridRange") GridRangeVO gridRange);
 
-
+	/**
+	 * 查询test 数据表数据
+	 * @return
+	 */
+    List<GridVO> getTestGridData();
 }
diff --git a/src/main/java/org/springblade/modules/grid/mapper/GridRangeMapper.xml b/src/main/java/org/springblade/modules/grid/mapper/GridRangeMapper.xml
index 06361ec..f44122a 100644
--- a/src/main/java/org/springblade/modules/grid/mapper/GridRangeMapper.xml
+++ b/src/main/java/org/springblade/modules/grid/mapper/GridRangeMapper.xml
@@ -7,5 +7,10 @@
         select * from jczz_grid_range where 1=1
     </select>
 
+    <!--查询test 数据表数据-->
+    <select id="getTestGridData" resultType="org.springblade.modules.grid.vo.GridVO">
+        select grid as gridName,SUBSTRING_INDEX(area, "-", -1) as communityName,std_id as principal from jczz_test
+    </select>
+
 
 </mapper>
diff --git a/src/main/java/org/springblade/modules/grid/service/IGridRangeService.java b/src/main/java/org/springblade/modules/grid/service/IGridRangeService.java
index 738c00e..4242998 100644
--- a/src/main/java/org/springblade/modules/grid/service/IGridRangeService.java
+++ b/src/main/java/org/springblade/modules/grid/service/IGridRangeService.java
@@ -39,5 +39,8 @@
 	 */
 	IPage<GridRangeVO> selectGridRangePage(IPage<GridRangeVO> page, GridRangeVO gridRange);
 
-
+	/**
+	 * 网格范围表数据处理
+	 */
+    Object dataHandle();
 }
diff --git a/src/main/java/org/springblade/modules/grid/service/impl/GridRangeServiceImpl.java b/src/main/java/org/springblade/modules/grid/service/impl/GridRangeServiceImpl.java
index e0bdfed..2586506 100644
--- a/src/main/java/org/springblade/modules/grid/service/impl/GridRangeServiceImpl.java
+++ b/src/main/java/org/springblade/modules/grid/service/impl/GridRangeServiceImpl.java
@@ -16,14 +16,22 @@
  */
 package org.springblade.modules.grid.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.modules.grid.entity.GridEntity;
 import org.springblade.modules.grid.entity.GridRangeEntity;
+import org.springblade.modules.grid.service.IGridService;
 import org.springblade.modules.grid.vo.GridRangeVO;
 import org.springblade.modules.grid.mapper.GridRangeMapper;
 import org.springblade.modules.grid.service.IGridRangeService;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.modules.grid.vo.GridVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
 
 /**
  * 网格范围表 服务实现类
@@ -34,10 +42,43 @@
 @Service
 public class GridRangeServiceImpl extends ServiceImpl<GridRangeMapper, GridRangeEntity> implements IGridRangeService {
 
+	@Autowired
+	private IGridService gridService;
+
 	@Override
 	public IPage<GridRangeVO> selectGridRangePage(IPage<GridRangeVO> page, GridRangeVO gridRange) {
 		return page.setRecords(baseMapper.selectGridRangePage(page, gridRange));
 	}
 
-
+	/**
+	 * 网格范围表数据处理
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public Object dataHandle() {
+		// 查询test 数据表数据
+		List<GridVO> list = baseMapper.getTestGridData();
+		// 匹配
+		for (GridVO gridVO : list) {
+			QueryWrapper<GridEntity> wrapper = new QueryWrapper<>();
+			wrapper.eq("grid_name",gridVO.getGridName())
+				.eq("community_name",gridVO.getCommunityName())
+				.eq("is_deleted",0);
+			GridEntity one = gridService.getOne(wrapper);
+			if (null!=one){
+				// 查询是否已存在绑定关系,已有则不新增
+				QueryWrapper<GridRangeEntity> queryWrapper = new QueryWrapper<>();
+				queryWrapper.eq("grid_id",one.getId()).eq("house_code",gridVO.getPrincipal());
+				GridRangeEntity gridRangeEntity = getOne(queryWrapper);
+				if (null== gridRangeEntity) {
+					GridRangeEntity rangeEntity = new GridRangeEntity();
+					rangeEntity.setGridId(one.getId());
+					rangeEntity.setHouseCode(gridVO.getPrincipal());
+					// 新增
+					save(rangeEntity);
+				}
+			}
+		}
+		return null;
+	}
 }
diff --git a/src/main/java/org/springblade/modules/house/service/impl/HouseServiceImpl.java b/src/main/java/org/springblade/modules/house/service/impl/HouseServiceImpl.java
index e6bca35..f3ee606 100644
--- a/src/main/java/org/springblade/modules/house/service/impl/HouseServiceImpl.java
+++ b/src/main/java/org/springblade/modules/house/service/impl/HouseServiceImpl.java
@@ -20,6 +20,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.logging.log4j.util.Strings;
+import org.springblade.common.utils.IdUtils;
 import org.springblade.common.utils.NodeTreeUtil;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.utils.BeanUtil;
@@ -162,7 +163,7 @@
 	 * @param houseAndHoldExcel
 	 */
 	@Transactional(rollbackFor = Exception.class)
-	public void saveHouseholdData(HouseAndHoldExcel houseAndHoldExcel) {
+	public void saveHouseData(HouseAndHoldExcel houseAndHoldExcel) {
 		// 查询库中是否已存在
 		QueryWrapper<HouseEntity> wrapper = new QueryWrapper<>();
 		wrapper.eq("house_code",houseAndHoldExcel.getHouseCode())
@@ -188,6 +189,12 @@
 			houseEntity.setCreateUser(AuthUtil.getUserId().toString());
 			houseEntity.setUpdateTime(new Date());
 			houseEntity.setUpdateUser(AuthUtil.getUserId().toString());
+			if (!Strings.isBlank(houseAndHoldExcel.getHouseCode())) {
+				houseEntity.setSource(1);
+			}else {
+				houseEntity.setHouseCode(IdUtils.getIdBy36());
+				houseEntity.setSource(2);
+			}
 			// 新增
 			save(houseEntity);
 		}
@@ -198,7 +205,7 @@
 	 * @param houseAndHoldExcel
 	 */
 	@Transactional(rollbackFor = Exception.class)
-	public void saveHouseData(HouseAndHoldExcel houseAndHoldExcel) {
+	public void saveHouseholdData(HouseAndHoldExcel houseAndHoldExcel) {
 		// 查询库中是否已存在
 		QueryWrapper<HouseholdEntity> wrapper = new QueryWrapper<>();
 		wrapper.eq("house_code",houseAndHoldExcel.getHouseCode())
diff --git a/src/main/java/org/springblade/modules/system/controller/DeptController.java b/src/main/java/org/springblade/modules/system/controller/DeptController.java
index 99c2ba4..b67d1cb 100644
--- a/src/main/java/org/springblade/modules/system/controller/DeptController.java
+++ b/src/main/java/org/springblade/modules/system/controller/DeptController.java
@@ -190,5 +190,15 @@
 		return R.data(list);
 	}
 
+	/**
+	 * 数据处理(社区绑定)
+	 */
+	@GetMapping("/dataHandle")
+	public R dataHandle() {
+		return R.data(deptService.dataHandle());
+	}
+
+
+
 
 }
diff --git a/src/main/java/org/springblade/modules/system/service/IDeptService.java b/src/main/java/org/springblade/modules/system/service/IDeptService.java
index e14b643..b996997 100644
--- a/src/main/java/org/springblade/modules/system/service/IDeptService.java
+++ b/src/main/java/org/springblade/modules/system/service/IDeptService.java
@@ -122,4 +122,9 @@
 	 * @return
 	 */
 	boolean saveOrUpdateDeptInfo(Dept dept);
+
+	/**
+	 * 数据处理(社区绑定)
+	 */
+    Object dataHandle();
 }
diff --git a/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
index c59e71d..070d0b2 100644
--- a/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
+++ b/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
@@ -21,6 +21,7 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springblade.common.cache.SysCache;
+import org.springblade.common.node.TreeStringNode;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.constant.BladeConstant;
@@ -33,6 +34,7 @@
 import org.springblade.modules.system.entity.UserDept;
 import org.springblade.modules.system.mapper.DeptMapper;
 import org.springblade.modules.system.service.IDeptService;
+import org.springblade.modules.system.service.IRegionService;
 import org.springblade.modules.system.vo.DeptVO;
 import org.springblade.modules.system.wrapper.DeptWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -55,6 +57,9 @@
 
 	@Autowired
 	private IPropertyCompanyService propertyCompanyService;
+
+	@Autowired
+	private IRegionService regionService;
 
 	@Override
 	public List<DeptVO> lazyList(String tenantId, Long parentId, Map<String, Object> param) {
@@ -262,4 +267,32 @@
 		return DeptWrapper.build().listNodeVO(deptList);
 	}
 
+	/**
+	 * 数据处理(社区绑定)
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public Object dataHandle() {
+		// 查询未绑定的网格
+		List<TreeStringNode> list = regionService.getTree("361102005");
+		// 遍历
+		for (TreeStringNode treeStringNode : list) {
+			// 查询是否已创建
+			QueryWrapper<Dept> wrapper = new QueryWrapper<>();
+			wrapper.eq("is_deleted",0).eq("dept_name",treeStringNode.getName());
+			Dept one = getOne(wrapper);
+			if (null==one){
+				// 新增
+				Dept dept = new Dept();
+				dept.setParentId(1733066387113734145L);
+				dept.setFullName(treeStringNode.getName());
+				dept.setDeptName(treeStringNode.getName());
+				dept.setDeptCategory(1);
+				dept.setTenantId("000000");
+				// 新增
+				save(dept);
+			}
+		}
+		return null;
+	}
 }

--
Gitblit v1.9.3