From e7cdb46ff28bceccfc4694078e89de649fecb7f2 Mon Sep 17 00:00:00 2001 From: weidong Date: Fri, 28 Jun 2024 11:18:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=94=B5=E5=8E=8B=E3=80=81?= =?UTF-8?q?=E6=B8=A9=E5=BA=A6=E7=AD=89=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../imdroid/beidou_fwd/entity/KingMaData.java | 8 +++++ .../imdroid/beidou_fwd/task/Forwarder.java | 2 +- .../beidou_fwd/task/KingMaForwarder.java | 33 ++++++++++++++++--- 3 files changed, 38 insertions(+), 5 deletions(-) diff --git a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/entity/KingMaData.java b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/entity/KingMaData.java index 0951d1bf..06356e41 100644 --- a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/entity/KingMaData.java +++ b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/entity/KingMaData.java @@ -35,12 +35,20 @@ public class KingMaData { Data data1; Data data2; Data data3; + Data data4; + Data data5; + Data data6; public Phys(Double e, Double n, Double d){ data1 = new Data("data1","mm",e); data2 = new Data("data2","mm",n); data3 = new Data("data3","mm",d); } + public void setSensorData(Double voltage, Double rssi, Double temperature){ + data4 = new Data("data4","V",voltage); + data5 = new Data("data5","dB",rssi); + data6 = new Data("data6","°C",temperature); + } } } diff --git a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/Forwarder.java b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/Forwarder.java index 2fa60687..49745128 100644 --- a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/Forwarder.java +++ b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/Forwarder.java @@ -25,7 +25,7 @@ public class Forwarder { int totalSendNum = 0; int fwdCycleMinutes = 30; - static boolean isFwdTableInit = false; + static boolean isFwdTableInit = true;//false; @Autowired private GnssDeviceMapper deviceMapper; diff --git a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/KingMaForwarder.java b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/KingMaForwarder.java index f9f847e5..b18b84de 100644 --- a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/KingMaForwarder.java +++ b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/KingMaForwarder.java @@ -1,13 +1,13 @@ package com.imdroid.beidou_fwd.task; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.imdroid.beidou_fwd.entity.KingMaData; import com.imdroid.common.util.GsonUtil; import com.imdroid.common.util.HttpUtils; import com.imdroid.common.util.NumberUtils; import com.imdroid.secapi.dto.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; @@ -40,6 +40,9 @@ public class KingMaForwarder extends Forwarder{ Map header; LocalDateTime lastTokenTime = LocalDateTime.now(); + @Autowired + GnssStatusMsgMapper statusMsgMapper; + @PostConstruct void registerMe(){ init(FORWARDER_NAME, data_host,3,true,60); @@ -47,7 +50,8 @@ public class KingMaForwarder extends Forwarder{ /** * 每半小时转发GNSS解算结果 */ - @Scheduled(cron = "0 0 0/1 * * ?") // 每小时执行一次 + //@Scheduled(cron = "0 0 0/1 * * ?") // 每小时执行一次 + @Scheduled(cron = "0 0/5 * * * ?") // 每30分钟执行一次 private void forwardGnss() { logger.info("kingma forwardGnss"); forwardCurrentGnss(); @@ -93,6 +97,15 @@ public class KingMaForwarder extends Forwarder{ lastTokenTime = nowTime; } + // 获取最近一小时的状态消息 + // 获取温湿度 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("tenantid",tenantId); + queryWrapper.le("createtime",sentTime); + queryWrapper.ge("createtime",sentTime.minusMinutes(fwdCycleMinutes)); + queryWrapper.orderByDesc("createtime"); + List statusMsgs = statusMsgMapper.selectList(queryWrapper); + List dataList = new ArrayList<>(records.size()); for(GnssCalcData locationRecord: records) { @@ -105,18 +118,30 @@ public class KingMaForwarder extends Forwarder{ NumberUtils.scale(locationRecord.getRpose(), 2), NumberUtils.scale(locationRecord.getRposn(), 2), NumberUtils.scale(locationRecord.getRposd(), 2))); + for(GnssStatusMsg msg:statusMsgs){ + if(msg.getDeviceid().equals(locationRecord.getDeviceid())){ + if(msg.getVoltage()!=null && msg.getRssi()!=null && msg.getTemperature()!=null) { + data.getPhys().setSensorData( + NumberUtils.scale((double) (msg.getVoltage() / 1000), 1), + NumberUtils.scale((double) (msg.getRssi()), 0), + NumberUtils.scale((double) (msg.getTemperature()), 1)); + } + break; + } + } dataList.add(data); sendNum++; } String json = GsonUtil.toJson(dataList); + logger.info(json); String result = HttpUtils.postJson(data_host,header,json); logger.info("project " + projectId + ": push calculation result to Kingma"); - logger.info(json); logger.info("result: "+result); JSONObject obj = (JSONObject) JSONObject.parse(result); String msg = obj.getString("message"); if(msg.equals("Success")) return sendNum; else return 0; + //return sendNum; } }