济菏高速数据中心代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

166 lines
7.6 KiB

package com.zc.business.controller;
import com.ruoyi.common.core.domain.AjaxResult;
import com.zc.business.domain.*;
import com.zc.business.request.DcTrafficMetricsDataRequest;
import com.zc.business.request.DcTrafficSectionDataRequest;
import com.zc.business.service.IDcGantryStatisticsDataService;
import com.zc.business.service.IDcTollStationStatisticsDataService;
import com.zc.business.service.IDcTrafficSectionStatisticsService;
12 months ago
import com.zc.business.service.IDcTrafficStatisticsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 交通数据统计
*
* @author xiepufeng
*/
@Api(tags = "交通数据统计")
@RestController
@RequestMapping("/business/traffic-statistics")
public class DcTrafficStatisticsController {
@Autowired
private IDcTrafficSectionStatisticsService dcTrafficSectionStatisticsService;
@Autowired
12 months ago
private IDcTrafficStatisticsService dcTrafficStatisticsService;
@Autowired
private IDcTollStationStatisticsDataService dcTollStationStatisticsDataService;
@Autowired
private IDcGantryStatisticsDataService dcGantryStatisticsDataService;
/**
* 获取当前交通截面数据
*
* @param request 请求参数封装了对于交通截面数据查询的详细要求
* @return 返回一个AjaxResult对象其中包含了查询结果如果查询成功则结果中封装了当前交通截面的数据DcTrafficSectionData类型
*/
@ApiOperation("获取当前交通截面数据")
@GetMapping("/current/sections")
public AjaxResult currentSections(DcTrafficSectionDataRequest request){
// 调用服务层方法,查询当前交通截面数据
List<DcTrafficSectionData> dcTrafficMetricsData = dcTrafficSectionStatisticsService.currentSections(request);
// 将查询结果封装为AjaxResult对象返回
return AjaxResult.success(dcTrafficMetricsData);
}
/**
* 获取历史交通截面数据
*
* @param request 包含交通截面数据请求参数的对象
* @return 返回一个包含历史交通截面数据的AjaxResult对象
*/
@ApiOperation("获取历史交通截面数据")
@GetMapping("/history/sections")
public AjaxResult historySections(DcTrafficSectionDataRequest request){
// 调用服务层方法,获取历史交通截面的统计数据
List<DcTrafficSectionData> dcTrafficMetricsData = dcTrafficSectionStatisticsService.historySections(request);
// 将获取到的历史交通截面数据封装成AjaxResult对象并返回
return AjaxResult.success(dcTrafficMetricsData);
}
/**
* 获取当前交通特征指数
*
* @param request 请求参数封装了获取交通指标所需的数据和条件
* @return 返回当前交通特征指数的数据结果使用AjaxResult包装
*/
@ApiOperation("获取当前交通特征指数")
@GetMapping("/current/metrics")
public AjaxResult currentTrafficMetrics(DcTrafficMetricsDataRequest request){
// 调用服务层方法,获取当前交通指标数据
List<DcTrafficMetricsData> dcTrafficMetricsData = dcTrafficSectionStatisticsService.currentTrafficMetrics(request);
// 将获取到的交通指标数据封装为成功的结果并返回
return AjaxResult.success(dcTrafficMetricsData);
}
/**
* 获取历史交通特征指数
*
* @param request 请求参数包含需要查询的历史交通特征指数的详细信息
* @return 返回一个AjaxResult对象其中包含了查询结果的成功状态和历史交通特征指数数据列表
*/
@ApiOperation("获取历史交通特征指数")
@GetMapping("/history/metrics")
public AjaxResult historyTrafficMetrics(DcTrafficMetricsDataRequest request){
// 调用服务层方法,查询历史交通特征指数数据
List<DcTrafficMetricsData> dcTrafficMetricsDataList = dcTrafficSectionStatisticsService.historyTrafficMetrics(request);
// 将查询结果封装成成功响应并返回
return AjaxResult.success(dcTrafficMetricsDataList);
}
/**
* 获取当前拥堵路段
*
* @param direction 交通方向指定查询哪个方向的拥堵路段具体方向的定义根据实际业务而定
* @return 返回一个AjaxResult对象其中包含了查询结果如果查询成功则结果中封装了当前拥堵路段的数据列表
*/
@ApiOperation("获取当前拥堵路段")
@GetMapping("/current/congested")
public AjaxResult currentCongestedSection(Byte direction){
// 调用服务层方法,获取当前交通指标数据
List<DcCongestedSectionData> dcTrafficMetricsData = dcTrafficSectionStatisticsService.currentCongestedSection(direction);
// 将获取到的交通指标数据封装为成功的结果并返回
return AjaxResult.success(dcTrafficMetricsData);
}
/**
* 获取累计车流量
*
* 本方法用于根据特定条件查询历史车流量数据通过接收一个包含查询条件的请求对象
* 调用服务层方法进行数据查询并将查询结果封装成AjaxResult对象返回
*
* @param request 包含查询条件的请求对象用于获取特定条件下的历史车流量数据请求对象中可能包含了时间范围地点等查询条件
* @return 返回一个AjaxResult对象其中包含了查询到的历史车流量数据列表AjaxResult是本系统中用于封装响应数据的通用对象其中的success方法用于将查询结果封装为成功响应返回
*/
@ApiOperation("获取累计车流量")
@GetMapping("/history/flow")
public AjaxResult historyFlow(DcStatisticsData request){
// 调用服务层方法,根据请求条件查询历史车流量数据
List<DcStatisticsData> dcStatisticsData = dcTrafficStatisticsService.historyFlow(request);
// 将查询结果封装为成功响应并返回
return AjaxResult.success(dcStatisticsData);
}
/**
* 获取收费站统计数据
*
* @param request 包含查询条件的请求对象用于筛选历史收费站统计数据
* @return 返回一个AjaxResult对象其中包含了查询到的收费站统计数据列表
*/
@ApiOperation("获取收费站统计数据")
@GetMapping("/history/toll-station")
public AjaxResult historyTollStation(DcTollStationStatisticsData request){
// 调用服务层方法,根据请求条件查询历史车收费站数据
List<DcTollStationStatisticsData> dcStatisticsData = dcTollStationStatisticsDataService.tollStationData(request);
// 将查询结果封装为成功响应并返回
return AjaxResult.success(dcStatisticsData);
}
/**
* 获取门架统计数据
*
* @param request 包含查询条件的请求对象用于筛选历史门架统计数据
* @return 返回一个AjaxResult对象其中包含了查询到的门架统计数据列表
*/
@ApiOperation("获取门架统计数据")
@GetMapping("/history/gantry")
public AjaxResult historyTollStation(DcGantryStatisticsData request){
// 调用服务层方法,根据请求条件查询历史车门架数据
List<DcGantryStatisticsData> dcStatisticsData = dcGantryStatisticsDataService.gantryData(request);
// 将查询结果封装为成功响应并返回
return AjaxResult.success(dcStatisticsData);
}
}