|
@ -13,6 +13,7 @@ import com.yihu.jw.care.util.SecurityOrderUtil;
|
|
|
import com.yihu.jw.entity.care.device.DeviceHealthIndex;
|
|
|
import com.yihu.jw.entity.care.device.OnenetDevice;
|
|
|
import com.yihu.jw.entity.care.device.OnenetReceiveRecord;
|
|
|
import com.yihu.jw.util.common.StringUtil;
|
|
|
import com.yihu.jw.util.date.DateUtil;
|
|
|
import com.yihu.jw.util.http.HttpClientUtil;
|
|
|
import org.slf4j.Logger;
|
|
@ -104,7 +105,7 @@ public class OnenetService {
|
|
|
if("14".equals(onenetDevice.getCategoryCode())){
|
|
|
hkDeviceQi(onenetDevice,jsonObject);
|
|
|
}else if("15".equals(onenetDevice.getCategoryCode())){
|
|
|
|
|
|
hkDeviceYan(onenetDevice,jsonObject);
|
|
|
}
|
|
|
|
|
|
}
|
|
@ -157,6 +158,71 @@ public class OnenetService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 海康设备解析-烟感
|
|
|
*/
|
|
|
public void hkDeviceYan(OnenetDevice onenetDevice,JSONObject jsonObject){
|
|
|
String value = jsonObject.getString("value");
|
|
|
String byMessageId = value.substring(0,2);
|
|
|
// String byDevType = value.substring(4,6);
|
|
|
if("01".equals(byMessageId)){
|
|
|
//信息上报
|
|
|
String valueTmp = value.substring(236);
|
|
|
//0060 0001 0061 0001 0062 0000 0000 0001 0000 79
|
|
|
String wChanRscType = valueTmp.substring(0,4);
|
|
|
String num = valueTmp.substring(4,8);
|
|
|
String wEventType = valueTmp.substring(16,20);
|
|
|
String wParamType = valueTmp.substring(32,36);
|
|
|
String wParamValue = valueTmp.substring(36,40);
|
|
|
if("0062".equals(wEventType)&&"0001".equals(wParamType)){
|
|
|
String byTime = value.substring(18,26);//时间 秒
|
|
|
String time = DateUtil.dateToStrLong(DateUtil.secondTransfor(Integer.parseInt(byTime)));
|
|
|
//烟雾浓度
|
|
|
String monitorValue = StringUtil.division(Integer.valueOf(wParamValue),10);
|
|
|
String resourceSerial = onenetDevice.getSn();
|
|
|
DeviceHealthIndex index = new DeviceHealthIndex();
|
|
|
index.setDeviceSn(resourceSerial);
|
|
|
index.setUnit("%");
|
|
|
index.setValue(monitorValue);
|
|
|
index.setRecordTime(time);
|
|
|
index.setDeviceType("2");
|
|
|
deviceHealthIndexDao.save(index);
|
|
|
dataPushLogUtil.savePushLog(resourceSerial,jsonObject.toJSONString(jsonObject,SerializerFeature.WriteMapNullValue),"可燃气体探测器监测信息接收");
|
|
|
}
|
|
|
return;
|
|
|
}
|
|
|
if("02".equals(byMessageId)){
|
|
|
//报警
|
|
|
// String byTime = value.substring(18,26);//时间 秒
|
|
|
// String time = DateUtil.dateToStrLong(DateUtil.secondTransfor(Integer.parseInt(byTime)));
|
|
|
String valueTmp = value.substring(236);
|
|
|
//0060 0001 0061 0001 0064 0000 0002 0001 0087 00
|
|
|
String wChanRscType = valueTmp.substring(0,4);
|
|
|
String num = valueTmp.substring(4,8);
|
|
|
String wEventType = valueTmp.substring(16,20);
|
|
|
String wEventValue = valueTmp.substring(28,32);
|
|
|
String wParamType = valueTmp.substring(32,36);
|
|
|
String wParamValue = valueTmp.substring(36,40);
|
|
|
if("0064".equals(wEventType)&&"0002".equals(wEventValue)){
|
|
|
//报警
|
|
|
if("0001".equals(wParamType)){
|
|
|
//烟雾浓度
|
|
|
String monitorValue = StringUtil.division(Integer.valueOf(wParamValue),10);
|
|
|
String resourceSerial = onenetDevice.getSn();
|
|
|
//独立式光电感烟探测器(NB)
|
|
|
JSONObject tmp = new JSONObject();
|
|
|
tmp.put("smoke",monitorValue);
|
|
|
orderUtil.createSecurityOrder(resourceSerial,null,new JSONObject(),null,7,"10","preventFire",JSON.toJSONString(tmp, SerializerFeature.WriteMapNullValue));
|
|
|
dataPushLogUtil.savePushLog(resourceSerial,jsonObject.toJSONString(jsonObject,SerializerFeature.WriteMapNullValue),"烟感探测器报警信息接收");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
//其他信息暂时不处理
|
|
|
// 03消音 04自检 05故障 06信号查询 07注册 08注销 ...
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 海康设备解析-气感
|
|
|
*/
|
|
@ -177,7 +243,7 @@ public class OnenetService {
|
|
|
String byTime = value.substring(18,26);//时间 秒
|
|
|
String time = DateUtil.dateToStrLong(DateUtil.secondTransfor(Integer.parseInt(byTime)));
|
|
|
//气感浓度
|
|
|
String monitorValue = division(Integer.valueOf(wParamValue),10);
|
|
|
String monitorValue = StringUtil.division(Integer.valueOf(wParamValue),10);
|
|
|
String resourceSerial = onenetDevice.getSn();
|
|
|
DeviceHealthIndex index = new DeviceHealthIndex();
|
|
|
index.setDeviceSn(resourceSerial);
|
|
@ -207,7 +273,7 @@ public class OnenetService {
|
|
|
//气感报警
|
|
|
if("0001".equals(wParamType)){
|
|
|
//气感浓度
|
|
|
String monitorValue = division(Integer.valueOf(wParamValue),10);
|
|
|
String monitorValue = StringUtil.division(Integer.valueOf(wParamValue),10);
|
|
|
String resourceSerial = onenetDevice.getSn();
|
|
|
JSONObject tmp = new JSONObject();
|
|
|
tmp.put("gas",monitorValue);
|
|
@ -222,14 +288,6 @@ public class OnenetService {
|
|
|
|
|
|
}
|
|
|
|
|
|
public String division(int a,int b){
|
|
|
String result = "";
|
|
|
float num =(float)a/b;
|
|
|
DecimalFormat df = new DecimalFormat("0.0");
|
|
|
result = df.format(num);
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 同步设备
|
|
|
*/
|