Skip to main content

จัดเตรียม JSA (JSA Preparation) - Workflow

Prototype

นี่คือเอกสารสำหรับ JSA Preparation Prototype กรุณาทดสอบและส่ง feedback

Overview

JSA Preparation workflow ช่วยให้ผู้รับเหมาสามารถจัดเตรียมและส่งเอกสารวิเคราะห์งานเพื่อความปลอดภัย (Job Safety Analysis) โดยมีค่าเริ่มต้น 3 ฉบับ และสามารถเพิ่มได้ตามต้องการ จากนั้นจะส่งให้เจ้าของงานและเจ้าหน้าที่ความปลอดภัยตรวจสอบร่วมกัน (Co-Review)


Workflow Diagram


Co-Review Pattern

2-Role Co-Review

JSA Preparation ใช้รูปแบบการตรวจสอบร่วม 2 บทบาท:

  • Work Owner (WO): ผู้ควบคุมงาน - ตรวจสอบคุณภาพและความครบถ้วนของ JSA
  • Safety Officer (SO): เจ้าหน้าที่ความปลอดภัย - ตรวจสอบด้านความปลอดภัยและมาตรการควบคุม

ทั้ง 2 บทบาทต้องอนุมัติจึงจะสามารถเข้าสู่สถานะ "เสร็จสิ้น" ได้


States

StateThai NameDescriptionExpected Role
Startedเริ่มต้นสถานะเริ่มต้น-
PrepareJSAจัดเตรียม JSAผู้รับเหมากรอกข้อมูล JSA (3 ฉบับขึ้นไป)ผู้รับเหมา
ReviewByCoReviewตรวจสอบร่วมเจ้าของงาน + จป. ตรวจสอบร่วมกันWO + SO
Completedเสร็จสิ้นJSA ได้รับการอนุมัติแล้ว-
RejectedปฏิเสธJSA ถูกปฏิเสธ-
Cancelledยกเลิกยกเลิกการจัดเตรียม JSA-

Commands

CommandThai NameFrom StateTo State
SubmitJSAส่ง JSAPrepareJSAReviewByCoReview
CancelยกเลิกPrepareJSACancelled
ApproveJSAอนุมัติ JSAReviewByCoReviewCompleted
RequestChangeJSAส่งกลับแก้ไขReviewByCoReviewPrepareJSA
RejectJSAปฏิเสธReviewByCoReviewRejected
Co-Review Approval

คำสั่ง ApproveJSA จะทำงานก็ต่อเมื่อทั้ง WO และ SO อนุมัติแล้วเท่านั้น หากยังไม่ครบทั้ง 2 บทบาท ระบบจะบันทึกการอนุมัติของบทบาทนั้นและรอบทบาทที่เหลือ


Form Edit Permissions

StateEditable DocumentsEditable ByLock Reason
PrepareJSADoc 3 (Risk Assessment/JSA)ผู้รับเหมา-
ReviewByCoReview(all locked)-กำลังตรวจสอบร่วม
Completed(all locked)-อนุมัติแล้ว
Rejected(all locked)-ถูกปฏิเสธ
Cancelled(all locked)-ยกเลิกแล้ว

Document Forms

Doc IDDocumentThai NameDescription
3Risk Assessment Form (JSA)การวิเคราะห์งานเพื่อความปลอดภัยฟอร์มวิเคราะห์อันตรายและมาตรการควบคุม

Default JSA Examples

เมื่อสร้างงาน JSA Preparation ใหม่ ระบบจะสร้าง JSA เริ่มต้น 3 ฉบับ (เหมือนกับ Work Permit):

#Work TypeThai NameDescription
1งานเชื่อม งานตัด งานเจียร งานเจาะHot Workงานที่มีความร้อนและประกายไฟ
2การทำงานบนที่สูงWork at Heightงานที่ปฏิบัติในที่สูงตั้งแต่ 2 เมตรขึ้นไป
3งานรถกระเช้าElevated Platformงานที่ใช้รถกระเช้าหรือแท่นยก
เพิ่ม JSA ได้ตามต้องการ

ผู้รับเหมาสามารถเพิ่ม JSA เพิ่มเติมได้โดยคลิกปุ่ม "เพิ่ม JSA" บนหน้าแสดงรายการ


Form Fields

Risk Assessment Form (Doc 3)

SectionFieldsDescription
ข้อมูลทั่วไปบริษัท/Contractorชื่อผู้รับเหมา
โครงการชื่อโครงการที่เกี่ยวข้อง
สถานที่ตำแหน่งที่ปฏิบัติงาน
ระยะเวลาวันที่เริ่ม-สิ้นสุด
PO/PRหมายเลขอ้างอิง
General Practicesรายการ 6 ข้อการปฏิบัติด้านความปลอดภัยทั่วไป
Assessment Itemsตารางพื้นที่ปฏิบัติงาน, กิจกรรม, อันตราย, มาตรการควบคุม
ลายเซ็น4 ลายเซ็นผู้จัดทำ, ผู้อนุมัติ, เจ้าของพื้นที่, หัวหน้างาน

Testing Instructions

