瀏覽代碼

返回给前端 当时数据,如果没查询到,key也要发返回 新增main方法获取工业库实时数据

wangmiaomiao 11 月之前
父節點
當前提交
97e40edfed

+ 59 - 0
slibra-quartz/src/main/java/com/slibra/quartz/task/GetRealTimeData.java

@@ -0,0 +1,59 @@
+package com.slibra.quartz.task;
+
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.http.HttpRequest;
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
+import com.slibra.business.domain.TXinyiIndustry;
+import com.slibra.common.utils.DateUtils;
+import lombok.extern.slf4j.Slf4j;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+
+@Slf4j
+public class GetRealTimeData {
+
+
+//    public static final String[] queryTags = {"信义污水厂实际碳源加药量"};
+    public static final String[] queryTags = {"信义污水厂除磷加药瞬时流量"};
+
+    /**
+     * 定时从工业库获取数据
+     *
+     * 2024年4月17日17:44:15 调整逻辑:考虑到因断电等情况导致服务断电,所以不再同步最近一小时,而是同步从上次成功的最后一条数据开始。
+     */
+    public static void main(String[] args) {
+        log.info("进入了定时同步工业库数据的任务");
+
+        //耗时工具
+//        watch.start("parseJob");
+
+
+        // 给定时间段的起始时间和结束时间
+
+        LocalDateTime startTime = LocalDateTime.parse("2024-05-27T12:00:00");
+        LocalDateTime endTime = LocalDateTime.parse("2024-05-27T12:01:00");
+
+        // 每个小时的时间格式
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+        String begin = startTime.format(formatter);
+        String end = endTime.format(formatter);
+        // 输出当前小时的起始时间和结束时间
+        System.out.println("起始时间:" + begin);
+        System.out.println("结束时间:" + end);
+
+        //每个小时查询一次数据
+        String url = "http://10.0.0.27:4568/api/v1/khquerydata";
+        HashMap<String, Object> req = new HashMap<>();
+        req.put("tagNames", queryTags);
+        req.put("startTime", begin);
+        req.put("endTime", end);
+        req.put("recordNumbers", 100000);
+        String body = HttpRequest.post(url).header("Authorization", "c2E6c2E=").header("clientName", "hongshan").body(JSON.toJSONString(req)).execute().body();
+        System.out.println("body = " + body);
+    }
+}

+ 4 - 1
slibra-quartz/src/main/java/com/slibra/quartz/task/RyTask.java

@@ -549,12 +549,15 @@ public class RyTask
             basic.put("状态", status == 0 ? "告警中" : status == 1 ? "用户关闭" : status == 2 ? "系统自动关闭" : "用户转为应急处理中");
         else
             basic.put("状态", status == 0 ? "预警中" : "已完成");
+        //2024年5月27日14:04:22  额外返回2个字段 [管控值 和 告警级别]  返回的json没有数据是因为value没有值
+//        basic.put("管控值", tXinyiWarningRecord.getControlVal());
+        basic.put("告警级别", tXinyiWarningRecord.getLevel());
         result.put("basic", basic);
         JSONObject jsData = getJsonObject(tXinyiIndustry, normConfig);//进水数据
         result.put("jsData", jsData);
         JSONObject csData = getCsonObject(tXinyiIndustry, normConfig);//出水数据
         result.put("csData", csData);
-        return JSON.toJSONString(result);
+        return JSON.toJSONString(result, JSONWriter.Feature.WriteNulls);
     }
 
     private static JSONObject getJsonObject(TXinyiIndustry tXinyiIndustry, TXinyiNormConfig normConfig) {