2026-08-05 14:20:04 +08:00
|
|
|
USE baiyue_firstleg;
|
|
|
|
|
SET NAMES utf8mb4;
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_fee_item (
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '费用项目ID',
|
2026-08-05 16:26:10 +08:00
|
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '当前客户ID(客户隔离键);物理字段名沿用 tenant_id,当前不表示上级租户',
|
2026-08-05 14:20:04 +08:00
|
|
|
category VARCHAR(64) NOT NULL COMMENT '费用分类',
|
|
|
|
|
trade_scope VARCHAR(20) NOT NULL COMMENT 'DOMESTIC国内、INTERNATIONAL国际',
|
|
|
|
|
fee_type_name VARCHAR(128) NOT NULL COMMENT '费用类型名称',
|
|
|
|
|
pickup_payable TINYINT(1) NOT NULL DEFAULT 0 COMMENT '提柜应付是否参与',
|
|
|
|
|
pickup_receivable TINYINT(1) NOT NULL DEFAULT 0 COMMENT '提柜应收是否参与',
|
|
|
|
|
warehouse_payable TINYINT(1) NOT NULL DEFAULT 0 COMMENT '仓储应付是否参与',
|
|
|
|
|
warehouse_receivable TINYINT(1) NOT NULL DEFAULT 0 COMMENT '仓储应收是否参与',
|
|
|
|
|
allocation_fee TINYINT(1) NOT NULL DEFAULT 0 COMMENT '平摊费用是否参与',
|
|
|
|
|
description VARCHAR(500) NULL COMMENT '说明',
|
|
|
|
|
status VARCHAR(16) NOT NULL DEFAULT 'ACTIVE' COMMENT 'ACTIVE或DISABLED',
|
|
|
|
|
created_by BIGINT NULL,
|
|
|
|
|
created_by_name VARCHAR(64) NULL,
|
|
|
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
|
|
|
updated_by BIGINT NULL,
|
|
|
|
|
updated_by_name VARCHAR(64) NULL,
|
|
|
|
|
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
|
|
|
|
deleted TINYINT(1) NOT NULL DEFAULT 0,
|
|
|
|
|
version INT NOT NULL DEFAULT 0,
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
KEY idx_fee_item_query (tenant_id, trade_scope, category, status, deleted),
|
|
|
|
|
KEY idx_fee_item_name (tenant_id, fee_type_name, deleted)
|
|
|
|
|
) ENGINE=InnoDB COMMENT='费用项目主数据';
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_inbound_fee_detail (
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '入库费用明细ID',
|
2026-08-05 16:26:10 +08:00
|
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '当前客户ID(客户隔离键);物理字段名沿用 tenant_id,当前不表示上级租户',
|
2026-08-05 14:20:04 +08:00
|
|
|
inbound_id BIGINT UNSIGNED NOT NULL COMMENT '入库单ID',
|
|
|
|
|
fee_item_id BIGINT UNSIGNED NOT NULL COMMENT '绑定费用项目ID',
|
|
|
|
|
inbound_code VARCHAR(40) NOT NULL COMMENT '入仓码快照',
|
|
|
|
|
direction VARCHAR(16) NOT NULL COMMENT 'RECEIVABLE应收、PAYABLE应付',
|
|
|
|
|
business_date DATE NOT NULL COMMENT '业务发生日',
|
|
|
|
|
fee_category_snapshot VARCHAR(64) NOT NULL COMMENT '费用分类快照',
|
|
|
|
|
trade_scope_snapshot VARCHAR(20) NOT NULL COMMENT '国内国际快照',
|
|
|
|
|
fee_type_name_snapshot VARCHAR(128) NOT NULL COMMENT '费用类型名称快照',
|
|
|
|
|
channel_code VARCHAR(64) NULL COMMENT '渠道编码快照',
|
|
|
|
|
channel_name VARCHAR(128) NULL COMMENT '渠道名称快照',
|
|
|
|
|
destination_code VARCHAR(32) NULL COMMENT '目的仓编码快照',
|
|
|
|
|
destination_name VARCHAR(128) NULL COMMENT '目的仓名称快照',
|
|
|
|
|
package_count INT NULL COMMENT '件数快照',
|
|
|
|
|
actual_gross_weight_kg DECIMAL(18,4) NULL COMMENT '仓库实测毛重',
|
|
|
|
|
actual_volume_cbm DECIMAL(18,6) NULL COMMENT '体积',
|
|
|
|
|
volume_weight_kg DECIMAL(18,4) NULL COMMENT '材积重',
|
|
|
|
|
chargeable_weight_kg DECIMAL(18,4) NULL COMMENT '计费重量',
|
|
|
|
|
chargeable_volume_cbm DECIMAL(18,6) NULL COMMENT '计费体积',
|
|
|
|
|
unit_price DECIMAL(18,4) NOT NULL COMMENT '单价',
|
|
|
|
|
currency CHAR(3) NOT NULL COMMENT '币种',
|
|
|
|
|
amount DECIMAL(18,2) NOT NULL COMMENT '金额',
|
|
|
|
|
remark VARCHAR(500) NULL COMMENT '备注',
|
|
|
|
|
review_status VARCHAR(16) NOT NULL DEFAULT 'PENDING' COMMENT 'PENDING、APPROVED、REJECTED',
|
|
|
|
|
reviewer_id BIGINT NULL COMMENT '审核人ID',
|
|
|
|
|
reviewer_name VARCHAR(64) NULL COMMENT '审核人名称快照',
|
|
|
|
|
reviewed_at DATETIME(3) NULL COMMENT '审核时间',
|
|
|
|
|
review_reason VARCHAR(500) NULL COMMENT '审核驳回原因',
|
|
|
|
|
created_by BIGINT NULL,
|
|
|
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
|
|
|
updated_by BIGINT NULL,
|
|
|
|
|
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
|
|
|
|
deleted TINYINT(1) NOT NULL DEFAULT 0,
|
|
|
|
|
version INT NOT NULL DEFAULT 0,
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
KEY idx_inbound_fee_detail (tenant_id, inbound_id, business_date, deleted),
|
|
|
|
|
KEY idx_inbound_fee_review (tenant_id, review_status, business_date, deleted),
|
|
|
|
|
KEY idx_inbound_fee_item (tenant_id, fee_item_id, deleted),
|
|
|
|
|
CONSTRAINT fk_inbound_fee_detail_order FOREIGN KEY (inbound_id) REFERENCES fl_inbound_order (id),
|
|
|
|
|
CONSTRAINT fk_inbound_fee_detail_item FOREIGN KEY (fee_item_id) REFERENCES fl_fee_item (id)
|
|
|
|
|
) ENGINE=InnoDB COMMENT='入库单应收应付费用明细';
|
2026-08-05 16:26:10 +08:00
|
|
|
|
|
|
|
|
-- 既有表同步字段注释:tenant_id 当前承载客户 ID,不是上级租户 ID。
|
|
|
|
|
SET @fee_tenant_comment = '当前客户ID(客户隔离键);物理字段名沿用 tenant_id,当前不表示上级租户';
|
|
|
|
|
SET @ddl = IF(
|
|
|
|
|
(SELECT COUNT(*) FROM information_schema.columns
|
|
|
|
|
WHERE table_schema = DATABASE() AND table_name = 'fl_fee_item'
|
|
|
|
|
AND column_name = 'tenant_id' AND column_comment = @fee_tenant_comment) = 1,
|
|
|
|
|
'SELECT 1',
|
|
|
|
|
'ALTER TABLE fl_fee_item MODIFY COLUMN tenant_id BIGINT UNSIGNED NOT NULL COMMENT ''当前客户ID(客户隔离键);物理字段名沿用 tenant_id,当前不表示上级租户'''
|
|
|
|
|
);
|
|
|
|
|
PREPARE statement FROM @ddl; EXECUTE statement; DEALLOCATE PREPARE statement;
|
|
|
|
|
|
|
|
|
|
SET @ddl = IF(
|
|
|
|
|
(SELECT COUNT(*) FROM information_schema.columns
|
|
|
|
|
WHERE table_schema = DATABASE() AND table_name = 'fl_inbound_fee_detail'
|
|
|
|
|
AND column_name = 'tenant_id' AND column_comment = @fee_tenant_comment) = 1,
|
|
|
|
|
'SELECT 1',
|
|
|
|
|
'ALTER TABLE fl_inbound_fee_detail MODIFY COLUMN tenant_id BIGINT UNSIGNED NOT NULL COMMENT ''当前客户ID(客户隔离键);物理字段名沿用 tenant_id,当前不表示上级租户'''
|
|
|
|
|
);
|
|
|
|
|
PREPARE statement FROM @ddl; EXECUTE statement; DEALLOCATE PREPARE statement;
|