fixes in the history alarm table, not showing the correct styles and colors. removed the footer from the alarms page

This commit is contained in:
Salijoghli 2025-11-12 11:54:48 +04:00
parent 214e897371
commit 46ae01d8de
53 changed files with 1612 additions and 4396 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 514 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

View File

@ -1,50 +0,0 @@
SELECT
base.Total_Jam,
base.Inbound_jam,
base.Sorter_jam,
base.Startstamp,
base.Endtstamp,
1 AS Total_perc,
base.Inbound_jam / NULLIF(base.Total_Jam,0) AS Inbound_perc,
base.Sorter_jam / NULLIF(base.Total_Jam,0) AS Sorter_perc
FROM (
SELECT
MIN(a.eventtime) AS Startstamp,
MAX(COALESCE(c.eventtime, a.eventtime)) AS Endtstamp,
SUM(a.category = 'Inbound_jam') AS Inbound_jam,
SUM(a.category = 'Sorter_jam') AS Sorter_jam,
SUM(a.category IN ('Inbound_jam','Sorter_jam')) AS Total_Jam
FROM (
SELECT
ae.id,
ae.eventtime,
ae.eventid,
ae.displaypath AS device,
m.category
FROM alarm_events ae
JOIN (
SELECT 'UL15_1_TPE1' AS device, 'Inbound_jam' AS category UNION ALL
SELECT 'UL14_1_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_1_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_1_TPE2', 'Inbound_jam' UNION ALL
SELECT 'PS3_1_TPE3', 'Inbound_jam' UNION ALL
SELECT 'PS3_2_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_4_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_8_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_10_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_12_TPE1', 'Sorter_jam'
) AS m
ON ae.displaypath = m.device
WHERE ae.eventtype = 0
AND ae.eventtime BETWEEN :starttime AND :endtime
AND ae.displaypath NOT LIKE '%System Startup%'
AND ae.source NOT LIKE '%System Startup%'
) AS a
LEFT JOIN (
SELECT eventid, MIN(eventtime) AS eventtime
FROM alarm_events
WHERE eventtype = 1
GROUP BY eventid
) AS c
ON a.eventid = c.eventid
) AS base;

View File

@ -1,15 +0,0 @@
SELECT alltable.t_stamp,
'S03' AS SorterName,
alltable.ParcelID,
'S03aa' AS ScannerName,
'0' AS IMGID,
alltable.ScanLabel,
alltable.ScanStatus,
alltable.Length,
alltable.AssignmentScanHist,
alltable.DivertStatus,
alltable.DEST_REQ,
alltable.ACTUAL_DEST,
alltable.SortCode
FROM alltable
WHERE alltable.t_stamp BETWEEN :starttime AND :endtime

View File

@ -1300,22 +1300,22 @@
},
{
"custom": {
"customTime": false,
"customTime": true,
"endDate": {
"$": [
"ts",
192,
1762436807330
1762933286870
],
"$ts": 1762436807329
"$ts": 1762933286870
},
"startDate": {
"$": [
"ts",
192,
1762436807329
1762933286870
],
"$ts": 1762435007329
"$ts": 1762931486870
}
},
"meta": {
@ -1469,7 +1469,7 @@
}
},
"props": {
"formattedValue": "Nov 6, 2025 5:16 PM",
"formattedValue": "Nov 1, 2025 11:11 AM",
"minDate": {
"$": [
"ts",
@ -1561,7 +1561,7 @@
}
},
"props": {
"formattedValue": "Nov 6, 2025 5:46 PM",
"formattedValue": "Nov 8, 2025 11:11 AM",
"style": {
"margin": 15
},
@ -1569,9 +1569,9 @@
"$": [
"ts",
192,
1762436807330
1762933311840
],
"$ts": 1762436807329
"$ts": 1762585860000
}
},
"type": "ia.input.date-time-input"
@ -2816,22 +2816,22 @@
},
{
"custom": {
"customTime": false,
"customTime": true,
"endDate": {
"$": [
"ts",
192,
1762436937350
1762933289382
],
"$ts": 1762436937350
"$ts": 1762933289381
},
"startDate": {
"$": [
"ts",
192,
1762436937350
1762933289382
],
"$ts": 1762435137350
"$ts": 1762931489381
}
},
"meta": {
@ -2998,7 +2998,7 @@
}
},
"props": {
"formattedValue": "Nov 6, 2025 5:18 PM",
"formattedValue": "Nov 1, 2025 11:11 AM",
"minDate": {
"$": [
"ts",
@ -3090,7 +3090,7 @@
}
},
"props": {
"formattedValue": "Nov 6, 2025 5:48 PM",
"formattedValue": "Nov 8, 2025 11:11 AM",
"style": {
"margin": 15
},
@ -3098,9 +3098,9 @@
"$": [
"ts",
192,
1762436937350
1762933292970
],
"$ts": 1762436937350
"$ts": 1762585860000
}
},
"scripts": {
@ -3478,7 +3478,7 @@
},
"transforms": [
{
"code": "\tfrom system.dataset import toPyDataSet\n\t\n\tds \u003d toPyDataSet(value)\n\tcolumn_names \u003d list(ds.columnNames)\n\t\n\t# Pre-create style dict to reuse (saves memory)\n\tstyle_dict \u003d {\"classes\": None}\n\t\n\t# Use list comprehension with pre-allocated style\n\tdata \u003d []\n\tfor row in ds:\n\t\tclassName \u003d row[\"Style\"]\n\t\tstyle_dict[\"classes\"] \u003d className\n\t\t\n\t\t# Create row dict efficiently\n\t\trow_dict \u003d {\n\t\t\tcol: {\n\t\t\t\t\"value\": row[col],\n\t\t\t\t\"style\": style_dict # Reuse same dict reference\n\t\t\t} for col in column_names\n\t\t}\n\t\tdata.append(row_dict)\n\t\n\treturn data",
"code": "\tfrom system.dataset import toPyDataSet\n\t\n\tds \u003d toPyDataSet(value)\n\tdata \u003d []\n\t\n\tcolumn_names \u003d list(ds.columnNames)\n\t\n\tfor row in ds:\n\t\t# Get the style class from the Style column returned by SQL\n\t\tclassName \u003d row[\"Style\"]\n\t\t\n\t\t# Apply style to each cell individually (required for Ignition Perspective tables)\n\t\trow_dict \u003d {\n\t\t\tcol: {\n\t\t\t\t\"value\": row[col],\n\t\t\t\t\"style\": {\"classes\": className}\n\t\t\t} for col in column_names\n\t\t}\n\t\tdata.append(row_dict)\n\t\n\treturn data",
"type": "script"
}
],

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 B

View File

