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 >= #{vo.startTime}
+ </if>
+ <if test="vo.endTime !=null and vo.endTime !=''">
+ AND T.end_time <= #{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 >= #{vo.startTime}
+ </if>
+ <if test="vo.endTime !=null and vo.endTime !=''">
+ AND T1.end_time <= #{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 >= #{vo.startTime}
+ </if>
+ <if test="vo.endTime !=null and vo.endTime !=''">
+ AND T.end_time <= #{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