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