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