bms2相关修改;

This commit is contained in:
王奎兴
2026-03-18 17:41:08 +08:00
parent b0c85db265
commit 347c3dc4c7
36 changed files with 593 additions and 21 deletions
@@ -0,0 +1,73 @@
<?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.mhd.basic.domain.scheduledTask.repository.mapper.ScheduledTaskMapper">
<!-- 通用结果映射 -->
<resultMap id="BaseResultMap" type="com.mhd.basic.domain.scheduledTask.entity.ScheduledTask">
<id column="id" property="id"/>
<result column="task_type" property="taskType"/>
<result column="execute_time" property="executeTime"/>
<result column="task_data" property="taskData"/>
<result column="task_status" property="taskStatus"/>
<result column="retry_count" property="retryCount"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
</resultMap>
<!-- 通用查询列 -->
<sql id="Base_Column_List">
id, task_type, execute_time, task_data, task_status, retry_count, create_time, update_time, bill_days, bill_time,bus_id
</sql>
<!-- 查询待执行任务 -->
<select id="findPendingTasks" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM scheduled_task
WHERE
TO_DATE(
TO_CHAR(SYSDATE, 'YYYY-MM-') || PUSH_TIME,
'YYYY-MM-DD HH24:MI:SS'
) BETWEEN #{startTime} AND #{endTime}
and task_status = #{status}
ORDER BY TO_DATE(
TO_CHAR(SYSDATE, 'YYYY-MM-') || PUSH_TIME,
'YYYY-MM-DD HH24:MI:SS'
) ASC
LIMIT #{limit}
</select>
<!-- 批量更新状态(可选:用于批量处理) -->
<update id="batchUpdateStatus" parameterType="map">
UPDATE scheduled_task
SET task_status = #{newStatus},
update_time = NOW()
WHERE id IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
AND task_status = #{oldStatus}
</update>
<!-- 统计待处理任务数量 -->
<select id="countPendingTasks" resultType="int">
SELECT COUNT(*)
FROM scheduled_task
WHERE task_status = 'PENDING'
AND execute_time &lt;= NOW()
</select>
<!-- 查询超时任务(处理中超过30分钟的任务) -->
<select id="findTimeoutTasks" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM scheduled_task
WHERE
task_status = 'PROCESSING'
AND update_time &lt; DATE_SUB(NOW(), INTERVAL 30 MINUTE)
LIMIT 50
</select>
</mapper>