wl
2022-12-07 a9be2e0bfbd8e716207fc467e2699d9caec76a7c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
package com.ycl.controller.cockpit.aiIot;
 
import com.ycl.api.CommonResult;
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.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;
import org.springframework.web.bind.annotation.RestController;
 
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
 
/**
 * @author Lyq
 * @version 1.0
 * @date 2022/10/26
 */
@Api(tags = "驾驶舱数据接口-AI物联")
@RestController
@RequestMapping("/api/lot")
public class AIIotController {
 
    @Resource
    private CheckApiUtil checkApiUtil;
 
    @Autowired
    private IVideoPointService iVideoPointService;
    @Autowired
    private VideoUtil videoUtil;
 
    @ApiOperation(value = "监测数据")
    @GetMapping("/detection")
    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);
        return CommonResult.success(detectionVO);
    }
 
    @ApiOperation(value = "实时视频监控")
    @GetMapping("/video")
    public CommonResult video(@Validated CockpitVO params) {
        //checkApiUtil.cockpit(params);
        return CommonResult.success(iVideoPointService.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().toString());
            videoVO.setLongitude(item.getLongitude().toString());
            videoVO.setUrl(videoUtil.getVideo(item.getPlatResourceId(), "HLS", 0));
            return videoVO;
        }).collect(Collectors.toList()));
    }
 
    @ApiOperation(value = "AI算法效能")
    @GetMapping("/efficiency")
    public CommonResult<List<AIIotVO.EfficiencyVO>> efficiency(@Validated CockpitVO params) {
        checkApiUtil.cockpit(params);
        List<AIIotVO.EfficiencyVO> efficiencyVOS = new ArrayList<>();
        AIIotVO.EfficiencyVO a = null;
        for (int i = 0; i < 4; i++) {
            a = new AIIotVO.EfficiencyVO();
            a.setType("道路破损");
            a.setCount(12);
            a.setRatio(new BigDecimal("0.63").setScale(2, RoundingMode.HALF_UP));
            efficiencyVOS.add(a);
        }
        return CommonResult.success(efficiencyVOS);
    }
 
    @ApiOperation(value = "渣土联动")
    @GetMapping("/slag_car")
    public CommonResult<AIIotVO.SlagCarVO> slagCar(@Validated CockpitVO params) {
        checkApiUtil.cockpit(params);
        AIIotVO.SlagCarVO slagCarVO = new AIIotVO.SlagCarVO();
        slagCarVO.setCar(236);
        slagCarVO.setTeam(20);
        return CommonResult.success(slagCarVO);
    }
 
    @ApiOperation(value = "AI事件统计")
    @GetMapping("/event_statistics")
    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;
        AIIotVO.Statistics1VO a1 = null;
        for (int i = 0; i < 4; i++) {
            a = new AIIotVO.StatisticsVO();
            a1 = new AIIotVO.Statistics1VO();
            a.setType("道路破损");
            a1.setCount(12);
            a1.setMonth("2022-10");
            statistics1VOS.add(a1);
            a.setRecords(statistics1VOS);
            statisticsVOS.add(a);
        }
        return CommonResult.success(statisticsVOS);
    }
 
 
}