Files
shanxia2.0/docs/sql/seed_pl_vehicle_fuel_special_plates.sql
T
2026-09-28 10:47:42 +08:00

179 lines
4.2 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- =============================================================================
-- 加油登记专用虚拟车牌:油桶 / 叉车
-- 用途:写入 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;