From d35386e9b1a5d87aa32b4367a745ba550b06ba12 Mon Sep 17 00:00:00 2001
From: lin <sbla5888@163.com>
Date: Sat, 02 Mar 2024 11:52:40 +0800
Subject: [PATCH] 房屋查询过滤

---
 src/main/java/org/springblade/common/param/CommonParamSet.java                 |   11 +++
 src/main/java/org/springblade/modules/house/service/impl/HouseServiceImpl.java |   12 +++-
 src/test/java/org/springblade/test/BladeTest.java                              |   39 +++++++------
 src/main/java/org/springblade/modules/house/entity/HouseEntity.java            |    6 ++
 src/main/java/org/springblade/modules/house/mapper/HouseMapper.java            |    1 
 src/main/java/org/springblade/modules/house/vo/HouseVO.java                    |    9 +++
 src/main/java/org/springblade/modules/house/mapper/HouseMapper.xml             |   55 ++++++++++++++++-
 7 files changed, 105 insertions(+), 28 deletions(-)

diff --git a/src/main/java/org/springblade/common/param/CommonParamSet.java b/src/main/java/org/springblade/common/param/CommonParamSet.java
index ebdf008..917d8f9 100644
--- a/src/main/java/org/springblade/common/param/CommonParamSet.java
+++ b/src/main/java/org/springblade/common/param/CommonParamSet.java
@@ -1,5 +1,6 @@
 package org.springblade.common.param;
 
+import org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.util.Strings;
 import org.springblade.common.cache.SysCache;
 import org.springblade.common.utils.AuthUtils;
@@ -62,8 +63,14 @@
 				}
 			}
 			// 超级管理员、系统管理员、公安管理员不过滤数据
