All checks were successful
Build and Deploy / deploy (push) Successful in 1m0s
Co-authored-by: Cursor <cursoragent@cursor.com>
2440 lines
132 KiB
SQL
2440 lines
132 KiB
SQL
-- 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.
|
||
-- 4. Incremental `sql/migrate_*.sql` scripts are retired; this file is the single source of truth for OMS DDL.
|
||
-- 5. Data-permission tables (`user_org_perm` etc.) live here when RBAC and OMS share one MySQL database.
|
||
|
||
SET NAMES utf8mb4;
|
||
SET FOREIGN_KEY_CHECKS = 0;
|
||
|
||
DROP TABLE IF EXISTS `data_perm_access_log`;
|
||
DROP TABLE IF EXISTS `data_perm_change_log`;
|
||
DROP TABLE IF EXISTS `data_perm_template_item`;
|
||
DROP TABLE IF EXISTS `data_perm_template`;
|
||
DROP TABLE IF EXISTS `data_perm_field_mask`;
|
||
DROP TABLE IF EXISTS `data_resource`;
|
||
DROP TABLE IF EXISTS `user_filter_rule`;
|
||
DROP TABLE IF EXISTS `role_filter_rule`;
|
||
DROP TABLE IF EXISTS `user_secret_perm`;
|
||
DROP TABLE IF EXISTS `role_secret_perm`;
|
||
DROP TABLE IF EXISTS `user_biz_perm`;
|
||
DROP TABLE IF EXISTS `role_biz_perm`;
|
||
DROP TABLE IF EXISTS `user_data_scope`;
|
||
DROP TABLE IF EXISTS `role_data_scope`;
|
||
DROP TABLE IF EXISTS `role_org_perm`;
|
||
DROP TABLE IF EXISTS `user_org_perm`;
|
||
DROP TABLE IF EXISTS `t_xhs_media`;
|
||
DROP TABLE IF EXISTS `t_kb_article`;
|
||
DROP TABLE IF EXISTS `t_kb_category`;
|
||
DROP TABLE IF EXISTS `t_mcp_tool`;
|
||
DROP TABLE IF EXISTS `t_pickup_order_line`;
|
||
DROP TABLE IF EXISTS `t_pickup_order`;
|
||
DROP TABLE IF EXISTS `t_9610_order_item`;
|
||
DROP TABLE IF EXISTS `t_9610_order`;
|
||
DROP TABLE IF EXISTS `t_ai_skill`;
|
||
DROP TABLE IF EXISTS `t_ai_provider`;
|
||
DROP TABLE IF EXISTS `t_xhs_ai_provider`;
|
||
DROP TABLE IF EXISTS `t_xhs_human_config`;
|
||
DROP TABLE IF EXISTS `t_xhs_skill`;
|
||
DROP TABLE IF EXISTS `t_xhs_analysis_session`;
|
||
DROP TABLE IF EXISTS `t_xhs_publish_record`;
|
||
DROP TABLE IF EXISTS `t_xhs_task`;
|
||
DROP TABLE IF EXISTS `t_xhs_agent`;
|
||
DROP TABLE IF EXISTS `c_inbound_box_line`;
|
||
DROP TABLE IF EXISTS `c_inbound_box`;
|
||
DROP TABLE IF EXISTS `c_inbound_notice`;
|
||
DROP TABLE IF EXISTS `c_parcel_item`;
|
||
DROP TABLE IF EXISTS `c_parcel_arrival`;
|
||
DROP TABLE IF EXISTS `c_parcel`;
|
||
DROP TABLE IF EXISTS `c_inventory`;
|
||
DROP TABLE IF EXISTS `c_sku_platform_map`;
|
||
DROP TABLE IF EXISTS `c_sku`;
|
||
DROP TABLE IF EXISTS `c_bin_location`;
|
||
DROP TABLE IF EXISTS `t_sales_store_order_line`;
|
||
DROP TABLE IF EXISTS `t_sales_store_order`;
|
||
DROP TABLE IF EXISTS `t_sales_store`;
|
||
DROP TABLE IF EXISTS `t_customer_account_flow`;
|
||
DROP TABLE IF EXISTS `t_system_batch_email_record`;
|
||
DROP TABLE IF EXISTS `t_system_batch_email_account`;
|
||
DROP TABLE IF EXISTS `t_system_batch_email_template`;
|
||
DROP TABLE IF EXISTS `t_system_other_config`;
|
||
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_employee`;
|
||
DROP TABLE IF EXISTS `t_dict_type`;
|
||
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_issue_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_batch_job_item`;
|
||
DROP TABLE IF EXISTS `t_order_batch_job`;
|
||
DROP TABLE IF EXISTS `t_order_template`;
|
||
DROP TABLE IF EXISTS `t_order_operation_log`;
|
||
DROP TABLE IF EXISTS `t_order_exception_event`;
|
||
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 '跟踪号',
|
||
`DownstreamServiceNo` VARCHAR(64) NULL COMMENT '服务商单号(下游 createOrderOne Data.serviceNo)',
|
||
`ProductCode` VARCHAR(128) NULL COMMENT '产品编码',
|
||
`ChannelCode` VARCHAR(128) NULL COMMENT '渠道编码',
|
||
`DownstreamSupplierCode` VARCHAR(64) NULL COMMENT '下游 API 服务商编码 supplierCode',
|
||
`DownstreamAppKey` VARCHAR(128) NULL COMMENT '下游 itfx 应用 AppKey',
|
||
`DownstreamAppId` INT NULL COMMENT '下游 itfx 应用 Id',
|
||
`ChannelForecastCode` VARCHAR(128) NULL COMMENT '渠道预报编码 ForecastCode',
|
||
`ConsigneeCountry` VARCHAR(8) NULL COMMENT '国家二字码',
|
||
`ConsigneeCountryName` VARCHAR(64) NULL COMMENT '国家中文名称',
|
||
`CargoAttribute` VARCHAR(32) NULL COMMENT '货物属性:general/electronics/sensitive',
|
||
`ExportCustomsMode` VARCHAR(32) NULL COMMENT '出口报关方式',
|
||
`ExportQualificationId` INT NULL COMMENT '出口资质备案 Id(t_customer_export_qualification.Id)',
|
||
`PredeclareFailReason` VARCHAR(512) NULL COMMENT '预报失败原因',
|
||
`AllocationPendingReason` VARCHAR(512) NULL COMMENT '待排货原因(排货或渠道买价未匹配)',
|
||
`AllocationScheme` VARCHAR(32) NULL COMMENT '最近一次排货方案 costLowest/timeFastest/overallBest/designated',
|
||
`AllocationTraceJson` JSON NULL COMMENT '最近一次排货过程快照 JSON',
|
||
`AllocationTraceTime` DATETIME NULL COMMENT '排货快照写入时间',
|
||
`SalesProductRulesVersion` VARCHAR(64) NULL COMMENT '销售产品规则快照版本',
|
||
`SalesProductPriceVersion` VARCHAR(64) NULL COMMENT '销售产品价格快照版本',
|
||
`OrderStatus` VARCHAR(32) NOT NULL COMMENT '订单状态',
|
||
`HandleStatus` VARCHAR(16) NULL COMMENT '处理子状态:pending/processed',
|
||
`IssueType` VARCHAR(32) NULL COMMENT '问题类型',
|
||
`IssueTitle` VARCHAR(128) NULL COMMENT '问题标题',
|
||
`IssueContent` TEXT NULL COMMENT '问题内容',
|
||
`IssueTemplateId` INT NULL COMMENT '问题模板Id',
|
||
`IssueRemark` VARCHAR(512) NULL COMMENT '问题备注',
|
||
`IssueTime` DATETIME NULL COMMENT '标记问题件时间',
|
||
`ClaimType` VARCHAR(32) NULL COMMENT '理赔类型',
|
||
`ClaimAmount` DECIMAL(18,4) NULL COMMENT '索赔金额',
|
||
`ClaimCurrency` VARCHAR(16) NULL COMMENT '索赔币种',
|
||
`ClaimReason` VARCHAR(512) NULL COMMENT '理赔原因',
|
||
`ClaimTime` DATETIME NULL COMMENT '创建理赔件时间',
|
||
`PreviousOrderStatus` VARCHAR(32) NULL COMMENT '进入异常状态前的订单状态',
|
||
`WarehouseId` INT NULL COMMENT '仓库ID',
|
||
`CustomerId` INT NULL COMMENT '客户ID',
|
||
`MemberLevelId` INT NULL COMMENT '下单时会员等级Id快照',
|
||
`PriceTierKey` VARCHAR(64) NULL COMMENT '下单时价区键快照',
|
||
`ReceivableSubtotal` DECIMAL(18,4) NULL COMMENT '应收小计(折扣前)',
|
||
`ForecastReceivableAmount` DECIMAL(18,4) NULL COMMENT '预报应收快照(创建预报后固化,入库不覆盖)',
|
||
`ForecastPayableAmount` DECIMAL(18,4) NULL COMMENT '预报应付快照(创建预报后固化,入库不覆盖)',
|
||
`LevelDiscountAmount` DECIMAL(18,4) NOT NULL DEFAULT 0 COMMENT '会员等级折扣金额',
|
||
`CouponInstanceId` INT NULL COMMENT '使用的优惠券实例Id',
|
||
`CouponDiscountAmount` DECIMAL(18,4) NOT NULL DEFAULT 0 COMMENT '优惠券抵扣金额',
|
||
`PayableAmount` DECIMAL(18,4) NULL COMMENT '应付金额(对客应收)',
|
||
`OrderSource` VARCHAR(32) NULL COMMENT '订单来源:manual/pickup/upload/batch/platform',
|
||
`PickupTime` DATETIME NULL COMMENT '预约揽收时间',
|
||
`CustomerSenderAddressId` INT NULL COMMENT '发件地址簿 Id',
|
||
`InboundMethod` VARCHAR(16) NULL COMMENT '到仓方式 selfShip/doorPickup',
|
||
`PickupOrderId` INT NULL COMMENT '关联揽收单Id(冗余)',
|
||
`OrganizationId` CHAR(36) NULL COMMENT '数据归属组织',
|
||
`SecretLevel` TINYINT NOT NULL DEFAULT 2 COMMENT '数据密级 1-4',
|
||
`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-是',
|
||
`AdditionalServices` VARCHAR(512) NULL COMMENT '客户勾选附加服务字典code JSON数组',
|
||
`FulfillmentType` VARCHAR(16) NULL DEFAULT 'direct' COMMENT '履约类型 direct/warehouse',
|
||
`FulfillmentSource` VARCHAR(32) NULL COMMENT '代发来源 storeFulfill/postBind',
|
||
`LabelTemplateId` 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_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`),
|
||
KEY `idx_ord_org_secret_ctime` (`OrganizationId`, `SecretLevel`, `CreateTime`),
|
||
KEY `idx_ord_source_ctime` (`OrderSource`, `CreateTime`),
|
||
KEY `idx_order_pickup` (`PickupOrderId`),
|
||
KEY `idx_order_inbound_method` (`InboundMethod`),
|
||
KEY `idx_order_export_qualification` (`ExportQualificationId`),
|
||
KEY `idx_ord_fulfillment_customer` (`FulfillmentType`, `CustomerId`, `OrderStatus`)
|
||
) COMMENT='订单表';
|
||
|
||
-- 存量库升级脚本见:sql/migrate_t_order_fulfillment_type.sql(勿复制带 ... 的示例)
|
||
|
||
CREATE TABLE `t_order_file` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增',
|
||
`OrderId` INT NOT NULL COMMENT '订单Id',
|
||
`FileType` VARCHAR(32) NOT NULL COMMENT '附件类型:tradeProof交易证明/systemLabel系统面单/downstreamLabel下游面单/lastMileLabel末端面单/infraredImage红外图片/pod签收证明',
|
||
`FileName` VARCHAR(255) NULL COMMENT '原始文件名',
|
||
`FileUrl` VARCHAR(512) NOT NULL COMMENT '文件地址(相对路径或外链)',
|
||
`ContentType` VARCHAR(128) NULL COMMENT '文件MIME类型',
|
||
`FileSize` BIGINT NULL COMMENT '文件大小(字节)',
|
||
`Sort` INT NOT NULL DEFAULT 0 COMMENT '同类型内排序',
|
||
`Source` VARCHAR(32) NOT NULL DEFAULT 'upload' COMMENT '来源:upload上传/systemGenerate系统生成/downstream下游回传/migrate迁移',
|
||
`Remark` VARCHAR(512) 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_ord_file_order_type` (`OrderId`, `FileType`, `IsDeleted`)
|
||
) COMMENT='订单附件表';
|
||
|
||
CREATE TABLE `t_customer_sender_address` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`CustomerId` INT NOT NULL COMMENT '归属客户 t_customer.Id',
|
||
`AddressType` VARCHAR(16) NOT NULL DEFAULT 'sender' COMMENT '地址类型:sender国内发件/return国内退件/pickup国内揽收/receiver海外收件',
|
||
`AddressName` VARCHAR(64) NULL COMMENT '地址别名',
|
||
`SenderName` VARCHAR(50) NOT NULL COMMENT '联系人姓名',
|
||
`Company` VARCHAR(255) NULL COMMENT '公司',
|
||
`Country` INT NULL COMMENT '国家 t_country.Id',
|
||
`Province` VARCHAR(50) NULL COMMENT '州省',
|
||
`City` VARCHAR(50) NULL COMMENT '城市',
|
||
`ZipCode` VARCHAR(50) NULL COMMENT '邮编',
|
||
`StreetAddress1` VARCHAR(500) NOT 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-是',
|
||
`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_csa_customer` (`CustomerId`, `IsDeleted`, `Id`),
|
||
KEY `idx_csa_customer_type` (`CustomerId`, `AddressType`, `IsDeleted`, `Id`),
|
||
KEY `idx_csa_customer_default` (`CustomerId`, `AddressType`, `IsDefault`)
|
||
) COMMENT='客户地址簿(发件/退件/收件)';
|
||
|
||
CREATE TABLE `t_customer_export_qualification` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`CustomerId` INT NOT NULL COMMENT '归属客户 t_customer.Id',
|
||
`CompanyName` VARCHAR(200) NOT NULL COMMENT '企业名称',
|
||
`SocialCreditCode` VARCHAR(64) NOT NULL COMMENT '企业社会信用代码',
|
||
`DomesticConsignor` VARCHAR(200) NOT NULL COMMENT '境内发货人',
|
||
`DomesticConsignorCustomsCode` VARCHAR(64) NULL COMMENT '境内发货人海关代码',
|
||
`ProducerName` VARCHAR(200) NOT NULL COMMENT '生产销售单位',
|
||
`ProducerCustomsCode` VARCHAR(64) NULL COMMENT '生产销售单位海关代码',
|
||
`CustomsPort` VARCHAR(100) NULL COMMENT '备案海关港口地',
|
||
`IsDefault` TINYINT NOT NULL DEFAULT 0 COMMENT '是否默认:0-否,1-是(同客户仅一条)',
|
||
`Remark` VARCHAR(512) 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_ceq_customer` (`CustomerId`, `IsDeleted`, `Id`),
|
||
KEY `idx_ceq_credit` (`SocialCreditCode`, `IsDeleted`),
|
||
KEY `idx_ceq_customer_default` (`CustomerId`, `IsDefault`)
|
||
) 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_batch_job` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
|
||
`Action` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '批量操作类型:pay/pre-declare/intercept/parcel-create 等',
|
||
`Status` VARCHAR(32) NOT NULL DEFAULT 'pending' COMMENT '任务状态:pending/running/completed/failed/cancelled',
|
||
`Total` INT NOT NULL DEFAULT 0 COMMENT '子项总数',
|
||
`SuccessCount` INT NOT NULL DEFAULT 0 COMMENT '成功数',
|
||
`FailCount` INT NOT NULL DEFAULT 0 COMMENT '失败数',
|
||
`CustomerId` INT NULL COMMENT '客户ID',
|
||
`PayloadJson` JSON NULL COMMENT '任务级扩展参数(JSON)',
|
||
`RequestId` VARCHAR(64) NULL COMMENT '请求幂等ID',
|
||
`StartedAt` DATETIME NULL COMMENT '开始执行时间',
|
||
`FinishedAt` DATETIME 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 COMMENT '创建时间',
|
||
`UpdateUserId` INT NULL COMMENT '更新人',
|
||
`UpdateTime` DATETIME NULL COMMENT '更新时间',
|
||
PRIMARY KEY (`Id`),
|
||
KEY `idx_order_batch_job_request` (`RequestId`),
|
||
KEY `idx_order_batch_job_status` (`Status`)
|
||
) COMMENT='订单批量异步任务表';
|
||
|
||
CREATE TABLE `t_order_batch_job_item` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
|
||
`JobId` INT NOT NULL COMMENT '批量任务ID',
|
||
`OrderId` INT NOT NULL COMMENT '订单ID',
|
||
`ServiceNo` VARCHAR(64) NULL COMMENT '运单号',
|
||
`ClientNo` VARCHAR(64) NULL COMMENT '客户单号',
|
||
`Action` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '子项操作类型,通常与任务 Action 一致',
|
||
`Status` VARCHAR(32) NOT NULL DEFAULT 'pending' COMMENT '子项状态:pending/running/success/failed/cancelled',
|
||
`MessageId` VARCHAR(128) NULL COMMENT 'RabbitMQ 消息ID,用于幂等与去重',
|
||
`FailReason` TEXT NULL COMMENT '失败原因',
|
||
`PayloadJson` TEXT NULL COMMENT '子项入参快照(JSON)',
|
||
`ResultJson` TEXT NULL COMMENT '子项执行结果快照(JSON)',
|
||
`RetryCount` INT NOT NULL DEFAULT 0 COMMENT '系统重试次数',
|
||
`StartedAt` DATETIME NULL COMMENT '开始执行时间',
|
||
`FinishedAt` DATETIME 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 COMMENT '创建时间',
|
||
`UpdateUserId` INT NULL COMMENT '更新人',
|
||
`UpdateTime` DATETIME NULL COMMENT '更新时间',
|
||
PRIMARY KEY (`Id`),
|
||
UNIQUE KEY `uk_order_batch_job_item_message` (`MessageId`),
|
||
KEY `idx_order_batch_job_item_job` (`JobId`),
|
||
KEY `idx_order_batch_job_item_order` (`OrderId`)
|
||
) 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',
|
||
`DeclareElement` VARCHAR(255) NULL COMMENT '出口申报要素',
|
||
`SkuImage` VARCHAR(512) NULL COMMENT '图片(存 storage key 或短 URL)',
|
||
`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_order_exception_event` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`OrderId` INT NOT NULL COMMENT '订单Id',
|
||
`EventType` VARCHAR(32) NOT NULL COMMENT 'mark_problematic/mark_claimed/handle_processed',
|
||
`FromStatus` VARCHAR(32) NULL COMMENT '变更前OrderStatus',
|
||
`ToStatus` VARCHAR(32) NULL COMMENT '变更后OrderStatus',
|
||
`FromHandleStatus` VARCHAR(16) NULL COMMENT '变更前HandleStatus',
|
||
`ToHandleStatus` VARCHAR(16) NULL COMMENT '变更后HandleStatus',
|
||
`IssueType` VARCHAR(32) NULL COMMENT '问题类型',
|
||
`Title` VARCHAR(128) NULL COMMENT '标题快照',
|
||
`Content` TEXT NULL COMMENT '内容快照',
|
||
`IssueTemplateId` INT NULL COMMENT '模板Id',
|
||
`NotifyMethod` VARCHAR(64) NULL COMMENT '通知方式快照',
|
||
`HandlerNames` VARCHAR(256) NULL COMMENT '处理人快照',
|
||
`HandlerType` VARCHAR(16) NULL COMMENT '处理人类型',
|
||
`HandlerUserId` INT NULL COMMENT '处理人用户Id(customer 时为订单客户账号)',
|
||
`ClaimType` VARCHAR(32) NULL COMMENT '理赔类型',
|
||
`ClaimAmount` DECIMAL(18,4) NULL COMMENT '索赔金额',
|
||
`ClaimCurrency` VARCHAR(16) NULL COMMENT '索赔币种',
|
||
`ClaimReason` VARCHAR(512) NULL COMMENT '理赔原因',
|
||
`Remark` VARCHAR(512) 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_oee_order_time` (`OrderId`, `CreateTime`)
|
||
) COMMENT='订单异常事件表';
|
||
|
||
CREATE TABLE `t_order_operation_log` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`OrderId` INT NOT NULL COMMENT '运单Id',
|
||
`ServiceNo` VARCHAR(64) NULL COMMENT '运单号冗余',
|
||
`Action` VARCHAR(32) NOT NULL COMMENT '动作码 editBasic/editWeight/recalcReceivable/recalcPayable/reallocate',
|
||
`ActionName` VARCHAR(64) NOT NULL COMMENT '动作中文名',
|
||
`OperatorId` INT NOT NULL DEFAULT 0 COMMENT '操作人用户Id',
|
||
`OperatorName` VARCHAR(64) NULL COMMENT '操作人展示名',
|
||
`OperatorType` VARCHAR(16) NOT NULL DEFAULT 'staff' COMMENT 'staff/customer/system/openapi',
|
||
`Source` VARCHAR(16) NOT NULL DEFAULT 'pc' COMMENT 'pc/h5/openapi/job',
|
||
`ChangesJson` JSON NULL COMMENT '字段 diff 数组 [{path,label,before,after}]',
|
||
`Remark` VARCHAR(512) 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_ool_order_time` (`OrderId`, `CreateTime`),
|
||
KEY `idx_ool_service_no` (`ServiceNo`)
|
||
) 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 '最大时效(天)',
|
||
`TradeTerms` VARCHAR(16) NULL COMMENT '贸易条款:DDP/DDU',
|
||
`RouteSort` INT NOT NULL DEFAULT 0 COMMENT '官网线路排序,越小越靠前',
|
||
`AdditionalServices` VARCHAR(512) NULL COMMENT '可选附加服务字典code JSON数组',
|
||
`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 '入库前脚本',
|
||
`CustomerGuideMarkdown` MEDIUMTEXT COMMENT '对客说明 Markdown',
|
||
`IsActive` TINYINT NOT NULL DEFAULT 2 COMMENT 'EnableStatus:0=None未设置,1=Disabled禁用,2=Enabled启用',
|
||
`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_route_sort` (`RouteSort`, `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 2 COMMENT 'EnableStatus:0=None未设置,1=Disabled禁用,2=Enabled启用',
|
||
`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数组,空表示全部(兼容旧配置)',
|
||
`MatchCondition` TEXT 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_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` TINYINT NOT NULL DEFAULT 1 COMMENT 'EsSnapshotStatus:0=None未设置,1=Active生效,2=Inactive失效',
|
||
`PublishUser` VARCHAR(64) NOT NULL COMMENT '发布人',
|
||
`PublishTime` DATETIME NOT NULL COMMENT '发布时间',
|
||
`Description` VARCHAR(512) NULL COMMENT '版本备注',
|
||
`AiAnalysisReport` MEDIUMTEXT NULL COMMENT '价格发布AI风险分析报告',
|
||
`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 '描述',
|
||
`RemoteAreaId` INT NULL COMMENT '偏远分区KPI AreaId',
|
||
`PreScript` TEXT COMMENT '入库前脚本',
|
||
`IsActive` TINYINT NOT NULL DEFAULT 2 COMMENT 'EnableStatus:0=None未设置,1=Disabled禁用,2=Enabled启用',
|
||
`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 2 COMMENT 'EnableStatus:0=None未设置,1=Disabled禁用,2=Enabled启用',
|
||
`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` TINYINT NOT NULL DEFAULT 1 COMMENT 'EsSnapshotStatus:0=None未设置,1=Active生效,2=Inactive失效',
|
||
`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 '右侧邮编',
|
||
`MatchDim` VARCHAR(16) NOT NULL DEFAULT 'country' COMMENT '匹配维度:zip/state/city/country',
|
||
`MatchMode` VARCHAR(16) NOT NULL DEFAULT 'all' COMMENT '匹配方式:prefix/exact/range/all',
|
||
`PrefixLen` INT NOT NULL DEFAULT 0 COMMENT '邮编前缀长度(zip+prefix)',
|
||
`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`),
|
||
KEY `idx_kpi_info_area_dim` (`AreaId`, `CountryCode`, `MatchDim`)
|
||
) 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 2 COMMENT 'EnableStatus:0=None未设置,1=Disabled禁用,2=Enabled启用',
|
||
`RuleName` VARCHAR(128) NULL COMMENT '规则名称',
|
||
`Priority` INT NOT NULL DEFAULT 100 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_issue_template` (
|
||
`Id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`OrganizationId` CHAR(36) NULL COMMENT '归属组织 GUID;NULL=平台通用',
|
||
`IssueType` VARCHAR(32) NOT NULL COMMENT '问题类型 code',
|
||
`Title` VARCHAR(128) NOT NULL COMMENT '问题标题',
|
||
`Content` TEXT NOT NULL COMMENT '问题内容',
|
||
`NotifyMethod` VARCHAR(64) NOT NULL COMMENT '通知方式,逗号分隔',
|
||
`HandlerType` VARCHAR(16) NULL COMMENT '处理人类型:customer=订单所属客户 user=指定用户',
|
||
`HandlerUserId` INT NULL COMMENT '指定处理人用户Id(HandlerType=user 时必填)',
|
||
`Status` TINYINT NOT NULL DEFAULT 2 COMMENT 'EnableStatus:0=None未设置,1=Disabled禁用,2=Enabled启用',
|
||
`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_issue_tpl_org_type` (`OrganizationId`, `IssueType`, `IsDeleted`),
|
||
KEY `idx_issue_tpl_status` (`Status`, `IsDeleted`)
|
||
) 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) NULL COMMENT '手机号,用于联系;可空,唯一(NULL 可多条)',
|
||
`MemberLevelId` INT NULL COMMENT '会员等级Id',
|
||
`PriceTierKey` VARCHAR(64) NULL COMMENT '价区键(卖价 CustomerGroupValues JSON 键)',
|
||
`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 2 COMMENT 'CustomerStatus:0=None未设置,1=Disabled禁用,2=Normal正常,3=Frozen冻结',
|
||
`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 'CustomerGroup:0=None未设置,1=Normal普通,2=Vip1…6=Vip5',
|
||
`OrganizationId` CHAR(36) NULL COMMENT '归属销售组织 FK organization.Id',
|
||
`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`),
|
||
KEY `idx_cus_organization` (`OrganizationId`)
|
||
) COMMENT='客户表';
|
||
|
||
CREATE TABLE `t_recharge_record` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
|
||
`CustomerId` INT NOT NULL COMMENT '客户ID(主账号/子账号关联主账号ID)',
|
||
`SecretLevel` TINYINT NOT NULL DEFAULT 3 COMMENT '数据密级 1-4',
|
||
`SerialNumber` VARCHAR(64) NOT NULL COMMENT '流水号',
|
||
`RechargeTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '充值提交时间',
|
||
`PayType` TINYINT NOT NULL COMMENT 'PayType:0=None未设置,1=Wechat微信,2=Alipay支付宝',
|
||
`RechargeAmount` DECIMAL(18,2) NOT NULL COMMENT '充值金额,>=0.01',
|
||
`RechargeScreenshot` VARCHAR(255) NULL COMMENT '充值截图URL',
|
||
`RechargeStatus` TINYINT NOT NULL DEFAULT 1 COMMENT 'RechargeStatus:0=None未设置,1=Pending待审核,2=Approved通过,3=Rejected驳回',
|
||
`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 '字典编码:字符串类存语义码(camelCase);数值类存整数字符串如1/2,与对应枚举值一致(0=None不入库)',
|
||
`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_dict_type` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
|
||
`DictType` VARCHAR(64) NOT NULL COMMENT '字典类型编码',
|
||
`Remark` VARCHAR(512) NULL COMMENT '字典类型备注',
|
||
`TypeSort` INT NOT NULL DEFAULT 0 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`)
|
||
) COMMENT='字典类型元数据表';
|
||
|
||
CREATE TABLE `t_system_other_config` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
|
||
`ConfigCode` VARCHAR(64) NOT NULL COMMENT '配置编码,如 track_service',
|
||
`ConfigName` VARCHAR(128) NOT NULL COMMENT '配置名称',
|
||
`Enabled` TINYINT NOT NULL DEFAULT 0 COMMENT '是否启用:0-否,1-是',
|
||
`BaseUrl` VARCHAR(512) NULL COMMENT '服务地址',
|
||
`AppKey` VARCHAR(128) NULL COMMENT 'AppKey',
|
||
`AppSecret` VARCHAR(256) NULL COMMENT 'AppSecret',
|
||
`TimeoutSeconds` INT NOT NULL DEFAULT 30 COMMENT '超时秒数',
|
||
`Remark` VARCHAR(512) 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_system_other_config_code` (`ConfigCode`),
|
||
KEY `idx_system_other_config_enabled` (`Enabled`, `Id`)
|
||
) COMMENT='系统其他配置表';
|
||
|
||
CREATE TABLE `t_system_batch_email_template` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`OwnerUserId` INT NOT NULL DEFAULT 0 COMMENT '所属 RBAC 用户 Id',
|
||
`TemplateName` VARCHAR(128) NOT NULL COMMENT '模板名称',
|
||
`Subject` VARCHAR(512) NOT NULL DEFAULT '' COMMENT '邮件主题',
|
||
`Content` TEXT NOT NULL COMMENT '邮件正文',
|
||
`SortOrder` INT NOT NULL DEFAULT 0 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_batch_email_tpl_owner_name` (`OwnerUserId`, `TemplateName`),
|
||
KEY `idx_batch_email_tpl_owner` (`OwnerUserId`, `SortOrder`, `Id`)
|
||
) COMMENT='批量发送邮件模板';
|
||
|
||
CREATE TABLE `t_system_batch_email_account` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`OwnerUserId` INT NOT NULL DEFAULT 0 COMMENT '所属 RBAC 用户 Id',
|
||
`SmtpUsername` VARCHAR(256) NOT NULL COMMENT 'SMTP 账号',
|
||
`SmtpPassword` VARCHAR(512) NOT NULL COMMENT 'SMTP 密码/授权码',
|
||
`ServerType` VARCHAR(32) NOT NULL DEFAULT 'qiye' COMMENT 'SMTP 类型',
|
||
`FromName` 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`),
|
||
UNIQUE KEY `uk_batch_email_account_owner` (`OwnerUserId`)
|
||
) COMMENT='批量发送邮件 SMTP 账号配置';
|
||
|
||
CREATE TABLE `t_system_batch_email_record` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`OwnerUserId` INT NOT NULL DEFAULT 0 COMMENT '所属 RBAC 用户 Id',
|
||
`ToEmail` VARCHAR(256) NOT NULL COMMENT '收件邮箱',
|
||
`Subject` VARCHAR(512) NOT NULL DEFAULT '' COMMENT '邮件主题',
|
||
`Content` TEXT NOT NULL COMMENT '邮件正文',
|
||
`SendTime` DATETIME NOT NULL COMMENT '发送时间',
|
||
`Sender` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '发送人',
|
||
`SenderEmail` VARCHAR(256) 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_batch_email_record_owner_time` (`OwnerUserId`, `SendTime`, `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_employee` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,步长 1',
|
||
`UserId` CHAR(36) NOT NULL COMMENT '关联 RBAC user.Id(工号/手机/邮箱见 user 表)',
|
||
`RealName` VARCHAR(64) NOT NULL COMMENT '姓名(人事档案用)',
|
||
`Gender` TINYINT NOT NULL DEFAULT 0 COMMENT 'Gender:0=Unknown未知,1=Male男,2=Female女',
|
||
`Birthday` DATE NULL COMMENT '出生日期',
|
||
`IdCardNo` VARCHAR(32) NULL COMMENT '身份证号',
|
||
`HireDate` DATE NULL COMMENT '入职日期',
|
||
`ProbationEndDate` DATE NULL COMMENT '试用期结束日期',
|
||
`RegularizationDate` DATE NULL COMMENT '转正日期',
|
||
`EmploymentStatus` TINYINT NOT NULL DEFAULT 1 COMMENT 'EmploymentStatus:0=None,1=Probation试用,2=Regular正式,3=Suspended停职,4=Resigned离职',
|
||
`ResignationDate` DATE NULL COMMENT '离职日期',
|
||
`Department` VARCHAR(128) NULL COMMENT '部门',
|
||
`Position` VARCHAR(128) NULL COMMENT '岗位/职位',
|
||
`JobLevel` VARCHAR(64) NULL COMMENT '职级',
|
||
`EmploymentType` TINYINT NOT NULL DEFAULT 1 COMMENT 'EmploymentType:0=None,1=FullTime全职,2=PartTime兼职,3=Intern实习,4=Outsourced外包',
|
||
`WorkLocation` VARCHAR(128) NULL COMMENT '工作地点',
|
||
`ManagerUserId` CHAR(36) NULL COMMENT '直属上级 user.Id',
|
||
`ContractStartDate` DATE NULL COMMENT '合同开始日期',
|
||
`ContractEndDate` DATE NULL COMMENT '合同结束日期',
|
||
`ContractType` VARCHAR(64) NULL COMMENT '合同类型',
|
||
`EmergencyContact` VARCHAR(64) NULL COMMENT '紧急联系人',
|
||
`EmergencyPhone` VARCHAR(32) NULL COMMENT '紧急联系人电话',
|
||
`Address` VARCHAR(256) NULL COMMENT '住址',
|
||
`Education` VARCHAR(64) NULL COMMENT '学历',
|
||
`Remark` VARCHAR(512) 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_employee_user` (`UserId`),
|
||
KEY `idx_employee_status_dept` (`EmploymentStatus`, `Department`),
|
||
KEY `idx_employee_manager` (`ManagerUserId`)
|
||
) 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 '收货地址',
|
||
`Sort` INT NULL DEFAULT NULL COMMENT '展示排序,越小越靠前',
|
||
`Remark` VARCHAR(512) NULL DEFAULT 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='仓库地址表';
|
||
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 客户账户资金流水
|
||
-- ---------------------------------------------------------------------------
|
||
CREATE TABLE `t_customer_account_flow` (
|
||
`Id` int NOT NULL AUTO_INCREMENT,
|
||
`CustomerId` int NOT NULL COMMENT '客户 ID',
|
||
`SerialNumber` varchar(64) NOT NULL COMMENT '流水号',
|
||
`BizType` varchar(32) NOT NULL COMMENT '业务类型 recharge/orderPay',
|
||
`BizId` int DEFAULT NULL COMMENT '关联业务主键',
|
||
`BizNo` varchar(64) DEFAULT NULL COMMENT '关联业务单号',
|
||
`Amount` decimal(18,2) NOT NULL COMMENT '变动金额,正入账负出账',
|
||
`BalanceBefore` decimal(18,2) NOT NULL COMMENT '变动前余额',
|
||
`BalanceAfter` decimal(18,2) NOT NULL COMMENT '变动后余额',
|
||
`Currency` varchar(8) NOT NULL DEFAULT 'CNY' COMMENT '币种',
|
||
`Remark` varchar(512) DEFAULT NULL COMMENT '备注',
|
||
`IsDeleted` tinyint(1) NOT NULL DEFAULT '0',
|
||
`ConcurrencyStamp` char(36) NOT NULL DEFAULT (UUID()) COMMENT '并发戳',
|
||
`CreateUserId` int NOT NULL DEFAULT '0',
|
||
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`UpdateUserId` int DEFAULT NULL,
|
||
`UpdateTime` datetime DEFAULT NULL,
|
||
PRIMARY KEY (`Id`),
|
||
UNIQUE KEY `uk_customer_account_flow_serial` (`SerialNumber`),
|
||
KEY `idx_customer_account_flow_customer_time` (`CustomerId`, `CreateTime`),
|
||
KEY `idx_customer_account_flow_biz` (`BizType`, `BizId`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='客户账户资金流水';
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 仓储模块(c_*)+ 店铺订单(t_sales_store*)
|
||
-- ---------------------------------------------------------------------------
|
||
|
||
CREATE TABLE `c_sku` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`CustomerId` INT NOT NULL COMMENT '客户ID → t_customer.Id',
|
||
`SkuCode` VARCHAR(64) NOT NULL COMMENT '库内SKU编码',
|
||
`SkuName` VARCHAR(256) NOT NULL COMMENT 'SKU名称',
|
||
`SkuNameEn` VARCHAR(256) NULL COMMENT 'SKU英文名称',
|
||
`SkuImageUrl` VARCHAR(512) NULL COMMENT '图片URL',
|
||
`UnitPrice` DECIMAL(12,4) NULL COMMENT '单价',
|
||
`ExHsCode` VARCHAR(64) NULL COMMENT '出口HSCode',
|
||
`ImHsCode` VARCHAR(64) NULL COMMENT '进口HSCode',
|
||
`DeclareElement` VARCHAR(255) NULL COMMENT '出口申报要素',
|
||
`WeightG` DECIMAL(10,2) NULL COMMENT '重量(g)',
|
||
`LengthCm` DECIMAL(10,2) NULL COMMENT '长(cm)',
|
||
`WidthCm` DECIMAL(10,2) NULL COMMENT '宽(cm)',
|
||
`HeightCm` DECIMAL(10,2) NULL COMMENT '高(cm)',
|
||
`Remark` VARCHAR(512) 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_c_sku_code` (`CustomerId`, `SkuCode`),
|
||
KEY `idx_c_sku_customer` (`CustomerId`, `IsDeleted`)
|
||
) COMMENT='仓储-SKU主数据';
|
||
|
||
CREATE TABLE `c_bin_location` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`WarehouseId` INT NOT NULL COMMENT '仓库ID → t_warehouse_address.Id',
|
||
`BinCode` VARCHAR(32) NOT NULL COMMENT '库位编码',
|
||
`BinName` VARCHAR(64) NULL COMMENT '库位展示名',
|
||
`ZoneCode` VARCHAR(32) NULL COMMENT '库区编码',
|
||
`IsEnabled` TINYINT NOT NULL DEFAULT 1 COMMENT '是否启用:0-否,1-是',
|
||
`Remark` VARCHAR(512) 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_c_bin_wh_code` (`WarehouseId`, `BinCode`),
|
||
KEY `idx_c_bin_warehouse` (`WarehouseId`, `IsEnabled`)
|
||
) COMMENT='仓储-库位主数据';
|
||
|
||
CREATE TABLE `c_inventory` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`CustomerId` INT NOT NULL COMMENT '客户ID',
|
||
`WarehouseId` INT NOT NULL COMMENT '仓库ID',
|
||
`SkuId` INT NOT NULL COMMENT 'SKU ID → c_sku.Id',
|
||
`BinLocationId` INT NOT NULL COMMENT '库位ID → c_bin_location.Id',
|
||
`Qty` INT NOT NULL DEFAULT 0 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_c_inventory` (`CustomerId`, `WarehouseId`, `SkuId`, `BinLocationId`),
|
||
KEY `idx_c_inv_sku_wh` (`CustomerId`, `SkuId`, `WarehouseId`)
|
||
) COMMENT='仓储-库存余额(按库位)';
|
||
|
||
CREATE TABLE `c_inbound_notice` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`CustomerId` INT NOT NULL COMMENT '客户ID',
|
||
`WarehouseId` INT NOT NULL COMMENT '仓库ID',
|
||
`NoticeNo` VARCHAR(32) NOT NULL COMMENT '入库单号 IN+雪花',
|
||
`MarkReference` VARCHAR(64) NULL COMMENT '唛头参考号',
|
||
`InboundType` VARCHAR(16) NOT NULL DEFAULT 'normal' COMMENT 'normal/return',
|
||
`ReceiptStatus` VARCHAR(16) NOT NULL DEFAULT 'forecasted' COMMENT 'forecasted/received/completed',
|
||
`ExpectedArrivalTime` DATETIME NULL COMMENT '预计到货时间',
|
||
`ActualArrivalTime` DATETIME NULL COMMENT '实际到货时间',
|
||
`Remark` VARCHAR(512) 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_c_inbound_notice_no` (`NoticeNo`),
|
||
KEY `idx_c_inbound_customer_status` (`CustomerId`, `ReceiptStatus`, `CreateTime`)
|
||
) COMMENT='仓储-入库预报主表';
|
||
|
||
CREATE TABLE `c_inbound_box` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`InboundNoticeId` INT NOT NULL COMMENT '入库预报ID → c_inbound_notice.Id',
|
||
`BoxSeqNo` VARCHAR(16) NOT NULL COMMENT '箱序号',
|
||
`MarkBoxNo` VARCHAR(64) NULL COMMENT '箱唛号/箱号',
|
||
`WeightG` DECIMAL(10,2) NULL COMMENT '箱重(g)',
|
||
`LengthCm` DECIMAL(10,2) NULL COMMENT '长(cm)',
|
||
`WidthCm` DECIMAL(10,2) NULL COMMENT '宽(cm)',
|
||
`HeightCm` DECIMAL(10,2) NULL COMMENT '高(cm)',
|
||
`IsReceived` 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`),
|
||
KEY `idx_c_inbound_box_notice` (`InboundNoticeId`, `IsDeleted`)
|
||
) COMMENT='仓储-入库预报箱';
|
||
|
||
CREATE TABLE `c_inbound_box_line` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`InboundBoxId` INT NOT NULL COMMENT '入库箱ID → c_inbound_box.Id',
|
||
`SkuId` INT NOT NULL COMMENT 'SKU ID → c_sku.Id',
|
||
`SkuCode` VARCHAR(64) NOT NULL COMMENT '冗余SKU编码',
|
||
`PlannedQty` INT NOT NULL DEFAULT 0 COMMENT '计划入库数量',
|
||
`ReceivedQty` INT NULL COMMENT '实收数量',
|
||
`BinLocationId` INT NULL COMMENT '上架库位ID → c_bin_location.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_c_inbound_box_line_box` (`InboundBoxId`, `IsDeleted`),
|
||
KEY `idx_c_inbound_box_line_sku` (`SkuId`)
|
||
) COMMENT='仓储-入库箱内SKU行';
|
||
|
||
CREATE TABLE `c_parcel` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`CustomerId` INT NOT NULL COMMENT '客户ID',
|
||
`WarehouseId` INT NOT NULL COMMENT '仓库ID',
|
||
`TrackingNo` VARCHAR(64) NOT NULL COMMENT '快递单号',
|
||
`CarrierName` VARCHAR(64) NULL COMMENT '快递公司',
|
||
`LifecycleStatus` VARCHAR(16) NOT NULL DEFAULT 'inTransit' COMMENT 'inTransit/arrived/stored',
|
||
`ArrivalTime` DATETIME NULL COMMENT '到仓时间',
|
||
`Remark` VARCHAR(512) 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_c_parcel_tracking` (`CustomerId`, `TrackingNo`, `WarehouseId`),
|
||
KEY `idx_c_parcel_status` (`CustomerId`, `LifecycleStatus`)
|
||
) COMMENT='仓储-客户包裹';
|
||
|
||
CREATE TABLE `c_parcel_arrival` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`CustomerId` INT NOT NULL COMMENT '客户ID',
|
||
`WarehouseId` INT NOT NULL COMMENT '仓库ID',
|
||
`ParcelId` INT NULL COMMENT '关联包裹 c_parcel.Id',
|
||
`TrackingNo` VARCHAR(64) 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`),
|
||
KEY `idx_c_parcel_arrival_tracking` (`CustomerId`, `TrackingNo`, `WarehouseId`),
|
||
KEY `idx_c_parcel_arrival_ctime` (`CreateTime`)
|
||
) COMMENT='仓储-快递到仓记录';
|
||
|
||
CREATE TABLE `c_parcel_item` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`ParcelId` INT NOT NULL COMMENT '包裹ID → c_parcel.Id',
|
||
`ProductName` VARCHAR(512) NULL COMMENT '商品名称',
|
||
`AttributeText` VARCHAR(256) NULL COMMENT '规格属性',
|
||
`ImageUrl` VARCHAR(1024) NULL COMMENT '商品图片URL',
|
||
`Quantity` INT NOT NULL DEFAULT 0 COMMENT '数量',
|
||
`SkuId` INT NULL COMMENT '库内SKU ID → c_sku.Id',
|
||
`SkuCode` VARCHAR(64) NULL COMMENT '冗余SKU编码',
|
||
`BinLocationId` INT NULL COMMENT '上架库位ID',
|
||
`Remark` VARCHAR(512) 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_c_parcel_item_parcel` (`ParcelId`, `IsDeleted`)
|
||
) COMMENT='仓储-包裹明细';
|
||
|
||
CREATE TABLE `c_sku_platform_map` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`CustomerId` INT NOT NULL COMMENT '客户ID',
|
||
`StoreId` INT NOT NULL COMMENT '店铺ID → t_sales_store.Id',
|
||
`PlatformSku` VARCHAR(128) NOT NULL COMMENT '平台listing SKU',
|
||
`SkuId` INT NOT NULL COMMENT '库内SKU ID → c_sku.Id',
|
||
`SkuCode` VARCHAR(64) NOT 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_c_sku_map` (`StoreId`, `PlatformSku`),
|
||
KEY `idx_c_sku_map_customer` (`CustomerId`, `SkuId`)
|
||
) COMMENT='仓储-平台SKU映射';
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 订单域 — 店铺(t_sales_*,接口阶段使用)
|
||
-- ---------------------------------------------------------------------------
|
||
|
||
CREATE TABLE `t_sales_store` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`CustomerId` INT NOT NULL COMMENT '客户ID',
|
||
`PlatformCode` VARCHAR(32) NOT NULL COMMENT 'lazada/shopee/tiktok/temu/manual',
|
||
`StoreNickname` VARCHAR(128) NOT NULL COMMENT '店铺昵称',
|
||
`PlatformStoreId` VARCHAR(64) NULL COMMENT '平台侧店铺ID',
|
||
`PlatformAccount` VARCHAR(128) NULL COMMENT '平台账号',
|
||
`SiteCountry` VARCHAR(8) NULL COMMENT '开户站点国家码',
|
||
`SellerId` VARCHAR(64) NULL COMMENT '平台卖家ID',
|
||
`AuthStatus` VARCHAR(16) NOT NULL DEFAULT 'active' COMMENT 'active/expired/revoked',
|
||
`AuthTime` DATETIME NULL COMMENT '授权时间',
|
||
`TokenExpireTime` DATETIME NULL COMMENT 'AccessToken过期时间',
|
||
`RefreshExpireTime` DATETIME NULL COMMENT 'RefreshToken过期时间',
|
||
`AccessToken` VARCHAR(2048) NULL COMMENT 'AccessToken(加密存储)',
|
||
`RefreshToken` VARCHAR(2048) NULL COMMENT 'RefreshToken(加密存储)',
|
||
`TokenExtraJson` JSON NULL COMMENT '平台扩展Token信息',
|
||
`IsAutoFulfill` TINYINT NOT NULL DEFAULT 0 COMMENT '是否自动发货:0-否,1-是',
|
||
`Remark` VARCHAR(512) 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_sales_store_customer` (`CustomerId`, `IsDeleted`),
|
||
KEY `idx_sales_store_platform` (`CustomerId`, `PlatformCode`, `AuthStatus`)
|
||
) COMMENT='销售店铺授权';
|
||
|
||
CREATE TABLE `t_sales_store_order` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`CustomerId` INT NOT NULL COMMENT '客户ID',
|
||
`StoreId` INT NOT NULL COMMENT '店铺ID → t_sales_store.Id',
|
||
`PlatformCode` VARCHAR(32) NOT NULL COMMENT '平台编码',
|
||
`PlatformOrderNo` VARCHAR(64) NOT NULL COMMENT '平台订单号',
|
||
`OrderCountry` VARCHAR(8) NULL COMMENT '订单国家',
|
||
`RecipientName` VARCHAR(64) NULL COMMENT '收件人姓名',
|
||
`RecipientCompany` VARCHAR(128) NULL COMMENT '收件人公司',
|
||
`RecipientPhone` VARCHAR(32) NULL COMMENT '收件人手机',
|
||
`RecipientTelePhone` VARCHAR(32) NULL COMMENT '收件人电话',
|
||
`RecipientEmail` VARCHAR(64) NULL COMMENT '收件人邮箱',
|
||
`RecipientCountry` VARCHAR(8) NULL COMMENT '收件国家码',
|
||
`RecipientProvince` VARCHAR(64) NULL COMMENT '收件省/州',
|
||
`RecipientCity` VARCHAR(64) NULL COMMENT '收件城市',
|
||
`RecipientZipCode` VARCHAR(32) NULL COMMENT '收件邮编',
|
||
`RecipientAddress1` VARCHAR(512) NULL COMMENT '收件地址1',
|
||
`RecipientAddress2` VARCHAR(512) NULL COMMENT '收件地址2',
|
||
`ItemCount` INT NULL COMMENT '商品行数',
|
||
`TotalAmount` DECIMAL(18,4) NULL COMMENT '订单总额',
|
||
`Currency` VARCHAR(8) NULL COMMENT '币种',
|
||
`PlatformOrderTime` DATETIME NULL COMMENT '平台下单时间',
|
||
`FulfillStatus` VARCHAR(32) NOT NULL DEFAULT 'pending' COMMENT '履约状态',
|
||
`PlatformStatus` VARCHAR(64) NULL COMMENT '平台原始状态码',
|
||
`PlatformStatusLabel` VARCHAR(128) NULL COMMENT '平台状态展示文案',
|
||
`ShippingLabelNo` VARCHAR(64) NULL COMMENT '面单号',
|
||
`ShippingLabelUrl` VARCHAR(512) NULL COMMENT '面单URL',
|
||
`IsMultiLabel` TINYINT NOT NULL DEFAULT 0 COMMENT '是否多面单',
|
||
`CustomTags` VARCHAR(512) NULL COMMENT '自定义标签',
|
||
`IsSuspended` TINYINT NOT NULL DEFAULT 0 COMMENT '是否搁置',
|
||
`WarehouseId` INT NULL COMMENT '发货仓库ID',
|
||
`LinkedOrderId` INT NULL COMMENT '关联小包订单 t_order.Id',
|
||
`LastSyncTime` DATETIME NULL COMMENT '最近同步时间',
|
||
`PlatformExtraJson` 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_store_order_no` (`StoreId`, `PlatformOrderNo`),
|
||
KEY `idx_store_order_customer_status` (`CustomerId`, `FulfillStatus`, `PlatformOrderTime`)
|
||
) COMMENT='销售店铺订单';
|
||
|
||
CREATE TABLE `t_sales_store_order_line` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`StoreOrderId` INT NOT NULL COMMENT '店铺订单ID → t_sales_store_order.Id',
|
||
`PlatformLineId` VARCHAR(64) NULL COMMENT '平台行ID',
|
||
`PlatformSku` VARCHAR(128) NULL COMMENT '平台SKU',
|
||
`ProductName` VARCHAR(512) NULL COMMENT '商品名称',
|
||
`ProductImageUrl` VARCHAR(512) NULL COMMENT '商品图片',
|
||
`VariantText` VARCHAR(256) NULL COMMENT '规格属性',
|
||
`UnitPrice` DECIMAL(18,4) NULL COMMENT '单价',
|
||
`Quantity` INT NOT NULL DEFAULT 0 COMMENT '数量',
|
||
`Currency` VARCHAR(8) NULL COMMENT '币种',
|
||
`IsShipExcluded` TINYINT NOT NULL DEFAULT 0 COMMENT '是否拒绝发货',
|
||
`MappedSkuId` INT NULL COMMENT '映射库内SKU → c_sku.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_store_order_line_order` (`StoreOrderId`, `IsDeleted`)
|
||
) COMMENT='销售店铺订单明细';
|
||
|
||
-- 小红书(LIKE AI → OMS)模块,详见设计文档 docs/小红书模块设计-063001.md
|
||
CREATE TABLE `t_xhs_agent` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`CustomerId` INT NOT NULL COMMENT '客户ID → t_customer.Id',
|
||
`DeviceId` VARCHAR(64) NOT NULL COMMENT 'Agent 本机设备标识',
|
||
`DeviceName` VARCHAR(128) NULL COMMENT '用户自定义名称',
|
||
`AgentVersion` VARCHAR(32) NULL COMMENT 'Agent 版本号',
|
||
`BridgePort` INT NOT NULL DEFAULT 9333 COMMENT 'Bridge WebSocket 端口',
|
||
`Status` VARCHAR(16) NOT NULL DEFAULT 'offline' COMMENT 'online/offline',
|
||
`EngineRunning` TINYINT NOT NULL DEFAULT 0 COMMENT 'Bridge 引擎是否运行',
|
||
`ExtensionConnected` TINYINT NOT NULL DEFAULT 0 COMMENT 'Chrome 扩展是否连上 Bridge',
|
||
`XhsLoggedIn` TINYINT NOT NULL DEFAULT 0 COMMENT '小红书是否已登录',
|
||
`LastHeartbeatTime` DATETIME NULL COMMENT '最后心跳时间',
|
||
`LastError` VARCHAR(512) NULL COMMENT '最近一次 Agent 上报错误摘要',
|
||
`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_xhs_agent_device` (`DeviceId`),
|
||
KEY `idx_xhs_agent_customer` (`CustomerId`, `Status`)
|
||
) COMMENT='小红书本地 Agent 设备表';
|
||
|
||
CREATE TABLE `t_xhs_task` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`CustomerId` INT NOT NULL COMMENT '客户ID',
|
||
`AgentId` INT NULL COMMENT '指定执行的 Agent;NULL 表示任意在线 Agent',
|
||
`TaskType` VARCHAR(32) NOT NULL COMMENT '任务类型',
|
||
`ToolName` VARCHAR(64) NULL COMMENT 'LIKE AI 工具名',
|
||
`Priority` INT NOT NULL DEFAULT 0 COMMENT '越大越优先',
|
||
`Status` VARCHAR(16) NOT NULL DEFAULT 'pending' COMMENT 'pending/claimed/running/succeeded/failed/cancelled',
|
||
`ArgumentsJson` JSON NOT NULL COMMENT '工具参数 JSON',
|
||
`ProgressText` VARCHAR(512) NULL COMMENT '执行过程摘要',
|
||
`ResultJson` JSON NULL COMMENT '成功时结构化结果',
|
||
`ErrorMessage` VARCHAR(1024) NULL COMMENT '失败原因',
|
||
`Source` VARCHAR(32) NOT NULL DEFAULT 'web' COMMENT 'web/schedule/skill',
|
||
`SourceRefId` VARCHAR(64) NULL COMMENT '来源关联 ID',
|
||
`ScheduledTime` DATETIME NULL COMMENT '计划执行时间',
|
||
`ClaimedAt` DATETIME NULL COMMENT 'Agent 认领时间',
|
||
`StartedAt` DATETIME NULL COMMENT '开始执行',
|
||
`FinishedAt` DATETIME NULL COMMENT '结束时间',
|
||
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
|
||
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()),
|
||
`CreateUserId` INT NOT NULL DEFAULT 0,
|
||
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`UpdateUserId` INT NULL,
|
||
`UpdateTime` DATETIME NULL,
|
||
PRIMARY KEY (`Id`),
|
||
KEY `idx_xhs_task_poll` (`CustomerId`, `Status`, `ScheduledTime`, `Priority`),
|
||
KEY `idx_xhs_task_agent` (`AgentId`, `Status`),
|
||
KEY `idx_xhs_task_source` (`Source`, `SourceRefId`)
|
||
) COMMENT='小红书 Agent 任务队列表';
|
||
|
||
CREATE TABLE `t_xhs_publish_record` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`CustomerId` INT NOT NULL COMMENT '客户ID',
|
||
`TaskId` INT NULL COMMENT '关联 t_xhs_task.Id',
|
||
`ToolName` VARCHAR(64) NOT NULL COMMENT 'publish_content / publish_with_video',
|
||
`Title` VARCHAR(256) NOT NULL COMMENT '笔记标题',
|
||
`ContentPreview` VARCHAR(512) NULL COMMENT '正文摘要',
|
||
`ContentFull` TEXT NULL COMMENT '完整正文',
|
||
`MediaJson` JSON NULL COMMENT '图片/视频 URL 列表',
|
||
`TagsJson` JSON NULL COMMENT '标签数组',
|
||
`Visibility` VARCHAR(32) NULL COMMENT '可见范围',
|
||
`Status` VARCHAR(16) NOT NULL DEFAULT 'draft' COMMENT 'draft/scheduled/publishing/succeeded/failed/cancelled',
|
||
`Success` TINYINT NULL COMMENT '最终是否成功',
|
||
`ResultSummary` VARCHAR(1024) NULL COMMENT 'Agent 回传结果摘要',
|
||
`ScheduledTime` DATETIME NULL COMMENT '定时发布时间',
|
||
`PublishedTime` DATETIME NULL COMMENT '实际发布完成时间',
|
||
`SkillId` INT NULL COMMENT '若来自技能卡片',
|
||
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
|
||
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()),
|
||
`CreateUserId` INT NOT NULL DEFAULT 0,
|
||
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`UpdateUserId` INT NULL,
|
||
`UpdateTime` DATETIME NULL,
|
||
PRIMARY KEY (`Id`),
|
||
KEY `idx_xhs_publish_customer_time` (`CustomerId`, `CreateTime`),
|
||
KEY `idx_xhs_publish_status_sched` (`CustomerId`, `Status`, `ScheduledTime`),
|
||
KEY `idx_xhs_publish_task` (`TaskId`)
|
||
) COMMENT='小红书发布记录表';
|
||
|
||
CREATE TABLE `t_xhs_analysis_session` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`CustomerId` INT NOT NULL COMMENT '客户ID',
|
||
`SessionName` VARCHAR(128) NULL COMMENT '用户备注名',
|
||
`AnalysisType` VARCHAR(32) NOT NULL COMMENT 'home_feed/search/my_feeds/feed_detail',
|
||
`Keyword` VARCHAR(128) NULL COMMENT '搜索关键词',
|
||
`TaskId` INT NULL COMMENT '采集任务 ID',
|
||
`FeedsJson` JSON NULL COMMENT '采集笔记列表',
|
||
`SelectedFeedId` VARCHAR(64) NULL COMMENT '当前选中笔记 ID',
|
||
`AiAnalysisMarkdown` MEDIUMTEXT NULL COMMENT 'AI 分析结果',
|
||
`SkillId` INT NULL COMMENT '技能配方 ID',
|
||
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
|
||
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()),
|
||
`CreateUserId` INT NOT NULL DEFAULT 0,
|
||
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`UpdateUserId` INT NULL,
|
||
`UpdateTime` DATETIME NULL,
|
||
PRIMARY KEY (`Id`),
|
||
KEY `idx_xhs_analysis_customer` (`CustomerId`, `CreateTime`)
|
||
) COMMENT='小红书内容分析会话表';
|
||
|
||
CREATE TABLE `t_xhs_skill` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`CustomerId` INT NOT NULL COMMENT '客户ID;0 表示系统预置',
|
||
`ExternalId` VARCHAR(32) NOT NULL COMMENT '对外稳定 ID',
|
||
`Title` VARCHAR(256) NOT NULL COMMENT '技能名称',
|
||
`SkillType` VARCHAR(32) NOT NULL DEFAULT 'ai_create' COMMENT '技能类型',
|
||
`PresetId` VARCHAR(64) NULL COMMENT '内置预设标识',
|
||
`RecipeJson` JSON NOT NULL COMMENT '配方 JSON',
|
||
`SortOrder` INT NOT NULL DEFAULT 0 COMMENT '排序',
|
||
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
|
||
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()),
|
||
`CreateUserId` INT NOT NULL DEFAULT 0,
|
||
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`UpdateUserId` INT NULL,
|
||
`UpdateTime` DATETIME NULL,
|
||
PRIMARY KEY (`Id`),
|
||
UNIQUE KEY `uk_xhs_skill_external` (`CustomerId`, `ExternalId`),
|
||
KEY `idx_xhs_skill_customer` (`CustomerId`, `SortOrder`)
|
||
) COMMENT='小红书技能卡片表';
|
||
|
||
CREATE TABLE `t_xhs_human_config` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`CustomerId` INT NOT NULL COMMENT '客户ID',
|
||
`BehaviorJson` JSON NOT NULL COMMENT 'human_behavior 配置',
|
||
`GuardJson` JSON NOT NULL COMMENT 'human_guard 配置',
|
||
`Version` INT NOT NULL DEFAULT 1 COMMENT '配置版本',
|
||
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
|
||
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()),
|
||
`CreateUserId` INT NOT NULL DEFAULT 0,
|
||
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`UpdateUserId` INT NULL,
|
||
`UpdateTime` DATETIME NULL,
|
||
PRIMARY KEY (`Id`),
|
||
UNIQUE KEY `uk_xhs_human_customer` (`CustomerId`)
|
||
) COMMENT='小红书拟人行为与防封配置表';
|
||
|
||
CREATE TABLE `t_ai_provider` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`CustomerId` INT NOT NULL COMMENT '客户ID;0 表示全局',
|
||
`ProviderKey` VARCHAR(32) NOT NULL COMMENT 'ai_chatgpt / ai_zhipu 等',
|
||
`ProviderType` VARCHAR(32) NOT NULL COMMENT 'chatgpt/doubao/deepseek/zhipu',
|
||
`DisplayName` VARCHAR(64) NOT NULL COMMENT '展示名',
|
||
`BaseUrl` VARCHAR(512) NOT NULL COMMENT 'API Base URL',
|
||
`ApiKeyEnc` VARCHAR(512) NULL COMMENT 'API Key(暂明文,后续可加密)',
|
||
`ApiSecretEnc` VARCHAR(512) NULL COMMENT 'Secret/模型名',
|
||
`IsDefault` TINYINT NOT NULL DEFAULT 0 COMMENT '是否默认',
|
||
`Enabled` TINYINT NOT NULL DEFAULT 1 COMMENT '是否启用',
|
||
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
|
||
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()),
|
||
`CreateUserId` INT NOT NULL DEFAULT 0,
|
||
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`UpdateUserId` INT NULL,
|
||
`UpdateTime` DATETIME NULL,
|
||
PRIMARY KEY (`Id`),
|
||
UNIQUE KEY `uk_ai_provider` (`CustomerId`, `ProviderKey`),
|
||
KEY `idx_ai_customer` (`CustomerId`, `Enabled`)
|
||
) COMMENT='全局 AI 提供商配置表(CustomerId=0 表示平台级)';
|
||
|
||
CREATE TABLE `t_ai_skill` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`SkillKey` VARCHAR(64) NOT NULL COMMENT '稳定键',
|
||
`Scene` VARCHAR(32) NOT NULL COMMENT '场景 pricePublish/autoTriggerFormula/receiverAddressParse/itfxPrefixScript',
|
||
`Name` VARCHAR(128) NOT NULL COMMENT '展示名',
|
||
`Description` VARCHAR(512) NULL COMMENT '简介',
|
||
`Content` LONGTEXT NOT NULL COMMENT '发给模型的正文',
|
||
`SortOrder` INT NOT NULL DEFAULT 0 COMMENT '排序',
|
||
`Enabled` TINYINT NOT NULL DEFAULT 1 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_ai_skill_key` (`SkillKey`),
|
||
KEY `idx_ai_skill_scene` (`Scene`, `Enabled`, `SortOrder`)
|
||
) COMMENT='平台级 AI Skill(提示词/规范)';
|
||
|
||
CREATE TABLE `t_mcp_tool` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增',
|
||
`ToolKey` VARCHAR(64) NOT NULL COMMENT '工具编码,如 oms.price_check',
|
||
`DisplayName` VARCHAR(128) NOT NULL COMMENT '显示名称',
|
||
`Description` VARCHAR(1000) NOT NULL COMMENT '给 AI 的工具描述',
|
||
`Enabled` TINYINT NOT NULL DEFAULT 1 COMMENT '是否启用:0-否,1-是',
|
||
`SortOrder` INT NOT NULL DEFAULT 0 COMMENT '排序,越小越靠前',
|
||
`Remark` VARCHAR(512) 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_mcp_tool_key` (`ToolKey`),
|
||
KEY `idx_mcp_tool_enabled` (`Enabled`, `SortOrder`, `Id`)
|
||
) COMMENT='MCP 工具配置表';
|
||
|
||
CREATE TABLE `t_pickup_order` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增',
|
||
`PickupNo` VARCHAR(32) NOT NULL COMMENT '揽收单号',
|
||
`RequestId` VARCHAR(64) NULL COMMENT '请求幂等ID',
|
||
`CustomerId` INT NOT NULL COMMENT '客户Id',
|
||
`OrganizationId` CHAR(36) NULL COMMENT '数据归属组织',
|
||
`SecretLevel` TINYINT NOT NULL DEFAULT 2 COMMENT '数据密级 1-4',
|
||
`SenderAddressId` INT NOT NULL COMMENT '客户揽收地址簿Id',
|
||
`Direction` VARCHAR(16) NOT NULL DEFAULT 'forward' COMMENT 'forward正向(客户→仓)/reverse逆向(仓→客户)',
|
||
`SenderName` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '取件联系人快照',
|
||
`SenderCompany` VARCHAR(255) NULL COMMENT '公司快照',
|
||
`SenderCountry` INT NULL COMMENT '国家 t_country.Id 快照',
|
||
`SenderCountryCode` VARCHAR(8) NULL COMMENT '国家码快照',
|
||
`SenderProvince` VARCHAR(50) NULL COMMENT '省快照',
|
||
`SenderCity` VARCHAR(50) NULL COMMENT '市快照',
|
||
`SenderZipCode` VARCHAR(50) NULL COMMENT '邮编快照',
|
||
`SenderStreetAddress1` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '地址1快照',
|
||
`SenderStreetAddress2` VARCHAR(500) NULL COMMENT '地址2快照',
|
||
`SenderStreetAddress3` VARCHAR(500) NULL COMMENT '地址3快照',
|
||
`SenderHouseNumber` VARCHAR(50) NULL COMMENT '门牌号快照',
|
||
`SenderPhone` VARCHAR(50) NULL COMMENT '手机快照',
|
||
`SenderTelePhone` VARCHAR(50) NULL COMMENT '电话快照',
|
||
`SenderEmail` VARCHAR(60) NULL COMMENT '邮箱快照',
|
||
`WarehouseId` INT NOT NULL COMMENT '送到仓库Id',
|
||
`CarrierCode` VARCHAR(64) NULL COMMENT '承运商编码(draft可空)',
|
||
`CarrierService` VARCHAR(64) NULL COMMENT '承运服务(draft可空)',
|
||
`CarrierWaybillNo` VARCHAR(64) NULL COMMENT '承运商回执单号',
|
||
`ExpectPickupTime` DATETIME NOT NULL COMMENT '期望揽收时间',
|
||
`PickupWindowStart` DATETIME NULL COMMENT '时间窗起',
|
||
`PickupWindowEnd` DATETIME NULL COMMENT '时间窗止',
|
||
`ActualPickupTime` DATETIME NULL COMMENT '实际取件时间',
|
||
`Status` VARCHAR(32) NOT NULL DEFAULT 'draft' COMMENT 'draft/scheduled/dispatched/picked/inbound/cancelled/failed',
|
||
`ParcelCount` INT NOT NULL DEFAULT 0 COMMENT '关联票数',
|
||
`TotalActualWeight` DECIMAL(18,3) NULL COMMENT '汇总实重',
|
||
`ChargeableWeight` DECIMAL(18,3) NULL COMMENT '计费重',
|
||
`VolumetricWeight` DECIMAL(18,3) NULL COMMENT '体积重',
|
||
`PackageSizesJson` TEXT NULL COMMENT '承运回传尺寸 JSON',
|
||
`CarrierFreightWeight` DECIMAL(18,3) NULL COMMENT '承运计费重(对照)',
|
||
`CarrierQuotedFreightAmount` DECIMAL(18,2) NULL COMMENT '承运报价运费(对照)',
|
||
`CarrierQuotedReceivableAmount` DECIMAL(18,2) NULL COMMENT '承运报文应收(对照)',
|
||
`CarrierQuoteJson` TEXT NULL COMMENT '承运报价原文',
|
||
`ReceivableFeeJson` TEXT NULL COMMENT '系统卖价费用明细 JSON',
|
||
`PayableFeeJson` TEXT NULL COMMENT '系统买价费用明细 JSON',
|
||
`FeePushedAt` DATETIME NULL COMMENT '承运推送件重尺时间',
|
||
`Currency` VARCHAR(8) NOT NULL DEFAULT 'CNY' COMMENT '币种',
|
||
`FreightAmount` DECIMAL(18,2) NULL COMMENT '对客揽收运费',
|
||
`OtherFeeAmount` DECIMAL(18,2) NULL COMMENT '对客其他费',
|
||
`ReceivableAmount` DECIMAL(18,2) NULL COMMENT '对客应收合计',
|
||
`PayStatus` VARCHAR(16) NOT NULL DEFAULT 'unpaid' COMMENT 'unpaid/paid',
|
||
`PayTime` DATETIME NULL COMMENT '支付时间',
|
||
`PayMode` VARCHAR(16) NOT NULL DEFAULT 'prepaid' COMMENT 'prepaid/collect',
|
||
`CarrierPayableAmount` DECIMAL(18,2) NULL COMMENT '应付承运商',
|
||
`SettlementStatus` VARCHAR(16) NOT NULL DEFAULT 'none' COMMENT 'none/pending/settled',
|
||
`SettlementBatchNo` VARCHAR(64) NULL COMMENT '结算批次号',
|
||
`SettledAt` DATETIME NULL COMMENT '结算时间',
|
||
`Remark` VARCHAR(512) 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_pickup_no` (`PickupNo`),
|
||
UNIQUE KEY `uk_pickup_request_id` (`RequestId`),
|
||
KEY `idx_pickup_customer_status` (`CustomerId`, `Status`, `CreateTime`),
|
||
KEY `idx_pickup_direction_status` (`Direction`, `Status`, `CreateTime`),
|
||
KEY `idx_pickup_warehouse_time` (`WarehouseId`, `ExpectPickupTime`),
|
||
KEY `idx_pickup_pay` (`PayStatus`),
|
||
KEY `idx_pickup_settle` (`SettlementStatus`),
|
||
KEY `idx_pickup_org_secret_ctime` (`OrganizationId`, `SecretLevel`, `CreateTime`)
|
||
) COMMENT='揽收单(上门取件履约+对客收款+承运结算)';
|
||
|
||
CREATE TABLE `t_pickup_order_line` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增',
|
||
`PickupOrderId` INT NOT NULL COMMENT '揽收单Id',
|
||
`OrderId` INT NOT NULL COMMENT '物流订单Id',
|
||
`ServiceNo` VARCHAR(64) NULL COMMENT '运单号快照(便于列表)',
|
||
`ClientNo` VARCHAR(64) NULL COMMENT '客户单号快照',
|
||
`SortNo` INT NOT NULL DEFAULT 0 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_pickup_line_order` (`OrderId`),
|
||
UNIQUE KEY `uk_pickup_line_pair` (`PickupOrderId`, `OrderId`),
|
||
KEY `idx_pickup_line_header` (`PickupOrderId`, `IsDeleted`)
|
||
) COMMENT='揽收单关联物流订单(1揽收:N物流)';
|
||
|
||
CREATE TABLE `t_9610_order` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`OrderId` INT NOT NULL COMMENT '关联运单 t_order.Id',
|
||
`ServiceNo` VARCHAR(64) NULL COMMENT '运单号冗余',
|
||
`CustomerId` INT NOT NULL DEFAULT 0 COMMENT '客户Id',
|
||
`Status` VARCHAR(16) NOT NULL DEFAULT 'pending' COMMENT 'pending待申报 / declared已申报',
|
||
`PlatformCode` VARCHAR(16) NOT NULL DEFAULT '' COMMENT '电商平台',
|
||
`EcomCorpCode` VARCHAR(18) NULL COMMENT '电商企业代码',
|
||
`EcomCorpName` VARCHAR(100) NULL COMMENT '电商企业名称',
|
||
`ProducerCode` VARCHAR(18) NULL COMMENT '生产销售单位代码',
|
||
`ProducerName` VARCHAR(100) NULL COMMENT '生产销售单位',
|
||
`ClientNo` VARCHAR(48) NOT NULL DEFAULT '' COMMENT '客户单号(对齐 t_order.ClientNo)',
|
||
`BusinessType` CHAR(1) NOT NULL DEFAULT 'B' COMMENT '业务类型 A简化/B汇总',
|
||
`Region` VARCHAR(10) NULL COMMENT '区域 SZ/other',
|
||
`AgentDeclare` VARCHAR(2) NULL COMMENT '是否代理申报 是/否',
|
||
`ActualSellerCode` VARCHAR(18) NULL COMMENT '实际卖家信用代码',
|
||
`PreRecordFlag` CHAR(1) NULL COMMENT '汇总预录 0已预录 1未预录',
|
||
`IsSummarySimple` TINYINT NOT NULL DEFAULT 0 COMMENT '是否汇总简化申报',
|
||
`GrossWeight` DECIMAL(19,5) NOT NULL DEFAULT 0 COMMENT '毛重KG',
|
||
`Currency` VARCHAR(4) NOT NULL DEFAULT 'CNY' COMMENT '币制',
|
||
`DestCountry` VARCHAR(4) NOT NULL DEFAULT '' COMMENT '目的国',
|
||
`Freight` DECIMAL(19,5) NULL COMMENT '运费',
|
||
`FreightCurrency` VARCHAR(4) NULL COMMENT '运费币制',
|
||
`FreightMark` INT NULL COMMENT '运费标志 1率2单价3总价',
|
||
`PackageType` INT NULL COMMENT '包装种类代码',
|
||
`PackageQty` INT NULL COMMENT '件数',
|
||
`ShipmentNo` VARCHAR(32) NULL COMMENT '出货单号',
|
||
`CustomsOrderNo` VARCHAR(32) NULL COMMENT '海关订单号(申报回写)',
|
||
`DownstreamRefNo` VARCHAR(32) NULL COMMENT '申报回写的 referenceNo 快照',
|
||
`EnterpriseBizNo` VARCHAR(48) NULL COMMENT '企业唯一编号(上游 copNo)',
|
||
`ManifestNo` VARCHAR(48) NULL COMMENT '清单编号(上游 invtNo)',
|
||
`ClearanceTime` VARCHAR(48) NULL COMMENT '结关日期原文',
|
||
`CustomsInboundTime` VARCHAR(48) NULL COMMENT '海关入库时间原文',
|
||
`CustomsState` VARCHAR(4) NULL COMMENT '海关状态',
|
||
`DeclareCustomsCode` VARCHAR(4) NULL COMMENT '申报地海关代码',
|
||
`PlatformCorpCode` VARCHAR(18) NULL COMMENT '电商平台代码',
|
||
`PlatformName` VARCHAR(100) NULL COMMENT '电商平台名称',
|
||
`LogisticsCorpCode` VARCHAR(18) NULL COMMENT '物流企业代码',
|
||
`LogisticsCorpName` VARCHAR(100) NULL COMMENT '物流企业名称',
|
||
`IeMark` VARCHAR(4) NULL COMMENT '进出口标记 I/E',
|
||
`ExportPortCode` VARCHAR(4) NULL COMMENT '出口口岸代码',
|
||
`ExportDate` VARCHAR(32) NULL COMMENT '出口日期原文',
|
||
`DeclareAgentCode` VARCHAR(18) NULL COMMENT '申报企业代码',
|
||
`DeclareAgentName` VARCHAR(100) NULL COMMENT '申报企业名称',
|
||
`TradeModeCode` VARCHAR(4) NULL COMMENT '贸易方式代码',
|
||
`TransportMode` VARCHAR(4) NULL COMMENT '运输方式代码',
|
||
`DeclareTime` DATETIME NULL COMMENT '申报成功时间',
|
||
`ManifestSyncTime` DATETIME NULL COMMENT '清单数据最近同步时间',
|
||
`FailReason` VARCHAR(512) NULL COMMENT '最近失败原因',
|
||
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除',
|
||
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT '' 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_9610_order_id` (`OrderId`),
|
||
KEY `idx_9610_status_ctime` (`Status`, `CreateTime`),
|
||
KEY `idx_9610_service_no` (`ServiceNo`),
|
||
KEY `idx_9610_client_no` (`ClientNo`),
|
||
KEY `idx_9610_customer` (`CustomerId`, `CreateTime`),
|
||
KEY `idx_9610_manifest` (`ManifestNo`)
|
||
) COMMENT='9610汇总申报单';
|
||
|
||
CREATE TABLE `t_9610_order_item` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`Customs9610OrderId` INT NOT NULL COMMENT 't_9610_order.Id',
|
||
`OrderDeclarationId` INT NULL COMMENT '溯源 t_order_declaration.Id',
|
||
`Sku` VARCHAR(32) NOT NULL DEFAULT '' COMMENT 'SKU(对齐 t_order_declaration.Sku)',
|
||
`CnName` VARCHAR(250) NOT NULL DEFAULT '' COMMENT '中文品名(对齐 t_order_declaration.CnName)',
|
||
`ExHsCode` VARCHAR(10) NULL COMMENT '出口海关编码(对齐 t_order_declaration.ExHsCode)',
|
||
`DeclareElement` VARCHAR(255) NULL COMMENT '出口申报要素',
|
||
`Barcode` VARCHAR(255) NULL COMMENT '条形码',
|
||
`DestCountry` VARCHAR(255) NULL COMMENT '目的国(地区)代码',
|
||
`ItemCurrency` VARCHAR(3) NULL COMMENT '币制',
|
||
`UnitPrice` DECIMAL(19,5) NOT NULL DEFAULT 0 COMMENT '单价(对齐 t_order_declaration.UnitPrice)',
|
||
`Amount` DECIMAL(19,5) NULL COMMENT '总价(对齐 t_order_declaration.Amount)',
|
||
`Quantity` DECIMAL(19,5) NOT NULL DEFAULT 0 COMMENT '数量(对齐 t_order_declaration.Quantity)',
|
||
`LegalQty` DECIMAL(19,5) NULL COMMENT '法定数量',
|
||
`Unit` VARCHAR(3) NULL COMMENT '计量单位(对齐 t_order_declaration.Unit)',
|
||
`LegalUnit` VARCHAR(3) NULL COMMENT '法定计量单位',
|
||
`Freight` DECIMAL(12,4) NULL COMMENT '行运费',
|
||
`SortNo` INT NOT NULL DEFAULT 0 COMMENT '排序',
|
||
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT '软删除',
|
||
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT '' 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_9610_item_header` (`Customs9610OrderId`, `IsDeleted`)
|
||
) COMMENT='9610申报商品明细';
|
||
|
||
CREATE TABLE `t_kb_category` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`Code` VARCHAR(64) NOT NULL COMMENT '稳定键,如 pricing',
|
||
`Name` VARCHAR(128) NOT NULL COMMENT '展示名(中文)',
|
||
`SortOrder` INT NOT NULL DEFAULT 0 COMMENT '排序,越小越前',
|
||
`Enabled` TINYINT NOT NULL DEFAULT 1 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_kb_category_code` (`Code`),
|
||
KEY `idx_kb_category_enabled_sort` (`Enabled`, `SortOrder`)
|
||
) COMMENT='知识库分类';
|
||
|
||
CREATE TABLE `t_kb_article` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`CategoryId` INT NOT NULL COMMENT '分类 Id',
|
||
`Title` VARCHAR(200) NOT NULL COMMENT '标题(中文)',
|
||
`Summary` VARCHAR(500) NULL COMMENT '列表摘要',
|
||
`Content` LONGTEXT NOT NULL COMMENT 'Markdown 正文(中文)',
|
||
`Audience` VARCHAR(16) NOT NULL DEFAULT 'customer' COMMENT '受众 customer/internal',
|
||
`Status` VARCHAR(16) NOT NULL DEFAULT 'draft' COMMENT 'draft/published/offline',
|
||
`Tags` VARCHAR(256) NULL COMMENT '逗号分隔标签',
|
||
`RelatedPath` VARCHAR(256) NULL COMMENT '站内关联 path',
|
||
`RelatedLabel` VARCHAR(64) NULL COMMENT '关联按钮文案',
|
||
`IsPinned` TINYINT NOT NULL DEFAULT 0 COMMENT '置顶:0-否,1-是',
|
||
`SortOrder` INT NOT NULL DEFAULT 0 COMMENT '同类排序',
|
||
`PublishTime` DATETIME NULL COMMENT '发布时间',
|
||
`ExpireTime` DATETIME NULL COMMENT '过期时间',
|
||
`ViewCount` INT NOT NULL DEFAULT 0 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_kb_article_list` (`Status`, `Audience`, `CategoryId`, `IsPinned`, `SortOrder`),
|
||
KEY `idx_kb_article_publish` (`Status`, `Audience`, `PublishTime`),
|
||
KEY `idx_kb_article_hot` (`Status`, `Audience`, `IsPinned`, `ViewCount`)
|
||
) COMMENT='知识库文章';
|
||
|
||
CREATE TABLE `t_xhs_media` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`CustomerId` INT NOT NULL COMMENT '客户ID',
|
||
`FileName` VARCHAR(256) NOT NULL COMMENT '原始文件名',
|
||
`StoragePath` VARCHAR(512) NOT NULL COMMENT '相对路径',
|
||
`PublicUrl` VARCHAR(512) NOT NULL COMMENT '对外 HTTPS URL',
|
||
`MimeType` VARCHAR(64) NULL COMMENT 'MIME',
|
||
`FileSizeBytes` BIGINT NULL COMMENT '字节数',
|
||
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
|
||
`CreateUserId` INT NOT NULL DEFAULT 0,
|
||
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`UpdateUserId` INT NULL,
|
||
`UpdateTime` DATETIME NULL,
|
||
PRIMARY KEY (`Id`),
|
||
KEY `idx_xhs_media_customer` (`CustomerId`, `CreateTime`)
|
||
) COMMENT='小红书创作上传媒体表';
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 数据权限(RBAC 侧表;若与 OMS 分库,请只在 RBAC 库执行本段)
|
||
-- ---------------------------------------------------------------------------
|
||
CREATE TABLE `user_org_perm` (
|
||
`Id` CHAR(36) NOT NULL COMMENT '主键 GUID',
|
||
`UserId` CHAR(36) NOT NULL COMMENT 'FK user.Id',
|
||
`OrganizationId` CHAR(36) NOT NULL COMMENT 'FK organization.Id',
|
||
`OrgScope` TINYINT NOT NULL DEFAULT 2 COMMENT '1=仅本级 2=本级+所有下级',
|
||
`EffectiveTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '生效时间',
|
||
`ExpireTime` DATETIME NULL COMMENT '过期时间,NULL=永久',
|
||
`IsTemporary` TINYINT NOT NULL DEFAULT 0 COMMENT '是否临时授权:0否 1是',
|
||
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
|
||
`CreateUserId` INT NOT NULL DEFAULT 0,
|
||
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`UpdateUserId` INT NULL,
|
||
`UpdateTime` DATETIME NULL,
|
||
PRIMARY KEY (`Id`),
|
||
KEY `idx_user_org_perm_user` (`UserId`, `IsDeleted`),
|
||
KEY `idx_user_org_perm_org` (`OrganizationId`),
|
||
KEY `idx_user_org_perm_expire` (`ExpireTime`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户组织数据权限';
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 2. 角色组织权限(角色继承 / 模板绑定)
|
||
-- ---------------------------------------------------------------------------
|
||
CREATE TABLE `role_org_perm` (
|
||
`Id` CHAR(36) NOT NULL,
|
||
`RoleId` CHAR(36) NOT NULL COMMENT 'FK role.Id',
|
||
`OrganizationId` CHAR(36) NOT NULL,
|
||
`OrgScope` TINYINT NOT NULL DEFAULT 2,
|
||
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
|
||
`CreateUserId` INT NOT NULL DEFAULT 0,
|
||
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`UpdateUserId` INT NULL,
|
||
`UpdateTime` DATETIME NULL,
|
||
PRIMARY KEY (`Id`),
|
||
UNIQUE KEY `uk_role_org_perm` (`RoleId`, `OrganizationId`, `IsDeleted`),
|
||
KEY `idx_role_org_perm_role` (`RoleId`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色组织数据权限';
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 3. 数据范围(个人/小组/部门/组织树/全局)
|
||
-- ---------------------------------------------------------------------------
|
||
CREATE TABLE `role_data_scope` (
|
||
`Id` CHAR(36) NOT NULL,
|
||
`RoleId` CHAR(36) NOT NULL,
|
||
`DataScope` TINYINT NOT NULL COMMENT '1个人 2小组 3部门 4组织树 5全局',
|
||
`DataResourceCode` VARCHAR(32) NULL COMMENT 'NULL=全局默认;Order/Customer/Recharge 等',
|
||
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
|
||
`CreateUserId` INT NOT NULL DEFAULT 0,
|
||
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`UpdateUserId` INT NULL,
|
||
`UpdateTime` DATETIME NULL,
|
||
PRIMARY KEY (`Id`),
|
||
UNIQUE KEY `uk_role_data_scope` (`RoleId`, `DataResourceCode`, `IsDeleted`),
|
||
KEY `idx_role_data_scope_role` (`RoleId`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色数据范围';
|
||
|
||
CREATE TABLE `user_data_scope` (
|
||
`Id` CHAR(36) NOT NULL,
|
||
`UserId` CHAR(36) NOT NULL,
|
||
`DataScope` TINYINT NOT NULL,
|
||
`DataResourceCode` VARCHAR(32) NULL,
|
||
`EffectiveTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`ExpireTime` DATETIME NULL,
|
||
`IsTemporary` TINYINT NOT NULL DEFAULT 0,
|
||
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
|
||
`CreateUserId` INT NOT NULL DEFAULT 0,
|
||
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`UpdateUserId` INT NULL,
|
||
`UpdateTime` DATETIME NULL,
|
||
PRIMARY KEY (`Id`),
|
||
UNIQUE KEY `uk_user_data_scope` (`UserId`, `DataResourceCode`, `IsDeleted`),
|
||
KEY `idx_user_data_scope_user` (`UserId`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户数据范围(覆盖角色默认)';
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 4. 业务维度
|
||
-- ---------------------------------------------------------------------------
|
||
CREATE TABLE `role_biz_perm` (
|
||
`Id` CHAR(36) NOT NULL,
|
||
`RoleId` CHAR(36) NOT NULL,
|
||
`BizType` VARCHAR(32) NOT NULL COMMENT 'product_line/kpi_area/customer_group/warehouse/region',
|
||
`BizId` VARCHAR(64) NOT NULL COMMENT '业务主键字符串',
|
||
`BizName` VARCHAR(128) NULL COMMENT '冗余展示名',
|
||
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
|
||
`CreateUserId` INT NOT NULL DEFAULT 0,
|
||
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`Id`),
|
||
KEY `idx_role_biz_perm_role` (`RoleId`, `BizType`),
|
||
KEY `idx_role_biz_perm_biz` (`BizType`, `BizId`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色业务维度权限';
|
||
|
||
CREATE TABLE `user_biz_perm` (
|
||
`Id` CHAR(36) NOT NULL,
|
||
`UserId` CHAR(36) NOT NULL,
|
||
`BizType` VARCHAR(32) NOT NULL,
|
||
`BizId` VARCHAR(64) NOT NULL,
|
||
`BizName` VARCHAR(128) NULL,
|
||
`EffectiveTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`ExpireTime` DATETIME NULL,
|
||
`IsTemporary` TINYINT NOT NULL DEFAULT 0,
|
||
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
|
||
`CreateUserId` INT NOT NULL DEFAULT 0,
|
||
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`Id`),
|
||
KEY `idx_user_biz_perm_user` (`UserId`, `BizType`),
|
||
KEY `idx_user_biz_perm_biz` (`BizType`, `BizId`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户业务维度权限';
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 5. 密级
|
||
-- ---------------------------------------------------------------------------
|
||
CREATE TABLE `role_secret_perm` (
|
||
`Id` CHAR(36) NOT NULL,
|
||
`RoleId` CHAR(36) NOT NULL,
|
||
`SecretLevel` TINYINT NOT NULL COMMENT '1公开 2内部 3机密 4绝密',
|
||
`DataResourceCode` VARCHAR(32) NULL,
|
||
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
|
||
`CreateUserId` INT NOT NULL DEFAULT 0,
|
||
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`Id`),
|
||
KEY `idx_role_secret_perm_role` (`RoleId`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色密级权限';
|
||
|
||
CREATE TABLE `user_secret_perm` (
|
||
`Id` CHAR(36) NOT NULL,
|
||
`UserId` CHAR(36) NOT NULL,
|
||
`SecretLevel` TINYINT NOT NULL,
|
||
`DataResourceCode` VARCHAR(32) NULL,
|
||
`EffectiveTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`ExpireTime` DATETIME NULL,
|
||
`IsTemporary` TINYINT NOT NULL DEFAULT 0,
|
||
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
|
||
`CreateUserId` INT NOT NULL DEFAULT 0,
|
||
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`Id`),
|
||
KEY `idx_user_secret_perm_user` (`UserId`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户密级权限';
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 6. 自定义过滤规则(JSON AST,禁止存 SQL)
|
||
-- ---------------------------------------------------------------------------
|
||
CREATE TABLE `role_filter_rule` (
|
||
`Id` CHAR(36) NOT NULL,
|
||
`RoleId` CHAR(36) NOT NULL,
|
||
`DataResourceCode` VARCHAR(32) NOT NULL,
|
||
`FilterContent` JSON NOT NULL COMMENT '过滤条件 AST',
|
||
`FilterHash` CHAR(64) NOT NULL COMMENT 'SHA256(FilterContent)',
|
||
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
|
||
`CreateUserId` INT NOT NULL DEFAULT 0,
|
||
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`UpdateUserId` INT NULL,
|
||
`UpdateTime` DATETIME NULL,
|
||
PRIMARY KEY (`Id`),
|
||
UNIQUE KEY `uk_role_filter_rule` (`RoleId`, `DataResourceCode`, `IsDeleted`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色自定义过滤';
|
||
|
||
CREATE TABLE `user_filter_rule` (
|
||
`Id` CHAR(36) NOT NULL,
|
||
`UserId` CHAR(36) NOT NULL,
|
||
`DataResourceCode` VARCHAR(32) NOT NULL,
|
||
`FilterContent` JSON NOT NULL,
|
||
`FilterHash` CHAR(64) NOT NULL,
|
||
`EffectiveTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`ExpireTime` DATETIME NULL,
|
||
`IsTemporary` TINYINT NOT NULL DEFAULT 0,
|
||
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
|
||
`CreateUserId` INT NOT NULL DEFAULT 0,
|
||
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`UpdateUserId` INT NULL,
|
||
`UpdateTime` DATETIME NULL,
|
||
PRIMARY KEY (`Id`),
|
||
UNIQUE KEY `uk_user_filter_rule` (`UserId`, `DataResourceCode`, `IsDeleted`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户自定义过滤';
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 7. 数据资源注册(模块接入清单)
|
||
-- ---------------------------------------------------------------------------
|
||
CREATE TABLE `data_resource` (
|
||
`Id` CHAR(36) NOT NULL,
|
||
`Code` VARCHAR(32) NOT NULL COMMENT 'Order/Customer/Recharge/ChannelProduct/Xhs',
|
||
`Name` VARCHAR(64) NOT NULL,
|
||
`Description` VARCHAR(256) NULL,
|
||
`MainTable` VARCHAR(64) NULL COMMENT '主表名,如 t_order',
|
||
`OrgField` VARCHAR(64) NULL COMMENT '组织字段名',
|
||
`OwnerField` VARCHAR(64) NULL COMMENT '负责人字段名',
|
||
`SecretLevelField` VARCHAR(64) NULL DEFAULT 'SecretLevel',
|
||
`IsEnabled` TINYINT NOT NULL DEFAULT 1,
|
||
`SortOrder` INT NOT NULL DEFAULT 0,
|
||
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
|
||
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`Id`),
|
||
UNIQUE KEY `uk_data_resource_code` (`Code`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='数据权限资源注册';
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 8. 字段脱敏配置
|
||
-- ---------------------------------------------------------------------------
|
||
CREATE TABLE `data_perm_field_mask` (
|
||
`Id` CHAR(36) NOT NULL,
|
||
`DataResourceCode` VARCHAR(32) NOT NULL,
|
||
`FieldName` VARCHAR(64) NOT NULL COMMENT 'DTO/表字段名',
|
||
`SecretLevel` TINYINT NOT NULL COMMENT '达到此密级才脱敏',
|
||
`MaskType` VARCHAR(32) NOT NULL DEFAULT 'partial' COMMENT 'partial/full/hide',
|
||
`MaskPattern` VARCHAR(128) NULL COMMENT '如 phone: 3,4 保留首尾',
|
||
`IsEnabled` TINYINT NOT NULL DEFAULT 1,
|
||
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
|
||
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`Id`),
|
||
UNIQUE KEY `uk_field_mask` (`DataResourceCode`, `FieldName`, `IsDeleted`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='字段级脱敏配置';
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 9. 权限模板
|
||
-- ---------------------------------------------------------------------------
|
||
CREATE TABLE `data_perm_template` (
|
||
`Id` CHAR(36) NOT NULL,
|
||
`Name` VARCHAR(64) NOT NULL,
|
||
`Code` VARCHAR(32) NOT NULL COMMENT '模板编码,如 SalesStaff',
|
||
`Description` VARCHAR(256) NULL,
|
||
`RoleCode` VARCHAR(64) NULL COMMENT '可选绑定 RBAC role.Code,分配角色时自动套用',
|
||
`IsBuiltIn` TINYINT NOT NULL DEFAULT 0 COMMENT '内置模板不可删',
|
||
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
|
||
`CreateUserId` INT NOT NULL DEFAULT 0,
|
||
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`UpdateUserId` INT NULL,
|
||
`UpdateTime` DATETIME NULL,
|
||
PRIMARY KEY (`Id`),
|
||
UNIQUE KEY `uk_data_perm_template_code` (`Code`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='数据权限模板';
|
||
|
||
CREATE TABLE `data_perm_template_item` (
|
||
`Id` CHAR(36) NOT NULL,
|
||
`TemplateId` CHAR(36) NOT NULL,
|
||
`DimensionType` VARCHAR(32) NOT NULL COMMENT 'org/data_scope/biz/secret/filter',
|
||
`ItemContent` JSON NOT NULL COMMENT '维度配置 JSON',
|
||
`SortOrder` INT NOT NULL DEFAULT 0,
|
||
`IsDeleted` TINYINT NOT NULL DEFAULT 0,
|
||
PRIMARY KEY (`Id`),
|
||
KEY `idx_template_item_tpl` (`TemplateId`, `DimensionType`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='数据权限模板明细';
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 10. 审计
|
||
-- ---------------------------------------------------------------------------
|
||
CREATE TABLE `data_perm_change_log` (
|
||
`Id` BIGINT NOT NULL AUTO_INCREMENT,
|
||
`TargetType` VARCHAR(16) NOT NULL COMMENT 'user/role/template',
|
||
`TargetId` CHAR(36) NOT NULL,
|
||
`Action` VARCHAR(16) NOT NULL COMMENT 'create/update/delete/apply_template',
|
||
`BeforeJson` JSON NULL,
|
||
`AfterJson` JSON NULL,
|
||
`OperatorUserId` CHAR(36) NOT NULL COMMENT '操作人 user.Id',
|
||
`OperatorMapId` INT NULL COMMENT '操作人 mapId',
|
||
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`Id`),
|
||
KEY `idx_perm_change_target` (`TargetType`, `TargetId`, `CreateTime`),
|
||
KEY `idx_perm_change_operator` (`OperatorUserId`, `CreateTime`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='数据权限配置变更日志';
|
||
|
||
CREATE TABLE `data_perm_access_log` (
|
||
`Id` BIGINT NOT NULL AUTO_INCREMENT,
|
||
`UserId` CHAR(36) NOT NULL,
|
||
`MapId` INT NULL,
|
||
`DataResourceCode` VARCHAR(32) NOT NULL,
|
||
`ApiPath` VARCHAR(256) NOT NULL,
|
||
`HttpMethod` VARCHAR(8) NOT NULL DEFAULT 'GET',
|
||
`AppliedScopeJson` JSON NULL COMMENT '生效五维快照',
|
||
`RowCount` INT NULL COMMENT '返回行数',
|
||
`ElapsedMs` INT NULL,
|
||
`ClientIp` VARCHAR(64) NULL,
|
||
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`Id`),
|
||
KEY `idx_perm_access_user_time` (`UserId`, `CreateTime`),
|
||
KEY `idx_perm_access_resource` (`DataResourceCode`, `CreateTime`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='数据权限访问审计(可采样)';
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 增量迁移(已有库执行;全新安装可忽略)
|
||
-- ---------------------------------------------------------------------------
|
||
-- ALTER TABLE `c_sku`
|
||
-- ADD COLUMN `SkuNameEn` VARCHAR(256) NULL COMMENT 'SKU英文名称' AFTER `SkuName`,
|
||
-- ADD COLUMN `UnitPrice` DECIMAL(12,4) NULL COMMENT '单价' AFTER `SkuImageUrl`,
|
||
-- ADD COLUMN `ExHsCode` VARCHAR(64) NULL COMMENT '出口HSCode' AFTER `UnitPrice`,
|
||
-- ADD COLUMN `ImHsCode` VARCHAR(64) NULL COMMENT '进口HSCode' AFTER `ExHsCode`;
|
||
|
||
SET FOREIGN_KEY_CHECKS = 1;
|