Files
LabelChange-server/.trae/documents/metrics_quick_start.md
2026-06-01 16:30:29 +08:00

4.7 KiB
Raw Permalink Blame History

指标查询系统 - 快速开始指南

📋 快速检查清单

  • 已将 metrics-proxy.jsp 部署到 Web 服务器根目录
  • 已将 metrics-dashboard.html 放在项目根目录
  • Java 环境已配置 org.json 库
  • C# MetricsController 已部署并运行
  • Repository 实现层已完成
  • 数据库连接正常

🎬 三步开启仪表盘

第1步访问仪表盘

在浏览器中打开:

http://localhost:8080/metrics-dashboard.html

第2步选择环境

在页面顶部选择环境:

第3步执行查询

根据需要选择查询类型,输入参数,点击查询按钮。

🔗 集成到 batch_query.html

在现有的导航标签中添加新标签页:

<!-- 在标签页列表中添加 -->
<li class="nav-item" role="presentation">
    <button class="nav-link" id="metrics-tab" data-bs-toggle="tab" data-bs-target="#metrics-view" type="button" role="tab">📊 指标查询</button>
</li>

<!-- 在标签内容中添加 -->
<div class="tab-pane fade" id="metrics-view" role="tabpanel">
    <iframe src="metrics-dashboard.html" 
            style="width:100%; height:1200px; border:1px solid #e2e8f0; border-radius:8px; margin-top:16px;"></iframe>
</div>

📱 功能速查表

功能 参数 说明
查询标签率 交接单号 获取指定交接单的标签率、订单数等
查询订单指标 中性面单号 获取订单的考核时间、完成状态等
查询每日汇总 日期 获取指定日期的所有统计指标
查询日期范围 开始日期、结束日期 获取日期范围内的每日统计
查询完成率 日期 获取24小时或每日完成率

🛠️ 常用命令

测试 JSP 是否正常

# 在命令行中测试
curl "http://localhost:8080/metrics-proxy.jsp?action=getLabelRate&handoverNumber=HN001&env=test"

测试后端 API 是否正常

# 测试标签率 API
curl "http://172.232.21.79:5002/api/metrics/label-rate?handoverNumber=HN001"

查看日志

# JSP 错误日志通常在:
$CATALINA_HOME/logs/catalina.out

# C# 应用日志位置:
/src/CONTROLLER/logs/

📊 示例数据流

前端 (metrics-dashboard.html)
  ↓ 发送查询请求
JSP 代理 (metrics-proxy.jsp)
  ↓ 调用后端 API
后端控制器 (MetricsController)
  ↓ 调用服务层
业务逻辑 (MetricsCalculationService)
  ↓ 调用数据层
数据库 (MySQL)
  ↑ 返回结果
业务逻辑
  ↑ 计算指标
后端控制器
  ↑ 返回 JSON
JSP 代理
  ↑ 返回响应
前端
  ↑ 渲染结果

⚠️ 常见错误及解决

Error: metrics-proxy.jsp not found

解决: 检查 JSP 文件是否在 Web 服务器根目录
确保服务器支持 JSP

Error: org.json not found

解决: 添加依赖
<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20230227</version>
</dependency>

Error: Cannot connect to API

解决: 
1. 检查环境选择是否正确
2. 确保后端服务正在运行
3. 检查防火墙设置
4. 查看浏览器控制台的网络请求

Error: No data returned

解决:
1. 检查输入参数是否正确
2. 确认数据库中存在相应数据
3. 查看后端日志
4. 检查数据库连接

🎯 性能优化建议

1. 添加缓存

在 JSP 中添加缓存机制,减少数据库查询:

// 缓存 5 分钟
Cache.put("labelRate_" + handoverNumber, result, 300);

2. 批量查询

使用批量查询接口而不是单个查询:

// 不推荐
for (let i = 0; i < 100; i++) {
    queryLabelRate(waybills[i]);
}

// 推荐
queryBatchMetrics(waybills);

3. 异步加载

在仪表盘中使用异步加载提高响应速度:

Promise.all([
    queryLabelRate(...),
    queryDailySummary(...),
    query24HRate(...)
]).then(results => {
    // 并行加载,更快显示
});

🔐 安全检查清单

  • JSP 中已验证所有输入参数
  • 后端 API 已实现权限检查
  • 生产环境使用 HTTPS
  • 已设置请求频率限制
  • 已添加访问日志记录
  • 敏感数据已加密

📚 相关文档

🆘 获取帮助

  1. 检查 完整集成指南
  2. 查看后端日志文件
  3. 确认 Repository 实现是否完成
  4. 测试 API 端点是否正常工作

最后更新: 2026-05-17 版本: 1.0