ci-plus
Version:
ci组件库
1,235 lines (1,190 loc) • 53.4 kB
text/typescript
/**
* @module cardPrint
* @author : 卖女孩的小火柴
* ?description : 11月22日开会重新更新成品工厂标识卡
* !@version : 1.6.1
* TODO:@since : 创建时间 2024-11-23 09:40:30
* !update : 2025-03-13 调整生产日期字段取值
*/
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))
const setInspect_status = (val: number | string | undefined) => {
if (val == 0) {
return { type: 'info', value: '未生成任务' }
} else if (val == 1) {
return { type: 'info', value: '待检验' }
} else if (val == 2) {
return { type: 'success', value: '合格' }
} else if (val === 3) {
return { type: 'info', value: '不合格' }
} else if (val === 4) {
return { type: 'warning', value: '待评审' }
} else if (val === 5) {
return { type: 'danger', value: '挑选使用' }
} else if (val === 6) {
return { type: 'danger', value: '让步接收' }
} else if (val === 7) {
return { type: 'danger', value: '退货' }
} else {
return { type: '', value: '' }
}
}
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.5.7')
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 = {}
let weight1 = item.net_weight ? item.net_weight : ''
let weight_unit1 = item.net_weight_unit ? item.net_weight_unit : ''
let net_weight = weight1 ? weight1 + weight_unit1 : '' // 净重+净重单位
let weight2 = item.piece_weight ? item.piece_weight : ''
let weight_unit2 = item.piece_weight_unit ? item.piece_weight_unit : ''
let piece_weight = weight2 ? weight2 + weight_unit2 : '' // 单重+单重单位
// 成品工厂-产品标识卡
if (item.card_state == 'CHANPIN' && 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.wip_order_number,
r5c4: item.card_code, // 标识卡号
r6c1: '本工序',
r6c2: item.process_name,
r6c3: '下工序',
r6c4: item.next_process_name,
r7c1: '本箱数量',
r7c2: item.current_inventory,
r7c3: '操作工/自检员',
r7c4: item.report_user_name ? item.report_user_name : item.opt_user_name,
r8c1: '本批数量',
r8c2: item.center_data[0]?.batch_count,
r8c3: '生产日期',
r8c4: item.product_date ? item.product_date : item.center_data?.[0]?.product_date,
r9c1: '规值',
r9c2: item.value,
r9c3: '材料厂商',
r9c4: item.center_data[0]?.material_manufacturer,
r10c1: '检验员',
r10c2: item.inspector ? item.inspector : item.center_data[0]?.inspector,
r10c3: '材料炉号',
r10c4: item.center_data[0]?.material_heat_number,
r11c1: '检验日期',
r11c2: item.inspect_time ? item.inspect_time : item.center_data[0]?.inspect_time,
r11c3: '热处理批号',
r11c4: item.center_data[0]?.heat_batch_number,
r12c1: '流转批次号',
r12c2: item.flow_lot_number,
r12c3: '', //'采购单号',
r12c4: '', //item.center_data[0]?.purchase_number,
r13c1: '批次序列号',
r13c2: item.center_data[0]?.b2b_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 == '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: net_weight,
r10c3: '单重',
r10c4: piece_weight,
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 ? item.product_date : item.center_data?.[0]?.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: '尾料标识卡',
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]?.tail_reason,
r5c4: item.card_code, // 标识卡号
r6c1: '本工序',
r6c2: item.process_name,
r6c3: '下工序',
r6c4: item.next_process_name,
r7c1: '规值',
r7c2: item.value,
r7c3: '操作工/自检员',
r7c4: item.report_user_name ? item.report_user_name : item.opt_user_name, // 操作工/自检员
r8c1: '本箱数量',
r8c2: item.current_inventory, // 本箱数量
r8c3: '生产日期',
r8c4: item.product_date ? item.product_date : item.center_data?.[0]?.product_date, // 生产日期
r9c1: '本批数量',
r9c2: item.center_data[0]?.batch_count,
r9c3: '材料厂商',
r9c4: item.center_data[0]?.material_manufacturer,
r10c1: '检验员',
r10c2: item.inspector ? item.inspector : item.center_data[0]?.inspector,
r10c3: '材料炉号',
r10c4: item.center_data[0]?.material_heat_number,
r11c1: '检验日期',
r11c2: item.inspect_time ? item.inspect_time : item.center_data[0]?.inspect_time,
r11c3: '热处理批号',
r11c4: item.center_data[0]?.heat_batch_number,
r12c1: '工单号',
r12c2: item.wip_order_number,
r12c3: '采购单号',
r12c4: item.center_data[0]?.purchase_number,
r13c1: '批次序列号',
r13c2: item.center_data[0]?.b2b_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 == 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 ? item.product_date : item.center_data?.[0]?.product_date, // 生产日期
r7c1: '规值', // 规值
r7c2: item.value, // 规值
r7c3: '规格', // 规格
r7c4: item.specification, // 规格
r8c1: '提交人', // 提交人
r8c2: item.opt_user_name, // 提交人
r8c3: '责任人', // 责任人
r8c4: item.duty_user_name, // 责任人
r9c1: '检验员',
r9c2: item.inspector ? item.inspector : item.center_data[0]?.inspector,
r9c3: '检验日期',
r9c4: item.inspect_time ? item.inspect_time : item.center_data[0]?.inspect_time,
r10c1: '本箱数量',
r10c2: item.current_inventory,
r10c3: '材料炉号',
r10c4: item.center_data[0]?.material_heat_number,
/** ----循环的数据-------------------------------- **/
r11c1: badList[0]?.label, // 渲染数组第0行的'建'
r11c2: badList[0]?.value, // 渲染数组第0行的'值'
r11c3: badList[1]?.label, // 渲染数组第1行的'建'
r11c4: badList[1]?.value, // 渲染数组第1行的'值'
r12c1: badList[2]?.label, // 渲染数组第2行的'建'
r12c2: badList[2]?.value, // 渲染数组第2行的'值'
r12c3: badList[3]?.label, // 渲染数组第3行的'建'
r12c4: badList[3]?.value, // 渲染数组第3行的'值'
// r11c1: badList[4]?.label,// 渲染数组第4行的'建'
// r11c2: badList[4]?.value, // 渲染数组第4行的'值'
r13c1: '其他', // 渲染数组第5及以后行的'建'
r13c2: badStr, // 渲染数组第5及以后行的'值'
r14c1: '流转批次号',
r14c2: item.flow_lot_number,
r14c3: '批次序列号',
r14c4: item.center_data[0]?.b2b_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: piece_weight,
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 ? item.product_date : item.center_data?.[0]?.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.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.product_date ? item.product_date : item.center_data?.[0]?.product_date,
r8c1: '检验员',
r8c2: item.inspector ? item.inspector : item.center_data[0]?.inspector,
r8c3: '检验日期',
r8c4: item.inspect_time ? item.inspect_time : item.center_data[0]?.inspect_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: item.flow_lot_number,
r11c3: '批次序列号',
r11c4: item.center_data[0]?.b2b_batch_number,
// r12c1: '采购单号',
// r12c2: item.center_data[0]?.purchase_number,
/** ----循环的数据---------------- **/
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 ? item.product_date : item.center_data?.[0]?.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) {
// 检验结果/检验状态
let status = item.inspect_status
? item.inspect_status
: item.center_data[0]?.inspect_status
let inspectStatus = setInspect_status(status).value
// 如果有children ,就循环获取其中值
let badNum = item.children?.length || 0
let badList: {
id: number | string
label: string
value: string
}[] = []
// 套圈的编码和批号数组
let tqList: {
id: number | string
label: string
value: string
}[] = []
let nqbm = '' // 内圈编码
let nqph = '' // 内圈批号
let wqbm = '' // 内圈编码
let wqph = '' // 内圈批号
let tqbm = '' // 内圈编码
let tqph = '' // 内圈批号
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 if (badItem.category == '套圈') {
tqbm = badItem.material_code || ''
tqph = badItem.b2b_batch_number || ''
let tqbmobj = {
id: badItem.card_code + 'bm',
label: badItem.category + '编码',
value: tqbm
}
let tqphobj = {
id: badItem.card_code + 'ph',
label: badItem.category + '批号',
value: tqph
}
if (badItem.category) {
tqList.push(tqbmobj)
tqList.push(tqphobj)
}
} 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: wqph,
r7c1: '内圈编码',
r7c2: nqbm,
r7c3: '内圈批号',
r7c4: nqph
}
// 获取obj1最后一条属性的行号列号
// 获取obj1最后一条属性
let lastKey = Object.keys(obj1)[Object.keys(obj1).length - 1]
console.log('%c Line:691 🎂 lastKey', 'color:#ffdd4d', lastKey)
// 获取行号
let row = Number(parseInt(lastKey.split('r')[1].split('c')[0]))
// 获取列号
let column = Number(lastKey.split('c')[1])
//-------
// 通过循环 tqList 数组,将数组中的每一项合并到obj中
console.log('%c Line:699 🍰 套圈数组', 'color:#ed9ec7', tqList)
let obj4: any = {}
if (tqList.length > 0) {
for (let i = 0; i < tqList.length; i++) {
const item = tqList[i]
console.log('%c Line:703 🌰 item', 'color:#ffdd4d', item)
const rowIndex = Math.floor(i / 2) + (row + 1) // 从r8c1开始这里就是8
const columnIndex = (i % 2) * 2 + 1
obj4[`r${rowIndex}c${columnIndex}`] = item.label
obj4[`r${rowIndex}c${columnIndex + 1}`] = item.value
}
}
console.log('%c Line:709 🌭 obj4', 'color:#42b983', obj4)
//-------
// 获取obj4最后一条属性
let lastKey4 = lastKey
if (Object.keys(obj4).length > 0) {
lastKey4 = Object.keys(obj4)[Object.keys(obj4).length - 1]
}
console.log('%c Line:714 🍻 lastKey4', 'color:#6ec1c2', lastKey4)
// 获取行号
let row4 = Number(parseInt(lastKey4.split('r')[1].split('c')[0]))
// 通过循环 badList 数组,将数组中的每一项合并到obj中
let obj2: any = {}
for (let i = 0; i < badList.length; i++) {
const item = badList[i]
const rowIndex = Math.floor(i / 2) + (row4 + 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
}
console.log('%c Line:728 🥓 obj2', 'color:#465975', obj2)
let obj3 = {
r50c1: '本箱数量',
r50c2: item.current_inventory,
r50c3: '本批数量',
r50c4: item.batch_count ? item.batch_count : 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 ? item.product_date : item.center_data?.[0]?.product_date,
r53c1: '检验员',
r53c2: item.inspector ? item.inspector : item.center_data[0]?.inspector,
r53c3: '检验日期',
r53c4: item.inspect_time ? item.inspect_time : item.center_data[0]?.inspect_time,
r54c1: '流转批次号',
r54c2: item.flow_lot_number,
r54c3: '检验结果',
r54c4: inspectStatus,
r55c1: '备注',
r55c2: item.remark
}
// 将 obj1, obj2, obj3 合并到obj的后面
Object.assign(obj, obj1, obj4, 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.wip_order_number,
r5c4: item.card_code,
r6c1: '工序',
r6c2: item.process_name,
r6c3: '提交人',
r6c4: item.opt_user_name,
r7c1: '规值',
r7c2: item.value,
r7c3: '生产日期',
r7c4: item.product_date ? item.product_date : item.center_data?.[0]?.product_date,
r8c1: '料废总数',
r8c2: item.storage_scrap_count,
r8c3: '材料厂商',
r8c4: item.center_data[0]?.material_manufacturer,
r9c1: '检验员',
r9c2: item.inspector ? item.inspector : item.center_data[0]?.inspector,
r9c3: '材料炉号',
r9c4: item.center_data[0]?.material_heat_number,
r10c1: '检验日期',
r10c2: item.inspect_time ? item.inspect_time : item.center_data[0]?.inspect_time,
r10c3: '热处理批号',
r10c4: item.center_data[0]?.heat_batch_number,
r11c1: '采购单号',
r11c2: item.center_data[0]?.purchase_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: piece_weight,
r11c1: '工序',
r11c2: item.process_name,
r11c3: '本批数量',
r11c4: item.center_data[0]?.batch_count,
r12c1: '生产日期',
r12c2: item.product_date ? item.product_date : item.center_data?.[0]?.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,
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.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.inspector ? item.inspector : item.center_data[0]?.inspector,
r7c3: '检验日期',
r7c4: item.inspect_time ? item.inspect_time : 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: '',
r12c1: '热处理批号',
r12c2: item.center_data[0]?.heat_batch_number,
r12c3: '',
r12c4: '',
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.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: net_weight,
r10c3: '单重',
r10c4: piece_weight,
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 ? item.product_date : item.center_data?.[0]?.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 == '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: piece_weight,
r11c1: '总箱数',
r11c2: item.total_row,
r11c3: '净重',
r11c4: net_weight,
r12c1: '包装方式',
r12c2: item.packaging_specifications_name,
r12c3: '生产日期',
r12c4: item.product_date ? item.product_date : item.center_data?.[0]?.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.value,
r6c3: '生产日期',
r6c4: item.product_date ? item.product_date : item.center_data?.[0]?.product_date,
r7c1: '本箱数量',
r7c2: item.current_inventory,
r7c3: '件数规格',
r7c4: item.center_data[0]?.case_count_str,
r8c1: '本批数量',
r8c2: item.center_data[0]?.batch_count,
r8c3: '材料炉号',
r8c4: item.center_data[0]?.material_heat_number,
r9c1: '检验员',
r9c2: item.inspector ? item.inspector : item.center_data[0]?.inspector,
r9c3: '采购单号',
r9c4: item.center_data[0]?.purchase_number,
r10c1: '检验日期',
r10c2: item.inspect_time ? item.inspect_time : item.center_data[0]?.inspect_time,
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
}