diff --git a/klp-ui/src/views/mes/roll/report/index.vue b/klp-ui/src/views/mes/roll/report/index.vue
index e677f263..6cf730ff 100644
--- a/klp-ui/src/views/mes/roll/report/index.vue
+++ b/klp-ui/src/views/mes/roll/report/index.vue
@@ -81,14 +81,43 @@
-
-
-
-
- {{ row.totalGrindAmount.toFixed(2) }}
+
+
+
+
+
+ {{ row.crTotalGrindAmount.toFixed(2) }}
+
+
+ {{ row.crAvgGrindAmount.toFixed(2) }}
+
-
- {{ row.avgGrindAmount.toFixed(2) }}
+
+
+
+ {{ row.brTotalGrindAmount.toFixed(2) }}
+
+
+ {{ row.brAvgGrindAmount.toFixed(2) }}
+
+
+
+
+
+ {{ row.wrTotalGrindAmount.toFixed(2) }}
+
+
+ {{ row.wrAvgGrindAmount.toFixed(2) }}
+
+
+
+
+
+ {{ row.totalGrindAmount.toFixed(2) }}
+
+
+ {{ row.avgGrindAmount.toFixed(2) }}
+
@@ -175,7 +204,7 @@ export default {
this.computeSummary(allRecords, rollMap)
this.computeDailyTrend(allRecords)
this.computeRollTypeDist(allRecords, rollMap)
- this.computeOperatorStats(allRecords)
+ this.computeOperatorStats(allRecords, rollMap)
this.updateCharts()
} catch (e) {
console.error('加载报表数据失败', e)
@@ -214,25 +243,50 @@ export default {
const typeMap = {}
records.forEach(r => {
const roll = rollMap[r.rollId]
- const type = roll ? (roll.rollType === 'WR' ? '工作辊' : roll.rollType === 'BR' ? '支撑辊' : roll.rollType || '未知') : '未知'
+ const type = roll ? (roll.rollType === 'WR' ? '工作辊' : roll.rollType === 'BR' ? '支撑辊' : roll.rollType === 'CR' ? '中间辊' : roll.rollType || '未知') : '未知'
if (!typeMap[type]) typeMap[type] = { name: type, value: 0, grindCount: 0 }
typeMap[type].value += Number(r.grindAmount || 0)
typeMap[type].grindCount++
})
this.rollTypeDist = Object.values(typeMap)
},
- computeOperatorStats(records) {
+ computeOperatorStats(records, rollMap) {
const opMap = {}
records.forEach(r => {
const name = r.operator || '未知'
- if (!opMap[name]) opMap[name] = { operator: name, grindCount: 0, totalGrindAmount: 0 }
+ if (!opMap[name]) opMap[name] = {
+ operator: name,
+ grindCount: 0, totalGrindAmount: 0,
+ crGrindCount: 0, crTotalGrindAmount: 0,
+ brGrindCount: 0, brTotalGrindAmount: 0,
+ wrGrindCount: 0, wrTotalGrindAmount: 0
+ }
opMap[name].grindCount++
opMap[name].totalGrindAmount += Number(r.grindAmount || 0)
+ const roll = rollMap[r.rollId]
+ const rollType = roll ? (roll.rollType || '') : ''
+ const amount = Number(r.grindAmount || 0)
+ if (rollType === 'CR') {
+ opMap[name].crGrindCount++
+ opMap[name].crTotalGrindAmount += amount
+ } else if (rollType === 'BR') {
+ opMap[name].brGrindCount++
+ opMap[name].brTotalGrindAmount += amount
+ } else if (rollType === 'WR') {
+ opMap[name].wrGrindCount++
+ opMap[name].wrTotalGrindAmount += amount
+ }
})
this.operatorStats = Object.values(opMap).map(item => ({
...item,
totalGrindAmount: Number(item.totalGrindAmount.toFixed(2)),
- avgGrindAmount: item.grindCount > 0 ? Number((item.totalGrindAmount / item.grindCount).toFixed(2)) : 0
+ avgGrindAmount: item.grindCount > 0 ? Number((item.totalGrindAmount / item.grindCount).toFixed(2)) : 0,
+ crTotalGrindAmount: Number(item.crTotalGrindAmount.toFixed(2)),
+ crAvgGrindAmount: item.crGrindCount > 0 ? Number((item.crTotalGrindAmount / item.crGrindCount).toFixed(2)) : 0,
+ brTotalGrindAmount: Number(item.brTotalGrindAmount.toFixed(2)),
+ brAvgGrindAmount: item.brGrindCount > 0 ? Number((item.brTotalGrindAmount / item.brGrindCount).toFixed(2)) : 0,
+ wrTotalGrindAmount: Number(item.wrTotalGrindAmount.toFixed(2)),
+ wrAvgGrindAmount: item.wrGrindCount > 0 ? Number((item.wrTotalGrindAmount / item.wrGrindCount).toFixed(2)) : 0
})).sort((a, b) => b.totalGrindAmount - a.totalGrindAmount)
},
initCharts() {
@@ -272,7 +326,7 @@ export default {
data: [],
emphasis: { itemStyle: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0,0,0,0.5)' } }
}],
- color: ['#409eff', '#e6a23c', '#909399']
+ color: ['#409eff', '#e6a23c', '#67c23a', '#909399']
})
},
updateCharts() {