fix(wms报表): 修正异常率计算逻辑并统一百分比格式

- 在异常率计算中增加质量状态判断条件
- 将分母从totalCount改为outCount以匹配业务需求
- 统一异常率和正品率的百分比格式输出
This commit is contained in:
砂糖
2026-03-31 18:54:56 +08:00
parent 0223102269
commit 800cf0c8d1

View File

@@ -26,9 +26,16 @@ const calcSummary = (list, lossList) => {
// '2019583325311414274', // '2019583325311414274',
// '2019583429955104769', // '2019583429955104769',
// '2019583137616310273',这四个库中的占比 // '2019583137616310273',这四个库中的占比
const abStatus = ['O', 'C-', 'C+', 'C', 'D-', 'D+', 'D']
const abRate = totalCount != 0 ? list.filter(item => { const abRate = totalCount != 0 ? list.filter(item => {
return item.warehouseId == '2019583656787259393' || item.warehouseId == '2019583325311414274' || item.warehouseId == '2019583429955104769' || item.warehouseId == '2019583137616310273' // 质量状态为O, C- , C+, C, D-, D+, D的钢卷也属于异常
}).length / totalCount : 0 return (item.warehouseId == '2019583656787259393'
|| item.warehouseId == '2019583325311414274'
|| item.warehouseId == '2019583429955104769'
|| item.warehouseId == '2019583137616310273'
|| abStatus.includes(item.qualityStatus)
)
}).length / outCount : 0
// 正品率1-异常率) // 正品率1-异常率)
const passRate2 = totalCount != 0 ? (1 - abRate) : 0 const passRate2 = totalCount != 0 ? (1 - abRate) : 0
@@ -48,8 +55,8 @@ const calcSummary = (list, lossList) => {
avgWeightDiff, avgWeightDiff,
passRate: (passRate * 100)?.toFixed(2) + '%', passRate: (passRate * 100)?.toFixed(2) + '%',
lossRate: (lossRate * 100)?.toFixed(2) + '%', lossRate: (lossRate * 100)?.toFixed(2) + '%',
abRate: (abRate * 100)?.toFixed(2) || 0, abRate: (abRate * 100)?.toFixed(2) + '%' || 0,
passRate2: (passRate2 * 100)?.toFixed(2) || 0, passRate2: (passRate2 * 100)?.toFixed(2) + '%' || 0,
} }
} }
@@ -187,9 +194,14 @@ const calcMSummary = (list, lossList) => {
// '2019583325311414274', // '2019583325311414274',
// '2019583429955104769', // '2019583429955104769',
// '2019583137616310273',这四个库中的占比 // '2019583137616310273',这四个库中的占比
const abRate = totalCount != 0 ? nonMCoils.filter(item => { const abStatus = ['O', 'C-', 'C+', 'C', 'D-', 'D+', 'D']
return item.warehouseId == '2019583656787259393' || item.warehouseId == '2019583325311414274' || item.warehouseId == '2019583429955104769' || item.warehouseId == '2019583137616310273' const abRate = totalCount != 0 ? nonMCoils.filter(item => {// 质量状态为O, C- , C+, C, D-, D+, D的钢卷也属于异常
}).length / totalCount : 0 return (item.warehouseId == '2019583656787259393'
|| item.warehouseId == '2019583325311414274'
|| item.warehouseId == '2019583429955104769'
|| item.warehouseId == '2019583137616310273'
|| abStatus.includes(item.qualityStatus))
}).length / outCount : 0
// 正品率1-异常率) // 正品率1-异常率)
const passRate2 = totalCount != 0 ? (1 - abRate) : 0 const passRate2 = totalCount != 0 ? (1 - abRate) : 0
@@ -209,8 +221,8 @@ const calcMSummary = (list, lossList) => {
avgWeightDiff, avgWeightDiff,
passRate: (passRate * 100)?.toFixed(2) + '%', passRate: (passRate * 100)?.toFixed(2) + '%',
lossRate: (lossRate * 100)?.toFixed(2) + '%', lossRate: (lossRate * 100)?.toFixed(2) + '%',
abRate: (abRate * 100)?.toFixed(2) || 0, abRate: (abRate * 100)?.toFixed(2) + '%' || 0,
passRate2: (passRate2 * 100)?.toFixed(2) || 0, passRate2: (passRate2 * 100)?.toFixed(2) + '%' || 0,
} }
} }