4.5 KiB
4.5 KiB
仓库、库区、库位
约定见 00-conventions.md。Phase 1 锁定,Phase 5 写迁移。
库位策略不单独建规则表。容量与混放开关放在库位上。策略引擎等到有明确规则后再加表。
一个租户的客户默认可使用该租户的全部仓库。仓库与客户的授权表等到需要限制时再加。
wms_warehouse 仓库
用途:租户下的仓库。
| 字段 | 类型 | 可空 | 默认 | 说明 |
|---|---|---|---|---|
| id | BIGINT UNSIGNED | N | AUTO_INCREMENT | 内部主键 |
| tenant_code | VARCHAR(32) | N | 租户编码 | |
| warehouse_code | VARCHAR(32) | N | 仓库编码 | |
| warehouse_name | VARCHAR(128) | N | 仓库名称 | |
| warehouse_status | VARCHAR(32) | N | active | 状态 |
| timezone | VARCHAR(64) | N | UTC | IANA 时区 |
| country_code | CHAR(2) | Y | ISO 国家码 | |
| postal_code | VARCHAR(32) | Y | ||
| province | VARCHAR(64) | Y | ||
| city | VARCHAR(64) | Y | ||
| address_line | VARCHAR(255) | Y | ||
| created_at | TIMESTAMP | Y | ||
| updated_at | TIMESTAMP | Y | ||
| deleted_at | TIMESTAMP | Y | 软删除 |
索引:
| 名称 | 类型 | 字段 | 支撑的查询 |
|---|---|---|---|
| uk_tenant_warehouse_code | UNIQUE | (tenant_code, warehouse_code) | 按仓库编码查找 |
| idx_tenant_status | INDEX | (tenant_code, status) | 列表筛选 |
状态:active、disabled。
关联:库区、库位、库存、入库、出库、订单都带 warehouse_code。
并发 / 审计:有库存或未完成单据时不能软删,只能停用。变更写 wms_operation_log。
wms_zone 库区
用途:仓库内的区域。
| 字段 | 类型 | 可空 | 默认 | 说明 |
|---|---|---|---|---|
| id | BIGINT UNSIGNED | N | AUTO_INCREMENT | 内部主键 |
| tenant_code | VARCHAR(32) | N | 租户编码 | |
| warehouse_code | VARCHAR(32) | N | 仓库编码 | |
| zone_code | VARCHAR(32) | N | 库区编码,仓库内唯一 | |
| name | VARCHAR(128) | N | 名称 | |
| zone_type | VARCHAR(32) | N | 类型 | |
| status | VARCHAR(32) | N | active | 状态 |
| created_at | TIMESTAMP | Y | ||
| updated_at | TIMESTAMP | Y | ||
| deleted_at | TIMESTAMP | Y | 软删除 |
索引:
| 名称 | 类型 | 字段 | 支撑的查询 |
|---|---|---|---|
| uk_tenant_wh_zone | UNIQUE | (tenant_code, warehouse_code, zone_code) | 按库区查找 |
| idx_tenant_wh_status | INDEX | (tenant_code, warehouse_code, status) | 仓库下的库区列表 |
zone_type:storage 存储、receiving 收货、shipping 发货、qc 质检、damaged 残品、staging 暂存。
状态:active、disabled。
关联:wms_location.zone_code,同时带 warehouse_code。
并发 / 审计:下属库位仍存在时不能软删。
wms_location 库位
用途:库存存放位置。在途库存不使用本表,余额行的 location_code 为空字符串。
| 字段 | 类型 | 可空 | 默认 | 说明 |
|---|---|---|---|---|
| id | BIGINT UNSIGNED | N | AUTO_INCREMENT | 内部主键 |
| tenant_code | VARCHAR(32) | N | 租户编码 | |
| warehouse_code | VARCHAR(32) | N | 仓库编码 | |
| zone_code | VARCHAR(32) | N | 库区编码 | |
| location_code | VARCHAR(64) | N | 库位编码,仓库内唯一 | |
| location_type | VARCHAR(32) | N | bin | 类型 |
| status | VARCHAR(32) | N | active | 状态 |
| allow_mix_sku | TINYINT UNSIGNED | N | 1 | 1 允许混放 SKU |
| allow_mix_batch | TINYINT UNSIGNED | N | 1 | 1 允许混放批次 |
| max_sku_count | INT UNSIGNED | Y | 最大 SKU 数,空为不限制 | |
| max_qty | DECIMAL(16,4) | Y | 最大数量 | |
| max_volume_mm3 | DECIMAL(20,2) | Y | 最大体积,立方毫米 | |
| max_weight_g | DECIMAL(16,4) | Y | 最大重量,克 | |
| created_at | TIMESTAMP | Y | ||
| updated_at | TIMESTAMP | Y | ||
| deleted_at | TIMESTAMP | Y | 软删除 |
索引:
| 名称 | 类型 | 字段 | 支撑的查询 |
|---|---|---|---|
| uk_tenant_wh_location | UNIQUE | (tenant_code, warehouse_code, location_code) | 扫描 / 上架定位 |
| idx_tenant_wh_zone | INDEX | (tenant_code, warehouse_code, zone_code) | 库区下的库位 |
location_type:bin 货位、pallet 托盘、floor 地堆、virtual 虚拟位(系统收货位、发货位)。
状态:active、disabled、locked(锁定后禁止上架与分配)。
关联:wms_inventory.location_code。
并发 / 审计:仍有非零库存时不能软删、不能停用。容量在上架时由应用校验,不靠数据库约束。