feat(ops): 新增轨迹统计接口 summary/hourly-trend/area-stay-stats
- summary: KPI 卡片(作业时长、覆盖区域数、事件数、平均停留) - hourly-trend: 按小时聚合出入趋势 - area-stay-stats: 区域停留分布(含 fullAreaName,按时长降序) - deviceId 可选,不传则汇总全部设备 - selectByDateAndDevice 加 LIMIT 5000 安全上限 - 删除无调用方的 selectTimeline 方法 - enrichWithAreaInfo 改用 buildPaths 批量构建路径 Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -126,10 +126,24 @@ public class TrajectoryController {
|
||||
}
|
||||
|
||||
@GetMapping("/summary")
|
||||
@Operation(summary = "获得设备某天的轨迹统计摘要")
|
||||
@Operation(summary = "获得轨迹统计摘要(KPI 卡片)")
|
||||
@PreAuthorize("@ss.hasPermission('ops:trajectory:query')")
|
||||
public CommonResult<TrajectorySummaryDTO> getSummary(@Valid TrajectoryTimelineReqDTO req) {
|
||||
return success(trajectoryService.getSummary(req.getDeviceId(), req.getDate()));
|
||||
public CommonResult<TrajectorySummaryDTO> getSummary(@Valid TrajectoryStatsReqDTO req) {
|
||||
return success(trajectoryService.getSummary(req));
|
||||
}
|
||||
|
||||
@GetMapping("/hourly-trend")
|
||||
@Operation(summary = "获得时段出入趋势(按小时聚合)")
|
||||
@PreAuthorize("@ss.hasPermission('ops:trajectory:query')")
|
||||
public CommonResult<List<HourlyTrendDTO>> getHourlyTrend(@Valid TrajectoryStatsReqDTO req) {
|
||||
return success(trajectoryService.getHourlyTrend(req));
|
||||
}
|
||||
|
||||
@GetMapping("/area-stay-stats")
|
||||
@Operation(summary = "获得区域停留分布")
|
||||
@PreAuthorize("@ss.hasPermission('ops:trajectory:query')")
|
||||
public CommonResult<List<AreaStayStatsDTO>> getAreaStayStats(@Valid TrajectoryStatsReqDTO req) {
|
||||
return success(trajectoryService.getAreaStayStats(req));
|
||||
}
|
||||
|
||||
// ==================== 实时位置 ====================
|
||||
|
||||
Reference in New Issue
Block a user