From 814b453961763bf1b60af85f9f3bdc4682659ae8 Mon Sep 17 00:00:00 2001
From: jiazx0107@163.com <jiazx0107@163.com>
Date: 星期一, 15 一月 2024 20:28:54 +0800
Subject: [PATCH] 添加手动推送粮情接口,以便第三方接口调用
---
src/main/java/com/fzzy/gateway/hx2023/service/ScGatewayTestServiceImpl.java | 257 ++++++++++++++++++++++++---------------------------
1 files changed, 122 insertions(+), 135 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 c7efde7..b2bbc4b 100644
--- a/src/main/java/com/fzzy/gateway/hx2023/service/ScGatewayTestServiceImpl.java
+++ b/src/main/java/com/fzzy/gateway/hx2023/service/ScGatewayTestServiceImpl.java
@@ -22,9 +22,7 @@
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
@@ -32,6 +30,9 @@
@Resource
private Fzzy40CommonService fzzy40CommonService;
+
+ @Resource
+ private DeviceReportServiceImpl deviceReportService;
@Override
public String getProtocol() {
@@ -63,144 +64,126 @@
}
private BaseResp pushByV40(BaseReqData reqData, Date start, Date end) {
-
-
GatewayDevice device = reqData.getDevice();
String depotIdSys = device.getDepotIdSys();
if (StringUtils.isEmpty(depotIdSys)) {
log.error("--------璁惧--{}-鏈厤缃郴缁熺浉鍏充粨搴撶紪鐮侊紝鏃犳硶鎵ц褰撳墠鎿嶄綔", device.getDeviceName());
- return new BaseResp(BaseResp.CODE_50, "鏈厤缃郴缁熺浉鍏充粨搴撶紪鐮侊紝鏃犳硶鎵ц褰撳墠鎿嶄綔");
+ return new BaseResp(BaseResp.CODE_500, "鏈厤缃郴缁熺浉鍏充粨搴撶紪鐮侊紝鏃犳硶鎵ц褰撳墠鎿嶄綔");
}
List<Fz40Grain> listGrain = fzzy40CommonService.listGrain(depotIdSys, start, end);
if (null == listGrain || listGrain.isEmpty()) {
- log.error("---------璁惧---{}--鏈悓姝ュ埌绮儏淇℃伅锛岃纭褰撳墠鏉′欢涓嬫槸鍚︽湁鏁版嵁", device.getDeviceName());
- return new BaseResp(BaseResp.CODE_50, "鏈悓姝ュ埌绮儏淇℃伅锛岃纭褰撳墠鏉′欢涓嬫槸鍚︽湁鏁版嵁");
+ log.error("---------璁惧-{}-绯荤粺浠撳簱缂栫爜-{}-鏈悓姝ュ埌绮儏淇℃伅锛岃纭褰撳墠鏉′欢涓嬫槸鍚︽湁鏁版嵁", device.getDeviceName(), device.getDepotIdSys());
+ return new BaseResp(BaseResp.CODE_500, "鏈悓姝ュ埌绮儏淇℃伅锛岃纭褰撳墠鏉′欢涓嬫槸鍚︽湁鏁版嵁");
}
- //鑾峰彇鏈�鍚庝竴鏉$伯鎯呬綔涓哄綋鍓嶆暟鎹�
- Fz40Grain lastData = listGrain.get(listGrain.size() - 1);
- KafaGrainData pushData = this.lastData2PushData(lastData, device);
+ //鑾峰彇绗竴鏉℃暟鎹墽琛屾帹閫�
+ Fz40Grain lastData = listGrain.get(0);
- return new BaseResp(JSONObject.toJSONString(pushData));
+ return deviceReportService.grainData2GatewayApiInfo(lastData,device);
}
- /**
- * 灏嗙伯鎯呮暟鎹浆鎹负鎺ㄩ�侀渶瑕佺殑鏁版嵁鏍煎紡
- *
- * @param lastData
- * @return
- */
- private KafaGrainData lastData2PushData(Fz40Grain lastData, GatewayDevice device) {
- KafaGrainData result = new KafaGrainData();
+// /**
+// * 灏嗙伯鎯呮暟鎹浆鎹负鎺ㄩ�侀渶瑕佺殑鏁版嵁鏍煎紡
+// *
+// * @param grainData
+// * @return
+// */
+// 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(grainData.getTempAve() + "");
+// result.setMinTemperature(grainData.getTempMin() + "");
+// result.setMaxTemperature(grainData.getTempMax() + "");
+// result.setCollectTime(DateFormatUtils.format(grainData.getReceiveDate(), "yyyy-MM-dd HH:mm:ss"));
+//
+// //灞�-琛�-鍒�
+// String[] attrCable = grainData.getCable().split("-");
+// if (StringUtils.isNotEmpty(grainData.getCableCir())) {
+// return lastData2PushData2(grainData, device);
+// }
+//
+// //灞傝鍒�
+// int cableZ = Integer.valueOf(attrCable[0]);
+// int cableY = Integer.valueOf(attrCable[1]);
+// int cableX = Integer.valueOf(attrCable[2]);
+//
+// //娓╁害闆嗗悎
+// 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];
+//
+//
+// //濡傛灉鏄紓甯稿��,鎵ц璋冩暣鏁版嵁 TODO
+// if (Double.valueOf(curTemp) < -99.9) {
+//
+// curTemp = grainData.getTempAve() + "";
+//
+// } 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);
+//
+//
+// //浠撴俯搴︿俊鎭�
+// KafkaGrainTH grainTH = new KafkaGrainTH();
+// grainTH.setHumidity(grainData.getHumidityIn() + "");
+// grainTH.setTemperature(grainData.getTempIn() + "");
+// grainTH.setAirHumidity(grainData.getHumidityOut() + "");
+// grainTH.setAirTemperature(grainData.getTempOut() + "");
+//
+// List<KafkaGrainTH> temperatureAndhumidity = new ArrayList<>();
+// temperatureAndhumidity.add(grainTH);
+//
+// trhInfo.put("temperatureAndhumidity", temperatureAndhumidity);
+// //trhInfo.put("temperatureAndhumidity",grainTH);
+//
+// JSONObject params = new JSONObject();
+// params.put("TRHInfo", trhInfo);
+//
+// result.setParams(params);
+//
+// return result;
+// }
- 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"));
-
- //灞�-琛�-鍒�
- String[] attrCable = lastData.getCable().split("-");
-
-
- if (StringUtils.isNotEmpty(lastData.getCableCir())) {
- return lastData2PushData2(lastData, device);
- }
-
- //灞傝鍒�
- int cableZ = Integer.valueOf(attrCable[0]);
- int cableY = Integer.valueOf(attrCable[1]);
- int cableX = Integer.valueOf(attrCable[2]);
-
- //娓╁害闆嗗悎
- String[] attr = lastData.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 + "");
- }
-
-
- //鍒ゆ柇鏈�灏�
- 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);
-
-
- //浠撴俯搴︿俊鎭�
- KafkaGrainTH grainTH = new KafkaGrainTH();
- grainTH.setHumidity(lastData.getHumidityIn() + "");
- grainTH.setTemperature(lastData.getTempIn() + "");
- grainTH.setAirHumidity(lastData.getHumidityOut() + "");
- grainTH.setAirTemperature(lastData.getTempOut() + "");
-
- List<KafkaGrainTH> temperatureAndhumidity = new ArrayList<>();
- temperatureAndhumidity.add(grainTH);
-
- trhInfo.put("temperatureAndhumidity", temperatureAndhumidity);
- //trhInfo.put("temperatureAndhumidity",grainTH);
-
- JSONObject params = new JSONObject();
- params.put("TRHInfo", trhInfo);
-
- result.setParams(params);
-
- return result;
- }
-
- /**
- * 閽堝绛掍粨 TODO -----
- *
- * @param lastData
- * @param device
- * @return
- */
- private KafaGrainData lastData2PushData2(Fz40Grain lastData, GatewayDevice device) {
-
- return null;
- }
@Override
@@ -313,19 +296,19 @@
for (int i = 0; i < sumNum; i++) {
log.info("i=锛�" + i);
if (i % cableZ == 0) {
- randomNumber = RandomUtils.nextDouble(tMIn, tMax+1.5);
+ randomNumber = RandomUtils.nextDouble(tMIn, tMax + 1.5);
log.info("绗�1灞傛俯搴︼細" + randomNumber);
- } else if (i % cableZ == 1) {
- randomNumber = RandomUtils.nextDouble(tMIn-1, tMax-0);
+ } 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);
+ } 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);
+ } 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);
+ } else if (i % cableZ == 4) {
+ randomNumber = RandomUtils.nextDouble(tMIn - 4, tMax - 4.5);
log.info("绗�5灞傛俯搴︼細" + randomNumber);
}
// randomNumber = Math.random() * (tMax - tMIn + 1) + tMIn;
@@ -343,6 +326,10 @@
}
outPut.setTemperature(temperature);
+ List<GrainTH> ths = new ArrayList<>();
+
+ ths.add(new GrainTH(weather.getTem() != null ? weather.getTem() + "" : "", weather.getHumidity() != null ? weather.getHumidity() + "" : "", "1"));
+ outPut.setTemperatureAndhumidity(ths);
grain.setOutput(JSONObject.toJSONString(outPut));
--
Gitblit v1.9.3