package com.stylefeng.guns.modular.crossCity.dao;
|
|
import com.baomidou.mybatisplus.mapper.BaseMapper;
|
import com.stylefeng.guns.modular.crossCity.model.LineShiftDriver;
|
import org.apache.ibatis.annotations.Param;
|
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
|
public interface LineShiftDriverMapper extends BaseMapper<LineShiftDriver> {
|
|
|
/**
|
* 获取司机的预约数据
|
* @param driverId
|
* @param time
|
* @return
|
*/
|
List<LineShiftDriver> queryByDriver(@Param("lineShiftId") Integer lineShiftId, @Param("driverId") Integer driverId,
|
@Param("time") Date time);
|
|
/**
|
* 【202601】查询司机在指定日期的排班信息
|
* @param driverId 司机id
|
* @param date 日期(yyyy-MM-dd)
|
* @return
|
*/
|
List<Map<String, Object>> queryDriverShiftByDate(@Param("driverId") Integer driverId, @Param("date") String date);
|
|
/**
|
* 【202601】班次详情数据
|
* @param lineShiftDriverId 司机排班记录ID
|
* @return 班次详情数据
|
*/
|
Map<String, Object> getDetail(Integer lineShiftDriverId);
|
|
/**
|
* 【202601】查询司机可预约的班次列表(包括已预约和未预约的)
|
* @param driverId 司机id
|
* @param date 日期(yyyy-MM-dd)
|
* @return 班次列表
|
*/
|
List<Map<String, Object>> queryDriverAvailableShifts(@Param("driverId") Integer driverId, @Param("date") String date);
|
|
/**
|
* 查询司机指定日期指定班次是否已有完成服务/已完成订单
|
*/
|
int countCompletedShiftOrders(@Param("driverId") Integer driverId,
|
@Param("lineShiftId") Integer lineShiftId,
|
@Param("time") Date time);
|
|
/**
|
* 【202604】查询司机本人已领取/被分配的排班列表(今天及之后)
|
* @param driverId 司机id
|
* @param startDate 开始日期(yyyy-MM-dd)
|
* @param offset 分页偏移量
|
* @param size 每页条数
|
* @return 排班列表
|
*/
|
List<Map<String, Object>> queryMyDriverShiftList(@Param("driverId") Integer driverId,
|
@Param("startDate") String startDate,
|
@Param("offset") Integer offset,
|
@Param("size") Integer size);
|
|
/**
|
* 【202604】根据司机排班id查询同班次其他司机信息
|
* @param driverShiftId 司机排班id
|
* @return 其他司机列表
|
*/
|
List<Map<String, Object>> queryOtherDriverShiftListWithShiftId(@Param("driverShiftId") Long driverShiftId);
|
|
/**
|
* 查询同公司且当前班次时间段无订单、无其他预约批次的司机(改派扩展候选)
|
*/
|
List<Map<String, Object>> queryAvailableCompanyDriversForShift(@Param("driverShiftId") Long driverShiftId,
|
@Param("orderId") Integer orderId);
|
|
Integer queryCustomerIdByLineShiftDriverId(@Param("lineShiftDriverId") Integer lineShiftDriverId);
|
|
/**
|
* 查询已超时且无有效订单的排班ID
|
* 标准班次按收车时间判定;自主行程按出发时间判定
|
*/
|
List<Integer> queryExpiredNoOrderShiftIds();
|
}
|