Browse Source

2025-12-15

过站采集-》车间工作平台-》异常续卷
master
fengyuan_yang 9 months ago
parent
commit
393f6d9025
  1. 193
      src/views/modules/yieldReport/com_abnormal_continue_roll.vue

193
src/views/modules/yieldReport/com_abnormal_continue_roll.vue

@ -137,7 +137,16 @@ import {
abnormalContinueRoll abnormalContinueRoll
} from '@/api/yieldReport/abnormalRoll.js'; } from '@/api/yieldReport/abnormalRoll.js';
import {
getPartLabelTemplateList,
callUspPartLabelTemplate
} from '@/api/wms/wms';
import getLodop from '@/utils/LodopFuncs.js';
import labelPrintTemplates from '@/mixins/labelPrintTemplates.js';
export default { export default {
mixins: [labelPrintTemplates],
data() { data() {
return { return {
titleCon: '异常续卷', titleCon: '异常续卷',
@ -147,6 +156,8 @@ export default {
seqNo: '', seqNo: '',
orderNo: '', orderNo: '',
itemNo: 0, itemNo: 0,
buNo: '',
partNo: '',
}, },
operatorData: { operatorData: {
site: this.$store.state.user.site, site: this.$store.state.user.site,
@ -272,8 +283,9 @@ export default {
}; };
}, },
// 续卷操作
continueRoll() {
// 续卷操作(类似产量报告,只有一卷)
async continueRoll() {
console.log(this.scheduleData)
// 校验数量必须大于等于原始数量 // 校验数量必须大于等于原始数量
for (let i = 0; i < this.rowDataList.length; i++) { for (let i = 0; i < this.rowDataList.length; i++) {
const currentRow = this.rowDataList[i]; const currentRow = this.rowDataList[i];
@ -306,22 +318,52 @@ export default {
} }
} }
// 构建提交数据
const submitData = {
processedBy: this.operatorData.operatorId || this.operatorData.username,
rowDataList: this.rowDataList.map(row => ({
id: row.id,
goodQty: row.goodQty,
defectQty: row.defectQty,
surfaceLossQty: row.surfaceLossQty,
poorPerformanceQty: row.poorPerformanceQty,
remark: row.remark || ''
}))
};
try {
// 计算总良品数(所有行良品数相加)
let totalRollQty = 0;
let rollRemark = '';
for (let i = 0; i < this.rowDataList.length; i++) {
totalRollQty += parseFloat(this.rowDataList[i].goodQty) || 0;
if (i === 0) {
rollRemark = this.rowDataList[i].remark || '';
}
}
// 构建提交数据
const submitData = {
site: this.scheduleData.site,
orderNo: this.scheduleData.orderNo,
itemNo: this.scheduleData.itemNo,
seqNo: this.scheduleData.seqNo,
batchRollNo: this.selectedRollNo.currentRollNo, // 主卷号
rollNo: this.selectedRollNo.newRollNo, // 分卷卷号
rollQty: totalRollQty, // 续卷数量
userid: this.operatorData.operatorId || this.operatorData.username,
remark: rollRemark,
// 用于更新缓存表的数据
processedBy: this.operatorData.operatorId || this.operatorData.username,
rowDataList: this.rowDataList.map(row => ({
id: row.id,
rowBumber: row.rowBumber,
goodQty: row.goodQty,
defectQty: row.defectQty,
surfaceLossQty: row.surfaceLossQty,
poorPerformanceQty: row.poorPerformanceQty,
totalQty: (parseFloat(row.goodQty) || 0) + (parseFloat(row.defectQty) || 0),
remark: row.remark || ''
}))
};
const { data } = await abnormalContinueRoll(submitData);
abnormalContinueRoll(submitData).then(({ data }) => {
if (data.code === 0) { if (data.code === 0) {
this.$message.success('续卷成功!'); this.$message.success('续卷成功!');
// 打印标签(和产量报告一样)
if (data.printList && data.printList.length > 0) {
await this.printLabelsWithTemplate(data.printList);
}
// 刷新数据 // 刷新数据
this.loadRollNoList(); this.loadRollNoList();
this.selectedRollNo = { currentRollNo: '', newRollNo: '' }; this.selectedRollNo = { currentRollNo: '', newRollNo: '' };
@ -332,9 +374,126 @@ export default {
} else { } else {
this.$message.error(data.msg || '续卷失败'); this.$message.error(data.msg || '续卷失败');
} }
}).catch(err => {
} catch (err) {
this.$message.error('续卷失败:' + (err.message || '未知错误')); this.$message.error('续卷失败:' + (err.message || '未知错误'));
});
}
},
/**
* 使用模板打印标签(和创建分卷一样)
* @param {Array} printList - 打印数据列表
*/
async printLabelsWithTemplate(printList) {
try {
// 1. 查询物料的标签模板设置(找默认模板)
const templateParams = {
site: this.scheduleData.site,
buNo: this.scheduleData.buNo,
partNo: this.scheduleData.partNo
};
const { data: templateData } = await getPartLabelTemplateList(templateParams);
if (!templateData || templateData.code !== 0 || !templateData.list || templateData.list.length === 0) {
console.warn('未找到物料标签模板配置!');
return;
}
// 找到默认模板(default_flag = '1')
let defaultTemplate = templateData.list.find(item => item.defaultFlag === '1');
if (!defaultTemplate && templateData.list.length > 0) {
defaultTemplate = templateData.list[0];
}
if (!defaultTemplate) {
console.warn('未找到有效的标签模板');
return;
}
const labelNo = defaultTemplate.labelNo;
// 2. 获取打印机(使用默认打印机)
const LODOP = getLodop();
if (!LODOP) {
this.$message.warning('无法连接到打印控件,跳过打印');
return;
}
const printerCount = LODOP.GET_PRINTER_COUNT();
if (printerCount === 0) {
this.$message.warning('未检测到打印机,跳过打印');
return;
}
const defaultPrinterName = LODOP.GET_PRINTER_NAME(0);
// 3. 调用存储过程获取打印参数
const printDataList = [];
for (let i = 0; i < printList.length; i++) {
const item = printList[i];
const params = {
site: this.scheduleData.site,
buNo: this.scheduleData.buNo,
menuID: '104003006',
relatedOrderNo: this.scheduleData.orderNo,
relatedOrderLineNo: this.scheduleData.seqNo,
documentNo: '',
partNo: this.scheduleData.partNo,
labelNo: labelNo,
rollNo: item.rollNo
};
const { data: printData } = await callUspPartLabelTemplate(params);
if (printData && printData.code === 0 && printData.row) {
printDataList.push({
...printData.row,
labelNo: labelNo
});
} else {
console.warn(`获取卷号 ${item.rollNo} 的打印参数失败,使用原始数据`);
printDataList.push({
...item,
labelNo: labelNo
});
}
}
// 4. 执行打印
this.executePrintWithTemplate(LODOP, printDataList, labelNo, defaultPrinterName);
this.$message.success('标签打印任务已发送!');
} catch (error) {
console.error('模板打印失败:', error);
this.$message.warning('模板打印失败');
}
},
/**
* 执行模板打印
*/
executePrintWithTemplate(LODOP, printDataList, labelNo, printerName) {
LODOP.PRINT_INIT('异常续卷标签打印');
LODOP.SET_PRINT_MODE("PRINT_NOCOLLATE", true);
LODOP.SET_PRINTER_INDEX(printerName);
for (let i = 0; i < printDataList.length; i++) {
const printData = printDataList[i];
const isNewPage = i > 0;
if (labelNo === 'A001') {
this.printLabelA001(LODOP, printData, isNewPage);
} else if (labelNo === 'A002') {
this.printLabelA002(LODOP, printData, isNewPage);
} else if (labelNo === 'A003') {
this.printLabelA003(LODOP, printData, isNewPage);
} else {
console.warn(`未知的标签模板:${labelNo},跳过该标签`);
}
}
LODOP.PREVIEW();
}, },
// 关闭对话框 // 关闭对话框

Loading…
Cancel
Save