forked from gzt/A8000
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.5 KiB
60 lines
1.5 KiB
// 错误码映射表
|
|
const ERROR_MAP = {
|
|
PASS: '通过',
|
|
EMPTY: '空',
|
|
EXPIRED: '转材过期',
|
|
MISS_REACTION_PLATE: '没有反应板架',
|
|
MISS_LITTSB: '缺少小缓冲液',
|
|
MISS_LARBS: '缺少大缓冲液',
|
|
MISS_IDCARD: '未找到匹配的项目ID卡',
|
|
LITTSB_LOTID_MISMATCH: '小缓冲液批号不匹配',
|
|
LARBS_LOTID_MISMATCH: '大缓冲液批号不匹配',
|
|
CODE_ERROR_PROJINFO_IS_ERROR: '代码错误,项目信息异常',
|
|
UN_SUPPORT_PROJ: '不支持的项目',
|
|
REACTION_PLATE_2D_CODE_FORMATE_ERROR: '反应板二维码格式错误',
|
|
} as const
|
|
|
|
type ErrorCode = keyof typeof ERROR_MAP
|
|
|
|
/**
|
|
* 获取错误说明
|
|
* @param code 错误码
|
|
* @returns 错误说明
|
|
*/
|
|
export const getErrorMessage = (code: ErrorCode): string => {
|
|
return ERROR_MAP[code as ErrorCode] || '未知错误'
|
|
}
|
|
|
|
/**
|
|
* 检查是否为错误状态
|
|
* @param code 错误码
|
|
* @returns 是否为错误状态
|
|
*/
|
|
export const isError = (code: ErrorCode): boolean => {
|
|
return code !== 'PASS'
|
|
}
|
|
|
|
/**
|
|
* 格式化扫描报告
|
|
* @param reports 扫描报告数组
|
|
* @returns 格式化后的错误信息数组
|
|
*/
|
|
export const formatScanReports = (
|
|
reports: Array<{
|
|
chNum: number
|
|
state: string
|
|
projId: number
|
|
lotId: string
|
|
projName: string
|
|
projShortName: string
|
|
}>,
|
|
) => {
|
|
return reports.map((item) => ({
|
|
channel: item.chNum,
|
|
code: item.state,
|
|
message: getErrorMessage(item.state as ErrorCode),
|
|
isError: isError(item.state as ErrorCode),
|
|
projName: item.projName,
|
|
lotId: item.lotId,
|
|
}))
|
|
}
|