🧭

Task PP1-3 (ไก่จัง) — สรุปกระบวนการอย่างละเอียด สำหรับทีมพัฒนา

แหล่งข้อมูล: ชีต "Task PP1-3 ไก่จัง" · Task 1: ปรับหน้า Web PP7 สำหรับบุคคลภายนอก · Task 2: Flow การสรรหา 10 ขั้นตอน — ข้อ 1 โครงสร้างองค์กร · Task 3: ใบสมัครงาน upload + AI ดึงข้อมูล 3 ประเทศ · อัปเดต 30 ก.ย. 2569

← กลับหน้าหลัก PP7

🎯 ภาพรวม 3 Tasks

Task 1 — ปรับหน้า Web PP7 สำหรับบุคคลภายนอก

  • หน้า "ร่วมงานกับ PKG Group" → เมนูระบบรับสมัครงาน แยกตาม FU: THAI 🇹🇭 / RPLCG 🇱🇦 / RAFCOG 🇰🇭
  • แต่ละ FU โชว์ตำแหน่งงานว่างของบริษัทในสังกัด (THAI ~30 บริษัท, RPLCG 7, RAFCOG 4)
  • ระบบเพิ่ม/ลบ (เปิด–ปิด) บริษัทได้ — ใช้ ACTIVE/INACTIVE ไม่ลบข้อมูลจริง
  • Theme สีตาม FU: THAI = ส้ม, RPLCG = เหลือง, RAFCOG = แดง–น้ำเงิน (เหมือนแอปที่ลูกค้าภายนอกใช้)
  • เปิดสิทธิ์หน้ารับสมัครให้บุคคลทั่วไป + สมาชิก PKG เข้าใช้ได้เลย (ไม่ต้องล็อกอิน)
  • เมนู "🔄 Flow การสรรหา — 10 ขั้นตอน" เห็นเฉพาะสมาชิก PKG และใช้งานจริงเฉพาะ HR / BMC / ADM / ผู้รับใช้ทีม

Task 2 — Flow การสรรหา 10 ขั้นตอน · ข้อ 1 โครงสร้างองค์กร

  • คลิกเข้า "1. โครงสร้างองค์กร" แล้วเพิ่ม 4 เมนูย่อย:
    1. คีย์ขอโครงสร้าง (เฉพาะ BMC) — ฟอร์มจาก GAS link ที่กำหนด บันทึกลงฐานข้อมูล
    2. DATAโครงสร้างบริษัทภายนอก (เฉพาะ PAO) — set แทนบอร์ด จากคำขอของ BU
    3. DATAโครงสร้างบริษัทภายใน (เฉพาะ PAO) — เหมือนข้อ 2 แยก dataset
    4. Flowchart — โชว์ flowchart แต่ละ BU ตามโครงสร้างองค์กร (เงินเดือน) ให้ BU นำไปใช้กับหน่วยงานภายนอก
  • โครงสร้างที่ Approved แล้ว ดึงต่อไปเมนูที่ 2 "ขออัตรากำลังคน" ให้ BMC คีย์ขออัตรา โดยไม่ต้องคีย์บริษัท/หน่วยงาน/ตำแหน่ง/โครงสร้างเงินเดือนซ้ำ

Task 3 — ใบสมัครงาน Upload + AI ดึงข้อมูลอัตโนมัติ (3 ประเทศ)

  • PDPA Consent Gate — ต้องกดยินยอมก่อนเข้าฟอร์ม ทั้ง 3 ประเทศ (เก็บ consent_id/version/IP/device)
  • Upload บัตรประชาชน + ทะเบียนบ้าน + รูป + วุฒิ → OCR/Document AI เติมช่องฟอร์มอัตโนมัติ ลดการกรอก
  • AI Translation ทุกช่อง: TH→EN / LA→TH / KH→EN+TH เก็บทั้งต้นฉบับ+คำแปล ลงฐานข้อมูลรองรับการใช้ทั้ง 3 ประเทศ
  • Submit แล้ว แจ้งเตือน Telegram 2 ห้อง: super สรรหา PKG (-1001237535741) + ชุมชนคนหางาน (-1001528940221)
  • เพิ่มเมนู สมัครทั่วไป / สมัครขอฝึกงาน — ฝึกงานมีเฉพาะฝั่งไทย (ฟอร์มฝึกงาน + แจ้งเตือน Telegram แยกชุดข้อความ)
  • กำหนด Application Status กลาง NEW → … → HIRED เพื่อต่อ P1–P4 ได้ทันที
🔑 หัวใจของระบบ (ทุก Tasks): STRUCTURE DATABASE เป็น Single Source of Truth — เมื่อ PAO set และอนุมัติโครงสร้างใหม่ ข้อมูลชุดเดียวกันถูกใช้ทั้ง Flowchart และ Step 2 ขออัตรากำลังคน ไม่ต้องคีย์ซ้ำ ลดความผิดพลาด · และ Key chain หลักของ Task 1 คือ FU_ID → COMPANY_ID → BRANCH_ID → JOB_ID → APPLICANT_ID → APPLICATION_ID เชื่อมข้อมูลตั้งแต่หน้า Public จนถึง HR และ Flow 10 ขั้นตอน

🟠 Task 1 — ปรับหน้า Web PP7 สำหรับบุคคลภายนอก (ระบบรับสมัครงานออนไลน์)

1.1 โครงสร้างเมนูหน้า Public

เมนูหลัก
   ↓
หน้า "ร่วมงานกับ PKG Group — ระบบรับสมัครงานออนไลน์ที่ทันสมัย ง่าย และรวดเร็ว"
   ↓
เมนู ระบบรับสมัครงาน  →  แยก FU:
   ├── 1.1 🇹🇭 THAI   (link สมัครงานภาษาไทย)   → โชว์ตำแหน่งงานว่าง → form-register.html
   │        └── 🎓 สมัครขอฝึกงาน → form-trainee.html (มีเฉพาะฝั่งไทย — ยืนยัน 30 ก.ย. 69)
   ├── 1.2 🇱🇦 RPLCG  (link สมัครงานภาษาลาว)    → โชว์ตำแหน่งงานว่าง → form-register.html
   └── 1.3 🇰🇭 RAFCOG (link สมัครงานเขมร&อังกฤษ) → โชว์ตำแหน่งงานว่าง → form-register.html

FU MASTER — ใช้ระบบเดียว FU_ID ควบคุมข้อมูล + Theme (ไม่สร้างเว็บแยก 3 ชุด)

FU_IDFUภาษาThemeผู้ใช้งาน
FU01THAITH (+EN)🟠 ส้มผู้สมัครทั่วไป + สมาชิก PKG
FU02RPLCGLA🟡 เหลืองผู้สมัครทั่วไป + สมาชิก PKG
FU03RAFCOGKH / EN🔴🔵 แดง–น้ำเงินผู้สมัครทั่วไป + สมาชิก PKG

ฟิลด์ FU Master: FU_ID, FU_CODE, FU_NAME, DEFAULT_LANGUAGE, THEME_COLOR, LOGO, STATUS, SORT_ORDER, CREATED_DATE — อนาคตมี FU04 เพียงเพิ่มข้อมูลใน Master ไม่ต้องเขียนเว็บใหม่

Dynamic Theme — Component เดียวกัน เปลี่ยนแค่ FU_ID / Language / Theme / Logo / Company List / Job List

/FU → /company → /branch → /jobs → /job-detail → /application

