锁定缴费校验失败时整单回滚,避免样本半成功落库;前端禁止删除锁定缴费样本,改码走更正编码。同步落地样本更正、采集微信通知、OA提及未读、细胞产品套餐与相关迁移文档。 Co-authored-by: Cursor <cursoragent@cursor.com>
470 lines
19 KiB
SQL
470 lines
19 KiB
SQL
-- =============================================================================
|
||
-- 数据修复:马丽娜 / 邓诗婷 样本编码错乱回正
|
||
-- 基准备份:zkxw_2026-10-26_092540.sql.gz(执行前请再备份当前库)
|
||
--
|
||
-- 目标终态:
|
||
-- 马丽娜 协议 XBCC20261008000001 → 样本码 ZKZX34000964
|
||
-- + 原质检/生产/接收/入库审核/缴费(曾被误改到 1007)一并回到 964
|
||
-- 邓诗婷 协议 XBCC20261026000001 → 样本码 ZKZX34000842
|
||
-- (不含马丽娜的质检生产)
|
||
--
|
||
-- 不改:lab_storage_code、biz_cell_product.product_code、短信正文、软删历史行
|
||
--
|
||
-- 执行方式(MySQL 5.7):
|
||
-- 1) 先跑「一、执行前校验」全部 SELECT,确认与预期一致
|
||
-- 2) 再跑「二、事务修复」;任一步报错会 ROLLBACK
|
||
-- 3) 跑「三、执行后校验」
|
||
-- =============================================================================
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 常量(与 09:25 备份一致;若线上 ID 已变,以校验 SELECT 为准再改)
|
||
-- ---------------------------------------------------------------------------
|
||
-- 租户
|
||
-- SET @tenant = 'zkxw';
|
||
-- 马丽娜协议 / 活跃样本 / 编码池
|
||
-- 6A7CBB85EA024AF08061FD9AFB8DF6EC
|
||
-- EC3B60D2880544D9909980D36FF9704E (当前活跃,码=842)
|
||
-- BBC01CCFDCA14E7BBE3ED34CE1B1DE47 (池 964)
|
||
-- 7C4C8FEDE210453F9D2F357D4F5A46A4 (池 842)
|
||
-- 邓诗婷协议 / 活跃样本 / 编码池
|
||
-- AAF11BCC7A584B09AFCE17AA8F7B7CD4
|
||
-- 21D2D4A063064E0B850F5C807F964079 (当前活跃,码=1007)
|
||
-- 817D230359EE4DCEA0F0CB532F099F12 (池 1007)
|
||
-- 下游(属马丽娜,当前 sample_code=1007)
|
||
-- reception 0E69E16E7E9C4B3AA9D894622BBE237B
|
||
-- qc_wo 019FC51312BB4225901014BE90A3AB2E
|
||
-- prod_wo 92F20C8B731E474985BB2C6D74A2BA3A
|
||
|
||
/* =============================================================================
|
||
一、执行前校验(只读)—— 全部应对上,再执行第二节
|
||
============================================================================= */
|
||
|
||
SELECT '【预检1】活跃协议样本(期望:马丽娜=842 一条;邓诗婷=1007 一条;964 无活跃)' AS step;
|
||
SELECT ps.id,
|
||
ps.sample_code,
|
||
ps.sample_code_id,
|
||
ps.collection_protocol_id,
|
||
cp.protocol_no,
|
||
ppc.mother_name,
|
||
ps.del_flag,
|
||
ps.update_time
|
||
FROM biz_protocol_sample ps
|
||
JOIN biz_collection_protocol cp ON cp.id = ps.collection_protocol_id AND cp.del_flag = 0
|
||
LEFT JOIN biz_protocol_party_customer ppc
|
||
ON ppc.collection_protocol_id = ps.collection_protocol_id AND ppc.del_flag = 0
|
||
WHERE ps.tenant_no = 'zkxw'
|
||
AND ps.del_flag = 0
|
||
AND ps.sample_code IN ('ZKZX34000842', 'ZKZX34000964', 'ZKZX34001007')
|
||
ORDER BY ps.sample_code, ps.create_time;
|
||
|
||
SELECT '【预检2】马丽娜下游当前码(期望均为 1007,协议仍为马丽娜)' AS step;
|
||
SELECT 'reception' AS tbl, id, sample_code, protocol_sample_id, collection_protocol_id, lab_storage_code
|
||
FROM biz_sample_reception
|
||
WHERE tenant_no = 'zkxw' AND del_flag = 0
|
||
AND collection_protocol_id = '6A7CBB85EA024AF08061FD9AFB8DF6EC'
|
||
UNION ALL
|
||
SELECT 'qc_wo', id, sample_code, protocol_sample_id, collection_protocol_id, work_order_no
|
||
FROM biz_qc_work_order
|
||
WHERE tenant_no = 'zkxw' AND del_flag = 0
|
||
AND collection_protocol_id = '6A7CBB85EA024AF08061FD9AFB8DF6EC'
|
||
UNION ALL
|
||
SELECT 'prod_wo', id, sample_code, protocol_sample_id, collection_protocol_id, work_order_no
|
||
FROM biz_production_work_order
|
||
WHERE tenant_no = 'zkxw' AND del_flag = 0
|
||
AND collection_protocol_id = '6A7CBB85EA024AF08061FD9AFB8DF6EC'
|
||
UNION ALL
|
||
SELECT 'storage_rev', id, sample_code, NULL, protocol_id, protocol_no
|
||
FROM biz_storage_release_review
|
||
WHERE tenant_no = 'zkxw' AND del_flag = 0
|
||
AND protocol_id = '6A7CBB85EA024AF08061FD9AFB8DF6EC';
|
||
|
||
SELECT '【预检3】码分布计数(活跃)' AS step;
|
||
SELECT sample_code, COUNT(*) AS cnt
|
||
FROM biz_protocol_sample
|
||
WHERE tenant_no = 'zkxw' AND del_flag = 0
|
||
AND sample_code IN ('ZKZX34000842', 'ZKZX34000964', 'ZKZX34001007')
|
||
GROUP BY sample_code;
|
||
|
||
SELECT sample_code, COUNT(*) AS qc_task_cnt
|
||
FROM biz_qc_task
|
||
WHERE tenant_no = 'zkxw' AND del_flag = 0
|
||
AND sample_code IN ('ZKZX34000842', 'ZKZX34000964', 'ZKZX34001007')
|
||
GROUP BY sample_code;
|
||
|
||
SELECT sample_code, collection_protocol_id, COUNT(*) AS pay_cnt
|
||
FROM biz_protocol_sample_payment
|
||
WHERE tenant_no = 'zkxw' AND del_flag = 0
|
||
AND sample_code IN ('ZKZX34000842', 'ZKZX34000964', 'ZKZX34001007')
|
||
GROUP BY sample_code, collection_protocol_id;
|
||
|
||
/* =============================================================================
|
||
二、事务修复
|
||
A 马丽娜 842 → 964(仅协议侧;下游此时在 1007,不会被带走)
|
||
B 马丽娜协议下 1007 → 964(质检/生产/缴费等,按协议 ID 定向)
|
||
C 邓诗婷 1007 → 842
|
||
============================================================================= */
|
||
|
||
START TRANSACTION;
|
||
|
||
-- 说明:库内同时存在 utf8mb4_unicode_ci / utf8mb4_general_ci 列。
|
||
-- 字符串比较一律用 BINARY,避免会话变量 collation 混用报错。
|
||
SET NAMES utf8mb4;
|
||
SET @now := NOW();
|
||
SET @operator := 'data_fix_20261026';
|
||
|
||
SET @marina_sample_id := NULL;
|
||
SET @deng_sample_id := NULL;
|
||
|
||
SELECT id INTO @marina_sample_id
|
||
FROM biz_protocol_sample
|
||
WHERE del_flag = 0
|
||
AND BINARY tenant_no = BINARY 'zkxw'
|
||
AND BINARY collection_protocol_id = BINARY '6A7CBB85EA024AF08061FD9AFB8DF6EC'
|
||
AND BINARY sample_code = BINARY 'ZKZX34000842'
|
||
LIMIT 1;
|
||
|
||
SELECT id INTO @deng_sample_id
|
||
FROM biz_protocol_sample
|
||
WHERE del_flag = 0
|
||
AND BINARY tenant_no = BINARY 'zkxw'
|
||
AND BINARY collection_protocol_id = BINARY 'AAF11BCC7A584B09AFCE17AA8F7B7CD4'
|
||
AND BINARY sample_code = BINARY 'ZKZX34001007'
|
||
LIMIT 1;
|
||
|
||
SET @gate := 0;
|
||
SELECT IF(@marina_sample_id IS NULL OR @marina_sample_id = '', 1, 0)
|
||
+ IF(@deng_sample_id IS NULL OR @deng_sample_id = '', 1, 0)
|
||
+ (SELECT COUNT(*) FROM biz_protocol_sample
|
||
WHERE del_flag = 0 AND BINARY tenant_no = BINARY 'zkxw'
|
||
AND BINARY sample_code = BINARY 'ZKZX34000964')
|
||
+ (SELECT COUNT(*) FROM biz_protocol_sample
|
||
WHERE del_flag = 0 AND BINARY tenant_no = BINARY 'zkxw'
|
||
AND BINARY sample_code = BINARY 'ZKZX34000842'
|
||
AND id <> @marina_sample_id)
|
||
INTO @gate;
|
||
|
||
SELECT @marina_sample_id AS marina_sample_id,
|
||
@deng_sample_id AS deng_sample_id,
|
||
@gate AS gate_should_be_0;
|
||
|
||
SET @__abort := (0 + 1) / IF(@gate = 0, 1, 0);
|
||
|
||
/* ---------- A. 马丽娜活跃样本 842 → 964 + 编码池切换 ---------- */
|
||
UPDATE biz_protocol_sample
|
||
SET sample_code = 'ZKZX34000964',
|
||
sample_code_id = 'BBC01CCFDCA14E7BBE3ED34CE1B1DE47',
|
||
update_by = @operator,
|
||
update_time = @now
|
||
WHERE id = @marina_sample_id
|
||
AND del_flag = 0
|
||
AND BINARY sample_code = BINARY 'ZKZX34000842';
|
||
|
||
UPDATE biz_sample_code
|
||
SET issued = 1, update_by = @operator, update_time = @now
|
||
WHERE BINARY id = BINARY 'BBC01CCFDCA14E7BBE3ED34CE1B1DE47'
|
||
AND BINARY tenant_no = BINARY 'zkxw' AND del_flag = 0;
|
||
|
||
UPDATE biz_sample_code
|
||
SET issued = 0, update_by = @operator, update_time = @now
|
||
WHERE BINARY id = BINARY '7C4C8FEDE210453F9D2F357D4F5A46A4'
|
||
AND BINARY tenant_no = BINARY 'zkxw' AND del_flag = 0
|
||
AND NOT EXISTS (
|
||
SELECT 1 FROM biz_protocol_sample
|
||
WHERE del_flag = 0 AND BINARY tenant_no = BINARY 'zkxw'
|
||
AND BINARY sample_code_id = BINARY '7C4C8FEDE210453F9D2F357D4F5A46A4'
|
||
AND id <> @marina_sample_id
|
||
);
|
||
|
||
UPDATE biz_protocol_sample_transport
|
||
SET sample_code = 'ZKZX34000964',
|
||
sample_id = @marina_sample_id,
|
||
update_by = @operator,
|
||
update_time = @now
|
||
WHERE del_flag = 0
|
||
AND BINARY tenant_no = BINARY 'zkxw'
|
||
AND BINARY collection_protocol_id = BINARY '6A7CBB85EA024AF08061FD9AFB8DF6EC'
|
||
AND BINARY sample_code = BINARY 'ZKZX34000842';
|
||
|
||
INSERT INTO biz_sample_code_correction_log (
|
||
id, reception_source, old_sample_code, new_sample_code, impact_json, reason,
|
||
tenant_no, order_num, remark, create_by, create_dept_id, create_time, update_by, update_time, del_flag
|
||
) VALUES (
|
||
REPLACE(UUID(), '-', ''),
|
||
'cell_storage', 'ZKZX34000842', 'ZKZX34000964',
|
||
JSON_OBJECT(
|
||
'biz_protocol_sample', 1,
|
||
'biz_sample_code', 1,
|
||
'biz_protocol_sample_transport', 1,
|
||
'note', 'stepA_marina_protocol_only'
|
||
),
|
||
'数据修复:马丽娜协议样本 842→964(下游另按协议定向迁移)',
|
||
'zkxw', 0, 'fix_marina_deng_20261026_stepA',
|
||
@operator, '', @now, @operator, @now, 0
|
||
);
|
||
|
||
/* ---------- B. 马丽娜协议下 1007 → 964(质检/生产/缴费) ---------- */
|
||
UPDATE biz_sample_reception
|
||
SET sample_code = 'ZKZX34000964',
|
||
protocol_sample_id = @marina_sample_id,
|
||
update_by = @operator,
|
||
update_time = @now
|
||
WHERE del_flag = 0
|
||
AND BINARY tenant_no = BINARY 'zkxw'
|
||
AND BINARY collection_protocol_id = BINARY '6A7CBB85EA024AF08061FD9AFB8DF6EC'
|
||
AND BINARY sample_code = BINARY 'ZKZX34001007';
|
||
|
||
UPDATE biz_qc_work_order
|
||
SET sample_code = 'ZKZX34000964',
|
||
protocol_sample_id = @marina_sample_id,
|
||
update_by = @operator,
|
||
update_time = @now
|
||
WHERE del_flag = 0
|
||
AND BINARY tenant_no = BINARY 'zkxw'
|
||
AND BINARY collection_protocol_id = BINARY '6A7CBB85EA024AF08061FD9AFB8DF6EC'
|
||
AND BINARY sample_code = BINARY 'ZKZX34001007';
|
||
|
||
UPDATE biz_qc_task t
|
||
JOIN biz_qc_work_order w
|
||
ON w.id = t.work_order_id
|
||
AND w.del_flag = 0
|
||
AND BINARY w.tenant_no = BINARY 'zkxw'
|
||
AND BINARY w.collection_protocol_id = BINARY '6A7CBB85EA024AF08061FD9AFB8DF6EC'
|
||
SET t.sample_code = 'ZKZX34000964',
|
||
t.update_by = @operator,
|
||
t.update_time = @now
|
||
WHERE t.del_flag = 0
|
||
AND BINARY t.tenant_no = BINARY 'zkxw'
|
||
AND BINARY t.sample_code = BINARY 'ZKZX34001007';
|
||
|
||
UPDATE biz_production_work_order
|
||
SET sample_code = 'ZKZX34000964',
|
||
protocol_sample_id = @marina_sample_id,
|
||
update_by = @operator,
|
||
update_time = @now
|
||
WHERE del_flag = 0
|
||
AND BINARY tenant_no = BINARY 'zkxw'
|
||
AND BINARY collection_protocol_id = BINARY '6A7CBB85EA024AF08061FD9AFB8DF6EC'
|
||
AND BINARY sample_code = BINARY 'ZKZX34001007';
|
||
|
||
UPDATE biz_sample_production_reception pr
|
||
JOIN biz_sample_reception r
|
||
ON r.id = pr.reception_id
|
||
AND r.del_flag = 0
|
||
AND BINARY r.tenant_no = BINARY 'zkxw'
|
||
AND BINARY r.collection_protocol_id = BINARY '6A7CBB85EA024AF08061FD9AFB8DF6EC'
|
||
SET pr.sample_code = 'ZKZX34000964',
|
||
pr.update_by = @operator,
|
||
pr.update_time = @now
|
||
WHERE pr.del_flag = 0
|
||
AND BINARY pr.tenant_no = BINARY 'zkxw'
|
||
AND BINARY pr.sample_code = BINARY 'ZKZX34001007';
|
||
|
||
UPDATE biz_production_task_input ti
|
||
JOIN biz_production_task pt
|
||
ON pt.id = ti.task_id AND pt.del_flag = 0 AND BINARY pt.tenant_no = BINARY 'zkxw'
|
||
JOIN biz_production_work_order pw
|
||
ON pw.id = pt.work_order_id
|
||
AND pw.del_flag = 0
|
||
AND BINARY pw.tenant_no = BINARY 'zkxw'
|
||
AND BINARY pw.collection_protocol_id = BINARY '6A7CBB85EA024AF08061FD9AFB8DF6EC'
|
||
SET ti.input_code = 'ZKZX34000964',
|
||
ti.update_by = @operator,
|
||
ti.update_time = @now
|
||
WHERE ti.del_flag = 0
|
||
AND BINARY ti.tenant_no = BINARY 'zkxw'
|
||
AND BINARY ti.input_type = BINARY 'sample'
|
||
AND BINARY ti.input_code = BINARY 'ZKZX34001007';
|
||
|
||
UPDATE biz_storage_release_review
|
||
SET sample_code = 'ZKZX34000964',
|
||
sample_name = 'ZKZX34000964',
|
||
update_by = @operator,
|
||
update_time = @now
|
||
WHERE del_flag = 0
|
||
AND BINARY tenant_no = BINARY 'zkxw'
|
||
AND BINARY protocol_id = BINARY '6A7CBB85EA024AF08061FD9AFB8DF6EC'
|
||
AND BINARY sample_code = BINARY 'ZKZX34001007';
|
||
|
||
UPDATE biz_protocol_sample_payment
|
||
SET sample_code = 'ZKZX34000964',
|
||
protocol_sample_id = @marina_sample_id,
|
||
update_by = @operator,
|
||
update_time = @now
|
||
WHERE del_flag = 0
|
||
AND BINARY tenant_no = BINARY 'zkxw'
|
||
AND BINARY collection_protocol_id = BINARY '6A7CBB85EA024AF08061FD9AFB8DF6EC'
|
||
AND BINARY sample_code = BINARY 'ZKZX34001007';
|
||
|
||
UPDATE biz_protocol_payment_schedule
|
||
SET sample_code = 'ZKZX34000964',
|
||
update_by = @operator,
|
||
update_time = @now
|
||
WHERE del_flag = 0
|
||
AND BINARY tenant_no = BINARY 'zkxw'
|
||
AND BINARY collection_protocol_id = BINARY '6A7CBB85EA024AF08061FD9AFB8DF6EC'
|
||
AND BINARY sample_code = BINARY 'ZKZX34001007';
|
||
|
||
UPDATE biz_protocol_payment_transfer
|
||
SET sample_code = 'ZKZX34000964',
|
||
update_by = @operator,
|
||
update_time = @now
|
||
WHERE del_flag = 0
|
||
AND BINARY tenant_no = BINARY 'zkxw'
|
||
AND BINARY collection_protocol_id = BINARY '6A7CBB85EA024AF08061FD9AFB8DF6EC'
|
||
AND BINARY sample_code = BINARY 'ZKZX34001007';
|
||
|
||
INSERT INTO biz_sample_code_correction_log (
|
||
id, reception_source, old_sample_code, new_sample_code, impact_json, reason,
|
||
tenant_no, order_num, remark, create_by, create_dept_id, create_time, update_by, update_time, del_flag
|
||
) VALUES (
|
||
REPLACE(UUID(), '-', ''),
|
||
'cell_storage', 'ZKZX34001007', 'ZKZX34000964',
|
||
JSON_OBJECT('note', 'stepB_marina_downstream_by_protocol'),
|
||
'数据修复:马丽娜下游质检/生产/缴费 1007→964(按协议定向,不含邓诗婷)',
|
||
'zkxw', 0, 'fix_marina_deng_20261026_stepB',
|
||
@operator, '', @now, @operator, @now, 0
|
||
);
|
||
|
||
/* ---------- C. 邓诗婷 1007 → 842 ---------- */
|
||
SELECT COUNT(*) INTO @deng_1007_left_qc
|
||
FROM biz_qc_work_order
|
||
WHERE del_flag = 0 AND BINARY tenant_no = BINARY 'zkxw'
|
||
AND BINARY sample_code = BINARY 'ZKZX34001007';
|
||
|
||
SELECT COUNT(*) INTO @deng_1007_left_prod
|
||
FROM biz_production_work_order
|
||
WHERE del_flag = 0 AND BINARY tenant_no = BINARY 'zkxw'
|
||
AND BINARY sample_code = BINARY 'ZKZX34001007';
|
||
|
||
SET @gate2 := IF(@deng_1007_left_qc + @deng_1007_left_prod = 0, 0, 1)
|
||
+ (SELECT COUNT(*) FROM biz_protocol_sample
|
||
WHERE del_flag = 0 AND BINARY tenant_no = BINARY 'zkxw'
|
||
AND BINARY sample_code = BINARY 'ZKZX34000842');
|
||
SELECT @deng_1007_left_qc AS leftover_qc_on_1007,
|
||
@deng_1007_left_prod AS leftover_prod_on_1007,
|
||
@gate2 AS gate2_should_be_0;
|
||
SET @__abort2 := (0 + 1) / IF(@gate2 = 0, 1, 0);
|
||
|
||
UPDATE biz_protocol_sample
|
||
SET sample_code = 'ZKZX34000842',
|
||
sample_code_id = '7C4C8FEDE210453F9D2F357D4F5A46A4',
|
||
update_by = @operator,
|
||
update_time = @now
|
||
WHERE id = @deng_sample_id
|
||
AND del_flag = 0
|
||
AND BINARY sample_code = BINARY 'ZKZX34001007';
|
||
|
||
UPDATE biz_sample_code
|
||
SET issued = 1, update_by = @operator, update_time = @now
|
||
WHERE BINARY id = BINARY '7C4C8FEDE210453F9D2F357D4F5A46A4'
|
||
AND BINARY tenant_no = BINARY 'zkxw' AND del_flag = 0;
|
||
|
||
UPDATE biz_sample_code
|
||
SET issued = 0, update_by = @operator, update_time = @now
|
||
WHERE BINARY id = BINARY '817D230359EE4DCEA0F0CB532F099F12'
|
||
AND BINARY tenant_no = BINARY 'zkxw' AND del_flag = 0
|
||
AND NOT EXISTS (
|
||
SELECT 1 FROM biz_protocol_sample
|
||
WHERE del_flag = 0 AND BINARY tenant_no = BINARY 'zkxw'
|
||
AND BINARY sample_code_id = BINARY '817D230359EE4DCEA0F0CB532F099F12'
|
||
);
|
||
|
||
UPDATE biz_protocol_sample_payment
|
||
SET sample_code = 'ZKZX34000842',
|
||
protocol_sample_id = @deng_sample_id,
|
||
update_by = @operator,
|
||
update_time = @now
|
||
WHERE del_flag = 0
|
||
AND BINARY tenant_no = BINARY 'zkxw'
|
||
AND BINARY collection_protocol_id = BINARY 'AAF11BCC7A584B09AFCE17AA8F7B7CD4'
|
||
AND BINARY sample_code = BINARY 'ZKZX34001007';
|
||
|
||
UPDATE biz_protocol_payment_schedule
|
||
SET sample_code = 'ZKZX34000842',
|
||
update_by = @operator,
|
||
update_time = @now
|
||
WHERE del_flag = 0
|
||
AND BINARY tenant_no = BINARY 'zkxw'
|
||
AND BINARY collection_protocol_id = BINARY 'AAF11BCC7A584B09AFCE17AA8F7B7CD4'
|
||
AND BINARY sample_code = BINARY 'ZKZX34001007';
|
||
|
||
UPDATE biz_protocol_payment_transfer
|
||
SET sample_code = 'ZKZX34000842',
|
||
update_by = @operator,
|
||
update_time = @now
|
||
WHERE del_flag = 0
|
||
AND BINARY tenant_no = BINARY 'zkxw'
|
||
AND BINARY collection_protocol_id = BINARY 'AAF11BCC7A584B09AFCE17AA8F7B7CD4'
|
||
AND BINARY sample_code = BINARY 'ZKZX34001007';
|
||
|
||
UPDATE biz_protocol_sample_transport
|
||
SET sample_code = 'ZKZX34000842',
|
||
sample_id = @deng_sample_id,
|
||
update_by = @operator,
|
||
update_time = @now
|
||
WHERE del_flag = 0
|
||
AND BINARY tenant_no = BINARY 'zkxw'
|
||
AND BINARY collection_protocol_id = BINARY 'AAF11BCC7A584B09AFCE17AA8F7B7CD4'
|
||
AND BINARY sample_code = BINARY 'ZKZX34001007';
|
||
|
||
INSERT INTO biz_sample_code_correction_log (
|
||
id, reception_source, old_sample_code, new_sample_code, impact_json, reason,
|
||
tenant_no, order_num, remark, create_by, create_dept_id, create_time, update_by, update_time, del_flag
|
||
) VALUES (
|
||
REPLACE(UUID(), '-', ''),
|
||
'cell_storage', 'ZKZX34001007', 'ZKZX34000842',
|
||
JSON_OBJECT('note', 'stepC_deng_1007_to_842'),
|
||
'数据修复:邓诗婷协议样本 1007→842',
|
||
'zkxw', 0, 'fix_marina_deng_20261026_stepC',
|
||
@operator, '', @now, @operator, @now, 0
|
||
);
|
||
|
||
COMMIT;
|
||
|
||
/* =============================================================================
|
||
三、执行后校验(期望)
|
||
- 马丽娜活跃样本 = 964;质检/生产 sample_code = 964;protocol_sample_id = 马丽娜活跃样本
|
||
- 邓诗婷活跃样本 = 842;无 ZJ202610090001 / SC202610090001
|
||
- 1007 无活跃协议样本
|
||
============================================================================= */
|
||
|
||
SELECT '【验1】活跃样本归属' AS step;
|
||
SELECT ps.sample_code, cp.protocol_no, ppc.mother_name, ps.id AS protocol_sample_id
|
||
FROM biz_protocol_sample ps
|
||
JOIN biz_collection_protocol cp ON cp.id = ps.collection_protocol_id
|
||
LEFT JOIN biz_protocol_party_customer ppc
|
||
ON ppc.collection_protocol_id = ps.collection_protocol_id AND ppc.del_flag = 0
|
||
WHERE ps.tenant_no = 'zkxw' AND ps.del_flag = 0
|
||
AND ps.sample_code IN ('ZKZX34000842', 'ZKZX34000964', 'ZKZX34001007')
|
||
ORDER BY ps.sample_code;
|
||
|
||
SELECT '【验2】马丽娜下游' AS step;
|
||
SELECT 'qc_wo' AS tbl, work_order_no, sample_code, protocol_sample_id, collection_protocol_id, conclusion
|
||
FROM biz_qc_work_order
|
||
WHERE id = '019FC51312BB4225901014BE90A3AB2E'
|
||
UNION ALL
|
||
SELECT 'prod_wo', work_order_no, sample_code, protocol_sample_id, collection_protocol_id, work_order_status
|
||
FROM biz_production_work_order
|
||
WHERE id = '92F20C8B731E474985BB2C6D74A2BA3A'
|
||
UNION ALL
|
||
SELECT 'reception', id, sample_code, protocol_sample_id, collection_protocol_id, lab_storage_code
|
||
FROM biz_sample_reception
|
||
WHERE id = '0E69E16E7E9C4B3AA9D894622BBE237B';
|
||
|
||
SELECT '【验3】三码活跃样本数(期望 842=1, 964=1, 1007=0)' AS step;
|
||
SELECT sample_code, COUNT(*) AS cnt
|
||
FROM biz_protocol_sample
|
||
WHERE tenant_no = 'zkxw' AND del_flag = 0
|
||
AND sample_code IN ('ZKZX34000842', 'ZKZX34000964', 'ZKZX34001007')
|
||
GROUP BY sample_code;
|
||
|
||
SELECT '【验4】邓诗婷协议下不应有该质检/生产工单' AS step;
|
||
SELECT COUNT(*) AS deng_should_be_0
|
||
FROM biz_qc_work_order
|
||
WHERE tenant_no = 'zkxw' AND del_flag = 0
|
||
AND collection_protocol_id = 'AAF11BCC7A584B09AFCE17AA8F7B7CD4';
|
||
|
||
SELECT COUNT(*) AS leftover_1007_qc_should_be_0
|
||
FROM biz_qc_task
|
||
WHERE tenant_no = 'zkxw' AND del_flag = 0 AND sample_code = 'ZKZX34001007';
|