From 1df02b011c951ed5f57e40663e014fd913cbbe20 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Tue, 23 May 2023 19:44:53 +0800
Subject: [PATCH] 巡检报表接口

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.xml |  119 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 97 insertions(+), 22 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 c315ef5..a62cf87 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
@@ -182,41 +182,48 @@
         WHERE T.ID = #{id}
         AND T.IS_DELETED = 0
     </select>
-
+    <!--市查区-->
     <select id="getTaskReportRegion" resultType="cn.gistack.sm.patrol.vo.PatrolTaskReport">
         SELECT
-            aab."ad_name" AS adName,
-            aab."guid" AS adCode,
-            to_char(t.start_time,'yyyy-mm-dd') AS statisticsTime,
-            COUNT(*) AS need,
-            SUM(CASE WHEN t.state = 3 THEN 1 ELSE 0 END) AS finish,
-            SUM(CASE WHEN t.state = 1 THEN 1 ELSE 0 END) AS todo
+        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')
+        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.statisticsTime !=null and patrolTaskReport.statisticsTime !=''">
-            AND to_char(t.start_time,'yyyy-mm-dd') = #{patrolTaskReport.statisticsTime}
+        <if test="patrolTaskReport.startTime !=null and patrolTaskReport.startTime !=''">
+            AND DATE_FORMAT(t.start_time,'%Y-%m-%d') &gt;= #{patrolTaskReport.startTime}
         </if>
-        GROUP BY (aab."ad_name",aab."guid",to_char(t.start_time,'yyyy-mm-dd'))
+        <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")
     </select>
+    <!--区查水库-->
     <select id="getTaskReportReservoir" 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,
-            COUNT(*) AS need,
-            SUM(CASE WHEN t.state = 3 THEN 1 ELSE 0 END) AS finish,
-            SUM(CASE WHEN t.state = 1 THEN 1 ELSE 0 END) AS todo
+        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 SK002.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 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
+        t.IS_DELETED = 0
         <if test="patrolTaskReport.adCode != null and patrolTaskReport.adCode !=''">
             AND aab."ad_code" = #{patrolTaskReport.adCode}
         </if>
@@ -228,5 +235,73 @@
         </if>
         GROUP BY (arb."guid",arb."name",aab."guid",aab."ad_name")
     </select>
+    <!--省查市-->
+    <select id="getTaskReportProvince" 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 SK002.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")
+            ) A
+        GROUP BY (a."p_ad_code",a."p_ad_name") order by a."p_ad_code"
+    </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,
+            (
+                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
+        WHERE T.IS_DELETED = 0
+        <if test="patrolTaskReport.adCode !=null and patrolTaskReport.adCode !=''">
+            AND aab."guid" LIKE CONCAT('%',#{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 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>
+        <if test="patrolTaskReport.reservoirId !=null and patrolTaskReport.reservoirId !=''">
+            AND arb."guid" =  #{patrolTaskReport.reservoirId}
+        </if>
+    </select>
 
 </mapper>

--
Gitblit v1.9.3