From d454e51e06dbf7beb50551588fc58a5810295d7c Mon Sep 17 00:00:00 2001 From: jiazx0107@163.com <jiazx0107@163.com> Date: 星期一, 01 一月 2024 19:28:22 +0800 Subject: [PATCH] 调整KFKA数据推送测试。 --- src/main/java/com/fzzy/gateway/hx2023/service/ScGatewayTestServiceImpl.java | 152 ++++++++++++++++++++++++++------------------------ 1 files changed, 80 insertions(+), 72 deletions(-) diff --git a/src/main/java/com/fzzy/gateway/hx2023/service/ScGatewayTestServiceImpl.java b/src/main/java/com/fzzy/gateway/hx2023/service/ScGatewayTestServiceImpl.java index 7cfcb3e..2b1a156 100644 --- a/src/main/java/com/fzzy/gateway/hx2023/service/ScGatewayTestServiceImpl.java +++ b/src/main/java/com/fzzy/gateway/hx2023/service/ScGatewayTestServiceImpl.java @@ -1,12 +1,13 @@ package com.fzzy.gateway.hx2023.service; import com.alibaba.fastjson2.JSONObject; +import com.fzzy.api.data.GatewayDeviceType; import com.fzzy.api.data.PushProtocol; import com.fzzy.api.utils.DateUtil; import com.fzzy.api.utils.NumberUtil; import com.fzzy.async.fzzy40.Fzzy40CommonService; import com.fzzy.async.fzzy40.entity.Fz40Grain; -import com.fzzy.gateway.api.GatewayDeviceReportService; +import com.fzzy.gateway.GatewayUtils; import com.fzzy.gateway.api.GatewayDeviceTestService; import com.fzzy.gateway.data.BaseReqData; import com.fzzy.gateway.data.BaseResp; @@ -17,12 +18,11 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.time.DateFormatUtils; +import org.apache.commons.lang3.RandomUtils; import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; @Slf4j @Component @@ -61,8 +61,6 @@ } private BaseResp pushByV40(BaseReqData reqData, Date start, Date end) { - - GatewayDevice device = reqData.getDevice(); String depotIdSys = device.getDepotIdSys(); @@ -73,12 +71,12 @@ List<Fz40Grain> listGrain = fzzy40CommonService.listGrain(depotIdSys, start, end); if (null == listGrain || listGrain.isEmpty()) { - log.error("---------璁惧---{}--鏈悓姝ュ埌绮儏淇℃伅锛岃纭褰撳墠鏉′欢涓嬫槸鍚︽湁鏁版嵁", device.getDeviceName()); + log.error("---------璁惧-{}-绯荤粺浠撳簱缂栫爜-{}-鏈悓姝ュ埌绮儏淇℃伅锛岃纭褰撳墠鏉′欢涓嬫槸鍚︽湁鏁版嵁", device.getDeviceName(), device.getDepotIdSys()); return new BaseResp(BaseResp.CODE_50, "鏈悓姝ュ埌绮儏淇℃伅锛岃纭褰撳墠鏉′欢涓嬫槸鍚︽湁鏁版嵁"); } - //鑾峰彇鏈�鍚庝竴鏉$伯鎯呬綔涓哄綋鍓嶆暟鎹� - Fz40Grain lastData = listGrain.get(listGrain.size() - 1); + //鑾峰彇绗竴鏉℃暟鎹墽琛屾帹閫� + Fz40Grain lastData = listGrain.get(0); KafaGrainData pushData = this.lastData2PushData(lastData, device); return new BaseResp(JSONObject.toJSONString(pushData)); @@ -87,26 +85,24 @@ /** * 灏嗙伯鎯呮暟鎹浆鎹负鎺ㄩ�侀渶瑕佺殑鏁版嵁鏍煎紡 * - * @param lastData + * @param grainData * @return */ - private KafaGrainData lastData2PushData(Fz40Grain lastData, GatewayDevice device) { + private KafaGrainData lastData2PushData(Fz40Grain grainData, GatewayDevice device) { KafaGrainData result = new KafaGrainData(); result.setMessageId(ScConstant.getMessageId()); result.setMessgeId(result.getMessageId()); result.setDeviceID(device.getDeviceId()); - result.setAvgTemperature(lastData.getTempAve() + ""); - result.setMinTemperature(lastData.getTempMin() + ""); - result.setMaxTemperature(lastData.getTempMax() + ""); - result.setCollectTime(DateFormatUtils.format(lastData.getReceiveDate(), "yyyy-MM-dd HH:mm:ss")); + result.setAvgTemperature(grainData.getTempAve() + ""); + result.setMinTemperature(grainData.getTempMin() + ""); + result.setMaxTemperature(grainData.getTempMax() + ""); + result.setCollectTime(DateFormatUtils.format(grainData.getReceiveDate(), "yyyy-MM-dd HH:mm:ss")); //灞�-琛�-鍒� - String[] attrCable = lastData.getCable().split("-"); - - - if (StringUtils.isNotEmpty(lastData.getCableCir())) { - return lastData2PushData2(lastData, device); + String[] attrCable = grainData.getCable().split("-"); + if (StringUtils.isNotEmpty(grainData.getCableCir())) { + return lastData2PushData2(grainData, device); } //灞傝鍒� @@ -115,53 +111,51 @@ int cableX = Integer.valueOf(attrCable[2]); //娓╁害闆嗗悎 - String[] attr = lastData.getPoints().split(","); + String[] attr = grainData.getPoints().split(","); //鏍瑰彿 int cableNum = 1, position = 0; - String curTemp; List<KafkaGrainDataDetail1> temperature = new ArrayList<>(); int x = 0, y = 0, z = 0; for (int i = 0; i < attr.length; i++) { - position = i; - z = i % cableZ + 1; x = i / (cableZ * cableY); y = x * (cableZ * cableY); y = (i - y) / cableZ; - // 鍊掕浆X杞� x = cableX - 1 - x; - //鏍瑰彿 cableNum = (i / cableZ) + 1; - curTemp = attr[i]; - //鍒ゆ柇鏈�澶� - if (curTemp.equals(result.getMaxTemperature())) { - result.setMaxX(x + ""); - result.setMaxY(y + ""); - result.setMaxZ(position + ""); - } + //濡傛灉鏄紓甯稿��,鎵ц璋冩暣鏁版嵁 TODO + if (Double.valueOf(curTemp) < -99.9) { + curTemp = grainData.getTempAve() + ""; - //鍒ゆ柇鏈�灏� - if (curTemp.equals(result.getMinTemperature())) { - result.setMinX(x + ""); - result.setMinY(y + ""); - result.setMinZ(position + ""); + } else { + //鍒ゆ柇鏈�澶� + if (curTemp.equals(result.getMaxTemperature())) { + result.setMaxX(x + ""); + result.setMaxY(y + ""); + result.setMaxZ(position + ""); + } + //鍒ゆ柇鏈�灏� + if (curTemp.equals(result.getMinTemperature())) { + result.setMinX(x + ""); + result.setMinY(y + ""); + result.setMinZ(position + ""); + } } temperature.add(new KafkaGrainDataDetail1(cableNum + "", z + "", curTemp, position + "", x + "", y + "")); } //绮俯淇℃伅 - JSONObject trhInfo = new JSONObject(); // TRHInfo trhInfo = new TRHInfo(); trhInfo.put("temperature", temperature); @@ -169,10 +163,10 @@ //浠撴俯搴︿俊鎭� KafkaGrainTH grainTH = new KafkaGrainTH(); - grainTH.setHumidity(lastData.getHumidityIn() + ""); - grainTH.setTemperature(lastData.getTempIn() + ""); - grainTH.setAirHumidity(lastData.getHumidityOut() + ""); - grainTH.setAirTemperature(lastData.getTempOut() + ""); + grainTH.setHumidity(grainData.getHumidityIn() + ""); + grainTH.setTemperature(grainData.getTempIn() + ""); + grainTH.setAirHumidity(grainData.getHumidityOut() + ""); + grainTH.setAirTemperature(grainData.getTempOut() + ""); List<KafkaGrainTH> temperatureAndhumidity = new ArrayList<>(); temperatureAndhumidity.add(grainTH); @@ -234,6 +228,8 @@ public BaseResp testLpr(BaseReqData reqData) { + GatewayDevice device = reqData.getDevice(); + WebSocketPacket packet = new WebSocketPacket(); WebSocketPacketHeader header = new WebSocketPacketHeader(); header.setDeviceName(reqData.getDeviceName()); @@ -249,7 +245,7 @@ lpr.setCarNumber(reqData.getCarNumber()); JSONObject jsonObject = new JSONObject(); jsonObject.put("carNumber", reqData.getCarNumber()); - jsonObject.put("position", "big"); + jsonObject.put("position", device.getPosition()); packet.setProperties(jsonObject); packet.setTimestamp(System.currentTimeMillis()); @@ -268,15 +264,16 @@ WeatherWebDto weather = WeatherWebDto.contextMap.get("default"); - double tMIn = 20, tMax = 25; + double tMIn = 10, tMax = 15; if (null != weather) { double tOut = Double.valueOf(weather.getTem()); - tMIn = tOut - 4; - if (tMIn < 4) tMIn = 5; - tMax = tOut + 0; - if (tMax < 15) tMax = 15; + tMIn = tOut - 5; + tMax = tOut; } - + if (tMIn < 10) tMIn = 10; + if (tMIn > 20) tMIn = 20; + if (tMax < 15) tMax = 15; + if (tMax > 25) tMax = 25; //鏁版嵁灏佽 GrainData grain = new GrainData(); @@ -288,7 +285,7 @@ headers.setDeviceName(device.getDeviceName()); headers.setProductId(device.getProductId()); headers.setOrgId(device.getOrgId()); - headers.setMsgId(ScConstant.getMessageId()); + headers.setMsgId(reqData.getMessageId()); grain.setHeaders(headers); GrainOutPut outPut = new GrainOutPut(); @@ -306,24 +303,22 @@ double randomNumber = tMIn; int x = 0, y = 0, z = 0; for (int i = 0; i < sumNum; i++) { - if ((i) % Integer.valueOf(cableRule[0]) == 0) { - randomNumber = Math.random() * (tMax - tMIn + 1) + tMIn; - - } else if ((i) % Integer.valueOf(cableRule[0]) == 1) { - randomNumber = Math.random() * (tMax - tMIn + 1) + tMIn; - - } else if ((i) % Integer.valueOf(cableRule[0]) == 2) { - randomNumber = Math.random() * (tMax - tMIn + 1) + tMIn; - - } else if ((i) % Integer.valueOf(cableRule[0]) == 3) { - randomNumber = Math.random() * (tMax - tMIn + 1) + tMIn; - - } else if ((i) % Integer.valueOf(cableRule[0]) == 4) { - randomNumber = Math.random() * (tMax - tMIn + 1) + tMIn; - - } else { - randomNumber = Math.random() * (tMax - tMIn + 1) + tMIn; - + log.info("i=锛�" + i); + if (i % cableZ == 0) { + randomNumber = RandomUtils.nextDouble(tMIn, tMax + 1.5); + log.info("绗�1灞傛俯搴︼細" + randomNumber); + } else if (i % cableZ == 1) { + randomNumber = RandomUtils.nextDouble(tMIn - 1, tMax - 0); + log.info("绗�2灞傛俯搴︼細" + randomNumber); + } else if (i % cableZ == 2) { + randomNumber = RandomUtils.nextDouble(tMIn - 2, tMax - 1.5); + log.info("绗�3灞傛俯搴︼細" + randomNumber); + } else if (i % cableZ == 3) { + randomNumber = RandomUtils.nextDouble(tMIn - 3, tMax - 3); + log.info("绗�4灞傛俯搴︼細" + randomNumber); + } else if (i % cableZ == 4) { + randomNumber = RandomUtils.nextDouble(tMIn - 4, tMax - 4.5); + log.info("绗�5灞傛俯搴︼細" + randomNumber); } // randomNumber = Math.random() * (tMax - tMIn + 1) + tMIn; curTemp = NumberUtil.keepPrecision(randomNumber, 1); @@ -340,13 +335,26 @@ } outPut.setTemperature(temperature); + List<GrainTH> ths = new ArrayList<>(); - grain.setOutPut(outPut); + ths.add(new GrainTH(weather.getTem() != null ? weather.getTem() + "" : "", weather.getHumidity() != null ? weather.getHumidity() + "" : "", "1")); + outPut.setTemperatureAndhumidity(ths); + + grain.setOutput(JSONObject.toJSONString(outPut)); + + + GatewayDevice gatewayDeviceWeather = GatewayUtils.getCacheByDeviceTypeOne(GatewayDeviceType.TYPE_09.getCode()); //姘旇薄淇℃伅 GrainWeather weatherStation = new GrainWeather(); weatherStation.setMessageId(ScConstant.getMessageId()); - weatherStation.setId(device.getDeviceId()); + weatherStation.setMessgeId(weatherStation.getMessageId()); + + if (null != gatewayDeviceWeather) { + weatherStation.setId(gatewayDeviceWeather.getDeviceId()); + } else { + weatherStation.setId(device.getDeviceId()); + } weatherStation.setAirPressure(weather.getPressure()); weatherStation.setHumidity(weather.getHumidity()); weatherStation.setPm(weather.getAir_pm25()); @@ -356,7 +364,7 @@ weatherStation.setWindDirection(weather.getWin()); weatherStation.setWindPower(weather.getWin_meter()); weatherStation.setWindSpeed(weather.getWin_speed()); - grain.setWeatherStation(weatherStation); + grain.setWeatherStation(JSONObject.toJSONString(weatherStation)); return new BaseResp(JSONObject.toJSONString(grain)); } -- Gitblit v1.9.3