guoshilong
2024-02-06 13b6d196199d6b73e5908db69d007606afaebe8b
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>