1.2 รายชื่อบริษัทแต่ละ FU (ตามข้อมูลในชีต — ใช้เป็น seed data ของ COMPANY_MASTER)

🇹🇭 THAI (29+ รายการ)

  1. บริษัท ประชากิจมอเตอร์เซลส์ จำกัด
  2. บริษัท เอเอเอ็ม แคปปิตอลเซอร์วิส จำกัด (สำนักงานใหญ่ + 6 สาขา: กบินทร์บุรี, นครนายก, ปลวกแดง, ศรีนครินทร์, สระบุรี, วังน้ำเย็น)
  3. บริษัท พีเอ็มเอส คัสตอมเมอร์เซอร์วิส จำกัด
  4. บริษัท เอเอเอ็ม บุรีรัมย์ จำกัด
  5. บริษัท เกษตรไทย ลิสซิ่ง จำกัด
  6. บริษัท เกษตรไทย ลิสซิ่ง บึงกาฬ จำกัด
  7. บริษัท เอเอเอ็ม ฉะเชิงเทรา จำกัด
  8. บริษัท อีเอซี กาญจนบุรี จำกัด
  9. บริษัท เอเอเอ็ม ลพบุรี จำกัด
  10. บริษัท เอเอเอ็ม แคปปิตอล เซอร์วิส พัทยา จำกัด
  11. บริษัท เอเอเอ็ม มุกดาหาร จำกัด
  12. บริษัท เอเอเอ็ม แคปปิตอล เซอร์วิส นนทบุรี จำกัด
  13. บริษัท เอเอเอ็ม ปากช่อง จำกัด
  14. บริษัท พีซีแอล แคปปิตอล เซอร์วิส จำกัด
  15. บริษัท พีเอ็มเอส แคปปิตอล เซอร์วิส จำกัด
  16. บริษัท พรีเชียส สโตน แอสเซท เมแนจเมนท์ จำกัด
  17. บริษัท สระแก้วลิสซิ่ง จำกัด
  18. บริษัท อาร์วายแอล แคปปิตอล เซอร์วิส จำกัด
  19. บริษัท อีเอซี ราชบุรี จำกัด
  20. บริษัท เอเอเอ็ม ตะเคียนคู่ จำกัด
  21. บริษัท เอเอเอ็ม สกลนคร จำกัด
  22. บริษัท เอเอเอ็ม สุรินทร์ จำกัด
  23. บริษัท เอเอเอ็ม แคปปิตอลเซอร์วิส พระยาสัจจา จำกัด
  24. บริษัท เอเอเอ็ม แคปปิตอล เซอร์วิส สอยดาว จำกัด
  25. บริษัท เอเอเอ็ม แคปปิตอล เซอร์วิส อุดรดุษฎี จำกัด
  26. บริษัท เอเอ็นเอฟ เทรดดิ้ง จำกัด
  27. บริษัท แอจจิลซอฟท์ คอร์ปอเรชั่น จำกัด
  28. บริษัท 21ซีที รีเสิร์ท จำกัด
  29. บริษัท ไซฟินเวสท์ ดิจิตอล โบรคเกอร์ จำกัด
  30. บริษัท ศูนย์พัฒนาผู้นำ จำกัด
  31. บริษัท เล็นด์เอ็กซ์ จำกัด

🇱🇦 RPLCG (7 รายการ)

  1. บริษัท ร่วมพัฒนา เช่าสินเชื่อ จำกัด
  2. ร้านจะเลินมอเตอร์ (ส่วนบุคคล)
  3. ร้านหลวงพะบางมอเตอร์เซลล์ (ส่วนบุคคล)
  4. ร้านเวียงมอเตอร์ (ส่วนบุคคล)
  5. ร้านมงคลมอเตอร์ สะหวันเขต
  6. สถาบันการเงินจุละพากที่ไม่รับฝากเงิน ราฟโค ไฟแนนซ์เชียล ลาว จำกัด (ผู้เดียว)
  7. บริษัท เพ็ดจะเลินบริการ จำกัด (ผู้เดียว)

🇰🇭 RAFCOG (4 รายการ)

  1. บริษัท ราฟโค ไฟแนนเซียล (เขมโบเดีย) จำกัดมหาชน
  2. บริษัท เอไอไอแอล แคปปิตอล พาร์ทเนอร์ จำกัด
  3. FIV INVESTMENT TRUST KH CO.,LTD.
  4. บริษัท เนทีฟ ไฟแนนเชี่ยล เทคโนโลยี เคเอช จำกัด
⚠️ ข้อควรแก้ก่อนเริ่มพัฒนา (จากข้อมูลชีต): ลำดับเลขบริษัทในข้อมูลต้นทางไม่ต่อเนื่องและมีรายการซ้ำ — "บริษัท พีซีแอล แคปปิตอล เซอร์วิส จำกัด" ปรากฏ 2 ครั้ง, เลข 1.1.24 / 1.1.26 หายไป, สาขาปลวกแดงซ้ำ → ให้ใช้ COMPANY_ID เป็นรหัสระบบ แทนเลขลำดับที่แสดงบนเว็บ เพื่อป้องกันปัญหาใน Database

1.3 เพิ่ม/ปิดบริษัท — COMPANY_MASTER + Admin Data Flow

โครงสร้าง COMPANY_MASTER

COMPANY_MASTER
├── COMPANY_ID  (PK — รหัสระบบ ไม่ใช่เลขลำดับหน้าเว็บ)
├── FU_ID       (FK → M_FU)
├── COMPANY_CODE
├── COMPANY_NAME_TH / _EN / _LA / _KH
├── COMPANY_TYPE
├── STATUS      (ACTIVE / INACTIVE)
├── DISPLAY_ORDER
├── EFFECTIVE_DATE / CLOSE_DATE
└── CREATED_BY / CREATED_DATE / UPDATED_BY / UPDATED_DATE

BRANCH_MASTER (แยกสาขาออกจากบริษัท)

BRANCH_MASTER
├── BRANCH_ID / COMPANY_ID (FK)
├── BRANCH_CODE / BRANCH_NAME
├── ADDRESS / PROVINCE / DISTRICT
├── STATUS / DISPLAY_ORDER / UPDATED_DATE

Logic เปิด–ปิดบริษัท

เปิดบริษัท → STATUS = ACTIVE
   → แสดงหน้า Web → เปิดตำแหน่งงานได้

ปิดบริษัท → STATUS = INACTIVE
   → ไม่แสดงหน้า Web
   → ห้ามสร้าง Job ใหม่
   → Jobs ที่เปิดอยู่ = CLOSED
   → ข้อมูล Application เดิมยังคงอยู่ (ห้ามลบ)
   → Audit Log บันทึกผู้ดำเนินการ

หน้า Admin: ⚙️ Admin > Master Data > บริษัท

  • ปุ่ม "+ เพิ่มบริษัท" — ระบุ บริษัท / FU / สถานะ / ลำดับแสดงผล / วันที่เริ่มใช้ / วันที่ปิด
  • การ์ดบริษัทแสดงสถานะ 🟢 เปิดใช้งาน พร้อมปุ่ม [แก้ไข] [ปิดบริษัท] → มี CONFIRM ก่อนปิด
  • ห้าม Delete บริษัทจริง — ใบสมัครเก่า/ประวัติต้องอ้างอิงบริษัทเดิมได้ (Soft-close เท่านั้น)

1.4 Job Posting → Application → Applicant DB (Data Flow ระดับผู้ใช้)

