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; 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 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 dcTrafficMetricsData = dcTrafficSectionStatisticsService.currentSections(request); // 将查询结果封装为AjaxResult对象返回 return AjaxResult.success(dcTrafficMetricsData); } /** * 获取历史交通截面数据 * * @param request 包含交通截面数据请求参数的对象 * @return 返回一个包含历史交通截面数据的AjaxResult对象 */ @ApiOperation("获取历史交通截面数据") @GetMapping("/history/sections") public AjaxResult historySections(DcTrafficSectionDataRequest request){ // 调用服务层方法,获取历史交通截面的统计数据 List dcTrafficMetricsData = dcTrafficSectionStatisticsService.historySections(request); // 将获取到的历史交通截面数据封装成AjaxResult对象并返回 return AjaxResult.success(dcTrafficMetricsData); } /** * 获取当前交通特征指数 * * @param request 请求参数,封装了获取交通指标所需的数据和条件 * @return 返回当前交通特征指数的数据结果,使用AjaxResult包装 */ @ApiOperation("获取当前交通特征指数") @GetMapping("/current/metrics") public AjaxResult currentTrafficMetrics(DcTrafficMetricsDataRequest request){ // 调用服务层方法,获取当前交通指标数据 List dcTrafficMetricsData = dcTrafficSectionStatisticsService.currentTrafficMetrics(request); // 将获取到的交通指标数据封装为成功的结果并返回 return AjaxResult.success(dcTrafficMetricsData); } /** * 获取历史交通特征指数 * * @param request 请求参数,包含需要查询的历史交通特征指数的详细信息 * @return 返回一个AjaxResult对象,其中包含了查询结果的成功状态和历史交通特征指数数据列表 */ @ApiOperation("获取历史交通特征指数") @GetMapping("/history/metrics") public AjaxResult historyTrafficMetrics(DcTrafficMetricsDataRequest request){ // 调用服务层方法,查询历史交通特征指数数据 List dcTrafficMetricsDataList = dcTrafficSectionStatisticsService.historyTrafficMetrics(request); // 将查询结果封装成成功响应并返回 return AjaxResult.success(dcTrafficMetricsDataList); } /** * 获取当前拥堵路段 * * @param direction 交通方向,指定查询哪个方向的拥堵路段。具体方向的定义根据实际业务而定。 * @return 返回一个AjaxResult对象,其中包含了查询结果。如果查询成功,则结果中封装了当前拥堵路段的数据列表。 */ @ApiOperation("获取当前拥堵路段") @GetMapping("/current/congested") public AjaxResult currentCongestedSection(Byte direction){ // 调用服务层方法,获取当前交通指标数据 List 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 = dcTrafficStatisticsService.historyFlow(request); // 将查询结果封装为成功响应并返回 return AjaxResult.success(dcStatisticsData); } /** * 获取收费站统计数据 * * @param request 包含查询条件的请求对象,用于筛选历史收费站统计数据 * @return 返回一个AjaxResult对象,其中包含了查询到的收费站统计数据列表 */ @ApiOperation("获取收费站统计数据") @GetMapping("/history/toll-station") public AjaxResult historyTollStation(DcTollStationStatisticsData request){ // 调用服务层方法,根据请求条件查询历史车收费站数据 List dcStatisticsData = dcTollStationStatisticsDataService.tollStationData(request); // 将查询结果封装为成功响应并返回 return AjaxResult.success(dcStatisticsData); } /** * 获取门架统计数据 * * @param request 包含查询条件的请求对象,用于筛选历史门架统计数据 * @return 返回一个AjaxResult对象,其中包含了查询到的门架统计数据列表 */ @ApiOperation("获取门架统计数据") @GetMapping("/history/gantry") public AjaxResult historyTollStation(DcGantryStatisticsData request){ // 调用服务层方法,根据请求条件查询历史车门架数据 List dcStatisticsData = dcGantryStatisticsDataService.gantryData(request); // 将查询结果封装为成功响应并返回 return AjaxResult.success(dcStatisticsData); } }