From 86ad1fbba8961fe2a7875a02c52372328daa59dd Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Wed, 07 Feb 2024 15:57:16 +0800
Subject: [PATCH] 场所检查数据过滤

---
 src/main/java/org/springblade/modules/place/service/impl/PlaceCheckServiceImpl.java |   32 +++++++++++++++
 src/main/java/org/springblade/modules/place/mapper/PlaceCheckMapper.xml             |   66 ++++++++++++++++++++++++++++++--
 src/main/java/org/springblade/modules/place/mapper/PlaceCheckMapper.java            |    5 ++
 src/main/java/org/springblade/modules/place/vo/PlaceCheckVO.java                    |   10 +++++
 4 files changed, 106 insertions(+), 7 deletions(-)

diff --git a/src/main/java/org/springblade/modules/place/mapper/PlaceCheckMapper.java b/src/main/java/org/springblade/modules/place/mapper/PlaceCheckMapper.java
index be134a4..8cf063d 100644
--- a/src/main/java/org/springblade/modules/place/mapper/PlaceCheckMapper.java
+++ b/src/main/java/org/springblade/modules/place/mapper/PlaceCheckMapper.java
@@ -40,7 +40,10 @@
 	 * @return
 	 */
 	List<PlaceCheckVO> selectPlaceCheckPage(IPage page,
-											@Param("placeCheck") PlaceCheckVO placeCheck);
+											@Param("placeCheck") PlaceCheckVO placeCheck,
+											@Param("isAdministrator") Integer isAdministrator,
+											@Param("regionChildCodesList") List<String> regionChildCodesList,
+											@Param("gridCodeList") List<String> gridCodeList);
 
 	/**
 	 * 查询场所检查表
diff --git a/src/main/java/org/springblade/modules/place/mapper/PlaceCheckMapper.xml b/src/main/java/org/springblade/modules/place/mapper/PlaceCheckMapper.xml
index fc6a83e..d36b477 100644
--- a/src/main/java/org/springblade/modules/place/mapper/PlaceCheckMapper.xml
+++ b/src/main/java/org/springblade/modules/place/mapper/PlaceCheckMapper.xml
@@ -93,11 +93,12 @@
         jpe.legal_person
         FROM
         jczz_place_check jpc
-        LEFT JOIN jczz_place jp ON jpc.house_code = jp.house_code
-        LEFT JOIN jczz_grid jg ON jg.grid_code = jp.grid_code
+        LEFT JOIN jczz_place jp ON jpc.house_code = jp.house_code and jp.is_deleted = 0
+        LEFT JOIN jczz_grid jg ON jg.grid_code = jp.grid_code and jg.is_deleted = 0
         LEFT JOIN blade_region br ON br.`code` = jg.community_code
-        LEFT JOIN jczz_place_ext jpe ON jpe.place_id = jp.id
-        LEFT JOIN blade_user bu ON bu.id = jpc.create_user
+        LEFT JOIN jczz_place_ext jpe ON jpe.place_id = jp.id and jpe.is_deleted = 0
+        LEFT JOIN blade_user bu ON bu.id = jpc.create_user and bu.is_deleted = 0
+        LEFT JOIN jczz_police_affairs_grid jpag on jp.jw_grid_code= jpag.jw_grid_code and jpag.is_deleted = 0
         where jpc.is_deleted = 0
         <if test="placeCheck.houseCode!=null and placeCheck.houseCode!=''">
             and jpc.house_code = #{placeCheck.houseCode}
@@ -133,7 +134,62 @@
         <if test="placeCheck.endTime!=null and placeCheck.endTime!=''">
             and date_format(jpc.create_time,'%Y-%m-%d') &lt;= #{placeCheck.endTime}
         </if>
-
+        <if test="isAdministrator==2">
+            <choose>
+                <when test="placeCheck.roleName != null and placeCheck.roleName != ''">
+                    <if test="placeCheck.roleName=='wgy'">
+                        <choose>
+                            <when test="gridCodeList !=null and gridCodeList.size()>0">
+                                and jp.grid_code in
+                                <foreach collection="gridCodeList" item="code" open="(" close=")" separator=",">
+                                    #{code}
+                                </foreach>
+                            </when>
+                            <otherwise>
+                                and jp.grid_code in ('')
+                            </otherwise>
+                        </choose>
+                    </if>
+                    <if test="placeCheck.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>
+                            and
+                            (
+                            jg.grid_code in ('') or jpag.community_code in in ('')
+                            )
+                        </otherwise>
+                    </choose>
+                </otherwise>
+            </choose>
+        </if>
         order by jpc.create_time desc
     </select>
 
diff --git a/src/main/java/org/springblade/modules/place/service/impl/PlaceCheckServiceImpl.java b/src/main/java/org/springblade/modules/place/service/impl/PlaceCheckServiceImpl.java
index 7988dee..b417634 100644
--- a/src/main/java/org/springblade/modules/place/service/impl/PlaceCheckServiceImpl.java
+++ b/src/main/java/org/springblade/modules/place/service/impl/PlaceCheckServiceImpl.java
@@ -16,16 +16,20 @@
  */
 package org.springblade.modules.place.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xxl.job.core.util.FileUtil;
