feat: support productionID input for order number resolution
- Add OrderNumberResolver service to auto-recognize productionID and 生产订单号 formats - Integrate MySQL database lookup for productionID to 生产订单号 conversion - Update OrderNumberInput component with format statistics display - Modify Extractor and Cleaner to resolve order numbers before processing Database configuration: - Table: productionContractData_26 年压力表合同数据 - Fields: 总排号 (productionID), 生产订单号 (production order number) Supported formats: - productionID: 2 digits + 1 letter + serial number (e.g., 26B742) - 生产订单号:SC + 14 digits (e.g., SC70202601040109)
This commit is contained in:
22
src/preload/index.d.ts
vendored
22
src/preload/index.d.ts
vendored
@@ -1,4 +1,25 @@
|
||||
import type { FileAPI, ExtractorAPI, CleanerAPI, DatabaseAPI } from '../main/types/ipc-api.types'
|
||||
import type { ResolverInput, ResolverResponse } from '../main/ipc/resolver-handler'
|
||||
|
||||
/**
|
||||
* Order number resolver API
|
||||
*/
|
||||
export interface ResolverAPI {
|
||||
/**
|
||||
* Resolve productionIDs and 生产订单号 to production order numbers
|
||||
* @param input - Resolver input with list of inputs
|
||||
*/
|
||||
resolve: (input: ResolverInput) => Promise<ResolverResponse>
|
||||
/**
|
||||
* Validate input format only (without database lookup)
|
||||
* @param inputs - List of inputs to validate
|
||||
*/
|
||||
validateFormat: (inputs: string[]) => Promise<{
|
||||
success: boolean
|
||||
results?: Array<{ input: string; type: 'productionId' | 'orderNumber' | 'unknown' }>
|
||||
error?: string
|
||||
}>
|
||||
}
|
||||
|
||||
declare global {
|
||||
interface Window {
|
||||
@@ -22,6 +43,7 @@ declare global {
|
||||
extractor: ExtractorAPI
|
||||
cleaner: CleanerAPI
|
||||
database: DatabaseAPI
|
||||
resolver: ResolverAPI
|
||||
}
|
||||
api: unknown
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ import { electronAPI } from '@electron-toolkit/preload'
|
||||
import type { MySqlConfig, SqlServerConfig } from '../main/types/ipc-api.types'
|
||||
import type { ExtractorInput } from '../main/types/extractor.types'
|
||||
import type { CleanerInput } from '../main/types/cleaner.types'
|
||||
import type { ResolverInput } from '../main/ipc/resolver-handler'
|
||||
|
||||
// Custom APIs for renderer
|
||||
const api = {
|
||||
@@ -25,6 +26,12 @@ const api = {
|
||||
runCleaner: (input: CleanerInput) => ipcRenderer.invoke('cleaner:run', input)
|
||||
},
|
||||
|
||||
// Order number resolver
|
||||
resolver: {
|
||||
resolve: (input: ResolverInput) => ipcRenderer.invoke('resolver:resolve', input),
|
||||
validateFormat: (inputs: string[]) => ipcRenderer.invoke('resolver:validateFormat', inputs)
|
||||
},
|
||||
|
||||
// Database service
|
||||
database: {
|
||||
connectMySql: (config: MySqlConfig) => ipcRenderer.invoke('database:mysql:connect', config),
|
||||
|
||||
Reference in New Issue
Block a user