|
|
@ -908,17 +908,58 @@ |
|
|
}else { |
|
|
}else { |
|
|
this.saveHeaderData.moldQty=this.moQty |
|
|
this.saveHeaderData.moldQty=this.moQty |
|
|
} |
|
|
} |
|
|
|
|
|
// ========== 报工重量计算(传给后端 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 |
|
|
let boxWeightKG = 0 |
|
|
if(this.saveHeaderData.boxWeight!=null&&this.saveHeaderData.boxWeight!=''){ |
|
|
|
|
|
boxWeightKG=this.saveHeaderData.boxWeight |
|
|
|
|
|
|
|
|
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==''){ |
|
|
if(this.saveHeaderData.scrapQty==null||this.saveHeaderData.scrapQty==''){ |
|
|
this.saveHeaderData.scrapQty=0 |
|
|
this.saveHeaderData.scrapQty=0 |
|
|
} |
|
|
} |
|
|
|