Skip to content

0.5 · ฟีเจอร์หลัก 20 ตัว

บทนี้ list ฟีเจอร์หลักของระบบ เพื่อให้รู้ว่า "ถ้า HR พูดถึง X มันอยู่ในโค้ดตรงไหน"

ไม่ใช่ list ทั้งหมด — เป็นแค่ 20 อันที่ user ใช้บ่อยที่สสุด รายการทั้งหมดอยู่ใน typeDefs 43 ไฟล์ของ vtrc-api (ดู Volume 3 และ Volume 11)


รายการ 20 ฟีเจอร์

#ฟีเจอร์พนักงานHRCode หลัก
1Authentication / Loginvtrc-api/api/src/typeDefs/authentication.js
2JWT refresh + sessionvtrc-api/api/src/lib/repositories/session/session.js
3Payslip (ดูสลิปเงินเดือน)vtrc-api/api/src/typeDefs/slip.js + centralize/controllers/slip.js → cu-central
4Tax (ภาษี ปี/6 เดือน/หลายปี)vtrc-api/api/src/typeDefs/slip.js (fetchUrlTax*)
5Leave (การลา 12 ประเภท)vtrc-api/api/src/typeDefs/hrmi.js + lib/controllers/hrmi/
6Multi-level approval chainvtrc-api/api/src/lib/controllers/hrmi/hrmi.js:60-180
7Hospital Welfare Withdrawalvtrc-api/api/src/typeDefs/wdHospital.js
8Study Leave / ทุนการศึกษาvtrc-api/api/src/typeDefs/studyLeave*.js
9Child Tuition (ค่าเล่าเรียนบุตร)vtrc-api/api/src/typeDefs/childTuition.js
10Time Attendancevtrc-api/api/src/typeDefs/timeAttendance.js → cu-central
11Provident Fundvtrc-api/api/src/typeDefs/providentFund.js
12Delegate (ผู้รับมอบฉันทะ)vtrc-api/api/src/typeDefs/delegate.js
13Policy (นโยบายคุณภาพ)vtrc-api/api/src/typeDefs/policy.js
14News / Postvtrc-api/api/src/typeDefs/post.js + notification.js
15Document (คลังเอกสาร)vtrc-api/api/src/typeDefs/document.js
16Contact Usvtrc-api/api/src/typeDefs/contactUs.js
17Profilevtrc-api/api/src/typeDefs/profile.js + user.js
18Bank Export (KBANK)vtrc-api/api/src/config.js:488-518 (statusKcash)
19Excel Import / Exportvtrc-api/api/src/routes.js (GET /download/excel/:table) + lib/controllers/excel/
20RBAC + Menu Accessvtrc-api/api/src/directives/auth.js + config.js

ฟีเจอร์ 5 · Leave (การลา) — 12 ประเภท

ประเภทการลาทั้งหมดไม่ได้ hardcode ใน code แต่อยู่ในตาราง MasterData ที่ HR แก้ไขได้ ประเภทที่พบบ่อย

  1. ลาป่วย
  2. ลากิจ
  3. ลาพักผ่อน
  4. ลาคลอด
  5. ลาทหาร (เกณฑ์)
  6. ลาไปศึกษา
  7. ลาไปอบรม (conicle)
  8. ลาเพื่ออุปสมบท
  9. ลาเพื่อช่วยภริยาคลอด
  10. ลาเพื่อดูแลบุตร
  11. ลาประจำปี (พิเศษ)
  12. ลาอื่นๆ

กฎเกณฑ์ (max/min days, advance/retroactive windows) อยู่ใน lib/controllers/hrmi/hrmi.js:1295-1319 — เป็น logic ที่ตรวจก่อนบันทึกคำขอใหม่


ฟีเจอร์ 7 · Hospital Welfare Withdrawal — ความสัมพันธ์ที่เบิกได้

พนักงานเบิกค่ารักษาให้คนในความสัมพันธ์ต่อไปนี้ได้

Codeความสัมพันธ์หมายเหตุ
00ตัวเองself-claim
10บิดา
20มารดา
70คู่สมรส
8185บุตรคนที่ 1–5สูงสุด 5 คน — hardcode policy

