-- ============================================================================= -- 加油登记专用虚拟车牌:油桶 / 叉车 -- 用途:写入 pl_vehicle(vehicle_type=self),使加油登记车牌下拉可选,存库为字面量。 -- 排序:列表 API 对 order_num IS NULL 的记录按 create_time DESC; -- 将 create_time 设为很早,使这两条排在下拉最末(油桶 → 叉车)。 -- 可在测试 / 生产库直接执行;可重复执行(幂等)。 -- ============================================================================= -- 1) 若已存在(含软删),恢复为可用自有车并固定排序时间 UPDATE `pl_vehicle` SET `vehicle_type` = 'self', `carrier_id` = COALESCE( `carrier_id`, ( SELECT t.`carrier_id` FROM ( SELECT `carrier_id` FROM `pl_vehicle` WHERE `vehicle_type` = 'self' AND `del_flag` = 0 AND `carrier_id` IS NOT NULL AND `carrier_id` <> '' ORDER BY `create_time` ASC LIMIT 1 ) t ) ), `carrier_name` = COALESCE( NULLIF(`carrier_name`, ''), ( SELECT t.`carrier_name` FROM ( SELECT `carrier_name` FROM `pl_vehicle` WHERE `vehicle_type` = 'self' AND `del_flag` = 0 AND `carrier_id` IS NOT NULL AND `carrier_id` <> '' ORDER BY `create_time` ASC LIMIT 1 ) t ) ), `trailer_no` = COALESCE(NULLIF(`trailer_no`, ''), '-'), `vehicle_status` = 'available', `order_num` = NULL, `remark` = '加油登记虚拟车辆(非上路车牌)', `create_time` = CASE `license_plate` WHEN '油桶' THEN '2000-01-01 00:00:02' WHEN '叉车' THEN '2000-01-01 00:00:01' ELSE `create_time` END, `update_time` = NOW(), `del_flag` = 0 WHERE `license_plate` IN ('油桶', '叉车'); -- 2) 不存在则插入「油桶」(承运商取自现有自有车,保证各环境可用) INSERT INTO `pl_vehicle` ( `id`, `vehicle_type`, `carrier_id`, `carrier_name`, `license_plate`, `trailer_no`, `default_driver_id`, `default_driver_name`, `load_capacity`, `vehicle_status`, `photo_urls`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag` ) SELECT 'A1000000000000000000000000FUE001', 'self', src.`carrier_id`, src.`carrier_name`, '油桶', '-', NULL, NULL, NULL, 'available', '', 'shanxia2.0', NULL, '加油登记虚拟车辆(非上路车牌)', 'd3000000000000000000000000000001', 'b13c2be2-4e71-11f1-9f47-00163e3bdd96', '2000-01-01 00:00:02', NULL, NOW(), 0 FROM ( SELECT `carrier_id`, `carrier_name` FROM `pl_vehicle` WHERE `vehicle_type` = 'self' AND `del_flag` = 0 AND `carrier_id` IS NOT NULL AND `carrier_id` <> '' ORDER BY `create_time` ASC LIMIT 1 ) src WHERE NOT EXISTS ( SELECT 1 FROM `pl_vehicle` WHERE `license_plate` = '油桶' ); -- 3) 不存在则插入「叉车」 INSERT INTO `pl_vehicle` ( `id`, `vehicle_type`, `carrier_id`, `carrier_name`, `license_plate`, `trailer_no`, `default_driver_id`, `default_driver_name`, `load_capacity`, `vehicle_status`, `photo_urls`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag` ) SELECT 'A1000000000000000000000000F0A002', 'self', src.`carrier_id`, src.`carrier_name`, '叉车', '-', NULL, NULL, NULL, 'available', '', 'shanxia2.0', NULL, '加油登记虚拟车辆(非上路车牌)', 'd3000000000000000000000000000001', 'b13c2be2-4e71-11f1-9f47-00163e3bdd96', '2000-01-01 00:00:01', NULL, NOW(), 0 FROM ( SELECT `carrier_id`, `carrier_name` FROM `pl_vehicle` WHERE `vehicle_type` = 'self' AND `del_flag` = 0 AND `carrier_id` IS NOT NULL AND `carrier_id` <> '' ORDER BY `create_time` ASC LIMIT 1 ) src WHERE NOT EXISTS ( SELECT 1 FROM `pl_vehicle` WHERE `license_plate` = '叉车' ); -- 4) 执行后自检(应返回 2 行,且 create_time 为 2000-01-01) -- SELECT id, license_plate, vehicle_type, vehicle_status, order_num, create_time, del_flag -- FROM pl_vehicle -- WHERE license_plate IN ('油桶', '叉车') -- ORDER BY create_time DESC;