@ -264,8 +264,6 @@ public class AnalysisReceiveOrder485 {
					 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // 热泵
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public  void  analysisPumpOrder485 ( final  String  dateStr , final  String  receiveData ,  final  String  registerAddr ,  final  String  brand ,  String  buildingId ,  String  buildingName )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//		if (!Constant.CONTROL_WEB_FLAG) {
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//			threadPoolService.execute(() -> {
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        String  checkStr  =  receiveData . substring ( 0 ,  receiveData . length ( )  -  4 ) ; //检验报文
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        String  checkWord  =  ExchangeStringUtil . getStrCRC16 ( checkStr ) ; //生成校验码
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        String  sValue  =  null ;   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -297,11 +295,6 @@ public class AnalysisReceiveOrder485 {
					 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    nowDataService . proPumpMinutes ( buildingId ,  addr ,  sValue ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    log . info ( "计算热泵运行时长,楼栋名称:"  +  buildingName  +  ",热泵编号:"  +  addr  +  ",状态:"  +  sValue ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    nowDataService . saveNowHistoryData ( addr ,  "热泵" ,  sValue ,  dataType ,  buildingId ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//								String state=nowDataService.selectState(buildingId); //判断热泵状态,如果有一个以上热泵运行,楼栋公共信息补水运行
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//								NowPublicDataEntity publicData=new NowPublicDataEntity();
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//								publicData.setBuildingId(buildingId);
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//								publicData.setUpWater(state);
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//								nowPublicDataService.saveNowHistoryPublicData(publicData);
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    log . info ( "热泵ID:"  +  addr  +  ",数据: "  +  sValue  +  ",保存数据库成功!楼栋名称:"  +  buildingName ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }  else  if  ( registerAddr . equalsIgnoreCase ( "0642" )  | |  registerAddr . equalsIgnoreCase ( "0007" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    //0642设定温度,0007水箱水温
   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -325,8 +318,6 @@ public class AnalysisReceiveOrder485 {
					 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        nowPublicDataService . saveNowHistoryPublicData ( publicData ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        log . info ( "楼栋名称:"  +  buildingName  +  ",热泵编号:"  +  addr ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//									nowDataService.proWaterTemp(dateStr,buildingId,addr); //保存楼栋时间点温度变化
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//									log.info("=========保存楼栋时间点温度变化值!===========");
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    }  else  if  ( dataType . equals ( "tempSet" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        pumpSetService . updatePumpSetTemp ( sValue ,  buildingId ,  addr ) ;  //更新设定温度
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    }   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -346,10 +337,6 @@ public class AnalysisReceiveOrder485 {
					 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    nowDataService . saveNowHistoryData ( addr ,  "热泵" ,  sValue ,  dataType ,  buildingId ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    log . info ( "热泵ID:"  +  addr  +  ",数据: "  +  sValue  +  ",保存数据库成功!楼栋名称:"  +  buildingName ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//							else if (registerAddr.equalsIgnoreCase("0656") || registerAddr.equalsIgnoreCase("065A")
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//									|| registerAddr.equalsIgnoreCase("065E")) {  //定时设置值
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//								sValue = ExchangeStringUtil.hexToDec(checkStr.substring(6, 10));
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//							}
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }  else  if  ( checkStr . substring ( 2 ,  4 ) . equalsIgnoreCase ( "10" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                log . info ( "时间: "  +  dateStr  +  ",热泵ID: "  +  addr  +  ",操作成功! " ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -380,11 +367,6 @@ public class AnalysisReceiveOrder485 {
					 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    nowDataService . proPumpMinutes ( buildingId ,  addr ,  sValue ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    log . info ( "计算热泵运行时长,楼栋名称:"  +  buildingName  +  ",热泵编号:"  +  addr  +  ",状态:"  +  sValue ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    nowDataService . saveNowHistoryData ( addr ,  "热泵" ,  sValue ,  dataType ,  buildingId ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//								String state=nowDataService.selectState(buildingId); //判断热泵状态,如果有一个以上热泵运行,楼栋公共信息补水运行
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//								NowPublicDataEntity publicData=new NowPublicDataEntity();
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//								publicData.setBuildingId(buildingId);
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//								publicData.setUpWater(state);
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//								nowPublicDataService.saveNowHistoryPublicData(publicData);
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    log . info ( "热泵ID: "  +  addr  +  ",数据: "  +  sValue  +  "保存数据库成功!楼栋名称:"  +  buildingName ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }  else  if  ( registerAddr . equalsIgnoreCase ( "0003" )  | |  registerAddr . equalsIgnoreCase ( "0064" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    //0003设定温度,0064水箱水温
   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -426,19 +408,82 @@ public class AnalysisReceiveOrder485 {
					 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    nowDataService . saveNowHistoryData ( addr ,  "热泵" ,  sValue ,  dataType ,  buildingId ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    log . info ( "时间: "  +  dateStr  +  ",热泵ID: "  +  addr  +  ",数据: "  +  sValue  +  "保存数据库成功!楼栋名称:"  +  buildingName ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//							else if (registerAddr.equalsIgnoreCase("0656") || registerAddr.equalsIgnoreCase("065A")
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//									|| registerAddr.equalsIgnoreCase("065E")) {  //定时设置值
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//								sValue = ExchangeStringUtil.hexToDec(checkStr.substring(6, 10));
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//							}
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }  else  if  ( checkStr . substring ( 2 ,  4 ) . equalsIgnoreCase ( "06" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                log . info ( "时间: "  +  dateStr  +  ",热泵ID: "  +  addr  +  ",操作成功! " ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  else  if  ( Constant . BRAND_RUI_XING . equals ( brand ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if  ( checkStr . substring ( 2 ,  4 ) . equalsIgnoreCase ( "03" ) )  { //读
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if  ( registerAddr . equalsIgnoreCase ( "0001" ) )  {       //运行状态
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    dataType  =  "runState" ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    data  =  checkStr . substring ( 8 ,  10 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    if  ( data . equalsIgnoreCase ( "00" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        sValue  =  "不运行" ;  //关机模式
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    }  else  if  ( data . equalsIgnoreCase ( "01" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        sValue  =  "运行" ;  //制热模式
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    //计算热泵运行时间,按分钟
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    nowDataService . proPumpMinutes ( buildingId ,  addr ,  sValue ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    log . info ( "计算热泵运行时长,楼栋名称:"  +  buildingName  +  ",热泵编号:"  +  addr  +  ",状态:"  +  sValue ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    nowDataService . saveNowHistoryData ( addr ,  "热泵" ,  sValue ,  dataType ,  buildingId ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    log . info ( "时间: "  +  dateStr  +  ",热泵ID: "  +  addr  +  ",数据: "  +  sValue  +  "保存数据库成功!楼栋名称:"  +  buildingName ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }  else  if  ( registerAddr . equalsIgnoreCase ( "000A" )  | |  registerAddr . equalsIgnoreCase ( "0046" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    //000A设定温度,0046水箱水温
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    if  ( registerAddr . equalsIgnoreCase ( "000A" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        dataType  =  "tempSet" ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        dataType  =  "waterTemp" ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    //读数
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    sValue  =  ExchangeStringUtil . hexToDec ( checkStr . substring ( 6 ,  10 ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    if  ( dataType . equals ( "waterTemp" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        sValue  =  String . valueOf ( Double . parseDouble ( sValue ) / 10 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        String  avgTemp  =  nowDataService . selectAve ( buildingId ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        NowPublicDataEntity  publicData  =  new  NowPublicDataEntity ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        publicData . setBuildingId ( buildingId ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        publicData . setUseWaterTemp ( avgTemp ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        publicData . setBackWaterTemp ( avgTemp ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        String  pumpId  =  nowDataService . selectMinPumpId ( buildingId ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        log . info ( "---------------addr:"  +  addr  +  ",pumpId:"  +  pumpId  +  " ---------------" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        if  ( addr . equals ( pumpId ) )  {  //取ID最小的热泵为单箱温度
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            publicData . setSingleTemp ( sValue ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            log . info ( "---------------单箱温度:"  +  sValue  +  "---------------" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        nowPublicDataService . saveNowHistoryPublicData ( publicData ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        log . info ( "楼栋名称:"  +  buildingName  +  ",热泵编号:"  +  addr ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    }  else  if  ( dataType . equals ( "tempSet" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        pumpSetService . updatePumpSetTemp ( sValue ,  buildingId ,  addr ) ;  //更新设定温度
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    nowDataService . saveNowHistoryData ( addr ,  "热泵" ,  sValue ,  dataType ,  buildingId ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    log . info ( "时间: "  +  dateStr  +  ",热泵ID: "  +  addr  +  ",数据: "  +  sValue  +  "保存数据库成功!楼栋名称:"  +  buildingName ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }  else  if  ( registerAddr . equalsIgnoreCase ( "0050" ) )  {  //故障状态
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    dataType  =  "isFault" ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    String  sData  =  ExchangeStringUtil . hexString2binaryString ( checkStr . substring ( 8 ,  10 ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    sData  =  ExchangeStringUtil . addZeroForNum ( sData ,  8 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    if  ( sData . substring ( 7 ,  8 ) . equalsIgnoreCase ( "0" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        sValue  =  "无故障" ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        deviceInstallService . updateDeviceFault ( "0" ,  addr ,  "热泵" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    }  else  if  ( sData . substring ( 7 ,  8 ) . equalsIgnoreCase ( "1" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        sValue  =  "有故障" ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        deviceInstallService . updateDeviceFault ( "1" ,  addr ,  "热泵" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    nowDataService . saveNowHistoryData ( addr ,  "热泵" ,  sValue ,  dataType ,  buildingId ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    log . info ( "时间: "  +  dateStr  +  ",热泵ID: "  +  addr  +  ",数据: "  +  sValue  +  "保存数据库成功!楼栋名称:"  +  buildingName ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }  else  if  ( registerAddr . equalsIgnoreCase ( "0028" )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        | |  registerAddr . equalsIgnoreCase ( "002C" )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        | |  registerAddr . equalsIgnoreCase ( "0030" ) )  {   //读定时设置值
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    // 01 03 08 0003 0000 0016 0000 4713
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    String  startTime  =  ExchangeStringUtil . addZeroForNum ( ExchangeStringUtil . hexToDec ( checkStr . substring ( 6 ,  10 ) ) ,  2 )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            +  ExchangeStringUtil . addZeroForNum ( ExchangeStringUtil . hexToDec ( checkStr . substring ( 10 ,  14 ) ) ,  2 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    String  closetTime  =  ExchangeStringUtil . addZeroForNum ( ExchangeStringUtil . hexToDec ( checkStr . substring ( 14 ,  18 ) ) ,  2 )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            +  ExchangeStringUtil . addZeroForNum ( ExchangeStringUtil . hexToDec ( checkStr . substring ( 18 ,  22 ) ) ,  2 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    sValue  =  startTime  +  closetTime ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }  else  if  ( checkStr . substring ( 2 ,  4 ) . equalsIgnoreCase ( "10" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                log . info ( "时间: "  +  dateStr  +  ",热泵ID: "  +  addr  +  ",操作成功! " ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        nowDataService . proWaterTemp ( dateStr ,  buildingId ,  addr ) ;  //保存楼栋时间点温度变化
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        log . info ( "----------------保存楼栋时间点温度变化值!----------------" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//			});
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//		}
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public  String  analysisPumpOrder4852 ( final  String  receiveData ,  final  String  registerAddr ,  final  String  brand ,  String  buildingId ,  final  String  buildingName )  {   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -910,7 +955,7 @@ public class AnalysisReceiveOrder485 {
					 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // 水位开关,长度42,128
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public  void  analysisRelayOrder485 ( final  String  dateStr , final  String  receiveData ,  final  String  registerAddr ,  final  String  brand ,  String  buildingId ,  String  buildingName )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public  void  analysisRelayOrder485 ( final  String  dateStr , final  String  receiveData ,  final  String  registerAddr ,  final  String  brand ,  String  buildingId ,  String  buildingName ,  String  customName )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//		threadPoolService.execute(() -> {
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        String  l1  =  "" ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        String  l2  =  "" ;   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -1037,20 +1082,31 @@ public class AnalysisReceiveOrder485 {
					 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }  else  if  ( registerAddr . equals ( "0010" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                NowPublicDataEntity  publicData  =  new  NowPublicDataEntity ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                publicData . setBuildingId ( buildingId ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if  ( l1 . equals ( "0001" ) )  {   //l路,0000表示有输入,0001表示无输入
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    publicData . setUseWater ( "运行" ) ;  //供水
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    publicData . setBackWater ( "运行" ) ; //回水
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    publicData . setUseWater ( "不运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    publicData . setBackWater ( "不运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                log . info ( "-----------------供水/回水状态:"  +  l1  +  "-----------------" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if  ( l2 . equals ( "0001" ) )  {   //2路  //补水
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    publicData . setUpWater ( "运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if  ( customName . contains ( Constant . CUSTOM_NAME_GUANGSHANG ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    if  ( l8 . equals ( "0001" ) )  {   //l8路,0000表示有输入,0001表示无输入
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        publicData . setUseWater ( "运行" ) ;  //供水
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        publicData . setBackWater ( "运行" ) ; //回水
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        publicData . setUseWater ( "不运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        publicData . setBackWater ( "不运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    log . info ( "-----------------供水/回水状态:"  +  l8  +  "-----------------" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    publicData . setUpWater ( "不运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    if  ( l1 . equals ( "0001" ) )  {   //l路,0000表示有输入,0001表示无输入
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        publicData . setUseWater ( "运行" ) ;  //供水
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        publicData . setBackWater ( "运行" ) ; //回水
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        publicData . setUseWater ( "不运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        publicData . setBackWater ( "不运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    log . info ( "-----------------供水/回水状态:"  +  l1  +  "-----------------" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    if  ( l2 . equals ( "0001" ) )  {   //2路  //补水
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        publicData . setUpWater ( "运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        publicData . setUpWater ( "不运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    log . info ( "-----------------补水状态:"  +  l2  +  "-----------------" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                log . info ( "-----------------补水状态:"  +  l2  +  "-----------------" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                nowPublicDataService . saveNowHistoryPublicData ( publicData ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                log . info ( "-----------------状态保存数据库成功!楼栋名称:"  +  buildingName  +  "-----------------" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -1194,7 +1250,6 @@ public class AnalysisReceiveOrder485 {
					 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // 热泵状态处理(水位开关),长度42,128
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public  void  analysisPumpStateOrder ( final  String  dateStr ,  final  String  receiveData ,  final  String  registerAddr ,  final  String  brand ,  String  buildingId ,  String  buildingName )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//		threadPoolService.execute(() -> {
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        String  l1  =  "" ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        String  l2  =  "" ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        String  l3  =  "" ;   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1206,7 +1261,7 @@ public class AnalysisReceiveOrder485 {
					 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        String  runState  =  "" ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        String  addr  =  "" ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        Map < String ,  String >  map  =  new  HashMap < String ,  String > ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( brand  = =  null  | |  brand . equals ( "" )  | |  brand . equals ( "顶威" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( StringUtils . isBlank ( brand )  | |  brand . equals ( "顶威" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            String  checkStr  =  receiveData . substring ( 0 ,  receiveData . length ( )  -  4 ) ;   //检验报文减,去校验码
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            String  checkNum  =  ExchangeStringUtil . makeChecksum ( checkStr ) ;            //生成校验码
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if  ( checkNum . equalsIgnoreCase ( receiveData . substring ( receiveData . length ( )  -  4 ,  receiveData . length ( )  -  2 ) ) )  {   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1218,42 +1273,42 @@ public class AnalysisReceiveOrder485 {
					 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                data  =  ExchangeStringUtil . cutThree ( data ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                String  strStatus  =  ExchangeStringUtil . hexString2binaryString ( data ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                strStatus  =  String . format ( "%08d" ,  Long . parseLong ( strStatus ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if  ( strStatus . substring ( 7 ,  8 ) . equals ( "1" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if  ( strStatus . charAt ( 7 )  = =  '1' )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    l1  =  "1" ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    l1  =  "0" ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if  ( strStatus . substring ( 6 ,  7 ) . equals ( "1" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if  ( strStatus . charAt ( 6 )  = =  '1' )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    l2  =  "1" ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    l2  =  "0" ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if  ( strStatus . substring ( 5 ,  6 ) . equals ( "1" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if  ( strStatus . charAt ( 5 )  = =  '1' )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    l3  =  "1" ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    l3  =  "0" ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if  ( strStatus . substring ( 4 ,  5 ) . equals ( "1" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if  ( strStatus . charAt ( 4 )  = =  '1' )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    l4  =  "1" ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    l4  =  "0" ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if  ( strStatus . substring ( 3 ,  4 ) . equals ( "1" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if  ( strStatus . charAt ( 3 )  = =  '1' )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    l5  =  "1" ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    l5  =  "0" ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if  ( strStatus . substring ( 2 ,  3 ) . equals ( "1" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if  ( strStatus . charAt ( 2 )  = =  '1' )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    l6  =  "1" ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    l6  =  "0" ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if  ( strStatus . substring ( 1 ,  2 ) . equals ( "1" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if  ( strStatus . charAt ( 1 )  = =  '1' )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    l7  =  "1" ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    l7  =  "0" ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if  ( strStatus . substring ( 0 ,  1 ) . equals ( "1" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if  ( strStatus . charAt ( 0 )  = =  '1' )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    l8  =  "1" ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    l8  =  "0" ;   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1262,8 +1317,6 @@ public class AnalysisReceiveOrder485 {
					 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  else  if  ( brand . equals ( "中凯" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            String  checkStr  =  receiveData . substring ( 0 ,  receiveData . length ( )  -  4 ) ;  //检验报文,减去校验码
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            addr  =  ExchangeStringUtil . hexToDec ( checkStr . substring ( 2 ,  4 ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            //if (registerAddr!=null && !registerAddr.equals("")) {
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            //if (registerAddr.equalsIgnoreCase("0017")) {      //中凯拿功能码作为寄存器地址用
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            l1  =  checkStr . substring ( 4 ,  6 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            l2  =  checkStr . substring ( 20 ,  22 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            l3  =  checkStr . substring ( 36 ,  38 ) ;   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1272,17 +1325,11 @@ public class AnalysisReceiveOrder485 {
					 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            l6  =  checkStr . substring ( 84 ,  86 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            l7  =  checkStr . substring ( 100 ,  102 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            l8  =  checkStr . substring ( 116 ,  118 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            //} else if (registerAddr.equals("0012")) {
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            //log.info("时间: " + dateStr + ",热泵状态号: " + addr + ",操作成功! ");
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            //}
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            //}
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  else  if  ( brand . equals ( "远向" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            String  checkStr  =  receiveData . substring ( 0 ,  receiveData . length ( )  -  4 ) ; // 检验报文
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            String  checkWord  =  ExchangeStringUtil . getStrCRC16 ( checkStr ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if  ( checkWord . equalsIgnoreCase ( receiveData . substring ( receiveData . length ( )  -  4 ) ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                addr  =  ExchangeStringUtil . hexToDec ( checkStr . substring ( 0 ,  2 ) ) ; //地址
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                //if (checkStr.substring(2, 4).equals("03")) {
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                //if (registerAddr!=null && !registerAddr.equals("")){
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                l1  =  checkStr . substring ( 6 ,  10 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                l2  =  checkStr . substring ( 10 ,  14 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                l3  =  checkStr . substring ( 14 ,  18 ) ;   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1291,60 +1338,46 @@ public class AnalysisReceiveOrder485 {
					 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                l6  =  checkStr . substring ( 26 ,  30 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                l7  =  checkStr . substring ( 30 ,  34 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                l8  =  checkStr . substring ( 34 ,  38 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                //}
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                //} else if (checkStr.substring(2, 4).equals("06") || checkStr.substring(2, 4).equals("04")) {
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                //log.info("时间: " + dateStr + ",热泵状态号: " + addr + ",操作成功! " );
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                //}
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                log . info ( "热泵状态报文检验失败: "  +  receiveData ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        //if (registerAddr!=null && !registerAddr.equals("")){
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        //if (registerAddr.equals("0017") || registerAddr.equals("0010")){
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( l1 . equals ( "12" )  | |  l1 . equals ( "0001" ) )  {  //正常是0001
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//					if (l1.equals("12") || l1.equals("0000") || l1.equals("1")){
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "1" ,  "运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "1" ,  "不运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( l2 . equals ( "12" )  | |  l2 . equals ( "0001" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//					if (l2.equals("12") || l2.equals("0000") || l2.equals("1")){
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "2" ,  "运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "2" ,  "不运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( l3 . equals ( "12" )  | |  l3 . equals ( "0001" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//					if (l3.equals("12") || l3.equals("0000") || l3.equals("1")) {
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "3" ,  "运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "3" ,  "不运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( l4 . equals ( "12" )  | |  l4 . equals ( "0001" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//					if (l4.equals("12") || l4.equals("0000") || l4.equals("1")){
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "4" ,  "运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "4" ,  "不运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( l5 . equals ( "12" )  | |  l5 . equals ( "0001" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//					if (l5.equals("12") || l5.equals("0000") || l5.equals("1")){
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "5" ,  "运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "5" ,  "不运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( l6 . equals ( "12" )  | |  l6 . equals ( "0001" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//					if (l6.equals("12") || l6.equals("0000") || l6.equals("1")){
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "6" ,  "运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "6" ,  "不运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( l7 . equals ( "12" )  | |  l7 . equals ( "0001" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//					if (l7.equals("12") || l7.equals("0000") || l7.equals("1")){
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "7" ,  "运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "7" ,  "不运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( l8 . equals ( "12" )  | |  l8 . equals ( "0001" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//					if (l8.equals("12") || l8.equals("0000") || l8.equals("1")){
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "8" ,  "运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "8" ,  "不运行" ) ;   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1363,9 +1396,6 @@ public class AnalysisReceiveOrder485 {
					 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            log . info ( "热泵状态号:"  +  addr  +  ",保存数据库成功!楼栋名称:"  +  buildingName ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        //}
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        //}
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//		});
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // 热泵状态处理(水位开关),长度42,128
   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -1441,8 +1471,6 @@ public class AnalysisReceiveOrder485 {
					 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  else  if  ( brand . equals ( "中凯" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            String  checkStr  =  receiveData . substring ( 0 ,  receiveData . length ( )  -  4 ) ;  //检验报文,减去校验码
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            addr  =  ExchangeStringUtil . hexToDec ( checkStr . substring ( 2 ,  4 ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            //if (registerAddr!=null && !registerAddr.equals("")) {
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            //if (registerAddr.equalsIgnoreCase("0017")) {      //中凯拿功能码作为寄存器地址用
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            l1  =  checkStr . substring ( 4 ,  6 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            l2  =  checkStr . substring ( 20 ,  22 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            l3  =  checkStr . substring ( 36 ,  38 ) ;   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1451,17 +1479,11 @@ public class AnalysisReceiveOrder485 {
					 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            l6  =  checkStr . substring ( 84 ,  86 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            l7  =  checkStr . substring ( 100 ,  102 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            l8  =  checkStr . substring ( 116 ,  118 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            //} else if (registerAddr.equals("0012")) {
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            //log.info("时间: " + dateStr + ",热泵状态号: " + addr + ",操作成功! ");
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            //}
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            //}
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  else  if  ( brand . equals ( "远向" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            String  checkStr  =  receiveData . substring ( 0 ,  receiveData . length ( )  -  4 ) ; // 检验报文
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            String  checkWord  =  ExchangeStringUtil . getStrCRC16 ( checkStr ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if  ( checkWord . equalsIgnoreCase ( receiveData . substring ( receiveData . length ( )  -  4 ) ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                addr  =  ExchangeStringUtil . hexToDec ( checkStr . substring ( 0 ,  2 ) ) ; //地址
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                //if (checkStr.substring(2, 4).equals("03")) {
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                //if (registerAddr!=null && !registerAddr.equals("")){
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                l1  =  checkStr . substring ( 6 ,  10 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                l2  =  checkStr . substring ( 10 ,  14 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                l3  =  checkStr . substring ( 14 ,  18 ) ;   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1470,60 +1492,46 @@ public class AnalysisReceiveOrder485 {
					 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                l6  =  checkStr . substring ( 26 ,  30 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                l7  =  checkStr . substring ( 30 ,  34 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                l8  =  checkStr . substring ( 34 ,  38 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                //}
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                //} else if (checkStr.substring(2, 4).equals("06") || checkStr.substring(2, 4).equals("04")) {
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                //log.info("时间: " + dateStr + ",热泵状态号: " + addr + ",操作成功! " );
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                //}
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                log . info ( "热泵状态报文检验失败: "  +  receiveData ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        //if (registerAddr!=null && !registerAddr.equals("")){
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        //if (registerAddr.equals("0017") || registerAddr.equals("0010")){
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( l1 . equals ( "12" )  | |  l1 . equals ( "0001" ) )  {  //正常是0001
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//				if (l1.equals("12") || l1.equals("0000") || l1.equals("1")){
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "1" ,  "运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "1" ,  "不运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( l2 . equals ( "12" )  | |  l2 . equals ( "0001" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//				if (l2.equals("12") || l2.equals("0000") || l2.equals("1")){
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "2" ,  "运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "2" ,  "不运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( l3 . equals ( "12" )  | |  l3 . equals ( "0001" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//				if (l3.equals("12") || l3.equals("0000") || l3.equals("1")) {
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "3" ,  "运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "3" ,  "不运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( l4 . equals ( "12" )  | |  l4 . equals ( "0001" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//				if (l4.equals("12") || l4.equals("0000") || l4.equals("1")){
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "4" ,  "运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "4" ,  "不运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( l5 . equals ( "12" )  | |  l5 . equals ( "0001" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//				if (l5.equals("12") || l5.equals("0000") || l5.equals("1")){
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "5" ,  "运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "5" ,  "不运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( l6 . equals ( "12" )  | |  l6 . equals ( "0001" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//				if (l6.equals("12") || l6.equals("0000") || l6.equals("1")){
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "6" ,  "运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "6" ,  "不运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( l7 . equals ( "12" )  | |  l7 . equals ( "0001" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//				if (l7.equals("12") || l7.equals("0000") || l7.equals("1")){
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "7" ,  "运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "7" ,  "不运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( l8 . equals ( "12" )  | |  l8 . equals ( "0001" ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//				if (l8.equals("12") || l8.equals("0000") || l8.equals("1")){
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "8" ,  "运行" ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            map . put ( "8" ,  "不运行" ) ;   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1533,7 +1541,7 @@ public class AnalysisReceiveOrder485 {
					 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            for  ( Map . Entry < String ,  String >  entry  :  map . entrySet ( ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                addr  =  entry . getKey ( ) ;  //获取Key值作为热泵ID
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                runState  =  entry . getValue ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if  ( addr  ! =  null  & &  Integer . valueOf ( addr )  < =  count )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if  ( addr  ! =  null  & &  Integer . parseInt ( addr )  < =  count )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    nowDataService . saveNowHistoryData3 ( addr ,  "热泵状态" ,  runState ,  "runState" ,  buildingId ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    nowDataService . proPumpMinutes ( buildingId ,  addr ,  runState ) ;  //计算热泵运行时长
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    log . info ( "计算热泵运行时长,楼栋名称:"  +  buildingName  +  ",热泵编号:"  +  addr  +  ",状态:"  +  runState ) ;   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1542,8 +1550,6 @@ public class AnalysisReceiveOrder485 {
					 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            log . info ( "热泵状态号"  +  addr  +  ",保存数据库成功!楼栋名称:"  +  buildingName ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            result  =  JSON . toJSONString ( map ) ;  //map转json字符串
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        //}
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        //}
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        return  result ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }