From 8b7258c9427882bb1798f1502eaa35184c6e374e Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Fri, 09 Aug 2024 14:29:18 +0800
Subject: [PATCH] 短信指定楼栋发送

---
 src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.xml |  387 +++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 357 insertions(+), 30 deletions(-)

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 3a4a810..ddd595c 100644
--- a/src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.xml
+++ b/src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.xml
@@ -17,17 +17,183 @@
         <result column="is_deleted" property="isDeleted"/>
     </resultMap>
 
-    <!--自定义分页查询-->
-    <select id="selectTaskReportForRepairsPage" resultType="org.springblade.modules.task.vo.TaskReportForRepairsVO">
+    <resultMap id="taskReportForRepairsResult" type="org.springblade.modules.task.vo.TaskReportForRepairsVO">
+        <result property="id" column="id"/>
+        <result property="taskId" column="task_id"/>
+        <result property="addressCode" column="address_code"/>
+        <result property="type" column="type"/>
+        <result property="realName" column="real_name"/>
+        <result property="phone" column="phone"/>
+        <result property="remark" column="remark"/>
+        <result property="imageUrls" column="image_urls"/>
+        <result property="confirmUserId" column="confirm_user_id"/>
+        <result property="confirmTime" column="confirm_time"/>
+        <result property="confirmFlag" column="confirm_flag"/>
+        <result property="confirmNotion" column="confirm_notion"/>
+        <result property="createTime" column="create_time"/>
+        <result property="createUser" column="create_user"/>
+        <result property="createDept" column="create_dept"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="updateUser" column="update_user"/>
+        <result property="isDeleted" column="is_deleted"/>
+        <result property="status" column="status"/>
+        <result property="lng" column="lng"/>
+        <result property="lat" column="lat"/>
+        <result property="address" column="address"/>
+        <result property="viewType" column="view_type"/>
+        <result property="houseFlag" column="house_flag"/>
+
+
+        <collection property="taskRepairStepList" column="id" select="selectTaskRepairStepList"
+                    javaType="java.util.List" ofType="org.springblade.modules.task.entity.TaskRepairStepEntity"
+                    autoMapping="true">
+            <id property="repairId" column="id"/>
+        </collection>
+
+        <collection property="taskRepairAppraiseList" column="id" select="selectTaskRepairAppraiseList"
+                    javaType="java.util.List" ofType="org.springblade.modules.task.entity.TaskRepairAppraiseEntity"
+                    autoMapping="true">
+            <id property="repairId" column="id"/>
+        </collection>
+
+
+    </resultMap>
+
+
+    <select id="selectTaskRepairStepList" parameterType="java.lang.Long"
+            resultType="org.springblade.modules.task.entity.TaskRepairStepEntity">
         select
-        jtrfr.*,
+        id,
+        repair_id,
+        content,
+        video_list,
+        name,
+        mobile,
+        user_id,
+        people_type,
+        create_time,
+        update_time,
+        image_list
+        from
+        jczz_task_repair_step
+        <where>
+            <if test="id != null and id != '' ">repair_id = #{id}</if>
+        </where>
+    </select>
+
+
+    <select id="selectTaskRepairAppraiseList" parameterType="java.lang.Long"
+            resultType="org.springblade.modules.task.entity.TaskRepairAppraiseEntity">
+        select
+        id,
+        content,
+        create_time,
+        image_list,
+        point,
+        repair_id,
+        video_list
+        from
+        jczz_task_repair_appraise
+        <where>
+            <if test="id != null and id != ''">repair_id = #{id}</if>
+        </where>
+    </select>
+
+
+    <sql id="selectTaskReportForRepairs">
+        select id,
+               task_id,
+               address_code,
+               type,
+               real_name,
+               phone,
+               remark,
+               image_urls,
+               confirm_user_id,
+               confirm_time,
+               confirm_flag,
+               confirm_notion,
+               create_time,
+               create_user,
+               create_dept,
+               update_time,
+               update_user,
+               is_deleted,
+               status,
+               lng,
+               lat,
+               address,
+               view_type,
+               house_flag
+        from jczz_task_report_for_repairs
+    </sql>
+
+    <!--自定义分页查询-->
+    <select id="selectTaskReportForRepairsPage" resultMap="taskReportForRepairsResult">
+        select
+        jtrfr.id id,
+        jtrfr.task_id,
+        jtrfr.address_code,
+        jtrfr.type,
+        jtrfr.real_name,
+        jtrfr.phone,
+        jtrfr.remark,
+        jtrfr.image_urls,
+        jtrfr.confirm_user_id,
+        jtrfr.confirm_time,
+        jtrfr.confirm_flag,
+        jtrfr.confirm_notion,
+        jtrfr.create_time,
+        jtrfr.create_user,
+        jtrfr.create_dept,
+        jtrfr.update_time,
+        jtrfr.update_user,
+        jtrfr.is_deleted,
+        jtrfr.status,
+        jtrfr.lng,
+        jtrfr.lat,
+        jtrfr.address,
+        jtrfr.view_type,
+        jtrfr.house_flag,
+        br.town_name streetName,
+        jg.grid_name,
+        jda.aoi_name,
+        br.village_name communityName,
         jda.address_name as addressName
