5.7 KiB
Task: เอาข้อมูลชั่วโมงรวม, ชั่วโมง K, ชั่วโมง S, ชั่วโมง A ออกจาก Import พนักงาน
ก่อนเริ่มแก้ไข กรุณาอ่านและปฏิบัติตาม AGENTS.md อย่างเคร่งครัด และตรวจสอบโครงสร้างเดิมก่อนแก้ไข
เป้าหมาย
ปรับฟีเจอร์ Import พนักงาน ไม่ให้รับข้อมูลชั่วโมงสรุปจากไฟล์ Excel โดยตรง ได้แก่
- ชั่วโมงรวม
- ชั่วโมง K
- ชั่วโมง S
- ชั่วโมง A
เนื่องจากชั่วโมงเหล่านี้ต้องถูกคำนวณจาก Training Record จริงของพนักงาน ไม่ควรกรอกจากไฟล์ Import
สิ่งที่ต้องแก้ไข
-
ตรวจสอบไฟล์ที่ประกาศหัวตาราง Import เช่น
thaiImportTemplateHeaders -
ลบหัวตารางต่อไปนี้ออกจาก Template Import:
- ชั่วโมงรวม
- ชั่วโมง K
- ชั่วโมง S
- ชั่วโมง A
-
ตรวจสอบ API ดาวน์โหลด Template:
/api/import-employees/template- ให้ไฟล์ Excel Template ที่ดาวน์โหลด ไม่มีคอลัมน์ชั่วโมงรวม/K/S/A แล้ว
-
ตรวจสอบ Logic Parse Excel:
- ห้ามอ่านค่า
total_hours - ห้ามอ่านค่า
k_hours - ห้ามอ่านค่า
s_hours - ห้ามอ่านค่า
a_hours
- ห้ามอ่านค่า
-
ตรวจสอบ Validation:
- ลบ validation ที่บังคับหรือ validate ช่องชั่วโมงรวม/K/S/A
- ห้ามแจ้ง error หากไฟล์ไม่มีคอลัมน์เหล่านี้
-
ตรวจสอบ Import Logic:
- ห้ามนำค่าชั่วโมงรวม/K/S/A จาก Excel ไป update Employee หรือ Summary โดยตรง
- Summary ชั่วโมงต้องคำนวณใหม่จาก Training Record จริงเท่านั้น
-
ตรวจสอบ UI หน้า
/dashboard/import-employees:- ไม่ต้องแสดงข้อความว่า Import เป้าหมาย K/S/A
- ปรับข้อความให้เหลือเฉพาะ Import ข้อมูลพนักงานและประวัติการอบรม
- ไม่ต้องแสดงหัวตารางชั่วโมงรวม/K/S/A ในรายการหัวตาราง Template
ข้อความ UI ที่ต้องการ
แก้ข้อความคำอธิบายเป็นประมาณนี้:
- อัปโหลดไฟล์ Excel
.xlsxเพื่อเพิ่มหรืออัปเดตข้อมูลพนักงานและประวัติการอบรม - ระบบจะนับรหัสพนักงาน 1 รหัสเป็นพนักงาน 1 คน หากพนักงานมีหลายหลักสูตร ระบบจะสร้างข้อมูลพนักงานเพียง 1 รายการ และบันทึกประวัติการอบรมทุกหลักสูตรเป็น Training Record
- ระบบจะคำนวณชั่วโมงสรุปจาก Training Record ให้อัตโนมัติ
สิ่งที่ห้ามทำ
- ห้ามลบการบันทึก Training Record
- ห้ามลบ logic การคำนวณ Summary จาก Training Record
- ห้ามแก้ส่วนอื่นที่ไม่เกี่ยวข้อง
- ห้ามสร้าง schema/service/component ใหม่ถ้ามีของเดิมอยู่แล้ว
- ห้ามใช้ค่าชั่วโมงรวม/K/S/A จาก Excel เป็น source of truth
Acceptance Criteria
หลังแก้ไขต้องได้ผลลัพธ์ดังนี้:
-
Template Import ไม่มีคอลัมน์:
- ชั่วโมงรวม
- ชั่วโมง K
- ชั่วโมง S
- ชั่วโมง A
-
Import ไฟล์ที่ไม่มีคอลัมน์เหล่านี้ได้สำเร็จ
-
ระบบยังสร้าง Employee ได้ถูกต้อง:
- รหัสพนักงานเดียวกัน = Employee 1 รายการ
-
ระบบยังสร้าง Training Record ครบทุกแถว
-
Summary ชั่วโมงของพนักงานยังถูกคำนวณจาก Training Record จริง
-
หน้า
/dashboard/import-employeesแสดงข้อความถูกต้อง และไม่มีข้อความเกี่ยวกับการ Import เป้าหมาย K/S/A -
หลังแก้ไขเสร็จ ให้สรุปใน
report.mdว่า:- แก้ไฟล์ใดบ้าง
- ลบคอลัมน์ใดออก
- ปรับ logic ส่วนใด
- วิธีทดสอบ
- ผลการทดสอบ