refactor(energy): 简化事件驱动系统(7个→3个)

- 删除旧事件:BillApprovedEvent, BillCreatedEvent, DeductionCompletedEvent, DetailAuditedEvent, DetailCreatedEvent, RecordMatchedEvent
- 新增事件:BillAuditPassedEvent, DetailAuditPassedEvent
- 保留事件:RecordImportedEvent
- 更新监听器:AccountEventListener, BillEventListener, DetailEventListener
- 清理代码中的旧事件引用和注释

优化原则:前端简单,后端健壮
事件流程:导入→匹配→生成明细→审核→扣款→生成账单→结算
This commit is contained in:
kkfluous
2026-03-16 12:53:14 +08:00
parent f5062cec22
commit 2f38a703f9
167 changed files with 9876 additions and 824 deletions

836
sql/rebuild/asset_ddl.sql Normal file
View File

@@ -0,0 +1,836 @@
-- ============================================================
-- 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;

236
sql/rebuild/energy_ddl.sql Normal file
View File

@@ -0,0 +1,236 @@
-- ============================================================
-- Energy Module DDL - Generated from DO classes
-- Database: oneos_energy
-- Generated: 2026-03-16
-- ============================================================
-- 1. energy_hydrogen_record (加氢记录)
DROP TABLE IF EXISTS `energy_hydrogen_record`;
CREATE TABLE `energy_hydrogen_record` (
`id` bigint NOT NULL AUTO_INCREMENT,
`tenant_id` bigint NOT NULL DEFAULT 1 COMMENT '租户编号',
`station_id` bigint DEFAULT NULL COMMENT '加氢站ID',
`plate_number` varchar(32) DEFAULT NULL COMMENT '车牌号',
`hydrogen_date` date DEFAULT NULL COMMENT '加氢日期',
`hydrogen_quantity` decimal(18,2) DEFAULT NULL COMMENT '加氢量(kg)',
`unit_price` decimal(18,2) DEFAULT NULL COMMENT '单价',
`amount` decimal(18,2) DEFAULT NULL COMMENT '金额',
`mileage` decimal(18,2) DEFAULT NULL COMMENT '里程(km)',
`source_type` int DEFAULT NULL COMMENT '来源类型',
`match_status` int DEFAULT NULL COMMENT '匹配状态',
`vehicle_id` bigint DEFAULT NULL COMMENT '车辆ID',
`customer_id` bigint DEFAULT NULL COMMENT '客户ID',
`upload_batch_no` 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='加氢记录';
-- 2. energy_hydrogen_detail (加氢明细)
DROP TABLE IF EXISTS `energy_hydrogen_detail`;
CREATE TABLE `energy_hydrogen_detail` (
`id` bigint NOT NULL AUTO_INCREMENT,
`tenant_id` bigint NOT NULL DEFAULT 1 COMMENT ,
`record_id` bigint DEFAULT NULL COMMENT '加氢记录ID',
`station_id` bigint DEFAULT NULL COMMENT '加氢站ID',
`vehicle_id` bigint DEFAULT NULL COMMENT '车辆ID',
`plate_number` varchar(32) DEFAULT NULL COMMENT '车牌号',
`hydrogen_date` date DEFAULT NULL COMMENT '加氢日期',
`hydrogen_quantity` decimal(18,2) DEFAULT NULL COMMENT '加氢量(kg)',
`cost_price` decimal(18,2) DEFAULT NULL COMMENT '成本价',
`cost_amount` decimal(18,2) DEFAULT NULL COMMENT '成本金额',
`customer_price` decimal(18,2) DEFAULT NULL COMMENT '客户价',
`customer_amount` decimal(18,2) DEFAULT NULL COMMENT '客户金额',
`contract_id` bigint DEFAULT NULL COMMENT '合同ID',
`customer_id` bigint DEFAULT NULL COMMENT '客户ID',
`project_name` varchar(255) DEFAULT NULL COMMENT '项目名称',
`cost_bearer` int DEFAULT NULL COMMENT '费用承担方',
`pay_method` int DEFAULT NULL COMMENT '支付方式',
`audit_status` int DEFAULT NULL COMMENT '审核状态',
`audit_remark` varchar(500) DEFAULT NULL COMMENT '审核备注',
`deduction_status` int DEFAULT NULL COMMENT '扣费状态',
`settlement_status` int DEFAULT NULL COMMENT '结算状态',
`bill_id` bigint 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='加氢明细';
-- 3. energy_bill (能源账单)
DROP TABLE IF EXISTS `energy_bill`;
CREATE TABLE `energy_bill` (
`id` bigint NOT NULL AUTO_INCREMENT,
`tenant_id` bigint NOT NULL DEFAULT 1 COMMENT ,
`bill_code` varchar(64) DEFAULT NULL COMMENT '账单编号',
`energy_type` int DEFAULT NULL COMMENT '能源类型',
`customer_id` bigint DEFAULT NULL COMMENT '客户ID',
`customer_name` varchar(255) DEFAULT NULL COMMENT '客户名称',
`contract_id` bigint DEFAULT NULL COMMENT '合同ID',
`station_id` bigint DEFAULT NULL COMMENT '站点ID',
`station_name` varchar(255) DEFAULT NULL COMMENT '站点名称',
`cooperation_type` int DEFAULT NULL COMMENT '合作模式(1=预充值 2=月结算)',
`bill_period_start` date DEFAULT NULL COMMENT '账单周期开始',
`bill_period_end` date DEFAULT NULL COMMENT '账单周期结束',
`receivable_amount` decimal(18,2) DEFAULT NULL COMMENT '应收金额',
`actual_amount` decimal(18,2) DEFAULT NULL COMMENT '实收金额',
`adjustment_amount` decimal(18,2) DEFAULT NULL COMMENT '调整金额',
`paid_amount` decimal(18,2) DEFAULT NULL COMMENT '已付金额',
`total_quantity` decimal(18,2) DEFAULT NULL COMMENT '总用量',
`detail_count` int DEFAULT NULL COMMENT '明细条数',
`status` int DEFAULT NULL COMMENT '账单状态',
`audit_status` int DEFAULT NULL COMMENT '审核状态',
`submit_status` int DEFAULT NULL COMMENT '提交状态',
`payment_status` int DEFAULT NULL COMMENT '付款状态',
`auditor_id` bigint DEFAULT NULL COMMENT '审核人ID',
`audit_time` datetime DEFAULT NULL COMMENT '审核时间',
`audit_remark` varchar(500) DEFAULT NULL COMMENT '审核备注',
`submit_time` datetime DEFAULT NULL COMMENT '提交时间',
`generate_time` datetime DEFAULT NULL COMMENT '生成时间',
`yos_bill_code` varchar(64) DEFAULT NULL COMMENT 'YOS账单编号',
`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. energy_bill_adjustment (账单调整)
DROP TABLE IF EXISTS `energy_bill_adjustment`;
CREATE TABLE `energy_bill_adjustment` (
`id` bigint NOT NULL AUTO_INCREMENT,
`tenant_id` bigint NOT NULL DEFAULT 1 COMMENT ,
`bill_id` bigint DEFAULT NULL COMMENT '账单ID',
`detail_id` bigint DEFAULT NULL COMMENT '明细ID',
`adjustment_type` int DEFAULT NULL COMMENT '调整类型',
`amount` decimal(18,2) DEFAULT NULL COMMENT '调整金额',
`reason` varchar(500) DEFAULT NULL COMMENT '调整原因',
`attachment_urls` varchar(2000) DEFAULT NULL COMMENT '附件URLs',
`operator_id` bigint DEFAULT NULL COMMENT '操作人ID',
`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='账单调整';
-- 5. energy_station_config (站点配置)
DROP TABLE IF EXISTS `energy_station_config`;
CREATE TABLE `energy_station_config` (
`id` bigint NOT NULL AUTO_INCREMENT,
`tenant_id` bigint NOT NULL DEFAULT 1 COMMENT ,
`station_id` bigint DEFAULT NULL COMMENT '站点ID',
`auto_deduct` bit(1) DEFAULT NULL COMMENT '是否自动扣费',
`cooperation_type` int DEFAULT NULL COMMENT '合作类型',
`auto_match` bit(1) 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='站点配置';
-- 6. energy_station_price (站点价格)
DROP TABLE IF EXISTS `energy_station_price`;
CREATE TABLE `energy_station_price` (
`id` bigint NOT NULL AUTO_INCREMENT,
`tenant_id` bigint NOT NULL DEFAULT 1 COMMENT ,
`station_id` bigint DEFAULT NULL COMMENT '站点ID',
`customer_id` bigint DEFAULT NULL COMMENT '客户ID',
`cost_price` decimal(18,2) DEFAULT NULL COMMENT '成本价',
`customer_price` decimal(18,2) DEFAULT NULL COMMENT '客户价',
`effective_date` date DEFAULT NULL COMMENT '生效日期',
`expiry_date` date DEFAULT NULL COMMENT '失效日期',
`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='站点价格';
-- 7. energy_account (能源账户)
DROP TABLE IF EXISTS `energy_account`;
CREATE TABLE `energy_account` (
`id` bigint NOT NULL AUTO_INCREMENT,
`tenant_id` bigint NOT NULL DEFAULT 1 COMMENT ,
`customer_id` bigint DEFAULT NULL COMMENT '客户ID',
`balance` decimal(18,2) DEFAULT NULL COMMENT '余额',
`init_balance` decimal(18,2) DEFAULT NULL COMMENT '初始余额',
`accumulated_recharge` decimal(18,2) DEFAULT NULL COMMENT '累计充值金额',
`accumulated_hydrogen` decimal(18,2) DEFAULT NULL COMMENT '累计加氢金额',
`accumulated_electric` decimal(18,2) DEFAULT NULL COMMENT '累计充电金额',
`accumulated_consume` decimal(18,2) DEFAULT NULL COMMENT '累计消费金额',
`reminder_threshold` decimal(18,2) DEFAULT NULL COMMENT '余额预警阈值',
`account_status` int DEFAULT NULL COMMENT '账户状态',
`last_recharge_date` date DEFAULT NULL COMMENT '最后充值日期',
`version` int DEFAULT 0 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='能源账户';
-- 8. energy_project_account (项目账户)
DROP TABLE IF EXISTS `energy_project_account`;
CREATE TABLE `energy_project_account` (
`id` bigint NOT NULL AUTO_INCREMENT,
`tenant_id` bigint NOT NULL DEFAULT 1 COMMENT ,
`account_id` bigint DEFAULT NULL COMMENT '账户ID',
`contract_id` bigint DEFAULT NULL COMMENT '合同ID',
`project_name` varchar(255) DEFAULT NULL COMMENT '项目名称',
`project_balance` decimal(18,2) DEFAULT NULL COMMENT '项目余额',
`project_remit_amount` decimal(18,2) DEFAULT NULL COMMENT '项目汇款总额',
`project_hydrogen_amount` decimal(18,2) DEFAULT NULL COMMENT '项目加氢金额',
`project_electric_amount` decimal(18,2) DEFAULT NULL COMMENT '项目充电金额',
`project_consume_amount` decimal(18,2) DEFAULT NULL COMMENT '项目消费总额',
`reminder_threshold` decimal(18,2) DEFAULT NULL COMMENT '余额预警阈值',
`account_status` int DEFAULT NULL COMMENT '账户状态',
`version` int DEFAULT 0 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. energy_account_flow (账户流水)
DROP TABLE IF EXISTS `energy_account_flow`;
CREATE TABLE `energy_account_flow` (
`id` bigint NOT NULL AUTO_INCREMENT,
`tenant_id` bigint NOT NULL DEFAULT 1 COMMENT ,
`account_id` bigint DEFAULT NULL COMMENT '账户ID',
`project_account_id` bigint DEFAULT NULL COMMENT '项目账户ID',
`flow_type` int DEFAULT NULL COMMENT '流水类型',
`amount` decimal(18,2) DEFAULT NULL COMMENT '金额',
`balance_before` decimal(18,2) DEFAULT NULL COMMENT '变更前余额',
`balance_after` decimal(18,2) DEFAULT NULL COMMENT '变更后余额',
`project_balance_before` decimal(18,2) DEFAULT NULL COMMENT '变更前项目余额',
`project_balance_after` decimal(18,2) DEFAULT NULL COMMENT '变更后项目余额',
`biz_type` int DEFAULT NULL COMMENT '业务类型',
`biz_id` bigint DEFAULT NULL COMMENT '业务ID',
`biz_code` varchar(64) DEFAULT NULL COMMENT '业务编号',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`operator_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='账户流水';

197
sql/rebuild/mock_data.sql Normal file
View File

@@ -0,0 +1,197 @@
-- ============================================================
-- Mock Data for Asset & Energy Modules
-- Part 1: Asset data → oneos_asset
-- Part 2: Energy data → oneos_energy
-- Generated: 2026-03-16
-- ============================================================
-- ===================== PART 1: ASSET =====================
-- ---------- 停车场 ----------
INSERT INTO `asset_parking` (`id`, `name`, `capacity`, `manager_name`, `manager_phone`, `contact_name`, `contact_phone`, `parked_amount`, `province`, `city`, `address`, `longitude`, `latitude`, `lease_start_date`, `lease_end_date`, `rent_fee`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
(1, '上海嘉定氢能停车场', 200, '张伟', '13800001001', '李敏', '13800001002', 45, '上海', '上海市', '嘉定区安亭镇曹安公路5555号', '121.1856', '31.3856', '2025-01-01', '2027-12-31', 50000.00, 'admin', NOW(), 'admin', NOW(), 0),
(2, '上海临港停车场', 150, '王强', '13800002001', '赵丽', '13800002002', 30, '上海', '上海市', '浦东新区临港大道888号', '121.9300', '30.8900', '2025-03-01', '2027-02-28', 40000.00, 'admin', NOW(), 'admin', NOW(), 0),
(3, '佛山南海停车场', 100, '陈刚', '13800003001', '周红', '13800003002', 20, '广东', '佛山市', '南海区桂城街道海五路28号', '113.1500', '23.0200', '2025-06-01', '2027-05-31', 30000.00, 'admin', NOW(), 'admin', NOW(), 0);
-- ---------- 车型参数 ----------
INSERT INTO `asset_vehicle_model` (`id`, `brand`, `model`, `vehicle_type`, `model_label`, `fuel_type`, `plate_color`, `hydrogen_capacity`, `hydrogen_factory`, `hydrogen_unit`, `hydrogen_mileage`, `battery_type`, `battery_factory`, `reserve_electricity`, `electricity_mileage`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
(1, '飞驰', 'FCEV-C1', '冷藏车', '18吨氢能冷藏车', '氢燃料', '黄色', 30, '国鸿氢能', 'kg', 350, '磷酸铁锂', '宁德时代', 100.00, 200, 'admin', NOW(), 'admin', NOW(), 0),
(2, '东风', 'EQ5180', '厢式货车', '18吨氢能厢式货车', '氢燃料', '黄色', 25, '亿华通', 'kg', 300, '磷酸铁锂', '比亚迪', 80.00, 150, 'admin', NOW(), 'admin', NOW(), 0),
(3, '福田', 'BJ5120', '冷藏车', '12吨氢能冷藏车', '氢燃料', '黄色', 20, '国鸿氢能', 'kg', 280, '三元锂', '国轩高科', 60.00, 120, 'admin', NOW(), 'admin', NOW(), 0);
-- ---------- 车型保养项目 ----------
INSERT INTO `asset_vehicle_model_maintain_item` (`id`, `vehicle_model_id`, `maintain_item`, `kilometer_cycle`, `time_cycle`, `hour_fee`, `material_fee`, `total_fee`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
(1, 1, '燃料电池系统检查', 10000, 3, 200.00, 500.00, 700.00, 'admin', NOW(), 'admin', NOW(), 0),
(2, 1, '储氢瓶检测', 20000, 6, 300.00, 0.00, 300.00, 'admin', NOW(), 'admin', NOW(), 0),
(3, 2, '燃料电池系统检查', 10000, 3, 200.00, 500.00, 700.00, 'admin', NOW(), 'admin', NOW(), 0);
-- ---------- 客户 ----------
INSERT INTO `asset_customer` (`id`, `customer_code`, `coop_status`, `customer_name`, `province`, `city`, `address`, `region`, `contact`, `contact_mobile`, `email`, `credit_code_or_id`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
(1, 'CUS-2025-001', '合作中', '上海鲜生冷链物流有限公司', '上海', '上海市', '浦东新区张江路100号', '华东', '刘总', '13900001001', 'liu@xiansheng.com', '91310000MA1FY3XY23', '大客户', 'admin', NOW(), 'admin', NOW(), 0),
(2, 'CUS-2025-002', '合作中', '广州顺达运输有限公司', '广东', '广州市', '天河区天河路200号', '华南', '黄经理', '13900002001', 'huang@shunda.com', '91440100MA5CXKQR0L', NULL, 'admin', NOW(), 'admin', NOW(), 0),
(3, 'CUS-2025-003', '合作中', '深圳绿能科技有限公司', '广东', '深圳市', '南山区科技园南路50号', '华南', '郑总', '13900003001', 'zheng@lvneng.com', '91440300MA5FKP4Y28', '氢能源客户', 'admin', NOW(), 'admin', NOW(), 0);
-- ---------- 客户商务经理 ----------
INSERT INTO `asset_customer_business_manager` (`id`, `customer_id`, `business_manager_name`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
(1, 1, '张三', 'admin', NOW(), 'admin', NOW(), 0),
(2, 2, '李四', 'admin', NOW(), 'admin', NOW(), 0),
(3, 3, '王五', 'admin', NOW(), 'admin', NOW(), 0);
-- ---------- 供应商 ----------
INSERT INTO `asset_supplier` (`id`, `supplier_code`, `coop_status`, `supplier_name`, `type`, `province`, `city`, `address`, `contact`, `contact_mobile`, `credit_code_or_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
(1, 'SUP-2025-001', '合作中', '飞驰科技有限公司', '车辆供应商', '广东', '佛山市', '南海区狮山镇科技路1号', '孙总', '13800010001', '91440600MA4W9F1M0K', 'admin', NOW(), 'admin', NOW(), 0),
(2, 'SUP-2025-002', '合作中', '国鸿氢能科技有限公司', '配件供应商', '广东', '云浮市', '云城区工业园8号', '钱经理', '13800010002', '91445300MA4WFPQY0T', 'admin', NOW(), 'admin', NOW(), 0);
-- ---------- 车辆基础信息 (8辆) ----------
INSERT INTO `asset_vehicle_base` (`id`, `vin`, `plate_no`, `vehicle_no`, `vehicle_model_id`, `region_province`, `region_city`, `engine_no`, `register_date`, `purchase_date`, `purchase_price`, `color`, `year`, `mileage`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
(1, 'LFCEV001202500001', '沪A12345', 'VH-2025-001', 1, '上海', '上海市', 'ENG001', '2025-01-15', '2025-01-10', 680000.00, '白色', '2025', 12000, 'admin', NOW(), 'admin', NOW(), 0),
(2, 'LFCEV001202500002', '沪A12346', 'VH-2025-002', 1, '上海', '上海市', 'ENG002', '2025-01-20', '2025-01-15', 680000.00, '白色', '2025', 15000, 'admin', NOW(), 'admin', NOW(), 0),
(3, 'LFCEV001202500003', '沪A12347', 'VH-2025-003', 2, '上海', '上海市', 'ENG003', '2025-02-10', '2025-02-05', 550000.00, '蓝色', '2025', 8000, 'admin', NOW(), 'admin', NOW(), 0),
(4, 'LFCEV001202500004', '粤B88001', 'VH-2025-004', 2, '广东', '广州市', 'ENG004', '2025-03-01', '2025-02-25', 550000.00, '白色', '2025', 20000, 'admin', NOW(), 'admin', NOW(), 0),
(5, 'LFCEV001202500005', '粤B88002', 'VH-2025-005', 3, '广东', '广州市', 'ENG005', '2025-03-15', '2025-03-10', 450000.00, '蓝色', '2025', 5000, 'admin', NOW(), 'admin', NOW(), 0),
(6, 'LFCEV001202500006', '粤B88003', 'VH-2025-006', 1, '广东', '深圳市', 'ENG006', '2025-04-01', '2025-03-25', 680000.00, '白色', '2025', 3000, 'admin', NOW(), 'admin', NOW(), 0),
(7, 'LFCEV001202500007', '沪A12348', 'VH-2025-007', 3, '上海', '上海市', 'ENG007', '2025-04-15', '2025-04-10', 450000.00, '白色', '2025', 1000, 'admin', NOW(), 'admin', NOW(), 0),
(8, 'LFCEV001202500008', '沪A12349', 'VH-2025-008', 2, '上海', '上海市', 'ENG008', '2025-05-01', '2025-04-25', 550000.00, '蓝色', '2025', 500, 'admin', NOW(), 'admin', NOW(), 0);
-- ---------- 车辆位置信息 ----------
INSERT INTO `asset_vehicle_location` (`id`, `vehicle_id`, `parking_id`, `parking_name`, `parking_space`, `location`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
(1, 1, 1, '上海嘉定氢能停车场', 'A-001', '已交车-客户运营中', 'admin', NOW(), 'admin', NOW(), 0),
(2, 2, 1, '上海嘉定氢能停车场', 'A-002', '已交车-客户运营中', 'admin', NOW(), 'admin', NOW(), 0),
(3, 3, 1, '上海嘉定氢能停车场', 'B-001', '已交车-客户运营中', 'admin', NOW(), 'admin', NOW(), 0),
(4, 4, 3, '佛山南海停车场', 'C-001', '已交车-客户运营中', 'admin', NOW(), 'admin', NOW(), 0),
(5, 5, 3, '佛山南海停车场', 'C-002', '已交车-客户运营中', 'admin', NOW(), 'admin', NOW(), 0),
(6, 6, 2, '上海临港停车场', 'D-001', '待交车', 'admin', NOW(), 'admin', NOW(), 0),
(7, 7, 1, '上海嘉定氢能停车场', 'A-003', '库存待分配', 'admin', NOW(), 'admin', NOW(), 0),
(8, 8, 2, '上海临港停车场', 'D-002', '库存待分配', 'admin', NOW(), 'admin', NOW(), 0);
-- ---------- 车辆业务信息 ----------
INSERT INTO `asset_vehicle_business` (`id`, `vehicle_id`, `customer_id`, `contract_id`, `ownership`, `delivery_date`, `monthly_rent`, `deposit`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
(1, 1, 1, 1, '公司自有', '2025-02-01', 15000.00, 30000.00, 'admin', NOW(), 'admin', NOW(), 0),
(2, 2, 1, 1, '公司自有', '2025-02-01', 15000.00, 30000.00, 'admin', NOW(), 'admin', NOW(), 0),
(3, 3, 1, 1, '公司自有', '2025-03-01', 12000.00, 25000.00, 'admin', NOW(), 'admin', NOW(), 0),
(4, 4, 2, 2, '公司自有', '2025-04-01', 12000.00, 25000.00, 'admin', NOW(), 'admin', NOW(), 0),
(5, 5, 2, 2, '公司自有', '2025-04-15', 10000.00, 20000.00, 'admin', NOW(), 'admin', NOW(), 0),
(6, 6, 3, 3, '公司自有', NULL, NULL, NULL, 'admin', NOW(), 'admin', NOW(), 0),
(7, 7, NULL, NULL, '公司自有', NULL, NULL, NULL, 'admin', NOW(), 'admin', NOW(), 0),
(8, 8, NULL, NULL, '公司自有', NULL, NULL, NULL, 'admin', NOW(), 'admin', NOW(), 0);
-- ---------- 车辆状态信息 ----------
INSERT INTO `asset_vehicle_status` (`id`, `vehicle_id`, `status`, `operate_status`, `storage_status`, `is_prepared`, `is_delivered`, `is_returned`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
(1, 1, 1, 1, 2, 1, 1, 0, 'admin', NOW(), 'admin', NOW(), 0),
(2, 2, 1, 1, 2, 1, 1, 0, 'admin', NOW(), 'admin', NOW(), 0),
(3, 3, 1, 1, 2, 1, 1, 0, 'admin', NOW(), 'admin', NOW(), 0),
(4, 4, 1, 1, 2, 1, 1, 0, 'admin', NOW(), 'admin', NOW(), 0),
(5, 5, 1, 1, 2, 1, 1, 0, 'admin', NOW(), 'admin', NOW(), 0),
(6, 6, 1, 0, 1, 1, 0, 0, 'admin', NOW(), 'admin', NOW(), 0),
(7, 7, 0, 0, 1, 0, 0, 0, 'admin', NOW(), 'admin', NOW(), 0),
(8, 8, 0, 0, 1, 0, 0, 0, 'admin', NOW(), 'admin', NOW(), 0);
-- ---------- 合同 ----------
INSERT INTO `asset_contract` (`id`, `contract_code`, `contract_type`, `project_name`, `start_date`, `end_date`, `payment_method`, `payment_cycle`, `signing_company`, `delivery_province`, `delivery_city`, `delivery_location`, `customer_id`, `customer_name`, `approval_status`, `contract_status`, `effective_time`, `hydrogen_bearer`, `hydrogen_payment_method`, `hydrogen_prepay`, `billing_method`, `main_vehicle_type`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
(1, 'HT-2025-001', 1, '上海鲜生冷链配送项目', '2025-02-01', '2027-01-31', '月付', '', '辽宁新能源汽车有限公司', '上海', '上海市', '嘉定区安亭镇', 1, '上海鲜生冷链物流有限公司', 2, 1, '2025-02-01 00:00:00', '客户', '预充值', 100000.00, '按月计费', '冷藏车', 'admin', NOW(), 'admin', NOW(), 0),
(2, 'HT-2025-002', 1, '广州顺达城配项目', '2025-04-01', '2027-03-31', '月付', '', '辽宁新能源汽车有限公司', '广东', '广州市', '天河区天河路', 2, '广州顺达运输有限公司', 2, 1, '2025-04-01 00:00:00', '公司', '月结算', NULL, '按月计费', '厢式货车', 'admin', NOW(), 'admin', NOW(), 0),
(3, 'HT-2025-003', 1, '深圳绿能示范项目', '2025-06-01', '2027-05-31', '月付', '', '辽宁新能源汽车有限公司', '广东', '深圳市', '南山区科技园', 3, '深圳绿能科技有限公司', 1, 0, NULL, '客户', '预充值', 50000.00, '按月计费', '冷藏车', 'admin', NOW(), 'admin', NOW(), 0);
-- ---------- 合同车辆 ----------
INSERT INTO `asset_contract_vehicle` (`id`, `contract_id`, `vehicle_id`, `brand`, `model`, `plate_no`, `vin`, `month_rent`, `deposit`, `vehicle_status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
(1, 1, 1, '飞驰', 'FCEV-C1', '沪A12345', 'LFCEV001202500001', 15000.00, 30000.00, 1, 'admin', NOW(), 'admin', NOW(), 0),
(2, 1, 2, '飞驰', 'FCEV-C1', '沪A12346', 'LFCEV001202500002', 15000.00, 30000.00, 1, 'admin', NOW(), 'admin', NOW(), 0),
(3, 1, 3, '东风', 'EQ5180', '沪A12347', 'LFCEV001202500003', 12000.00, 25000.00, 1, 'admin', NOW(), 'admin', NOW(), 0),
(4, 2, 4, '东风', 'EQ5180', '粤B88001', 'LFCEV001202500004', 12000.00, 25000.00, 1, 'admin', NOW(), 'admin', NOW(), 0),
(5, 2, 5, '福田', 'BJ5120', '粤B88002', 'LFCEV001202500005', 10000.00, 20000.00, 1, 'admin', NOW(), 'admin', NOW(), 0),
(6, 3, 6, '飞驰', 'FCEV-C1', '粤B88003', 'LFCEV001202500006', 15000.00, 30000.00, 0, 'admin', NOW(), 'admin', NOW(), 0);
-- ---------- 合同授权人 ----------
INSERT INTO `asset_contract_authorized` (`id`, `contract_id`, `name`, `phone`, `id_card`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
(1, 1, '刘志强', '13900001001', '310101199001011234', 'admin', NOW(), 'admin', NOW(), 0),
(2, 1, '王小明', '13900001002', '310101199205051234', 'admin', NOW(), 'admin', NOW(), 0),
(3, 2, '黄大成', '13900002001', '440103199501011234', 'admin', NOW(), 'admin', NOW(), 0);
-- ---------- 验车模板 ----------
INSERT INTO `asset_inspection_template` (`id`, `code`, `name`, `biz_type`, `vehicle_type`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
(1, 'TPL-DELIVERY-001', '交车验车模板-冷藏车', 1, '冷藏车', 1, 'admin', NOW(), 'admin', NOW(), 0),
(2, 'TPL-RETURN-001', '还车验车模板-通用', 2, NULL, 1, 'admin', NOW(), 'admin', NOW(), 0);
-- ---------- 验车模板项 ----------
INSERT INTO `asset_inspection_template_item` (`id`, `template_id`, `category`, `item_name`, `item_code`, `input_type`, `sort`, `required`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
(1, 1, '外观检查', '车身外观', 'BODY_APPEARANCE', 'radio', 1, 1, 'admin', NOW(), 'admin', NOW(), 0),
(2, 1, '外观检查', '车灯', 'LIGHTS', 'radio', 2, 1, 'admin', NOW(), 'admin', NOW(), 0),
(3, 1, '功能检查', '制动系统', 'BRAKE', 'radio', 3, 1, 'admin', NOW(), 'admin', NOW(), 0),
(4, 1, '功能检查', '氢系统', 'HYDROGEN_SYSTEM', 'radio', 4, 1, 'admin', NOW(), 'admin', NOW(), 0),
(5, 1, '功能检查', '冷机系统', 'REFRIGERATOR', 'radio', 5, 1, 'admin', NOW(), 'admin', NOW(), 0);
-- ===================== PART 2: ENERGY =====================
-- NOTE: This section runs against oneos_energy database
-- ---------- 站点配置 (加氢站) ----------
INSERT INTO `energy_station_config` (`id`, `station_id`, `auto_deduct`, `cooperation_type`, `auto_match`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
(1, 1001, 1, 1, 1, '上海嘉定加氢站', 'admin', NOW(), 'admin', NOW(), 0),
(2, 1002, 1, 1, 1, '上海临港加氢站', 'admin', NOW(), 'admin', NOW(), 0),
(3, 1003, 0, 2, 1, '佛山南海加氢站', 'admin', NOW(), 'admin', NOW(), 0);
-- ---------- 站点价格 ----------
INSERT INTO `energy_station_price` (`id`, `station_id`, `customer_id`, `cost_price`, `customer_price`, `effective_date`, `expiry_date`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
(1, 1001, 1, 25.00, 35.00, '2025-01-01', '2027-12-31', 1, 'admin', NOW(), 'admin', NOW(), 0),
(2, 1001, 2, 25.00, 38.00, '2025-01-01', '2027-12-31', 1, 'admin', NOW(), 'admin', NOW(), 0),
(3, 1002, 1, 28.00, 38.00, '2025-01-01', '2027-12-31', 1, 'admin', NOW(), 'admin', NOW(), 0),
(4, 1003, 2, 26.00, 36.00, '2025-04-01', '2027-03-31', 1, 'admin', NOW(), 'admin', NOW(), 0),
(5, 1003, 3, 26.00, 35.00, '2025-06-01', '2027-05-31', 1, 'admin', NOW(), 'admin', NOW(), 0);
-- ---------- 能源账户 ----------
INSERT INTO `energy_account` (`id`, `customer_id`, `balance`, `init_balance`, `accumulated_recharge`, `accumulated_hydrogen`, `accumulated_electric`, `accumulated_consume`, `reminder_threshold`, `account_status`, `last_recharge_date`, `version`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
(1, 1, 52350.00, 0.00, 200000.00, 147650.00, 0.00, 147650.00, 10000.00, 1, '2026-02-15', 0, 'admin', NOW(), 'admin', NOW(), 0),
(2, 2, 0.00, 0.00, 0.00, 85600.00, 0.00, 85600.00, 5000.00, 1, NULL, 0, 'admin', NOW(), 'admin', NOW(), 0),
(3, 3, 35000.00, 0.00, 50000.00, 15000.00, 0.00, 15000.00, 5000.00, 1, '2026-01-10', 0, 'admin', NOW(), 'admin', NOW(), 0);
-- ---------- 项目账户 ----------
INSERT INTO `energy_project_account` (`id`, `account_id`, `contract_id`, `project_name`, `project_balance`, `project_remit_amount`, `project_hydrogen_amount`, `project_electric_amount`, `project_consume_amount`, `reminder_threshold`, `account_status`, `version`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
(1, 1, 1, '上海鲜生冷链配送项目', 52350.00, 200000.00, 147650.00, 0.00, 147650.00, 10000.00, 1, 0, 'admin', NOW(), 'admin', NOW(), 0),
(2, 2, 2, '广州顺达城配项目', 0.00, 0.00, 85600.00, 0.00, 85600.00, 5000.00, 1, 0, 'admin', NOW(), 'admin', NOW(), 0),
(3, 3, 3, '深圳绿能示范项目', 35000.00, 50000.00, 15000.00, 0.00, 15000.00, 5000.00, 1, 0, 'admin', NOW(), 'admin', NOW(), 0);
-- ---------- 加氢记录 ----------
INSERT INTO `energy_hydrogen_record` (`id`, `station_id`, `plate_number`, `hydrogen_date`, `hydrogen_quantity`, `unit_price`, `amount`, `mileage`, `source_type`, `match_status`, `vehicle_id`, `customer_id`, `upload_batch_no`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
(1, 1001, '沪A12345', '2026-03-01', 8.50, 35.00, 297.50, 12500, 1, 1, 1, 1, 'BATCH-20260301-001', 'admin', NOW(), 'admin', NOW(), 0),
(2, 1001, '沪A12346', '2026-03-01', 10.20, 35.00, 357.00, 15800, 1, 1, 2, 1, 'BATCH-20260301-001', 'admin', NOW(), 'admin', NOW(), 0),
(3, 1001, '沪A12347', '2026-03-02', 7.80, 35.00, 273.00, 8500, 1, 1, 3, 1, 'BATCH-20260302-001', 'admin', NOW(), 'admin', NOW(), 0),
(4, 1003, '粤B88001', '2026-03-02', 9.00, 36.00, 324.00, 20800, 1, 1, 4, 2, 'BATCH-20260302-002', 'admin', NOW(), 'admin', NOW(), 0),
(5, 1003, '粤B88002', '2026-03-03', 6.50, 36.00, 234.00, 5500, 1, 1, 5, 2, 'BATCH-20260303-001', 'admin', NOW(), 'admin', NOW(), 0),
(6, 1001, '沪A12345', '2026-03-05', 9.20, 35.00, 322.00, 12900, 1, 1, 1, 1, 'BATCH-20260305-001', 'admin', NOW(), 'admin', NOW(), 0),
(7, 1001, '沪A12346', '2026-03-06', 11.00, 35.00, 385.00, 16300, 1, 1, 2, 1, 'BATCH-20260306-001', 'admin', NOW(), 'admin', NOW(), 0),
(8, 1002, '沪A12345', '2026-03-08', 8.00, 38.00, 304.00, 13400, 1, 1, 1, 1, 'BATCH-20260308-001', 'admin', NOW(), 'admin', NOW(), 0),
(9, 1003, '粤B88001', '2026-03-08', 10.50, 36.00, 378.00, 21500, 1, 1, 4, 2, 'BATCH-20260308-002', 'admin', NOW(), 'admin', NOW(), 0),
(10, 1001, '沪A12347', '2026-03-10', 8.30, 35.00, 290.50, 9200, 1, 1, 3, 1, 'BATCH-20260310-001', 'admin', NOW(), 'admin', NOW(), 0),
-- 未匹配记录
(11, 1001, '沪C99999', '2026-03-10', 5.00, 35.00, 175.00, NULL, 1, 0, NULL, NULL, 'BATCH-20260310-001', 'admin', NOW(), 'admin', NOW(), 0),
(12, 1002, '粤Z11111', '2026-03-11', 7.00, 38.00, 266.00, NULL, 2, 0, NULL, NULL, 'BATCH-20260311-001', 'admin', NOW(), 'admin', NOW(), 0);
-- ---------- 加氢明细 ----------
INSERT INTO `energy_hydrogen_detail` (`id`, `record_id`, `station_id`, `vehicle_id`, `plate_number`, `hydrogen_date`, `hydrogen_quantity`, `cost_price`, `cost_amount`, `customer_price`, `customer_amount`, `contract_id`, `customer_id`, `project_name`, `cost_bearer`, `pay_method`, `audit_status`, `deduction_status`, `settlement_status`, `bill_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
(1, 1, 1001, 1, '沪A12345', '2026-03-01', 8.50, 25.00, 212.50, 35.00, 297.50, 1, 1, '上海鲜生冷链配送项目', 1, 1, 1, 1, 1, 1, 'admin', NOW(), 'admin', NOW(), 0),
(2, 2, 1001, 2, '沪A12346', '2026-03-01', 10.20, 25.00, 255.00, 35.00, 357.00, 1, 1, '上海鲜生冷链配送项目', 1, 1, 1, 1, 1, 1, 'admin', NOW(), 'admin', NOW(), 0),
(3, 3, 1001, 3, '沪A12347', '2026-03-02', 7.80, 25.00, 195.00, 35.00, 273.00, 1, 1, '上海鲜生冷链配送项目', 1, 1, 1, 1, 1, 1, 'admin', NOW(), 'admin', NOW(), 0),
(4, 4, 1003, 4, '粤B88001', '2026-03-02', 9.00, 26.00, 234.00, 36.00, 324.00, 2, 2, '广州顺达城配项目', 2, 2, 1, 0, 0, NULL, 'admin', NOW(), 'admin', NOW(), 0),
(5, 5, 1003, 5, '粤B88002', '2026-03-03', 6.50, 26.00, 169.00, 36.00, 234.00, 2, 2, '广州顺达城配项目', 2, 2, 1, 0, 0, NULL, 'admin', NOW(), 'admin', NOW(), 0),
(6, 6, 1001, 1, '沪A12345', '2026-03-05', 9.20, 25.00, 230.00, 35.00, 322.00, 1, 1, '上海鲜生冷链配送项目', 1, 1, 1, 1, 1, 1, 'admin', NOW(), 'admin', NOW(), 0),
(7, 7, 1001, 2, '沪A12346', '2026-03-06', 11.00, 25.00, 275.00, 35.00, 385.00, 1, 1, '上海鲜生冷链配送项目', 1, 1, 1, 1, 1, 1, 'admin', NOW(), 'admin', NOW(), 0),
(8, 8, 1002, 1, '沪A12345', '2026-03-08', 8.00, 28.00, 224.00, 38.00, 304.00, 1, 1, '上海鲜生冷链配送项目', 1, 1, 0, 0, 0, NULL, 'admin', NOW(), 'admin', NOW(), 0),
(9, 9, 1003, 4, '粤B88001', '2026-03-08', 10.50, 26.00, 273.00, 36.00, 378.00, 2, 2, '广州顺达城配项目', 2, 2, 0, 0, 0, NULL, 'admin', NOW(), 'admin', NOW(), 0),
(10, 10, 1001, 3, '沪A12347', '2026-03-10', 8.30, 25.00, 207.50, 35.00, 290.50, 1, 1, '上海鲜生冷链配送项目', 1, 1, 0, 0, 0, NULL, 'admin', NOW(), 'admin', NOW(), 0);
-- ---------- 能源账单 ----------
INSERT INTO `energy_bill` (`id`, `bill_code`, `energy_type`, `customer_id`, `customer_name`, `contract_id`, `station_id`, `station_name`, `cooperation_type`, `bill_period_start`, `bill_period_end`, `receivable_amount`, `actual_amount`, `adjustment_amount`, `paid_amount`, `total_quantity`, `detail_count`, `status`, `audit_status`, `submit_status`, `payment_status`, `generate_time`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
(1, 'BILL-2026-03-001', 1, 1, '上海鲜生冷链物流有限公司', 1, 1001, '上海嘉定加氢站', 1, '2026-03-01', '2026-03-15', 1634.50, 1634.50, 0.00, 1634.50, 46.70, 5, 3, 1, 1, 1, '2026-03-16 00:00:00', 'admin', NOW(), 'admin', NOW(), 0),
(2, 'BILL-2026-03-002', 1, 2, '广州顺达运输有限公司', 2, 1003, '佛山南海加氢站', 2, '2026-03-01', '2026-03-15', 936.00, NULL, 0.00, 0.00, 26.00, 3, 1, 0, 0, 0, '2026-03-16 00:00:00', 'admin', NOW(), 'admin', NOW(), 0);
-- ---------- 账单调整 ----------
INSERT INTO `energy_bill_adjustment` (`id`, `bill_id`, `detail_id`, `adjustment_type`, `amount`, `reason`, `operator_id`, `operate_time`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
(1, 1, 1, 1, -10.00, '加氢站计量偏差修正', 1, '2026-03-15 10:00:00', 'admin', NOW(), 'admin', NOW(), 0);
-- ---------- 账户流水 ----------
INSERT INTO `energy_account_flow` (`id`, `account_id`, `project_account_id`, `flow_type`, `amount`, `balance_before`, `balance_after`, `project_balance_before`, `project_balance_after`, `biz_type`, `biz_id`, `biz_code`, `remark`, `operator_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES
(1, 1, 1, 1, 100000.00, 0.00, 100000.00, 0.00, 100000.00, 1, NULL, NULL, '首次充值', 1, 'admin', '2025-02-01 10:00:00', 'admin', '2025-02-01 10:00:00', 0),
(2, 1, 1, 1, 100000.00, 100000.00, 200000.00, 100000.00, 200000.00, 1, NULL, NULL, '二次充值', 1, 'admin', '2026-02-15 10:00:00', 'admin', '2026-02-15 10:00:00', 0),
(3, 1, 1, 2, -297.50, 200000.00, 199702.50, 200000.00, 199702.50, 2, 1, 'BILL-2026-03-001', '加氢扣费-沪A12345', NULL, 'admin', '2026-03-01 18:00:00', 'admin', '2026-03-01 18:00:00', 0),
(4, 1, 1, 2, -357.00, 199702.50, 199345.50, 199702.50, 199345.50, 2, 1, 'BILL-2026-03-001', '加氢扣费-沪A12346', NULL, 'admin', '2026-03-01 18:05:00', 'admin', '2026-03-01 18:05:00', 0),
(5, 3, 3, 1, 50000.00, 0.00, 50000.00, 0.00, 50000.00, 1, NULL, NULL, '首次充值', 1, 'admin', '2026-01-10 10:00:00', 'admin', '2026-01-10 10:00:00', 0);

221
sql/rebuild/rebuild_all.py Normal file
View File

@@ -0,0 +1,221 @@
#!/usr/bin/env python3
"""
重建 Asset 和 Energy 模块数据表并插入 Mock 数据
- Asset 表 → oneos_asset 数据库
- Energy 表 → oneos_energy 数据库
- 使用 pymysql 连接远程 MySQL规避本地 mysql 客户端 auth plugin 问题)
"""
import os
import sys
import re
try:
import pymysql
except ImportError:
print("pymysql 未安装,正在安装...")
os.system(f"{sys.executable} -m pip install pymysql")
import pymysql
# 数据库连接配置
DB_CONFIG = {
"host": "47.103.115.36",
"port": 3306,
"user": "root",
"password": "Passw0rd2026",
"charset": "utf8mb4",
}
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
def read_sql_file(filename):
"""读取 SQL 文件内容"""
filepath = os.path.join(SCRIPT_DIR, filename)
with open(filepath, "r", encoding="utf-8") as f:
return f.read()
def split_statements(sql_text):
"""
将 SQL 文本拆分为独立语句。
处理 CREATE VIEW 等多行语句,跳过注释和空行。
"""
statements = []
current = []
for line in sql_text.split("\n"):
stripped = line.strip()
# 跳过纯注释行和空行(但保留语句中间的注释)
if not stripped or stripped.startswith("--"):
if current:
# 如果当前语句已经开始,保留注释行(可能是语句内的注释)
pass
continue
current.append(line)
if stripped.endswith(";"):
stmt = "\n".join(current).strip()
if stmt:
statements.append(stmt)
current = []
# 处理没有分号结尾的最后一条语句
if current:
stmt = "\n".join(current).strip()
if stmt:
statements.append(stmt)
return statements
def execute_sql(cursor, sql_text, label=""):
"""执行一段 SQL可包含多条语句"""
statements = split_statements(sql_text)
success = 0
errors = 0
for i, stmt in enumerate(statements, 1):
# 提取语句摘要用于日志
first_line = stmt.split("\n")[0][:80]
try:
cursor.execute(stmt)
success += 1
except pymysql.err.OperationalError as e:
code = e.args[0]
# 1051: Unknown table (DROP 不存在的表) - 忽略
if code == 1051:
success += 1
else:
errors += 1
print(f" ❌ [{label}] 语句 {i} 失败: {e}")
print(f" SQL: {first_line}...")
except Exception as e:
errors += 1
print(f" ❌ [{label}] 语句 {i} 失败: {e}")
print(f" SQL: {first_line}...")
return success, errors
def main():
print("=" * 60)
print("ONE-OS 数据表重建工具")
print("=" * 60)
# 读取 SQL 文件
print("\n📄 读取 SQL 文件...")
asset_ddl = read_sql_file("asset_ddl.sql")
energy_ddl = read_sql_file("energy_ddl.sql")
mock_data = read_sql_file("mock_data.sql")
# 拆分 mock_data 为 asset 和 energy 部分
parts = mock_data.split("-- ===================== PART 2: ENERGY =====================")
if len(parts) != 2:
print("❌ mock_data.sql 格式错误:找不到 PART 2 分隔符")
sys.exit(1)
asset_mock = parts[0]
energy_mock = parts[1]
# 从 asset_mock 中去掉文件头注释和 PART 1 标记
# 保留实际的 INSERT 语句
total_success = 0
total_errors = 0
# ========== 1. 处理 Asset 数据库 ==========
print("\n" + "=" * 60)
print("🔧 [1/3] 重建 oneos_asset 数据库表...")
print("=" * 60)
conn_asset = pymysql.connect(**DB_CONFIG, database="oneos_asset")
conn_asset.autocommit(True)
cursor_asset = conn_asset.cursor()
# 创建 Asset 表
print("\n📋 执行 Asset DDL29张表 + 1个视图...")
s, e = execute_sql(cursor_asset, asset_ddl, "Asset DDL")
total_success += s
total_errors += e
print(f" ✅ Asset DDL: {s} 成功, {e} 失败")
# 插入 Asset Mock 数据
print("\n📋 插入 Asset Mock 数据...")
s, e = execute_sql(cursor_asset, asset_mock, "Asset Mock")
total_success += s
total_errors += e
print(f" ✅ Asset Mock: {s} 成功, {e} 失败")
cursor_asset.close()
conn_asset.close()
# ========== 2. 处理 Energy 数据库 ==========
print("\n" + "=" * 60)
print("🔧 [2/3] 重建 oneos_energy 数据库表...")
print("=" * 60)
# 先确保 oneos_energy 数据库存在
conn_init = pymysql.connect(**DB_CONFIG)
conn_init.autocommit(True)
cursor_init = conn_init.cursor()
cursor_init.execute("CREATE DATABASE IF NOT EXISTS `oneos_energy` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci")
cursor_init.close()
conn_init.close()
conn_energy = pymysql.connect(**DB_CONFIG, database="oneos_energy")
conn_energy.autocommit(True)
cursor_energy = conn_energy.cursor()
# 创建 Energy 表
print("\n📋 执行 Energy DDL9张表...")
s, e = execute_sql(cursor_energy, energy_ddl, "Energy DDL")
total_success += s
total_errors += e
print(f" ✅ Energy DDL: {s} 成功, {e} 失败")
# 插入 Energy Mock 数据
print("\n📋 插入 Energy Mock 数据...")
s, e = execute_sql(cursor_energy, energy_mock, "Energy Mock")
total_success += s
total_errors += e
print(f" ✅ Energy Mock: {s} 成功, {e} 失败")
cursor_energy.close()
conn_energy.close()
# ========== 3. 验证 ==========
print("\n" + "=" * 60)
print("🔍 [3/3] 验证表结构和数据...")
print("=" * 60)
# 验证 Asset
conn_v = pymysql.connect(**DB_CONFIG, database="oneos_asset")
cursor_v = conn_v.cursor()
cursor_v.execute("SELECT TABLE_NAME, TABLE_ROWS FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'oneos_asset' AND TABLE_TYPE = 'BASE TABLE' ORDER BY TABLE_NAME")
asset_tables = cursor_v.fetchall()
print(f"\n📊 oneos_asset 数据库: {len(asset_tables)} 张表")
for table_name, row_count in asset_tables:
cursor_v.execute(f"SELECT COUNT(*) FROM `{table_name}`")
actual_count = cursor_v.fetchone()[0]
print(f" {table_name}: {actual_count}")
cursor_v.close()
conn_v.close()
# 验证 Energy
conn_v2 = pymysql.connect(**DB_CONFIG, database="oneos_energy")
cursor_v2 = conn_v2.cursor()
cursor_v2.execute("SELECT TABLE_NAME, TABLE_ROWS FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'oneos_energy' AND TABLE_TYPE = 'BASE TABLE' ORDER BY TABLE_NAME")
energy_tables = cursor_v2.fetchall()
print(f"\n📊 oneos_energy 数据库: {len(energy_tables)} 张表")
for table_name, row_count in energy_tables:
cursor_v2.execute(f"SELECT COUNT(*) FROM `{table_name}`")
actual_count = cursor_v2.fetchone()[0]
print(f" {table_name}: {actual_count}")
cursor_v2.close()
conn_v2.close()
# ========== 总结 ==========
print("\n" + "=" * 60)
print(f"🎉 完成! 总计: {total_success} 成功, {total_errors} 失败")
print("=" * 60)
if total_errors > 0:
sys.exit(1)
if __name__ == "__main__":
main()