Public User journey (ระดับเมนูหน้าเว็บ):
หน้าแรก → ร่วมงานกับ PKG Group → ระบบรับสมัครงาน
→ เลือก FU (THAI / RPLCG / RAFCOG)
→ เลือกบริษัท → เลือกสาขา → ดูตำแหน่งงานว่าง
→ เลือกตำแหน่ง → สมัครงาน → PDPA Consent
→ กรอกใบสมัคร → Upload เอกสาร → Submit
→ สร้าง Applicant ID → บันทึก DB1 Applicant
→ แสดงเลขที่ใบสมัคร → ติดตามสถานะ

หมายเหตุ: หน้าเว็บปัจจุบันมีขั้นตอน
ลงทะเบียน → เลือกตำแหน่ง → กรอกใบสมัคร → รอผล
อยู่แล้ว โครงสร้างใหม่ต่อยอดของเดิมได้โดยไม่ต้อง
เปลี่ยนแนวคิดหลัก

JOB_POSTING

COMPANY → BRANCH → TEAM/FUNCTION → POSITION → JOB POSTING → OPEN/CLOSE

JOB_POSTING
├── JOB_ID / FU_ID / COMPANY_ID / BRANCH_ID
├── TEAM_ID / POSITION_ID
├── JOB_TITLE_TH/_EN/_LA/_KH
├── JOB_DESCRIPTION / QUALIFICATION
├── SALARY_MIN / SALARY_MAX / NUMBER_OF_VACANCIES
├── OPEN_DATE / CLOSE_DATE / STATUS
└── CREATED_BY / UPDATED_DATE

Applicant Submit Flow

Applicant → เลือก FU → เลือก Company → เลือก Branch
→ เลือก Job → PDPA Consent → กรอกข้อมูล
→ Upload File → Validate Data
→ Generate Applicant ID → Save DB1

ข้อมูลที่ฟอร์มต้องรองรับ (จากแบบฟอร์มปัจจุบัน):
ตำแหน่ง · ข้อมูลส่วนตัว · ที่อยู่ · การศึกษา ·
บัตรประชาชน · รูปถ่าย · ความสามารถ ·
ประสบการณ์ทำงาน · บุคคลอ้างอิง · ข้อมูลทั่วไป ·
เอกสารประกอบ

1.5 โครงสร้าง Database (DB1 = Applicant Stock — แยก APPLICANT ออกจาก APPLICATION)

DB1 : APPLICANT STOCK
APPLICANT
├── APPLICANT_PROFILE
├── APPLICANT_ADDRESS
├── APPLICANT_EDUCATION
├── APPLICANT_SKILL
├── APPLICANT_LANGUAGE
├── APPLICANT_EXPERIENCE
├── APPLICANT_FAMILY
├── APPLICANT_REFERENCE
├── APPLICANT_DOCUMENT
└── PDPA_CONSENT

APPLICATION (แยกการสมัครแต่ละครั้ง)
├── APPLICATION_ID / APPLICANT_ID
├── FU_ID / COMPANY_ID / BRANCH_ID / JOB_ID
├── APPLY_DATE / SOURCE / STATUS

ข้อดี: ผู้สมัคร 1 คนสมัครหลายตำแหน่งได้โดยไม่ต้องกรอกข้อมูลส่วนตัวใหม่ทั้งหมด

Applicant A
 ├── Application #001 → AAM → พนักงานสินเชื่อ
 ├── Application #002 → PMSG → Customer Service
 └── Application #003 → AAM → เจ้าหน้าที่เร่งรัดหนี้

ตารางข้อมูลทั้งหมดที่ควรมี

MASTER: M_FU, M_COMPANY, M_BRANCH, M_TEAM,
        M_POSITION, M_LANGUAGE, M_RECRUITMENT_SOURCE
DB1:    APPLICANT (+ PROFILE/ADDRESS/EDUCATION/SKILL/
        LANGUAGE/EXPERIENCE/REFERENCE/DOCUMENT/PDPA_CONSENT)
RECRUIT: JOB_POSTING, APPLICATION, SCREENING, AI_ANALYSIS,
        INTERVIEW_SCHEDULE, INTERVIEW, INTERVIEW_SUMMARY,
        BACKGROUND_CHECK, JOB_OFFER, ONBOARDING
AUDIT:  USER, ROLE, PERMISSION, AUDIT_LOG

เชื่อม DB → Recruitment 10 Steps (ทุกขั้นตอนเชื่อมกันด้วย APPLICATION_ID)

01 BU REQUEST → 02 HEADCOUNT/STRUCTURE → 03 JOB POSTING → 04 APPLICATION → 05 SCREENING
→ 06 INTERVIEW SCHEDULE → 07 INTERVIEW → 08 BACKGROUND CHECK → 09 JOB OFFER/START DATE
→ 10 ONBOARDING → ส่งต่อ P4 PAO (รับเข้าระบบ)

Master Data Flow ฉบับ Developer ใช้เป็นหลัก

PUBLIC WEB PKG PP7 → Recruitment Landing (ร่วมงานกับ PKG) → SELECT FU (THAI/RPLCG/RAFCOG)
→ COMPANY MASTER → BRANCH MASTER → JOB POSTING → APPLICATION
→ [PDPA CONSENT + DOCUMENT] → APPLICANT DB (DB1) → RECRUITMENT FLOW 10 STEPS
→ [SCREENING · AI MATCH · INTERVIEW] → BACKGROUND CHECK → JOB OFFER → ONBOARDING → P4 PAO

1.6 สิทธิ์การเข้าถึง (แยก Public User กับ PKG Member ชัดเจน)

เมนูบุคคลทั่วไปสมาชิก PKGHR / BMC / ADMผู้รับใช้ทีม
ร่วมงานกับ PKG Group / ดู FU / ดูบริษัท / ดูตำแหน่งงาน / สมัครงาน / ลงทะเบียน–เข้าสู่ระบบ✅✅✅✅
Dashboard ผู้สมัครเฉพาะข้อมูลตนเองเฉพาะข้อมูลตนเองตามสิทธิ์ตามสิทธิ์
🔄 Flow การสรรหา 10 ขั้นตอน❌✅ (ดูได้)✅✅
จัดการ Company / เพิ่ม–ปิด Company / เปิด–ปิด Job❌❌✅ตามสิทธิ์
ดู Applicant DB / Screening / Interview / Background Check / Offer❌❌✅ตามสิทธิ์
หลักการ: "สมาชิก PKG" ไม่ได้แปลว่าเห็นข้อมูลผู้สมัครทั้งหมด
PKG MEMBER → Authentication → Role/Permission → Resource Access

Data flow สิทธิ์เมนู Flow 10 ขั้นตอน:
LOGIN → ตรวจสอบ USER
 ├─ PUBLIC USER → ไม่มีสิทธิ์
 └─ PKG MEMBER → ตรวจสอบ ROLE
      ├─ HR/BMC/ADM → FULL ACCESS
      ├─ ผู้รับใช้ทีม → ตามสิทธิ์ที่กำหนด
      └─ MEMBER ทั่วไป → VIEW ONLY
