water_supply_threshold_test_data.sql 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. -- ============================================================
  2. -- 供水管网 T5 阈值管理 测试数据脚本(KingbaseES)
  3. -- 说明:
  4. -- 1. 依赖 T4 已初始化的规范设备类型和供水监测设备:
  5. -- 11 / 12 / 13,父类型 parent_id=1。
  6. -- 2. 阈值测试主键使用 WS-TEST-THR- 前缀,可重复执行。
  7. -- 3. 覆盖全天生效、分时生效、流量/压力/漏失三类传感器和筛选场景。
  8. -- ============================================================
  9. -- 清理历史阈值测试数据
  10. DELETE FROM app_user.warning_threshold
  11. WHERE id LIKE 'WS-TEST-THR-%'
  12. OR warning_code IN ('WARN-T5-FLOW', 'WARN-T5-PRESSURE', 'WARN-T5-LEAK');
  13. -- 校验规范设备类型存在,避免把阈值测试数据写到非供水设备上
  14. DO $$
  15. DECLARE
  16. v_type_count integer;
  17. BEGIN
  18. SELECT count(*) INTO v_type_count
  19. FROM app_user.equipment_type
  20. WHERE type_id IN ('11', '12', '13')
  21. AND parent_id = 1;
  22. IF v_type_count <> 3 THEN
  23. RAISE EXCEPTION '缺少规范供水监测子类型:11/12/13 必须 parent_id=1';
  24. END IF;
  25. END $$;
  26. INSERT INTO app_user.warning_threshold
  27. (id, device_code, warning_code, min_value, max_value,
  28. period_start, period_end, create_time, update_time)
  29. VALUES
  30. ('WS-TEST-THR-FLOW-ALL', 'CN-GS-202609020001', 'WARN-T5-FLOW',
  31. 20.00, 40.00, NULL, NULL, now(), now()),
  32. ('WS-TEST-THR-FLOW-PERIOD', 'CN-GS-202609020002', 'WARN-T5-FLOW',
  33. 25.00, 45.00, '08:00', '20:00', now(), now()),
  34. ('WS-TEST-THR-PRESSURE-ALL', 'CB-GS-202609020001', 'WARN-T5-PRESSURE',
  35. 0.30, 0.60, NULL, NULL, now(), now()),
  36. ('WS-TEST-THR-LEAK-PERIOD', 'TC-GS-202609020001', 'WARN-T5-LEAK',
  37. 8.00, 15.00, '08:00', '20:00', now(), now());
  38. -- 快速核验:
  39. -- 阈值分页 total=4;
  40. -- 设备编码筛选 CN-GS-202609020001 返回 1 条;
  41. -- 预警编码筛选 WARN-T5-FLOW 返回 2 条;
  42. -- WARN-T5-FLOW 在 CN-GS-202609020002 上已存在 08:00-20:00,
  43. -- 再次保存 19:00-21:00 应返回重叠时段错误。