ycl-platform/src/main/java/com/ycl/controller/cockpit/aiIot/AIIotController.java
@@ -59,6 +59,7 @@ @Autowired IEfficiencyService iEfficiencyService; @ApiOperation(value = "监测数据") @GetMapping("/detection") public CommonResult<AIIotVO.DetectionVO> detection(@Validated CockpitVO params) { @@ -66,7 +67,7 @@ AIIotVO.DetectionVO detectionVO = new AIIotVO.DetectionVO(); detectionVO.setVideo(iVideoPointService.count()); detectionVO.setIndividual(iHandheldTerminalService.count()); detectionVO.setLampblack(154L); detectionVO.setLampblack(iEfficiencyService.getSmokeCustomer()); /// TODO: 2022/12/13 缺少油烟机监控表 detectionVO.setLoudspeaker(loudspeakerService.count()); detectionVO.setSlagCar(iCarSlagcarService.count()); @@ -91,6 +92,7 @@ videoVO.setLatitude(item.getLatitude() != null ? item.getLatitude().toString() : ""); videoVO.setLongitude(item.getLongitude() != null ? item.getLongitude().toString() : ""); videoVO.setResourceId(item.getPlatResourceId()); videoVO.setCode(item.getCode()); return videoVO; }).collect(Collectors.toList()); @@ -117,9 +119,11 @@ @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); slagCarVO.setCar(iCarSlagcarService.count()); slagCarVO.setTeam(0L); return CommonResult.success(slagCarVO); } ycl-platform/src/main/java/com/ycl/controller/cockpit/statisticsEvents/StatisticsEventsController.java
@@ -7,9 +7,11 @@ import com.ycl.entity.cockpitManage.TeamConstruction; import com.ycl.entity.cockpitManage.TeamIndex; 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; @@ -42,6 +44,8 @@ private ITeamConstructionService teamConstructionService; private IOrgGridService orgGridService; @Autowired public void setTeamConstructionService(ITeamConstructionService teamConstructionService) { this.teamConstructionService = teamConstructionService; @@ -50,6 +54,11 @@ @Autowired public void setVideoPointService(IVideoPointService videoPointService) { this.videoPointService = videoPointService; } @Autowired public void setOrgGridService(IOrgGridService orgGridService) { this.orgGridService = orgGridService; } @ApiOperation(value = "执法事件") @@ -182,6 +191,14 @@ 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") ycl-platform/src/main/java/com/ycl/entity/caseHandler/BaseCase.java
@@ -191,6 +191,10 @@ @ApiModelProperty(value = "结束时间") private LocalDateTime closeTime; @TableField(value = "grid_id") @ApiModelProperty(value = "网格id") private Long gridId; /** * 违规事件 */ @@ -213,4 +217,5 @@ private DispatchInfo dispatchInfo; } ycl-platform/src/main/java/com/ycl/entity/video/VideoPoint.java
@@ -10,6 +10,7 @@ import java.io.Serializable; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; @@ -108,4 +109,9 @@ @TableField("code") private String code; @TableField(value = "grid_id") @ApiModelProperty(value = "网格id") private Long gridId; } ycl-platform/src/main/java/com/ycl/mapper/allot/EfficiencyMapper.java
@@ -11,4 +11,6 @@ List<EfficiencyDto> list(); List<AIIotStatisticsVO> aiMonthList(); Long getSmokeCustomer(); } ycl-platform/src/main/java/com/ycl/mapper/equipment/OrgGridMapper.java
@@ -2,7 +2,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ycl.entity.equipment.OrgGrid; import com.ycl.vo.cockpit.statisticsEvents.GridMapVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; /** * <p> @@ -15,4 +19,5 @@ @Mapper public interface OrgGridMapper extends BaseMapper<OrgGrid> { List<GridMapVO> statisticsGridMap(@Param("beginTime") String beginTime, @Param("endTime") String endTime); } ycl-platform/src/main/java/com/ycl/service/allot/IEfficiencyService.java
@@ -2,6 +2,7 @@ import com.ycl.dto.allot.EfficiencyDto; import com.ycl.vo.cockpit.aiIot.AIIotStatisticsVO; import com.ycl.vo.cockpit.aiIot.AIIotVO; import java.util.List; @@ -10,4 +11,6 @@ List<EfficiencyDto> list(); List<AIIotStatisticsVO> aiMonthList(); Long getSmokeCustomer(); } ycl-platform/src/main/java/com/ycl/service/allot/impl/EfficiencyServiceImpl.java
@@ -4,6 +4,7 @@ import com.ycl.mapper.allot.EfficiencyMapper; import com.ycl.service.allot.IEfficiencyService; import com.ycl.vo.cockpit.aiIot.AIIotStatisticsVO; import com.ycl.vo.cockpit.aiIot.AIIotVO; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -23,4 +24,10 @@ public List<AIIotStatisticsVO> aiMonthList() { return efficiencyMapper.aiMonthList(); } @Override public Long getSmokeCustomer() { return efficiencyMapper.getSmokeCustomer(); } } ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java
@@ -66,6 +66,7 @@ baseCase.setStreetId(videoPoint.getStreetId()); baseCase.setCommunityId(videoPoint.getCommunityId()); baseCase.setSite(videoPoint.getAddress()); baseCase.setGridId(videoPoint.getGridId()); baseCaseService.save(baseCase); violations.setId(baseCase.getId()); ycl-platform/src/main/java/com/ycl/service/equipment/IOrgGridService.java
@@ -3,7 +3,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.ycl.entity.equipment.OrgGrid; import com.ycl.vo.cockpit.statisticsEvents.GridMapVO; import com.ycl.vo.equipment.HandheldTerminalVo; import java.util.List; /** * <p> @@ -16,4 +19,6 @@ public interface IOrgGridService extends IService<OrgGrid> { IPage<OrgGrid> search(Integer pageSize, Integer current, String name); List<GridMapVO> statisticsGridMap(String beginTime, String endTime); } ycl-platform/src/main/java/com/ycl/service/equipment/impl/OrgGridServiceImpl.java
@@ -11,8 +11,11 @@ import com.ycl.entity.equipment.OrgGrid; import com.ycl.mapper.equipment.OrgGridMapper; import com.ycl.service.equipment.IOrgGridService; import com.ycl.vo.cockpit.statisticsEvents.GridMapVO; import com.ycl.vo.equipment.HandheldTerminalVo; import org.springframework.stereotype.Service; import java.util.List; /** * <p> @@ -34,4 +37,9 @@ return baseMapper.selectPage(page, queryWrapper); } @Override public List<GridMapVO> statisticsGridMap(String beginTime, String endTime) { return baseMapper.statisticsGridMap(beginTime, endTime); } } ycl-platform/src/main/java/com/ycl/util/CheckApiUtil.java
@@ -45,8 +45,8 @@ sb.append(params.getStreetId()); } result = MD5Util.md5Encrypt32Lower(sb.toString()); // if (!params.getSign().equals(result)) { // throw new ApiException(ResultCode.SIGN_ERROR); // } if (!params.getSign().equals(result)) { throw new ApiException(ResultCode.SIGN_ERROR); } } } ycl-platform/src/main/java/com/ycl/vo/cockpit/aiIot/AIIotVO.java
@@ -48,10 +48,10 @@ @Data public static class SlagCarVO { @ApiModelProperty(value = "车队数") private Integer team; private Long team; @ApiModelProperty(value = "车辆数") private Integer car; private Long car; } ycl-platform/src/main/java/com/ycl/vo/cockpit/aiIot/VideoVO.java
@@ -1,5 +1,6 @@ package com.ycl.vo.cockpit.aiIot; import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -23,4 +24,11 @@ private String ip; @ApiModelProperty(value = "URL地址") private String url; /** * 设备码 */ @ApiModelProperty(value = "设备码") private String code; } ycl-platform/src/main/java/com/ycl/vo/cockpit/statisticsEvents/GridMapVO.java
New file @@ -0,0 +1,29 @@ package com.ycl.vo.cockpit.statisticsEvents; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @ApiModel(description = "网格地图") @Data public class GridMapVO { @ApiModelProperty(value = "网格名称") private String name; @ApiModelProperty(value = "网格内各类设备数量") private Integer videoCount; @ApiModelProperty(value = "网格内事件总数") private Integer eventCount; @ApiModelProperty(value = "ai事件数量") private Integer aiCount; @ApiModelProperty(value = "网格上报事件数量") private Integer handCount; public Integer getHandCount() { return this.eventCount - this.aiCount; } } ycl-platform/src/main/resources/mapper/allot/EfficiencyMapper.xml
@@ -44,4 +44,8 @@ GROUP BY t4.id,DATE_FORMAT(alarm_time,'%Y-%m') </select> <select id="getSmokeCustomer" resultType="java.lang.Long"> select count(1) total from ums_ods_customer </select> </mapper> ycl-platform/src/main/resources/mapper/equipment/OrgGridMapper.xml
@@ -15,5 +15,29 @@ <sql id="Base_Column_List"> id, worker, contact, area, region </sql> <select id="statisticsGridMap" resultType="com.ycl.vo.cockpit.statisticsEvents.GridMapVO"> SELECT * FROM ( SELECT og.id, og.`name`, COUNT( DISTINCT v.id ) eventCount , sum(case WHEN v.video_point_id is not null then 1 else 0 END ) aiCount FROM ums_org_grid og LEFT JOIN ums_base_case bc ON og.id = bc.grid_id LEFT JOIN ums_violations v ON v.id = bc.id <if test="beginTime!=null"> and bc.alarm_time BETWEEN #{beginTime} and #{endTime} </if> GROUP BY og.id, og.`name` ) v_case LEFT JOIN ( SELECT grid_id, COUNT( id ) videoCount FROM ums_video_point GROUP BY grid_id ) AS v_video ON v_case.id = v_video.grid_id </select> </mapper>