fix(report): 운전모드 펌프 가동 판정 — 상태 포맷 매칭 버그 #10

Merged
windpacer merged 1 commits from fix/pump-run-detection-format into main 2026-06-19 07:06:29 +09:00

View File

@@ -163,7 +163,10 @@ CREATE TABLE IF NOT EXISTS hc900.kpi_alert (
if (pumpKnown)
{
await using var pq = conn.CreateCommand();
pq.CommandText = "SELECT count(*) FROM hc900.realtime_table WHERE tagname = ANY(@p) AND livevalue IN ('1','5','L-RUN','R-RUN')";
// 디지털 상태점은 realtime_table에 '{N | label | }' 포맷으로 저장됨(FormatValue).
// RUN 라벨(L-RUN/R-RUN)을 부분일치로 판정. TRIP/FAULT/STOP은 RUN 미포함 → 정지로 봄.
// (구버전 bare 값도 함께 허용.)
pq.CommandText = "SELECT count(*) FROM hc900.realtime_table WHERE tagname = ANY(@p) AND (livevalue LIKE '%RUN%' OR livevalue IN ('1','5','L-RUN','R-RUN'))";
var pp = pq.CreateParameter(); pp.ParameterName = "@p"; pp.Value = pumps.ToArray(); pq.Parameters.Add(pp);
pumpRunning = Convert.ToInt64(await pq.ExecuteScalarAsync(ct)) > 0;
}