From 916b76ee90fceff31fe7969db9d9da995d919d52 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Fri, 28 Jul 2023 17:05:26 +0800
Subject: [PATCH] 巡查报表接口修改

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.xml |  435 +++++++++++++++++++++++++++--------------------------
 1 files changed, 222 insertions(+), 213 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 466c402..83a8a2d 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
@@ -200,225 +200,230 @@
         WHERE T.ID = #{id}
         AND T.IS_DELETED = 0
     </select>
-    <!--获取市级巡查数据-->
-    <select id="getCityReportPage" resultType="cn.gistack.sm.patrol.vo.PatrolTaskReport">
-        SELECT
-        a."p_ad_code" adCode,
-        a."p_ad_name" adName,
-        sum(a.need) AS need,
-        sum(a.finish) AS finish,
-        sum(a.todo) AS todo,
-        #{patrolTaskReport.startTime} AS startTime,
-        #{patrolTaskReport.endTime} AS endTime
-        FROM (
-        SELECT
-        aab."p_ad_code",aab."p_ad_name",
-        COUNT(*) AS need,
-        SUM(CASE WHEN t.state = 3 THEN 1 ELSE 0 END) AS finish,
-        SUM(CASE WHEN t.state = 1 or state = 2 THEN 1 ELSE 0 END) AS todo
-        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" = CONCAT(arb."ad_guid",'000000')
-        where t.is_deleted = 0 AND aab."p_ad_code" != '420000000000'
-        <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>
-        GROUP BY (aab."p_ad_code",aab."p_ad_name")
-        ORDER BY aab."p_ad_code"
-        ) A
-        GROUP BY (a."p_ad_code",a."p_ad_name") order by a."p_ad_code"
 
