baizonghao
2023-03-14 bd8147d7890bf60d88e4007c1af726ba5f364cf5
ycl-platform/src/main/java/com/ycl/controller/cockpit/aiIot/AIIotController.java
@@ -1,11 +1,21 @@
package com.ycl.controller.cockpit.aiIot;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ycl.api.CommonResult;
import com.ycl.entity.video.VideoPoint;
import com.ycl.service.carManage.ICarSlagcarService;
import com.ycl.service.equipment.IHandheldTerminalService;
import com.ycl.service.equipment.ILoudspeakerService;
import com.ycl.service.video.impl.IVideoPointService;
import com.ycl.util.CheckApiUtil;
import com.ycl.util.VideoUtil;
import com.ycl.vo.cockpit.CockpitVO;
import com.ycl.vo.cockpit.aiIot.AIIotVO;
import com.ycl.vo.cockpit.aiIot.EfficiencyVO;
import com.ycl.vo.cockpit.aiIot.VideoVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -16,6 +26,7 @@
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
 * @author Lyq
@@ -30,48 +41,63 @@
    @Resource
    private CheckApiUtil checkApiUtil;
    @Autowired
    private IVideoPointService iVideoPointService;
    @Autowired
    private VideoUtil videoUtil;
    @Autowired
    IHandheldTerminalService iHandheldTerminalService;
    @Autowired
    ILoudspeakerService loudspeakerService;
    @Autowired
    ICarSlagcarService iCarSlagcarService;
    @ApiOperation(value = "监测数据")
    @GetMapping("/detection")
    public CommonResult<AIIotVO.DetectionVO> detection(@Validated CockpitVO.Params1VO params) {
        checkApiUtil.cockpit(params.getAppId(), params.getAppKey(), params.getSign(), null, null);
    public CommonResult<AIIotVO.DetectionVO> detection(@Validated CockpitVO params) {
        checkApiUtil.cockpit(params);
        AIIotVO.DetectionVO detectionVO = new AIIotVO.DetectionVO();
        detectionVO.setVideo(121);
        detectionVO.setIndividual(20);
        detectionVO.setLampblack(154);
        detectionVO.setLoudspeaker(30);
        detectionVO.setSlagCar(33);
        detectionVO.setVideo(iVideoPointService.count());
        detectionVO.setIndividual(iHandheldTerminalService.count());
        detectionVO.setLampblack(154L);
        /// TODO: 2022/12/13 缺少油烟机监控表
        detectionVO.setLoudspeaker(loudspeakerService.count());
        detectionVO.setSlagCar(iCarSlagcarService.count());
        return CommonResult.success(detectionVO);
    }
    @ApiOperation(value = "实时视频监控")
    @GetMapping("/video")
    public CommonResult<List<AIIotVO.VideoVO>> video(@Validated CockpitVO.Params1VO params) {
        checkApiUtil.cockpit(params.getAppId(), params.getAppKey(), params.getSign(), null, null);
        List<AIIotVO.VideoVO> videoVOS = new ArrayList<>();
        AIIotVO.VideoVO a = null;
        for (int i = 0; i < 4; i++) {
            a = new AIIotVO.VideoVO();
            a.setLongitude("32.11");
            a.setLatitude("106.111");
            a.setName("设备一");
            a.setResourceId("012");
            a.setBrand("大华");
            a.setModel("球机");
            a.setIp("10.23.14.2");
            a.setUrl("http://10.23.14.2:12001");
            videoVOS.add(a);
        }
        return CommonResult.success(videoVOS);
    public CommonResult video(@Validated CockpitVO params) {
        checkApiUtil.cockpit(params);
        /// TODO: 2022/12/13  视频点位设备为空 没数据
        List<VideoPoint> list = iVideoPointService.list(new LambdaQueryWrapper<VideoPoint>()
                .eq(params.getStreetId() != null, VideoPoint::getStreetId, params.getStreetId())
                .isNotNull(VideoPoint::getPlatResourceId));
        List<VideoVO> vos = list.stream().map(item -> {
            VideoVO videoVO = new VideoVO();
            videoVO.setName(item.getName());
            videoVO.setBrand(item.getEquipmentBrand());
            videoVO.setModel(item.getEquipmentModel());
            videoVO.setIp(item.getEquipmentIp());
            videoVO.setLatitude(item.getLatitude() != null ? item.getLatitude().toString() : "");
            videoVO.setLongitude(item.getLongitude() != null ? item.getLongitude().toString() : "");
            videoVO.setResourceId(item.getPlatResourceId());
            return videoVO;
        }).collect(Collectors.toList());
        return CommonResult.success(vos);
    }
    @ApiOperation(value = "AI算法效能")
    @GetMapping("/efficiency")
    public CommonResult<List<AIIotVO.EfficiencyVO>> efficiency(@Validated CockpitVO.Params2VO params) {
        checkApiUtil.cockpit(params.getAppId(), params.getAppKey(), params.getSign(), params.getBeginTime(), params.getEndTime());
        List<AIIotVO.EfficiencyVO> efficiencyVOS = new ArrayList<>();
        AIIotVO.EfficiencyVO a = null;
    public CommonResult efficiency(@Validated CockpitVO params) {
        checkApiUtil.cockpit(params);
        List<EfficiencyVO> efficiencyVOS = new ArrayList<>();
        for (int i = 0; i < 4; i++) {
            a = new AIIotVO.EfficiencyVO();
            EfficiencyVO a = new EfficiencyVO();
            a.setType("道路破损");
            a.setCount(12);
            a.setRatio(new BigDecimal("0.63").setScale(2, RoundingMode.HALF_UP));
@@ -82,8 +108,8 @@
    @ApiOperation(value = "渣土联动")
    @GetMapping("/slag_car")
    public CommonResult<AIIotVO.SlagCarVO> slagCar(@Validated CockpitVO.Params1VO params) {
        checkApiUtil.cockpit(params.getAppId(), params.getAppKey(), params.getSign(), null, null);
    public CommonResult<AIIotVO.SlagCarVO> slagCar(@Validated CockpitVO params) {
        checkApiUtil.cockpit(params);
        AIIotVO.SlagCarVO slagCarVO = new AIIotVO.SlagCarVO();
        slagCarVO.setCar(236);
        slagCarVO.setTeam(20);
@@ -92,8 +118,8 @@
    @ApiOperation(value = "AI事件统计")
    @GetMapping("/event_statistics")
    public CommonResult<List<AIIotVO.StatisticsVO>> statistics(@Validated CockpitVO.Params2VO params) {
        checkApiUtil.cockpit(params.getAppId(), params.getAppKey(), params.getSign(), params.getBeginTime(), params.getEndTime());
    public CommonResult<List<AIIotVO.StatisticsVO>> statistics(@Validated CockpitVO params) {
        checkApiUtil.cockpit(params);
        List<AIIotVO.StatisticsVO> statisticsVOS = new ArrayList<>();
        List<AIIotVO.Statistics1VO> statistics1VOS = new ArrayList<>();
        AIIotVO.StatisticsVO a = null;