浏览代码

增加报警接口

chenminghua 2 年之前
父节点
当前提交
6dac636074

+ 3 - 2
gyee-sample-impala/src/main/java/com/gyee/impala/common/feign/IShardingService.java

@@ -26,12 +26,13 @@ public interface IShardingService {
 
 
   @RequestLine("GET /alarm/history/page?category1={category1}&starttime={starttime}&pagenum=1&pagesize=10000&endtime={endtime}&stationid={stationeid}" +
-          "&category2=&keyword=&windturbineid={windturbineid}")
+          "&category2=&keyword=&windturbineid={windturbineid}&messagetype={messagetype}")
   JSONObject getAlertHistory(@Param(value = "category1") String category1,
                              @Param(value = "starttime") String starttime,
                              @Param(value = "endtime") String endtime,
                              @Param(value = "stationeid") String stationeid,
-                             @Param(value = "windturbineid") String windturbineid);
+                             @Param(value = "windturbineid") String windturbineid,
+                             @Param(value = "messagetype") int messagetype);
 
   @RequestLine("GET /alarm/count/query/new?stationid={station}&startdate={startdate}&enddate={enddate}")
   JSONArray getAlarmCount(@Param(value = "station") String station,

+ 48 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/controller/diagnose/AlarmHistoryController.java

@@ -0,0 +1,48 @@
+package com.gyee.impala.controller.diagnose;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.gyee.impala.common.feign.RemoteServiceBuilder;
+import com.gyee.impala.common.result.JsonResult;
+import com.gyee.impala.common.result.ResultCode;
+import com.gyee.impala.common.util.DateUtil;
+import com.gyee.impala.model.custom.AlertHistory;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Calendar;
+import java.util.List;
+
+@CrossOrigin
+@RestController
+@RequestMapping("/api/warning")
+public class AlarmHistoryController {
+
+
+    @Autowired
+    private RemoteServiceBuilder remoteService;
+
+    @GetMapping("/info")
+    public JSONObject getWarning(String station, String wtId, String faultTime){
+        if (StringUtils.isEmpty(station) || StringUtils.isEmpty(wtId) || StringUtils.isEmpty(faultTime)){
+            return JsonResult.error(ResultCode.PARAM_NOT_VALID);
+        }
+
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(DateUtil.parseStrtoDate(faultTime, DateUtil.YYYY_MM_DD_HH_MM_SS));
+        cal.add(Calendar.HOUR, -10);
+        String st = DateUtil.format(cal.getTime(), DateUtil.YYYY_MM_DD_HH_MM_SS);
+        cal.add(Calendar.HOUR, 10);
+        String et = DateUtil.format(cal.getTime(), DateUtil.YYYY_MM_DD_HH_MM_SS);
+
+        JSONObject data = remoteService.sharding().getAlertHistory("windturbine", st, et, station, wtId, 1);
+        JSONArray records = data.getJSONArray("records");
+        List<AlertHistory> list = JSONArray.parseArray(records.toString(), AlertHistory.class);
+
+        return JsonResult.successData(ResultCode.SUCCESS, list);
+    }
+}

+ 6 - 9
gyee-sample-impala/src/main/java/com/gyee/impala/schdule/TaskWarning.java

@@ -129,19 +129,16 @@ public class TaskWarning {
 
     private void saveScadaWarning(String station, String st, String et){
         List<Casewarningscada> list = new ArrayList<>();
-        JSONObject data = remoteService.sharding().getAlertHistory("windturbine", st, et, station, null);
+        JSONObject data = remoteService.sharding().getAlertHistory("windturbine", st, et, station, null, 1);
         if (data == null)
             return;
 
         JSONArray records = data.getJSONArray("records");
-        for (int i = 0; i < records.size(); i++){
-            JSONObject json = records.getJSONObject(i);
-            AlertHistory alert = JSON.toJavaObject(json, AlertHistory.class);
-            if (alert != null && !StringUtils.isEmpty(alert.getCategory2()) && alert.getMessageType() == 1) {
-                Casewarningscada cs = (Casewarningscada) new Casewarningscada().toData(alert);
-                list.add(cs);
-            }
-        }
+        List<AlertHistory> array = JSONArray.parseArray(records.toString(), AlertHistory.class);
+        array.stream().filter(a -> !StringUtils.isEmpty(a.getCategory2())).forEach(item -> {
+            Casewarningscada cs = (Casewarningscada) new Casewarningscada().toData(item);
+            list.add(cs);
+        });
         scadaService.insertBatch(list);
     }
 

+ 4 - 7
gyee-sample-impala/src/main/java/com/gyee/impala/service/custom/WarningService.java

@@ -54,13 +54,10 @@ public class WarningService {
                 String st = DateUtil.format(cal.getTime(), DateUtil.YYYY_MM_DD);
                 cal.add(cal.DATE,1);
                 String et = DateUtil.format(cal.getTime(), DateUtil.YYYY_MM_DD);
-                JSONObject data = remoteService.sharding().getAlertHistory(category, st, et, station, wtId);
-                JSONObject json = data.getJSONObject("data");
-                if (json == null)
-                    return;
-                String records = json.getJSONArray("records").toJSONString();
-                List<AlertHistory> ls = JSONArray.parseArray(records, AlertHistory.class);
-                ls.stream().forEach(obj -> {
+                JSONObject data = remoteService.sharding().getAlertHistory(category, st, et, station, wtId, 1);
+                JSONArray records = data.getJSONArray("records");
+                List<AlertHistory> array = JSONArray.parseArray(records.toString(), AlertHistory.class);
+                array.stream().forEach(obj -> {
                     if (StringUtils.isNotEmpty(obj.getCategory1()) && StringUtils.isNotEmpty(obj.getCategory2())
                         && obj.getAlertTime().compareTo(min) > 0 && obj.getAlertTime().compareTo(max) < 0){
                         Casewarningscada warn = (Casewarningscada) new Casewarningscada().toData(obj);