This commit is contained in:
Yangxt
2026-09-30 11:11:54 +08:00
parent cb9b7a4bd4
commit 2fb57ec490
160 changed files with 14764 additions and 53 deletions
@@ -0,0 +1,32 @@
-- 表:wms_location
-- 用途:库位。仓库内可存放库存的最小位置,同时保存容量。
-- 约定:InnoDB / utf8mb4 / 无外键,表间按业务编码关联。详见 docs/database/00-conventions.md
-- 说明:空置还是占用由库存余额推导,不在本表存占用状态。容量字段即库位容量,不另建容量表。
CREATE TABLE `wms_location` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '内部主键',
`tenant_code` VARCHAR(32) NOT NULL COMMENT '租户编码',
`warehouse_code` VARCHAR(32) NOT NULL COMMENT '仓库编码',
`zone_code` VARCHAR(32) NOT NULL COMMENT '库区编码',
`location_code` VARCHAR(64) NOT NULL COMMENT '库位编码,仓库内唯一',
`location_type_code` VARCHAR(32) NOT NULL COMMENT '库位类型编码',
`aisle` VARCHAR(16) NOT NULL DEFAULT '' COMMENT '巷道',
`rack` VARCHAR(16) NOT NULL DEFAULT '' COMMENT '货架',
`level_no` VARCHAR(16) NOT NULL DEFAULT '' COMMENT '层',
`bin_no` VARCHAR(16) NOT NULL DEFAULT '' COMMENT '位',
`pick_sequence` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '拣货路径序号,小的优先',
`status` VARCHAR(32) NOT NULL DEFAULT 'enabled' COMMENT 'enabled 可作业,disabled 停用,locked 锁定(盘点或异常,暂停入出)',
`max_qty` DECIMAL(16,4) NULL COMMENT '容量:最大件数,空表示不限制',
`max_weight` DECIMAL(12,4) NULL COMMENT '容量:最大重量千克,空表示不限制',
`max_volume` DECIMAL(16,4) NULL COMMENT '容量:最大体积立方厘米,空表示不限制',
`length_cm` DECIMAL(12,4) NULL COMMENT '长,厘米,空表示未维护',
`width_cm` DECIMAL(12,4) NULL COMMENT '宽,厘米,空表示未维护',
`height_cm` DECIMAL(12,4) NULL COMMENT '高,厘米,空表示未维护',
`remark` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '备注',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_tenant_wh_location` (`tenant_code`, `warehouse_code`, `location_code`),
KEY `idx_tenant_wh_zone` (`tenant_code`, `warehouse_code`, `zone_code`),
KEY `idx_tenant_wh_status` (`tenant_code`, `warehouse_code`, `status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='库位';
@@ -0,0 +1,26 @@
-- 表:wms_location_strategy
-- 用途:库位策略。上架、分配、拣货的规则。空编码表示该条件不限。
-- 约定:InnoDB / utf8mb4 / 无外键,表间按业务编码关联。详见 docs/database/00-conventions.md
-- 说明:新增平台或货主只加策略行,不改库存核心代码。
CREATE TABLE `wms_location_strategy` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '内部主键',
`tenant_code` VARCHAR(32) NOT NULL COMMENT '租户编码',
`strategy_code` VARCHAR(32) NOT NULL COMMENT '策略编码,租户内唯一',
`strategy_name` VARCHAR(64) NOT NULL COMMENT '策略名称',
`warehouse_code` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '仓库编码,空表示该租户全部仓库',
`strategy_type` VARCHAR(32) NOT NULL COMMENT 'putaway 上架,allocation 库存分配,picking 拣货路径',
`priority` INT UNSIGNED NOT NULL DEFAULT 100 COMMENT '优先级,数字小的先匹配',
`customer_code` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '货主编码,空表示不限',
`sku_code` VARCHAR(64) NOT NULL DEFAULT '' COMMENT 'SKU 编码,空表示不限',
`zone_code` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '目标或来源库区,空表示不限',
`location_type_code` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '库位类型,空表示不限',
`rule_json` JSON NULL COMMENT '扩展条件,核心条件优先用独立列',
`status` VARCHAR(32) NOT NULL DEFAULT 'active' COMMENT 'active 启用,disabled 停用',
`remark` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '备注',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_tenant_strategy_code` (`tenant_code`, `strategy_code`),
KEY `idx_tenant_wh_type` (`tenant_code`, `warehouse_code`, `strategy_type`, `priority`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='库位策略';
@@ -0,0 +1,20 @@
-- 表:wms_location_type
-- 用途:库位类型。库位的混放规则。
-- 约定:InnoDB / utf8mb4 / 无外键,表间按业务编码关联。详见 docs/database/00-conventions.md
-- 说明:混放校验在上架时执行,不靠数据库外键。
CREATE TABLE `wms_location_type` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '内部主键',
`tenant_code` VARCHAR(32) NOT NULL COMMENT '租户编码',
`location_type_code` VARCHAR(32) NOT NULL COMMENT '库位类型编码,租户内唯一',
`location_type_name` VARCHAR(64) NOT NULL COMMENT '类型名称',
`allow_mixed_sku` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '1 允许同一库位放多个 SKU',
`allow_mixed_batch` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '1 允许同一 SKU 的多个批次放在同一库位',
`allow_mixed_customer` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '1 允许同一库位放多个货主的库存',
`status` VARCHAR(32) NOT NULL DEFAULT 'active' COMMENT 'active 启用,disabled 停用',
`remark` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '备注',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_tenant_location_type` (`tenant_code`, `location_type_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='库位类型';
@@ -0,0 +1,28 @@
-- 表:wms_warehouse
-- 用途:仓库。租户下的物理仓库。
-- 约定:InnoDB / utf8mb4 / 无外键,表间按业务编码关联。详见 docs/database/00-conventions.md
-- 说明:停用仓库不得再开新的入出库作业,已有库存保留。
CREATE TABLE `wms_warehouse` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '内部主键',
`tenant_code` VARCHAR(32) NOT NULL COMMENT '租户编码',
`warehouse_code` VARCHAR(32) NOT NULL COMMENT '仓库编码,租户内唯一',
`warehouse_name` VARCHAR(128) NOT NULL COMMENT '仓库名称',
`warehouse_type` VARCHAR(32) NOT NULL COMMENT 'private 自营,three_pl 第三方仓,overseas 海外仓',
`country_code` CHAR(2) NOT NULL DEFAULT '' COMMENT '国家 ISO 3166-1 alpha-2',
`province` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '省或州',
`city` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '城市',
`district` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '区县',
`address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '详细地址',
`postcode` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '邮编',
`contact_name` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '联系人',
`contact_phone` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '联系电话',
`timezone` VARCHAR(64) NOT NULL DEFAULT 'Asia/Shanghai' COMMENT '仓库时区',
`status` VARCHAR(32) NOT NULL DEFAULT 'active' COMMENT 'active 启用,disabled 停用',
`remark` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '备注',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_tenant_warehouse_code` (`tenant_code`, `warehouse_code`),
KEY `idx_tenant_status` (`tenant_code`, `status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='仓库';
+20
View File
@@ -0,0 +1,20 @@
-- 表:wms_zone
-- 用途:库区。仓库内的功能分区。
-- 约定:InnoDB / utf8mb4 / 无外键,表间按业务编码关联。详见 docs/database/00-conventions.md
-- 说明:可售库存的分配策略只选择允许拣货的库区。收货区、质检区的库存不可直接分配给出库。
CREATE TABLE `wms_zone` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '内部主键',
`tenant_code` VARCHAR(32) NOT NULL COMMENT '租户编码',
`warehouse_code` VARCHAR(32) NOT NULL COMMENT '仓库编码',
`zone_code` VARCHAR(32) NOT NULL COMMENT '库区编码,仓库内唯一',
`zone_name` VARCHAR(64) NOT NULL COMMENT '库区名称',
`zone_type` VARCHAR(32) NOT NULL COMMENT 'receiving 收货,storage 存储,picking 拣货,shipping 发货,return 退货,quarantine 质检,exception 异常',
`status` VARCHAR(32) NOT NULL DEFAULT 'active' COMMENT 'active 启用,disabled 停用',
`remark` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '备注',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_tenant_wh_zone` (`tenant_code`, `warehouse_code`, `zone_code`),
KEY `idx_tenant_wh_type` (`tenant_code`, `warehouse_code`, `zone_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='库区';