Get Manpower Summary by Branch
สรุปจำนวนพนักงานที่ไปปฏิบัติงานจริงในแต่ละสาขาแบบ Grid รายเดือน/สัปดาห์ (นับจำนวนต่อวันต่อสาขา)
ใช้ API นี้เพื่อดึงข้อมูลสรุปจำนวนพนักงานที่ไปปฏิบัติงานจริงแยกตามสาขาแบบรายวัน เหมาะสำหรับวิเคราะห์และจัดสรรกำลังพลในภาพรวมระดับสาขา — ต่างจาก Get Manpower Grid ที่ให้รายละเอียดระดับพนักงานแต่ละคน
Endpoint
POST /api/v1/open-apis/time-manage/get-sum-personnel-multiple-in-branchสิทธิ์ที่ต้องการ: API Key ต้องมีสิทธิ์ ข้อมูลการยื่นเอกสาร (document:manage)
Request Parameters
Required Parameters (ระบุอย่างใดอย่างหนึ่ง)
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
month_no | string | Conditionally | รอบเงินเดือน (YYYY-MM) — ห้ามส่งคู่กับ week_no | "2026-07" |
week_no | string | Conditionally | วันที่ใดๆ ในสัปดาห์ที่ต้องการ (YYYY-MM-DD) — ห้ามส่งคู่กับ month_no | "2026-07-01" |
Optional Parameters
| Parameter | Type | Default | Description | Example |
|---|---|---|---|---|
employee_code | string | null | รหัสพนักงานกรณีเรียกรายคน (ระบบแปลงเป็น ID ให้อัตโนมัติ) | "EMP001" |
company_lists | array<{id}> | [] | รายการ ID บริษัทที่กรอง (Base64) | [{ "id": "MjAyNTExMjdENDU3M0M0MjE2Mzk=" }] |
branch_lists | array<{id}> | [] | รายการ ID สาขาที่กรอง (Base64) | [{ "id": "MjAyNTExMjdENDU3M0M0MjE2Mzk=" }] |
department_lists | array<{id}> | [] | รายการ ID แผนกที่กรอง (Base64) | [] |
division_lists | array<{id}> | [] | รายการ ID ฝ่ายที่กรอง (Base64) | [] |
section_lists | array<{id}> | [] | รายการ ID แผนกย่อยที่กรอง (Base64) | [] |
section_lists_lv01 … section_lists_lv05 | array<{id}> | [] | รายการ ID แผนกย่อยระดับ 1–5 (Base64) | [] |
position_lists | array<{id}> | [] | รายการ ID ตำแหน่งที่กรอง (Base64) | [] |
employee_lists | array<{id}> | [] | รายการ ID พนักงานโดยตรง (Base64) | [{ "id": "MjAyNTExMjdENDU3M0M0MjE2Mzk=" }] |
hashtag | string | "" | ข้อความแฮชแท็กที่ใช้กรอง (คั่นแต่ละแท็กด้วยเว้นวรรค) | "#IT #Developer" |
round_month_config | string | "" | ประเภทงวด: "" (ทั้งหมด), "Full" (เต็มเดือน), "Split" (แบ่งงวดจ่าย) | "Full" |
language_code | string | "TH" | ภาษาของข้อมูล: "TH" หรือ "EN" | "TH" |
Endpoint นี้ไม่มีการแบ่งหน้า (pagination) — ไม่รองรับพารามิเตอร์ _PAGE / _NUMBER_PER_PAGE และ response จะไม่มี _PAGINATION เนื่องจากผลลัพธ์เป็นรายการสาขา ไม่ใช่รายชื่อพนักงาน
Request Body Example
{
"month_no": "2026-07",
"language_code": "TH",
"round_month_config": "Full",
"branch_lists": [
{ "id": "MjAyNTExMjdENDU3M0M0MjE2Mzk=" }
]
}Response Format
Success Response (HTTP 200)
{
"code": 200,
"payload": {
"time_range": {
"start_date": "2026-06-26",
"end_date": "2026-07-25",
"day_range": 30
},
"child": [
{
"detail": {
"branch_code": "HQ",
"branch_name": "สำนักงานใหญ่",
"branch_id": "202412254358646B34E4",
"total": "42"
},
"daily": [
{
"work_date": "2026-07-01",
"count": 5
}
]
}
]
}
}Error Response - Validation Failed (HTTP 400)
{
"code": 400,
"message": "ไม่สำเร็จ",
"errors": [
"Please specify either 'month_no' (YYYY-MM) or 'week_no' (YYYY-MM-DD)"
]
}Error Response - Unauthorized (HTTP 401)
{
"statusCode": 401,
"message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription."
}Empty Result (HTTP 200)
หากไม่พบสาขาใดในช่วงเวลาที่ระบุ ระบบจะตอบกลับ HTTP 200 โดย payload.time_range เป็นค่าว่างและไม่มี child:
{
"code": 200,
"message": "Success",
"payload": {
"time_range": {
"start_date": "",
"end_date": "",
"day_range": 0
}
}
}Response Fields
payload.time_range
| Field | Type | Nullable | Description |
|---|---|---|---|
start_date | string | No | วันเริ่มต้นช่วงเวลาค้นหา (YYYY-MM-DD) |
end_date | string | No | วันสิ้นสุดช่วงเวลาค้นหา (YYYY-MM-DD) |
day_range | integer | No | จำนวนวันทั้งหมดในช่วงเวลานี้ |
payload.child[].detail
| Field | Type | Nullable | Description |
|---|---|---|---|
branch_code | string | Yes | รหัสสาขา |
branch_name | string | Yes | ชื่อสาขา (ภาษาตาม language_code) |
branch_id | string | No | รหัสอ้างอิงสาขา |
total | string | No | จำนวนพนักงานทั้งหมดที่สังกัดสาขานี้ — ไม่ใช่ จำนวนที่ไปปฏิบัติงานจริง |
payload.child[].daily[]
| Field | Type | Nullable | Description |
|---|---|---|---|
work_date | string | No | วันที่ (YYYY-MM-DD) ของรายการนี้ |
count | integer | No | จำนวนพนักงานที่ไปปฏิบัติหน้าที่จริงในสาขานี้ ณ วันที่ดังกล่าว (0 หากไม่มีข้อมูลวันนั้น) |
Code Examples
cURL
curl -X POST "https://openapi.humansoft.co.th/api/v1/open-apis/time-manage/get-sum-personnel-multiple-in-branch" \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"month_no": "2026-07",
"language_code": "TH",
"round_month_config": "Full",
"branch_lists": [
{ "id": "MjAyNTExMjdENDU3M0M0MjE2Mzk=" }
]
}'Validation Rules
| Parameter | Validation |
|---|---|
month_no / week_no | ต้องส่งอย่างใดอย่างหนึ่ง และห้ามส่งพร้อมกัน |
month_no | ต้องมีรูปแบบ YYYY-MM |
week_no | ต้องมีรูปแบบ YYYY-MM-DD |
round_month_config | ต้องเป็น "", "Full" หรือ "Split" เท่านั้น |
hashtag / employee_code | ต้องเป็นข้อมูลประเภท string |
Business Rules
- หากส่ง
employee_codeระบบจะค้นหาเฉพาะพนักงานคนนั้น มิเช่นนั้นจะค้นตาม filter องค์กร (สาขา/แผนก/ตำแหน่ง ฯลฯ) totalคือจำนวนพนักงานทั้งหมดที่สังกัดสาขานั้น ส่วนcountรายวันคือจำนวนที่ไปปฏิบัติงานจริงในวันนั้น จึงอาจไม่เท่ากัน- ทุกวันในช่วงเวลาที่ค้นหาจะมีรายการใน
dailyเสมอ — วันที่ไม่มีพนักงานปฏิบัติงานจะมีcountเป็น0 branch_nameจะแสดงเป็นภาษาไทยหรือภาษาอังกฤษตามค่าlanguage_codeที่ส่งเข้ามา
Related APIs
- Get Manpower Grid - ดึงรายละเอียดสาขาปฏิบัติงานรายวันแยกรายพนักงาน (มีการแบ่งหน้า)
- Get Work Cycle Grid - ดึงตารางกะการทำงานของพนักงานตามช่วงเวลา
Last updated on