-- ============================================================
-- Asset Module DDL - Generated from DO classes
-- Database: oneos_asset
-- Generated: 2026-03-16
-- ============================================================

-- 1. asset_parking (停车场)
DROP TABLE IF EXISTS `asset_parking`;
CREATE TABLE `asset_parking` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `name` varchar(255) DEFAULT NULL COMMENT '停车场名称',
  `capacity` int DEFAULT NULL COMMENT '容量',
  `manager_name` varchar(255) DEFAULT NULL COMMENT '管理员姓名',
  `manager_phone` varchar(64) DEFAULT NULL COMMENT '管理员电话',
  `contact_name` varchar(255) DEFAULT NULL COMMENT '联系人姓名',
  `contact_phone` varchar(64) DEFAULT NULL COMMENT '联系人电话',
  `parked_amount` int DEFAULT NULL COMMENT '已停数量',
  `province` varchar(64) DEFAULT NULL COMMENT '省份',
  `city` varchar(64) DEFAULT NULL COMMENT '城市',
  `address` varchar(500) DEFAULT NULL COMMENT '详细地址',
  `longitude` varchar(32) DEFAULT NULL COMMENT '经度',
  `latitude` varchar(32) DEFAULT NULL COMMENT '纬度',
  `lease_start_date` date DEFAULT NULL COMMENT '租赁开始日期',
  `lease_end_date` date DEFAULT NULL COMMENT '租赁结束日期',
  `rent_fee` decimal(18,2) DEFAULT NULL COMMENT '租金',
  `contract_file_url` varchar(500) DEFAULT NULL COMMENT '合同文件URL',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='停车场';

-- 2. asset_vehicle_model (车型参数)
DROP TABLE IF EXISTS `asset_vehicle_model`;
CREATE TABLE `asset_vehicle_model` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `brand` varchar(128) DEFAULT NULL COMMENT '品牌',
  `model` varchar(128) DEFAULT NULL COMMENT '型号',
  `vehicle_type` varchar(64) DEFAULT NULL COMMENT '车辆类型',
  `model_label` varchar(128) DEFAULT NULL COMMENT '车型标签',
  `fuel_type` varchar(64) DEFAULT NULL COMMENT '燃料类型',
  `plate_color` varchar(32) DEFAULT NULL COMMENT '车牌颜色',
  `truck_size_x` varchar(32) DEFAULT NULL COMMENT '货箱尺寸X',
  `truck_size_y` varchar(32) DEFAULT NULL COMMENT '货箱尺寸Y',
  `truck_size_z` varchar(32) DEFAULT NULL COMMENT '货箱尺寸Z',
  `tire_size` varchar(64) DEFAULT NULL COMMENT '轮胎尺寸',
  `tire_number` int DEFAULT NULL COMMENT '轮胎数量',
  `battery_type` varchar(64) DEFAULT NULL COMMENT '电池类型',
  `battery_factory` varchar(128) DEFAULT NULL COMMENT '电池厂家',
  `reserve_electricity` decimal(18,2) DEFAULT NULL COMMENT '储备电量',
  `electricity_mileage` int DEFAULT NULL COMMENT '纯电续航里程',
  `hydrogen_capacity` int DEFAULT NULL COMMENT '储氢容量',
  `hydrogen_factory` varchar(128) DEFAULT NULL COMMENT '氢系统厂家',
  `hydrogen_unit` varchar(32) DEFAULT NULL COMMENT '氢气单位',
  `hydrogen_mileage` int DEFAULT NULL COMMENT '氢续航里程',
  `refrigerator_factory` varchar(128) DEFAULT NULL COMMENT '冷机厂家',
  `online_spread_enterprise` varchar(255) DEFAULT NULL COMMENT '线上传播企业',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='车型参数';

-- 3. asset_vehicle_model_maintain_item (车型保养项目)
DROP TABLE IF EXISTS `asset_vehicle_model_maintain_item`;
CREATE TABLE `asset_vehicle_model_maintain_item` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `vehicle_model_id` bigint DEFAULT NULL COMMENT '车型ID',
  `maintain_item` varchar(255) DEFAULT NULL COMMENT '保养项目',
  `kilometer_cycle` int DEFAULT NULL COMMENT '公里周期',
  `time_cycle` int DEFAULT NULL COMMENT '时间周期(月)',
  `hour_fee` decimal(18,2) DEFAULT NULL COMMENT '工时费',
  `material_fee` decimal(18,2) DEFAULT NULL COMMENT '材料费',
  `total_fee` decimal(18,2) DEFAULT NULL COMMENT '总费用',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='车型保养项目';

