|
|
|
package com.zhonglai.luhui.device.protocol.wendubao.analysis;
|
|
|
|
|
|
|
|
import com.google.gson.JsonElement;
|
|
|
|
import com.google.gson.JsonObject;
|
|
|
|
import com.ruoyi.common.utils.GsonConstructor;
|
|
|
|
import com.ruoyi.common.utils.spring.SpringUtils;
|
|
|
|
import com.zhonglai.luhui.device.analysis.comm.dao.BaseDao;
|
|
|
|
import com.zhonglai.luhui.device.analysis.comm.dto.DeviceSensorData;
|
|
|
|
import com.zhonglai.luhui.device.analysis.comm.dto.LogDeviceOperation;
|
|
|
|
import com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.ThingsModelDataTypeEnum;
|
|
|
|
import com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.ThingsModelItemBase;
|
|
|
|
import com.zhonglai.luhui.device.domain.IotThingsModel;
|
|
|
|
import com.zhonglai.luhui.device.protocol.factory.config.DeviceCach;
|
|
|
|
import com.zhonglai.luhui.device.protocol.factory.dto.DeviceHost;
|
|
|
|
import com.zhonglai.luhui.device.protocol.factory.dto.ParserDeviceHostDto;
|
|
|
|
import com.zhonglai.luhui.device.protocol.factory.dto.ParserDeviceInfoDto;
|
|
|
|
import com.zhonglai.luhui.device.protocol.factory.service.IotThingsModelService;
|
|
|
|
import com.zhonglai.luhui.device.protocol.factory.sync.ProtocolSyncFactory;
|
|
|
|
import com.zhonglai.luhui.device.protocol.wendubao.db.WdbDBFactoryImp;
|
|
|
|
import com.zhonglai.luhui.device.protocol.wendubao.dto.WdbTerminal;
|
|
|
|
import org.apache.commons.lang3.EnumUtils;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
...
|
...
|
@@ -80,7 +86,7 @@ public class WenDuBaoProtocolSyncFactoryImpl implements ProtocolSyncFactory { |
|
|
|
if(null == wdbTerminal)
|
|
|
|
{
|
|
|
|
wdbTerminal = new WdbTerminal();
|
|
|
|
wdbTerminal.setId(deviceInfoId);
|
|
|
|
wdbTerminal.setId(deviceInfoId+"_1_1");
|
|
|
|
wdbTerminal.setCreateTime(parserDeviceInfoDto.getUpdateTime());
|
|
|
|
wdbTerminal.setBaseStationId(deviceInfoId);
|
|
|
|
wdbTerminal.setBaseStationName(deviceInfoId);
|
|
...
|
...
|
@@ -91,42 +97,8 @@ public class WenDuBaoProtocolSyncFactoryImpl implements ProtocolSyncFactory { |
|
|
|
JsonObject devcieData = parserDeviceInfoDto.getData();
|
|
|
|
for (String key:devcieData.keySet())
|
|
|
|
{
|
|
|
|
switch (key)
|
|
|
|
{
|
|
|
|
case "4": //气温float型
|
|
|
|
break;
|
|
|
|
case "21": //光照 int型
|
|
|
|
break;
|
|
|
|
case "55": //水面 float型
|
|
|
|
if(null != wdbTerminal && null != wdbTerminal.getWaterSurfaceErrorConfig())
|
|
|
|
{
|
|
|
|
jsonObject.addProperty("55",new BigDecimal(devcieData.get(key).getAsJsonObject().get("saveView").getAsFloat()).add(new BigDecimal(wdbTerminal.getWaterSurfaceErrorConfig())).floatValue());
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case "23": //水中 float型
|
|
|
|
if(null != wdbTerminal && null != wdbTerminal.getWaterSurfaceErrorConfig())
|
|
|
|
{
|
|
|
|
jsonObject.addProperty("23",new BigDecimal(devcieData.get(key).getAsJsonObject().get("saveView").getAsFloat()).add(new BigDecimal(wdbTerminal.getWaterErrorConfig())).floatValue());
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case "24": //水底 float型
|
|
|
|
if(null != wdbTerminal && null != wdbTerminal.getWaterSurfaceErrorConfig())
|
|
|
|
{
|
|
|
|
jsonObject.addProperty("24",new BigDecimal(devcieData.get(key).getAsJsonObject().get("saveView").getAsFloat()).add(new BigDecimal(wdbTerminal.getBedErrorConfig())).floatValue());
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case "25": //电池电量百分比0-100 int型
|
|
|
|
jsonObject.add("25",devcieData.get(key).getAsJsonObject().get("saveView"));
|
|
|
|
break;
|
|
|
|
case "26": //信噪比 int型
|
|
|
|
jsonObject.add("26",devcieData.get(key).getAsJsonObject().get("saveView"));
|
|
|
|
break;
|
|
|
|
case "28": //信号接收灵敏度 int型
|
|
|
|
jsonObject.add("28",devcieData.get(key).getAsJsonObject().get("saveView"));
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
jsonObject.add(key,devcieData.get(key).getAsJsonObject().get("saveView"));
|
|
|
|
}
|
|
|
|
ThingsModelItemBase thingsModelItemBase = ThingsModelItemBase.newhingsModelItem(devcieData.get(key).getAsJsonObject());
|
|
|
|
jsonObject.add(key,GsonConstructor.get().toJsonTree(thingsModelItemBase.getSaveView()));
|
|
|
|
}
|
|
|
|
wdbTerminal.setDataUpdateTime(parserDeviceInfoDto.getUpdateTime());
|
|
|
|
wdbTerminal.setOnline("01");
|
...
|
...
|
|