作者 钟来

温度宝支持http数据服务

1 package com.zhonglai.luhui.device.protocol.wendubao.analysis; 1 package com.zhonglai.luhui.device.protocol.wendubao.analysis;
2 2
  3 +import com.google.gson.JsonElement;
3 import com.google.gson.JsonObject; 4 import com.google.gson.JsonObject;
4 import com.ruoyi.common.utils.GsonConstructor; 5 import com.ruoyi.common.utils.GsonConstructor;
  6 +import com.ruoyi.common.utils.spring.SpringUtils;
5 import com.zhonglai.luhui.device.analysis.comm.dao.BaseDao; 7 import com.zhonglai.luhui.device.analysis.comm.dao.BaseDao;
6 import com.zhonglai.luhui.device.analysis.comm.dto.DeviceSensorData; 8 import com.zhonglai.luhui.device.analysis.comm.dto.DeviceSensorData;
7 import com.zhonglai.luhui.device.analysis.comm.dto.LogDeviceOperation; 9 import com.zhonglai.luhui.device.analysis.comm.dto.LogDeviceOperation;
  10 +import com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.ThingsModelDataTypeEnum;
8 import com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.ThingsModelItemBase; 11 import com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.ThingsModelItemBase;
  12 +import com.zhonglai.luhui.device.domain.IotThingsModel;
9 import com.zhonglai.luhui.device.protocol.factory.config.DeviceCach; 13 import com.zhonglai.luhui.device.protocol.factory.config.DeviceCach;
10 import com.zhonglai.luhui.device.protocol.factory.dto.DeviceHost; 14 import com.zhonglai.luhui.device.protocol.factory.dto.DeviceHost;
11 import com.zhonglai.luhui.device.protocol.factory.dto.ParserDeviceHostDto; 15 import com.zhonglai.luhui.device.protocol.factory.dto.ParserDeviceHostDto;
12 import com.zhonglai.luhui.device.protocol.factory.dto.ParserDeviceInfoDto; 16 import com.zhonglai.luhui.device.protocol.factory.dto.ParserDeviceInfoDto;
  17 +import com.zhonglai.luhui.device.protocol.factory.service.IotThingsModelService;
13 import com.zhonglai.luhui.device.protocol.factory.sync.ProtocolSyncFactory; 18 import com.zhonglai.luhui.device.protocol.factory.sync.ProtocolSyncFactory;
14 import com.zhonglai.luhui.device.protocol.wendubao.db.WdbDBFactoryImp; 19 import com.zhonglai.luhui.device.protocol.wendubao.db.WdbDBFactoryImp;
15 import com.zhonglai.luhui.device.protocol.wendubao.dto.WdbTerminal; 20 import com.zhonglai.luhui.device.protocol.wendubao.dto.WdbTerminal;
  21 +import org.apache.commons.lang3.EnumUtils;
16 import org.springframework.stereotype.Service; 22 import org.springframework.stereotype.Service;
17 23
18 import java.math.BigDecimal; 24 import java.math.BigDecimal;
@@ -80,7 +86,7 @@ public class WenDuBaoProtocolSyncFactoryImpl implements ProtocolSyncFactory { @@ -80,7 +86,7 @@ public class WenDuBaoProtocolSyncFactoryImpl implements ProtocolSyncFactory {
80 if(null == wdbTerminal) 86 if(null == wdbTerminal)
81 { 87 {
82 wdbTerminal = new WdbTerminal(); 88 wdbTerminal = new WdbTerminal();
83 - wdbTerminal.setId(deviceInfoId); 89 + wdbTerminal.setId(deviceInfoId+"_1_1");
84 wdbTerminal.setCreateTime(parserDeviceInfoDto.getUpdateTime()); 90 wdbTerminal.setCreateTime(parserDeviceInfoDto.getUpdateTime());
85 wdbTerminal.setBaseStationId(deviceInfoId); 91 wdbTerminal.setBaseStationId(deviceInfoId);
86 wdbTerminal.setBaseStationName(deviceInfoId); 92 wdbTerminal.setBaseStationName(deviceInfoId);
@@ -91,42 +97,8 @@ public class WenDuBaoProtocolSyncFactoryImpl implements ProtocolSyncFactory { @@ -91,42 +97,8 @@ public class WenDuBaoProtocolSyncFactoryImpl implements ProtocolSyncFactory {
91 JsonObject devcieData = parserDeviceInfoDto.getData(); 97 JsonObject devcieData = parserDeviceInfoDto.getData();
92 for (String key:devcieData.keySet()) 98 for (String key:devcieData.keySet())
93 { 99 {
94 - switch (key)  
95 - {  
96 - case "4": //气温float型  
97 - break;  
98 - case "21": //光照 int型  
99 - break;  
100 - case "55": //水面 float型  
101 - if(null != wdbTerminal && null != wdbTerminal.getWaterSurfaceErrorConfig())  
102 - {  
103 - jsonObject.addProperty("55",new BigDecimal(devcieData.get(key).getAsJsonObject().get("saveView").getAsFloat()).add(new BigDecimal(wdbTerminal.getWaterSurfaceErrorConfig())).floatValue());  
104 - }  
105 - break;  
106 - case "23": //水中 float型  
107 - if(null != wdbTerminal && null != wdbTerminal.getWaterSurfaceErrorConfig())  
108 - {  
109 - jsonObject.addProperty("23",new BigDecimal(devcieData.get(key).getAsJsonObject().get("saveView").getAsFloat()).add(new BigDecimal(wdbTerminal.getWaterErrorConfig())).floatValue());  
110 - }  
111 - break;  
112 - case "24": //水底 float型  
113 - if(null != wdbTerminal && null != wdbTerminal.getWaterSurfaceErrorConfig())  
114 - {  
115 - jsonObject.addProperty("24",new BigDecimal(devcieData.get(key).getAsJsonObject().get("saveView").getAsFloat()).add(new BigDecimal(wdbTerminal.getBedErrorConfig())).floatValue());  
116 - }  
117 - break;  
118 - case "25": //电池电量百分比0-100 int型  
119 - jsonObject.add("25",devcieData.get(key).getAsJsonObject().get("saveView"));  
120 - break;  
121 - case "26": //信噪比 int型  
122 - jsonObject.add("26",devcieData.get(key).getAsJsonObject().get("saveView"));  
123 - break;  
124 - case "28": //信号接收灵敏度 int型  
125 - jsonObject.add("28",devcieData.get(key).getAsJsonObject().get("saveView"));  
126 - break;  
127 - default:  
128 - jsonObject.add(key,devcieData.get(key).getAsJsonObject().get("saveView"));  
129 - } 100 + ThingsModelItemBase thingsModelItemBase = ThingsModelItemBase.newhingsModelItem(devcieData.get(key).getAsJsonObject());
  101 + jsonObject.add(key,GsonConstructor.get().toJsonTree(thingsModelItemBase.getSaveView()));
130 } 102 }
131 wdbTerminal.setDataUpdateTime(parserDeviceInfoDto.getUpdateTime()); 103 wdbTerminal.setDataUpdateTime(parserDeviceInfoDto.getUpdateTime());
132 wdbTerminal.setOnline("01"); 104 wdbTerminal.setOnline("01");