Files
zkxw/docs/sql/dev-reset-production-qc.sql
T
2026-05-28 14:19:18 +08:00

57 lines
2.6 KiB
SQL

-- =============================================================================
-- 生产工单 / 生产任务 / 质检工单 / 质检任务 — 业务数据清空
-- 用途:测试环境重置生产与质检链路,便于重新跑入库/出库/临时生产及质检流程
-- 依据:docs/sql/zkxw.sql 当前模型(无数据库外键,按逻辑依赖子表优先)
--
-- ⚠️ 警告:不可在生产库执行!建议先备份。
-- 建议执行顺序:先本脚本,再 dev-reset-business-flows.sql
-- =============================================================================
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
START TRANSACTION;
-- ---------------------------------------------------------------------------
-- 1. 生产任务明细(子表 → 主表)
-- ---------------------------------------------------------------------------
TRUNCATE TABLE `biz_production_task_step_reagent`;
TRUNCATE TABLE `biz_production_task_step_output`;
TRUNCATE TABLE `biz_production_task_step_data_collection`;
TRUNCATE TABLE `biz_production_task_step_consumable`;
TRUNCATE TABLE `biz_production_task_step`;
TRUNCATE TABLE `biz_production_task_output`;
TRUNCATE TABLE `biz_production_task_input`;
TRUNCATE TABLE `biz_production_task`;
TRUNCATE TABLE `biz_production_work_order`;
-- ---------------------------------------------------------------------------
-- 2. 质检任务 / 工单明细
-- ---------------------------------------------------------------------------
TRUNCATE TABLE `biz_qc_task_result`;
TRUNCATE TABLE `biz_qc_task`;
TRUNCATE TABLE `biz_qc_work_order_third_item`;
TRUNCATE TABLE `biz_qc_work_order_lab_item`;
TRUNCATE TABLE `biz_qc_work_order`;
-- ---------------------------------------------------------------------------
-- 3. 生产 / 质检产生的库存变动与细胞产品
-- 注意:清空变动记录不会自动回滚 biz_consumable / biz_reagent /
-- biz_qc_material 主表上的 stock_qty,测试后若库存不对需手工恢复种子值
-- ---------------------------------------------------------------------------
TRUNCATE TABLE `biz_consumable_stock_log`;
TRUNCATE TABLE `biz_reagent_stock_log`;
TRUNCATE TABLE `biz_qc_material_usage`;
TRUNCATE TABLE `biz_cell_product`;
COMMIT;
SET FOREIGN_KEY_CHECKS = 1;
-- 验证(可选)
-- SELECT 'production_work_order' AS tbl, COUNT(*) AS cnt FROM biz_production_work_order
-- UNION ALL SELECT 'production_task', COUNT(*) FROM biz_production_task
-- UNION ALL SELECT 'qc_work_order', COUNT(*) FROM biz_qc_work_order
-- UNION ALL SELECT 'qc_task', COUNT(*) FROM biz_qc_task
-- UNION ALL SELECT 'cell_product', COUNT(*) FROM biz_cell_product;