kongzy
2024-09-23 d015cc0b48ca51a2b93b6c60c91dc352a104b1e7
emergency/emergency-service/src/main/resources/config/mapper/emergency/EmergencyDrillExecuteInfoMapper.xml
@@ -173,10 +173,16 @@
        DATE_FORMAT( a.gmt_create, '%Y' )
    </select>
    <select id="selectByDayAndDept" resultMap="emergencyDrillExecuteCountChart">
    <resultMap type="com.gkhy.safePlatform.emergency.entity.EmergencyDrillExecuteCountRPC"
               id="emergencyDrillExecuteCountRPC">
        <result column="num" property="num"/>
        <result column="name" property="name"/>
    </resultMap>
    <select id="selectByDayAndDept" resultMap="emergencyDrillExecuteCountRPC">
        SELECT
        count( 0 ) AS num,
        DATE_FORMAT( a.gmt_create, '%Y-%m-%d' ) AS `name`
        DATE_FORMAT( a.gmt_create, '%d' ) AS `name`
        FROM
        `emergency_drill_execute` a
        LEFT JOIN emergency_drill_plan b ON a.drill_plan_id = b.id
@@ -191,7 +197,30 @@
            </foreach>
        </if>
        GROUP BY
        DATE_FORMAT( a.gmt_create, '%Y-%m-%d' )
        DATE_FORMAT( a.gmt_create, '%Y-%m-%d' ),
        DATE_FORMAT( a.gmt_create, '%d' )
    </select>
    <select id="selectByMonthAndDeptForIntegerMonth" resultMap="emergencyDrillExecuteCountRPC">
        SELECT
        count( 0 ) AS num,
        DATE_FORMAT( a.gmt_create, '%m' ) AS `name`
        FROM
        `emergency_drill_execute` a
        LEFT JOIN emergency_drill_plan b ON a.drill_plan_id = b.id
        WHERE
        a.del_flag = 0
        AND a.gmt_create <![CDATA[ >= ]]> #{startTime}
        AND a.gmt_create <![CDATA[ <= ]]> #{endTime}
        <if test="deptIds != null " >
            and b.department_id in
            <foreach item="id" collection="deptIds" open="(" separator="," close=")">
                #{id}
            </foreach>
        </if>
        GROUP BY
        DATE_FORMAT( a.gmt_create, '%Y-%m' ),
        DATE_FORMAT( a.gmt_create, '%m' )
    </select>
@@ -203,5 +232,107 @@
            INNER JOIN emergency_drill_plan b ON a.drill_plan_id = b.id
            AND b.department_id = #{deptId}
    </select>
    <!---->
    <select id="getLastTimeByDeptId" resultType="java.lang.String">
        SELECT
            DATE_FORMAT( max( a.gmt_create ), '%Y-%m-%d %H:%i:%s' ) AS lastTime
        FROM
            `emergency_drill_execute` a
                INNER JOIN emergency_drill_plan b ON a.drill_plan_id = b.id
                AND a.del_flag = 0 AND b.department_id = #{deptId}
    </select>
    <!--根据部门及其子级获取-->
    <select id="getLastTimeByDeptIds" resultType="com.gkhy.safePlatform.emergency.entity.EmergencyDrillExecuteLastTimeDO">
        SELECT
        DATE_FORMAT( max( a.gmt_create ), '%Y-%m-%d %H:%i:%s' ) AS lastTime,
        b.department_id AS deptId
        FROM
        `emergency_drill_execute` a
        INNER JOIN emergency_drill_plan b ON a.drill_plan_id = b.id
        AND a.del_flag = 0 AND b.department_id IN
        <foreach collection="deptIdList" item="deptId" open="(" close=")" separator=",">
            #{deptId}
        </foreach>
        GROUP BY
        b.department_id
    </select>
    <select id="getCountByDeptIdsAndTime" resultType="com.gkhy.safePlatform.emergency.entity.EmergencyExecuteCountDO">
        SELECT
            COUNT( 1 ) AS count,
            b.department_id AS deptId,
            DATE_FORMAT( a.gmt_create, '%m' ) AS month,
            DATE_FORMAT( a.gmt_create, '%Y' ) AS year
        FROM
            `emergency_drill_execute` a
            INNER JOIN emergency_drill_plan b ON a.drill_plan_id = b.id
        WHERE
            a.del_flag = 0
          AND b.department_id in
        <foreach collection="deptIds" item="deptId" open="(" close=")" separator=",">
            #{deptId}
        </foreach>
          AND DATE( a.gmt_create ) BETWEEN #{startTime}
          AND #{endTime}
        GROUP BY
            b.department_id,
            DATE_FORMAT( a.gmt_create, '%Y-%m' ),
            DATE_FORMAT(a.gmt_create,'%m'),
            DATE_FORMAT(a.gmt_create,'%Y')
    </select>
    <select id="getCountByDeptIdAndMonth" resultType="com.gkhy.safePlatform.emergency.entity.EmergencyExecuteCountDO">
        SELECT
        COUNT( 1 ) AS count,
        b.department_id AS deptId
        FROM
        `emergency_drill_execute` a
        INNER JOIN emergency_drill_plan b ON a.drill_plan_id = b.id
        WHERE
        a.del_flag = 0
        AND b.department_id = #{deptId}
        AND YEAR( a.gmt_create ) = #{year}
        AND MONTH( a.gmt_create) = #{month}
    </select>
    <select id="getCountByDeptIdAndYear" resultType="com.gkhy.safePlatform.emergency.entity.EmergencyExecuteCountDO">
        SELECT
        COUNT( 1 ) AS count,
        DATE_FORMAT( a.gmt_create, '%m' ) AS month
        FROM
        `emergency_drill_execute` a
        INNER JOIN emergency_drill_plan b ON a.drill_plan_id = b.id
        WHERE
        a.del_flag = 0
        AND b.department_id = #{deptId}
        AND YEAR( a.gmt_create ) = #{year}
        GROUP BY
        DATE_FORMAT( a.gmt_create, '%Y-%m' ),
        DATE_FORMAT(a.gmt_create,'%m')
    </select>
    <select id="getLastTimeByDeptIdsAndTime" resultType="com.gkhy.safePlatform.emergency.entity.EmergencyDrillExecuteLastTimeDO">
        SELECT
        DATE_FORMAT( max( a.gmt_create ), '%Y-%m-%d %H:%i:%s' ) AS lastTime,
        b.department_id AS deptId
        FROM
        `emergency_drill_execute` a
        INNER JOIN emergency_drill_plan b ON a.drill_plan_id = b.id
        AND a.del_flag = 0
        AND DATE( a.gmt_create ) BETWEEN #{startTime}
        AND #{endTime}
        AND b.department_id IN
        <foreach collection="deptIdList" item="deptId" open="(" close=")" separator=",">
            #{deptId}
        </foreach>
        GROUP BY
        b.department_id
    </select>
    <select id="getLastTimeByDeptIdAndTime" resultType="java.lang.String">
        SELECT
        DATE_FORMAT( max( a.gmt_create ), '%Y-%m-%d %H:%i:%s' ) AS lastTime
        FROM
        `emergency_drill_execute` a
        INNER JOIN emergency_drill_plan b ON a.drill_plan_id = b.id
        AND a.del_flag = 0
        AND DATE( a.gmt_create ) BETWEEN #{startTime}
        AND #{endTime}
        AND b.department_id = #{deptId}
    </select>
</mapper>