feat(fleet): integrate costs quotes operations and in-transit handovers
This commit is contained in:
@@ -94,6 +94,65 @@ VALUES
|
||||
ON DUPLICATE KEY UPDATE
|
||||
subject_name = VALUES(subject_name), status = 'ACTIVE', updated_by = 0;
|
||||
|
||||
CREATE TABLE fin_vehicle_cost (
|
||||
id BIGINT NOT NULL COMMENT '公司费用主键',
|
||||
subject_id BIGINT UNSIGNED NOT NULL COMMENT '平台财务主体',
|
||||
cost_no VARCHAR(64) NOT NULL COMMENT '公司车辆费用编号',
|
||||
source_type VARCHAR(32) NOT NULL COMMENT '费用来源类型',
|
||||
source_no VARCHAR(64) NOT NULL COMMENT '来源业务编号',
|
||||
source_version BIGINT NOT NULL COMMENT '来源快照版本',
|
||||
source_hash VARCHAR(71) NOT NULL COMMENT '来源内容摘要',
|
||||
source_json JSON NOT NULL COMMENT '原币及折算不可变来源快照',
|
||||
supplier_id BIGINT NOT NULL COMMENT '收款供应商标识',
|
||||
supplier_name VARCHAR(200) NOT NULL COMMENT '供应商名称快照',
|
||||
amount DECIMAL(17,2) NOT NULL COMMENT 'CNY公司费用金额',
|
||||
paid_amount DECIMAL(17,2) NOT NULL DEFAULT 0 COMMENT 'CNY累计实际付款',
|
||||
status VARCHAR(32) NOT NULL COMMENT '入账与付款状态',
|
||||
record_version BIGINT NOT NULL COMMENT '并发版本',
|
||||
created_at DATETIME(3) NOT NULL COMMENT '创建时间UTC',
|
||||
updated_at DATETIME(3) NOT NULL COMMENT '更新时间UTC',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_fin_vehicle_cost_no (cost_no),
|
||||
UNIQUE KEY uk_fin_vehicle_cost_source (subject_id,source_type,source_no),
|
||||
KEY idx_fin_vehicle_cost_page (subject_id,updated_at,id),
|
||||
CONSTRAINT fk_fin_vehicle_cost_subject FOREIGN KEY (subject_id) REFERENCES fin_subject(id),
|
||||
CONSTRAINT chk_fin_vehicle_cost_amount CHECK (amount>0 AND paid_amount>=0 AND paid_amount<=amount),
|
||||
CONSTRAINT chk_fin_vehicle_cost_owner CHECK (subject_id>0 AND supplier_id>0),
|
||||
CONSTRAINT chk_fin_vehicle_cost_status CHECK (status IN ('PENDING','APPROVED','PARTIALLY_PAID','PAID','VOIDED'))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='公司车辆费用,不进入客户账务';
|
||||
|
||||
CREATE TABLE fin_vehicle_cost_revision (
|
||||
id BIGINT NOT NULL COMMENT '公司车辆费用历史主键',
|
||||
cost_id BIGINT NOT NULL COMMENT '所属公司费用',
|
||||
record_version BIGINT NOT NULL COMMENT '费用版本',
|
||||
action VARCHAR(32) NOT NULL COMMENT '接收入账作废付款动作',
|
||||
request_key VARCHAR(128) NOT NULL COMMENT '动作幂等键',
|
||||
request_hash VARCHAR(71) NOT NULL COMMENT '请求摘要',
|
||||
operator_id BIGINT NOT NULL COMMENT '操作人或系统标识',
|
||||
operator_name VARCHAR(128) NOT NULL COMMENT '操作人名称快照',
|
||||
reason VARCHAR(1000) NULL COMMENT '更正或操作说明',
|
||||
snapshot_json JSON NOT NULL COMMENT '不可变费用快照',
|
||||
occurred_at DATETIME(3) NOT NULL COMMENT '操作时间UTC',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_fin_vehicle_cost_revision (cost_id,record_version),
|
||||
UNIQUE KEY uk_fin_vehicle_cost_request (operator_id,action,request_key),
|
||||
CONSTRAINT fk_fin_vehicle_revision_cost FOREIGN KEY (cost_id) REFERENCES fin_vehicle_cost(id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='公司车辆费用不可变审计';
|
||||
|
||||
CREATE TABLE fin_vehicle_cost_payment (
|
||||
id BIGINT NOT NULL COMMENT '公司车辆付款主键',
|
||||
cost_id BIGINT NOT NULL COMMENT '所属公司费用',
|
||||
payment_no VARCHAR(64) NOT NULL COMMENT '公司付款业务编号',
|
||||
amount DECIMAL(17,2) NOT NULL COMMENT 'CNY实际付款金额',
|
||||
payment_json JSON NOT NULL COMMENT '实际付款及凭证不可变快照',
|
||||
created_at DATETIME(3) NOT NULL COMMENT '付款登记时间UTC',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_fin_vehicle_payment_no (payment_no),
|
||||
KEY idx_fin_vehicle_payment_cost (cost_id,id),
|
||||
CONSTRAINT fk_fin_vehicle_payment_cost FOREIGN KEY (cost_id) REFERENCES fin_vehicle_cost(id),
|
||||
CONSTRAINT chk_fin_vehicle_payment_amount CHECK (amount>0)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='公司车辆实际付款记录';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS fin_customer_settlement_profile (
|
||||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '客户ID和数据隔离键',
|
||||
|
||||
Reference in New Issue
Block a user