feat(rfa-ai): Complete RFA Approval Refactor and AI Model Revision
CI / CD Pipeline / build (push) Successful in 4m54s
CI / CD Pipeline / deploy (push) Failing after 12m9s

This commit is contained in:
2026-05-16 10:59:53 +07:00
parent 6cb3ae10ee
commit 1a162bf320
105 changed files with 5088 additions and 1083 deletions
+21 -1
View File
@@ -70,5 +70,25 @@
"ai.staging.body": "เนื้อหา",
"ai.staging.approve": "อนุมัติ",
"ai.staging.approveSuccess": "อนุมัติรายการเรียบร้อยแล้ว",
"ai.staging.approveError": "ไม่สามารถอนุมัติรายการได้"
"ai.staging.approveError": "ไม่สามารถอนุมัติรายการได้",
"ai.staging.queueTab": "คิวงาน",
"ai.staging.analyticsTab": "AI Analytics",
"ai.staging.analyticsError": "ไม่สามารถโหลดข้อมูลสถิติได้",
"ai.staging.avgConfidence": "ความมั่นใจเฉลี่ย",
"ai.staging.overrideRate": "อัตราการแก้ไขโดยมนุษย์",
"ai.staging.rejectedRate": "อัตราการปฏิเสธ",
"ai.staging.byDocumentType": "สถิติแยกตามประเภทเอกสาร",
"ai.staging.byDocumentTypeDesc": "เปรียบเทียบประสิทธิภาพของ AI ในแต่ละประเภทเอกสาร",
"ai.staging.documents": "ฉบับ",
"ai.staging.confidence": "ความมั่นใจ",
"ai.staging.override": "แก้ไข",
"ai.staging.rejected": "ปฏิเสธ",
"ai.staging.thresholdRecalibration": "Threshold Recalibration",
"ai.staging.thresholdDesc": "ตรวจสอบความเหมาะสมของค่าความมั่นใจ (Confidence Threshold)",
"ai.staging.highThreshold": "High Threshold (Auto-approve)",
"ai.staging.midThreshold": "Mid Threshold (Human Review)",
"ai.staging.thresholdWarning": "ควรปรับปรุง Model หรือ Threshold",
"ai.staging.thresholdWarningDesc": "ตรวจพบอัตราการแก้ไขสูงถึง {{rate}}% ในช่วงที่ผ่านมา",
"ai.staging.thresholdNote": "* การเปลี่ยนค่า Threshold ต้องทำผ่าน Environment Variables ของ Backend",
"ai.staging.thresholdDocs": "อ่านคู่มือการตั้งค่า"
}
@@ -0,0 +1,72 @@
{
"title": "การมอบหมายงานแทน",
"subtitle": "จัดการการมอบหมายงานตรวจสอบให้ผู้อื่นทำแทน",
"list": {
"title": "รายการมอบหมายงาน",
"createButton": "สร้างการมอบหมาย",
"noActive": "ไม่มีการมอบหมายงานที่ active",
"historyButton": "ประวัติการมอบหมาย"
},
"form": {
"createTitle": "สร้างการมอบหมายงาน",
"editTitle": "แก้ไขการมอบหมายงาน",
"delegateTo": "มอบหมายให้",
"delegateToPlaceholder": "เลือกผู้ใช้...",
"startDate": "วันที่เริ่มต้น",
"endDate": "วันที่สิ้นสุด",
"scope": "ขอบเขตการมอบหมาย",
"scopeOptions": {
"ALL": "ทั้งหมด",
"DISCIPLINE": "เฉพาะสาขา",
"PROJECT": "เฉพาะโครงการ"
},
"reason": "เหตุผล",
"reasonPlaceholder": "ระบุเหตุผลการมอบหมายงาน...",
"saveButton": "บันทึก",
"cancelButton": "ยกเลิก",
"revokeButton": "ยกเลิกการมอบหมาย"
},
"status": {
"active": "Active",
"expired": "หมดอายุ",
"revoked": "ถูกยกเลิก",
"upcoming": "เริ่มเร็วๆ นี้"
},
"badge": {
"delegatedFrom": "มอบหมายจาก: {{name}}",
"delegatedTo": "มอบหมายให้: {{name}}",
"until": "จนถึง: {{date}}"
},
"notifications": {
"createdTitle": "ได้รับการมอบหมายงาน",
"createdBody": "{{delegator}} ได้มอบหมายงานตรวจสอบให้คุณ",
"expiringTitle": "การมอบหมายงานใกล้หมดอายุ",
"expiringBody": "การมอบหมายงานจะหมดอายุใน {{days}} วัน",
"expiredTitle": "การมอบหมายงานหมดอายุ",
"expiredBody": "การมอบหมายงานได้หมดอายุแล้ว งานจะกลับมาที่ผู้มอบหมาย"
},
"errors": {
"delegateToRequired": "กรุณาเลือกผู้รับมอบหมาย",
"startDateRequired": "กรุณาระบุวันที่เริ่มต้น",
"endDateRequired": "กรุณาระบุวันที่สิ้นสุด",
"invalidDateRange": "วันที่สิ้นสุดต้องมากกว่าวันที่เริ่มต้น",
"circularDelegation": "ไม่สามารถมอบหมายแบบวนซ้ำได้ ({{path}})",
"selfDelegation": "ไม่สามารถมอบหมายให้ตัวเองได้",
"overlapExists": "มีการมอบหมายที่ซ้อนทับกันอยู่แล้ว",
"loadFailed": "ไม่สามารถโหลดข้อมูลได้",
"saveFailed": "ไม่สามารถบันทึกการมอบหมายได้",
"revokeFailed": "ไม่สามารถยกเลิกการมอบหมายได้"
},
"success": {
"created": "สร้างการมอบหมายสำเร็จ",
"updated": "อัปเดตการมอบหมายสำเร็จ",
"revoked": "ยกเลิกการมอบหมายสำเร็จ"
}
}
@@ -0,0 +1,79 @@
{
"title": "รหัสผลการตรวจสอบ",
"subtitle": "จัดการรหัสผลการตรวจสอบและผลกระทบ",
"list": {
"title": "รายการรหัสผลตรวจสอบ",
"createButton": "สร้างรหัสใหม่",
"searchPlaceholder": "ค้นหารหัส...",
"noResults": "ไม่พบรหัสผลตรวจสอบ",
"filterByCategory": "กรองตามหมวดหมู่"
},
"categories": {
"ENGINEERING": "วิศวกรรม",
"CONTRACT": "สัญญา",
"QUALITY": "คุณภาพ",
"SAFETY": "ความปลอดภัย",
"PROCUREMENT": "จัดซื้อ",
"GENERAL": "ทั่วไป"
},
"form": {
"createTitle": "สร้างรหัสผลตรวจสอบ",
"editTitle": "แก้ไขรหัสผลตรวจสอบ",
"code": "รหัส",
"codePlaceholder": "เช่น 1A, 1B, 2",
"subStatus": "สถานะย่อย",
"subStatusPlaceholder": "เช่น A, B, C",
"category": "หมวดหมู่",
"description": "คำอธิบาย",
"descriptionPlaceholder": "คำอธิบายรหัสผลตรวจสอบ",
"descriptionThai": "คำอธิบาย (ภาษาไทย)",
"implications": "ผลกระทบ",
"implicationsPlaceholder": "ผลกระทบที่เกิดขึ้นเมื่อเลือกรหัสนี้",
"notifyRoles": "แจ้งเตือนถึงบทบาท",
"isActive": "เปิดใช้งาน",
"saveButton": "บันทึก",
"cancelButton": "ยกเลิก"
},
"selector": {
"placeholder": "เลือกรหัสผลตรวจสอบ...",
"filterByDocType": "กรองตามประเภทเอกสาร",
"loading": "กำลังโหลด..."
},
"implications": {
"title": "ผลกระทบจากรหัส",
"critical": "สำคัญ",
"warning": "คำเตือน",
"info": "ข้อมูล",
"notificationsSent": "จะมีการแจ้งเตือนไปยัง: {{roles}}"
},
"matrix": {
"title": "Master Approval Matrix",
"subtitle": "กำหนดรหัสผลตรวจสอบตามประเภทเอกสาร",
"docType": "ประเภทเอกสาร",
"applicableCodes": "รหัสที่ใช้ได้",
"projectOverride": "การตั้งค่าเฉพาะโครงการ",
"inheritanceNote": "สืบทอดจากค่าเริ่มต้น",
"addOverride": "เพิ่มการตั้งค่าเฉพาะโครงการ"
},
"errors": {
"codeRequired": "กรุณาระบุรหัส",
"codeExists": "รหัสนี้มีอยู่แล้ว",
"categoryRequired": "กรุณาเลือกหมวดหมู่",
"invalidCode": "รูปแบบรหัสไม่ถูกต้อง",
"loadFailed": "ไม่สามารถโหลดรหัสได้",
"saveFailed": "ไม่สามารถบันทึกรหัสได้"
},
"success": {
"created": "สร้างรหัสสำเร็จ",
"updated": "อัปเดตรหัสสำเร็จ",
"deleted": "ลบรหัสสำเร็จ"
}
}
+104
View File
@@ -0,0 +1,104 @@
{
"title": "งานตรวจสอบ",
"subtitle": "จัดการงานตรวจสอบเอกสารและติดตามสถานะ",
"inbox": {
"title": "กล่องงานตรวจสอบ",
"pending": "รอดำเนินการ",
"inProgress": "กำลังดำเนินการ",
"completed": "เสร็จสิ้น",
"delegated": "มอบหมายแล้ว",
"noTasks": "ไม่มีงานตรวจสอบ",
"filterAll": "ทั้งหมด",
"filterByProject": "กรองตามโครงการ",
"filterByDiscipline": "กรองตามสาขา"
},
"status": {
"PENDING": "รอดำเนินการ",
"IN_PROGRESS": "กำลังดำเนินการ",
"COMPLETED": "เสร็จสิ้น",
"DELEGATED": "มอบหมายแล้ว",
"OVERDUE": "เลยกำหนด"
},
"actions": {
"start": "เริ่มตรวจสอบ",
"complete": "ดำเนินการเสร็จสิ้น",
"delegate": "มอบหมาย",
"return": "ส่งคืน",
"viewDetails": "ดูรายละเอียด",
"addComment": "เพิ่มความเห็น",
"viewDocument": "ดูเอกสาร"
},
"form": {
"completeTitle": "ดำเนินการตรวจสอบ",
"responseCode": "รหัสผลตรวจสอบ",
"responseCodePlaceholder": "เลือกรหัส...",
"comments": "ความเห็น",
"commentsPlaceholder": "ระบุความเห็นประกอบ...",
"attachments": "ไฟล์แนบ",
"addAttachment": "เพิ่มไฟล์",
"confirmComplete": "ยืนยันการดำเนินการเสร็จสิ้น?",
"saveButton": "บันทึก",
"cancelButton": "ยกเลิก"
},
"progress": {
"title": "ความคืบหน้าการตรวจสอบ",
"completedOf": "{{completed}}/{{total}} เสร็จสิ้น",
"consensusStatus": "สถานะฉันทามติ: {{status}}",
"waitingFor": "รอจาก: {{disciplines}}",
"parallelReview": "การตรวจสอบแบบขนาน",
"sequentialReview": "การตรวจสอบแบบลำดับ"
},
"veto": {
"button": "Veto Override",
"title": "Veto Override - บังคับอนุมัติ",
"justification": "เหตุผลในการบังคับอนุมัติ",
"justificationPlaceholder": "ระบุเหตุผลที่จำเป็นต้องบังคับอนุมัติ...",
"confirm": "ยืนยัน Veto Override",
"warning": "การกระทำนี้จะถูกบันทึกใน Audit Log และแจ้งเตือนทีมงานที่เกี่ยวข้อง",
"pmOnly": "เฉพาะ Project Manager เท่านั้น"
},
"consensus": {
"APPROVED": "อนุมัติ",
"APPROVED_WITH_COMMENTS": "อนุมัติพร้อมความเห็น",
"REJECTED": "ไม่อนุมัติ",
"PENDING": "รอการพิจารณา",
"VETO_OVERRIDE": "Veto Override",
"calculating": "กำลังคำนวณฉันทามติ..."
},
"reminders": {
"dueSoon": "ครบกำหนดใน {{days}} วัน",
"overdue": "เลยกำหนด {{days}} วัน",
"escalationLevel1": "การแจ้งเตือนระดับ 1",
"escalationLevel2": "การแจ้งเตือนระดับ 2"
},
"confirmation": {
"title": "ยืนยันการดำเนินการ",
"message": "คุณแน่ใจหรือไม่ว่าต้องการดำเนินการนี้?",
"confirmButton": "ยืนยัน",
"cancelButton": "ยกเลิก"
},
"errors": {
"loadFailed": "ไม่สามารถโหลดงานตรวจสอบได้",
"completeFailed": "ไม่สามารถดำเนินการเสร็จสิ้นได้",
"responseCodeRequired": "กรุณาเลือกรหัสผลตรวจสอบ",
"raceCondition": "สถานะงานมีการเปลี่ยนแปลง กรุณารีเฟรชและลองใหม่",
"unauthorized": "คุณไม่มีสิทธิ์ดำเนินการนี้"
},
"success": {
"started": "เริ่มตรวจสอบสำเร็จ",
"completed": "ดำเนินการเสร็จสิ้นสำเร็จ",
"delegated": "มอบหมายสำเร็จ",
"commentAdded": "เพิ่มความเห็นสำเร็จ"
}
}
@@ -0,0 +1,70 @@
{
"title": "จัดการทีมตรวจสอบ",
"subtitle": "สร้างและจัดการทีมตรวจสอบเอกสารตามสาขา",
"list": {
"title": "รายการทีมตรวจสอบ",
"createButton": "สร้างทีมใหม่",
"searchPlaceholder": "ค้นหาทีม...",
"noResults": "ไม่พบทีมตรวจสอบ",
"teamCount": "{{count}} ทีม",
"memberCount": "{{count}} สมาชิก"
},
"form": {
"createTitle": "สร้างทีมตรวจสอบ",
"editTitle": "แก้ไขทีมตรวจสอบ",
"name": "ชื่อทีม",
"namePlaceholder": "ระบุชื่อทีมตรวจสอบ",
"description": "รายละเอียด",
"descriptionPlaceholder": "ระบุรายละเอียดทีม (ถ้ามี)",
"disciplines": "สาขาที่รับผิดชอบ",
"disciplinesPlaceholder": "เลือกสาขา...",
"rfaTypes": "ประเภท RFA ที่ตรวจสอบ",
"rfaTypesPlaceholder": "เลือกประเภท RFA...",
"isActive": "เปิดใช้งาน",
"isDefault": "ตั้งเป็นค่าเริ่มต้น",
"saveButton": "บันทึก",
"cancelButton": "ยกเลิก",
"deleteButton": "ลบทีม",
"confirmDelete": "ยืนยันการลบทีมนี้?"
},
"members": {
"title": "สมาชิกทีม",
"addButton": "เพิ่มสมาชิก",
"removeButton": "ลบออกจากทีม",
"role": {
"LEAD": "หัวหน้าทีม",
"REVIEWER": "ผู้ตรวจสอบ",
"OBSERVER": "ผู้สังเกตการณ์"
},
"noMembers": "ยังไม่มีสมาชิกในทีม",
"searchUserPlaceholder": "ค้นหาผู้ใช้..."
},
"status": {
"active": "เปิดใช้งาน",
"inactive": "ปิดใช้งาน",
"default": "ค่าเริ่มต้น"
},
"errors": {
"nameRequired": "กรุณาระบุชื่อทีม",
"nameExists": "ชื่อทีมนี้มีอยู่แล้ว",
"disciplineRequired": "กรุณาเลือกอย่างน้อยหนึ่งสาขา",
"memberRequired": "กรุณาเพิ่มอย่างน้อยหนึ่งสมาชิก",
"leadRequired": "ทีมต้องมีหัวหน้าทีมอย่างน้อยหนึ่งคน",
"loadFailed": "ไม่สามารถโหลดข้อมูลทีมได้",
"saveFailed": "ไม่สามารถบันทึกทีมได้",
"deleteFailed": "ไม่สามารถลบทีมได้"
},
"success": {
"created": "สร้างทีมสำเร็จ",
"updated": "อัปเดตทีมสำเร็จ",
"deleted": "ลบทีมสำเร็จ",
"memberAdded": "เพิ่มสมาชิกสำเร็จ",
"memberRemoved": "ลบสมาชิกสำเร็จ"
}
}