package cn.cecep.talroad.controller;

import cn.cecep.talroad.common.core.utils.poi.ExcelUtil;
import cn.cecep.talroad.common.core.web.domain.AjaxResults;
import cn.cecep.talroad.common.log.annotation.Log;
import cn.cecep.talroad.common.log.enums.BusinessType;
import cn.cecep.talroad.service.HomePageMapService;
import cn.cecep.talroad.service.IAmVideoDevFiService;
import cn.cecep.talroad.vo.EChartsVO;
import cn.cecep.talroad.vo.homepage.*;
import cn.cecep.talroad.vo.query.EffectiveMonitoringRateQuery;
import cn.cecep.talroad.vo.query.analysis.MonitoringPointWarningDetailsQuery;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

@Api(tags = "大屏--视频监控分析")
@RestController
@RequestMapping("/videoSurveillanceAnalytics")
public class VideoSurveillanceAnalyticsController {
    @Autowired
    private IAmVideoDevFiService amVideoDevFiService;

    @ApiOperation(value = "视频与门禁监控总览")
    @GetMapping("/overviewVideoMonitors")
    public AjaxResults<OverviewVideoMonitorsVo> overviewVideoMonitors() {
        return AjaxResults.success(amVideoDevFiService.overviewVideoMonitors());
    }
    @ApiOperation(value = "车辆进出类型占比")
    @GetMapping("/proportionExitTypes")
    public AjaxResults<EChartsVO> proportionExitTypes(EffectiveMonitoringRateQuery query) {
        return AjaxResults.success(amVideoDevFiService.proportionExitTypes(query));
    }
    @ApiOperation(value = "车辆排放类型趋势")
    @GetMapping("/trendsVehicleEmissionTypes")
    public AjaxResults<EChartsVO> trendsVehicleEmissionTypes(EffectiveMonitoringRateQuery query) {
        return AjaxResults.success(amVideoDevFiService.trendsVehicleEmissionTypes(query));
    }
    @ApiOperation(value = "AI监控问题视频")
    @GetMapping("/videoMonitoringIssues")
    public AjaxResults<List<VideoMonitoringIssuesVo>> videoMonitoringIssues() {
        return AjaxResults.success(amVideoDevFiService.videoMonitoringIssues());
    }
    @ApiOperation(value = "其他企业监控视频")
    @GetMapping("/otherEnterpriseMonitoringVideos")
    public AjaxResults<List<VideoMonitoringIssuesVo>> otherEnterpriseMonitoringVideos() {
        return AjaxResults.success(amVideoDevFiService.otherEnterpriseMonitoringVideos());
    }

}
