feat(pda): prefer business identifiers

This commit is contained in:
2026-08-30 17:36:57 +08:00
parent 921847d70c
commit 50a2e5082d
12 changed files with 167 additions and 65 deletions
+39
View File
@@ -0,0 +1,39 @@
const INTERNAL_ID_FIELD_PATTERN = /(?:taskId|inboundId|orderId|loadingPlanId|containerBookingId|任务ID|入库单ID|订单ID|装柜计划ID|柜次ID)\s*[:=:]?\s*[A-Za-z0-9_-]*/gi
const LONG_INTERNAL_NUMBER_PATTERN = /(^|[^A-Za-z0-9])\d{18,20}(?=$|[^A-Za-z0-9])/g
export function displayBusinessValue(value, missing = '—') {
const text = String(value ?? '').trim()
return text || missing
}
export function businessReference(source = {}) {
const parts = []
const orderNo = String(source?.orderNo ?? '').trim()
const inboundCode = String(source?.inboundCode ?? '').trim()
if (orderNo) parts.push(`订单号 ${orderNo}`)
if (inboundCode && inboundCode !== orderNo) parts.push(`入仓码 ${inboundCode}`)
return parts.length ? parts.join(' · ') : '业务编号未关联'
}
export function sanitizeUserMessage(message, fallback = '操作失败') {
const raw = String(message ?? '').trim()
if (!raw) return fallback
if (/^internal server error$/i.test(raw)) return '服务端处理异常,请联系管理员'
const sanitized = raw
.replace(INTERNAL_ID_FIELD_PATTERN, '内部标识已隐藏')
.replace(LONG_INTERNAL_NUMBER_PATTERN, '$1内部标识已隐藏')
return sanitized || fallback
}
export function formatApiError(error, fallback = '操作失败') {
const message = sanitizeUserMessage(error?.message, fallback)
const code = String(error?.code ?? '').trim()
const requestId = String(error?.requestId ?? '').trim()
const traceId = String(error?.traceId ?? '').trim()
const evidence = [
code ? `错误码:${code}` : '',
requestId ? `requestId:${requestId}` : '',
traceId ? `traceId:${traceId}` : ''
].filter(Boolean)
return evidence.length ? `${message}(${evidence.join(';')})` : message
}