Project

General

Profile

Feature #26948 » OEE-Overview-55inch-Display-Requirements.md

Suphawan Phiwngam, 05/08/2026 05:06 PM

 
1
# Requirements Specification: OEE Overview Dashboard สำหรับจอ 55 นิ้ว
2

    
3
**Feature:** OEE Overview 55-inch Display  
4
**Version:** 1.0  
5
**Date:** 2025-01-XX  
6
**Status:** Draft — รอ Dev Review
7

    
8
---
9

    
10
## Introduction
11

    
12
ฟีเจอร์นี้คือหน้า OEE Overview Dashboard ที่ออกแบบเฉพาะสำหรับจอแสดงผลขนาด 55 นิ้ว โดยมี URL แยกต่างหาก (แบบเดียวกับ Call Systems) เพื่อแสดงข้อมูล OEE ของเครื่องจักรทุกเครื่องทุก Zone ในหน้าจอเดียวโดยไม่ต้อง scroll ประกอบด้วย Gauge แสดงค่า OEE/Availability/Performance/Quality รวม และ Card Machine แยกตาม Zone พร้อม Filter สำหรับเลือกช่วงเวลา
13

    
14
---
15

    
16
## Glossary
17

    
18
| คำศัพท์ | ความหมาย |
19
|---------|----------|
20
| Dashboard_55inch | หน้า Overview Dashboard สำหรับจอ 55 นิ้ว (1920x1080 / 3840x2160) เข้าถึงผ่าน URL แยก |
21
| OEE | Overall Equipment Effectiveness = Availability × Performance × Quality |
22
| Availability | อัตราความพร้อมใช้งาน (เวลาเดินเครื่องจริง / เวลาที่วางแผนผลิต) |
23
| Performance | อัตราสมรรถนะ (จำนวนผลิตจริง / จำนวนที่ควรผลิตได้) |
24
| Quality | อัตราคุณภาพ (จำนวนชิ้นงานดี / จำนวนผลิตทั้งหมด) |
25
| Gauge | แผนภูมิวงกลมแสดงค่า % ของ OEE, A, P, Q |
26
| Card_Machine | การ์ดแสดงข้อมูล OEE ของเครื่องจักรแต่ละเครื่อง |
27
| Zone | กลุ่มเครื่องจักรตามพื้นที่ เช่น Die Casting, Finishing, Injection |
28
| Up_to_Date | ช่วงเวลาตั้งแต่เวลาเริ่มต้น Shift แรกของวันปัจจุบัน (ตาม setup) ถึง เวลาปัจจุบัน |
29
| Auto_Refresh | รีเฟรชข้อมูลอัตโนมัติ เลือกรอบได้: 5s, 15s, 30s, 1min, 3min, 5min หรือ Disable |
30
| Only_on_Job | กรองแสดงเฉพาะเครื่องที่มี Job เปิดอยู่ |
31
| Sidebar | แถบเมนูด้านซ้าย |
32
| Filter_Bar | แถบตัวกรองด้านบน |
33

    
34
---
35

    
36
## Requirements
37

    
38
### Req 1: URL แยกสำหรับจอ 55 นิ้ว
39

    
40
**User Story:** As a ผู้จัดการโรงงาน, I want to เข้าถึงหน้า OEE Overview ผ่าน URL แยกเฉพาะสำหรับจอ 55 นิ้ว, so that สามารถแสดงผลบนจอขนาดใหญ่ในพื้นที่โรงงานได้โดยไม่กระทบกับระบบหลัก
41

    
42
**Acceptance Criteria:**
43

    
44
| # | Criteria |
45
|---|----------|
46
| 1.1 | มี URL path แยกจากระบบ OEE หลัก (แบบเดียวกับ Call Systems) ไม่ต้องผ่านหน้า login |
47
| 1.2 | แสดงหน้า Overview ในโหมด read-only ไม่ต้อง login ไม่มี navigation link ไปหน้าที่ต้อง auth |
48
| 1.3 | แสดงผล full viewport ไม่มี horizontal/vertical scroll — target resolution หลักคือ 1920x1080 (4K ใช้ browser scaling) |
49
| 1.4 | หากโหลดข้อมูลไม่ได้ → แสดงข้อความแจ้งสถานะ + layout ปกติ + ค่า OEE/A/P/Q เป็น "N/A" |
50

    
51
---
52

    
53
### Req 2: Sidebar แสดง OEE Overall พร้อม Drill-down
54

    
55
**User Story:** As a ผู้จัดการโรงงาน, I want to เห็น sidebar ที่แสดง OEE Overall และ drill-down ลงไป Zone/Machine ได้, so that สามารถเลือกดูข้อมูลเฉพาะ Zone หรือเครื่องจักรที่สนใจได้
56

    
57
**Acceptance Criteria:**
58

    
59
| # | Criteria |
60
|---|----------|
61
| 2.1 | แสดงเมนู "OEE Overall" เป็นเมนูหลัก สามารถ drill-down ลงไป Zone → Machine ได้เหมือนระบบเดิม |
62
| 2.2 | ไม่แสดงเมนู "Support MC" (ตัดออก) |
63
| 2.3 | Default เป็น collapsed (icon only) กว้างไม่เกิน 80px |
64
| 2.4 | ตำแหน่ง fixed ด้านซ้าย ไม่ซ้อนทับพื้นที่แสดงผลหลัก |
65
| 2.5 | เลือก Zone จาก Sidebar → Gauge + Card แสดงเฉพาะ scope ของ Zone ที่เลือก |
66
| 2.6 | เลือก Machine จาก Sidebar → Gauge + Card แสดงเฉพาะเครื่องที่เลือก |
67

    
68
---
69

    
70
### Req 3: Filter Bar ด้านบน
71

    
72
**User Story:** As a ผู้จัดการโรงงาน, I want to เลือกช่วงเวลาและโหมดการแสดงผลผ่าน Filter Bar, so that สามารถดูข้อมูล OEE ในช่วงเวลาที่ต้องการได้
73

    
74
**Acceptance Criteria:**
75

    
76
| # | Criteria |
77
|---|----------|
78
| 3.1 | แสดงตัวเลือกช่วงเวลา: Up to date, Weekly, Monthly, Custom |
79
| 3.2 | แสดงตัวเลือก Only on Job |
80
| 3.3 | แสดงตัวเลือก Auto Refresh (เปิด/ปิด) |
81
| 3.4 | "Up to date" → ข้อมูลตั้งแต่เวลาเริ่มต้น Shift แรกของวันปัจจุบัน (ตาม setup) ถึง เวลาปัจจุบัน |
82
| 3.5 | "Weekly" → ข้อมูลสัปดาห์ปัจจุบัน เริ่มวันเริ่มต้นสัปดาห์ตาม codeTable (default: จันทร์) เวลา Shift แรก ถึง เวลาปัจจุบัน |
83
| 3.6 | "Monthly" → ข้อมูลเดือนปัจจุบัน เริ่มวันที่ 1 เวลา Shift แรก ถึง เวลาปัจจุบัน |
84
| 3.7 | "Custom" → date picker เลือก From/To เมื่อเลือกฝั่งใดฝั่งหนึ่งแล้ว disable วันที่ใน calendar ที่เกิน 3 เดือนจากวันที่เลือกไว้ |
85
| 3.8 | กรณี edge case เลือกเกิน 3 เดือน → แจ้งเตือน + ไม่โหลดข้อมูล |
86
| 3.9 | เปลี่ยน filter → แสดง loading indicator + อัปเดตภายใน 5 วินาที |
87

    
88
---
89

    
90
### Req 4: Default State
91

    
92
**User Story:** As a ผู้จัดการโรงงาน, I want to เห็นหน้าจอแสดงค่า default ทันทีเมื่อเปิดหน้า, so that ไม่ต้องตั้งค่าทุกครั้งที่เปิดจอ
93

    
94
**Acceptance Criteria:**
95

    
96
| # | Criteria |
97
|---|----------|
98
| 4.1 | โหลด/refresh → ใช้ค่า default ทั้งหมดตามเดิมของหน้า Overview ที่มีอยู่แล้ว (Filter, Only_on_Job, Auto_Refresh) |
99
| 4.2 | โหลด/refresh → แสดง OEE Overall พร้อม Gauge + Card_Machine ภายใน 5 วินาที |
100
| 4.3 | หากโหลดก่อนเวลา Shift แรก → แสดงข้อมูลตั้งแต่เวลา Shift แรกของวันก่อนหน้า ถึง เวลาปัจจุบัน |
101
| 4.4 | หากไม่มีข้อมูล → Gauge = 0% ทุกตัว + Card_Machine ค่า OEE/A/P/Q = 0% |
102

    
103
---
104

    
105
### Req 5: Gauge แสดงค่า OEE รวม
106

    
107
**User Story:** As a ผู้จัดการโรงงาน, I want to เห็น Gauge แสดงค่า OEE, Availability, Performance, Quality รวมทั้งโรงงาน, so that ทราบสถานะประสิทธิภาพโดยรวมได้ทันที
108

    
109
**Acceptance Criteria:**
110

    
111
| # | Criteria |
112
|---|----------|
113
| 5.1 | แสดง Gauge 4 ตัว: Overall OEE, Availability, Performance, Quality ตามรูปแบบเดิมของ Overview |
114
| 5.2 | แสดงค่า % พร้อม Target line + color coding (แดง/เหลือง/เขียว) ตามเดิม |
115
| 5.3 | แต่ละ Gauge แสดงค่าแยกตาม Zone ด้านล่าง (เช่น Die Casting Zone xx%, Finishing Zone xx%) |
116
| 5.4 | คำนวณค่ารวมจากเครื่องจักรทุกเครื่องทุก Zone ที่แสดงอยู่ |
117
| 5.5 | เปลี่ยน Filter → อัปเดตค่าภายใน 3 วินาที |
118
| 5.6 | ไม่มีเครื่องจักรแสดง → Gauge = 0.0% ทั้ง 4 ตัว |
119

    
120
---
121

    
122
### Req 6: Card Machine แสดงครบทุกเครื่องทุก Zone
123

    
124
**User Story:** As a ผู้จัดการโรงงาน, I want to เห็น Card Machine ของทุกเครื่องจักรทุก Zone ในหน้าจอเดียว, so that สามารถมองเห็นสถานะเครื่องจักรทั้งหมดได้โดยไม่ต้อง scroll
125

    
126
**Acceptance Criteria:**
127

    
128
| # | Criteria |
129
|---|----------|
130
| 6.1 | แสดง Card_Machine ทุกเครื่องทุก Zone ในหน้าจอเดียว |
131
| 6.2 | ไม่มี vertical scroll bar |
132
| 6.3 | แต่ละ Card แสดง: ชื่อเครื่อง + สถานะ badge (Running/Standby/Not Running/Offline) + OEE/A/P/Q % ทศนิยม 1 ตำแหน่ง |
133
| 6.4 | เครื่องไม่มีข้อมูล → แสดง "N/A" ทุกค่า |
134

    
135
---
136

    
137
### Req 7: การแยก Zone
138

    
139
**User Story:** As a ผู้จัดการโรงงาน, I want to เห็น Card Machine จัดกลุ่มตาม Zone, so that สามารถเปรียบเทียบประสิทธิภาพระหว่าง Zone ได้ง่าย
140

    
141
**Acceptance Criteria:**
142

    
143
| # | Criteria |
144
|---|----------|
145
| 7.1 | จัดกลุ่ม Card ตาม Zone + แสดงชื่อ Zone เป็น header เรียงตามลำดับในระบบ |
146
| 7.2 | แสดง Zone ทั้งหมดใน OEE Overall ที่มี support_mc = false |
147
| 7.3 | Card ภายใน Zone เรียงตาม Machine Name |
148
| 7.4 | Zone ไม่มี Card แสดง (เช่น Only_on_Job) → ซ่อน Zone header |
149

    
150
---
151

    
152
### Req 8: Auto Refresh
153

    
154
**User Story:** As a ผู้จัดการโรงงาน, I want to ให้หน้าจอรีเฟรชข้อมูลอัตโนมัติ, so that ข้อมูลบนจอ 55 นิ้วเป็นปัจจุบันเสมอ
155

    
156
**Acceptance Criteria:**
157

    
158
| # | Criteria |
159
|---|----------|
160
| 8.1 | แสดง dropdown เลือกรอบ: 5 seconds, 15 seconds, 30 seconds, 1 minute, 3 minutes, 5 minutes, Disable auto-refresh |
161
| 8.2 | Auto_Refresh เปิด → รีเฟรชตามรอบที่เลือก |
162
| 8.3 | เลือก "Disable auto-refresh" → หยุดรีเฟรช + คงข้อมูลล่าสุดไว้ |
163
| 8.4 | Default = "Refresh every 5 seconds" |
164
| 8.5 | รีเฟรชล้มเหลว (network error / API timeout 10 วินาที) → คงข้อมูลเดิม + แจ้งเตือน + retry รอบถัดไป |
165
| 8.6 | แสดง Last Updated timestamp บนหน้าจอ |
166

    
167
---
168

    
169
### Req 9: Only on Job Filter
170

    
171
**User Story:** As a ผู้จัดการโรงงาน, I want to กรองแสดงเฉพาะเครื่องจักรที่กำลังทำงาน, so that โฟกัสดูเฉพาะเครื่องที่มี Job อยู่ได้
172

    
173
**Acceptance Criteria:**
174

    
175
| # | Criteria |
176
|---|----------|
177
| 9.1 | เปิด Only_on_Job → แสดงเฉพาะ Card ที่มี Job + ซ่อน Card ที่ไม่มี Job |
178
| 9.2 | ปิด Only_on_Job → แสดง Card ทุกเครื่องทุก Zone |
179
| 9.3 | Only_on_Job เปิด → Gauge คำนวณเฉพาะเครื่องที่มี Job |
180
| 9.4 | Only_on_Job เปิด + Zone ไม่มีเครื่องที่มี Job → ซ่อน Zone header |
181
| 9.5 | Default = เปิด (แสดงเฉพาะเครื่องที่มี Job ตาม default เดิมของ Overview) |
182

    
183
---
184

    
185
### Req 10: การคำนวณค่า OEE/A/P/Q รวม
186

    
187
**User Story:** As a ผู้จัดการโรงงาน, I want to เห็นค่า OEE/A/P/Q รวมที่คำนวณถูกต้อง, so that ใช้ข้อมูลในการตัดสินใจได้อย่างแม่นยำ
188

    
189
**สูตรคำนวณ:** ใช้สูตรเดิมของหน้า Overview ที่มีอยู่แล้ว (ไม่เปลี่ยนแปลง logic การคำนวณ)
190

    
191
**Acceptance Criteria:**
192

    
193
| # | Criteria |
194
|---|----------|
195
| 10.1 | ใช้สูตรคำนวณ OEE/A/P/Q รวมตามเดิมของหน้า Overview ที่มีอยู่แล้ว |
196
| 10.2 | Card แต่ละใบ = OEE/A/P/Q เฉพาะเครื่องนั้น ตามช่วงเวลาที่เลือก (ทศนิยม 2 ตำแหน่ง) |
197
| 10.3 | ไม่มีเครื่องที่มีข้อมูล → Gauge = 0.00% + ข้อความ "ไม่มีข้อมูล" |
198
| 10.4 | เครื่องไม่มีข้อมูลการผลิต → ไม่นำมารวมคำนวณค่ารวม |
199

    
200
---
201

    
202
### Req 11: Layout หน้าจอเดียว
203

    
204
**User Story:** As a ผู้จัดการโรงงาน, I want to เห็นข้อมูลทั้งหมด (Gauge + Card Machine ทุก Zone) ในหน้าจอเดียว, so that ไม่ต้อง scroll หรือเปลี่ยนหน้าเพื่อดูข้อมูล
205

    
206
**Acceptance Criteria:**
207

    
208
| # | Criteria |
209
|---|----------|
210
| 11.1 | Gauge ด้านบน (≤25% viewport height) + Card แยก Zone ด้านล่าง (พื้นที่ที่เหลือ) |
211
| 11.2 | Layout พอดี viewport จอ TV 55" (1920x1080) ไม่มี vertical scroll |
212
| 11.3 | ขนาดตัวอักษรคงที่ (ไม่ปรับ responsive) ออกแบบให้อ่านได้ชัดบนจอ 55" |
213
| 11.4 | แสดง Card ต่อแถวให้ได้มากที่สุดตามความเหมาะสมของ layout (เพิ่มจากเดิม 4 ใบ) โดยยังคงอ่านได้ชัดเจนบนจอ 55" |
214
| 11.5 | แยก Zone ด้วยสี background/border ที่แตกต่างชัดเจน มองแล้วแยกออกได้ทันทีว่า Zone ไหนมี Machine อะไร |
215
| 11.6 | Zone header แสดงจำนวนเครื่อง + สถานะสรุป (Running / Not Running / Standby / Offline) ตามเดิม |
216

    
217
---
218

    
219
## สรุปภาพรวม Layout
220

    
221
```
222
┌─────────────────────────────────────────────────────────────┐
223
│ [Sidebar]  │              Filter Bar                         │
224
│  OEE       │  [Up to date ▼] [Custom] [Only on Job] [Auto]  │
225
│  Overall   ├─────────────────────────────────────────────────│
226
│  (icon)    │   [Gauge OEE] [Gauge A] [Gauge P] [Gauge Q]    │
227
│            ├─────────────────────────────────────────────────│
228
│            │   DIE CASTING ZONE                              │
229
│            │   [Card1][Card2][Card3][Card4]...               │
230
│            ├─────────────────────────────────────────────────│
231
│            │   FINISHING ZONE                                 │
232
│            │   [Card1][Card2][Card3]...                       │
233
│            ├─────────────────────────────────────────────────│
234
│            │   INJECTION ZONE                                 │
235
│            │   [Card1][Card2][Card3][Card4]...               │
236
└─────────────────────────────────────────────────────────────┘
237
```
238

    
239
---
240

    
241
## หมายเหตุสำหรับ Dev
242

    
243
- URL แยกแบบ Call Systems → ไม่ต้อง auth, read-only
244
- ใช้ API + สูตรคำนวณ OEE/A/P/Q เดิมของหน้า Overview ทั้งหมด (ไม่เปลี่ยน logic)
245
- Target resolution หลัก: 1920x1080 (4K ใช้ browser scaling)
246
- Auto Refresh เป็น dropdown เลือกรอบได้: 5s / 15s / 30s / 1min / 3min / 5min / Disable (default = 5 seconds)
247
- Card แสดง 7-8 ใบต่อแถว (เพิ่มจากเดิม 4 ใบ) ขนาดตัวอักษรคงที่
248
- แต่ละ Card มี status badge (Running/Standby/Not Running/Offline) ตามเดิม
249
- แยก Zone ด้วยสี background/border ให้มองแยกออกชัดเจน
250
- Zone กรองเฉพาะ support_mc = false
251
- Sidebar drill-down ได้เหมือนเดิม แต่ตัด Support MC ออก
252
- เวลาเริ่มต้นทุก filter อ้างอิง Shift แรกจาก setup
253
- Weekly อ้างอิงวันเริ่มสัปดาห์จาก codeTable (default: จันทร์)
(2-2/2)