+    <!--行政区统计分页-->
+    <select id="getRegionReportPage" resultType="cn.gistack.sm.patrol.vo.PatrolTaskReport">
+        select * from (
+                          select "ad_name"  AS adName ,"guid" AS adCode,"ad_grad","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 DATE_FORMAT(spt.start_time,'%Y-%m-%d') &gt;= #{patrolTaskReport.startTime}
+                                </if>
+                                <if test="patrolTaskReport.endTime !=null and patrolTaskReport.endTime !=''">
+                                    AND DATE_FORMAT(spt.start_time,'%Y-%m-%d') &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 DATE_FORMAT(spt.start_time,'%Y-%m-%d') &gt;= #{patrolTaskReport.startTime}
+                                    </if>
+                                    <if test="patrolTaskReport.endTime !=null and patrolTaskReport.endTime !=''">
+                                        AND DATE_FORMAT(spt.start_time,'%Y-%m-%d') &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 DATE_FORMAT(spt.start_time,'%Y-%m-%d') &gt;= #{patrolTaskReport.startTime}
+                                </if>
+                                <if test="patrolTaskReport.endTime !=null and patrolTaskReport.endTime !=''">
+                                    AND DATE_FORMAT(spt.start_time,'%Y-%m-%d') &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="getCountyReportPage" resultType="cn.gistack.sm.patrol.vo.PatrolTaskReport">
-        SELECT
-        aab."ad_name" AS adName,
-        aab."guid" AS adCode,
-        #{patrolTaskReport.startTime} AS startTime,
-        #{patrolTaskReport.endTime} AS endTime,
-        COUNT(*) AS need,
-        SUM(CASE WHEN t.state = 3 THEN 1 ELSE 0 END) AS finish,
-        SUM(CASE WHEN t.state = 1 or state = 2 THEN 1 ELSE 0 END) AS todo
-        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" = CONCAT(arb."ad_guid",'000000')
-        WHERE t.IS_DELETED = 0
-        <if test="patrolTaskReport.padCode !=null and patrolTaskReport.padCode !=''">
-            AND aab."p_ad_code" = #{patrolTaskReport.padCode}
-        </if>
+
+    <!--行政区统计列表-->
+    <select id="getRegionReportList" resultType="cn.gistack.sm.patrol.vo.PatrolTaskReport">
+        select * from (
+        select "ad_name","ad_grad","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 DATE_FORMAT(t.start_time,'%Y-%m-%d') &gt;= #{patrolTaskReport.startTime}
+            AND DATE_FORMAT(spt.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}
+            AND DATE_FORMAT(spt.start_time,'%Y-%m-%d') &lt;= #{patrolTaskReport.endTime}
         </if>
-        GROUP BY (aab."ad_name",aab."guid")
-        ORDER BY aab."guid"
-    </select>
-    <!--获取乡镇巡查数据-->
-    <select id="getTownReportPage" resultType="cn.gistack.sm.patrol.vo.PatrolTaskReport">
-        SELECT
-        aab."ad_name" AS adName,
-        aab."guid" AS adCode,
-        #{patrolTaskReport.startTime} AS startTime,
-        #{patrolTaskReport.endTime} AS endTime,
-        COUNT(*) AS need,
-        SUM(CASE WHEN t.state = 3 THEN 1 ELSE 0 END) AS finish,
-        SUM(CASE WHEN t.state = 1 or state = 2 THEN 1 ELSE 0 END) AS todo
-        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"
-        WHERE t.IS_DELETED = 0
-        <if test="patrolTaskReport.padCode !=null and patrolTaskReport.padCode !=''">
-            AND aab."p_ad_code" = #{patrolTaskReport.padCode}
-        </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 DATE_FORMAT(t.start_time,'%Y-%m-%d') &gt;= #{patrolTaskReport.startTime}
+            AND DATE_FORMAT(spt.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}
+            AND DATE_FORMAT(spt.start_time,'%Y-%m-%d') &lt;= #{patrolTaskReport.endTime}
         </if>
-        GROUP BY (aab."ad_name",aab."guid")
-        ORDER BY aab."guid"
+        ) 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 DATE_FORMAT(spt.start_time,'%Y-%m-%d') &gt;= #{patrolTaskReport.startTime}
+        </if>
+        <if test="patrolTaskReport.endTime !=null and patrolTaskReport.endTime !=''">
+            AND DATE_FORMAT(spt.start_time,'%Y-%m-%d') &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."guid" AS reservoirId,
-        arb."name" AS reservoirName,
-        aab."guid" AS adCode,
-        aab."ad_name" AS adName,
-        #{patrolTaskReport.startTime} AS startTime,
-        #{patrolTaskReport.endTime} AS endTime,
-        COUNT(*) AS need,
-        SUM(CASE WHEN t.state = 3 THEN 1 ELSE 0 END) AS finish,
-        SUM(CASE WHEN t.state = 1 or state = 2 THEN 1 ELSE 0 END) AS todo
-        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"
-        WHERE
-        t.IS_DELETED = 0
-        <if test="patrolTaskReport.adCode != null and patrolTaskReport.adCode !=''">
-            AND aab."ad_code" = #{patrolTaskReport.adCode}
-        </if>
+            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
         <if test="patrolTaskReport.startTime !=null and patrolTaskReport.startTime !=''">
-            AND DATE_FORMAT(t.start_time,'%Y-%m-%d') &gt;= #{patrolTaskReport.startTime}
+            AND DATE_FORMAT(spt.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}
+            AND DATE_FORMAT(spt.start_time,'%Y-%m-%d') &lt;= #{patrolTaskReport.endTime}
         </if>
-        GROUP BY (arb."guid",arb."name",aab."guid",aab."ad_name")
-        ORDER BY arb."guid"
-    </select>
-
-
-
-    <!--获取市级巡查数据-->
-    <select id="getCityReportList" resultType="cn.gistack.sm.patrol.vo.PatrolTaskReport">
-        SELECT
-        a."p_ad_code" adCode,
-        a."p_ad_name" adName,
-        sum(a.need) AS need,
-        sum(a.finish) AS finish,
-        sum(a.todo) AS todo,
-        #{patrolTaskReport.startTime} AS startTime,
-        #{patrolTaskReport.endTime} AS endTime
-        FROM (
-        SELECT
-        aab."p_ad_code",aab."p_ad_name",
-        COUNT(*) AS need,
-        SUM(CASE WHEN t.state = 3 THEN 1 ELSE 0 END) AS finish,
-        SUM(CASE WHEN t.state = 1 or state = 2 THEN 1 ELSE 0 END) AS todo
-        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" = CONCAT(arb."ad_guid",'000000')
-        where t.is_deleted = 0 AND aab."p_ad_code" != '420000000000'
+        ) 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 DATE_FORMAT(t.start_time,'%Y-%m-%d') &gt;= #{patrolTaskReport.startTime}
+            AND DATE_FORMAT(spt.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}
+            AND DATE_FORMAT(spt.start_time,'%Y-%m-%d') &lt;= #{patrolTaskReport.endTime}
         </if>
-        GROUP BY (aab."p_ad_code",aab."p_ad_name")
-        ORDER BY aab."p_ad_code"
-        ) A
-        GROUP BY (a."p_ad_code",a."p_ad_name") order by a."p_ad_code"
+        ) 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 DATE_FORMAT(spt.start_time,'%Y-%m-%d') &gt;= #{patrolTaskReport.startTime}
+        </if>
+        <if test="patrolTaskReport.endTime !=null and patrolTaskReport.endTime !=''">
+            AND DATE_FORMAT(spt.start_time,'%Y-%m-%d') &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="getCountyReportList" resultType="cn.gistack.sm.patrol.vo.PatrolTaskReport">
-        SELECT
-        aab."ad_name" AS adName,
-        aab."guid" AS adCode,
-        #{patrolTaskReport.startTime} AS startTime,
-        #{patrolTaskReport.endTime} AS endTime,
-        COUNT(*) AS need,
-        SUM(CASE WHEN t.state = 3 THEN 1 ELSE 0 END) AS finish,
-        SUM(CASE WHEN t.state = 1 or state = 2 THEN 1 ELSE 0 END) AS todo
-        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" = CONCAT(arb."ad_guid",'000000')
-        WHERE t.IS_DELETED = 0
-        <if test="patrolTaskReport.padCode !=null and patrolTaskReport.padCode !=''">
-            AND aab."p_ad_code" = #{patrolTaskReport.padCode}
-        </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>
-        GROUP BY (aab."ad_name",aab."guid")
-        ORDER BY aab."guid"
-    </select>
-    <!--获取乡镇巡查数据-->
-    <select id="getTownReportList" resultType="cn.gistack.sm.patrol.vo.PatrolTaskReport">
-        SELECT
-        aab."ad_name" AS adName,
-        aab."guid" AS adCode,
-        #{patrolTaskReport.startTime} AS startTime,
-        #{patrolTaskReport.endTime} AS endTime,
-        COUNT(*) AS need,
-        SUM(CASE WHEN t.state = 3 THEN 1 ELSE 0 END) AS finish,
-        SUM(CASE WHEN t.state = 1 or state = 2 THEN 1 ELSE 0 END) AS todo
-        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"
-        WHERE t.IS_DELETED = 0
-        <if test="patrolTaskReport.padCode !=null and patrolTaskReport.padCode !=''">
-            AND aab."p_ad_code" = #{patrolTaskReport.padCode}
-        </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>
-        GROUP BY (aab."ad_name",aab."guid")
-        ORDER BY aab."guid"
-    </select>
+
     <!--获取水库巡查数据-->
     <select id="getReservoirReportList" resultType="cn.gistack.sm.patrol.vo.PatrolTaskReport">
         SELECT