สิ่งที่ควรพัฒนา (สรุปจากชีต):
  1. FU Master (THAI/RPLCG/RAFCOG)
  2. Company Master — เพิ่ม/ปิดบริษัทโดยไม่ลบข้อมูลเก่า
  3. Branch Master (บริษัท → สาขา)
  4. Job Posting (บริษัท → สาขา → ตำแหน่ง)
  5. Dynamic Theme — สี/ภาษาตาม FU
  6. Applicant DB1 — Stock ผู้สมัคร
  7. Application — แยกการสมัครแต่ละครั้งจาก Profile
  8. PDPA Consent — เก็บประวัติการยินยอม
  9. Document Storage — รูป/วุฒิ/เอกสาร
  10. Recruitment Flow 10 ขั้นตอน เชื่อมด้วย APPLICATION_ID
  11. Role & Permission — Public / PKG Member / HR BMC ADM / ผู้รับใช้ทีม
  12. Audit Log — ทุกการเพิ่ม/แก้ไข/ปิดบริษัท/ตำแหน่ง/เปลี่ยนสถานะ
  13. Dashboard — Funnel และสถานะการสรรหา
  14. หลายภาษา TH/LA/KH/EN โดยไม่สร้างระบบแยก

🔵 Task 2 — Flow การสรรหา 10 ขั้นตอน · STEP 1: โครงสร้างองค์กร

2.1 ภาพรวมการทำงาน

PP7 WEB → Flow การสรรหา 10 ขั้นตอน → ① โครงสร้างองค์กร
   ├── 1. คีย์ขอโครงสร้าง (BMC ONLY) → BMC กรอกคำขอ → ตรวจสอบข้อมูล ─┐
   ├── 2. DATAโครงสร้างบริษัทภายนอก (PAO ONLY) ────────────────────┼→ STRUCTURE REQUEST DB
   └── 3. DATAโครงสร้างบริษัทภายใน (PAO ONLY) ────────────────────┘        ↓
                                              PAO ตรวจสอบ / Set โครงสร้างใหม่
                                                        ↓
                                          STRUCTURE DATABASE (Approved)
                                              ├──→ Flowchart บริษัท/BU
                                              └──→ STEP 2 ขออัตรากำลังคน → BMC ขออัตรา

เส้นทางเมนูที่ต้องเพิ่ม

PP7 → Flow การสรรหา — 10 ขั้นตอน → 1. โครงสร้างองค์กร
        ├── 1. คีย์ขอโครงสร้าง
        ├── 2. DATAโครงสร้างบริษัทภายนอก
        ├── 3. DATAโครงสร้างบริษัทภายใน
        └── 4. Flowchart

2.2 รายละเอียด 4 เมนูย่อย

เมนู 1 · คีย์ขอโครงสร้าง (สิทธิ์: BMC / PAO / ผู้รับใช้ทีม)

เข้า PP7 → Flow การสรรหา → 1.โครงสร้างองค์กร
→ คีย์ขอโครงสร้าง → ดึง Form → กรอกข้อมูล:
   BU · บริษัท · หน่วยงาน · ตำแหน่ง · จำนวนอัตรา
   · โครงสร้างเดิม · โครงสร้างที่ต้องการ · เหตุผล
   · รายละเอียดเพิ่มเติม
→ SUBMIT → บันทึก DATABASE → STATUS = REQUEST
→ ส่งข้อมูลให้ PAO

📌 ฟอร์มต้นทาง (GAS Web App — create_structure): https://script.google.com/macros/s/AKfycbwQ5-gGWyBsLuwVO-nBngZTDEXHm6-FiHmQQkXtYiMb8s-dxJ0McWi9u0mSnbdV6D1bAw/dev?spreadsheet_id=1S_0IO-Hu5T0_kGaor0kmnMayH-4ek2sLYq4rwiFi5v8&form_name=create_structure

สำคัญ: ต้องนำ Form มาแสดงภายใน Web PP7 (embed) — BMC ไม่ต้องออกจากระบบไปกรอกอีกหน้า · เมื่อ Submit ต้องมี REQUEST_ID สำหรับติดตามรายการ · ใช้กรณี BU ไม่มีโครงสร้าง

เมนู 2 · DATAโครงสร้างบริษัทภายนอก (สิทธิ์: PAO เท่านั้น)

PAO → DATAโครงสร้างบริษัทภายนอก
→ ดึงรายการ STRUCTURE REQUEST → เลือก BU
→ เลือกบริษัท → ดูคำขอจาก BMC
→ Set / ปรับโครงสร้าง:
   บริษัท · BU · หน่วยงาน · ตำแหน่ง · จำนวน
   · ผู้รับใช้ทีม · สายบังคับบัญชา · ระดับตำแหน่ง
   · โครงสร้างเงินเดือน
→ SAVE → DATABASE → APPROVE

📌 แหล่งข้อมูล: docs.google.com/spreadsheets/d/1liNuQStJOoFfidKa4yMwV0wOVntR5FlUKfcoYhc-vAA (gid=1829103723)

เมนู 3 · DATAโครงสร้างบริษัทภายใน (สิทธิ์: PAO เท่านั้น)

Flow ทำงานเหมือนเมนู 2 แต่แยก Dataset เป็นโครงสร้างบริษัทภายใน — ต้องแยก EXTERNAL / INTERNAL เป็นคนละประเภทข้อมูล ห้ามนำมาปนกัน

📌 แหล่งข้อมูล: docs.google.com/spreadsheets/d/1ZGQF_AuixYziDmYeZcaSxBeBQEgGdYJbkX5JgpeIkaw (gid=1481031524)

เมนู 4 · Flowchart (BU ดูได้ · PAO จัดการ · บุคคลทั่วไปดูได้)

Flowchart → เลือก BU (AAMG / PMSG / CPDG / RPLCG / RAFCOG)
→ เลือกบริษัท → ดึง Structure ล่าสุดที่ APPROVED
→ แสดง Flowchart ตามโครงสร้างเงินเดือน

Data flow (Flowchart ไม่คีย์ซ้ำ):
BMC ขอปรับ/เพิ่มโครงสร้าง → STRUCTURE REQUEST
→ PAO SET STRUCTURE → STRUCTURE DATABASE
→ APPROVED VERSION ├→ FLOWCHART บริษัท/BU
                   └→ STEP 2 ขออัตรากำลังคน
เมื่อ PAO ปรับโครงสร้างแล้ว Flowchart เปลี่ยนตาม
Database อัตโนมัติ ไม่ต้องทำใหม่ทุกครั้ง

📌 รูปแบบอ้างอิง: docs.google.com/spreadsheets/d/
1vX3CErpU0OuYqkr3apVw_PFSlTdNw1CsIF_XB6lAdEI
(gid=1755774749)
โครงสร้างบริษัทใน Flowchart (แยกตาม BU — โครงสร้างเงินเดือน):
  • AAMG — เอเอเอ็ม แคปปิตอลเซอร์วิส (สำนักงานใหญ่ + สาขากบินทร์บุรี/นครนายก/ปลวกแดง/ศรีนครินทร์/สระบุรี/วังน้ำเย็น) · พีเอ็มเอส คัสตอมเมอร์เซอร์วิส · เอเอเอ็ม บุรีรัมย์/ฉะเชิงเทรา/ลพบุรี/พัทยา/มุกดาหาร/นนทบุรี/ปากช่อง/ตะเคียนคู่/สกลนคร/สุรินทร์/พระยาสัจจา/สอยดาว/อุดรดุษฎี · เกษตรไทย ลิสซิ่ง (+บึงกาฬ) · อีเอซี กาญจนบุรี/ราชบุรี · พีซีแอล/พีเอ็มเอส แคปปิตอล เซอร์วิส · พรีเชียส สโตน · สระแก้วลิสซิ่ง · อาร์วายแอล · เอเอ็นเอฟ เทรดดิ้ง · ไซฟินเวสท์ · เล็นด์เอ็กซ์ (รวม 25+ รายการ)
  • PMSG — ประชากิจมอเตอร์เซลส์: สำนักงานใหญ่ · สอยดาว · นายายอาม · ขลุง
  • CPDG — แอจจิลซอฟท์ คอร์ปอเรชั่น · 21ซีที รีเสิร์ท · ศูนย์พัฒนาผู้นำ · ไซฟินเวสท์ ดิจิตอล โบรคเกอร์
  • RPLCG — ร่วมพัฒนา เช่าสินเชื่อ · ร้านจะเลินมอเตอร์ · ร้านหลวงพะบางมอเตอร์เซลล์ · ร้านเวียงมอเตอร์ · ร้านมงคลมอเตอร์ สะหวันเขต · ราฟโค ไฟแนนซ์เชียล ลาว · เพ็ดจะเลินบริการ
  • RAFCOG — ราฟโค ไฟแนนเซียล (เขมโบเดีย) มหาชน · เอไอไอแอล แคปปิตอล พาร์ทเนอร์ · FIV INVESTMENT TRUST KH · เนทีฟ ไฟแนนเชี่ยล เทคโนโลยี เคเอช

