-- ============================================================ -- 生产物料库存管理 - 数据库迁移脚本 -- 变更: production-material-inventory -- ============================================================ -- 1. biz_consumable 新增库存字段 ALTER TABLE `biz_consumable` ADD COLUMN `stock_qty` DECIMAL(18,4) NOT NULL DEFAULT 0.0000 COMMENT '当前库存量' AFTER `description`, ADD COLUMN `warning_qty` DECIMAL(18,4) NOT NULL DEFAULT 0.0000 COMMENT '预警库存量' AFTER `stock_qty`, ADD COLUMN `status` CHAR(1) NOT NULL DEFAULT '1' COMMENT '1-启用 0-停用' AFTER `warning_qty`; -- 2. biz_reagent 新增库存字段 ALTER TABLE `biz_reagent` ADD COLUMN `stock_qty` DECIMAL(18,4) NOT NULL DEFAULT 0.0000 COMMENT '当前库存量' AFTER `description`, ADD COLUMN `warning_qty` DECIMAL(18,4) NOT NULL DEFAULT 0.0000 COMMENT '预警库存量' AFTER `stock_qty`, ADD COLUMN `status` CHAR(1) NOT NULL DEFAULT '1' COMMENT '1-启用 0-停用' AFTER `warning_qty`; -- 3. 耗材变动记录表 CREATE TABLE `biz_consumable_stock_log` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `material_id` VARCHAR(64) NOT NULL COMMENT '耗材ID', `material_code` VARCHAR(64) DEFAULT NULL COMMENT '耗材编码快照', `material_name` VARCHAR(200) DEFAULT NULL COMMENT '耗材名称快照', `change_type` VARCHAR(16) NOT NULL COMMENT '变动类型:in入库 / use使用出库', `change_qty` DECIMAL(18,4) NOT NULL COMMENT '变动数量(入库正数,出库负数)', `stock_before` DECIMAL(18,4) NOT NULL COMMENT '变动前库存', `stock_after` DECIMAL(18,4) NOT NULL COMMENT '变动后库存', `source_type` VARCHAR(16) NOT NULL COMMENT '来源:manual_in / manual_out / step_save', `step_id` VARCHAR(64) DEFAULT NULL COMMENT '生产任务步骤ID(step_save时有值)', `task_id` VARCHAR(64) DEFAULT NULL COMMENT '生产任务ID(step_save时有值)', `task_no` VARCHAR(32) DEFAULT NULL COMMENT '生产任务编号快照', `receiver` VARCHAR(64) DEFAULT NULL COMMENT '领用人(手动出库时)', `purpose` VARCHAR(512) DEFAULT NULL COMMENT '用途/事由(手动出库时)', `tenant_no` VARCHAR(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号', `remark` VARCHAR(512) DEFAULT NULL COMMENT '备注', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建人id', `create_dept_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新人id', `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` SMALLINT NOT NULL DEFAULT 0 COMMENT '删除标记', PRIMARY KEY (`id`), INDEX `idx_csl_material` (`material_id`, `del_flag`), INDEX `idx_csl_step` (`step_id`, `del_flag`), INDEX `idx_csl_task` (`task_id`, `del_flag`), INDEX `idx_csl_tenant_time` (`tenant_no`, `change_type`, `create_time`), INDEX `idx_csl_source` (`source_type`, `del_flag`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='耗材变动记录'; -- 4. 试剂变动记录表 CREATE TABLE `biz_reagent_stock_log` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `material_id` VARCHAR(64) NOT NULL COMMENT '试剂ID', `material_code` VARCHAR(64) DEFAULT NULL COMMENT '试剂编码快照', `material_name` VARCHAR(200) DEFAULT NULL COMMENT '试剂名称快照', `change_type` VARCHAR(16) NOT NULL COMMENT '变动类型:in入库 / use使用出库', `change_qty` DECIMAL(18,4) NOT NULL COMMENT '变动数量(入库正数,出库负数)', `stock_before` DECIMAL(18,4) NOT NULL COMMENT '变动前库存', `stock_after` DECIMAL(18,4) NOT NULL COMMENT '变动后库存', `source_type` VARCHAR(16) NOT NULL COMMENT '来源:manual_in / manual_out / step_save', `step_id` VARCHAR(64) DEFAULT NULL COMMENT '生产任务步骤ID(step_save时有值)', `task_id` VARCHAR(64) DEFAULT NULL COMMENT '生产任务ID(step_save时有值)', `task_no` VARCHAR(32) DEFAULT NULL COMMENT '生产任务编号快照', `receiver` VARCHAR(64) DEFAULT NULL COMMENT '领用人(手动出库时)', `purpose` VARCHAR(512) DEFAULT NULL COMMENT '用途/事由(手动出库时)', `tenant_no` VARCHAR(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号', `remark` VARCHAR(512) DEFAULT NULL COMMENT '备注', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建人id', `create_dept_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新人id', `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` SMALLINT NOT NULL DEFAULT 0 COMMENT '删除标记', PRIMARY KEY (`id`), INDEX `idx_rsl_material` (`material_id`, `del_flag`), INDEX `idx_rsl_step` (`step_id`, `del_flag`), INDEX `idx_rsl_task` (`task_id`, `del_flag`), INDEX `idx_rsl_tenant_time` (`tenant_no`, `change_type`, `create_time`), INDEX `idx_rsl_source` (`source_type`, `del_flag`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='试剂变动记录';