fuliqi
2023-12-04 38b44e0c9996f06524903417f1d0a3f746b4550b
ycl-platform/src/main/java/com/ycl/controller/cockpit/statisticsEvents/StatisticsEventsController.java
@@ -1,16 +1,26 @@
package com.ycl.controller.cockpit.statisticsEvents;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ycl.api.CommonResult;
import com.ycl.entity.cockpitManage.TeamConstruction;
import com.ycl.entity.cockpitManage.TeamIndex;
import com.ycl.service.apidata.IApiDataService;
import com.ycl.service.cockpitManage.ITeamConstructionService;
import com.ycl.service.equipment.IOrgGridService;
import com.ycl.service.video.impl.IVideoPointService;
import com.ycl.util.CheckApiUtil;
import com.ycl.vo.cockpit.CockpitVO;
import com.ycl.vo.cockpit.statisticsEvents.GridMapVO;
import com.ycl.vo.cockpit.statisticsEvents.StatisticsEventsVO;
import com.ycl.vo.equipment.VideoPointVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
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.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@@ -31,10 +41,39 @@
    @Resource
    private CheckApiUtil checkApiUtil;
    private IVideoPointService videoPointService;
    private ITeamConstructionService teamConstructionService;
    private IOrgGridService orgGridService;
    private IApiDataService iApiDataService;
    @Autowired
    public void setIApiDataService(IApiDataService apiDataService) {
        this.iApiDataService = apiDataService;
    }
    @Autowired
    public void setTeamConstructionService(ITeamConstructionService teamConstructionService) {
        this.teamConstructionService = teamConstructionService;
    }
    @Autowired
    public void setVideoPointService(IVideoPointService videoPointService) {
        this.videoPointService = videoPointService;
    }
    @Autowired
    public void setOrgGridService(IOrgGridService orgGridService) {
        this.orgGridService = orgGridService;
    }
    @ApiOperation(value = "执法事件")
    @GetMapping("/law_enforcement_event")
    public CommonResult<List<StatisticsEventsVO.LawEnforcementEventVO>> detection(@Validated CockpitVO.Params2VO params) {
        checkApiUtil.cockpit(params.getAppId(), params.getAppKey(), params.getSign(), params.getBeginTime(), params.getEndTime(), null);
    public CommonResult<List<StatisticsEventsVO.LawEnforcementEventVO>> detection(@Validated CockpitVO params) {
        checkApiUtil.cockpit(params);
        List<StatisticsEventsVO.LawEnforcementEventVO> lawEnforcementEventVOS = new ArrayList<>();
        StatisticsEventsVO.LawEnforcementEventVO a = null;
        for (int i = 0; i < 4; i++) {
@@ -50,25 +89,17 @@
    @ApiOperation(value = "物联感知")
    @GetMapping("/lot")
    public CommonResult<List<StatisticsEventsVO.LotVO>> lot(@Validated CockpitVO.Params1VO params) {
        checkApiUtil.cockpit(params.getAppId(), params.getAppKey(), params.getSign(), null, null, null);
        List<StatisticsEventsVO.LotVO> lotVOS = new ArrayList<>();
        StatisticsEventsVO.LotVO a = null;
        for (int i = 0; i < 4; i++) {
            a = new StatisticsEventsVO.LotVO();
            a.setName("团结屯");
            a.setType("摄像头");
            a.setCount(10);
            a.setRatio(new BigDecimal("-0.3").setScale(2, RoundingMode.HALF_UP));
            lotVOS.add(a);
        }
    public CommonResult<List<StatisticsEventsVO.LotVO>> lot(@Validated CockpitVO params) {
        checkApiUtil.cockpit(params);
        List<StatisticsEventsVO.LotVO> lotVOS = iApiDataService.listLot(params.getStreetId(), params.getBeginTime(), params.getEndTime());
        return CommonResult.success(lotVOS);
    }
    @ApiOperation(value = "执法队伍")
    @GetMapping("/team")
    public CommonResult<StatisticsEventsVO.TeamVO> team(@Validated CockpitVO.Params1VO params) {
        checkApiUtil.cockpit(params.getAppId(), params.getAppKey(), params.getSign(), null, null, null);
    public CommonResult<StatisticsEventsVO.TeamVO> team(@Validated CockpitVO params) {
        checkApiUtil.cockpit(params);
        StatisticsEventsVO.TeamVO teamVO = new StatisticsEventsVO.TeamVO();
        teamVO.setAll(30);
        teamVO.setAssistant(10);
@@ -81,13 +112,13 @@
    @ApiOperation(value = "网格员")
    @GetMapping("/grid_member")
    public CommonResult<List<StatisticsEventsVO.GridMemberVO>> gridMember(@Validated CockpitVO.Params1VO params) {
        checkApiUtil.cockpit(params.getAppId(), params.getAppKey(), params.getSign(), null, null, null);
    public CommonResult<List<StatisticsEventsVO.GridMemberVO>> gridMember(@Validated CockpitVO params) {
        checkApiUtil.cockpit(params);
        List<StatisticsEventsVO.GridMemberVO> gridMemberVOS = new ArrayList<>();
        StatisticsEventsVO.GridMemberVO a = null;
        for (int i = 0; i < 4; i++) {
            a = new StatisticsEventsVO.GridMemberVO();
            a.setRatio(new BigDecimal("0.20").setScale(2, RoundingMode.HALF_UP));
            a.setRatio(new BigDecimal("0.20").setScale(4, RoundingMode.HALF_UP));
            a.setName("团结屯");
            a.setCount(10);
            gridMemberVOS.add(a);
@@ -97,14 +128,14 @@
    @ApiOperation(value = "指数体征")
    @GetMapping("/index_signs")
    public CommonResult<StatisticsEventsVO.IndexSignsVO> indexSigns(@Validated CockpitVO.Params1VO params) {
        checkApiUtil.cockpit(params.getAppId(), params.getAppKey(), params.getSign(), null, null, null);
    public CommonResult<StatisticsEventsVO.IndexSignsVO> indexSigns(@Validated CockpitVO params) {
        checkApiUtil.cockpit(params);
        StatisticsEventsVO.IndexSignsVO indexSignsVO = new StatisticsEventsVO.IndexSignsVO();
        indexSignsVO.setEvent(1);
        indexSignsVO.setGridMember(20);
        indexSignsVO.setCompletePercentage(new BigDecimal("0.60").setScale(2, RoundingMode.HALF_UP));
        indexSignsVO.setCompletePercentage(new BigDecimal("0.60").setScale(4, RoundingMode.HALF_UP));
        indexSignsVO.setEquipment(30);
        indexSignsVO.setAccuracy(new BigDecimal("0.80").setScale(2, RoundingMode.HALF_UP));
        indexSignsVO.setAccuracy(new BigDecimal("0.80").setScale(4, RoundingMode.HALF_UP));
        indexSignsVO.setTrigger(10);
        indexSignsVO.setLot(30);
        indexSignsVO.setLotOnline(10);
@@ -112,4 +143,108 @@
        indexSignsVO.setEvaluationData(10);
        return CommonResult.success(indexSignsVO);
    }
    @ApiOperation(value = "top10")
    @GetMapping("/top10")
    public CommonResult<List<StatisticsEventsVO.Top10VO>> top10(@Validated CockpitVO params) {
//        checkApiUtil.cockpit(params);
//        List<StatisticsEventsVO.Top10VO> ls = new ArrayList<>();
//        ls.add(new StatisticsEventsVO.Top10VO("xx中队", 100.0));
//        ls.add(new StatisticsEventsVO.Top10VO("xx中队", 90.0));
//        ls.add(new StatisticsEventsVO.Top10VO("xx中队", 80.0));
//        ls.add(new StatisticsEventsVO.Top10VO("xx中队", 70.0));
//        return CommonResult.success(ls);
        String beginTime = params.getBeginTime();
        String endTime = params.getEndTime();
        List<StatisticsEventsVO.Top10VO> res = iApiDataService.listTop10(beginTime, endTime);
        return CommonResult.success(res);
    }
    @ApiOperation(value = "AI算法")
    @GetMapping("/arithmetic_event")
    public CommonResult<List<StatisticsEventsVO.ArithmeticVO>> arithmeticEvent(@Validated CockpitVO params) {
        checkApiUtil.cockpit(params);
        List<StatisticsEventsVO.ArithmeticVO> ls = iApiDataService.arithmeticEvent(params.getStreetId(), params.getBeginTime(), params.getEndTime());
        return CommonResult.success(ls);
    }
    @ApiOperation(value = "城市体征看板")
    @GetMapping("/city_panel")
    public CommonResult<StatisticsEventsVO.CityPanelVo> cityPanel(@Validated CockpitVO params) {
        checkApiUtil.cockpit(params);
        StatisticsEventsVO.CityPanelVo vo = new StatisticsEventsVO.CityPanelVo(92, true, 22, false, 12, true,
                22, false, 34, true, 99, false, 9, true,
                34, false, 6, true);
        return CommonResult.success(vo);
    }
    @ApiOperation(value = "点位")
    @GetMapping("/video_point")
    public CommonResult<List<VideoPointVo>> videoPoint(@Validated CockpitVO params) {
        checkApiUtil.cockpit(params);
        IPage<VideoPointVo> page = videoPointService.getList(null, null, null, 1, 500);
        return CommonResult.success(page.getRecords());
    }
    @ApiOperation(value = "网格地图")
    @GetMapping("/grid_map")
    public CommonResult<List<GridMapVO>> gridMap(@Validated CockpitVO params) {
        checkApiUtil.cockpit(params);
        List<GridMapVO> list = orgGridService.statisticsGridMap(params.getBeginTime(), params.getEndTime());
        return CommonResult.success(list);
    }
    @ApiOperation(value = "队伍建设")
    @GetMapping("/team_construction")
    public CommonResult<List<TeamConstruction>> teamConstruction(@Validated CockpitVO params) {
        checkApiUtil.cockpit(params);
        LambdaQueryWrapper<TeamConstruction> queryWrapper = new LambdaQueryWrapper<TeamConstruction>().eq(TeamConstruction::getStatus, 1).eq(TeamConstruction::getIsDelete, 0);
        List<TeamConstruction> list = teamConstructionService.list(queryWrapper);
        return CommonResult.success(list);
    }
    @ApiOperation(value = "中队指数体征")
    @GetMapping("/team_index")
    public CommonResult<List<TeamIndex>> teamIndex(@Validated CockpitVO params) {
        checkApiUtil.cockpit(params);
        // LambdaQueryWrapper<TeamConstruction> queryWrapper = new LambdaQueryWrapper<TeamConstruction>().eq(TeamConstruction::getStatus, 1).eq(TeamConstruction::getIsDelete, 0);
        // List<TeamConstruction> list = teamConstructionService.list(queryWrapper);
        // List<TeamIndex> teamIndexList = BeanUtil.copyToList(list, TeamIndex.class);
        // teamIndexList.forEach(o -> {
        //     o.setStepTimely(0.0);
        //     o.setStepDelayed(0.0);
        //     o.setStepOvertime(0.0);
        //     o.setHandleTimely(0.0);
        //     o.setHandleDelayed(0.0);
        //     o.setHandleOvertime(0.0);
        //     o.setNoHandle(0.0);
        // });
        List<TeamIndex> teamIndexList = teamConstructionService.teamIndex(params.getBeginTime(), params.getEndTime());
        teamIndexList.forEach(o -> {
            o.setAllocation(20 * ((double) o.getPunctualityCount() / (double) o.getAllCount())
                    + 18 * ((double) o.getOverCount() / (double) o.getAllCount())
                    + 15 * ((double) o.getNoHandleCount() / (double) o.getAllCount()));
            o.setHandle(20 * ((double) o.getPunctualityCount() / (double) o.getAllCount())
                    + 5 * ((double) o.getOverCount() / (double) o.getAllCount())
                    - 2 * ((double) o.getNoHandleCount() / (double) o.getAllCount()));
            o.setOnline(0.0);
            o.setDuration(0.0);
            o.setDistance(0.0);
        });
        return CommonResult.success(teamIndexList);
    }
}