fix: 风险中心与工作台数量不一致

风险中心改用 getDashboardData 的 todos 数据源(已按员工+类别去重),确保与工作台待办数量完全一致
This commit is contained in:
selfrelease
2026-08-01 14:23:04 +08:00
parent 6da7f2ca22
commit cb9209dbdd
+15 -6
View File
@@ -489,14 +489,23 @@ router.get('/performance-stats', authMiddleware, async (req: AuthRequest, res: R
}
})
// 风险中心 — 获取所有待处理风险项
// 风险中心 — 获取所有待处理风险项(与工作台同口径,使用去重后的 todos)
router.get('/risks', authMiddleware, async (req: AuthRequest, res: Response, next: NextFunction) => {
try {
const risks = await prisma.riskItem.findMany({
where: { orgId: req.user!.orgId, status: 'PENDING' },
include: { employee: { select: { name: true, department: true } } },
orderBy: [{ level: 'desc' }, { createdAt: 'desc' }],
})
const data = await getDashboardData(req.user!.orgId)
// todos 已按员工+类别去重,与工作台待办数量一致
const risks = (data.todos || []).map((t: any) => ({
id: t.id,
type: t.type,
level: t.level.toUpperCase(),
status: 'PENDING',
title: t.title,
description: t.description || '',
actionUrl: t.actionUrl || '',
estimatedLoss: t.estimatedLoss || 0,
deadline: t.deadline || null,
employee: t.employeeName ? { name: t.employeeName, department: t.employeeDepartment || '' } : null,
}))
res.json({ success: true, data: risks })
} catch (err) {
next(err)