Kaynağa Gözat

调整代码

Levi.u 4 yıl önce
ebeveyn
işleme
669cb06c9a

+ 34 - 0
src/main/java/com/ebei/screen/common/util/MyRunner.java

@@ -0,0 +1,34 @@
+package com.ebei.screen.common.util;
+
+import com.ebei.screen.service.EbaSystemService;
+import com.ebei.screen.service.EnergyPlatformService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.stereotype.Component;
+
+/**
+ * 初始化
+ *
+ * @author Levi.u
+ * @date 2021/3/3 10:45
+ */
+@Slf4j
+@Component
+public class MyRunner implements ApplicationRunner {
+
+    @Autowired
+    private EnergyPlatformService energyPlatformService;
+
+    @Autowired
+    private EbaSystemService ebaSystemService;
+
+    @Override
+    public void run(ApplicationArguments args) {
+        energyPlatformService.initData();
+        ebaSystemService.initData();
+        ScheduledUtils.stop();
+        log.info("=============全部初始化完毕=============");
+    }
+}

+ 7 - 1
src/main/java/com/ebei/screen/common/util/ScheduledUtils.java

@@ -23,9 +23,15 @@ public class ScheduledUtils {
     public static void start(Callable run, Long time) {
         try {
             ScheduledFuture<?> schedule = scheduleService.schedule(() -> run.call(), time, TimeUnit.SECONDS);
-            System.out.println(schedule.get());
+            if (schedule != null) {
+                System.out.println(schedule.get());
+            }
         } catch (Exception e) {
             log.error("Scheduled==>start:", e);
         }
     }
+
+    public static void stop() {
+        scheduleService.shutdown();
+    }
 }

+ 2 - 11
src/main/java/com/ebei/screen/controller/eba/EbaSystemController.java

