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/task/mapper/TaskReportForRepairsMapper.xml | 333 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 301 insertions(+), 32 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 b5da0f1..ec82bde 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,179 @@
<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
+ LEFT JOIN jczz_house jh on jh.house_code=jtrfr.address_code
+ 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_place jp on jtrfr.address_code = jp.house_code and jp.is_deleted = 0
where jtrfr.is_deleted = 0
<if test="vo.createUser != null and vo.createUser != ''">
AND jtrfr.create_user = #{vo.createUser}
</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,25 +202,82 @@
<if test="vo.confirmFlag != null">
AND jtrfr.confirm_flag = #{vo.confirmFlag}
</if>
+
<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.roleName!=null and vo.roleName!=''">
- <if test="vo.roleName=='网格员'">
+ <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>
+ )
</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
@@ -74,7 +293,6 @@
LEFT JOIN jczz_doorplate_address jda ON jtrfr.address_code = jda.address_code
WHERE
jda.nei_code = #{code}
- AND jda.unit_code IS NOT NULL
AND jtrfr.is_deleted = 0
<if test="status != null">
and jtrfr.confirm_flag = #{status}
@@ -83,18 +301,27 @@
and jtrfr.type = #{type}
</if>
- <if test="userId != null">
- AND EXISTS (
- SELECT
- *
+ <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 jtrfr.address_code = jgr.house_code
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>
@@ -102,36 +329,78 @@
<select id="getStatisticsCount" resultType="org.springblade.modules.task.vo.TaskReportStatistics">
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
+ count( 1 ) AS total,
+ ifnull( sum( CASE WHEN STATUS = 10 THEN 1 ELSE 0 END ), 0 ) AS handle
+ FROM
+ 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 create_user = #{userId}
+ 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)
+ count( 1 )
FROM
- jczz_gridman jgm
- LEFT JOIN jczz_grid jg ON jgm.grid_id = jg.id
- LEFT JOIN jczz_grid_range jgr ON jg.id = jgr.grid_id
- LEFT JOIN jczz_task_report_for_repairs jtr ON jgr.house_code = jtr.address_code
- LEFT JOIN jczz_doorplate_address jda ON jda.address_code = jtr.address_code
- WHERE
- jg.is_deleted = 0
- and jtr.confirm_flag = 1
- AND jgm.user_id = #{userId}
+ 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 jczz_task_report_for_repairs
+ set view_type = 1
</update>
--
Gitblit v1.9.3