package com.ld.igds.protocol.bhzn.verb.analysis; import com.alibaba.fastjson.JSONObject; import com.ld.igds.common.CoreCommonService; import com.ld.igds.common.CoreDeviceService; import com.ld.igds.constant.BizType; import com.ld.igds.gas.CoreGasService; import com.ld.igds.io.constant.OrderRespEnum; import com.ld.igds.io.notify.NotifyWebInvoker; import com.ld.igds.models.*; import com.ld.igds.protocol.bhzn.utils.WindDirectionUtil; import com.ld.igds.protocol.bhzn.verb.command.BaseRemoteImpl; import com.ld.igds.protocol.bhzn.verb.dto.IoMessage; import com.ld.igds.protocol.bhzn.verb.dto.Res209; import com.ld.igds.util.ContextUtil; import com.ld.igds.util.NumberUtil; import com.ld.igds.weather.WeatherUtil; import com.ld.igds.weather.notify.NotifyWeatherService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.text.DecimalFormat; import java.text.NumberFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * 气体解析 */ @Slf4j @Component(AnalysisWeather.BEAN_ID) public class AnalysisWeather extends BaseRemoteImpl { public static final String BEAN_ID = "bhzn.analysisWeather"; @Autowired private CoreDeviceService deviceService; @Autowired private NotifyWebInvoker notifyInvoker; @Autowired private CoreCommonService commonService; @Resource(name = NotifyWeatherService.BEAN_ID) private NotifyWeatherService notifyService; /** * 设备状态 * * @param reMessage * @param ser */ public void analysis(IoMessage reMessage, DeviceSer ser) { log.info("气象站检测开始解析"); JSONObject jsonObject = JSONObject.parseObject(reMessage.getStrMsg()); log.info("气象返回结果={}", reMessage.getStrMsg()); int Temper = jsonObject.getInteger("Temper"); int Humy = jsonObject.getInteger("Humy"); int WindSpeed = jsonObject.getInteger("WindSpeed"); int RainFall = jsonObject.getInteger("RainFall"); int Pressure = jsonObject.getInteger("Pressure"); int WindDir = jsonObject.getInteger("WindDir"); WeatherInfo info = new WeatherInfo(); info.setId(WeatherUtil.buildWeatherId("5324_001", new Date())); // info.setAirLevel(dto.getAir_level()); info.setCompanyId(ser.getCompanyId()); info.setDeptId("5324_001"); info.setHumidity((Humy/10)+""); //info.setPm25(dto.getAir_pm25()); info.setPressure(Pressure+""); info.setSource(WeatherUtil.SOURCE_01); info.setTemp((Temper/10)+""); info.setWeather(RainFall > 0?"下雨":"晴天"); Float fx = Float.valueOf(WindDir/10); info.setWindDirection(WindDirectionUtil.windDirectionSwitch(fx)); double fs = WindSpeed/10; info.setWindSpeed(fs + "m/S"); info.setWindMeter((WindSpeed/10) + ""); info.setCity("高州市"); info.setUpdateTime(new Date()); notifyService.notify(info); log.info("控制柜----->>>平台:气象站检测解析完成-"); } }