This commit is contained in:
zlwu committed 2026-06-30 09:19:06 +08:00
1 parent 1ca2668112
commit 5b3edb1700
278 files changed
+53761 -36931

No files matched your search

@@ -0,0 +1,12 @@
-- 细胞产品规格改为文本存储(不再依赖 biz_cell_product_spec 下拉关联)
ALTER TABLE `biz_cell_product`
ADD COLUMN `spec_text` varchar(200) DEFAULT NULL COMMENT '规格(文本)' AFTER `spec_id`;
-- 历史数据:若已关联规格主数据,回填展示文本
UPDATE `biz_cell_product` cp
INNER JOIN `biz_cell_product_spec` s ON s.id = cp.spec_id AND s.del_flag = 0
SET cp.spec_text = s.spec_name
WHERE cp.del_flag = 0
AND (cp.spec_text IS NULL OR cp.spec_text = '')
AND cp.spec_id IS NOT NULL
AND cp.spec_id != '';
@@ -0,0 +1,72 @@
-- =============================================================================
-- 历史数据刷新:预计细胞数量 单位「亿」→「千万」(数值 ×10)
-- =============================================================================
--
-- 适用:biz_cell_product.expected_cell_count 历史数据按「亿」录入的环境(仅执行一次)。
-- 执行后:库中数值与界面、API 均为「千万」(例:1000万细胞 → 存 1)。
--
-- 注意:
-- 1. 执行前请备份 biz_cell_product 表
-- 2. 请勿重复执行(重复 ×10 会导致数据错误)
-- 3. 若下方「迁移前检查」显示 column_comment 已含「单位:千万」,说明已迁移,跳过第 2 段
--
-- =============================================================================
-- 1. 迁移前检查(建议先单独执行本段)
-- =============================================================================
SELECT COLUMN_COMMENT AS current_unit_comment
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'biz_cell_product'
AND COLUMN_NAME = 'expected_cell_count';
SELECT COUNT(*) AS pending_rows
FROM `biz_cell_product`
WHERE `del_flag` = 0
AND `expected_cell_count` IS NOT NULL;
SELECT
`product_code`,
`expected_cell_count` AS value_before_yi,
`expected_cell_count` * 10 AS value_after_qianwan
FROM `biz_cell_product`
WHERE `del_flag` = 0
AND `expected_cell_count` IS NOT NULL
ORDER BY `update_time` DESC
LIMIT 10;
-- =============================================================================
-- 2. 正式迁移(确认检查无误后执行)
-- =============================================================================
START TRANSACTION;
UPDATE `biz_cell_product`
SET `expected_cell_count` = `expected_cell_count` * 10
WHERE `del_flag` = 0
AND `expected_cell_count` IS NOT NULL;
ALTER TABLE `biz_cell_product`
MODIFY COLUMN `expected_cell_count` DECIMAL(18,4) DEFAULT NULL
COMMENT '预计细胞数量(单位:千万)';
COMMIT;
-- =============================================================================
-- 3. 迁移后校验
-- =============================================================================
SELECT COLUMN_COMMENT AS unit_comment_after_migrate
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'biz_cell_product'
AND COLUMN_NAME = 'expected_cell_count';
SELECT
`product_code`,
`expected_cell_count`
FROM `biz_cell_product`
WHERE `del_flag` = 0
AND `expected_cell_count` IS NOT NULL
ORDER BY `update_time` DESC
LIMIT 10;
@@ -0,0 +1,36 @@
-- 生产部门样本接收登记(与 biz_sample_reception 1:1)
CREATE TABLE IF NOT EXISTS `biz_sample_production_reception` (
`id` varchar(64) NOT NULL COMMENT '主键ID',
`reception_id` varchar(64) NOT NULL COMMENT '关联 biz_sample_reception.id',
`sample_code` varchar(32) DEFAULT NULL COMMENT '样本编码快照',
`reception_source` varchar(20) NOT NULL DEFAULT 'cell_storage' COMMENT '来源 cell_storage/research_donation',
`sample_type_name` varchar(100) DEFAULT NULL COMMENT '样本类型名称快照',
`handler_user_id` varchar(64) DEFAULT NULL COMMENT '处理人用户ID',
`handler_name` varchar(100) DEFAULT NULL COMMENT '处理人姓名',
`process_time` datetime NOT NULL COMMENT '处理时间',
`original_blood_weight_g` decimal(18,4) DEFAULT NULL COMMENT '原血重量/g',
`hes_volume_ml` decimal(18,4) DEFAULT NULL COMMENT 'HES用量/ml',
`blood_type` varchar(32) DEFAULT NULL COMMENT '血型',
`infectious_four_test_result` varchar(16) DEFAULT NULL COMMENT '传染四项 zc正常 bzc不正常',
`enriched_blood_weight_g` decimal(18,4) DEFAULT NULL COMMENT '富集后血量/g',
`cryopreservation_volume_ml` decimal(18,4) DEFAULT NULL COMMENT '冻存液用量/ml',
`inoculation_amount` decimal(18,4) DEFAULT NULL COMMENT '接种量',
`cryopreservation_time` datetime DEFAULT NULL COMMENT '冻存时间',
`storage_total_tubes` int DEFAULT NULL COMMENT '储存总量(管)',
`available_cell_count_1e7` decimal(18,4) DEFAULT NULL COMMENT '可提供细胞数量/*10E7',
`original_blood_volume_ml` decimal(18,4) DEFAULT NULL COMMENT '原血体积/ml',
`nucleated_cell_count_1e8` decimal(18,4) DEFAULT NULL COMMENT '有核细胞数/10E8',
`tenant_no` varchar(64) NOT NULL DEFAULT 'zkxw',
`order_num` int DEFAULT NULL,
`remark` varchar(512) DEFAULT NULL,
`create_by` varchar(64) DEFAULT NULL,
`create_dept_id` varchar(64) NOT NULL DEFAULT '',
`create_time` datetime NOT NULL,
`update_by` varchar(64) DEFAULT NULL,
`update_time` datetime NOT NULL,
`del_flag` smallint NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_reception_id` (`reception_id`,`del_flag`),
KEY `idx_sample_code` (`tenant_no`,`sample_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='生产部门样本接收登记';
@@ -0,0 +1,37 @@
-- 生产任务级设备:从步骤/工序/路线迁移并停用步骤级设备
-- 执行前请备份数据库
-- 1. 生产任务表新增设备字段
ALTER TABLE `biz_production_task`
ADD COLUMN `equipment_ids` varchar(1000) DEFAULT NULL COMMENT '关联设备ID(逗号分隔)' AFTER `attachments`,
ADD COLUMN `equipment_name` varchar(1000) DEFAULT NULL COMMENT '设备名称快照(逗号分隔)' AFTER `equipment_ids`;
-- 2. 将任务步骤上的设备汇总到任务(按 task_id 合并,读取端会 parse 去重)
UPDATE `biz_production_task` t
INNER JOIN (
SELECT
`task_id`,
GROUP_CONCAT(DISTINCT `equipment_ids` ORDER BY `step_order` SEPARATOR ',') AS `eq_ids`,
GROUP_CONCAT(DISTINCT `equipment_name` ORDER BY `step_order` SEPARATOR ',') AS `eq_names`
FROM `biz_production_task_step`
WHERE `del_flag` = 0
AND `equipment_ids` IS NOT NULL
AND TRIM(`equipment_ids`) != ''
GROUP BY `task_id`
) s ON s.`task_id` = t.`id`
SET
t.`equipment_ids` = s.`eq_ids`,
t.`equipment_name` = s.`eq_names`;
-- 3. 清空步骤/路线/工序上的设备(设备仅保留在生产任务级)
UPDATE `biz_production_task_step`
SET `equipment_ids` = NULL, `equipment_name` = NULL
WHERE `equipment_ids` IS NOT NULL OR `equipment_name` IS NOT NULL;
UPDATE `biz_process_route_step`
SET `equipment_ids` = NULL, `equipment_name` = NULL
WHERE `equipment_ids` IS NOT NULL OR `equipment_name` IS NOT NULL;
UPDATE `biz_process`
SET `equipment_ids` = NULL, `equipment_name` = NULL
WHERE `equipment_ids` IS NOT NULL OR `equipment_name` IS NOT NULL;
+100
View File
@@ -0,0 +1,100 @@
-- 转账方式字典(zzfs):原硬编码 wxzz/zzbzz/yhkzz/xj + 新增 lszz 乐刷
-- 业务表 biz_protocol_payment_detail.transfer_type / biz_pilot_payment.transfer_type 仍存 dict_value
INSERT INTO `sys_dict_type` (
`id`, `dict_name`, `dict_type`, `tenant_no`, `order_num`, `remark`,
`create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
) VALUES (
'TDP000000000000000000000000000095',
'转账方式',
'zzfs',
'zkxw',
11,
'采集协议/中试缴费-转账方式',
'd3000000000000000000000000000001',
'b13c2be2-4e71-11f1-9f47-00163e3bdd96',
NOW(),
'd3000000000000000000000000000001',
NOW(),
0
);
INSERT INTO `sys_dict_data` (
`id`, `dict_label`, `dict_value`, `dict_type`, `tenant_no`, `order_num`, `remark`,
`create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
) VALUES
(
'TDP000000000000000000000000000096',
'微信转账',
'wxzz',
'zzfs',
'zkxw',
1,
'',
'd3000000000000000000000000000001',
'b13c2be2-4e71-11f1-9f47-00163e3bdd96',
NOW(),
'd3000000000000000000000000000001',
NOW(),
0
),
(
'TDP000000000000000000000000000097',
'支付宝转账',
'zzbzz',
'zzfs',
'zkxw',
2,
'',
'd3000000000000000000000000000001',
'b13c2be2-4e71-11f1-9f47-00163e3bdd96',
NOW(),
'd3000000000000000000000000000001',
NOW(),
0
),
(
'TDP000000000000000000000000000098',
'银行卡转账',
'yhkzz',
'zzfs',
'zkxw',
3,
'',
'd3000000000000000000000000000001',
'b13c2be2-4e71-11f1-9f47-00163e3bdd96',
NOW(),
'd3000000000000000000000000000001',
NOW(),
0
),
(
'TDP000000000000000000000000000099',
'现金',
'xj',
'zzfs',
'zkxw',
4,
'',
'd3000000000000000000000000000001',
'b13c2be2-4e71-11f1-9f47-00163e3bdd96',
NOW(),
'd3000000000000000000000000000001',
NOW(),
0
),
(
'TDP000000000000000000000000000100',
'乐刷',
'lszz',
'zzfs',
'zkxw',
5,
'',
'd3000000000000000000000000000001',
'b13c2be2-4e71-11f1-9f47-00163e3bdd96',
NOW(),
'd3000000000000000000000000000001',
NOW(),
0
);
+12 -3
View File
@@ -88,11 +88,12 @@ CREATE TABLE `biz_cell_product` (
`product_name` varchar(200) NOT NULL COMMENT '产品名称',
`product_type_id` varchar(64) DEFAULT NULL COMMENT '细胞产品类型ID',
`spec_id` varchar(64) DEFAULT NULL COMMENT '规格ID',
`spec_text` varchar(200) DEFAULT NULL COMMENT '规格(文本)',
`batch_no` varchar(64) DEFAULT NULL COMMENT '批次号',
`storage_slot_id` varchar(64) DEFAULT NULL COMMENT '储物格ID',
`passage` varchar(8) DEFAULT NULL COMMENT '代次(P1~P8)',
`freeze_date` datetime DEFAULT NULL COMMENT '冻存日期',
`expected_cell_count` decimal(18,4) DEFAULT NULL COMMENT '预计细胞数量(单位:亿)',
`expected_cell_count` decimal(18,4) DEFAULT NULL COMMENT '预计细胞数量(单位:千万)',
`viability` decimal(5,2) DEFAULT NULL COMMENT '活性(百分比,0~100)',
`product_status` varchar(16) DEFAULT 'frozen' COMMENT '状态: frozen已冻存/sold已售卖/used已使用',
`source_type` varchar(20) DEFAULT 'production' COMMENT '来源类型(production生产/manual手动录入)',
@@ -2613,7 +2614,7 @@ CREATE TABLE `biz_pilot_payment` (
`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 '业务类型: 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_type` varchar(16) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '转账方式字典 zzfs: wxzz/zzbzz/yhkzz/xj/lszz',
`transfer_amount` decimal(18,2) DEFAULT NULL COMMENT '实际转账金额',
`transfer_time` datetime DEFAULT NULL COMMENT '转账时间',
`transfer_attachments` text COLLATE utf8mb4_unicode_ci COMMENT '转账凭证附件',
@@ -3394,6 +3395,8 @@ CREATE TABLE `biz_production_task` (
`conclusion` varchar(16) DEFAULT NULL COMMENT '生产结论 cg=成功 sb=失败',
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
`attachments` varchar(4000) DEFAULT NULL COMMENT '附件/图片URL(逗号分隔)',
`equipment_ids` varchar(1000) DEFAULT NULL COMMENT '关联设备ID(逗号分隔)',
`equipment_name` varchar(1000) DEFAULT NULL COMMENT '设备名称快照(逗号分隔)',
`tenant_no` varchar(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号',
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
@@ -4019,7 +4022,7 @@ DROP TABLE IF EXISTS `biz_protocol_payment_detail`;
CREATE TABLE `biz_protocol_payment_detail` (
`id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '主键ID',
`payment_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '缴费主表ID',
`transfer_type` varchar(16) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'wxzz微信 zzbzz支付宝 yhkzz银行卡 xj现金',
`transfer_type` varchar(16) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '转账方式字典 zzfs: wxzz/zzbzz/yhkzz/xj/lszz',
`due_amount` decimal(18,2) DEFAULT NULL COMMENT '应缴费金额',
`transfer_amount` decimal(18,2) DEFAULT NULL COMMENT '转账金额',
`transfer_time` datetime DEFAULT NULL COMMENT '转账时间',
@@ -5870,6 +5873,11 @@ INSERT INTO `sys_dict_data` (`id`, `dict_label`, `dict_value`, `dict_type`, `ten
INSERT INTO `sys_dict_data` (`id`, `dict_label`, `dict_value`, `dict_type`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('TDP000000000000000000000000000092', '皮下注射', 'pxzs', 'szfs', 'zkxw', 2, '', 'd3000000000000000000000000000001', 'b13c2be2-4e71-11f1-9f47-00163e3bdd96', '2026-05-26 09:53:46', 'd3000000000000000000000000000001', '2026-05-26 09:53:46', 0);
INSERT INTO `sys_dict_data` (`id`, `dict_label`, `dict_value`, `dict_type`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('TDP000000000000000000000000000093', '局部注射', 'jbzs', 'szfs', 'zkxw', 3, '', 'd3000000000000000000000000000001', 'b13c2be2-4e71-11f1-9f47-00163e3bdd96', '2026-05-26 09:53:46', 'd3000000000000000000000000000001', '2026-05-26 09:53:46', 0);
INSERT INTO `sys_dict_data` (`id`, `dict_label`, `dict_value`, `dict_type`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('TDP000000000000000000000000000094', '其他', 'qt', 'szfs', 'zkxw', 4, '', 'd3000000000000000000000000000001', 'b13c2be2-4e71-11f1-9f47-00163e3bdd96', '2026-05-26 09:53:46', 'd3000000000000000000000000000001', '2026-05-26 09:53:46', 0);
INSERT INTO `sys_dict_data` (`id`, `dict_label`, `dict_value`, `dict_type`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('TDP000000000000000000000000000096', '微信转账', 'wxzz', 'zzfs', 'zkxw', 1, '', 'd3000000000000000000000000000001', 'b13c2be2-4e71-11f1-9f47-00163e3bdd96', '2026-06-29 00:00:00', 'd3000000000000000000000000000001', '2026-06-29 00:00:00', 0);
INSERT INTO `sys_dict_data` (`id`, `dict_label`, `dict_value`, `dict_type`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('TDP000000000000000000000000000097', '支付宝转账', 'zzbzz', 'zzfs', 'zkxw', 2, '', 'd3000000000000000000000000000001', 'b13c2be2-4e71-11f1-9f47-00163e3bdd96', '2026-06-29 00:00:00', 'd3000000000000000000000000000001', '2026-06-29 00:00:00', 0);
INSERT INTO `sys_dict_data` (`id`, `dict_label`, `dict_value`, `dict_type`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('TDP000000000000000000000000000098', '银行卡转账', 'yhkzz', 'zzfs', 'zkxw', 3, '', 'd3000000000000000000000000000001', 'b13c2be2-4e71-11f1-9f47-00163e3bdd96', '2026-06-29 00:00:00', 'd3000000000000000000000000000001', '2026-06-29 00:00:00', 0);
INSERT INTO `sys_dict_data` (`id`, `dict_label`, `dict_value`, `dict_type`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('TDP000000000000000000000000000099', '现金', 'xj', 'zzfs', 'zkxw', 4, '', 'd3000000000000000000000000000001', 'b13c2be2-4e71-11f1-9f47-00163e3bdd96', '2026-06-29 00:00:00', 'd3000000000000000000000000000001', '2026-06-29 00:00:00', 0);
INSERT INTO `sys_dict_data` (`id`, `dict_label`, `dict_value`, `dict_type`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('TDP000000000000000000000000000100', '乐刷', 'lszz', 'zzfs', 'zkxw', 5, '', 'd3000000000000000000000000000001', 'b13c2be2-4e71-11f1-9f47-00163e3bdd96', '2026-06-29 00:00:00', 'd3000000000000000000000000000001', '2026-06-29 00:00:00', 0);
COMMIT;
-- ----------------------------
@@ -5913,6 +5921,7 @@ INSERT INTO `sys_dict_type` (`id`, `dict_name`, `dict_type`, `tenant_no`, `order
INSERT INTO `sys_dict_type` (`id`, `dict_name`, `dict_type`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('DC1FA4556E85454F841F58CC49D86F30', '测试编码1', 'csbm', 'zkxw', 0, '测试编码1', 'd3000000000000000000000000000001', 'b13c2be2-4e71-11f1-9f47-00163e3bdd96', '2026-05-20 14:34:18', 'd3000000000000000000000000000001', '2026-05-20 14:40:14', 1);
INSERT INTO `sys_dict_type` (`id`, `dict_name`, `dict_type`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('EC21AAE700D04D989B3DDC08D0411E6E', '12', '123', 'zkxw', 0, '3123', 'd3000000000000000000000000000001', '', '2026-05-14 15:52:20', 'd3000000000000000000000000000001', '2026-05-14 15:52:22', 1);
INSERT INTO `sys_dict_type` (`id`, `dict_name`, `dict_type`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('TDP000000000000000000000000000090', '输注方式', 'szfs', 'zkxw', 10, '中试服务申请单-输注计划输注方式', 'd3000000000000000000000000000001', 'b13c2be2-4e71-11f1-9f47-00163e3bdd96', '2026-05-26 09:53:46', 'd3000000000000000000000000000001', '2026-05-26 09:53:46', 0);
INSERT INTO `sys_dict_type` (`id`, `dict_name`, `dict_type`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('TDP000000000000000000000000000095', '转账方式', 'zzfs', 'zkxw', 11, '采集协议/中试缴费-转账方式', 'd3000000000000000000000000000001', 'b13c2be2-4e71-11f1-9f47-00163e3bdd96', '2026-06-29 00:00:00', 'd3000000000000000000000000000001', '2026-06-29 00:00:00', 0);
COMMIT;
-- ----------------------------