sn.ts
1.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
export const SN_STATUS_VALUES = [
'pending',
'in_process',
'completed',
'frozen',
'scrapped'
] as const
export const SN_EXCEPTION_STATUS_VALUES = [
'none',
'open',
'rework',
'closed'
] as const
export const SN_ACTION_VALUES = [
'import',
'freeze',
'unfreeze',
'scrap'
] as const
export type SnStatus = (typeof SN_STATUS_VALUES)[number]
export type SnExceptionStatus = (typeof SN_EXCEPTION_STATUS_VALUES)[number]
export type SnAction = (typeof SN_ACTION_VALUES)[number]
export interface SnFlowEvent {
id: string
action: SnAction
fromStatus: SnStatus | null
toStatus: SnStatus
operator: string
at: string
reason?: string
evidencePath?: string
currentStep: string
exceptionStatus: SnExceptionStatus
}
export interface SnAuditSummary {
createdBy: string
createdAt: string
updatedBy: string
updatedAt: string
lastAction: SnAction
lastActionAt: string
lastActionBy: string
}
export interface SnItem {
id: number
sn: string
workOrderNo: string
status: SnStatus
currentStep: string
exceptionStatus: SnExceptionStatus
freezeReason?: string
scrapReason?: string
audit: SnAuditSummary
events: SnFlowEvent[]
}
export interface SnListQuery {
sn?: string
workOrderNo?: string
status?: SnStatus
currentStep?: string
exceptionStatus?: SnExceptionStatus
}
export interface SnImportPayload {
workOrderNo: string
currentStep: string
snList: string[]
operator: string
}
export interface SnActionPayload {
operator: string
reason: string
}
export interface SnMutationResponse {
success: boolean
errorCode: string | null
message: string
}
export interface SnImportResponse extends SnMutationResponse {
importedCount: number
skippedCount: number
duplicateSnList: string[]
}