From d2ccdab6ab7b2abe0cb82ee071cfb2611850d911 Mon Sep 17 00:00:00 2001 From: weidong Date: Fri, 2 Feb 2024 21:02:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=AD=A6=E6=B1=89=E4=B8=AD?= =?UTF-8?q?=E5=8D=97=E9=99=A2=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../imdroid/beidou_fwd/task/ZNYForwarder.java | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/ZNYForwarder.java diff --git a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/ZNYForwarder.java b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/ZNYForwarder.java new file mode 100644 index 00000000..beb02d19 --- /dev/null +++ b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/ZNYForwarder.java @@ -0,0 +1,77 @@ +package com.imdroid.beidou_fwd.task; + +import com.alibaba.fastjson.JSONObject; +import com.imdroid.beidou_fwd.entity.DefoData; +import com.imdroid.common.util.GsonUtil; +import com.imdroid.common.util.HttpUtils; +import com.imdroid.common.util.NumberUtils; +import com.imdroid.secapi.dto.GnssCalcData; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; + +@Component +@Configuration +@EnableScheduling +public class ZNYForwarder extends Forwarder{ + private final Logger logger = LoggerFactory.getLogger(ZNYForwarder.class); + + static final String FORWARDER_NAME = "武汉中南设计院"; + + @Value("${zny.server.host}") + private String data_host; + final DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + + @PostConstruct + void registerMe(){ + init(FORWARDER_NAME, data_host,4,true); + } + /** + * 每半小时转发GNSS解算结果 + */ + @Scheduled(cron = "0 0/30 * * * ?") // 每30分钟执行一次 + private void forwardGnss() { + logger.info("zny forwardGnss"); + forwardCurrentGnss(FORWARDER_NAME); + } + + @Scheduled(cron = "0 40 * * * ?") // 每小时的40分钟执行一次 + //@Scheduled(cron = "0 0/20 * * * ?") // 每20分钟执行一次 + private void forwardHistoryGnss() { + forwardHistoryGnss(FORWARDER_NAME); + } + + @Override + int send(String projectId, List records){ + int sendNum = 0; + // 单位:米 + DefoData defoData = new DefoData(projectId, LocalDateTime.now().format(dateFormatter), records.size()); + for(GnssCalcData locationRecord:records) { + double n = NumberUtils.scale(locationRecord.getRposn() * 0.001, 5); + double e = NumberUtils.scale(locationRecord.getRpose() * 0.001, 5); + double d = NumberUtils.scale(locationRecord.getRposd() * 0.001, 5); + DefoData.Data data = new DefoData.Data(locationRecord.getDeviceid(), String.format("%.5f", n), + String.format("%.5f", e), String.format("%.5f", d)); + defoData.getData().add(data); + sendNum++; + } + String json = GsonUtil.toJson(defoData); + logger.info("发送数据到武汉中南设计院平台:{}", json); + String result = HttpUtils.postJson(data_host,json); + logger.info("发送数据到武汉中南设计院平台返回结果:{}", result); + JSONObject obj = (JSONObject) JSONObject.parse(result); + String msg = obj.getString("message"); + if(msg.contains("成功")) return sendNum; + else return 0; + } + +}