98 lines
6.6 KiB
SQL
98 lines
6.6 KiB
SQL
USE baiyue_firstleg;
|
|
SET NAMES utf8mb4;
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_fee_item (
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '费用项目ID',
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '平台公共费用项目作用域,固定为0;物理字段名沿用 tenant_id',
|
|
category VARCHAR(64) NOT NULL COMMENT '费用分类',
|
|
trade_scope VARCHAR(20) NOT NULL COMMENT 'DOMESTIC国内、INTERNATIONAL国际',
|
|
fee_code VARCHAR(50) NOT NULL COMMENT '稳定费用编码;平台公共主数据固定编码',
|
|
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 COMMENT '创建人ID;系统初始化时可为空',
|
|
created_by_name VARCHAR(64) NULL COMMENT '创建人名称快照',
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
|
updated_by BIGINT NULL COMMENT '最后修改人ID;系统初始化时可为空',
|
|
updated_by_name VARCHAR(64) NULL COMMENT '最后修改人名称快照',
|
|
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '最后更新时间',
|
|
deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标记:0未删除、1已删除',
|
|
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uk_fee_item_code (fee_code),
|
|
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',
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '客户ID(客户隔离键);费用明细引用平台公共费用项目',
|
|
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应付',
|
|
partner_id BIGINT UNSIGNED NULL COMMENT '应付往来单位ID快照;应收为空',
|
|
partner_name VARCHAR(200) NULL COMMENT '应付往来单位名称快照;应收为空',
|
|
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 '金额币种三字码,如CNY',
|
|
amount DECIMAL(18,2) NOT NULL COMMENT '该费用明细金额,币种由currency字段指定',
|
|
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 COMMENT '创建人或系统主体ID',
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
|
updated_by BIGINT NULL COMMENT '最后修改人或系统主体ID',
|
|
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '最后更新时间',
|
|
deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标记:0未删除、1已删除',
|
|
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
|
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='入库单应收应付费用明细';
|
|
|
|
-- 费用项目是平台公共主数据;费用明细仍按客户隔离。
|
|
SET @fee_tenant_comment = '平台公共费用项目作用域,固定为0;物理字段名沿用 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 ''平台公共费用项目作用域,固定为0;物理字段名沿用 tenant_id'''
|
|
);
|
|
PREPARE statement FROM @ddl; EXECUTE statement; DEALLOCATE PREPARE statement;
|
|
|
|
SET @fee_tenant_comment = '客户ID(客户隔离键);费用明细引用平台公共费用项目';
|
|
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(客户隔离键);费用明细引用平台公共费用项目'''
|
|
);
|
|
PREPARE statement FROM @ddl; EXECUTE statement; DEALLOCATE PREPARE statement;
|