251211:1622 Frontend: refactor Dashboard (not finish)
Spec Validation / validate-markdown (push) Has been cancelled
Spec Validation / validate-diagrams (push) Has been cancelled
Spec Validation / check-todos (push) Has been cancelled

This commit is contained in:
admin
2025-12-11 16:22:50 +07:00
parent 3fa28bd14f
commit 2473c4c474
32 changed files with 1115 additions and 260 deletions
@@ -80,10 +80,31 @@ export class DashboardService {
10
);
// นับเอกสารที่อนุมัติแล้ว (APPROVED)
// NOTE: อาจจะต้องปรับ logic ตาม Business ว่า "อนุมัติ" หมายถึงอะไร
// เบื้องต้นนับจาก CorrespondenceStatus ที่เป็น 'APPROVED' หรือ 'CODE 1'
// หรือนับจาก Workflow ที่ Completed และ Action เป็น APPROVE
// เพื่อความง่ายในเบื้องต้น นับจาก CorrespondenceRevision ที่มี status 'APPROVED' (ถ้ามี)
// หรือนับจาก RFA ที่มี Approve Code
// สำหรับ LCBP3 นับ RFA ที่ approveCodeId ไม่ใช่ null (หรือ check status code = APR/FAP)
// และ Correspondence ทั่วไปที่มีสถานะ Completed
// เพื่อความรวดเร็ว ใช้วิธีนับ Revision ที่ isCurrent = 1 และ statusCode = 'APR' (Approved)
// Check status code 'APR' exists
const aprStatusCount = await this.dataSource.query(`
SELECT COUNT(r.id) as count
FROM correspondence_revisions r
JOIN correspondence_status s ON r.correspondence_status_id = s.id
WHERE r.is_current = 1 AND s.status_code IN ('APR', 'CMP')
`);
const approved = parseInt(aprStatusCount[0]?.count || '0', 10);
return {
totalDocuments,
documentsThisMonth,
pendingApprovals,
approved,
totalRfas,
totalCirculations,
};
@@ -16,6 +16,9 @@ export class DashboardStatsDto {
@ApiProperty({ description: 'จำนวนงานที่รออนุมัติ', example: 12 })
pendingApprovals!: number;
@ApiProperty({ description: 'จำนวนเอกสารที่อนุมัติแล้ว', example: 100 })
approved!: number;
@ApiProperty({ description: 'จำนวน RFA ทั้งหมด', example: 45 })
totalRfas!: number;