package com.ruoyi.statistical.controller;
|
|
import com.ruoyi.statistical.param.ESParam;
|
import com.ruoyi.statistical.service.StatisticalService;
|
import com.ruoyi.statistical.vo.NumVo;
|
import com.ruoyi.statistical.vo.TenVo;
|
import com.ruoyi.utils.result.Results;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.annotation.Resource;
|
import java.time.LocalDate;
|
import java.util.ArrayList;
|
import java.util.Calendar;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* @author Administrator
|
*/
|
@RestController
|
@RequestMapping("statistical")
|
@Api(tags = "数据统计")
|
public class StatisticalController {
|
|
@Resource
|
private StatisticalService statisticalService;
|
|
/**
|
* 厂区介绍存储
|
*/
|
@ApiOperation("厂区介绍存储")
|
@PostMapping("factory/save")
|
public Results factorySave(@RequestBody Map<String,String> map){
|
return statisticalService.factorySave(map);
|
}
|
|
/**
|
* 厂区介绍查询
|
*/
|
@ApiOperation("厂区介绍查询")
|
@GetMapping("factory/select")
|
public Results factorySelect(){
|
return statisticalService.factorySelect();
|
}
|
|
/**
|
* 报警数量分析年
|
*/
|
@ApiOperation("报警数量分析年")
|
@GetMapping("alarm/year")
|
public Results alarmYear(String type){
|
LocalDate today = LocalDate.now();
|
int year = today.getYear();
|
ESParam esParam = new ESParam();
|
esParam.setStart(year+"-01-01");
|
esParam.setEnd(year+"-12-31");
|
if("1001".equals(type)){
|
//盗电报警
|
return Results.succeed(statisticalService.stealelecYear(esParam));
|
}else if("1002".equals(type)){
|
//通用光电
|
return Results.succeed(statisticalService.cameraYear(esParam));
|
}else if("1003".equals(type)){
|
//雷达报警
|
return Results.succeed(statisticalService.moveYear(esParam));
|
}else if("1004".equals(type)){
|
//防火报警
|
return Results.succeed(statisticalService.fireYear(esParam));
|
}else if("1005".equals(type)){
|
//外联报警
|
return Results.succeed(statisticalService.externalYear(esParam));
|
}else if("1006".equals(type)){
|
//门禁报警
|
return Results.succeed(statisticalService.accessYear(esParam));
|
}else if("1007".equals(type)){
|
//移动终端
|
return Results.succeed(statisticalService.apponekeyYear(esParam));
|
}else if("1008".equals(type)){
|
//雷达停机
|
return Results.succeed(statisticalService.pumpYear(esParam));
|
}else if("1010".equals(type)){
|
//电子围栏
|
return Results.succeed(statisticalService.wallYear(esParam));
|
}else if("1012".equals(type)){
|
//预警告警
|
return Results.succeed(statisticalService.digitizationYear(esParam));
|
}else if("1014".equals(type)){
|
//管线泄漏
|
return Results.succeed(statisticalService.tubeYear(esParam));
|
}
|
return Results.succeed();
|
}
|
|
/**
|
* 报警数量分析月
|
*/
|
@ApiOperation("报警数量分析月")
|
@GetMapping("alarm/month")
|
public Results alarmMonth(Integer month,String type){
|
LocalDate today = LocalDate.now();
|
int year = today.getYear();
|
int day = getDaysInMonth(month);
|
ESParam esParam = new ESParam();
|
esParam.setStart(year+"-"+month+"-01");
|
esParam.setEnd(year+"-"+month+"-"+day);
|
esParam.setMonth(month);
|
if("1001".equals(type)){
|
//盗电报警
|
return Results.succeed(statisticalService.stealelecMonth(esParam));
|
}else if("1002".equals(type)){
|
//通用光电
|
return Results.succeed(statisticalService.cameraMonth(esParam));
|
}else if("1003".equals(type)){
|
//雷达报警
|
return Results.succeed(statisticalService.moveMonth(esParam));
|
}else if("1004".equals(type)){
|
//防火报警
|
return Results.succeed(statisticalService.fireMonth(esParam));
|
}else if("1005".equals(type)){
|
//外联报警
|
return Results.succeed(statisticalService.externalMonth(esParam));
|
}else if("1006".equals(type)){
|
//门禁报警
|
return Results.succeed(statisticalService.accessMonth(esParam));
|
}else if("1007".equals(type)){
|
//移动终端
|
return Results.succeed(statisticalService.apponekeyMonth(esParam));
|
}else if("1008".equals(type)){
|
//雷达停机
|
return Results.succeed(statisticalService.pumpMonth(esParam));
|
}else if("1010".equals(type)){
|
//电子围栏
|
return Results.succeed(statisticalService.wallMonth(esParam));
|
}else if("1012".equals(type)){
|
//预警告警
|
return Results.succeed(statisticalService.digitizationMonth(esParam));
|
}else if("1014".equals(type)){
|
//管线泄漏
|
return Results.succeed(statisticalService.tubeMonth(esParam));
|
}
|
return Results.succeed();
|
}
|
|
//返回每月天数
|
public int getDaysInMonth(int month) {
|
Calendar calendar = Calendar.getInstance();
|
switch (month) {
|
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
|
return 31;
|
case 4: case 6: case 9: case 11:
|
return 30;
|
case 2:
|
if (calendar.get(Calendar.YEAR) % 4 == 0 && (calendar.get(Calendar.YEAR) % 100 != 0 || calendar.get(Calendar.YEAR) % 400 == 0)) {
|
return 29;
|
} else {
|
return 28;
|
}
|
default:
|
throw new IllegalArgumentException("Invalid Month");
|
}
|
}
|
|
/**
|
* 在线设备数
|
*/
|
@ApiOperation("在线设备数")
|
@GetMapping("unit")
|
public Results unit(){
|
return Results.succeed(statisticalService.unit());
|
}
|
|
/**
|
* 报警数量
|
*/
|
@ApiOperation("报警数量")
|
@GetMapping("alarm/num")
|
public Results num(){
|
List<TenVo> tenVo = new ArrayList<>();
|
TenVo stealelec = new TenVo();
|
stealelec.setName("盗电报警");
|
stealelec.setValue(statisticalService.stealelecNum());
|
tenVo.add(stealelec);
|
TenVo camera = new TenVo();
|
camera.setName("通用光电");
|
camera.setValue(statisticalService.cameraNum());
|
tenVo.add(camera);
|
TenVo move = new TenVo();
|
move.setName("雷达移动");
|
move.setValue(statisticalService.moveNum());
|
tenVo.add(move);
|
TenVo fire = new TenVo();
|
fire.setName("雷达防火");
|
fire.setValue(statisticalService.fireNum());
|
tenVo.add(fire);
|
TenVo external = new TenVo();
|
external.setName("外联报警");
|
external.setValue(statisticalService.externalNum());
|
tenVo.add(external);
|
TenVo access = new TenVo();
|
access.setName("门禁报警");
|
access.setValue(statisticalService.accessNum());
|
tenVo.add(access);
|
TenVo apponekey = new TenVo();
|
apponekey.setName("移动终端");
|
apponekey.setValue(statisticalService.apponekeyNum());
|
tenVo.add(apponekey);
|
TenVo pump = new TenVo();
|
pump.setName("雷达停机");
|
pump.setValue(statisticalService.pumpNum());
|
tenVo.add(pump);
|
TenVo wall = new TenVo();
|
wall.setName("电子围栏");
|
wall.setValue(statisticalService.wallNum());
|
tenVo.add(wall);
|
TenVo digitization = new TenVo();
|
digitization.setName("预警报警");
|
digitization.setValue(statisticalService.digitizationNum());
|
tenVo.add(digitization);
|
TenVo tube = new TenVo();
|
tube.setName("管线泄露");
|
tube.setValue(statisticalService.tubeNum());
|
tenVo.add(tube);
|
return Results.succeed(tenVo);
|
}
|
|
/**
|
* 24小时报警兴趣点前十
|
*/
|
@ApiOperation("24小时报警兴趣点前十")
|
@GetMapping("alarm/ten")
|
public Results ten(){
|
return Results.succeed(statisticalService.ten());
|
}
|
|
/**
|
* 抽油机运行状态
|
*/
|
@ApiOperation("抽油机运行状态")
|
@GetMapping("alarm/pump")
|
public Results pump(){
|
return Results.succeed(statisticalService.pump());
|
}
|
|
}
|