const STATUS_META = { 1: { text: '正常', type: 'success', bool: true }, 0: { text: '冻结', type: 'info', bool: false } } export const TASK_ITEM_REPORT_TITLE = '任务档明细报表' export const TASK_ITEM_REPORT_STYLE = { titleAlign: 'center', titleLevel: 'strong', orientation: 'landscape', density: 'compact', showSequence: true } 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 createTaskItemSearchState(seed = {}) { return { condition: '', timeStart: '', timeEnd: '', taskId: '', orderId: '', orderType: '', orderItemId: '', matnrId: '', maktx: '', matnrCode: '', unit: '', anfme: '', platOrderCode: '', platWorkCode: '', projectCode: '', batch: '', spec: '', model: '', memo: '', status: '', ...seed } } export function getTaskItemPaginationKey() { return { current: 'current', size: 'pageSize' } } export function buildTaskItemSearchParams(params = {}) { const result = {} ;[ 'condition', 'maktx', 'matnrCode', 'unit', 'platOrderCode', 'platWorkCode', 'projectCode', 'batch', 'spec', 'model', 'memo' ].forEach((key) => { const value = normalizeText(params[key]) if (value) { result[key] = value } }) ;['timeStart', 'timeEnd'].forEach((key) => { if (params[key]) { result[key] = params[key] } }) ;['taskId', 'orderId', 'orderType', 'orderItemId', 'matnrId', 'anfme', 'status'].forEach((key) => { const value = normalizeNumber(params[key]) if (value !== null) { result[key] = value } }) return { condition: '', ...result } } export function buildTaskItemPageQueryParams(params = {}) { return { current: params.current || 1, pageSize: params.pageSize || params.size || 20, ...buildTaskItemSearchParams(params) } } function getTaskItemStatusMeta(value) { return STATUS_META[Number(value)] || { text: '-', type: 'info', bool: false } } export function normalizeTaskItemRow(record = {}) { const statusMeta = getTaskItemStatusMeta(record.status) return { ...record, taskId: record.taskId ?? '--', orderId: record.orderId ?? '--', orderTypeText: record['orderType$'] || record.orderTypeText || record.orderType || '--', wkTypeText: record['wkType$'] || record.wkTypeText || record.wkType || '--', orderItemId: record.orderItemId ?? '--', matnrId: record.matnrId ?? '--', matnrCode: normalizeText(record.matnrCode) || '--', maktx: normalizeText(record.maktx) || '--', platItemId: normalizeText(record.platItemId) || '--', platOrderCode: normalizeText(record.platOrderCode) || '--', platWorkCode: normalizeText(record.platWorkCode) || '--', projectCode: normalizeText(record.projectCode) || '--', batch: normalizeText(record.batch) || '--', unit: normalizeText(record.unit) || '--', anfme: record.anfme ?? '--', workQty: record.workQty ?? '--', qty: record.qty ?? '--', spec: normalizeText(record.spec) || '--', model: normalizeText(record.model) || '--', fieldsIndex: normalizeText(record.fieldsIndex) || '--', createByText: normalizeText(record['createBy$'] || record.createByText) || '--', createTimeText: normalizeText(record['createTime$'] || record.createTimeText || record.createTime) || '--', updateByText: normalizeText(record['updateBy$'] || record.updateByText) || '--', updateTimeText: normalizeText(record['updateTime$'] || record.updateTimeText || record.updateTime) || '--', statusText: record['status$'] || statusMeta.text, statusType: statusMeta.type, statusBool: record.statusBool !== void 0 ? Boolean(record.statusBool) : statusMeta.bool, memo: normalizeText(record.memo) || '--' } } export function getTaskItemReportColumns() { return [ { prop: 'taskId', label: '任务ID' }, { prop: 'orderId', label: '主单ID' }, { prop: 'orderTypeText', label: '单据类型' }, { prop: 'orderItemId', label: '单据明细ID' }, { prop: 'matnrCode', label: '物料编码' }, { prop: 'maktx', label: '物料名称' }, { prop: 'platWorkCode', label: '工单号' }, { prop: 'platOrderCode', label: '客户订单号' }, { prop: 'projectCode', label: '项目号' }, { prop: 'batch', label: '库存批次' }, { prop: 'unit', label: '库存单位' }, { prop: 'anfme', label: '数量' }, { prop: 'workQty', label: '执行数量' }, { prop: 'qty', label: '完成数量' }, { prop: 'spec', label: '规格' }, { prop: 'model', label: '型号' }, { prop: 'createByText', label: '创建人' }, { prop: 'createTimeText', label: '创建时间' }, { prop: 'updateByText', label: '更新人' }, { prop: 'updateTimeText', label: '更新时间' }, { prop: 'statusText', label: '状态' }, { prop: 'memo', label: '备注' } ] } export function buildTaskItemPrintRows(records = []) { return (Array.isArray(records) ? records : []).map((record) => { const row = normalizeTaskItemRow(record) return { taskId: row.taskId, orderId: row.orderId, orderTypeText: row.orderTypeText, orderItemId: row.orderItemId, matnrCode: row.matnrCode, maktx: row.maktx, platWorkCode: row.platWorkCode, platOrderCode: row.platOrderCode, projectCode: row.projectCode, batch: row.batch, unit: row.unit, anfme: row.anfme, workQty: row.workQty, qty: row.qty, spec: row.spec, model: row.model, createByText: row.createByText, createTimeText: row.createTimeText, updateByText: row.updateByText, updateTimeText: row.updateTimeText, statusText: row.statusText, memo: row.memo } }) }