费用提交
This commit is contained in:
@@ -880,7 +880,8 @@ CREATE TABLE IF NOT EXISTS ll_finance_fee_source (
|
||||
inbound_code VARCHAR(64) NULL COMMENT '关联入仓码;并非所有费用必填', container_id BIGINT NULL COMMENT '关联柜次ID',
|
||||
container_booking_id BIGINT NULL COMMENT '来源订舱柜ID', container_no VARCHAR(64) NULL COMMENT '真实集装箱号快照',
|
||||
warehouse_id BIGINT NULL COMMENT '关联海外仓ID', fee_item_code VARCHAR(64) NOT NULL COMMENT '费用项目编码快照',
|
||||
fee_item_name VARCHAR(200) NOT NULL COMMENT '费用项目名称快照', direction VARCHAR(16) NOT NULL COMMENT 'RECEIVABLE应收或PAYABLE应付',
|
||||
fee_item_name VARCHAR(200) NOT NULL COMMENT '费用项目名称快照', fee_remark VARCHAR(500) NULL COMMENT '费用说明,补收或重复作业原因',
|
||||
direction VARCHAR(16) NOT NULL COMMENT 'RECEIVABLE应收或PAYABLE应付',
|
||||
supplier_id BIGINT NULL COMMENT '应付供应商ID', supplier_name VARCHAR(200) NULL COMMENT '应付供应商名称快照',
|
||||
supplier_category VARCHAR(32) NULL COMMENT '应付供应商类别约束', settlement_mode VARCHAR(16) NULL COMMENT 'ON_ACCOUNT账期应付或DIRECT_PAID业务已付',
|
||||
paid_at DATETIME(3) NULL COMMENT '直接已付时间', payment_method VARCHAR(32) NULL COMMENT '直接已付方式',
|
||||
@@ -888,19 +889,20 @@ CREATE TABLE IF NOT EXISTS ll_finance_fee_source (
|
||||
wallet_settlement JSON NULL COMMENT '已实扣应收的Finance资金命令、冻结和消费流水引用',
|
||||
business_date DATE NOT NULL COMMENT '费用业务日期', currency CHAR(3) NOT NULL DEFAULT 'CNY' COMMENT '财务结算币种,固定CNY',
|
||||
amount DECIMAL(20,6) NOT NULL COMMENT '人民币结算金额', original_currency CHAR(3) NOT NULL COMMENT '业务原币种,支持CNY或USD',
|
||||
original_amount DECIMAL(20,6) NOT NULL COMMENT '业务原币金额', exchange_rate DECIMAL(20,6) NOT NULL COMMENT '原币折算人民币汇率,人民币固定为1',
|
||||
original_amount DECIMAL(20,6) NOT NULL COMMENT '业务原币金额', exchange_rate DECIMAL(20,6) NULL COMMENT '原币折算人民币汇率,人民币固定为1,自动零元仓租可空',
|
||||
exchange_rate_month CHAR(7) NOT NULL COMMENT '汇率月份yyyy-MM', chargeable_quantity DECIMAL(20,6) NULL COMMENT '计费数量,如箱数、托数、体积或天数',
|
||||
quantity_unit VARCHAR(32) NULL COMMENT '计费数量单位', unit_price DECIMAL(20,6) NULL COMMENT '原币计费单价',
|
||||
period_start DATE NULL COMMENT '仓租等期间费用开始日期', period_end DATE NULL COMMENT '仓租等期间费用结束日期',
|
||||
review_status VARCHAR(16) NOT NULL COMMENT 'DRAFT、PENDING、APPROVED或REJECTED',
|
||||
publication_status VARCHAR(16) NOT NULL COMMENT 'UNPUBLISHED或PUBLISHED', source_status VARCHAR(16) NOT NULL COMMENT 'ACTIVE、SUPERSEDED或VOIDED',
|
||||
review_reason VARCHAR(500) NULL COMMENT '审核或作废原因', reviewer_id VARCHAR(128) NULL COMMENT '审核人ID', reviewed_at DATETIME(3) NULL COMMENT '审核时间',
|
||||
review_reason VARCHAR(500) NULL COMMENT '审核或作废原因', reviewer_id VARCHAR(128) NULL COMMENT '审核人ID', reviewer_name VARCHAR(255) NULL COMMENT '审核人名称快照', reviewed_at DATETIME(3) NULL COMMENT '审核时间',
|
||||
created_by VARCHAR(128) NOT NULL COMMENT '创建人ID', updated_by VARCHAR(128) NOT NULL COMMENT '最后更新人ID',
|
||||
created_at DATETIME(3) NOT NULL COMMENT '创建时间', updated_at DATETIME(3) NOT NULL COMMENT '最后更新时间',
|
||||
PRIMARY KEY(id), UNIQUE KEY uk_ll_finance_fee_version(source_fee_id,source_version),
|
||||
KEY idx_ll_finance_fee_customer(customer_id,source_status,created_at), KEY idx_ll_finance_fee_business(business_type,business_no,created_at),
|
||||
KEY idx_ll_finance_fee_container_customer(container_booking_id,customer_id,source_status,created_at),
|
||||
CONSTRAINT chk_ll_finance_fee_amount CHECK(amount>0), CONSTRAINT chk_ll_finance_fee_currency CHECK(currency='CNY'),
|
||||
CONSTRAINT chk_ll_finance_fee_exchange_rate CHECK((exchange_rate IS NOT NULL AND exchange_rate>0) OR (exchange_rate IS NULL AND amount=0 AND original_amount=0 AND created_by='STORAGE_RENT' AND fee_item_code='FEE_TYPE_077' AND direction='RECEIVABLE')),
|
||||
CONSTRAINT chk_ll_finance_fee_amount CHECK(amount>0 OR (amount=0 AND original_amount=0 AND created_by='STORAGE_RENT' AND fee_item_code='FEE_TYPE_077' AND direction='RECEIVABLE')), CONSTRAINT chk_ll_finance_fee_currency CHECK(currency='CNY'),
|
||||
CONSTRAINT chk_ll_finance_fee_original_currency CHECK(original_currency IN('CNY','USD')),
|
||||
CONSTRAINT chk_ll_finance_fee_period CHECK((period_start IS NULL AND period_end IS NULL) OR (period_start IS NOT NULL AND period_end IS NOT NULL AND period_start<=period_end)),
|
||||
CONSTRAINT chk_ll_finance_fee_direction CHECK(direction IN('RECEIVABLE','PAYABLE')),
|
||||
@@ -2926,6 +2928,7 @@ CREATE TABLE IF NOT EXISTS ll_cargo_discard_status_history (
|
||||
) ENGINE=InnoDB COMMENT='货物废弃审批历史';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ll_overseas_procurement_order (
|
||||
procurement_direction VARCHAR(32) NOT NULL DEFAULT 'OVERSEAS_TO_DOMESTIC' COMMENT '采购方向:海外采购回国内/国内采购发海外',
|
||||
id BIGINT NOT NULL COMMENT '主键ID', customer_id VARCHAR(128) NOT NULL COMMENT '客户租户ID',
|
||||
customer_name VARCHAR(255) NULL COMMENT '客户名称快照', order_no VARCHAR(64) NOT NULL COMMENT '订单号',
|
||||
purchase_category VARCHAR(128) NOT NULL COMMENT '采购品类', product_name VARCHAR(255) NOT NULL COMMENT '产品名称',
|
||||
@@ -3261,7 +3264,7 @@ CREATE TABLE IF NOT EXISTS ll_destuff_pallet_cost (
|
||||
) ENGINE=InnoDB COMMENT='拆柜打托实际成本汇总';
|
||||
CREATE TABLE IF NOT EXISTS ll_destuff_pallet_cost_allocation (
|
||||
id BIGINT NOT NULL COMMENT '主键ID', cost_id BIGINT NOT NULL COMMENT '打托成本汇总ID', customer_id VARCHAR(128) NOT NULL COMMENT '客户ID', actual_volume_cbm DECIMAL(20,6) NOT NULL COMMENT '客户实收体积',
|
||||
allocated_amount DECIMAL(20,2) NOT NULL COMMENT '客户分摊金额', fee_source_id BIGINT NOT NULL COMMENT '海外费用来源ID', created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||||
allocated_amount DECIMAL(20,2) NOT NULL COMMENT '客户分摊金额', fee_source_id BIGINT NULL COMMENT '人工审核后关联的海外费用来源ID', created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||||
PRIMARY KEY(id), UNIQUE KEY uk_ll_destuff_customer(cost_id,customer_id), UNIQUE KEY uk_ll_destuff_fee_source(fee_source_id),
|
||||
CONSTRAINT chk_ll_destuff_allocation CHECK(actual_volume_cbm>0 AND allocated_amount>=0)
|
||||
) ENGINE=InnoDB COMMENT='拆柜打托成本按客户实收体积分摊';
|
||||
@@ -3923,6 +3926,7 @@ CREATE TABLE IF NOT EXISTS ll_return_sku_conversion (
|
||||
quantity BIGINT NOT NULL COMMENT '实际完成转换件数',
|
||||
status VARCHAR(32) NOT NULL COMMENT 'APPLIED待客户确认/CONFIRMED已确认/REVERSED退回冲回',
|
||||
ownership_json LONGTEXT NOT NULL COMMENT '本次转换件数的来源退货单快照,供精确冲回',
|
||||
storage_rent_shares_json LONGTEXT NULL COMMENT '原仓租批次迁移快照',
|
||||
completed_at DATETIME(3) NOT NULL COMMENT '实物SKU转换时间',
|
||||
confirmed_at DATETIME(3) NULL COMMENT '客户确认时间',
|
||||
reversed_at DATETIME(3) NULL COMMENT '退回冲回时间',
|
||||
@@ -4658,3 +4662,126 @@ CREATE TABLE IF NOT EXISTS ll_document_sequence (
|
||||
PRIMARY KEY (sequence_key),
|
||||
CONSTRAINT chk_ll_document_sequence_value CHECK (current_value > 0)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='业务单据每日独立原子流水';
|
||||
|
||||
-- 海外人工费用资金编排。金额与余额以 Finance 钱包为唯一事实,本表仅记录指令及回执状态。
|
||||
CREATE TABLE IF NOT EXISTS ll_finance_fee_funding (
|
||||
source_fee_id BIGINT NOT NULL COMMENT '关联海外费用稳定来源ID',
|
||||
customer_id VARCHAR(128) NOT NULL COMMENT '费用所属客户隔离标识',
|
||||
collection_mode VARCHAR(16) NOT NULL COMMENT '客户收费方式:BILL账单结算,WALLET余额及授信',
|
||||
wallet_status VARCHAR(32) NOT NULL COMMENT '资金进度:待冻结、已冻结、待扣款、已扣款、待释放及失败状态',
|
||||
wallet_business_no VARCHAR(128) NULL COMMENT '本次冻结使用的独立业务编号,重提使用新编号',
|
||||
command_event_id VARCHAR(64) NULL COMMENT '当前待处理资金指令事件ID',
|
||||
wallet_hold_id VARCHAR(64) NULL COMMENT 'Finance确认的资金冻结记录ID',
|
||||
wallet_ledger_id VARCHAR(64) NULL COMMENT 'Finance确认的已扣资金流水ID',
|
||||
command_version BIGINT NOT NULL DEFAULT 0 COMMENT '资金指令单调递增版本,防止重试重复入账',
|
||||
error_message VARCHAR(500) NULL COMMENT '最新资金失败原因,成功后清空',
|
||||
command_history JSON NOT NULL COMMENT '已发资金指令及核验结果哈希,识别重复和错序回执',
|
||||
created_at DATETIME(3) NOT NULL COMMENT '资金编排创建UTC时间',
|
||||
updated_at DATETIME(3) NOT NULL COMMENT '资金编排最近变更UTC时间',
|
||||
PRIMARY KEY (source_fee_id),
|
||||
KEY idx_ll_fee_funding_customer_state (customer_id, wallet_status),
|
||||
KEY idx_ll_fee_funding_command (command_event_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='海外人工费用资金冻结、审核扣款及释放编排';
|
||||
|
||||
-- 实收仓租原批次、份额与资金预占。
|
||||
CREATE TABLE IF NOT EXISTS ll_storage_rent_inbound (
|
||||
receipt_id bigint NOT NULL COMMENT '实际入库凭证主键,防止重复累计计租数量',
|
||||
lot_id bigint NOT NULL COMMENT '头程同单同仓计租批次主键',
|
||||
quantity decimal(24,12) NOT NULL COMMENT '本次实收追加计租箱数',
|
||||
created_at datetime(3) NOT NULL COMMENT '计租登记时间,采用协调世界时',
|
||||
PRIMARY KEY (receipt_id),
|
||||
KEY idx_storage_rent_inbound_lot (lot_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='头程实收计租幂等登记';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ll_storage_rent_lot (
|
||||
id bigint NOT NULL COMMENT '原批次主键',
|
||||
source_key varchar(80) NOT NULL COMMENT '实收来源幂等键',
|
||||
customer_id varchar(32) NOT NULL COMMENT '客户标识',
|
||||
customer_name varchar(255) DEFAULT NULL COMMENT '客户名称',
|
||||
warehouse_id varchar(32) NOT NULL COMMENT '海外仓标识',
|
||||
warehouse_name varchar(255) DEFAULT NULL COMMENT '海外仓名称',
|
||||
business_type varchar(32) NOT NULL COMMENT '原入库业务类型',
|
||||
business_id bigint NOT NULL COMMENT '原入库业务主键',
|
||||
business_no varchar(128) NOT NULL COMMENT '原入库业务单号',
|
||||
order_id bigint DEFAULT NULL COMMENT '尾程订单主键',
|
||||
inbound_code varchar(128) DEFAULT NULL COMMENT '入仓码',
|
||||
balance_id bigint DEFAULT NULL COMMENT '普通库存余额主键',
|
||||
batch_no varchar(128) DEFAULT NULL COMMENT '原实收批次',
|
||||
sku_code varchar(128) DEFAULT NULL COMMENT '商品编码',
|
||||
rule_code varchar(32) NOT NULL COMMENT '仓租规则',
|
||||
original_quantity decimal(24,12) NOT NULL COMMENT '实收原始数量',
|
||||
remaining_quantity decimal(24,12) NOT NULL COMMENT '未出库原始数量',
|
||||
original_units decimal(24,12) DEFAULT NULL COMMENT '原批次计费体积或托数',
|
||||
inbound_at datetime(3) NOT NULL COMMENT '实际入库时间',
|
||||
created_at datetime(3) NOT NULL COMMENT '创建时间',
|
||||
updated_at datetime(3) NOT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_storage_rent_lot_source (source_key),
|
||||
KEY idx_storage_rent_stock (balance_id,batch_no),
|
||||
KEY idx_storage_rent_customer (customer_id,warehouse_id,inbound_at)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='实收计租原批次';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ll_storage_rent_share (
|
||||
balance_id bigint DEFAULT NULL COMMENT '普通库存当前余额,退货箱份额为空',
|
||||
batch_no varchar(128) DEFAULT NULL COMMENT '普通库存当前批次,换标搬移保持原计租批次引用',
|
||||
id bigint NOT NULL COMMENT '份额主键',
|
||||
lot_id bigint NOT NULL COMMENT '原计租批次主键',
|
||||
customer_id varchar(32) NOT NULL COMMENT '客户标识',
|
||||
warehouse_id varchar(32) NOT NULL COMMENT '海外仓标识',
|
||||
carton_mark varchar(255) DEFAULT NULL COMMENT '当前箱唛',
|
||||
sku_code varchar(128) DEFAULT NULL COMMENT '商品编码',
|
||||
quantity decimal(24,12) NOT NULL COMMENT '剩余商品数量',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_storage_rent_return_share (lot_id,carton_mark,sku_code),
|
||||
UNIQUE KEY uk_storage_rent_stock_share (lot_id,balance_id,batch_no),
|
||||
KEY idx_storage_rent_carton (customer_id,warehouse_id,carton_mark),
|
||||
KEY idx_storage_rent_share_stock (customer_id,warehouse_id,balance_id,batch_no)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='当前库存与原计租批次份额';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ll_storage_rent_preparation (
|
||||
id bigint NOT NULL COMMENT '预校验主键',
|
||||
warehouse_id varchar(32) NOT NULL COMMENT '作业海外仓',
|
||||
customer_id varchar(32) NOT NULL COMMENT '费用客户',
|
||||
mode varchar(32) NOT NULL COMMENT '扫码类型',
|
||||
execution_no varchar(128) NOT NULL COMMENT '实际作业单号',
|
||||
request_key varchar(255) NOT NULL COMMENT '原扫码幂等键',
|
||||
request_hash varchar(64) NOT NULL COMMENT '原扫码内容哈希',
|
||||
attempt int NOT NULL COMMENT '冻结尝试次数',
|
||||
business_type varchar(32) NOT NULL COMMENT '本次应收业务类型',
|
||||
business_id bigint NOT NULL COMMENT '本次应收业务主键',
|
||||
business_no varchar(128) NOT NULL COMMENT '本次应收业务单号',
|
||||
status varchar(32) NOT NULL COMMENT '资金与扫码状态',
|
||||
plan_json json NOT NULL COMMENT '原批次计费不可变快照',
|
||||
original_amount decimal(24,12) NOT NULL COMMENT '原币仓租金额,币种见计费快照',
|
||||
amount decimal(24,12) NOT NULL COMMENT '人民币结算金额',
|
||||
exchange_rate decimal(24,12) NULL COMMENT '冻结确认汇率,免费出库为空',
|
||||
exchange_rate_month varchar(7) NOT NULL COMMENT '汇率月份',
|
||||
freeze_event_id varchar(128) DEFAULT NULL COMMENT '冻结指令事件',
|
||||
settle_event_id varchar(128) DEFAULT NULL COMMENT '扣款指令事件',
|
||||
release_event_id varchar(128) DEFAULT NULL COMMENT '解冻指令事件',
|
||||
release_status varchar(32) DEFAULT NULL COMMENT '解冻回执状态,失败后由恢复任务重发',
|
||||
wallet_version bigint NOT NULL COMMENT '同一预占资金命令版本,重试使用新版本保留审计',
|
||||
hold_id varchar(128) DEFAULT NULL COMMENT '财务冻结主键',
|
||||
ledger_id varchar(128) DEFAULT NULL COMMENT '财务扣款流水',
|
||||
error_message varchar(1000) DEFAULT NULL COMMENT '资金处理结果',
|
||||
source_fee_id bigint DEFAULT NULL COMMENT '财务费用来源主键',
|
||||
created_at datetime(3) NOT NULL COMMENT '预校验时间',
|
||||
consumed_at datetime(3) DEFAULT NULL COMMENT '实际扫描出库时间',
|
||||
updated_at datetime(3) NOT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_storage_rent_request (warehouse_id,mode,request_key,attempt),
|
||||
KEY idx_storage_rent_execution (mode,execution_no,status),
|
||||
KEY idx_storage_rent_business (customer_id,business_no),
|
||||
KEY idx_storage_rent_recovery (status,updated_at),
|
||||
KEY idx_storage_rent_release (release_status,updated_at)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='仓租扫码资金预占与结算快照';
|
||||
|
||||
-- SKU 换标原计租份额快照,存量数据库可重复执行。
|
||||
SET @storage_rent_sku_column = (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_return_sku_conversion' AND column_name='storage_rent_shares_json');
|
||||
SET @storage_rent_sku_ddl = IF(@storage_rent_sku_column=0, 'ALTER TABLE ll_return_sku_conversion ADD COLUMN storage_rent_shares_json LONGTEXT NULL COMMENT ''原仓租批次迁移快照'' AFTER ownership_json', 'SELECT 1');
|
||||
PREPARE storage_rent_sku_stmt FROM @storage_rent_sku_ddl;
|
||||
EXECUTE storage_rent_sku_stmt;
|
||||
DEALLOCATE PREPARE storage_rent_sku_stmt;
|
||||
|
||||
-- 首版拆柜成本只记录分摊依据,客户应收另行人工登记审核;重复执行保持相同定义。
|
||||
ALTER TABLE ll_destuff_pallet_cost_allocation MODIFY COLUMN fee_source_id BIGINT NULL COMMENT '人工审核后关联的海外费用来源ID';
|
||||
|
||||
Reference in New Issue
Block a user