-- 4. asset_vehicle_base (车辆基础信息)
DROP TABLE IF EXISTS `asset_vehicle_base`;
CREATE TABLE `asset_vehicle_base` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `vin` varchar(64) DEFAULT NULL COMMENT 'VIN码',
  `plate_no` varchar(32) DEFAULT NULL COMMENT '车牌号',
  `vehicle_no` varchar(64) DEFAULT NULL COMMENT '车辆编号',
  `vehicle_model_id` bigint DEFAULT NULL COMMENT '车型ID',
  `region_province` varchar(64) DEFAULT NULL COMMENT '所属省份',
  `region_city` varchar(64) DEFAULT NULL COMMENT '所属城市',
  `engine_no` varchar(64) DEFAULT NULL COMMENT '发动机号',
  `register_date` date DEFAULT NULL COMMENT '注册日期',
  `purchase_date` date DEFAULT NULL COMMENT '购买日期',
  `purchase_price` decimal(18,2) DEFAULT NULL COMMENT '购买价格',
  `color` varchar(32) DEFAULT NULL COMMENT '颜色',
  `year` varchar(16) DEFAULT NULL COMMENT '年款',
  `mileage` int DEFAULT NULL COMMENT '里程数',
  `inspect_expire` varchar(32) DEFAULT NULL COMMENT '年检到期',
  `scrap_date` date DEFAULT NULL COMMENT '报废日期',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_vin` (`vin`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='车辆基础信息';

-- 5. asset_vehicle_location (车辆位置信息)
DROP TABLE IF EXISTS `asset_vehicle_location`;
CREATE TABLE `asset_vehicle_location` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `vehicle_id` bigint DEFAULT NULL COMMENT '车辆ID',
  `parking_id` bigint DEFAULT NULL COMMENT '停车场ID',
  `parking_name` varchar(255) DEFAULT NULL COMMENT '停车场名称',
  `parking_space` varchar(64) DEFAULT NULL COMMENT '车位号',
  `location` varchar(500) DEFAULT NULL COMMENT '位置描述',
  `latitude` decimal(18,8) DEFAULT NULL COMMENT '纬度',
  `longitude` decimal(18,8) DEFAULT NULL COMMENT '经度',
  `gps_time` datetime DEFAULT NULL COMMENT 'GPS时间',
  `entry_time` datetime DEFAULT NULL COMMENT '进场时间',
  `exit_time` datetime DEFAULT NULL COMMENT '出场时间',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_vehicle_id` (`vehicle_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='车辆位置信息';

-- 6. asset_vehicle_business (车辆业务信息)
DROP TABLE IF EXISTS `asset_vehicle_business`;
CREATE TABLE `asset_vehicle_business` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `vehicle_id` bigint DEFAULT NULL COMMENT '车辆ID',
  `customer_id` bigint DEFAULT NULL COMMENT '客户ID',
  `department_id` bigint DEFAULT NULL COMMENT '部门ID',
  `manager_id` bigint DEFAULT NULL COMMENT '管理人ID',
  `contract_id` bigint DEFAULT NULL COMMENT '合同ID',
  `ownership` varchar(64) DEFAULT NULL COMMENT '产权归属',
  `delivery_date` date DEFAULT NULL COMMENT '交车日期',
  `return_date` date DEFAULT NULL COMMENT '还车日期',
  `monthly_rent` decimal(18,2) DEFAULT NULL COMMENT '月租金',
  `deposit` decimal(18,2) DEFAULT NULL COMMENT '押金',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_vehicle_id` (`vehicle_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='车辆业务信息';

-- 7. asset_vehicle_status (车辆状态信息)
DROP TABLE IF EXISTS `asset_vehicle_status`;
CREATE TABLE `asset_vehicle_status` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `vehicle_id` bigint DEFAULT NULL COMMENT '车辆ID',
  `status` int DEFAULT NULL COMMENT '车辆状态',
  `operate_status` int DEFAULT NULL COMMENT '运营状态',
  `storage_status` int DEFAULT NULL COMMENT '仓储状态',
  `out_status` int DEFAULT NULL COMMENT '出库状态',
  `preempt_status` int DEFAULT NULL COMMENT '占用状态',
  `prepare_status` int DEFAULT NULL COMMENT '备车状态',
  `transfer_status` int DEFAULT NULL COMMENT '调拨状态',
  `repair_status` int DEFAULT NULL COMMENT '维修状态',
  `license_status` int DEFAULT NULL COMMENT '牌照状态',
  `scrap_status` int DEFAULT NULL COMMENT '报废状态',
  `online_status` int DEFAULT NULL COMMENT '在线状态',
  `is_prepared` bit(1) DEFAULT NULL COMMENT '是否已备车',
  `is_delivered` bit(1) DEFAULT NULL COMMENT '是否已交车',
  `is_returned` bit(1) DEFAULT NULL COMMENT '是否已还车',
  `last_maintain_date` date DEFAULT NULL COMMENT '上次保养日期',
  `next_maintain_date` date DEFAULT NULL COMMENT '下次保养日期',
  `last_inspect_date` date DEFAULT NULL COMMENT '上次年检日期',
  `next_inspect_date` date DEFAULT NULL COMMENT '下次年检日期',
  `insurance_expire_date` date DEFAULT NULL COMMENT '保险到期日期',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_vehicle_id` (`vehicle_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='车辆状态信息';

-- 8. asset_customer (客户)
DROP TABLE IF EXISTS `asset_customer`;
CREATE TABLE `asset_customer` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `customer_code` varchar(64) DEFAULT NULL COMMENT '客户编码',
  `coop_status` varchar(32) DEFAULT NULL COMMENT '合作状态',
  `customer_name` varchar(255) DEFAULT NULL COMMENT '客户名称',
  `province` varchar(64) DEFAULT NULL COMMENT '省份',
  `city` varchar(64) DEFAULT NULL COMMENT '城市',
  `address` varchar(500) DEFAULT NULL COMMENT '地址',
  `region` varchar(64) DEFAULT NULL COMMENT '区域',
  `contact` varchar(64) DEFAULT NULL COMMENT '联系人',
  `contact_mobile` varchar(32) DEFAULT NULL COMMENT '联系手机',
  `contact_phone` varchar(32) DEFAULT NULL COMMENT '联系电话',
  `email` varchar(128) DEFAULT NULL COMMENT '邮箱',
  `credit_code_or_id` varchar(64) DEFAULT NULL COMMENT '统一社会信用代码/身份证',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `tax_id` varchar(64) DEFAULT NULL COMMENT '税号',
  `invoice_address` varchar(500) DEFAULT NULL COMMENT '开票地址',
  `invoice_phone` varchar(32) DEFAULT NULL COMMENT '开票电话',
  `account` varchar(64) DEFAULT NULL COMMENT '银行账号',
  `opening_bank` varchar(255) DEFAULT NULL COMMENT '开户行',
  `mailing_address` varchar(500) DEFAULT NULL COMMENT '邮寄地址',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='客户';

-- 9. asset_customer_business_manager (客户商务经理)
DROP TABLE IF EXISTS `asset_customer_business_manager`;
CREATE TABLE `asset_customer_business_manager` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `customer_id` bigint DEFAULT NULL COMMENT '客户ID',
  `business_manager_name` varchar(64) DEFAULT NULL COMMENT '商务经理名称',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='客户商务经理';

-- 10. asset_supplier (供应商)
DROP TABLE IF EXISTS `asset_supplier`;
CREATE TABLE `asset_supplier` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `supplier_code` varchar(64) DEFAULT NULL COMMENT '供应商编码',
  `coop_status` varchar(32) DEFAULT NULL COMMENT '合作状态',
  `supplier_name` varchar(255) DEFAULT NULL COMMENT '供应商名称',
  `type` varchar(64) DEFAULT NULL COMMENT '类型',
  `province` varchar(64) DEFAULT NULL COMMENT '省份',
  `city` varchar(64) DEFAULT NULL COMMENT '城市',
  `address` varchar(500) DEFAULT NULL COMMENT '地址',
  `region` varchar(64) DEFAULT NULL COMMENT '区域',
  `contact` varchar(64) DEFAULT NULL COMMENT '联系人',
  `contact_mobile` varchar(32) DEFAULT NULL COMMENT '联系手机',
  `contact_phone` varchar(32) DEFAULT NULL COMMENT '联系电话',
  `email` varchar(128) DEFAULT NULL COMMENT '邮箱',
  `credit_code_or_id` varchar(64) DEFAULT NULL COMMENT '统一社会信用代码',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `tax_id` varchar(64) DEFAULT NULL COMMENT '税号',
  `invoice_address` varchar(500) DEFAULT NULL COMMENT '开票地址',
  `invoice_phone` varchar(32) DEFAULT NULL COMMENT '开票电话',
  `account` varchar(64) DEFAULT NULL COMMENT '银行账号',
  `opening_bank` varchar(255) DEFAULT NULL COMMENT '开户行',
  `mailing_address` varchar(500) DEFAULT NULL COMMENT '邮寄地址',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='供应商';

-- 11. asset_vehicle_registration (车辆行驶证)
DROP TABLE IF EXISTS `asset_vehicle_registration`;
CREATE TABLE `asset_vehicle_registration` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `vehicle_id` bigint DEFAULT NULL COMMENT '车辆ID',
  `vin` varchar(64) DEFAULT NULL COMMENT 'VIN码',
  `plate_no` varchar(32) DEFAULT NULL COMMENT '车牌号',
  `plate_date` date DEFAULT NULL COMMENT '上牌日期',
  `operator` varchar(64) DEFAULT NULL COMMENT '经办人',
  `recognized_brand` varchar(128) DEFAULT NULL COMMENT '识别品牌',
  `recognized_model` varchar(128) DEFAULT NULL COMMENT '识别型号',
  `vehicle_type` varchar(64) DEFAULT NULL COMMENT '车辆类型',
  `owner` varchar(255) DEFAULT NULL COMMENT '所有人',
  `use_character` varchar(64) DEFAULT NULL COMMENT '使用性质',
  `engine_no` varchar(64) DEFAULT NULL COMMENT '发动机号',
  `register_date` date DEFAULT NULL COMMENT '注册日期',
  `issue_date` date DEFAULT NULL COMMENT '发证日期',
  `inspection_record` varchar(500) DEFAULT NULL COMMENT '检验记录',
  `scrap_date` date DEFAULT NULL COMMENT '报废日期',
  `curb_weight` varchar(32) DEFAULT NULL COMMENT '整备质量',
  `total_mass` varchar(32) DEFAULT NULL COMMENT '总质量',
  `approved_passenger_capacity` varchar(32) DEFAULT NULL COMMENT '核定载客',
  `vehicle_model_id` bigint DEFAULT NULL COMMENT '车型ID',
  `match_confidence` decimal(5,2) DEFAULT NULL COMMENT '匹配置信度',
  `match_method` varchar(32) DEFAULT NULL COMMENT '匹配方式',
  `photo_url` varchar(500) DEFAULT NULL COMMENT '照片URL',
  `photo_size` int DEFAULT NULL COMMENT '照片大小',
  `ocr_provider` varchar(64) DEFAULT NULL COMMENT 'OCR提供商',
  `ocr_cost_time` int DEFAULT NULL COMMENT 'OCR耗时(ms)',
  `ocr_raw_result` text COMMENT 'OCR原始结果',
  `status` int DEFAULT NULL COMMENT '状态',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='车辆行驶证';

-- 12. asset_contract (合同)
DROP TABLE IF EXISTS `asset_contract`;
CREATE TABLE `asset_contract` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `contract_code` varchar(64) DEFAULT NULL COMMENT '合同编号',
  `contract_type` int DEFAULT NULL COMMENT '合同类型',
  `project_name` varchar(255) DEFAULT NULL COMMENT '项目名称',
  `start_date` date DEFAULT NULL COMMENT '开始日期',
  `end_date` date DEFAULT NULL COMMENT '结束日期',
  `payment_method` varchar(64) DEFAULT NULL COMMENT '付款方式',
  `payment_cycle` varchar(64) DEFAULT NULL COMMENT '付款周期',
  `signing_company` varchar(255) DEFAULT NULL COMMENT '签约公司',
  `delivery_province` varchar(64) DEFAULT NULL COMMENT '交付省份',
  `delivery_city` varchar(64) DEFAULT NULL COMMENT '交付城市',
  `delivery_location` varchar(500) DEFAULT NULL COMMENT '交付地点',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `customer_id` bigint DEFAULT NULL COMMENT '客户ID',
  `customer_name` varchar(255) DEFAULT NULL COMMENT '客户名称',
  `third_party_enabled` bit(1) DEFAULT NULL COMMENT '是否启用第三方',
  `third_party_customer_id` bigint DEFAULT NULL COMMENT '第三方客户ID',
  `third_party_name` varchar(255) DEFAULT NULL COMMENT '第三方名称',
  `business_dept_id` bigint DEFAULT NULL COMMENT '商务部门ID',
  `business_manager_id` bigint DEFAULT NULL COMMENT '商务经理ID',
  `approval_status` int DEFAULT NULL COMMENT '审批状态',
  `bpm_instance_id` varchar(64) DEFAULT NULL COMMENT '流程实例ID',
  `contract_status` int DEFAULT NULL COMMENT '合同状态',
  `effective_time` datetime DEFAULT NULL COMMENT '生效时间',
  `terminate_time` datetime DEFAULT NULL COMMENT '终止时间',
  `terminate_reason` varchar(500) DEFAULT NULL COMMENT '终止原因',
  `renewed_contract_id` bigint DEFAULT NULL COMMENT '续约合同ID',
  `original_contract_id` bigint DEFAULT NULL COMMENT '原始合同ID',
  `hydrogen_bearer` varchar(64) DEFAULT NULL COMMENT '氢费承担方',
  `hydrogen_payment_method` varchar(64) DEFAULT NULL COMMENT '氢费支付方式',
  `hydrogen_prepay` decimal(18,2) DEFAULT NULL COMMENT '氢费预付金额',
  `hydrogen_return_price` decimal(18,2) DEFAULT NULL COMMENT '氢费返还单价',
  `billing_method` varchar(64) DEFAULT NULL COMMENT '计费方式',
  `main_vehicle_type` varchar(64) DEFAULT NULL COMMENT '主要车型',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='合同';

-- 13. asset_contract_vehicle (合同车辆)
DROP TABLE IF EXISTS `asset_contract_vehicle`;
CREATE TABLE `asset_contract_vehicle` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `contract_id` bigint DEFAULT NULL COMMENT '合同ID',
  `vehicle_id` bigint DEFAULT NULL COMMENT '车辆ID',
  `brand` varchar(128) DEFAULT NULL COMMENT '品牌',
  `model` varchar(128) DEFAULT NULL COMMENT '型号',
  `plate_no` varchar(32) DEFAULT NULL COMMENT '车牌号',
  `vin` varchar(64) DEFAULT NULL COMMENT 'VIN码',
  `month_rent` decimal(18,2) DEFAULT NULL COMMENT '月租金',
  `deposit` decimal(18,2) DEFAULT NULL COMMENT '押金',
  `vehicle_status` int DEFAULT NULL COMMENT '车辆状态',
  `actual_delivery_time` datetime DEFAULT NULL COMMENT '实际交付时间',
  `delivery_person` varchar(64) DEFAULT NULL COMMENT '交付人',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='合同车辆';

-- 14. asset_contract_vehicle_service (合同车辆服务)
DROP TABLE IF EXISTS `asset_contract_vehicle_service`;
CREATE TABLE `asset_contract_vehicle_service` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `contract_vehicle_id` bigint DEFAULT NULL COMMENT '合同车辆ID',
  `service_name` varchar(255) DEFAULT NULL COMMENT '服务名称',
  `service_fee` decimal(18,2) DEFAULT NULL COMMENT '服务费',
  `effective_date` date DEFAULT NULL COMMENT '生效日期',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='合同车辆服务';

-- 15. asset_contract_authorized (合同授权人)
DROP TABLE IF EXISTS `asset_contract_authorized`;
CREATE TABLE `asset_contract_authorized` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `contract_id` bigint DEFAULT NULL COMMENT '合同ID',
  `name` varchar(64) DEFAULT NULL COMMENT '姓名',
  `phone` varchar(32) DEFAULT NULL COMMENT '电话',
  `id_card` varchar(32) DEFAULT NULL COMMENT '身份证号',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='合同授权人';

-- 16. asset_contract_attachment (合同附件)
DROP TABLE IF EXISTS `asset_contract_attachment`;
CREATE TABLE `asset_contract_attachment` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `contract_id` bigint DEFAULT NULL COMMENT '合同ID',
  `attachment_type` int DEFAULT NULL COMMENT '附件类型',
  `file_id` bigint DEFAULT NULL COMMENT '文件ID',
  `file_name` varchar(255) DEFAULT NULL COMMENT '文件名',
  `file_url` varchar(500) DEFAULT NULL COMMENT '文件URL',
  `file_size` bigint DEFAULT NULL COMMENT '文件大小',
  `upload_time` datetime DEFAULT NULL COMMENT '上传时间',
  `uploader` varchar(64) DEFAULT NULL COMMENT '上传人',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='合同附件';

-- 17. asset_contract_change_history (合同变更历史)
DROP TABLE IF EXISTS `asset_contract_change_history`;
CREATE TABLE `asset_contract_change_history` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `contract_id` bigint DEFAULT NULL COMMENT '合同ID',
  `change_type` varchar(64) DEFAULT NULL COMMENT '变更类型',
  `change_content` text COMMENT '变更内容',
  `operator` varchar(64) DEFAULT NULL COMMENT '操作人',
  `operate_time` datetime DEFAULT NULL COMMENT '操作时间',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='合同变更历史';

-- 18. asset_inspection_template (验车模板)
DROP TABLE IF EXISTS `asset_inspection_template`;
CREATE TABLE `asset_inspection_template` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `code` varchar(64) DEFAULT NULL COMMENT '模板编码',
  `name` varchar(255) DEFAULT NULL COMMENT '模板名称',
  `biz_type` int DEFAULT NULL COMMENT '业务类型',
  `vehicle_type` varchar(64) DEFAULT NULL COMMENT '车辆类型',
  `status` int DEFAULT NULL COMMENT '状态',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='验车模板';

-- 19. asset_inspection_template_item (验车模板项)
DROP TABLE IF EXISTS `asset_inspection_template_item`;
CREATE TABLE `asset_inspection_template_item` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `template_id` bigint DEFAULT NULL COMMENT '模板ID',
  `category` varchar(64) DEFAULT NULL COMMENT '分类',
  `item_name` varchar(255) DEFAULT NULL COMMENT '项目名称',
  `item_code` varchar(64) DEFAULT NULL COMMENT '项目编码',
  `input_type` varchar(32) DEFAULT NULL COMMENT '输入类型',
  `sort` int DEFAULT NULL COMMENT '排序',
  `required` int DEFAULT NULL COMMENT '是否必填',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='验车模板项';

-- 20. asset_inspection_record (验车记录)
DROP TABLE IF EXISTS `asset_inspection_record`;
CREATE TABLE `asset_inspection_record` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `record_code` varchar(64) DEFAULT NULL COMMENT '记录编码',
  `template_id` bigint DEFAULT NULL COMMENT '模板ID',
  `source_type` int DEFAULT NULL COMMENT '来源类型',
  `source_id` bigint DEFAULT NULL COMMENT '来源ID',
  `vehicle_id` bigint DEFAULT NULL COMMENT '车辆ID',
  `inspector_name` varchar(64) DEFAULT NULL COMMENT '检查人',
  `inspection_time` datetime DEFAULT NULL COMMENT '检查时间',
  `status` int DEFAULT NULL COMMENT '状态',
  `overall_result` int DEFAULT NULL COMMENT '总体结果',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `cloned_from_id` bigint DEFAULT NULL COMMENT '克隆自ID',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='验车记录';

-- 21. asset_inspection_record_item (验车记录项)
DROP TABLE IF EXISTS `asset_inspection_record_item`;
CREATE TABLE `asset_inspection_record_item` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `record_id` bigint DEFAULT NULL COMMENT '记录ID',
  `item_code` varchar(64) DEFAULT NULL COMMENT '项目编码',
  `category` varchar(64) DEFAULT NULL COMMENT '分类',
  `item_name` varchar(255) DEFAULT NULL COMMENT '项目名称',
  `input_type` varchar(32) DEFAULT NULL COMMENT '输入类型',
  `result` int DEFAULT NULL COMMENT '结果',
  `value` varchar(500) DEFAULT NULL COMMENT '值',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `image_urls` varchar(2000) DEFAULT NULL COMMENT '图片URL列表',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='验车记录项';

-- 22. asset_vehicle_prepare (备车)
DROP TABLE IF EXISTS `asset_vehicle_prepare`;
CREATE TABLE `asset_vehicle_prepare` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `vehicle_id` bigint DEFAULT NULL COMMENT '车辆ID',
  `plate_no` varchar(32) DEFAULT NULL COMMENT '车牌号',
  `vin` varchar(64) DEFAULT NULL COMMENT 'VIN码',
  `vehicle_model_id` bigint DEFAULT NULL COMMENT '车型ID',
  `brand` varchar(128) DEFAULT NULL COMMENT '品牌',
  `model` varchar(128) DEFAULT NULL COMMENT '型号',
  `vehicle_type` varchar(64) DEFAULT NULL COMMENT '车辆类型',
  `parking_lot` varchar(255) DEFAULT NULL COMMENT '停车场',
  `contract_id` bigint DEFAULT NULL COMMENT '合同ID',
  `contract_code` varchar(64) DEFAULT NULL COMMENT '合同编号',
  `preparation_type` varchar(64) DEFAULT NULL COMMENT '备车类型',
  `mileage` int DEFAULT NULL COMMENT '里程',
  `hydrogen_remaining` decimal(18,2) DEFAULT NULL COMMENT '剩余氢量',
  `hydrogen_unit` varchar(32) DEFAULT NULL COMMENT '氢气单位',
  `battery_remaining` decimal(18,2) DEFAULT NULL COMMENT '剩余电量',
  `has_body_ad` bit(1) DEFAULT NULL COMMENT '是否有车身广告',
  `body_ad_photos` varchar(2000) DEFAULT NULL COMMENT '车身广告照片',
  `enlarged_text_photo` varchar(500) DEFAULT NULL COMMENT '放大字照片',
  `has_tail_lift` bit(1) DEFAULT NULL COMMENT '是否有尾板',
  `spare_tire_depth` decimal(18,2) DEFAULT NULL COMMENT '备胎花纹深度',
  `spare_tire_photo` varchar(500) DEFAULT NULL COMMENT '备胎照片',
  `trailer_plate_no` varchar(32) DEFAULT NULL COMMENT '挂车牌号',
  `defect_photos` varchar(2000) DEFAULT NULL COMMENT '缺陷照片',
  `inspection_record_id` bigint DEFAULT NULL COMMENT '验车记录ID',
  `check_list` text COMMENT '检查清单JSON',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `status` int DEFAULT NULL COMMENT '状态',
  `complete_time` datetime DEFAULT NULL COMMENT '完成时间',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='备车';

-- 23. asset_delivery_task (交车任务)
DROP TABLE IF EXISTS `asset_delivery_task`;
CREATE TABLE `asset_delivery_task` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `task_code` varchar(64) DEFAULT NULL COMMENT '任务编码',
  `contract_id` bigint DEFAULT NULL COMMENT '合同ID',
  `contract_code` varchar(64) DEFAULT NULL COMMENT '合同编号',
  `project_name` varchar(255) DEFAULT NULL COMMENT '项目名称',
  `customer_id` bigint DEFAULT NULL COMMENT '客户ID',
  `customer_name` varchar(255) DEFAULT NULL COMMENT '客户名称',
  `expected_delivery_date_start` date DEFAULT NULL COMMENT '预计交付开始日期',
  `expected_delivery_date_end` date DEFAULT NULL COMMENT '预计交付结束日期',
  `billing_start_date` date DEFAULT NULL COMMENT '计费开始日期',
  `delivery_province` varchar(64) DEFAULT NULL COMMENT '交付省份',
  `delivery_city` varchar(64) DEFAULT NULL COMMENT '交付城市',
  `delivery_location` varchar(500) DEFAULT NULL COMMENT '交付地点',
  `vehicle_count` int DEFAULT NULL COMMENT '车辆数量',
  `task_status` int DEFAULT NULL COMMENT '任务状态',
  `delivery_status` int DEFAULT NULL COMMENT '交付状态',
  `need_return` bit(1) DEFAULT NULL COMMENT '是否需要还车',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='交车任务';

-- 24. asset_delivery_task_vehicle (交车任务车辆)
DROP TABLE IF EXISTS `asset_delivery_task_vehicle`;
CREATE TABLE `asset_delivery_task_vehicle` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `task_id` bigint DEFAULT NULL COMMENT '任务ID',
  `contract_vehicle_id` bigint DEFAULT NULL COMMENT '合同车辆ID',
  `vehicle_id` bigint DEFAULT NULL COMMENT '车辆ID',
  `plate_no` varchar(32) DEFAULT NULL COMMENT '车牌号',
  `vin` varchar(64) DEFAULT NULL COMMENT 'VIN码',
  `brand` varchar(128) DEFAULT NULL COMMENT '品牌',
  `model` varchar(128) DEFAULT NULL COMMENT '型号',
  `month_rent` decimal(18,2) DEFAULT NULL COMMENT '月租金',
  `deposit` decimal(18,2) DEFAULT NULL COMMENT '押金',
  `actual_delivery_date` datetime DEFAULT NULL COMMENT '实际交付日期',
  `delivery_person` varchar(64) DEFAULT NULL COMMENT '交付人',
  `is_delivered` bit(1) DEFAULT NULL COMMENT '是否已交付',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='交车任务车辆';

-- 25. asset_delivery_order (交车单)
DROP TABLE IF EXISTS `asset_delivery_order`;
CREATE TABLE `asset_delivery_order` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `order_code` varchar(64) DEFAULT NULL COMMENT '交车单号',
  `task_id` bigint DEFAULT NULL COMMENT '任务ID',
  `task_code` varchar(64) DEFAULT NULL COMMENT '任务编码',
  `contract_id` bigint DEFAULT NULL COMMENT '合同ID',
  `contract_code` varchar(64) DEFAULT NULL COMMENT '合同编号',
  `project_name` varchar(255) DEFAULT NULL COMMENT '项目名称',
  `customer_id` bigint DEFAULT NULL COMMENT '客户ID',
  `customer_name` varchar(255) DEFAULT NULL COMMENT '客户名称',
  `delivery_date` datetime DEFAULT NULL COMMENT '交车日期',
  `delivery_person` varchar(64) DEFAULT NULL COMMENT '交车人',
  `delivery_location` varchar(500) DEFAULT NULL COMMENT '交车地点',
  `authorized_person_id` bigint DEFAULT NULL COMMENT '授权人ID',
  `authorized_person_name` varchar(64) DEFAULT NULL COMMENT '授权人姓名',
  `authorized_person_phone` varchar(32) DEFAULT NULL COMMENT '授权人电话',
  `authorized_person_id_card` varchar(32) DEFAULT NULL COMMENT '授权人身份证',
  `esign_flow_id` varchar(128) DEFAULT NULL COMMENT '电子签章流程ID',
  `esign_status` int DEFAULT NULL COMMENT '电子签章状态',
  `delivery_photos` varchar(2000) DEFAULT NULL COMMENT '交车照片',
  `driver_name` varchar(64) DEFAULT NULL COMMENT '司机姓名',
  `driver_id_card` varchar(32) DEFAULT NULL COMMENT '司机身份证',
  `driver_phone` varchar(32) DEFAULT NULL COMMENT '司机电话',
  `inspection_data` text COMMENT '验车数据JSON',
  `cost_list` text COMMENT '费用清单JSON',
  `inspection_record_id` bigint DEFAULT NULL COMMENT '验车记录ID',
  `status` int DEFAULT NULL COMMENT '状态',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='交车单';

-- 26. asset_delivery_order_vehicle (交车单车辆)
DROP TABLE IF EXISTS `asset_delivery_order_vehicle`;
CREATE TABLE `asset_delivery_order_vehicle` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `order_id` bigint DEFAULT NULL COMMENT '交车单ID',
  `task_vehicle_id` bigint DEFAULT NULL COMMENT '任务车辆ID',
  `vehicle_id` bigint DEFAULT NULL COMMENT '车辆ID',
  `plate_no` varchar(32) DEFAULT NULL COMMENT '车牌号',
  `vin` varchar(64) DEFAULT NULL COMMENT 'VIN码',
  `brand` varchar(128) DEFAULT NULL COMMENT '品牌',
  `model` varchar(128) DEFAULT NULL COMMENT '型号',
  `mileage` int DEFAULT NULL COMMENT '里程',
  `hydrogen_level` decimal(18,2) DEFAULT NULL COMMENT '氢量',
  `battery_level` decimal(18,2) DEFAULT NULL COMMENT '电量',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='交车单车辆';

-- 27. asset_vehicle_replacement (替换车)
DROP TABLE IF EXISTS `asset_vehicle_replacement`;
CREATE TABLE `asset_vehicle_replacement` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `replacement_code` varchar(64) DEFAULT NULL COMMENT '替换编号',
  `replacement_type` int DEFAULT NULL COMMENT '替换类型',
  `contract_id` bigint DEFAULT NULL COMMENT '合同ID',
  `contract_code` varchar(64) DEFAULT NULL COMMENT '合同编号',
  `customer_id` bigint DEFAULT NULL COMMENT '客户ID',
  `customer_name` varchar(255) DEFAULT NULL COMMENT '客户名称',
  `delivery_order_id` bigint DEFAULT NULL COMMENT '交车单ID',
  `original_vehicle_id` bigint DEFAULT NULL COMMENT '原车辆ID',
  `original_plate_no` varchar(32) DEFAULT NULL COMMENT '原车牌号',
  `original_vin` varchar(64) DEFAULT NULL COMMENT '原VIN码',
  `new_vehicle_id` bigint DEFAULT NULL COMMENT '新车辆ID',
  `new_plate_no` varchar(32) DEFAULT NULL COMMENT '新车牌号',
  `new_vin` varchar(64) DEFAULT NULL COMMENT '新VIN码',
  `replacement_reason` varchar(500) DEFAULT NULL COMMENT '替换原因',
  `expected_date` date DEFAULT NULL COMMENT '预计替换日期',
  `actual_date` date DEFAULT NULL COMMENT '实际替换日期',
  `return_date` date DEFAULT NULL COMMENT '预计归还日期',
  `actual_return_date` date DEFAULT NULL COMMENT '实际归还日期',
  `status` int DEFAULT NULL COMMENT '状态',
  `approval_status` int DEFAULT NULL COMMENT '审批状态',
  `bpm_instance_id` varchar(64) DEFAULT NULL COMMENT '流程实例ID',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='替换车';

-- 28. asset_return_order (还车单)
DROP TABLE IF EXISTS `asset_return_order`;
CREATE TABLE `asset_return_order` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `order_code` varchar(64) DEFAULT NULL COMMENT '还车单号',
  `contract_id` bigint DEFAULT NULL COMMENT '合同ID',
  `contract_code` varchar(64) DEFAULT NULL COMMENT '合同编号',
  `project_name` varchar(255) DEFAULT NULL COMMENT '项目名称',
  `customer_id` bigint DEFAULT NULL COMMENT '客户ID',
  `customer_name` varchar(255) DEFAULT NULL COMMENT '客户名称',
  `return_date` datetime DEFAULT NULL COMMENT '还车日期',
  `return_person` varchar(64) DEFAULT NULL COMMENT '还车人',
  `return_location` varchar(500) DEFAULT NULL COMMENT '还车地点',
  `return_reason` varchar(64) DEFAULT NULL COMMENT '还车原因',
  `return_reason_desc` varchar(500) DEFAULT NULL COMMENT '还车原因描述',
  `total_refund_amount` decimal(18,2) DEFAULT NULL COMMENT '退款总额',
  `deposit_refund` decimal(18,2) DEFAULT NULL COMMENT '押金退款',
  `hydrogen_refund` decimal(18,2) DEFAULT NULL COMMENT '氢费退款',
  `other_charges` decimal(18,2) DEFAULT NULL COMMENT '其他费用',
  `return_photos` varchar(2000) DEFAULT NULL COMMENT '还车照片',
  `status` int DEFAULT NULL COMMENT '状态',
  `approval_status` int DEFAULT NULL COMMENT '审批状态',
  `bpm_instance_id` varchar(64) DEFAULT NULL COMMENT '流程实例ID',
  `source_type` int DEFAULT NULL COMMENT '来源类型',
  `source_id` bigint DEFAULT NULL COMMENT '来源ID',
  `delivery_order_id` bigint DEFAULT NULL COMMENT '交车单ID',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='还车单';

-- 29. asset_return_order_vehicle (还车单车辆)
DROP TABLE IF EXISTS `asset_return_order_vehicle`;
CREATE TABLE `asset_return_order_vehicle` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tenant_id` bigint NOT NULL DEFAULT 1 COMMENT 租户编号,
  `return_order_id` bigint DEFAULT NULL COMMENT '还车单ID',
  `vehicle_id` bigint DEFAULT NULL COMMENT '车辆ID',
  `plate_no` varchar(32) DEFAULT NULL COMMENT '车牌号',
  `vin` varchar(64) DEFAULT NULL COMMENT 'VIN码',
  `brand` varchar(128) DEFAULT NULL COMMENT '品牌',
  `model` varchar(128) DEFAULT NULL COMMENT '型号',
  `return_mileage` int DEFAULT NULL COMMENT '还车里程',
  `return_hydrogen_level` decimal(18,2) DEFAULT NULL COMMENT '还车氢量',
  `delivery_hydrogen_level` decimal(18,2) DEFAULT NULL COMMENT '交车氢量',
  `hydrogen_diff` decimal(18,2) DEFAULT NULL COMMENT '氢量差值',
  `hydrogen_unit_price` decimal(18,2) DEFAULT NULL COMMENT '氢单价',
  `hydrogen_refund_amount` decimal(18,2) DEFAULT NULL COMMENT '氢费退款金额',
  `check_list` text COMMENT '检查清单JSON',
  `defect_photos` varchar(2000) DEFAULT NULL COMMENT '缺陷照片',
  `vehicle_damage_fee` decimal(18,2) DEFAULT NULL COMMENT '车辆损坏费',
  `tool_damage_fee` decimal(18,2) DEFAULT NULL COMMENT '工具损坏费',
  `unpaid_maintenance_fee` decimal(18,2) DEFAULT NULL COMMENT '未付保养费',
  `unpaid_repair_fee` decimal(18,2) DEFAULT NULL COMMENT '未付维修费',
  `violation_fee` decimal(18,2) DEFAULT NULL COMMENT '违章费',
  `other_fee` decimal(18,2) DEFAULT NULL COMMENT '其他费用',
  `inspection_record_id` bigint DEFAULT NULL COMMENT '验车记录ID',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='还车单车辆';

-- ============================================================
-- 车辆全量视图 (view)
-- ============================================================
DROP VIEW IF EXISTS `v_asset_vehicle_full`;
CREATE VIEW `v_asset_vehicle_full` AS
SELECT
  b.id, b.vin, b.plate_no, b.vehicle_no, b.vehicle_model_id,
  b.region_province, b.region_city, b.engine_no, b.register_date,
  b.purchase_date, b.purchase_price, b.color, b.year, b.mileage,
  b.inspect_expire, b.scrap_date,
  b.creator, b.create_time, b.updater, b.update_time, b.deleted,
  l.parking_id, l.parking_name, l.parking_space, l.location,
  l.latitude, l.longitude, l.gps_time, l.entry_time, l.exit_time,
  biz.customer_id, biz.department_id, biz.manager_id, biz.contract_id,
  biz.ownership, biz.delivery_date, biz.return_date, biz.monthly_rent, biz.deposit,
  s.status, s.operate_status, s.storage_status, s.out_status,
  s.preempt_status, s.prepare_status, s.transfer_status,
  s.repair_status, s.license_status, s.scrap_status, s.online_status,
  s.is_prepared, s.is_delivered, s.is_returned,
  s.last_maintain_date, s.next_maintain_date,
  s.last_inspect_date, s.next_inspect_date, s.insurance_expire_date
FROM asset_vehicle_base b
LEFT JOIN asset_vehicle_location l ON b.id = l.vehicle_id AND l.deleted = 0
LEFT JOIN asset_vehicle_business biz ON b.id = biz.vehicle_id AND biz.deleted = 0
LEFT JOIN asset_vehicle_status s ON b.id = s.vehicle_id AND s.deleted = 0
WHERE b.deleted = 0;
