Files
lcbp3/specs/01-requirements/01-03-modules/01-03-08-circulation-sheet.md
T
admin 4cd0952482
CI / CD Pipeline / build (push) Failing after 1m52s
CI / CD Pipeline / deploy (push) Has been skipped
260324:1349 Refactor RFA #01
2026-03-24 13:49:30 +07:00

5.8 KiB

3.8 Circulation Sheet Management (การจัดการใบเวียนเอกสาร)


title: 'Functional Requirements: Circulation Sheet Management' version: 1.8.1 status: updated owner: Nattanin Peancharoen last_updated: 2026-03-24 related:

  • specs/01-requirements/01-01-objectives.md
  • specs/01-requirements/01-03-modules/01-03-00-index.md
  • specs/01-requirements/01-03-modules/01-03-02-correspondence.md
  • specs/01-requirements/01-03-modules/01-03-06-unified-workflow.md
  • specs/01-requirements/01-06-edge-cases-and-rules.md (EC-CIRC-001 ถึง EC-CIRC-003, EC-CORR-001)
  • specs/03-Data-and-Storage/03-01-data-dictionary.md
  • specs/01-requirements/01-02-business-rules/01-02-01-rbac-matrix.md

3.8.1. วัตถุประสงค์

ใบเวียนเอกสาร (Circulation Sheet) ใช้สำหรับ มอบหมายและติดตามงานภายในองค์กร เมื่อได้รับ Correspondence จากภายนอก — มองเห็นและแก้ไขได้เฉพาะคนในองค์กรเดียวกัน เท่านั้น


3.8.2. โครงสร้างข้อมูล (Database Tables)

Table บทบาท
circulations ข้อมูล Master: เลขใบเวียน, subject, status, organization — ผูก 1:1 กับ correspondences
circulation_attachments ไฟล์แนบเพิ่มเติม (M:N กับ attachments)
circulation_status_codes Master: สถานะใบเวียน

ข้อสำคัญ:

  • circulations.correspondence_id UNIQUE — 1 Correspondence มีใบเวียนได้ 1 ฉบับต่อองค์กร
  • ใบเวียนผูกกับ organization_id — มองเห็นเฉพาะคนในองค์กรนั้น

3.8.3. Fields ที่ต้องกรอกเมื่อสร้าง Circulation

Field Required หมายเหตุ
Correspondence UUID — เอกสารที่ต้องการเวียน
Organization UUID — องค์กรเจ้าของใบเวียน (auto จาก current user org)
Subject (circulation_subject) VARCHAR(500)
Assignees UUID[] — ผู้รับมอบหมาย (จัดการผ่าน Workflow context)
Deadline สำหรับผู้รับผิดชอบประเภท Main และ Action
Attachments ไฟล์แนบเพิ่มเติม — ผ่าน ClamAV scan

ประเภทผู้รับมอบหมาย (Assignee Types)

ประเภท ความหมาย Deadline
Main ผู้รับผิดชอบหลัก (มีได้หลายคน) บังคับ
Action ผู้ร่วมปฏิบัติงาน (มีได้หลายคน) บังคับ
Information ผู้ที่ต้องรับทราบ (มีได้หลายคน)

3.8.4. Status Codes (circulation_status_codes)

status_code ความหมาย
OPEN เปิดใบเวียนแล้ว — รอดำเนินการ
IN_REVIEW กำลังพิจารณา
COMPLETED ดำเนินการเสร็จสมบูรณ์
CANCELLED ยกเลิก / ถอนกลับ

3.8.5. การสร้างและสิทธิ์ (RBAC)

การกระทำ Role ที่อนุญาต Scope
สร้าง Circulation Document Control, Org Admin, Superadmin ภายในองค์กรตัวเอง
แก้ไข / Re-assign Document Control, Org Admin ภายในองค์กรตัวเอง
Force Close Document Control, Org Admin พร้อมระบุเหตุผล (EC-CIRC-002)
ปิด Circulation (ปกติ) ผู้ที่ถูก Assign (Main/Action) เมื่อดำเนินการเสร็จ
ดู Circulation เฉพาะคนในองค์กรเดียวกัน องค์กรอื่นมองไม่เห็น

3.8.6. Workflow และ Notifications

  • Circulation ใช้ Unified Workflow Engine (entity_type = 'circulation') — ดู 01-03-06-unified-workflow.md
  • แจ้งเตือน: เมื่อถูก Assign ใหม่, เมื่อใกล้ถึง Deadline, เมื่อ Overdue → Email / LINE Notify / In-App (BullMQ)
  • Deadline Rule: หมดเขตเมื่อ deadline_date 23:59:59 — Overdue Badge ขึ้นเมื่อ NOW() > deadline_date + 1 day (EC-CIRC-003)

3.8.7. Business Rules และ Edge Cases

รหัส กฎ Severity
EC-CORR-001 Cancel Correspondence ที่มี Circulation เปิดอยู่ → Force Close Circulation ทั้งหมด + Audit Log 🔴 Critical
EC-CIRC-001 Assignee ถูก Deactivate ก่อน Respond → Document Control สามารถ Re-assign ได้ 🟠 High
EC-CIRC-002 Multi-Assignee — บางคนยังไม่ Respond → Document Control Force Close ได้ พร้อมระบุเหตุผล 🟡 Medium
EC-CIRC-003 Deadline = Today → หมดเขต 23:59:59, Reminder 08:00, Overdue Badge วันถัดไป 🟡 Medium

ดูรายละเอียดครบที่ 01-06-edge-cases-and-rules.md หมวด "Module 8: Circulation Edge Cases"