เข้าถึง Prototype

  1. เข้าสู่ระบบด้วย role Contractor
  2. ไปที่ "งานของฉัน" (My Tasks)
  3. คลิก "สร้างงาน" → เลือก "จัดเตรียม JSA"

Test Scenarios

Scenario 1: ส่ง JSA สำเร็จ (Co-Review)

  1. Contractor: สร้างงานใหม่ประเภท "จัดเตรียม JSA" → เห็น JSA เริ่มต้น 3 ฉบับ
  2. Contractor: แก้ไขหรือเพิ่ม JSA ตามต้องการ
  3. Contractor: คลิก "ส่ง JSA"
  4. Work Owner: ตรวจสอบ JSA และคลิก "อนุมัติ JSA" (WO badge เปลี่ยนเป็นสีเขียว)
  5. Safety Officer: ตรวจสอบ JSA และคลิก "อนุมัติ JSA" (SO badge เปลี่ยนเป็นสีเขียว)
  6. เมื่อทั้ง 2 บทบาทอนุมัติครบ → สถานะเปลี่ยนเป็น "เสร็จสิ้น"

Scenario 2: ส่งกลับแก้ไข

  1. ทำขั้นตอน 1-4 จาก Scenario 1
  2. Work Owner หรือ Safety Officer: คลิก "ส่งกลับแก้ไข"
  3. Contractor: แก้ไขข้อมูล JSA
  4. Contractor: ส่งใหม่อีกครั้ง (การอนุมัติของ WO/SO รีเซ็ต)

Scenario 3: ยกเลิก

  1. ทำขั้นตอน 1-2 จาก Scenario 1
  2. Contractor: คลิก "ยกเลิก"
  3. สถานะเปลี่ยนเป็น "ยกเลิก"

Scenario 4: เพิ่ม JSA ใหม่

  1. ทำขั้นตอน 1 จาก Scenario 1
  2. Contractor: คลิกปุ่ม "เพิ่ม JSA"
  3. กรอกข้อมูล JSA ใหม่
  4. ดำเนินการส่งและอนุมัติตามปกติ

สิ่งที่ต้องตรวจสอบ

  • สร้างงานใหม่ได้สำเร็จ
  • เห็น JSA เริ่มต้น 3 ฉบับ
  • สามารถเพิ่ม JSA ใหม่ได้
  • ปุ่มคำสั่งแสดงตามสถานะถูกต้อง
  • กรอกข้อมูล JSA ได้
  • WO และ SO badges แสดงถูกต้อง (สีเทา = รออนุมัติ, สีเขียว = อนุมัติแล้ว)
  • ต้องทั้ง 2 บทบาทอนุมัติจึงจะเสร็จสิ้น
  • ฟอร์มล็อคเมื่ออยู่ในสถานะตรวจสอบ

Architecture Notes

Temporal.io Workflow

JSA Preparation ใช้ Temporal.io สำหรับ workflow orchestration:

  1. Task Creation: Task ถูกสร้างผ่าน JSAPreparationWorkflowService.ExecuteAsync()
  2. Workflow: Temporal workflow ใน JSAPreparationWorkflow.cs จัดการ state machine
  3. Commands: Query Temporal workflow ผ่าน GetCommandsAsync()
  4. State Transitions: Update Temporal workflow ผ่าน method เช่น SubmitJSAAsync(), ApproveJSAAsync()

Key Backend Files

FilePurpose
SafetyApp.Workflows.JSAPreparation/JSAPreparationWorkflow.csTemporal workflow (states, queries, updates)
SafetyApp.Workflows.JSAPreparation/JSAPreparationActivities.csActivity methods
SafetyApp.Workflows.JSAPreparation/JSAPreparationWorkflowService.csTemporal client wrapper
SafetyApp.Application/Contracts/IJSAPreparationWorkflowService.csService interface
SafetyApp.Infrastructure/Services/TaskCommandService.csCommand execution routing

Key Frontend Files

FilePurpose
risk-assessment-form.component.tsForm component
risk-assessment-form.model.tsForm data model
jsa-preparation-svg-mapping.config.tsSVG workflow diagram mapping

Source Code Reference

Workflow is implemented as a Temporal.io workflow:

Project: backend/SafetyApp.Workflows.JSAPreparation/

FileDescription
JSAPreparationWorkflow.csState machine with [WorkflowQuery] and [WorkflowUpdate] methods
JSAPreparationActivities.csActivity methods for task creation, state updates
DependencyInjection.csTemporal worker registration with task queue jsa-preparation-task-queue

Feedback

สิ่งที่ต้องการ Feedback

  1. Workflow: ลำดับขั้นตอนเหมาะสมหรือไม่?
  2. Form Fields: ฟิลด์ครบถ้วนหรือไม่?
  3. Assessment Items: การกรอกข้อมูลอันตรายใช้งานง่ายหรือไม่?
  4. Missing Features: มีอะไรที่ขาดหายไป?

วิธีส่ง Feedback

  • ติดต่อทีมพัฒนาโดยตรง
  • หรือสร้าง Issue ใน GitHub repository