5.8 KiB
5.8 KiB
指标查询系统 - 前后端集成指南
📌 概述
为了解决跨域问题,实现了一套完整的指标查询系统,包括:
- JSP 代理层 (
metrics-proxy.jsp) - 后端代理调用 C# API - 前端仪表盘 (
metrics-dashboard.html) - 可视化展示界面
📁 文件说明
1. metrics-proxy.jsp
位置: 项目根目录
作用: 作为中间层代理,调用 C# 后端的 MetricsController API
支持的操作:
getLabelRate- 获取交接单标签率getOrderAssessment- 获取订单考核指标getDailySummary- 获取每日汇总getDailySummaries- 获取日期范围汇总get24HCompletionRate- 获取24小时完成率getDailyCompletionRate- 获取每日完成率getBatchOrderMetrics- 批量获取订单指标 (POST)recalculateLabelRate- 重新计算标签率 (POST)
请求示例:
// GET 请求示例
fetch('metrics-proxy.jsp?action=getLabelRate&handoverNumber=HN001&env=test')
// POST 请求示例
fetch('metrics-proxy.jsp', {
method: 'POST',
body: JSON.stringify({
action: 'getBatchOrderMetrics',
waybills: ['LR001', 'LR002'],
env: 'test'
})
})
2. metrics-dashboard.html
位置: 项目根目录
作用: 前端可视化仪表盘,提供友好的用户界面
功能模块:
- 🏷️ 交接单标签率查询 - 输入交接单号查询标签率
- 📋 订单考核指标查询 - 输入中性面单号查询考核信息
- 📊 每日汇总统计 - 选择日期查询该天的完整统计
- 📈 日期范围统计 - 查询某个时间段的所有统计数据
- ⚡ 完成率统计 - 查询24小时完成率和每日完成率
🚀 使用步骤
步骤1: 部署 JSP 文件
- 将
metrics-proxy.jsp放在项目根目录或 Web 服务器的根目录 - 确保 Java 环境已配置(需要
org.json库)
步骤2: 配置依赖
如果使用 JSP,需要在 pom.xml 中添加依赖(如果使用 Maven):
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20230227</version>
</dependency>
步骤3: 集成到 batch_query.html
在 batch_query.html 的标签页中添加新的标签:
<li class="nav-item" role="presentation">
<button class="nav-link" id="metrics-tab" data-bs-toggle="tab" data-bs-target="#metrics" type="button" role="tab">📊 指标查询</button>
</li>
在内容区添加 iframe:
<div class="tab-pane fade" id="metrics" role="tabpanel">
<iframe src="metrics-dashboard.html" style="width:100%; height:800px; border:none; border-radius:8px;"></iframe>
</div>
步骤4: 打开仪表盘
在浏览器中访问:
http://your-domain/metrics-dashboard.html
🔧 环境配置
仪表盘支持三种环境:
- 本地环境: http://localhost:5002
- 测试环境: http://172.232.21.79:5002 (默认)
- 生产环境: https://lr.tooexp.com
在仪表盘中的"环境选择"下拉菜单切换环境。
📊 API 端点说明
1. 获取标签率
GET /metrics-proxy.jsp?action=getLabelRate&handoverNumber=HN001&env=test
响应:
{
"success": true,
"data": {
"handoverNumber": "HN001",
"totalOrderCount": 100,
"labeledOrderCount": 90,
"labelRate": 0.9,
"firstScanTime": "2026-05-17T10:30:00"
}
}
2. 获取订单评估
GET /metrics-proxy.jsp?action=getOrderAssessment&neutralWaybillNumber=LR001&env=test
响应:
{
"success": true,
"data": {
"neutralWaybillNumber": "LR001",
"labelRate": 0.85,
"assessmentTime": "2026-05-18T16:00:00",
"completedOnTime": true,
"handoverNumber": "HN001"
}
}
3. 获取每日汇总
GET /metrics-proxy.jsp?action=getDailySummary&date=2026-05-17&env=test
响应:
{
"success": true,
"data": {
"date": "2026-05-17",
"dailyNewReplaceCount": 150,
"dailySuccessCount": 145,
"dailyShouldReplaceCount": 150,
"dailyCompletionRate": "96.67%",
"dailyScanCount": 200,
"dailyStopCount": 25,
"dailyLabelPushCount": 160
}
}
🎯 关键特性
✅ 跨域处理 - 通过 JSP 代理层解决跨域问题 ✅ 多环境支持 - 支持本地、测试、生产环境切换 ✅ 实时查询 - 直接调用后端 API 获取最新数据 ✅ 友好界面 - 现代化的卡片式设计 ✅ 完整指标 - 覆盖所有业务指标 ✅ 错误处理 - 完善的错误提示和异常处理
🔍 排查问题
问题1: JSP 404 错误
原因: JSP 文件未正确部署 解决: 确保 metrics-proxy.jsp 在 Web 服务器的正确目录
问题2: 跨域仍然发生
原因: JSP 配置不完整 解决: 检查 JSP 中的 CORS 头设置是否正确
问题3: 无法调用 API
原因: 环境配置错误或后端服务未启动 解决: 检查环境选择,确保后端服务正在运行
问题4: 数据为空
原因: 查询的数据不存在或参数错误 解决: 确认参数正确,检查数据库是否有相应数据
📝 集成建议
- 性能优化:如果查询量大,可在 JSP 中添加缓存机制
- 权限控制:在 JSP 中添加身份验证逻辑
- 日志记录:记录所有代理请求以便调试
- 错误日志:添加更详细的错误日志记录
🔐 安全建议
- 输入验证:JSP 中已添加基本验证,但建议加强
- 速率限制:防止 DDoS 攻击,添加请求限流
- 授权检查:在生产环境中添加授权验证
- HTTPS 使用:生产环境必须使用 HTTPS
📞 技术支持
如有问题,请检查:
- 后端 MetricsController 是否正确部署
- Repository 实现层是否完成
- 数据库连接是否正常
- 日志文件中是否有错误信息
🎓 学习资源
- JSP 代理模式文档
- 跨域解决方案对比
- MetricsController API 文档
- 前端仪表盘使用指南