lyfO_o
2023-05-06 29f5825e22f8ed6cc2019511ad75a4939bafb6a8
incident-manage/incident-manage-service/src/main/resources/config/mapper/incidentManage/AccidentReportInfoMapper.xml
@@ -190,4 +190,141 @@
    <update id="deleteAccidentReportById">
        update accident_report set del_flag = 1 where id = #{id}
    </update>
    <resultMap type="com.gkhy.safePlatform.incidentManage.entity.AccidentReportCount"
               id="emergencyDrillExecuteCountChart">
        <result column="num" property="num"/>
        <result column="name" property="name"/>
        <result column="minorInjuryNum" property="minorInjuryNum"/>
        <result column="seriousInjuryNum" property="seriousInjuryNum"/>
        <result column="deathNum" property="deathNum"/>
        <result column="economicLoss" property="economicLoss"/>
    </resultMap>
    <select id="selectByTimeAndType" resultMap="emergencyDrillExecuteCountChart">
        SELECT
        accident_level AS `name`,
        count( 0 ) AS num,
        sum( economic_loss ) AS economicLoss,
        sum( minor_injury_num ) AS minorInjuryNum,
        sum( serious_injury_num ) AS seriousInjuryNum,
        sum( death_num ) AS deathNum
        FROM
        `accident_report`
        WHERE
        del_flag = 0
        AND gmt_create <![CDATA[ >= ]]> #{query.startTime}
        AND gmt_create <![CDATA[ <= ]]> #{query.endTime}
        <if test="query.level != null and query.level != ''" >and accident_level = #{query.level}</if>
        GROUP BY
        accident_level
    </select>
    <resultMap type="com.gkhy.safePlatform.incidentManage.entity.AccidentReportCountRPC"
               id="accidentReportCountRPC">
        <result column="time" property="time"/>
        <result column="num" property="num"/>
        <result column="level" property="level"/>
        <result column="minorInjuryNum" property="minorInjuryNum"/>
        <result column="seriousInjuryNum" property="seriousInjuryNum"/>
        <result column="deathNum" property="deathNum"/>
        <result column="economicLoss" property="economicLoss"/>
    </resultMap>
    <select id="getCountForRPCByDeptIdAndMonth" resultMap="accidentReportCountRPC">
        SELECT
           DATE_FORMAT( a.gmt_create, '%m' ) as time,
            a.accident_level AS `level`,
            count( 0 ) AS num,
            sum( a.economic_loss ) AS economicLoss,
            sum( a.minor_injury_num ) AS minorInjuryNum,
            sum( a.serious_injury_num ) AS seriousInjuryNum,
            sum( a.death_num ) AS deathNum
        FROM
            `accident_report` a
            INNER JOIN `accident_express` b ON a.accident_express_id = b.id
            AND b.accident_department_id = #{deptId}
        WHERE
            a.del_flag = 0
            AND a.gmt_create <![CDATA[ >= ]]> #{startTime}
            AND a.gmt_create <![CDATA[ <= ]]> #{endTime}
        GROUP BY
           DATE_FORMAT( a.gmt_create, '%Y-%m' ),
            a.accident_level,
            DATE_FORMAT( a.gmt_create, '%m' )
    </select>
    <select id="getCountForRPCByDeptIdAndDay" resultMap="accidentReportCountRPC">
        SELECT
           DATE_FORMAT( a.gmt_create, '%d' ) as time,
            a.accident_level AS `level`,
            count( 0 ) AS num,
            sum( a.economic_loss ) AS economicLoss,
            sum( a.minor_injury_num ) AS minorInjuryNum,
            sum( a.serious_injury_num ) AS seriousInjuryNum,
            sum( a.death_num ) AS deathNum
        FROM
            `accident_report` a
            INNER JOIN `accident_express` b ON a.accident_express_id = b.id
            AND b.accident_department_id = #{deptId}
        WHERE
            a.del_flag = 0
            AND a.gmt_create <![CDATA[ >= ]]> #{startTime}
            AND a.gmt_create <![CDATA[ <= ]]> #{endTime}
        GROUP BY
           DATE_FORMAT( a.gmt_create, '%Y-%m-%d' ),
            a.accident_level,
            DATE_FORMAT( a.gmt_create, '%d' )
    </select>
    <select id="getAccidentCountByDeptIdsAndTime" resultType="com.gkhy.safePlatform.incidentManage.entity.AccidentResultCountDO">
        SELECT
            count( 0 ) AS accidentCount,
            sum( a.economic_loss ) AS economicLoss,
            sum( a.minor_injury_num ) AS minorInjuryCount,
            sum( a.serious_injury_num ) AS seriousInjuryCount,
            sum( a.death_num ) AS deathCount,
            a.accident_level AS accidentLevel,
            DATE_FORMAT( a.gmt_create, '%m' ) AS month,
   DATE_FORMAT( a.gmt_create, '%Y' ) AS year,
   b.accident_department_id AS deptId
        FROM
            `accident_report` a
            INNER JOIN `accident_express` b ON a.accident_express_id = b.id
        WHERE
            a.del_flag = 0
          AND b.accident_department_id IN
        <foreach collection="deptIds" item="deptId" open="(" close=")" separator=",">
            #{deptId}
        </foreach>
          AND DATE( a.gmt_create ) BETWEEN #{startTime}
          AND #{endTime}
        GROUP BY
            a.accident_level,
            DATE_FORMAT( a.gmt_create, '%Y-%m' ),
            DATE_FORMAT( a.gmt_create, '%m' ),
            DATE_FORMAT( a.gmt_create, '%Y' ),
            b.accident_department_id
    </select>
    <select id="getAccidentCountByDeptIdAndTime" resultType="com.gkhy.safePlatform.incidentManage.entity.AccidentResultCountDO">
        SELECT
        count( 0 ) AS accidentCount,
        sum( a.economic_loss ) AS economicLoss,
        sum( a.minor_injury_num ) AS minorInjuryCount,
        sum( a.serious_injury_num ) AS seriousInjuryCount,
        sum( a.death_num ) AS deathCount,
        a.accident_level AS accidentLevel,
        DATE_FORMAT( a.gmt_create, '%m' ) AS month
        FROM
        `accident_report` a
        INNER JOIN `accident_express` b ON a.accident_express_id = b.id
        WHERE
        a.del_flag = 0
        AND b.accident_department_id = #{deptId}
        AND DATE( a.gmt_create ) BETWEEN #{startTime}
        AND #{endTime}
        GROUP BY
        a.accident_level,
        DATE_FORMAT( a.gmt_create, '%Y-%m' ),
        DATE_FORMAT( a.gmt_create, '%m' )
    </select>
</mapper>