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

View File

@@ -0,0 +1,62 @@
-- ==========================================
-- 2026-03-16 Energy 模块优化
-- 新增加氢站基础信息表asset 模块)
-- 去掉 energy_station_config 表
-- ==========================================
-- ----------------------------
-- 1. 在 asset 模块创建加氢站表
-- ----------------------------
DROP TABLE IF EXISTS `asset_hydrogen_station`;
CREATE TABLE `asset_hydrogen_station` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(100) NOT NULL COMMENT '站点名称',
`short_name` varchar(50) DEFAULT NULL COMMENT '简称',
`station_no` varchar(50) DEFAULT NULL COMMENT '站点编码',
`city` varchar(50) DEFAULT NULL COMMENT '所属城市',
`address` varchar(255) DEFAULT NULL COMMENT '站点地址',
`longitude` varchar(50) DEFAULT NULL COMMENT '经度',
`latitude` varchar(50) DEFAULT NULL COMMENT '纬度',
`contact` varchar(50) DEFAULT NULL COMMENT '联系人',
`phone` varchar(20) DEFAULT NULL COMMENT '联系电话',
`station_type` tinyint DEFAULT NULL COMMENT '站点类型(字典)',
`cooperation_type` tinyint NOT NULL DEFAULT 0 COMMENT '合作类型0=合作 1=非合作)',
`auto_deduct` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否自动扣款1=是 0=否)',
`booking_required` tinyint(1) DEFAULT 0 COMMENT '是否需要预约1=是 0=否)',
`station_status` tinyint NOT NULL DEFAULT 1 COMMENT '站点状态0=停用 1=启用)',
`start_business` time DEFAULT NULL COMMENT '开始营业时间',
`end_business` time DEFAULT NULL COMMENT '结束营业时间',
`billing_method` tinyint DEFAULT NULL COMMENT '结算方式(字典)',
`cooperation_term` date 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 '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_station_no` (`station_no`),
KEY `idx_name` (`name`),
KEY `idx_city` (`city`),
KEY `idx_station_status` (`station_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='加氢站基础信息';
-- ----------------------------
-- 2. 删除 energy_station_config 表
-- ----------------------------
DROP TABLE IF EXISTS `energy_station_config`;
-- ----------------------------
-- 3. 插入测试数据
-- ----------------------------
INSERT INTO `asset_hydrogen_station`
(`id`, `name`, `short_name`, `station_no`, `city`, `address`, `contact`, `phone`,
`cooperation_type`, `auto_deduct`, `station_status`, `start_business`, `end_business`, `remark`)
VALUES
(1, '嘉兴嘉燃经开站', '经开站', 'JX001', '嘉兴', '浙江省嘉兴市经济开发区岗山路', '张三', '13800138000',
0, 1, 1, '08:00:00', '18:00:00', '合作站点,自动扣款'),
(2, '上海临港加氢站', '临港站', 'SH001', '上海', '上海市浦东新区临港新城', '李四', '13900139000',
0, 1, 1, '07:00:00', '19:00:00', '合作站点,自动扣款'),
(3, '杭州萧山加氢站', '萧山站', 'HZ001', '杭州', '浙江省杭州市萧山区', '王五', '13700137000',
1, 0, 1, '08:30:00', '17:30:00', '非合作站点,审核后扣款');

View File

@@ -0,0 +1,64 @@
#!/usr/bin/env python3
"""
检查数据库表结构
"""
import pymysql
def check_tables(host, port, user, password, database):
"""检查表是否存在及字段"""
try:
connection = pymysql.connect(
host=host,
port=port,
user=user,
password=password,
database=database,
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor
)
print(f"✓ 连接数据库成功: {database}")
tables = [
'asset_parking',
'asset_customer',
'asset_vehicle_base',
'asset_vehicle_business',
'asset_contract'
]
with connection.cursor() as cursor:
for table in tables:
# 检查表是否存在
cursor.execute(f"SHOW TABLES LIKE '{table}'")
result = cursor.fetchone()
if result:
print(f"\n✓ 表 {table} 存在")
# 显示字段
cursor.execute(f"DESCRIBE {table}")
columns = cursor.fetchall()
print(f" 字段: {', '.join([col['Field'] for col in columns[:10]])}")
if len(columns) > 10:
print(f" ... 共 {len(columns)} 个字段")
else:
print(f"\n✗ 表 {table} 不存在")
connection.close()
except Exception as e:
print(f"✗ 错误: {e}")
if __name__ == '__main__':
DB_HOST = '47.103.115.36'
DB_PORT = 3306
DB_USER = 'root'
DB_PASSWORD = 'Passw0rd2026'
print("检查 oneos_asset 数据库:")
check_tables(DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, 'oneos_asset')
print("\n" + "="*60)
print("检查 oneos_energy 数据库:")
check_tables(DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, 'oneos_energy')

View File

@@ -0,0 +1,282 @@
-- ==========================================
-- 能源账单模块建表 SQL331 一期9 张表)
-- ==========================================
-- ----------------------------
-- 1. energy_hydrogen_record — 加氢原始记录
-- ----------------------------
DROP TABLE IF EXISTS `energy_hydrogen_record`;
CREATE TABLE `energy_hydrogen_record` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`station_id` bigint NOT NULL COMMENT '加氢站 ID关联 asset 模块)',
`plate_number` varchar(20) NOT NULL COMMENT '车牌号',
`hydrogen_date` date NOT NULL COMMENT '加氢日期',
`hydrogen_quantity` decimal(10,2) NOT NULL COMMENT '加氢量KG',
`unit_price` decimal(10,2) NOT NULL COMMENT '单价(元/KG',
`amount` decimal(12,2) NOT NULL COMMENT '金额(以数据源原始值为准,不重新计算)',
`mileage` decimal(12,2) DEFAULT NULL COMMENT '里程数',
`source_type` tinyint NOT NULL COMMENT '数据来源1=Excel 2=Web 3=API 4=OCR',
`match_status` tinyint NOT NULL DEFAULT 0 COMMENT '匹配状态0=未匹配 1=已匹配 2=无法匹配)',
`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 '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`),
KEY `idx_station_id` (`station_id`),
KEY `idx_plate_number` (`plate_number`),
KEY `idx_hydrogen_date` (`hydrogen_date`),
KEY `idx_match_status` (`match_status`),
KEY `idx_upload_batch_no` (`upload_batch_no`)
) 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 COMMENT '主键',
`record_id` bigint NOT NULL COMMENT '关联原始记录 ID',
`station_id` bigint NOT NULL COMMENT '加氢站 ID',
`vehicle_id` bigint NOT NULL COMMENT '车辆 ID',
`plate_number` varchar(20) NOT NULL COMMENT '车牌号(冗余)',
`hydrogen_date` date NOT NULL COMMENT '加氢日期',
`hydrogen_quantity` decimal(10,2) NOT NULL COMMENT '加氢量KG',
`cost_price` decimal(10,2) NOT NULL COMMENT '成本单价(元/KG',
`cost_amount` decimal(12,2) NOT NULL COMMENT '成本金额',
`customer_price` decimal(10,2) NOT NULL COMMENT '对客单价(元/KG',
`customer_amount` decimal(12,2) NOT NULL COMMENT '对客金额',
`contract_id` bigint NOT NULL COMMENT '合同 ID',
`customer_id` bigint NOT NULL COMMENT '客户 ID',
`project_name` varchar(100) DEFAULT NULL COMMENT '项目名称(冗余)',
`cost_bearer` tinyint NOT NULL COMMENT '费用承担方1=客户承担 2=羚牛承担 3=自行结算)',
`pay_method` tinyint NOT NULL COMMENT '支付方式1=预充值 2=月结算)',
`audit_status` tinyint NOT NULL DEFAULT 0 COMMENT '审核状态0=待审核 1=已审核 2=已驳回)',
`audit_remark` varchar(500) DEFAULT NULL COMMENT '审核备注',
`deduction_status` tinyint NOT NULL DEFAULT 0 COMMENT '扣款状态0=未扣款 1=已扣款)',
`settlement_status` tinyint NOT NULL DEFAULT 0 COMMENT '结算状态0=未结算 1=已结算)',
`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 '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`),
KEY `idx_record_id` (`record_id`),
KEY `idx_station_id` (`station_id`),
KEY `idx_vehicle_id` (`vehicle_id`),
KEY `idx_customer_id` (`customer_id`),
KEY `idx_contract_id` (`contract_id`),
KEY `idx_bill_id` (`bill_id`),
KEY `idx_audit_status` (`audit_status`)
) 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 COMMENT '主键',
`bill_code` varchar(32) NOT NULL COMMENT '账单编号(唯一)',
`energy_type` tinyint NOT NULL COMMENT '能源类型1=氢 2=电 3=ETC',
`customer_id` bigint NOT NULL COMMENT '客户 ID',
`customer_name` varchar(100) DEFAULT NULL COMMENT '客户名称(冗余)',
`contract_id` bigint NOT NULL COMMENT '合同 ID',
`station_id` bigint DEFAULT NULL COMMENT '加氢站 ID',
`station_name` varchar(100) DEFAULT NULL COMMENT '站点名称(冗余)',
`bill_period_start` date NOT NULL COMMENT '账单周期开始日期',
`bill_period_end` date NOT NULL COMMENT '账单周期结束日期',
`receivable_amount` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '应收总额',
`actual_amount` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '实收总额receivable_amount + adjustment_amount',
`adjustment_amount` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '调整总额(可正可负)',
`paid_amount` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '已收金额',
`total_quantity` decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '总加氢量/总度数',
`detail_count` int NOT NULL DEFAULT 0 COMMENT '明细条数',
`status` tinyint NOT NULL DEFAULT 0 COMMENT '账单状态0=草稿 1=已生成 2=已作废)',
`audit_status` tinyint NOT NULL DEFAULT 0 COMMENT '审核状态0=待审核 1=已审核 2=已驳回)',
`submit_status` tinyint NOT NULL DEFAULT 0 COMMENT '提交状态0=未提交 1=已提交 2=已驳回)',
`payment_status` tinyint NOT NULL DEFAULT 0 COMMENT '支付状态0=未支付 1=部分支付 2=已结清)',
`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 '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_bill_code` (`bill_code`),
KEY `idx_customer_id` (`customer_id`),
KEY `idx_contract_id` (`contract_id`),
KEY `idx_station_id` (`station_id`),
KEY `idx_bill_period` (`bill_period_start`, `bill_period_end`),
KEY `idx_status` (`status`),
KEY `idx_audit_status` (`audit_status`)
) 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 COMMENT '主键',
`bill_id` bigint NOT NULL COMMENT '关联账单 ID',
`detail_id` bigint DEFAULT NULL COMMENT '关联明细 ID可选',
`adjustment_type` tinyint NOT NULL COMMENT '调整类型1=增加 2=减少)',
`amount` decimal(12,2) NOT NULL COMMENT '调整金额(正数)',
`reason` varchar(500) DEFAULT NULL COMMENT '调整原因',
`attachment_urls` varchar(1000) DEFAULT NULL COMMENT '附件 URLJSON 数组)',
`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 '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`),
KEY `idx_bill_id` (`bill_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='账单调整记录';
-- ----------------------------
-- 5. energy_account — 客户能源总账户
-- ----------------------------
DROP TABLE IF EXISTS `energy_account`;
CREATE TABLE `energy_account` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`customer_id` bigint NOT NULL COMMENT '客户 ID唯一',
`balance` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '当前余额(可为负数)',
`init_balance` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '初始余额',
`accumulated_recharge` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '累计充值',
`accumulated_hydrogen` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '累计氢费',
`accumulated_electric` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '累计电费',
`accumulated_consume` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '累计消费(所有能源类型合计)',
`reminder_threshold` decimal(14,2) DEFAULT NULL COMMENT '提醒阈值(低于此值触发预警)',
`account_status` tinyint NOT NULL DEFAULT 0 COMMENT '账户状态0=正常 1=预警 2=欠费)',
`last_recharge_date` date DEFAULT NULL COMMENT '最后充值日期',
`version` int NOT NULL 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 '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_customer_id` (`customer_id`),
KEY `idx_account_status` (`account_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='客户能源总账户';
-- ----------------------------
-- 6. energy_project_account — 项目账户
-- ----------------------------
DROP TABLE IF EXISTS `energy_project_account`;
CREATE TABLE `energy_project_account` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`account_id` bigint NOT NULL COMMENT '关联总账户 ID',
`contract_id` bigint NOT NULL COMMENT '合同 ID唯一',
`project_name` varchar(100) DEFAULT NULL COMMENT '项目名称',
`project_balance` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '项目余额',
`project_remit_amount` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '累计划账金额',
`project_hydrogen_amount` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '累计氢费',
`project_electric_amount` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '累计电费',
`project_consume_amount` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '累计消费',
`reminder_threshold` decimal(14,2) DEFAULT NULL COMMENT '提醒阈值',
`account_status` tinyint NOT NULL DEFAULT 0 COMMENT '账户状态0=正常 1=预警 2=欠费)',
`version` int NOT NULL 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 '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_contract_id` (`contract_id`),
KEY `idx_account_id` (`account_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='项目账户';
-- ----------------------------
-- 7. energy_account_flow — 统一余额变更流水
-- ----------------------------
DROP TABLE IF EXISTS `energy_account_flow`;
CREATE TABLE `energy_account_flow` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`account_id` bigint NOT NULL COMMENT '关联总账户 ID',
`project_account_id` bigint DEFAULT NULL COMMENT '关联项目账户 ID可选',
`flow_type` tinyint NOT NULL COMMENT '流水类型1=充值 2=扣款 3=冲正 4=划账 5=退款)',
`amount` decimal(14,2) NOT NULL COMMENT '变动金额',
`balance_before` decimal(14,2) NOT NULL COMMENT '变动前余额(总账户级别)',
`balance_after` decimal(14,2) NOT NULL COMMENT '变动后余额(总账户级别)',
`project_balance_before` decimal(14,2) DEFAULT NULL COMMENT '变动前项目余额(仅项目账户操作时填写)',
`project_balance_after` decimal(14,2) DEFAULT NULL COMMENT '变动后项目余额(仅项目账户操作时填写)',
`biz_type` tinyint NOT NULL COMMENT '业务类型1=加氢扣款 2=账单结算 3=手动调整 ...',
`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 '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`),
KEY `idx_account_id` (`account_id`),
KEY `idx_project_account_id` (`project_account_id`),
KEY `idx_biz_type_biz_id` (`biz_type`, `biz_id`),
KEY `idx_create_time` (`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='统一余额变更流水';
-- ----------------------------
-- 8. energy_station_price — 加氢站客户价格
-- ----------------------------
DROP TABLE IF EXISTS `energy_station_price`;
CREATE TABLE `energy_station_price` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`station_id` bigint NOT NULL COMMENT '加氢站 ID',
`customer_id` bigint NOT NULL COMMENT '客户 ID',
`cost_price` decimal(10,2) NOT NULL COMMENT '成本价(元/KG',
`customer_price` decimal(10,2) NOT NULL COMMENT '对客价(元/KG',
`effective_date` date NOT NULL COMMENT '生效日期',
`expiry_date` date DEFAULT NULL COMMENT '失效日期(可空,空=永久生效)',
`status` tinyint NOT NULL DEFAULT 0 COMMENT '状态0=生效中 1=已失效)',
`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 '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_station_customer_date` (`station_id`, `customer_id`, `effective_date`),
KEY `idx_station_id` (`station_id`),
KEY `idx_customer_id` (`customer_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='加氢站客户价格';
-- ----------------------------
-- 9. energy_station_config — 加氢站扣款配置
-- ----------------------------
DROP TABLE IF EXISTS `energy_station_config`;
CREATE TABLE `energy_station_config` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`station_id` bigint NOT NULL COMMENT '加氢站 ID唯一每站一条记录',
`auto_deduct` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否自动扣款1=是 0=否)',
`cooperation_type` tinyint NOT NULL DEFAULT 0 COMMENT '合作类型0=合作 1=非合作)',
`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 '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_station_id` (`station_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='加氢站扣款配置';

View File

@@ -0,0 +1,432 @@
-- ==========================================
-- Energy 模块一键初始化脚本
-- 使用方式:
-- 1. 用数据库工具连接 47.103.115.36:3306 (root/Passw0rd2026)
-- 2. 直接执行本脚本(脚本内部会切换数据库)
-- ==========================================
-- ==========================================
-- 第一部分: 创建 oneos_energy 数据库 + 建表
-- ==========================================
CREATE DATABASE IF NOT EXISTS `oneos_energy` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE `oneos_energy`;
-- ----------------------------
-- 1. energy_hydrogen_record — 加氢原始记录
-- ----------------------------
DROP TABLE IF EXISTS `energy_hydrogen_record`;
CREATE TABLE `energy_hydrogen_record` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`station_id` bigint NOT NULL COMMENT '加氢站 ID关联 asset 模块)',
`plate_number` varchar(20) NOT NULL COMMENT '车牌号',
`hydrogen_date` date NOT NULL COMMENT '加氢日期',
`hydrogen_quantity` decimal(10,2) NOT NULL COMMENT '加氢量KG',
`unit_price` decimal(10,2) NOT NULL COMMENT '单价(元/KG',
`amount` decimal(12,2) NOT NULL COMMENT '金额(以数据源原始值为准,不重新计算)',
`mileage` decimal(12,2) DEFAULT NULL COMMENT '里程数',
`source_type` tinyint NOT NULL COMMENT '数据来源1=Excel 2=Web 3=API 4=OCR',
`match_status` tinyint NOT NULL DEFAULT 0 COMMENT '匹配状态0=未匹配 1=已匹配 2=无法匹配)',
`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 '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`),
KEY `idx_station_id` (`station_id`),
KEY `idx_plate_number` (`plate_number`),
KEY `idx_hydrogen_date` (`hydrogen_date`),
KEY `idx_match_status` (`match_status`),
KEY `idx_upload_batch_no` (`upload_batch_no`)
) 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 COMMENT '主键',
`record_id` bigint NOT NULL COMMENT '关联原始记录 ID',
`station_id` bigint NOT NULL COMMENT '加氢站 ID',
`vehicle_id` bigint NOT NULL COMMENT '车辆 ID',
`plate_number` varchar(20) NOT NULL COMMENT '车牌号(冗余)',
`hydrogen_date` date NOT NULL COMMENT '加氢日期',
`hydrogen_quantity` decimal(10,2) NOT NULL COMMENT '加氢量KG',
`cost_price` decimal(10,2) NOT NULL COMMENT '成本单价(元/KG',
`cost_amount` decimal(12,2) NOT NULL COMMENT '成本金额',
`customer_price` decimal(10,2) NOT NULL COMMENT '对客单价(元/KG',
`customer_amount` decimal(12,2) NOT NULL COMMENT '对客金额',
`contract_id` bigint NOT NULL COMMENT '合同 ID',
`customer_id` bigint NOT NULL COMMENT '客户 ID',
`project_name` varchar(100) DEFAULT NULL COMMENT '项目名称(冗余)',
`cost_bearer` tinyint NOT NULL COMMENT '费用承担方1=客户承担 2=羚牛承担 3=自行结算)',
`pay_method` tinyint NOT NULL COMMENT '支付方式1=预充值 2=月结算)',
`audit_status` tinyint NOT NULL DEFAULT 0 COMMENT '审核状态0=待审核 1=已审核 2=已驳回)',
`audit_remark` varchar(500) DEFAULT NULL COMMENT '审核备注',
`deduction_status` tinyint NOT NULL DEFAULT 0 COMMENT '扣款状态0=未扣款 1=已扣款)',
`settlement_status` tinyint NOT NULL DEFAULT 0 COMMENT '结算状态0=未结算 1=已结算)',
`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 '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`),
KEY `idx_record_id` (`record_id`),
KEY `idx_station_id` (`station_id`),
KEY `idx_vehicle_id` (`vehicle_id`),
KEY `idx_customer_id` (`customer_id`),
KEY `idx_contract_id` (`contract_id`),
KEY `idx_bill_id` (`bill_id`),
KEY `idx_audit_status` (`audit_status`)
) 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 COMMENT '主键',
`bill_code` varchar(32) NOT NULL COMMENT '账单编号(唯一)',
`energy_type` tinyint NOT NULL COMMENT '能源类型1=氢 2=电 3=ETC',
`customer_id` bigint NOT NULL COMMENT '客户 ID',
`customer_name` varchar(100) DEFAULT NULL COMMENT '客户名称(冗余)',
`contract_id` bigint NOT NULL COMMENT '合同 ID',
`station_id` bigint DEFAULT NULL COMMENT '加氢站 ID',
`station_name` varchar(100) DEFAULT NULL COMMENT '站点名称(冗余)',
`cooperation_type` tinyint DEFAULT NULL COMMENT '合作模式1=预充值 2=月结算)',
`bill_period_start` date NOT NULL COMMENT '账单周期开始日期',
`bill_period_end` date NOT NULL COMMENT '账单周期结束日期',
`receivable_amount` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '应收总额',
`actual_amount` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '实收总额receivable_amount + adjustment_amount',
`adjustment_amount` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '调整总额(可正可负)',
`paid_amount` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '已收金额',
`total_quantity` decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '总加氢量/总度数',
`detail_count` int NOT NULL DEFAULT 0 COMMENT '明细条数',
`status` tinyint NOT NULL DEFAULT 0 COMMENT '账单状态0=草稿 1=已生成 2=已作废)',
`audit_status` tinyint NOT NULL DEFAULT 0 COMMENT '审核状态0=待审核 1=已审核 2=已驳回)',
`submit_status` tinyint NOT NULL DEFAULT 0 COMMENT '提交状态0=未提交 1=已提交 2=已驳回)',
`payment_status` tinyint NOT NULL DEFAULT 0 COMMENT '支付状态0=未支付 1=部分支付 2=已结清)',
`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 '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_bill_code` (`bill_code`),
KEY `idx_customer_id` (`customer_id`),
KEY `idx_contract_id` (`contract_id`),
KEY `idx_station_id` (`station_id`),
KEY `idx_bill_period` (`bill_period_start`, `bill_period_end`),
KEY `idx_status` (`status`),
KEY `idx_audit_status` (`audit_status`)
) 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 COMMENT '主键',
`bill_id` bigint NOT NULL COMMENT '关联账单 ID',
`detail_id` bigint DEFAULT NULL COMMENT '关联明细 ID可选',
`adjustment_type` tinyint NOT NULL COMMENT '调整类型1=增加 2=减少)',
`amount` decimal(12,2) NOT NULL COMMENT '调整金额(正数)',
`reason` varchar(500) DEFAULT NULL COMMENT '调整原因',
`attachment_urls` varchar(1000) DEFAULT NULL COMMENT '附件 URLJSON 数组)',
`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 '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`),
KEY `idx_bill_id` (`bill_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='账单调整记录';
-- ----------------------------
-- 5. energy_account — 客户能源总账户
-- ----------------------------
DROP TABLE IF EXISTS `energy_account`;
CREATE TABLE `energy_account` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`customer_id` bigint NOT NULL COMMENT '客户 ID唯一',
`balance` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '当前余额(可为负数)',
`init_balance` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '初始余额',
`accumulated_recharge` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '累计充值',
`accumulated_hydrogen` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '累计氢费',
`accumulated_electric` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '累计电费',
`accumulated_consume` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '累计消费(所有能源类型合计)',
`reminder_threshold` decimal(14,2) DEFAULT NULL COMMENT '提醒阈值(低于此值触发预警)',
`account_status` tinyint NOT NULL DEFAULT 0 COMMENT '账户状态0=正常 1=预警 2=欠费)',
`last_recharge_date` date DEFAULT NULL COMMENT '最后充值日期',
`version` int NOT NULL 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 '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_customer_id` (`customer_id`),
KEY `idx_account_status` (`account_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='客户能源总账户';
-- ----------------------------
-- 6. energy_project_account — 项目账户
-- ----------------------------
DROP TABLE IF EXISTS `energy_project_account`;
CREATE TABLE `energy_project_account` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`account_id` bigint NOT NULL COMMENT '关联总账户 ID',
`contract_id` bigint NOT NULL COMMENT '合同 ID唯一',
`project_name` varchar(100) DEFAULT NULL COMMENT '项目名称',
`project_balance` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '项目余额',
`project_remit_amount` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '累计划账金额',
`project_hydrogen_amount` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '累计氢费',
`project_electric_amount` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '累计电费',
`project_consume_amount` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '累计消费',
`reminder_threshold` decimal(14,2) DEFAULT NULL COMMENT '提醒阈值',
`account_status` tinyint NOT NULL DEFAULT 0 COMMENT '账户状态0=正常 1=预警 2=欠费)',
`version` int NOT NULL 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 '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_contract_id` (`contract_id`),
KEY `idx_account_id` (`account_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='项目账户';
-- ----------------------------
-- 7. energy_account_flow — 统一余额变更流水
-- ----------------------------
DROP TABLE IF EXISTS `energy_account_flow`;
CREATE TABLE `energy_account_flow` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`account_id` bigint NOT NULL COMMENT '关联总账户 ID',
`project_account_id` bigint DEFAULT NULL COMMENT '关联项目账户 ID可选',
`flow_type` tinyint NOT NULL COMMENT '流水类型1=充值 2=扣款 3=冲正 4=划账 5=退款)',
`amount` decimal(14,2) NOT NULL COMMENT '变动金额',
`balance_before` decimal(14,2) NOT NULL COMMENT '变动前余额(总账户级别)',
`balance_after` decimal(14,2) NOT NULL COMMENT '变动后余额(总账户级别)',
`project_balance_before` decimal(14,2) DEFAULT NULL COMMENT '变动前项目余额(仅项目账户操作时填写)',
`project_balance_after` decimal(14,2) DEFAULT NULL COMMENT '变动后项目余额(仅项目账户操作时填写)',
`biz_type` tinyint NOT NULL COMMENT '业务类型1=加氢扣款 2=账单结算 3=手动调整 ...',
`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 '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`),
KEY `idx_account_id` (`account_id`),
KEY `idx_project_account_id` (`project_account_id`),
KEY `idx_biz_type_biz_id` (`biz_type`, `biz_id`),
KEY `idx_create_time` (`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='统一余额变更流水';
-- ----------------------------
-- 8. energy_station_price — 加氢站客户价格
-- ----------------------------
DROP TABLE IF EXISTS `energy_station_price`;
CREATE TABLE `energy_station_price` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`station_id` bigint NOT NULL COMMENT '加氢站 ID',
`customer_id` bigint NOT NULL COMMENT '客户 ID',
`cost_price` decimal(10,2) NOT NULL COMMENT '成本价(元/KG',
`customer_price` decimal(10,2) NOT NULL COMMENT '对客价(元/KG',
`effective_date` date NOT NULL COMMENT '生效日期',
`expiry_date` date DEFAULT NULL COMMENT '失效日期(可空,空=永久生效)',
`status` tinyint NOT NULL DEFAULT 0 COMMENT '状态0=生效中 1=已失效)',
`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 '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_station_customer_date` (`station_id`, `customer_id`, `effective_date`),
KEY `idx_station_id` (`station_id`),
KEY `idx_customer_id` (`customer_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='加氢站客户价格';
-- ----------------------------
-- 9. energy_station_config — 加氢站扣款配置
-- ----------------------------
DROP TABLE IF EXISTS `energy_station_config`;
CREATE TABLE `energy_station_config` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`station_id` bigint NOT NULL COMMENT '加氢站 ID唯一每站一条记录',
`auto_deduct` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否自动扣款1=是 0=否)',
`cooperation_type` tinyint NOT NULL DEFAULT 0 COMMENT '合作类型0=合作 1=非合作)',
`auto_match` tinyint DEFAULT 1 COMMENT '自动匹配开关0=关闭 1=开启)',
`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 '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_station_id` (`station_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='加氢站扣款配置';
-- ==========================================
-- 第二部分: 菜单权限(在 oneos_system 数据库执行)
-- ==========================================
USE `oneos_system`;
-- 一级菜单: 能源管理目录type=1
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5200, '能源管理', '', 1, 50, 0, '/energy', 'ep:lightning', NULL, NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
-- 二级菜单type=2
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5201, '加氢记录管理', 'energy:hydrogen-record:query', 2, 1, 5200, 'hydrogen-record', 'ep:document', 'energy/hydrogen-record/index', 'EnergyHydrogenRecord', 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5202, '加氢明细管理', 'energy:hydrogen-detail:query', 2, 2, 5200, 'hydrogen-detail', 'ep:list', 'energy/hydrogen-detail/index', 'EnergyHydrogenDetail', 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5203, '能源账单管理', 'energy:bill:query', 2, 3, 5200, 'bill', 'ep:tickets', 'energy/bill/index', 'EnergyBill', 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5204, '能源账户管理', 'energy:account:query', 2, 4, 5200, 'account', 'ep:wallet', 'energy/account/index', 'EnergyAccount', 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5205, '价格管理', 'energy:station-price:query', 2, 5, 5200, 'station-price', 'ep:price-tag', 'energy/station-price/index', 'EnergyStationPrice', 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5206, '加氢站配置', 'energy:station-config:query', 2, 6, 5200, 'station-config', 'ep:setting', 'energy/station-config/index', 'EnergyStationConfig', 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
-- 三级按钮/权限type=3
-- 加氢记录管理parent=5201
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5210, '加氢记录查询', 'energy:hydrogen-record:query', 3, 1, 5201, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5211, '加氢记录创建', 'energy:hydrogen-record:create', 3, 2, 5201, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5212, '加氢记录更新', 'energy:hydrogen-record:update', 3, 3, 5201, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5213, '加氢记录删除', 'energy:hydrogen-record:delete', 3, 4, 5201, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5214, '加氢记录导出', 'energy:hydrogen-record:export', 3, 5, 5201, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5215, '加氢记录导入', 'energy:hydrogen-record:import', 3, 6, 5201, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
-- 加氢明细管理parent=5202
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5220, '加氢明细查询', 'energy:hydrogen-detail:query', 3, 1, 5202, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5221, '加氢明细创建', 'energy:hydrogen-detail:create', 3, 2, 5202, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5222, '加氢明细更新', 'energy:hydrogen-detail:update', 3, 3, 5202, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5223, '加氢明细删除', 'energy:hydrogen-detail:delete', 3, 4, 5202, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5224, '加氢明细导出', 'energy:hydrogen-detail:export', 3, 5, 5202, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5225, '加氢明细审核', 'energy:hydrogen-detail:audit', 3, 6, 5202, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
-- 能源账单管理parent=5203
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5230, '能源账单查询', 'energy:bill:query', 3, 1, 5203, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5231, '能源账单创建', 'energy:bill:create', 3, 2, 5203, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5232, '能源账单更新', 'energy:bill:update', 3, 3, 5203, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5233, '能源账单删除', 'energy:bill:delete', 3, 4, 5203, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5234, '能源账单导出', 'energy:bill:export', 3, 5, 5203, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5235, '能源账单审核', 'energy:bill:audit', 3, 6, 5203, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
-- 能源账户管理parent=5204
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5240, '能源账户查询', 'energy:account:query', 3, 1, 5204, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5241, '能源账户创建', 'energy:account:create', 3, 2, 5204, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5242, '能源账户更新', 'energy:account:update', 3, 3, 5204, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5243, '能源账户删除', 'energy:account:delete', 3, 4, 5204, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5244, '能源账户导出', 'energy:account:export', 3, 5, 5204, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5245, '能源账户充值', 'energy:account:recharge', 3, 6, 5204, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
-- 价格管理parent=5205
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5250, '价格查询', 'energy:station-price:query', 3, 1, 5205, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5251, '价格创建', 'energy:station-price:create', 3, 2, 5205, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5252, '价格更新', 'energy:station-price:update', 3, 3, 5205, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5253, '价格删除', 'energy:station-price:delete', 3, 4, 5205, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5254, '价格导出', 'energy:station-price:export', 3, 5, 5205, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
-- 加氢站配置parent=5206
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5260, '加氢站配置查询', 'energy:station-config:query', 3, 1, 5206, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5261, '加氢站配置创建', 'energy:station-config:create', 3, 2, 5206, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5262, '加氢站配置更新', 'energy:station-config:update', 3, 3, 5206, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5263, '加氢站配置删除', 'energy:station-config:delete', 3, 4, 5206, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5264, '加氢站配置导出', 'energy:station-config:export', 3, 5, 5206, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');

153
sql/energy/energy_menu.sql Normal file
View File

@@ -0,0 +1,153 @@
-- ==========================================
-- 能源管理模块菜单权限 SQL
-- 生成日期: 2026-03-15
-- 说明: ID 从 5100 起步,避免与现有菜单冲突
-- parent_id=0 表示顶级目录
-- type: 1=目录, 2=菜单, 3=按钮
-- status: 0=开启
-- ==========================================
-- ----------------------------
-- 一级菜单: 能源管理目录type=1
-- ----------------------------
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5100, '能源管理', '', 1, 50, 0, '/energy', 'ep:lightning', NULL, NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
-- ----------------------------
-- 二级菜单type=2
-- 5101: 加氢记录管理
-- 5102: 加氢明细管理
-- 5103: 能源账单管理
-- 5104: 能源账户管理
-- 5105: 价格管理
-- 5106: 加氢站配置
-- ----------------------------
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5101, '加氢记录管理', 'energy:hydrogen-record:query', 2, 1, 5100, 'hydrogen-record', 'ep:document', 'energy/hydrogen-record/index', 'EnergyHydrogenRecord', 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5102, '加氢明细管理', 'energy:hydrogen-detail:query', 2, 2, 5100, 'hydrogen-detail', 'ep:list', 'energy/hydrogen-detail/index', 'EnergyHydrogenDetail', 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5103, '能源账单管理', 'energy:bill:query', 2, 3, 5100, 'bill', 'ep:tickets', 'energy/bill/index', 'EnergyBill', 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5104, '能源账户管理', 'energy:account:query', 2, 4, 5100, 'account', 'ep:wallet', 'energy/account/index', 'EnergyAccount', 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5105, '价格管理', 'energy:station-price:query', 2, 5, 5100, 'station-price', 'ep:price-tag', 'energy/station-price/index', 'EnergyStationPrice', 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5106, '加氢站配置', 'energy:station-config:query', 2, 6, 5100, 'station-config', 'ep:setting', 'energy/station-config/index', 'EnergyStationConfig', 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
-- ----------------------------
-- 三级按钮/权限type=3
-- ----------------------------
-- 加氢记录管理parent=5101: 查询、创建、更新、删除、导出、导入
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5110, '加氢记录查询', 'energy:hydrogen-record:query', 3, 1, 5101, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5111, '加氢记录创建', 'energy:hydrogen-record:create', 3, 2, 5101, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5112, '加氢记录更新', 'energy:hydrogen-record:update', 3, 3, 5101, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5113, '加氢记录删除', 'energy:hydrogen-record:delete', 3, 4, 5101, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5114, '加氢记录导出', 'energy:hydrogen-record:export', 3, 5, 5101, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5115, '加氢记录导入', 'energy:hydrogen-record:import', 3, 6, 5101, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
-- 加氢明细管理parent=5102: 查询、创建、更新、删除、导出、审核
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5120, '加氢明细查询', 'energy:hydrogen-detail:query', 3, 1, 5102, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5121, '加氢明细创建', 'energy:hydrogen-detail:create', 3, 2, 5102, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5122, '加氢明细更新', 'energy:hydrogen-detail:update', 3, 3, 5102, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5123, '加氢明细删除', 'energy:hydrogen-detail:delete', 3, 4, 5102, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5124, '加氢明细导出', 'energy:hydrogen-detail:export', 3, 5, 5102, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5125, '加氢明细审核', 'energy:hydrogen-detail:audit', 3, 6, 5102, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
-- 能源账单管理parent=5103: 查询、创建、更新、删除、导出、审核
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5130, '能源账单查询', 'energy:bill:query', 3, 1, 5103, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5131, '能源账单创建', 'energy:bill:create', 3, 2, 5103, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5132, '能源账单更新', 'energy:bill:update', 3, 3, 5103, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5133, '能源账单删除', 'energy:bill:delete', 3, 4, 5103, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5134, '能源账单导出', 'energy:bill:export', 3, 5, 5103, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5135, '能源账单审核', 'energy:bill:audit', 3, 6, 5103, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
-- 能源账户管理parent=5104: 查询、创建、更新、删除、导出、充值
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5140, '能源账户查询', 'energy:account:query', 3, 1, 5104, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5141, '能源账户创建', 'energy:account:create', 3, 2, 5104, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5142, '能源账户更新', 'energy:account:update', 3, 3, 5104, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5143, '能源账户删除', 'energy:account:delete', 3, 4, 5104, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5144, '能源账户导出', 'energy:account:export', 3, 5, 5104, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5145, '能源账户充值', 'energy:account:recharge', 3, 6, 5104, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
-- 价格管理parent=5105: 查询、创建、更新、删除、导出
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5150, '价格查询', 'energy:station-price:query', 3, 1, 5105, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5151, '价格创建', 'energy:station-price:create', 3, 2, 5105, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5152, '价格更新', 'energy:station-price:update', 3, 3, 5105, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5153, '价格删除', 'energy:station-price:delete', 3, 4, 5105, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5154, '价格导出', 'energy:station-price:export', 3, 5, 5105, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
-- 加氢站配置parent=5106: 查询、创建、更新、删除、导出
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5160, '加氢站配置查询', 'energy:station-config:query', 3, 1, 5106, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5161, '加氢站配置创建', 'energy:station-config:create', 3, 2, 5106, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5162, '加氢站配置更新', 'energy:station-config:update', 3, 3, 5106, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5163, '加氢站配置删除', 'energy:station-config:delete', 3, 4, 5106, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (5164, '加氢站配置导出', 'energy:station-config:export', 3, 5, 5106, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0');

View File

@@ -0,0 +1,230 @@
-- ==========================================
-- Energy 模块 Mock 数据
-- 执行方式: 用数据库工具连接 47.103.115.36:3306 直接执行
-- 脚本会自动切换数据库
-- ==========================================
-- ==========================================
-- 第一部分: 在 oneos_asset 中插入关联 mock 数据
-- (如果已有真实数据,请跳过此部分,并修改下方 energy 数据中的 ID
-- ==========================================
USE `oneos_asset`;
-- 3 个加氢站(停车场)
INSERT INTO `asset_parking` (`id`, `name`, `address`, `capacity`, `parked_amount`, `tenant_id`, `deleted`, `creator`, `create_time`, `updater`, `update_time`)
VALUES
(1001, '上海松江加氢站', '上海市松江区新桥镇莘砖公路368号', 50, 0, 0, b'0', 'admin', NOW(), 'admin', NOW()),
(1002, '上海嘉定加氢站', '上海市嘉定区安亭镇墨玉南路888号', 30, 0, 0, b'0', 'admin', NOW(), 'admin', NOW()),
(1003, '江苏昆山加氢站', '江苏省昆山市千灯镇石浦路199号', 40, 0, 0, b'0', 'admin', NOW(), 'admin', NOW())
ON DUPLICATE KEY UPDATE `name` = VALUES(`name`);
-- 3 个客户
INSERT INTO `asset_customer` (`id`, `customer_name`, `customer_code`, `coop_status`, `province`, `city`, `contact`, `contact_mobile`, `tenant_id`, `deleted`, `creator`, `create_time`, `updater`, `update_time`)
VALUES
(2001, '上海绿能物流有限公司', 'CUST-2026-001', '合作中', '上海', '上海', '张经理', '13800001001', 0, b'0', 'admin', NOW(), 'admin', NOW()),
(2002, '江苏氢动力运输有限公司', 'CUST-2026-002', '合作中', '江苏', '苏州', '李经理', '13800001002', 0, b'0', 'admin', NOW(), 'admin', NOW()),
(2003, '浙江新能源科技有限公司', 'CUST-2026-003', '合作中', '浙江', '杭州', '王经理', '13800001003', 0, b'0', 'admin', NOW(), 'admin', NOW())
ON DUPLICATE KEY UPDATE `customer_name` = VALUES(`customer_name`);
-- 6 辆车
INSERT INTO `asset_vehicle_base` (`id`, `vin`, `plate_no`, `vehicle_no`, `color`, `year`, `tenant_id`, `deleted`, `creator`, `create_time`, `updater`, `update_time`)
VALUES
(3001, 'LVBV1234567890001', '沪A12345', 'VH-001', '白色', '2025', 0, b'0', 'admin', NOW(), 'admin', NOW()),
(3002, 'LVBV1234567890002', '沪B67890', 'VH-002', '蓝色', '2025', 0, b'0', 'admin', NOW(), 'admin', NOW()),
(3003, 'LVBV1234567890003', '苏A11111', 'VH-003', '白色', '2024', 0, b'0', 'admin', NOW(), 'admin', NOW()),
(3004, 'LVBV1234567890004', '苏B22222', 'VH-004', '绿色', '2024', 0, b'0', 'admin', NOW(), 'admin', NOW()),
(3005, 'LVBV1234567890005', '浙A33333', 'VH-005', '白色', '2025', 0, b'0', 'admin', NOW(), 'admin', NOW()),
(3006, 'LVBV1234567890006', '浙B44444', 'VH-006', '银色', '2025', 0, b'0', 'admin', NOW(), 'admin', NOW())
ON DUPLICATE KEY UPDATE `plate_no` = VALUES(`plate_no`);
-- 车辆业务关联
INSERT INTO `asset_vehicle_business` (`id`, `vehicle_id`, `customer_id`, `tenant_id`, `deleted`, `creator`, `create_time`, `updater`, `update_time`)
VALUES
(3001, 3001, 2001, 0, b'0', 'admin', NOW(), 'admin', NOW()),
(3002, 3002, 2001, 0, b'0', 'admin', NOW(), 'admin', NOW()),
(3003, 3003, 2002, 0, b'0', 'admin', NOW(), 'admin', NOW()),
(3004, 3004, 2002, 0, b'0', 'admin', NOW(), 'admin', NOW()),
(3005, 3005, 2003, 0, b'0', 'admin', NOW(), 'admin', NOW()),
(3006, 3006, 2003, 0, b'0', 'admin', NOW(), 'admin', NOW())
ON DUPLICATE KEY UPDATE `customer_id` = VALUES(`customer_id`);
-- 3 个合同
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`, `tenant_id`, `deleted`, `creator`, `create_time`, `updater`, `update_time`)
VALUES
(4001, 'HT-2026-001', 2, '绿能物流氢能车辆租赁项目', '2026-01-01', '2026-12-31', '预充值', '按次', '上海氢能科技有限公司', '上海', '上海', '上海市松江区', 2001, '上海绿能物流有限公司', 2, 2, 0, b'0', 'admin', NOW(), 'admin', NOW()),
(4002, 'HT-2026-002', 2, '氢动力城配物流项目', '2026-01-01', '2026-12-31', '月结算', '月结', '上海氢能科技有限公司', '江苏', '苏州', '江苏省苏州市昆山市', 2002, '江苏氢动力运输有限公司', 2, 2, 0, b'0', 'admin', NOW(), 'admin', NOW()),
(4003, 'HT-2026-003', 2, '新能源冷链运输项目', '2026-02-01', '2027-01-31', '预充值', '按次', '上海氢能科技有限公司', '浙江', '杭州', '浙江省杭州市西湖区', 2003, '浙江新能源科技有限公司', 2, 2, 0, b'0', 'admin', NOW(), 'admin', NOW())
ON DUPLICATE KEY UPDATE `project_name` = VALUES(`project_name`);
-- ==========================================
-- 第二部分: Energy 模块 mock 数据
-- ==========================================
USE `oneos_energy`;
-- ----------------------------
-- 1. 加氢站配置3 站)
-- ----------------------------
INSERT INTO `energy_station_config` (`id`, `station_id`, `auto_deduct`, `cooperation_type`, `auto_match`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`)
VALUES
(1, 1001, 1, 0, 1, '松江站,自动扣款+自动匹配', 'admin', NOW(), 'admin', NOW(), b'0', 0),
(2, 1002, 1, 0, 1, '嘉定站,自动扣款+自动匹配', 'admin', NOW(), 'admin', NOW(), b'0', 0),
(3, 1003, 0, 1, 0, '昆山站,非合作站,手动匹配', 'admin', NOW(), 'admin', NOW(), b'0', 0);
-- ----------------------------
-- 2. 加氢站客户价格6 条)
-- ----------------------------
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`, `tenant_id`)
VALUES
-- 松江站价格
(1, 1001, 2001, 28.00, 35.00, '2026-01-01', NULL, 0, 'admin', NOW(), 'admin', NOW(), b'0', 0),
(2, 1001, 2002, 28.00, 34.00, '2026-01-01', NULL, 0, 'admin', NOW(), 'admin', NOW(), b'0', 0),
-- 嘉定站价格
(3, 1002, 2001, 27.50, 35.00, '2026-01-01', NULL, 0, 'admin', NOW(), 'admin', NOW(), b'0', 0),
(4, 1002, 2002, 27.50, 33.50, '2026-01-01', NULL, 0, 'admin', NOW(), 'admin', NOW(), b'0', 0),
-- 昆山站价格
(5, 1003, 2003, 29.00, 36.00, '2026-02-01', NULL, 0, 'admin', NOW(), 'admin', NOW(), b'0', 0),
-- 已失效的旧价格
(6, 1001, 2001, 26.00, 33.00, '2025-06-01', '2025-12-31', 1, 'admin', NOW(), 'admin', NOW(), b'0', 0);
-- ----------------------------
-- 3. 加氢原始记录20 条,覆盖多种状态)
-- ----------------------------
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`, `tenant_id`)
VALUES
-- 已匹配记录松江站客户2001
( 1, 1001, '沪A12345', '2026-03-01', 12.50, 35.00, 437.50, 15230.00, 1, 1, 3001, 2001, 'IMP20260305001A', 'admin', '2026-03-05 10:00:00', 'admin', '2026-03-05 10:00:00', b'0', 0),
( 2, 1001, '沪A12345', '2026-03-03', 15.00, 35.00, 525.00, 15580.00, 1, 1, 3001, 2001, 'IMP20260305001A', 'admin', '2026-03-05 10:00:00', 'admin', '2026-03-05 10:00:00', b'0', 0),
( 3, 1001, '沪B67890', '2026-03-02', 10.80, 35.00, 378.00, 8920.00, 1, 1, 3002, 2001, 'IMP20260305001A', 'admin', '2026-03-05 10:00:00', 'admin', '2026-03-05 10:00:00', b'0', 0),
( 4, 1001, '沪B67890', '2026-03-05', 13.20, 35.00, 462.00, 9200.00, 1, 1, 3002, 2001, 'IMP20260305001A', 'admin', '2026-03-05 10:00:00', 'admin', '2026-03-05 10:00:00', b'0', 0),
-- 已匹配记录嘉定站客户2002
( 5, 1002, '苏A11111', '2026-03-01', 18.00, 33.50, 603.00, 22100.00, 1, 1, 3003, 2002, 'IMP20260306002B', 'admin', '2026-03-06 09:00:00', 'admin', '2026-03-06 09:00:00', b'0', 0),
( 6, 1002, '苏A11111', '2026-03-04', 16.50, 33.50, 552.75, 22450.00, 1, 1, 3003, 2002, 'IMP20260306002B', 'admin', '2026-03-06 09:00:00', 'admin', '2026-03-06 09:00:00', b'0', 0),
( 7, 1002, '苏B22222', '2026-03-02', 20.00, 33.50, 670.00, 18600.00, 1, 1, 3004, 2002, 'IMP20260306002B', 'admin', '2026-03-06 09:00:00', 'admin', '2026-03-06 09:00:00', b'0', 0),
( 8, 1002, '苏B22222', '2026-03-06', 14.80, 33.50, 495.80, 19010.00, 1, 1, 3004, 2002, 'IMP20260306002B', 'admin', '2026-03-06 09:00:00', 'admin', '2026-03-06 09:00:00', b'0', 0),
-- 已匹配记录昆山站客户2003
( 9, 1003, '浙A33333', '2026-03-03', 22.00, 36.00, 792.00, 31200.00, 1, 1, 3005, 2003, 'IMP20260307003C', 'admin', '2026-03-07 14:00:00', 'admin', '2026-03-07 14:00:00', b'0', 0),
(10, 1003, '浙A33333', '2026-03-07', 19.50, 36.00, 702.00, 31800.00, 1, 1, 3005, 2003, 'IMP20260307003C', 'admin', '2026-03-07 14:00:00', 'admin', '2026-03-07 14:00:00', b'0', 0),
(11, 1003, '浙B44444', '2026-03-05', 17.00, 36.00, 612.00, 27500.00, 1, 1, 3006, 2003, 'IMP20260307003C', 'admin', '2026-03-07 14:00:00', 'admin', '2026-03-07 14:00:00', b'0', 0),
-- 未匹配记录(车牌在系统中不存在)
(12, 1001, '沪C99999', '2026-03-08', 11.00, 35.00, 385.00, NULL, 1, 0, NULL, NULL, 'IMP20260310004D', 'admin', '2026-03-10 11:00:00', 'admin', '2026-03-10 11:00:00', b'0', 0),
(13, 1001, '沪D88888', '2026-03-08', 9.50, 35.00, 332.50, NULL, 1, 0, NULL, NULL, 'IMP20260310004D', 'admin', '2026-03-10 11:00:00', 'admin', '2026-03-10 11:00:00', b'0', 0),
(14, 1002, '苏C77777', '2026-03-09', 14.00, 33.50, 469.00, NULL, 1, 0, NULL, NULL, 'IMP20260310004D', 'admin', '2026-03-10 11:00:00', 'admin', '2026-03-10 11:00:00', b'0', 0),
-- 无法匹配记录
(15, 1003, '京A00001', '2026-03-10', 8.00, 36.00, 288.00, NULL, 1, 2, NULL, NULL, 'IMP20260311005E', 'admin', '2026-03-11 09:00:00', 'admin', '2026-03-11 09:00:00', b'0', 0),
-- 手动录入source_type=2
(16, 1001, '沪A12345', '2026-03-10', 14.00, 35.00, 490.00, 16100.00, 2, 1, 3001, 2001, NULL, 'admin', '2026-03-10 16:00:00', 'admin', '2026-03-10 16:00:00', b'0', 0),
(17, 1002, '苏A11111', '2026-03-10', 17.50, 33.50, 586.25, 23100.00, 2, 1, 3003, 2002, NULL, 'admin', '2026-03-10 16:30:00', 'admin', '2026-03-10 16:30:00', b'0', 0),
-- 最新批次(未处理)
(18, 1001, '沪A12345', '2026-03-12', 11.80, 35.00, 413.00, 16500.00, 1, 1, 3001, 2001, 'IMP20260313006F', 'admin', '2026-03-13 10:00:00', 'admin', '2026-03-13 10:00:00', b'0', 0),
(19, 1001, '沪B67890', '2026-03-13', 16.00, 35.00, 560.00, 9800.00, 1, 1, 3002, 2001, 'IMP20260313006F', 'admin', '2026-03-13 10:00:00', 'admin', '2026-03-13 10:00:00', b'0', 0),
(20, 1002, '苏B22222', '2026-03-14', 13.00, 33.50, 435.50, 19500.00, 1, 1, 3004, 2002, 'IMP20260314007G', 'admin', '2026-03-14 08:00:00', 'admin', '2026-03-14 08:00:00', b'0', 0);
-- ----------------------------
-- 4. 加氢明细15 条,对应已匹配的记录,覆盖不同审核/扣款/结算状态)
-- ----------------------------
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`, `audit_remark`, `deduction_status`, `settlement_status`, `bill_id`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`)
VALUES
-- 客户2001 明细(预充值,已审核+已扣款+已结算关联账单1
(1, 1, 1001, 3001, '沪A12345', '2026-03-01', 12.50, 28.00, 350.00, 35.00, 437.50, 4001, 2001, '绿能物流氢能车辆租赁项目', 1, 1, 1, '审核通过', 1, 1, 1, NULL, 'admin', '2026-03-05 10:30:00', 'admin', '2026-03-08 10:00:00', b'0', 0),
(2, 2, 1001, 3001, '沪A12345', '2026-03-03', 15.00, 28.00, 420.00, 35.00, 525.00, 4001, 2001, '绿能物流氢能车辆租赁项目', 1, 1, 1, '审核通过', 1, 1, 1, NULL, 'admin', '2026-03-05 10:30:00', 'admin', '2026-03-08 10:00:00', b'0', 0),
(3, 3, 1001, 3002, '沪B67890', '2026-03-02', 10.80, 28.00, 302.40, 35.00, 378.00, 4001, 2001, '绿能物流氢能车辆租赁项目', 1, 1, 1, '审核通过', 1, 1, 1, NULL, 'admin', '2026-03-05 10:30:00', 'admin', '2026-03-08 10:00:00', b'0', 0),
(4, 4, 1001, 3002, '沪B67890', '2026-03-05', 13.20, 28.00, 369.60, 35.00, 462.00, 4001, 2001, '绿能物流氢能车辆租赁项目', 1, 1, 1, '审核通过', 1, 1, 1, NULL, 'admin', '2026-03-05 10:30:00', 'admin', '2026-03-08 10:00:00', b'0', 0),
-- 客户2002 明细(月结算,已审核+未扣款+未结算关联账单2
(5, 5, 1002, 3003, '苏A11111', '2026-03-01', 18.00, 27.50, 495.00, 33.50, 603.00, 4002, 2002, '氢动力城配物流项目', 1, 2, 1, '审核通过', 0, 0, 2, NULL, 'admin', '2026-03-06 09:30:00', 'admin', '2026-03-09 09:00:00', b'0', 0),
(6, 6, 1002, 3003, '苏A11111', '2026-03-04', 16.50, 27.50, 453.75, 33.50, 552.75, 4002, 2002, '氢动力城配物流项目', 1, 2, 1, '审核通过', 0, 0, 2, NULL, 'admin', '2026-03-06 09:30:00', 'admin', '2026-03-09 09:00:00', b'0', 0),
(7, 7, 1002, 3004, '苏B22222', '2026-03-02', 20.00, 27.50, 550.00, 33.50, 670.00, 4002, 2002, '氢动力城配物流项目', 1, 2, 1, '审核通过', 0, 0, 2, NULL, 'admin', '2026-03-06 09:30:00', 'admin', '2026-03-09 09:00:00', b'0', 0),
(8, 8, 1002, 3004, '苏B22222', '2026-03-06', 14.80, 27.50, 407.00, 33.50, 495.80, 4002, 2002, '氢动力城配物流项目', 1, 2, 1, '审核通过', 0, 0, 2, NULL, 'admin', '2026-03-06 09:30:00', 'admin', '2026-03-09 09:00:00', b'0', 0),
-- 客户2003 明细(预充值,待审核,无账单)
( 9, 9, 1003, 3005, '浙A33333', '2026-03-03', 22.00, 29.00, 638.00, 36.00, 792.00, 4003, 2003, '新能源冷链运输项目', 1, 1, 0, NULL, 0, 0, NULL, NULL, 'admin', '2026-03-07 14:30:00', 'admin', '2026-03-07 14:30:00', b'0', 0),
(10, 10, 1003, 3005, '浙A33333', '2026-03-07', 19.50, 29.00, 565.50, 36.00, 702.00, 4003, 2003, '新能源冷链运输项目', 1, 1, 0, NULL, 0, 0, NULL, NULL, 'admin', '2026-03-07 14:30:00', 'admin', '2026-03-07 14:30:00', b'0', 0),
(11, 11, 1003, 3006, '浙B44444', '2026-03-05', 17.00, 29.00, 493.00, 36.00, 612.00, 4003, 2003, '新能源冷链运输项目', 1, 1, 0, NULL, 0, 0, NULL, NULL, 'admin', '2026-03-07 14:30:00', 'admin', '2026-03-07 14:30:00', b'0', 0),
-- 客户2001 最新明细(已审核,未结算,无账单 — 可用于生成新账单测试)
(12, 16, 1001, 3001, '沪A12345', '2026-03-10', 14.00, 28.00, 392.00, 35.00, 490.00, 4001, 2001, '绿能物流氢能车辆租赁项目', 1, 1, 1, '审核通过', 1, 0, NULL, NULL, 'admin', '2026-03-10 16:30:00', 'admin', '2026-03-11 10:00:00', b'0', 0),
(13, 18, 1001, 3001, '沪A12345', '2026-03-12', 11.80, 28.00, 330.40, 35.00, 413.00, 4001, 2001, '绿能物流氢能车辆租赁项目', 1, 1, 1, '审核通过', 1, 0, NULL, NULL, 'admin', '2026-03-13 10:30:00', 'admin', '2026-03-14 10:00:00', b'0', 0),
(14, 19, 1001, 3002, '沪B67890', '2026-03-13', 16.00, 28.00, 448.00, 35.00, 560.00, 4001, 2001, '绿能物流氢能车辆租赁项目', 1, 1, 1, '审核通过', 1, 0, NULL, NULL, 'admin', '2026-03-13 10:30:00', 'admin', '2026-03-14 10:00:00', b'0', 0),
-- 客户2002 已审核驳回明细
(15, 17, 1002, 3003, '苏A11111', '2026-03-10', 17.50, 27.50, 481.25, 33.50, 586.25, 4002, 2002, '氢动力城配物流项目', 1, 2, 2, '金额异常,请核实', 0, 0, NULL, '驳回后待重新审核', 'admin', '2026-03-10 17:00:00', 'admin', '2026-03-11 15:00:00', b'0', 0);
-- ----------------------------
-- 5. 能源账单3 条,覆盖不同状态)
-- ----------------------------
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`, `auditor_id`, `audit_time`, `audit_remark`, `generate_time`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`)
VALUES
-- 账单1: 客户2001已生成+已审核+已支付(完结状态)
(1, 'EB20260308140000A1B2', 0, 2001, '上海绿能物流有限公司', 4001, 1001, '上海松江加氢站', 1,
'2026-03-01', '2026-03-07', 1802.50, 1802.50, 0.00, 1802.50, 51.50, 4, 1, 1, 1, 2,
1, '2026-03-09 10:00:00', '审核通过,金额核对无误', '2026-03-08 14:00:00',
'admin', '2026-03-08 14:00:00', 'admin', '2026-03-10 10:00:00', b'0', 0),
-- 账单2: 客户2002已生成+待审核(月结算)
(2, 'EB20260309100000C3D4', 0, 2002, '江苏氢动力运输有限公司', 4002, 1002, '上海嘉定加氢站', 2,
'2026-03-01', '2026-03-07', 2321.55, 2221.55, -100.00, 0.00, 69.30, 4, 1, 0, 0, 0,
NULL, NULL, NULL, '2026-03-09 10:00:00',
'admin', '2026-03-09 10:00:00', 'admin', '2026-03-09 10:00:00', b'0', 0),
-- 账单3: 客户2001 草稿(还没提交审核)
(3, 'EB20260314120000E5F6', 0, 2001, '上海绿能物流有限公司', 4001, 1001, '上海松江加氢站', 1,
'2026-03-08', '2026-03-14', 1463.00, 1463.00, 0.00, 0.00, 41.80, 3, 0, 0, 0, 0,
NULL, NULL, NULL, '2026-03-14 12:00:00',
'admin', '2026-03-14 12:00:00', 'admin', '2026-03-14 12:00:00', b'0', 0);
-- ----------------------------
-- 6. 账单调整记录2 条关联账单2
-- ----------------------------
INSERT INTO `energy_bill_adjustment` (`id`, `bill_id`, `detail_id`, `adjustment_type`, `amount`, `reason`, `attachment_urls`, `operator_id`, `operate_time`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`)
VALUES
(1, 2, 8, 2, 80.00, '3月6日苏B22222加氢量数据偏高与站点核对后减少80元', NULL, 1, '2026-03-10 11:00:00', 'admin', '2026-03-10 11:00:00', 'admin', '2026-03-10 11:00:00', b'0', 0),
(2, 2, NULL, 2, 20.00, '整单优惠减免20元', NULL, 1, '2026-03-10 11:30:00', 'admin', '2026-03-10 11:30:00', 'admin', '2026-03-10 11:30:00', b'0', 0);
-- ----------------------------
-- 7. 客户能源账户3 个客户)
-- ----------------------------
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`, `tenant_id`)
VALUES
-- 客户2001: 预充值模式,余额正常
(1, 2001, 47197.50, 0.00, 50000.00, 2802.50, 0.00, 2802.50, 5000.00, 0, '2026-03-01', 5,
'admin', '2026-01-15 10:00:00', 'admin', '2026-03-14 12:00:00', b'0', 0),
-- 客户2002: 月结算模式,余额为零(月结不需要预充)
(2, 2002, 0.00, 0.00, 0.00, 2321.55, 0.00, 2321.55, NULL, 0, NULL, 2,
'admin', '2026-01-15 10:00:00', 'admin', '2026-03-09 10:00:00', b'0', 0),
-- 客户2003: 预充值模式,余额预警
(3, 2003, 3894.00, 0.00, 6000.00, 2106.00, 0.00, 2106.00, 5000.00, 1, '2026-02-20', 3,
'admin', '2026-02-01 10:00:00', 'admin', '2026-03-07 15:00:00', b'0', 0);
-- ----------------------------
-- 8. 项目账户3 个项目对应3个合同
-- ----------------------------
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`, `tenant_id`)
VALUES
(1, 1, 4001, '绿能物流氢能车辆租赁项目', 47197.50, 50000.00, 2802.50, 0.00, 2802.50, 5000.00, 0, 5,
'admin', '2026-01-15 10:00:00', 'admin', '2026-03-14 12:00:00', b'0', 0),
(2, 2, 4002, '氢动力城配物流项目', 0.00, 0.00, 2321.55, 0.00, 2321.55, NULL, 0, 2,
'admin', '2026-01-15 10:00:00', 'admin', '2026-03-09 10:00:00', b'0', 0),
(3, 3, 4003, '新能源冷链运输项目', 3894.00, 6000.00, 2106.00, 0.00, 2106.00, 5000.00, 1, 3,
'admin', '2026-02-01 10:00:00', 'admin', '2026-03-07 15:00:00', b'0', 0);
-- ----------------------------
-- 9. 账户流水12 条,覆盖充值/扣款场景)
-- ----------------------------
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`, `tenant_id`)
VALUES
-- 客户2001 流水
(1, 1, 1, 1, 50000.00, 0.00, 50000.00, 0.00, 50000.00, 3, NULL, NULL, '首次充值', 1, 'admin', '2026-03-01 10:00:00', 'admin', '2026-03-01 10:00:00', b'0', 0),
(2, 1, 1, 2, -437.50, 50000.00, 49562.50, 50000.00, 49562.50, 1, 1, NULL, '沪A12345 2026-03-01 加氢扣款', NULL, 'admin', '2026-03-05 11:00:00', 'admin', '2026-03-05 11:00:00', b'0', 0),
(3, 1, 1, 2, -525.00, 49562.50, 49037.50, 49562.50, 49037.50, 1, 2, NULL, '沪A12345 2026-03-03 加氢扣款', NULL, 'admin', '2026-03-05 11:01:00', 'admin', '2026-03-05 11:01:00', b'0', 0),
(4, 1, 1, 2, -378.00, 49037.50, 48659.50, 49037.50, 48659.50, 1, 3, NULL, '沪B67890 2026-03-02 加氢扣款', NULL, 'admin', '2026-03-05 11:02:00', 'admin', '2026-03-05 11:02:00', b'0', 0),
(5, 1, 1, 2, -462.00, 48659.50, 48197.50, 48659.50, 48197.50, 1, 4, NULL, '沪B67890 2026-03-05 加氢扣款', NULL, 'admin', '2026-03-05 11:03:00', 'admin', '2026-03-05 11:03:00', b'0', 0),
(6, 1, 1, 2, -490.00, 48197.50, 47707.50, 48197.50, 47707.50, 1, 12, NULL, '沪A12345 2026-03-10 加氢扣款', NULL, 'admin', '2026-03-11 10:00:00', 'admin', '2026-03-11 10:00:00', b'0', 0),
(7, 1, 1, 2, -413.00, 47707.50, 47294.50, 47707.50, 47294.50, 1, 13, NULL, '沪A12345 2026-03-12 加氢扣款', NULL, 'admin', '2026-03-14 10:00:00', 'admin', '2026-03-14 10:00:00', b'0', 0),
(8, 1, 1, 2, -97.00, 47294.50, 47197.50, 47294.50, 47197.50, 1, 14, NULL, '沪B67890 2026-03-13 加氢扣款(部分)', NULL, 'admin', '2026-03-14 10:01:00', 'admin', '2026-03-14 10:01:00', b'0', 0),
-- 客户2003 流水
( 9, 3, 3, 1, 6000.00, 0.00, 6000.00, 0.00, 6000.00, 3, NULL, NULL, '首次充值', 1, 'admin', '2026-02-20 10:00:00', 'admin', '2026-02-20 10:00:00', b'0', 0),
(10, 3, 3, 2, -792.00, 6000.00, 5208.00, 6000.00, 5208.00, 1, 9, NULL, '浙A33333 2026-03-03 加氢扣款', NULL, 'admin', '2026-03-07 15:00:00', 'admin', '2026-03-07 15:00:00', b'0', 0),
(11, 3, 3, 2, -702.00, 5208.00, 4506.00, 5208.00, 4506.00, 1, 10, NULL, '浙A33333 2026-03-07 加氢扣款', NULL, 'admin', '2026-03-07 15:01:00', 'admin', '2026-03-07 15:01:00', b'0', 0),
(12, 3, 3, 2, -612.00, 4506.00, 3894.00, 4506.00, 3894.00, 1, 11, NULL, '浙B44444 2026-03-05 加氢扣款', NULL, 'admin', '2026-03-07 15:02:00', 'admin', '2026-03-07 15:02:00', b'0', 0);

110
sql/energy/import_sql.py Normal file
View File

@@ -0,0 +1,110 @@
#!/usr/bin/env python3
"""
SQL 导入工具
"""
import pymysql
import sys
def execute_sql_file(host, port, user, password, sql_file):
"""执行 SQL 文件"""
try:
# 读取 SQL 文件
with open(sql_file, 'r', encoding='utf-8') as f:
sql_content = f.read()
# 连接数据库(不指定数据库,让 SQL 中的 USE 语句生效)
connection = pymysql.connect(
host=host,
port=port,
user=user,
password=password,
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor,
autocommit=False
)
print(f"✓ 连接数据库成功: {host}:{port}")
# 分割 SQL 语句(按分号分割,但要处理存储过程等特殊情况)
statements = []
current_statement = []
in_delimiter = False
for line in sql_content.split('\n'):
line = line.strip()
# 跳过注释和空行
if not line or line.startswith('--') or line.startswith('#'):
continue
# 处理 DELIMITER
if line.upper().startswith('DELIMITER'):
in_delimiter = not in_delimiter
continue
current_statement.append(line)
# 判断语句结束
if not in_delimiter and line.endswith(';'):
statements.append(' '.join(current_statement))
current_statement = []
# 执行 SQL 语句
with connection.cursor() as cursor:
success_count = 0
error_count = 0
for i, statement in enumerate(statements, 1):
if not statement.strip():
continue
try:
cursor.execute(statement)
connection.commit()
success_count += 1
# 每 10 条打印一次进度
if success_count % 10 == 0:
print(f" 已执行 {success_count} 条语句...")
except Exception as e:
error_count += 1
print(f"✗ 语句 {i} 执行失败: {str(e)[:100]}")
# 继续执行下一条
print(f"\n✓ 执行完成: 成功 {success_count} 条, 失败 {error_count}")
connection.close()
return True
except Exception as e:
print(f"✗ 错误: {e}")
return False
if __name__ == '__main__':
# 数据库配置
DB_HOST = '47.103.115.36'
DB_PORT = 3306
DB_USER = 'root'
DB_PASSWORD = 'Passw0rd2026'
# SQL 文件列表
sql_files = [
'energy_init_all.sql',
'energy_mock_data.sql'
]
print("=" * 60)
print("OneOS Energy 模块数据导入")
print("=" * 60)
for sql_file in sql_files:
print(f"\n>>> 导入 {sql_file}")
success = execute_sql_file(DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, sql_file)
if not success:
print(f"{sql_file} 导入失败")
sys.exit(1)
print("\n" + "=" * 60)
print("✓ 所有数据导入完成")
print("=" * 60)

209
sql/execute-all-updates.sql Normal file
View File

@@ -0,0 +1,209 @@
-- ==================== 数据库更新脚本汇总 ====================
-- 执行日期2026-03-12
-- 说明:包含 parking、vehiclemodel、customer、vehicleregistration 模块的所有更新
--
-- 执行顺序:
-- 1. 车型参数表字段补全asset 库)
-- 2. 车辆类型字典数据system 库)
-- 3. 车辆上牌记录表创建asset 库)
-- 4. 菜单和权限配置system 库)
-- ==================== 使用说明 ====================
-- 各个模块是分库的,请按照以下顺序执行:
--
-- 1. 连接到 asset 库,执行第一部分和第三部分
-- 2. 连接到 system 库(或主库),执行第二部分和第四部分
-- ==================== 第一部分车型参数表字段补全asset 库)====================
USE `asset`;
-- 检查字段是否已存在
SELECT 'Checking asset_vehicle_model table...' AS status;
-- 添加车型字段
ALTER TABLE `asset_vehicle_model`
ADD COLUMN IF NOT EXISTS `vehicle_type` int DEFAULT NULL COMMENT '车辆类型(字典)' AFTER `model`,
ADD COLUMN IF NOT EXISTS `plate_color` varchar(50) DEFAULT NULL COMMENT '车牌颜色(如:绿牌、蓝牌、黄牌)' AFTER `notice_model`,
ADD COLUMN IF NOT EXISTS `battery_type` varchar(100) DEFAULT NULL COMMENT '电池类型(如:磷酸铁锂、三元锂)' AFTER `battery_factory`,
ADD COLUMN IF NOT EXISTS `hydrogen_factory` varchar(200) DEFAULT NULL COMMENT '供氢系统厂家' AFTER `refrigerator_factory`;
-- 添加索引(如果不存在)
ALTER TABLE `asset_vehicle_model`
ADD INDEX IF NOT EXISTS `idx_vehicle_type` (`vehicle_type`) COMMENT '车辆类型查询',
ADD INDEX IF NOT EXISTS `idx_brand_model` (`brand`, `model`) COMMENT '品牌型号组合查询';
SELECT 'Vehicle model fields updated successfully!' AS status;
-- ==================== 第二部分车辆类型字典数据system 库或主库)====================
-- 注意:如果 system_dict_type 和 system_dict_data 在主库,请切换到主库
-- USE `ruoyi-vue-pro`; -- 或者你的主库名称
-- 检查字典类型是否已存在
SELECT 'Checking vehicle type dictionary...' AS status;
-- 创建车辆类型字典类型(如果不存在)
INSERT INTO `system_dict_type` (
`name`,
`type`,
`status`,
`remark`,
`creator`,
`create_time`,
`updater`,
`update_time`,
`deleted`,
`deleted_time`
)
SELECT
'车辆类型',
'asset_vehicle_type',
0,
'车辆资产管理-车辆类型分类',
'admin',
NOW(),
'admin',
NOW(),
0,
NULL
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM `system_dict_type` WHERE `type` = 'asset_vehicle_type'
);
-- 创建车辆类型字典数据(如果不存在)
INSERT INTO `system_dict_data` (
`sort`,
`label`,
`value`,
`dict_type`,
`status`,
`color_type`,
`css_class`,
`remark`,
`creator`,
`create_time`,
`updater`,
`update_time`,
`deleted`
)
SELECT * FROM (
SELECT 1 AS sort, '小型轿车' AS label, '1' AS value, 'asset_vehicle_type' AS dict_type, 0 AS status, 'primary' AS color_type, '' AS css_class, '5座以下的小型乘用车' AS remark, 'admin' AS creator, NOW() AS create_time, 'admin' AS updater, NOW() AS update_time, 0 AS deleted UNION ALL
SELECT 2, 'SUV', '2', 'asset_vehicle_type', 0, 'success', '', '运动型多用途车', 'admin', NOW(), 'admin', NOW(), 0 UNION ALL
SELECT 3, '厢式货车', '3', 'asset_vehicle_type', 0, 'info', '', '封闭式货运车辆', 'admin', NOW(), 'admin', NOW(), 0 UNION ALL
SELECT 4, '18吨双飞翼货车', '4', 'asset_vehicle_type', 0, 'warning', '', '大型货运车辆', 'admin', NOW(), 'admin', NOW(), 0 UNION ALL
SELECT 5, '轻型货车', '5', 'asset_vehicle_type', 0, 'default', '', '4.5吨以下货车', 'admin', NOW(), 'admin', NOW(), 0 UNION ALL
SELECT 6, '中型货车', '6', 'asset_vehicle_type', 0, 'default', '', '4.5-12吨货车', 'admin', NOW(), 'admin', NOW(), 0 UNION ALL
SELECT 7, '重型货车', '7', 'asset_vehicle_type', 0, 'danger', '', '12吨以上货车', 'admin', NOW(), 'admin', NOW(), 0 UNION ALL
SELECT 8, '客车', '8', 'asset_vehicle_type', 0, 'primary', '', '大中型客运车辆', 'admin', NOW(), 'admin', NOW(), 0 UNION ALL
SELECT 9, '专用车', '9', 'asset_vehicle_type', 0, 'info', '', '特种用途车辆', 'admin', NOW(), 'admin', NOW(), 0
) AS tmp
WHERE NOT EXISTS (
SELECT 1 FROM `system_dict_data` WHERE `dict_type` = 'asset_vehicle_type' AND `value` = tmp.value
);
SELECT 'Vehicle type dictionary created successfully!' AS status;
-- ==================== 第三部分车辆上牌记录表创建asset 库)====================
USE `asset`;
-- 创建车辆上牌记录表
CREATE TABLE IF NOT EXISTS `asset_vehicle_registration` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`vehicle_id` BIGINT NOT NULL COMMENT '车辆ID',
`vin` VARCHAR(50) NOT NULL COMMENT '车辆识别代号VIN',
`plate_no` VARCHAR(20) NOT NULL COMMENT '车牌号',
`plate_date` DATE NOT NULL COMMENT '上牌日期',
`operator` VARCHAR(50) COMMENT '操作员',
-- OCR 识别信息
`recognized_brand` VARCHAR(100) COMMENT 'OCR识别的品牌型号',
`recognized_model` VARCHAR(100) COMMENT 'OCR识别的车型',
`vehicle_type` VARCHAR(50) COMMENT '车辆类型',
`owner` VARCHAR(100) COMMENT '所有人',
`use_character` VARCHAR(50) COMMENT '使用性质',
`engine_no` VARCHAR(50) COMMENT '发动机号码',
`register_date` DATE COMMENT '注册日期',
`issue_date` DATE COMMENT '发证日期',
`inspection_record` VARCHAR(50) COMMENT '检验记录',
`scrap_date` DATE COMMENT '强制报废期止',
`curb_weight` VARCHAR(20) COMMENT '整备质量kg',
`total_mass` VARCHAR(20) COMMENT '总质量kg',
`approved_passenger_capacity` VARCHAR(20) COMMENT '核定载人数',
-- 匹配信息
`vehicle_model_id` BIGINT COMMENT '匹配的车型ID',
`match_confidence` DECIMAL(5,2) COMMENT '匹配置信度0-100',
`match_method` VARCHAR(20) COMMENT '匹配方式exact/fuzzy/manual',
-- 照片信息
`photo_url` VARCHAR(500) COMMENT '行驶证照片URL',
`photo_size` INT COMMENT '照片大小(字节)',
-- OCR 信息
`ocr_provider` VARCHAR(50) COMMENT 'OCR厂商',
`ocr_cost_time` INT COMMENT 'OCR识别耗时毫秒',
`ocr_raw_result` TEXT COMMENT 'OCR原始结果JSON',
-- 状态信息
`status` TINYINT NOT NULL DEFAULT 0 COMMENT '状态0-待确认 1-已确认 2-已作废)',
`remark` VARCHAR(500) 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 '是否删除',
`tenant_id` BIGINT NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_vehicle_plate` (`vehicle_id`, `plate_no`, `deleted`),
INDEX `idx_vin` (`vin`),
INDEX `idx_plate_no` (`plate_no`),
INDEX `idx_plate_date` (`plate_date`),
INDEX `idx_status` (`status`),
INDEX `idx_create_time` (`create_time`),
INDEX `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='车辆上牌记录表';
SELECT 'Vehicle registration table created successfully!' AS status;
-- ==================== 第四部分菜单和权限配置system 库或主库)====================
-- 注意:需要先找到"车辆管理"或"资产管理"的父菜单ID
-- 如果没有父菜单,请先创建或手动指定 parent_id
-- 查询可能的父菜单
SELECT id, name, parent_id, path
FROM system_menu
WHERE name LIKE '%车辆%' OR name LIKE '%资产%' OR path LIKE '%vehicle%' OR path LIKE '%asset%'
ORDER BY id;
-- 手动执行:将下面的 @parent_id 替换为实际的父菜单ID
-- SET @parent_id = YOUR_PARENT_MENU_ID;
-- 插入上牌管理菜单(请手动替换 @parent_id
-- INSERT INTO system_menu(
-- name, permission, type, sort, parent_id,
-- path, icon, component, status, component_name
-- )
-- VALUES (
-- '上牌管理', '', 2, 3, @parent_id,
-- 'registration', 'form', 'asset/vehicle/registration/index', 0, 'VehicleRegistration'
-- );
-- 获取刚插入的菜单ID
-- SET @menuId = LAST_INSERT_ID();
-- 上牌管理按钮权限
-- INSERT INTO system_menu(name, permission, type, sort, parent_id, path, icon, component, status)
-- VALUES
-- ('上牌记录查询', 'asset:vehicle-registration:query', 3, 1, @menuId, '', '', '', 0),
-- ('上牌记录创建', 'asset:vehicle-registration:create', 3, 2, @menuId, '', '', '', 0),
-- ('上牌记录更新', 'asset:vehicle-registration:update', 3, 3, @menuId, '', '', '', 0),
-- ('上牌记录删除', 'asset:vehicle-registration:delete', 3, 4, @menuId, '', '', '', 0),
-- ('行驶证识别', 'asset:vehicle-registration:recognize', 3, 5, @menuId, '', '', '', 0);
SELECT '========================================' AS '';
SELECT 'All updates completed!' AS status;
SELECT '========================================' AS '';
SELECT '注意菜单部分需要手动执行请先查询父菜单ID' AS note;

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()

View File

@@ -0,0 +1,8 @@
-- 合同表新增6个字段
ALTER TABLE asset_contract
ADD COLUMN hydrogen_bearer VARCHAR(20) COMMENT '氢费承担方',
ADD COLUMN hydrogen_payment_method VARCHAR(20) COMMENT '氢气付款方式',
ADD COLUMN hydrogen_prepay DECIMAL(12,2) COMMENT '氢气预付款',
ADD COLUMN hydrogen_return_price DECIMAL(12,2) COMMENT '退还车氢气单价',
ADD COLUMN billing_method VARCHAR(50) COMMENT '账单计算方式',
ADD COLUMN main_vehicle_type VARCHAR(50) COMMENT '主车型';