690514:2019 204-rfa-approval-refactor #01
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
// File: docs/ai-knowledge-base/playbooks/dms/cross-module-linking.md
|
||||
# Playbook: Cross-Module Linking (การเชื่อมโยงข้อมูลข้ามโมดูล)
|
||||
|
||||
## 🎯 Objective
|
||||
รักษาความถูกต้องและความเชื่อมโยงของข้อมูล (Data Integrity) ระหว่างโมดูลต่างๆ เช่น การผูก RFA เข้ากับ Drawing หรือ Correspondence
|
||||
|
||||
## 🏗️ Linking Rules
|
||||
1. **Use PublicId**: การเชื่อมโยงข้ามโมดูลต้องใช้ `publicId` (UUIDv7) เท่านั้น
|
||||
2. **Atomic Updates**: หากการเชื่อมโยงส่งผลต่อสถานะของทั้งสองโมดูล ต้องทำภายใน Database Transaction เดียวกัน
|
||||
3. **Audit Trail**: ต้องบันทึกประวัติการเชื่อมโยง (e.g. "Drawing X linked to RFA Y")
|
||||
4. **Validation**: ก่อนสร้าง Link ต้องตรวจสอบว่าทั้งสอง Entity มีอยู่จริงและอยู่ในสถานะที่อนุญาตให้เชื่อมโยงได้
|
||||
|
||||
## 🛠️ Implementation Example
|
||||
- **RFA to Drawing**: เมื่อ RFA ได้รับการอนุมัติ ให้ทำการอัปเดตสถานะของ Drawing ที่เกี่ยวข้องโดยอัตโนมัติ
|
||||
- **Correspondence to Transmittal**: บันทึกว่าจดหมายฉบับนี้ถูกส่งไปพร้อมกับ Transmittal เลขที่เท่าไหร่
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial cross-module linking playbook
|
||||
@@ -0,0 +1,18 @@
|
||||
// File: docs/ai-knowledge-base/playbooks/dms/drawing-revision-flow.md
|
||||
# Playbook: Drawing Revision Management
|
||||
|
||||
## 🔄 Revision Flow
|
||||
1. **Initial Upload**: Drawing ถูกอัปโหลดเข้าระบบครั้งแรก (Revision 0 หรือ A)
|
||||
2. **Review & Approval**: ผ่านกระบวนการ RFA
|
||||
3. **Revision Up**: เมื่อมีการแก้ไข ให้ผู้ใช้อัปโหลดไฟล์ใหม่โดยอ้างอิง `publicId` เดิม
|
||||
4. **Auto-Numbering**: ระบบจะเจนเลขที่ Revision ถัดไปตาม Rule (e.g. 0 -> 1 หรือ A -> B)
|
||||
5. **Supersede**: Revision เก่าจะถูกทำเครื่องหมายเป็น "Superseded" (แต่ไฟล์ยังอยู่สำหรับการตรวจสอบย้อนหลัง)
|
||||
|
||||
## 🏗️ Technical Implementation
|
||||
- ใช้ **Redis Redlock** ในการจองเลขที่ Revision เพื่อป้องกันเลขซ้ำ
|
||||
- เก็บประวัติทั้งหมดไว้ใน `drawing_revisions` table
|
||||
- แสดงเฉพาะ Revision ล่าสุด (Current) ในหน้ารายการหลัก ยกเว้นผู้ใช้จะเลือกดู History
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial drawing revision playbook
|
||||
@@ -0,0 +1,27 @@
|
||||
// File: docs/ai-knowledge-base/playbooks/dms/rfa-lifecycle.md
|
||||
# Playbook: RFA Lifecycle Management
|
||||
|
||||
## 🔄 Lifecycle Stages
|
||||
1. **Draft**: ผู้สร้างเตรียมเอกสารและอัปโหลดไฟล์
|
||||
2. **Submitted**: ส่งเข้าระบบเพื่อรอการตรวจสอบ (Review)
|
||||
3. **Reviewing**: ทีมที่ปรึกษาหรือหน่วยงานที่เกี่ยวข้องตรวจสอบ
|
||||
4. **Responded**: ให้ความเห็น (Comment) กลับมา
|
||||
5. **Approved / Rejected**: สถานะสุดท้ายของการอนุมัติ
|
||||
6. **Closed**: สิ้นสุดกระบวนการ
|
||||
|
||||
## 🛡️ Business Rules (ADR-001)
|
||||
- การเปลี่ยนสถานะต้องใช้ **Workflow Engine** เท่านั้น
|
||||
- ต้องมีการทำ **Optimistic Locking** ผ่าน `@VersionColumn` เพื่อป้องกันการอนุมัติพร้อมกัน
|
||||
- ทุกการเปลี่ยนสถานะต้องบันทึก **Audit Log** และ **Workflow History**
|
||||
- หากมีการอัปโหลดไฟล์ใหม่ ต้องย้ายจาก `temp` ไป `permanent` และสแกน ClamAV
|
||||
|
||||
## 🛠️ Implementation Steps
|
||||
1. ตรวจสอบสิทธิ์ผู้ใช้ผ่าน `CaslGuard`
|
||||
2. ดึงข้อมูล RFA พร้อมสถานะปัจจุบันจาก DB
|
||||
3. ตรวจสอบความถูกต้องของสถานะต้นทาง (Source State) และสถานะปลายทาง (Target State)
|
||||
4. ทำการ Update ใน Database Transaction
|
||||
5. ส่งการแจ้งเตือนผ่าน `BullMQ`
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial RFA lifecycle playbook
|
||||
@@ -0,0 +1,17 @@
|
||||
// File: docs/ai-knowledge-base/playbooks/dms/transmittal-process.md
|
||||
# Playbook: Transmittal Process
|
||||
|
||||
## 🔄 Transmittal Workflow
|
||||
1. **Creation**: DC (Document Control) สร้าง Transmittal และเลือกเอกสาร (Attachments) ที่ต้องการส่ง
|
||||
2. **Review**: หัวหน้าทีมตรวจสอบความถูกต้องของรายการเอกสาร
|
||||
3. **Issuance**: ส่งมอบเอกสารอย่างเป็นทางการ (เปลี่ยนสถานะเป็น Issued)
|
||||
4. **Acknowledgment**: ผู้รับเซ็นรับเอกสารในระบบ (เปลี่ยนสถานะเป็น Received)
|
||||
|
||||
## 📋 Standard Actions
|
||||
- **Generate Cover Sheet**: ระบบสร้าง PDF หน้าปกที่มีรายการเอกสารและ QR Code
|
||||
- **Link Documents**: เอกสารที่ถูกส่งจะถูกบันทึกความเชื่อมโยง (Link) กับ Transmittal ID
|
||||
- **Notification**: ส่งอีเมลแจ้งเตือนผู้รับพร้อมลิงก์ดาวน์โหลด
|
||||
|
||||
---
|
||||
// Change Log:
|
||||
// - 2026-05-14: Initial transmittal process playbook
|
||||
Reference in New Issue
Block a user