feat(小宝预警): 同步今日日报证据

This commit is contained in:
Script Generator
2026-06-30 14:43:06 +08:00
parent 52a88626d4
commit 1daa2f7ec4
10 changed files with 413 additions and 13 deletions

View File

@@ -132,10 +132,13 @@ export function buildRiskInsightSignature(risk: XiaobaoVersionRisk): string {
dailyEvidence: {
todayDeliveries: normalizeEvidence(risk.dailyEvidence?.todayDeliveries),
todayProgress: normalizeEvidence(risk.dailyEvidence?.todayProgress),
todayCreations: normalizeEvidence(risk.dailyEvidence?.todayCreations),
todayRisks: normalizeEvidence(risk.dailyEvidence?.todayRisks),
progressNotes: normalizeEvidence(risk.dailyEvidence?.progressNotes),
needsProgressItems: normalizeEvidence(risk.dailyEvidence?.needsProgressItems),
recentActivityCount: risk.dailyEvidence?.recentActivityCount ?? 0,
totalActivityCount: risk.dailyEvidence?.totalActivityCount ?? 0,
todayActualHours: risk.dailyEvidence?.todayActualHours ?? 0,
lastActivityAt: risk.dailyEvidence?.lastActivityAt ?? null,
},
});
@@ -185,10 +188,13 @@ export function buildRiskInterpretRequest(risk: XiaobaoVersionRisk): AgentRiskIn
dailyEvidence: {
todayDeliveries: summarizeEvidence(risk.dailyEvidence?.todayDeliveries),
todayProgress: summarizeEvidence(risk.dailyEvidence?.todayProgress),
todayCreations: summarizeEvidence(risk.dailyEvidence?.todayCreations),
todayRisks: summarizeEvidence(risk.dailyEvidence?.todayRisks),
progressNotes: summarizeEvidence(risk.dailyEvidence?.progressNotes),
needsProgressItems: summarizeEvidence(risk.dailyEvidence?.needsProgressItems),
recentActivityCount: risk.dailyEvidence?.recentActivityCount ?? 0,
totalActivityCount: risk.dailyEvidence?.totalActivityCount ?? 0,
todayActualHours: risk.dailyEvidence?.todayActualHours ?? 0,
lastActivityAt: risk.dailyEvidence?.lastActivityAt,
},
};
@@ -354,9 +360,12 @@ function buildDisplayCompatibilityKey(signature: string): string | undefined {
dailyEvidence: {
todayDeliveries: normalizeCompatibilityEvidence(dailyEvidence.todayDeliveries),
todayProgress: normalizeCompatibilityEvidence(dailyEvidence.todayProgress),
todayCreations: normalizeCompatibilityEvidence(dailyEvidence.todayCreations),
todayRisks: normalizeCompatibilityEvidence(dailyEvidence.todayRisks),
progressNotes: normalizeCompatibilityEvidence(dailyEvidence.progressNotes),
needsProgressItems: normalizeCompatibilityEvidence(dailyEvidence.needsProgressItems),
totalActivityCount: normalizeInteger(dailyEvidence.totalActivityCount),
todayActualHours: normalizeNumber(dailyEvidence.todayActualHours),
},
});
} catch {
@@ -427,6 +436,10 @@ function normalizeInteger(value: unknown): number | null {
return typeof value === 'number' && Number.isFinite(value) ? Math.round(value) : null;
}
function normalizeNumber(value: unknown): number | null {
return typeof value === 'number' && Number.isFinite(value) ? Math.round(value * 10) / 10 : null;
}
function getTime(value: string): number {
const time = new Date(value).getTime();
return Number.isFinite(time) ? time : Number.NaN;