longz
2026-07-02 c788ca1640f080f821cb1cbe07da741302d355ef
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
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();
}