admin/db.sql
zzh fe30d071e6 feat(order): 修复列表状态筛选、收件国家名与小包轨迹同步
改用仓储链式 Where 修复分页列表状态过滤失效;保存并返回 ConsigneeCountryName;预报成功后异步 UpsertSmallBag;仅草稿/已预报可删除。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 19:43:35 +08:00

949 lines
50 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- OMS Admin schema
-- Target database: MySQL 8.0+
-- Notes:
-- 1. Physical foreign keys are intentionally omitted. The project uses logical foreign keys plus indexes to reduce import friction,
-- avoid circular dependency issues, and better fit soft-delete based business flows.
-- 2. The source spec references `t_sales_product_allocation_rule`, but no concrete table definition exists. The actual design stores
-- allocation scheme on `t_sales_product` and provider rows on `t_sales_product_allocation_provider`.
-- 3. `t_order` keeps SenderId/RecipientId/DeclarationId for compatibility with the original spec, while child tables also keep OrderId.
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
DROP TABLE IF EXISTS `t_warehouse_address`;
DROP TABLE IF EXISTS `t_notice_read`;
DROP TABLE IF EXISTS `t_notice`;
DROP TABLE IF EXISTS `t_dict`;
DROP TABLE IF EXISTS `t_country`;
DROP TABLE IF EXISTS `t_recharge_record`;
DROP TABLE IF EXISTS `t_customer`;
DROP TABLE IF EXISTS `t_label_print_record`;
DROP TABLE IF EXISTS `t_outbound_record`;
DROP TABLE IF EXISTS `t_inbound_record`;
DROP TABLE IF EXISTS `t_label_template`;
DROP TABLE IF EXISTS `t_auto_trigger`;
DROP TABLE IF EXISTS `t_weight_rounding_info`;
DROP TABLE IF EXISTS `t_weight_rounding`;
DROP TABLE IF EXISTS `t_weight_rule_info`;
DROP TABLE IF EXISTS `t_weight_rule`;
DROP TABLE IF EXISTS `t_kpi_area_info`;
DROP TABLE IF EXISTS `t_kpi_area`;
DROP TABLE IF EXISTS `t_service_channel_publish_record`;
DROP TABLE IF EXISTS `t_service_channel_price_detail`;
DROP TABLE IF EXISTS `t_service_channel_price_factor`;
DROP TABLE IF EXISTS `t_service_channel_price`;
DROP TABLE IF EXISTS `t_service_channel`;
DROP TABLE IF EXISTS `t_service_channel_group`;
DROP TABLE IF EXISTS `t_sales_product_publish_record`;
DROP TABLE IF EXISTS `t_sales_product_allocation_provider`;
DROP TABLE IF EXISTS `t_sales_product_price_detail`;
DROP TABLE IF EXISTS `t_sales_product_price_factor`;
DROP TABLE IF EXISTS `t_sales_product_price`;
DROP TABLE IF EXISTS `t_sales_product`;
DROP TABLE IF EXISTS `t_order_fee`;
DROP TABLE IF EXISTS `t_order_weight`;
DROP TABLE IF EXISTS `t_order_declaration`;
DROP TABLE IF EXISTS `t_order_recipient`;
DROP TABLE IF EXISTS `t_order_sender`;
DROP TABLE IF EXISTS `t_order_task_fail`;
DROP TABLE IF EXISTS `t_order_task`;
DROP TABLE IF EXISTS `t_order_template`;
DROP TABLE IF EXISTS `t_order`;
CREATE TABLE `t_order` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`RequestId` VARCHAR(64) NULL COMMENT '请求幂等ID',
`ServiceNo` VARCHAR(64) NOT NULL COMMENT '运单号',
`ClientNo` VARCHAR(64) NULL COMMENT '客户单号',
`TrackNo` VARCHAR(64) NULL COMMENT '跟踪号',
`ProductCode` VARCHAR(128) NULL COMMENT '产品编码',
`ChannelCode` VARCHAR(128) NULL COMMENT '渠道编码',
`ConsigneeCountry` VARCHAR(8) NULL COMMENT '国家二字码',
`ConsigneeCountryName` VARCHAR(64) NULL COMMENT '国家中文名称',
`CargoAttribute` VARCHAR(32) NULL COMMENT '货物属性:general/electronics/sensitive',
`ExportCustomsMode` VARCHAR(32) NULL COMMENT '出口报关方式',
`PredeclareFailReason` VARCHAR(512) NULL COMMENT '预报失败原因',
`SalesProductRulesVersion` VARCHAR(64) NULL COMMENT '销售产品规则快照版本',
`SalesProductPriceVersion` VARCHAR(64) NULL COMMENT '销售产品价格快照版本',
`OrderStatus` VARCHAR(32) NOT NULL COMMENT '订单状态',
`WarehouseId` INT NULL COMMENT '仓库ID',
`CustomerId` INT NULL COMMENT '客户ID',
`SenderId` INT NULL COMMENT '发件人ID',
`RecipientId` INT NULL COMMENT '收件人ID',
`DeclarationId` INT NULL COMMENT '申报信息ID',
`ReceiveTime` DATETIME NULL COMMENT '收货时间',
`ShipTime` DATETIME NULL COMMENT '发货时间',
`PayTime` DATETIME NULL COMMENT '支付时间',
`IsPaid` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已支付:0-否,1-是',
`SignTime` DATETIME NULL COMMENT '签收时间',
`IsCod` TINYINT NOT NULL DEFAULT 0 COMMENT '是否COD:0-否,1-是',
`CodCurrency` VARCHAR(16) NULL COMMENT 'COD币种',
`CodSum` DECIMAL(18,4) NULL COMMENT 'COD金额',
`DeclaredCurrency` VARCHAR(16) NULL COMMENT '申报币种',
`DeclaredSum` DECIMAL(18,4) NULL COMMENT '申报金额',
`Quantity` INT NULL COMMENT '包裹数量',
`IsIntercept` TINYINT NOT NULL DEFAULT 0 COMMENT '是否拦截:0-否,1-是',
`IsRemote` TINYINT NOT NULL DEFAULT 0 COMMENT '是否偏远:0-否,1-是',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_ord_service_no` (`ServiceNo`),
UNIQUE KEY `uk_ord_request_id` (`RequestId`),
KEY `idx_ord_customer_status_ctime` (`CustomerId`, `OrderStatus`, `CreateTime`),
KEY `idx_ord_track_no` (`TrackNo`),
KEY `idx_ord_client_no` (`ClientNo`),
KEY `idx_ord_product_channel` (`ProductCode`, `ChannelCode`),
KEY `idx_ord_warehouse_status` (`WarehouseId`, `OrderStatus`),
KEY `idx_ord_sender` (`SenderId`),
KEY `idx_ord_recipient` (`RecipientId`),
KEY `idx_ord_declaration` (`DeclarationId`)
) COMMENT='订单表';
CREATE TABLE `t_order_template` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`Name` VARCHAR(64) NOT NULL COMMENT '模板名称',
`Type` VARCHAR(16) NOT NULL COMMENT 'standard/custom',
`TemplateKey` VARCHAR(64) NULL COMMENT '模板标识',
`CustomerId` INT NULL COMMENT '客户ID(自定义模板)',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_ord_tpl_type_key` (`Type`, `TemplateKey`),
KEY `idx_ord_tpl_customer_type` (`CustomerId`, `Type`)
) COMMENT='下单模板表';
CREATE TABLE `t_order_task` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`TaskName` VARCHAR(128) NOT NULL COMMENT '任务名称',
`Quantity` INT NULL COMMENT '数量',
`SuccessCount` INT NULL COMMENT '成功数',
`FailCount` INT NULL COMMENT '失败数',
`Status` VARCHAR(16) NOT NULL COMMENT '任务状态:processing/completed/pending',
`TemplateId` INT NULL COMMENT '模板ID',
`CustomerId` INT NULL COMMENT '客户ID',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_ord_task_customer_status_ctime` (`CustomerId`, `Status`, `CreateTime`),
KEY `idx_ord_task_template` (`TemplateId`)
) COMMENT='下单任务表';
CREATE TABLE `t_order_task_fail` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`TaskId` INT NOT NULL COMMENT '任务ID',
`RowNumber` INT NOT NULL COMMENT 'Excel行号',
`Reason` VARCHAR(512) NOT NULL COMMENT '失败原因',
`RawDataJson` JSON NULL COMMENT '原始行数据',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_ord_task_fail_task` (`TaskId`),
KEY `idx_ord_task_fail_row` (`TaskId`, `RowNumber`)
) COMMENT='下单任务失败明细表';
CREATE TABLE `t_order_sender` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`OrderId` INT NOT NULL COMMENT '订单ID',
`SenderName` VARCHAR(50) NULL COMMENT '姓名',
`Company` VARCHAR(255) NULL COMMENT '公司',
`Country` INT NULL COMMENT '国家',
`Province` VARCHAR(50) NULL COMMENT '州省',
`City` VARCHAR(50) NULL COMMENT '城市',
`ZipCode` VARCHAR(50) NULL COMMENT '邮编',
`StreetAddress1` VARCHAR(500) NULL COMMENT '地址1',
`StreetAddress2` VARCHAR(500) NULL COMMENT '地址2',
`StreetAddress3` VARCHAR(500) NULL COMMENT '地址3',
`HouseNumber` VARCHAR(50) NULL COMMENT '门牌号',
`Phone` VARCHAR(50) NULL COMMENT '手机',
`TelePhone` VARCHAR(50) NULL COMMENT '电话',
`Email` VARCHAR(60) NULL COMMENT '邮箱',
`IsDefault` TINYINT NOT NULL DEFAULT 0 COMMENT '是否默认:0-否,1-是',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_ord_sender_order` (`OrderId`),
KEY `idx_ord_sender_phone` (`Phone`)
) COMMENT='订单发件人表';
CREATE TABLE `t_order_recipient` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`OrderId` INT NOT NULL COMMENT '订单ID',
`RecipientsName` VARCHAR(30) NULL COMMENT '收件人名称',
`CompanyName` VARCHAR(60) NULL COMMENT '收件人公司名称',
`Country` INT NULL COMMENT '国家',
`Phone` VARCHAR(20) NULL COMMENT '收件人手机',
`TelePhone` VARCHAR(20) NULL COMMENT '收件人电话',
`ZipCode` VARCHAR(15) NULL COMMENT '收件人邮编',
`Province` VARCHAR(25) NULL COMMENT '收件人省/州',
`City` VARCHAR(25) NULL COMMENT '收件人城市',
`StreetNumber` VARCHAR(20) NULL COMMENT '收件人门牌号',
`StreetAddress1` VARCHAR(255) NULL COMMENT '收件人地址1',
`StreetAddress2` VARCHAR(255) NULL COMMENT '收件人地址2',
`StreetAddress3` VARCHAR(255) NULL COMMENT '收件人地址3',
`Email` VARCHAR(60) NULL COMMENT '收件人邮箱',
`TaxType` INT NULL COMMENT '税号类型',
`TaxNo` VARCHAR(35) NULL COMMENT '税号',
`CertificateType` INT NULL COMMENT '证件类型',
`CertificateNo` VARCHAR(30) NULL COMMENT '证件号码',
`Eori` VARCHAR(255) NULL COMMENT 'EORI',
`Vat` VARCHAR(255) NULL COMMENT 'Vat',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_ord_rec_order` (`OrderId`),
KEY `idx_ord_rec_phone` (`Phone`),
KEY `idx_ord_rec_zip` (`ZipCode`)
) COMMENT='订单收件人表';
CREATE TABLE `t_order_declaration` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`OrderId` INT NOT NULL COMMENT '订单ID',
`CnName` VARCHAR(500) NULL COMMENT '品名-中文',
`EnName` VARCHAR(500) NULL COMMENT '品名-英文',
`Sku` VARCHAR(255) NULL COMMENT 'SKU',
`Unit` VARCHAR(5) NULL COMMENT '单位',
`UnitPrice` DECIMAL(10,2) NULL COMMENT '单价',
`UnitWeight` DECIMAL(11,3) NULL COMMENT '单重',
`Quantity` INT NULL COMMENT '数量',
`Amount` DECIMAL(11,2) NULL COMMENT '总金额',
`Weight` DECIMAL(11,3) NULL COMMENT '总重量',
`HsCode` VARCHAR(50) NULL COMMENT 'HsCode',
`ImHsCode` VARCHAR(50) NULL COMMENT '进口HsCode',
`ExHsCode` VARCHAR(50) NULL COMMENT '出口HsCode',
`SkuImage` VARCHAR(255) NULL COMMENT '图片',
`Category` VARCHAR(20) NULL COMMENT '类别',
`Brand` VARCHAR(50) NULL COMMENT '品牌',
`BrandType` VARCHAR(50) NULL COMMENT '品牌类型',
`IsMagnetic` TINYINT NOT NULL DEFAULT 0 COMMENT '是否带磁带电:0-否,1-是',
`Distribution` VARCHAR(255) NULL COMMENT '配货信息',
`Material` VARCHAR(50) NULL COMMENT '材质',
`EnMaterial` VARCHAR(64) NULL COMMENT '英文材质',
`Purpose` VARCHAR(50) NULL COMMENT '用途',
`Attributes` VARCHAR(50) NULL COMMENT '属性',
`OriginCountry` VARCHAR(50) NULL COMMENT '原产国',
`SalesLink` VARCHAR(255) NULL COMMENT '销售链接',
`Model` VARCHAR(64) NULL COMMENT '型号',
`Specifications` VARCHAR(50) NULL COMMENT '规格',
`Comment` VARCHAR(500) NULL COMMENT '备注',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_ord_decl_order` (`OrderId`),
KEY `idx_ord_decl_sku` (`Sku`)
) COMMENT='订单申报信息表';
CREATE TABLE `t_order_weight` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`OrderId` INT NOT NULL COMMENT '订单ID',
`Type` VARCHAR(16) NOT NULL COMMENT '类型:forecast/receive/ship/downstream',
`Length` DECIMAL(10,2) NULL COMMENT '长(cm)',
`Width` DECIMAL(10,2) NULL COMMENT '宽(cm)',
`Height` DECIMAL(10,2) NULL COMMENT '高(cm)',
`ActualWeight` DECIMAL(10,3) NULL COMMENT '实重(kg)',
`VolumetricWeight` DECIMAL(10,3) NULL COMMENT '体积重(kg)',
`ChargeableWeight` DECIMAL(10,3) NULL COMMENT '计费重(kg)',
`Cubic` DECIMAL(12,6) NULL COMMENT '立方(m³)',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_ord_wgt_order_type` (`OrderId`, `Type`)
) COMMENT='订单件重尺表';
CREATE TABLE `t_order_fee` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`OrderId` INT NOT NULL COMMENT '订单ID',
`Type` VARCHAR(16) NOT NULL COMMENT '类型:receivable/payable',
`CostItem` VARCHAR(64) NOT NULL COMMENT '费用项',
`Amount` DECIMAL(18,4) NOT NULL COMMENT '金额',
`Currency` VARCHAR(16) NOT NULL COMMENT '币种:RMB/USD/EUR',
`DownstreamProvider` VARCHAR(128) NULL COMMENT '下游服务商',
`PriceNo` VARCHAR(64) NULL COMMENT '价格编号',
`PriceEffectiveTime` DATETIME NULL COMMENT '价格编号生效时间',
`ChargingStage` VARCHAR(16) NULL COMMENT '计费阶段:forecast/inbound/outbound',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_ord_fee_order_type` (`OrderId`, `Type`),
KEY `idx_ord_fee_order_item` (`OrderId`, `CostItem`),
KEY `idx_ord_fee_price_no` (`PriceNo`)
) COMMENT='订单费用表';
CREATE TABLE `t_sales_product` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`ProductCode` VARCHAR(64) NOT NULL COMMENT '产品编码',
`ProductName` VARCHAR(128) NOT NULL COMMENT '产品名称',
`ProductGroup` VARCHAR(32) NULL COMMENT '分组(专线/快递/邮政)',
`MinTimeliness` INT NULL COMMENT '最小时效(天)',
`MaxTimeliness` INT NULL COMMENT '最大时效(天)',
`CustomerWaybill` VARCHAR(32) NULL COMMENT '系统面单/客户面单',
`BlacklistAreaId` INT NULL COMMENT '黑名单区ID',
`RemoteAreaId` INT NULL COMMENT '偏远分区ID',
`PriceAreaId` INT NULL COMMENT '价格分区ID',
`WeightRuleId` INT NULL COMMENT '计重规则ID',
`WeightRoundingId` INT NULL COMMENT '计重进位ID',
`ProductDescription` TEXT COMMENT '产品描述',
`PreStorageScript` TEXT COMMENT '入库前脚本',
`IsActive` TINYINT NOT NULL DEFAULT 1 COMMENT '是否启用',
`Scheme` VARCHAR(32) NOT NULL COMMENT '排货方案:costLowest/timeFastest/overallBest',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_sp_code` (`ProductCode`),
KEY `idx_sp_group_active` (`ProductGroup`, `IsActive`),
KEY `idx_sp_scheme` (`Scheme`),
KEY `idx_sp_weight_rule` (`WeightRuleId`),
KEY `idx_sp_weight_rounding` (`WeightRoundingId`)
) COMMENT='销售产品表';
CREATE TABLE `t_sales_product_price` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`SalesProductId` INT NOT NULL COMMENT '销售产品ID',
`SerialNumber` INT NOT NULL COMMENT '序号',
`Status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态:0-禁用,1-启用',
`PriceName` VARCHAR(64) NOT NULL COMMENT '价格名称',
`CostItem` VARCHAR(64) NOT NULL COMMENT '费用项',
`CostUnit` VARCHAR(16) NOT NULL COMMENT '费用单位:kg/票/件',
`Currency` VARCHAR(16) NOT NULL COMMENT '币种:RMB/USD/EUR',
`ChargingCondition` VARCHAR(64) NULL COMMENT '收费条件',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_spp_sp_serial` (`SalesProductId`, `SerialNumber`),
KEY `idx_spp_sp_status` (`SalesProductId`, `Status`)
) COMMENT='产品卖价表';
CREATE TABLE `t_sales_product_price_factor` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`PriceId` INT NOT NULL COMMENT '产品卖价ID',
`SerialNumber` INT NOT NULL COMMENT '序号(决定因素排序)',
`Factor` VARCHAR(64) NOT NULL COMMENT '因素:货物类型/分区/重量/仓库/客户',
`FactorValues` JSON NULL COMMENT '因素值数组',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_sppf_price_serial` (`PriceId`, `SerialNumber`)
) COMMENT='产品卖价计费因素表';
CREATE TABLE `t_sales_product_price_detail` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`PriceId` INT NOT NULL COMMENT '产品卖价ID',
`FactorValuesJson` JSON NULL COMMENT '非客户因素组合',
`CalculationFormula` VARCHAR(32) NOT NULL COMMENT '计算公式:总价/单价/续单价',
`CalculatedValue` DECIMAL(18,4) NULL COMMENT '计算值',
`CustomerGroupValues` JSON NULL COMMENT '客户组对应价格',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_sppd_price` (`PriceId`)
) COMMENT='产品卖价价格明细表';
CREATE TABLE `t_sales_product_allocation_provider` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`SalesProductId` INT NOT NULL COMMENT '销售产品ID',
`SerialNumber` INT NOT NULL COMMENT '序号',
`ProviderName` VARCHAR(128) NOT NULL COMMENT '服务商名称',
`ServiceChannelId` INT NULL COMMENT '服务渠道ID',
`Weight` INT NOT NULL COMMENT '权重(评分用)',
`CustomerIds` JSON NULL COMMENT '指定客户ID数组,空表示全部',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_spap_sp_serial` (`SalesProductId`, `SerialNumber`),
KEY `idx_spap_channel` (`ServiceChannelId`)
) COMMENT='排货规则服务商表';
CREATE TABLE `t_sales_product_publish_record` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`SalesProductId` INT NOT NULL COMMENT '销售产品ID',
`Version` VARCHAR(32) NOT NULL COMMENT '版本号,如 20231227112339',
`OperatorType` VARCHAR(16) NOT NULL COMMENT '操作类型:price/rules',
`Status` VARCHAR(16) NOT NULL COMMENT '状态:生效/回滚/无效',
`PublishUser` VARCHAR(64) NOT NULL COMMENT '发布人',
`PublishTime` DATETIME NOT NULL COMMENT '发布时间',
`Description` VARCHAR(512) NULL COMMENT '版本备注',
`Content` JSON NULL COMMENT '发布内容JSON快照',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_sppr_prod_op_ver` (`SalesProductId`, `OperatorType`, `Version`),
KEY `idx_sppr_prod_op_time` (`SalesProductId`, `OperatorType`, `PublishTime`)
) COMMENT='销售产品发布记录表';
CREATE TABLE `t_service_channel_group` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`Name` VARCHAR(128) NOT NULL COMMENT '渠道组名称',
`AppId` INT NOT NULL COMMENT '应用ID',
`ApiServiceProviderId` INT NOT NULL COMMENT 'API服务商ID',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_scg_name` (`Name`),
KEY `idx_scg_app_provider` (`AppId`, `ApiServiceProviderId`)
) COMMENT='服务渠道组表';
CREATE TABLE `t_service_channel` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`GroupId` INT NULL COMMENT '渠道组ID',
`ChannelCode` VARCHAR(64) NOT NULL COMMENT '渠道编码',
`ChannelName` VARCHAR(128) NOT NULL COMMENT '渠道名称',
`MinTime` INT NULL COMMENT '最小时效(天)',
`MaxTime` INT NULL COMMENT '最大时效(天)',
`ForecastType` VARCHAR(32) NULL COMMENT '预报单号类型(customer/waybill/tracking)',
`ForecastCode` VARCHAR(128) NULL COMMENT '预报单号',
`Description` TEXT COMMENT '描述',
`PreScript` TEXT COMMENT '入库前脚本',
`IsActive` TINYINT NOT NULL DEFAULT 1 COMMENT '是否启用',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_sc_code` (`ChannelCode`),
KEY `idx_sc_group_active` (`GroupId`, `IsActive`),
KEY `idx_sc_name` (`ChannelName`)
) COMMENT='服务渠道表';
CREATE TABLE `t_service_channel_price` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`ServiceChannelId` INT NOT NULL COMMENT '服务渠道ID',
`SerialNumber` INT NOT NULL COMMENT '序号',
`Status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态:0-禁用,1-启用',
`PriceName` VARCHAR(64) NOT NULL COMMENT '价格名称',
`CostItem` VARCHAR(64) NOT NULL COMMENT '费用项',
`CostUnit` VARCHAR(16) NOT NULL COMMENT '费用单位:kg/票/件',
`Currency` VARCHAR(16) NOT NULL COMMENT '币种:RMB/USD/EUR',
`ChargingCondition` VARCHAR(64) NULL COMMENT '收费条件',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_scp_sc_serial` (`ServiceChannelId`, `SerialNumber`),
KEY `idx_scp_sc_status` (`ServiceChannelId`, `Status`)
) COMMENT='渠道买价表';
CREATE TABLE `t_service_channel_price_factor` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`PriceId` INT NOT NULL COMMENT '渠道买价ID',
`SerialNumber` INT NOT NULL COMMENT '序号',
`Factor` VARCHAR(64) NOT NULL COMMENT '因素:货物类型/分区/重量/仓库/客户',
`FactorValues` JSON NULL COMMENT '因素值数组',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_scpf_price_serial` (`PriceId`, `SerialNumber`)
) COMMENT='渠道买价计费因素表';
CREATE TABLE `t_service_channel_price_detail` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`PriceId` INT NOT NULL COMMENT '渠道买价ID',
`FactorValuesJson` JSON NULL COMMENT '非客户因素组合',
`CalculationFormula` VARCHAR(32) NOT NULL COMMENT '计算公式:总价/单价/续单价',
`CalculatedValue` DECIMAL(18,4) NULL COMMENT '计算值',
`CustomerGroupValues` JSON NULL COMMENT '客户组对应价格',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_scpd_price` (`PriceId`)
) COMMENT='渠道买价价格明细表';
CREATE TABLE `t_service_channel_publish_record` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`ServiceChannelId` INT NOT NULL COMMENT '服务渠道ID',
`Version` VARCHAR(32) NOT NULL COMMENT '版本号',
`OperatorType` VARCHAR(16) NOT NULL COMMENT '操作类型:price/rules',
`Status` VARCHAR(16) NOT NULL COMMENT '状态:生效/回滚/无效',
`PublishUser` VARCHAR(64) NOT NULL COMMENT '发布人',
`PublishTime` DATETIME NOT NULL COMMENT '发布时间',
`Description` VARCHAR(512) NULL COMMENT '版本备注',
`Content` JSON NULL COMMENT '发布内容JSON快照',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_scpr_chan_op_ver` (`ServiceChannelId`, `OperatorType`, `Version`),
KEY `idx_scpr_chan_op_time` (`ServiceChannelId`, `OperatorType`, `PublishTime`)
) COMMENT='服务渠道发布记录表';
CREATE TABLE `t_kpi_area` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`AppKey` VARCHAR(64) NOT NULL COMMENT '应用标识',
`AreaType` VARCHAR(32) NOT NULL COMMENT '类型:blacklist/remote/warning',
`Name` VARCHAR(128) NOT NULL COMMENT '分区名称',
`SystemName` VARCHAR(128) NULL COMMENT '系统名称',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_kpi_area_app_type` (`AppKey`, `AreaType`),
KEY `idx_kpi_area_name` (`Name`)
) COMMENT='分区表';
CREATE TABLE `t_kpi_area_info` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`AreaId` INT NOT NULL COMMENT '分区ID',
`CountryCode` VARCHAR(8) NULL COMMENT '国家二字码',
`CountryName` VARCHAR(64) NULL COMMENT '国家名称',
`Province` VARCHAR(128) NULL COMMENT '省份',
`City` VARCHAR(128) NULL COMMENT '城市',
`LeftPostcode` VARCHAR(32) NULL COMMENT '左侧邮编',
`RightPostcode` VARCHAR(32) NULL COMMENT '右侧邮编',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_kpi_info_area` (`AreaId`),
KEY `idx_kpi_info_area_country` (`AreaId`, `CountryCode`)
) COMMENT='分区明细表';
CREATE TABLE `t_weight_rule` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`AppKey` VARCHAR(64) NOT NULL COMMENT '应用标识',
`Name` VARCHAR(128) NOT NULL COMMENT '规则名称',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_wr_app_name` (`AppKey`, `Name`)
) COMMENT='计重规则表';
CREATE TABLE `t_weight_rule_info` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`RuleId` INT NOT NULL COMMENT '计重规则ID',
`Client` VARCHAR(128) NOT NULL COMMENT '客户/客户组',
`Condition` VARCHAR(256) NOT NULL COMMENT '条件表达式',
`BillableWeight` VARCHAR(64) NOT NULL COMMENT '计费重取值',
`VolumetricFactor` VARCHAR(32) NOT NULL COMMENT '材积系数',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_wri_rule_client` (`RuleId`, `Client`)
) COMMENT='计重规则明细表';
CREATE TABLE `t_weight_rounding` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`AppKey` VARCHAR(64) NOT NULL COMMENT '应用标识',
`Name` VARCHAR(128) NOT NULL COMMENT '进位名称',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_wrd_app_name` (`AppKey`, `Name`)
) COMMENT='计重进位表';
CREATE TABLE `t_weight_rounding_info` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`RoundingId` INT NOT NULL COMMENT '计重进位ID',
`StartValue` DECIMAL(18,4) NOT NULL COMMENT '起始值(kg)',
`EndValue` DECIMAL(18,4) NOT NULL COMMENT '结束值(kg)',
`Public` VARCHAR(32) NULL COMMENT '公共进位值',
`CustomerGroup1` VARCHAR(32) NULL COMMENT '客户组1进位值',
`CustomerGroup2` VARCHAR(32) NULL COMMENT '客户组2进位值',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_wrdi_round_range` (`RoundingId`, `StartValue`, `EndValue`)
) COMMENT='计重进位明细表';
CREATE TABLE `t_auto_trigger` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`Status` TINYINT NOT NULL DEFAULT 1 COMMENT '是否启用',
`Operation` VARCHAR(32) NULL COMMENT '操作:拦截/警告/问题件',
`TriggerTiming` VARCHAR(32) NULL COMMENT '触发时机:下单/入库/出库',
`TriggerCondition` TEXT COMMENT '触发条件',
`PromptMessage` VARCHAR(512) NULL COMMENT '提示信息',
`Notifier` VARCHAR(128) NULL COMMENT '通知人',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_at_status_timing` (`Status`, `TriggerTiming`),
KEY `idx_at_operation` (`Operation`)
) COMMENT='自动触发表';
CREATE TABLE `t_label_template` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`Name` VARCHAR(128) NOT NULL COMMENT '模板名称',
`TemplateJson` JSON NULL COMMENT 'vg-print 模板 JSON',
`TemplateType` VARCHAR(32) NULL COMMENT '尾程/客户/入库/出库/sku',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_lt_name_type` (`Name`, `TemplateType`)
) COMMENT='标签模板表';
CREATE TABLE `t_inbound_record` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`WaybillNo` VARCHAR(64) NOT NULL COMMENT '运单号',
`Weight` DECIMAL(10,2) NULL COMMENT '实重(kg)',
`Length` DECIMAL(10,2) NULL COMMENT '长(cm)',
`Width` DECIMAL(10,2) NULL COMMENT '宽(cm)',
`Height` DECIMAL(10,2) NULL COMMENT '高(cm)',
`SalesProductId` INT NULL COMMENT '销售产品ID',
`DestinationCountry` VARCHAR(8) NULL COMMENT '目的国',
`WarehouseId` INT NULL COMMENT '仓库ID',
`OperateTime` DATETIME NOT NULL COMMENT '操作时间',
`OperatorId` INT NULL COMMENT '操作人ID',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_inb_waybill_time` (`WaybillNo`, `OperateTime`),
KEY `idx_inb_warehouse_time` (`WarehouseId`, `OperateTime`),
KEY `idx_inb_product_time` (`SalesProductId`, `OperateTime`)
) COMMENT='入库记录表';
CREATE TABLE `t_outbound_record` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`WaybillNo` VARCHAR(64) NOT NULL COMMENT '运单号',
`Weight` DECIMAL(10,2) NULL COMMENT '实重(kg)',
`Length` DECIMAL(10,2) NULL COMMENT '长(cm)',
`Width` DECIMAL(10,2) NULL COMMENT '宽(cm)',
`Height` DECIMAL(10,2) NULL COMMENT '高(cm)',
`SalesProductId` INT NULL COMMENT '销售产品ID',
`DestinationCountry` VARCHAR(8) NULL COMMENT '目的国',
`ServiceChannelId` INT NULL COMMENT '服务渠道ID',
`WarehouseId` INT NULL COMMENT '仓库ID',
`OperateTime` DATETIME NOT NULL COMMENT '操作时间',
`OperatorId` INT NULL COMMENT '操作人ID',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_out_waybill_time` (`WaybillNo`, `OperateTime`),
KEY `idx_out_warehouse_time` (`WarehouseId`, `OperateTime`),
KEY `idx_out_product_time` (`SalesProductId`, `OperateTime`),
KEY `idx_out_channel_time` (`ServiceChannelId`, `OperateTime`)
) COMMENT='出库记录表';
CREATE TABLE `t_label_print_record` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`WaybillNo` VARCHAR(64) NOT NULL COMMENT '运单号',
`CustomerOrderNo` VARCHAR(64) NULL COMMENT '客户单号',
`TrackingNo` VARCHAR(64) NULL COMMENT '跟踪号',
`OtherNumber` VARCHAR(64) NULL COMMENT '其他单号',
`LabelTemplateId` INT NULL COMMENT '标签模板ID',
`PrintSuccess` TINYINT NOT NULL DEFAULT 0 COMMENT '是否打印成功',
`PrintTime` DATETIME NOT NULL COMMENT '打印时间',
`OperatorId` INT NULL COMMENT '操作人ID',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_lpr_waybill_time` (`WaybillNo`, `PrintTime`),
KEY `idx_lpr_template` (`LabelTemplateId`),
KEY `idx_lpr_operator_time` (`OperatorId`, `PrintTime`)
) COMMENT='标签打印记录表';
CREATE TABLE `t_customer` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`ParentCustomerId` INT NULL COMMENT '父客户ID,NULL表示主客户',
`UserId` INT NOT NULL COMMENT '关联用户表自增userid',
`CustomerCode` VARCHAR(32) NOT NULL COMMENT '客户编号,规则:前缀w+年份+序号',
`CustomerName` VARCHAR(128) NOT NULL COMMENT '客户名称',
`WechatAvatar` VARCHAR(255) NULL COMMENT '微信头像URL',
`WechatNickname` VARCHAR(64) NULL COMMENT '微信昵称',
`Email` VARCHAR(64) NULL COMMENT '邮箱,用于登录/找回密码',
`Phone` VARCHAR(16) NOT NULL COMMENT '手机号,用于登录/验证',
`Balance` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '账户余额',
`TotalQuota` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '总额度',
`UsedQuota` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '已用额度',
`Status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态:0-禁用,1-正常,2-冻结',
`Remark` VARCHAR(512) NULL COMMENT '备注信息',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人(系统/管理员账号)',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
`Salesman` VARCHAR(32) NULL COMMENT '所属销售员账号',
`CustomerService` VARCHAR(32) NULL COMMENT '所属客服账号',
`CustomerGroup` TINYINT NULL COMMENT '客户分组:0-普通客户,1-VIP1,2-VIP2,3-VIP3,4-VIP4,5-VIP5',
`LastLoginIp` VARCHAR(64) NULL COMMENT '最后在线IP',
`LastLoginTime` DATETIME NULL COMMENT '最后在线时间',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`WechatOpenid` VARCHAR(64) NULL COMMENT '微信OpenID',
`Password` VARCHAR(64) NOT NULL COMMENT '密码(MD5加密存储)',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_cus_code` (`CustomerCode`),
UNIQUE KEY `uk_cus_user` (`UserId`),
UNIQUE KEY `uk_cus_phone` (`Phone`),
UNIQUE KEY `uk_cus_email` (`Email`),
UNIQUE KEY `uk_cus_openid` (`WechatOpenid`),
KEY `idx_cus_parent_status` (`ParentCustomerId`, `Status`),
KEY `idx_cus_status_group` (`Status`, `CustomerGroup`),
KEY `idx_cus_sales_service` (`Salesman`, `CustomerService`)
) COMMENT='客户表';
CREATE TABLE `t_recharge_record` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`CustomerId` INT NOT NULL COMMENT '客户ID(主账号/子账号关联主账号ID)',
`SerialNumber` VARCHAR(64) NOT NULL COMMENT '流水号',
`RechargeTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '充值提交时间',
`PayType` TINYINT NOT NULL COMMENT '支付方式:1-微信,2-支付宝',
`RechargeAmount` DECIMAL(18,2) NOT NULL COMMENT '充值金额,>=0.01',
`RechargeScreenshot` VARCHAR(255) NULL COMMENT '充值截图URL',
`RechargeStatus` TINYINT NOT NULL DEFAULT 0 COMMENT '充值状态:0-待审核,1-审核通过,2-审核驳回',
`Remark` VARCHAR(512) NULL COMMENT '备注(客户/审核人填写)',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
`AuditTime` DATETIME NULL COMMENT '审核时间',
`AuditBy` VARCHAR(32) NULL COMMENT '审核人(管理员账号)',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_rr_serial` (`SerialNumber`),
KEY `idx_rr_customer_status_time` (`CustomerId`, `RechargeStatus`, `RechargeTime`),
KEY `idx_rr_audit_time` (`AuditTime`)
) COMMENT='充值记录表';
CREATE TABLE `t_country` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`ChineseName` VARCHAR(128) NOT NULL COMMENT '国家中文名',
`EnglishName` VARCHAR(128) NOT NULL COMMENT '国家英文名',
`CountryCode` VARCHAR(2) NOT NULL COMMENT 'ISO 3166-1 alpha-2 国家二字码',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_country_code` (`CountryCode`),
KEY `idx_country_name` (`EnglishName`, `ChineseName`)
) COMMENT='国家表';
CREATE TABLE `t_dict` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`DictType` VARCHAR(64) NOT NULL COMMENT '字典类型',
`DictSort` INT NOT NULL DEFAULT 0 COMMENT '排序值',
`DictCode` VARCHAR(64) NOT NULL COMMENT '字典编码',
`DictName` VARCHAR(128) NOT NULL COMMENT '字典名称',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_dict_type_code` (`DictType`, `DictCode`),
KEY `idx_dict_type_sort` (`DictType`, `DictSort`, `Id`)
) COMMENT='系统字典表';
CREATE TABLE `t_notice` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`NoticeType` VARCHAR(16) NOT NULL COMMENT '通知类型:notice/message',
`Title` VARCHAR(200) NOT NULL COMMENT '通知标题',
`Content` TEXT NOT NULL COMMENT '通知内容',
`IsPopup` TINYINT NOT NULL DEFAULT 0 COMMENT '是否弹窗:0-否,1-是',
`ReceiverType` VARCHAR(16) NOT NULL COMMENT '接收对象:user/customer',
`ReceiverIds` JSON NOT NULL COMMENT '接收对象ID列表(JSON数组)',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
KEY `idx_notice_type_receiver_time` (`NoticeType`, `ReceiverType`, `CreateTime`),
KEY `idx_notice_title` (`Title`)
) COMMENT='公告通知表';
CREATE TABLE `t_notice_read` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`NoticeId` INT NOT NULL COMMENT '通知ID',
`ReceiverType` VARCHAR(16) NOT NULL COMMENT '接收对象:user/customer',
`ReceiverId` INT NOT NULL COMMENT '接收主体ID',
`ReadTime` DATETIME NOT NULL COMMENT '已读时间',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_notice_read_identity` (`NoticeId`, `ReceiverType`, `ReceiverId`),
KEY `idx_notice_read_receiver` (`ReceiverType`, `ReceiverId`, `ReadTime`)
) COMMENT='通知已读明细表';
INSERT INTO `t_country`
(`ChineseName`, `EnglishName`, `CountryCode`, `IsDeleted`, `CreateUserId`, `CreateTime`, `UpdateUserId`, `UpdateTime`)
VALUES
('中国', 'China', 'CN', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('中国香港', 'Hong Kong SAR China', 'HK', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('中国澳门', 'Macao SAR China', 'MO', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('中国台湾', 'Taiwan', 'TW', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('美国', 'United States', 'US', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('加拿大', 'Canada', 'CA', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('英国', 'United Kingdom', 'GB', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('爱尔兰', 'Ireland', 'IE', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('德国', 'Germany', 'DE', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('法国', 'France', 'FR', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('意大利', 'Italy', 'IT', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('西班牙', 'Spain', 'ES', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('葡萄牙', 'Portugal', 'PT', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('荷兰', 'Netherlands', 'NL', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('比利时', 'Belgium', 'BE', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('卢森堡', 'Luxembourg', 'LU', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('瑞士', 'Switzerland', 'CH', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('奥地利', 'Austria', 'AT', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('瑞典', 'Sweden', 'SE', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('挪威', 'Norway', 'NO', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('芬兰', 'Finland', 'FI', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('丹麦', 'Denmark', 'DK', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('波兰', 'Poland', 'PL', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('捷克', 'Czechia', 'CZ', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('匈牙利', 'Hungary', 'HU', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('罗马尼亚', 'Romania', 'RO', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('俄罗斯', 'Russia', 'RU', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('乌克兰', 'Ukraine', 'UA', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('土耳其', 'Turkey', 'TR', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('希腊', 'Greece', 'GR', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('以色列', 'Israel', 'IL', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('阿联酋', 'United Arab Emirates', 'AE', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('沙特阿拉伯', 'Saudi Arabia', 'SA', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('日本', 'Japan', 'JP', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('韩国', 'South Korea', 'KR', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('新加坡', 'Singapore', 'SG', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('马来西亚', 'Malaysia', 'MY', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('泰国', 'Thailand', 'TH', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('越南', 'Vietnam', 'VN', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('印度尼西亚', 'Indonesia', 'ID', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('菲律宾', 'Philippines', 'PH', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('印度', 'India', 'IN', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('巴基斯坦', 'Pakistan', 'PK', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('孟加拉国', 'Bangladesh', 'BD', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('澳大利亚', 'Australia', 'AU', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('新西兰', 'New Zealand', 'NZ', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('南非', 'South Africa', 'ZA', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('尼日利亚', 'Nigeria', 'NG', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('肯尼亚', 'Kenya', 'KE', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('埃及', 'Egypt', 'EG', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('巴西', 'Brazil', 'BR', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('阿根廷', 'Argentina', 'AR', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('智利', 'Chile', 'CL', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('哥伦比亚', 'Colombia', 'CO', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('秘鲁', 'Peru', 'PE', 0, 0, CURRENT_TIMESTAMP, NULL, NULL),
('墨西哥', 'Mexico', 'MX', 0, 0, CURRENT_TIMESTAMP, NULL, NULL);
CREATE TABLE `t_warehouse_address` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
`WarehouseName` VARCHAR(128) NOT NULL COMMENT '仓库名称',
`WarehouseType` VARCHAR(32) NOT NULL COMMENT 'main/transit/return/other',
`Recipient` VARCHAR(64) NULL COMMENT '收件人',
`ContactPhone` VARCHAR(32) NULL COMMENT '联系电话',
`ShippingAddress` TEXT COMMENT '收货地址',
`ServicePhone` VARCHAR(32) NULL COMMENT '客服电话',
`ServiceWechat` VARCHAR(64) NULL COMMENT '客服微信',
`ServiceWechatFiles` JSON NULL COMMENT '微信二维码图片',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT '创建人',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UpdateUserId` INT NULL COMMENT '更新人',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_wa_name` (`WarehouseName`),
KEY `idx_wa_type` (`WarehouseType`)
) COMMENT='仓库地址表';
SET FOREIGN_KEY_CHECKS = 1;