123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
- <mapper namespace="com.zhyc.xps.aqpt.mapper.EntDangerStatisMapper">
- <!-- 按状态统计 -->
- <select id="counterByStatus" parameterType="java.util.Map" resultType="com.zhyc.xps.aqpt.vo.DangerCounterVo">
- SELECT
- IFNULL(SUM( CASE WHEN A.status = 0 THEN 1 ELSE 0 END ), 0) AS 'handling' ,
- IFNULL(SUM( CASE WHEN A.status = 1 THEN 1 ELSE 0 END ), 0) AS 'completed' ,
- IFNULL(SUM( CASE WHEN A.status = -1 THEN 1 ELSE 0 END ), 0) AS 'canceled'
- FROM ent_danger AS A
- LEFT JOIN s_group AS B ON (A.oc_id = B.oc_id AND A.group_id = B.group_id)
- WHERE A.deleted_flag = 0
- <if test="ocId != null">
- AND A.oc_id = #{ocId}
- </if>
- <if test="nodeLeft != null and nodeRight != null">
- <![CDATA[
- AND B.node_left >= #{nodeLeft ,jdbcType=BIGINT}
- AND B.node_right <= #{nodeRight ,jdbcType=BIGINT}
- ]]>
- </if>
- </select>
- <!-- 待我处理的 -->
- <select id="counterByHandler" parameterType="java.util.Map" resultType="int">
- SELECT
- count(*)
- FROM ent_danger AS A
- LEFT JOIN s_group AS E ON (A.oc_id = E.oc_id AND A.submit_group_id = E.group_id )
- LEFT JOIN s_group AS F ON (A.oc_id = F.oc_id AND A.review_group_id = F.group_id )
- LEFT JOIN s_group AS G ON (A.oc_id = G.oc_id AND A.rectify_group_id = G.group_id )
- LEFT JOIN s_group AS H ON (A.oc_id = H.oc_id AND A.accept_group_id = H.group_id )
- LEFT JOIN wf_ins AS W ON (A.oc_id = W.oc_id AND A.danger_id = W.wf_ins_id )
- LEFT JOIN s_group AS X ON (W.oc_id = X.oc_id AND W.cur_group_id = X.group_id )
- WHERE A.deleted_flag = 0 AND A.status = 0
- <if test="ocId != null">
- AND A.oc_id = #{ocId}
- </if>
- <if test="curAccountId != null">
- AND W.cur_account_Id = #{curAccountId, jdbcType=BIGINT}
- </if>
- <if test="submitAccountId != null">
- AND A.submit_account_id = #{submitAccountId, jdbcType=BIGINT}
- </if>
- <if test="status != null">
- AND A.status = #{status}
- </if>
- <if test="handleAccountId != null">
- AND (
- A.review_account_id = #{handleAccountId ,jdbcType=BIGINT}
- OR
- A.rectify_account_id = #{handleAccountId ,jdbcType=BIGINT}
- OR
- A.accept_account_id = #{handleAccountId ,jdbcType=BIGINT}
- )
- </if>
- <if test="curGroupNodeLeft != null and curGroupNodeRight != null">
- <![CDATA[
- AND X.node_left >= #{curGroupNodeLeft, jdbcType=BIGINT}
- AND X.node_right <= #{curGroupNodeRight, jdbcType=BIGINT}
- ]]>
- </if>
- <if test="submitGroupNodeLeft != null and submitGroupNodeRight != null">
- <![CDATA[
- AND E.node_left >= #{submitGroupNodeLeft, jdbcType=BIGINT}
- AND E.node_right <= #{submitGroupNodeRight, jdbcType=BIGINT}
- ]]>
- </if>
- <if test="reviewGroupNodeLeft != null and reviewGroupNodeRight != null">
- <![CDATA[
- AND F.node_left >= #{reviewGroupNodeLeft, jdbcType=BIGINT}
- AND F.node_right <= #{reviewGroupNodeRight, jdbcType=BIGINT}
- ]]>
- </if>
- <if test="rectifyGroupNodeLeft != null and rectifyGroupNodeRight != null">
- <![CDATA[
- AND G.node_left >= #{rectifyGroupNodeLeft, jdbcType=BIGINT}
- AND G.node_right <= #{rectifyGroupNodeRight, jdbcType=BIGINT}
- ]]>
- </if>
- <if test="acceptGroupNodeLeft != null and acceptGroupNodeRight != null">
- <![CDATA[
- AND H.node_left >= #{acceptGroupNodeLeft, jdbcType=BIGINT}
- AND H.node_right <= #{acceptGroupNodeRight, jdbcType=BIGINT}
- ]]>
- </if>
- </select>
- <!-- 按类别统计 -->
- <select id="counterByCat" resultType="com.zhyc.xps.aqpt.vo.DangerByCatVo">
- SELECT
- B.danger_cat_title,
- A.danger_level,
- COUNT(A.danger_cat_id)
- FROM ent_danger AS A
- LEFT JOIN ent_danger_cat AS B ON(A.oc_id = B.oc_id AND A.danger_cat_id = B.danger_cat_id)
- WHERE A.deleted_flag = 0 AND status != 5
- <if test="ocId != null">
- AND A.oc_id = #{ocId}
- </if>
- GROUP BY A.danger_cat_id , A.danger_level
- </select>
- <!-- 按月份统计 -->
- <select id="counterByMonth" parameterType="java.util.Map" resultType="com.zhyc.xps.aqpt.vo.DangerByMonthVo">
- SELECT
- IFNULL(SUM(CASE MONTH(submit_time) WHEN '1' THEN 1 ELSE 0 END) ,0) AS Jan,
- IFNULL(SUM(CASE MONTH(submit_time) WHEN '2' THEN 1 ELSE 0 END) ,0) AS Feb,
- IFNULL(SUM(CASE MONTH(submit_time) WHEN '3' THEN 1 ELSE 0 END) ,0) AS Mar,
- IFNULL(SUM(CASE MONTH(submit_time) WHEN '4' THEN 1 ELSE 0 END) ,0) AS Apr,
- IFNULL(SUM(CASE MONTH(submit_time) WHEN '5' THEN 1 ELSE 0 END) ,0) AS May,
- IFNULL(SUM(CASE MONTH(submit_time) WHEN '6' THEN 1 ELSE 0 END) ,0) AS June,
- IFNULL(SUM(CASE MONTH(submit_time) WHEN '7' THEN 1 ELSE 0 END) ,0) AS July,
- IFNULL(SUM(CASE MONTH(submit_time) WHEN '8' THEN 1 ELSE 0 END) ,0) AS Aug,
- IFNULL(SUM(CASE MONTH(submit_time) WHEN '9' THEN 1 ELSE 0 END) ,0) AS Sept,
- IFNULL(SUM(CASE MONTH(submit_time) WHEN '10' THEN 1 ELSE 0 END) ,0) AS Oct,
- IFNULL(SUM(CASE MONTH(submit_time) WHEN '11' THEN 1 ELSE 0 END) ,0) AS Nov,
- IFNULL(SUM(CASE MONTH(submit_time) WHEN '12' THEN 1 ELSE 0 END) ,0) AS Dece
- FROM ent_danger
- WHERE deleted_flag = 0 AND status != 5
- <if test="ocId != null">
- AND oc_id = #{ocId}
- </if>
- <if test="status != null">
- AND status = #{status}
- </if>
- <if test="year != null">
- AND YEAR(submit_time) = #{year}
- </if>
- </select>
- <!-- 按条件统计 -->
- <select id="counterByCondition" parameterType="java.util.Map" resultType="int">
- SELECT
- count(0)
- FROM ent_danger AS A
- LEFT JOIN s_group AS B ON (A.oc_id = B.oc_id AND A.group_id = B.group_id)
- WHERE A.deleted_flag = 0
- <if test="ocId != null">
- AND A.oc_id = #{ocId}
- </if>
- <if test="status != null">
- AND A.status = #{status}
- </if>
- <if test="submitAccountId != null">
- AND A.submit_account_id = #{submitAccountId ,jdbcType=BIGINT}
- </if>
- <if test="handleAccountId != null">
- AND ( A.review_account_id = #{handleAccountId ,jdbcType=BIGINT}
- OR A.rectify_account_id = #{handleAccountId ,jdbcType=BIGINT}
- OR A.accept_account_id = #{handleAccountId ,jdbcType=BIGINT}
- )
- </if>
- <if test="nodeLeft != null and nodeRight != null">
- <![CDATA[
- AND B.node_left >= #{nodeLeft ,jdbcType=BIGINT}
- AND B.node_right <= #{nodeRight ,jdbcType=BIGINT}
- ]]>
- </if>
- <if test="submitTime != null">
- AND date_format(A.submit_time , '%Y-%m-%d') = #{submitTime}
- </if>
- <if test="startSubmitTime != null and endSubmitTime != null">
- AND A.submit_time BETWEEN #{startSubmitTime} and #{endSubmitTime}
- </if>
- <if test="startAcceptTime != null and endAcceptTime != null">
- AND A.accept_time BETWEEN #{startAcceptTime} and #{endAcceptTime}
- </if>
- </select>
- <!-- 按天统计最近一个月的结果 -->
- <select id="counterByDay" parameterType="java.util.Map" resultType="map">
- SELECT date_format(A.item, '%m-%d') AS 'day', count(DISTINCT B.danger_id) AS dangerCount,
- count(DISTINCT c.alert_id) AS waringCount
- FROM (
- SELECT DATE_SUB(CURDATE(), INTERVAL 29 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 28 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 27 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 26 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 25 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 24 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 23 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 22 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 21 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 20 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 19 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 18 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 17 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 16 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 15 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 14 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 13 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 12 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 11 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 10 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 9 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 8 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 7 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 6 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 5 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 4 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 3 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 2 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY ) AS item
- UNION ALL
- SELECT DATE_SUB(CURDATE(), INTERVAL 0 DAY ) AS item
- ) A
- LEFT JOIN ent_danger B ON (B.oc_id = #{ocId ,jdbcType=BIGINT} AND B.deleted_flag = 0 AND date_format(B.submit_time, '%Y-%m-%d') = A.item)
- LEFT JOIN alert c ON (c.oc_id = 406283 AND c.deleted_flag = 0 AND date_format(c.alert_time, '%Y-%m-%d') = A.item)
- GROUP BY A.item
- </select>
- <select id="getCounter" parameterType="java.util.Map" resultType="map">
- SELECT COUNT( 0 ) AS "total",
- SUM( IF ( A.danger_level = 1, 1, 0 )) AS "level_one",
- SUM( IF ( A.danger_level = 2, 1, 0 )) AS "level_two",
- SUM( IF ( A.danger_level = 3, 1, 0 )) AS "level_three",
- SUM( IF ( A.danger_level = 4, 1, 0 )) AS "level_four",
- SUM( IF ( ISNULL(A.rectify_account_id), 1, 0 )) AS "rectified",
- SUM( IF ( ISNULL(A.accept_account_id), 1, 0 )) AS "accepted"
- FROM ent_danger AS A
- WHERE A.deleted_flag = 0
- <if test="ocId != null">
- AND A.oc_id = #{ocId ,jdbcType=BIGINT}
- </if>
- <if test="status != null">
- AND A.status = #{status ,jdbcType=BIGINT}
- </if>
- ORDER BY A.submit_time DESC
- </select>
- </mapper>
|