-			isAdministrator = AuthUtils.isAdmin(roleName) || AuthUtils.isAdmin() ||
-				AuthUtils.isAdministrator() || AuthUtils.isGaAdmin() ? 1 : 2;
+//			isAdministrator = AuthUtils.isAdmin(roleName) || AuthUtils.isAdmin() ||
+//				AuthUtils.isAdministrator() || AuthUtils.isGaAdmin() ? 1 : 2;
+			if (StringUtils.isNotBlank(roleName)) {
+				isAdministrator = AuthUtils.isAdmin(roleName) ? 1 : 2;
+			} else {
+				isAdministrator = AuthUtils.isAdmin() ||
+					AuthUtils.isAdministrator() || AuthUtils.isGaAdmin() ? 1 : 2;
+			}
 
 			if (isAdministrator == 2) {
 				// 获取当前用户的所属行政区划编号()
diff --git a/src/main/java/org/springblade/modules/house/entity/HouseEntity.java b/src/main/java/org/springblade/modules/house/entity/HouseEntity.java
index 869f2b6..02bd8b5 100644
--- a/src/main/java/org/springblade/modules/house/entity/HouseEntity.java
+++ b/src/main/java/org/springblade/modules/house/entity/HouseEntity.java
@@ -152,6 +152,12 @@
 	private String gridCode;
 
 	/**
+	 * 警务网格编号
+	 */
+	@ApiModelProperty(value = "警务网格编号")
+	private String jwGridCode;
+
+	/**
 	 * 来源 1:地址总表  2:国控采集
 	 */
 	@ApiModelProperty(value = "来源 1:地址总表  2:国控采集")
diff --git a/src/main/java/org/springblade/modules/house/mapper/HouseMapper.java b/src/main/java/org/springblade/modules/house/mapper/HouseMapper.java
index 6356f13..2809c93 100644
--- a/src/main/java/org/springblade/modules/house/mapper/HouseMapper.java
+++ b/src/main/java/org/springblade/modules/house/mapper/HouseMapper.java
@@ -48,6 +48,7 @@
 	List<HouseVO> selectHousePage(IPage page,
 								  @Param("house") HouseVO house,
 								  @Param("regionChildCodesList") List<String> regionChildCodesList,
+								  @Param("gridCodeList") List<String> gridCodeList,
 								  @Param("isAdministrator") Integer isAdministrator);
 
 	/**
diff --git a/src/main/java/org/springblade/modules/house/mapper/HouseMapper.xml b/src/main/java/org/springblade/modules/house/mapper/HouseMapper.xml
index b33fe92..07e5f12 100644
--- a/src/main/java/org/springblade/modules/house/mapper/HouseMapper.xml
+++ b/src/main/java/org/springblade/modules/house/mapper/HouseMapper.xml
@@ -140,6 +140,7 @@
         from jczz_house jh
         left join jczz_grid jg on jg.grid_code = jh.grid_code and jg.is_deleted = 0
         left join blade_region br on br.code = jg.community_code
+        LEFT JOIN jczz_police_affairs_grid jpag on jh.jw_grid_code= jpag.jw_grid_code and jpag.is_deleted = 0
         <where>
             <if test="house.id != null ">and jh.id = #{house.id}</if>
             <if test="house.streetCode != null and house.streetCode != ''">
@@ -175,12 +176,56 @@
             <if test="house.buildingNo != null ">and jh.building_no = #{house.buildingNo}</if>
             <if test="isAdministrator==2">
                 <choose>
-                    <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
-                        and jg.community_code in
-                        <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
-                            #{code}
-                        </foreach>
+                    <when test="house.roleName != null and house.roleName != ''">
+                        <if test="house.roleName=='wgy'">
+                            <choose>
+                                <when test="gridCodeList !=null and gridCodeList.size()>0">
+                                    and jh.grid_code in
+                                    <foreach collection="gridCodeList" item="code" open="(" close=")" separator=",">
+                                        #{code}
+                                    </foreach>
+                                </when>
+                                <otherwise>
+                                    and jh.grid_code in ('')
+                                </otherwise>
+                            </choose>
+                        </if>
+                        <if test="house.roleName=='mj'">
+                            <choose>
+                                <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
+                                    and jpag.community_code in
+                                    <foreach collection="regionChildCodesList" item="code" open="(" close=")"
+                                             separator=",">
+                                        #{code}
+                                    </foreach>
+                                </when>
+                                <otherwise>
+                                    and jpag.community_code in ('')
+                                </otherwise>
+                            </choose>
+                        </if>
                     </when>
+                    <otherwise>
+                        <choose>
+                            <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
+                                and
+                                (
+                                jg.grid_code in
+                                <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+                                    #{code}
+                                </foreach>
+                                or
+                                jpag.community_code in
+                                <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+                                    #{code}
+                                </foreach>
+                                )
+                            </when>
+                            <otherwise>
+
+                            </otherwise>
+                        </choose>
+                    </otherwise>
                 </choose>
             </if>
             <if test="house.parentId != 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 6399f23..08c67f9 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
@@ -23,6 +23,7 @@
 import org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.util.Strings;
 import org.springblade.common.cache.SysCache;
+import org.springblade.common.param.CommonParamSet;
 import org.springblade.common.utils.IdUtils;
 import org.springblade.common.utils.NodeTreeUtil;
 import org.springblade.common.utils.SpringUtils;
@@ -51,6 +52,7 @@
 import org.springblade.modules.system.entity.User;
 import org.springblade.modules.system.service.IRegionService;
 import org.springblade.modules.system.service.IUserService;
+import org.springblade.modules.taskPlaceSelfCheck.vo.TaskPlaceSelfCheckVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -87,9 +89,13 @@
 
 	@Override
 	public IPage<HouseVO> selectHousePage(IPage<HouseVO> page, HouseVO house) {
-		List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
-		Integer isAdministrator = AuthUtil.isAdministrator() == true ? 1 : 2;
-		List<HouseVO> houseVOS = baseMapper.selectHousePage(page, house, regionChildCodesList, isAdministrator);
+//		List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
+//		Integer isAdministrator = AuthUtil.isAdministrator() == true ? 1 : 2;
+		CommonParamSet commonParamSet = new CommonParamSet().invoke(HouseVO.class,house);
+
+		List<HouseVO> houseVOS = baseMapper.selectHousePage(page, house,
+			commonParamSet.getRegionChildCodesList(),commonParamSet.getGridCodeList(), commonParamSet.getIsAdministrator()
+			);
 		return page.setRecords(houseVOS);
 	}
 
diff --git a/src/main/java/org/springblade/modules/house/vo/HouseVO.java b/src/main/java/org/springblade/modules/house/vo/HouseVO.java
index 21c54a5..8a9cd0a 100644
--- a/src/main/java/org/springblade/modules/house/vo/HouseVO.java
+++ b/src/main/java/org/springblade/modules/house/vo/HouseVO.java
@@ -16,6 +16,7 @@
  */
 package org.springblade.modules.house.vo;
 
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.springblade.modules.house.entity.HouseEntity;
@@ -73,5 +74,13 @@
 	//	标签父级id
 	private Integer parentId;
 
+	// 角色名称
+	@ApiModelProperty(value = "角色名称", example = "")
+	private String roleName;
+
+	// 社区编号
+	@ApiModelProperty(value = "社区编号", example = "")
+	private String communityCode;
+
 	private List<UserHouseLabelVO> userHouseLabelVOList = new ArrayList<>();
 }
