From 31ce6be2d56798d9509e6d90335999064351f7f3 Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期二, 10 十二月 2024 16:06:26 +0800 Subject: [PATCH] 12.10 --- DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/ReassignMapper.xml | 76 +++++++++++++++++++++++--------------- 1 files changed, 46 insertions(+), 30 deletions(-) diff --git a/DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/ReassignMapper.xml b/DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/ReassignMapper.xml index 2569556..000dc1f 100644 --- a/DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/ReassignMapper.xml +++ b/DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/ReassignMapper.xml @@ -33,13 +33,13 @@ CASE WHEN a.orderType = 1 THEN c.startAddress WHEN a.orderType = 3 THEN b.startAddress - WHEN a.orderType = 7 THEN t.startAddress -- 假设t_order_transfer表有startAddress和endAddress字段 + WHEN a.orderType = 7 THEN t.startAddress ELSE NULL END AS startAddress, CASE WHEN a.orderType = 1 THEN c.endAddress WHEN a.orderType = 3 THEN b.endAddress - WHEN a.orderType = 7 THEN t.endAddress -- 同样假设t_order_transfer表有这些字段 + WHEN a.orderType = 7 THEN t.endAddress ELSE NULL END AS endAddress, CONCAT(d.name, '-', f.carLicensePlate) AS applyDriver, @@ -49,17 +49,17 @@ FROM t_reassign a LEFT JOIN t_order_cross_city b ON (a.orderId = b.id AND a.orderType = 3) LEFT JOIN t_order_private_car c ON (a.orderId = c.id AND a.orderType = 1) - LEFT JOIN t_order_transfer t ON (a.orderId = t.id AND a.orderType = 7) -- 确保联接条件正确处理orderType=7 + LEFT JOIN t_order_transfer t ON (a.orderId = t.id AND a.orderType = 7) LEFT JOIN t_driver d ON (a.originalDriverId = d.id) LEFT JOIN t_driver e ON (a.nowDriverId = e.id) LEFT JOIN t_car f ON (d.carId = f.id) LEFT JOIN t_car g ON (e.carId = g.id) - WHERE a.orderType IN (1, 3, 7); -- 更新WHERE子句以包含orderType=7 + WHERE a.orderType IN (1, 3, 7) <if test="null != companyId"> and if(d.franchiseeId is null or d.franchiseeId = 0, d.companyId = #{companyId}, d.franchiseeId = #{companyId}) </if> <if test="state == 1"> - and a.state in (2) and (b.state not in (10, 12) or c.state not in (10, 12)) + and a.state in (2) and (b.state not in (10, 12) or c.state not in (10, 12) or t.state NOT IN ( 10, 12 )) </if> <if test="state == 2"> and a.state in (3, 4, 5) @@ -72,31 +72,47 @@ <select id="queryReassignInfo" resultType="map"> - select - a.id as id, - DATE_FORMAT(a.insertTime, '%Y.%m.%d-%H:%i') as applyTime, - CONCAT(d.`name`, '-', e.carLicensePlate) as applyDriver, - a.reason as reason, - if(a.orderType = 1, f.nickName, g.nickName) as `user`, - if(a.orderType = 1, DATE_FORMAT(b.travelTime, '%Y.%m.%d-%H:%i'), DATE_FORMAT(c.travelTime, '%Y.%m.%d-%H:%i')) as travelTime, - if(a.orderType = 1, b.startAddress, c.startAddress) as startAddress, - if(a.orderType = 1, b.endAddress, c.endAddress) as endAddress, - if(a.orderType = 1, b.state, c.state) as state, - a.state as `status`, - if(a.reviewerType = 1, i.`name`, h.`name`) as reviewer, - CONCAT(j.`name`, '-', k.carLicensePlate) as nowDriver, - a.orderType as orderType - from t_reassign a - left join t_order_private_car b on (a.orderId = b.id and a.orderType = 1) - left join t_order_cross_city c on (a.orderId = c.id and a.orderType = 3) - left join t_driver d on (a.originalDriverId = d.id) - left join t_car e on (a.originalCarId = e.id) - left join t_user f on (b.userId = f.id) - left join t_user g on (c.userId = g.id) - left join sys_user h on (a.reviewer = h.id and a.reviewerType = 2) - left join t_dispatch i on (a.reviewer = i.id and a.reviewerType = 1) - left join t_driver j on (a.nowDriverId = j.id) - left join t_car k on (a.nowCarId = k.id) + SELECT + a.id AS id, + DATE_FORMAT( a.insertTime, '%Y.%m.%d-%H:%i' ) AS applyTime, + CONCAT( d.`name`, '-', e.carLicensePlate ) AS applyDriver, + a.reason AS reason, + IF + ( a.orderType = 1, f.nickName, g.nickName ) AS `user`, + IF + ( + a.orderType = 1, + DATE_FORMAT( b.travelTime, '%Y.%m.%d-%H:%i' ), + DATE_FORMAT( c.travelTime, '%Y.%m.%d-%H:%i' )) AS travelTime, + IF(a.orderType = 1, b.startAddress, + IF(a.orderType = 3, c.startAddress, + IF(a.orderType = 7, t.startAddress, NULL))) AS startAddress, + + IF(a.orderType = 1, b.endAddress, + IF(a.orderType = 3, c.endAddress, + IF(a.orderType = 7, t.endAddress, NULL))) AS endAddress, + + IF(a.orderType = 1, b.state, + IF(a.orderType = 3, c.state, + IF(a.orderType = 7, t.state, NULL))) AS state, + a.state AS `status`, + IF + ( a.reviewerType = 1, i.`name`, h.`name` ) AS reviewer, + CONCAT( j.`name`, '-', k.carLicensePlate ) AS nowDriver, + a.orderType AS orderType + FROM + t_reassign a + LEFT JOIN t_order_private_car b ON ( a.orderId = b.id AND a.orderType = 1 ) + LEFT JOIN t_order_cross_city c ON ( a.orderId = c.id AND a.orderType = 3 ) + LEFT JOIN t_order_transfer t ON ( a.orderId = t.id AND a.orderType = 7 ) + LEFT JOIN t_driver d ON ( a.originalDriverId = d.id ) + LEFT JOIN t_car e ON ( a.originalCarId = e.id ) + LEFT JOIN t_user f ON ( b.userId = f.id ) + LEFT JOIN t_user g ON ( c.userId = g.id ) + LEFT JOIN sys_user h ON ( a.reviewer = h.id AND a.reviewerType = 2 ) + LEFT JOIN t_dispatch i ON ( a.reviewer = i.id AND a.reviewerType = 1 ) + LEFT JOIN t_driver j ON ( a.nowDriverId = j.id ) + LEFT JOIN t_car k ON ( a.nowCarId = k.id ) where a.id = #{id} </select> </mapper> \ No newline at end of file -- Gitblit v1.7.1