2026-05-22-storage-slot-occupancy.sql 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. -- ============================================================
  2. -- 库位占用记录功能迁移
  3. -- 日期: 2026-05-22
  4. -- ============================================================
  5. -- 1. 新增:库位占用记录表
  6. CREATE TABLE biz_storage_slot_occupancy (
  7. id VARCHAR(64) NOT NULL COMMENT '主键ID',
  8. slot_id VARCHAR(64) NOT NULL COMMENT '储物格ID (FK → biz_storage_facility_slot)',
  9. item_type VARCHAR(32) NOT NULL COMMENT '物品类型: cell_product=细胞产品, other=其他',
  10. item_id VARCHAR(64) NOT NULL COMMENT '物品ID (指向对应业务表主键)',
  11. item_code VARCHAR(64) NULL COMMENT '物品编码 (冗余展示)',
  12. item_name VARCHAR(200) NULL COMMENT '物品名称 (冗余展示)',
  13. item_source VARCHAR(32) NULL COMMENT '来源: production=生产入库, manual=手动入库, transfer=转移',
  14. stored_at DATETIME NULL COMMENT '入库时间',
  15. removed_at DATETIME NULL COMMENT '出库时间 (NULL=当前在库)',
  16. occupancy_status VARCHAR(16) NOT NULL DEFAULT 'stored' COMMENT 'stored=在库, removed=已出库',
  17. tenant_no VARCHAR(64) NULL COMMENT '租户编号',
  18. order_num INT DEFAULT 0 COMMENT '排序',
  19. remark VARCHAR(500) NULL COMMENT '备注',
  20. create_by VARCHAR(64) NULL COMMENT '创建者',
  21. create_dept_id VARCHAR(64) NULL COMMENT '创建部门',
  22. create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  23. update_by VARCHAR(64) NULL COMMENT '更新者',
  24. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  25. del_flag CHAR(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)',
  26. PRIMARY KEY (id),
  27. INDEX idx_sso_slot (slot_id, occupancy_status, del_flag),
  28. INDEX idx_sso_item (item_type, item_id, del_flag),
  29. INDEX idx_sso_tenant (tenant_no, del_flag)
  30. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='库位占用记录表';
  31. -- 2. 增强:biz_storage_facility_slot 增加缓存字段
  32. ALTER TABLE biz_storage_facility_slot
  33. ADD COLUMN occupied_count INT DEFAULT 0 COMMENT '当前占用数量',
  34. ADD COLUMN last_item_type VARCHAR(32) NULL COMMENT '最近存储物品类型',
  35. ADD COLUMN last_stored_at DATETIME NULL COMMENT '最近入库时间';