guoshilong
2023-05-23 1df02b011c951ed5f57e40663e014fd913cbbe20
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>