| | |
| | | import com.moral.api.entity.Device; |
| | | import com.moral.api.entity.Sensor; |
| | | import com.moral.api.entity.UnitConversion; |
| | | import com.moral.api.utils.AdjustDataUtils; |
| | | import com.moral.api.utils.UnitConvertUtils; |
| | | import com.moral.api.websocket.SingleDeviceServer; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | continue; |
| | | //取出基本信息 |
| | | Device device = socket.getDeviceAlarmInfo(); |
| | | Map<String, Object> adjustFormula = socket.getAdjustFormula(); |
| | | Map<String, Object> regionAqi = socket.getRegionAqi(); |
| | | //补偿数据 |
| | | if(adjustFormula!=null&®ionAqi!=null) |
| | | message = AdjustDataUtils.adjust(message,adjustFormula,regionAqi); |
| | | //创建最终消息对象 |
| | | Map<String, Object> resultMessgae = new HashMap<>(); |
| | | //拼接单位 |
| | |
| | | String showUnitKey = sensor.getShowUnitKey(); |
| | | String unitKey = sensor.getUnitKey(); |
| | | String unit = sensor.getUnit(); |
| | | //如果消息中没有该因子则退出循环 |
| | | Object value = message.get(code); |
| | | //对数据保留两位小数,并且向下取整 |
| | | /*if(value==null) 源代码 |
| | | if(value==null) |
| | | continue; |
| | | Double sourceDataD = Double.valueOf(String.valueOf(value));*/ |
| | | //测试代码使用,给臭气一个固定值 start |
| | | Double sourceDataD = null; |
| | | if (value != null) { |
| | | sourceDataD = Double.valueOf(String.valueOf(value)); |
| | | }else{ |
| | | sourceDataD = 5.00d; |
| | | } |
| | | //测试代码使用,给臭气一个固定值 end |
| | | Double sourceDataD = Double.valueOf(String.valueOf(value)); |
| | | BigDecimal bg = new BigDecimal(sourceDataD); |
| | | bg = bg.setScale(2, BigDecimal.ROUND_FLOOR); |
| | | String sourceData = bg.toString(); |
| | | //数据补偿 |
| | | //单位转换 |
| | | if (!unitKey.equals(showUnitKey)) {//如果源单位和显示单位不同,则进行单位转换 |
| | | String formula = sensor.getFormula(); |