UNPKG

ci-plus

Version:

ci组件库

862 lines (845 loc) 37.2 kB
/** * @module cardPrint * @author : 卖女孩的小火柴 * !description : 标识卡打印 * @version : 1.2.0 * @since : 创建时间 2024-03-15 15:16:12 */ // import { scan_card_code_get } from '@/api/InventoryBatch' import { ElMessage, MessageParamsWithType } from 'element-plus' import apis from './baseApi' import axios from 'axios' const { storageModule } = apis const UserData = JSON.parse(localStorage.getItem('UserData') as string) let users = { org_id: UserData.orgId || '', user_code: UserData.loginName || '', user_name: UserData.name || '', deptId: UserData.deptId || '', } let user = JSON.parse(JSON.stringify(users)) let baseUrls = storageModule //new URL(storageModule).origin + '/' // 图片的地址前缀 let apiurl = storageModule + 'scan_card_code_get/' export const cardPrint = ( cParams: any, callback: (data: any) => void, baseUrl?: string, ): any => { // 通过表示卡号获取打印信息 let _URL = baseUrl ? baseUrl : apiurl axios .get(_URL, { params: { page: 1, ...cParams, ...user, }, }) .then((_res: { data: { code: number; data: any[]; msg: MessageParamsWithType } }) => { console.log('res: ', _res) if (_res.data.code != 200 || (_res.data.data && _res.data.data.length < 1)) { callback([]) return ElMessage.error(_res.data.msg) } let data = _res.data.data console.log('data: ', data) let dataInfo: any[] = [] data.forEach((item: any) => { let obj = {} // 成品工厂-产品标识卡 if (item.card_state == 'CHANPIN' && item.is_finished_goods == 2) { obj = { card_state: item.card_state, // 标识卡类型 // 工厂类型:1:为尚工厂 | 2:成品工厂 factoryType: item.is_finished_goods, r1c2: '产品标识卡', r1c4: item.category, // 产品类别 r2c2: item.material_code, // 物料编码 r2c4: baseUrls + item.qr_code_path, // 二维码地址 r3c2: item.material_model, // 产品型号 r4c1: '供应商', // 供应商/生产厂商 r4c2: item.center_data[0]?.supplier_name, r5c1: '材料厂商', r5c2: item.center_data[0]?.material_manufacturer, r5c4: item.card_code, // 标识卡号 r6c2: item.process_name, // 本工序 r6c4: item.next_process_name, // 下工序 r7c2: item.current_inventory, // 本箱数量 r7c4: item.report_user_name ? item.report_user_name : item.opt_user_name, // 操作工/自检员 r8c2: item.center_data[0]?.inspector, // 巡检员 r8c4: item.product_date, // 生产日期 r9c2: item.value, // 规值 r9c4: item.specification, // 规格 r10c1: '批次号', r10c2: item.flow_lot_number ? item.flow_lot_number : item.center_data[0]?.b2b_batch_number, // 流转批次号:存在就用流转批次号,不存在用批次序列号 r10c3: '工单号', // 建 r10c4: item.wip_order_number, // 值 r12c2: item.remark, // 备注 r13c1: item.flow_lot_number ? item.flow_lot_number : item.center_data[0]?.b2b_batch_number || '', //条形码文本:流转批次号存在就用流转批次号,不存在用批次序列号 } } // 为尚工厂-(产品标识卡\尾料标识卡) else if ( (item.card_state == 'CHANPIN' || item.card_state == 'WEILIAO') && item.is_finished_goods == 1 ) { obj = { card_state: item.card_state, // 标识卡类型 // 工厂类型:1:为尚工厂 | 2:成品工厂 factoryType: item.is_finished_goods, r1c2: '产品标识卡', r1c3: '产品类别', // (为 类型/名称 拼接) r1c4: item.category, r2c1: '分布场所代号', r2c2: item.center_data[0]?.store_code, r2c4: baseUrls + item.qr_code_path, // 二维码地址 r3c1: '客户名称', r3c2: item.center_data[0]?.customer_name, r4c1: '供应商', r4c2: item.center_data[0]?.supplier_name, r5c1: '淬火件型号', r5c2: item.quenching_material_model, r5c4: item.card_code, // 标识卡号 r6c1: '淬火件编码', // 建 r6c2: item.quenching_material_code, // 值 r6c3: '材料炉号', // 建 r6c4: item.center_data[0]?.material_heat_number, // 值 r7c1: '产品物料号', // 建 r7c2: item.material_code, // 值 r7c3: '库位', // 建 r7c4: item.location_name, // 值 r8c1: '产品型号', // 建 r8c2: item.material_model, // 值-产品型号 r8c3: '收货人员', // 建 r8c4: item.center_data[0]?.consignee, // 值 r9c1: '材料厂家', r9c2: item.center_data[0]?.material_manufacturer, // 材料厂家 r9c3: '材料牌号', r9c4: item.center_data[0]?.material_mark, r10c1: '抽检结果', // (无) r10c2: '', r10c3: '单重', r10c4: item.piece_weight + item.piece_weight_unit, r11c1: '本箱数量', r11c2: item.current_inventory, r11c3: '抽检人员', r11c4: '', //无 r12c1: '总箱数', r12c2: item.total_row, r12c3: '本批数量', r12c4: item.center_data[0]?.batch_count, r13c1: '件数规格', r13c2: item.center_data[0]?.case_count_str, r13c3: '生产日期', r13c4: item.product_date, r14c1: '备注', // 备注 r14c2: item.remark, // 备注 r15c1: item.center_data[0]?.b2b_batch_number || '', //条形码文本 r16c1: '工单号', r16c2: item.wip_order_number, // 值 } } // 成品工厂-尾料标识卡(为尚无尾料标识卡,使用为尚的成品标识卡) else if (item.card_state == 'WEILIAO' && item.is_finished_goods == 2) { obj = { card_state: item.card_state, // 工厂类型:1:为尚工厂 | 2:成品工厂 factoryType: item.is_finished_goods, r1c2: '尾料标识卡', r1c4: item.category, // 产品类别 r2c2: item.material_code, // 物料编码 r2c4: baseUrls + item.qr_code_path, // 二维码地址 r3c2: item.material_model, // 产品型号 r4c1: '供应商', // 供应商/生产厂商 r4c2: item.center_data[0]?.supplier_name, r5c1: '材料厂商', r5c2: item.center_data[0]?.material_manufacturer, r5c4: item.card_code, // 标识卡号 r6c2: item.center_data[0]?.tail_reason, // 尾料原因 r7c2: item.process_name, // 本工序 r7c4: item.next_process_name, // 下工序 r8c2: item.current_inventory, // 本箱数量 r8c4: item.opt_user_name, // 操作工/自检员 r9c2: item.center_data[0]?.inspector, // 检验员 r9c4: item.product_date, // 生产日期 r10c2: item.center_data[0]?.inspect_time, // 检查日期 r10c4: item.specification, // 规格 r11c2: '', // 游隙/尺寸 r11c4: item.value, // 规值 r12c1: '批次号', // 批次号 r12c2: item.flow_lot_number ? item.flow_lot_number : item.center_data[0]?.b2b_batch_number, // 流转批次号:存在就用流转批次号,不存在用批次序列号 r12c3: '工单号', r12c4: item.wip_order_number, // 工单号值 r13c1: '备注', r13c2: item.remark, r14c1: item.flow_lot_number ? item.flow_lot_number : item.center_data[0]?.b2b_batch_number || '', //条形码文本:流转批次号存在就用流转批次号,不存在用批次序列号 } } // 成品工厂-责废标识卡 else if (item.card_state == 'ZEFEI' && item.is_finished_goods == 2) { // 如果有不良项目,就循环获取其中值 let badNum = item.bad_item_list?.length || 0 let badList: { id: number; label: string; value: string }[] = [] if (item.bad_item_list && badNum > 0) { item.bad_item_list?.forEach((badItem: any) => { let objbad = { id: badItem.id, label: badItem.content, value: badItem.scrap_detail_number, } badList.push(objbad) }) } // 获取 badList[4] 以后项的 value 拼接成字符串 let badStr = badList .slice(4) .map((badItem: any) => { let l = badItem.label let v = badItem.value || '' return l + ':' + v }) .join(',') obj = { card_state: item.card_state, // 工厂类型:1:为尚工厂 | 2:成品工厂 factoryType: item.is_finished_goods, r1c2: '责废标识卡', r1c4: item.category, // 产品类别 r2c2: item.material_code, // 物料编码 r2c4: baseUrls + item.qr_code_path, // 二维码地址 r3c2: item.material_model, // 产品型号 r4c2: item.center_data[0]?.flow_lot_number, // 流转批次号 r5c2: item.storage_scrap_count, // 责废总数 r5c4: item.card_code, // 标识卡号 r6c2: item.process_name, // 工序 r6c4: item.product_date, // 生产日期 r7c2: item.value, // 规值 r7c4: item.specification, // 规格 r8c2: '', // 提交人 r8c4: item.opt_user_name, // 责任人 /** ----循环的数据-------------------------------- **/ r9c1: badList[0]?.label, // 渲染数组第0行的'建' r9c2: badList[0]?.value, // 渲染数组第0行的'值' r9c3: badList[1]?.label, // 渲染数组第1行的'建' r9c4: badList[1]?.value, // 渲染数组第1行的'值' r10c1: badList[2]?.label, // 渲染数组第2行的'建' r10c2: badList[2]?.value, // 渲染数组第2行的'值' r10c3: badList[3]?.label, // 渲染数组第3行的'建' r10c4: badList[3]?.value, // 渲染数组第3行的'值' // r11c1: badList[4]?.label,// 渲染数组第4行的'建' // r11c2: badList[4]?.value, // 渲染数组第4行的'值' r12c1: '其他', // 渲染数组第5及以后行的'建' r12c2: badStr, // 渲染数组第5及以后行的'值' r13c2: item.remark, // 备注 r14c1: item.center_data[0]?.b2b_batch_number || '', //条形码文本 r15c1: '工单号', r15c2: item.wip_order_number, // 值 } } // 为尚工厂-责废标识卡 else if (item.card_state == 'ZEFEI' && item.is_finished_goods == 1) { // 如果有不良项目,就循环获取其中值 let badNum = item.bad_item_list?.length || 0 let badList: { id: number; label: string; value: string }[] = [] if (item.bad_item_list && badNum > 0) { item.bad_item_list?.forEach((badItem: any) => { let objbad = { id: badItem.id, label: badItem.content, value: badItem.scrap_detail_number, } badList.push(objbad) }) } // 获取 badList[4] 以后项的 value 拼接成字符串 let badStr = badList .slice(3) .map((badItem: any) => { let l = badItem.label let v = badItem.value || '' return l + ':' + v }) .join(',') obj = { card_state: item.card_state, // 工厂类型:1:为尚工厂 | 2:成品工厂 factoryType: item.is_finished_goods, r1c2: '责废标识卡', r1c3: '产品类别', r1c4: item.category, // 产品类别 r2c1: '分布场所代号', // 建 r2c2: item.center_data[0]?.distribute_place_name, r2c4: baseUrls + item.qr_code_path, // 二维码地址 r3c1: '客户名称', // 建 r3c2: item.center_data[0]?.customer_name, r4c1: '供应商', // 建 r4c2: item.supplier_name, // 值-供应商 r5c1: '淬火件型号', // 建 r5c2: item.quenching_material_model, // 值-产品型号 r5c4: item.card_code, // 标识卡号 r6c1: '淬火件编码', // 建 r6c2: item.quenching_material_code, // 值 r6c3: '材料炉号', // 建 r6c4: item.center_data[0]?.material_heat_number, // 值 r7c1: '产品物料号', // 建 r7c2: item.material_code, // 值 r7c3: '库位', // 建 r7c4: item.location_name, // 值 r8c1: '产品型号', // 建 r8c2: item.material_model, // 值-产品型号 r8c3: '收货人员', // 建 r8c4: item.center_data[0]?.consignee, // 值 r9c1: '材料厂家', // 建 r9c2: item.center_data[0]?.material_manufacturer, r9c3: '材料牌号', // 建 r9c4: item.center_data[0]?.material_mark, r10c1: '总箱数', // 建 r10c2: item.total_row, r10c3: '单重', r10c4: item.piece_weight + item.piece_weight_unit, r11c1: '责废总数', r11c2: item.storage_scrap_count, r11c3: '本批数量', r11c4: item.center_data[0]?.batch_count, r12c1: '生产日期', r12c2: item.product_date, r12c3: '工序', r12c4: item.process_name, r13c1: '提交人', r13c2: item.opt_user_name, r13c3: '责任人', r13c4: item.duty_user_name, /** ----循环的数据-------------------------------- **/ r14c1: badList[0]?.label, // 渲染数组第0行的'建' r14c2: badList[0]?.value, // 渲染数组第0行的'值' r14c3: badList[1]?.label, // 渲染数组第1行的'建' r14c4: badList[1]?.value, // 渲染数组第1行的'值' r15c1: '其他', // 渲染数组第2及以后行的'建' r15c2: badStr, // 渲染数组第2及以后行的'值' r16c1: '备注', // 备注 r16c2: item.remark, //条形码文本 r17c1: item.center_data[0]?.b2b_batch_number || '', // 条形码文本 r18c1: '工单号', r18c2: item.wip_order_number, // 值 } } // 成品工厂-返工标识卡 else if (item.card_state == 'FANGONG' && item.is_finished_goods == 2) { // 如果有不良项目,就循环获取其中值 let badNum = item.bad_item_list?.length || 0 let badList: { id: number; label: string; value: string }[] = [] if (item.bad_item_list && badNum > 0) { item.bad_item_list?.forEach((badItem: any) => { let objbad = { id: badItem.id, label: badItem.content, value: badItem.scrap_detail_number, } badList.push(objbad) }) } // 获取 badList[4] 以后项的 value 拼接成字符串 let badStr = badList // .slice(4) .map((badItem: any) => { let l = badItem.label let v = badItem.value || '' return l + ':' + v }) .join(',') obj = { card_state: item.card_state, // 工厂类型:1:为尚工厂 | 2:成品工厂 factoryType: item.is_finished_goods, r1c2: '返工标识卡', r1c3: '产品类别', r1c4: item.category, // 产品类别 r2c1: '物料编码', r2c2: item.material_code, r2c4: baseUrls + item.qr_code_path, // 二维码地址 r3c1: '产品型号', r3c2: item.material_model, r4c1: '批次号', r4c2: item.flow_lot_number, r5c1: '返工总数', r5c2: item.rework_count, r5c4: item.card_code, // 标识卡号 r6c1: '返工工序', r6c2: item.rework_process_names, r6c3: '下工序', r6c4: item.next_process_name, r7c1: '操作员', r7c2: item.report_user_name, r7c3: '抽检员', r7c4: item.rework_check_user_name, r8c1: '生产日期', r8c2: item.product_date, r8c3: '抽检日期', r8c4: item.opt_time, r9c1: '责任团队', r9c2: item.duty_team_name, r9c3: '返工期限', r9c4: item.rework_dead_line, r10c1: '处理团队', r10c2: item.deal_team_name, r10c3: '处理方法', r10c4: item.handling_method, /** ----循环的数据---------------- **/ r11c1: '不良项目', r11c2: badStr, // 渲染数组不良项目的'值' r13c1: '备注', r13c2: item.remark, // 备注 r14c1: item.center_data[0]?.b2b_batch_number || '', //条形码文本 r15c1: '订单号', r15c2: item.wip_order_number, } } // 为尚工厂-返工标识卡 else if (item.card_state == 'FANGONG' && item.is_finished_goods == 1) { // 如果有不良项目,就循环获取其中值 let badNum = item.bad_item_list?.length || 0 let badList: { id: number; label: string; value: string }[] = [] if (item.bad_item_list && badNum > 0) { item.bad_item_list?.forEach((badItem: any) => { let objbad = { id: badItem.id, label: badItem.content, value: badItem.scrap_detail_number, } badList.push(objbad) }) } // 获取 badList[4] 以后项的 value 拼接成字符串 let badStr = badList // .slice(4) .map((badItem: any) => { let l = badItem.label let v = badItem.value || '' return l + ':' + v }) .join(',') obj = { card_state: item.card_state, // 工厂类型:1:为尚工厂 | 2:成品工厂 factoryType: item.is_finished_goods, r1c2: '返工标识卡', r1c3: '产品类别', r1c4: item.category, // 产品类别 r2c1: '分布场所代号', r2c2: item.material_code, // r2c4: baseUrls + item.qr_code_path, // 二维码地址 r3c1: '客户名称', r3c2: item.material_model, // 流转批次号 r4c1: '供应商', r4c2: item.supplier_name, r5c1: '淬火件型号', // 建 r5c2: item.quenching_material_model, // 值-产品型号 r5c4: item.card_code, // 标识卡号 r6c1: '淬火件编码', // 建 r6c2: item.quenching_material_code, // 值 r6c3: '材料炉号', // 建 r6c4: item.center_data[0]?.material_heat_number, // 值 r7c1: '产品物料号', // 建 r7c2: item.material_code, // 值 r7c3: '热处理批号', // 建 r7c4: item.center_data[0]?.hot_batch_number, r8c1: '产品型号', // 建 r8c2: item.material_model, // 值-产品型号 r8c3: '收货人员', // 建 r8c4: item.center_data[0]?.consignee, // 值 r9c1: '材料厂家', // 建 r9c2: item.center_data[0]?.material_manufacturer, // r9c3: '抽检结果', // 建 // r9c4: '', r9c3: '材料牌号', // 建 r9c4: item.center_data[0]?.material_mark, r10c1: '返工工序', r10c2: item.rework_process_names, r10c3: '返工总数', r10c4: item.rework_count, r11c1: '总箱数', r11c2: item.total_row, r11c3: '生产日期', r11c4: item.product_date, r12c1: '本批数量', r12c2: item.center_data[0]?.batch_count, r12c3: '抽检人员', r12c4: item.rework_check_user_name, r13c1: '返工期限', r13c2: item.rework_dead_line, r13c3: '抽检日期', r13c4: item.opt_time, /** ----循环的数据---------------- **/ r14c1: '不良项目', r14c2: badStr, // 渲染数组不良项目的'值' r15c1: '备注', r15c2: item.remark, // 备注 r16c1: item.center_data[0]?.b2b_batch_number || '', //条形码文本 r17c1: '工单号', r17c2: item.wip_order_number, } } // 成品工厂-装配标识卡(为尚工厂无装配标识卡) else if ( item.card_state == 'ZHUANGPEI' && item.is_finished_goods == 2 ) { // 如果有children ,就循环获取其中值 let badNum = item.children?.length || 0 let badList: { id: number | string; label: string; value: string }[] = [] let nqbm = '' // 内圈编码 let nqph = '' // 内圈批号 let wqbm = '' // 内圈编码 let wqph = '' // 内圈批号 if (item.children && badNum > 0) { item.children?.forEach((badItem: any) => { let objbad = { id: '', label: '', value: '' } if (badItem.category == '内圈') { nqbm = badItem.material_code || '' nqph = badItem.b2b_batch_number || '' } else if (badItem.category == '外圈') { wqbm = badItem.material_code || '' wqph = badItem.b2b_batch_number || '' } else { objbad = { id: badItem.card_code, label: badItem.category + '批号', value: badItem.b2b_batch_number, } if (badItem.category) { badList.push(objbad) } } }) } let obj1 = { card_state: item.card_state, // 工厂类型:1:为尚工厂 | 2:成品工厂 factoryType: item.is_finished_goods, r1c2: '装配标识卡', r1c3: '产品类别', r1c4: item.category, // 产品类别 r2c1: '成品编码', r2c2: item.material_code, r2c4: baseUrls + item.qr_code_path, // 二维码地址 r3c1: '成品型号', r3c2: item.material_model, r4c1: '客户名称/代号', r4c2: '', r5c1: '装配批次号', r5c2: item.flow_lot_number, r5c4: item.card_code, // 标识卡号 r6c1: '外圈编码', r6c2: wqbm, r6c3: '内圈编码', r6c4: nqbm, r7c1: '外圈批号', r7c2: wqph, r7c3: '内圈批号', r7c4: nqph, // r8c1: '尺寸/游隙', // r8c2: '', // r8c3: '本工序', // r8c4: item.process_name, // r9c1: '下工序', // r9c2: item.next_process_code, // r9c3: '本箱数量', // r9c4: item.current_inventory, // r10c1: '操作员', // r10c2: item.report_user_name, // r10c3: '质检员', // r10c4: '', // r11c1: '生产日期', // r11c2: item.product_date, // r11c3: '质检日期', // r11c4: '', /** ----循环的数据-------------------------------- **/ // r12c1: badList[0]?.label, // r12c2: badList[0]?.value, // r12c3: badList[1]?.label, // r12c4: badList[1]?.value, // r13c1: badList[2]?.label, // r13c2: badList[2]?.value, // r13c3: badList[3]?.label, // r13c4: badList[3]?.value, // r14c1: badList[4]?.label, // r14c2: badList[4]?.value, // r14c3: badList[5]?.label, // r14c4: badList[5]?.value, // r15c1: '备注', // r15c2: item.remark, // r16c1: item.center_data[0]?.b2b_batch_number || '', // 条形码文本 } // 获取obj1最后一条属性的行号列号 // 获取obj1最后一条属性 let lastKey = Object.keys(obj1)[Object.keys(obj1).length - 1] // 获取行号 let row = Number(parseInt(lastKey.split('r')[1].split('c')[0])) // 获取列号 let column = Number(lastKey.split('c')[1]) // 通过循环badList数组,将数组中的每一项合并到obj中 let obj2 = {} for (let i = 0; i < badList.length; i++) { const item = badList[i] const rowIndex = Math.floor(i / 2) + (row + 1) // 从r8c1开始这里就是8 const columnIndex = (i % 2) * 2 + 1 obj2[`r${rowIndex}c${columnIndex}`] = item.label obj2[`r${rowIndex}c${columnIndex + 1}`] = item.value } let obj3 = { r50c1: '尺寸/游隙', r50c2: '', r50c3: '本工序', r50c4: item.process_name, r51c1: '下工序', r51c2: item.next_process_name, r51c3: '本箱数量', r51c4: item.current_inventory, r52c1: '操作员', r52c2: item.report_user_name, r52c3: '质检员', r52c4: '', r53c1: '生产日期', r53c2: item.product_date, r53c3: '质检日期', r53c4: '', r54c1: '备注', r54c2: item.remark, r55c1: '订单号', r55c2: item.wip_order_number, // 值 } // 将 obj1, obj2, obj3 合并到obj的后面 Object.assign(obj, obj1, obj2, obj3) } // 为尚工厂-装配标识卡(为尚工厂无装配标识卡) else if ( item.card_state == 'ZHUANGPEI' && item.is_finished_goods == 1 ) { obj = { card_state: item.card_state, // 工厂类型:1:为尚工厂 | 2:成品工厂 factoryType: item.is_finished_goods, } } // 成品工厂-料废标识卡 else if (item.card_state == 'LIAOFEI' && item.is_finished_goods == 2) { // 如果有不良项目,就循环获取其中值 let badNum = item.bad_item_list?.length || 0 let badList: { id: number; label: string; value: string }[] = [] if (item.bad_item_list && badNum > 0) { item.bad_item_list?.forEach((badItem: any) => { let objbad = { id: badItem.id, label: badItem.content, value: badItem.scrap_detail_number, } badList.push(objbad) }) } // 获取 badList[4] 以后项的 value 拼接成字符串 let badStr = badList .slice(4) .map((badItem: any) => { let l = badItem.label let v = badItem.value || '' return l + ':' + v }) .join(',') obj = { card_state: item.card_state, // 工厂类型:1:为尚工厂 | 2:成品工厂 factoryType: item.is_finished_goods, r1c2: '料废标识卡', r1c4: item.category, // 产品类别 r2c2: item.material_code, // 物料编码 r2c4: baseUrls + item.qr_code_path, // 二维码地址 r3c2: item.material_model, // 产品型号 r4c2: item.center_data[0]?.flow_lot_number, // 流转批次号 r5c2: item.center_data[0]?.supplier_name, // 生产厂商 r5c4: item.card_code, // 标识卡号 r6c2: item.storage_scrap_count, // 料废总数 r6c4: item.process_name, // 工序 r7c2: item.product_date, // 生产日期 r7c4: item.value, // 规值 r8c2: item.specification, // 规格 r8c4: item.opt_user_name, // 提交人 r9c2: '', // 检验员 /** ----循环的数据-------------------------------- **/ r9c3: badList[0]?.label, // 渲染数组第0行的'建' r9c4: badList[0]?.value, // 渲染数组第0行的'值' r10c1: badList[1]?.label, // 渲染数组第1行的'建' r10c2: badList[1]?.value, // 渲染数组第1行的'值' r10c3: badList[2]?.label, // 渲染数组第2行的'建' r10c4: badList[2]?.value, // 渲染数组第2行的'值' r11c1: badList[3]?.label, // 渲染数组第3行的'建' r11c2: badList[3]?.value, // 渲染数组第3行的'值' r11c3: '其他', // 渲染数组第3行的'建' r11c4: badStr, // 渲染数组第3行的'值' r13c1: '备注', r13c2: item.remark, // 备注 r14c1: item.center_data[0]?.b2b_batch_number || '', //条形码文本 r15c1: '工单号', r15c2: item.wip_order_number, // 值 } } // 为尚工厂-料废标识卡 else if (item.card_state == 'LIAOFEI' && item.is_finished_goods == 1) { // 如果有不良项目,就循环获取其中值 let badNum = item.bad_item_list?.length || 0 let badList: { id: number; label: string; value: string }[] = [] if (item.bad_item_list && badNum > 0) { item.bad_item_list?.forEach((badItem: any) => { let objbad = { id: badItem.id, label: badItem.content, value: badItem.scrap_detail_number, } badList.push(objbad) }) } // 获取 badList[4] 以后项的 value 拼接成字符串 let badStr = badList // .slice(4) .map((badItem: any) => { let l = badItem.label let v = badItem.value || '' return l + ':' + v }) .join(',') obj = { card_state: item.card_state, // 工厂类型:1:为尚工厂 | 2:成品工厂 factoryType: item.is_finished_goods, r1c2: '料废标识卡', r1c3: '产品类别', r1c4: item.category, // 产品类别 r2c1: '分布场所代号', r2c2: item.center_data[0]?.distribute_place_name, r2c4: baseUrls + item.qr_code_path, // 二维码地址 r3c1: '客户名称', r3c2: item.center_data[0]?.customer_name, r4c1: '供应商', r4c2: item.supplier_name, r5c1: '淬火件型号', // 建 r5c2: item.quenching_material_model, // 值-产品型号 r5c4: item.card_code, // 标识卡号 r6c1: '淬火件编码', // 建 r6c2: item.quenching_material_code, // 值 r6c3: '材料炉号', // 建 r6c4: item.center_data[0]?.material_heat_number, // 值 r7c1: '产品物料号', // 建 r7c2: item.material_code, // 值 r7c3: '库位', // 建 r7c4: item.location_name, // 值 r8c1: '产品型号', // 建 r8c2: item.material_model, // 值-产品型号 r8c3: '收货人员', // 建 r8c4: item.center_data[0]?.consignee, // 值 r9c1: '材料厂商', r9c2: item.center_data[0]?.material_manufacturer, r9c3: '材料牌号', r9c4: item.center_data[0]?.material_mark, r10c1: '总箱数', r10c2: item.total_row, r10c3: '单重', r10c4: item.piece_weight + item.piece_weight_unit, r11c1: '料废总数', r11c2: item.storage_scrap_count, r11c3: '本批数量', r11c4: item.center_data[0]?.batch_count, r12c1: '生产日期', r12c2: item.product_date, r12c3: '工序', r12c4: item.process_name, r13c1: '提交人', r13c2: item.opt_user_name, r13c3: '工单号', r13c4: item.wip_order_number, // 值 // r13c3: '责任人', // r13c4: '', /** ----循环的数据---------------- **/ r14c1: '不良项目', r14c2: badStr, // 渲染数组不良项目的'值' r15c1: '备注', r15c2: item.remark, // 备注 r16c1: item.center_data[0]?.b2b_batch_number || '', //条形码文本 } } // (成品工厂-为尚工厂)-账物卡 else if (item.card_state == 'ZHANGWU') { // 如果有不良项目,就循环获取其中值 // 获取 badList[4] 以后项的 value 拼接成字符串 obj = { card_state: item.card_state, factoryType: item.is_finished_goods, // 工厂类型:1:为尚工厂 | 2:成品工厂 r1c2: '账物卡', r1c3: '文件编号', r1c4: item.material_type, // 文件编号 r2c1: '名称/类型', r2c2: item.material_name ? item.material_name + '/' + item.material_type : item.material_type, r2c4: baseUrls + item.qr_code_path, // 二维码地址 r3c1: '产品型号', r3c2: item.material_model, r4c1: '材料编码', r4c2: item.material_code, r5c1: '批号', r5c2: item.flow_lot_number ? item.flow_lot_number : item.center_data[0]?.b2b_batch_number, r5c4: item.card_code, // 标识卡号 r6c1: '规值', r6c2: item.center_data[0]?.value, r6c3: '供应商', r6c4: item.center_data[0]?.supplier_name, data: [ { opt_time: item.opt_time, // 日期 sr: item.record_type === 1 ? item.inventory : '', // 收入 fc: item.record_type === 2 ? item.inventory : '', // 发出 balance_count: item.balance_count, //结存 remark: item.remark, // 签字/备注 }, ], r14c1: item.flow_lot_number ? item.flow_lot_number : item.center_data[0]?.b2b_batch_number || '', //条形码文本 } } dataInfo.push(obj) }) console.log('处理好的标识卡信息:', dataInfo) callback(dataInfo) }) .catch((err: any) => { console.log('错误: ', err) callback([]) }) } // 处理选中的标识卡为需要的参数结构 export function setCardList(rowList: any) { let cParams: any = { card_code: [], } rowList.forEach((item: any) => { item.SRow.forEach((row: any) => { cParams.card_code.push(row.card_code) }) cParams.card_code = Array.from(new Set(cParams.card_code)) cParams.card_code = cParams.card_code.map((item: any) => item.toString()) cParams.card_code = cParams.card_code.map((item: any) => item.trim()) }) cParams.card_code = cParams.card_code.join(',') return cParams }