-- ============================================================ -- 入库生产工单 + 生产任务 + 细胞产品库 DDL -- 日期: 2026-05-19 -- 说明: 10 张业务表 + 3 个菜单 -- ============================================================ -- ----------------------------------------------------------- -- 1. biz_cell_product — 细胞产品库 -- ----------------------------------------------------------- CREATE TABLE IF NOT EXISTS `biz_cell_product` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `product_code` varchar(64) NOT NULL COMMENT '产品编码', `product_name` varchar(200) NOT NULL COMMENT '产品名称', `product_type_id` varchar(64) DEFAULT NULL COMMENT '细胞产品类型ID', `spec_id` varchar(64) DEFAULT NULL COMMENT '规格ID', `batch_no` varchar(64) DEFAULT NULL COMMENT '批次号', `storage_slot_id` varchar(64) DEFAULT NULL COMMENT '储物格ID', `product_status` varchar(16) NOT NULL DEFAULT 'zk' COMMENT '状态(zk在库/yc已出库/ysy已使用)', `source_type` varchar(20) DEFAULT 'production' COMMENT '来源类型(production生产/manual手动录入)', `production_task_id` varchar(64) DEFAULT NULL COMMENT '来源生产任务ID', `quantity` decimal(18,4) DEFAULT NULL COMMENT '数量', `unit` varchar(64) DEFAULT NULL COMMENT '单位', `expiry_date` datetime DEFAULT NULL COMMENT '有效期', `product_images` varchar(4000) DEFAULT NULL COMMENT '产品图片URL(逗号分隔)', `tenant_no` varchar(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL 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` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), KEY `idx_cp_tenant_status` (`tenant_no`,`product_status`,`del_flag`), KEY `idx_cp_type` (`product_type_id`,`del_flag`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='细胞产品库'; -- ----------------------------------------------------------- -- 2. biz_production_work_order — 入库生产工单 -- ----------------------------------------------------------- CREATE TABLE IF NOT EXISTS `biz_production_work_order` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `work_order_no` varchar(32) NOT NULL COMMENT '工单号(前缀SC)', `reception_id` varchar(64) NOT NULL COMMENT '样本接收记录ID', `protocol_sample_id` varchar(64) NOT NULL COMMENT '协议样本ID', `collection_protocol_id` varchar(64) NOT NULL COMMENT '协议单ID', `protocol_no` varchar(64) DEFAULT NULL COMMENT '协议号快照', `sample_code` varchar(32) DEFAULT NULL COMMENT '样本编码快照', `reception_source` varchar(20) NOT NULL DEFAULT 'cell_storage' COMMENT '来源(cell_storage/research_donation)', `work_order_status` varchar(16) NOT NULL DEFAULT 'dpz' COMMENT '状态(dpz待配置/ywc已完成)', `tenant_no` varchar(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL 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` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), KEY `idx_pwo_reception` (`reception_id`,`del_flag`), KEY `idx_pwo_tenant_status` (`tenant_no`,`work_order_status`,`del_flag`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='入库生产工单'; -- ----------------------------------------------------------- -- 3. biz_production_task — 生产任务 -- ----------------------------------------------------------- CREATE TABLE IF NOT EXISTS `biz_production_task` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `task_no` varchar(32) NOT NULL COMMENT '任务号(前缀RW)', `work_order_id` varchar(64) NOT NULL COMMENT '所属工单ID', `task_name` varchar(200) DEFAULT NULL COMMENT '任务名称', `description` varchar(500) DEFAULT NULL COMMENT '描述', `route_id` varchar(64) DEFAULT NULL COMMENT '所选工艺路线ID(仅记录来源)', `task_status` varchar(16) NOT NULL DEFAULT 'dpz' COMMENT '状态(dpz待配置/jxz进行中/ywc已完成)', `started_time` datetime DEFAULT NULL COMMENT '开始时间', `completed_time` datetime DEFAULT NULL COMMENT '完成时间', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `attachments` varchar(4000) DEFAULT NULL COMMENT '附件/图片URL(逗号分隔)', `tenant_no` varchar(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号', `order_num` int(11) 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` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), KEY `idx_pt_wo` (`work_order_id`,`del_flag`), KEY `idx_pt_tenant_status` (`tenant_no`,`task_status`,`del_flag`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='生产任务'; -- ----------------------------------------------------------- -- 4. biz_production_task_input — 任务输入子表 -- ----------------------------------------------------------- CREATE TABLE IF NOT EXISTS `biz_production_task_input` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `task_id` varchar(64) NOT NULL COMMENT '任务ID', `input_type` varchar(20) NOT NULL COMMENT '类型(sample样本/cell_product细胞产品)', `input_id` varchar(64) DEFAULT NULL COMMENT '关联ID(样本ID或细胞产品ID)', `input_code` varchar(64) DEFAULT NULL COMMENT '编码快照', `input_name` varchar(200) DEFAULT NULL COMMENT '名称快照', `tenant_no` varchar(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL 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` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), KEY `idx_pti_task` (`task_id`,`del_flag`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='生产任务输入'; -- ----------------------------------------------------------- -- 5. biz_production_task_step — 任务工艺步骤 -- ----------------------------------------------------------- CREATE TABLE IF NOT EXISTS `biz_production_task_step` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `task_id` varchar(64) NOT NULL COMMENT '任务ID', `step_order` int(11) DEFAULT NULL COMMENT '步骤顺序', `process_code` varchar(64) DEFAULT NULL COMMENT '工序代码', `category_id` varchar(64) DEFAULT NULL COMMENT '工序分类ID', `process_name` varchar(100) DEFAULT NULL COMMENT '工序名称', `description` varchar(500) DEFAULT NULL COMMENT '描述', `equipment_name` varchar(200) DEFAULT NULL COMMENT '设备名称', `estimated_duration` varchar(100) DEFAULT NULL COMMENT '预估耗时', `actual_duration` varchar(100) DEFAULT NULL COMMENT '实际耗时', `sop_ids` varchar(1000) DEFAULT NULL COMMENT 'SOP文档ID(逗号分隔)', `step_status` varchar(16) NOT NULL DEFAULT 'dzx' COMMENT '状态(dzx待执行/jxz进行中/ywc已完成)', `started_time` datetime DEFAULT NULL COMMENT '开始时间', `completed_time` datetime DEFAULT NULL COMMENT '完成时间', `tenant_no` varchar(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL 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` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), KEY `idx_pts_task` (`task_id`,`del_flag`), KEY `idx_pts_tenant` (`tenant_no`,`del_flag`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='生产任务工艺步骤'; -- ----------------------------------------------------------- -- 6. biz_production_task_step_reagent — 步骤试剂 -- ----------------------------------------------------------- CREATE TABLE IF NOT EXISTS `biz_production_task_step_reagent` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `step_id` varchar(64) NOT NULL COMMENT '步骤ID', `reagent_code` varchar(64) DEFAULT NULL COMMENT '试剂编码', `reagent_name` varchar(100) DEFAULT NULL COMMENT '试剂名称', `spec` varchar(200) DEFAULT NULL COMMENT '规格', `standard_usage` varchar(100) DEFAULT NULL COMMENT '标准用量', `actual_usage` varchar(100) DEFAULT NULL COMMENT '实际用量', `unit` varchar(64) DEFAULT NULL COMMENT '单位', `is_key_material` char(1) DEFAULT '0' COMMENT '是否关键物料(0否 1是)', `tenant_no` varchar(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL 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` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), KEY `idx_ptsr_step` (`step_id`,`del_flag`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='生产任务步骤试剂'; -- ----------------------------------------------------------- -- 7. biz_production_task_step_consumable — 步骤耗材 -- ----------------------------------------------------------- CREATE TABLE IF NOT EXISTS `biz_production_task_step_consumable` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `step_id` varchar(64) NOT NULL COMMENT '步骤ID', `consumable_code` varchar(64) DEFAULT NULL COMMENT '耗材编码', `consumable_name` varchar(100) DEFAULT NULL COMMENT '耗材名称', `spec_model` varchar(200) DEFAULT NULL COMMENT '规格型号', `standard_usage` varchar(100) DEFAULT NULL COMMENT '标准用量', `actual_usage` varchar(100) DEFAULT NULL COMMENT '实际用量', `unit` varchar(64) DEFAULT NULL COMMENT '单位', `is_required` char(1) DEFAULT '1' COMMENT '是否必需(1必须 0可选)', `tenant_no` varchar(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL 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` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), KEY `idx_ptsc_step` (`step_id`,`del_flag`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='生产任务步骤耗材'; -- ----------------------------------------------------------- -- 8. biz_production_task_step_output — 步骤产出物 -- ----------------------------------------------------------- CREATE TABLE IF NOT EXISTS `biz_production_task_step_output` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `step_id` varchar(64) NOT NULL COMMENT '步骤ID', `output_type_id` varchar(64) DEFAULT NULL COMMENT '产出类型ID', `output_name` varchar(200) DEFAULT NULL COMMENT '产出物名称', `output_barcode` varchar(200) DEFAULT NULL COMMENT '实际条码', `tenant_no` varchar(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL 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` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), KEY `idx_ptso_step` (`step_id`,`del_flag`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='生产任务步骤产出物'; -- ----------------------------------------------------------- -- 9. biz_production_task_step_data_collection — 步骤数据采集 -- ----------------------------------------------------------- CREATE TABLE IF NOT EXISTS `biz_production_task_step_data_collection` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `step_id` varchar(64) NOT NULL COMMENT '步骤ID', `collection_name` varchar(100) DEFAULT NULL COMMENT '采集项名称', `unit` varchar(64) DEFAULT NULL COMMENT '单位', `collection_value` varchar(500) DEFAULT NULL COMMENT '填写值', `tenant_no` varchar(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL 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` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), KEY `idx_ptsdc_step` (`step_id`,`del_flag`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='生产任务步骤数据采集'; -- ----------------------------------------------------------- -- 10. biz_production_task_output — 任务输出 -- ----------------------------------------------------------- CREATE TABLE IF NOT EXISTS `biz_production_task_output` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `task_id` varchar(64) NOT NULL COMMENT '任务ID', `cell_product_id` varchar(64) DEFAULT NULL COMMENT '关联细胞产品ID', `storage_slot_id` varchar(64) DEFAULT NULL COMMENT '储物格ID', `output_name` varchar(200) DEFAULT NULL COMMENT '产出物名称', `output_barcode` varchar(200) DEFAULT NULL COMMENT '产出物条码', `quantity` decimal(18,4) DEFAULT NULL COMMENT '数量', `unit` varchar(64) DEFAULT NULL COMMENT '单位', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `attachments` varchar(4000) DEFAULT NULL COMMENT '图片URL(逗号分隔)', `tenant_no` varchar(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号', `order_num` int(11) 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` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), KEY `idx_pto_task` (`task_id`,`del_flag`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='生产任务输出'; -- ----------------------------------------------------------- -- 菜单: 生产管理下新增 3 个二级菜单 -- 父菜单ID: 90000000000000000000000000000001 (生产管理) -- ----------------------------------------------------------- INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`, `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('90000000000000000000000000000011', '入库生产工单', '90000000000000000000000000000001', 'C', 'work-order', '/production/production-work-order/index', 'production:work-order:list', 1, '1', '1', 'zkxw', 9, NULL, NULL, '', '2026-05-19 00:00:00', NULL, '2026-05-19 00:00:00', 0); INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`, `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('90000000000000000000000000000012', '生产任务', '90000000000000000000000000000001', 'C', 'task', '/production/production-task/index', 'production:task:list', 1, '1', '1', 'zkxw', 10, NULL, NULL, '', '2026-05-19 00:00:00', NULL, '2026-05-19 00:00:00', 0); INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`, `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('90000000000000000000000000000013', '细胞产品库', '90000000000000000000000000000001', 'C', 'cell-product', '/production/cell-product/index', 'production:cell-product:list', 1, '1', '1', 'zkxw', 11, NULL, NULL, '', '2026-05-19 00:00:00', NULL, '2026-05-19 00:00:00', 0);