Files
zkxw/docs/sql/production_work_order.sql
T
zlwu 67ba7c48d5 feat(production): add DDL for 10 production tables and 3 menus
Create docs/sql/production_work_order.sql with:
- 10 CREATE TABLE IF NOT EXISTS statements for production work order module
- 3 sys_menu INSERT statements under 生产管理 parent menu
2026-05-19 23:59:55 +08:00

280 lines
19 KiB
SQL

-- ============================================================
-- 入库生产工单 + 生产任务 + 细胞产品库 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);