wlzboy
2026-04-01 b9e9cde65890851f4ca2d7b4809b802b88937ddf
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysTaskMapper.java
@@ -1,9 +1,14 @@
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接口
@@ -11,6 +16,7 @@
 * @author ruoyi
 * @date 2024-01-15
 */
@DataSource(DataSourceType.MASTER)
public interface SysTaskMapper {
    
    /**
@@ -24,7 +30,7 @@
    /**
     * 查询任务管理列表
     * 
     * @param sysTask 任务管理
     * @param queryVO 任务管理
     * @return 任务管理集合
     */
    public List<SysTask> selectSysTaskList(TaskQueryVO queryVO);
@@ -114,4 +120,49 @@
     * @return 结果
     */
    public int assignTask(SysTask sysTask);
    /**
     * 查询车辆正在进行中的任务
     * 正在进行中的任务是指状态不为:PENDING(待处理)、COMPLETED(已完成)、CANCELLED(已取消)的任务
     *
     * @param vehicleId 车辆ID
     * @return 正在进行中的任务列表
     */
    public List<SysTask> selectActiveTasksByVehicleId(Long vehicleId);
    /**
     * 根据时间和车辆来查询该车辆是否正在任务中
     * @param vehicleId
     * @param startTime
     * @param endTime
     * @return
     */
    public List<SysTask> selectTaskByVehicleIdAndDate(@Param("vehicleId") Long vehicleId,
                                                      @Param("startTime") String startTime,
                                                      @Param("endTime") String endTime);
    /**
     * 根据联系人电话和创建日期查询任务数量
     *
     * @param phone 联系人电话
     * @param createDate 任务创建日期(格式:YYYY-MM-DD)
     * @return 任务数量
     */
    public int countTaskByPhoneAndDate(@Param("phone") String phone, @Param("createDate") String createDate);
    /**
     * 查询车辆在指定时间范围内的任务列表
     *
     * @param params包含vehicleId、startTime、endTime的参数Map
     * @return 任务列表
     */
    public List<SysTask> selectVehicleTasksInTimeRange(java.util.Map<String, Object> params);
    /**
     * 优化的多码查询方法,关联sys_task_emergency表并计算dispatchCode和serviceCode
     *
     * @param queryVO 任务查询对象
     * @return 任务管理集合
     */
    public List<SysTask> selectSysTaskListByMultiCodeOptimized(TaskQueryVO queryVO);
}