| package com.ruoyi.alarm.global.controller; | 
|   | 
| import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; | 
| import com.github.xiaoymin.knife4j.annotations.ApiSupport; | 
| import com.ruoyi.alarm.global.domain.GlobalAlarmCondition; | 
| import com.ruoyi.alarm.global.domain.GlobalAlarmData; | 
| import com.ruoyi.alarm.global.domain.GuidePriorityQueue; | 
| import com.ruoyi.alarm.global.domain.GuideTask; | 
| import com.ruoyi.alarm.global.service.IGlobalAlarmService; | 
| import com.ruoyi.common.annotation.Anonymous; | 
| import com.ruoyi.common.core.controller.BaseController; | 
| import com.ruoyi.common.core.domain.AjaxResult; | 
| import com.ruoyi.common.core.page.TableDataInfo; | 
| import io.swagger.annotations.Api; | 
| import io.swagger.annotations.ApiImplicitParam; | 
| import io.swagger.annotations.ApiImplicitParams; | 
| import io.swagger.annotations.ApiOperation; | 
| import org.springframework.web.bind.annotation.*; | 
| import javax.annotation.Resource; | 
| import java.util.List; | 
| import java.util.Map; | 
| import java.util.concurrent.PriorityBlockingQueue; | 
|   | 
| /** | 
|  * @ClassName: globalAlarmController | 
|  * @Description: | 
|  * @Author: Administrator | 
|  * @Date: 2023年03月10日 10:54 | 
|  * @Version: 1.0 | 
|  **/ | 
| @RestController | 
| @RequestMapping("/ardAlarm") | 
| @Api(tags = "报警数据汇总接口") | 
| @ApiSupport(author = "刘苏义") | 
| @Anonymous | 
| public class GlobalAlarmController extends BaseController { | 
|   | 
|     @Resource | 
|     IGlobalAlarmService globalAlarmService; | 
|   | 
|     @PostMapping("/List") | 
|     @ApiOperation(value = "实时报警聚合接口",notes = "按报警刷新时间聚合查询") | 
|     @ApiOperationSupport(includeParameters = {"command"},order = 1) | 
|     public AjaxResult selectAlarmLog(@RequestBody GlobalAlarmCondition condition) { | 
|         List<GlobalAlarmData> result = globalAlarmService.selectAlarmLogs(condition); | 
|         return AjaxResult.success(result); | 
|     } | 
|     @GetMapping("/AllList") | 
|     @ApiOperation(value = "实时报警聚合接口(all)",notes = "按报警刷新时间聚合查询") | 
|     @ApiOperationSupport(includeParameters = {"command"},order = 1) | 
|     public AjaxResult selectAlarmLogAll() { | 
|         List<GlobalAlarmData> result = globalAlarmService.selectAlarmLogsAll(); | 
|         return AjaxResult.success(result); | 
|     } | 
|     @PostMapping("/view") | 
|     @ApiOperation(value = "查看报警接口",notes = "指定查看某个报警数据") | 
|     @ApiOperationSupport(includeParameters = {"command","id"},order = 3) | 
|     public AjaxResult  viewAlarmLog(@RequestBody GlobalAlarmCondition condition) { | 
|         Object result = globalAlarmService.updateAlarmViewTime(condition); | 
|         return AjaxResult.success(result); | 
|     } | 
|     @GetMapping("/count") | 
|     @ApiOperation(value = "查看报警点数量",notes = "查询刷新时间内报警的点位数量") | 
|     @ApiOperationSupport(order = 2) | 
|     public AjaxResult  countAlarmLog() { | 
|         Map<String, Object> stringIntegerMap = globalAlarmService.selectAlarmLogsCount(); | 
|         return AjaxResult.success(stringIntegerMap); | 
|     } | 
|     @GetMapping("/List") | 
|     @ApiOperation(value = "历史报警聚合接口",notes = "通过command和时间查询历史数据") | 
|     @ApiImplicitParams({ | 
|             @ApiImplicitParam(name="command",value="报警标识",dataType="integer",paramType="query",example="1001",required=true,dataTypeClass = Integer.class), | 
|             @ApiImplicitParam(name="beginTime",value="开始时间",dataType="string",paramType="query",example="2023-06-15 00:00:00",required=true,dataTypeClass = String.class), | 
|             @ApiImplicitParam(name="endTime",value="结束时间",dataType="string",paramType="query",example="2023-06-15 14:18:23",required=true,dataTypeClass = String.class), | 
|             @ApiImplicitParam(name="pageNum",value="页码",dataType="integer",paramType="query",example="1",required=true,dataTypeClass = Integer.class), | 
|             @ApiImplicitParam(name="pageSize",value="页数量",dataType="integer",paramType="query",example="10",required=true,dataTypeClass = Integer.class) | 
|     }) | 
|     public TableDataInfo selectAlarmList(String name,Integer command, String beginTime, String endTime,Integer pageNum,Integer pageSize) { | 
|         startPage(); | 
|         Object alarmList = globalAlarmService.selectAlarmList(name,command,beginTime,endTime, pageNum, pageSize); | 
|         return getDataTable((List)alarmList); | 
|     } | 
|   | 
|     @GetMapping("/getQueueList") | 
|     @ApiOperation(value = "查询队列",notes = "查询所有相机的当前队列") | 
|     public AjaxResult getQueueList() { | 
|         Map<String, PriorityBlockingQueue<GuideTask>> cameraQueueMap = GuidePriorityQueue.cameraQueueMap; | 
|         return AjaxResult.success(cameraQueueMap); | 
|     } | 
|   | 
|     @PostMapping("/ThermalMapList") | 
|     @ApiOperation(value = "热力图接口",notes = "按报警刷新时间按报警类别聚合查询") | 
|     @ApiOperationSupport(includeParameters = {"command","refreshTime"},order = 1) | 
|     public AjaxResult selectThermalMap(@RequestBody GlobalAlarmCondition condition) { | 
|         List<GlobalAlarmData> result = globalAlarmService.selectThermalMap(condition); | 
|         return AjaxResult.success(result); | 
|     } | 
| } |