常熟吴彦祖 3 months ago
parent
commit
4f866407a9
  1. 57
      src/views/modules/production/generateReport.vue

57
src/views/modules/production/generateReport.vue

@ -908,17 +908,58 @@
}else {
this.saveHeaderData.moldQty=this.moQty
}
let boxWeightKG=0
if(this.saveHeaderData.boxWeight!=null&&this.saveHeaderData.boxWeight!=''){
boxWeightKG=this.saveHeaderData.boxWeight
// ========== 报工重量计算(传给后端 saveGenerateReportForSchedule)- rqrq ==========
// 页面上三个重量相关字段的关系:
// 带框合格重量(KG) → this.KGApprove = 合格数量 × 重量系数(qty3) + 框重
// 不合格/缺失重量(KG) → this.KGReported = 不合格数量 × 重量系数(qty3)
// 框重(KG) → saveHeaderData.boxWeight
//
// 传给后端的两个字段(存储过程 sfdc_schedule 使用):
// approveWeight = 合格净重(不含框)= KGApprove - 框重
// reportWeight = 报工总净重 = 合格净重 + 不合格净重
// = (KGApprove - 框重) + KGReported
//
// 注意:KGApprove/KGReported 平时靠输入框 @blur 反算,用户可能没点失焦就保存,
// 所以保存前若重量为空,要按数量 × 系数再算一遍,避免传错值。
// 第1步:取框重,没填按 0 算
let boxWeightKG = 0
if (this.saveHeaderData.boxWeight != null && this.saveHeaderData.boxWeight !== '') {
boxWeightKG = Number(this.saveHeaderData.boxWeight)
}
if(this.KGApprove!=null&&this.KGApprove!=''&&this.KGApprove>=0){
this.saveHeaderData.approveWeight=Number(this.KGApprove)-boxWeightKG
if(this.KGReported!=null&&this.KGReported!=''){
this.KGReported=0
// 第2步:有重量系数时才计算(qty3 来自 ERP weightFactor;未维护则传 0)
if (this.qty3 && this.qty3 != 0 && this.qty3 !== 'erp未维护数据') {
// 2.1 带框合格重量:优先用页面上已填的 KGApprove
let kgApprove = (this.KGApprove !== '' && this.KGApprove != null) ? Number(this.KGApprove) : NaN
if (isNaN(kgApprove)) {
// 页面上没填或没失焦时,用合格数量反算:合格数量 × 系数 + 框重
kgApprove = Number(this.saveHeaderData.qtyApprove || 0) * Number(this.qty3) + boxWeightKG
}
this.saveHeaderData.reportWeight=Number(this.KGApprove)-boxWeightKG+Number(this.KGReported)
// 2.2 不合格/缺失重量:优先用页面上已填的 KGReported
let kgReported = (this.KGReported !== '' && this.KGReported != null) ? Number(this.KGReported) : NaN
if (isNaN(kgReported)) {
// 页面上没填或没失焦时,用不合格数量反算:不合格数量 × 系数
kgReported = Number(this.saveHeaderData.qtyUnApprove || 0) * Number(this.qty3)
}
// 2.3 先各自 Number() 再运算,避免 + 碰到字符串变成拼接(如 50 + "5" = "505")
let kgApproveNum = Number(kgApprove)
let boxWeightNum = Number(boxWeightKG)
let kgReportedNum = Number(kgReported)
let approveNetWeight = kgApproveNum - boxWeightNum // 合格净重 = 带框合格 - 框重
let reportTotalWeight = approveNetWeight + kgReportedNum // 报工总净重 = 合格净重 + 不合格净重
// 2.4 保留1位小数后转回数字,传给后端 approveWeight / reportWeight
this.saveHeaderData.approveWeight = Number(approveNetWeight.toFixed(1))
this.saveHeaderData.reportWeight = Number(reportTotalWeight.toFixed(1))
} else {
// ERP 未维护重量系数,重量字段不参与报工
this.saveHeaderData.approveWeight = 0
this.saveHeaderData.reportWeight = 0
}
// ========== 报工重量计算结束 - rqrq ==========
if(this.saveHeaderData.scrapQty==null||this.saveHeaderData.scrapQty==''){
this.saveHeaderData.scrapQty=0
}

Loading…
Cancel
Save