| | |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.ycl.api.CommonResult; |
| | | import com.ycl.dto.trend.TrendAnalysisParam; |
| | | import com.ycl.entity.caseHandler.BaseCase; |
| | | import com.ycl.entity.caseHandler.Violations; |
| | | import com.ycl.mapper.trend.TrendAnalysisMapper; |
| | | import com.ycl.service.caseHandler.IBaseCaseService; |
| | | import com.ycl.service.caseHandler.IViolationsService; |
| | | import com.ycl.service.trend.TrendAnalysisService; |
| | | import com.ycl.util.CheckApiUtil; |
| | | import com.ycl.vo.TrendVo; |
| | | import com.ycl.vo.cockpit.CockpitVO; |
| | | import com.ycl.vo.cockpit.enforcementEvents.EnforcementEventsVO; |
| | | import com.ycl.vo.cockpit.enforcementEvents.VideoAndAreaVO; |
| | |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * @author Lyq |
| | |
| | | |
| | | @Autowired |
| | | IBaseCaseService iBaseCaseService; |
| | | @Autowired |
| | | IViolationsService iViolationsService; |
| | | @Resource |
| | | TrendAnalysisMapper trendAnalysisMapper; |
| | | |
| | | @ApiOperation(value = "执法事件统计") |
| | | @GetMapping("/statistics") |
| | |
| | | public CommonResult type(@Validated CockpitVO params) { |
| | | checkApiUtil.cockpit(params); |
| | | EnforcementEventsVO.TypeAndSourceVO typeAndSourceVO = new EnforcementEventsVO.TypeAndSourceVO(); |
| | | Long allCount = iBaseCaseService.count(); |
| | | Long violationCount = iBaseCaseService.count(new LambdaQueryWrapper<BaseCase>().eq(BaseCase::getCategory, "1")); |
| | | Long illegalBuildingCount = iBaseCaseService.count(new LambdaQueryWrapper<BaseCase>().eq(BaseCase::getCategory, "2")); |
| | | |
| | | ArrayList<VideoAndAreaVO> typeAndSourceVO1s = new ArrayList<>(); |
| | | VideoAndAreaVO violationVO1 = new VideoAndAreaVO(); |
| | | violationVO1.setName("违规"); |
| | | violationVO1.setCount(violationCount); |
| | | violationVO1.setRatio(new BigDecimal(violationCount * 1.0 / allCount).setScale(2, BigDecimal.ROUND_HALF_UP)); |
| | | VideoAndAreaVO illegalBuildingVO1 = new VideoAndAreaVO(); |
| | | illegalBuildingVO1.setName("违建"); |
| | | illegalBuildingVO1.setCount(illegalBuildingCount); |
| | | illegalBuildingVO1.setRatio(new BigDecimal(illegalBuildingCount * 1.0 / allCount).setScale(2, BigDecimal.ROUND_HALF_UP)); |
| | | typeAndSourceVO1s.add(violationVO1); |
| | | typeAndSourceVO1s.add(illegalBuildingVO1); |
| | | typeAndSourceVO.setRecords(typeAndSourceVO1s); |
| | | typeAndSourceVO.setAll(allCount); |
| | | System.out.println(illegalBuildingCount / allCount); |
| | | Long count = iViolationsService.count(); |
| | | typeAndSourceVO.setAll(iViolationsService.count()); |
| | | List<VideoAndAreaVO> videoAndAreaVOS = iViolationsService.selectType(); |
| | | videoAndAreaVOS.stream().forEach(item->item.setRatio(new BigDecimal(item.getCount()*1.0/count).setScale(2,BigDecimal.ROUND_HALF_UP))); |
| | | typeAndSourceVO.setRecords(videoAndAreaVOS); |
| | | return CommonResult.success(typeAndSourceVO); |
| | | } |
| | | |
| | |
| | | @GetMapping("/video") |
| | | public CommonResult video(@Validated CockpitVO params) { |
| | | checkApiUtil.cockpit(params); |
| | | List<VideoAndAreaVO> videoVOS = new ArrayList<>(); |
| | | VideoAndAreaVO videoVO = null; |
| | | for (int i = 0; i < 4; i++) { |
| | | videoVO = new VideoAndAreaVO(); |
| | | videoVO.setName("团结屯"); |
| | | videoVO.setCount(10L); |
| | | videoVO.setRatio(new BigDecimal("0.65").setScale(2, RoundingMode.HALF_UP)); |
| | | videoVOS.add(videoVO); |
| | | } |
| | | return CommonResult.success(videoVOS); |
| | | Long count = iViolationsService.count(new LambdaQueryWrapper<Violations>().isNotNull(Violations::getVideoPointId)); |
| | | List<VideoAndAreaVO> collect = trendAnalysisMapper.selectTrendInfo(new TrendAnalysisParam()).stream().map(item -> { |
| | | VideoAndAreaVO videoAndAreaVO = new VideoAndAreaVO(); |
| | | videoAndAreaVO.setName(item.getName()); |
| | | videoAndAreaVO.setCount(item.getCount()); |
| | | videoAndAreaVO.setRatio(new BigDecimal(item.getCount() * 1.0 / count).setScale(2, BigDecimal.ROUND_HALF_UP)); |
| | | return videoAndAreaVO; |
| | | }).collect(Collectors.toList()); |
| | | return CommonResult.success(collect); |
| | | } |
| | | |
| | | @ApiOperation(value = "事件来源") |