package com.ruoyi.aibrain.controller;
|
|
import java.text.SimpleDateFormat;
|
import java.util.*;
|
import javax.servlet.http.HttpServletResponse;
|
|
import com.ruoyi.common.core.domain.entity.SysDictData;
|
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.common.utils.DictUtils;
|
import com.ruoyi.common.utils.SecurityUtils;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PutMapping;
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
import com.ruoyi.common.annotation.Log;
|
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.aibrain.domain.AiAlarmInfo;
|
import com.ruoyi.aibrain.service.IAiAlarmInfoService;
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
|
/**
|
* 报警信息管理Controller
|
*
|
* @author wf
|
* @date 2023-03-08
|
*/
|
@RestController
|
@RequestMapping("/aibrain/alarm")
|
public class AiAlarmInfoController extends BaseController
|
{
|
@Autowired
|
private IAiAlarmInfoService aiAlarmInfoService;
|
|
/**
|
* 查询报警信息管理列表
|
*/
|
@PreAuthorize("@ss.hasPermi('aibrain:alarm:list')")
|
@GetMapping("/list")
|
public TableDataInfo list(AiAlarmInfo aiAlarmInfo)
|
{
|
startPage();
|
List<AiAlarmInfo> list = aiAlarmInfoService.selectAiAlarmInfoList(aiAlarmInfo);
|
return getDataTable(list);
|
}
|
|
/**
|
* 导出报警信息管理列表
|
*/
|
@PreAuthorize("@ss.hasPermi('aibrain:alarm:export')")
|
@Log(title = "报警信息管理", businessType = BusinessType.EXPORT)
|
@PostMapping("/export")
|
public void export(HttpServletResponse response, AiAlarmInfo aiAlarmInfo)
|
{
|
List<AiAlarmInfo> list = aiAlarmInfoService.selectAiAlarmInfoList(aiAlarmInfo);
|
ExcelUtil<AiAlarmInfo> util = new ExcelUtil<AiAlarmInfo>(AiAlarmInfo.class);
|
util.exportExcel(response, list, "报警信息管理数据");
|
}
|
|
/**
|
* 获取报警信息管理详细信息
|
*/
|
@PreAuthorize("@ss.hasPermi('aibrain:alarm:query')")
|
@GetMapping(value = "/{id}")
|
public AjaxResult getInfo(@PathVariable("id") Long id)
|
{
|
return success(aiAlarmInfoService.selectAiAlarmInfoById(id));
|
}
|
|
/**
|
* 新增报警信息管理
|
*/
|
@PreAuthorize("@ss.hasPermi('aibrain:alarm:add')")
|
@Log(title = "报警信息管理", businessType = BusinessType.INSERT)
|
@PostMapping
|
public AjaxResult add(@RequestBody AiAlarmInfo aiAlarmInfo)
|
{
|
return toAjax(aiAlarmInfoService.insertAiAlarmInfo(aiAlarmInfo));
|
}
|
|
/**
|
* 修改报警信息管理
|
*/
|
@PreAuthorize("@ss.hasPermi('aibrain:alarm:edit')")
|
@Log(title = "报警信息管理", businessType = BusinessType.UPDATE)
|
@PutMapping
|
public AjaxResult edit(@RequestBody AiAlarmInfo aiAlarmInfo)
|
{
|
return toAjax(aiAlarmInfoService.updateAiAlarmInfo(aiAlarmInfo));
|
}
|
|
/**
|
* 处理报警信息
|
*/
|
@Log(title = "处理报警信息", businessType = BusinessType.UPDATE)
|
@PostMapping("/handleAlarm")
|
public AjaxResult handleAlarm(@RequestBody AiAlarmInfo aiAlarmInfo)
|
{
|
aiAlarmInfo.setHandler(SecurityUtils.getLoginUser().getUser().getNickName());
|
aiAlarmInfo.setTime(new Date());
|
aiAlarmInfo.setDealWith("1");
|
return toAjax(aiAlarmInfoService.updateAiAlarmInfo(aiAlarmInfo));
|
}
|
|
/**
|
* 删除报警信息管理
|
*/
|
@PreAuthorize("@ss.hasPermi('aibrain:alarm:remove')")
|
@Log(title = "报警信息管理", businessType = BusinessType.DELETE)
|
@DeleteMapping("/{ids}")
|
public AjaxResult remove(@PathVariable Long[] ids)
|
{
|
return toAjax(aiAlarmInfoService.deleteAiAlarmInfoByIds(ids));
|
}
|
|
|
/**
|
* 报警信息统计(三违、隐患、智能识别仪(所有设备))
|
*/
|
@PostMapping("/alarmCount")
|
public AjaxResult alarmCount(@RequestBody AiAlarmInfo aiAlarmInfo)
|
{
|
Map<String,Object> result = new HashMap<>();
|
int alarmSanWei = aiAlarmInfoService.countSanWeiAlarm(aiAlarmInfo);//三违
|
int alarmYinHuan = aiAlarmInfoService.countYinHuanAlarm(aiAlarmInfo);//隐患
|
int alarmAll = aiAlarmInfoService.countAllAlarm(aiAlarmInfo);//智能识别仪
|
result.put("alarmSanWei",alarmSanWei);//三违
|
result.put("alarmYinHuan",alarmYinHuan);//隐患
|
result.put("alarmAll",alarmAll);//智能识别仪
|
return AjaxResult.success(result);
|
}
|
|
/**
|
* 报警分析统计
|
*/
|
@PostMapping("/alarmAnalyse")
|
public AjaxResult alarmAnalyse(@RequestBody AiAlarmInfo aiAlarmInfo)
|
{
|
Map<String,Object> alarmAnalyse = aiAlarmInfoService.countAlarmByTimeAndType(aiAlarmInfo);//报警分析
|
return AjaxResult.success(alarmAnalyse);
|
}
|
|
/**
|
* 报警分析统计
|
*/
|
@PostMapping("/alarmRegion")
|
public AjaxResult alarmRegion()
|
{
|
List<SysDictData> dictCache = DictUtils.getDictCache("sys_mine_region");
|
return AjaxResult.success(dictCache);
|
}
|
|
/**
|
* 报警分析统计
|
*/
|
@PostMapping("/indexAlarm")
|
public AjaxResult indexAlarm()
|
{
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
AiAlarmInfo aiAlarmInfo = new AiAlarmInfo();
|
Map<String, Object> params = aiAlarmInfo.getParams();
|
params.put("beginTime", format.format(DateUtils.getFistDayInYear(Calendar.getInstance().get(Calendar.YEAR))));
|
params.put("endTime",format.format(new Date()));
|
aiAlarmInfo.setParams(params);
|
int alarmSanWei = aiAlarmInfoService.countSanWeiAlarm(aiAlarmInfo);//三违
|
int alarmYinHuan = aiAlarmInfoService.countYinHuanAlarm(aiAlarmInfo);//隐患
|
int alarmAll = aiAlarmInfoService.countAllAlarm(aiAlarmInfo);//智能识别仪
|
int alarmYear = aiAlarmInfoService.countAlarmInYear();//年度报警
|
int alarmMonth = aiAlarmInfoService.countAlarmInMonth();//月度报警
|
List<Map<String,Object>> alarmTop = aiAlarmInfoService.selectCountAlarmByRegion();//本年区域报警Top排序
|
List<Map<String,Object>> alarmSmall = aiAlarmInfoService.selectCountAlarmBySmall();//本年报警类型统计
|
List<AiAlarmInfo> aiAlarmInfos = aiAlarmInfoService.selectAlarmInfoNew();//实时报警:未处理的最新十条
|
|
Map<String,Object> indexJson = new HashMap<>();
|
indexJson.put("alarmSanWei",alarmSanWei);
|
indexJson.put("alarmYinHuan",alarmYinHuan);
|
indexJson.put("alarmAll",alarmAll);
|
indexJson.put("alarmYear",alarmYear);
|
indexJson.put("alarmMonth",alarmMonth);
|
indexJson.put("alarmTop",alarmTop);
|
indexJson.put("alarmSmall",alarmSmall);
|
indexJson.put("aiAlarmInfos",aiAlarmInfos);
|
return AjaxResult.success(indexJson);
|
}
|
}
|