feat(cleaner): add preload API for cleaner operation history
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -3,6 +3,14 @@ import type {
|
||||
CleanerProgress,
|
||||
ExportResultItem
|
||||
} from '../../main/types/cleaner.types'
|
||||
import type {
|
||||
CleanerBatchStats,
|
||||
CleanerExecutionRecord,
|
||||
CleanerOrderRecord,
|
||||
CleanerMaterialRecord,
|
||||
GetCleanerBatchesOptions
|
||||
} from '../../main/types/cleaner-history.types'
|
||||
import type { IpcResult } from '../../main/types/ipc.types'
|
||||
import { IPC_CHANNELS } from '../../shared/ipc-channels'
|
||||
import { invokeIpc, ipcRenderer } from '../lib/ipc'
|
||||
|
||||
@@ -15,5 +23,28 @@ export const cleanerApi = {
|
||||
callback(data)
|
||||
ipcRenderer.on(IPC_CHANNELS.CLEANER_PROGRESS, subscription)
|
||||
return () => ipcRenderer.removeListener(IPC_CHANNELS.CLEANER_PROGRESS, subscription)
|
||||
}
|
||||
},
|
||||
|
||||
// Cleaner operation history
|
||||
getHistoryBatches: (options?: GetCleanerBatchesOptions): Promise<IpcResult<CleanerBatchStats[]>> =>
|
||||
invokeIpc(IPC_CHANNELS.CLEANER_HISTORY_GET_BATCHES, options),
|
||||
|
||||
getHistoryBatchDetails: (
|
||||
batchId: string
|
||||
): Promise<
|
||||
IpcResult<{
|
||||
executions: CleanerExecutionRecord[]
|
||||
orders: CleanerOrderRecord[]
|
||||
}>
|
||||
> => invokeIpc(IPC_CHANNELS.CLEANER_HISTORY_GET_BATCH_DETAILS, batchId),
|
||||
|
||||
getHistoryMaterialDetails: (
|
||||
batchId: string,
|
||||
attemptNumber: number,
|
||||
orderNumber: string
|
||||
): Promise<IpcResult<CleanerMaterialRecord[]>> =>
|
||||
invokeIpc(IPC_CHANNELS.CLEANER_HISTORY_GET_MATERIAL_DETAILS, batchId, attemptNumber, orderNumber),
|
||||
|
||||
deleteHistoryBatch: (batchId: string): Promise<IpcResult<{ deleted: boolean }>> =>
|
||||
invokeIpc(IPC_CHANNELS.CLEANER_HISTORY_DELETE_BATCH, batchId)
|
||||
} as const
|
||||
|
||||
85
src/preload/index.d.ts
vendored
85
src/preload/index.d.ts
vendored
@@ -190,6 +190,91 @@ export interface OperationHistoryRecord {
|
||||
errorMessage: string | null
|
||||
}
|
||||
|
||||
export interface CleanerHistoryBatchStats {
|
||||
batchId: string
|
||||
userId: number
|
||||
username: string
|
||||
operationTime: string
|
||||
status: string
|
||||
totalAttempts: number
|
||||
totalOrders: number
|
||||
ordersProcessed: number
|
||||
totalMaterialsDeleted: number
|
||||
totalMaterialsFailed: number
|
||||
successCount: number
|
||||
failedCount: number
|
||||
isDryRun: boolean
|
||||
}
|
||||
|
||||
export interface CleanerHistoryExecutionRecord {
|
||||
id?: number
|
||||
batchId: string
|
||||
attemptNumber: number
|
||||
userId: number
|
||||
username: string
|
||||
operationTime: Date
|
||||
endTime: Date | null
|
||||
status: string
|
||||
isDryRun: boolean
|
||||
totalOrders: number
|
||||
ordersProcessed: number
|
||||
totalMaterialsDeleted: number
|
||||
totalMaterialsSkipped: number
|
||||
totalMaterialsFailed: number
|
||||
totalUncertainDeletions: number
|
||||
errorMessage: string | null
|
||||
appVersion: string | null
|
||||
}
|
||||
|
||||
export interface CleanerHistoryOrderRecord {
|
||||
id?: number
|
||||
batchId: string
|
||||
attemptNumber: number
|
||||
orderNumber: string
|
||||
status: string
|
||||
materialsDeleted: number
|
||||
materialsSkipped: number
|
||||
materialsFailed: number
|
||||
uncertainDeletions: number
|
||||
retryCount: number
|
||||
retrySuccess: boolean
|
||||
errorMessage: string | null
|
||||
}
|
||||
|
||||
export interface CleanerHistoryMaterialRecord {
|
||||
id?: number
|
||||
batchId: string
|
||||
attemptNumber: number
|
||||
orderNumber: string
|
||||
materialCode: string
|
||||
materialName: string
|
||||
rowNumber: number
|
||||
result: string
|
||||
reason: string | null
|
||||
attemptCount: number
|
||||
finalErrorCategory: string | null
|
||||
}
|
||||
|
||||
export interface CleanerHistoryAPI {
|
||||
getHistoryBatches: (options?: {
|
||||
limit?: number
|
||||
offset?: number
|
||||
usernames?: string[]
|
||||
}) => Promise<IpcResult<CleanerHistoryBatchStats[]>>
|
||||
getHistoryBatchDetails: (batchId: string) => Promise<
|
||||
IpcResult<{
|
||||
executions: CleanerHistoryExecutionRecord[]
|
||||
orders: CleanerHistoryOrderRecord[]
|
||||
}>
|
||||
>
|
||||
getHistoryMaterialDetails: (
|
||||
batchId: string,
|
||||
attemptNumber: number,
|
||||
orderNumber: string
|
||||
) => Promise<IpcResult<CleanerHistoryMaterialRecord[]>>
|
||||
deleteHistoryBatch: (batchId: string) => Promise<IpcResult<{ deleted: boolean }>>
|
||||
}
|
||||
|
||||
export interface ProcessAPI {
|
||||
versions: {
|
||||
electron: string
|
||||
|
||||
Reference in New Issue
Block a user