Files
alla-tms/plans/extract-total-hours.md
2026-07-16 09:53:14 +07:00

5.7 KiB

Task: เอาข้อมูลชั่วโมงรวม, ชั่วโมง K, ชั่วโมง S, ชั่วโมง A ออกจาก Import พนักงาน

ก่อนเริ่มแก้ไข กรุณาอ่านและปฏิบัติตาม AGENTS.md อย่างเคร่งครัด และตรวจสอบโครงสร้างเดิมก่อนแก้ไข

เป้าหมาย

ปรับฟีเจอร์ Import พนักงาน ไม่ให้รับข้อมูลชั่วโมงสรุปจากไฟล์ Excel โดยตรง ได้แก่

  • ชั่วโมงรวม
  • ชั่วโมง K
  • ชั่วโมง S
  • ชั่วโมง A

เนื่องจากชั่วโมงเหล่านี้ต้องถูกคำนวณจาก Training Record จริงของพนักงาน ไม่ควรกรอกจากไฟล์ Import

สิ่งที่ต้องแก้ไข

  1. ตรวจสอบไฟล์ที่ประกาศหัวตาราง Import เช่น thaiImportTemplateHeaders

  2. ลบหัวตารางต่อไปนี้ออกจาก Template Import:

    • ชั่วโมงรวม
    • ชั่วโมง K
    • ชั่วโมง S
    • ชั่วโมง A
  3. ตรวจสอบ API ดาวน์โหลด Template:

    • /api/import-employees/template
    • ให้ไฟล์ Excel Template ที่ดาวน์โหลด ไม่มีคอลัมน์ชั่วโมงรวม/K/S/A แล้ว
  4. ตรวจสอบ Logic Parse Excel:

    • ห้ามอ่านค่า total_hours
    • ห้ามอ่านค่า k_hours
    • ห้ามอ่านค่า s_hours
    • ห้ามอ่านค่า a_hours
  5. ตรวจสอบ Validation:

    • ลบ validation ที่บังคับหรือ validate ช่องชั่วโมงรวม/K/S/A
    • ห้ามแจ้ง error หากไฟล์ไม่มีคอลัมน์เหล่านี้
  6. ตรวจสอบ Import Logic:

    • ห้ามนำค่าชั่วโมงรวม/K/S/A จาก Excel ไป update Employee หรือ Summary โดยตรง
    • Summary ชั่วโมงต้องคำนวณใหม่จาก Training Record จริงเท่านั้น
  7. ตรวจสอบ 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

หลังแก้ไขต้องได้ผลลัพธ์ดังนี้:

  1. Template Import ไม่มีคอลัมน์:

    • ชั่วโมงรวม
    • ชั่วโมง K
    • ชั่วโมง S
    • ชั่วโมง A
  2. Import ไฟล์ที่ไม่มีคอลัมน์เหล่านี้ได้สำเร็จ

  3. ระบบยังสร้าง Employee ได้ถูกต้อง:

    • รหัสพนักงานเดียวกัน = Employee 1 รายการ
  4. ระบบยังสร้าง Training Record ครบทุกแถว

  5. Summary ชั่วโมงของพนักงานยังถูกคำนวณจาก Training Record จริง

  6. หน้า /dashboard/import-employees แสดงข้อความถูกต้อง และไม่มีข้อความเกี่ยวกับการ Import เป้าหมาย K/S/A

  7. หลังแก้ไขเสร็จ ให้สรุปใน report.md ว่า:

    • แก้ไฟล์ใดบ้าง
    • ลบคอลัมน์ใดออก
    • ปรับ logic ส่วนใด
    • วิธีทดสอบ
    • ผลการทดสอบ