浏览代码

设备、监测点统计

459242451@qq.com 3 年之前
父节点
当前提交
603fb513e6

+ 23 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/gas/So2Controller.java

@@ -44,6 +44,7 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Description: 硫含量
@@ -221,6 +222,28 @@ public class So2Controller extends BaseController {
         return AjaxResult.success(result);
     }
 
+    @GetMapping("/static/semDevice")
+    @ApiOperation("设备安装位置及设备类型统计")
+    public AjaxResult semDevice() {
+        if (redisCache.hasKey(CacheConstants.DEVICE_SEM_STATIC)) {
+            return AjaxResult.success(redisCache.getCacheMap(CacheConstants.DEVICE_SEM_STATIC));
+        }
+        Map<String, Integer[]> result = new HashMap<>();
+        Map<Object, Object> aisDevice = aisDatabase.queryDeviceStatic().stream().collect(Collectors.toMap(s -> s.get("point"), v -> v.get("count")));
+        Map<Object, Object> so2Device = so2Service.queryDeviceStatic().stream().collect(Collectors.toMap(s -> s.get("point"), v -> v.get("count")));
+        Map<Object, Object> heiyanDevice = heiYanService.queryDeviceStatic().stream().collect(Collectors.toMap(s -> s.get("point"), v -> v.get("count")));
+        result.put("南京三桥", new Integer[]{Convert.toInt(aisDevice.getOrDefault("南京三桥", 0)), Convert.toInt(so2Device.getOrDefault("南京三桥", 0)), Convert.toInt(heiyanDevice.getOrDefault("南京三桥", 0))});
+        result.put("南京四桥", new Integer[]{Convert.toInt(aisDevice.getOrDefault("南京四桥", 0)), Convert.toInt(so2Device.getOrDefault("南京四桥", 0)), Convert.toInt(heiyanDevice.getOrDefault("南京四桥", 0))});
+        result.put("润扬大桥", new Integer[]{Convert.toInt(aisDevice.getOrDefault("润扬大桥", 0)), Convert.toInt(so2Device.getOrDefault("润扬大桥", 0)), Convert.toInt(heiyanDevice.getOrDefault("润扬大桥", 0))});
+        result.put("泰州大桥", new Integer[]{Convert.toInt(aisDevice.getOrDefault("泰州大桥", 0)), Convert.toInt(so2Device.getOrDefault("泰州大桥", 0)), Convert.toInt(heiyanDevice.getOrDefault("泰州大桥", 0))});
+        result.put("江阴大桥", new Integer[]{Convert.toInt(aisDevice.getOrDefault("江阴大桥", 0)), Convert.toInt(so2Device.getOrDefault("江阴大桥", 0)), Convert.toInt(heiyanDevice.getOrDefault("江阴大桥", 0))});
+        result.put("苏通大桥", new Integer[]{Convert.toInt(aisDevice.getOrDefault("苏通大桥", 0)), Convert.toInt(so2Device.getOrDefault("苏通大桥", 0)), Convert.toInt(heiyanDevice.getOrDefault("苏通大桥", 0))});
+
+        redisCache.setCacheMap(CacheConstants.DEVICE_SEM_STATIC, result);
+        redisCache.expire(CacheConstants.DEVICE_SEM_STATIC, 86400);
+        return AjaxResult.success(result);
+    }
+
     @GetMapping("/static/deviceType")
     @ApiOperation("设备类型统计")
     public AjaxResult deviceTypeStatic() {

+ 2 - 0
ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java

@@ -9,6 +9,8 @@ package com.ruoyi.common.constant;
 public class CacheConstants {
     // 设备统计
     public static final String DEVICE_STATIC = "device:static";
+    // 设备类型和检测点2纬度统计
+    public static final String DEVICE_SEM_STATIC = "devicesem:static";
     // 设备类型统计
     public static final String DEVICE_TYPE_STATIC = "devicetype:static";
     // 设备所有数据统计

+ 1 - 0
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java

@@ -106,6 +106,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
                         "/gas/common/queryIllegalInfoList",
                         "/so2/third/**",
                         "/so2/static/device",
+                        "/so2/static/semDevice",
                         "/so2/static/deviceType",
                         "/so2/export"
                 ).permitAll()