From 6f9db961b4cd122b083f3cc078cbb1c8d417fd1c Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Wed, 1 Jul 2026 16:24:45 +0800 Subject: [PATCH] =?UTF-8?q?feat(monitor):=20=E6=B7=BB=E5=8A=A0=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E6=97=A5=E5=BF=97=E7=BB=A9=E6=95=88=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E6=9D=83=E9=87=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在SysOperLogService中新增绩效概览、人员绩效和模块排行接口 - 在SysOperLogMapper中添加模块统计、人员统计和全局概览查询方法 - 在SysOperLogMapper.xml中实现绩效相关的SQL查询和ResultMap - 在SysOperLogServiceImpl中实现绩效统计业务逻辑和评分算法 - 创建OperModuleStatVO、OperPersonVO和OperSummaryVO数据传输对象 - 新增OperPerformanceController提供绩效统计API接口 - 添加前端performance页面实现数据可视化展示和图表渲染 --- .../klp/system/service/impl/SysOperLogServiceImpl.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/klp-system/src/main/java/com/klp/system/service/impl/SysOperLogServiceImpl.java b/klp-system/src/main/java/com/klp/system/service/impl/SysOperLogServiceImpl.java index 00aa7e7fb..9a5a36d30 100644 --- a/klp-system/src/main/java/com/klp/system/service/impl/SysOperLogServiceImpl.java +++ b/klp-system/src/main/java/com/klp/system/service/impl/SysOperLogServiceImpl.java @@ -183,10 +183,10 @@ public class SysOperLogServiceImpl implements ISysOperLogService { List details = moduleMap.getOrDefault(name, Collections.emptyList()); person.setModuleStats(details); - // 计算综合评分: 次数×40% + 成功率×30% + 模块覆盖度×30% - double countScore = (person.getTotalCount() != null ? person.getTotalCount() : 0) * 1.0 / maxTotalCount * 40; - double successScore = (person.getSuccessRate() != null ? person.getSuccessRate() : 0) / 100.0 * 30; - double moduleScore = (maxModuleCount > 0 ? details.size() * 1.0 / maxModuleCount : 0) * 30; + // 计算综合评分: 次数×50% + 成功率×40% + 模块覆盖度×10% + double countScore = (person.getTotalCount() != null ? person.getTotalCount() : 0) * 1.0 / maxTotalCount * 50; + double successScore = (person.getSuccessRate() != null ? person.getSuccessRate() : 0) / 100.0 * 40; + double moduleScore = (maxModuleCount > 0 ? details.size() * 1.0 / maxModuleCount : 0) * 10; double score = Math.round((countScore + successScore + moduleScore) * 100.0) / 100.0; person.setScore(score); }