From 4b0551504e9bb3ea66292bfbf85d7937a7af8946 Mon Sep 17 00:00:00 2001
From: vince <757871790@qq.com>
Date: 星期四, 09 十一月 2023 12:09:19 +0800
Subject: [PATCH] 手动测试
---
src/main/java/com/fzzy/gateway/hx2023/service/HxGatewaySyncGrainImpl.java | 147 +++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 143 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/fzzy/gateway/hx2023/service/HxGatewaySyncGrainImpl.java b/src/main/java/com/fzzy/gateway/hx2023/service/HxGatewaySyncGrainImpl.java
index 424ff4b..d6f948e 100644
--- a/src/main/java/com/fzzy/gateway/hx2023/service/HxGatewaySyncGrainImpl.java
+++ b/src/main/java/com/fzzy/gateway/hx2023/service/HxGatewaySyncGrainImpl.java
@@ -1,28 +1,167 @@
package com.fzzy.gateway.hx2023.service;
+import com.alibaba.fastjson2.JSONObject;
+import com.fzzy.api.data.GatewayDeviceProtocol;
+import com.fzzy.api.utils.NumberUtil;
import com.fzzy.gateway.api.GatewaySyncGranService;
-import com.fzzy.gateway.hx2023.data.KafaGrainData;
-import com.fzzy.gateway.hx2023.data.SyncReqData;
+import com.fzzy.gateway.data.BaseResp;
+import com.fzzy.gateway.data.WeatherWebDto;
+import com.fzzy.gateway.entity.GatewayDevice;
+import com.fzzy.gateway.hx2023.ScConstant;
+import com.fzzy.gateway.hx2023.data.*;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
/**
* 缃戝叧涓庣伯鎯呭垎鏈洪�氳鍜岃В鏋�
*/
@Slf4j
@Data
-@Component
+@Service
public class HxGatewaySyncGrainImpl implements GatewaySyncGranService {
@Override
public String getGrainProtocol() {
- return null;
+ return GatewayDeviceProtocol.DEVICE_TEST.getCode();
}
@Override
public KafaGrainData syncGrain(SyncReqData reqData) {
+
+
return null;
}
+
+
+ @Override
+ public BaseResp syncGrain2(SyncReqData reqData) {
+
+ GatewayDevice device = reqData.getDevice();
+
+
+ if (StringUtils.isEmpty(device.getCableCir())) {
+ return getGrainTest1(reqData, device);
+ }
+
+
+ BaseResp resp = new BaseResp();
+ resp.setCode(500);
+ resp.setMsg("娌℃湁鍖归厤鍒拌鍒�");
+ return resp;
+ }
+
+ private BaseResp getGrainTest1(SyncReqData reqData, GatewayDevice device) {
+
+ String[] cableRule = device.getCableRule().split("-");
+
+ int cableZ = Integer.valueOf(cableRule[0]);
+ int cableY = Integer.valueOf(cableRule[1]);
+ int cableX = Integer.valueOf(cableRule[2]);
+ int sumNum = cableZ * cableY * cableX;
+
+
+ WeatherWebDto weather = WeatherWebDto.contextMap.get("default");
+ double tMIn = 20, tMax = 25;
+ 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;
+ }
+
+
+ //鏁版嵁灏佽
+ GrainData grain = new GrainData();
+ grain.setMessageId(ScConstant.getMessageId());
+ grain.setDeviceId(device.getDeviceId());
+ grain.setTimestamp(System.currentTimeMillis() + "");
+
+ ClientHeaders headers = new ClientHeaders();
+ headers.setDeviceName(device.getDeviceName());
+ headers.setProductId(device.getProductId());
+ headers.setOrgId(device.getOrgId());
+ headers.setMsgId(ScConstant.getMessageId());
+ grain.setHeaders(headers);
+
+ GrainOutPut outPut = new GrainOutPut();
+
+ outPut.setAvgTemperature(NumberUtil.keepPrecision((tMax + tMIn) / 2, 1) + "");
+ outPut.setMinTemperature(tMax + "");
+ outPut.setMaxTemperature(tMIn + "");
+
+
+ List<GrainTemp> temperature = new ArrayList<>();
+ //鏍瑰彿
+ int cableNum = 1, position = 0;
+
+ double curTemp = tMIn;
+ 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;
+
+ }
+ // randomNumber = Math.random() * (tMax - tMIn + 1) + tMIn;
+ curTemp = NumberUtil.keepPrecision(randomNumber, 1);
+ position = i;
+ z = i % cableZ + 1;
+ x = i / (cableZ * cableY);
+ y = x * (cableZ * cableY);
+ y = (i - y) / cableZ;
+
+ //鏍瑰彿
+ cableNum = (i / cableZ) + 1;
+
+ temperature.add(new GrainTemp(cableNum + "", z + "", curTemp + "", position + ""));
+ }
+
+ outPut.setTemperature(temperature);
+
+ grain.setOutPut(outPut);
+
+ //姘旇薄淇℃伅
+ GrainWeather weatherStation = new GrainWeather();
+ weatherStation.setMessageId(ScConstant.getMessageId());
+ weatherStation.setId(device.getDeviceId());
+ weatherStation.setAirPressure(weather.getPressure());
+ weatherStation.setHumidity(weather.getHumidity());
+ weatherStation.setPm(weather.getAir_pm25());
+ weatherStation.setRadiation("0");
+ weatherStation.setRainfallAmount(weather.getWea());
+ weatherStation.setTemperature(weather.getTem());
+ weatherStation.setWindDirection(weather.getWin());
+ weatherStation.setWindPower(weather.getWin_meter());
+ weatherStation.setWindSpeed(weather.getWin_speed());
+ grain.setWeatherStation(weatherStation);
+
+ BaseResp resp = new BaseResp();
+ resp.setData(JSONObject.toJSONString(grain));
+
+ return resp;
+ }
}
+
--
Gitblit v1.9.3