2.3 Database Relationship + จุดเชื่อมต่อ Step 2 + สิทธิ์

FU_MASTER → BU_MASTER → COMPANY_MASTER → BRANCH_MASTER
→ DEPARTMENT_MASTER → POSITION_MASTER → STRUCTURE_MASTER
STRUCTURE_MASTER
├── STRUCTURE_REQUEST   (BMC คีย์ขอ)
├── STRUCTURE_EXTERNAL  (PAO set)
├── STRUCTURE_INTERNAL  (PAO set)
└── STRUCTURE_VERSION → FLOWCHART → MANPOWER_REQUEST → STEP 2

Keys ที่ใช้:
BU_ID · COMPANY_ID · BRANCH_ID · DEPARTMENT_ID · POSITION_ID
STRUCTURE_REQUEST_ID · STRUCTURE_ID · STRUCTURE_VERSION
FLOWCHART_ID · MANPOWER_REQUEST_ID

เชื่อมต่อ Step 2 — ขออัตรากำลังคน

STEP 1 โครงสร้างองค์กร → STRUCTURE APPROVED
→ ดึงข้อมูลไป Step 2 → BMC เลือก BU → บริษัท → หน่วยงาน
→ ตำแหน่ง → โครงสร้างเงินเดือน → จำนวนอัตราที่ขอ
→ MANPOWER REQUEST → บันทึก DATABASE

⚠️ Step 2 ห้ามให้ BMC คีย์ข้อมูลบริษัท/หน่วยงาน/ตำแหน่ง/
โครงสร้างเงินเดือนใหม่ทั้งหมด — ระบบต้องดึงจาก
STRUCTURE DATABASE (APPROVED STRUCTURE)
BMC กรอกเฉพาะ "จำนวนอัตราที่ขอ"

🔐 สิทธิ์การใช้งาน STEP 1

เมนูBMCPAOบุคคลทั่วไป
1. โครงสร้างองค์กร👁️ ดู✅❌
คีย์ขอโครงสร้าง✅👁️ ดู❌
DATAโครงสร้างบริษัทภายนอก❌✅❌
DATAโครงสร้างบริษัทภายใน❌✅❌
Flowchart / เลือก BU–บริษัท👁️ ดู✅👁️ ดู
แก้ไขโครงสร้าง❌✅❌
2. ขออัตรากำลังคน✅👁️ ดู❌
🎯 FLOW หลักที่ Developer ต้องทำ: PP7 WEB → Flow การสรรหา 10 ขั้นตอน → ① โครงสร้างองค์กร → [BMC REQUEST | PAO EXTERNAL | PAO INTERNAL] → STRUCTURE DATABASE → APPROVED STRUCTURE → [FLOWCHART บริษัท/BU] + [② ขออัตรากำลังคน → BMC → MANPOWER REQUEST] → STEP 3 · หัวใจ = STRUCTURE DATABASE เป็น Single Source of Truth ข้อมูลชุดเดียวใช้ทั้ง Flowchart และ Step 2 ไม่ต้องคีย์ซ้ำ ลดความผิดพลาดระหว่างเมนู

🟢 Task 3 — ใบสมัครงาน: Upload เอกสาร + AI ดึงข้อมูลอัตโนมัติ (ทั้ง 3 ประเทศ)

3.1 ข้อกำหนดจากชีต (7 ข้อ)

  1. หน้า "ร่วมงานกับ PKG Group" → "เริ่มสมัครงาน" — ส่วน "ความยินยอมในการเก็บรวบรวมข้อมูลส่วนบุคคล" (PDPA) ผู้สมัครต้องคลิกยอมรับก่อนจึงจะกรอกใบสมัครได้ (Required Consent Gate) ทำทั้ง 3 ประเทศ
  2. เพิ่มช่อง upload บัตรประชาชน + AI ดึงข้อมูลอัตโนมัติลงช่องที่กำหนดในใบสมัคร
  3. เพิ่มช่อง upload ทะเบียนบ้าน + AI ดึงข้อมูลอัตโนมัติลงช่องที่กำหนด
  4. ทุกช่องมีการแปลภาษา: 🇹🇭 ช่องบน=ไทย ช่องล่าง=AI แปลอังกฤษ · 🇱🇦 ช่องบน=ลาว ช่องล่าง=AI แปลไทย · 🇰🇭 ช่องบน=เขมร ช่องล่างที่ 1=อังกฤษ ช่องล่างที่ 2=ไทย — ทั้งหมดบันทึกลงฐานข้อมูล รองรับการใช้ข้อมูลของแต่ละประเทศ
  5. กรอกเสร็จแล้วมี script แจ้งเตือนไป Telegram: ห้อง super สรรหา PKG (chat id -1001237535741) ข้อความ "New Candidate มีผู้สมัครงานใหม่ คุณ : … สมัครตำแหน่ง : 340##แม่ครัว + ลิงก์ดูรายละเอียด" · ห้อง ชุมชนคนหางาน (chat id -1001528940221) ข้อความสรุปสั้น "มีผู้สมัครงานใหม่ คุณ : ลำดวน XXXXXXX สมัครตำแหน่ง : 340##แม่ครัว เรียบร้อยแล้ว"
  6. เพิ่ม link สมัครงาน/ขอฝึกงาน — หน้า "เริ่มสมัครงาน" แยก 2 เมนู: สมัครทั่วไป และ สมัครขอฝึกงาน (เฉพาะฝั่งไทย — ยืนยัน 30 ก.ย. 69) (ต้นทางฟอร์มฝึกงาน: devdev.prachakij.com/appformPKG/formTraniee.php → พอร์ตเข้า Web PP7 แล้วที่ form-trainee.html)
  7. นักศึกษาฝึกงานกรอกเสร็จ → แจ้งเตือน Telegram ห้อง super สรรหา PKG (chat id -1001237535741) ข้อความ: "New Candidate มีผู้สมัครงานใหม่ คุณ : … ประเภทฝึก : นักศึกษาฝึกงาน / การศึกษา / ชื่อสถานศึกษา / สาขาวิชา"

3.2 DATA FLOW หลัก — ระบบรับสมัครงานภายนอก

ผู้สมัครภายนอก (ไทย / ลาว / กัมพูชา)
   ↓
