作者 钟来

温度宝支持http数据服务

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");
... ...