This commit is contained in:
zlwu committed 2026-06-11 15:42:58 +08:00
1 parent 195c4c0a34
commit 64219a68c7
317 files changed
+66845 -33515

No files matched your search

@@ -0,0 +1,109 @@
-- ============================================================
-- 基础实验:sys_menu 菜单数据 + 隐藏临床应用菜单
-- 与 web-admin/src/router/modules/sqxp.ts、backend/app/api/menu.py 对齐
-- ============================================================
-- 1. 一级菜单:基础实验(挂在 Web 端虚拟根「2」下,order_num=4 接替临床应用位置)
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 (
'BEX00000000000000000000000000001', '基础实验', '2', 'M', '/basic-experiment', '/index/index', NULL,
1, '1', '1', 'zkxw', 4, NULL,
NULL, '', NOW(), NULL, NOW(), 0
)
ON DUPLICATE KEY UPDATE
`menu_name` = VALUES(`menu_name`),
`parent_id` = VALUES(`parent_id`),
`menu_type` = VALUES(`menu_type`),
`path` = VALUES(`path`),
`component` = VALUES(`component`),
`visible` = '1',
`status` = '1',
`order_num` = VALUES(`order_num`),
`update_time` = NOW(),
`del_flag` = 0;
-- 2. 二级菜单
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
(
'BEX00000000000000000000000000002', '基础实验申请单', 'BEX00000000000000000000000000001', 'C',
'application', '/pilot-service/pilot-application/index', 'basic-experiment:application:list',
1, '1', '1', 'zkxw', 1, NULL,
NULL, '', NOW(), NULL, NOW(), 0
),
(
'BEX00000000000000000000000000003', '缴退费财务确认', 'BEX00000000000000000000000000001', 'C',
'payment-confirm', '/pilot-service/clinical-payment-confirm/index', 'basic-experiment:payment-confirm:list',
1, '1', '1', 'zkxw', 2, NULL,
NULL, '', NOW(), NULL, NOW(), 0
),
(
'BEX00000000000000000000000000004', '出库放行审核', 'BEX00000000000000000000000000001', 'C',
'outbound-release-review', '/pilot-service/outbound-release-review/index', 'basic-experiment:outbound-release-review:list',
1, '1', '1', 'zkxw', 3, NULL,
NULL, '', NOW(), NULL, NOW(), 0
)
ON DUPLICATE KEY UPDATE
`menu_name` = VALUES(`menu_name`),
`parent_id` = VALUES(`parent_id`),
`path` = VALUES(`path`),
`component` = VALUES(`component`),
`perms` = VALUES(`perms`),
`visible` = '1',
`status` = '1',
`order_num` = VALUES(`order_num`),
`update_time` = NOW(),
`del_flag` = 0;
-- 3. 隐藏临床应用菜单(侧栏不展示,与 sqxp.ts isHide 一致)
UPDATE `sys_menu`
SET `visible` = '0', `update_time` = NOW()
WHERE `id` IN (
'CLI00000000000000000000000000001',
'CLI00000000000000000000000000002',
'CLI00000000000000000000000000006',
'CLI00000000000000000000000000008'
)
AND `del_flag` = 0;
-- 4. 为已授权「中试服务」一级菜单的角色,自动授予「基础实验」一级菜单(含子菜单需在角色管理中勾选,或执行下方扩展)
INSERT INTO `sys_role_menu` (
`id`, `role_id`, `menu_id`, `tenant_no`, `order_num`, `remark`,
`create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
)
SELECT
UPPER(REPLACE(UUID(), '-', '')),
rm.`role_id`,
m.`id`,
'zkxw',
0,
'基础实验菜单迁移自动授权',
NULL,
'',
NOW(),
NULL,
NOW(),
0
FROM `sys_role_menu` rm
CROSS JOIN (
SELECT 'BEX00000000000000000000000000001' AS id UNION ALL
SELECT 'BEX00000000000000000000000000002' UNION ALL
SELECT 'BEX00000000000000000000000000003' UNION ALL
SELECT 'BEX00000000000000000000000000004'
) m
WHERE rm.`menu_id` = 'PIL00000000000000000000000000001'
AND rm.`del_flag` = 0
AND rm.`tenant_no` = 'zkxw'
AND NOT EXISTS (
SELECT 1 FROM `sys_role_menu` x
WHERE x.`role_id` = rm.`role_id`
AND x.`menu_id` = m.`id`
AND x.`del_flag` = 0
AND x.`tenant_no` = 'zkxw'
);
@@ -0,0 +1,14 @@
-- 基础实验:biz_pilot_application 扩展
ALTER TABLE biz_pilot_application
MODIFY COLUMN biz_type VARCHAR(20) NOT NULL DEFAULT 'pilot_service'
COMMENT '业务类型: pilot_service=中试服务, clinical_application=临床应用, basic_experiment=基础实验';
ALTER TABLE biz_pilot_application
ADD COLUMN project_title VARCHAR(200) DEFAULT NULL COMMENT '课题名称(基础实验)' AFTER application_name,
ADD COLUMN customer_name VARCHAR(200) DEFAULT NULL COMMENT '客户名称(基础实验)' AFTER project_title,
ADD COLUMN customer_contact VARCHAR(100) DEFAULT NULL COMMENT '客户联系人(基础实验)' AFTER customer_name,
ADD COLUMN customer_phone VARCHAR(32) DEFAULT NULL COMMENT '客户联系方式(基础实验)' AFTER customer_contact;
ALTER TABLE biz_pilot_payment
MODIFY COLUMN biz_type VARCHAR(20) NOT NULL DEFAULT 'clinical_application'
COMMENT '业务类型: clinical_application=临床应用, basic_experiment=基础实验';
@@ -0,0 +1,4 @@
-- 采集协议单分期:应缴费提前天数 + 各期缴费比例
ALTER TABLE `biz_protocol_payment`
ADD COLUMN `installment_advance_days` INT NULL DEFAULT 30 COMMENT '第2期起应缴费提前天数' AFTER `installment_start_date`,
ADD COLUMN `installment_ratios` VARCHAR(256) NULL COMMENT '各期缴费比例JSON数组' AFTER `installment_advance_days`;
@@ -0,0 +1,6 @@
-- 采集协议单样本:增加原价格字段,price 注释调整为优惠价格
ALTER TABLE `biz_protocol_sample`
ADD COLUMN `original_price` decimal(18,2) DEFAULT NULL COMMENT '原价格(元)' AFTER `price`;
ALTER TABLE `biz_protocol_sample`
MODIFY COLUMN `price` decimal(18,2) DEFAULT NULL COMMENT '优惠价格(元)';
@@ -0,0 +1,104 @@
-- ============================================================
-- 环境检测:主数据 + 登记记录 + 菜单 + 种子数据
-- 与 docs/superpowers/specs/2026-06-11-env-detect-design.md 对齐
-- ============================================================
-- 1. 环境检测项(主数据)
DROP TABLE IF EXISTS `biz_env_detect_record`;
DROP TABLE IF EXISTS `biz_env_detect_item`;
CREATE TABLE `biz_env_detect_item` (
`id` varchar(64) NOT NULL COMMENT '主键ID',
`item_code` varchar(64) NOT NULL COMMENT '项目编码',
`item_name` varchar(200) NOT NULL COMMENT '项目名称',
`status` char(1) NOT NULL 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`),
UNIQUE KEY `uk_env_item_tenant_code` (`tenant_no`, `item_code`, `del_flag`),
KEY `idx_env_item_tenant_status` (`tenant_no`, `status`, `del_flag`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='环境检测项';
-- 2. 环境检测登记
CREATE TABLE `biz_env_detect_record` (
`id` varchar(64) NOT NULL COMMENT '主键ID',
`record_no` varchar(32) NOT NULL COMMENT '登记编号',
`detect_time` datetime NOT NULL COMMENT '检测时间',
`inspector_ids` varchar(500) NOT NULL COMMENT '检测人用户ID,逗号分隔',
`inspector_names` varchar(500) NOT NULL COMMENT '检测人姓名快照,逗号分隔',
`env_detect_item_id` varchar(64) NOT NULL COMMENT '检测项目ID',
`item_code` varchar(64) NOT NULL COMMENT '项目编码快照',
`item_name` varchar(200) NOT NULL COMMENT '项目名称快照',
`result_desc` varchar(2000) NOT NULL COMMENT '检测结果描述',
`attachment_urls` varchar(2000) 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`),
UNIQUE KEY `uk_env_rec_tenant_no` (`tenant_no`, `record_no`, `del_flag`),
KEY `idx_env_rec_tenant_time` (`tenant_no`, `detect_time`, `del_flag`),
KEY `idx_env_rec_tenant_item` (`tenant_no`, `env_detect_item_id`, `del_flag`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='环境检测登记';
-- 3. 种子:6 项初始检测项目(租户 zkxw)
INSERT INTO `biz_env_detect_item` (
`id`, `item_code`, `item_name`, `status`, `tenant_no`, `order_num`, `remark`,
`create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
) VALUES
('ENVITEM00000000000000000000000001', 'BMWS', '表面微生物检测', '1', 'zkxw', 1, NULL, NULL, '', NOW(), NULL, NOW(), 0),
('ENVITEM00000000000000000000000002', 'SYFS', '实验室风速检测', '1', 'zkxw', 2, NULL, NULL, '', NOW(), NULL, NOW(), 0),
('ENVITEM00000000000000000000000003', 'ZWQD', '紫外灯强度检测', '1', 'zkxw', 3, NULL, NULL, '', NOW(), NULL, NOW(), 0),
('ENVITEM00000000000000000000000004', 'CJJ', '沉降菌检测', '1', 'zkxw', 4, NULL, NULL, '', NOW(), NULL, NOW(), 0),
('ENVITEM00000000000000000000000005', 'JJZY', '洁净区噪音检测', '1', 'zkxw', 5, NULL, NULL, '', NOW(), NULL, NOW(), 0),
('ENVITEM00000000000000000000000006', 'XFZL', '洁净区悬浮粒子检测', '1', 'zkxw', 6, NULL, NULL, '', NOW(), NULL, NOW(), 0)
ON DUPLICATE KEY UPDATE
`item_name` = VALUES(`item_name`),
`status` = VALUES(`status`),
`order_num` = VALUES(`order_num`),
`update_time` = NOW(),
`del_flag` = 0;
-- 4. 菜单
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
(
'71000000000000000000000000000001', '环境检测项维护',
'QCB00000000000000000000000000001', 'C', 'env-detect-item',
'/quality-inspection/env-detect-item/index', 'biz:envDetectItem:list',
1, '1', '1', 'zkxw', 7, NULL,
NULL, '', NOW(), NULL, NOW(), 0
),
(
'71000000000000000000000000000002', '环境检测管理',
'QCM00000000000000000000000000001', 'C', 'env-detect-record',
'/quality-inspection/env-detect-record/index', 'biz:envDetectRecord:list',
1, '1', '1', 'zkxw', 3, NULL,
NULL, '', NOW(), NULL, NOW(), 0
)
ON DUPLICATE KEY UPDATE
`menu_name` = VALUES(`menu_name`),
`parent_id` = VALUES(`parent_id`),
`path` = VALUES(`path`),
`component` = VALUES(`component`),
`perms` = VALUES(`perms`),
`visible` = '1',
`status` = '1',
`order_num` = VALUES(`order_num`),
`update_time` = NOW(),
`del_flag` = 0;
@@ -0,0 +1,21 @@
-- 质检物料库 · 清除旧数据(批次改造上线前)
-- 执行时机:DDL 已执行 + 代码已部署后,导入测试数据前
-- 默认采用物理 DELETE;若需保留审计可改为 UPDATE ... SET del_flag=1
SET FOREIGN_KEY_CHECKS = 0;
-- 变动记录(含旧版无 batch_id 的行)
DELETE FROM `biz_qc_material_usage`;
-- 入库批次(新表,若曾手工插入过也一并清空)
DELETE FROM `biz_qc_material_stock_batch`;
-- 物资目录
DELETE FROM `biz_qc_material`;
SET FOREIGN_KEY_CHECKS = 1;
-- 软删替代方案(按需取消注释,勿与上方 DELETE 同时执行):
-- UPDATE `biz_qc_material_usage` SET `del_flag` = 1 WHERE `del_flag` = 0;
-- UPDATE `biz_qc_material_stock_batch` SET `del_flag` = 1 WHERE `del_flag` = 0;
-- UPDATE `biz_qc_material` SET `del_flag` = 1 WHERE `del_flag` = 0;
@@ -0,0 +1,130 @@
-- 质检物料库 · 批次管理测试数据
-- 执行时机:clear-data 脚本之后
-- 租户:zkxw;覆盖单物资多批次、零库存批次、入出库流水
SET @tenant := 'zkxw';
SET @now := NOW();
-- ========== 物资目录(3 种) ==========
INSERT INTO `biz_qc_material` (
`id`, `material_code`, `material_name`, `spec_model`, `unit`,
`stock_qty`, `warning_qty`, `status`, `tenant_no`, `order_num`, `remark`,
`create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
) VALUES
(
'qc-mat-001', 'QC-M-001', 'DMEM 培养基', '500mL/瓶', '瓶',
15.0000, 5.0000, '1', @tenant, 1, '测试物资-培养基',
'admin', '', @now, 'admin', @now, 0
),
(
'qc-mat-002', 'QC-M-002', '胎牛血清', '100mL/瓶', '瓶',
8.0000, 3.0000, '1', @tenant, 2, '测试物资-血清',
'admin', '', @now, 'admin', @now, 0
),
(
'qc-mat-003', 'QC-M-003', '胰酶消化液', '100mL/瓶', '瓶',
0.0000, 2.0000, '1', @tenant, 3, '测试物资-已全部出清',
'admin', '', @now, 'admin', @now, 0
);
-- ========== 入库批次 ==========
-- DMEM:2 批次(一批有库存,一批零库存)
INSERT INTO `biz_qc_material_stock_batch` (
`id`, `material_id`, `material_code`, `material_name`, `spec_model`, `unit`,
`stock_in_no`, `stock_in_date`, `catalog_no`, `batch_no`, `manufacturer`,
`unit_price`, `amount`, `in_qty`, `remaining_qty`,
`tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
) VALUES
(
'qc-batch-001', 'qc-mat-001', 'QC-M-001', 'DMEM 培养基', '500mL/瓶', '瓶',
'RK-202606-001', '2026-06-01', 'SH30022.01', 'LOT-A202601', '赛默飞',
280.00, 2800.00, 10.0000, 8.0000,
@tenant, 1, '首批入库', 'admin', '', @now, 'admin', @now, 0
),
(
'qc-batch-002', 'qc-mat-001', 'QC-M-001', 'DMEM 培养基', '500mL/瓶', '瓶',
'RK-202606-002', '2026-06-05', 'SH30022.01', 'LOT-B202602', '赛默飞',
295.00, 1475.00, 5.0000, 0.0000,
@tenant, 2, '第二批已出清', 'admin', '', @now, 'admin', @now, 0
),
(
'qc-batch-003', 'qc-mat-002', 'QC-M-002', '胎牛血清', '100mL/瓶', '瓶',
'RK-202606-003', '2026-06-03', '10270-106', 'SER-202603', 'Gibco',
1200.00, 9600.00, 8.0000, 8.0000,
@tenant, 1, '血清入库', 'admin', '', @now, 'admin', @now, 0
),
(
'qc-batch-004', 'qc-mat-003', 'QC-M-003', '胰酶消化液', '100mL/瓶', '瓶',
'RK-202606-004', '2026-06-08', '25200-056', 'TRY-202604', 'Sigma',
350.00, 1050.00, 3.0000, 0.0000,
@tenant, 1, '零库存展示用', 'admin', '', @now, 'admin', @now, 0
);
-- ========== 变动记录(入库 / 手动出库) ==========
INSERT INTO `biz_qc_material_usage` (
`id`, `material_id`, `material_code`, `material_name`,
`batch_id`, `stock_in_no`, `catalog_no`, `batch_no`, `manufacturer`, `unit_price`, `amount`,
`change_type`, `change_qty`, `stock_before`, `stock_after`,
`qc_task_id`, `qc_task_no`, `receiver`, `purpose`, `source_type`,
`tenant_no`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
) VALUES
-- batch-001 入库 10
(
'qc-usage-in-001', 'qc-mat-001', 'QC-M-001', 'DMEM 培养基',
'qc-batch-001', 'RK-202606-001', 'SH30022.01', 'LOT-A202601', '赛默飞', 280.00, 2800.00,
'in', 10.0000, 0.0000, 10.0000,
NULL, NULL, NULL, NULL, 'manual_in',
@tenant, '首批入库', 'admin', '', @now, 'admin', @now, 0
),
-- batch-002 入库 5
(
'qc-usage-in-002', 'qc-mat-001', 'QC-M-001', 'DMEM 培养基',
'qc-batch-002', 'RK-202606-002', 'SH30022.01', 'LOT-B202602', '赛默飞', 295.00, 1475.00,
'in', 5.0000, 10.0000, 15.0000,
NULL, NULL, NULL, NULL, 'manual_in',
@tenant, '第二批入库', 'admin', '', @now, 'admin', @now, 0
),
-- batch-002 手动出库 5(出清)
(
'qc-usage-out-001', 'qc-mat-001', 'QC-M-001', 'DMEM 培养基',
'qc-batch-002', 'RK-202606-002', 'SH30022.01', 'LOT-B202602', '赛默飞', NULL, NULL,
'use', -5.0000, 15.0000, 10.0000,
NULL, NULL, '张三', '实验室领用', 'manual_out',
@tenant, '第二批全部出库', 'admin', '', @now, 'admin', @now, 0
),
-- batch-001 手动出库 2
(
'qc-usage-out-002', 'qc-mat-001', 'QC-M-001', 'DMEM 培养基',
'qc-batch-001', 'RK-202606-001', 'SH30022.01', 'LOT-A202601', '赛默飞', NULL, NULL,
'use', -2.0000, 10.0000, 8.0000,
NULL, NULL, '李四', '质检实验', 'manual_out',
@tenant, '部分出库', 'admin', '', @now, 'admin', @now, 0
),
-- batch-003 血清入库
(
'qc-usage-in-003', 'qc-mat-002', 'QC-M-002', '胎牛血清',
'qc-batch-003', 'RK-202606-003', '10270-106', 'SER-202603', 'Gibco', 1200.00, 9600.00,
'in', 8.0000, 0.0000, 8.0000,
NULL, NULL, NULL, NULL, 'manual_in',
@tenant, '血清入库', 'admin', '', @now, 'admin', @now, 0
),
-- batch-004 胰酶入库后全部出库(物资汇总库存 0)
(
'qc-usage-in-004', 'qc-mat-003', 'QC-M-003', '胰酶消化液',
'qc-batch-004', 'RK-202606-004', '25200-056', 'TRY-202604', 'Sigma', 350.00, 1050.00,
'in', 3.0000, 0.0000, 3.0000,
NULL, NULL, NULL, NULL, 'manual_in',
@tenant, '胰酶入库', 'admin', '', @now, 'admin', @now, 0
),
(
'qc-usage-out-003', 'qc-mat-003', 'QC-M-003', '胰酶消化液',
'qc-batch-004', 'RK-202606-004', '25200-056', 'TRY-202604', 'Sigma', NULL, NULL,
'use', -3.0000, 3.0000, 0.0000,
NULL, NULL, '王五', '细胞消化', 'manual_out',
@tenant, '全部出库', 'admin', '', @now, 'admin', @now, 0
);
-- 汇总库存与批次 remaining_qty 已在 INSERT 中对齐:
-- qc-mat-001 stock_qty=15 (batch-001:8 + batch-002:0,其中 batch-002 已出清)
-- 修正 qc-mat-001 汇总为 8(10+5 入库,出库 7)
UPDATE `biz_qc_material` SET `stock_qty` = 8.0000 WHERE `id` = 'qc-mat-001';
@@ -0,0 +1,48 @@
-- 质检物料库 · 入库批次管理 DDL
-- 执行顺序:本脚本 → 部署代码 → clear-data → test-data
-- 1. 入库批次表
CREATE TABLE IF NOT EXISTS `biz_qc_material_stock_batch` (
`id` varchar(64) NOT NULL COMMENT '主键ID',
`material_id` varchar(64) NOT NULL COMMENT '关联 biz_qc_material.id',
`material_code` varchar(64) DEFAULT NULL COMMENT '物料编码快照',
`material_name` varchar(200) DEFAULT NULL COMMENT '物料名称快照',
`spec_model` varchar(200) DEFAULT NULL COMMENT '规格型号快照',
`unit` varchar(32) DEFAULT NULL COMMENT '单位快照',
`stock_in_no` varchar(64) NOT NULL COMMENT '入库编号(用户录入,租户内唯一)',
`stock_in_date` date NOT NULL COMMENT '入库日期',
`catalog_no` varchar(128) NOT NULL COMMENT '货号',
`batch_no` varchar(128) NOT NULL COMMENT '批号',
`manufacturer` varchar(200) NOT NULL COMMENT '厂家',
`unit_price` decimal(18,2) NOT NULL COMMENT '单价(元)',
`amount` decimal(18,2) NOT NULL COMMENT '金额(元)',
`in_qty` decimal(18,4) NOT NULL COMMENT '入库数量',
`remaining_qty` decimal(18,4) NOT 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`),
UNIQUE KEY `uk_qc_batch_tenant_stock_in_no` (`tenant_no`,`stock_in_no`,`del_flag`),
KEY `idx_qc_batch_material` (`material_id`,`del_flag`),
KEY `idx_qc_batch_tenant_date` (`tenant_no`,`stock_in_date`,`del_flag`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='质检物料入库批次';
-- 2. 扩展变动记录表
ALTER TABLE `biz_qc_material_usage`
ADD COLUMN `batch_id` varchar(64) DEFAULT NULL COMMENT '关联入库批次ID' AFTER `material_name`,
ADD COLUMN `stock_in_no` varchar(64) DEFAULT NULL COMMENT '入库编号快照' AFTER `batch_id`,
ADD COLUMN `catalog_no` varchar(128) DEFAULT NULL COMMENT '货号快照' AFTER `stock_in_no`,
ADD COLUMN `batch_no` varchar(128) DEFAULT NULL COMMENT '批号快照' AFTER `catalog_no`,
ADD COLUMN `manufacturer` varchar(200) DEFAULT NULL COMMENT '厂家快照' AFTER `batch_no`,
ADD COLUMN `unit_price` decimal(18,2) DEFAULT NULL COMMENT '单价快照(元)' AFTER `manufacturer`,
ADD COLUMN `amount` decimal(18,2) DEFAULT NULL COMMENT '金额快照(元)' AFTER `unit_price`,
ADD COLUMN `stock_before` decimal(18,4) DEFAULT NULL COMMENT '变动前物资汇总库存' AFTER `change_qty`;
ALTER TABLE `biz_qc_material_usage`
ADD KEY `idx_qc_mu_batch` (`batch_id`,`del_flag`);
@@ -0,0 +1,91 @@
-- 质检物料库:过期日期 + 库存盘点
-- 执行前请确认无未补填 expire_date 的历史批次(见 spec)
ALTER TABLE `biz_qc_material_stock_batch`
ADD COLUMN `expire_date` date NULL COMMENT '过期日期' AFTER `stock_in_date`;
-- 历史数据临时回填(须由业务核对后改为真实过期日;此处用入库日期占位以便 NOT NULL)
UPDATE `biz_qc_material_stock_batch`
SET `expire_date` = `stock_in_date`
WHERE `expire_date` IS NULL AND `del_flag` = 0;
ALTER TABLE `biz_qc_material_stock_batch`
MODIFY COLUMN `expire_date` date NOT NULL COMMENT '过期日期';
CREATE TABLE IF NOT EXISTS `biz_qc_material_stock_check` (
`id` varchar(64) NOT NULL COMMENT '主键ID',
`title` varchar(200) NOT NULL COMMENT '盘点标题',
`check_time` datetime NOT NULL COMMENT '盘点时间',
`status` varchar(16) NOT NULL DEFAULT 'draft' COMMENT 'draft/completed/cancelled',
`complete_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 COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
`update_time` datetime NOT NULL COMMENT '更新时间',
`del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记',
PRIMARY KEY (`id`),
KEY `idx_qc_stock_check_tenant_time` (`tenant_no`, `check_time`, `del_flag`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='质检物料库存盘点单';
CREATE TABLE IF NOT EXISTS `biz_qc_material_stock_check_batch_line` (
`id` varchar(64) NOT NULL COMMENT '主键ID',
`check_id` varchar(64) NOT NULL COMMENT '盘点单ID',
`batch_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 '物料名称快照',
`spec_model` varchar(200) DEFAULT NULL COMMENT '规格型号快照',
`unit` varchar(32) DEFAULT NULL COMMENT '单位快照',
`stock_in_no` varchar(64) NOT NULL COMMENT '入库编号快照',
`stock_in_date` date NOT NULL COMMENT '入库日期快照',
`expire_date` date NOT NULL COMMENT '过期日期快照',
`catalog_no` varchar(128) NOT NULL COMMENT '货号快照',
`batch_no` varchar(128) NOT NULL COMMENT '批号快照',
`manufacturer` varchar(200) NOT NULL COMMENT '厂家快照',
`unit_price` decimal(18,2) NOT NULL COMMENT '单价快照(元)',
`amount` decimal(18,2) NOT NULL COMMENT '批次金额快照(元)',
`remaining_qty` decimal(18,4) NOT 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 COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
`update_time` datetime NOT NULL COMMENT '更新时间',
`del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记',
PRIMARY KEY (`id`),
KEY `idx_qc_check_batch_line_check` (`check_id`, `del_flag`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='质检物料盘点-系统库存快照行';
CREATE TABLE IF NOT EXISTS `biz_qc_material_stock_check_unused_line` (
`id` varchar(64) NOT NULL COMMENT '主键ID',
`check_id` varchar(64) NOT NULL COMMENT '盘点单ID',
`material_code` varchar(64) DEFAULT NULL COMMENT '物料编码',
`material_name` varchar(200) NOT NULL COMMENT '物料名称',
`spec_model` varchar(200) DEFAULT NULL COMMENT '规格型号',
`unit` varchar(32) DEFAULT NULL COMMENT '单位',
`stock_in_no` varchar(64) DEFAULT NULL COMMENT '入库编号',
`stock_in_date` date DEFAULT NULL COMMENT '入库日期',
`expire_date` date DEFAULT NULL COMMENT '过期日期',
`catalog_no` varchar(128) DEFAULT NULL COMMENT '货号',
`batch_no` varchar(128) DEFAULT NULL COMMENT '批号',
`manufacturer` varchar(200) DEFAULT NULL COMMENT '厂家',
`holder` varchar(64) DEFAULT NULL COMMENT '持有人/领用人',
`unused_qty` decimal(18,4) NOT 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 COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
`update_time` datetime NOT NULL COMMENT '更新时间',
`del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记',
PRIMARY KEY (`id`),
KEY `idx_qc_check_unused_line_check` (`check_id`, `del_flag`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='质检物料盘点-领用未用完登记行';
@@ -0,0 +1,3 @@
-- Part B 未用完登记行增加单价快照(检索批次填入或手工场景可选)
ALTER TABLE `biz_qc_material_stock_check_unused_line`
ADD COLUMN `unit_price` decimal(18,2) DEFAULT NULL COMMENT '单价快照(元)' AFTER `manufacturer`;
+18 -7
View File
@@ -1728,11 +1728,15 @@ CREATE TABLE `biz_pilot_application` (
`id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '主键ID',
`application_no` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '申请单号(自动生成,前缀ZSSQ)',
`application_name` varchar(200) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '申请单名称',
`project_title` varchar(200) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '课题名称(基础实验)',
`customer_name` varchar(200) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户名称(基础实验)',
`customer_contact` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户联系人(基础实验)',
`customer_phone` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户联系方式(基础实验)',
`application_status` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'dks' COMMENT 'dks待开始 jxz进行中 ywc已完成 yzf已作废',
`channel_service_order_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '渠道服务购买订单ID',
`channel_id` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '渠道ID(缓存自服务订单)',
`channel_name` varchar(200) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '渠道名称(缓存)',
`biz_type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'pilot_service' COMMENT '业务类型: pilot_service=中试服务, clinical_application=临床应用',
`biz_type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'pilot_service' COMMENT '业务类型: pilot_service=中试服务, clinical_application=临床应用, basic_experiment=基础实验',
`tenant_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'zkxw' COMMENT '租户编号',
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
`remark` varchar(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注',
@@ -2117,7 +2121,7 @@ CREATE TABLE `biz_pilot_payment` (
`id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '主键ID',
`pilot_application_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '临床申请单ID',
`infusion_schedule_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '输注计划ID',
`biz_type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'clinical_application' COMMENT '业务类型',
`biz_type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'clinical_application' COMMENT '业务类型: clinical_application=临床应用, basic_experiment=基础实验',
`amount` decimal(18,2) NOT NULL COMMENT '缴费金额',
`transfer_type` varchar(16) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '转账方式: wxzz/zzfbzz/yhkzz/xj',
`transfer_amount` decimal(18,2) DEFAULT NULL COMMENT '实际转账金额',
@@ -3049,6 +3053,8 @@ CREATE TABLE `biz_protocol_payment` (
`installment_interval_months` decimal(10,2) DEFAULT NULL COMMENT '每期间隔(月)',
`lump_sum_deadline` char(8) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '趸交截止时间YYYYMMDD',
`installment_start_date` char(8) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '分期开始时间YYYYMMDD',
`installment_advance_days` int(11) DEFAULT '30' COMMENT '第2期起应缴费提前天数',
`installment_ratios` varchar(256) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '各期缴费比例JSON数组',
`tenant_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'zkxw' COMMENT '租户编号',
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
`remark` varchar(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注',
@@ -3122,7 +3128,8 @@ CREATE TABLE `biz_protocol_sample` (
`sample_code` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '样本编码展示',
`collect_amount` decimal(18,4) DEFAULT NULL COMMENT '采集量',
`unit_id` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '物品单位ID',
`price` decimal(18,2) DEFAULT NULL COMMENT '价格',
`price` decimal(18,2) DEFAULT NULL COMMENT '优惠价格(元)',
`original_price` decimal(18,2) DEFAULT NULL COMMENT '原价格(元)',
`storage_years` int(11) DEFAULT NULL COMMENT '存储年限(年)',
`sample_status` varchar(16) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'ycj已采集 jcz检测中 yrk已入库 yzf已作废',
`storage_in_date` char(8) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '入库日期YYYYMMDD',
@@ -4681,14 +4688,18 @@ INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `co
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', '生产工单', 'PRM00000000000000000000000000001', 'C', 'production-work-order', '/production/production-work-order/index', 'production:work-order:list', 1, '1', '1', 'zkxw', 3, NULL, NULL, '', '2026-05-27 16:26:30', NULL, '2026-05-28 08:07:51', 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', '细胞产品库', 'PRM00000000000000000000000000001', 'C', 'cell-product', '/production/cell-product/index', 'production:cell-product:list', 1, '1', '1', 'zkxw', 2, NULL, NULL, '', '2026-05-27 16:26:30', NULL, '2026-05-27 16:26:30', 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 ('CEL00000000000000000000000000001', '细胞存储', '2', 'M', '/cell-storage', '/index/index', NULL, 1, '1', '1', 'zkxw', 1, NULL, NULL, '', '2026-05-27 16:26:30', NULL, '2026-05-27 16:26:30', 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 ('CLI00000000000000000000000000001', '临床应用', '2', 'M', '/clinical-application', '/index/index', NULL, 1, '1', '1', 'zkxw', 4, NULL, NULL, '', '2026-05-27 16:26:30', NULL, '2026-05-27 16:26:30', 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 ('CLI00000000000000000000000000002', '临床申请单', 'CLI00000000000000000000000000001', 'C', 'clinical-application', '/pilot-service/pilot-application/index', 'clinical-application:application:list', 1, '1', '1', 'zkxw', 1, NULL, NULL, '', '2026-05-27 16:26:30', NULL, '2026-05-27 16:26:30', 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 ('CLI00000000000000000000000000001', '临床应用', '2', 'M', '/clinical-application', '/index/index', NULL, 1, '0', '1', 'zkxw', 4, NULL, NULL, '', '2026-05-27 16:26:30', NULL, '2026-06-10 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 ('CLI00000000000000000000000000002', '临床申请单', 'CLI00000000000000000000000000001', 'C', 'clinical-application', '/pilot-service/pilot-application/index', 'clinical-application:application:list', 1, '0', '1', 'zkxw', 1, NULL, NULL, '', '2026-05-27 16:26:30', NULL, '2026-06-10 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 ('CLI00000000000000000000000000003', '体检管理', 'CLI00000000000000000000000000001', 'C', 'clinical-checkup-management', '/pilot-service/checkup-management/index', 'clinical-application:checkup-management:list', 1, '0', '1', 'zkxw', 2, NULL, NULL, '', '2026-05-27 16:26:30', NULL, '2026-05-28 11:30:27', 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 ('CLI00000000000000000000000000004', '输注计划管理', 'CLI00000000000000000000000000001', 'C', 'clinical-infusion-schedule-management', '/pilot-service/infusion-schedule-management/index', 'clinical-application:infusion-schedule-management:list', 1, '0', '1', 'zkxw', 3, NULL, NULL, '', '2026-05-27 16:26:30', NULL, '2026-05-28 12:07:51', 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 ('CLI00000000000000000000000000005', '缴费信息', 'CLI00000000000000000000000000001', 'C', 'clinical-payment-info', '/pilot-service/clinical-payment-info/index', 'clinical-application:payment-info:list', 1, '0', '1', 'zkxw', 4, NULL, NULL, '', '2026-05-27 16:26:30', NULL, '2026-05-28 13:04:06', 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 ('CLI00000000000000000000000000006', '缴退费财务确认', 'CLI00000000000000000000000000001', 'C', 'clinical-payment-confirm', '/pilot-service/clinical-payment-confirm/index', 'clinical-application:payment-confirm:list', 1, '1', '1', 'zkxw', 5, NULL, NULL, '', '2026-05-27 16:26:30', NULL, '2026-05-28 12:25:54', 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 ('CLI00000000000000000000000000006', '缴退费财务确认', 'CLI00000000000000000000000000001', 'C', 'clinical-payment-confirm', '/pilot-service/clinical-payment-confirm/index', 'clinical-application:payment-confirm:list', 1, '0', '1', 'zkxw', 5, NULL, NULL, '', '2026-05-27 16:26:30', NULL, '2026-06-10 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 ('CLI00000000000000000000000000007', '退费确认(财务)', 'CLI00000000000000000000000000001', 'C', 'clinical-refund-confirm', '/pilot-service/clinical-refund-confirm/index', 'clinical-application:refund-confirm:list', 1, '0', '1', 'zkxw', 6, NULL, NULL, '', '2026-05-27 16:26:30', NULL, '2026-05-28 12:26:12', 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 ('CLI00000000000000000000000000008', '出库放行审核', 'CLI00000000000000000000000000001', 'C', 'clinical-outbound-release-review', '/pilot-service/outbound-release-review/index', 'clinical-application:outbound-release-review:list', 1, '1', '1', 'zkxw', 7, NULL, NULL, '', '2026-05-27 16:26:30', NULL, '2026-05-27 16:26:30', 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 ('CLI00000000000000000000000000008', '出库放行审核', 'CLI00000000000000000000000000001', 'C', 'clinical-outbound-release-review', '/pilot-service/outbound-release-review/index', 'clinical-application:outbound-release-review:list', 1, '0', '1', 'zkxw', 7, NULL, NULL, '', '2026-05-27 16:26:30', NULL, '2026-06-10 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 ('BEX00000000000000000000000000001', '基础实验', '2', 'M', '/basic-experiment', '/index/index', NULL, 1, '1', '1', 'zkxw', 4, NULL, NULL, '', '2026-06-10 00:00:00', NULL, '2026-06-10 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 ('BEX00000000000000000000000000002', '基础实验申请单', 'BEX00000000000000000000000000001', 'C', 'application', '/pilot-service/pilot-application/index', 'basic-experiment:application:list', 1, '1', '1', 'zkxw', 1, NULL, NULL, '', '2026-06-10 00:00:00', NULL, '2026-06-10 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 ('BEX00000000000000000000000000003', '缴退费财务确认', 'BEX00000000000000000000000000001', 'C', 'payment-confirm', '/pilot-service/clinical-payment-confirm/index', 'basic-experiment:payment-confirm:list', 1, '1', '1', 'zkxw', 2, NULL, NULL, '', '2026-06-10 00:00:00', NULL, '2026-06-10 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 ('BEX00000000000000000000000000004', '出库放行审核', 'BEX00000000000000000000000000001', 'C', 'outbound-release-review', '/pilot-service/outbound-release-review/index', 'basic-experiment:outbound-release-review:list', 1, '1', '1', 'zkxw', 3, NULL, NULL, '', '2026-06-10 00:00:00', NULL, '2026-06-10 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 ('MKT00000000000000000000000000001', '市场基础信息', '2', 'M', '/market-info', '/index/index', NULL, 1, '1', '1', 'zkxw', 8, NULL, NULL, '', '2026-05-27 16:26:30', NULL, '2026-05-27 16:26:30', 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 ('OPS00000000000000000000000000001', '运营支撑', '2', 'M', '/operations', '/index/index', NULL, 1, '1', '1', 'zkxw', 7, NULL, NULL, '', '2026-05-27 16:26:30', NULL, '2026-05-27 16:26:30', 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 ('PIL00000000000000000000000000001', '中试服务', '2', 'M', '/pilot-service', '/index/index', NULL, 1, '1', '1', 'zkxw', 3, NULL, NULL, '', '2026-05-27 16:26:30', NULL, '2026-05-27 16:26:30', 0);