diff --git a/src/main/services/cleaner/cleaner-application-service.ts b/src/main/services/cleaner/cleaner-application-service.ts index 776373a..8c2f6f3 100644 --- a/src/main/services/cleaner/cleaner-application-service.ts +++ b/src/main/services/cleaner/cleaner-application-service.ts @@ -433,9 +433,22 @@ export class CleanerApplicationService { detail.errors.length > 0 ? detail.errors.join('\n') : undefined ) - // Insert material details for skipped and failed materials + // Insert material details for all materials const materialDetails: InsertMaterialDetailInput[] = [] + for (const deleted of detail.deletedMaterials) { + materialDetails.push({ + orderNumber: detail.orderNumber, + materialCode: deleted.materialCode, + materialName: deleted.materialName, + rowNumber: deleted.rowNumber, + result: deleted.outcome, + reason: null, + attemptCount: 1, + finalErrorCategory: null + }) + } + for (const skipped of detail.skippedMaterials) { materialDetails.push({ orderNumber: detail.orderNumber, diff --git a/src/main/services/erp/cleaner.ts b/src/main/services/erp/cleaner.ts index 7a90cf0..14694ff 100644 --- a/src/main/services/erp/cleaner.ts +++ b/src/main/services/erp/cleaner.ts @@ -758,6 +758,7 @@ export class CleanerService { materialsSkipped: 0, errors: [], skippedMaterials: [], + deletedMaterials: [], retryCount: 0, retryAttempts: [], retriedAt: undefined, @@ -925,6 +926,12 @@ export class CleanerService { deleteResult.outcome === DeletionOutcome.Uncertain ) { detail.materialsDeleted += 1 + detail.deletedMaterials.push({ + materialCode, + materialName, + rowNumber: rowNumInt, + outcome: deleteResult.outcome + }) if (deleteResult.outcome === DeletionOutcome.Uncertain) { detail.uncertainDeletions += 1 } @@ -1106,6 +1113,7 @@ export class CleanerService { materialsSkipped: 0, errors: [message], skippedMaterials: [], + deletedMaterials: [], retryCount: 0, retryAttempts: [], retriedAt: undefined, diff --git a/src/main/types/cleaner.types.ts b/src/main/types/cleaner.types.ts index b8b7e4a..4633319 100644 --- a/src/main/types/cleaner.types.ts +++ b/src/main/types/cleaner.types.ts @@ -44,6 +44,13 @@ export interface SkippedMaterial { reason: string } +export interface DeletedMaterial { + materialCode: string + materialName: string + rowNumber: number + outcome: string +} + export interface RetryAttempt { attempt: number error: string @@ -56,6 +63,7 @@ export interface OrderCleanDetail { materialsSkipped: number errors: string[] skippedMaterials: SkippedMaterial[] + deletedMaterials: DeletedMaterial[] // Retry-related fields retryCount: number retryAttempts?: RetryAttempt[]