-- 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_recharge_record`; DROP TABLE IF EXISTS `t_customer_sub_account`; 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` BIGINT 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 '国家二字码', `CargoAttribute` VARCHAR(32) NULL COMMENT '货物属性:general/electronics/sensitive', `OrderStatus` VARCHAR(32) NOT NULL COMMENT '订单状态', `WarehouseId` BIGINT NULL COMMENT '仓库ID', `CustomerId` BIGINT NULL COMMENT '客户ID', `SenderId` BIGINT NULL COMMENT '发件人ID', `RecipientId` BIGINT NULL COMMENT '收件人ID', `DeclarationId` BIGINT NULL COMMENT '申报信息ID', `ReceiveTime` DATETIME NULL COMMENT '收货时间', `ShipTime` DATETIME NULL COMMENT '发货时间', `PayTime` DATETIME NULL COMMENT '支付时间', `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-是', `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` BIGINT 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` BIGINT 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`), UNIQUE KEY `uk_ord_tpl_type_key` (`Type`, `TemplateKey`), KEY `idx_ord_tpl_customer_type` (`CustomerId`, `Type`) ) COMMENT='下单模板表'; CREATE TABLE `t_order_task` ( `Id` BIGINT 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` BIGINT NULL COMMENT '模板ID', `CustomerId` BIGINT 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_ord_task_customer_status_ctime` (`CustomerId`, `Status`, `CreateTime`), KEY `idx_ord_task_template` (`TemplateId`) ) COMMENT='下单任务表'; CREATE TABLE `t_order_task_fail` ( `Id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1', `TaskId` BIGINT 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` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1', `OrderId` BIGINT 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` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1', `OrderId` BIGINT 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` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1', `OrderId` BIGINT 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` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1', `OrderId` BIGINT 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` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1', `OrderId` BIGINT 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 '价格编号生效时间', `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` BIGINT 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` BIGINT NULL COMMENT '黑名单区ID', `RemoteAreaId` BIGINT NULL COMMENT '偏远分区ID', `WeightRuleId` BIGINT NULL COMMENT '计重规则ID', `WeightRoundingId` BIGINT 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-是', `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` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1', `SalesProductId` BIGINT 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', `ChargingTime` VARCHAR(32) NULL COMMENT '收费时机:预报/出库/签收', `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` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1', `PriceId` BIGINT 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` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1', `PriceId` BIGINT 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` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1', `SalesProductId` BIGINT NOT NULL COMMENT '销售产品ID', `SerialNumber` INT NOT NULL COMMENT '序号', `ProviderName` VARCHAR(128) NOT NULL COMMENT '服务商名称', `ServiceChannelId` BIGINT 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` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1', `SalesProductId` BIGINT 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` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1', `Name` VARCHAR(128) 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`), UNIQUE KEY `uk_scg_name` (`Name`) ) COMMENT='服务渠道组表'; CREATE TABLE `t_service_channel` ( `Id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1', `GroupId` BIGINT 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-是', `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` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1', `ServiceChannelId` BIGINT 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', `ChargingTime` VARCHAR(32) NULL COMMENT '收费时机:预报/出库/签收', `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` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1', `PriceId` BIGINT 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` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1', `PriceId` BIGINT 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` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1', `ServiceChannelId` BIGINT 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` BIGINT 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-是', `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` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1', `AreaId` BIGINT 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` BIGINT 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-是', `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` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1', `RuleId` BIGINT 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` BIGINT 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-是', `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` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1', `RoundingId` BIGINT 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` BIGINT 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-是', `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` BIGINT 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-是', `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` BIGINT 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` BIGINT NULL COMMENT '销售产品ID', `DestinationCountry` VARCHAR(8) NULL COMMENT '目的国', `WarehouseId` BIGINT NULL COMMENT '仓库ID', `OperateTime` DATETIME NOT NULL COMMENT '操作时间', `OperatorId` BIGINT 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_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` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1', `WaybillNo` VARCHAR(64) NOT NULL COMMENT '运单号', `WarehouseId` BIGINT NULL COMMENT '仓库ID', `OperateTime` DATETIME NOT NULL COMMENT '操作时间', `OperatorId` BIGINT 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_out_waybill_time` (`WaybillNo`, `OperateTime`), KEY `idx_out_warehouse_time` (`WarehouseId`, `OperateTime`) ) COMMENT='出库记录表'; CREATE TABLE `t_label_print_record` ( `Id` BIGINT 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` BIGINT NULL COMMENT '标签模板ID', `PrintSuccess` TINYINT NOT NULL DEFAULT 0 COMMENT '是否打印成功', `PrintTime` DATETIME NOT NULL COMMENT '打印时间', `OperatorId` BIGINT 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_lpr_waybill_time` (`WaybillNo`, `PrintTime`), KEY `idx_lpr_template` (`LabelTemplateId`), KEY `idx_lpr_operator_time` (`OperatorId`, `PrintTime`) ) COMMENT='标签打印记录表'; CREATE TABLE `t_customer` ( `Id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1', `CustomerCode` VARCHAR(32) NOT NULL COMMENT '客户编号,规则:前缀w+年份+序号', `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', `Role` VARCHAR(64) NULL COMMENT '角色,用于菜单权限', `LastLoginIp` VARCHAR(64) NULL COMMENT '最后在线IP', `LastLoginTime` DATETIME NULL COMMENT '最后在线时间', `IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是', `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_phone` (`Phone`), UNIQUE KEY `uk_cus_email` (`Email`), UNIQUE KEY `uk_cus_openid` (`WechatOpenid`), KEY `idx_cus_status_group` (`Status`, `CustomerGroup`), KEY `idx_cus_sales_service` (`Salesman`, `CustomerService`) ) COMMENT='客户表'; CREATE TABLE `t_customer_sub_account` ( `Id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1', `MainCustomerId` BIGINT NOT NULL COMMENT '主客户ID', `SubAccountCode` VARCHAR(32) NOT NULL COMMENT '子账号编号', `SubWechatAvatar` VARCHAR(255) NULL COMMENT '子账号微信头像', `SubWechatNickname` VARCHAR(64) NULL COMMENT '子账号微信昵称', `SubPhone` VARCHAR(16) NOT NULL COMMENT '子账号手机号', `SubEmail` VARCHAR(64) NULL COMMENT '子账号邮箱', `SubPassword` VARCHAR(64) NOT NULL COMMENT '子账号密码(MD5加密)', `SubStatus` TINYINT NOT NULL DEFAULT 1 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 '更新时间', `IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除:0-否,1-是', PRIMARY KEY (`Id`), UNIQUE KEY `uk_csa_code` (`SubAccountCode`), UNIQUE KEY `uk_csa_phone` (`SubPhone`), KEY `idx_csa_main_status` (`MainCustomerId`, `SubStatus`), KEY `idx_csa_email` (`SubEmail`) ) COMMENT='客户子账号表'; CREATE TABLE `t_recharge_record` ( `Id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1', `CustomerId` BIGINT 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-是', 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_warehouse_address` ( `Id` BIGINT 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-是', `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;