รายการเครื่องมือ (Tool List) - Workflow
Production Ready
Tool List Workflow ใช้ Temporal.io backend เหมือนกับ Project Registration และ Work Permit workflows
Overview
Tool List workflow ช่วยให้ผู้รับเหมาสามารถจัดเตรียมและส่งรายการเครื่องมือที่ใช้ในการปฏิบัติงาน โดยเจ้าของงานจะเป็นผู้ตรวจสอบและอนุมัติ
Workflow Diagram
States
| State | Thai Name | Description | Expected Role |
|---|---|---|---|
| Started | เริ่มต้น | สถานะเริ่มต้น | - |
| PrepareToolList | จัดเตรียมรายการเครื่องมือ | ผู้รับเหมากรอกรายการเครื่องมือ | ผู้รับเหมา |
| ReviewByWorkOwner | เจ้าของงานตรวจสอบ | เจ้าของงานตรวจสอบและอนุมัติรายการ | เจ้าของงาน |
| Completed | เสร็จสิ้น | รายการเครื่องมือได้รับการอนุมัติแล้ว | - |
| Rejected | ปฏิเสธ | รายการเครื่องมือถูกปฏิเสธ | - |
| Cancelled | ยกเลิก | ยกเลิกการจัดเตรียมรายการ | - |
Commands
| Command | Thai Name | From State | To State |
|---|---|---|---|
| SubmitToolList | ส่งรายการเครื่องมือ | PrepareToolList | ReviewByWorkOwner |
| Cancel | ยกเลิก | PrepareToolList | Cancelled |
| ApproveToolList | อนุมัติรายการ | ReviewByWorkOwner | Completed |
| RequestChangeToolList | ส่งกลับแก้ไข | ReviewByWorkOwner | PrepareToolList |
| RejectToolList | ปฏิเสธ | ReviewByWorkOwner | Rejected |
Form Edit Permissions
| State | Editable Documents | Editable By | Lock Reason |
|---|---|---|---|
| PrepareToolList | Doc 5 (Tool List) | ผู้รับเหมา | - |
| ReviewByWorkOwner | (all locked) | - | เจ้าของงานกำลังตรวจสอบ |
| Completed | (all locked) | - | อนุมัติแล้ว |
| Rejected | (all locked) | - | ถูกปฏิเสธ |
| Cancelled | (all locked) | - | ยกเลิกแล้ว |
Document Forms
| Doc ID | Document | Thai Name | Description |
|---|---|---|---|
| 5 | Tool List Form | รายการเครื่องมือ | ฟอร์มสำหรับบันทึกรายการเครื่องมือที่ใช้ในการปฏิบัติงาน |
Form Fields
Tool List Form (Doc 5)
| Section | Fields | Description |
|---|---|---|
| ข้อมูลทั่วไป | PO | หมายเลขใบสั่งซื้อ |
| Contractor | ชื่อผู้รับเหมา | |
| Project | ชื่อโครงการ | |
| Work Period | ระยะเวลาปฏิบัติงาน (วันที่เริ่ม-สิ้นสุด) | |
| รายการเครื่องมือ | ตาราง 15 แถว | รายละเอียดเครื่องมือแต่ละรายการ |
Tool Items Table Columns
| Column | Thai Name | Description |
|---|---|---|
| Tool Name | ชื่อเครื่องมือ | ชื่อหรือประเภทเครื่องมือ |
| Quantity | จำนวน | จำนวนเครื่องมือ |
| Entry Date | วันที่นำเข้า | วันที่นำเครื่องมือเข้าพื้นที่ |
| Inspection Result | ผลการตรวจสอบ | ผ่าน/ไม่ผ่าน |
| Exit Date | วันที่นำออก | วันที่นำเครื่องมือออกจากพื้นที่ |
| Remarks | หมายเหตุ | หมายเหตุเพิ่มเติม |
Footer
| Field | Thai Name | Description |
|---|---|---|
| Inspector Signature | ลายเซ็นผู้ตรวจสอบ | เจ้าของงานลงนามตรวจสอบ |
| Date | วันที่ | วันที่ตรวจสอบ |
Testing Instructions
เข้าถึง Prototype
- เข้าสู่ระบบด้วย role Contractor
- ไปที่ "งานของฉัน" (My Tasks)
- คลิก "สร้างงาน" → เลือก "รายการเครื่องมือ"
Test Scenarios
Scenario 1: ส่งรายการเครื่องมือสำเร็จ
- Contractor: สร้างงานใหม่ประเภท "รายการเครื่องมือ"
- Contractor: กรอกรายการเครื่องมือ (ชื่อ, จำนวน, วันที่นำเข้า)
- Contractor: คลิก "ส่งรายการเครื่องมือ"
- Work Owner: ตรวจสอบรายการเครื่องมือ
- Work Owner: คลิก "อนุมัติรายการ"
- สถานะเปลี่ยนเป็น "เสร็จสิ้น"
Scenario 2: ส่งกลับแก้ไข
- ทำขั้นตอน 1-4 จาก Scenario 1
- Work Owner: คลิก "ส่งกลับแก้ไข"
- Contractor: แก้ไขรายการเครื่องมือ
- Contractor: ส่งใหม่อีกครั้ง
Scenario 3: ยกเลิก
- ทำขั้นตอน 1-2 จาก Scenario 1
- Contractor: คลิก "ยกเลิก"
- สถานะเปลี่ยนเป็น "ยกเลิก"
สิ่งที่ต้องตรวจสอบ
- สร้างงานใหม่ได้สำเร็จ
- ปุ่มคำสั่งแสดงตามสถานะถูกต้อง
- กรอกรายการเครื่องมือได้ (เพิ่ม/ลบแถว)
- สถานะเปลี่ยนตามคำสั่งถูกต้อง
- ฟอร์มล็อคเมื่ออยู่ในสถานะตรวจสอบ
Architecture Notes
Temporal.io Backend
Tool List ใช้ Temporal.io Workflow Engine เหมือนกับ Project Registration และ Work Permit:
- Workflow Project:
SafetyApp.Workflows.ToolListPreparation - State Machine:
ToolListPreparationWorkflow.csจัดการ state transitions - Activities:
ToolListPreparationActivities.csดำเนินการ database operations - Commands: Backend คืนค่า commands ตาม current state ผ่าน Temporal Query
Key Backend Files
| File | Purpose |
|---|---|
ToolListPreparationWorkflow.cs | State machine with Temporal decorators |
ToolListPreparationActivities.cs | DB operations (CreateTask, UpdateState, CreateLog) |
ToolListPreparationWorkflowService.cs | API integration layer |
ToolListPreparationWorkflowCommands.cs | Commands enum with Thai descriptions |
Key Frontend Files
| File | Purpose |
|---|---|
tool-list-form.component.ts | Form component |
tool-list-form.model.ts | Form data model |
tool-list-svg-mapping.config.ts | SVG workflow diagram mapping |
Test Cases
ดูรายละเอียดขั้นตอนการทดสอบได้ที่: