const FORBIDDEN_CODES = new Set(['403', 'A0403']) const CONFLICT_CODES = new Set(['409', 'A0409', 'B0409']) const VEHICLE_PLATE_REQUIRED = 'Vehicle plate is required before PDA push or picking' export function toDispatchError(error, fallback = '排车作业失败') { const code = String(error?.code || '') const originalMessage = String(error?.message || '').trim() let message = originalMessage || fallback if (error?.network) { message = '网络连接失败,请检查网络后重试,当前作业已保留' } else if (FORBIDDEN_CODES.has(code)) { message = '当前账号没有海外仓 PDA 作业权限,请联系管理员授权' } else if (CONFLICT_CODES.has(code) && originalMessage === VEHICLE_PLATE_REQUIRED) { message = '请先在平台维护车牌信息后再拣货' } return { message, code: error?.code, requestId: error?.requestId, traceId: error?.traceId, network: Boolean(error?.network) } }