หน้า "ร่วมงานกับ PKG Group" → "เริ่มสมัครงาน"
   ├── สมัครทั่วไป: เลือกประเทศ → แสดง PDPA ตามประเทศ → อ่าน → ☐ ข้าพเจ้ายินยอม
   │      → Consent = TRUE? → NO: ไม่ให้เข้าใบสมัคร
   │                        → YES: บันทึก Consent (consent_id, application_id, country,
   │                                consent_status, consent_version, consent_datetime,
   │                                ip_address, user_agent) → เข้าสู่ใบสมัคร
   └── สมัครขอฝึกงาน: แบบฟอร์มฝึกงาน (Trainee Application) → กรอก → Validate
   ↓
กรอกใบสมัครงาน → Upload เอกสาร (บัตรประชาชน · ทะเบียนบ้าน · รูปผู้สมัคร · วุฒิการศึกษา)
   ↓
OCR / Document AI → อ่านข้อความ → ตรวจสอบความถูกต้อง → Mapping Field → เติมลงฟอร์มอัตโนมัติ
   ↓
AI Translation (แปลข้อมูลแต่ละช่อง — ไม่แปลทับต้นฉบับ)
   ↓
ผู้สมัครตรวจสอบ/แก้ไข → Confirm (OCR ห้ามบันทึกลง DB ทันทีโดยไม่ให้ผู้สมัครตรวจ)
   ↓
Submit Application → สร้าง Application ID → DATABASE (DB1 Applicant)
   ├── ข้อมูลผู้สมัคร (Personal Data)  ├── เอกสาร/รูป (Document Store)  └── ข้อมูลภาษา (Translation DB)
   ↓
Telegram Notification
   ├── Super สรรหา PKG  (-1001237535741)
   └── ชุมชนคนหางาน     (-1001528940221)

3.3 OCR Mapping — บัตรประชาชน

ข้อมูลจากบัตรช่องในใบสมัคร
เลขบัตรประชาชนรหัสบัตรประชาชน
ชื่อ / นามสกุลชื่อ / นามสกุล
วันเกิดวันเกิด
ที่อยู่ / จังหวัดที่อยู่ / จังหวัด
อื่น ๆField ที่กำหนด
Flow: Upload → ตรวจชนิดไฟล์ → ตรวจคุณภาพภาพ
→ OCR/Document AI → อ่านข้อความ → ตรวจสอบ
ความถูกต้อง → Mapping Field → เติมลงใบสมัคร
→ ผู้สมัครตรวจ/แก้ไข → Confirm → Save DB

3.4 OCR — ทะเบียนบ้าน

Upload → Document AI/OCR → อ่าน → แยกข้อมูล
→ Mapping → เติม "ที่อยู่ตามทะเบียนบ้าน"
(บ้านเลขที่ · ตำบล · อำเภอ · จังหวัด · รหัสไปรษณีย์)
→ ผู้สมัครตรวจสอบ → Confirm → Save DB
หมายเหตุ: ฟอร์มปัจจุบันมีช่องที่อยู่ตามทะเบียนบ้าน
+ ที่อยู่ปัจจุบันอยู่แล้ว → เติม OCR เข้าได้โดยตรง

3.5 รูปผู้สมัคร

📷 Upload → ตรวจประเภทไฟล์ → ตรวจขนาด
→ ตรวจว่าเป็นภาพบุคคล → Crop/Resize → Preview
→ Confirm → Storage → บันทึก URL/Document ID ใน DB
⚠️ ห้ามเก็บไฟล์รูปขนาดใหญ่ใน Database ตรง ๆ
→ ใช้ File/Object Storage, DB เก็บ file_id/file_url/storage_path

3.6 หลายภาษา + AI Translation

หลักการ: ไม่แปลทับข้อมูลต้นฉบับ — เก็บแยกหลายภาษา
🇹🇭 ช่องบน = ไทย        | ช่องล่าง = AI → อังกฤษ
🇱🇦 ช่องบน = ລາວ          | ช่องล่าง = AI → ไทย
🇰🇭 ช่องบน = ខ្មែរ        | ช่องล่าง 1 = AI → EN
                       | ช่องล่าง 2 = AI → ไทย

FIELD
├── source_language
├── source_value        (ต้นฉบับ — ห้ามทับ)
├── translation_en
├── translation_th
└── translation_km / lo

ทุก field หลักเก็บครบ 4 ภาษา:
First Name · Last Name · Address · Education · Experience

AI Translation ต้องเก็บ: Original + Translated
+ Translation Status (PENDING / SUCCESS / FAILED / REVIEW)
→ ป้องกัน AI แปลผิด ย้อนดูต้นฉบับได้

3.7 Telegram Notification Flow

Submit → Validate → Generate Application ID
→ Save DB → Save Documents → Save Translation
→ สร้าง Application URL จาก application_id จริง
   (เช่น /application/2230300018201 — ห้าม hard-code)
→ Telegram API (ต้องเรียกผ่าน Backend เท่านั้น
   ห้ามเปิด Bot Token ใน Frontend)
   ├── 📣 Super สรรหา PKG (-1001237535741)
   │     "New Candidate — มีผู้สมัครงานใหม่
   │      คุณ : {ชื่อ-สกุล} สมัครตำแหน่ง : {job_code}##{ตำแหน่ง}
   │      ดูรายละเอียดได้ที่ >>> {Application URL}"
   └── 👥 ชุมชนคนหางาน (-1001528940221)
         "มีผู้สมัครงานใหม่ คุณ : {ชื่อ} XXXXXXX
          สมัครตำแหน่ง : {job_code}##{ตำแหน่ง} เรียบร้อยแล้ว"
         ⚠️ ห้องนี้สมาชิกเยอะ — ห้ามส่งข้อมูลส่วนบุคคลละเอียด
         (เลขบัตร/ที่อยู่/เอกสาร) ส่งเฉพาะที่จำเป็น
+ Notification Log (ส่งสำเร็จ/ล้มเหลว)

3.8 ฝึกงาน (Trainee) Flow

ร่วมงานกับ PKG Group → เริ่มสมัครงาน → สมัครขอฝึกงาน
→ ฟอร์มฝึกงาน (form-trainee.html — พอร์ตจาก formTraniee.php แล้ว)
→ กรอก → Validate → Submit → สร้าง Trainee Application ID
→ บันทึก Database (แยกชีท Trainees ใน GAS แล้ว)
→ Telegram API → 📣 Super สรรหา PKG
   "New Candidate — คุณ: {ชื่อ} / ประเภทฝึก: นักศึกษาฝึกงาน
    / การศึกษา: {ระดับ} / สถานศึกษา: {ชื่อ} / สาขาวิชา: {สาขา}"

3.9 DB1 Applicant — โครงสร้างที่แนะนำ (แตกตามชีต)

DB1 Applicant
├── Applicant (applicant_id, application_id, country,
│              application_type [general/trainee], status, created_at)
├── Personal Data (name, surname, DOB, gender, nationality, …)
├── Job Application (job_id, job_code, position,
│                    expected_salary, application_channel)
├── Address (registered_address, current_address)
├── Education · Experience · Family · Skills
├── Documents (ID Card, House Registration,
│              Education Certificate, Applicant Photo)
├── Translation (ทุกภาษา + status)
├── Consent (PDPA — ผูกกับ Application + version ข้อความ)
└── Notification Log (Telegram ส่งสำเร็จ/ล้มเหลว)

3.10 Application Status กลาง (ต่อ P1–P4 ได้ทันที)

NEW → CONSENTED → APPLICATION_COMPLETED
→ DOCUMENT_PENDING → DOCUMENT_VERIFIED
→ AI_TRANSLATED → READY_FOR_SCREENING
→ SCREENING → INTERVIEW → BACKGROUND_CHECK
→ OFFER → HIRED

