Преглед изворни кода

fix:修复查询监控目标统计无法实时变动问题

黄渊昊 пре 6 месеци
родитељ
комит
76b36b97b8

+ 1 - 1
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/service/MonitorTargetService.java

@@ -89,7 +89,7 @@ public interface MonitorTargetService extends IService<MonitorTarget> {
     /**
      * 根据设备对象状态统计数据
      */
-    TargetStatus getTargetCount();
+    TargetStatus getTargetCount(String name);
 
     /**
      * 更新最后一次心跳时间

+ 10 - 3
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/service/impl/MonitorTargetServiceImpl.java

@@ -160,12 +160,19 @@ public class MonitorTargetServiceImpl extends ServiceImpl<MonitorTargetMapper, M
     }
 
     @Override
-    public TargetStatus getTargetCount() {
-        long count = this.count();
+    public TargetStatus getTargetCount(String name) {
+        LambdaQueryWrapper<MonitorTarget> countQueryWrapper = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<MonitorTarget> onlineQueryWrapper = new LambdaQueryWrapper<>();
+        LambdaQueryWrapper<MonitorTarget> offlineQueryWrapper = new LambdaQueryWrapper<>();
+        if (ObjectUtil.isNotNull(name)) {
+            countQueryWrapper.eq(MonitorTarget::getName, name);
+            onlineQueryWrapper.eq(MonitorTarget::getName, name);
+            offlineQueryWrapper.eq(MonitorTarget::getName, name);
+        }
+
+        long count = this.count(countQueryWrapper);
         onlineQueryWrapper.eq(MonitorTarget::getStatus, MonitorStatusEnum.ONLINE.getCode());
         long monitorTargetListOnline = count(onlineQueryWrapper);
-        LambdaQueryWrapper<MonitorTarget> offlineQueryWrapper = new LambdaQueryWrapper<>();
         offlineQueryWrapper.eq(MonitorTarget::getStatus, MonitorStatusEnum.OFF.getCode());
         long monitorTargetListOffline = count(offlineQueryWrapper);
         return new TargetStatus(count, monitorTargetListOnline, monitorTargetListOffline);