From fd418c726d11b80a2e684aca27b3524c51d8f0db Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Fri, 22 Mar 2024 18:47:59 +0800
Subject: [PATCH] 门牌详情查询修改,网格范围绑定处理接口新增
---
src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml | 36 ++++++++++++
src/main/java/org/springblade/modules/grid/service/impl/GridServiceImpl.java | 4
src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java | 17 +++++
src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java | 6 ++
src/main/java/org/springblade/modules/house/service/impl/HouseServiceImpl.java | 2
src/main/java/org/springblade/modules/grid/mapper/GridMapper.xml | 3 +
src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java | 75 +++++++++++++++++++++++-
src/main/java/org/springblade/modules/grid/mapper/GridMapper.java | 2
src/main/java/org/springblade/modules/doorplateAddress/controller/DoorplateAddressController.java | 10 +++
src/main/java/org/springblade/modules/grid/service/IGridService.java | 3
10 files changed, 149 insertions(+), 9 deletions(-)
diff --git a/src/main/java/org/springblade/modules/doorplateAddress/controller/DoorplateAddressController.java b/src/main/java/org/springblade/modules/doorplateAddress/controller/DoorplateAddressController.java
index c45a1d9..c742ae1 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/controller/DoorplateAddressController.java
+++ b/src/main/java/org/springblade/modules/doorplateAddress/controller/DoorplateAddressController.java
@@ -245,6 +245,16 @@
/**
+ * 网格范围数据处理
+ * @return
+ */
+ @GetMapping("/gridRangeDataHandle")
+ public R gridRangeDataHandle(String townName,String communityName){
+ return R.data(doorplateAddressService.gridRangeDataHandle(townName,communityName));
+ }
+
+
+ /**
* 查询场所标准地址数据
* @param doorplateAddressVO
* 查询场所标准地址数据
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 8c08035..bd7e2f0 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java
+++ b/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java
@@ -239,4 +239,21 @@
* @return
*/
Integer getNotHouseListCount(@Param("townName") String townName);
+
+ /**
+ * 查询网格范围表未绑定的地址表信息数量
+ * @param townName
+ * @return
+ */
+ Integer getNotBindGridRangeDoorListCount(@Param("townName") String townName,
+ @Param("communityName") String communityName);
+
+ /**
+ * 查询所有未匹配的网格范围地址数据
+ * @param townName
+ * @param communityName
+ * @return
+ */
+ List<DoorplateAddressEntity> getNotBindGridRangeDoorList(@Param("townName") String townName,
+ @Param("communityName") String communityName);
}
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 84d4e34..06d6ebc 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
+++ b/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
@@ -700,4 +700,40 @@
</if>
limit 0,1000
</select>
+
+ <!--查询网格范围表未绑定的地址表信息数量-->
+ <select id="getNotBindGridRangeDoorListCount" resultType="java.lang.Integer">
+ select count(*) from jczz_doorplate_address jda
+ left join jczz_grid_range jgr on jgr.house_code = jda.address_code
+ where 1=1
+ and jgr.house_code is null
+ <if test="townName!=null and townName!=''">
+ and jda.town_street_name like concat('%',#{townName},'%')
+ </if>
+ <if test="communityName!=null and communityName!=''">
+ and jda.nei_name like concat('%',#{communityName},'%')
+ </if>
+ limit 0,1000
+ </select>
+
+ <!--查询所有未匹配的网格范围地址数据-->
+ <select id="getNotBindGridRangeDoorList" resultType="org.springblade.modules.doorplateAddress.entity.DoorplateAddressEntity">
+ select
+ jda.address_code,
+ jda.aoi_code,
+ jda.building_code,
+ jda.x,
+ jda.y
+ from jczz_doorplate_address jda
+ left join jczz_grid_range jgr on jgr.house_code = jda.address_code
+ where 1=1
+ and jgr.house_code is null
+ <if test="townName!=null and townName!=''">
+ and jda.town_street_name like concat('%',#{townName},'%')
+ </if>
+ <if test="communityName!=null and communityName!=''">
+ and jda.nei_name like concat('%',#{communityName},'%')
+ </if>
+ limit 0,1000
+ </select>
</mapper>
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 cbd3556..ad28839 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java
+++ b/src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java
@@ -137,4 +137,10 @@
* @return
*/
List<DoorplateAddressVO> getHouseBuildingCode(String districtId);
+
+ /**
+ * 网格范围数据处理
+ * @return
+ */
+ boolean gridRangeDataHandle(String townName,String communityName);
}
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 3c5fc89..d22f6a2 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
@@ -29,6 +29,7 @@
import org.springblade.common.utils.NodeTreeUtil;
import org.springblade.common.utils.SpringUtils;
import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.modules.backblast.entity.BackblastPubRecordEntity;
import org.springblade.modules.category.dto.CategoryDTO;
import org.springblade.modules.category.service.ICategoryService;
import org.springblade.modules.community.entity.CommunityEntity;
@@ -42,7 +43,9 @@
import org.springblade.modules.doorplateAddress.vo.DoorplateAddressVOTree;
import org.springblade.modules.doorplateAddress.vo.FuncNode;
import org.springblade.modules.grid.entity.GridEntity;
+import org.springblade.modules.grid.entity.GridRangeEntity;
import org.springblade.modules.grid.entity.GridmanEntity;
+import org.springblade.modules.grid.service.IGridRangeService;
import org.springblade.modules.grid.service.IGridService;
import org.springblade.modules.grid.service.IGridmanService;
import org.springblade.modules.house.entity.HouseEntity;
@@ -59,6 +62,7 @@
import org.springblade.modules.place.service.IPlaceExtService;
import org.springblade.modules.place.service.IPlaceService;
import org.springblade.modules.place.vo.PlaceVO;
+import org.springblade.modules.police.entity.PoliceAffairsGridEntity;
import org.springblade.modules.police.service.IPoliceAffairsGridService;
import org.springblade.modules.system.entity.Region;
import org.springblade.modules.system.service.IRegionService;
@@ -718,7 +722,7 @@
if (null != houseParam.getRoleName() && !houseParam.getRoleName().equals("")) {
if (houseParam.getRoleName().equals("网格员") && !userId.equals("1726859808689696770")) {
// 查询对应的房屋地址code
- stringList = gridService.getAddressCodeListByUserId(AuthUtil.getUserId());
+ stringList = gridService.getAddressCodeListByUserId(AuthUtil.getUserId(),null);
}
}
return stringList;
@@ -942,9 +946,8 @@
if (!Strings.isBlank(doorplateAddress.getRoleName())) {
// 判断是否有权限
if (doorplateAddress.getRoleName().equals("网格员")) {
- list = gridService.getAddressCodeListByUserId(AuthUtil.getUserId());
- boolean contains = list.contains(doorplateAddress.getAddressCode());
- if (list.size() == 0 || !contains) {
+ list = gridService.getAddressCodeListByUserId(AuthUtil.getUserId(),doorplateAddress.getAddressCode());
+ if (list.size() == 0) {
// 无权限
doorplateAddressVO.setIsJur(2);
} else {
@@ -1037,4 +1040,68 @@
public List<DoorplateAddressVO> getHouseBuildingCode(String districtId) {
return baseMapper.getHouseBuildingCode(districtId);
}
+
+ /**
+ * 网格范围数据处理
+ * @return
+ */
+ @Override
+ public boolean gridRangeDataHandle(String townName,String communityName) {
+ // 查询未匹配的网格范围地址信息
+ // 查询总数
+ Integer count = baseMapper.getNotBindGridRangeDoorListCount(townName,communityName);
+ if (count > 0) {
+ IGridRangeService gridRangeService = SpringUtils.getBean(IGridRangeService.class);
+ int num = count / 1000;
+ for (int i = 0; i <= num + 1; i++) {
+ // 查询所有未匹配的网格范围地址数据
+ List<DoorplateAddressEntity> list = baseMapper.getNotBindGridRangeDoorList(townName,communityName);
+ // 需要新增的网格范围 list
+ List<GridRangeEntity> gridRangeEntityList = new ArrayList<>();
+ // 处理户室数据
+ for (DoorplateAddressEntity doorplateAddressEntity : list) {
+ // 查询是否已存在,存在就插入,不存在则插入
+ QueryWrapper<GridRangeEntity> wrapper = new QueryWrapper<>();
+ wrapper.eq("house_code", doorplateAddressEntity.getAddressCode());
+ GridRangeEntity one = gridRangeService.getOne(wrapper);
+ if (null == one) {
+ GridRangeEntity gridRangeEntity = new GridRangeEntity();
+ gridRangeEntity.setHouseCode(doorplateAddressEntity.getAddressCode());
+ gridRangeEntity.setDistrictCode(doorplateAddressEntity.getAoiCode());
+ gridRangeEntity.setBuilding(doorplateAddressEntity.getBuildingCode());
+ // 设置网格
+ setGridInfo(doorplateAddressEntity,gridRangeEntity);
+ // 加入集合
+ gridRangeEntityList.add(gridRangeEntity);
+ }
+ }
+ // 批量插入
+ gridRangeService.saveBatch(gridRangeEntityList);
+ }
+ }
+ return false;
+ }
+
+ /**
+ * 设置警格网格信息
+ * @param doorplateAddressEntity
+ */
+ public void setGridInfo(DoorplateAddressEntity doorplateAddressEntity,GridRangeEntity gridRangeEntity) {
+ // 根据位置设置网格,警格编号
+// IPoliceAffairsGridService policeAffairsGridService = SpringUtils.getBean(IPoliceAffairsGridService.class);
+ String point = "'POINT(" + doorplateAddressEntity.getX() + " " + doorplateAddressEntity.getY() + ")'";
+ //点坐标解析网格
+ List<GridEntity> gridEntityList = gridService.spatialAnalysis(point);
+ if (gridEntityList.size()>0){
+ GridEntity gridEntity = gridEntityList.get(0);
+ gridRangeEntity.setGridId(gridEntity.getId());
+ gridRangeEntity.setGridCode(gridEntity.getGridCode());
+ }
+// //点坐标解析警格
+// List<PoliceAffairsGridEntity> policeAffairsGridEntityList = policeAffairsGridService.spatialAnalysis(point);
+// if (policeAffairsGridEntityList.size()>0){
+// PoliceAffairsGridEntity policeAffairsGridEntity = policeAffairsGridEntityList.get(0);
+// backblastPubRecord.setJwGridCode(policeAffairsGridEntity.getJwGridCode());
+// }
+ }
}
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 b3222f5..fba8db9 100644
--- a/src/main/java/org/springblade/modules/grid/mapper/GridMapper.java
+++ b/src/main/java/org/springblade/modules/grid/mapper/GridMapper.java
@@ -62,7 +62,7 @@
* @param userId
* @return
*/
- List<String> getAddressCodeListByUserId(@Param("userId") Long userId);
+ List<String> getAddressCodeListByUserId(@Param("userId") Long userId,@Param("addressCode") String addressCode);
/**
* 空间分析 mysql 5.7 点落面
diff --git a/src/main/java/org/springblade/modules/grid/mapper/GridMapper.xml b/src/main/java/org/springblade/modules/grid/mapper/GridMapper.xml
index 203853c..ce07dc3 100644
--- a/src/main/java/org/springblade/modules/grid/mapper/GridMapper.xml
+++ b/src/main/java/org/springblade/modules/grid/mapper/GridMapper.xml
@@ -74,6 +74,9 @@
left join jczz_gridman jgm on jgm.grid_id = jg.id and jgm.is_deleted = 0
where 1=1
and jgm.user_id = #{userId}
+ <if test="addressCode!=null and addressCode!=''">
+ and jgr.house_code = #{addressCode}
+ </if>
</select>
<!--判断该小区点在哪个派出所-->
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 633f345..c116ad2 100644
--- a/src/main/java/org/springblade/modules/grid/service/IGridService.java
+++ b/src/main/java/org/springblade/modules/grid/service/IGridService.java
@@ -62,9 +62,10 @@
/**
* 根据用户id(网格员)查询对应的房屋地址code
* @param userId
+ * @param addressCode 地址编码
* @return
*/
- List<String> getAddressCodeListByUserId(Long userId);
+ List<String> getAddressCodeListByUserId(Long userId,String addressCode);
/**
* 空间分析
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 abaaffe..7c09a82 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
@@ -142,8 +142,8 @@
* @return
*/
@Override
- public List<String> getAddressCodeListByUserId(Long userId) {
- return baseMapper.getAddressCodeListByUserId(userId);
+ public List<String> getAddressCodeListByUserId(Long userId,String addressCode) {
+ return baseMapper.getAddressCodeListByUserId(userId,addressCode);
}
/**
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 5de078b..1f0442a 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
@@ -214,7 +214,7 @@
if (null != houseParam.getRoleName() && !houseParam.getRoleName().equals("")) {
if (houseParam.getRoleName().equals("网格员")) {
// 查询对应的房屋地址code
- stringList = gridService.getAddressCodeListByUserId(AuthUtil.getUserId());
+ stringList = gridService.getAddressCodeListByUserId(AuthUtil.getUserId(),null);
}
}
return stringList;
--
Gitblit v1.9.3