diff --git a/src/test/java/org/springblade/test/BladeTest.java b/src/test/java/org/springblade/test/BladeTest.java
index cb60248..0098ce5 100644
--- a/src/test/java/org/springblade/test/BladeTest.java
+++ b/src/test/java/org/springblade/test/BladeTest.java
@@ -1,11 +1,13 @@
 package org.springblade.test;
 
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.apache.logging.log4j.util.Strings;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springblade.common.utils.SpringUtils;
 import org.springblade.core.test.BladeBootTest;
 import org.springblade.core.test.BladeSpringExtension;
+import org.springblade.core.tool.utils.SpringUtil;
 import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.flow.engine.entity.FlowModel;
 import org.springblade.flow.engine.service.FlowEngineService;
@@ -15,6 +17,8 @@
 import org.springblade.modules.house.service.IHouseService;
 import org.springblade.modules.place.entity.PlaceEntity;
 import org.springblade.modules.place.service.IPlaceService;
+import org.springblade.modules.police.entity.PoliceAffairsGridEntity;
+import org.springblade.modules.police.service.IPoliceAffairsGridService;
 import org.springblade.modules.task.entity.TaskReportForRepairsEntity;
 import org.springblade.modules.task.service.ITaskReportForRepairsService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -40,7 +44,7 @@
 	private IDoorplateAddressService iDoorplateAddressService;
 
 	@Autowired
-	private ITaskReportForRepairsService iTaskReportForRepairsService;
+	private IHouseService iHouseService;
 
 //	@Test
 	public void test() {
@@ -59,25 +63,24 @@
 
 //	@Test
 	public void test2() {
-		List<TaskReportForRepairsEntity> list = iTaskReportForRepairsService.list();
-		IHouseService bean = SpringUtils.getBean(IHouseService.class);
-		IPlaceService bean2 = SpringUtils.getBean(IPlaceService.class);
-
-		for (TaskReportForRepairsEntity taskReportForRepairsEntity : list) {
-			HouseEntity houseEntity = bean.getOne(Wrappers.<HouseEntity>lambdaQuery()
-				.eq(HouseEntity::getHouseCode, taskReportForRepairsEntity.getAddressCode()));
-			if (houseEntity != null) {
-//				taskReportForRepairsEntity.setGridCode(houseEntity.getGridCode());
-				iTaskReportForRepairsService.updateById(taskReportForRepairsEntity);
-			}else {
-				PlaceEntity placeEntity = bean2.getOne(Wrappers.<PlaceEntity>lambdaQuery()
-					.eq(PlaceEntity::getHouseCode, taskReportForRepairsEntity.getAddressCode()).last("limit 1"));
-//				taskReportForRepairsEntity.setGridCode(placeEntity.getGridCode());
-				iTaskReportForRepairsService.updateById(taskReportForRepairsEntity);
+		// 查询 警务网格为空的数据
+		List<HouseEntity> list = iHouseService.list(Wrappers.<HouseEntity>lambdaQuery().eq(HouseEntity::getIsDeleted,0));
+		// 遍历
+		for (HouseEntity houseEntity : list) {
+			if (!Strings.isBlank(houseEntity.getLng())) {
+				// 空间分析
+				//点坐标解析
+				String point = "'POINT(" + houseEntity.getLng() + " " + houseEntity.getLat() + ")'";
+				List<PoliceAffairsGridEntity> policeAffairsGridEntities
+					= SpringUtil.getBean(IPoliceAffairsGridService.class).spatialAnalysis(point);
+				if (policeAffairsGridEntities.size() > 0) {
+					PoliceAffairsGridEntity policeAffairsGridEntity = policeAffairsGridEntities.get(0);
+					houseEntity.setJwGridCode(policeAffairsGridEntity.getJwGridCode());
+					// 更新
+					iHouseService.updateById(houseEntity);
+				}
 			}
 		}
-
-
 	}
 
 	@Test

--
Gitblit v1.9.3