package com.ruoyi.system.mapper; import java.util.Date; import java.util.List; import com.ruoyi.common.annotation.DataSource; import com.ruoyi.common.enums.DataSourceType; import com.ruoyi.system.domain.SysTask; import com.ruoyi.system.domain.vo.TaskQueryVO; import com.ruoyi.system.domain.vo.TaskStatisticsVO; import org.apache.ibatis.annotations.Param; /** * 任务管理Mapper接口 * * @author ruoyi * @date 2024-01-15 */ @DataSource(DataSourceType.MASTER) public interface SysTaskMapper { /** * 查询任务管理 * * @param taskId 任务管理主键 * @return 任务管理 */ public SysTask selectSysTaskByTaskId(Long taskId); /** * 查询任务管理列表 * * @param queryVO 任务管理 * @return 任务管理集合 */ public List selectSysTaskList(TaskQueryVO queryVO); /** * 新增任务管理 * * @param sysTask 任务管理 * @return 结果 */ public int insertSysTask(SysTask sysTask); /** * 修改任务管理 * * @param sysTask 任务管理 * @return 结果 */ public int updateSysTask(SysTask sysTask); /** * 删除任务管理 * * @param taskId 任务管理主键 * @return 结果 */ public int deleteSysTaskByTaskId(Long taskId); /** * 批量删除任务管理 * * @param taskIds 需要删除的数据主键集合 * @return 结果 */ public int deleteSysTaskByTaskIds(Long[] taskIds); /** * 查询任务统计信息 * * @return 任务统计信息 */ public TaskStatisticsVO selectTaskStatistics(); /** * 查询超时任务列表 * * @return 超时任务集合 */ public List selectOverdueTasks(); /** * 查询我的任务列表 * * @param userId 用户ID * @return 我的任务集合 */ public List selectMyTasks(Long userId); /** * 根据任务编号查询任务 * * @param taskCode 任务编号 * @return 任务信息 */ public SysTask selectSysTaskByTaskCode(String taskCode); /** * 查询指定日期前缀的最大任务编号 * * @param datePrefix 日期前缀(如:TASK20250923) * @return 最大任务编号 */ public String selectMaxTaskCodeByDatePrefix(String datePrefix); /** * 更新任务状态 * * @param sysTask 任务信息 * @return 结果 */ public int updateTaskStatus(SysTask sysTask); /** * 分配任务 * * @param sysTask 任务信息 * @return 结果 */ public int assignTask(SysTask sysTask); /** * 查询车辆正在进行中的任务 * 正在进行中的任务是指状态不为:PENDING(待处理)、COMPLETED(已完成)、CANCELLED(已取消)的任务 * * @param vehicleId 车辆ID * @return 正在进行中的任务列表 */ public List selectActiveTasksByVehicleId(Long vehicleId); /** * 根据时间和车辆来查询该车辆是否正在任务中 * @param vehicleId * @param startTime * @param endTime * @return */ public List selectTaskByVehicleIdAndDate(@Param("vehicleId") Long vehicleId, @Param("startTime") Date startTime, @Param("endTime") Date endTime); }