🎯 ภาพรวม 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 เมนูย่อย:
- คีย์ขอโครงสร้าง (เฉพาะ BMC) — ฟอร์มจาก GAS link ที่กำหนด บันทึกลงฐานข้อมูล
- DATAโครงสร้างบริษัทภายนอก (เฉพาะ PAO) — set แทนบอร์ด จากคำขอของ BU
- DATAโครงสร้างบริษัทภายใน (เฉพาะ PAO) — เหมือนข้อ 2 แยก dataset
- 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 ได้ทันที
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_ID | FU | ภาษา | Theme | ผู้ใช้งาน |
|---|---|---|---|---|
| FU01 | THAI | TH (+EN) | 🟠 ส้ม | ผู้สมัครทั่วไป + สมาชิก PKG |
| FU02 | RPLCG | LA | 🟡 เหลือง | ผู้สมัครทั่วไป + สมาชิก PKG |
| FU03 | RAFCOG | KH / 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+ รายการ)
- บริษัท ประชากิจมอเตอร์เซลส์ จำกัด
- บริษัท เอเอเอ็ม แคปปิตอลเซอร์วิส จำกัด (สำนักงานใหญ่ + 6 สาขา: กบินทร์บุรี, นครนายก, ปลวกแดง, ศรีนครินทร์, สระบุรี, วังน้ำเย็น)
- บริษัท พีเอ็มเอส คัสตอมเมอร์เซอร์วิส จำกัด
- บริษัท เอเอเอ็ม บุรีรัมย์ จำกัด
- บริษัท เกษตรไทย ลิสซิ่ง จำกัด
- บริษัท เกษตรไทย ลิสซิ่ง บึงกาฬ จำกัด
- บริษัท เอเอเอ็ม ฉะเชิงเทรา จำกัด
- บริษัท อีเอซี กาญจนบุรี จำกัด
- บริษัท เอเอเอ็ม ลพบุรี จำกัด
- บริษัท เอเอเอ็ม แคปปิตอล เซอร์วิส พัทยา จำกัด
- บริษัท เอเอเอ็ม มุกดาหาร จำกัด
- บริษัท เอเอเอ็ม แคปปิตอล เซอร์วิส นนทบุรี จำกัด
- บริษัท เอเอเอ็ม ปากช่อง จำกัด
- บริษัท พีซีแอล แคปปิตอล เซอร์วิส จำกัด
- บริษัท พีเอ็มเอส แคปปิตอล เซอร์วิส จำกัด
- บริษัท พรีเชียส สโตน แอสเซท เมแนจเมนท์ จำกัด
- บริษัท สระแก้วลิสซิ่ง จำกัด
- บริษัท อาร์วายแอล แคปปิตอล เซอร์วิส จำกัด
- บริษัท อีเอซี ราชบุรี จำกัด
- บริษัท เอเอเอ็ม ตะเคียนคู่ จำกัด
- บริษัท เอเอเอ็ม สกลนคร จำกัด
- บริษัท เอเอเอ็ม สุรินทร์ จำกัด
- บริษัท เอเอเอ็ม แคปปิตอลเซอร์วิส พระยาสัจจา จำกัด
- บริษัท เอเอเอ็ม แคปปิตอล เซอร์วิส สอยดาว จำกัด
- บริษัท เอเอเอ็ม แคปปิตอล เซอร์วิส อุดรดุษฎี จำกัด
- บริษัท เอเอ็นเอฟ เทรดดิ้ง จำกัด
- บริษัท แอจจิลซอฟท์ คอร์ปอเรชั่น จำกัด
- บริษัท 21ซีที รีเสิร์ท จำกัด
- บริษัท ไซฟินเวสท์ ดิจิตอล โบรคเกอร์ จำกัด
- บริษัท ศูนย์พัฒนาผู้นำ จำกัด
- บริษัท เล็นด์เอ็กซ์ จำกัด
🇱🇦 RPLCG (7 รายการ)
- บริษัท ร่วมพัฒนา เช่าสินเชื่อ จำกัด
- ร้านจะเลินมอเตอร์ (ส่วนบุคคล)
- ร้านหลวงพะบางมอเตอร์เซลล์ (ส่วนบุคคล)
- ร้านเวียงมอเตอร์ (ส่วนบุคคล)
- ร้านมงคลมอเตอร์ สะหวันเขต
- สถาบันการเงินจุละพากที่ไม่รับฝากเงิน ราฟโค ไฟแนนซ์เชียล ลาว จำกัด (ผู้เดียว)
- บริษัท เพ็ดจะเลินบริการ จำกัด (ผู้เดียว)
🇰🇭 RAFCOG (4 รายการ)
- บริษัท ราฟโค ไฟแนนเซียล (เขมโบเดีย) จำกัดมหาชน
- บริษัท เอไอไอแอล แคปปิตอล พาร์ทเนอร์ จำกัด
- FIV INVESTMENT TRUST KH CO.,LTD.
- บริษัท เนทีฟ ไฟแนนเชี่ยล เทคโนโลยี เคเอช จำกัด
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 ชัดเจน)
| เมนู | บุคคลทั่วไป | สมาชิก PKG | HR / 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
- FU Master (THAI/RPLCG/RAFCOG)
- Company Master — เพิ่ม/ปิดบริษัทโดยไม่ลบข้อมูลเก่า
- Branch Master (บริษัท → สาขา)
- Job Posting (บริษัท → สาขา → ตำแหน่ง)
- Dynamic Theme — สี/ภาษาตาม FU
- Applicant DB1 — Stock ผู้สมัคร
- Application — แยกการสมัครแต่ละครั้งจาก Profile
- PDPA Consent — เก็บประวัติการยินยอม
- Document Storage — รูป/วุฒิ/เอกสาร
- Recruitment Flow 10 ขั้นตอน เชื่อมด้วย APPLICATION_ID
- Role & Permission — Public / PKG Member / HR BMC ADM / ผู้รับใช้ทีม
- Audit Log — ทุกการเพิ่ม/แก้ไข/ปิดบริษัท/ตำแหน่ง/เปลี่ยนสถานะ
- Dashboard — Funnel และสถานะการสรรหา
- หลายภาษา 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.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
| เมนู | BMC | PAO | บุคคลทั่วไป |
|---|---|---|---|
| 1. โครงสร้างองค์กร | 👁️ ดู | ✅ | ❌ |
| คีย์ขอโครงสร้าง | ✅ | 👁️ ดู | ❌ |
| DATAโครงสร้างบริษัทภายนอก | ❌ | ✅ | ❌ |
| DATAโครงสร้างบริษัทภายใน | ❌ | ✅ | ❌ |
| Flowchart / เลือก BU–บริษัท | 👁️ ดู | ✅ | 👁️ ดู |
| แก้ไขโครงสร้าง | ❌ | ✅ | ❌ |
| 2. ขออัตรากำลังคน | ✅ | 👁️ ดู | ❌ |
🟢 Task 3 — ใบสมัครงาน: Upload เอกสาร + AI ดึงข้อมูลอัตโนมัติ (ทั้ง 3 ประเทศ)
3.1 ข้อกำหนดจากชีต (7 ข้อ)
- หน้า "ร่วมงานกับ PKG Group" → "เริ่มสมัครงาน" — ส่วน "ความยินยอมในการเก็บรวบรวมข้อมูลส่วนบุคคล" (PDPA) ผู้สมัครต้องคลิกยอมรับก่อนจึงจะกรอกใบสมัครได้ (Required Consent Gate) ทำทั้ง 3 ประเทศ
- เพิ่มช่อง upload บัตรประชาชน + AI ดึงข้อมูลอัตโนมัติลงช่องที่กำหนดในใบสมัคร
- เพิ่มช่อง upload ทะเบียนบ้าน + AI ดึงข้อมูลอัตโนมัติลงช่องที่กำหนด
- ทุกช่องมีการแปลภาษา: 🇹🇭 ช่องบน=ไทย ช่องล่าง=AI แปลอังกฤษ · 🇱🇦 ช่องบน=ลาว ช่องล่าง=AI แปลไทย · 🇰🇭 ช่องบน=เขมร ช่องล่างที่ 1=อังกฤษ ช่องล่างที่ 2=ไทย — ทั้งหมดบันทึกลงฐานข้อมูล รองรับการใช้ข้อมูลของแต่ละประเทศ
- กรอกเสร็จแล้วมี script แจ้งเตือนไป Telegram: ห้อง super สรรหา PKG (chat id
-1001237535741) ข้อความ "New Candidate มีผู้สมัครงานใหม่ คุณ : … สมัครตำแหน่ง : 340##แม่ครัว + ลิงก์ดูรายละเอียด" · ห้อง ชุมชนคนหางาน (chat id-1001528940221) ข้อความสรุปสั้น "มีผู้สมัครงานใหม่ คุณ : ลำดวน XXXXXXX สมัครตำแหน่ง : 340##แม่ครัว เรียบร้อยแล้ว" - เพิ่ม link สมัครงาน/ขอฝึกงาน — หน้า "เริ่มสมัครงาน" แยก 2 เมนู: สมัครทั่วไป และ สมัครขอฝึกงาน (เฉพาะฝั่งไทย — ยืนยัน 30 ก.ย. 69) (ต้นทางฟอร์มฝึกงาน:
devdev.prachakij.com/appformPKG/formTraniee.php→ พอร์ตเข้า Web PP7 แล้วที่ form-trainee.html) - นักศึกษาฝึกงานกรอกเสร็จ → แจ้งเตือน 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
- OCR ต้องมีหน้าตรวจสอบข้อมูลก่อนบันทึกจริง (ห้าม auto-save)
- AI แปลต้องไม่เขียนทับข้อมูลต้นฉบับ
- ทุก Application ต้องมี application_id เดียวตลอดกระบวนการ · ทุกไฟล์ต้องผูกกับ application_id
- Consent ต้องผูกกับ Application + เก็บ Version ของข้อความ Consent
- Telegram ต้องทำผ่าน Backend — ห้ามเปิด Bot Token ไว้ใน Frontend · ต้องมี Notification Log
- ข้อมูลบัตรประชาชน/ทะเบียนบ้าน = ข้อมูลอ่อนไหว → กำหนดสิทธิ์การเข้าถึง, encryption, audit log, retention ให้ชัดเจน
- AI Translation เก็บสถานะ PENDING / SUCCESS / FAILED / REVIEW
- สมัครเสร็จส่งเลข 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 Web | FU/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/AI | PDPA 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 ด้านล่าง
ความเสี่ยง/ตัวแปร: คุณภาพ 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 Web | 5 | ✅ พุธ 14 ต.ค. 69 |
| พฤ. 15 – พ. 21 ต.ค. 69 | 🟢 Task 3 · ใบสมัคร + OCR/AI + Telegram | 5 | ✅ พุธ 21 ต.ค. 69 |
| พฤ. 22 – พ. 28 ต.ค. 69 (เว้น ศ. 23 ต.ค. วันหยุด) | 🔵 Task 2 · Step 1 โครงสร้างองค์กร + Flowchart | 4 | ✅ พุธ 28 ต.ค. 69 |
| พฤ. 29 ต.ค. – จ. 2 พ.ย. 69 | 🧪 Integration 3 Tasks + RBAC ครบ + UAT + แก้ bug | 3 | 🏁 จันทร์ 2 พ.ย. 69 |
| รวมทั้ง 3 Tasks เสร็จสมบูรณ์ (2 คน + AI) | จันทร์ 2 พฤศจิกายน 2569 (17 วันทำการ ≈ 3.5 สัปดาห์) | ||
✅ Checklist สำหรับทีมพัฒนา (เรียงตามลำดับที่ควรทำ)
Task 1 · Public Recruitment Web
- สร้าง Master Data: M_FU (3 FU) + M_COMPANY (seed ~40 บริษัท พร้อม COMPANY_ID) + M_BRANCH
- ทำหน้า Recruitment Landing → เลือก FU → Dynamic Theme (ส้ม/เหลือง/แดง–น้ำเงิน) + ภาษา (TH/LA/KH-EN)
- สมัครขอฝึกงานมีเฉพาะฝั่งไทย (FU01 THAI) → ปุ่ม 🎓 ใต้การ์ด THAI → form-trainee.html (ยืนยันพี่ปกรณ์ 30 ก.ย. 69 — ฝั่งลาว/กัมพูชาไม่มีฝึกงาน)
- หน้าเลือกบริษัท → สาขา → ตำแหน่งงานว่าง (JOB_POSTING) ต่อด้วย form-register.html เดิม
- แยก APPLICANT (stock) ออกจาก APPLICATION + PDPA_CONSENT + APPLICANT_DOCUMENT
- Admin > Master Data > บริษัท: เพิ่ม/แก้ไข/ปิดบริษัท (ACTIVE–INACTIVE + CONFIRM + Audit Log)
- RBAC: Public เห็นหน้ารับสมัคร + Flow 10 ขั้นตอนเฉพาะ PKG Member + จัดการ recruitment เฉพาะ HR/BMC/ADM/ผู้รับใช้ทีม
- Dashboard Funnel การสรรหา + เชื่อม Flow 10 ขั้นตอนด้วย APPLICATION_ID → ส่งต่อ P4 PAO
Task 2 · Step 1 โครงสร้างองค์กร
- เพิ่ม 4 เมนูย่อยในหน้า Flow การสรรหา → 1. โครงสร้างองค์กร
- เมนู 1: embed ฟอร์ม create_structure (GAS) ในหน้า PP7 → submit แล้วออก REQUEST_ID + STATUS=REQUEST → ส่งต่อ PAO
- เมนู 2/3: หน้า PAO set โครงสร้างภายนอก/ภายใน (แยก dataset ห้ามปน) — ดึงคำขอ → set → SAVE → APPROVE
- เมนู 4: Flowchart เลือก BU → บริษัท → render จาก APPROVED STRUCTURE อัตโนมัติ (version-based)
- สร้าง STRUCTURE_MASTER + STRUCTURE_VERSION (มี history) + Audit ทุกการอนุมัติ
- เชื่อมต่อ Step 2: MANPOWER_REQUEST ดึงโครงสร้างที่ approved แล้ว ให้ BMC กรอกเฉพาะจำนวนอัตรา
- RBAC ตามตารางสิทธิ์ BMC/PAO/บุคคลทั่วไป
Task 3 · ใบสมัคร + OCR/AI
- PDPA Consent Gate (บังคับกดยินยอมก่อนเข้าฟอร์ม, 3 ประเทศ) + เก็บ consent_id/version/IP/device
- หน้า "เริ่มสมัครงาน" แยก 2 เมนู: สมัครทั่วไป (form-register) / สมัครขอฝึกงาน (form-trainee — ทำแล้ว ✅ เฉพาะฝั่งไทย คงเหลือเชื่อม notification)
- Upload 4 ชนิด: บัตรประชาชน/ทะเบียนบ้าน/รูป/วุฒิ → ตรวจไฟล์+คุณภาพ → OCR → Mapping → auto-fill → หน้า Confirm ก่อน Save
- รูปผู้สมัคร: Crop/Resize + เก็บใน File/Object Storage (DB เก็บ file_id/url เท่านั้น)
- AI Translation ทุกช่อง TH/LA/KH → EN/TH ตามประเทศ + เก็บ source_value + translation status (PENDING/SUCCESS/FAILED/REVIEW)
- ขยาย DB1: Translation, Consent, Notification Log + application_type (general/trainee)
- Telegram notify ผ่าน Backend (ห้ามเปิด token ใน frontend): Super สรรหา PKG -1001237535741 + ชุมชนคนหางาน -1001528940221 (ห้องหลังห้ามส่งข้อมูลละเอียด) + ฟอร์มฝึกงานแจ้งห้อง super สรรหา + Notification Log
- Application URL สร้างจาก application_id จริง (ห้าม hard-code) + ส่งเลขสมัคร/สถานะกลับผู้สมัครทันที
- Application Status กลาง NEW→…→HIRED (+NOT_SELECTED) ต่อ P1–P4
- Security: ข้อมูลอ่อนไหว (บัตร/ทะเบียนบ้าน) → encryption, access control, audit log, retention policy