فهرست منبع

当阳历史数据同步

1037015548@qq.com 11 ماه پیش
والد
کامیت
febdb9f7e4

+ 1 - 1
dc3-gateway/src/main/java/io/github/pnoker/gateway/bizmgr/KprDangyangWaterBizFun.java

@@ -212,7 +212,7 @@ public class KprDangyangWaterBizFun {
         Calendar nextRun = (Calendar) now.clone();
 
         // 设置为明天的0点
-        nextRun.set(Calendar.HOUR_OF_DAY, 2);
+        nextRun.set(Calendar.HOUR_OF_DAY, 1);
         nextRun.set(Calendar.MINUTE, 0);
         nextRun.set(Calendar.SECOND, 0);
         nextRun.set(Calendar.MILLISECOND, 0);

+ 9 - 9
dc3-gateway/src/main/java/io/github/pnoker/gateway/comtool/ScheduleTaskMgr.java

@@ -171,15 +171,15 @@ public class ScheduleTaskMgr {
 //        },5000);
 //    }
 
-    @PostConstruct
-    public void initReal(){
-        new Timer().schedule(new TimerTask() {
-            @Override
-            public void run() {
-                KprDangyangWaterBizFun.checkRealtimeData();
-            }
-        },10000);
-    }
+//    @PostConstruct
+//    public void initReal(){
+//        new Timer().schedule(new TimerTask() {
+//            @Override
+//            public void run() {
+//                KprDangyangWaterBizFun.checkRealtimeData();
+//            }
+//        },10000);
+//    }
     @PostConstruct
     public void initHistory(){
         new Timer().schedule(new TimerTask() {

+ 26 - 10
dc3-gateway/src/main/java/io/github/pnoker/gateway/comtool/ThreadHistoryTask.java

@@ -55,7 +55,10 @@ public class ThreadHistoryTask implements Runnable{
             int pageSize = 1000;
             for (Map<String, Object> map : deviceList) {
 //                int pageNo = 1;
-//                while (true) {
+                while (true) {
+                    if (oneMonthStr.equals(nowTimeStr)){
+                        break;
+                    }
                     JSONObject devicerealtimeDataTotal = null;
                     try {
                         Map<String, String> paramRealtime = new HashMap<>();
@@ -64,7 +67,8 @@ public class ThreadHistoryTask implements Runnable{
 //                        paramRealtime.put("pageNo", String.valueOf(pageNo));
 //                        paramRealtime.put("pageSize", String.valueOf(pageSize));
                         paramRealtime.put("startTime", oneMonthStr);
-                        paramRealtime.put("endTime", nowTimeStr);
+                        paramRealtime.put("endTime", parseStringToDateTime(oneMonthStr,TimeTool.TIMESTAMP_FORMAT).minusDays(-1)
+                                .format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
                         Map<String, String> headers = new HashMap<>();
                         headers.put("Authorization", "Bearer " + KprDangyangWaterBizFun.dangyangToken);
                         devicerealtimeDataTotal = JSONObject.parseObject(HttpUtil.sendGet(
@@ -73,17 +77,14 @@ public class ThreadHistoryTask implements Runnable{
                         log.error("历史任务线程" + taskId + " 调用异常:" + ex.getLocalizedMessage());
                     }
                     if (devicerealtimeDataTotal == null || devicerealtimeDataTotal.getInteger("code") != 0 ||
-                            devicerealtimeDataTotal.getJSONObject("data") == null
-                            || devicerealtimeDataTotal.getJSONObject("data").getJSONArray("list") == null
-                            || devicerealtimeDataTotal.getJSONObject("data").getJSONArray("list").isEmpty()) {
+                            devicerealtimeDataTotal.getJSONArray("data") == null
+                            || devicerealtimeDataTotal.getJSONArray("data").isEmpty()) {
                         break;
                     }
                     try {
                         //TODO 查询数据不为空,插入infulxdb
-                        for (int i = 0; i <devicerealtimeDataTotal.getJSONObject("data")
-                                .getJSONArray("list").size(); i++) {
-                            JSONObject deviceRealtimeData = devicerealtimeDataTotal.getJSONObject("data")
-                                    .getJSONArray("list").getJSONObject(i);
+                        for (int i = 0; i <devicerealtimeDataTotal.getJSONArray("data").size(); i++) {
+                            JSONObject deviceRealtimeData = devicerealtimeDataTotal.getJSONArray("data").getJSONObject(i);
                             adjustTime(deviceRealtimeData, collectionFrequency);//整点rand处理
                             deviceRealtimeDataList.add(deviceRealtimeData);
                         }
@@ -91,7 +92,9 @@ public class ThreadHistoryTask implements Runnable{
                         log.error("历史任务线程" + taskId + " " + String.valueOf(map.get("deviceCode")) + "查询异常:" + ex.getLocalizedMessage() + ";resJson:" + devicerealtimeDataTotal.toJSONString());
                     }
 //                    pageNo++;
-//                }
+                    oneMonthStr = parseStringToDateTime(oneMonthStr,TimeTool.TIMESTAMP_FORMAT).minusDays(-1)
+                            .format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+                }
             }
             //TODO 开始插入数据库
             //第三方对应的字段集
@@ -110,6 +113,19 @@ public class ThreadHistoryTask implements Runnable{
         }
     }
 
+
+    public static LocalDateTime parseStringToDateTime(String time, String format) {
+        DateTimeFormatter df = DateTimeFormatter.ofPattern(format);
+        return LocalDateTime.parse(time, df);
+    }
+
+    public static String getDateTimeToString(LocalDateTime localDateTime, String format) {
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
+        return localDateTime.format(formatter);
+    }
+
+
+
     public static Point createPointFromJson(String deviceType, JSONObject jsonObject,List<String> params) {
         // 获取时间戳
         long nanoTimestamp = convertToNanoTimestamp(jsonObject.getString("time"));