提交第三方接口订单同步功能

This commit is contained in:
wuweihua
2026-09-10 15:53:23 +08:00
parent 4f5ba43d28
commit e69a6845f5
22 changed files with 1258 additions and 4 deletions
+82
View File
@@ -0,0 +1,82 @@
-- prc_bill / prc_bill_fee: receivable billing from synced orders
-- fields follow prc_quote / prc_quote_fee; extra order_no + customer_code
SET NAMES utf8mb4;
CREATE TABLE IF NOT EXISTS prc_bill (
bill_id VARCHAR(36) NOT NULL COMMENT '计费ID',
bill_key CHAR(32) NOT NULL COMMENT 'MD5(order_no)',
order_no VARCHAR(64) NOT NULL COMMENT '订单号',
tracking_no VARCHAR(64) DEFAULT NULL COMMENT '运单号',
customer_id BIGINT(20) NOT NULL DEFAULT 0 COMMENT '客户ID',
customer_code VARCHAR(50) DEFAULT NULL COMMENT '客户代码',
customer_name VARCHAR(100) DEFAULT NULL COMMENT '客户名称',
pieces INT(11) DEFAULT NULL COMMENT '件数',
actual_weight DECIMAL(10,3) DEFAULT NULL COMMENT '实际重量KG',
volume DECIMAL(12,4) DEFAULT NULL COMMENT '体积m3',
volume_weight DECIMAL(10,3) DEFAULT NULL COMMENT '材积重KG',
pkg_length DECIMAL(10,2) DEFAULT NULL COMMENT '长CM',
pkg_width DECIMAL(10,2) DEFAULT NULL COMMENT '宽CM',
pkg_height DECIMAL(10,2) DEFAULT NULL COMMENT '高CM',
shipper_name VARCHAR(100) DEFAULT NULL COMMENT '发件人',
consignee_name VARCHAR(100) DEFAULT NULL COMMENT '收件人',
dest_postcode VARCHAR(20) DEFAULT NULL COMMENT '目的邮编',
warehouse_code VARCHAR(50) DEFAULT NULL COMMENT '仓库',
order_time DATETIME DEFAULT NULL COMMENT '下单时间',
order_remark VARCHAR(500) DEFAULT NULL COMMENT '订单备注',
product_code VARCHAR(20) NOT NULL COMMENT '产品代码',
product_name VARCHAR(100) DEFAULT NULL COMMENT '产品名称',
country_code CHAR(2) DEFAULT NULL COMMENT '国家二字码',
country_name VARCHAR(50) DEFAULT NULL COMMENT '国家名称',
weight DECIMAL(10,3) NOT NULL COMMENT '计费重量KG',
biz_date DATE NOT NULL COMMENT '计费日期',
tms_id BIGINT(20) DEFAULT NULL COMMENT '多租户系统ID',
match_source VARCHAR(30) DEFAULT NULL COMMENT '命中来源',
match_message VARCHAR(200) DEFAULT NULL COMMENT '命中说明',
price_set_id BIGINT(20) DEFAULT NULL COMMENT '价格套餐ID',
price_set_code VARCHAR(20) DEFAULT NULL COMMENT '套餐编码',
price_set_name VARCHAR(50) DEFAULT NULL COMMENT '套餐名称',
set_type VARCHAR(10) DEFAULT NULL COMMENT '计价类型',
bind_priority INT(11) DEFAULT NULL COMMENT '客户套餐优先级',
customer_priceset_id BIGINT(20) DEFAULT NULL COMMENT '客户套餐绑定ID',
product_country_id BIGINT(20) DEFAULT NULL COMMENT '关联 bms_product_country.detail_id',
weight_min DECIMAL(10,4) DEFAULT NULL COMMENT '重量段下限',
weight_max DECIMAL(10,4) DEFAULT NULL COMMENT '重量段上限',
weight_label VARCHAR(50) DEFAULT NULL COMMENT '重量段展示',
effective_date DATE DEFAULT NULL COMMENT '产品明细生效日',
charge_weight DECIMAL(10,3) DEFAULT NULL COMMENT '计费重量',
freight_rate DECIMAL(10,4) DEFAULT NULL COMMENT '运费单价',
base_freight_rate DECIMAL(10,4) DEFAULT NULL COMMENT '折扣前单价',
discount_percent DECIMAL(5,2) DEFAULT NULL COMMENT '折扣百分数',
registration_fee DECIMAL(10,2) DEFAULT NULL COMMENT '挂号费',
freight_amount DECIMAL(10,2) DEFAULT NULL COMMENT '运费金额',
surcharge_amount DECIMAL(10,2) DEFAULT NULL COMMENT '附加费合计',
payable_total DECIMAL(10,2) DEFAULT NULL COMMENT '应收总额',
currency VARCHAR(10) NOT NULL DEFAULT 'CNY' COMMENT '币种',
round_mode VARCHAR(20) NOT NULL DEFAULT 'HALF_UP' COMMENT '取值方式',
created_by VARCHAR(64) DEFAULT '' COMMENT '创建人',
created_at DATETIME DEFAULT NULL COMMENT '创建时间',
updated_by VARCHAR(64) DEFAULT '' COMMENT '更新人',
updated_at DATETIME DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (bill_id),
UNIQUE KEY uk_bill_order (order_no),
UNIQUE KEY uk_bill_key (bill_key),
INDEX idx_bill_customer (customer_code, biz_date),
INDEX idx_bill_product (product_code, country_code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='计费应收主表-订单同步计费';
CREATE TABLE IF NOT EXISTS prc_bill_fee (
fee_id VARCHAR(36) NOT NULL COMMENT '费用明细ID',
bill_id VARCHAR(36) NOT NULL COMMENT '计费ID',
fee_type VARCHAR(30) NOT NULL COMMENT '费用类型(字典bms_fee_type)',
fee_name VARCHAR(100) DEFAULT NULL COMMENT '费用名称',
sc_id BIGINT(20) NOT NULL DEFAULT 0 COMMENT '附加费配置ID',
amount DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '金额',
currency VARCHAR(10) NOT NULL DEFAULT 'CNY' COMMENT '币种',
round_mode VARCHAR(20) DEFAULT 'HALF_UP' COMMENT '取值方式',
remark VARCHAR(500) DEFAULT NULL COMMENT '备注',
created_at DATETIME DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (fee_id),
UNIQUE KEY uk_bill_fee_item (bill_id, fee_type, sc_id),
INDEX idx_bill_fee_type (fee_type),
CONSTRAINT fk_bill_fee_bill FOREIGN KEY (bill_id) REFERENCES prc_bill (bill_id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='计费应收费用明细';
+23
View File
@@ -0,0 +1,23 @@
SET NAMES utf8mb4;
-- visible C menu under billing center (2300)
INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
SELECT 2310, N'同步计费', 2300, 2, 'bill', 'price/billing/bill', '', 'BillingBill', 1, 0, 'C', '0', '0', 'price:billing:bill', 'list', 'admin', sysdate(), N'订单同步计费应收'
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2310);
UPDATE sys_menu SET menu_name = N'同步计费', parent_id = 2300, order_num = 2, path = 'bill', component = 'price/billing/bill', route_name = 'BillingBill', menu_type = 'C', visible = '0', perms = 'price:billing:bill', remark = N'订单同步计费应收'
WHERE menu_id = 2310;
INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time)
SELECT 2311, N'计费查询', 2310, 1, '', NULL, 1, 0, 'F', '0', '0', 'price:billing:bill', '#', 'admin', sysdate()
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2311);
UPDATE sys_menu SET menu_name = N'计费查询', parent_id = 2310, menu_type = 'F', path = '', component = NULL, perms = 'price:billing:bill' WHERE menu_id = 2311;
INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time)
SELECT 2312, N'计费详情', 2310, 2, '', NULL, 1, 0, 'F', '0', '0', 'price:billing:bill', '#', 'admin', sysdate()
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2312);
INSERT INTO sys_role_menu (role_id, menu_id)
SELECT 1, m.menu_id FROM (SELECT 2310 AS menu_id UNION SELECT 2311 UNION SELECT 2312) m
WHERE NOT EXISTS (SELECT 1 FROM sys_role_menu rm WHERE rm.role_id = 1 AND rm.menu_id = m.menu_id);
@@ -0,0 +1,21 @@
-- prc_bill add order snapshot columns
SET NAMES utf8mb4;
ALTER TABLE prc_bill
ADD COLUMN tracking_no VARCHAR(64) DEFAULT NULL COMMENT '运单号' AFTER order_no,
ADD COLUMN customer_name VARCHAR(100) DEFAULT NULL COMMENT '客户名称' AFTER customer_code,
ADD COLUMN pieces INT(11) DEFAULT NULL COMMENT '件数' AFTER customer_name,
ADD COLUMN actual_weight DECIMAL(10,3) DEFAULT NULL COMMENT '实际重量KG' AFTER pieces,
ADD COLUMN volume DECIMAL(12,4) DEFAULT NULL COMMENT '体积m3' AFTER actual_weight,
ADD COLUMN volume_weight DECIMAL(10,3) DEFAULT NULL COMMENT '材积重KG' AFTER volume,
ADD COLUMN pkg_length DECIMAL(10,2) DEFAULT NULL COMMENT '长CM' AFTER volume_weight,
ADD COLUMN pkg_width DECIMAL(10,2) DEFAULT NULL COMMENT '宽CM' AFTER pkg_length,
ADD COLUMN pkg_height DECIMAL(10,2) DEFAULT NULL COMMENT '高CM' AFTER pkg_width,
ADD COLUMN shipper_name VARCHAR(100) DEFAULT NULL COMMENT '发件人' AFTER pkg_height,
ADD COLUMN consignee_name VARCHAR(100) DEFAULT NULL COMMENT '收件人' AFTER shipper_name,
ADD COLUMN dest_postcode VARCHAR(20) DEFAULT NULL COMMENT '目的邮编' AFTER consignee_name,
ADD COLUMN warehouse_code VARCHAR(50) DEFAULT NULL COMMENT '仓库' AFTER dest_postcode,
ADD COLUMN order_time DATETIME DEFAULT NULL COMMENT '下单时间' AFTER warehouse_code,
ADD COLUMN order_remark VARCHAR(500) DEFAULT NULL COMMENT '订单备注' AFTER order_time;
ALTER TABLE prc_bill ADD INDEX idx_bill_tracking (tracking_no);