From 80de84c1ba30d550d9b6b5834c833451dd58afe3 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Wed, 31 Jan 2024 23:28:14 +0800
Subject: [PATCH] 场所网格绑定修改

---
 src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml             |   19 +++++++--
 src/main/java/org/springblade/modules/grid/service/impl/GridServiceImpl.java                         |   15 +++++--
 src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java            |    4 +-
 src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java         |    4 +-
 src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java                       |   28 ++++++++------
 src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java |    6 +-
 src/main/java/org/springblade/modules/grid/mapper/GridMapper.java                                    |    2 
 src/main/java/org/springblade/modules/grid/service/IGridService.java                                 |    3 +
 src/main/java/org/springblade/modules/grid/controller/GridController.java                            |    5 +-
 9 files changed, 54 insertions(+), 32 deletions(-)

diff --git a/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java b/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java
index d9d5eee..172f7f8 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java
+++ b/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java
@@ -147,10 +147,10 @@
 
 	/**
 	 * 查询社区信息
-	 * @param name
+	 * @param doorplateAddressEntity
 	 * @return
 	 */
-	List<DoorplateAddressEntity> getAllDoorplateAddress(@Param("name") String name);
+	List<DoorplateAddressEntity> getAllDoorplateAddress(@Param("doorplateAddressEntity") DoorplateAddressEntity doorplateAddressEntity);
 
 	/**
 	 * 获取房屋树
diff --git a/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml b/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
index 4346da8..31c77b0 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
+++ b/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
@@ -332,10 +332,21 @@
 
     <!--查询社区信息-->
     <select id="getAllDoorplateAddress" resultType="org.springblade.modules.doorplateAddress.entity.DoorplateAddressEntity">
-        select * from jczz_doorplate_address
-        where 1=1
-        <if test="name!=null and name!=''">
-            and nei_name = #{name}
+        select
+        jda.id,
+        jda.address_code,
+        jda.aoi_code,
+        jda.aoi_name,
+        jda.x,
+        jda.y
+        from jczz_doorplate_address jda
+        left join jczz_grid_range jgr on jda.address_code = jgr.house_code
+        where 1=1 and jgr.id is null
+        <if test="doorplateAddressEntity.neiName!=null and doorplateAddressEntity.neiName!=''">
+            and jda.nei_name = #{doorplateAddressEntity.neiName}
+        </if>
+        <if test="doorplateAddressEntity.townStreetName!=null and doorplateAddressEntity.townStreetName!=''">
+            and jda.town_street_name = #{doorplateAddressEntity.townStreetName}
         </if>
     </select>
 
diff --git a/src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java b/src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java
index a4d6e5f..2edec81 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java
+++ b/src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java
@@ -81,10 +81,10 @@
 
 	/**
 	 * 查询社区信息
-	 * @param name
+	 * @param doorplateAddressEntity
 	 * @return
 	 */
-	List<DoorplateAddressEntity> getAllDoorplateAddress(String name);
+	List<DoorplateAddressEntity> getAllDoorplateAddress(DoorplateAddressEntity doorplateAddressEntity);
 
 	/**
 	 * 获取房屋树
diff --git a/src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java b/src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java
index 6cb1b6b..b7f2a0d 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java
+++ b/src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java
@@ -642,12 +642,12 @@
 	/**
 	 * 查询社区信息
 	 *
-	 * @param name
+	 * @param doorplateAddressEntity
 	 * @return
 	 */
 	@Override