@ -1,66 +0,0 @@
-- Generate all lanes 101-124 excluding 102, 104, 106
WITH DesiredLanes AS (
SELECT 101 + n AS lane_number
FROM (
SELECT a.N + b.N * 10 AS n
FROM (SELECT 0 AS N UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4
UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) a,
(SELECT 0 AS N UNION SELECT 1 UNION SELECT 2) b
) numbers
WHERE n <= 23 -- 101 to 124
AND (101 + n) NOT IN (102, 104, 106)
),
-- Aggregate Full alarms per lane
FullAlarms AS (
SELECT
aed.strValue AS myLocation,
COUNT(*) AS FullCount,
SUM(TIMESTAMPDIFF(SECOND, ae.eventtime, COALESCE(ae_clear.eventtime, NOW()))) AS FullDuration
FROM alarm_events ae
LEFT JOIN alarm_events ae_clear
ON ae.eventid = ae_clear.eventid AND ae_clear.eventtype = 1
JOIN alarm_event_data aed
ON aed.id = ae.id AND aed.propname = 'myLocation'
WHERE ae.eventtype = 0
AND ae.source LIKE '%Full%'
AND ae.source LIKE '%Chute%'
AND ae.eventtime BETWEEN :startDate AND :endDate
GROUP BY aed.strValue
),
-- Aggregate Jammed alarms per lane
JammedAlarms AS (
SELECT
aed.strValue AS myLocation,
COUNT(*) AS JamCount,
SUM(TIMESTAMPDIFF(SECOND, ae.eventtime, COALESCE(ae_clear.eventtime, NOW()))) AS JamDuration
FROM alarm_events ae
LEFT JOIN alarm_events ae_clear
ON ae.eventid = ae_clear.eventid AND ae_clear.eventtype = 1
JOIN alarm_event_data aed
ON aed.id = ae.id AND aed.propname = 'myLocation'
WHERE ae.eventtype = 0
AND ae.source LIKE '%Jammed%'
AND ae.source LIKE '%Chute%'
AND ae.eventtime BETWEEN :startDate AND :endDate
GROUP BY aed.strValue
),
-- Combine Full and Jammed
Aggregated AS (
SELECT
dl.lane_number,
COALESCE(f.FullCount, 0) AS FullCount,
COALESCE(j.JamCount, 0) AS JamCount,
COALESCE(f.FullDuration, 0) AS FullDuration,
COALESCE(j.JamDuration, 0) AS JamDuration
FROM DesiredLanes dl
LEFT JOIN FullAlarms f ON f.myLocation = CONCAT('S03_CH', dl.lane_number)
LEFT JOIN JammedAlarms j ON j.myLocation = CONCAT('S03_CH', dl.lane_number)
)
SELECT
CONCAT('S03_CH', lane_number) AS Lane,
FullCount,
JamCount,
FullDuration,
JamDuration
FROM Aggregated
ORDER BY lane_number;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 B

View File

