From 768308ab47041062d9e97745099784acf297286b Mon Sep 17 00:00:00 2001 From: jiazx0107@163.com <jiazx0107@163.com> Date: 星期三, 08 十一月 2023 17:45:37 +0800 Subject: [PATCH] 提交粮情测试协议和流程 --- src/main/java/com/fzzy/gateway/hx2023/service/HxGatewaySyncGrainImpl.java | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 107 insertions(+), 3 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..729570c 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.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 java.util.ArrayList; +import java.util.List; /** * 缃戝叧涓庣伯鎯呭垎鏈洪�氳鍜岃В鏋� @@ -18,11 +28,105 @@ @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 - 2; + tMax = tOut + 3; + } + + + //鏁版嵁灏佽 + 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++) { + 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