qc_material_demo_seed.sql 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. -- 质检物料库测试数据(biz_qc_material / biz_qc_material_usage)
  2. --
  3. -- 用法:
  4. -- 1) 默认租户 zkxw,默认操作人 d3000000000000000000000000000001(与 zkxw.sql 演示账号一致)
  5. -- 2) 可重复执行:按物料编码前缀 QC-MAT-DEMO- 清理后重新插入
  6. -- 3) 执行前请确认已建表(见 docs/superpowers/plans/2026-05-20-qc-material-library.md 中 DDL)
  7. --
  8. -- 示例:
  9. -- mysql -u root -p zkxw < docs/sql/qc_material_demo_seed.sql
  10. SET NAMES utf8mb4;
  11. SET FOREIGN_KEY_CHECKS = 0;
  12. SET @tenant_no = 'zkxw';
  13. SET @operator_id = 'd3000000000000000000000000000001';
  14. SET @now = NOW();
  15. START TRANSACTION;
  16. -- 清理旧测试数据(先删变动记录,再删物料)
  17. DELETE u
  18. FROM `biz_qc_material_usage` u
  19. INNER JOIN `biz_qc_material` m ON m.`id` = u.`material_id`
  20. WHERE m.`tenant_no` = @tenant_no
  21. AND m.`material_code` LIKE 'QC-MAT-DEMO-%';
  22. DELETE FROM `biz_qc_material`
  23. WHERE `tenant_no` = @tenant_no
  24. AND `material_code` LIKE 'QC-MAT-DEMO-%';
  25. -- ----------------------------
  26. -- 质检物料主数据(10 条)
  27. -- 覆盖:正常库存 / 库存预警 / 零库存 / 停用
  28. -- ----------------------------
  29. INSERT INTO `biz_qc_material` (
  30. `id`,
  31. `material_code`,
  32. `material_name`,
  33. `spec_model`,
  34. `unit`,
  35. `stock_qty`,
  36. `warning_qty`,
  37. `status`,
  38. `tenant_no`,
  39. `order_num`,
  40. `remark`,
  41. `create_by`,
  42. `create_dept_id`,
  43. `create_time`,
  44. `update_by`,
  45. `update_time`,
  46. `del_flag`
  47. ) VALUES
  48. ('q1000000000000000000000000000001', 'QC-MAT-DEMO-001', 'PCR 扩增引物 Mix', '20× 预混', '支', 120.0000, 50.0000, '1', @tenant_no, 1, '常温避光', @operator_id, '', @now, @operator_id, @now, 0),
  49. ('q1000000000000000000000000000002', 'QC-MAT-DEMO-002', '核酸提取试剂盒', '96 孔板适用', '盒', 35.0000, 40.0000, '1', @tenant_no, 2, '库存低于预警线', @operator_id, '', @now, @operator_id, @now, 0),
  50. ('q1000000000000000000000000000003', 'QC-MAT-DEMO-003', '琼脂糖', 'Bio-Rad 常规型', 'g', 8.0000, 10.0000, '1', @tenant_no, 3, '粉末,干燥保存', @operator_id, '', @now, @operator_id, @now, 0),
  51. ('q1000000000000000000000000000004', 'QC-MAT-DEMO-004', 'TAE 电泳缓冲液', '50× 浓缩', '瓶', 200.0000, 30.0000, '1', @tenant_no, 4, NULL, @operator_id, '', @now, @operator_id, @now, 0),
  52. ('q1000000000000000000000000000005', 'QC-MAT-DEMO-005', '无菌吸头', '200μL 滤芯', '盒', 5000.0000, 500.0000, '1', @tenant_no, 5, '每盒 96 支', @operator_id, '', @now, @operator_id, @now, 0),
  53. ('q1000000000000000000000000000006', 'QC-MAT-DEMO-006', 'EP 离心管', '1.5mL 锥底', '包', 3000.0000, 200.0000, '1', @tenant_no, 6, '每包 500 支', @operator_id, '', @now, @operator_id, @now, 0),
  54. ('q1000000000000000000000000000007', 'QC-MAT-DEMO-007', '医用丁腈手套', 'M 码 无粉', '盒', 150.0000, 50.0000, '1', @tenant_no, 7, '每盒 100 只', @operator_id, '', @now, @operator_id, @now, 0),
  55. ('q1000000000000000000000000000008', 'QC-MAT-DEMO-008', '75% 乙醇消毒液', '500ml 喷雾', '瓶', 0.0000, 20.0000, '1', @tenant_no, 8, '零库存,可测入库', @operator_id, '', @now, @operator_id, @now, 0),
  56. ('q1000000000000000000000000000009', 'QC-MAT-DEMO-009', '质检标准品', '冻干粉 1mg', '支', 25.0000, 10.0000, '1', @tenant_no, 9, '-20℃ 保存', @operator_id, '', @now, @operator_id, @now, 0),
  57. ('q1000000000000000000000000000010', 'QC-MAT-DEMO-010', '细胞培养基(旧批次)', '500ml', '瓶', 15.0000, 5.0000, '0', @tenant_no, 10, '停用批次,仅保留档案', @operator_id, '', @now, @operator_id, @now, 0);
  58. -- ----------------------------
  59. -- 物料变动记录(3 条,便于「物料变动记录」页联调)
  60. -- change_type: in=入库 / use=使用;source_type: manual_in / task_complete
  61. -- ----------------------------
  62. INSERT INTO `biz_qc_material_usage` (
  63. `id`,
  64. `material_id`,
  65. `material_code`,
  66. `material_name`,
  67. `change_type`,
  68. `change_qty`,
  69. `stock_after`,
  70. `qc_task_id`,
  71. `qc_task_no`,
  72. `source_type`,
  73. `tenant_no`,
  74. `remark`,
  75. `create_by`,
  76. `create_dept_id`,
  77. `create_time`,
  78. `update_by`,
  79. `update_time`,
  80. `del_flag`
  81. ) VALUES
  82. ('qu100000000000000000000000000001', 'q1000000000000000000000000000001', 'QC-MAT-DEMO-001', 'PCR 扩增引物 Mix', 'in', 50.0000, 70.0000, NULL, NULL, 'manual_in', @tenant_no, '期初入库', @operator_id, '', DATE_SUB(@now, INTERVAL 7 DAY), @operator_id, DATE_SUB(@now, INTERVAL 7 DAY), 0),
  83. ('qu100000000000000000000000000002', 'q1000000000000000000000000000001', 'QC-MAT-DEMO-001', 'PCR 扩增引物 Mix', 'in', 50.0000, 120.0000, NULL, NULL, 'manual_in', @tenant_no, '补货入库', @operator_id, '', DATE_SUB(@now, INTERVAL 2 DAY), @operator_id, DATE_SUB(@now, INTERVAL 2 DAY), 0),
  84. ('qu100000000000000000000000000003', 'q1000000000000000000000000000002', 'QC-MAT-DEMO-002', '核酸提取试剂盒', 'use', -5.0000, 35.0000, NULL, 'QC-DEMO-TASK-001', 'task_complete', @tenant_no, '演示任务消耗', @operator_id, '', DATE_SUB(@now, INTERVAL 1 DAY), @operator_id, DATE_SUB(@now, INTERVAL 1 DAY), 0);
  85. COMMIT;
  86. SET FOREIGN_KEY_CHECKS = 1;
  87. -- 插入结果速览
  88. SELECT
  89. material_code AS `物料编码`,
  90. material_name AS `物料名称`,
  91. stock_qty AS `当前库存`,
  92. warning_qty AS `预警库存`,
  93. CASE WHEN status = '1' THEN '正常' ELSE '停用' END AS `状态`,
  94. CASE WHEN stock_qty <= warning_qty THEN '库存预警' ELSE '正常' END AS `库存状态`
  95. FROM `biz_qc_material`
  96. WHERE `tenant_no` = @tenant_no
  97. AND `material_code` LIKE 'QC-MAT-DEMO-%'
  98. AND `del_flag` = 0
  99. ORDER BY `order_num`;