| | |
| | | -- 司机信息 |
| | | d.headImgUrl as headImgUrl, |
| | | CONCAT(LEFT(d.name, 1), '师傅') as driverName, |
| | | d.sex as sex, |
| | | c.carLicensePlate as carLicensePlate, |
| | | CONCAT(cb.name, cm.name) as carBrand, |
| | | c.carColor as carColor, |
| | |
| | | -- 线路信息 |
| | | l.id as lineId, |
| | | l.name as lineName, |
| | | lp.content as priceContent, |
| | | null as priceContent, |
| | | DATE_FORMAT(lsd.day, '%Y-%m-%d') as day, |
| | | ls.startTime as startTime, |
| | | ls.endTime as endTime, |
| | |
| | | LEFT JOIN t_car_brand cb ON c.carBrandId = cb.id |
| | | LEFT JOIN t_car_model cm ON c.carModelId = cm.id |
| | | LEFT JOIN t_car_service cs ON c.id = cs.carId AND cs.type = 3 |
| | | LEFT JOIN t_line_price lp ON l.id = lp.lineId AND cs.serverCarModelId = lp.serverCarModelId AND lp.state = 1 |
| | | WHERE lsd.id = #{lineShiftDriverId} |
| | | </select> |
| | | |
| | |
| | | INNER JOIN t_line_shift ls ON l.id = ls.lineId AND ls.state = 1 |
| | | LEFT JOIN t_line_shift_driver lsd ON ls.id = lsd.lineShiftId |
| | | AND lsd.driverId = #{driverId} |
| | | AND DATE_FORMAT(lsd.`day`, '%Y-%m-%d') = #{date} |
| | | AND lsd.`day` = #{date} |
| | | WHERE dl.driverId = #{driverId} |
| | | AND NOT EXISTS ( |
| | | SELECT 1 |
| | | FROM t_line_shift_driver done_lsd |
| | | INNER JOIN t_order_cross_city occ ON occ.lineShiftDriverId = done_lsd.id |
| | | WHERE done_lsd.driverId = #{driverId} |
| | | AND done_lsd.lineShiftId = ls.id |
| | | AND done_lsd.`day` = #{date} |
| | | AND occ.isDelete = 1 |
| | | AND occ.state IN (6, 8, 9) |
| | | ) |
| | | ORDER BY lineCompletedCount DESC, l.id, ls.startTime |
| | | </select> |
| | | |
| | | <select id="countCompletedShiftOrders" resultType="int"> |
| | | SELECT COUNT(1) |
| | | FROM t_line_shift_driver lsd |
| | | INNER JOIN t_order_cross_city occ ON occ.lineShiftDriverId = lsd.id |
| | | WHERE lsd.driverId = #{driverId} |
| | | AND lsd.lineShiftId = #{lineShiftId} |
| | | AND lsd.`day` = DATE(#{time}) |
| | | AND occ.isDelete = 1 |
| | | AND occ.state IN (6, 8, 9) |
| | | </select> |
| | | |
| | | <!-- 【202604】查询司机本人已领取/被分配的排班列表(今天及之后) --> |
| | |
| | | LEFT JOIN ( |
| | | SELECT lineShiftDriverId, MIN(id) AS orderId |
| | | FROM t_order_cross_city |
| | | WHERE state != 10 |
| | | WHERE isDelete = 1 |
| | | AND state NOT IN (10, 12) |
| | | GROUP BY lineShiftDriverId |
| | | ) occ ON occ.lineShiftDriverId = lsd.id |
| | | WHERE lsd.driverId = #{driverId} |
| | | AND lsd.lineShiftId != -1 |
| | | AND NOT ( |
| | | EXISTS ( |
| | | SELECT 1 |
| | | FROM t_order_cross_city occ_has |
| | | WHERE occ_has.lineShiftDriverId = lsd.id |
| | | AND occ_has.isDelete = 1 |
| | | AND occ_has.state NOT IN (10, 12) |
| | | ) |
| | | AND NOT EXISTS ( |
| | | SELECT 1 |
| | | FROM t_order_cross_city occ_end |
| | | WHERE occ_end.lineShiftDriverId = lsd.id |
| | | AND occ_end.isDelete = 1 |
| | | AND occ_end.state NOT IN (8, 9, 10, 12) |
| | | ) |
| | | ) |
| | | <if test="startDate != null and startDate != ''"> |
| | | AND lsd.day = #{startDate} |
| | | </if> |
| | |
| | | lsd.totalSeat as totalSeat, |
| | | st.startTime as startTime, |
| | | st.startTime as endTime, |
| | | '自主行程' as lineName, |
| | | CONCAT(st.startCityName,'-',st.endCityName) as lineName, |
| | | 1 as assignType, |
| | | NULL as orderId, |
| | | NULL as orderType, |
| | |
| | | AND st.state = 1 |
| | | WHERE lsd.driverId = #{driverId} |
| | | AND lsd.lineShiftId = -1 |
| | | AND NOT ( |
| | | EXISTS ( |
| | | SELECT 1 |
| | | FROM t_order_cross_city occ_has |
| | | WHERE occ_has.lineShiftDriverId = lsd.id |
| | | AND occ_has.isDelete = 1 |
| | | AND occ_has.state NOT IN (10, 12) |
| | | ) |
| | | AND NOT EXISTS ( |
| | | SELECT 1 |
| | | FROM t_order_cross_city occ_end |
| | | WHERE occ_end.lineShiftDriverId = lsd.id |
| | | AND occ_end.isDelete = 1 |
| | | AND occ_end.state NOT IN (8, 9, 10, 12) |
| | | ) |
| | | ) |
| | | <if test="startDate != null and startDate != ''"> |
| | | AND lsd.day = #{startDate} |
| | | </if> |
| | |
| | | ) t |
| | | ORDER BY t.day ASC, t.startTime ASC, t.lineShiftDriverId ASC |
| | | LIMIT #{offset}, #{size} |
| | | </select> |
| | | |
| | | <select id="queryCustomerIdByLineShiftDriverId" resultType="java.lang.Integer"> |
| | | select customerId |
| | | from t_line_shift_driver |
| | | where id = #{lineShiftDriverId} |
| | | limit 1 |
| | | </select> |
| | | |
| | | <select id="queryOtherDriverShiftListWithShiftId" resultType="java.util.Map"> |
| | |
| | | AND ls.state = 1 |
| | | 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 |
| | | LEFT JOIN t_line_shift ls ON ls.id = lsd.lineShiftId |
| | | LEFT JOIN t_driver_self_trip st ON st.id = lsd.customerId |
| | | WHERE lsd.day IS NOT NULL |
| | | AND NOT EXISTS ( |
| | | SELECT 1 |
| | | FROM t_order_cross_city occ |
| | | WHERE occ.lineShiftDriverId = lsd.id |
| | | AND occ.isDelete = 1 |
| | | AND occ.state NOT IN (10, 12) |
| | | ) |
| | | AND ( |
| | | (lsd.lineShiftId > 0 |
| | | AND ls.id IS NOT NULL |
| | | AND ls.state = 1 |
| | | AND STR_TO_DATE(CONCAT(DATE_FORMAT(lsd.day, '%Y-%m-%d'), ' ', ls.endTime), '%Y-%m-%d %H:%i') < NOW()) |
| | | OR |
| | | (lsd.lineShiftId <= -1 |
| | | AND st.id IS NOT NULL |
| | | AND st.state = 1 |
| | | AND STR_TO_DATE(CONCAT(DATE_FORMAT(lsd.day, '%Y-%m-%d'), ' ', st.startTime), '%Y-%m-%d %H:%i') < NOW()) |
| | | ) |
| | | </select> |
| | | </mapper> |