From 13b6d196199d6b73e5908db69d007606afaebe8b Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Tue, 06 Feb 2024 16:09:06 +0800
Subject: [PATCH] 任务状态数量接口优化

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.xml |   82 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 82 insertions(+), 0 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 e930421..6221c37 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
@@ -574,6 +574,62 @@
             </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">
 
@@ -604,6 +660,32 @@
         ) 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 (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>
+    </select>
 
 
 </mapper>

--
Gitblit v1.9.3