From 5e972eb9928c39b5abbdfd35e2a0aeff40876e7d Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Tue, 07 May 2024 17:23:16 +0800
Subject: [PATCH] 修改不成功问题

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.xml |  716 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 710 insertions(+), 6 deletions(-)

diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.xml
index 0682b04..6c16217 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.xml
@@ -5,6 +5,159 @@
     <!--自定义分页查询-->
     <select id="selectPatrolTask" resultType="cn.gistack.sm.patrol.vo.PatrolTaskVO">
         SELECT
+        spt.id,
+        spt.start_time,
+        spt.end_time,
+        spt.to_user_id,
+        spt.state,
+        spt.create_time,
+        spt.project_id,
+        spt.reservoir_name,
+        spt.title,
+        spt.content,
+        spt.task_type,
+        spt.patrol_group_item_id,
+        spt.problem_count,
+        spt.report_problem_count,
+        spt.patrol_role,
+
+
+        spt2.name as patrolTypeName,
+        u.real_name toUserName,
+        u2.real_name createUserName,
+        arb."res_loc"  regionName,
+        arb."center_long" lon,
+        arb."center_lat" lat
+        FROM sm_patrol_task spt
+        left join sm_patrol_type spt2 on spt.task_type = spt2.id
+        LEFT JOIN blade_user u ON u.id = spt.to_user_id
+        LEFT JOIN blade_user u2 ON u2.id = spt.create_user
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = spt.project_id
+
+        left join SJZT_MD."att_ad_base" aab on aab."guid" = arb."interior_ad_guid"
+        left join SJZT_MD."att_ad_base" aa on aab."p_ad_code" = aa."ad_code"
+        left join SJZT_MD."att_ad_base" ab on aa."p_ad_code" = ab."ad_code"
+        left join SJZT_MD."att_ad_base" ac on ab."p_ad_code" = ac."ad_code"
+
+        WHERE spt.is_deleted = 0
+        <if test="patrolTask.title !=null and patrolTask.title!=''">
+            AND spt.title LIKE CONCAT('%',#{patrolTask.title},'%')
+        </if>
+        <if test="patrolTask.startTime !=null and patrolTask.startTime !=''">
+            AND spt.create_time &gt;= #{patrolTask.startTime}
+        </if>
+        <if test="patrolTask.endTime !=null and patrolTask.endTime !=''">
+            AND spt.create_time &lt;= #{patrolTask.endTime}
+        </if>
+        <if test="patrolTask.projectId !=null and patrolTask.projectId !='' ">
+            AND spt.project_id = #{patrolTask.projectId}
+        </if>
+        <if test="patrolTask.reservoirName !=null and patrolTask.reservoirName !='' ">
+            AND spt.reservoir_name LIKE CONCAT('%',#{patrolTask.reservoirName},'%')
+        </if>
+        <if test="patrolTask.toUserId != null and patrolTask.toUserId !=''">
+            AND spt.to_user_id = #{patrolTask.toUserId}
+        </if>
+        <if test="patrolTask.state != null and patrolTask.state !=''">
+            AND spt.state = #{patrolTask.state}
+        </if>
+        <if test="patrolTask.taskType != null and patrolTask.taskType !='' ">
+            AND spt.task_type = #{patrolTask.taskType}
+        </if>
+        <if test="patrolTask.adCode != null and patrolTask.adCode != '' ">
+            and concat(aab."ad_code",aa."ad_code",ab."ad_code",ac."ad_code") like CONCAT('%',#{patrolTask.adCode},'%')
+        </if>
+    </select>
+
+
+    <select id="selectPatrolTaskPage" resultType="cn.gistack.sm.patrol.vo.PatrolTaskVO">
+                select spt.*, spt2.name as patrolTypeName, route.ROUTE_COORDINATES as routeRange, u.real_name as toUserName, u2.real_name as createUserName , arb."res_loc" as regionName
+                from (
+                select * from ywxt.sm_patrol_task spt
+                where spt.is_deleted = 0
+                        <if test="patrolTask.title !=null and patrolTask.title!=''">
+                            AND spt.title LIKE CONCAT('%',#{patrolTask.title},'%')
+                        </if>
+                        <if test="patrolTask.startTime !=null and patrolTask.startTime !=''">
+                            AND spt.create_time &gt;= #{patrolTask.startTime}
+                        </if>
+                        <if test="patrolTask.endTime !=null and patrolTask.endTime !=''">
+                            AND spt.create_time &lt;= #{patrolTask.endTime}
+                        </if>
+                        <if test="patrolTask.projectId !=null and patrolTask.projectId !='' ">
+                            AND spt.project_id = #{patrolTask.projectId}
+                        </if>
+                        <if test="patrolTask.reservoirName !=null and patrolTask.reservoirName !='' ">
+                            AND spt.reservoir_name LIKE CONCAT('%',#{patrolTask.reservoirName},'%')
+                        </if>
+                        <if test="patrolTask.toUserId != null and patrolTask.toUserId !=''">
+                            AND spt.to_user_id = #{patrolTask.toUserId}
+                        </if>
+                        <if test="patrolTask.state != null and patrolTask.state !=''">
+                            AND spt.state = #{patrolTask.state}
+                        </if>
+                        <if test="patrolTask.taskType != null and patrolTask.taskType !='' ">
+                            AND spt.task_type = #{patrolTask.taskType}
+                        </if>
+                          limit ${current},${size} order by create_time desc
+                ) spt
+                left join ywxt.sm_patrol_type spt2 on spt.task_type = spt2.id
+                left join ywxt.sm_patrol_route route on route.id = spt.route_id
+                left join ywxt.blade_user u on u.id = spt.to_user_id
+                left join ywxt.blade_user u2 on u2.id = spt.create_user
+                left join SJZT_MD."att_res_base" arb on arb."guid" = spt.project_id
+                left join SJZT_MD."att_ad_base" aab on aab."guid" = arb."interior_ad_guid"
+                left join SJZT_MD."att_ad_base" aa on aab."p_ad_code" = aa."ad_code"
+                left join SJZT_MD."att_ad_base" ab on aa."p_ad_code" = ab."ad_code"
+                left join SJZT_MD."att_ad_base" ac on ab."p_ad_code" = ac."ad_code"
+                where 1=1
+                <if test="patrolTask.adCode != null and patrolTask.adCode != '' ">
+                    and concat(aab."ad_code",aa."ad_code",ab."ad_code",ac."ad_code") like CONCAT('%',#{patrolTask.adCode},'%')
+                </if>
+
+    </select>
+
+    <select id="getPatrolTaskTotal" resultType="java.lang.Long">
+
+        select count(*) from ywxt.sm_patrol_task spt
+        left join SJZT_MD."att_res_base" arb on arb."guid" = spt.project_id
+        left join SJZT_MD."att_ad_base" aab on aab."guid" = arb."interior_ad_guid"
+        left join SJZT_MD."att_ad_base" aa on aab."p_ad_code" = aa."ad_code"
+        left join SJZT_MD."att_ad_base" ab on aa."p_ad_code" = ab."ad_code"
+        left join SJZT_MD."att_ad_base" ac on ab."p_ad_code" = ac."ad_code"
+        where spt.is_deleted = 0
+        <if test="patrolTask.title !=null and patrolTask.title!=''">
+            AND spt.title LIKE CONCAT('%',#{patrolTask.title},'%')
+        </if>
+        <if test="patrolTask.startTime !=null and patrolTask.startTime !=''">
+            AND spt.create_time &gt;= #{patrolTask.startTime}
+        </if>
+        <if test="patrolTask.endTime !=null and patrolTask.endTime !=''">
+            AND spt.create_time &lt;= #{patrolTask.endTime}
+        </if>
+        <if test="patrolTask.projectId !=null and patrolTask.projectId !='' ">
+            AND spt.project_id = #{patrolTask.projectId}
+        </if>
+        <if test="patrolTask.reservoirName !=null and patrolTask.reservoirName !='' ">
+            AND spt.reservoir_name LIKE CONCAT('%',#{patrolTask.reservoirName},'%')
+        </if>
+        <if test="patrolTask.toUserId != null and patrolTask.toUserId !=''">
+            AND spt.to_user_id = #{patrolTask.toUserId}
+        </if>
+        <if test="patrolTask.state != null and patrolTask.state !=''">
+            AND spt.state = #{patrolTask.state}
+        </if>
+        <if test="patrolTask.taskType != null and patrolTask.taskType !='' ">
+            AND spt.task_type = #{patrolTask.taskType}
+        </if>
+        <if test="patrolTask.adCode != null and patrolTask.adCode != '' ">
+            and concat(aab."ad_code",aa."ad_code",ab."ad_code",ac."ad_code") like CONCAT('%',#{patrolTask.adCode},'%')
+        </if>
+    </select>
+
+    <!--获取全部-->
+    <select id="getAll" resultType="cn.gistack.sm.patrol.entity.PatrolTask">
+        SELECT
         spt.*,spt2.name as patrolTypeName,
         route.ROUTE_COORDINATES routeRange,
         u.real_name toUserName
@@ -33,6 +186,9 @@
         </if>
         <if test="patrolTask.state != null and patrolTask.state !=''">
             AND spt.state = #{patrolTask.state}
+        </if>
+        <if test="patrolTask.finish == 2">
+            AND spt.state != 3
         </if>
     </select>
 
@@ -138,13 +294,561 @@
         FROM sm_patrol_task spt
         where spt.id = #{id}
     </select>
-    <select id="customizeGetById" resultType="cn.gistack.sm.patrol.entity.PatrolTask">
-        SELECT T.ID,T.TITLE,T.TO_USER_ID,A.PROBLEM_COUNT,T.PROJECT_ID,T.CONTENT,T.STATE FROM SM_PATROL_TASK T
-        LEFT JOIN (
-            SELECT COUNT(*) PROBLEM_COUNT,R.TASK_ID FROM SM_PATROL_REPORT R WHERE R.TASK_ID = #{id} AND R.STATUS = 2 GROUP BY R.TASK_ID
-        )A ON A.TASK_ID = T.ID
+    <select id="customizeGetById" resultType="cn.gistack.sm.patrol.vo.PatrolTaskVO">
+        SELECT
+            T.*,
+               SPT.NAME AS taskTypeName,
+            U.REAL_NAME AS toUserIdName,
+               arb."center_long" lon ,arb."center_lat" lat
+        FROM SM_PATROL_TASK T
+        LEFT JOIN BLADE_USER U ON U.ID = T.TO_USER_ID
+        LEFT JOIN SM_PATROL_TYPE SPT ON SPT.ID = T.TASK_TYPE
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = T.project_id
         WHERE T.ID = #{id}
-        AND T.STATE = 3
         AND T.IS_DELETED = 0
     </select>
+
+    <!--行政区统计分页-->
+    <select id="getRegionReportPage" resultType="cn.gistack.sm.patrol.vo.PatrolTaskReport">
+        select * from (
+                          select "ad_name"  AS adName ,"guid" AS adCode,"ad_grad","order_id",date_format(#{patrolTaskReport.startTime},'%Y-%m-%d')  AS startTime,date_format(#{patrolTaskReport.endTime},'%Y-%m-%d') AS endTime,
+                                 (
+                                     select count(*) from YWXT.SM_PATROL_TASK spt
+                                                              left join SJZT_MD."att_res_base" a on (spt.project_id = a."guid")
+                                                              left join SJZT_MD."att_ad_base" b on a."interior_ad_guid" = b."ad_code"
+                                                              left join SJZT_MD."att_ad_base" c on b."p_ad_code" = c."ad_code"
+                                                              left join SJZT_MD."att_ad_base" d on c."p_ad_code" = d."ad_code"
+                                     where (d."ad_code" = aab."guid" or c."ad_code" = aab."guid" or b."ad_code" = aab."guid" )
+                                       and spt.is_deleted = 0
+                                <if test="patrolTaskReport.startTime !=null and patrolTaskReport.startTime !=''">
+                                    AND spt.start_time &gt;= #{patrolTaskReport.startTime}
+                                </if>
+                                <if test="patrolTaskReport.endTime !=null and patrolTaskReport.endTime !=''">
+                                    AND spt.start_time &lt;= #{patrolTaskReport.endTime}
+                                </if>
+                                 ) need ,
+                                 (
+                                     select count(*) from YWXT.SM_PATROL_TASK spt
+                                                              left join SJZT_MD."att_res_base" a on (spt.project_id = a."guid")
+                                                              left join SJZT_MD."att_ad_base" b on a."interior_ad_guid" = b."ad_code"
+                                                              left join SJZT_MD."att_ad_base" c on b."p_ad_code" = c."ad_code"
+                                                              left join SJZT_MD."att_ad_base" d on c."p_ad_code" = d."ad_code"
+                                     where (d."ad_code" = aab."guid" or c."ad_code" = aab."guid" or b."ad_code" = aab."guid" )
+                                       and spt.is_deleted = 0 and spt.state = 3
+                                    <if test="patrolTaskReport.startTime !=null and patrolTaskReport.startTime !=''">
+                                        AND spt.start_time &gt;= #{patrolTaskReport.startTime}
+                                    </if>
+                                    <if test="patrolTaskReport.endTime !=null and patrolTaskReport.endTime !=''">
+                                        AND spt.start_time &lt;= #{patrolTaskReport.endTime}
+                                    </if>
+                                 ) finish ,
+                                 (
+                                     select count(*) from YWXT.SM_PATROL_TASK spt
+                                                              left join SJZT_MD."att_res_base" a on (spt.project_id = a."guid")
+                                                              left join SJZT_MD."att_ad_base" b on a."interior_ad_guid" = b."ad_code"
+                                                              left join SJZT_MD."att_ad_base" c on b."p_ad_code" = c."ad_code"
+                                                              left join SJZT_MD."att_ad_base" d on c."p_ad_code" = d."ad_code"
+                                     where (d."ad_code" = aab."guid" or c."ad_code" = aab."guid" or b."ad_code" = aab."guid" )
+                                       and spt.is_deleted = 0 and (spt.state = 1 or spt.state = 2)
+                                <if test="patrolTaskReport.startTime !=null and patrolTaskReport.startTime !=''">
+                                    AND spt.start_time &gt;= #{patrolTaskReport.startTime}
+                                </if>
+                                <if test="patrolTaskReport.endTime !=null and patrolTaskReport.endTime !=''">
+                                    AND spt.start_time &lt;= #{patrolTaskReport.endTime}
+                                </if>
+                                 ) todo ,
+                                 (
+                                     select count(*) from SJZT_MD."att_res_base" a
+                                                              left join SJZT_MD."att_ad_base" b on a."interior_ad_guid" = b."ad_code"
+                                                              left join SJZT_MD."att_ad_base" c on b."p_ad_code" = c."ad_code"
+                                                              left join SJZT_MD."att_ad_base" d on c."p_ad_code" = d."ad_code"
+                                     where (d."ad_code" = aab."guid" or c."ad_code" = aab."guid" or b."ad_code" = aab."guid" )
+                                 ) res_count
+                          from SJZT_MD."att_ad_base" aab where
+                                <choose>
+                                    <when test="patrolTaskReport.adCode != null and patrolTaskReport.adCode !='' ">
+                                        "p_ad_code" = #{patrolTaskReport.adCode}
+                                    </when>
+                                    <otherwise>
+                                        "ad_grad" = 2
+                                    </otherwise>
+                                </choose>
+                      )
+        where res_count >0 order by "order_id" asc
+    </select>
+
+    <!--行政区统计列表-->
+    <select id="getRegionReportList" resultType="cn.gistack.sm.patrol.vo.PatrolTaskReport">
+        select * from (
+        select "ad_name"  AS adName ,"guid" AS adCode,"order_id", #{patrolTaskReport.startTime} AS startTime,#{patrolTaskReport.endTime} AS endTime,
+        (
+        select count(*) from YWXT.SM_PATROL_TASK spt
+        left join SJZT_MD."att_res_base" a on (spt.project_id = a."guid")
+        left join SJZT_MD."att_ad_base" b on a."interior_ad_guid" = b."ad_code"
+        left join SJZT_MD."att_ad_base" c on b."p_ad_code" = c."ad_code"
+        left join SJZT_MD."att_ad_base" d on c."p_ad_code" = d."ad_code"
+        where (d."ad_code" = aab."guid" or c."ad_code" = aab."guid" or b."ad_code" = aab."guid" )
+        and spt.is_deleted = 0
+        <if test="patrolTaskReport.startTime !=null and patrolTaskReport.startTime !=''">
+            AND spt.start_time &gt;= #{patrolTaskReport.startTime}
+        </if>
+        <if test="patrolTaskReport.endTime !=null and patrolTaskReport.endTime !=''">
+            AND spt.start_time &lt;= #{patrolTaskReport.endTime}
+        </if>
+        ) need ,
+        (
+        select count(*) from YWXT.SM_PATROL_TASK spt
+        left join SJZT_MD."att_res_base" a on (spt.project_id = a."guid")
+        left join SJZT_MD."att_ad_base" b on a."interior_ad_guid" = b."ad_code"
+        left join SJZT_MD."att_ad_base" c on b."p_ad_code" = c."ad_code"
+        left join SJZT_MD."att_ad_base" d on c."p_ad_code" = d."ad_code"
+        where (d."ad_code" = aab."guid" or c."ad_code" = aab."guid" or b."ad_code" = aab."guid" )
+        and spt.is_deleted = 0 and spt.state = 3
+        <if test="patrolTaskReport.startTime !=null and patrolTaskReport.startTime !=''">
+            AND spt.start_time &gt;= #{patrolTaskReport.startTime}
+        </if>
+        <if test="patrolTaskReport.endTime !=null and patrolTaskReport.endTime !=''">
+            AND spt.start_time &lt;= #{patrolTaskReport.endTime}
+        </if>
+        ) finish ,
+        (
+        select count(*) from YWXT.SM_PATROL_TASK spt
+        left join SJZT_MD."att_res_base" a on (spt.project_id = a."guid")
+        left join SJZT_MD."att_ad_base" b on a."interior_ad_guid" = b."ad_code"
+        left join SJZT_MD."att_ad_base" c on b."p_ad_code" = c."ad_code"
+        left join SJZT_MD."att_ad_base" d on c."p_ad_code" = d."ad_code"
+        where (d."ad_code" = aab."guid" or c."ad_code" = aab."guid" or b."ad_code" = aab."guid" )
+        and spt.is_deleted = 0 and (spt.state = 1 or spt.state = 2)
+        <if test="patrolTaskReport.startTime !=null and patrolTaskReport.startTime !=''">
+            AND spt.start_time &gt;= #{patrolTaskReport.startTime}
+        </if>
+        <if test="patrolTaskReport.endTime !=null and patrolTaskReport.endTime !=''">
+            AND spt.start_time &lt;= #{patrolTaskReport.endTime}
+        </if>
+        ) todo ,
+        (
+        select count(*) from SJZT_MD."att_res_base" a
+        left join SJZT_MD."att_ad_base" b on a."interior_ad_guid" = b."ad_code"
+        left join SJZT_MD."att_ad_base" c on b."p_ad_code" = c."ad_code"
+        left join SJZT_MD."att_ad_base" d on c."p_ad_code" = d."ad_code"
+        where (d."ad_code" = aab."guid" or c."ad_code" = aab."guid" or b."ad_code" = aab."guid" )
+        ) res_count
+        from SJZT_MD."att_ad_base" aab where
+        <choose>
+            <when test="patrolTaskReport.adCode != null and patrolTaskReport.adCode !='' ">
+                "p_ad_code" = #{patrolTaskReport.adCode}
+            </when>
+            <otherwise>
+                "ad_grad" = 2
+            </otherwise>
+        </choose>
+        )
+        where res_count >0 order by "order_id" asc
+    </select>
+
+
+
+
+
+
+    <!--获取水库巡查数据-->
+    <select id="getReservoirReportPage" resultType="cn.gistack.sm.patrol.vo.PatrolTaskReport">
+        SELECT
+            arb."name" AS reservoirName,
+            arb."guid" AS reservoirId,
+            arb."interior_ad_guid" AS adCode,
+            aab."ad_name" AS adName,
+
+        date_format(#{patrolTaskReport.startTime},'%Y-%m-%d') AS startTime,
+        date_format(#{patrolTaskReport.endTime},'%Y-%m-%d') AS endTime,
+        (
+        select count(*) from YWXT.SM_PATROL_TASK spt
+        where arb."guid" = spt.project_id
+        and spt.is_deleted = 0
+        <if test="patrolTaskReport.startTime !=null and patrolTaskReport.startTime !=''">
+            AND spt.start_time &gt;= #{patrolTaskReport.startTime}
+        </if>
+        <if test="patrolTaskReport.endTime !=null and patrolTaskReport.endTime !=''">
+            AND spt.start_time &lt;= #{patrolTaskReport.endTime}
+        </if>
+        ) need,
+        (
+        select count(*) from YWXT.SM_PATROL_TASK spt
+        where arb."guid" = spt.project_id
+        and spt.is_deleted = 0 and spt.state = 3
+        <if test="patrolTaskReport.startTime !=null and patrolTaskReport.startTime !=''">
+            AND spt.start_time &gt;= #{patrolTaskReport.startTime}
+        </if>
+        <if test="patrolTaskReport.endTime !=null and patrolTaskReport.endTime !=''">
+            AND spt.start_time &lt;= #{patrolTaskReport.endTime}
+        </if>
+        ) finish,
+        (
+        select count(*) from YWXT.SM_PATROL_TASK spt
+        where arb."guid" = spt.project_id
+        and spt.is_deleted = 0 and (spt.state = 1 or spt.state =2)
+        <if test="patrolTaskReport.startTime !=null and patrolTaskReport.startTime !=''">
+            AND spt.start_time &gt;= #{patrolTaskReport.startTime}
+        </if>
+        <if test="patrolTaskReport.endTime !=null and patrolTaskReport.endTime !=''">
+            AND spt.start_time &lt;= #{patrolTaskReport.endTime}
+        </if>
+        ) todo
+        FROM SJZT_MD."att_res_base" arb
+        LEFT JOIN SJZT_MD."att_ad_base" aab ON aab."guid" = arb."interior_ad_guid"
+        WHERE "is_deleted" = 0
+          <if test="patrolTaskReport.adCode != null and patrolTaskReport.adCode !='' ">
+              AND arb."interior_ad_guid" = #{patrolTaskReport.adCode}
+          </if>
+
+    </select>
+
+    <!--获取水库巡查数据-->
+    <select id="getReservoirReportList" resultType="cn.gistack.sm.patrol.vo.PatrolTaskReport">
+        SELECT
+        arb."name" AS reservoirName,
+        arb."guid" AS reservoirId,
+        arb."interior_ad_guid" AS adCode,
+        aab."ad_name" AS adName,
+        #{patrolTaskReport.startTime} AS startTime,
+        #{patrolTaskReport.endTime} AS endTime,
+        (
+        select count(*) from YWXT.SM_PATROL_TASK spt
+        where arb."guid" = spt.project_id
+        and spt.is_deleted = 0
+        ) need,
+        (
+        select count(*) from YWXT.SM_PATROL_TASK spt
+        where arb."guid" = spt.project_id
+        and spt.is_deleted = 0 and spt.state = 3
+        ) finish,
+        (
+        select count(*) from YWXT.SM_PATROL_TASK spt
+        where arb."guid" = spt.project_id
+        and spt.is_deleted = 0 and (spt.state = 1 or spt.state =2)
+        ) todo
+        FROM SJZT_MD."att_res_base" arb
+        LEFT JOIN SJZT_MD."att_ad_base" aab ON aab."guid" = arb."interior_ad_guid"
+        WHERE "is_deleted" = 0
+        <if test="patrolTaskReport.adCode != null and patrolTaskReport.adCode !='' ">
+            AND "interior_ad_guid" = #{patrolTaskReport.adCode}
+        </if>
+        <if test="patrolTaskReport.startTime !=null and patrolTaskReport.startTime !=''">
+            AND DATE_FORMAT(t.start_time,'%Y-%m-%d') &gt;= #{patrolTaskReport.startTime}
+        </if>
+        <if test="patrolTaskReport.endTime !=null and patrolTaskReport.endTime !=''">
+            AND DATE_FORMAT(t.start_time,'%Y-%m-%d') &lt;= #{patrolTaskReport.endTime}
+        </if>
+    </select>
+
+
+
+
+
+
+    <!--水库巡查-->
+    <select id="getTaskReportDetailRegion" resultType="cn.gistack.sm.patrol.vo.PatrolTaskReport">
+        SELECT
+        arb."guid" AS reservoirId,
+        arb."name" AS reservoirName,
+        aab."ad_name" AS adName,
+        aab."guid" AS adCode,
+        t.start_time,
+        u.real_name patrolUserName,
+        t.state,
+        t.id,
+        (
+        CASE t.state
+        WHEN '1' THEN '未完成'
+        WHEN '2' THEN '进行中'
+        ELSE '已完成'
+        END
+        )stateName
+        FROM YWXT.SM_PATROL_TASK T
+        LEFT JOIN BLADE_USER u ON u.id = t.to_user_id
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = t.project_id
+        left join SJZT_MD."att_ad_base" aab on aab."guid" = arb."interior_ad_guid"
+        left join SJZT_MD."att_ad_base" aa on aab."p_ad_code" = aa."ad_code"
+        left join SJZT_MD."att_ad_base" ab on aa."p_ad_code" = ab."ad_code"
+        left join SJZT_MD."att_ad_base" ac on ab."p_ad_code" = ac."ad_code"
+        WHERE T.IS_DELETED = 0
+        <if test="patrolTaskReport.adCode !=null and patrolTaskReport.adCode !=''">
+            and (aab."ad_code" =#{patrolTaskReport.adCode} or aa."ad_code" = #{patrolTaskReport.adCode} or ab."ad_code" = #{patrolTaskReport.adCode} or ac."ad_code" = #{patrolTaskReport.adCode})
+        </if>
+        <if test="patrolTaskReport.reservoirName !=null and patrolTaskReport.reservoirName !=''">
+            AND arb."name" LIKE CONCAT('%',#{patrolTaskReport.reservoirName},'%')
+        </if>
+        <if test="patrolTaskReport.startTime !=null and patrolTaskReport.startTime !=''">
+            AND t.start_time &gt;= #{patrolTaskReport.startTime}
+        </if>
+        <if test="patrolTaskReport.endTime !=null and patrolTaskReport.endTime !=''">
+            AND t.start_time &lt;= #{patrolTaskReport.endTime}
+        </if>
+        <if test="patrolTaskReport.reservoirId !=null and patrolTaskReport.reservoirId !=''">
+            AND arb."guid" =  #{patrolTaskReport.reservoirId}
+        </if>
+        <if test="patrolTaskReport.state != null and patrolTaskReport.state !='' ">
+            and t.state = #{patrolTaskReport.state}
+        </if>
+    </select>
+
+
+    <select id="getTaskStatusCount" resultType="cn.gistack.sm.patrol.vo.TaskStatusCount">
+
+        SELECT '未完成' AS name,'1' AS value , count(*) as taskCount FROM SM_PATROL_TASK T2
+                    LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = T2.project_id
+                    LEFT JOIN SJZT_MD."att_ad_base" aab ON aab."guid" = arb."interior_ad_guid"
+                    LEFT JOIN SJZT_MD."att_ad_base" aa ON aab."p_ad_code" = aa."ad_code"
+                    LEFT JOIN SJZT_MD."att_ad_base" ab ON aa."p_ad_code" = ab."ad_code"
+                    LEFT JOIN SJZT_MD."att_ad_base" ac ON ab."p_ad_code" = ac."ad_code"
+            WHERE T2.state = 1 AND T2.IS_DELETED = 0
+            <if test="vo.adCode != null and vo.adCode != '' ">
+                and (aab."ad_code" = #{vo.adCode} or aa."ad_code" = #{vo.adCode} or ab."ad_code" = #{vo.adCode} or ac."ad_code" = #{vo.adCode})
+            </if>
+            <if test="vo.startTime !=null and vo.startTime !=''">
+                AND T2.start_time &gt;= #{vo.startTime}
+            </if>
+            <if test="vo.endTime !=null and vo.endTime !=''">
+                AND T2.end_time &lt;= #{vo.endTime}
+            </if>
+            <if test="vo.reservoirName !=null and vo.reservoirName !='' ">
+                AND T2.reservoir_name LIKE CONCAT('%',#{vo.reservoirName},'%')
+            </if>
+        UNION ALL
+        SELECT '进行中' AS name,'2' AS value , count(*) as taskCount FROM SM_PATROL_TASK T3
+                LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = T3.project_id
+                LEFT JOIN SJZT_MD."att_ad_base" aab ON aab."guid" = arb."interior_ad_guid"
+                LEFT JOIN SJZT_MD."att_ad_base" aa ON aab."p_ad_code" = aa."ad_code"
+                LEFT JOIN SJZT_MD."att_ad_base" ab ON aa."p_ad_code" = ab."ad_code"
+                LEFT JOIN SJZT_MD."att_ad_base" ac ON ab."p_ad_code" = ac."ad_code"
+                WHERE T3.state = 2 AND T3.IS_DELETED = 0
+                <if test="vo.adCode != null and vo.adCode != '' ">
+                    and (aab."ad_code" = #{vo.adCode} or aa."ad_code" = #{vo.adCode} or ab."ad_code" = #{vo.adCode} or ac."ad_code" = #{vo.adCode})
+                </if>
+                <if test="vo.startTime !=null and vo.startTime !=''">
+                    AND T3.start_time &gt;= #{vo.startTime}
+                </if>
+                <if test="vo.endTime !=null and vo.endTime !=''">
+                    AND T3.end_time &lt;= #{vo.endTime}
+                </if>
+                <if test="vo.reservoirName !=null and vo.reservoirName !='' ">
+                    AND T3.reservoir_name LIKE CONCAT('%',#{vo.reservoirName},'%')
+                </if>
+        UNION ALL
+        SELECT '已完成' AS name,'3' AS value , count(*) as taskCount FROM SM_PATROL_TASK T4
+                LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = T4.project_id
+                LEFT JOIN SJZT_MD."att_ad_base" aab ON aab."guid" = arb."interior_ad_guid"
+                LEFT JOIN SJZT_MD."att_ad_base" aa ON aab."p_ad_code" = aa."ad_code"
+                LEFT JOIN SJZT_MD."att_ad_base" ab ON aa."p_ad_code" = ab."ad_code"
+                LEFT JOIN SJZT_MD."att_ad_base" ac ON ab."p_ad_code" = ac."ad_code"
+                WHERE T4.state = 3 AND T4.IS_DELETED = 0
+                <if test="vo.adCode != null and vo.adCode != '' ">
+                    and (aab."ad_code" = #{vo.adCode} or aa."ad_code" = #{vo.adCode} or ab."ad_code" = #{vo.adCode} or ac."ad_code" = #{vo.adCode})
+                </if>
+                <if test="vo.startTime !=null and vo.startTime !=''">
+                    AND T4.start_time &gt;= #{vo.startTime}
+                </if>
+                <if test="vo.endTime !=null and vo.endTime !=''">
+                    AND T4.end_time &lt;= #{vo.endTime}
+                </if>
+                <if test="vo.reservoirName !=null and vo.reservoirName !='' ">
+                    AND T4.reservoir_name LIKE CONCAT('%',#{vo.reservoirName},'%')
+                </if>
+        UNION ALL
+            SELECT '全部' AS name,'' AS value , count(*) as taskCount
+            FROM SM_PATROL_TASK T1
+            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = T1.project_id
+            LEFT JOIN SJZT_MD."att_ad_base" aab ON aab."guid" = arb."interior_ad_guid"
+            LEFT JOIN SJZT_MD."att_ad_base" aa ON aab."p_ad_code" = aa."ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" ab ON aa."p_ad_code" = ab."ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" ac ON ab."p_ad_code" = ac."ad_code"
+            WHERE T1.IS_DELETED = 0
+            <if test="vo.adCode != null and vo.adCode != '' ">
+                and (aab."ad_code" = #{vo.adCode} or aa."ad_code" = #{vo.adCode} or ab."ad_code" = #{vo.adCode} or ac."ad_code" = #{vo.adCode})
+            </if>
+            <if test="vo.startTime !=null and vo.startTime !=''">
+                AND T1.start_time &gt;= #{vo.startTime}
+            </if>
+            <if test="vo.endTime !=null and vo.endTime !=''">
+                AND T1.end_time &lt;= #{vo.endTime}
+            </if>
+            <if test="vo.reservoirName !=null and vo.reservoirName !='' ">
+                AND T1.reservoir_name LIKE CONCAT('%',#{vo.reservoirName},'%')
+            </if>
+    </select>
+
+    <select id="getTaskStatusCountByType" resultType="cn.gistack.sm.patrol.vo.TaskStatusCount">
+        SELECT
+            case when T.state = '1' then '未完成'
+                        when t.state = '2' then '进行中'
+                        when t.state = '3' then '已完成'
+                         else null end as name,
+             T.STATE AS VALUE ,
+             count(*) as taskCount
+        FROM YWXT.SM_PATROL_TASK T
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = T.project_id
+        LEFT JOIN SJZT_MD."att_ad_base" aab ON aab."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" aa ON aab."p_ad_code" = aa."ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" ab ON aa."p_ad_code" = ab."ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" ac ON ab."p_ad_code" = ac."ad_code"
+        WHERE   T.IS_DELETED = '0'
+        <if test="type != null and type !=''">
+            and t.state = #{type}
+        </if>
+        <if test="vo.adCode != null and vo.adCode != '' ">
+            and (aab."ad_code" = #{vo.adCode} or aa."ad_code" = #{vo.adCode} or ab."ad_code" = #{vo.adCode} or ac."ad_code" = #{vo.adCode})
+        </if>
+        <if test="vo.startTime !=null and vo.startTime !=''">
+            AND T.start_time &gt;= #{vo.startTime}
+        </if>
+        <if test="vo.endTime !=null and vo.endTime !=''">
+            AND T.end_time &lt;= #{vo.endTime}
+        </if>
+        <if test="vo.reservoirName !=null and vo.reservoirName !='' ">
+            AND T.reservoir_name LIKE CONCAT('%',#{vo.reservoirName},'%')
+        </if>
+        GROUP BY T.STATE
+    </select>
+
+    <select id="getTaskStatusCountAll" resultType="cn.gistack.sm.patrol.vo.TaskStatusCount">
+        SELECT '全部' AS name,'' AS value , count(*) as taskCount
+        FROM SM_PATROL_TASK T1
+        LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = T1.project_id
+        LEFT JOIN SJZT_MD."att_ad_base" aab ON aab."guid" = arb."interior_ad_guid"
+        LEFT JOIN SJZT_MD."att_ad_base" aa ON aab."p_ad_code" = aa."ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" ab ON aa."p_ad_code" = ab."ad_code"
+        LEFT JOIN SJZT_MD."att_ad_base" ac ON ab."p_ad_code" = ac."ad_code"
+        WHERE T1.IS_DELETED = 0
+        <if test="vo.adCode != null and vo.adCode != '' ">
+            and (aab."ad_code" = #{vo.adCode} or aa."ad_code" = #{vo.adCode} or ab."ad_code" = #{vo.adCode} or ac."ad_code" = #{vo.adCode})
+        </if>
+        <if test="vo.startTime !=null and vo.startTime !=''">
+            AND T1.start_time &gt;= #{vo.startTime}
+        </if>
+        <if test="vo.endTime !=null and vo.endTime !=''">
+            AND T1.end_time &lt;= #{vo.endTime}
+        </if>
+        <if test="vo.reservoirName !=null and vo.reservoirName !='' ">
+            AND T1.reservoir_name LIKE CONCAT('%',#{vo.reservoirName},'%')
+        </if>
+    </select>
+
+
+    <select id="getTaskTypeCount" resultType="cn.gistack.sm.patrol.vo.TaskStatusCount">
+
+        SELECT
+               SPT.NAME AS NAME,SPT.ID AS VALUE, ifnull(A.NUM,0) AS TaskCount
+        FROM SM_PATROL_TYPE SPT
+        LEFT JOIN (
+            SELECT T.TASK_TYPE, COUNT(*) AS NUM FROM SM_PATROL_TASK T
+            LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = T.project_id
+            LEFT JOIN SJZT_MD."att_ad_base" aab ON aab."guid" = arb."interior_ad_guid"
+            LEFT JOIN SJZT_MD."att_ad_base" aa ON aab."p_ad_code" = aa."ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" ab ON aa."p_ad_code" = ab."ad_code"
+            LEFT JOIN SJZT_MD."att_ad_base" ac ON ab."p_ad_code" = ac."ad_code"
+            WHERE T.IS_DELETED = 0
+            <if test="vo.adCode != null and vo.adCode != '' ">
+                and concat(aab."ad_code",aa."ad_code",ab."ad_code",ac."ad_code") like CONCAT('%',#{vo.adCode},'%')
+            </if>
+            <if test="vo.startTime !=null and vo.startTime !=''">
+                AND T.create_time &gt;= #{vo.startTime}
+            </if>
+            <if test="vo.endTime !=null and vo.endTime !=''">
+                AND T.create_time &lt;= #{vo.endTime}
+            </if>
+            <if test="vo.reservoirName !=null and vo.reservoirName !='' ">
+                AND T.reservoir_name LIKE CONCAT('%',#{vo.reservoirName},'%')
+            </if>
+            <if test="vo.state != null and vo.state !=''">
+                and T.state = #{vo.state}
+            </if>
+            GROUP BY T.TASK_TYPE
+        ) A ON A.task_type = spt.id
+        WHERE SPT.IS_DELETED = 0
+    </select>
+    <select id="getTaskStatus" resultType="cn.gistack.sm.patrol.vo.TaskStatus">
+        SELECT
+            count(*) as total,
+            sum(case when t.state = '1' then 1 else 0 end) unfinished,
+            sum(case when t.state = '2' then 1 else 0 end) processing,
+            sum(case when t.state = '3' then 1 else 0 end) finished
+        FROM YWXT.SM_PATROL_TASK T
+                 LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = T.project_id
+                 LEFT JOIN SJZT_MD."att_ad_base" aab ON aab."guid" = arb."interior_ad_guid"
+                 LEFT JOIN SJZT_MD."att_ad_base" aa ON aab."p_ad_code" = aa."ad_code"
+                 LEFT JOIN SJZT_MD."att_ad_base" ab ON aa."p_ad_code" = ab."ad_code"
+                 LEFT JOIN SJZT_MD."att_ad_base" ac ON ab."p_ad_code" = ac."ad_code"
+        WHERE  T.IS_DELETED = 0
+        <if test="vo.adCode != null and vo.adCode != '' ">
+            and concat(aab."ad_code",aa."ad_code",ab."ad_code",ac."ad_code") like CONCAT('%',#{vo.adCode},'%')
+        </if>
+        <if test="vo.startTime !=null and vo.startTime !=''">
+            AND T.create_time &gt;= #{vo.startTime}
+        </if>
+        <if test="vo.endTime !=null and vo.endTime !=''">
+            AND T.create_time &lt;= #{vo.endTime}
+        </if>
+        <if test="vo.reservoirName !=null and vo.reservoirName !='' ">
+            AND T.reservoir_name LIKE CONCAT('%',#{vo.reservoirName},'%')
+        </if>
+    </select>
+
+    <resultMap id="item" type="cn.gistack.sm.patrol.entity.PatrolGroupItem">
+        <result property="id" column="itemId"/>
+        <result property="itemsName" column="itemsName"/>
+        <result property="groupId" column="groupId"/>
+        <result property="description" column="description"/>
+    </resultMap>
+
+    <resultMap id="groupDTO" type="cn.gistack.sm.patrol.dto.PatrolGroupDTOS">
+        <id property="id" column="groupId"/>
+        <result property="name" column="groupName"/>
+        <collection property="itemList" resultMap="item"/>
+    </resultMap>
+
+    <resultMap id="taskDTO" type="cn.gistack.sm.patrol.dto.PatrolTaskDTO">
+        <id property="id" column="taskId"/>
+        <result property="projectId" column="projectId"/>
+        <result property="state" column="state"/>
+        <result property="title" column="title"/>
+        <result property="content" column="content"/>
+        <collection property="groupList"  resultMap="groupDTO"/>
+    </resultMap>
+
+    <select id="getTaskDTO" resultMap="taskDTO">
+        SELECT
+            task.id as taskId,
+            task.project_id as projectId,
+            task.state as state,
+            task.title as title,
+            task.content as content,
+
+            spg.id as groupId,
+            spg.name as groupName,
+
+            spgi.id as itemId,
+            spgi.items_name as itemsName,
+            spgi.description as description
+        FROM YWXT.SM_PATROL_TASK TASK
+                 LEFT JOIN SM_PATROL_GROUP_ITEM SPGI ON task.patrol_group_item_id like CONCAT('%',spgi.id,'%')
+                 LEFT JOIN SM_PATROL_GROUP SPG ON SPG.ID = SPGI.GROUP_ID
+        WHERE task.is_deleted = 0 and  TASK.ID = #{taskId}
+    </select>
+
+    <select id="getMyTask" resultType="cn.gistack.sm.patrol.entity.PatrolTask">
+        SELECT
+            id,title,project_id,content,state,to_user_id,real_end_time
+
+        from sm_patrol_task spt
+        where spt.is_deleted = 0
+        <if test="patrolTask.toUserId != null and patrolTask.toUserId != ''">
+            AND spt.to_user_id LIKE CONCAT('%',#{patrolTask.toUserId},'%')
+        </if>
+        <if test="patrolTask.state != null and patrolTask.state != ''">
+            AND spt.state = #{patrolTask.state}
+        </if>
+        order by spt.create_time desc
+    </select>
+
+
 </mapper>

--
Gitblit v1.9.3