zmc
2023-11-23 555fb0758022cec5c88e98ee989d0287bdc0052d
src/main/resources/mapper/FugitiveDustMapper.xml
@@ -35,7 +35,8 @@
        from ja_t_dust_site_data_info as a join ja_t_dust_site_info as b on a.mn_code = b.mn_code
        <where>
            <if test="siteName !=null and siteName != ''">
                b.name like concat('%',#{siteName},'%')
<!--                b.name like concat('%',#{siteName},'%')-->
                b.name = #{siteName}
            </if>
            <if test="mnCode !=null and mnCode != ''">
                and a.mn_code = #{mnCode}
@@ -63,41 +64,52 @@
            </if>
            <if test="beginTime != null and endTime != null">
                and a.Lst between #{beginTime} and #{endTime}
                and a.Lst between #{beginTime} and #{endTime} and a.type = #{type}
            </if>
        </where>
    </select>
<!--    &lt;!&ndash;    根据站点名字和时段进行统计分析&ndash;&gt;-->
<!--    <select id="analysisByTime" resultType="com.flightfeather.monitor.pojo.AnalysisDustData">-->
<!--        select  c.name,d.*-->
<!--        from ja_t_dust_site_info as c  join-->
<!--        (-->
<!--        select-->
<!--        mn_code as mn_code,-->
<!--        DATE(lst) as lst,-->
<!--        ROUND(AVG(dust_value),3)  as day_avg,-->
<!--        min(dust_value) as min,-->
<!--        max(dust_value) as max,-->
<!--        CONCAT(ROUND(COUNT(*)/96*100, 2), '%')  as day_online,-->
<!--        CONCAT(ROUND(SUM(CASE WHEN dust_value >0 THEN 1 ELSE 0 END)/96 *100, 2), '%') as day_valid,-->
<!--        CONCAT(ROUND(SUM(CASE WHEN dust_value >= 1  THEN 1 ELSE 0 END)/96*100,2),'%') as  day_exceeding-->
<!--        from ja_t_dust_site_data_info-->
<!--        <where>-->
<!--&lt;!&ndash;            <if test="siteName !=null and siteName != ''">&ndash;&gt;-->
<!--&lt;!&ndash;                b.name = #{siteName}&ndash;&gt;-->
<!--&lt;!&ndash;            </if>&ndash;&gt;-->
<!--            <if test="beginTime != null and endTime != null">-->
<!--                lst between #{beginTime} and #{endTime}-->
<!--            </if>-->
<!--        </where>-->
<!--        GROUP BY mn_code,DATE(lst)-->
<!--        order by lst asc ) as d  on c.mn_code = d.mn_code-->
<!--    </select>-->
    <!--    根据站点名字和时段进行统计分析-->
    <select id="analysisByTime" resultType="com.flightfeather.monitor.pojo.AnalysisDustData">
        select  c.name,d.*
        from ja_t_dust_site_info as c  join
        (
        select
        mn_code as mn_code,
        DATE(lst) as lst,
        ROUND(AVG(dust_value),3)  as day_avg,
        min(dust_value) as min,
        max(dust_value) as max,
        CONCAT(ROUND(COUNT(*)/96*100, 2), '%')  as day_online,
        CONCAT(ROUND(SUM(CASE WHEN dust_value >0 THEN 1 ELSE 0 END)/96 *100, 2), '%') as day_valid,
        CONCAT(ROUND(SUM(CASE WHEN dust_value >= 1  THEN 1 ELSE 0 END)/96*100,2),'%') as  day_exceeding
        from ja_t_dust_site_data_info
        from ja_t_dust_site_info as c  join dust_statistics_value as d  on c.mn_code = d.mn_code
        <where>
<!--            <if test="siteName !=null and siteName != ''">-->
<!--                b.name = #{siteName}-->
<!--            </if>-->
            <if test="beginTime != null and endTime != null">
                lst between #{beginTime} and #{endTime}
                d.lst between #{beginTime} and #{endTime} and d.type = 'day'
            </if>
        </where>
        GROUP BY mn_code,DATE(lst)
        order by lst asc ) as d  on c.mn_code = d.mn_code
        order by d.day_avg desc
    </select>
    <!--条件查询异常数据  加上了审计信息-->
@@ -107,7 +119,7 @@
        from dust_exception_data as a join ja_t_dust_site_info as b on a.mn_code = b.mn_code
        <where>
            <if test="siteName !=null and siteName != ''">
                b.name = #{siteName}
                b.name like concat('%',#{siteName},'%')
            </if>
            <if test="exceptionType != null and exceptionType != '' ">
@@ -134,12 +146,27 @@
        from dust_exception_data as a join ja_t_dust_site_info as b on a.mn_code = b.mn_code
        <where>
            <if test="siteName !=null and siteName != ''">
                b.name = #{siteName}
            </if>
            <if test="exceptionType !=null and exceptionType != ''">
                a.exception_type  = #{exceptionType}
                and a.exception_type  = #{exceptionType}
            </if>
            <if test="beginTime != null and endTime != null">
                and (a.begin_time between #{beginTime} and #{endTime} or a.end_time between #{beginTime} and  #{endTime})
            </if>
            <if test="street != null and street != '' ">
                and b.address in
                <foreach item="item" collection="street" separator="," open="("  close=")">
                    #{item}
                </foreach>
            </if>
            <if test="dutyCompany != null and dutyCompany != '' ">
                and b.duty_company in
                <foreach item="item" collection="dutyCompany" separator="," open="("  close=")">
                    #{item}
                </foreach>
            </if>
        </where>
    </select>
@@ -199,8 +226,9 @@
                and a.type  = #{type}
            </if>
        </where>
    </select>
    <select id="analysisdataByTimeAndType" resultType="com.flightfeather.monitor.pojo.AnalysisDustData">
        select a.*,b.name,b.duty_company from dust_statistics_value as a join ja_t_dust_site_info as b on a.mn_code = b. mn_code
        <where>
@@ -212,7 +240,78 @@
                and a.type  = #{type}
            </if>
        </where>
    </select>
    <select id="getExceptionData2" resultType="com.flightfeather.monitor.pojo.DustExceptionData">
       select a.* ,b.*
        from dust_exception_data as a join ja_t_dust_site_info as b on a.mn_code = b.mn_code
        <where>
            <if test="street != null and street != '' ">
                 b.address in
                <foreach item="item" collection="street" separator="," open="("  close=")">
                    #{item}
                </foreach>
            </if>
            <if test="dutyCompany != null and dutyCompany != '' ">
                and b.duty_company in
                <foreach item="item" collection="dutyCompany" separator="," open="("  close=")">
                    #{item}
                </foreach>
            </if>
            <if test="siteName !=null and siteName != ''">
                and b.name like concat('%',#{siteName},'%')
            </if>
            <if test="exceptionType != null and exceptionType != '' ">
                and a.exception_type in
                <foreach item="item" collection="exceptionType" separator="," open="("  close=")">
                    #{item}
                </foreach>
            </if>
            <if test="beginTime != null and endTime != null">
                and (a.begin_time between #{beginTime} and #{endTime} or a.end_time between #{beginTime} and  #{endTime})
            </if>
        </where>
    </select>
    <select id="exceptionNum" resultType="java.lang.Integer">
        select count(*)
        from dust_exception_data as a join ja_t_dust_site_info as b on a.mn_code = b.mn_code
        <where>
            <if test="siteName !=null and siteName != ''">
                b.name = #{siteName}
            </if>
            <if test="exceptionType != null and exceptionType != '' ">
                and a.exception_type = #{exceptionType}
            </if>
            <if test="street != null and street != '' ">
                and b.address in
                <foreach item="item" collection="street" separator="," open="("  close=")">
                    #{item}
                </foreach>
            </if>
            <if test="dutyCompany != null and dutyCompany != '' ">
                and b.duty_company in
                <foreach item="item" collection="dutyCompany" separator="," open="("  close=")">
                    #{item}
                </foreach>
            </if>
            <if test="beginTime != null and endTime != null">
                and (a.begin_time between #{beginTime} and #{endTime} or a.end_time between #{beginTime} and  #{endTime})
            </if>
        </where>
    </select>
</mapper>