package org.sxkj.fw.cockpit.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springframework.web.bind.annotation.*; import org.sxkj.fw.cockpit.service.ICockpitService; import org.sxkj.fw.cockpit.vo.AlarmStatisticsVO; import org.sxkj.fw.cockpit.vo.DeviceStatisticsVO; import org.sxkj.fw.detection.param.FwEffectEvalParam; import org.sxkj.fw.device.dto.FwDeviceDTO; import org.sxkj.fw.device.vo.CockpitFwDeviceVO; import org.sxkj.fw.record.dto.FwDroneAlarmRecordDTO; import org.sxkj.fw.record.vo.FwDroneAlarmRecordVO; import javax.validation.Valid; import java.util.List; /** * 数据驾驶舱 * * @author lw * @since 2026-01-08 */ @RestController @AllArgsConstructor @RequestMapping("cockpit/dataCockpit") @Api(value = "驾驶舱", tags = "数据驾驶舱") public class CockpitController { private final ICockpitService cockpitService; /** * 历史告警、实时告警 */ @GetMapping("/alarmLog") @ApiOperationSupport(order = 1) @ApiOperation(value = "历史告警/实时告警", notes = "传入fwDroneAlarmRecord") public R> page(FwDroneAlarmRecordDTO fwDroneAlarmRecord, Query query) { IPage pages = cockpitService.selectFwDroneAlarmRecordPage(Condition.getPage(query), fwDroneAlarmRecord); return R.data(pages); } /** * 设备查询 自定义分页 */ @GetMapping("/deviceSearch") @ApiOperationSupport(order = 2) @ApiOperation(value = "设备查询", notes = "传入fwDevice") public R> page(FwDeviceDTO fwDevice, Query query) { IPage pages = cockpitService.selectCockpitDevicePage(Condition.getPage(query), fwDevice); return R.data(pages); } /** * 设备统计接口 */ @GetMapping("/deviceStatistics") @ApiOperationSupport(order = 3) @ApiOperation(value = "设备统计", notes = "返回侦测设备,反制设备数量") public R> getDeviceStatistics() { List statistics = cockpitService.statisticalDeviceType(); return R.data(statistics); } /** * 告警记录统计接口 */ @GetMapping("/alarmStatistics") @ApiOperationSupport(order = 4) @ApiOperation(value = "告警记录统计", notes = "返回实时告警、设备告警、历史告警数量") public R getAlarmStatistics() { AlarmStatisticsVO statistics = cockpitService.statisticsAlarmsAndDeviceRecords(); return R.data(statistics); } /** * 信号干扰,诱导驱离 */ @PostMapping("/interferenceAndExpulsion") @ApiOperationSupport(order = 5) @ApiOperation(value = "信号干扰,诱导驱离", notes = "传入fwEffectEval") public R interferenceAndExpulsion(@Valid @RequestBody FwEffectEvalParam fwEffectEvalParam) { return R.status(cockpitService.interferenceAndExpulsion(fwEffectEvalParam)); } }