From 5e8769adabd0d23cf4d4ce1492e320efd583f6a1 Mon Sep 17 00:00:00 2001 From: "gigi.mamaladze" Date: Sun, 12 Oct 2025 22:56:11 +0400 Subject: [PATCH] Updated Statiscitcs --- .../views/Windows/Statistics/view.json | 44 +++++++++---------- .../Dumper/Dumper Lane Count/query.sql | 27 +++++++++--- .../Dumper/Dumper Lane Percent/query.sql | 27 +++++++++--- .../Dumper/Dumper Lane Rate/query.sql | 27 +++++++++--- 4 files changed, 85 insertions(+), 40 deletions(-) diff --git a/CNO8_SCADA/com.inductiveautomation.perspective/views/Windows/Statistics/view.json b/CNO8_SCADA/com.inductiveautomation.perspective/views/Windows/Statistics/view.json index 7fa72fb..9b394b9 100644 --- a/CNO8_SCADA/com.inductiveautomation.perspective/views/Windows/Statistics/view.json +++ b/CNO8_SCADA/com.inductiveautomation.perspective/views/Windows/Statistics/view.json @@ -1659,47 +1659,47 @@ "$": [ "ds", 192, - 1760284942576 + 1760295350829 ], "$columns": [ { "data": [ - "2025-10-12 19:00" + "2025-10-12 22:00" ], "name": "Start Timestamp", "type": "String" }, { "data": [ - "H1" + "H0" ], "name": "Hour", "type": "String" }, { "data": [ - null + "20.00%" ], "name": "Cycles of ULC1 (%)", "type": "String" }, { "data": [ - null + "20.00%" ], "name": "Cycles of ULC2 (%)", "type": "String" }, { "data": [ - null + "20.00%" ], "name": "Cycles of ULC3 (%)", "type": "String" }, { "data": [ - null + "20.00%" ], "name": "Cycles of ULC4 (%)", "type": "String" @@ -1738,11 +1738,11 @@ "dataSources": { "example": [ { - "Hour": "H1", - "ULC1": null, - "ULC2": null, - "ULC3": null, - "ULC4": null + "Hour": "H0", + "ULC1": "20.00%", + "ULC2": "20.00%", + "ULC3": "20.00%", + "ULC4": "20.00%" } ] }, @@ -1834,7 +1834,7 @@ "data": { "source": "example", "x": "Hour", - "y": "ULGL1" + "y": "ULC1" }, "defaultState": { "visible": true @@ -2094,7 +2094,7 @@ "data": { "source": "example", "x": "Hour", - "y": "ULGL2" + "y": "ULC2" }, "defaultState": { "visible": true @@ -2354,7 +2354,7 @@ "data": { "source": "example", "x": "Hour", - "y": "ULGL3" + "y": "ULC3" }, "defaultState": { "visible": true @@ -2614,7 +2614,7 @@ "data": { "source": "example", "x": "Hour", - "y": "ULGL4" + "y": "ULC4" }, "defaultState": { "visible": true @@ -5493,7 +5493,7 @@ }, "props": { "dismissOnSelect": false, - "formattedValue": "Oct 12, 2025 7:02 PM", + "formattedValue": "Oct 12, 2025 9:55 PM", "formattedValues": { "date": "Mar 26, 2021", "datetime": "Mar 26, 2021 12:00 AM", @@ -5511,9 +5511,9 @@ "$": [ "ts", 192, - 1760284943009 + 1760295350827 ], - "$ts": 1760281343000 + "$ts": 1760291750000 } }, "type": "ia.input.date-time-input" @@ -5664,7 +5664,7 @@ }, "props": { "dismissOnSelect": false, - "formattedValue": "Oct 12, 2025 8:02 PM", + "formattedValue": "Oct 12, 2025 10:55 PM", "formattedValues": { "date": "Mar 29, 2021", "datetime": "Mar 29, 2021 1:37 PM", @@ -5682,9 +5682,9 @@ "$": [ "ts", 192, - 1760284943106 + 1760295350827 ], - "$ts": 1760284943000 + "$ts": 1760295350000 } }, "type": "ia.input.date-time-input" diff --git a/CNO8_SCADA/ignition/named-query/Dumper/Dumper Lane Count/query.sql b/CNO8_SCADA/ignition/named-query/Dumper/Dumper Lane Count/query.sql index 0f6db00..1446ab3 100644 --- a/CNO8_SCADA/ignition/named-query/Dumper/Dumper Lane Count/query.sql +++ b/CNO8_SCADA/ignition/named-query/Dumper/Dumper Lane Count/query.sql @@ -1,12 +1,27 @@ SELECT CONCAT(DATE(dumper_cycles.t_stamp), ' ', HOUR(dumper_cycles.t_stamp), ':00') AS StartTimestamp, CONCAT('H', TIMESTAMPDIFF(HOUR, DATE_FORMAT(dumper_cycles.t_stamp, "%Y-%m-%d %H:00:00"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))) AS Hour, - - SUM(dumper_cycles.ulc1 = 1) AS ULC1, - SUM(dumper_cycles.ulc2 = 1) AS ULC2, - SUM(dumper_cycles.ulc3 = 1) AS ULC3, - SUM(dumper_cycles.ulc4 = 1) AS ULC4 -- <-- ADD THIS LINE + COALESCE(SUM(dumper_cycles.ulc1 = 1), 0) AS ULC1, + COALESCE(SUM(dumper_cycles.ulc2 = 1), 0) AS ULC2, + COALESCE(SUM(dumper_cycles.ulc3 = 1), 0) AS ULC3, + COALESCE(SUM(dumper_cycles.ulc4 = 1), 0) AS ULC4 FROM dumper_cycles WHERE (dumper_cycles.t_stamp BETWEEN :starttime AND :endtime) -GROUP BY HOUR(dumper_cycles.t_stamp); \ No newline at end of file +GROUP BY HOUR(dumper_cycles.t_stamp) + +UNION ALL + +-- Default row with zeros when no dumper cycles exist +SELECT + CONCAT(DATE(:starttime), ' ', HOUR(:starttime), ':00') AS StartTimestamp, + CONCAT('H', TIMESTAMPDIFF(HOUR, DATE_FORMAT(:starttime, "%Y-%m-%d %H:00:00"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))) AS Hour, + 0 AS ULC1, + 0 AS ULC2, + 0 AS ULC3, + 0 AS ULC4 + +WHERE NOT EXISTS ( + SELECT 1 FROM dumper_cycles + WHERE dumper_cycles.t_stamp BETWEEN :starttime AND :endtime +); \ No newline at end of file diff --git a/CNO8_SCADA/ignition/named-query/Dumper/Dumper Lane Percent/query.sql b/CNO8_SCADA/ignition/named-query/Dumper/Dumper Lane Percent/query.sql index 2153664..f2c1bdf 100644 --- a/CNO8_SCADA/ignition/named-query/Dumper/Dumper Lane Percent/query.sql +++ b/CNO8_SCADA/ignition/named-query/Dumper/Dumper Lane Percent/query.sql @@ -1,12 +1,27 @@ SELECT CONCAT(DATE(dumper_cycles.t_stamp), ' ', HOUR(dumper_cycles.t_stamp), ':00') AS StartTimestamp, CONCAT('H', TIMESTAMPDIFF(HOUR, DATE_FORMAT(dumper_cycles.t_stamp, "%Y-%m-%d %H:00:00"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))) AS Hour, - - CONCAT(ROUND(SUM(dumper_cycles.ulc1 = 1)/COUNT(*) * 100*2, 2),'%') AS ULC1, - CONCAT(ROUND(SUM(dumper_cycles.ulc2 = 1)/COUNT(*) * 100*2, 2),'%') AS ULC2, - CONCAT(ROUND(SUM(dumper_cycles.ulc3 = 1)/COUNT(*) * 100*2, 2),'%') AS ULC3, - CONCAT(ROUND(SUM(dumper_cycles.ulc4 = 1)/COUNT(*) * 100*2, 2),'%') AS ULC4 -- <-- ADD THIS LINE + CONCAT(ROUND(COALESCE(SUM(dumper_cycles.ulc1 = 1), 0)/COUNT(*) * 100*2, 2),'%') AS ULC1, + CONCAT(ROUND(COALESCE(SUM(dumper_cycles.ulc2 = 1), 0)/COUNT(*) * 100*2, 2),'%') AS ULC2, + CONCAT(ROUND(COALESCE(SUM(dumper_cycles.ulc3 = 1), 0)/COUNT(*) * 100*2, 2),'%') AS ULC3, + CONCAT(ROUND(COALESCE(SUM(dumper_cycles.ulc4 = 1), 0)/COUNT(*) * 100*2, 2),'%') AS ULC4 FROM dumper_cycles WHERE (dumper_cycles.t_stamp BETWEEN :starttime AND :endtime) -GROUP BY HOUR(dumper_cycles.t_stamp); \ No newline at end of file +GROUP BY HOUR(dumper_cycles.t_stamp) + +UNION ALL + +-- Default row with zeros when no dumper cycles exist +SELECT + CONCAT(DATE(:starttime), ' ', HOUR(:starttime), ':00') AS StartTimestamp, + CONCAT('H', TIMESTAMPDIFF(HOUR, DATE_FORMAT(:starttime, "%Y-%m-%d %H:00:00"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))) AS Hour, + '0%' AS ULC1, + '0%' AS ULC2, + '0%' AS ULC3, + '0%' AS ULC4 + +WHERE NOT EXISTS ( + SELECT 1 FROM dumper_cycles + WHERE dumper_cycles.t_stamp BETWEEN :starttime AND :endtime +); \ No newline at end of file diff --git a/CNO8_SCADA/ignition/named-query/Dumper/Dumper Lane Rate/query.sql b/CNO8_SCADA/ignition/named-query/Dumper/Dumper Lane Rate/query.sql index 83458d9..5134405 100644 --- a/CNO8_SCADA/ignition/named-query/Dumper/Dumper Lane Rate/query.sql +++ b/CNO8_SCADA/ignition/named-query/Dumper/Dumper Lane Rate/query.sql @@ -1,12 +1,27 @@ SELECT CONCAT(DATE(dumper_cycles.t_stamp), ' ', HOUR(dumper_cycles.t_stamp), ':00') AS StartTimestamp, CONCAT('H', TIMESTAMPDIFF(HOUR, DATE_FORMAT(dumper_cycles.t_stamp, "%Y-%m-%d %H:00:00"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))) AS Hour, - - CONCAT(CAST(SUM(dumper_cycles.ulc1 = 1) AS CHAR),' cph') AS ULC1, - CONCAT(CAST(SUM(dumper_cycles.ulc2 = 1) AS CHAR),' cph') AS ULC2, - CONCAT(CAST(SUM(dumper_cycles.ulc3 = 1) AS CHAR),' cph') AS ULC3, - CONCAT(CAST(SUM(dumper_cycles.ulc4 = 1) AS CHAR),' cph') AS ULC4 -- <-- ADD THIS LINE + CONCAT(CAST(COALESCE(SUM(dumper_cycles.ulc1 = 1), 0) AS CHAR),' cph') AS ULC1, + CONCAT(CAST(COALESCE(SUM(dumper_cycles.ulc2 = 1), 0) AS CHAR),' cph') AS ULC2, + CONCAT(CAST(COALESCE(SUM(dumper_cycles.ulc3 = 1), 0) AS CHAR),' cph') AS ULC3, + CONCAT(CAST(COALESCE(SUM(dumper_cycles.ulc4 = 1), 0) AS CHAR),' cph') AS ULC4 FROM dumper_cycles WHERE (dumper_cycles.t_stamp BETWEEN :starttime AND :endtime) -GROUP BY HOUR(dumper_cycles.t_stamp); \ No newline at end of file +GROUP BY HOUR(dumper_cycles.t_stamp) + +UNION ALL + +-- Default row with zeros when no dumper cycles exist +SELECT + CONCAT(DATE(:starttime), ' ', HOUR(:starttime), ':00') AS StartTimestamp, + CONCAT('H', TIMESTAMPDIFF(HOUR, DATE_FORMAT(:starttime, "%Y-%m-%d %H:00:00"), DATE_FORMAT(NOW(), "%Y-%m-%d %H:00:00"))) AS Hour, + '0 cph' AS ULC1, + '0 cph' AS ULC2, + '0 cph' AS ULC3, + '0 cph' AS ULC4 + +WHERE NOT EXISTS ( + SELECT 1 FROM dumper_cycles + WHERE dumper_cycles.t_stamp BETWEEN :starttime AND :endtime +); \ No newline at end of file