Commit graph

2835 commits

Author SHA1 Message Date
f9d626a499 add test, and fix script 2026-02-09 17:45:50 +07:00
638362df1c feat: improve move-draft-to-current with differential sync
Implement differential sync for organization structure and positions
instead of delete-all-and-insert-all approach.

Changes:
- Add OrgIdMapping and AllOrgMappings interfaces for tracking ID mappings
- Implement syncOrgLevel() helper for differential sync per org level
- Add syncPositionsForPosMaster() helper for position table sync
- Process org levels bottom-up (Child4→Child3→Child2→Child1→Root)
- Use ancestorDNA matching with Like operator for descendant sync
- Cascade delete positions before deleting org nodes
- Batch DELETE/UPDATE/INSERT operations for better performance
- Track draft→current ID mappings for position updates
- Add comprehensive documentation in docs/move-draft-to-current.md

Benefits:
- Preserve IDs for unchanged nodes (better tracking)
- More efficient (fewer database operations)
- Better data integrity with proper FK handling
- Sync all descendants under given rootDnaId

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 12:35:59 +07:00
22fc43fe17 Merge branch 'develop' into feat/org-move-draf-current
* develop:
  fix: ช่วยรายการและรักษาการ endDate null
  fix salaryId set null
  fix script move positionSalaryTemp to positionSalary
