From 4c7c186136a68213cd39557e35ad42081eb61995 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Thu, 27 Jul 2023 11:44:59 +0800
Subject: [PATCH] 巡查任务修改

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/mapper/PatrolTaskMapper.xml |  126 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 126 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 fb5ba28..466c402 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
@@ -16,6 +16,12 @@
         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},'%')
@@ -41,6 +47,10 @@
         <if test="patrolTask.taskType != null and patrolTask.taskType !='' ">
             AND spt.task_type = #{patrolTask.taskType}
         </if>
+        <if test="patrolTask.adCode != null and patrolTask.adCode != '' ">
+            and (aab."ad_code" = #{patrolTask.adCode} or aa."ad_code" = #{patrolTask.adCode} or ab."ad_code" = #{patrolTask.adCode} or ac."ad_code" = #{patrolTask.adCode})
+        </if>
+
     </select>
     <!--获取全部-->
     <select id="getAll" resultType="cn.gistack.sm.patrol.entity.PatrolTask">
@@ -465,4 +475,120 @@
     </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
+                    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 DATE_FORMAT(T2.start_time,'%Y-%m-%d') &gt;= #{vo.startTime}
+            </if>
+            <if test="vo.endTime !=null and vo.endTime !=''">
+                AND DATE_FORMAT(T2.end_time,'%Y-%m-%d') &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 YWXT.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 DATE_FORMAT(T3.start_time,'%Y-%m-%d') &gt;= #{vo.startTime}
+                </if>
+                <if test="vo.endTime !=null and vo.endTime !=''">
+                    AND DATE_FORMAT(T3.end_time,'%Y-%m-%d') &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 YWXT.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 DATE_FORMAT(T4.start_time,'%Y-%m-%d') &gt;= #{vo.startTime}
+                </if>
+                <if test="vo.endTime !=null and vo.endTime !=''">
+                    AND DATE_FORMAT(T4.end_time,'%Y-%m-%d') &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 YWXT.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 DATE_FORMAT(T1.start_time,'%Y-%m-%d') &gt;= #{vo.startTime}
+            </if>
+            <if test="vo.endTime !=null and vo.endTime !=''">
+                AND DATE_FORMAT(T1.end_time,'%Y-%m-%d') &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 (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 DATE_FORMAT(T.start_time,'%Y-%m-%d') &gt;= #{vo.startTime}
+            </if>
+            <if test="vo.endTime !=null and vo.endTime !=''">
+                AND DATE_FORMAT(T.end_time,'%Y-%m-%d') &lt;= #{vo.endTime}
+            </if>
+            <if test="vo.reservoirName !=null and vo.reservoirName !='' ">
+                AND T.reservoir_name LIKE CONCAT('%',#{vo.reservoirName},'%')
+            </if>
+            GROUP BY T.TASK_TYPE
+        ) A ON A.task_type = spt.id
+        WHERE SPT.IS_DELETED = 0
+    </select>
+
+
 </mapper>

--
Gitblit v1.9.3