@ -0,0 +1,802 @@
{
"custom": {
"MCM": "",
"currentTable": "ACTIVE",
"page": "",
"view": ""
},
"params": {},
"propConfig": {
"custom.MCM": {
"binding": {
"config": {
"expression": "if({view.custom.view} !\u003d \"\", {view.custom.view}, {view.custom.page})"
},
"type": "expr"
},
"persistent": true
},
"custom.currentTable": {
"persistent": true
},
"custom.page": {
"binding": {
"config": {
"path": "page.props.path"
},
"transforms": [
{
"code": "\ttry:\n\t\tif \"MCM\" in value:\n\t\t\tindex \u003d value.find(\"MCM\")\n\t\t\treturn value[index:index+5] # MCM + 2 digits\n\texcept:\n\t\t\tpass\n\treturn \"\"",
"type": "script"
}
],
"type": "property"
},
"persistent": true
},
"custom.view": {
"binding": {
"config": {
"path": "page.props.primaryView"
},
"transforms": [
{
"code": "\ttry:\n\t\tif \"MCM\" in value:\n\t\t\tindex \u003d value.find(\"MCM\")\n\t\t\treturn value[index:index+5] # MCM + 2 digits\n\texcept:\n\t\t\tpass\n\treturn \"\"",
"type": "script"
}
],
"type": "property"
},
"persistent": true
}
},
"props": {
"defaultSize": {
"height": 176,
"width": 1920
}
},
"root": {
"children": [
{
"events": {
"component": {
"onRowDoubleClick": {
"config": {
"script": "\tdata \u003d self.props.selection.data\n\t\n\talarms.alarm_click.handleClick(data)"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "active-table"
},
"position": {
"basis": "1080px",
"grow": 1
},
"propConfig": {
"position.display": {
"binding": {
"config": {
"expression": "{view.custom.currentTable} \u003d \"ACTIVE\""
},
"type": "expr"
}
},
"props.columns[4].filter.string.value": {
"binding": {
"config": {
"path": "view.custom.MCM"
},
"type": "property"
}
},
"props.data": {
"binding": {
"config": {
"parameters": {
"location": "{view.custom.MCM}",
"priority": "0"
},
"polling": {
"enabled": true,
"rate": "3"
},
"queryPath": "autStand/Alarms/Active"
},
"transforms": [
{
"code": "\t\n\tfrom system.dataset import toPyDataSet\n\n\tds \u003d toPyDataSet(value)\n\tdata \u003d []\n\n\tcolumn_names \u003d [col for col in ds.columnNames if col !\u003d \"EndTimestamp\"]\n\t\n\n\tfor row in ds:\n\t\tpriority \u003d row[\"Priority\"]\n\n\t\t# Use style class names from Perspective\n\t\tif priority \u003d\u003d \"High\":\n\t\t\tclassName \u003d \"Alarms-Styles/High\"\n\t\telif priority \u003d\u003d \"Medium\":\n\t\t\tclassName \u003d \"Alarms-Styles/Medium\"\n\t\telif priority \u003d\u003d \"Low\":\n\t\t\tclassName \u003d \"Alarms-Styles/Low\"\n\t\telif priority \u003d\u003d \"Diagnostic\":\n\t\t\tclassName \u003d \"Alarms-Styles/Diagnostic\"\n\t\telse:\n\t\t\tclassName \u003d \"Alarms-Styles/NoAlarm\"\n\n\t\t# Apply the style class to all cells in the row\n\t\trow_dict \u003d {\n\t\t\tcol: {\n\t\t\t\t\"value\": row[col],\n\t\t\t\t\"style\": { \"classes\": className }\n\t\t\t} for col in column_names\n\t\t}\n\t\tdata.append(row_dict)\n\n\treturn data",
"type": "script"
}
],
"type": "query"
}
}
},
"props": {
"columns": [
{
"align": "center",
"boolean": "checkbox",
"dateFormat": "MM/DD/YYYY",
"editable": false,
"field": "ID",
"filter": {
"boolean": {
"condition": ""
},
"date": {
"condition": "",
"value": ""
},
"enabled": false,
"number": {
"condition": "",
"value": ""
},
"string": {
"condition": "",
"value": ""
},
"visible": "on-hover"
},
"footer": {
"align": "center",
"justify": "left",
"style": {
"classes": ""
},
"title": ""
},
"header": {
"align": "center",
"justify": "left",
"style": {
"classes": ""
},
"title": "Number (ID)"
},
"justify": "left",
"nullFormat": {
"includeNullStrings": false,
"nullFormatValue": "",
"strict": false
},
"number": "value",
"numberFormat": "0,0.##",
"progressBar": {
"bar": {
"color": "",
"style": {
"classes": ""
}
},
"max": 100,
"min": 0,
"track": {
"color": "",
"style": {
"classes": ""
}
},
"value": {
"enabled": true,
"format": "0,0.##",
"justify": "center",
"style": {
"classes": ""
}
}
},
"render": "auto",
"resizable": true,
"sort": "none",
"sortable": true,
"strictWidth": false,
"style": {
"classes": ""
},
"toggleSwitch": {
"color": {
"selected": "",
"unselected": ""
}
},
"viewParams": {},
"viewPath": "",
"visible": true,
"width": 70
},
{
"align": "center",
"boolean": "checkbox",
"dateFormat": "MM/DD/YYYY HH:mm:ss",
"editable": false,
"field": "StartTimestamp",
"filter": {
"boolean": {
"condition": ""
},
"date": {
"condition": "",
"value": ""
},
"enabled": false,
"number": {
"condition": "",
"value": ""
},
"string": {
"condition": "",
"value": ""
},
"visible": "on-hover"
},
"footer": {
"align": "center",
"justify": "left",
"style": {
"classes": ""
},
"title": ""
},
"header": {
"align": "center",
"justify": "left",
"style": {
"classes": ""
},
"title": "Event Timestamp"
},
"justify": "auto",
"nullFormat": {
"includeNullStrings": false,
"nullFormatValue": "",
"strict": false
},
"number": "value",
"numberFormat": "0,0.##",
"progressBar": {
"bar": {
"color": "",
"style": {
"classes": ""
}
},
"max": 100,
"min": 0,
"track": {
"color": "",
"style": {
"classes": ""
}
},
"value": {
"enabled": true,
"format": "0,0.##",
"justify": "center",
"style": {
"classes": ""
}
}
},
"render": "auto",
"resizable": true,
"sort": "none",
"sortable": true,
"strictWidth": false,
"style": {
"classes": ""
},
"toggleSwitch": {
"color": {
"selected": "",
"unselected": ""
}
},
"viewParams": {},
"viewPath": "",
"visible": true,
"width": 70
},
{
"align": "center",
"boolean": "checkbox",
"dateFormat": "MM/DD/YYYY",
"editable": false,
"field": "Duration",
"filter": {
"boolean": {
"condition": ""
},
"date": {
"condition": "",
"value": ""
},
"enabled": true,
"number": {
"condition": "",
"value": ""
},
"string": {
"condition": "equals",
"value": ""
},
"visible": "never"
},
"footer": {
"align": "center",
"justify": "left",
"style": {
"classes": ""
},
"title": ""
},
"header": {
"align": "center",
"justify": "center",
"style": {
"classes": ""
},
"title": ""
},
"justify": "center",
"nullFormat": {
"includeNullStrings": false,
"nullFormatValue": "",
"strict": false
},
"number": "value",
"numberFormat": "0,0.##",
"progressBar": {
"bar": {
"color": "",
"style": {
"classes": ""
}
},
"max": 100,
"min": 0,
"track": {
"color": "",
"style": {
"classes": ""
}
},
"value": {
"enabled": true,
"format": "0,0.##",
"justify": "center",
"style": {
"classes": ""
}
}
},
"render": "string",
"resizable": true,
"sort": "none",
"sortable": true,
"strictWidth": false,
"style": {
"classes": ""
},
"toggleSwitch": {
"color": {
"selected": "",
"unselected": ""
}
},
"viewParams": {},
"viewPath": "",
"visible": true,
"width": 70
},
{
"align": "center",
"boolean": "checkbox",
"dateFormat": "MM/DD/YYYY",
"editable": false,
"field": "Priority",
"filter": {
"boolean": {
"condition": ""
},
"date": {
"condition": "",
"value": ""
},
"enabled": false,
"number": {
"condition": "",
"value": ""
},
"string": {
"condition": "",
"value": ""
},
"visible": "on-hover"
},
"footer": {
"align": "center",
"justify": "left",
"style": {
"classes": ""
},
"title": ""
},
"header": {
"align": "center",
"justify": "center",
"style": {
"classes": ""
},
"title": ""
},
"justify": "center",
"nullFormat": {
"includeNullStrings": false,
"nullFormatValue": "",
"strict": false
},
"number": "value",
"numberFormat": "0,0.##",
"progressBar": {
"bar": {
"color": "",
"style": {
"classes": ""
}
},
"max": 100,
"min": 0,
"track": {
"color": "",
"style": {
"classes": ""
}
},
"value": {
"enabled": true,
"format": "0,0.##",
"justify": "center",
"style": {
"classes": ""
}
}
},
"render": "auto",
"resizable": true,
"sort": "none",
"sortable": true,
"strictWidth": false,
"style": {
"classes": ""
},
"toggleSwitch": {
"color": {
"selected": "",
"unselected": ""
}
},
"viewParams": {},
"viewPath": "",
"visible": true,
"width": 70
},
{
"align": "center",
"boolean": "checkbox",
"dateFormat": "MM/DD/YYYY",
"editable": false,
"field": "Location",
"filter": {
"boolean": {
"condition": ""
},
"date": {
"condition": "",
"value": ""
},
"enabled": true,
"number": {
"condition": "",
"value": ""
},
"string": {
"condition": "equals"
},
"visible": "never"
},
"footer": {
"align": "center",
"justify": "left",
"style": {
"classes": ""
},
"title": ""
},
"header": {
"align": "center",
"justify": "center",
"style": {
"classes": ""
},
"title": ""
},
"justify": "center",
"nullFormat": {
"includeNullStrings": false,
"nullFormatValue": "",
"strict": false
},
"number": "value",
"numberFormat": "0,0.##",
"progressBar": {
"bar": {
"color": "",
"style": {
"classes": ""
}
},
"max": 100,
"min": 0,
"track": {
"color": "",
"style": {
"classes": ""
}
},
"value": {
"enabled": true,
"format": "0,0.##",
"justify": "center",
"style": {
"classes": ""
}
}
},
"render": "auto",
"resizable": true,
"sort": "none",
"sortable": true,
"strictWidth": false,
"style": {
"classes": ""
},
"toggleSwitch": {
"color": {
"selected": "",
"unselected": ""
}
},
"viewParams": {},
"viewPath": "",
"visible": true,
"width": 70
},
{
"align": "center",
"boolean": "checkbox",
"dateFormat": "MM/DD/YYYY",
"editable": false,
"field": "Description",
"filter": {
"boolean": {
"condition": ""
},
"date": {
"condition": "",
"value": ""
},
"enabled": false,
"number": {
"condition": "",
"value": ""
},
"string": {
"condition": "",
"value": ""
},
"visible": "on-hover"
},
"footer": {
"align": "center",
"justify": "left",
"style": {
"classes": ""
},
"title": ""
},
"header": {
"align": "center",
"justify": "center",
"style": {
"classes": ""
},
"title": ""
},
"justify": "center",
"nullFormat": {
"includeNullStrings": false,
"nullFormatValue": "",
"strict": false
},
"number": "value",
"numberFormat": "0,0.##",
"progressBar": {
"bar": {
"color": "",
"style": {
"classes": ""
}
},
"max": 100,
"min": 0,
"track": {
"color": "",
"style": {
"classes": ""
}
},
"value": {
"enabled": true,
"format": "0,0.##",
"justify": "center",
"style": {
"classes": ""
}
}
},
"render": "auto",
"resizable": true,
"sort": "none",
"sortable": true,
"strictWidth": false,
"style": {
"classes": ""
},
"toggleSwitch": {
"color": {
"selected": "",
"unselected": ""
}
},
"viewParams": {},
"viewPath": "",
"visible": true,
"width": 150
},
{
"align": "center",
"boolean": "checkbox",
"dateFormat": "MM/DD/YYYY",
"editable": false,
"field": "Tag",
"filter": {
"boolean": {
"condition": ""
},
"date": {
"condition": "",
"value": ""
},
"enabled": false,
"number": {
"condition": "",
"value": ""
},
"string": {
"condition": "",
"value": ""
},
"visible": "on-hover"
},
"footer": {
"align": "center",
"justify": "left",
"style": {
"classes": ""
},
"title": ""
},
"header": {
"align": "center",
"justify": "left",
"style": {
"classes": ""
},
"title": ""
},
"justify": "auto",
"nullFormat": {
"includeNullStrings": false,
"nullFormatValue": "",
"strict": false
},
"number": "value",
"numberFormat": "0,0.##",
"progressBar": {
"bar": {
"color": "",
"style": {
"classes": ""
}
},
"max": 100,
"min": 0,
"track": {
"color": "",
"style": {
"classes": ""
}
},
"value": {
"enabled": true,
"format": "0,0.##",
"justify": "center",
"style": {
"classes": ""
}
}
},
"render": "auto",
"resizable": true,
"sort": "none",
"sortable": true,
"strictWidth": false,
"style": {
"classes": ""
},
"toggleSwitch": {
"color": {
"selected": "",
"unselected": ""
}
},
"viewParams": {},
"viewPath": "",
"visible": true,
"width": 80
}
],
"emptyMessage": {
"noData": {
"text": "No Active Alarms"
},
"noFilterResults": {
"text": "No Active Alarms"
}
},
"filter": {
"results": {
"enabled": true
}
},
"pager": {
"bottom": false
}
},
"type": "ia.display.table"
}
],
"events": {
"system": {
"onStartup": {
"config": {
"script": "\tif self.view.custom.currentTable \u003d\u003d \"\":\n\t\tself.view.custom.currentTable \u003d \"ACTIVE\""
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "root"
},
"type": "ia.container.flex"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 660 B

View File

@ -12,7 +12,7 @@
}
},
"params": {
"Tab_ID": 6,
"Tab_ID": 3,
"Table": "Status_tab"
},
"propConfig": {
@ -4327,190 +4327,6 @@
"viewPath": "",
"visible": true,
"width": ""
},
{
"align": "center",
"boolean": "checkbox",
"dateFormat": "MM/DD/YYYY",
"editable": false,
"field": "No Container Duration (Sec)",
"filter": {
"boolean": {
"condition": ""
},
"date": {
"condition": "",
"value": ""
},
"enabled": false,
"number": {
"condition": "",
"value": ""
},
"string": {
"condition": "",
"value": ""
},
"visible": "on-hover"
},
"footer": {
"align": "center",
"justify": "left",
"style": {
"classes": ""
},
"title": ""
},
"header": {
"align": "center",
"justify": "center",
"style": {
"classes": ""
},
"title": ""
},
"justify": "center",
"nullFormat": {
"includeNullStrings": false,
"nullFormatValue": "",
"strict": false
},
"number": "value",
"numberFormat": "00:00:00",
"progressBar": {
"bar": {
"color": "",
"style": {
"classes": ""
}
},
"max": 100,
"min": 0,
"track": {
"color": "",
"style": {
"classes": ""
}
},
"value": {
"enabled": true,
"format": "0,0.##",
"justify": "center",
"style": {
"classes": ""
}
}
},
"render": "auto",
"resizable": true,
"sort": "none",
"sortable": true,
"strictWidth": false,
"style": {
"classes": ""
},
"toggleSwitch": {
"color": {
"selected": "",
"unselected": ""
}
},
"viewParams": {},
"viewPath": "",
"visible": true,
"width": ""
},
{
"align": "center",
"boolean": "checkbox",
"dateFormat": "MM/DD/YYYY",
"editable": false,
"field": "Block Operation Duration (Sec)",
"filter": {
"boolean": {
"condition": ""
},
"date": {
"condition": "",
"value": ""
},
"enabled": false,
"number": {
"condition": "",
"value": ""
},
"string": {
"condition": "",
"value": ""
},
"visible": "on-hover"
},
"footer": {
"align": "center",
"justify": "left",
"style": {
"classes": ""
},
"title": ""
},
"header": {
"align": "center",
"justify": "center",
"style": {
"classes": ""
},
"title": ""
},
"justify": "center",
"nullFormat": {
"includeNullStrings": false,
"nullFormatValue": "",
"strict": false
},
"number": "value",
"numberFormat": "00:00:00",
"progressBar": {
"bar": {
"color": "",
"style": {
"classes": ""
}
},
"max": 100,
"min": 0,
"track": {
"color": "",
"style": {
"classes": ""
}
},
"value": {
"enabled": true,
"format": "0,0.##",
"justify": "center",
"style": {
"classes": ""
}
}
},
"render": "auto",
"resizable": true,
"sort": "none",
"sortable": true,
"strictWidth": false,
"style": {
"classes": ""
},
"toggleSwitch": {
"color": {
"selected": "",
"unselected": ""
}
},
"viewParams": {},
"viewPath": "",
"visible": true,
"width": ""
}
]
},
@ -4984,6 +4800,7 @@
},
"props": {
"params": {
"ip": "10.200.0.12",
"name": "MCM02",
"tagProps": [
"System/MCM02/MCM02",
@ -6896,6 +6713,7 @@
},
"props": {
"params": {
"ip": "10.200.0.11",
"name": "MCM01",
"tagProps": [
"System/MCM01/MCM01",
@ -13509,7 +13327,7 @@
}
},
"props": {
"currentTabIndex": 6,
"currentTabIndex": 3,
"menuStyle": {
"backgroundColor": "#FFFFFFBD"
},
@ -15052,17 +14870,17 @@
"$": [
"ts",
192,
1762844850394
1762933632873
],
"$ts": 1762844850393
"$ts": 1762933632871
},
"startDate": {
"$": [
"ts",
192,
1762844850394
1762933632873
],
"$ts": 1762843050393
"$ts": 1762931832871
}
},
"meta": {
@ -15235,7 +15053,7 @@
},
"props": {
"dismissOnSelect": false,
"formattedValue": "Nov 11, 2025 10:37 AM",
"formattedValue": "Nov 12, 2025 11:17 AM",
"formattedValues": {
"date": "Mar 26, 2021",
"datetime": "Mar 26, 2021 12:00 AM",
@ -15336,7 +15154,7 @@
},
"props": {
"dismissOnSelect": false,
"formattedValue": "Nov 11, 2025 11:07 AM",
"formattedValue": "Nov 12, 2025 11:47 AM",
"formattedValues": {
"date": "Mar 29, 2021",
"datetime": "Mar 29, 2021 1:37 PM",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 B

View File

@ -1,40 +0,0 @@
-- Step 1: generate dates using a numbers table (0 to 17 for 15 past + today + 2 future)
SELECT
DATE(DATE_ADD(CURDATE(), INTERVAL n.n - 15 DAY)) AS jam_day,
COALESCE(SUM(CASE WHEN a.category = 'Inbound_jam' THEN 1 ELSE 0 END), 0) AS Inbound_jam,
COALESCE(SUM(CASE WHEN a.category = 'Sorter_jam' THEN 1 ELSE 0 END), 0) AS Sorter_jam
FROM (
SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3
UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7
UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION ALL SELECT 11
UNION ALL SELECT 12 UNION ALL SELECT 13 UNION ALL SELECT 14 UNION ALL SELECT 15
UNION ALL SELECT 16 UNION ALL SELECT 17
) AS n
LEFT JOIN (
SELECT
DATE(ae.eventtime) AS event_day,
CASE
WHEN m.category IS NOT NULL THEN m.category
ELSE 'Unknown'
END AS category
FROM alarm_events ae
JOIN (
SELECT 'UL15_1_TPE1' AS device, 'Inbound_jam' AS category UNION ALL
SELECT 'UL14_1_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_1_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_1_TPE2', 'Inbound_jam' UNION ALL
SELECT 'PS3_1_TPE3', 'Inbound_jam' UNION ALL
SELECT 'PS3_2_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_4_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_8_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_10_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_12_TPE1', 'Sorter_jam'
) AS m ON ae.displaypath = m.device
WHERE ae.eventtype = 0
AND ae.eventtime BETWEEN DATE_SUB(CURDATE(), INTERVAL 15 DAY)
AND DATE_ADD(CURDATE(), INTERVAL 2 DAY)
AND ae.displaypath NOT LIKE '%System Startup%'
AND ae.source NOT LIKE '%System Startup%'
) AS a ON DATE(DATE_ADD(CURDATE(), INTERVAL n.n - 15 DAY)) = a.event_day
GROUP BY jam_day
ORDER BY jam_day ASC;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

View File

@ -30,7 +30,25 @@
},
"/Alarms": {
"viewPath": "autStand/Alarms/RealTime",
"title": ""
"title": "",
"docks": {
"bottom": [
{
"viewPath": "autStand/Docked_Views/Footer",
"id": "",
"viewParams": {},
"size": 150,
"resizable": false,
"iconUrl": "",
"modal": false,
"show": "onDemand",
"anchor": "fixed",
"content": "push",
"autoBreakpoint": 480,
"handle": "hide"
}
]
}
},
"/Reports": {
"viewPath": "autStand/Windows/Reports",

View File

@ -9,8 +9,8 @@
"attributes": {
"lastModification": {
"actor": "admin",
"timestamp": "2025-11-10T18:05:46Z"
"timestamp": "2025-11-12T07:53:30Z"
},
"lastModificationSignature": "cc6f8d5fe6a94348fe489dfe8d241a8668a29bd1a34c7feca909c878b074b75e"
"lastModificationSignature": "46d74f9f292293d1d0576c8cf16de87a5ef3a3b02275fe3e645e3bbef6135e69"
}
}

View File

@ -10,8 +10,8 @@
"attributes": {
"lastModification": {
"actor": "admin",
"timestamp": "2025-11-06T13:50:31Z"
"timestamp": "2025-11-12T07:46:12Z"
},
"lastModificationSignature": "bb81d348009cb99a119c3d5a6545a85ce1a6cfb9907fc10003c2f685b3834230"
"lastModificationSignature": "e433b17f010c442f4f23c0f423ee50534af027c4b89835d19bb4ed7fbede803e"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 143 KiB

View File

@ -1300,22 +1300,22 @@
},
{
"custom": {
"customTime": false,
"customTime": true,
"endDate": {
"$": [
"ts",
192,
1762436807330
1762933286870
],
"$ts": 1762436807329
"$ts": 1762933286870
},
"startDate": {
"$": [
"ts",
192,
1762436807329
1762933286870
],
"$ts": 1762435007329
"$ts": 1762931486870
}
},
"meta": {
@ -1469,7 +1469,7 @@
}
},
"props": {
"formattedValue": "Nov 6, 2025 5:16 PM",
"formattedValue": "Nov 1, 2025 11:11 AM",
"minDate": {
"$": [
"ts",
@ -1561,7 +1561,7 @@
}
},
"props": {
"formattedValue": "Nov 6, 2025 5:46 PM",
"formattedValue": "Nov 8, 2025 11:11 AM",
"style": {
"margin": 15
},
@ -1569,9 +1569,9 @@
"$": [
"ts",
192,
1762436807330
1762933311840
],
"$ts": 1762436807329
"$ts": 1762585860000
}
},
"type": "ia.input.date-time-input"
@ -2816,22 +2816,22 @@
},
{
"custom": {
"customTime": false,
"customTime": true,
"endDate": {
"$": [
"ts",
192,
1762436937350
1762933289382
],
"$ts": 1762436937350
"$ts": 1762933289381
},
"startDate": {
"$": [
"ts",
192,
1762436937350
1762933289382
],
"$ts": 1762435137350
"$ts": 1762931489381
}
},
"meta": {
@ -2998,7 +2998,7 @@
}
},
"props": {
"formattedValue": "Nov 6, 2025 5:18 PM",
"formattedValue": "Nov 1, 2025 11:11 AM",
"minDate": {
"$": [
"ts",
@ -3090,7 +3090,7 @@
}
},
"props": {
"formattedValue": "Nov 6, 2025 5:48 PM",
"formattedValue": "Nov 8, 2025 11:11 AM",
"style": {
"margin": 15
},
@ -3098,9 +3098,9 @@
"$": [
"ts",
192,
1762436937350
1762933292970
],
"$ts": 1762436937350
"$ts": 1762585860000
}
},
"scripts": {
@ -3478,7 +3478,7 @@
},
"transforms": [
{
"code": "\tfrom system.dataset import toPyDataSet\n\t\n\tds \u003d toPyDataSet(value)\n\tcolumn_names \u003d list(ds.columnNames)\n\t\n\t# Pre-create style dict to reuse (saves memory)\n\tstyle_dict \u003d {\"classes\": None}\n\t\n\t# Use list comprehension with pre-allocated style\n\tdata \u003d []\n\tfor row in ds:\n\t\tclassName \u003d row[\"Style\"]\n\t\tstyle_dict[\"classes\"] \u003d className\n\t\t\n\t\t# Create row dict efficiently\n\t\trow_dict \u003d {\n\t\t\tcol: {\n\t\t\t\t\"value\": row[col],\n\t\t\t\t\"style\": style_dict # Reuse same dict reference\n\t\t\t} for col in column_names\n\t\t}\n\t\tdata.append(row_dict)\n\t\n\treturn data",
"code": "\tfrom system.dataset import toPyDataSet\n\t\n\tds \u003d toPyDataSet(value)\n\tdata \u003d []\n\t\n\tcolumn_names \u003d list(ds.columnNames)\n\t\n\tfor row in ds:\n\t\t# Get the style class from the Style column returned by SQL\n\t\tclassName \u003d row[\"Style\"]\n\t\t\n\t\t# Apply style to each cell individually (required for Ignition Perspective tables)\n\t\trow_dict \u003d {\n\t\t\tcol: {\n\t\t\t\t\"value\": row[col],\n\t\t\t\t\"style\": {\"classes\": className}\n\t\t\t} for col in column_names\n\t\t}\n\t\tdata.append(row_dict)\n\t\n\treturn data",
"type": "script"
}
],

View File

@ -10,8 +10,8 @@
"attributes": {
"lastModification": {
"actor": "admin",
"timestamp": "2025-11-07T17:57:13Z"
"timestamp": "2025-11-12T07:38:19Z"
},
"lastModificationSignature": "4c5fb4085ea827e24994d3d6618e12c5a19e9bb36cb2e65570250f27c0bd3935"
"lastModificationSignature": "4acd2d6b575c5dd0c2cf198c1fe090ad6e177e2245e5823ebf4e5a975f6c13b6"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -10,8 +10,8 @@
"attributes": {
"lastModification": {
"actor": "admin",
"timestamp": "2025-11-11T14:56:27Z"
"timestamp": "2025-11-12T07:38:22Z"
},
"lastModificationSignature": "f60d74268a058aabf0bf19e61fd6e4ba4b2acfb79ea289525250b512f5435f6e"
"lastModificationSignature": "bc17d04e250a9c46b771585dfa30358bb7024ca65e515aa31d6647955df59fbe"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 B

After

Width:  |  Height:  |  Size: 76 B

View File

@ -10,8 +10,8 @@
"attributes": {
"lastModification": {
"actor": "admin",
"timestamp": "2025-11-11T14:55:52Z"
"timestamp": "2025-11-12T07:38:23Z"
},
"lastModificationSignature": "181ba00db385a03b504e820ed112ba8730e5f06c19aa41a0c21873f7a4d6dc55"
"lastModificationSignature": "4021b89b28f3251f20edb65402937f3b5cf618fba9218bd61b627aa05ff45348"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 660 B

After

Width:  |  Height:  |  Size: 81 B

View File

@ -10,8 +10,8 @@
"attributes": {
"lastModification": {
"actor": "admin",
"timestamp": "2025-11-11T17:24:27Z"
"timestamp": "2025-11-12T07:38:22Z"
},
"lastModificationSignature": "b08b9c199eaad9e96d7abd9f112f0055d081cf85bf93725a00272d0b9f79c3f7"
"lastModificationSignature": "9d75fe7e082ccdbed324f9f807e1df55144f46fdc1a84416fe8f037690b08634"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 B

After

Width:  |  Height:  |  Size: 85 B

View File

@ -10,8 +10,8 @@
"attributes": {
"lastModification": {
"actor": "admin",
"timestamp": "2025-11-11T14:55:24Z"
"timestamp": "2025-11-12T07:38:25Z"
},
"lastModificationSignature": "420a7dd10fddfefbe2c796c4ab65cd2e66b287ce982f723a31b6972f4680785e"
"lastModificationSignature": "89aa0ee5fcdb13860bab0e84a4acfc5629834b81680ae70a27d4310f037fd2a9"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 514 B

After

Width:  |  Height:  |  Size: 72 B

View File

@ -10,8 +10,8 @@
"attributes": {
"lastModification": {
"actor": "admin",
"timestamp": "2025-11-11T14:16:47Z"
"timestamp": "2025-11-12T07:38:27Z"
},
"lastModificationSignature": "a7d468a20ed98b8f182d9803102f1805b7c3895a1590e66a62faec74e35929fd"
"lastModificationSignature": "2c920fe51abf2ac44fd6f42a263027f8fbf4bec3d383e774ce211230273ddb8c"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -10,8 +10,8 @@
"attributes": {
"lastModification": {
"actor": "admin",
"timestamp": "2025-11-11T12:40:50Z"
"timestamp": "2025-11-12T07:50:38Z"
},
"lastModificationSignature": "f6dc9ec737edab8b049799a612bc97e1e10a68d3e7dcafad31dc4180088b45e0"
"lastModificationSignature": "f3c27609427db4fbf1b9a5e9b807a93f20942e5e96abb89907104dadc978e24c"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 75 KiB

View File

@ -12,7 +12,7 @@
}
},
"params": {
"Tab_ID": 6,
"Tab_ID": 3,
"Table": "Status_tab"
},
"propConfig": {
@ -4327,190 +4327,6 @@
"viewPath": "",
"visible": true,
"width": ""
},
{
"align": "center",
"boolean": "checkbox",
"dateFormat": "MM/DD/YYYY",
"editable": false,
"field": "No Container Duration (Sec)",
"filter": {
"boolean": {
"condition": ""
},
"date": {
"condition": "",
"value": ""
},
"enabled": false,
"number": {
"condition": "",
"value": ""
},
"string": {
"condition": "",
"value": ""
},
"visible": "on-hover"
},
"footer": {
"align": "center",
"justify": "left",
"style": {
"classes": ""
},
"title": ""
},
"header": {
"align": "center",
"justify": "center",
"style": {
"classes": ""
},
"title": ""
},
"justify": "center",
"nullFormat": {
"includeNullStrings": false,
"nullFormatValue": "",
"strict": false
},
"number": "value",
"numberFormat": "00:00:00",
"progressBar": {
"bar": {
"color": "",
"style": {
"classes": ""
}
},
"max": 100,
"min": 0,
"track": {
"color": "",
"style": {
"classes": ""
}
},
"value": {
"enabled": true,
"format": "0,0.##",
"justify": "center",
"style": {
"classes": ""
}
}
},
"render": "auto",
"resizable": true,
"sort": "none",
"sortable": true,
"strictWidth": false,
"style": {
"classes": ""
},
"toggleSwitch": {
"color": {
"selected": "",
"unselected": ""
}
},
"viewParams": {},
"viewPath": "",
"visible": true,
"width": ""
},
{
"align": "center",
"boolean": "checkbox",
"dateFormat": "MM/DD/YYYY",
"editable": false,
"field": "Block Operation Duration (Sec)",
"filter": {
"boolean": {
"condition": ""
},
"date": {
"condition": "",
"value": ""
},
"enabled": false,
"number": {
"condition": "",
"value": ""
},
"string": {
"condition": "",
"value": ""
},
"visible": "on-hover"
},
"footer": {
"align": "center",
"justify": "left",
"style": {
"classes": ""
},
"title": ""
},
"header": {
"align": "center",
"justify": "center",
"style": {
"classes": ""
},
"title": ""
},
"justify": "center",
"nullFormat": {
"includeNullStrings": false,
"nullFormatValue": "",
"strict": false
},
"number": "value",
"numberFormat": "00:00:00",
"progressBar": {
"bar": {
"color": "",
"style": {
"classes": ""
}
},
"max": 100,
"min": 0,
"track": {
"color": "",
"style": {
"classes": ""
}
},
"value": {
"enabled": true,
"format": "0,0.##",
"justify": "center",
"style": {
"classes": ""
}
}
},
"render": "auto",
"resizable": true,
"sort": "none",
"sortable": true,
"strictWidth": false,
"style": {
"classes": ""
},
"toggleSwitch": {
"color": {
"selected": "",
"unselected": ""
}
},
"viewParams": {},
"viewPath": "",
"visible": true,
"width": ""
}
]
},
@ -4984,6 +4800,7 @@
},
"props": {
"params": {
"ip": "10.200.0.12",
"name": "MCM02",
"tagProps": [
"System/MCM02/MCM02",
@ -6896,6 +6713,7 @@
},
"props": {
"params": {
"ip": "10.200.0.11",
"name": "MCM01",
"tagProps": [
"System/MCM01/MCM01",
@ -13509,7 +13327,7 @@
}
},
"props": {
"currentTabIndex": 6,
"currentTabIndex": 3,
"menuStyle": {
"backgroundColor": "#FFFFFFBD"
},
@ -15052,17 +14870,17 @@
"$": [
"ts",
192,
1762844850394
1762933632873
],
"$ts": 1762844850393
"$ts": 1762933632871
},
"startDate": {
"$": [
"ts",
192,
1762844850394
1762933632873
],
"$ts": 1762843050393
"$ts": 1762931832871
}
},
"meta": {
@ -15235,7 +15053,7 @@
},
"props": {
"dismissOnSelect": false,
"formattedValue": "Nov 11, 2025 10:37 AM",
"formattedValue": "Nov 12, 2025 11:17 AM",
"formattedValues": {
"date": "Mar 26, 2021",
"datetime": "Mar 26, 2021 12:00 AM",
@ -15336,7 +15154,7 @@
},
"props": {
"dismissOnSelect": false,
"formattedValue": "Nov 11, 2025 11:07 AM",
"formattedValue": "Nov 12, 2025 11:47 AM",
"formattedValues": {
"date": "Mar 29, 2021",
"datetime": "Mar 29, 2021 1:37 PM",

View File

@ -1,50 +0,0 @@
SELECT
base.Total_Jam,
base.Inbound_jam,
base.Sorter_jam,
base.Startstamp,
base.Endtstamp,
1 AS Total_perc,
base.Inbound_jam / NULLIF(base.Total_Jam,0) AS Inbound_perc,
base.Sorter_jam / NULLIF(base.Total_Jam,0) AS Sorter_perc
FROM (
SELECT
MIN(a.eventtime) AS Startstamp,
MAX(COALESCE(c.eventtime, a.eventtime)) AS Endtstamp,
SUM(a.category = 'Inbound_jam') AS Inbound_jam,
SUM(a.category = 'Sorter_jam') AS Sorter_jam,
SUM(a.category IN ('Inbound_jam','Sorter_jam')) AS Total_Jam
FROM (
SELECT
ae.id,
ae.eventtime,
ae.eventid,
ae.displaypath AS device,
m.category
FROM alarm_events ae
JOIN (
SELECT 'UL15_1_TPE1' AS device, 'Inbound_jam' AS category UNION ALL
SELECT 'UL14_1_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_1_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_1_TPE2', 'Inbound_jam' UNION ALL
SELECT 'PS3_1_TPE3', 'Inbound_jam' UNION ALL
SELECT 'PS3_2_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_4_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_8_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_10_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_12_TPE1', 'Sorter_jam'
) AS m
ON ae.displaypath = m.device
WHERE ae.eventtype = 0
AND ae.eventtime BETWEEN :starttime AND :endtime
AND ae.displaypath NOT LIKE '%System Startup%'
AND ae.source NOT LIKE '%System Startup%'
) AS a
LEFT JOIN (
SELECT eventid, MIN(eventtime) AS eventtime
FROM alarm_events
WHERE eventtype = 1
GROUP BY eventid
) AS c
ON a.eventid = c.eventid
) AS base;

View File

@ -1,46 +0,0 @@
{
"scope": "DG",
"version": 2,
"restricted": false,
"overridable": true,
"files": [
"query.sql"
],
"attributes": {
"useMaxReturnSize": false,
"autoBatchEnabled": false,
"fallbackValue": "",
"maxReturnSize": 100,
"cacheUnit": "SEC",
"type": "Query",
"enabled": true,
"cacheAmount": 1,
"cacheEnabled": false,
"database": "MariaDB",
"fallbackEnabled": false,
"lastModificationSignature": "7557acfe0824d24f5687dffb7cc65bb4e9459f6a835123e31b8aa15484d321ba",
"permissions": [
{
"zone": "",
"role": ""
}
],
"lastModification": {
"actor": "external",
"timestamp": "2025-10-20T13:55:55Z"
},
"syntaxProvider": "class com.adbs.syntax.MySQLSyntaxProvider",
"parameters": [
{
"type": "Parameter",
"identifier": "endtime",
"sqlType": 8
},
{
"type": "Parameter",
"identifier": "starttime",
"sqlType": 8
}
]
}
}

View File

@ -1,40 +0,0 @@
-- Step 1: generate dates using a numbers table (0 to 17 for 15 past + today + 2 future)
SELECT
DATE(DATE_ADD(CURDATE(), INTERVAL n.n - 15 DAY)) AS jam_day,
COALESCE(SUM(CASE WHEN a.category = 'Inbound_jam' THEN 1 ELSE 0 END), 0) AS Inbound_jam,
COALESCE(SUM(CASE WHEN a.category = 'Sorter_jam' THEN 1 ELSE 0 END), 0) AS Sorter_jam
FROM (
SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3
UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7
UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION ALL SELECT 11
UNION ALL SELECT 12 UNION ALL SELECT 13 UNION ALL SELECT 14 UNION ALL SELECT 15
UNION ALL SELECT 16 UNION ALL SELECT 17
) AS n
LEFT JOIN (
SELECT
DATE(ae.eventtime) AS event_day,
CASE
WHEN m.category IS NOT NULL THEN m.category
ELSE 'Unknown'
END AS category
FROM alarm_events ae
JOIN (
SELECT 'UL15_1_TPE1' AS device, 'Inbound_jam' AS category UNION ALL
SELECT 'UL14_1_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_1_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_1_TPE2', 'Inbound_jam' UNION ALL
SELECT 'PS3_1_TPE3', 'Inbound_jam' UNION ALL
SELECT 'PS3_2_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_4_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_8_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_10_TPE1', 'Inbound_jam' UNION ALL
SELECT 'PS3_12_TPE1', 'Sorter_jam'
) AS m ON ae.displaypath = m.device
WHERE ae.eventtype = 0
AND ae.eventtime BETWEEN DATE_SUB(CURDATE(), INTERVAL 15 DAY)
AND DATE_ADD(CURDATE(), INTERVAL 2 DAY)
AND ae.displaypath NOT LIKE '%System Startup%'
AND ae.source NOT LIKE '%System Startup%'
) AS a ON DATE(DATE_ADD(CURDATE(), INTERVAL n.n - 15 DAY)) = a.event_day
GROUP BY jam_day
ORDER BY jam_day ASC;

View File

@ -1,46 +0,0 @@
{
"scope": "DG",
"version": 2,
"restricted": false,
"overridable": true,
"files": [
"query.sql"
],
"attributes": {
"useMaxReturnSize": false,
"autoBatchEnabled": false,
"fallbackValue": "",
"maxReturnSize": 100,
"cacheUnit": "SEC",
"type": "Query",
"enabled": true,
"cacheAmount": 1,
"cacheEnabled": false,
"database": "MariaDB",
"fallbackEnabled": false,
"lastModificationSignature": "44454ee0b488532c66a8014c01fa770f86a71b7840bd399aa2e4f99d1719f5ec",
"permissions": [
{
"zone": "",
"role": ""
}
],
"lastModification": {
"actor": "external",
"timestamp": "2025-10-20T13:55:55Z"
},
"syntaxProvider": "class com.adbs.syntax.MySQLSyntaxProvider",
"parameters": [
{
"type": "Parameter",
"identifier": "starttime",
"sqlType": 8
},
{
"type": "Parameter",
"identifier": "endtime",
"sqlType": 8
}
]
}
}

View File

@ -1,66 +0,0 @@
-- Generate all lanes 101-124 excluding 102, 104, 106
WITH DesiredLanes AS (
SELECT 101 + n AS lane_number
FROM (
SELECT a.N + b.N * 10 AS n
FROM (SELECT 0 AS N UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4
UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) a,
(SELECT 0 AS N UNION SELECT 1 UNION SELECT 2) b
) numbers
WHERE n <= 23 -- 101 to 124
AND (101 + n) NOT IN (102, 104, 106)
),
-- Aggregate Full alarms per lane
FullAlarms AS (
SELECT
aed.strValue AS myLocation,
COUNT(*) AS FullCount,
SUM(TIMESTAMPDIFF(SECOND, ae.eventtime, COALESCE(ae_clear.eventtime, NOW()))) AS FullDuration
FROM alarm_events ae
LEFT JOIN alarm_events ae_clear
ON ae.eventid = ae_clear.eventid AND ae_clear.eventtype = 1
JOIN alarm_event_data aed
ON aed.id = ae.id AND aed.propname = 'myLocation'
WHERE ae.eventtype = 0
AND ae.source LIKE '%Full%'
AND ae.source LIKE '%Chute%'
AND ae.eventtime BETWEEN :startDate AND :endDate
GROUP BY aed.strValue
),
-- Aggregate Jammed alarms per lane
JammedAlarms AS (
SELECT
aed.strValue AS myLocation,
COUNT(*) AS JamCount,
SUM(TIMESTAMPDIFF(SECOND, ae.eventtime, COALESCE(ae_clear.eventtime, NOW()))) AS JamDuration
FROM alarm_events ae
LEFT JOIN alarm_events ae_clear
ON ae.eventid = ae_clear.eventid AND ae_clear.eventtype = 1
JOIN alarm_event_data aed
ON aed.id = ae.id AND aed.propname = 'myLocation'
WHERE ae.eventtype = 0
AND ae.source LIKE '%Jammed%'
AND ae.source LIKE '%Chute%'
AND ae.eventtime BETWEEN :startDate AND :endDate
GROUP BY aed.strValue
),
-- Combine Full and Jammed
Aggregated AS (
SELECT
dl.lane_number,
COALESCE(f.FullCount, 0) AS FullCount,
COALESCE(j.JamCount, 0) AS JamCount,
COALESCE(f.FullDuration, 0) AS FullDuration,
COALESCE(j.JamDuration, 0) AS JamDuration
FROM DesiredLanes dl
LEFT JOIN FullAlarms f ON f.myLocation = CONCAT('S03_CH', dl.lane_number)
LEFT JOIN JammedAlarms j ON j.myLocation = CONCAT('S03_CH', dl.lane_number)
)
SELECT
CONCAT('S03_CH', lane_number) AS Lane,
FullCount,
JamCount,
FullDuration,
JamDuration
FROM Aggregated
ORDER BY lane_number;

View File

@ -1,45 +0,0 @@
{
"scope": "DG",
"version": 2,
"restricted": false,
"overridable": true,
"files": [
"query.sql"
],
"attributes": {
"useMaxReturnSize": false,
"autoBatchEnabled": false,
"fallbackValue": "",
"maxReturnSize": 100,
"cacheUnit": "SEC",
"type": "Query",
"enabled": true,
"cacheAmount": 1,
"cacheEnabled": false,
"database": "MariaDB",
"fallbackEnabled": false,
"lastModificationSignature": "1d9f7b9546426656592ebd93a2a34acd305ff010c3802cc3825ba21d60b91a44",
"permissions": [
{
"zone": "",
"role": ""
}
],
"lastModification": {
"actor": "external",
"timestamp": "2025-10-20T13:55:55Z"
},
"parameters": [
{
"type": "Parameter",
"identifier": "startDate",
"sqlType": 8
},
{
"type": "Parameter",
"identifier": "endDate",
"sqlType": 8
}
]
}
}

View File

@ -1,15 +0,0 @@
SELECT alltable.t_stamp,
'S03' AS SorterName,
alltable.ParcelID,
'S03aa' AS ScannerName,
'0' AS IMGID,
alltable.ScanLabel,
alltable.ScanStatus,
alltable.Length,
alltable.AssignmentScanHist,
alltable.DivertStatus,
alltable.DEST_REQ,
alltable.ACTUAL_DEST,
alltable.SortCode
FROM alltable
WHERE alltable.t_stamp BETWEEN :starttime AND :endtime

View File

@ -1,45 +0,0 @@
{
"scope": "DG",
"version": 2,
"restricted": false,
"overridable": true,
"files": [
"query.sql"
],
"attributes": {
"useMaxReturnSize": false,
"autoBatchEnabled": false,
"fallbackValue": "",
"maxReturnSize": 100,
"cacheUnit": "SEC",
"type": "Query",
"enabled": true,
"cacheAmount": 1,
"cacheEnabled": false,
"database": "MariaDB",
"fallbackEnabled": false,
"lastModificationSignature": "906b62ad6a61f33093e08527f05d308febf13f8b024070719cb3ca3905effe64",
"permissions": [
{
"zone": "",
"role": ""
}
],
"lastModification": {
"actor": "admin",
"timestamp": "2025-09-26T09:30:10Z"
},
"parameters": [
{
"type": "Parameter",
"identifier": "endtime",
"sqlType": 8
},
{
"type": "Parameter",
"identifier": "starttime",
"sqlType": 8
}
]
}
}