2026-02-09 09:55:30 +07:00
922a0ab1c2 fix: ช่วยรายการและรักษาการ endDate null
All checks were successful
Build & Deploy on Dev / build (push) Successful in 51s
2026-02-06 22:11:07 +07:00
e750b39639 fix salaryId set null
All checks were successful
Build & Deploy on Dev / build (push) Successful in 1m2s
2026-02-06 21:58:45 +07:00
2627c58244 fix script move positionSalaryTemp to positionSalary
All checks were successful
Build & Deploy on Dev / build (push) Successful in 52s
2026-02-06 21:47:56 +07:00
3177ffc42f merge 2026-02-06 21:46:41 +07:00
9aa0a97a53 fix script
All checks were successful
Build & Deploy on Dev / build (push) Successful in 51s
2026-02-06 17:02:08 +07:00
528f8f75c1 add query 2026-02-06 16:50:31 +07:00
256296672d privilege
All checks were successful
Build & Deploy on Dev / build (push) Successful in 48s
2026-02-06 15:25:54 +07:00
77b545d392 fix child privilege
All checks were successful
Build & Deploy on Dev / build (push) Successful in 48s
2026-02-06 15:12:52 +07:00
8a649086f7 fix: #2239
All checks were successful
Build & Deploy on Dev / build (push) Successful in 48s
2026-02-06 14:55:59 +07:00
harid
1696890f74 เพิ่มข้อมูล "อายุราชการ (กทม.)" #2285
All checks were successful
Build & Deploy on Dev / build (push) Successful in 49s
2026-02-06 14:47:47 +07:00
harid
5b726e69c8 Migrate add table profileSalaryBackup & เพิ่ม insert รักษาการ และช่วยราชการ #2292 2026-02-06 14:47:13 +07:00
203ec6cb84 fix: run temp to profileSalary
All checks were successful
Build & Deploy on Dev / build (push) Successful in 53s
2026-02-05 17:18:50 +07:00
af466df0d0 fix mode profileSalaryTemp to profileSalary
All checks were successful
Build & Deploy on Dev / build (push) Successful in 53s
2026-02-05 16:46:32 +07:00
631d634074 #2239
All checks were successful
Build & Deploy on Dev / build (push) Successful in 49s
2026-02-05 13:37:28 +07:00
d0241016fb disciption
All checks were successful
Build & Deploy on Dev / build (push) Successful in 1m3s
2026-02-05 11:45:10 +07:00
561dc7f66c change method 2026-02-05 11:43:59 +07:00
39a07482cd add api find dna by keycloak
All checks were successful
Build & Deploy on Dev / build (push) Successful in 1m0s
2026-02-05 11:23:38 +07:00
harid
dbc46e2fb9 เพิ่ม return สถานะการทดลองงาน
All checks were successful
Build & Deploy on Dev / build (push) Successful in 56s
2026-02-05 10:14:49 +07:00
harid
55085ab8d8 กรอง isDeleted
All checks were successful
Build & Deploy on Dev / build (push) Successful in 50s
2026-02-04 16:32:25 +07:00
harid
30bf5ad9e3 migrate add column isDeleted + API ลบข้อมูลฝึกอบรม/ดูงาน + การพัฒนารายบุคคล idp + รักษาการ Task #2276, #2279, #2278
All checks were successful
Build & Deploy on Dev / build (push) Successful in 50s
2026-02-03 17:44:30 +07:00
harid
bb18fed9ae migrate add commandOperator.orderNo & api ส่วนเจ้าหน้าที่ดำเนินการที่คำสั่ง #2220
All checks were successful
Build & Deploy on Dev / build (push) Successful in 49s
2026-02-03 12:22:55 +07:00
e5e407e122 fix: PUT /org/workflow/commander/operate isAct = true not response posExecutiveNameOrg
All checks were successful
Build & Deploy on Dev / build (push) Successful in 51s
2026-02-02 17:50:48 +07:00
0a3f0d9170 fix: return status of act position
All checks were successful
Build & Deploy on Dev / build (push) Successful in 50s
2026-02-02 16:30:24 +07:00
9507040f75 created: script active act position 2026-02-02 16:18:32 +07:00
e92321d360 fix: type avatar & avatarName, clear value null
All checks were successful
Build & Deploy on Dev / build (push) Successful in 1m39s
2026-01-31 12:37:25 +07:00
DESKTOP-1R2VSQH\Lenovo ThinkPad E490
74752361be fix: avatar : string
All checks were successful
Build & Deploy on Dev / build (push) Successful in 54s
2026-01-30 18:22:07 +07:00
510aaee0ee fix 2026-01-30 17:30:34 +07:00
84fb85ef3a fix: test entity avatar 2026-01-30 17:22:25 +07:00
DESKTOP-1R2VSQH\Lenovo ThinkPad E490
cd68478945 fix:avatar:string 2026-01-30 17:06:23 +07:00
DESKTOP-1R2VSQH\Lenovo ThinkPad E490
109caf7a0d fix: Type ProfileAvatar string | null
All checks were successful
Build & Deploy on Dev / build (push) Successful in 1m20s
2026-01-30 16:15:26 +07:00
DESKTOP-1R2VSQH\Lenovo ThinkPad E490
633ccd4906 fix:delete profileAvatar
All checks were successful
Build & Deploy on Dev / build (push) Successful in 53s
2026-01-30 14:47:46 +07:00
harid
e461f43604 Fix Bug #2243
All checks were successful
Build & Deploy on Dev / build (push) Successful in 54s
2026-01-30 12:01:38 +07:00
harid
12d2eb1ee9 ข้อมูลทะเบียนประวัติไม่อัปเดตหลัง "ยืนยันข้อมูลถูกต้อง" #2243
All checks were successful
Build & Deploy on Dev / build (push) Successful in 55s
2026-01-30 10:20:54 +07:00
d36c4c931c #2259
All checks were successful
Build & Deploy on Dev / build (push) Successful in 50s
2026-01-29 14:10:11 +07:00
harid
69acf3bb0b add api
All checks were successful
Build & Deploy on Dev / build (push) Successful in 52s
2026-01-29 13:18:21 +07:00
harid
328b5b8001 Fix เมนูสิทธิ์แก้ไขข้อมูลทะเบียนประวัติตำแหน่ง/เงินเดือน Error
All checks were successful
Build & Deploy on Dev / build (push) Successful in 59s
2026-01-29 09:34:12 +07:00
34f4a01d31 Merge branch 'fix/optimization-detailSuperAdmin' into develop
All checks were successful
Build & Deploy on Dev / build (push) Successful in 1m5s
* fix/optimization-detailSuperAdmin:
  Changed LogMemoryStore from active refresh (setInterval) to passive refresh on-access (60 min TTL)
  fix: extend OrgStructureCache TTL and add graceful shutdown cleanup
  add: docs and backup file
