Prechádzať zdrojové kódy

禁用getaway服务注册, 当阳数据采集逻辑优化, 解决电控阀数据获取有问题的bug, 接口与文档大小写不一致

1037015548@qq.com 10 mesiacov pred
rodič
commit
40f114bf62

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

@@ -197,7 +197,10 @@ public class KprDangyangWaterBizFun {
                         Integer taskTime = fc/60;
                         Integer taskTime = fc/60;
                         ThreadHistoryTask threadHistoryTask = new ThreadHistoryTask(taskId,taskTime
                         ThreadHistoryTask threadHistoryTask = new ThreadHistoryTask(taskId,taskTime
                                 ,itemType.getString("key"),groupedByFrequency.get(groupKey));
                                 ,itemType.getString("key"),groupedByFrequency.get(groupKey));
-                        ThreadPoolTaskTool.scheduleCronHistroyTask(scheduler,taskId,threadHistoryTask,"0 0 0 * * * ");
+//                        ThreadPoolTaskTool.scheduleCronHistroyTask(scheduler,taskId,threadHistoryTask,"0 0 0 * * * ");
+//                        if(itemType.getString("key").equals("ELEC_CTRL_VALVE")) {
+                            ThreadPoolTaskTool.scheduleCronHistroyTask(scheduler, taskId, threadHistoryTask, "0 15 17 * * ?");
+//                        }
                     }
                     }
                 }
                 }
             }
             }
