179 lines
4.2 KiB
SQL
179 lines
4.2 KiB
SQL
-- =============================================================================
|
||
-- 加油登记专用虚拟车牌:油桶 / 叉车
|
||
-- 用途:写入 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;
|