package com.ruoyi.alarm.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.alarm.service.IAlarmAnalysisService; import com.ruoyi.alarm.vo.*; import com.ruoyi.framework.aspectj.lang.annotation.Log; import com.ruoyi.framework.aspectj.lang.enums.BusinessType; import com.ruoyi.framework.web.controller.BaseController; import com.ruoyi.framework.web.domain.AjaxResult; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; @Api(tags = "报警分析评估模块") @RestController @AllArgsConstructor @RequestMapping("/alarm/analysis") public class AlarmAnalysisController extends BaseController { private IAlarmAnalysisService alarmAnalysisService; @ApiOperation("实时报警统计") @GetMapping("/realtime/stats") public AjaxResult getRealtimeStats() { Map data = alarmAnalysisService.getRealtimeStats(); return AjaxResult.success(data); } @ApiOperation("实时报警列表") @GetMapping("/realtime/list") public AjaxResult getRealtimeList(Page page) { IPage result = alarmAnalysisService.getRealtimeList(page); return AjaxResult.success(result); } @ApiOperation("确认报警") @Log(title = "报警确认", businessType = BusinessType.UPDATE) @PostMapping("/confirm/{alarmId}") public AjaxResult confirmAlarm(@PathVariable Long alarmId) { return toAjax(alarmAnalysisService.confirmAlarm(alarmId)); } @ApiOperation("分析报警") @GetMapping("/analyze/{alarmId}") public AjaxResult analyzeAlarm(@PathVariable Long alarmId) { AlarmAnalysisVo data = alarmAnalysisService.analyzeAlarm(alarmId); return AjaxResult.success(data); } @ApiOperation("报警趋势数据") @GetMapping("/trend") public AjaxResult getTrendData(@RequestParam(required = false) String startDate, @RequestParam(required = false) String endDate) { AlarmTrendVo data = alarmAnalysisService.getTrendData(startDate, endDate); return AjaxResult.success(data); } @ApiOperation("报警类型分布") @GetMapping("/type/distribution") public AjaxResult getTypeDistribution() { List data = alarmAnalysisService.getTypeDistribution(); return AjaxResult.success(data); } @ApiOperation("故障诊断列表") @GetMapping("/fault/list") public AjaxResult getFaultList() { List data = alarmAnalysisService.getFaultList(); return AjaxResult.success(data); } }