From 5b33d886cb6da7a8b0f66f0c0bb0a3d0b2b19d6a Mon Sep 17 00:00:00 2001
From: lin <sbla5888@163.com>
Date: Mon, 15 Apr 2024 21:21:01 +0800
Subject: [PATCH] 报事报修查询优化

---
 src/main/java/org/springblade/modules/task/service/impl/TaskServiceImpl.java                 |    3 +
 src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.java            |    4 +
 src/main/java/org/springblade/modules/task/service/impl/TaskReportForRepairsServiceImpl.java |    7 ++-
 src/main/java/org/springblade/modules/task/service/ITaskReportForRepairsService.java         |    6 ++
 src/main/java/org/springblade/modules/task/controller/TaskReportForRepairsController.java    |    2 
 src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.xml             |   76 ++++++++++++++++----------------------
 6 files changed, 47 insertions(+), 51 deletions(-)

diff --git a/src/main/java/org/springblade/modules/task/controller/TaskReportForRepairsController.java b/src/main/java/org/springblade/modules/task/controller/TaskReportForRepairsController.java
index d452fe4..70ab90e 100644
--- a/src/main/java/org/springblade/modules/task/controller/TaskReportForRepairsController.java
+++ b/src/main/java/org/springblade/modules/task/controller/TaskReportForRepairsController.java
@@ -169,7 +169,7 @@
 	@ApiLog("w网格员查询报事报修统计")
 	@ApiOperation(value = "w网格员查询报事报修统计" )
 	public R getStatistics() {
-		return R.data(taskReportForRepairsService.getStatistics(AuthUtil.getUserId(),""));
+		return R.data(null);
 	}
 
 	/**
diff --git a/src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.java b/src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.java
index 0632e64..77c961d 100644
--- a/src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.java
+++ b/src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.java
@@ -60,7 +60,9 @@
 											@Param("regionChildCodesList") List<String> regionChildCodesList,
 											@Param("isAdministrator") Integer isAdministrator);
 
-	Integer getStatistics(Long userId, String neiCode, String roleName);
+	Integer getStatistics(Long userId, String neiCode, String roleName,@Param("regionChildCodesList") List<String> regionChildCodesList,
+						  @Param("isAdministrator") Integer isAdministrator,
+						  @Param("gridCodeList") List<String> gridCodeList);
 
 	/**
 	 * 更新状态--临时接口
diff --git a/src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.xml b/src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.xml
index 704caba..ec82bde 100644
--- a/src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.xml
+++ b/src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.xml
@@ -353,6 +353,7 @@
         LEFT JOIN jczz_house jh ON jh.house_code = jtr.address_code
         LEFT JOIN jczz_place jp ON jtr.address_code = jp.house_code
         LEFT JOIN jczz_grid jg on (jh.grid_code = jg.grid_code or jp.grid_code = jg.grid_code )
+        LEFT JOIN jczz_police_affairs_grid jpag on jp.jw_grid_code= jpag.jw_grid_code and jpag.is_deleted = 0
         <where>
             and jtr.is_deleted = 0
             and jtr.confirm_flag = 1
@@ -360,50 +361,37 @@
                 and jg.community_code = #{neiCode}
             </if>
 
-            <if test="userId != null and roleName == 'wgy'">
-                AND (
-                jp.grid_code IN (
-                SELECT
-                jg.grid_code
-                FROM
-                jczz_grid jg
-                LEFT JOIN jczz_gridman jgm ON jg.id = jgm.grid_id
-                WHERE
-                jg.is_deleted = 0
-                AND jgm.user_id = #{userId}
-                )
-                OR jh.grid_code IN (
-                SELECT
-                jg.grid_code
-                FROM
-                jczz_grid jg
-                LEFT JOIN jczz_gridman jgm ON jg.id = jgm.grid_id
-                WHERE
-                jg.is_deleted = 0
-                AND jgm.user_id = #{userId}
-                ))
-            </if>
-
-            <if test="userId != null and roleName == 'mj'">
-                AND (
-                jp.jw_grid_code IN (
-                SELECT
-                jpag.jw_grid_code
-                FROM
-                jczz_police_affairs_grid jpag
-                WHERE
-                jpag.is_deleted = 0
-                AND jpag.police_user_id = #{userId}
-                )
-                OR jh.jw_grid_code IN (
-                SELECT
-                jpag.jw_grid_code
-                FROM
-                jczz_police_affairs_grid jpag
-                WHERE
-                jpag.is_deleted = 0
-                AND jpag.police_user_id = #{userId}
-                ))
+            <if test="roleName != null and roleName != ''">
+                <if test="roleName=='wgy'">
+                    <if test="isAdministrator==2">
+                        <choose>
+                            <when test="gridCodeList !=null and gridCodeList.size()>0">
+                                and jg.grid_code in
+                                <foreach collection="gridCodeList" item="code" open="(" close=")" separator=",">
+                                    #{code}
+                                </foreach>
+                            </when>
+                            <otherwise>
+                                and jg.grid_code in ('')
+                            </otherwise>
+                        </choose>
+                    </if>
+                </if>
+                <if test="roleName=='mj'">
+                    <if test="isAdministrator==2">
+                        <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>
+                </if>
             </if>
         </where>
 
diff --git a/src/main/java/org/springblade/modules/task/service/ITaskReportForRepairsService.java b/src/main/java/org/springblade/modules/task/service/ITaskReportForRepairsService.java
index 86f9e6c..29ea88d 100644
--- a/src/main/java/org/springblade/modules/task/service/ITaskReportForRepairsService.java
+++ b/src/main/java/org/springblade/modules/task/service/ITaskReportForRepairsService.java
@@ -23,6 +23,8 @@
 import org.springblade.modules.task.vo.TaskReportForRepairsVO;
 import org.springblade.modules.task.vo.TaskReportStatistics;
 
+import java.util.List;
+
 /**
  * 报事报修任务表 服务类
  *
@@ -68,7 +70,9 @@
 	 */
 	boolean checkReportForRepairs(TaskReportForRepairsEntity taskReportForRepairs);
 
