S6 — ปรับปรุงระบบ OCIPA (ช่วยเหลือเยียวยาผู้เสียหายและจำเลยในคดีอาญา)¶
⚠️ HIGH RISK
ตารางภาพรวมระบบ¶
| คุณลักษณะ | ค่า |
|---|---|
| ส่วนใน TOR | 7.16 |
| หน่วยงาน | สชง. (สำนักชดเชยค่าสินไหม) |
| ประเภท | ปรับปรุง |
| ระดับความพยายาม | 🔴 HIGH RISK |
| Stack เทคโนโลยี | C# .NET, IIS, MSSQL |
| ควบคุมเวอร์ชัน | FILES ONLY — ไม่มี Git version control |
| สถานะการคอมไพล์ | ซอร์สโค้ดบางส่วนไม่สามารถคอมไพล์ได้ |
| ความซับซ้อนของเวิร์กโฟลว์ | 6 เวิร์กโฟลว์หลัก พร้อม 4-29 ขั้นตอนต่อเวิร์กโฟลว์ |
เอกสาร SRS อ้างอิง¶
| รายการ | ข้อมูล |
|---|---|
| ชื่อเอกสาร | Software Requirement Specification (SRS) v3.0.0 |
| วันที่ออกฉบับ | กันยายน 2565 (2022) |
| ผู้รับเหมา | Megazzy (www.megazzy.co.th) |
| BA | นุศรา แก้วคำ |
| System Analyst | คุณโทนวิทย์ ปะดินัง |
| Project Manager | คุณสกณธ์ รัตนมาลัย |
| Template | ISSA RAH_T_SRS_V.2.0.0 |
| จำนวนหน้า | 169 หน้า |
| Server Production | ocipav1.rlpd.go.th (IP 10.136.27.44, port 80/443/9081) |
| Server UAT | ocipauat.rlpd.go.th (IP 10.136.27.144, port 80/443/9081) |
| Admin User | madev.t |
วัตถุประสงค์โครงการ (จาก SRS Section 1)¶
ระบบ OCIPA ถูกพัฒนาเพื่อบรรลุวัตถุประสงค์หลักดังต่อไปนี้:
-
ปรับปรุงระบบสารสนเทศการช่วยเหลือเยียวยา — ทบทวนกระบวนการใหม่และติดตามสถานการณ์ที่เปลี่ยนแปลง เพื่อให้เกิดความเสมอภาคและประสิทธิภาพในการให้บริการ
-
ลดขั้นตอนการยื่นขอเงินเยียวยา — แทนที่การส่งเอกสารทางไปรษณีย์ (สชง. 15/16) ด้วยระบบออนไลน์ที่เข้าถึงได้ง่าย เพิ่มความสะดวกให้กับผู้เสียหายและจำเลย
-
ติดตามและประมวลผลจัดอันดับจังหวัด — ระบบติดตามสีสัญญาณ (สีเขียว/เหลือง/แดง) เปรียบเทียบกับสถิติตำรวจ เพื่อการวิเคราะห์และปรับปรุงอย่างต่อเนื่อง
-
รองรับการรับคำขอออนไลน์ — เปิดช่องทางดิจิทัลสำหรับการยื่นเรื่องใหม่ เพิ่มการเข้าถึงบริการสำหรับกลุ่มต่างๆ
-
พัฒนาระบบช่วยเหลือเยียวยาครบวงจร 4 ด้าน:
- ยุติธรรม (Justice) — ด้านกฎหมายและสิทธิ
- ชดเชยผู้กระทำผิด (Offender Compensation) — จำเลยในคดีอาญา
- ชดเชยโดยรัฐ (State Compensation) — เงินสนับสนุนจากงบประมาณของรัฐ
-
ช่วยเหลือเรื่องอื่น (Other Assistance) — สนับสนุนด้านสังคม สุขภาพ เป็นต้น
-
ช่วยเหลือเยียวยาผู้ต้องทำในชั้นสอบสวน — เพิ่มจุดติดต่อช่วยเหลือในระยะเริ่มต้นของกระบวนการยุติธรรม
-
ยืนยันข้อมูลส่วนบุคคลผ่าน OTP — ใช้เทคโนโลยี One-Time Password เพื่อความปลอดภัยข้อมูลและการยืนยันตัวตน
สถานะปัจจุบัน¶
-
ระบบใช้งานได้: OCIPA ทำงานในสภาพแวดล้อมการใช้งานจริงและให้บริการช่วยเหลือเยียวยาผู้เสียหายและจำเลย
-
หนี้ทางเทคนิค: มีการสะสมอย่างมีนัยสำคัญ:
- ซอร์สโค้ดเก็บรักษาเป็นไฟล์เท่านั้น — ไม่มี Git หรือ version control
- โมดูลซอร์สโค้ดบางส่วนไม่สามารถคอมไพล์ได้
- ไม่มีเอกสารข้อผิดพลาดในการคอมไพล์
-
การ deploy อัตโนมัติจำกัด
-
ช่องว่างการควบคุมเวอร์ชัน: ปัญหาวิกฤตสำหรับการบำรุงรักษาและความร่วมมือของทีม
- ไม่มีประวัติ commit หรือติดตามการเปลี่ยนแปลง
- ความเสี่ยงจากการสูญเสียโค้ดหรือการเขียนทับโดยไม่ตั้งใจ
-
ไม่มีกลยุทธ์การแยกสาขาสำหรับการเปลี่ยนแปลงใน Phase 2
-
การจัดการสถานะของกระบวนการ: เวิร์กโฟลว์ขึ้นอยู่กับช่องสถานะ ที่มีข้อจำกัดที่ยากในการปฏิบัติ
- เวิร์กโฟลว์ 6 ชนิดตามสถานการณ์ การยื่นขอเสียหาย อุทธรณ์ จำเลย เป็นต้น
- การอัปเดตสถานะเชื่อมโยงโดยตรงกับการเปลี่ยนแปลงสถานะ UI
- จำเป็นต้องแทรกแซงฐานข้อมูลด้วยตนเองเพื่อแก้ไขข้อผิดพลาด
Business Processes จาก SRS (Section 2.2)¶
ระบบ OCIPA สนับสนุน 6 เวิร์กโฟลว์ธุรกิจหลัก ซึ่งมีความซับซ้อนและทำงานร่วมกัน:
1. ศูนย์รับเรื่อง กคส. (Case Reception Center) — 6 ขั้นตอน¶
ขั้นตอน: 1. รับเรื่องจากช่องทางต่างๆ 2. เสียบบัตรประชาชนและสแกนข้อมูล 3. คัดลอกข้อมูลจากระบบ MSC (Master System via Web Service) 4. ให้คำปรึกษาเบื้องต้น 5. บันทึกการให้คำปรึกษา 6. ส่งต่อหน่วยงานกพส. (กองบัญชาการประสานงาน) เพื่อการให้คำปรึกษากฎหมายเชิงลึก
ช่องทาง Source: - MSC Web Service - Call Center (โทรศัพท์) - ประชาชนยื่นเอง (ศูนย์บริการ)
Output: คำส่งต่องานให้กพส. เพื่อการประกอบการ
2. รับเรื่องร้องทุกข์ (Complaint Reception Workflow)¶
เวิร์กโฟลว์หลายขั้นตอนสำหรับการบันทึก การจัดประเภท และการส่งต่อร้องทุกข์ของประชาชน
3. ช่วยเหลือเยียวยาผู้เสียหายในคดีอาญา (Victim Compensation) — 29 ขั้นตอน¶
ลักษณะ: เวิร์กโฟลว์แบบมัลติแชนเนล (8 swim lanes)
ผู้เกี่ยวข้อง (Swim Lanes): 1. ผู้ยื่นอุทธรณ์ (Appellant/Victim) 2. เจ้าหน้าที่ สชง. (OCIPA Officer) — การบันทึก การตรวจสอบ 3. นิติกร (Legal Officer) — การทบทวนกฎหมาย การแสวงหาข้อเท็จจริง 4. เลขาฯคณะอนุกรรมการย่อย (Sub-committee Secretary) — การเตรียมการประชุม 5. คณะอนุกรรมการย่อย (Sub-committee) — การพิจารณาเบื้องต้น 6. เลขาฯคณะกรรมการ (Committee Secretary) — การเตรียมประชุมชั้นสูง 7. คณะกรรมการ (Full Committee) — การพิจารณาขั้นสุดท้าย 8. การเงิน (Finance) — การจัดการการชำระเงิน
ขั้นตอนหลัก: ยื่นคำขอ → ประกอบการ → ตรวจสอบเอกสาร → ประเมินความคุ้มค่า → ส่งคณะอนุกรรมการ → พิจารณา → อนุมัติ → ชำระเงิน → ปิดกรณี
4. ช่วยเหลือเยียวยาผู้เสียหายในคดีอาญา (กรณีอุทธรณ์) (Appeal Case) — 29 ขั้นตอน¶
เวิร์กโฟลว์เดียวกับข้างต้น แต่เน้นการอุทธรณ์สำหรับการตัดสินใจที่ปฏิเสธก่อนหน้านี้
ผู้เกี่ยวข้อง: swim lanes เดียวกัน 8 แห่ง
5. ช่วยเหลือเยียวยาจำเลยในคดีอาญา (Defendant Compensation) — 26 ขั้นตอน¶
เวิร์กโฟลว์สำหรับการขอเงินชดเชยจากจำเลยที่ไม่ได้ร้องขอตัวเอง แต่โดยตัวแทน
ผู้เกี่ยวข้อง: swim lanes เดียวกัน 8 แห่ง (อาจมีบทบาทเพิ่มเติมจากประชาชนทั่วไป)
6. ช่วยเหลือเยียวยาผู้ต้องหา (Suspect Compensation)¶
เวิร์กโฟลว์สำหรับผู้ต้องสงสัย (ยังไม่ได้กล่าวหา) ที่เสียหายและต้องการความช่วยเหลือ
หมายเหตุ: ทั้ง 6 เวิร์กโฟลว์ใช้ข้อมูลเดียวกันแต่มีกฎการประมวลผลแตกต่างกัน ผู้ใช้ระบบต้องจำแนกประเภทกรณีได้ถูกต้องตั้งแต่ยื่นเรื่องครั้งแรก
ข้อกำหนดตาม TOR¶
- ปรับปรุงระบบ OCIPA (ส่วน 7.16)
- รักษาบริการช่วยเหลือเยียวยาผู้เสียหายและจำเลย
- สนับสนุนเวิร์กโฟลว์การยื่นขอเงินค่าชดเชย
- รองรับการติดตามอินฟลูเอนซ์ (tracking by color-coded status)
- บูรณาการระบบ OTP สำหรับยืนยันตัวตน
- บูรณาการกับ GFMIS สำหรับการชำระเงิน
ปัญหาที่พบ¶
🔴 ปัญหาวิกฤต¶
- ข้อจำกัดการย้อนกลับสถานะ
- ช่องสถานะไม่สามารถย้อนกลับได้เมื่ออัปเดตผ่านเวิร์กโฟลว์ UI ปกติ
- หากผู้ใช้ไปยังขั้นตอนต่อไปโดยไม่ตั้งใจ จะต้องแก้ไขฐานข้อมูลโดยตรง
- ต้องมีการแทรกแซงจากผู้ดูแลระบบฐานข้อมูล IT
-
สร้างคอขวดและข้อกังวลเกี่ยวกับการตรวจสอบความปลอดภัย
-
ข้อผิดพลาดการรอสูงสุดของการค้นหา
- การค้นหาชุดข้อมูลขนาดใหญ่หมดเวลาโดยไม่มีการตอบรับข้อผิดพลาด
- ไม่มีการจัดการข้อผิดพลาดอย่างสง่างาม หรือข้อความเตือนผู้ใช้
- ผู้ใช้ไม่ทราบว่าการค้นหาล้มเหลวจนกว่าหน้าจอจะค้าง
-
อาจขาดการกำหนดค่าสูงสุดเวลา หรือ connection pooling
-
ข้อล้มเหลวในการส่งออกรายงาน
- รายงานล้มเหลวเมื่อส่งออกชุดข้อมูลขนาดใหญ่
- อาจไม่มีการแบ่งหน้าในตรรมชาติลอจิก
- ผู้ใช้ได้รับรายงานว่างเปล่าหรือข้อผิดพลาดของระบบแทนผลลัพธ์แบ่งหน้า
-
ส่งผลกระทบต่อการรายงานการปฏิบัติตามข้อบัญญัติและการรายงานทางการเงิน
-
ข้อจำกัดในการแนบเอกสาร
- ไม่สามารถเพิ่มเอกสารแนบที่ขาดหายไปได้ย้อนหลัง
- หากผู้ใช้ลืมแนบเอกสารที่จำเป็น จะไม่มีเส้นทางการกู้คืน
- เวิร์กโฟลว์หยุดชะงักหรือต้องปฏิเสธกรณีและเริ่มต้นใหม่
-
ไม่มีการจัดเวอร์ชันเอกสารหรือความสามารถในการแทนที่
-
หนี้ทางการจัดองค์กร
- ระบบย่อยบางระบบ "จอด" ใน OCIPA ที่ไม่เกี่ยวข้องกับขอบเขตการชดเชย
- สร้างภาระการบำรุงรักษา
- ทำให้ขอบเขตการทดสอบและการปรับใช้ไม่ชัดเจน
🟡 ปัญหาคุณภาพโค้ด¶
- ข้อล้มเหลวในการคอมไพล์ซอร์สโค้ด
- ต้องการการตรวจสอบฐานรหัสอย่างเต็มรูปแบบ
- ไลบรารีที่ขาดหายหรือการอ้างอิงที่ล้าสมัย
- การเปลี่ยนแปลงที่ทำให้เสียหายในเวอร์ชัน .NET framework
- ความไม่ตรงกันของเวอร์ชันแพ็คเกจ NuGet
เวิร์กโฟลว์และขั้นตอน¶
ขั้นตอนหลักของการยื่นเรื่องและการประมวลผลชดเชย¶
เวิร์กโฟลว์แบบลำดับเหล่านี้แสดงถึงวงจรชีวิตของกรณีจากการยื่นขอจนถึงการชำระเงิน:
- การยื่นขอค่าชดเชย — ผู้เสียหายหรือจำเลย ยื่นคำขอผ่านหน้าต่างกคส. หรือออนไลน์
- การตรวจสอบเบื้องต้น — เจ้าหน้าที่ สชง. ตรวจสอบความสมบูรณ์ของเอกสาร
- การตรวจสอบเอกสารและประกอบการ — นิติกรแสวงหาข้อเท็จจริงและตรวจทานเอกสาร
- การส่งคณะอนุกรรมการ — เลขาฯคณะอนุกรรมการย่อยจัดการประชุมพิจารณา
- การพิจารณาคณะอนุกรรมการย่อย — คณะอนุกรรมการให้ความเห็น
- การส่งคณะกรรมการชั้นสูง — เลขาฯคณะกรรมการเตรียมประชุมสรุป
- การพิจารณาคณะกรรมการ — คณะกรรมการให้ความเห็นขั้นสุดท้าย (Decision)
- การกำหนดจำนวนเงินชดเชย — การเงินคำนวณจำนวนเงิน
- การชำระเงิน — ประมวลผลผ่าน GFMIS ยืนยันการโอนเงิน (KTB, BBL, Cheque)
- การปิดกรณี — บันทึกการปิดและจัดเก็บเอกสาร
ข้อจำกัดปัจจุบัน: การเปลี่ยนสถานะแต่ละครั้งเป็นทางเดียวโดยไม่มีตัวเลือกนำทางย้อนกลับ
ลำดับเวลาทั่วไป¶
- การยื่นเรื่องจนถึงอนุมัติ: 30-60 วัน (ขึ้นอยู่กับความเรียบง่ายของกรณี)
- การอุทธรณ์: อีก 30-45 วัน เพิ่มเติม
- การชำระเงิน: 5-10 วันทำการหลังจากอนุมัติ
Data Model (สรุปจาก Data Dictionary) — 150+ ตาราง¶
กลุ่มตาราง: Registration & Case Management¶
- CaseRegistration — การลงทะเบียนกรณี ประมาณวันที่และผู้ยื่น
- CaseTransaction — บันทึกการลงรายการ (เหตุการณ์) ของกรณี
- CaseRunning — สถานะปัจจุบันและขั้นตอนของกรณี
- CaseType — ประเภทกรณี (เสียหาย จำเลย ผู้ต้องหา)
กลุ่มตาราง: OCIPA Workflow & Job Management¶
- OCIPAJob — งาน (Task) ที่เจ้าหน้าที่ต้องทำ
- OCIPAWorkStep — ขั้นตอนการทำงาน (การตรวจสอบ การให้ความเห็น เป็นต้น)
- OCIPAWorkStepPath — เส้นทางการไหลของขั้นตอน (การเปลี่ยนสถานะ)
- OCIPAWorkStepProcess — กฎการประมวลผลสำหรับแต่ละขั้นตอน
- OCIPAJobStatusHistory — ประวัติการเปลี่ยนแปลงสถานะของงาน
กลุ่มตาราง: Criminal Case Integration¶
- CriminalCaseRegistration — ลิงค์กับเคสอาญาจากระบบตำรวจ
- Compensation — จำนวนเงินชดเชยที่อนุมัติ
- CompensationMapComplainant — แมปเชื่อมโยงระหว่างการชดเชยและผู้ยื่น
กลุ่มตาราง: Finance & Payment Processing¶
- FinanceStatus — สถานะการเงิน (เตรียม อนุมัติ ส่งจ่าย ปิด)
- FinanceTransactionApproveUpload — อัปโหลดสำหรับการอนุมัติการจ่ายเงิน GFMIS
- PaymentInformation — รายละเอียดบัญชีธนาคารสำหรับการชำระเงิน (KTB, BBL)
- PaymentStatus — สถานะการชำระเงิน (ส่งออกแล้ว ยืนยันแล้ว)
กลุ่มตาราง: Document & Attachment Management¶
- DocumentAttachment — เอกสารแนบในกรณี
- DocumentVersion — เวอร์ชันของเอกสารแต่ละฉบับ
- DocumentRequirement — ข้อกำหนดเอกสารโดยประเภทกรณี
กลุ่มตาราง: User & Access Control¶
- UserRole — บทบาทผู้ใช้ (Officer, Legal, Committee, Finance)
- UserPermission — สิทธิในการเข้าถึง
กลุ่มตาราง: Audit & Logging¶
- AuditLog — บันทึกการตรวจสอบทั้งหมดการเปลี่ยนแปลง
- ApplicationLog — บันทึกข้อผิดพลาด และกิจกรรมของระบบ
หมายเหตุ: โปรแกรม Data Dictionary ใน SRS มีรายละเอียดคอลัมน์ ประเภทข้อมูล ข้อจำกัด และความเสมอภาคสำหรับตารางทั้งหมด 150+ ตาราง
จุดเชื่อมต่อระบบ¶
- การรวมกับ S1 (ระบบคำปรึกษาด้านกฎหมาย)
- S1 ได้รับข้อมูลจาก "OCIPA ยื่นออนไลน์" (OCIPA online submission)
-
สร้างลิงก์อ้างอิงระหว่างคำปรึกษาด้านกฎหมายและการยื่นขอเงินค่าชดเชย
-
ข้อกำหนดสถาปัตยกรรมที่สำคัญ: S1 ต้องคงความเป็นอิสระจาก S6
- S1 ไม่ควรถูกบล็อกโดยการหยุดทำงานของ OCIPA
- การซิงค์ข้อมูลเป็นทางเดียว (S6 → S1)
- ไม่มีการพึ่งพาแบบวงกลม
-
วัฏจักรการปรับใช้แยกต่างหาก
-
การพึ่งพาระบบที่อาจเป็นไปได้ (จำเป็นต้องตรวจสอบ):
- ระบบบัญชี/บัญชีทางการเงิน
- ฐานข้อมูลผู้เสียหายและจำเลย (MSC - Master System)
-
ระบบการจัดการกรณี (Case Management System)
-
การบูรณาการการชำระเงิน:
- GFMIS integration สำหรับการจัดสรรงบประมาณ การเบิกจ่าย
- ธนาคาร: KTB (Krung Thai Bank), BBL (Bangkok Bank)
- วิธีการชำระ: โอนเงิน ธนาคาร เช็ค
- การยืนยันการชำระเงินจากระบบธนาคาร
คำถามที่ยังไม่ได้คำตอบ¶
[OPEN] ไฟล์ซอร์สโค้ดใดบ้างที่ไม่สามารถคอมไพล์ได้? จำเป็นต้องมีการตรวจสอบข้อผิดพลาดการคอมไพล์ที่สมบูรณ์
[OPEN] ระบบย่อย "จอด" ใดบ้างที่อยู่ใน OCIPA ปัจจุบัน? ควรลบออกหรือแยกออกเป็นระบบต่างหาก?
[OPEN] สามารถรีแฟกเตอร์ฐานรหัสเพื่อใช้ Git ได้โดยไม่ทำให้การปรับใช้หรือความสมบูรณ์ของข้อมูลเสียหาย?
[OPEN] เวิร์กโฟลว์ 10 ขั้นตอนที่แน่นอนคืออะไร พร้อมแผนภาพการเปลี่ยนสถานะที่สมบูรณ์และกฎการตรวจสอบ?
[OPEN] มีเอกสารโครงสร้างฐานข้อมูลอยู่หรือไม่? จำเป็นต้องตรวจสอบคีย์ต่างประเทศ ข้อจำกัด และทริกเกอร์
[OPEN] เวอร์ชัน .NET Framework ใดและแพ็คเกจ NuGet ใดที่ต้องการการอัปเดตหรือการแทนที่?
[OPEN] ความครอบคลุมการทดสอบปัจจุบันคืออะไร? มีการทดสอบหน่วย/การรวมพื้นฐานหรือจำเป็นต้องเขียน?
[OPEN] ข้อมูลได้รับการสำรองไว้อย่างไร? ขั้นตอนการกู้คืนจากความผิดพลาดคืออะไร?
[OPEN] ใครมีการเข้าถึงฐานข้อมูลในปัจจุบัน? จำเป็นต้องใช้การเข้าถึงสิทธิน้อยที่สุดสำหรับการเปลี่ยนแปลง Phase 2
[OPEN] ตัวเลขอนุมัติของเอกสาร SRS ฉบับนี้ (v3.0.0) คืออะไร? ใครมีประมาณการเชิงนอก?
[OPEN] เวิร์กโฟลว์การอุทธรณ์เพิ่มเติม (29 ขั้นตอน) ต่างจากเวิร์กโฟลว์หลักอย่างไร? มีแผนภาพที่ชัดเจนในเอกสาร SRS หรือไม่?
[OPEN] ตัวชี้วัด KPI ที่คาดหวังสำหรับการปรับปรุง OCIPA คืออะไร? (ระยะเวลาประมวลผล อัตราความสำเร็จ ความพึงพอใจผู้ใช้)
หมายเหตุทางเทคนิค¶
ลำดับความสำคัญในการปรับปรุง Phase 2¶
Phase 1: การปรับเสถียรภาพและการตรวจสอบ (สัปดาห์ 1-2)¶
- การตรวจสอบซอร์สโค้ด
- พยายามคอมไพล์ในสภาพแวดล้อมที่ควบคุม
- เอกสารข้อผิดพลาดการคอมไพล์ทั้งหมดพร้อมหมายเลขบรรทัด
- ระบุการอ้างอิงที่ขาดหายและข้อขัดแย้งเวอร์ชัน
-
สร้างรายงานข้อผิดพลาดการคอมไพล์
-
การย้ายไป Git
- สร้างที่เก็บ Git
- นำเข้าฐานรหัสปัจจุบันเป็น commit เริ่มต้น
- ตั้งค่ากลยุทธ์การแยกสาขา (main, develop, feature/)
-
กำหนดค่า deployment pipeline สำหรับการสร้างที่ควบคุมเวอร์ชัน
-
เอกสารโครงสร้างฐานข้อมูล
- ส่งออกแผนภาพโครงสร้าง
- เอกสารตารางทั้งหมด คอลัมน์ ข้อจำกัด
- ระบุความสัมพันธ์ของคีย์ต่างประเทศ
- แมปไปยังการเปลี่ยนแปลงสถานะเวิร์กโฟลว์
Phase 2: แก้ไขปัญหาวิกฤต (สัปดาห์ 3-6)¶
- ระบบอัตโนมัติการปรับสมดุลสถานะ
- เพิ่มความสามารถในการย้อนกลับสถานะผ่าน UI (ต้องได้รับการอนุมัติจากผู้ดูแล)
- ใช้บันทึกการตรวจสอบสำหรับการเปลี่ยนแปลงสถานะทั้งหมด
- สร้างกฎการตรวจสอบสถานะและข้อจำกัด
-
การปรับเปลี่ยนขั้นตอนที่ใช้ UI (ลบการแก้ไข DB เท่านั้น)
-
ประสิทธิภาพการค้นหาและการจัดการข้อผิดพลาด
- เพิ่มการแบ่งหน้าให้กับการค้นหาชุดข้อมูลขนาดใหญ่
- ใช้การกำหนดค่าสูงสุดเวลากับข้อความข้อผิดพลาดที่เป็นมิตรต่อผู้ใช้
- เพิ่มข้อจำกัดขนาดผลลัพธ์การค้นหา
- การลดลงอย่างสง่างาม: คืนผลลัพธ์บางส่วนแทนข้อผิดพลาดสูงสุดเวลา
-
บันทึกโดยละเอียดเพื่อการแก้ไขจุดบกพร่อง
-
การปรับปรุงการส่งออกรายงาน
- ใช้การแบ่งหน้าสำหรับฟังก์ชันการส่งออก
- รองรับการส่งออกแบบสตรีมสำหรับชุดข้อมูลขนาดใหญ่
- เพิ่มตัวบ่งชี้ความก้าวหน้าสำหรับการส่งออกที่ใช้เวลานาน
-
ใช้ขีดจำกัดขนาดการส่งออกกับการส่งข้อความที่ชัดเจน
-
การจัดการการแนบเอกสาร
- เพิ่มความสามารถในการแทนที่เอกสารหลังจากการส่ง
- ใช้เวอร์ชันเอกสาร (ติดตามประวัติการแนบ)
- สร้างเวิร์กโฟลว์การอัปโหลดเอกสารย้อนหลัง
- เพิ่มการตรวจสอบว่าเอกสารที่จำเป็นมีอยู่ก่อนการเปลี่ยนขั้นตอน
Phase 3: การบำรุงรักษาและการทำความสะอาด (สัปดาห์ 7+)¶
- ระบุและแยกระบบ "จอด"
- ตรวจสอบชุดคุณลักษณะเพื่อระบุฟังก์ชันที่ไม่ใช่การชดเชย
- พิจารณาว่าพวกเขาเป็นของระบบอื่นหรือไม่
- วางแผนการดึงออก/ย้ายถ้าเหมาะสม
-
เอกสารกระบวนการการส่งมอบ
-
กลยุทธ์การทดสอบ
- การทดสอบหน่วยสำหรับตรรมชาติการเปลี่ยนสถานะ
- การทดสอบการรวมสำหรับเวิร์กโฟลว์เอกสาร
- การทดสอบการโหลดสำหรับการส่งออกรายงาน
- UAT กับเจ้าหน้าที่การชดเชย
-
การทดสอบการถอยหลังในทั้ง 10 ขั้นตอนเวิร์กโฟลว์
-
ระบบอัตโนมัติการปรับใช้
- การสร้างอัตโนมัติจาก Git (CI/CD pipeline)
- การทดสอบอัตโนมัติก่อนการปรับใช้การใช้งานจริง
- ขั้นตอนการตัดสินใจสำหรับการปรับใช้ที่ล้มเหลว
- กลยุทธ์การปรับใช้โดยไม่มีเวลาหยุด
การตัดสินใจสถาปัตยกรรม: ความเป็นอิสระของ S1¶
วิกฤต: การเปลี่ยนแปลง S6 ต้องไม่ส่งผลกระทบต่อความพร้อมหรือความสมบูรณ์ของข้อมูล S1
- ใช้การเชื่อมต่อฐานข้อมูลแยกต่างหาก
- ใช้คิวข้อความ (หากจำเป็น) สำหรับการซิงค์ข้อมูลแบบอะซิงโครนัส
- S1 ควรมีสำเนาแคช S6 ข้อมูล (สำหรับการอ้างอิงเท่านั้น)
- การหยุดทำงาน S6 ไม่ควรบล็อกการดำเนินการ S1
- ตรวจสอบจุดรวมเพื่อความสอดคล้องของข้อมูล
พื้นฐานคุณภาพโค้ด¶
หลังจากการปรับเสถียรภาพ ให้สร้างมาตรฐานคุณภาพขั้นต่ำ: - โค้ดทั้งหมดคอมไพล์ได้โดยไม่มีคำเตือน - การทดสอบอัตโนมัติสำหรับเส้นทางวิกฤตทั้งหมด - ข้อกำหนดการตรวจสอบโค้ดสำหรับคำขอดึง - เครื่องมือวิเคราะห์แบบคงที่ที่เปิดใช้ (SonarQube หรือเทียบเท่า) - การสแกนความปลอดภัยสำหรับช่องโหว่การพึ่งพา
ข้อมูลเพิ่มเติมจาก SRS¶
Scope — Web Application (Section 3.1)¶
คุณลักษณะทั่วไป (General Characteristics): - รองรับบรรดา 6 เวิร์กโฟลว์หลัก - ส่วนติดต่อ UI สำหรับเจ้าหน้าที่ สชง. ที่ทำงานภายในศูนย์รับเรื่อง - ส่วนติดต่อ UI สำหรับนิติกร ลงรับเรื่องและประกอบการ - ส่วนติดต่อ UI สำหรับประธาน/เลขาฯคณะอนุกรรมการ - ส่วนติดต่อ UI สำหรับการเงิน ในการจัดการการชำระเงิน
คุณลักษณะเฉพาะ (Specific Characteristics): - ระบบทดสอบให้ผ่าน OTP การยืนยันตัวตน - ระบบติดตามสถานะแบบสีสัญญาณ (Green/Yellow/Red) - ความสามารถในการปรับประมาณการเงินก่อนการชำระ - สนับสนุนการส่งออกรายงานตามจังหวัด - การบูรณาการ MSC Web Service สำหรับข้อมูลผู้ยื่น
ไม่อยู่ในขอบเขต (Out of Scope): - การพิมพ์หนังสือราชการโดยตรง (จัดการแยกต่างหาก) - การส่งอีเมลโดยอัตโนมัติ (ขึ้นอยู่กับระบบ Email Service อื่น) - การจัดการสิ่งพิมพ์ (Document Management)
ปรับปรุงครั้งสุดท้าย: 2026-03-29 แหล่งข้อมูลหลัก: OCIPA SRS v3.0.0 (Sept 2022, Megazzy, ISSA RAH_T_SRS_V.2.0.0)