From c10d6358b9f014375a13821465bc978d0c0da22e Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Wed, 29 May 2024 17:17:08 +0800
Subject: [PATCH] 通过E呼即办数据统计

---
 src/main/java/org/springblade/modules/grid/mapper/GridWorkLogMapper.xml |   84 ++++++++++++++++++++++++++++++++----------
 1 files changed, 64 insertions(+), 20 deletions(-)

diff --git a/src/main/java/org/springblade/modules/grid/mapper/GridWorkLogMapper.xml b/src/main/java/org/springblade/modules/grid/mapper/GridWorkLogMapper.xml
index bbc4929..4193d35 100644
--- a/src/main/java/org/springblade/modules/grid/mapper/GridWorkLogMapper.xml
+++ b/src/main/java/org/springblade/modules/grid/mapper/GridWorkLogMapper.xml
@@ -7,17 +7,18 @@
         select
         jgwl.*,
         jh.name,jh.phone_number as phone,
-        if(jda.id is not null,jda.address_name,jh.current_address) as address,
-        jda.town_street_name AS townName,
-        jda.nei_name AS neiName,
+        jh.current_address AS address,
+        br.town_name AS townName,
+        br.name AS neiName,
         jg.grid_name,
         bu.real_name as createUserName
         from jczz_grid_work_log jgwl
         left join jczz_household jh on jgwl.household_id = jh.id and jh.is_deleted = 0
-        LEFT JOIN jczz_doorplate_address jda ON jda.address_code = jh.house_code
-        LEFT JOIN jczz_grid_range jgr on jgr.house_code=jda.address_code
-        LEFT JOIN jczz_grid jg on jg.id = jgr.grid_id and jg.is_deleted = 0
+        left join jczz_house jhs on jhs.house_code = jh.house_code and jhs.is_deleted = 0
+        LEFT JOIN jczz_grid jg on jhs.grid_code = jg.grid_code and jg.is_deleted = 0
         LEFT JOIN blade_user bu on bu.id = jgwl.create_user and bu.is_deleted = 0
+        LEFT JOIN jczz_police_affairs_grid jpag on jhs.jw_grid_code= jpag.jw_grid_code and jpag.is_deleted = 0
+        left join blade_region br on br.code = jpag.community_code
         where jgwl.is_deleted = 0
         <if test="gridWorkLog.type !=null">
             and jgwl.type = #{gridWorkLog.type}
@@ -31,9 +32,6 @@
         <if test="gridWorkLog.personType !=null">
             and jgwl.person_type = #{gridWorkLog.personType}
         </if>
-        <if test="gridWorkLog.gridId !=null">
-            and jgr.grid_id = #{gridWorkLog.gridId}
-        </if>
         <if test="gridWorkLog.name !=null and gridWorkLog.name!=''">
             and jh.name like concat('%',#{gridWorkLog.name},'%')
         </if>
@@ -44,21 +42,67 @@
             and jh.phone_number like concat('%',#{gridWorkLog.phone},'%')
         </if>
         <if test="gridWorkLog.townName!=null and gridWorkLog.townName!=''">
-            and jda.town_street_name like concat('%',#{gridWorkLog.townName},'%')
+            and br.town_name like concat('%',#{gridWorkLog.townName},'%')
         </if>
         <if test="gridWorkLog.neiName!=null and gridWorkLog.neiName!=''">
-            and jda.nei_name like concat('%',#{gridWorkLog.neiName},'%')
+            and br.name  like concat('%',#{gridWorkLog.neiName},'%')
+        </if>
+        <if test="gridWorkLog.gridId !=null">
+            and jg.id = #{gridWorkLog.gridId}
         </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="gridWorkLog.roleName != null and gridWorkLog.roleName != ''">
+                    <if test="gridWorkLog.roleName=='wgy'">
+                        <choose>
+                            <when test="gridCodeList !=null and gridCodeList.size()>0">
+                                and jhs.grid_code in
+                                <foreach collection="gridCodeList" item="code" open="(" close=")" separator=",">
+                                    #{code}
+                                </foreach>
+                            </when>
+                            <otherwise>
+                                and jhs.grid_code in ('')
+                            </otherwise>
+                        </choose>
+                    </if>
+                    <if test="gridWorkLog.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>
-                    and jg.community_code in ('')
+                    <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 ('')
+                            )
+                        </otherwise>
+                    </choose>
                 </otherwise>
             </choose>
         </if>
@@ -68,13 +112,13 @@
     <select id="getGridWorkCountHandleCount" resultType="java.lang.Integer">
         select count(*) from jczz_grid_work_log jgwl
         left join jczz_household jh on jgwl.household_id = jh.id and jh.is_deleted = 0
-        left join jczz_grid_range jgr on jgr.house_code=jh.house_code
+        left join jczz_house jhs on jhs.house_code=jh.house_code and jhs.is_deleted = 0
         where jgwl.is_deleted = 0
         <if test="status!=null">
             and jgwl.status = #{status}
         </if>
-        <if test="gridId!=null">
-            and jgr.grid_id = #{gridId}
+        <if test="gridCode!=null and gridCode!=''">
+            and jhs.grid_code = #{gridCode}
         </if>
     </select>
 

--
Gitblit v1.9.3