policy "สูงสุด 5 บุตร" อยู่ใน vtrc-api/api/src/config.js:392-429 (relationHrmi)


ฟีเจอร์ 10 · Time Attendance — flow ผ่าน cu-central

vtrc-web

   │  GraphQL timeAttendanceByDate(date)

vtrc-api
   │  lib/repositories/timeAttendance → centralize/controllers/timeAttendance.js
   │  GraphqlCDWithToken → END_POINT_CENTRALIZE

cu-central-api (GraphQL)

   │  คิวรี่ MSSQL (HR time)

response → vtrc-web

live path ไม่ผ่าน NestJS centralize-api และไม่พึ่ง Redis write-through บน path นี้ใน vtrc-api


ฟีเจอร์ที่ "มีแต่ไม่เด่น"

Conicle (คอนิเคิล)

ระบบ training/learning ภายนอก APP_TYPE: INTEGRATE_APP — หน้าที่อนุญาตมีจำกัด

js
// vtrc-api/api/src/config.js
CONICLE_PAGE: ['MyLibrary', 'LearningRequest', 'Home']

Twoway Sync

APP_TYPE: TWOWAY — sync ข้อมูลสองทิศทางกับ HRMI (รายละเอียดใน cu-central-api/main-api/src/lib/twoWay/)

Meeting

APP_TYPE: MEETING — ระบบจัดการประชุม

Plasma & CU re-structure

มี KEY_PLASMA ('47837e2d-7788-4a1a-8e24-a90abf6742f4') และ KEY_CU_H ('CU-RE-STRUCTURE-ID-02') ใน config.js:152-154 เป็น hardcoded identifiers สำหรับกลุ่มพนักงานพิเศษ — ความหมายเชิง business ถาม HR เท่านั้น


Subsystems ฝั่ง backoffice

backoffice ไม่ใช่แค่ HR หลัก แต่รวม subsystems หลายตัวเข้าด้วยกัน (เห็นได้จาก axios instances 15 ตัวใน src/config/ — ไฟล์ axios*.js)

Subsystemหน้าใน backofficeaxios config
PMSpages/PMS/, pages/PmsAssessment/, pages/PmsIndicators/axios-pms.js
Recruitmentpages/Recruitment/axios-recruitment.js, axios-recruitment-upload.js
WorkForcepages/WorkForce/axios-workforce.js, apollo-workforce.js
Meetingpages/Meeting/axios-meeting.js
Benefitpages/Benefit/, pages/OtherWelfare/axios-benefit.js, axios-benefit-i3.js

ฟีเจอร์ระบบภายในที่ user มองไม่เห็น

PDF Generation Pipeline

พนักงานขอ PDF


vtrc-api (routes.js)

   ├── ejs render (HTML template)

   ├── html-pdf (PhantomJS → PDF)

   ├── qpdf encrypt (password = identityCard)

   └── ส่ง URL valid 1 ชั่วโมงให้ browser

security caveat — execSync(qpdf --encrypt ${password}...) เป็น command injection risk (ดู Volume 15 SEC-1)

Cron Jobs

vtrc-api/api/src/crons.js ใช้ node-schedule รันใน process — ไม่มี HA ถ้า replica ที่รัน cron restart กลางคัน งานนั้นหาย

งานที่รันในไฟล์นี้ (ณ โค้ดปัจจุบัน)

  • อัปเดต fund change rate สำเร็จ (updateSuccessFundChangeRateByJob) — เฉพาะเมื่อ APP_NO === 1
  • หมดอายุ delegate (updateDelegatesExpire) ทุกวัน 03:30
  • เก็บ stat log (statLog) ทุกวัน 00:30

ไม่มี job ดึงผล K-Cash จากธนาคาร — การอัปเดตสถานะหลังโอนทำด้วยการนำเข้าไฟล์ด้วยมือ (importUpdateStatus)

Notification (FCM Push)

ใช้ firebase-admin@^9.2.0 ส่ง push notification ผ่าน Firebase Cloud Messaging ส่วนใหญ่ไปที่ mobile app


ขั้นตอนถัดไป

ไป บท 0.6 คำศัพท์ที่ต้องรู้ →