-	public List<DoorplateAddressEntity> getAllDoorplateAddress(String name) {
-		return baseMapper.getAllDoorplateAddress(name);
+	public List<DoorplateAddressEntity> getAllDoorplateAddress(DoorplateAddressEntity doorplateAddressEntity) {
+		return baseMapper.getAllDoorplateAddress(doorplateAddressEntity);
 	}
 
 	/**
diff --git a/src/main/java/org/springblade/modules/grid/controller/GridController.java b/src/main/java/org/springblade/modules/grid/controller/GridController.java
index 85a7e66..b93abe5 100644
--- a/src/main/java/org/springblade/modules/grid/controller/GridController.java
+++ b/src/main/java/org/springblade/modules/grid/controller/GridController.java
@@ -28,6 +28,7 @@
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.modules.doorplateAddress.entity.DoorplateAddressEntity;
 import org.springblade.modules.grid.excel.GridExcel;
 import org.springblade.modules.grid.excel.GridImporter;
 import org.springblade.modules.system.excel.UserExcel;
@@ -156,8 +157,8 @@
 	 * 空间分析
 	 */
 	@GetMapping("/spatialAnalysis")
-	public R spatialAnalysis() {
-		return R.data(gridService.spatialAnalysis());
+	public R spatialAnalysis(DoorplateAddressEntity addressEntity) {
+		return R.data(gridService.spatialAnalysis(addressEntity));
 	}
 
 	/**
diff --git a/src/main/java/org/springblade/modules/grid/mapper/GridMapper.java b/src/main/java/org/springblade/modules/grid/mapper/GridMapper.java
index 396004f..4438105 100644
--- a/src/main/java/org/springblade/modules/grid/mapper/GridMapper.java
+++ b/src/main/java/org/springblade/modules/grid/mapper/GridMapper.java
@@ -67,7 +67,7 @@
 	/**
 	 * 空间分析 mysql 5.7  点落面
 	 */
-	GridEntity spatialAnalysis(@Param("point")String point);
+	List<GridEntity> spatialAnalysis(@Param("point")String point);
 
 	/**
 	 * 根据参数查询网格数据
diff --git a/src/main/java/org/springblade/modules/grid/service/IGridService.java b/src/main/java/org/springblade/modules/grid/service/IGridService.java
index 2cd34ac..fc93d44 100644
--- a/src/main/java/org/springblade/modules/grid/service/IGridService.java
+++ b/src/main/java/org/springblade/modules/grid/service/IGridService.java
@@ -17,6 +17,7 @@
 package org.springblade.modules.grid.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.springblade.modules.doorplateAddress.entity.DoorplateAddressEntity;
 import org.springblade.modules.grid.entity.GridEntity;
 import org.springblade.modules.grid.excel.GridExcel;
 import org.springblade.modules.grid.excel.GridmanExcel;
@@ -68,7 +69,7 @@
 	/**
 	 * 空间分析
 	 */
-	Object spatialAnalysis();
+	Object spatialAnalysis(DoorplateAddressEntity addressEntity);
 
 	/**
 	 * 根据参数查询网格数据
diff --git a/src/main/java/org/springblade/modules/grid/service/impl/GridServiceImpl.java b/src/main/java/org/springblade/modules/grid/service/impl/GridServiceImpl.java
index ec91d5f..b79702d 100644
--- a/src/main/java/org/springblade/modules/grid/service/impl/GridServiceImpl.java
+++ b/src/main/java/org/springblade/modules/grid/service/impl/GridServiceImpl.java
@@ -148,19 +148,20 @@
 	 */
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public Object spatialAnalysis() {
+	public Object spatialAnalysis(DoorplateAddressEntity addressEntity) {
 		// 按社区
 		String name = null;
 //		String name = "茶山路社区居民委员会";
 		//查询社区信息
-		List<DoorplateAddressEntity> doorplateAddressEntities = doorplateAddressService.getAllDoorplateAddress(name);
+		List<DoorplateAddressEntity> doorplateAddressEntities = doorplateAddressService.getAllDoorplateAddress(addressEntity);
 		//遍历
 		for (DoorplateAddressEntity doorplateAddressEntity : doorplateAddressEntities) {
 			//点坐标解析
-			String point = "'POINT(" + doorplateAddressEntity.getX84() + " " + doorplateAddressEntity.getY84() +")'";
+			String point = "'POINT(" + doorplateAddressEntity.getX() + " " + doorplateAddressEntity.getY() +")'";
 //			String point = "'POINT(" + villageInfoExcel.getLatitude() + " " + villageInfoExcel.getLongitude() +")'";
-			GridEntity gridEntity = baseMapper.spatialAnalysis(point);
-			if (null!=gridEntity){
+			List<GridEntity> gridEntityList = baseMapper.spatialAnalysis(point);
+			if (gridEntityList.size()>0) {
+				GridEntity gridEntity = gridEntityList.get(0);
 				QueryWrapper<GridRangeEntity> queryWrapper = new QueryWrapper<>();
 				queryWrapper.eq("grid_id",gridEntity.getId()).eq("house_code",doorplateAddressEntity.getAddressCode());
 				GridRangeEntity one = gridRangeService.getOne(queryWrapper);
@@ -172,6 +173,10 @@
 					gridRangeEntity.setDistrictName(doorplateAddressEntity.getAoiName());
 					// 保存
 					gridRangeService.save(gridRangeEntity);
+				}else {
+					one.setGridId(gridEntity.getId());
+					// 更新
+					gridRangeService.updateById(one);
 				}
 			}
 		}
diff --git a/src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java b/src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java
index 6ffdbf6..26d539e 100644
--- a/src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java
+++ b/src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java
@@ -301,7 +301,7 @@
 			if (null != gridId) {
 				// 判断关联关系表是否存在
 				QueryWrapper<GridRangeEntity> wrapper = new QueryWrapper<>();
-				wrapper.eq("grid_id", gridId).eq("house_code", placeVO.getHouseCode());
+				wrapper.eq("house_code", placeVO.getHouseCode());
 				GridRangeEntity one = gridRangeService.getOne(wrapper);
 				if (null == one) {
 					// 新增
@@ -312,7 +312,7 @@
 					gridRangeService.save(gridRangeEntity);
 				}else {
 					// 修改绑定
-					one.setGridId(placeVO.getGridId());
+					one.setGridId(gridId);
 					// 修改
 					gridRangeService.updateById(one);
 				}
@@ -347,11 +347,12 @@
 			//点坐标解析
 			String point = "'POINT(" + placeVO.getLng() + " " + placeVO.getLat() +")'";
 //			String point = "'POINT(" + villageInfoExcel.getLatitude() + " " + villageInfoExcel.getLongitude() +")'";
-			GridEntity gridEntity = gridMapper.spatialAnalysis(point);
-			if (null != gridEntity) {
+			List<GridEntity> gridEntityList = gridMapper.spatialAnalysis(point);
+			if (gridEntityList.size()>0) {
+				GridEntity gridEntity = gridEntityList.get(0);
 				// 判断关联关系表是否存在
 				QueryWrapper<GridRangeEntity> wrapper = new QueryWrapper<>();
-				wrapper.eq("grid_id", gridEntity.getId()).eq("house_code", placeVO.getHouseCode());
+				wrapper.eq("house_code", placeVO.getHouseCode());
 				GridRangeEntity one = gridRangeService.getOne(wrapper);
 				if (null == one) {
 					// 新增
@@ -362,7 +363,7 @@
 					gridRangeService.save(gridRangeEntity);
 				}else {
 					// 修改绑定
-					one.setGridId(placeVO.getGridId());
+					one.setGridId(gridEntity.getId());
 					// 修改
 					gridRangeService.updateById(one);
 				}
@@ -380,12 +381,15 @@
 			//点坐标解析
 			String point = "'POINT(" + placeVO.getLng() + " " + placeVO.getLat() +")'";
 //			String point = "'POINT(" + villageInfoExcel.getLatitude() + " " + villageInfoExcel.getLongitude() +")'";
-			GridEntity gridEntity = gridMapper.spatialAnalysis(point);
-			if (null != gridEntity && !Strings.isBlank(gridEntity.getGridCode())) {
-				// 场所编号绑定
-				placeVO.setGridCode(gridEntity.getGridCode());
-				// 更新场所信息
-				updateById(placeVO);
+			List<GridEntity> gridEntityList = gridMapper.spatialAnalysis(point);
+			if (gridEntityList.size()>0) {
+				GridEntity gridEntity = gridEntityList.get(0);
+				if (null != gridEntity && !Strings.isBlank(gridEntity.getGridCode())) {
+					// 场所编号绑定
+					placeVO.setGridCode(gridEntity.getGridCode());
+					// 更新场所信息
+					updateById(placeVO);
+				}
 			}
 		}
 	}

--
Gitblit v1.9.3