-- 表:wms_picking_task_item -- 用途:拣货任务明细。按库位给出的应拣与实拣数量。 -- 约定:InnoDB / utf8mb4 / 无外键,表间按业务编码关联。详见 docs/database/00-conventions.md -- 说明:实拣确认时 reserved 转为 picked,并回写出库明细。按 pick_sequence 生成行序。 CREATE TABLE `wms_picking_task_item` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '内部主键', `tenant_code` VARCHAR(32) NOT NULL COMMENT '租户编码', `picking_no` VARCHAR(64) NOT NULL COMMENT '拣货单号', `line_no` INT UNSIGNED NOT NULL COMMENT '行号', `outbound_no` VARCHAR(64) NOT NULL COMMENT '出库单号', `allocation_no` VARCHAR(64) NOT NULL COMMENT '分配单号', `location_code` VARCHAR(64) NOT NULL COMMENT '库位编码', `sku_code` VARCHAR(64) NOT NULL COMMENT 'SKU 编码', `batch_no` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '批次号,可空', `qty_required` DECIMAL(16,4) NOT NULL DEFAULT 0.0000 COMMENT '应拣数量', `qty_picked` DECIMAL(16,4) NOT NULL DEFAULT 0.0000 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_picking_line` (`tenant_code`, `picking_no`, `line_no`), KEY `idx_tenant_outbound` (`tenant_code`, `outbound_no`), KEY `idx_tenant_allocation` (`tenant_code`, `allocation_no`), CONSTRAINT `chk_picking_qty` CHECK (`qty_required` > 0 AND `qty_picked` >= 0 AND `qty_picked` <= `qty_required`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='拣货任务明细';