-        arb."guid" AS reservoirId,
         arb."name" AS reservoirName,
-        aab."guid" AS adCode,
+        arb."guid" AS reservoirId,
+        arb."interior_ad_guid" AS adCode,
         aab."ad_name" AS adName,
         #{patrolTaskReport.startTime} AS startTime,
         #{patrolTaskReport.endTime} AS endTime,
-        COUNT(*) AS need,
-        SUM(CASE WHEN t.state = 3 THEN 1 ELSE 0 END) AS finish,
-        SUM(CASE WHEN t.state = 1 or state = 2 THEN 1 ELSE 0 END) AS todo
-        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"
-        WHERE
-        t.IS_DELETED = 0
-        <if test="patrolTaskReport.adCode != null and patrolTaskReport.adCode !=''">
-            AND aab."ad_code" = #{patrolTaskReport.adCode}
+        (
+        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}
@@ -426,8 +431,6 @@
         <if test="patrolTaskReport.endTime !=null and patrolTaskReport.endTime !=''">
             AND DATE_FORMAT(t.start_time,'%Y-%m-%d') &lt;= #{patrolTaskReport.endTime}
         </if>
-        GROUP BY (arb."guid",arb."name",aab."guid",aab."ad_name")
-        ORDER BY arb."guid"
     </select>
 
 
@@ -438,27 +441,30 @@
     <!--水库巡查-->
     <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,
-            (
-                CASE t.state
-                WHEN '1' THEN '未完成'
-                WHEN '2' THEN '进行中'
-                ELSE '已完成'
-                END
-            )stateName
-        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" = CONCAT(arb."ad_guid",'000000')
-            LEFT JOIN BLADE_USER u ON u.id = t.to_user_id
+        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,
+        (
+        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."guid" LIKE CONCAT('%',#{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},'%')
@@ -472,12 +478,15 @@
         <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 YWXT.SM_PATROL_TASK T2
+        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"
@@ -497,7 +506,7 @@
                 AND T2.reservoir_name LIKE CONCAT('%',#{vo.reservoirName},'%')
             </if>
         UNION ALL
-        SELECT '进行中' AS name,'2' AS value , count(*) as taskCount FROM YWXT.SM_PATROL_TASK T3
+        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"
@@ -517,7 +526,7 @@
                     AND T3.reservoir_name LIKE CONCAT('%',#{vo.reservoirName},'%')
                 </if>
         UNION ALL
-        SELECT '已完成' AS name,'3' AS value , count(*) as taskCount FROM YWXT.SM_PATROL_TASK T4
+        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"
@@ -538,7 +547,7 @@
                 </if>
         UNION ALL
             SELECT '全部' AS name,'' AS value , count(*) as taskCount
-            FROM YWXT.SM_PATROL_TASK T1
+            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"

--
Gitblit v1.9.3