+import org.apache.logging.log4j.util.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springblade.common.cache.SysCache;
 import org.springblade.common.constant.CommonConstant;
 import org.springblade.common.constant.DictConstant;
 import org.springblade.common.utils.SpringUtils;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.SpringUtil;
+import org.springblade.modules.grid.service.IGridService;
 import org.springblade.modules.patrol.entity.PatrolRecord;
 import org.springblade.modules.patrol.service.IPatrolRecordService;
 import org.springblade.modules.place.dto.PlaceCheckDTO;
@@ -34,6 +38,9 @@
 import org.springblade.modules.place.vo.PlaceCheckVO;
 import org.springblade.modules.place.mapper.PlaceCheckMapper;
 import org.springblade.modules.place.service.IPlaceCheckService;
+import org.springblade.modules.police.service.IPoliceAffairsGridService;
+import org.springblade.modules.system.entity.DictBiz;
+import org.springblade.modules.system.service.IRegionService;
 import org.springblade.modules.task.service.ITaskService;
 import org.springblade.modules.taskPlaceRectification.entity.TaskPlaceRectificationEntity;
 import org.springblade.modules.taskPlaceRectification.service.ITaskPlaceRectificationService;
@@ -41,6 +48,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
@@ -58,7 +66,29 @@
 
 	@Override
 	public IPage<PlaceCheckVO> selectPlaceCheckPage(IPage<PlaceCheckVO> page, PlaceCheckVO placeCheck) {
-		List<PlaceCheckVO> placeCheckVOS = baseMapper.selectPlaceCheckPage(page, placeCheck);
+		String roleName = SpringUtils.getRequestParam("roleName");
+		String communityCode = SpringUtils.getRequestParam("communityCode");
+		if (!Strings.isBlank(communityCode)){
+			// 校验社区编号是否合规
+			if(null!=SpringUtils.getBean(IRegionService.class).getById(communityCode)) {
+				placeCheck.setCommunityCode(communityCode);
+			}
+		}
+		List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
+		Integer isAdministrator = AuthUtil.isAdministrator()==true?1:2;
+		// 网格编号集合
+		List<String> gridCodeList = new ArrayList<>();
+		// 民警角色
+		if (!Strings.isBlank(roleName)){
+			placeCheck.setRoleName(roleName);
+			if(roleName.equals("mj")) {
+				regionChildCodesList = SpringUtil.getBean(IPoliceAffairsGridService.class).getCommunityCodeListByUserId(AuthUtil.getUserId());
+			}
+			if (roleName.equals("wgy")) {
+				gridCodeList = SpringUtil.getBean(IGridService.class).getGridListByUserId(AuthUtil.getUserId());
+			}
+		}
+		List<PlaceCheckVO> placeCheckVOS = baseMapper.selectPlaceCheckPage(page, placeCheck,isAdministrator,regionChildCodesList,gridCodeList);
 		for (PlaceCheckVO placeCheckVO : placeCheckVOS) {
 			int number = 0;
 			for (PatrolRecord patrolRecord : placeCheckVO.getPatrolRecordVOList()) {
diff --git a/src/main/java/org/springblade/modules/place/vo/PlaceCheckVO.java b/src/main/java/org/springblade/modules/place/vo/PlaceCheckVO.java
index 931a7a8..813d4b2 100644
--- a/src/main/java/org/springblade/modules/place/vo/PlaceCheckVO.java
+++ b/src/main/java/org/springblade/modules/place/vo/PlaceCheckVO.java
@@ -98,4 +98,14 @@
 
 	private Long jpid;
 
+	/**
+	 * 角色名称
+	 */
+	private String roleName;
+
+	/**
+	 * 社区编号
+	 */
+	private String communityCode;
+
 }

--
Gitblit v1.9.3