const STATUS_META = { 1: { text: '正常', type: 'success' }, 0: { text: '冻结', type: 'info' } } export const TASK_LOG_REPORT_TITLE = '任务历史档报表' function normalizeText(value) { return String(value ?? '').trim() } function normalizeNumber(value) { if (value === '' || value === null || value === undefined) { return null } const numericValue = Number(value) return Number.isFinite(numericValue) ? numericValue : null } export function createTaskLogSearchState() { return { condition: '', timeStart: '', timeEnd: '', taskId: '', taskCode: '', taskStatus: '', taskType: '', orgLoc: '', orgSite: '', targLoc: '', targSite: '', barcode: '', robotCode: '', exceStatus: '', expDesc: '', sort: '', expCode: '', startTime: '', endTime: '' } } export function getTaskLogPaginationKey() { return { current: 'current', size: 'pageSize' } } export function buildTaskLogSearchParams(params = {}) { const result = {} ;[ 'condition', 'taskCode', 'orgLoc', 'orgSite', 'targLoc', 'targSite', 'barcode', 'robotCode', 'expDesc', 'expCode' ].forEach((key) => { const value = normalizeText(params[key]) if (value) { result[key] = value } }) ;['timeStart', 'timeEnd', 'startTime', 'endTime'].forEach((key) => { if (params[key]) { result[key] = params[key] } }) ;['taskId', 'taskStatus', 'taskType', 'exceStatus', 'sort'].forEach((key) => { const value = normalizeNumber(params[key]) if (value !== null) { result[key] = value } }) return { condition: '', ...result } } export function buildTaskLogPageQueryParams(params = {}) { return { current: params.current || 1, pageSize: params.pageSize || params.size || 20, ...buildTaskLogSearchParams(params) } } export function getTaskLogStatusMeta(value) { return STATUS_META[Number(value)] || { text: '-', type: 'info' } } export function normalizeTaskLogRow(record = {}) { const statusMeta = getTaskLogStatusMeta(record.status) return { ...record, taskId: record.taskId ?? '--', taskCode: record.taskCode || '--', taskStatusText: record['taskStatus$'] || record.taskStatusText || (record.taskStatus ?? '--'), taskTypeText: record['taskType$'] || record.taskTypeText || (record.taskType ?? '--'), orgLoc: record.orgLoc || '--', orgSite: record.orgSite || '--', targLoc: record.targLoc || '--', targSite: record.targSite || '--', barcode: record.barcode || '--', robotCode: record.robotCode || '--', exceStatusText: record.exceStatusText || (record.exceStatus ?? '--'), expDesc: record.expDesc || '--', sort: record.sort ?? '--', expCode: record.expCode || '--', startTimeText: record['startTime$'] || record.startTime || '--', endTimeText: record['endTime$'] || record.endTime || '--', createByText: record['createBy$'] || record.createByText || '--', createTimeText: record['createTime$'] || record.createTime || '--', updateByText: record['updateBy$'] || record.updateByText || '--', updateTimeText: record['updateTime$'] || record.updateTime || '--', memo: record.memo || '--', statusText: record['status$'] || statusMeta.text, statusType: statusMeta.type } } export function getTaskLogReportColumns() { return [ { prop: 'taskCode', label: '任务号' }, { prop: 'taskStatusText', label: '任务状态' }, { prop: 'taskTypeText', label: '任务类型' }, { prop: 'orgLoc', label: '源库位' }, { prop: 'targLoc', label: '目标库位' }, { prop: 'barcode', label: '托盘码' }, { prop: 'robotCode', label: '机器人编码' }, { prop: 'startTimeText', label: '开始时间' }, { prop: 'endTimeText', label: '结束时间' } ] } export function buildTaskLogPrintRows(records = []) { return records.map((record) => { const row = normalizeTaskLogRow(record) return { taskCode: row.taskCode, taskStatusText: row.taskStatusText, taskTypeText: row.taskTypeText, orgLoc: row.orgLoc, targLoc: row.targLoc, barcode: row.barcode, robotCode: row.robotCode, startTimeText: row.startTimeText, endTimeText: row.endTimeText } }) }