whycxzp
2024-01-24 3dd49c19ec1221c03cbc903f9d68dd18cd2f10c1
src/main/java/com/whyc/util/HeiHeUtil.java
@@ -7,7 +7,6 @@
import com.whyc.pojo.Battinf;
import com.whyc.pojo.Fbs9100State;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
@@ -1492,117 +1491,445 @@
        StringBuffer monTmpSb2 = new StringBuffer();
        StringBuffer monTimeSB2 = new StringBuffer();
        StringBuffer stopReasonSb1 = new StringBuffer();
        StringBuffer stopReasonSb2 = new StringBuffer();
        StringBuffer deviceStateSb1 = new StringBuffer();
        StringBuffer deviceStateSb2 = new StringBuffer();
        for (HeiHeRealtimeDataDTO realtimeDataDTO : realtimeDataDTOS) {
            String name = realtimeDataDTO.getName();
            List<String> allStopReasonSignals1 = new LinkedList<>();
            List<String> allDeviceStateSignals1 = new LinkedList<>();
            List<String> allStopReasonSignals2 = new LinkedList<>();
            List<String> allDeviceStateSignals2 = new LinkedList<>();
            String val = realtimeDataDTO.getVal();
            //获取所有的停止原因
            //获取所有的设备状态
            switch (name){
                case "第一组核容测试设备掉电终止":
                case "第一组核容测试设备掉电终止":{
                    if(val.equals("1")){
                        stopReasonSb1.append("0").append(",");
                    }
                    break;
                }
                case "第一组核容测试手动终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("1").append(",");
                    }
                    break;
                case "第一组核容测试放电时间到终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("2").append(",");
                    }
                    break;
                case "第一组核容测试放电容量到终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("3").append(",");
                    }
                    break;
                case "第一组核容测试单体电压下限到终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("4").append(",");
                    }
                    break;
                case "第一组核容测试单体温度上限终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("5").append(",");
                    }
                    break;
                case "第一组核容测试组端电压下限到终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("6").append(",");
                    }
                    break;
                case "第一组核容测试市电中断终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("7").append(",");
                    }
                    break;
                case "第一组核容测试单体通信异常终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("8").append(",");
                    }
                    break;
                case "第一组核容测试存储数据满终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("9").append(",");
                    }
                    break;
                case "第一组核容测试机内温度异常终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("10").append(",");
                    }
                    break;
                case "第一组核容测试放电电流异常终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("11").append(",");
                    }
                    break;
                case "第一组核容测试后台通信中断终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("12").append(",");
                    }
                    break;
                case "第一组核容测试内部程序异常终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("13").append(",");
                    }
                    break;
                case "第一组核容测试电源电压高终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("14").append(",");
                    }
                    break;
                case "第一组核容测试协转通信异常终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("15").append(",");
                    }
                    break;
                case "第一组核容测试切换装置通信故障终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("16").append(",");
                    }
                    break;
                case "第一组核容测试切换装置故障终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("27").append(",");
                    }
                    break;
                case "第一组核容测试DCAC模块故障终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("28").append(",");
                    }
                    break;
                case "第一组核容测试负载功率小终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("29").append(",");
                    }
                    break;
                case "第一组核容测试干接点接入故障终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("30").append(",");
                    }
                    break;
                case "第一组核容测试母联通信异常终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("31").append(",");
                    }
                    break;
                case "第一组核容测试母联手动关闭/信号异常终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("32").append(",");
                    }
                    break;
                case "第一组核容测试逆变器通信故障终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("33").append(",");
                    }
                    break;
                case "第一组核容测试防雷器故障终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("34").append(",");
                    }
                    break;
                case "第一组核容测试机柜表头通信故障终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("35").append(",");
                    }
                    break;
                case "第一组核容测试限流充电模块故障终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("36").append(",");
                    }
                    break;
                case "第一组核容测试紧急停止终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("37").append(",");
                    }
                    break;
                case "第一组核容测试远程闭锁终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("38").append(",");
                    }
                    break;
                case "第一组核容测试切换装置开关异常终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("39").append(",");
                    }
                    break;
                case "第一组核容测试交流空开异常终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("40").append(",");
                    }
                    break;
                case "第一组核容测试交流接触器异常终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("41").append(",");
                    }
                    break;
                case "第一组核容测试直流空开异常终止":
                    if(val.equals("1")){
                        stopReasonSb1.append("42").append(",");
                    }
                    break;
                default:break;
            }
            switch (name){
                case "第二组核容测试设备掉电终止":
                case "第二组核容测试设备掉电终止":{
                    if(val.equals("1")){
                        stopReasonSb2.append("0").append(",");
                    }
                    break;
                }
                case "第二组核容测试手动终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("1").append(",");
                    }
                    break;
                case "第二组核容测试放电时间到终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("2").append(",");
                    }
                    break;
                case "第二组核容测试放电容量到终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("3").append(",");
                    }
                    break;
                case "第二组核容测试单体电压下限到终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("4").append(",");
                    }
                    break;
                case "第二组核容测试单体温度上限终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("5").append(",");
                    }
                    break;
                case "第二组核容测试组端电压下限到终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("6").append(",");
                    }
                    break;
                case "第二组核容测试市电中断终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("7").append(",");
                    }
                    break;
                case "第二组核容测试单体通信异常终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("8").append(",");
                    }
                    break;
                case "第二组核容测试存储数据满终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("9").append(",");
                    }
                    break;
                case "第二组核容测试机内温度异常终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("10").append(",");
                    }
                    break;
                case "第二组核容测试放电电流异常终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("11").append(",");
                    }
                    break;
                case "第二组核容测试后台通信中断终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("12").append(",");
                    }
                    break;
                case "第二组核容测试内部程序异常终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("13").append(",");
                    }
                    break;
                case "第二组核容测试电源电压高终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("14").append(",");
                    }
                    break;
                case "第二组核容测试协转通信异常终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("15").append(",");
                    }
                    break;
                case "第二组核容测试切换装置通信故障终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("16").append(",");
                    }
                    break;
                case "第二组核容测试切换装置故障终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("27").append(",");
                    }
                    break;
                case "第二组核容测试DCAC模块故障终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("28").append(",");
                    }
                    break;
                case "第二组核容测试负载功率小终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("29").append(",");
                    }
                    break;
                case "第二组核容测试干接点接入故障终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("30").append(",");
                    }
                    break;
                case "第二组核容测试母联通信异常终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("31").append(",");
                    }
                    break;
                case "第二组核容测试母联手动关闭/信号异常终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("32").append(",");
                    }
                    break;
                case "第二组核容测试逆变器通信故障终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("33").append(",");
                    }
                    break;
                case "第二组核容测试防雷器故障终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("34").append(",");
                    }
                    break;
                case "第二组核容测试机柜表头通信故障终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("35").append(",");
                    }
                    break;
                case "第二组核容测试限流充电模块故障终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("36").append(",");
                    }
                    break;
                case "第二组核容测试紧急停止终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("37").append(",");
                    }
                    break;
                case "第二组核容测试远程闭锁终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("38").append(",");
                    }
                    break;
                case "第二组核容测试切换装置开关异常终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("39").append(",");
                    }
                    break;
                case "第二组核容测试交流空开异常终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("40").append(",");
                    }
                    break;
                case "第二组核容测试交流接触器异常终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("41").append(",");
                    }
                    break;
                case "第二组核容测试直流空开异常终止":
                    if(val.equals("1")){
                        stopReasonSb2.append("42").append(",");
                    }
                    break;
                default:break;
            }
            switch (name){
                case "第一组通信蓄电池远程核容系统在线浮充":
                {
                    if(val.equals("1")){
                        deviceStateSb1.append("0").append(",");
                    }
                    break;
                }
                case "第一组通信蓄电池远程核容系统充电":
                {
                    if(val.equals("1")){
                        deviceStateSb1.append("1").append(",");
                    }
                    break;
                }
                case "第一组通信蓄电池远程核容系统核容":
                {
                    if(val.equals("1")){
                        deviceStateSb1.append("2").append(",");
                    }
                    break;
                }
                case "第一组通信蓄电池远程核容系统停电放电":
                {
                    if(val.equals("1")){
                        deviceStateSb1.append("3").append(",");
                    }
                    break;
                }
                case "第一组通信蓄电池远程核容系统内阻测试":
                {
                    if(val.equals("1")){
                        deviceStateSb1.append("4").append(",");
                    }
                    break;
                }
                default:break;
            }
            switch (name){
                case "第二组通信蓄电池远程核容系统在线浮充":
                {
                    if(val.equals("1")){
                        deviceStateSb2.append("0").append(",");
                    }
                    break;
                }
                case "第二组通信蓄电池远程核容系统充电":
                {
                    if(val.equals("1")){
                        deviceStateSb2.append("1").append(",");
                    }
                    break;
                }
                case "第二组通信蓄电池远程核容系统核容":
                {
                    if(val.equals("1")){
                        deviceStateSb2.append("2").append(",");
                    }
                    break;
                }
                case "第二组通信蓄电池远程核容系统停电放电":
                {
                    if(val.equals("1")){
                        deviceStateSb2.append("3").append(",");
                    }
                    break;
                }
                case "第二组通信蓄电池远程核容系统内阻测试":
                {
                    if(val.equals("1")){
                        deviceStateSb2.append("4").append(",");
                    }
                    break;
                }
                default:break;
            }
            //填充其他所有的实时值
            switch (name){
                case "第1组电池组电压": battState1.setGroupVol(Float.valueOf(realtimeDataDTO.getVal()));break;
                case "第1组电池组电流": battState1.setGroupCurr(Float.valueOf(realtimeDataDTO.getVal()));break;
                case "第1组电池组电压": battState1.setGroupVol(Float.valueOf(val));break;
                case "第1组电池组电流": battState1.setGroupCurr(Float.valueOf(val));break;
                case "第1组在线端电压": {
                    battState1.setOnlineVol(Float.valueOf(realtimeDataDTO.getVal()));
                    battState1.setOnlineVol(Float.valueOf(val));
                    try {
                        battState1.setRecDatetime(DateUtil.YYYY_MM_DD_HH_MM_SS.parse(realtimeDataDTO.getTimestamp()));
                    }catch (Exception e){
                        //battState1.setRecDatetime();
                    }
                    break;
                }
                break;
                case "第1组电池组第1节单体电池电压值":
                case "第1组电池组第2节单体电池电压值":
                case "第1组电池组第3节单体电池电压值":
@@ -1707,7 +2034,7 @@
                case "第1组电池组第102节单体电池电压值":
                case "第1组电池组第103节单体电池电压值":
                case "第1组电池组第104节单体电池电压值":
                    monVolSb1.append(Float.valueOf(realtimeDataDTO.getVal())+",");break;
                    monVolSb1.append(val).append(",");break;
                case "第1组电池组第1节单体电池内阻值":
                case "第1组电池组第2节单体电池内阻值":
                case "第1组电池组第3节单体电池内阻值":
@@ -1812,10 +2139,10 @@
                case "第1组电池组第102节单体电池内阻值":
                case "第1组电池组第103节单体电池内阻值":
                case "第1组电池组第104节单体电池内阻值": {
                    monResSb1.append(Float.valueOf(realtimeDataDTO.getVal()) + ",");
                    monTimeSB1.append(Float.valueOf(realtimeDataDTO.getTimestamp())+",");
                    break;
                    monResSb1.append(val).append(",");
                    monTimeSB1.append(realtimeDataDTO.getTimestamp()).append(",");
                }
                break;
                case "第1组电池组第1节单体负极极柱温度":
                case "第1组电池组第2节单体负极极柱温度":
                case "第1组电池组第3节单体负极极柱温度":
@@ -1920,10 +2247,18 @@
                case "第1组电池组第102节单体负极极柱温度":
                case "第1组电池组第103节单体负极极柱温度":
                case "第1组电池组第104节单体负极极柱温度":
                    monTmpSb1.append(Float.valueOf(realtimeDataDTO.getVal())+",");break;
                case "第2组电池组电压":battState2.setGroupVol(Float.valueOf(realtimeDataDTO.getVal()));break;
                case "第2组电池组电流":battState2.setGroupCurr(Float.valueOf(realtimeDataDTO.getVal()));break;
                case "第2组在线端电压":battState2.setOnlineVol(Float.valueOf(realtimeDataDTO.getVal()));break;
                    monTmpSb1.append(val).append(",");break;
                case "第2组电池组电压":battState2.setGroupVol(Float.valueOf(val));break;
                case "第2组电池组电流":battState2.setGroupCurr(Float.valueOf(val));break;
                case "第2组在线端电压": {
                    battState2.setOnlineVol(Float.valueOf(val));
                    try {
                        battState2.setRecDatetime(DateUtil.YYYY_MM_DD_HH_MM_SS.parse(realtimeDataDTO.getTimestamp()));
                    }catch (Exception e){
                        //battState1.setRecDatetime();
                    }
                }
                break;
                case "第2组电池组第1节单体电池电压值":
                case "第2组电池组第2节单体电池电压值":
                case "第2组电池组第3节单体电池电压值":
@@ -2028,7 +2363,7 @@
                case "第2组电池组第102节单体电池电压值":
                case "第2组电池组第103节单体电池电压值":
                case "第2组电池组第104节单体电池电压值":
                    monVolSb2.append(Float.valueOf(realtimeDataDTO.getVal())+",");break;
                    monVolSb2.append(val).append(",");break;
                case "第2组电池组第1节单体电池内阻值":
                case "第2组电池组第2节单体电池内阻值":
                case "第2组电池组第3节单体电池内阻值":
@@ -2133,10 +2468,10 @@
                case "第2组电池组第102节单体电池内阻值":
                case "第2组电池组第103节单体电池内阻值":
                case "第2组电池组第104节单体电池内阻值": {
                    monResSb2.append(Float.valueOf(realtimeDataDTO.getVal()) + ",");
                    monTimeSB2.append(Float.valueOf(realtimeDataDTO.getTimestamp())+",");
                    break;
                    monResSb2.append(val).append(",");
                    monTimeSB2.append(realtimeDataDTO.getTimestamp()).append(",");
                }
                break;
                case "第2组电池组第1节单体负极极柱温度":
                case "第2组电池组第2节单体负极极柱温度":
                case "第2组电池组第3节单体负极极柱温度":
@@ -2241,9 +2576,54 @@
                case "第2组电池组第102节单体负极极柱温度":
                case "第2组电池组第103节单体负极极柱温度":
                case "第2组电池组第104节单体负极极柱温度":
                    monTmpSb2.append(Float.valueOf(realtimeDataDTO.getVal())+",");break;
                    monTmpSb2.append(val).append(",");break;
                default:break;
            }
        }
        //确定 设备1停止原因
        int stopReason1;
        String stopReason1Str = stopReasonSb1.toString();
        if(stopReason1Str.equals("")){
            stopReason1=255;
        }else{
            String[] stopReason1Split = stopReason1Str.split(",");
            stopReason1 = Integer.valueOf(stopReason1Split[0]);
        }
        //确定 设备2停止原因
        int stopReason2;
        String stopReason2Str = stopReasonSb2.toString();
        if(stopReason2Str.equals("")){
            stopReason2=255;
        }else{
            String[] stopReason2Split = stopReason2Str.split(",");
            stopReason2 = Integer.valueOf(stopReason2Split[0]);
        }
        //确定 设备状态1
        int deviceStateType1;
        String deviceState1Str = deviceStateSb1.toString();
        if(deviceState1Str.equals("")){
            deviceStateType1=-1;
        }else{
            String[] deviceState1Split = deviceState1Str.split(",");
            deviceStateType1 = Integer.valueOf(deviceState1Split[0]);
        }
        //确定 设备状态2
        int deviceStateType2;
        String deviceState2Str = deviceStateSb2.toString();
        if(deviceState2Str.equals("")){
            deviceStateType2=-1;
        }else{
            String[] deviceState2Split = deviceState2Str.split(",");
            deviceStateType2 = Integer.valueOf(deviceState2Split[0]);
        }
        //回写设备状态和终止原因
        deviceState1.setDevWorkstate(deviceStateType1);
        deviceState1.setDevLastCaptestStopType(stopReason1);
        deviceState2.setDevWorkstate(deviceStateType2);
        deviceState2.setDevLastCaptestStopType(stopReason2);
        //对应结果接收
        deviceStateList.add(deviceState1);
        deviceStateList.add(deviceState2);