package org.flume.alarm.manager; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.flume.alarm.AlarmEnumDTO.LampAlarmEnum; import org.flume.alarm.AlarmEnumDTO.LampHouseAlarmEnum; import org.flume.alarm.core.hibernate.HibernateEntityDao; import org.flume.alarm.domain.OfflineProcess; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; import java.util.Date; /** * Created by lenovo on 2017/12/15. */ @Service public class ProcessManager extends HibernateEntityDao<OfflineProcess> { @Resource private LampMonitorManager lampMonitorManager; public boolean saveLampRecord(JSONObject jsonObject) throws IOException { try { String devCode = jsonObject.get("devCode").toString(); JSONObject object = (JSONObject) jsonObject.get("mBody"); JSONArray jsonArray = (JSONArray) object.get("eventType"); int lowerCount = 0; String lampNum = "0"; for (int i = 0; i < jsonArray.size(); i++) { OfflineProcess offlineProcess = new OfflineProcess(); offlineProcess.setAlarmTime(new Date()); offlineProcess.setDevAddress(devCode); if (devCode.indexOf("72") == 0) { offlineProcess.setAlarmType(LampHouseAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()); offlineProcess.setDevType("灯箱控制器"); }else if (devCode.indexOf("73") == 0) { offlineProcess.setDevType("单灯控制器"); offlineProcess.setAlarmType(LampAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()); if (LampAlarmEnum.LampChannel1LowElectricityAlarm.name(). equals(jsonArray.get(i).toString()))//低电流存储告警数据 lampMonitorManager.saveLampMoitorData(devCode, (JSONArray) object.get("datas"), "2","1"); } else if (devCode.indexOf("74") == 0) { offlineProcess.setDevType(jsonArray.get(i).toString().indexOf("1") != -1 ? "双灯控制器1" : "双灯控制器2"); offlineProcess.setAlarmType(LampAlarmEnum.valueOf(jsonArray.get(i).toString()).getIndex()); lampNum = jsonArray.get(i).toString().indexOf("1") != -1 ? "1" : "2"; if (LampAlarmEnum.LampChannel1LowElectricityAlarm.name(). equals(jsonArray.get(i).toString()) || LampAlarmEnum.LampChannel2LowElectricityAlarm.name(). equals(jsonArray.get(i).toString())) lowerCount++; } offlineProcess.setAlarmStatus(0); offlineProcess.setIsSend(0); save(offlineProcess); } if (lowerCount == 1) { if("1".equals(lampNum)){ lampMonitorManager.saveLampMoitorData(devCode, (JSONArray) object.get("datas"), "2","1"); }else if("2".equals(lampNum)){ lampMonitorManager.saveLampMoitorData(devCode, (JSONArray) object.get("datas"), "1","2"); } }else if(lowerCount == 2){ lampMonitorManager.saveLampMoitorData(devCode, (JSONArray) object.get("datas"), "2","2"); } } catch (Exception e) { e.printStackTrace(); return false; } return true; } }