Browse Source

fix: sims查询接口

jackzhou 9 months ago
parent
commit
47d61021c5

+ 3 - 3
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/cache/monitordevice/MonitorDeviceCacheInitializer.java

@@ -76,9 +76,9 @@ public class MonitorDeviceCacheInitializer implements CommandLineRunner {
     /**
      * 每 5 分钟定期执行设备缓存更新
      */
-    @Scheduled(fixedRate = 300000)
-//    @Scheduled(fixedRateString = "${coldchain.cache-update-interval:300000}")
+    @Scheduled(fixedRateString = "${coldchain.cache-update-interval:300000}")
     public void updateDeviceCachePeriodically() {
-        updateDeviceCache();  // 定期调用缓存更新方法
+        log.info("定期调用[deviceCode][model_name]缓存更新方法");
+        updateDeviceCache();
     }
 }

+ 0 - 1
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/cache/monitordevice/impl/RedisMonitorDeviceCacheService.java

@@ -23,7 +23,6 @@ import java.util.stream.Collectors;
 @Component
 @RequiredArgsConstructor
 public class RedisMonitorDeviceCacheService implements MonitorDeviceCacheService {
-
     private static final String CACHE_KEY_PREFIX = "Cache:MonitorDevice:";
     private final CommonCacheOperator commonCacheOperator;
 

+ 5 - 5
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/config/JfcloudColdChainConstants.java

@@ -20,9 +20,9 @@ public interface JfcloudColdChainConstants {
     String DEFAULT_CACHE_TYPE = "redis";
 
     /**
-     * 每 10 分钟定期执行设备缓存更新
+     * 每 5 分钟定期执行设备缓存更新
      */
-    Long CACHE_UPDATE_INTERVAL = 10 * 60 * 1000L;
+    Long CACHE_UPDATE_INTERVAL = 1 * 60 * 1000L;
 
     /**
      * influxDB default bucketName
@@ -35,7 +35,7 @@ public interface JfcloudColdChainConstants {
     String INFLUXDB_DEFAULT_MEASUREMENT_NAME = "sensor_data";
 
     /**
-     * 队列最大容量和写入数据库的时间间隔
+     * 数据上报队列最大容量
      */
     int MAX_QUEUE_SIZE = 10;
 
@@ -59,9 +59,9 @@ public interface JfcloudColdChainConstants {
      */
     int MESS_PUSH_MAX_PUSH_COUNT = 1;
     /**
-     * 消息推送限制的时间窗口,单位为毫秒(5分钟)
+     * 消息推送限制的时间窗口,单位为毫秒(10分钟)
      */
-    long MESS_PUSH_TIME_WINDOW = 5 * 60 * 1000;
+    long MESS_PUSH_TIME_WINDOW = 10 * 60 * 1000;
     /**
      * redis 缓存用户推送消息频率限制
      */

+ 1 - 1
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/event/SensorDataEventListener.java

@@ -37,7 +37,7 @@ public class SensorDataEventListener {
                 sensorAlarmChecker.checkAlarm(sensorData);
             }
             jfcloudInfluxDBService.writePojo(sensorData);
-            log.info("成功写入数据到 InfluxDB: {}", sensorData);
+//            log.info("成功写入数据到 InfluxDB: {}", sensorData);
         } catch (Exception e) {
             log.error("写入数据到 InfluxDB 时出错: {}", e.getMessage(), e);
         }

+ 13 - 6
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/app/controller/SimsController.java

@@ -2,30 +2,37 @@ package vip.xiaonuo.coldchain.modular.app.controller;
 
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import vip.xiaonuo.coldchain.core.bean.influxdb.SensorData;
+import vip.xiaonuo.coldchain.modular.app.param.AppDeviceQueryParams;
+import vip.xiaonuo.coldchain.modular.app.param.SensorEchartDataResult;
 import vip.xiaonuo.coldchain.modular.app.service.SimsService;
 import vip.xiaonuo.common.pojo.CommonResult;
 
 @Tag(name = "APP移动端控制器")
 @RestController
-@RequestMapping("/coldchain/api/sims/{deviceCode}")
+@RequestMapping("/coldchain/api/sims")
 @Validated
 public class SimsController {
     @Autowired
     private SimsService simsService;
 
     @Operation(summary = "获取设备的最新的温湿度")
-    @GetMapping("/{roads}")
+    @GetMapping("/{deviceCode}/{roads}")
     public CommonResult<SensorData> status(@PathVariable String deviceCode, @PathVariable Integer roads) {
         SensorData status = simsService.status(deviceCode, roads);
         return status == null ? CommonResult.data(new SensorData()) : CommonResult.data(status);
     }
 
+    @Operation(summary = "查询采集设备数据")
+    @PostMapping("/view")
+    public CommonResult<SensorEchartDataResult> queryDeviceData(@RequestBody @Valid AppDeviceQueryParams appDeviceQueryParams) {
+        return CommonResult.data(simsService.queryDataByDeviceIdAndRoads(appDeviceQueryParams));
+    }
+
+
 
 }

+ 7 - 6
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/app/service/SimsService.java

@@ -8,23 +8,24 @@ package vip.xiaonuo.coldchain.modular.app.service;
  * @date 2024/11/17 22:30:41
  */
 
-import com.github.jfcloud.influxdb.service.JfcloudInfluxDBService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import vip.xiaonuo.coldchain.core.bean.influxdb.SensorData;
+import vip.xiaonuo.coldchain.modular.app.param.AppDeviceQueryParams;
+import vip.xiaonuo.coldchain.modular.app.param.SensorEchartDataResult;
 import vip.xiaonuo.coldchain.modular.monitordevice.service.MonitorDeviceService;
-import vip.xiaonuo.coldchain.modular.monitortarget.service.MonitorTargetService;
-import vip.xiaonuo.coldchain.modular.monitortargetregion.service.MonitorTargetRegionService;
 
 @Service
 @RequiredArgsConstructor
 public class SimsService {
-    private final MonitorTargetService monitorTargetService;
-    private final MonitorTargetRegionService monitorTargetRegionService;
-    private final JfcloudInfluxDBService jfcloudInfluxDBService;
     private final MonitorDeviceService monitorDeviceService;
+    private final AppDeviceService appDeviceService;
 
     public SensorData status(String deviceCode, Integer roads) {
         return monitorDeviceService.queryLatestDataByDeviceIdAndRoads(deviceCode, roads);
     }
+
+    public SensorEchartDataResult queryDataByDeviceIdAndRoads(AppDeviceQueryParams appDeviceQueryParams) {
+        return appDeviceService.queryDataByDeviceIdAndRoads(appDeviceQueryParams);
+    }
 }