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

// 错误码映射表
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,
}))
}