@@ -7,7 +7,6 @@ import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import javax.annotation.PostConstruct;
 import java.util.Map;
 
 /**
@@ -22,14 +21,6 @@ public class EbaSystemController {
     @Autowired
     private EbaSystemService ebaSystemService;
 
-    /**
-     * 初始化数据
-     */
-    @PostConstruct
-    public void initData() {
-        ebaSystemService.initData();
-    }
-
     @ApiOperation("实时数据回调接口")
     @PostMapping("/realTimeCallback")
     public Integer realTimeCallback(@RequestBody Map<String, String> params) {
@@ -62,13 +53,13 @@ public class EbaSystemController {
 
     @ApiOperation("保存项目关联关系 ✔")
     @PostMapping("/relevanceProject")
-    public ResponseBean relevanceProject(@RequestBody Map<String,String> params){
+    public ResponseBean relevanceProject(@RequestBody Map<String, String> params) {
         return ebaSystemService.relevanceProject(params);
     }
 
     @ApiOperation("查询已配置的crm项目列表 ✔")
     @PostMapping("/getShowProjectList")
-    public ResponseBean getShowProjectList(){
+    public ResponseBean getShowProjectList() {
         return ebaSystemService.getShowProjectList();
     }
 

+ 0 - 9
src/main/java/com/ebei/screen/controller/energy/EnergyPlatformController.java

@@ -9,7 +9,6 @@ import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import javax.annotation.PostConstruct;
 import java.util.List;
 import java.util.Map;
 
@@ -25,14 +24,6 @@ public class EnergyPlatformController {
     @Autowired
     private EnergyPlatformService energyPlatformService;
 
-    /**
-     * 初始化数据
-     */
-    @PostConstruct
-    public void initData() {
-        energyPlatformService.initData();
-    }
-
     @ApiOperation("获取盒子列表")
     @PostMapping("/getBoxList")
     public ResponseBean getBoxList() {

+ 0 - 2
src/main/java/com/ebei/screen/service/impl/CameraDeviceServiceImpl.java

@@ -6,10 +6,8 @@ import cn.hutool.json.JSONUtil;
 import com.ebei.screen.common.response.ResponseBean;
 import com.ebei.screen.common.util.CommonUtil;
 import com.ebei.screen.modules.po.CameraDevice;
-import com.ebei.screen.modules.po.Project;
 import com.ebei.screen.modules.po.YsAccessToken;
 import com.ebei.screen.service.CameraDeviceService;
-import com.fasterxml.jackson.annotation.JsonUnwrapped;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;

+ 17 - 9
src/main/java/com/ebei/screen/service/impl/EbaSystemServiceImpl.java

@@ -28,10 +28,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
 import java.time.temporal.ChronoUnit;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -66,10 +63,9 @@ public class EbaSystemServiceImpl implements EbaSystemService {
         initDeviceParamList();
         initDeviceAlarmTypeList();
         initFireDeviceTypeList();
-
-//        initRealDataDeviceList();
-//        initMobjectList();
-//        initIotList();
+        initRealDataDeviceList();
+        initMobjectList();
+        initIotList();
         log.info("EBA数据全部初始化完毕");
     }
 
@@ -238,6 +234,7 @@ public class EbaSystemServiceImpl implements EbaSystemService {
                 query1.addCriteria(Criteria.where("_id").is(key + "_" + LocalDateTime.now().getYear() + "_" + LocalDateTime.now().getMonthValue()));
                 Update update1 = new Update();
                 List<Map> map = LeviUtils.getJsonFieldMany(str, "data.realtimeDataList", Map.class);
+                map.removeAll(Collections.singleton(null));
                 update1.set("data", EbaUtils.setDataField(map, key, "realDataDeviceList", false));
                 mongoTemplate.upsert(query1, update1, "realDataDeviceList");
                 // 存入当前最新数据方便查询
@@ -370,7 +367,18 @@ public class EbaSystemServiceImpl implements EbaSystemService {
     public ResponseBean getDeviceList(String projectId) {
         JSONObject obj = mongoTemplate.findById("mobjectList", JSONObject.class, "ebaAuth");
         JSONArray array = obj.getJSONObject("data").getJSONArray(projectId);
-        return ResponseBuilder.ok(array == null ? new JSONArray() : array);
+        if (array == null || array.size() <= 0) {
+            return ResponseBuilder.ok(Levi.by("electricity", new JSONArray()).set("water", new JSONArray()));
+        }
+        List<Object> electricity = array.stream().filter(x -> {
+            Map xx = (Map) x;
+            return (Integer) xx.get("deviceSysId") == 1;
+        }).collect(Collectors.toList());
+        List<Object> water = array.stream().filter(x -> {
+            Map xx = (Map) x;
+            return (Integer) xx.get("deviceSysId") == 2;
+        }).collect(Collectors.toList());
+        return ResponseBuilder.ok(Levi.by("electricity", electricity).set("water", water));
     }
 
     /**

+ 5 - 1
src/main/java/com/ebei/screen/service/impl/EnergyPlatformServiceImpl.java

@@ -177,11 +177,15 @@ public class EnergyPlatformServiceImpl implements EnergyPlatformService {
                         .body(JSON.toJSONString(Levi.by("ids", dmonIds.get(boxId))))
                         .execute().body();
                 List<Map> mapList = LeviUtils.getJsonFieldMany(result, null, Map.class);
+                // 获取所有的设备id信息
+                List<String> deviceIds = Arrays.stream(DmonDeviceCode.values()).map(x -> x.getCode()).collect(Collectors.toList());
+                // 筛选结果集 否则会超过mongo单文档最大限制
+                List<Map> results = mapList.stream().filter(x -> deviceIds.contains(x.get("id").toString())).collect(Collectors.toList());
                 // 存入原始数据用于统计
                 Query query = new Query();
                 query.addCriteria(Criteria.where("_id").is(boxId + "_" + LocalDateTime.now().getYear() + "_" + LocalDateTime.now().getMonthValue()));
                 Update update = new Update();
-                Map map = EnergyUtils.setDataField(mapList, boxId, "boxDmonLists");
+                Map map = EnergyUtils.setDataField(results, boxId, "boxDmonLists");
                 update.set("data", map.get("data"));
                 for (int i = 1; i <= 6; i++) {
                     update.set("zj" + i, map.get("zj" + i));

+ 1 - 1
src/main/java/com/ebei/screen/service/impl/MachineRoomServiceImpl.java

@@ -52,7 +52,7 @@ public class MachineRoomServiceImpl implements MachineRoomService {
         Update update = new Update();
         update.set("name", machineRoom.getName());
         update.set("projectId", machineRoom.getProjectId());
-        update.set("projectName",machineRoom.getProjectName());
+        update.set("projectName", machineRoom.getProjectName());
         update.set("type", machineRoom.getType());
         update.set("cameraDeviceList", machineRoom.getCameraDeviceList());
         update.set("updateTime", now);

+ 4 - 1
src/main/resources/application-prod.yml

@@ -14,4 +14,7 @@ spring:
       password: yibeitech@2019
 energy:
   # 多个用逗号分隔开
-  grpId: 197069285991913100
+  grpId: 197069285991913100
+comm:
+  mkf-service-url: https://portal.wuyeface.com/landcrm/rest/userInfo/getUser?token=
+  getProjectList: http://portal.wuyeface.com/landcrm/rest/projectInfo/getProjectList?userId=

+ 3 - 1
src/main/resources/application.yml

@@ -19,4 +19,6 @@ cn:
       - /swagger-ui/index.html
       - /swagger-resources/**
       - /eba/system/realTimeCallback
-      - /
+      - /energy/platform/dataMonitoringCallback
+      - /energy/platform/alarmRecordCallback
+      - /energy/platform/deviceStateCallback