Bug #27196
Updated by Suphawan Phiwngam 9 days ago
หน้า Machine Overview — ส่วน Performance section ตารางล่าง P% แสดงค่าผิดเมื่อ group by model
*ปัญหา*
* ## ปัญหา
ปัจจุบัน P% ใช้ **AVG ของ pRate แต่ละ job** → ถ้ามี job ที่ยังไม่มีการผลิต (run_time=0, pRate=100%) จะถูกนำมาเฉลี่ยด้วย ทำให้ค่าสูงกว่าความเป็นจริง
**ตัวอย่างจากรูป:**
* - MKP มี 4 jobs: job1 P%≈36.88%, job2-4 ยังไม่ผลิต (P%=100%)
* - AVG = (36.88 + 100 + 100 + 100) / 4 = **84.22%** ← แสดงอยู่ปัจจุบัน
* - Total ใช้ SUM(ideal)/SUM(run_time) = **36.88%** ← ค่าที่ถูกต้อง
*วิธีคำนวณที่ถูกต้อง* ## วิธีคำนวณที่ถูกต้อง
```
<pre>
P% = SUM(_totalIdeal) / SUM(_totalRunTime) × 100
</pre>
* ```
- คิดจาก total ideal / total run time ไม่ใช้ AVG per job
* - Job ที่ยังไม่มีการผลิต (run_time=0) จะไม่มีผลต่อ %
* - ใช้สูตรเดียวกับ Total row
*ไฟล์ที่เกี่ยวข้อง* ## ไฟล์ที่เกี่ยวข้อง
* - Frontend: `oee-web/src/routes/MachineDashboard/components/PerformanceSection/index.js` → `groupJobsByModel()` (เปลี่ยนจาก AVG เป็น SUM/SUM)
ดู screenshot แนบประกอบ
*ปัญหา*
* ## ปัญหา
ปัจจุบัน P% ใช้ **AVG ของ pRate แต่ละ job** → ถ้ามี job ที่ยังไม่มีการผลิต (run_time=0, pRate=100%) จะถูกนำมาเฉลี่ยด้วย ทำให้ค่าสูงกว่าความเป็นจริง
**ตัวอย่างจากรูป:**
* - MKP มี 4 jobs: job1 P%≈36.88%, job2-4 ยังไม่ผลิต (P%=100%)
* - AVG = (36.88 + 100 + 100 + 100) / 4 = **84.22%** ← แสดงอยู่ปัจจุบัน
* - Total ใช้ SUM(ideal)/SUM(run_time) = **36.88%** ← ค่าที่ถูกต้อง
*วิธีคำนวณที่ถูกต้อง* ## วิธีคำนวณที่ถูกต้อง
```
<pre>
P% = SUM(_totalIdeal) / SUM(_totalRunTime) × 100
</pre>
* ```
- คิดจาก total ideal / total run time ไม่ใช้ AVG per job
* - Job ที่ยังไม่มีการผลิต (run_time=0) จะไม่มีผลต่อ %
* - ใช้สูตรเดียวกับ Total row
*ไฟล์ที่เกี่ยวข้อง* ## ไฟล์ที่เกี่ยวข้อง
* - Frontend: `oee-web/src/routes/MachineDashboard/components/PerformanceSection/index.js` → `groupJobsByModel()` (เปลี่ยนจาก AVG เป็น SUM/SUM)
ดู screenshot แนบประกอบ