-	Integer getStatistics(Long userId,String neiCode);
+	Integer getStatistics(Long userId,String neiCode, List<String> regionChildCodesList,
+						  Integer isAdministrator,
+						  List<String> gridCodeList);
 
 	/**
 	 * 更新状态--临时接口
diff --git a/src/main/java/org/springblade/modules/task/service/impl/TaskReportForRepairsServiceImpl.java b/src/main/java/org/springblade/modules/task/service/impl/TaskReportForRepairsServiceImpl.java
index 2efcf77..2db5a64 100644
--- a/src/main/java/org/springblade/modules/task/service/impl/TaskReportForRepairsServiceImpl.java
+++ b/src/main/java/org/springblade/modules/task/service/impl/TaskReportForRepairsServiceImpl.java
@@ -18,7 +18,6 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import org.springblade.common.cache.SysCache;
 import org.springblade.common.param.CommonParamSet;
 import org.springblade.common.utils.RoleUtil;
 import org.springblade.common.utils.SpringUtils;
@@ -217,9 +216,11 @@
 	}
 
 	@Override
-	public Integer getStatistics(Long userId, String neiCode) {
+	public Integer getStatistics(Long userId, String neiCode, List<String> regionChildCodesList,
+								Integer isAdministrator,
+								 List<String> gridCodeList) {
 		String roleName = SpringUtils.getRequestParam("roleName");
-		return baseMapper.getStatistics(userId, neiCode,roleName);
+		return baseMapper.getStatistics(userId, neiCode,roleName, regionChildCodesList,isAdministrator, gridCodeList);
 	}
 
 	/**
diff --git a/src/main/java/org/springblade/modules/task/service/impl/TaskServiceImpl.java b/src/main/java/org/springblade/modules/task/service/impl/TaskServiceImpl.java
index 71d36c3..3846c51 100644
--- a/src/main/java/org/springblade/modules/task/service/impl/TaskServiceImpl.java
+++ b/src/main/java/org/springblade/modules/task/service/impl/TaskServiceImpl.java
@@ -252,7 +252,8 @@
 		Integer qbhs = baseMapper.selectTaskCount(taskVO, commonParamSet.getRegionChildCodesList(),
 			commonParamSet.getIsAdministrator(), commonParamSet.getGridCodeList());
 		// 报事报修
-		Integer bsbx = SpringUtils.getBean(ITaskReportForRepairsService.class).getStatistics(roleType > 0 ? AuthUtil.getUserId() : null, neiCode);
+		Integer bsbx = SpringUtils.getBean(ITaskReportForRepairsService.class).getStatistics(roleType > 0 ? AuthUtil.getUserId() : null, neiCode,commonParamSet.getRegionChildCodesList(),
+			commonParamSet.getIsAdministrator(), commonParamSet.getGridCodeList());
 		// 住户审核
 		Integer zhsh = iHouseholdService.statistics(roleType > 0 ? AuthUtil.getUserId() : null, neiCode, 0);
 		// 出租审核

--
Gitblit v1.9.3