-        from jczz_task_report_for_repairs jtrfr
-        left join jczz_doorplate_address jda on jda.address_code = jtrfr.address_code
-        where jtrfr.is_deleted = 0
+        FROM jczz_task_report_for_repairs jtrfr
+        LEFT JOIN jczz_doorplate_address jda on jda.address_code = jtrfr.address_code
+        LEFT JOIN jczz_house jh on jh.house_code=jtrfr.address_code
+        LEFT JOIN jczz_place jp on jtrfr.address_code = jp.house_code and jp.is_deleted = 0
+        LEFT JOIN jczz_grid jg on (jg.grid_code = jh.grid_code or jg.grid_code = jp.grid_code)  and jg.is_deleted = 0
+        LEFT JOIN blade_region br on br.code = jg.community_code
+        WHERE jtrfr.is_deleted = 0
         <if test="vo.createUser != null and vo.createUser != ''">
             AND jtrfr.create_user = #{vo.createUser}
         </if>
+
+        <if test="communityCode !=null and communityCode !=''">
+            and jg.community_code = #{communityCode}
+        </if>
+
+        <if test="vo.houseCode != null and vo.houseCode != ''">
+            and jtrfr.address_code = #{vo.houseCode}
+        </if>
+
+        <if test="vo.streetName != null and vo.streetName != ''">
+            AND br.town_name like concat('%',#{vo.streetName},'%')
+        </if>
+        <if test="vo.communityName != null and vo.communityName != ''">
+            AND br.village_name like concat('%',#{vo.communityName},'%')
+        </if>
+
+        <if test="vo.gridName != null and vo.gridName != ''">
+            AND jg.grid_name like concat('%',#{vo.gridName},'%')
+        </if>
+
+        <if test="vo.aoiName != null and vo.aoiName != ''">
+            AND jda.aoi_name like concat('%',#{vo.aoiName},'%')
+        </if>
+
         <if test="vo.type != null">
             AND jtrfr.type = #{vo.type}
         </if>
@@ -40,51 +206,212 @@
         <if test="vo.confirmFlag != null">
             AND jtrfr.confirm_flag = #{vo.confirmFlag}
         </if>
-        <if test="vo.roleName!=null and vo.roleName!=''">
-            <if test="vo.roleName=='网格员'">
+
+        <if test="vo.status != null">
+            AND jtrfr.status = #{vo.status}
+        </if>
+        <if test="vo.addressCode != null">
+            AND jtrfr.address_code = #{vo.addressCode}
+        </if>
+        <if test="vo.viewType != null">
+            AND jtrfr.view_type = #{vo.viewType}
+        </if>
+        <if test="vo.startTime != null and vo.startTime != '' and vo.endTime != null and vo.endTime != '' ">
+            AND jtrfr.create_time BETWEEN #{vo.startTime} and #{vo.endTime}
+        </if>
+        <if test="isAdministrator==2">
+            <!-- 物业和居民 -->
+            <if test="vo.roleType !=null and (vo.roleType == 'wy' or vo.roleType == 'inhabitant')">
+                <if test="aoiCodeList!=null and aoiCodeList.size()>0">
+                    and (
+                    jda.aoi_code in
+                    <foreach collection="aoiCodeList" item="item" separator="," open="(" close=")">
+                        #{item}
+                    </foreach>
+                    or
+                    jp.aoi_code in
+                    <foreach collection="aoiCodeList" item="item" separator="," open="(" close=")">
+                        #{item}
+                    </foreach>
+                    )
+                </if>
+
+                <if test="vo.roleType == 'wy' and vo.confirmUserId != null ">
+                    or jtrfr.confirm_user_id = #{vo.confirmUserId}
+                </if>
+            </if>
+            <!-- 其他 -->
+            <if test="vo.roleType ==null and vo.roleName !='wgy' ">
                 <choose>
-                    <when test="list != null and list.size()>0">
-                        and jda.address_code in
-                        <foreach collection="list" item="houseCode" separator ="," open="("  close=")">
-                            #{houseCode}
+                    <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
+                        and (
+                        jg.grid_code in
+                        <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+                            #{code}
                         </foreach>
+                            or
+                        jp.grid_code in
+                        <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+                            #{code}
+                        </foreach>
+                        )
+                    </when>
+                </choose>
+            </if>
+            <!-- 网格员 -->
+            <if test="vo.roleName =='wgy' ">
+                <choose>
+                    <when test="gridCodeList !=null and gridCodeList.size()>0">
+                        and (
+                        jg.grid_code in
+                        <foreach collection="gridCodeList" item="code" open="(" close=")" separator=",">
+                            #{code}
+                        </foreach>
+                        or
+                        jp.grid_code in
+                        <foreach collection="gridCodeList" item="code" open="(" close=")" separator=",">
+                            #{code}
+                        </foreach>
+                        )
+                        <if test="regionChildCodesList !=null and regionChildCodesList.size()>0">
+                            and jg.community_code in
+                            <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+                                #{code}
+                            </foreach>
+                        </if>
                     </when>
                     <otherwise>
-                        and jda.address_code in ('')
+                        and jg.grid_code in ('')
                     </otherwise>
                 </choose>
+
+                <if test="vo.confirmUserId != null ">
+                    or jtrfr.confirm_user_id = #{vo.confirmUserId}
+                </if>
             </if>
         </if>
         ORDER BY jtrfr.create_time DESC
     </select>
 
     <!--统计查询,个人-->
-    <select id="getStatisticsCount" resultType="org.springblade.modules.task.vo.TaskReportStatistics">
+    <select id="getReportForStatistics" resultType="java.lang.Integer">
+
         SELECT
-            COUNT( 1 ) AS total,
-            ifnull(SUM( CASE WHEN STATUS = 10 THEN 1 ELSE 0 END ),0) AS handle
-        FROM jczz_task_report_for_repairs
-        WHERE is_deleted = 0
-        <if test="userId != null">
-            and create_user = #{userId}
+        COUNT( 1 )
+        FROM
+        jczz_task_report_for_repairs jtrfr
+        LEFT JOIN jczz_doorplate_address jda ON jtrfr.address_code = jda.address_code
+        WHERE
+        jda.nei_code = #{code}
+        AND jtrfr.is_deleted = 0
+        <if test="status != null">
+            and jtrfr.confirm_flag = #{status}
+        </if>
+        <if test="type != null">
+            and jtrfr.type = #{type}
+        </if>
+
+        <if test="userId != null and roleType == '1'">
+            AND jda.address_code IN (
+            SELECT DISTINCT
+            jgr.house_code
+            FROM
+            jczz_grid jg
+            LEFT JOIN jczz_gridman jgm ON jg.id = jgm.grid_id
+            LEFT JOIN jczz_grid_range jgr ON jgr.grid_id = jg.id
+            WHERE
+            jgm.user_id = #{userId}
+            AND jg.is_deleted = 0
+            )
+        </if>
+        <if test="userId != null and roleType == '3'">
+            AND jda.address_code IN (SELECT
+            jda.address_code
+            FROM
+            jczz_doorplate_address jda
+            LEFT JOIN jczz_community jc ON jc.CODE = jda.nei_code
+            WHERE
+            jc.res_police_user_id like concat('%',#{userId},'%'))
+            )
         </if>
     </select>
 
 
-    <select id="getStatistics" resultType="java.lang.Integer">
-
+    <select id="getStatisticsCount" resultType="org.springblade.modules.task.vo.TaskReportStatistics">
         SELECT
-            count(1)
+        count( 1 ) AS total,
+        ifnull( sum( CASE WHEN STATUS = 10 THEN 1 ELSE 0 END ), 0 ) AS handle
         FROM
-            jczz_grid_range jgr
-                LEFT JOIN jczz_grid jg ON jg.id = jgr.grid_id
-                LEFT JOIN jczz_task_report_for_repairs jtr on jtr.address_code=jgr.house_code
-        WHERE
-            jg.is_deleted = 0
-          and jtr.confirm_flag = 1
-          AND jg.user_id = #{userId}
+        jczz_task_report_for_repairs jtrfr
+        LEFT JOIN jczz_doorplate_address jda ON jda.address_code = jtrfr.address_code
+        WHERE is_deleted = 0
+        <if test="userId != null">
+            and jtrfr.create_user = #{userId}
+        </if>
+        <if test="houseCode != null and houseCode != ''">
+            and jtrfr.address_code = #{houseCode}
+        </if>
 
     </select>
 
 
+    <select id="getStatistics" resultType="java.lang.Integer">
+        SELECT
+        count( 1 )
+        FROM
+        jczz_task_report_for_repairs jtr
+        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
+            <if test="neiCode !=null and neiCode !=''">
+                and jg.community_code = #{neiCode}
+            </if>
+
+            <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>
+
+    </select>
+
+    <!--更新状态-临时接口-->
+    <update id="updateView">
+        update jczz_task_report_for_repairs
+        set view_type = 1
+    </update>
+
+
 </mapper>

--
Gitblit v1.9.3