feat(M08-B): 补免清洁统计展示

This commit is contained in:
Codex
2026-07-08 10:11:35 +08:00
parent 19d6734b68
commit 642659ce3e
11 changed files with 79 additions and 43 deletions
@@ -135,6 +135,7 @@ interface ManagerStoreStatsRow extends RowDataPacket {
pendingReview: number;
completed: number;
rejected: number;
exempted: number;
rewardCents: number | null;
}
interface ManagerSettlementStatsRow extends RowDataPacket {
@@ -157,6 +158,7 @@ interface ManagerDailyTrendRow extends RowDataPacket {
pendingReview: number;
completed: number;
rejected: number;
exempted: number;
rewardCents: number | null;
paidSettlementCents: number | null;
}
@@ -943,6 +945,7 @@ export class CleaningTaskRepository {
SUM(CASE WHEN t.status = 'SUBMITTED' THEN 1 ELSE 0 END) AS pendingReview,
SUM(CASE WHEN t.status IN ('COMPLETED', 'SETTLED') THEN 1 ELSE 0 END) AS completed,
SUM(CASE WHEN t.status = 'REJECTED' THEN 1 ELSE 0 END) AS rejected,
SUM(CASE WHEN t.status = 'EXEMPT' THEN 1 ELSE 0 END) AS exempted,
COALESCE(SUM(t.reward_cents), 0) AS rewardCents
FROM qipai_cleaning_tasks t
INNER JOIN qipai_stores s ON s.tenant_id = t.tenant_id AND s.id = t.store_id
@@ -1008,6 +1011,7 @@ export class CleaningTaskRepository {
SUM(CASE WHEN t.status = 'SUBMITTED' THEN 1 ELSE 0 END) AS pendingReview,
SUM(CASE WHEN t.status IN ('COMPLETED', 'SETTLED') THEN 1 ELSE 0 END) AS completed,
SUM(CASE WHEN t.status = 'REJECTED' THEN 1 ELSE 0 END) AS rejected,
SUM(CASE WHEN t.status = 'EXEMPT' THEN 1 ELSE 0 END) AS exempted,
COALESCE(SUM(t.reward_cents), 0) AS rewardCents,
COALESCE((
SELECT SUM(s.total_reward_cents)
@@ -1493,6 +1497,7 @@ function publicManagerStatistics(
pendingReview: countStatus(byStatus, 'SUBMITTED'),
active: countStatus(byStatus, 'WAITING') + countStatus(byStatus, 'CLAIMED') + countStatus(byStatus, 'STARTED'),
rejected: countStatus(byStatus, 'REJECTED'),
exempted: countStatus(byStatus, 'EXEMPT'),
completed: countStatus(byStatus, 'COMPLETED') + countStatus(byStatus, 'SETTLED'),
rewardCents: byStatus.reduce((sum, row) => sum + row.rewardCents, 0),
pendingSettlementCents: memberRows.reduce((sum, row) => sum + Number(row.pendingSettlementCents ?? 0), 0),
@@ -1511,6 +1516,7 @@ function publicManagerStatistics(
pendingReview: Number(row.pendingReview),
completed: Number(row.completed),
rejected: Number(row.rejected),
exempted: Number(row.exempted ?? 0),
rewardCents: Number(row.rewardCents ?? 0)
})),
settlements: settlementByStatus,
@@ -1529,6 +1535,7 @@ function publicManagerStatistics(
pendingReview: Number(row.pendingReview),
completed: Number(row.completed),
rejected: Number(row.rejected),
exempted: Number(row.exempted ?? 0),
rewardCents: Number(row.rewardCents ?? 0),
paidSettlementCents: Number(row.paidSettlementCents ?? 0)
}))