From 53b991242c39597af173f110de38f0fe33173255 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A0=82=E7=B3=96?= <2178503051@qq.com> Date: Wed, 3 Jun 2026 14:07:46 +0800 Subject: [PATCH] =?UTF-8?q?feat(mes/roll/report):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E7=A3=A8=E8=BE=8A=E4=BA=BA=E5=91=98=E7=BB=9F=E8=AE=A1=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=EF=BC=8C=E6=8C=89=E8=BE=8A=E5=9E=8B=E6=8B=86=E5=88=86?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 该提交重构了磨辊报表的操作人员统计模块,将原有的总统计拆分为中间辊(CR)、支撑辊(BR)、工作辊(WR)的分项统计,并增加了合计栏,同时完善了辊型识别逻辑,新增了对应的数据计算和表格展示。 --- klp-ui/src/views/mes/roll/report/index.vue | 80 ++++++++++++++++++---- 1 file changed, 67 insertions(+), 13 deletions(-) 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 @@ - - - - - + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -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() {