package org.flume.alarm.resp; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.flume.alarm.AlarmEnumDTO.NoiseAlarmEnum; import org.flume.alarm.AlarmEnumDTO.TemperaturePressAlarmEnum; import org.flume.alarm.base.AbstractResponse; import org.flume.alarm.base.DeviceTypeEnum; import org.flume.alarm.core.util.StringUtils; import org.flume.alarm.manager.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; import java.io.IOException; /** * Created by lenovo on 2018/1/9. */ public class TempPressureResponse extends AbstractResponse { private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); private static final String[] mType = {"Data", "Event", "SetResponse", "GetResponse", "StartupRequest"}; @Override public void process(String content) { ClassPathXmlApplicationContext ac = this.getAc(); TemperatureManager temperatureManager = ac.getBean(TemperatureManager.class); PressManager pressManager = ac.getBean(PressManager.class); // AlarmRuleManager alarmRuleManager = ac.getBean(AlarmRuleManager.class); AlarmRecordManager alarmRecordManager = ac.getBean(AlarmRecordManager.class); DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(content); String devCode = json.get("devCode").toString(); logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); JSONObject jsonObject = (JSONObject) json.get("mBody"); if (mType[0].equals(json.get("mType"))||mType[3].equals(json.get("mType"))) {//存储上报数据 String cell = jsonObject.get("cell").toString(); JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); for (int i = 0; i < jsonArray.size(); i++) { try { String temperature = null!=((JSONObject) jsonArray.get(i)).get("temperature")? ((JSONObject) jsonArray.get(i)).get("temperature").toString():""; String pressure = null!=((JSONObject) jsonArray.get(i)).get("pressure")? ((JSONObject) jsonArray.get(i)).get("pressure").toString():""; String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); temperatureManager.saveData(devCode, upTime, temperature, cell);//存采集数据 pressManager.saveData(devCode, upTime, pressure, cell);//存采集数据 // String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Noise.toString());//获取报警阈值 // if (StringUtils.isNotBlank(thresh) && // Float.valueOf(val) > Float.valueOf(thresh)) { // alarmRecordManager.saveData(devCode, DeviceTypeEnum.Noise.toString(), val, // String.valueOf(NoiseAlarmEnum.OVER_THRESH.getIndex())); // } } catch (IOException e) { e.printStackTrace(); logger.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } } } else if (mType[1].equals(json.get("mType"))) {//存储报警事件 JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); for (int i = 0; i < jsonArray.size(); i++) { try { alarmRecordManager.saveData(devCode, DeviceTypeEnum.TempPressure.toString(), "", String.valueOf(TemperaturePressAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()),"1"); } catch (IOException e) { e.printStackTrace(); logger.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); } } }else if (mType[2].equals(json.get("mType"))) {//更新下发参数状态 try { if (DeviceTypeEnum.TempPressure.name().equals(json.get("devType"))) { if ("TempPressureConfigSuccess".equals(jsonObject.get("bType"))) { deviceConfigManager.updateStatus(devCode); } } } catch (Exception e) { e.printStackTrace(); logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); } }else if (mType[4].equals(json.get("mType"))) {//三码存储 try { String imei = jsonObject.get("imei").toString(); String iccid = jsonObject.get("iccid").toString(); imeiManager.saveData(devCode,imei,iccid); } catch (Exception e) { e.printStackTrace(); logger.error("--------ERROR:设备编号:" + devCode + ",更新参数下发状态失败-------"); } } } }