From 29bd44e8648aa2df488f94e7a947ed6839a33877 Mon Sep 17 00:00:00 2001
From: vince <757871790@qq.com>
Date: 星期四, 09 十一月 2023 00:02:18 +0800
Subject: [PATCH] 手动测试

---
 src/main/java/com/fzzy/gateway/hx2023/service/HxGatewaySyncGrainImpl.java |  133 +++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 129 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 2e0b694..11cc0e9 100644
--- a/src/main/java/com/fzzy/gateway/hx2023/service/HxGatewaySyncGrainImpl.java
+++ b/src/main/java/com/fzzy/gateway/hx2023/service/HxGatewaySyncGrainImpl.java
@@ -1,11 +1,21 @@
 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.GrainData;
-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 java.util.ArrayList;
+import java.util.List;
 
 /**
  * 缃戝叧涓庣伯鎯呭垎鏈洪�氳鍜岃В鏋�
@@ -18,11 +28,126 @@
 
     @Override
     public String getGrainProtocol() {
-        return null;
+        return GatewayDeviceProtocol.DEVICE_TEST.getCode();
     }
 
     @Override
-    public GrainData syncGrain(SyncReqData reqData) {
+    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);
+
+
+        BaseResp resp = new BaseResp();
+        resp.setData(JSONObject.toJSONString(grain));
+
+        return resp;
+    }
 }
+

--
Gitblit v1.9.3