@@ -293,7 +296,9 @@ public class KprDangyangWaterBizFun {
 
 
                         ThreadTask threadTask = new ThreadTask(taskId,taskTime
                         ThreadTask threadTask = new ThreadTask(taskId,taskTime
                         ,itemType.getString("key"),groupedByFrequency.get(groupKey));
                         ,itemType.getString("key"),groupedByFrequency.get(groupKey));
-                        ThreadPoolTaskTool.scheduleCronTask(scheduler,taskId,threadTask,"0 */"+taskTime+" * * * ?");
+//                        if(itemType.getString("key").equals("ELEC_CTRL_VALVE")) {
+                            ThreadPoolTaskTool.scheduleCronTask(scheduler, taskId, threadTask, "0 */" + taskTime + " * * * ?");
+//                        }
                     }
                     }
                 }else{
                 }else{
                     log.error(TimeTool.convertUTC2DateStr(TimeTool.getCurMsUTC(),TimeTool.TIMESTAMP_FORMAT)
                     log.error(TimeTool.convertUTC2DateStr(TimeTool.getCurMsUTC(),TimeTool.TIMESTAMP_FORMAT)

+ 13 - 2
dc3-gateway/src/main/java/io/github/pnoker/gateway/comtool/ThreadHistoryTask.java

@@ -100,7 +100,9 @@ public class ThreadHistoryTask implements Runnable{
                 //deviceType为表名
                 //deviceType为表名
                 //time为当前数据time的纳秒时间戳,已经做过整点处理了
                 //time为当前数据time的纳秒时间戳,已经做过整点处理了
                 Point pointNanos = createPointFromJson(deviceType,jsonObject,params);
                 Point pointNanos = createPointFromJson(deviceType,jsonObject,params);
-                KprDangyangWaterBizFun.infulxDbUtil.insert(pointNanos);
+                if(pointNanos!=null) {
+                    KprDangyangWaterBizFun.infulxDbUtil.insert(pointNanos);
+                }
             }
             }
 
 
         }catch(Exception ex){
         }catch(Exception ex){
@@ -111,7 +113,9 @@ public class ThreadHistoryTask implements Runnable{
     public static Point createPointFromJson(String deviceType, JSONObject jsonObject,List<String> params) {
     public static Point createPointFromJson(String deviceType, JSONObject jsonObject,List<String> params) {
         // 获取时间戳
         // 获取时间戳
         long nanoTimestamp = convertToNanoTimestamp(jsonObject.getString("time"));
         long nanoTimestamp = convertToNanoTimestamp(jsonObject.getString("time"));
-
+        if(nanoTimestamp==0L){
+            return null;
+        }
         // 创建 Point.Builder 对象
         // 创建 Point.Builder 对象
         Point.Builder pointBuilder = Point.measurement(KprBaseInitFun.getInstance().measurementMap.get(deviceType))
         Point.Builder pointBuilder = Point.measurement(KprBaseInitFun.getInstance().measurementMap.get(deviceType))
                 .tag("dev_id",jsonObject.getString("deviceCode"))
                 .tag("dev_id",jsonObject.getString("deviceCode"))
@@ -205,6 +209,10 @@ public class ThreadHistoryTask implements Runnable{
         Instant instant = zonedDateTime.toInstant();
         Instant instant = zonedDateTime.toInstant();
         // 计算从1970年1月1日00:00:00 UTC以来的纳秒数
         // 计算从1970年1月1日00:00:00 UTC以来的纳秒数
         long nanosecondsSinceEpoch = ChronoUnit.NANOS.between(Instant.EPOCH, instant);
         long nanosecondsSinceEpoch = ChronoUnit.NANOS.between(Instant.EPOCH, instant);
+        long currentTimeNanos = System.currentTimeMillis() * 1_000_000L;
+        if(nanosecondsSinceEpoch>currentTimeNanos){
+            return 0L;
+        }
         return nanosecondsSinceEpoch;
         return nanosecondsSinceEpoch;
     }
     }
 
 
@@ -216,6 +224,9 @@ public class ThreadHistoryTask implements Runnable{
 
 
         // 计算最近的整分钟时间
         // 计算最近的整分钟时间
         Date roundedDate = getNearestTime(originalDate, collectionFrequency);
         Date roundedDate = getNearestTime(originalDate, collectionFrequency);
+        if(roundedDate.after(new Date())){
+            System.out.println();
+        }
 
 
         // 格式化回字符串
         // 格式化回字符串
         String adjustedTimeStr = outputDateFormat.format(roundedDate);
         String adjustedTimeStr = outputDateFormat.format(roundedDate);

+ 13 - 2
dc3-gateway/src/main/java/io/github/pnoker/gateway/comtool/ThreadTask.java

@@ -94,7 +94,9 @@ public class ThreadTask implements Runnable{
                 //deviceType为表名
                 //deviceType为表名
                 //time为当前数据time的纳秒时间戳,已经做过整点处理了
                 //time为当前数据time的纳秒时间戳,已经做过整点处理了
                 Point pointNanos = createPointFromJson(deviceType,jsonObject,params);
                 Point pointNanos = createPointFromJson(deviceType,jsonObject,params);
-                KprDangyangWaterBizFun.infulxDbUtil.insert(pointNanos);
+                if(pointNanos!=null) {
+                    KprDangyangWaterBizFun.infulxDbUtil.insert(pointNanos);
+                }
             }
             }
 
 
         }catch(Exception ex){
         }catch(Exception ex){
@@ -105,7 +107,9 @@ public class ThreadTask implements Runnable{
     public static Point createPointFromJson(String deviceType, JSONObject jsonObject,List<String> params) {
     public static Point createPointFromJson(String deviceType, JSONObject jsonObject,List<String> params) {
         // 获取时间戳
         // 获取时间戳
         long nanoTimestamp = convertToNanoTimestamp(jsonObject.getString("time"));
         long nanoTimestamp = convertToNanoTimestamp(jsonObject.getString("time"));
-
+        if(nanoTimestamp==0L){
+            return null;
+        }
         // 创建 Point.Builder 对象
         // 创建 Point.Builder 对象
         Point.Builder pointBuilder = Point.measurement(KprBaseInitFun.getInstance().measurementMap.get(deviceType))
         Point.Builder pointBuilder = Point.measurement(KprBaseInitFun.getInstance().measurementMap.get(deviceType))
                 .tag("dev_id",jsonObject.getString("deviceCode"))
                 .tag("dev_id",jsonObject.getString("deviceCode"))
@@ -199,6 +203,10 @@ public class ThreadTask implements Runnable{
         Instant instant = zonedDateTime.toInstant();
         Instant instant = zonedDateTime.toInstant();
         // 计算从1970年1月1日00:00:00 UTC以来的纳秒数
         // 计算从1970年1月1日00:00:00 UTC以来的纳秒数
         long nanosecondsSinceEpoch = ChronoUnit.NANOS.between(Instant.EPOCH, instant);
         long nanosecondsSinceEpoch = ChronoUnit.NANOS.between(Instant.EPOCH, instant);
+        long currentTimeNanos = System.currentTimeMillis() * 1_000_000L;
+        if(nanosecondsSinceEpoch>currentTimeNanos){
+            return 0L;
+        }
         return nanosecondsSinceEpoch;
         return nanosecondsSinceEpoch;
     }
     }
 
 
@@ -210,6 +218,9 @@ public class ThreadTask implements Runnable{
 
 
         // 计算最近的整分钟时间
         // 计算最近的整分钟时间
         Date roundedDate = getNearestTime(originalDate, collectionFrequency);
         Date roundedDate = getNearestTime(originalDate, collectionFrequency);
+        if(roundedDate.after(new Date())){
+            System.out.println(1111);
+        }
 
 
         // 格式化回字符串
         // 格式化回字符串
         String adjustedTimeStr = outputDateFormat.format(roundedDate);
         String adjustedTimeStr = outputDateFormat.format(roundedDate);

+ 1 - 1
dc3-gateway/src/main/resources/application.yml

@@ -201,7 +201,7 @@ flowmeter: ftotal___flow_total_pos,rtotal___flow_total_rev,flow___flow_cur,speed
 pressmeter: press___press_cur
 pressmeter: press___press_cur
 waterquality: ph___ph,wd___dev_temperature,yl___chlorine,zd___turbidity
 waterquality: ph___ph,wd___dev_temperature,yl___chlorine,zd___turbidity
 waterpump: power___power,currentA___ia,currentB___ib,currentC___ic,voltageA___ua,voltageB___ub,voltageC___uc,soc___battery,dn___quantity,runTime,runFrequency___frequency
 waterpump: power___power,currentA___ia,currentB___ib,currentC___ic,voltageA___ua,voltageB___ub,voltageC___uc,soc___battery,dn___quantity,runTime,runFrequency___frequency
-elecctrlvalve: RP16___battery_voltage,RW01___flow_total_pos,RW03___flow_speed,RW02___flow_cur
+elecctrlvalve: RP16___battery_voltage,RW01___flow_total_pos,RW03___flow_speed,RW02___flow_cur,rp16___battery_voltage,rw01___flow_total_pos,rw03___flow_speed,rw02___flow_cur
 liquidlevelmeter: level___level
 liquidlevelmeter: level___level
 
 
 WATER_METER: WaterMeter
 WATER_METER: WaterMeter