2026-01-29 00:31:26 +07:00
e4cfac2eb2 add: docs and backup file 2026-01-28 23:10:50 +07:00
07535c9c53 Merge branch 'fix/optimization-detailSuperAdmin' into develop
All checks were successful
Build & Deploy on Dev / build (push) Successful in 1m2s
* fix/optimization-detailSuperAdmin:
  fix: api /super-admin/{id} memory cache
  fix: query use Promise all
  fix: Api GET /super-admin/{id}
  fix: เพิ่ม Graceful Shutdown - ป้องกัน connection in app file, Log Mnddleware + Memory Store
  fix: connection pool settings
  feat: optimize detailSuperAdmin API to fix database connection issue
2026-01-28 18:26:41 +07:00
1a324af483 fix: api /super-admin/{id} memory cache 2026-01-28 18:26:03 +07:00
7c70229579 fix: query use Promise all 2026-01-28 17:48:28 +07:00
5dcb59632f fix: Api GET /super-admin/{id} 2026-01-28 17:43:26 +07:00
14c26cce72 add api get profileId
All checks were successful
Build & Deploy on Dev / build (push) Successful in 1m0s
2026-01-28 14:17:31 +07:00
bca25a7a52 feat: optimize detailSuperAdmin API to fix database connection issue
ปัญหา: API GET /api/v1/org/super-admin/{id} ทำให้ระบบดับเพราะ N+1 queries
- เดิม: >1,000,000 queries (100 orgRoots × 10 children × 10 counts/level)
- ใหม่: ~10 queries (query รวมครั้งเดียว + 5 org queries)

การเปลี่ยนแปลง:
1. สร้าง OrganizationController-optimized.ts
   - getPositionCounts(): query posMaster ทั้งหมดครั้งเดียว
   - สร้าง maps (orgRootMap, orgChild1Map, etc.) สำหรับ lookup
   - ลด queries จาก 1,000,000+ → ~10 queries

2. เพิ่ม import สำหรับ helper functions ใน OrganizationController.ts
   - import { getPositionCounts, getCounts, getRootCounts }
   - ต้อง replace ฟังก์ชัน detailSuperAdmin ด้วย optimized version
   - ดู OPTIMIZED_FUNCTION.ts สำหรับฟังก์ชันใหม่

ไฟล์ที่เพิ่ม:
- src/controllers/OrganizationController-optimized.ts (helper functions)
- OPTIMIZED_FUNCTION.ts (optimized function reference)
- src/utils/log-memory-store.ts (from earlier log middleware fix)

หมายเหตุ: ฟังก์ชัน detailSuperAdmin ใน OrganizationController.ts
ยังไม่ถูก replace (ต้องทำ manual) - ดู OPTIMIZED_FUNCTION.ts

Co-Authored-By: Claude (glm-4.7) <noreply@anthropic.com>
2026-01-28 13:45:52 +07:00
b64a8bb26d API Get Profile For Logs
All checks were successful
Build & Deploy on Dev / build (push) Successful in 1m0s
@Get("user-logs/{keycloakId}")
2026-01-28 12:04:49 +07:00
harid
ecd002456e Merge branch 'develop-Bright' into develop
All checks were successful
Build & Deploy on Dev / build (push) Successful in 59s
2026-01-28 11:02:38 +07:00
harid
43ae825ac0 tuning api (ตัด profileSalary เส้นที่ไม่ได้ใช้งาน) 2026-01-28 11:02:11 +07:00