Newer
Older
sink / src / main / java / org / flume / alarm / manager / ProcessManager.java
zhout on 2 Mar 2022 3 KB first commit
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;
    }

}