fix: recalculer les scores de qualité à l import

This commit is contained in:
Manus
2026-10-02 20:59:23 +00:00
parent 70f867d62b
commit ba4e42c7f1
6 changed files with 102 additions and 6 deletions

View File

@@ -5,6 +5,7 @@ import {
createSourceFile,
updateSourceFile,
getUserSettings,
getLlmFieldsConfigByUser,
getSourceFileByContentHash,
findDuplicateInvoice,
isInvoiceBlacklisted,
@@ -17,6 +18,7 @@ import { calculateFileSha256 } from "./fileFingerprint";
import { sendImportNotification } from "./notificationService";
import { getOffice365ImapToken } from "./office365OAuth";
import { applyAutomationRules } from "./automationEngine";
import { withCalculatedInvoiceQuality } from "@shared/invoiceQuality";
export interface EmailImportConfig {
userId: number;
@@ -219,6 +221,7 @@ async function processEmailAttachment(
manusForgeApiUrl: settings.manusForgeApiUrl,
geminiApiKey: (settings as any).geminiApiKey || null,
} : undefined;
const qualityFieldsConfig = await getLlmFieldsConfigByUser(userId);
// Extract invoices
console.log(`[EmailImport] Starting invoice extraction (provider: ${aiSettings?.aiProvider || 'mistral'})...`);
@@ -248,6 +251,7 @@ async function processEmailAttachment(
for (let i = 0; i < result.invoices.length; i++) {
const invoiceData = result.invoices[i]!;
const invoiceWithQuality = withCalculatedInvoiceQuality(invoiceData, qualityFieldsConfig);
try {
// Update progress
@@ -310,7 +314,7 @@ async function processEmailAttachment(
totalAmount: invoiceData.totalAmount?.toString(),
recipientName: invoiceData.recipientName,
pageRange: invoiceData.pageRange,
qualityScore: invoiceData.qualityScore,
qualityScore: invoiceWithQuality.qualityScore,
extractedText: invoiceData.extractedText,
metadataFileKey: metadataKey,
metadataFileUrl: metadataUrl,