กรณีไม่ผ่าน: SCREENING → NOT_SELECTED

โครงสร้างนี้ต่อกับ Flow ปัจจุบันของ PP7:
รับใบสมัคร → คัดเลือก → นัดสัมภาษณ์ → สัมภาษณ์
→ ตรวจสอบประวัติ → นัดเริ่มงาน → ส่งต่อ P4/PAO

3.11 DATA FLOW ฉบับ Developer

FRONTEND
├── Country Selection → Application Type (General/Trainee)
├── PDPA Consent → Application Form
└── Upload Documents (ID Card/House Reg/Education/Photo)
        ↓
BACKEND API ── [OCR · AI Translate · Validation]
        ↓
DATABASE ── [Applicant · Documents · Translation]
        ↓
Application Status
        ├── Telegram API → Super HR + Job Community
        └── HR Dashboard
⚠️ จุดที่ต้องกำหนดกับ Developer (จากชีต — ห้ามตก):
  1. OCR ต้องมีหน้าตรวจสอบข้อมูลก่อนบันทึกจริง (ห้าม auto-save)
  2. AI แปลต้องไม่เขียนทับข้อมูลต้นฉบับ
  3. ทุก Application ต้องมี application_id เดียวตลอดกระบวนการ · ทุกไฟล์ต้องผูกกับ application_id
  4. Consent ต้องผูกกับ Application + เก็บ Version ของข้อความ Consent
  5. Telegram ต้องทำผ่าน Backend — ห้ามเปิด Bot Token ไว้ใน Frontend · ต้องมี Notification Log
  6. ข้อมูลบัตรประชาชน/ทะเบียนบ้าน = ข้อมูลอ่อนไหว → กำหนดสิทธิ์การเข้าถึง, encryption, audit log, retention ให้ชัดเจน
  7. AI Translation เก็บสถานะ PENDING / SUCCESS / FAILED / REVIEW
  8. สมัครเสร็จส่งเลข Application ID + สถานะกลับให้ผู้สมัครทันที

โครงสร้างหลัก: ผู้สมัคร → เลือกประเทศ → เลือกประเภทสมัคร → Consent → Form → Upload → OCR → Auto Fill → AI Translation → ตรวจสอบ → Submit → DB1 → Telegram → HR Screening → P1/P2/P3/P4 — ทำให้ PP7 เป็นจุดเริ่มต้นของ Applicant Data ที่ใช้ต่อได้ทั้งระบบ

⏱️ ประเมินเวลาทำงาน 3 Tasks — ทีม 2 คน + AI ผู้ช่วย (สำหรับแจ้งทีมพัฒนา)

Taskงานหลักเวลาที่ใช้
(ทีม 2 คน + AI)
Task 1 · Public Recruitment WebFU/Company/Branch/Job Master + seed ข้อมูล ~50 บริษัท · Landing เลือก FU + Dynamic Theme 3 สี 4 ภาษา · Admin เพิ่ม/ปิดบริษัท (Audit Log) · DB1 แยก Applicant/Application · RBAC 4 ระดับ · Funnel Dashboard 🤖 AI ช่วย: โครงสร้าง Master/Landing + seed ข้อมูล + หน้า Admin CRUD (dev ตรวจความถูกต้องข้อมูลบริษัทจริง)5 วันทำการ ไม่ใช้ AI = 8 วัน
Task 2 · Step 1 โครงสร้างองค์กร4 เมนูย่อย · embed ฟอร์ม GAS + REQUEST_ID · หน้า PAO set โครงสร้างภายนอก/ภายใน · Flowchart render จาก APPROVED STRUCTURE (5 BU) · STRUCTURE_VERSION + Audit · เชื่อม Step 2 ขออัตรากำลัง 🤖 AI ช่วย: หน้าฟอร์ม/ตาราง/Flowchart render + version logic (dev ตรวจสิทธิ์ BMC/PAO)4 วันทำการ ไม่ใช้ AI = 6 วัน
Task 3 · ใบสมัคร + OCR/AIPDPA Consent Gate · Upload 4 ชนิด + OCR (บัตร/ทะเบียนบ้าน/รูป/วุฒิ) + หน้า Confirm · AI Translation 3 ประเทศ (เก็บต้นฉบับ+status) · Telegram notify 2 ห้อง + Log · ฟอร์มฝึกงานเชื่อม FU+notify · Status pipeline NEW→HIRED · security ข้อมูลอ่อนไหว 🤖 AI ช่วย: โค้ด Upload/OCR/Translate/Telegram + เทสเคส (dev จูน OCR บัตรลาว/เขมร + ตรวจ security)5 วันทำการ ไม่ใช้ AI = 8 วัน
🧪 Integration + UATทดสอบรวม 3 Tasks + RBAC ครบทุกสิทธิ์ + แก้ bug ก่อนส่งมอบ 🤖 AI ช่วย: สร้างเทสเคส + ช่วยหาสาเหตุ bug (UAT กับผู้ใช้จริงยังต้องใช้คน)3 วันทำการ ไม่ใช้ AI = 4 วัน
รวมทั้ง 3 Tasks (เริ่ม 8 ต.ค. → เสร็จ จ. 2 พ.ย. 69 ตามตารางแผนงานด้านล่าง)17 วันทำการ ไม่ใช้ AI = 26 วัน

ตัวเลขคือจำนวนวันที่ใช้จริงของทีม 2 คน + AI (จันทร์–ศุกร์) — ดูตารางปฏิทินวันที่เริ่ม–เสร็จแต่ละ Task ด้านล่าง

👥 ทีมของเรา: นักพัฒนา 2 คน + AI ผู้ช่วย (ทีมเดียว) — ทั้งทีมลง task เดียวกันทีละงาน ตามตารางแผนงานด้านล่าง เริ่ม พฤ. 8 ต.ค. 69 → เสร็จทุก Task จ. 2 พ.ย. 69 (เร็วขึ้น ~9 วันทำการจากแผนเดิม 13 พ.ย.)
วิธีใช้ AI ให้ได้เวลาตามแผน: ให้ AI เขียนโครงโค้ด/ฟอร์ม/เทสเคสก่อน แล้ว dev ตรวจ + แก้ · งานที่ AI ช่วยมาก: หน้า CRUD, Landing, เทสเคส, โค้ด Upload/Notify · งานที่ dev ต้องทำเอง: จูน OCR บัตรลาว/เขมร, ตรวจ security ข้อมูลอ่อนไหว, ตรวจสิทธิ์ BMC/PAO, UAT กับผู้ใช้จริง
ความเสี่ยง/ตัวแปร: คุณภาพ OCR เอกสารไทย/ลาว/เขมร (บัตรลาว-เขมรอาจต้อง fine-tune เพิ่ม +2–3 วัน) · ค่าบริการ OCR/AI Translate ต่อรายการ · รอข้อมูล seed บริษัท/ตำแหน่งจริงจาก HR · ถ้าทีมต้องเรียนรู้ใช้ AI ช่วงแรก เผื่อ +2–3 วัน

📅 แผนงานจริง — ทีมพัฒนา 2 คน + AI ผู้ช่วย (เริ่ม พฤ. 8 ต.ค. 2569)

