|
|
@@ -0,0 +1,494 @@
|
|
|
+-- ============================================================
|
|
|
+-- 供水监测设备与报警测试数据统一重建脚本(KingbaseES)
|
|
|
+-- 对应 Gogs #56 T05;统一取代下列 5 个已失效的种子脚本:
|
|
|
+-- water_supply_monitoring_test_data.sql / water_supply_device_test_data.sql /
|
|
|
+-- water_supply_abnormal_test_data.sql / water_supply_alarm_ledger_test_data.sql /
|
|
|
+-- water_supply_alarm_audit_test_data.sql
|
|
|
+--
|
|
|
+-- 背景:
|
|
|
+-- equipment_type 迁移后,供水子类型以库中现值为权威:
|
|
|
+-- ultrasonic_flowmeter(11) 超声波外夹流量计
|
|
|
+-- pressure_gauge(12) 压力计
|
|
|
+-- leak_monitor(14) 漏失在线监测仪
|
|
|
+-- 旧脚本按已不存在的 ws_flow/ws_pressure/ws_leak 取类型(执行到一半即中断),
|
|
|
+-- 或写入的报警引用了并不存在的设备,导致:运行监测三页空列表、设备台账类型错位、
|
|
|
+-- 报警台账只剩少量能对上设备的记录。本脚本不新增任何设备类型,一律按 type_id + parent_type_id 取现有类型 id。
|
|
|
+--
|
|
|
+-- 用法与安全边界:
|
|
|
+-- 1. 幂等,可重复执行;只写入 wrb- 前缀的测试数据与设备台账,不修改表结构、不删其它系统设备。
|
|
|
+-- 2. 执行前请先导出快照:equipment_base / equipment_status / alarm_data / work_order /
|
|
|
+-- alarm_audit / warning_threshold / radar_data / telemetry_data / firefighting_pressure / noise_info。
|
|
|
+-- 3. 本脚本只删除带测试前缀的失效供水测试设备(WRB-EQ-* / WS-TEST-EQ-* / T6-* / TEST-* /
|
|
|
+-- Z-TEST-*),以及 equipment_type_id 已指向不存在类型的脏数据设备;不带测试前缀的
|
|
|
+-- 供水设备一律保留。删除清单可在执行前快照中追溯。
|
|
|
+-- 4. 非供水设备按类型归位而非删除:燃气→3,排水→2,窨井→4。
|
|
|
+--
|
|
|
+-- 执行后可对照的口径(本轮已在库中复算):
|
|
|
+-- 设备:供水设备 15 台(流量 6 / 压力 5 / 漏失 4),全部挂在真实子类型 11/12/14
|
|
|
+-- 运行监测:流量 6 台、压力 5 台、漏失 4 台均有最新监测值
|
|
|
+-- 报警流水:16 条(一级 4 / 二级 5 / 三级 3 / 四级 4;流量预警 7 / 压力预警 5 / 漏失预警 4)
|
|
|
+-- 展示状态:待审核 7 / 已转工单 7 / 已解除 2
|
|
|
+-- (展示状态按最新后端规则推导:关联工单仅“已取消(7)”回落到报警事实,
|
|
|
+-- “已结案(5)”仍计为已转工单;唯一性判定则按终态 5/7 放行)
|
|
|
+-- 工单:8 张,状态 0..7 各一张
|
|
|
+-- 计数条:全部 8 / 待处理 2 / 处理中 3 / 待验收 1 / 已完成 2
|
|
|
+-- 报警审核待办队列(展示状态=待审核):7 条
|
|
|
+-- ============================================================
|
|
|
+
|
|
|
+-- ------------------------------------------------------------
|
|
|
+-- 0. 前置断言:真实供水监测子类型必须存在(不新增类型)
|
|
|
+-- ------------------------------------------------------------
|
|
|
+DO $$
|
|
|
+DECLARE
|
|
|
+ v_flow varchar(64);
|
|
|
+ v_pressure varchar(64);
|
|
|
+ v_leak varchar(64);
|
|
|
+BEGIN
|
|
|
+ SELECT id INTO v_flow FROM app_user.equipment_type WHERE type_id = 'ultrasonic_flowmeter' AND parent_type_id = '1' LIMIT 1;
|
|
|
+ SELECT id INTO v_pressure FROM app_user.equipment_type WHERE type_id = 'pressure_gauge' AND parent_type_id = '1' LIMIT 1;
|
|
|
+ SELECT id INTO v_leak FROM app_user.equipment_type WHERE type_id = 'leak_monitor' AND parent_type_id = '1' LIMIT 1;
|
|
|
+ IF v_flow IS NULL OR v_pressure IS NULL OR v_leak IS NULL THEN
|
|
|
+ RAISE EXCEPTION '供水监测子类型缺失:需要 ultrasonic_flowmeter / pressure_gauge / leak_monitor 且 parent_type_id=1;本脚本不新增设备类型';
|
|
|
+ END IF;
|
|
|
+END $$;
|
|
|
+
|
|
|
+-- ------------------------------------------------------------
|
|
|
+-- 1. 非供水设备归位:燃气→3、排水→2、窨井→4(不删除)
|
|
|
+-- ------------------------------------------------------------
|
|
|
+UPDATE app_user.equipment_base SET equipment_type_id = '3', update_time = now()
|
|
|
+ WHERE equipment_id IN ('TEST-STAT-IND-E-GAS',
|
|
|
+ 'c586610c5e77938c59df57dfdf64e1e8',
|
|
|
+ '18f1adc653d1b051c7460aeeb567dcc4',
|
|
|
+ '1649ee4fe3aeb2e83f80ddfac94a893b',
|
|
|
+ 'T6-ABN-TEST-EQ-GAS-EXCLUDED')
|
|
|
+ AND equipment_type_id <> '3';
|
|
|
+
|
|
|
+UPDATE app_user.equipment_base SET equipment_type_id = '2', update_time = now()
|
|
|
+ WHERE equipment_id IN ('TEST-STAT-IND-E-DRAIN', 'TEST-WS-DEV-001', 'TEST-WS-DEV-002')
|
|
|
+ AND equipment_type_id <> '2';
|
|
|
+
|
|
|
+UPDATE app_user.equipment_base SET equipment_type_id = '4', update_time = now()
|
|
|
+ WHERE equipment_id IN ('3b3bccd846af495cf99db762b312a059', 'dfbb32ef87a74fc353707c060c94f01c')
|
|
|
+ AND equipment_type_id <> '4';
|
|
|
+
|
|
|
+-- ------------------------------------------------------------
|
|
|
+-- 2. 圈定待删除的失效供水测试设备(含死引用脏数据)
|
|
|
+-- ------------------------------------------------------------
|
|
|
+DROP TABLE IF EXISTS wsr_deleted_devices;
|
|
|
+CREATE TEMP TABLE wsr_deleted_devices (equipment_id varchar(64), equipment_code varchar(64));
|
|
|
+
|
|
|
+INSERT INTO wsr_deleted_devices (equipment_id, equipment_code)
|
|
|
+SELECT equipment_id, equipment_code
|
|
|
+ FROM app_user.equipment_base
|
|
|
+ WHERE (equipment_type_id IN (SELECT id FROM app_user.equipment_type WHERE parent_type_id = '1')
|
|
|
+ AND (equipment_id LIKE 'WRB-EQ-%'
|
|
|
+ OR equipment_id LIKE 'WS-TEST-EQ-%'
|
|
|
+ OR equipment_id LIKE 'T6-%'
|
|
|
+ OR equipment_id LIKE 'TEST-%'
|
|
|
+ OR equipment_id LIKE 'Z-TEST-%'))
|
|
|
+ OR equipment_id IN ('WS-TEST-EQ-FLOW-004', 'WS-TEST-EQ-LEAKAGE')
|
|
|
+ OR equipment_id IN ('4417f88149637b52ed804c0590775830',
|
|
|
+ 'ad5e086344b5e33c670f0e2e6ca3b42c',
|
|
|
+ 'a54cf5adf4b74bfbda7c6a401892c10c',
|
|
|
+ 'f2e6f710375b55ed47c341f72971fb37',
|
|
|
+ 'ca86bcdb1bf090a84cc3bca5a3852b14',
|
|
|
+ '310d7b467b29ce572c22ae555fd7bc70',
|
|
|
+ 'e1df0a29246c351cee6fdacd26211950',
|
|
|
+ '1168a88f61954895916932409dd2c692',
|
|
|
+ '3f70e8259b634705e271e524f225347b');
|
|
|
+
|
|
|
+-- ------------------------------------------------------------
|
|
|
+-- 3. 先清从属数据(外键与业务引用),再删设备
|
|
|
+-- ------------------------------------------------------------
|
|
|
+DELETE FROM app_user.alarm_audit
|
|
|
+ WHERE alarm_id IN (SELECT id FROM app_user.alarm_data
|
|
|
+ WHERE device_code IN (SELECT equipment_code FROM wsr_deleted_devices));
|
|
|
+
|
|
|
+DELETE FROM app_user.work_order_log
|
|
|
+ WHERE order_id IN (SELECT order_id FROM app_user.work_order
|
|
|
+ WHERE device_id IN (SELECT equipment_id FROM wsr_deleted_devices));
|
|
|
+
|
|
|
+DELETE FROM app_user.work_order
|
|
|
+ WHERE device_id IN (SELECT equipment_id FROM wsr_deleted_devices)
|
|
|
+ OR device_code IN (SELECT equipment_code FROM wsr_deleted_devices);
|
|
|
+
|
|
|
+DELETE FROM app_user.alarm_data
|
|
|
+ WHERE device_code IN (SELECT equipment_code FROM wsr_deleted_devices);
|
|
|
+
|
|
|
+DELETE FROM app_user.warning_threshold
|
|
|
+ WHERE device_code IN (SELECT equipment_code FROM wsr_deleted_devices);
|
|
|
+
|
|
|
+DELETE FROM app_user.radar_data WHERE device_code IN (SELECT equipment_code FROM wsr_deleted_devices);
|
|
|
+DELETE FROM app_user.telemetry_data WHERE device_code IN (SELECT equipment_code FROM wsr_deleted_devices);
|
|
|
+DELETE FROM app_user.firefighting_pressure WHERE telemetering_station IN (SELECT equipment_code FROM wsr_deleted_devices);
|
|
|
+DELETE FROM app_user.noise_info WHERE encode IN (SELECT equipment_code FROM wsr_deleted_devices);
|
|
|
+DELETE FROM app_user.equipment_status WHERE equipment_id IN (SELECT equipment_id FROM wsr_deleted_devices);
|
|
|
+DELETE FROM app_user.equipment_maintain WHERE equipment_id IN (SELECT equipment_id FROM wsr_deleted_devices);
|
|
|
+DELETE FROM app_user.equipment_point_rel WHERE equipment_id IN (SELECT equipment_id FROM wsr_deleted_devices);
|
|
|
+DELETE FROM app_user.equipment_test WHERE equipment_id IN (SELECT equipment_id FROM wsr_deleted_devices);
|
|
|
+DELETE FROM app_user.equipment_base WHERE equipment_id IN (SELECT equipment_id FROM wsr_deleted_devices);
|
|
|
+
|
|
|
+-- ------------------------------------------------------------
|
|
|
+-- 4. 清掉被本脚本取代的报警/工单/审核/阈值测试数据
|
|
|
+-- ------------------------------------------------------------
|
|
|
+DELETE FROM app_user.alarm_audit
|
|
|
+ WHERE alarm_id LIKE 't45-alarm-%' OR alarm_id LIKE 't46-alarm-%' OR alarm_id LIKE 'wrb-alarm-%'
|
|
|
+ OR alarm_id IN ('test-alarm-004', 'test-alarm-005', 'test-alarm-006', 'test-alarm-007');
|
|
|
+
|
|
|
+DELETE FROM app_user.work_order_log
|
|
|
+ WHERE order_id IN (SELECT order_id FROM app_user.work_order
|
|
|
+ WHERE order_no LIKE 'T45-WO-%' OR order_no LIKE 'T46-WO-%' OR order_no LIKE 'WRB-WO-%'
|
|
|
+ OR alarm_id LIKE 't45-alarm-%' OR alarm_id LIKE 't46-alarm-%' OR alarm_id LIKE 'wrb-alarm-%');
|
|
|
+
|
|
|
+DELETE FROM app_user.work_order
|
|
|
+ WHERE order_no LIKE 'T45-WO-%' OR order_no LIKE 'T46-WO-%' OR order_no LIKE 'WRB-WO-%'
|
|
|
+ OR alarm_id LIKE 't45-alarm-%' OR alarm_id LIKE 't46-alarm-%' OR alarm_id LIKE 'wrb-alarm-%';
|
|
|
+
|
|
|
+DELETE FROM app_user.alarm_data
|
|
|
+ WHERE id LIKE 't45-alarm-%' OR id LIKE 't46-alarm-%' OR id LIKE 'wrb-alarm-%'
|
|
|
+ OR id IN ('test-alarm-004', 'test-alarm-005', 'test-alarm-006', 'test-alarm-007');
|
|
|
+
|
|
|
+DELETE FROM app_user.warning_threshold
|
|
|
+ WHERE id LIKE 't45-thr-%' OR id LIKE 't46-thr-%' OR id LIKE 'wrb-thr-%' OR device_code = 'TEST-PR-001';
|
|
|
+
|
|
|
+-- ------------------------------------------------------------
|
|
|
+-- 5. 供水监测设备(流量 6 / 压力 5 / 漏失 4,全部挂真实子类型)
|
|
|
+-- ------------------------------------------------------------
|
|
|
+INSERT INTO app_user.equipment_base
|
|
|
+ (equipment_id, equipment_code, equipment_name, equipment_model, equipment_type_id,
|
|
|
+ longitude, latitude, equipment_location, maintainer, maintainer_phone, ownership_unit,
|
|
|
+ remark, create_time, update_time, del_flag, district)
|
|
|
+VALUES
|
|
|
+ ('WRB-EQ-FL-01', 'CN-GS-202609160201', '城南主轴流量监测点', 'WRB-FL-1',
|
|
|
+ (SELECT id FROM app_user.equipment_type WHERE type_id = 'ultrasonic_flowmeter' AND parent_type_id = '1' LIMIT 1),
|
|
|
+ 113.28100000, 23.12100000, '城南大道201号', '张巡维', '13800000301', '市供水公司',
|
|
|
+ '#56统一重建-流量监测', now(), now(), '0', '城南'),
|
|
|
+ ('WRB-EQ-FL-02', 'CB-GS-202609160202', '城北出厂流量监测点', 'WRB-FL-2',
|
|
|
+ (SELECT id FROM app_user.equipment_type WHERE type_id = 'ultrasonic_flowmeter' AND parent_type_id = '1' LIMIT 1),
|
|
|
+ 113.31200000, 23.17200000, '城北大道202号', '李巡维', '13800000302', '市供水公司',
|
|
|
+ '#56统一重建-流量监测', now(), now(), '0', '城北'),
|
|
|
+ ('WRB-EQ-FL-03', 'TC-GS-202609160203', '太常厂区流量监测点', 'WRB-FL-3',
|
|
|
+ (SELECT id FROM app_user.equipment_type WHERE type_id = 'ultrasonic_flowmeter' AND parent_type_id = '1' LIMIT 1),
|
|
|
+ 113.25100000, 23.09100000, '太常路203号', '王巡维', '13800000303', '市供水公司',
|
|
|
+ '#56统一重建-流量监测', now(), now(), '0', '太常'),
|
|
|
+ ('WRB-EQ-FL-04', 'CN-GS-202609160204', '城南支线流量监测点', 'WRB-FL-4',
|
|
|
+ (SELECT id FROM app_user.equipment_type WHERE type_id = 'ultrasonic_flowmeter' AND parent_type_id = '1' LIMIT 1),
|
|
|
+ 113.28600000, 23.12600000, '城南大道204号', '赵巡维', '13800000304', '市供水公司',
|
|
|
+ '#56统一重建-流量监测', now(), now(), '0', '城南'),
|
|
|
+ ('WRB-EQ-FL-05', 'CB-GS-202609160205', '城北支线流量监测点', 'WRB-FL-5',
|
|
|
+ (SELECT id FROM app_user.equipment_type WHERE type_id = 'ultrasonic_flowmeter' AND parent_type_id = '1' LIMIT 1),
|
|
|
+ 113.31600000, 23.17600000, '城北大道205号', '孙巡维', '13800000305', '市供水公司',
|
|
|
+ '#56统一重建-流量监测', now(), now(), '0', '城北'),
|
|
|
+ ('WRB-EQ-FL-06', 'TC-GS-202609160206', '太常支线流量监测点', 'WRB-FL-6',
|
|
|
+ (SELECT id FROM app_user.equipment_type WHERE type_id = 'ultrasonic_flowmeter' AND parent_type_id = '1' LIMIT 1),
|
|
|
+ 113.25600000, 23.09600000, '太常路206号', '周巡维', '13800000306', '市供水公司',
|
|
|
+ '#56统一重建-无设备状态记录(报警状态回退分支)', now(), now(), '0', '太常'),
|
|
|
+ ('WRB-EQ-PR-01', 'CN-GS-202609160211', '城南加压站压力监测点', 'WRB-PR-1',
|
|
|
+ (SELECT id FROM app_user.equipment_type WHERE type_id = 'pressure_gauge' AND parent_type_id = '1' LIMIT 1),
|
|
|
+ 113.28200000, 23.12200000, '城南大道211号', '张巡维', '13800000311', '市供水公司',
|
|
|
+ '#56统一重建-压力监测', now(), now(), '0', '城南'),
|
|
|
+ ('WRB-EQ-PR-02', 'CB-GS-202609160212', '城北末梢压力监测点', 'WRB-PR-2',
|
|
|
+ (SELECT id FROM app_user.equipment_type WHERE type_id = 'pressure_gauge' AND parent_type_id = '1' LIMIT 1),
|
|
|
+ 113.31300000, 23.17300000, '城北大道212号', '李巡维', '13800000312', '市供水公司',
|
|
|
+ '#56统一重建-压力监测', now(), now(), '0', '城北'),
|
|
|
+ ('WRB-EQ-PR-03', 'TC-GS-202609160213', '太常主管压力监测点', 'WRB-PR-3',
|
|
|
+ (SELECT id FROM app_user.equipment_type WHERE type_id = 'pressure_gauge' AND parent_type_id = '1' LIMIT 1),
|
|
|
+ 113.25200000, 23.09200000, '太常路213号', '王巡维', '13800000313', '市供水公司',
|
|
|
+ '#56统一重建-压力监测', now(), now(), '0', '太常'),
|
|
|
+ ('WRB-EQ-PR-04', 'CN-GS-202609160214', '城南小区入口压力监测点', 'WRB-PR-4',
|
|
|
+ (SELECT id FROM app_user.equipment_type WHERE type_id = 'pressure_gauge' AND parent_type_id = '1' LIMIT 1),
|
|
|
+ 113.28700000, 23.12700000, '城南大道214号', '赵巡维', '13800000314', '市供水公司',
|
|
|
+ '#56统一重建-压力监测', now(), now(), '0', '城南'),
|
|
|
+ ('WRB-EQ-PR-05', 'CB-GS-202609160215', '城北高位水池压力监测点', 'WRB-PR-5',
|
|
|
+ (SELECT id FROM app_user.equipment_type WHERE type_id = 'pressure_gauge' AND parent_type_id = '1' LIMIT 1),
|
|
|
+ 113.31700000, 23.17700000, '城北大道215号', '孙巡维', '13800000315', '市供水公司',
|
|
|
+ '#56统一重建-压力监测', now(), now(), '0', '城北'),
|
|
|
+ ('WRB-EQ-LK-01', 'CN-GS-202609160221', '城南漏失声波监测点', 'WRB-LK-1',
|
|
|
+ (SELECT id FROM app_user.equipment_type WHERE type_id = 'leak_monitor' AND parent_type_id = '1' LIMIT 1),
|
|
|
+ 113.28300000, 23.12300000, '城南大道221号', '张巡维', '13800000321', '市供水公司',
|
|
|
+ '#56统一重建-漏失监测', now(), now(), '0', '城南'),
|
|
|
+ ('WRB-EQ-LK-02', 'CB-GS-202609160222', '城北漏失声波监测点', 'WRB-LK-2',
|
|
|
+ (SELECT id FROM app_user.equipment_type WHERE type_id = 'leak_monitor' AND parent_type_id = '1' LIMIT 1),
|
|
|
+ 113.31400000, 23.17400000, '城北大道222号', '李巡维', '13800000322', '市供水公司',
|
|
|
+ '#56统一重建-漏失监测', now(), now(), '0', '城北'),
|
|
|
+ ('WRB-EQ-LK-03', 'TC-GS-202609160223', '太常漏失声波监测点', 'WRB-LK-3',
|
|
|
+ (SELECT id FROM app_user.equipment_type WHERE type_id = 'leak_monitor' AND parent_type_id = '1' LIMIT 1),
|
|
|
+ 113.25300000, 23.09300000, '太常路223号', '王巡维', '13800000323', '市供水公司',
|
|
|
+ '#56统一重建-漏失监测', now(), now(), '0', '太常'),
|
|
|
+ ('WRB-EQ-LK-04', 'CN-GS-202609160224', '城南老城区漏失监测点', 'WRB-LK-4',
|
|
|
+ (SELECT id FROM app_user.equipment_type WHERE type_id = 'leak_monitor' AND parent_type_id = '1' LIMIT 1),
|
|
|
+ 113.28800000, 23.12800000, '城南大道224号', '赵巡维', '13800000324', '市供水公司',
|
|
|
+ '#56统一重建-漏失监测', now(), now(), '0', '城南');
|
|
|
+
|
|
|
+-- ------------------------------------------------------------
|
|
|
+-- 6. 设备状态(WRB-EQ-FL-06 刻意缺失,用于验证报警状态回退分支)
|
|
|
+-- ------------------------------------------------------------
|
|
|
+INSERT INTO app_user.equipment_status
|
|
|
+ (equipment_id, current_status, alarm_status, online_status,
|
|
|
+ installation_addr, status_update_time, create_time, del_flag)
|
|
|
+VALUES
|
|
|
+ ('WRB-EQ-FL-01', 1, 1, 1, '城南大道201号', now() - interval '20 minutes', now() - interval '20 minutes', '0'),
|
|
|
+ ('WRB-EQ-FL-02', 1, 0, 1, '城北大道202号', now() - interval '30 minutes', now() - interval '30 minutes', '0'),
|
|
|
+ ('WRB-EQ-FL-03', 1, 0, 1, '太常路203号', now() - interval '40 minutes', now() - interval '40 minutes', '0'),
|
|
|
+ ('WRB-EQ-FL-04', 1, 0, 1, '城南大道204号', now() - interval '1 hour', now() - interval '1 hour', '0'),
|
|
|
+ ('WRB-EQ-FL-05', 1, 0, 0, '城北大道205号', now() - interval '2 hours', now() - interval '2 hours', '0'),
|
|
|
+ ('WRB-EQ-PR-01', 1, 1, 1, '城南大道211号', now() - interval '20 minutes', now() - interval '20 minutes', '0'),
|
|
|
+ ('WRB-EQ-PR-02', 1, 0, 1, '城北大道212号', now() - interval '30 minutes', now() - interval '30 minutes', '0'),
|
|
|
+ ('WRB-EQ-PR-03', 1, 0, 1, '太常路213号', now() - interval '40 minutes', now() - interval '40 minutes', '0'),
|
|
|
+ ('WRB-EQ-PR-04', 1, 0, 1, '城南大道214号', now() - interval '1 hour', now() - interval '1 hour', '0'),
|
|
|
+ ('WRB-EQ-PR-05', 1, 0, 1, '城北大道215号', now() - interval '2 hours', now() - interval '2 hours', '0'),
|
|
|
+ ('WRB-EQ-LK-01', 1, 1, 1, '城南大道221号', now() - interval '20 minutes', now() - interval '20 minutes', '0'),
|
|
|
+ ('WRB-EQ-LK-02', 1, 0, 1, '城北大道222号', now() - interval '30 minutes', now() - interval '30 minutes', '0'),
|
|
|
+ ('WRB-EQ-LK-03', 1, 0, 1, '太常路223号', now() - interval '40 minutes', now() - interval '40 minutes', '0'),
|
|
|
+ ('WRB-EQ-LK-04', 1, 0, 1, '城南大道224号', now() - interval '1 hour', now() - interval '1 hour', '0');
|
|
|
+
|
|
|
+-- ------------------------------------------------------------
|
|
|
+-- 7. 阈值(含分时阈值与下限为 0 的边界样本)
|
|
|
+-- ------------------------------------------------------------
|
|
|
+INSERT INTO app_user.warning_threshold
|
|
|
+ (id, device_code, warning_type, warning_code, min_value, max_value,
|
|
|
+ period_start, period_end, remark, create_time, update_time)
|
|
|
+VALUES
|
|
|
+ ('wrb-thr-01', 'CN-GS-202609160211', '压力预警', 'WRB-WARN-PRESSURE', 0.40, 0.80, NULL, NULL, '#56测试-全天阈值', now(), now()),
|
|
|
+ ('wrb-thr-02', 'CB-GS-202609160212', '压力预警', 'WRB-WARN-PRESSURE', 0.35, 0.85, NULL, NULL, '#56测试-全天阈值', now(), now()),
|
|
|
+ ('wrb-thr-03', 'CN-GS-202609160201', '流量预警', 'WRB-WARN-FLOW', 10.00, 100.00, '08:00', '20:00', '#56测试-分时阈值(08:00-20:00)', now(), now()),
|
|
|
+ ('wrb-thr-04', 'CB-GS-202609160202', '流量预警', 'WRB-WARN-FLOW', 8.00, 120.00, NULL, NULL, '#56测试-全天阈值', now(), now()),
|
|
|
+ ('wrb-thr-05', 'CN-GS-202609160221', '漏失预警', 'WRB-WARN-LEAK', 0.00, 5.00, NULL, NULL, '#56测试-阈值下限为0的边界', now(), now()),
|
|
|
+ ('wrb-thr-06', 'CB-GS-202609160222', '漏失预警', 'WRB-WARN-LEAK', 0.00, 6.00, NULL, NULL, '#56测试-全天阈值', now(), now());
|
|
|
+
|
|
|
+-- ------------------------------------------------------------
|
|
|
+-- 8. 运行监测测量值(流量走雷达/遥测,压力走消防压力,漏失走噪声)
|
|
|
+-- ------------------------------------------------------------
|
|
|
+INSERT INTO app_user.radar_data
|
|
|
+ (id, system_identifier, device_code, meter1_instant_flow, flow_speed, create_time)
|
|
|
+VALUES
|
|
|
+ ('wrb-radar-0101', 'WRB-SYSTEM', 'CN-GS-202609160201', '62', '1.85', now() - interval '1 hour'),
|
|
|
+ ('wrb-radar-0102', 'WRB-SYSTEM', 'CN-GS-202609160201', '58', '1.75', now() - interval '4 hours'),
|
|
|
+ ('wrb-radar-0103', 'WRB-SYSTEM', 'CN-GS-202609160201', '55', '1.70', now() - interval '8 hours'),
|
|
|
+ ('wrb-radar-0301', 'WRB-SYSTEM', 'TC-GS-202609160203', '48', '1.45', now() - interval '2 hours'),
|
|
|
+ ('wrb-radar-0302', 'WRB-SYSTEM', 'TC-GS-202609160203', '45', '1.40', now() - interval '6 hours'),
|
|
|
+ ('wrb-radar-0303', 'WRB-SYSTEM', 'TC-GS-202609160203', '42', '1.30', now() - interval '10 hours'),
|
|
|
+ ('wrb-radar-0501', 'WRB-SYSTEM', 'CB-GS-202609160205', '36', '1.10', now() - interval '3 hours'),
|
|
|
+ ('wrb-radar-0502', 'WRB-SYSTEM', 'CB-GS-202609160205', '33', '1.05', now() - interval '7 hours'),
|
|
|
+ ('wrb-radar-0503', 'WRB-SYSTEM', 'CB-GS-202609160205', '30', '1.00', now() - interval '12 hours');
|
|
|
+
|
|
|
+INSERT INTO app_user.telemetry_data
|
|
|
+ (id, system_identifier, device_code, meter1_instant_flow, meter1_positive_total,
|
|
|
+ flow_speed, temperature, create_time)
|
|
|
+VALUES
|
|
|
+ ('wrb-telemetry-0201', 'WRB-SYSTEM', 'CB-GS-202609160202', '74', '20481', '2.10', '24.60', now() - interval '1 hour'),
|
|
|
+ ('wrb-telemetry-0202', 'WRB-SYSTEM', 'CB-GS-202609160202', '70', '20390', '2.00', '24.40', now() - interval '5 hours'),
|
|
|
+ ('wrb-telemetry-0203', 'WRB-SYSTEM', 'CB-GS-202609160202', '68', '20300', '1.95', '24.10', now() - interval '9 hours'),
|
|
|
+ ('wrb-telemetry-0401', 'WRB-SYSTEM', 'CN-GS-202609160204', '41', '15260', '1.25', '24.20', now() - interval '2 hours'),
|
|
|
+ ('wrb-telemetry-0402', 'WRB-SYSTEM', 'CN-GS-202609160204', '39', '15180', '1.20', '24.00', now() - interval '6 hours'),
|
|
|
+ ('wrb-telemetry-0403', 'WRB-SYSTEM', 'CN-GS-202609160204', '37', '15100', '1.15', '23.80', now() - interval '11 hours'),
|
|
|
+ ('wrb-telemetry-0601', 'WRB-SYSTEM', 'TC-GS-202609160206', '27', '12040', '0.95', '23.90', now() - interval '3 hours'),
|
|
|
+ ('wrb-telemetry-0602', 'WRB-SYSTEM', 'TC-GS-202609160206', '25', '11990', '0.90', '23.70', now() - interval '7 hours'),
|
|
|
+ ('wrb-telemetry-0603', 'WRB-SYSTEM', 'TC-GS-202609160206', '23', '11940', '0.85', '23.50', now() - interval '13 hours');
|
|
|
+
|
|
|
+INSERT INTO app_user.firefighting_pressure
|
|
|
+ (id, central_station, telemetering_station, sending_time, observed_time,
|
|
|
+ pressure_value, create_time)
|
|
|
+VALUES
|
|
|
+ ('wrb-pressure-1101', 'WRB-CENTER', 'CN-GS-202609160211', now() - interval '1 hour', now() - interval '1 hour', 0.95, now() - interval '1 hour'),
|
|
|
+ ('wrb-pressure-1102', 'WRB-CENTER', 'CN-GS-202609160211', now() - interval '4 hours', now() - interval '4 hours', 0.88, now() - interval '4 hours'),
|
|
|
+ ('wrb-pressure-1103', 'WRB-CENTER', 'CN-GS-202609160211', now() - interval '9 hours', now() - interval '9 hours', 0.82, now() - interval '9 hours'),
|
|
|
+ ('wrb-pressure-1201', 'WRB-CENTER', 'CB-GS-202609160212', now() - interval '1 hour', now() - interval '1 hour', 0.30, now() - interval '1 hour'),
|
|
|
+ ('wrb-pressure-1202', 'WRB-CENTER', 'CB-GS-202609160212', now() - interval '5 hours', now() - interval '5 hours', 0.36, now() - interval '5 hours'),
|
|
|
+ ('wrb-pressure-1203', 'WRB-CENTER', 'CB-GS-202609160212', now() - interval '10 hours', now() - interval '10 hours', 0.42, now() - interval '10 hours'),
|
|
|
+ ('wrb-pressure-1301', 'WRB-CENTER', 'TC-GS-202609160213', now() - interval '2 hours', now() - interval '2 hours', 0.90, now() - interval '2 hours'),
|
|
|
+ ('wrb-pressure-1302', 'WRB-CENTER', 'TC-GS-202609160213', now() - interval '6 hours', now() - interval '6 hours', 0.86, now() - interval '6 hours'),
|
|
|
+ ('wrb-pressure-1303', 'WRB-CENTER', 'TC-GS-202609160213', now() - interval '12 hours', now() - interval '12 hours', 0.84, now() - interval '12 hours'),
|
|
|
+ ('wrb-pressure-1401', 'WRB-CENTER', 'CN-GS-202609160214', now() - interval '2 hours', now() - interval '2 hours', 0.62, now() - interval '2 hours'),
|
|
|
+ ('wrb-pressure-1402', 'WRB-CENTER', 'CN-GS-202609160214', now() - interval '7 hours', now() - interval '7 hours', 0.60, now() - interval '7 hours'),
|
|
|
+ ('wrb-pressure-1403', 'WRB-CENTER', 'CN-GS-202609160214', now() - interval '13 hours', now() - interval '13 hours', 0.58, now() - interval '13 hours'),
|
|
|
+ ('wrb-pressure-1501', 'WRB-CENTER', 'CB-GS-202609160215', now() - interval '3 hours', now() - interval '3 hours', 0.45, now() - interval '3 hours'),
|
|
|
+ ('wrb-pressure-1502', 'WRB-CENTER', 'CB-GS-202609160215', now() - interval '8 hours', now() - interval '8 hours', 0.44, now() - interval '8 hours'),
|
|
|
+ ('wrb-pressure-1503', 'WRB-CENTER', 'CB-GS-202609160215', now() - interval '14 hours', now() - interval '14 hours', 0.43, now() - interval '14 hours');
|
|
|
+
|
|
|
+INSERT INTO app_user.noise_info
|
|
|
+ (encode, power, gain, rms, center_frequency, ts, create_time, update_time)
|
|
|
+VALUES
|
|
|
+ ('CN-GS-202609160221', 12.00, 2.00, 120, 800.00, to_char(now() - interval '1 hour', 'YYYY-MM-DD HH24:MI:SS'), now() - interval '1 hour', now() - interval '1 hour'),
|
|
|
+ ('CN-GS-202609160221', 9.00, 2.00, 100, 780.00, to_char(now() - interval '5 hours', 'YYYY-MM-DD HH24:MI:SS'), now() - interval '5 hours', now() - interval '5 hours'),
|
|
|
+ ('CN-GS-202609160221', 6.00, 1.50, 85, 760.00, to_char(now() - interval '10 hours', 'YYYY-MM-DD HH24:MI:SS'), now() - interval '10 hours', now() - interval '10 hours'),
|
|
|
+ ('CB-GS-202609160222', 15.00, 2.50, 125, 820.00, to_char(now() - interval '2 hours', 'YYYY-MM-DD HH24:MI:SS'), now() - interval '2 hours', now() - interval '2 hours'),
|
|
|
+ ('CB-GS-202609160222', 11.00, 2.00, 110, 800.00, to_char(now() - interval '6 hours', 'YYYY-MM-DD HH24:MI:SS'), now() - interval '6 hours', now() - interval '6 hours'),
|
|
|
+ ('CB-GS-202609160222', 8.00, 1.50, 95, 770.00, to_char(now() - interval '12 hours', 'YYYY-MM-DD HH24:MI:SS'), now() - interval '12 hours', now() - interval '12 hours'),
|
|
|
+ ('TC-GS-202609160223', 10.00, 2.00, 105, 790.00, to_char(now() - interval '3 hours', 'YYYY-MM-DD HH24:MI:SS'), now() - interval '3 hours', now() - interval '3 hours'),
|
|
|
+ ('TC-GS-202609160223', 7.00, 1.50, 90, 765.00, to_char(now() - interval '8 hours', 'YYYY-MM-DD HH24:MI:SS'), now() - interval '8 hours', now() - interval '8 hours'),
|
|
|
+ ('TC-GS-202609160223', 4.00, 1.00, 70, 700.00, to_char(now() - interval '15 hours', 'YYYY-MM-DD HH24:MI:SS'), now() - interval '15 hours', now() - interval '15 hours'),
|
|
|
+ ('CN-GS-202609160224', 13.00, 2.20, 118, 810.00, to_char(now() - interval '4 hours', 'YYYY-MM-DD HH24:MI:SS'), now() - interval '4 hours', now() - interval '4 hours'),
|
|
|
+ ('CN-GS-202609160224', 9.50, 2.00, 100, 785.00, to_char(now() - interval '9 hours', 'YYYY-MM-DD HH24:MI:SS'), now() - interval '9 hours', now() - interval '9 hours'),
|
|
|
+ ('CN-GS-202609160224', 5.50, 1.20, 80, 720.00, to_char(now() - interval '16 hours', 'YYYY-MM-DD HH24:MI:SS'), now() - interval '16 hours', now() - interval '16 hours');
|
|
|
+
|
|
|
+-- ------------------------------------------------------------
|
|
|
+-- 9. 报警流水(16 条:一级4/二级5/三级3/四级4;待审核8/已转工单6/已解除2)
|
|
|
+-- ------------------------------------------------------------
|
|
|
+INSERT INTO app_user.alarm_data
|
|
|
+ (id, device_name, device_code, device_type, warning_type, warning_code,
|
|
|
+ actual_value, min_value, max_value, alarm_status, alarm_level, deviation_ratio,
|
|
|
+ alarm_time, handle_time, handle_user, handle_remark, remark, create_time, update_time)
|
|
|
+VALUES
|
|
|
+ ('wrb-alarm-01', '城南主轴流量监测点', 'CN-GS-202609160201', '流量监测', '流量预警', 'WRB-WARN-FLOW',
|
|
|
+ 132.00, 10.00, 100.00, 0, 1, 32.00, now() - interval '35 minutes', NULL, NULL, NULL,
|
|
|
+ '#56已转工单-WO-01 待派单', now(), now()),
|
|
|
+ ('wrb-alarm-02', '城北出厂流量监测点', 'CB-GS-202609160202', '流量监测', '流量预警', 'WRB-WARN-FLOW',
|
|
|
+ 128.00, 8.00, 120.00, 0, 2, 6.67, now() - interval '3 hours', NULL, NULL, NULL,
|
|
|
+ '#56已转工单-WO-02 待接单', now(), now()),
|
|
|
+ ('wrb-alarm-03', '太常厂区流量监测点', 'TC-GS-202609160203', '流量监测', '流量预警', 'WRB-WARN-FLOW',
|
|
|
+ 145.00, 10.00, 100.00, 0, 3, 45.00, now() - interval '1 day 2 hours', NULL, NULL, NULL,
|
|
|
+ '#56已转工单-WO-03 已接单', now(), now()),
|
|
|
+ ('wrb-alarm-04', '城南支线流量监测点', 'CN-GS-202609160204', '流量监测', '流量预警', 'WRB-WARN-FLOW',
|
|
|
+ 118.00, 10.00, 100.00, 0, 4, 18.00, now() - interval '2 days', NULL, NULL, NULL,
|
|
|
+ '#56已转工单-WO-04 处理中', now(), now()),
|
|
|
+ ('wrb-alarm-05', '城南加压站压力监测点', 'CN-GS-202609160211', '压力监测', '压力预警', 'WRB-WARN-PRESSURE',
|
|
|
+ 0.95, 0.40, 0.80, 0, 1, 18.75, now() - interval '3 days', NULL, NULL, NULL,
|
|
|
+ '#56已转工单-WO-05 待验收', now(), now()),
|
|
|
+ ('wrb-alarm-06', '城北末梢压力监测点', 'CB-GS-202609160212', '压力监测', '压力预警', 'WRB-WARN-PRESSURE',
|
|
|
+ 0.30, 0.35, 0.85, 0, 2, 14.29, now() - interval '4 days', NULL, NULL, NULL,
|
|
|
+ '#56已转工单(WO-06 已结案);终态不占用唯一性名额,可再次转工单', now(), now()),
|
|
|
+ ('wrb-alarm-07', '城南漏失声波监测点', 'CN-GS-202609160221', '漏失监测', '漏失预警', 'WRB-WARN-LEAK',
|
|
|
+ 7.20, 0.00, 5.00, 0, 3, 44.00, now() - interval '5 days', NULL, NULL, NULL,
|
|
|
+ '#56已转工单-WO-07 延期中', now(), now()),
|
|
|
+ ('wrb-alarm-08', '城北漏失声波监测点', 'CB-GS-202609160222', '漏失监测', '漏失预警', 'WRB-WARN-LEAK',
|
|
|
+ 6.10, 0.00, 6.00, 0, 4, 1.67, now() - interval '6 days', NULL, NULL, NULL,
|
|
|
+ '#56待审核(WO-08 已取消,口径回落到报警事实);终态不占用唯一性名额', now(), now()),
|
|
|
+ ('wrb-alarm-09', '太常主管压力监测点', 'TC-GS-202609160213', '压力监测', '压力预警', 'WRB-WARN-PRESSURE',
|
|
|
+ 0.28, 0.40, 0.80, 0, 1, 30.00, now() - interval '50 minutes', NULL, NULL, NULL,
|
|
|
+ '#56待审核-无工单,可直接转工单', now(), now()),
|
|
|
+ ('wrb-alarm-10', '城南小区入口压力监测点', 'CN-GS-202609160214', '压力监测', '压力预警', 'WRB-WARN-PRESSURE',
|
|
|
+ 0.22, 0.40, 0.80, 0, 3, 45.00, now() - interval '5 hours', NULL, NULL, NULL,
|
|
|
+ '#56待审核-无工单,可直接转工单', now(), now()),
|
|
|
+ ('wrb-alarm-11', '太常漏失声波监测点', 'TC-GS-202609160223', '漏失监测', '漏失预警', 'WRB-WARN-LEAK',
|
|
|
+ 9.40, 0.00, 5.00, 0, 2, 88.00, now() - interval '1 day 6 hours', NULL, NULL, NULL,
|
|
|
+ '#56待审核-无工单,可直接转工单', now(), now()),
|
|
|
+ ('wrb-alarm-12', '城北支线流量监测点', 'CB-GS-202609160205', '流量监测', '流量预警', 'WRB-WARN-FLOW',
|
|
|
+ 155.00, 8.00, 120.00, 0, 4, 29.17, now() - interval '2 days 4 hours', NULL, NULL, NULL,
|
|
|
+ '#56待审核-无工单,可直接转工单', now(), now()),
|
|
|
+ ('wrb-alarm-13', '太常支线流量监测点', 'TC-GS-202609160206', '流量监测', '流量预警', 'WRB-WARN-FLOW',
|
|
|
+ 112.00, 10.00, 100.00, 0, 2, 12.00, now() - interval '3 days 3 hours', NULL, NULL, NULL,
|
|
|
+ '#56待审核-设备无状态记录,报警状态走回退分支', now(), now()),
|
|
|
+ ('wrb-alarm-14', '城北高位水池压力监测点', 'CB-GS-202609160215', '压力监测', '压力预警', 'WRB-WARN-PRESSURE',
|
|
|
+ 0.20, 0.40, 0.80, 0, 4, 50.00, now() - interval '4 days 5 hours', NULL, NULL, NULL,
|
|
|
+ '#56已解除-误报(审核结论=2,不产生工单)', now(), now()),
|
|
|
+ ('wrb-alarm-15', '城南老城区漏失监测点', 'CN-GS-202609160224', '漏失监测', '漏失预警', 'WRB-WARN-LEAK',
|
|
|
+ 8.10, 0.00, 5.00, 1, 1, 62.00, now() - interval '6 days 2 hours',
|
|
|
+ now() - interval '6 days 1 hour', '刘昊林', '#56已解除-现场确认后人工处置', '#56已解除-报警记录已处理', now(), now()),
|
|
|
+ ('wrb-alarm-16', '城南主轴流量监测点', 'CN-GS-202609160201', '流量监测', '流量预警', 'WRB-WARN-FLOW',
|
|
|
+ 124.00, 10.00, 100.00, 0, 2, 24.00, now() - interval '90 minutes', NULL, NULL, NULL,
|
|
|
+ '#56待审核-同设备同类型已有 WO-01 未办结,转工单应被阻止', now(), now());
|
|
|
+
|
|
|
+-- ------------------------------------------------------------
|
|
|
+-- 10. 工单(0..7 各一张;device_id 必须是供水设备 equipment_id,否则审核计数条取不到)
|
|
|
+-- ------------------------------------------------------------
|
|
|
+INSERT INTO app_user.work_order
|
|
|
+ (order_no, alarm_id, device_id, device_code, order_level, order_desc, dept_id,
|
|
|
+ dispatch_user, dispatch_time, receive_user, order_status, fault_time, create_time, update_time)
|
|
|
+VALUES
|
|
|
+ ('WRB-WO-01', 'wrb-alarm-01', 'WRB-EQ-FL-01', 'CN-GS-202609160201', 0,
|
|
|
+ '#56测试工单-城南主轴流量超限待派单', 100, NULL, NULL, NULL, 0, now() - interval '35 minutes', now(), now()),
|
|
|
+ ('WRB-WO-02', 'wrb-alarm-02', 'WRB-EQ-FL-02', 'CB-GS-202609160202', 1,
|
|
|
+ '#56测试工单-城北出厂流量超限待接单', 100, 1, now() - interval '3 hours', NULL, 1, now() - interval '3 hours', now(), now()),
|
|
|
+ ('WRB-WO-03', 'wrb-alarm-03', 'WRB-EQ-FL-03', 'TC-GS-202609160203', 0,
|
|
|
+ '#56测试工单-太常厂区流量超限已接单', 100, 1, now() - interval '1 day', 2, 2, now() - interval '1 day 2 hours', now(), now()),
|
|
|
+ ('WRB-WO-04', 'wrb-alarm-04', 'WRB-EQ-FL-04', 'CN-GS-202609160204', 1,
|
|
|
+ '#56测试工单-城南支线流量超限处理中', 100, 1, now() - interval '2 days', 2, 3, now() - interval '2 days', now(), now()),
|
|
|
+ ('WRB-WO-05', 'wrb-alarm-05', 'WRB-EQ-PR-01', 'CN-GS-202609160211', 1,
|
|
|
+ '#56测试工单-城南加压站压力超限待验收', 100, 1, now() - interval '3 days', 2, 4, now() - interval '3 days', now(), now()),
|
|
|
+ ('WRB-WO-06', 'wrb-alarm-06', 'WRB-EQ-PR-02', 'CB-GS-202609160212', 0,
|
|
|
+ '#56测试工单-城北末梢压力偏低已结案', 100, 1, now() - interval '4 days', 2, 5, now() - interval '4 days', now(), now()),
|
|
|
+ ('WRB-WO-07', 'wrb-alarm-07', 'WRB-EQ-LK-01', 'CN-GS-202609160221', 1,
|
|
|
+ '#56测试工单-城南漏失延期中', 100, 1, now() - interval '5 days', 2, 6, now() - interval '5 days', now(), now()),
|
|
|
+ ('WRB-WO-08', 'wrb-alarm-08', 'WRB-EQ-LK-02', 'CB-GS-202609160222', 0,
|
|
|
+ '#56测试工单-城北漏失已取消', 100, 1, now() - interval '6 days', NULL, 7, now() - interval '6 days', now(), now());
|
|
|
+
|
|
|
+INSERT INTO app_user.work_order_log
|
|
|
+ (order_id, oper_type, oper_desc, oper_user_id, oper_user_name, oper_time)
|
|
|
+SELECT order_id, 0, '#56测试-报警审核转工单创建', 1, '调度管理员', now()
|
|
|
+ FROM app_user.work_order
|
|
|
+ WHERE order_no LIKE 'WRB-WO-%';
|
|
|
+
|
|
|
+-- ------------------------------------------------------------
|
|
|
+-- 11. 报警审核记录(含误报解除样本)
|
|
|
+-- ------------------------------------------------------------
|
|
|
+INSERT INTO app_user.alarm_audit
|
|
|
+ (alarm_id, audit_action, audit_result, audit_opinion, attach_url,
|
|
|
+ audit_user_id, audit_user_name, audit_time, create_time, update_time)
|
|
|
+VALUES
|
|
|
+ ('wrb-alarm-01', 1, 1, '#56测试审核:流量超限属实,转故障维修工单', NULL, 1, '调度管理员', now() - interval '35 minutes', now(), now()),
|
|
|
+ ('wrb-alarm-03', 1, 1, '#56测试审核:流量超限属实,转故障维修工单', NULL, 1, '调度管理员', now() - interval '1 day 2 hours', now(), now()),
|
|
|
+ ('wrb-alarm-14', 2, 2, '#56测试审核:现场核实为误报,解除报警且不生成工单',
|
|
|
+ 'https://example.com/wrb-false-alarm-evidence.jpg', 1, '调度管理员', now() - interval '4 days 5 hours', now(), now());
|
|
|
+
|
|
|
+-- ------------------------------------------------------------
|
|
|
+-- 12. 执行后自检(结果应与文件头口径一致)
|
|
|
+-- ------------------------------------------------------------
|
|
|
+SELECT '供水设备' AS item, count(*)::varchar AS value
|
|
|
+ FROM app_user.equipment_base
|
|
|
+ WHERE equipment_type_id IN (SELECT id FROM app_user.equipment_type WHERE parent_type_id = '1');
|
|
|
+SELECT '运行监测-流量' AS item, count(*)::varchar AS value
|
|
|
+ FROM app_user.equipment_base e
|
|
|
+ WHERE e.equipment_type_id = (SELECT id FROM app_user.equipment_type WHERE type_id = 'ultrasonic_flowmeter' AND parent_type_id = '1' LIMIT 1)
|
|
|
+ AND (EXISTS (SELECT 1 FROM app_user.radar_data r WHERE r.device_code = e.equipment_code)
|
|
|
+ OR EXISTS (SELECT 1 FROM app_user.telemetry_data t WHERE t.device_code = e.equipment_code))
|
|
|
+UNION ALL
|
|
|
+SELECT '运行监测-压力', count(DISTINCT e.equipment_code)::varchar
|
|
|
+ FROM app_user.equipment_base e
|
|
|
+ JOIN app_user.firefighting_pressure p ON p.telemetering_station = e.equipment_code
|
|
|
+ WHERE e.equipment_type_id = (SELECT id FROM app_user.equipment_type WHERE type_id = 'pressure_gauge' AND parent_type_id = '1' LIMIT 1)
|
|
|
+UNION ALL
|
|
|
+SELECT '运行监测-漏失', count(DISTINCT e.equipment_code)::varchar
|
|
|
+ FROM app_user.equipment_base e
|
|
|
+ JOIN app_user.noise_info n ON n.encode = e.equipment_code
|
|
|
+ WHERE e.equipment_type_id = (SELECT id FROM app_user.equipment_type WHERE type_id = 'leak_monitor' AND parent_type_id = '1' LIMIT 1);
|
|
|
+SELECT '报警-等级分布' AS item, string_agg(concat(lv::varchar, '级=', cnt::varchar), ' / ' ORDER BY lv) AS value
|
|
|
+ FROM (SELECT alarm_level lv, count(*) cnt FROM app_user.alarm_data WHERE id LIKE 'wrb-alarm-%' GROUP BY alarm_level) t;
|
|
|
+SELECT '报警-类型分布' AS item, string_agg(concat(warning_type, '=', cnt::varchar), ' / ' ORDER BY warning_type) AS value
|
|
|
+ FROM (SELECT warning_type, count(*) cnt FROM app_user.alarm_data WHERE id LIKE 'wrb-alarm-%' GROUP BY warning_type) t;
|
|
|
+SELECT '报警-展示状态' AS item, string_agg(concat(display_status, '=', cnt::varchar), ' / ' ORDER BY display_status) AS value
|
|
|
+ FROM (
|
|
|
+ SELECT CASE
|
|
|
+ WHEN EXISTS (SELECT 1 FROM app_user.work_order w
|
|
|
+ WHERE w.alarm_id = a.id AND w.order_status <> 7) THEN '已转工单'
|
|
|
+ WHEN a.alarm_status = 1
|
|
|
+ OR EXISTS (SELECT 1 FROM app_user.alarm_audit au
|
|
|
+ WHERE au.alarm_id = a.id AND au.audit_result = 2) THEN '已解除'
|
|
|
+ ELSE '待审核'
|
|
|
+ END AS display_status,
|
|
|
+ count(*) cnt
|
|
|
+ FROM app_user.alarm_data a
|
|
|
+ WHERE a.id LIKE 'wrb-alarm-%'
|
|
|
+ GROUP BY 1
|
|
|
+ ) t;
|
|
|
+SELECT '工单-状态分布' AS item, string_agg(concat(order_status::varchar, '=', cnt::varchar), ' / ' ORDER BY order_status) AS value
|
|
|
+ FROM (SELECT order_status, count(*) cnt FROM app_user.work_order WHERE order_no LIKE 'WRB-WO-%' GROUP BY order_status) t;
|
|
|
+SELECT '死引用设备' AS item, count(*)::varchar AS value
|
|
|
+ FROM app_user.equipment_base eb
|
|
|
+ WHERE eb.equipment_type_id IS NOT NULL
|
|
|
+ AND NOT EXISTS (SELECT 1 FROM app_user.equipment_type et WHERE et.id = eb.equipment_type_id);
|
|
|
+SELECT '供水设备缺测量值' AS item, count(*)::varchar AS value
|
|
|
+ FROM app_user.equipment_base e
|
|
|
+ WHERE e.equipment_type_id IN (SELECT id FROM app_user.equipment_type
|
|
|
+ WHERE parent_type_id = '1'
|
|
|
+ AND type_id IN ('ultrasonic_flowmeter', 'pressure_gauge', 'leak_monitor'))
|
|
|
+ AND NOT EXISTS (SELECT 1 FROM app_user.radar_data r WHERE r.device_code = e.equipment_code)
|
|
|
+ AND NOT EXISTS (SELECT 1 FROM app_user.telemetry_data t WHERE t.device_code = e.equipment_code)
|
|
|
+ AND NOT EXISTS (SELECT 1 FROM app_user.firefighting_pressure p WHERE p.telemetering_station = e.equipment_code)
|
|
|
+ AND NOT EXISTS (SELECT 1 FROM app_user.noise_info n WHERE n.encode = e.equipment_code);
|
|
|
+
|
|
|
+-- ------------------------------------------------------------
|
|
|
+-- 清理脚本(如需移除本批测试数据,执行以下语句)
|
|
|
+-- ------------------------------------------------------------
|
|
|
+-- DELETE FROM app_user.alarm_audit WHERE alarm_id LIKE 'wrb-alarm-%';
|
|
|
+-- DELETE FROM app_user.work_order_log WHERE order_id IN
|
|
|
+-- (SELECT order_id FROM app_user.work_order WHERE order_no LIKE 'WRB-WO-%');
|
|
|
+-- DELETE FROM app_user.work_order WHERE order_no LIKE 'WRB-WO-%' OR alarm_id LIKE 'wrb-alarm-%';
|
|
|
+-- DELETE FROM app_user.alarm_data WHERE id LIKE 'wrb-alarm-%';
|
|
|
+-- DELETE FROM app_user.warning_threshold WHERE id LIKE 'wrb-thr-%' OR device_code LIKE '%20260916%';
|
|
|
+-- DELETE FROM app_user.radar_data WHERE id LIKE 'wrb-%';
|
|
|
+-- DELETE FROM app_user.telemetry_data WHERE id LIKE 'wrb-%';
|
|
|
+-- DELETE FROM app_user.firefighting_pressure WHERE id LIKE 'wrb-%';
|
|
|
+-- DELETE FROM app_user.noise_info WHERE create_time > now() - interval '1 day' AND encode LIKE '%-20260916%';
|
|
|
+-- DELETE FROM app_user.equipment_status WHERE equipment_id LIKE 'WRB-EQ-%';
|
|
|
+-- DELETE FROM app_user.equipment_base WHERE equipment_id LIKE 'WRB-EQ-%';
|