UNPKG

ci-plus

Version:

ci组件库

1,185 lines (1,149 loc) 52.2 kB
/** * @module cardPrint * @author : 卖女孩的小火柴 * !description : 标识卡打印 * @version : 1.3.1 * @since : 创建时间 2024-03-15 15:16:12 * @update : 2024-11-5 13:26:12更新标识卡模板,删除为尚工厂的一些字段 * !update : 2024-11.12 芜湖伦比公司的成品工厂的"毛坯标识卡"使用为尚工厂的"产品标识卡"模板 */ 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 console.log('标识卡数据版本:v1.0.2'); 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.material_name, // 产品类别 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.center_data[0]?.case_count_str, // 2024.08.31 由 规格specification 变更为 件数规格case_count_str r10c1: '检验日期', r10c2: item.center_data[0]?.inspect_time, r10c3: '工单号', // 建 r10c4: item.wip_order_number, // 值 r11c1: '本批数量', r11c2: item.center_data[0]?.batch_count, r11c3: '材料炉号', // 建 r11c4: item.center_data[0]?.material_heat_number, r12c1: '热处理批号', r12c2: item.center_data[0]?.heat_batch_number, r12c3: '材料批次', r12c4: item.center_data[0]?.material_batch_number, r13c1: '流转批次号', // 建 r13c2: item.flow_lot_number, r13c3: '采购单号', // 建 r13c4: item.center_data[0]?.purchase_number, r14c1: '批次序列号', r14c2: item.center_data[0]?.b2b_batch_number, r14c3: '采购单行号', r14c4: item.center_data[0]?.purchase_order, r40c1: '备注', // 备注 r40c2: item.remark, // 备注 r41c1: 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.material_name, r2c1: '分布场所代号', r2c2: item.center_data[0]?.distribute_place_name, r2c4: baseUrls + item.qr_code_path, // 二维码地址 r3c1: '客户名称', r3c2: item.customer_name || item.center_data[0]?.customer_name || '', r4c1: '供应商', r4c2: item.center_data[0]?.supplier_name, r5c1: '材料厂家', r5c2: item.center_data[0]?.material_manufacturer, r5c4: item.card_code, // 标识卡号 r6c1: '淬火件型号', r6c2: item.quenching_material_model, r6c3: '材料炉号', r6c4: item.center_data[0]?.material_heat_number, r7c1: '淬火件编码', r7c2: item.quenching_material_code, r7c3: '材料牌号', r7c4: item.center_data[0]?.material_mark, r8c1: '产品物料号', r8c2: item.material_code, r8c3: '库位', r8c4: item.location_name, r9c1: '产品型号', r9c2: item.material_model, r9c3: '收货人员', r9c4: item.center_data[0]?.consignee, r10c1: '净重', r10c2: item.net_weight + item.net_weight_unit, r10c3: '单重', r10c4: item.piece_weight + item.piece_weight_unit, r11c1: '产线', r11c2: item.line_name, r11c3: '工单号', r11c4: item.wip_order_number, r12c1: '本箱数量', r12c2: item.current_inventory, r12c3: '本批数量', r12c4: item.center_data[0]?.batch_count, r13c1: '总箱数', r13c2: item.total_row, r13c3: '生产日期', r13c4: item.product_date, r14c1: '热处理批号', r14c2: item.center_data[0]?.heat_batch_number, r14c3: '件数规格', r14c4: item.center_data[0]?.case_count_str, r15c1: '包装方式', r15c2: item.packaging_specifications_name, r15c3: '', r15c4: '', r40c1: '备注', // 备注 r40c2: item.remark, // 备注key r41c1: item.center_data[0]?.b2b_batch_number || '', //条形码文本666 } } // 成品工厂-尾料标识卡(为尚无尾料标识卡,使用为尚的成品标识卡) 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.material_name, // 产品类别 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.value, // 规值 r10c4: item.specification, // 规格 r11c1: '检查日期', // 检查日期 r11c2: item.center_data[0]?.inspect_time, // 检查日期 r11c3: '工单号', // 建 r11c4: item.wip_order_number, // 值 r12c1: '本批数量', r12c2: item.center_data[0]?.batch_count, r12c3: '材料炉号', // 建 r12c4: item.center_data[0]?.material_heat_number, r13c1: '热处理批号', r13c2: item.center_data[0]?.heat_batch_number, r13c3: '采购单号', // 建 r13c4: item.center_data[0]?.purchase_number, r14c1: '材料批次', r14c2: item.center_data[0]?.material_batch_number, r14c3: '采购单行号', r14c4: item.center_data[0]?.purchase_order, r15c1: '批次序列号', // 建 r15c2: item.flow_lot_number, r40c1: '备注', // 备注 r40c2: item.remark, // 备注 r41c1: 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: '责废标识卡', r1c3: '产品类别', // 产品类别 r1c4: item.material_name, // 产品类别 r2c1: '物料编码', // 物料编码 r2c2: item.material_code, // 物料编码 r2c4: baseUrls + item.qr_code_path, // 二维码地址 r3c1: '产品型号', // 产品型号 r3c2: item.material_model, // 产品型号 r4c1: '工单号', // 工单号 r4c2: item.wip_order_number, // 工单号 r5c1: '责废总数', // 责废总数 r5c2: item.storage_scrap_count, // 责废总数 r5c4: item.card_code, // 标识卡号 r6c1: '工序', // 工序 r6c2: item.process_name, // 工序 r6c3: '生产日期', // 生产日期 r6c4: item.product_date, // 生产日期 r7c1: '规值', // 规值 r7c2: item.value, // 规值 r7c3: '规格', // 规格 r7c4: item.specification, // 规格 r8c1: '提交人', // 提交人 r8c2: item.opt_user_name, // 提交人 r8c3: '责任人', // 责任人 r8c4: item.duty_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及以后行的'值' r15c1: '检验员', r15c2: item.center_data[0]?.inspector, r15c3: '检验日期', r15c4: item.center_data[0]?.inspect_time, r16c1: '本箱数量', r16c2: item.current_inventory, r16c3: '流转批次号', r16c4: item.flow_lot_number, r17c1: '材料炉号', r17c2: item.center_data[0]?.material_heat_number, r17c3: '批次序列号', r17c4: item.center_data[0]?.b2b_batch_number, r18c1: '材料批次', r18c2: item.center_data[0]?.material_batch_number, r40c1: '备注', // 备注 r40c2: item.remark, // 备注 r41c1: 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 == 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.material_name, // 产品类别 r2c1: '分布场所代号', // 建 r2c2: item.center_data[0]?.distribute_place_name, r2c4: baseUrls + item.qr_code_path, // 二维码地址 r3c1: '客户名称', // 建 r3c2: item.customer_name || item.center_data[0]?.customer_name || '', r4c1: '供应商', // 建 r4c2: item.center_data[0]?.supplier_name, r5c1: '材料厂家', r5c2: item.center_data[0]?.material_manufacturer, r5c4: item.card_code, // 标识卡号 r6c1: '淬火件型号', r6c2: item.quenching_material_model, r6c3: '材料炉号', r6c4: item.center_data[0]?.material_heat_number, r7c1: '淬火件编码', r7c2: item.quenching_material_code, r7c3: '材料牌号', r7c4: item.center_data[0]?.material_mark, r8c1: '产品物料号', r8c2: item.material_code, r8c3: '库位', r8c4: item.location_name, r9c1: '产品型号', r9c2: item.material_model, r9c3: '收货人员', r9c4: item.center_data[0]?.consignee, r10c1: '责废总数', // 建 r10c2: item.storage_scrap_count, r10c3: '单重', r10c4: item.piece_weight + item.piece_weight_unit, r11c1: '工序', r11c2: item.process_name, r11c3: '本批数量', r11c4: item.center_data[0]?.batch_count, r12c1: '热处理批号', r12c2: item.center_data[0]?.heat_batch_number, r12c3: '生产日期', r12c4: item.product_date, r13c1: '责任人', r13c2: item.duty_user_name, r13c3: '提交人', r13c4: item.opt_user_name, /** ----循环的数据-------------------------------- **/ r30c1: badList[0]?.label, // 渲染数组第0行的'建' r30c2: badList[0]?.value, // 渲染数组第0行的'值' r30c3: badList[1]?.label, // 渲染数组第1行的'建' r30c4: badList[1]?.value, // 渲染数组第1行的'值' r31c1: '其他', // 渲染数组第2及以后行的'建' r31c2: badStr, // 渲染数组第2及以后行的'值' r40c1: '备注', // 备注 r40c2: item.remark, //条形码文本 r41c1: item.center_data[0]?.b2b_batch_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.material_name, // 产品类别 r2c1: '物料编码', r2c2: item.material_code, r2c4: baseUrls + item.qr_code_path, // 二维码地址 r3c1: '产品型号', r3c2: item.material_model, // r4c1: '批次号', // r4c2: item.flow_lot_number, r4c1: '工单号', r4c2: item.wip_order_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.center_data[0]?.material_heat_number, r8c1: '生产日期', r8c2: item.product_date, r8c3: '材料批次', r8c4: item.center_data[0]?.material_batch_number, r9c1: '检验员', r9c2: item.center_data[0]?.inspector, r9c3: '检验日期', r9c4: item.center_data[0]?.inspect_time, r10c1: '责任团队', r10c2: item.duty_team_name, r10c3: '返工期限', r10c4: item.rework_dead_line, r11c1: '处理团队?', r11c2: 'item.duty_team_name', r11c3: '处理方法?', r11c4: 'item.rework_dead_line', r12c1: '流转批次号', r12c2: item.flow_lot_number, r12c3: '批次序列号', r12c4: item.center_data[0]?.b2b_batch_number, r13c1: '采购单号', r13c2: item.center_data[0]?.purchase_number, r13c3: '采购单行号', r13c4: item.center_data[0]?.purchase_order, /** ----循环的数据---------------- **/ r30c1: '不良项目', r30c2: badStr, // 渲染数组不良项目的'值' r40c1: '备注', r40c2: item.remark, // 备注 r41c1: item.flow_lot_number ? item.flow_lot_number : item.center_data[0]?.b2b_batch_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.material_name, r2c1: '分布场所代号', r2c2: item.material_code, r2c4: baseUrls + item.qr_code_path, // 二维码地址 r3c1: '客户名称', r3c2: item.customer_name || item.center_data[0]?.customer_name || '', r4c1: '供应商', r4c2: item.center_data[0]?.supplier_name, r5c1: '材料厂家', r5c2: item.center_data[0]?.material_manufacturer, r5c4: item.card_code, // 标识卡号 r6c1: '淬火件型号', r6c2: item.quenching_material_model, r6c3: '材料炉号', r6c4: item.center_data[0]?.material_heat_number, r7c1: '淬火件编码', r7c2: item.quenching_material_code, r7c3: '材料牌号', r7c4: item.center_data[0]?.material_mark, r8c1: '产品物料号', r8c2: item.material_code, r8c3: '热处理批号', r8c4: item.center_data[0]?.heat_batch_number, r9c1: '产品型号', r9c2: item.material_model, r9c3: '收货人员', r9c4: item.center_data[0]?.consignee, r10c1: '返工总数', r10c2: item.rework_count, r10c3: '本批数量', r10c4: item.center_data[0]?.batch_count, r11c1: '返工工序', r11c2: item.rework_process_names, r11c3: '返工期限', r11c4: item.rework_dead_line, r12c1: '生产日期', r12c2: item.product_date, r12c3: '', r12c4: '', /** ----循环的数据---------------- **/ r30c1: '不良项目', r30c2: badStr, // 渲染数组不良项目的'值' r40c1: '备注', r40c2: item.remark, // 备注 r41c1: item.center_data[0]?.b2b_batch_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.material_name, // 产品类别 r2c1: '成品编码', r2c2: item.material_code, r2c4: baseUrls + item.qr_code_path, // 二维码地址 r3c1: '成品型号', r3c2: item.material_model, r4c1: '客户名称/代号', r4c2: item.customer_name || item.center_data[0]?.customer_name || '', r5c1: '工单号', r5c2: item.wip_order_number, r5c4: item.card_code, // 标识卡号 r6c1: '外圈编码', r6c2: wqbm, r6c3: '内圈编码', r6c4: nqbm, r7c1: '外圈批号', r7c2: wqph, r7c3: '内圈批号', r7c4: nqph, } // 获取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 // 页面中只渲染到了 r20c4 } let obj3 = { r50c1: '本箱数量', r50c2: item.current_inventory, r50c3: '本批数量', r50c4: item.center_data[0]?.batch_count, r51c1: '本工序', r51c2: item.process_name, r51c3: '下工序', r51c4: item.next_process_name, r52c1: '操作员', r52c2: item.report_user_name, r52c3: '生产日期', r52c4: item.product_date, r53c1: '检验员', r53c2: item.center_data[0]?.inspector, r53c3: '检验日期', r53c4: item.center_data[0]?.inspect_time, r54c1: '流转批次号', r54c2: item.flow_lot_number, r55c1: '备注', r55c2: item.remark, } // 将 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: '料废标识卡', r1c3: '产品类别', r1c4: item.material_name, r2c1: '物料编码', r2c2: item.material_code, r2c4: baseUrls + item.qr_code_path, r3c1: '产品型号', r3c2: item.material_model, r4c1: '生产厂商', r4c2: item.supplier_name, r5c1: '材料厂商', r5c2: item.center_data[0]?.material_manufacturer, r5c4: item.card_code, r6c1: '采购单号', r6c2: item.center_data[0]?.purchase_number, r6c3: '材料炉号', r6c4: item.center_data[0]?.material_heat_number, r7c1: '采购单行号', r7c2: item.center_data[0]?.purchase_order, r7c3: '材料批次', r7c4: item.center_data[0]?.material_batch_number, r8c1: '料废总数', r8c2: item.storage_scrap_count, r8c3: '生产日期', r8c4: item.product_date, r9c1: '工序', r9c2: item.process_name, r9c3: '规格', r9c4: item.specification, r10c1: '规值', r10c2: item.value, r10c3: '提交人', r10c4: item.opt_user_name, r11c1: '检验员', r11c2: item.center_data[0]?.inspector, r11c3: '检验日期', r11c4: item.center_data[0]?.inspect_time, r12c1: '热处理批号', r12c2: item.center_data[0]?.heat_batch_number, // 热处理批号 r12c3: '工单号', r12c4: item.wip_order_number, // 工单号 /** ----循环的数据-------------------------------- **/ r30c1: badList[0]?.label, // 渲染数组第0行的'建' r30c2: badList[0]?.value, // 渲染数组第0行的'值' r30c3: badList[1]?.label, // 渲染数组第1行的'建' r30c4: badList[1]?.value, // 渲染数组第1行的'值' r31c1: badList[2]?.label, // 渲染数组第2行的'建' r31c2: badList[2]?.value, // 渲染数组第2行的'值' r31c3: badList[3]?.label, // 渲染数组第3行的'建' r31c4: badList[3]?.value, // 渲染数组第3行的'值' r32c1: '其他', // 渲染数组第3行的'建' r32c2: badStr, // 渲染数组第3行的'值' r40c1: '备注', // 备注 r40c2: item.remark, // 备注 r41c1: item.center_data[0]?.b2b_batch_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.material_name, // 产品类别 r2c1: '分布场所代号', r2c2: item.center_data[0]?.distribute_place_name, r2c4: baseUrls + item.qr_code_path, // 二维码地址 r3c1: '客户名称', r3c2: item.customer_name || item.center_data[0]?.customer_name || '', r4c1: '供应商', r4c2: item.center_data[0]?.supplier_name, r5c1: '材料厂家', r5c2: item.center_data[0]?.material_manufacturer, r5c4: item.card_code, // 标识卡号 r6c1: '淬火件型号', r6c2: item.quenching_material_model, r6c3: '材料炉号', r6c4: item.center_data[0]?.material_heat_number, r7c1: '淬火件编码', r7c2: item.quenching_material_code, r7c3: '材料牌号', r7c4: item.center_data[0]?.material_mark, r8c1: '产品物料号', r8c2: item.material_code, r8c3: '库位', r8c4: item.location_name, r9c1: '产品型号', r9c2: item.material_model, r9c3: '收货人员', r9c4: item.center_data[0]?.consignee, r10c1: '料废总数', r10c2: item.storage_scrap_count, r10c3: '单重', r10c4: item.piece_weight + item.piece_weight_unit, r11c1: '工序', r11c2: item.process_name, r11c3: '本批数量', r11c4: item.center_data[0]?.batch_count, r12c1: '生产日期', r12c2: item.product_date, r12c3: '提交人', r12c4: item.opt_user_name, /** ----循环的数据---------------- **/ r30c1: '不良项目', r30c2: badStr, // 渲染数组不良项目的'值' r40c1: '备注', r40c2: item.remark, // 备注 r41c1: 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_name, 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.center_data[0]?.b2b_batch_number, r5c1: '生产厂商', r5c2: item.center_data[0]?.supplier_name, r5c4: item.card_code, // 标识卡号 r6c1: '材料厂商', r6c2: item.center_data[0]?.material_manufacturer, r6c3: '材料炉号', r6c4: item.center_data[0]?.material_heat_number, r7c1: '规值', r7c2: item.value, r7c3: '材料批次', r7c4: item.center_data[0]?.material_batch_number, 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, // 签字/备注 }, ], r41c1: item.flow_lot_number ? item.flow_lot_number : item.center_data[0]?.b2b_batch_number || '', //条形码文本 } } // 成品工厂-毛坯标识卡 else if (item.card_state == 'MAOPI' && item.is_finished_goods == 2) { obj = { card_state: item.card_state, // 标识卡类型 // 工厂类型:1:为尚工厂 | 2:成品工厂 factoryType: item.is_finished_goods, r1c2: '毛坯标识卡', r1c3: '产品类别', // (为 类型/名称 拼接) r1c4: item.material_name, r2c1: '分布场所代号', r2c2: item.center_data[0]?.distribute_place_name, r2c4: baseUrls + item.qr_code_path, // 二维码地址 r3c1: '客户名称', r3c2: item.customer_name || item.center_data[0]?.customer_name || '', r4c1: '供应商', r4c2: item.center_data[0]?.supplier_name, r5c1: '材料厂家', r5c2: item.center_data[0]?.material_manufacturer, r5c4: item.card_code, // 标识卡号 r6c1: '淬火件型号', r6c2: item.quenching_material_model, r6c3: '材料炉号', r6c4: item.center_data[0]?.material_heat_number, r7c1: '淬火件编码', r7c2: item.quenching_material_code, r7c3: '材料牌号', r7c4: item.center_data[0]?.material_mark, r8c1: '产品物料号', r8c2: item.material_code, r8c3: '库位', r8c4: item.location_name, r9c1: '产品型号', r9c2: item.material_model, r9c3: '收货人员', r9c4: item.center_data[0]?.consignee, r10c1: '净重', r10c2: item.net_weight + item.net_weight_unit, r10c3: '单重', r10c4: item.piece_weight + item.piece_weight_unit, r11c1: '产线', r11c2: item.line_name, r11c3: '工单号', r11c4: item.wip_order_number, r12c1: '本箱数量', r12c2: item.current_inventory, r12c3: '本批数量', r12c4: item.center_data[0]?.batch_count, r13c1: '总箱数', r13c2: item.total_row, r13c3: '生产日期', r13c4: item.product_date, r14c1: '热处理批号', r14c2: item.center_data[0]?.heat_batch_number, r14c3: '件数规格', r14c4: item.center_data[0]?.case_count_str, r15c1: '包装方式', r15c2: item.packaging_specifications_name, r15c3: '', r15c4: '', r40c1: '备注', // 备注 r40c2: item.remark, // 备注key r41c1: item.center_data[0]?.b2b_batch_number || '', //条形码文本666 } // obj = { // card_state: item.card_state, // 标识卡类型 // // 工厂类型:1:为尚工厂 | 2:成品工厂 // factoryType: item.is_finished_goods, // r1c2: '毛坯标识卡', // r1c3: '产品类别', // r1c4: item.material_name, // r2c1: '物料编码', // r2c2: item.material_code, // r2c4: baseUrls + item.qr_code_path, // 二维码地址 // r3c1: '产品型号', // r3c2: item.material_model, // r4c1: '供应商', // r4c2: item.center_data[0]?.supplier_name, // r5c1: '材料厂商', // r5c2: item.center_data[0]?.material_manufacturer, // r5c4: item.card_code, // 标识卡号 // r6c1: '本箱数量', // r6c2: item.current_inventory, // r6c3: '生产日期', // r6c4: item.product_date, // r7c1: '检验员', // r7c2: item.center_data[0]?.inspector, // r7c3: '检验日期', // r7c4: item.center_data[0]?.inspect_time, // r8c1: '材料炉号', // r8c2: item.center_data[0]?.material_heat_number, // r8c3: '材料批次', // r8c4: item.center_data[0]?.material_batch_number, // r9c1: '本批数量', // r9c2: item.center_data[0]?.batch_count, // r9c3: '件数规格', // r9c4: item.center_data[0]?.case_count_str, // r10c1: '规值', // r10c2: item.value, // r10c3: '采购单号', // r10c4: item.center_data[0]?.purchase_number, // r11c1: '批次序列号', // r11c2: item.center_data[0]?.b2b_batch_number, // r11c3: '采购单行号', // r11c4: item.center_data[0]?.purchase_order, // r12c1: '热处理批号', // r12c2: item.center_data[0]?.heat_batch_number, // r40c1: '备注', // 备注 // r40c2: item.remark, // 备注 // r41c1: item.center_data[0]?.b2b_batch_number || '', //条形码文本 // } } // 为尚工厂-毛坯标识卡 else if (item.card_state == 'MAOPI' && item.is_finished_goods == 1) { obj = { card_state: item.card_state, // 工厂类型:1:为尚工厂 | 2:成品工厂 factoryType: item.is_finished_goods, r1c2: '毛坯标识卡', r1c3: '产品类别', r1c4: item.material_name, r2c1: '分布场所代号', r2c2: item.material_code, r2c4: baseUrls + item.qr_code_path, // 二维码地址 r3c1: '客户名称', r3c2: item.customer_name || item.center_data[0]?.customer_name || '', r4c1: '供应商', r4c2: item.center_data[0]?.supplier_name, r5c1: '材料厂家', r5c2: item.center_data[0]?.material_manufacturer, r5c4: item.card_code, // 标识卡号 r6c1: '淬火件型号', r6c2: item.quenching_material_model, r6c3: '材料炉号', r6c4: item.center_data[0]?.material_heat_number, r7c1: '淬火件编码', r7c2: item.quenching_material_code, r7c3: '材料牌号', r7c4: item.center_data[0]?.material_mark, r8c1: '产品物料号', r8c2: item.material_code, r8c3: '收货人员', r8c4: item.center_data[0]?.consignee, r9c1: '产品型号', r9c2: item.material_model, r9c3: '本批数量', r9c4: item.center_data[0]?.batch_count, r10c1: '本箱数量', r10c2: item.current_inventory, r10c3: '单重', r10c4: item.piece_weight + item.piece_weight_unit, r11c1: '总箱数', r11c2: item.total_row, r11c3: '净重', r11c4: item.net_weight + item.net_weight_unit, r12c1: '包装方式', r12c2: item.packaging_specifications_name, r12c3: '生产日期', r12c4: item.product_date, r13c1: '件数规格', r13c2: item.center_data[0]?.case_count_str, r13c3: '', r13c4: '', r40c1: '备注', r40c2: item.remark, // 备注 r41c1: item.center_data[0]?.b2b_batch_number || '', //条形码文本 } } // 成品工厂-材料标识卡 else if ( item.card_state == 'CAILIAO' && item.is_finished_goods == 2 ) { obj = { card_state: item.card_state, // 标识卡类型 // 工厂类型:1:为尚工厂 | 2:成品工厂 factoryType: item.is_finished_goods, r1c2: '材料标识卡', r1c3: '产品类别', r1c4: item.material_name, r2c1: '物料编码', r2c2: item.material_code, r2c4: baseUrls + item.qr_code_path, // 二维码地址 r3c1: '产品型号', r3c2: item.material_model, r4c1: '供应商', r4c2: item.center_data[0]?.supplier_name, r5c1: '材料厂商', r5c2: item.center_data[0]?.material_manufacturer, r5c4: item.card_code, // 标识卡号 r6c1: '本箱数量', r6c2: item.current_inventory, r6c3: '生产日期', r6c4: item.product_date, r7c1: '检验员', r7c2: item.center_data[0]?.inspector, r7c3: '检验日期', r7c4: item.center_data[0]?.inspect_time, r8c1: '材料炉号', r8c2: item.center_data[0]?.material_heat_number, r8c3: '材料批次', r8c4: item.center_data[0]?.material_batch_number, r9c1: '本批数量', r9c2: item.center_data[0]?.batch_count, r9c3: '件数规格', r9c4: item.center_data[0]?.case_count_str, r10c1: '规值', r10c2: item.value, r10c3: '采购单号', r10c4: item.center_data[0]?.purchase_number, r11c1: '采购单行号', r11c2: item.center_data[0]?.purchase_order, r40c1: '备注', // 备注 r40c2: item.remark, // 备注 r41c1: item.center_data[0]?.b2b_batch_number || '', //条形码文本 } } // 为尚工厂-材料标识卡(为尚工厂无材料标识卡) else if ( item.card_state == 'CAILIAO' && item.is_finished_goods == 1 ) { obj = { card_state: item.card_state, factoryType: item.is_finished_goods, // 工厂类型:1:为尚工厂 | 2:成品工厂 } } // 为尚工厂无:尾料标识卡、装配标识卡、材料标识卡 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 }