|
|
@@ -8,6 +8,53 @@
|
|
|
-- 干细胞培养 / MSC培养 → 干细胞培养(内置模版) / MSC培养-BUILTIN
|
|
|
-- UBMC冻存 / UBMC冻存 → UBMC冻存(内置模版) / UBMC冻存-BUILTIN
|
|
|
-- PBMC冻存 / PBMC冻存 → PBMC冻存(内置模版) / PBMC冻存-BUILTIN
|
|
|
+--
|
|
|
+-- ID 生成说明:
|
|
|
+-- MySQL UUID() 在同一微秒批量 INSERT…SELECT 时可能撞主键。
|
|
|
+-- 新 id = UPPER(MD5(CONCAT(UUID(), 源行主键, RAND(), CONNECTION_ID()))),保证逐行唯一。
|
|
|
+--
|
|
|
+-- ---------------------------------------------------------------------------
|
|
|
+-- 若上次执行报 Duplicate entry … PRIMARY,先做半截数据清理再重跑本脚本:
|
|
|
+--
|
|
|
+-- -- 1) 查看已写入的 BUILTIN
|
|
|
+-- SELECT id, route_code, route_name, is_builtin, tenant_no, create_time
|
|
|
+-- FROM biz_process_route
|
|
|
+-- WHERE route_code LIKE '%-BUILTIN' AND del_flag = 0;
|
|
|
+--
|
|
|
+-- -- 2) 软删半截内置路线及其步骤/子表(仅清理本次模版种子,不动源路线)
|
|
|
+-- UPDATE biz_process_route_step_data_collection d
|
|
|
+-- INNER JOIN biz_process_route_step s ON s.id = d.step_id
|
|
|
+-- INNER JOIN biz_process_route r ON r.id = s.route_id
|
|
|
+-- SET d.del_flag = 1, d.update_time = NOW()
|
|
|
+-- WHERE r.route_code LIKE '%-BUILTIN' AND r.del_flag = 0 AND d.del_flag = 0;
|
|
|
+--
|
|
|
+-- UPDATE biz_process_route_step_output o
|
|
|
+-- INNER JOIN biz_process_route_step s ON s.id = o.step_id
|
|
|
+-- INNER JOIN biz_process_route r ON r.id = s.route_id
|
|
|
+-- SET o.del_flag = 1, o.update_time = NOW()
|
|
|
+-- WHERE r.route_code LIKE '%-BUILTIN' AND r.del_flag = 0 AND o.del_flag = 0;
|
|
|
+--
|
|
|
+-- UPDATE biz_process_route_step_consumable c
|
|
|
+-- INNER JOIN biz_process_route_step s ON s.id = c.step_id
|
|
|
+-- INNER JOIN biz_process_route r ON r.id = s.route_id
|
|
|
+-- SET c.del_flag = 1, c.update_time = NOW()
|
|
|
+-- WHERE r.route_code LIKE '%-BUILTIN' AND r.del_flag = 0 AND c.del_flag = 0;
|
|
|
+--
|
|
|
+-- UPDATE biz_process_route_step_reagent g
|
|
|
+-- INNER JOIN biz_process_route_step s ON s.id = g.step_id
|
|
|
+-- INNER JOIN biz_process_route r ON r.id = s.route_id
|
|
|
+-- SET g.del_flag = 1, g.update_time = NOW()
|
|
|
+-- WHERE r.route_code LIKE '%-BUILTIN' AND r.del_flag = 0 AND g.del_flag = 0;
|
|
|
+--
|
|
|
+-- UPDATE biz_process_route_step s
|
|
|
+-- INNER JOIN biz_process_route r ON r.id = s.route_id
|
|
|
+-- SET s.del_flag = 1, s.update_time = NOW()
|
|
|
+-- WHERE r.route_code LIKE '%-BUILTIN' AND r.del_flag = 0 AND s.del_flag = 0;
|
|
|
+--
|
|
|
+-- UPDATE biz_process_route
|
|
|
+-- SET del_flag = 1, update_time = NOW()
|
|
|
+-- WHERE route_code LIKE '%-BUILTIN' AND del_flag = 0;
|
|
|
+-- ---------------------------------------------------------------------------
|
|
|
|
|
|
DELIMITER $$
|
|
|
|
|
|
@@ -49,6 +96,11 @@ BEGIN
|
|
|
);
|
|
|
|
|
|
DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_done = 1;
|
|
|
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
|
|
+ BEGIN
|
|
|
+ ROLLBACK;
|
|
|
+ RESIGNAL;
|
|
|
+ END;
|
|
|
|
|
|
OPEN cur;
|
|
|
read_loop: LOOP
|
|
|
@@ -57,7 +109,9 @@ BEGIN
|
|
|
LEAVE read_loop;
|
|
|
END IF;
|
|
|
|
|
|
- SET v_new_route_id = UPPER(REPLACE(UUID(), '-', ''));
|
|
|
+ START TRANSACTION;
|
|
|
+
|
|
|
+ SET v_new_route_id = UPPER(MD5(CONCAT(UUID(), v_src_id, RAND(), CONNECTION_ID())));
|
|
|
|
|
|
INSERT INTO biz_process_route (
|
|
|
id, route_code, route_name, product_type_id, version, is_current,
|
|
|
@@ -93,7 +147,9 @@ BEGIN
|
|
|
);
|
|
|
|
|
|
INSERT INTO tmp_step_id_map (old_id, new_id)
|
|
|
- SELECT id, UPPER(REPLACE(UUID(), '-', ''))
|
|
|
+ SELECT
|
|
|
+ id,
|
|
|
+ UPPER(MD5(CONCAT(UUID(), id, RAND(), CONNECTION_ID())))
|
|
|
FROM biz_process_route_step
|
|
|
WHERE route_id = v_src_id
|
|
|
AND del_flag = 0;
|
|
|
@@ -134,7 +190,7 @@ BEGIN
|
|
|
tenant_no, order_num, remark, create_by, create_dept_id, create_time, update_by, update_time, del_flag
|
|
|
)
|
|
|
SELECT
|
|
|
- UPPER(REPLACE(UUID(), '-', '')),
|
|
|
+ UPPER(MD5(CONCAT(UUID(), r.id, RAND(), CONNECTION_ID()))),
|
|
|
m.new_id,
|
|
|
r.reagent_code,
|
|
|
r.reagent_name,
|
|
|
@@ -160,7 +216,7 @@ BEGIN
|
|
|
remark, tenant_no, order_num, create_by, create_dept_id, create_time, update_by, update_time, del_flag
|
|
|
)
|
|
|
SELECT
|
|
|
- UPPER(REPLACE(UUID(), '-', '')),
|
|
|
+ UPPER(MD5(CONCAT(UUID(), c.id, RAND(), CONNECTION_ID()))),
|
|
|
m.new_id,
|
|
|
c.consumable_code,
|
|
|
c.consumable_name,
|
|
|
@@ -186,7 +242,7 @@ BEGIN
|
|
|
tenant_no, order_num, remark, create_by, create_dept_id, create_time, update_by, update_time, del_flag
|
|
|
)
|
|
|
SELECT
|
|
|
- UPPER(REPLACE(UUID(), '-', '')),
|
|
|
+ UPPER(MD5(CONCAT(UUID(), o.id, RAND(), CONNECTION_ID()))),
|
|
|
m.new_id,
|
|
|
o.output_type_id,
|
|
|
o.output_name,
|
|
|
@@ -209,7 +265,7 @@ BEGIN
|
|
|
tenant_no, order_num, remark, create_by, create_dept_id, create_time, update_by, update_time, del_flag
|
|
|
)
|
|
|
SELECT
|
|
|
- UPPER(REPLACE(UUID(), '-', '')),
|
|
|
+ UPPER(MD5(CONCAT(UUID(), d.id, RAND(), CONNECTION_ID()))),
|
|
|
m.new_id,
|
|
|
d.collection_name,
|
|
|
d.unit,
|
|
|
@@ -227,6 +283,8 @@ BEGIN
|
|
|
WHERE d.del_flag = 0;
|
|
|
|
|
|
DROP TEMPORARY TABLE IF EXISTS tmp_step_id_map;
|
|
|
+
|
|
|
+ COMMIT;
|
|
|
END LOOP;
|
|
|
CLOSE cur;
|
|
|
END$$
|