สมมติฐาน: 2 dev เต็มเวลา จ–ศ + ใช้ AI ช่วยเขียนโค้ด/เทสเคสตลอด · ทั้งทีมลงแรงกับ task เดียวกันพร้อมกัน · เว้นวันหยุด ศ. 23 ต.ค. 69 (วันคล้ายวันสวรรค์ ร.5) · เริ่มนับหลังประชุมทีม พ. 7 ต.ค. 69

ช่วงเวลางานวันทำการเสร็จเมื่อไร
พ. 7 ต.ค. 69📅 ประชุมทีมพัฒนา — ใช้ Dashboard นี้เป็นวาระคุย (scope + ตาราง + สิทธิ์)—Kickoff
พฤ. 8 – พ. 14 ต.ค. 69🟠 Task 1 · Public Recruitment Web5✅ พุธ 14 ต.ค. 69
พฤ. 15 – พ. 21 ต.ค. 69🟢 Task 3 · ใบสมัคร + OCR/AI + Telegram5✅ พุธ 21 ต.ค. 69
พฤ. 22 – พ. 28 ต.ค. 69 (เว้น ศ. 23 ต.ค. วันหยุด)🔵 Task 2 · Step 1 โครงสร้างองค์กร + Flowchart4✅ พุธ 28 ต.ค. 69
พฤ. 29 ต.ค. – จ. 2 พ.ย. 69🧪 Integration 3 Tasks + RBAC ครบ + UAT + แก้ bug3🏁 จันทร์ 2 พ.ย. 69
รวมทั้ง 3 Tasks เสร็จสมบูรณ์ (2 คน + AI)จันทร์ 2 พฤศจิกายน 2569 (17 วันทำการ ≈ 3.5 สัปดาห์)
หมายเหตุ: ลำดับ Task 1 → Task 3 → Task 2 ให้ฟอร์มสมัครงานใช้งานจริงเร็วที่สุด และวาง OCR/AI (งานเสี่ยงสุด) ให้เสร็จก่อนเข้า Task 2 · ถ้านักศึกษา/พนักงานต้องเรียนรู้ใช้ AI ช่วงแรก เผื่อ +2–3 วัน → วันเสร็จสุทธิเลื่อนเป็น ~พฤ. 5 พ.ย. 69 · ถ้า AI ติดข้อจำกัดเน็ตองค์กร/ข้อมูลลับ (เช่น บริษัทห้ามอัปโหลดโค้ดบริษัทขึ้น AI ภายนอก) ส่วน coding ด้วย AI จะช้าลง ให้กลับไปยึดแผนเดิม (เสร็จ ศ. 13 พ.ย. 69) · ทั้ง 2 แผนไม่กระทบ: การเก็บข้อมูลอ่อนไหว (บัตรประชาชน/ทะเบียนบ้าน) และการทดสอบ UAT กับผู้ใช้จริงยังต้องใช้คนทำ ไม่ใช่ AI

✅ Checklist สำหรับทีมพัฒนา (เรียงตามลำดับที่ควรทำ)

Task 1 · Public Recruitment Web

  1. สร้าง Master Data: M_FU (3 FU) + M_COMPANY (seed ~40 บริษัท พร้อม COMPANY_ID) + M_BRANCH
  2. ทำหน้า Recruitment Landing → เลือก FU → Dynamic Theme (ส้ม/เหลือง/แดง–น้ำเงิน) + ภาษา (TH/LA/KH-EN)
  3. สมัครขอฝึกงานมีเฉพาะฝั่งไทย (FU01 THAI) → ปุ่ม 🎓 ใต้การ์ด THAI → form-trainee.html (ยืนยันพี่ปกรณ์ 30 ก.ย. 69 — ฝั่งลาว/กัมพูชาไม่มีฝึกงาน)
  4. หน้าเลือกบริษัท → สาขา → ตำแหน่งงานว่าง (JOB_POSTING) ต่อด้วย form-register.html เดิม
  5. แยก APPLICANT (stock) ออกจาก APPLICATION + PDPA_CONSENT + APPLICANT_DOCUMENT
  6. Admin > Master Data > บริษัท: เพิ่ม/แก้ไข/ปิดบริษัท (ACTIVE–INACTIVE + CONFIRM + Audit Log)
  7. RBAC: Public เห็นหน้ารับสมัคร + Flow 10 ขั้นตอนเฉพาะ PKG Member + จัดการ recruitment เฉพาะ HR/BMC/ADM/ผู้รับใช้ทีม
  8. Dashboard Funnel การสรรหา + เชื่อม Flow 10 ขั้นตอนด้วย APPLICATION_ID → ส่งต่อ P4 PAO

Task 2 · Step 1 โครงสร้างองค์กร

  1. เพิ่ม 4 เมนูย่อยในหน้า Flow การสรรหา → 1. โครงสร้างองค์กร
  2. เมนู 1: embed ฟอร์ม create_structure (GAS) ในหน้า PP7 → submit แล้วออก REQUEST_ID + STATUS=REQUEST → ส่งต่อ PAO
  3. เมนู 2/3: หน้า PAO set โครงสร้างภายนอก/ภายใน (แยก dataset ห้ามปน) — ดึงคำขอ → set → SAVE → APPROVE
  4. เมนู 4: Flowchart เลือก BU → บริษัท → render จาก APPROVED STRUCTURE อัตโนมัติ (version-based)
  5. สร้าง STRUCTURE_MASTER + STRUCTURE_VERSION (มี history) + Audit ทุกการอนุมัติ
  6. เชื่อมต่อ Step 2: MANPOWER_REQUEST ดึงโครงสร้างที่ approved แล้ว ให้ BMC กรอกเฉพาะจำนวนอัตรา
  7. RBAC ตามตารางสิทธิ์ BMC/PAO/บุคคลทั่วไป

Task 3 · ใบสมัคร + OCR/AI

  1. PDPA Consent Gate (บังคับกดยินยอมก่อนเข้าฟอร์ม, 3 ประเทศ) + เก็บ consent_id/version/IP/device
  2. หน้า "เริ่มสมัครงาน" แยก 2 เมนู: สมัครทั่วไป (form-register) / สมัครขอฝึกงาน (form-trainee — ทำแล้ว ✅ เฉพาะฝั่งไทย คงเหลือเชื่อม notification)
  3. Upload 4 ชนิด: บัตรประชาชน/ทะเบียนบ้าน/รูป/วุฒิ → ตรวจไฟล์+คุณภาพ → OCR → Mapping → auto-fill → หน้า Confirm ก่อน Save
  4. รูปผู้สมัคร: Crop/Resize + เก็บใน File/Object Storage (DB เก็บ file_id/url เท่านั้น)
  5. AI Translation ทุกช่อง TH/LA/KH → EN/TH ตามประเทศ + เก็บ source_value + translation status (PENDING/SUCCESS/FAILED/REVIEW)
  6. ขยาย DB1: Translation, Consent, Notification Log + application_type (general/trainee)
  7. Telegram notify ผ่าน Backend (ห้ามเปิด token ใน frontend): Super สรรหา PKG -1001237535741 + ชุมชนคนหางาน -1001528940221 (ห้องหลังห้ามส่งข้อมูลละเอียด) + ฟอร์มฝึกงานแจ้งห้อง super สรรหา + Notification Log
  8. Application URL สร้างจาก application_id จริง (ห้าม hard-code) + ส่งเลขสมัคร/สถานะกลับผู้สมัครทันที
  9. Application Status กลาง NEW→…→HIRED (+NOT_SELECTED) ต่อ P1–P4
  10. Security: ข้อมูลอ่อนไหว (บัตร/ทะเบียนบ้าน) → encryption, access control, audit log, retention policy