package com.ruoyi.alarm.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.alarm.dto.AlarmNuisanceStrategyDto; import com.ruoyi.alarm.dto.AlarmRemoveApprovalDto; import com.ruoyi.alarm.service.IAlarmOptimizationService; 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.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; @Api(tags = "报警优化管理模块") @RestController @AllArgsConstructor @RequestMapping("/alarm/optimization") public class AlarmOptimizationController extends BaseController { private IAlarmOptimizationService alarmOptimizationService; @ApiOperation("优化效果统计") @GetMapping("/statistics") public AjaxResult getStatistics() { AlarmOptimizationStatisticsVo data = alarmOptimizationService.getStatistics(); return AjaxResult.success(data); } @ApiOperation("滋扰报警策略列表") @GetMapping("/strategy/list") public AjaxResult getStrategyList() { List data = alarmOptimizationService.getStrategyList(); return AjaxResult.success(data); } @ApiOperation("新增滋扰报警策略") @Log(title = "滋扰报警策略", businessType = BusinessType.INSERT) @PostMapping("/strategy") public AjaxResult addStrategy(@Validated @RequestBody AlarmNuisanceStrategyDto dto) { return toAjax(alarmOptimizationService.addStrategy(dto)); } @ApiOperation("修改滋扰报警策略") @Log(title = "滋扰报警策略", businessType = BusinessType.UPDATE) @PutMapping("/strategy") public AjaxResult updateStrategy(@Validated @RequestBody AlarmNuisanceStrategyDto dto) { return toAjax(alarmOptimizationService.updateStrategy(dto)); } @ApiOperation("删除滋扰报警策略") @Log(title = "滋扰报警策略", businessType = BusinessType.DELETE) @DeleteMapping("/strategy/{strategyId}") public AjaxResult deleteStrategy(@PathVariable Long strategyId) { return toAjax(alarmOptimizationService.deleteStrategy(strategyId)); } @ApiOperation("修改策略状态") @Log(title = "滋扰报警策略", businessType = BusinessType.UPDATE) @PutMapping("/strategy/changeStatus") public AjaxResult changeStrategyStatus(@RequestParam Long strategyId, @RequestParam Integer status) { return toAjax(alarmOptimizationService.changeStrategyStatus(strategyId, status)); } @ApiOperation("治理前后对比数据") @GetMapping("/compare") public AjaxResult getCompareData() { AlarmCompareVo data = alarmOptimizationService.getCompareData(); return AjaxResult.success(data); } @ApiOperation("高频报警点位列表") @GetMapping("/highfreq/list") public AjaxResult getHighFreqList(@RequestParam(required = false, defaultValue = "5") Integer limit) { List data = alarmOptimizationService.getHighFreqList(limit); return AjaxResult.success(data); } @ApiOperation("报警剔除审批列表") @GetMapping("/approval/list") public AjaxResult getApprovalList(Page page, @RequestParam(required = false) String status) { IPage result = alarmOptimizationService.getApprovalList(page, status); return AjaxResult.success(result); } @ApiOperation("提交剔除申请") @Log(title = "报警剔除申请", businessType = BusinessType.INSERT) @PostMapping("/approval") public AjaxResult submitApproval(@Validated @RequestBody AlarmRemoveApprovalDto dto) { return toAjax(alarmOptimizationService.submitApproval(dto)); } @ApiOperation("审批通过") @Log(title = "报警剔除审批", businessType = BusinessType.UPDATE) @PostMapping("/approval/approve/{applyNo}") public AjaxResult approveApproval(@PathVariable String applyNo) { return toAjax(alarmOptimizationService.approveApproval(applyNo)); } @ApiOperation("审批驳回") @Log(title = "报警剔除审批", businessType = BusinessType.UPDATE) @PostMapping("/approval/reject/{applyNo}") public AjaxResult rejectApproval(@PathVariable String applyNo) { return toAjax(alarmOptimizationService.rejectApproval(applyNo)); } }