| | |
| | | ORDER BY ls.startTime ASC, other.id ASC |
| | | </select> |
| | | |
| | | <select id="queryAvailableCompanyDriversForShift" resultType="java.util.Map"> |
| | | SELECT |
| | | 0 - d.id as lineShiftDriverId, |
| | | d.id as driverId, |
| | | d.headImgUrl as headImgUrl, |
| | | d.name as driverName, |
| | | c.carLicensePlate as carLicensePlate, |
| | | CONCAT(IFNULL(cb.name, ''), IFNULL(cm.name, '')) as carModel, |
| | | IFNULL(c.carColor, '') as carColor, |
| | | (IFNULL(cm.seat, 1) - 1) as laveSeat, |
| | | (IFNULL(cm.seat, 1) - 1) as totalSeat, |
| | | IFNULL(( |
| | | SELECT ROUND(AVG(oe.fraction), 2) |
| | | FROM t_order_evaluate oe |
| | | WHERE oe.driverId = d.id |
| | | ), 0) as score, |
| | | ls.startTime as startTime, |
| | | 2 as needConfirm |
| | | FROM t_line_shift_driver cur |
| | | INNER JOIN t_line_shift ls ON cur.lineShiftId = ls.id |
| | | INNER JOIN t_order_cross_city occ ON occ.id = #{orderId} |
| | | INNER JOIN t_driver currentDriver ON cur.driverId = currentDriver.id |
| | | INNER JOIN t_driver d |
| | | ON d.id != cur.driverId |
| | | AND d.state = 2 |
| | | AND ( |
| | | (IFNULL(currentDriver.franchiseeId, 0) > 0 AND d.franchiseeId = currentDriver.franchiseeId) |
| | | OR (IFNULL(currentDriver.franchiseeId, 0) = 0 AND d.companyId = currentDriver.companyId) |
| | | ) |
| | | INNER JOIN t_car c ON d.carId = c.id |
| | | LEFT JOIN t_car_brand cb ON c.carBrandId = cb.id |
| | | LEFT JOIN t_car_model cm ON c.carModelId = cm.id |
| | | WHERE cur.id = #{driverShiftId} |
| | | AND cur.lineShiftId != -1 |
| | | AND ls.state = 1 |
| | | AND (IFNULL(cm.seat, 1) - 1) >= IFNULL(occ.peopleNumber, 1) |
| | | AND NOT EXISTS ( |
| | | SELECT 1 |
| | | FROM t_line_shift_driver lsd2 |
| | | INNER JOIN t_line_shift ls2 ON lsd2.lineShiftId = ls2.id |
| | | WHERE lsd2.driverId = d.id |
| | | AND lsd2.lineShiftId != -1 |
| | | AND DATE(lsd2.day) = DATE(cur.day) |
| | | AND lsd2.id != cur.id |
| | | AND ls2.startTime < ls.endTime |
| | | AND ls2.endTime > ls.startTime |
| | | ) |
| | | AND NOT EXISTS ( |
| | | SELECT 1 |
| | | FROM t_order_cross_city occ2 |
| | | WHERE occ2.driverId = d.id |
| | | AND occ2.isDelete = 1 |
| | | AND occ2.state IN (2, 3, 4, 5, 11) |
| | | AND DATE(occ2.travelTime) = DATE(cur.day) |
| | | ) |
| | | AND NOT EXISTS ( |
| | | SELECT 1 |
| | | FROM t_order_taxi ot |
| | | WHERE ot.driverId = d.id |
| | | AND ot.state IN (2, 3, 4, 5, 11) |
| | | AND DATE(ot.travelTime) = DATE(cur.day) |
| | | ) |
| | | AND NOT EXISTS ( |
| | | SELECT 1 |
| | | FROM t_order_private_car opc |
| | | WHERE opc.driverId = d.id |
| | | AND opc.state IN (2, 3, 4, 5, 11) |
| | | AND DATE(opc.travelTime) = DATE(cur.day) |
| | | ) |
| | | ORDER BY d.id ASC |
| | | </select> |
| | | |
| | | <select id="queryExpiredNoOrderShiftIds" resultType="java.lang.Integer"> |
| | | SELECT lsd.id |
| | | FROM t_line_shift_driver lsd |