package com.moral.controller;
|
|
import com.alibaba.fastjson.JSON;
|
import com.moral.entity.Alarm;
|
import com.moral.entity.Device;
|
import com.moral.entity.Sensor;
|
import com.moral.entity.alarm.AlarmConfig;
|
import com.moral.entity.alarm.AlarmConfigValue;
|
import com.moral.service.AlarmConfigService;
|
import com.moral.service.DeviceService;
|
import com.moral.service.HistoryService;
|
import com.moral.service.SensorService;
|
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.lang3.StringUtils;
|
import org.apache.log4j.Logger;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.servlet.ModelAndView;
|
import javax.annotation.Resource;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
@RestController
|
@RequestMapping("alarm")
|
public class AlarmController {
|
private static Logger logger = Logger.getLogger(AlarmController.class);
|
@Resource
|
DeviceService deviceService;
|
@Resource
|
SensorService sensorService;
|
@Resource
|
HistoryService historyService;
|
@Resource
|
AlarmConfigService alarmConfigService;
|
/**
|
*
|
* @param alarm
|
* @return
|
*/
|
@RequestMapping(value = "/alarm-show", method = RequestMethod.GET)
|
public ModelAndView alarmShow(Alarm alarm){
|
ModelAndView model = new ModelAndView();
|
if (alarm.getMac()!=null&&alarm.getState()!=null
|
&&alarm.getJson()!=null&&alarm.getTime()!=null){
|
model.setViewName("/alarm/device-data");
|
Device device = deviceService.getDeviceByMac(alarm.getMac());
|
if(!CollectionUtils.isEmpty(device.getOrganizationIds())){
|
List<Sensor> sensorList = sensorService.queryByVersionId(device.getDeviceVersionId()).getData();
|
String data = historyService.queryValueByMacAndTime(alarm.getMac(),alarm.getTime());
|
AlarmConfigValue alarmConfigValue = alarmConfigService.queryValueByOrganizationId(device.getOrganizationIds().get(0)).get();
|
if(device!=null
|
&&!CollectionUtils.isEmpty(sensorList)
|
&&!StringUtils.isEmpty(data)
|
&&alarmConfigValue!=null
|
&&alarmConfigValue.getAlarmLevels()!=null){
|
Map<String,Object> params = new HashMap<>();
|
model.addObject("alarm",JSON.toJSON(alarm));
|
model.addObject("device",JSON.toJSON(device));
|
model.addObject("sensors",JSON.toJSON(sensorList));
|
model.addObject("data",JSON.toJSON(data));
|
model.addObject("alarmLevels",JSON.toJSON(alarmConfigValue.getAlarmLevels()));
|
}
|
else{
|
StringBuilder message = new StringBuilder();
|
message.append("some params is null,alarm:");
|
message.append(JSON.toJSON(alarm));
|
message.append(",device:");
|
message.append(JSON.toJSON(device));
|
message.append(",sensorList:");
|
message.append(JSON.toJSON(sensorList));
|
message.append(",data:");
|
message.append(JSON.toJSON(data));
|
logger.warn(message.toString());
|
model.setViewName("403");
|
}
|
}else{
|
StringBuilder message = new StringBuilder();
|
message.append("some params is null,alarm:");
|
message.append(JSON.toJSON(alarm));
|
message.append(",device:");
|
message.append(JSON.toJSON(device));
|
logger.warn(message.toString());
|
model.setViewName("403");
|
}
|
|
}else{
|
StringBuilder message = new StringBuilder();
|
message.append("some params is null,alarm:");
|
message.append(JSON.toJSON(alarm));
|
model.setViewName("403");
|
}
|
return model;
|
}
|
}
|