Преглед на файлове

查询一周报警级别分布

zhuoning преди 3 години
родител
ревизия
1a3844c5be

+ 18 - 1
huimv-farm-v2/huimv-env/src/main/java/com/huimv/env/controller/AlarmController.java

@@ -56,7 +56,7 @@ public class AlarmController {
         return iAlarm.getAlarm(farmId,alarmType,alarmDate,quantity);
     }
 
-    //查询今天的警报
+    //查询今天的警报列表
     @RequestMapping(value = "/getTodayAlarm",method = RequestMethod.GET)
     public Result getTodayAlarmByFarmId(@RequestParam(value = "farmId",required = true) Integer farmId,
                                         @RequestParam(value = "quantity",required=true) Integer quantity     ) throws ParseException {
@@ -65,4 +65,21 @@ public class AlarmController {
         //
         return iAlarm.getAlarm(farmId,quantity);
     }
+
+    //查询今日各类警报占比
+    @RequestMapping(value = "/getTodayAlarmRate",method = RequestMethod.GET)
+    public Result getTodayAlarmRate(@RequestParam(value = "farmId",required = true) Integer farmId){
+        log.info("farmId>>"+farmId);
+        //
+        return iAlarm.getAlarmRate(farmId);
+    }
+
+    //查询报警分布(一周数据)
+    @RequestMapping(value = "/getOneWeekAlarm",method = RequestMethod.GET)
+    public Result getOneWeekAlarm(@RequestParam(value = "farmId",required = true) Integer farmId) throws ParseException {
+        log.info("farmId>>"+farmId);
+        //
+        return iAlarm.getOneWeekAlarm(farmId);
+    }
+
 }

+ 5 - 1
huimv-farm-v2/huimv-env/src/main/java/com/huimv/env/dao/repo/BaseWarningInfoRepo.java

@@ -9,7 +9,11 @@ import java.util.List;
 
 public interface BaseWarningInfoRepo extends JpaRepository<BaseWarningInfoEntity, Integer>, JpaSpecificationExecutor<BaseWarningInfoEntity> {
 
-    //查询今天的N条记录
+    //查询今天的N条记录列表
     @Query(nativeQuery = true,value ="SELECT level_name,DATE_FORMAT(warning_time,'%T') warning_time,msg FROM base_warning_info where farm_id=?1 AND DATE_FORMAT(warning_time,'%Y-%m-%d')=DATE_FORMAT(?2,'%Y-%m-%d') ORDER BY id DESC LIMIT ?3")
     List<Object[]> findTodayAlarm(Integer farmId, String today, Integer quantity);
+
+    //查询最近7天警报数据
+    @Query(nativeQuery = true,value ="SELECT * FROM base_warning_info where farm_id=?1 AND DATE_FORMAT(warning_time,'%Y-%m-%d')>=DATE_FORMAT(?2,'%Y-%m-%d') AND DATE_FORMAT(warning_time,'%Y-%m-%d')<=DATE_FORMAT(?3,'%Y-%m-%d')")
+    List<BaseWarningInfoEntity> findLastSevenDaysAlarm(Integer farmId, String startDate, String endDate);
 }

+ 4 - 0
huimv-farm-v2/huimv-env/src/main/java/com/huimv/env/service/IAlarm.java

@@ -11,4 +11,8 @@ public interface IAlarm {
     Result getAlarm(Integer farmId, Integer alarmType, String alarmDate,Integer quantity) throws ParseException;
 
     Result getAlarm(Integer farmId, Integer quantity) throws ParseException;
+
+    Result getOneWeekAlarm(Integer farmId) throws ParseException;
+
+    Result getAlarmRate(Integer farmId);
 }

+ 43 - 2
huimv-farm-v2/huimv-env/src/main/java/com/huimv/env/service/impl/AlarmImpl.java

@@ -1,5 +1,6 @@
 package com.huimv.env.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.huimv.common.utils.Result;
@@ -138,10 +139,8 @@ public class AlarmImpl implements IAlarm {
     @Override
     public Result getAlarm(Integer farmId, Integer quantity) throws ParseException {
         String today = dateUtil.getTodayDateText();
-        System.out.println("today>>"+today);
         //
         List<Object[]>  warningInfoEntityList = warningInfoRepo.findTodayAlarm(farmId,today,quantity);
-        System.out.println("size>>"+warningInfoEntityList.size());
         if(warningInfoEntityList.size()>0){
             JSONArray alarmJa = new JSONArray();
             for(int a=0;a<warningInfoEntityList.size();a++){
@@ -157,4 +156,46 @@ public class AlarmImpl implements IAlarm {
             return new Result(Const.ERROR_CODE_NOTEXIST,Const.ERROR_MSG_NOTEXIST,false);
         }
     }
+
+    /**
+     * @Method      : getOneWeekAlarm
+     * @Description : 报警级别分布
+     * @Params      : [farmId]
+     * @Return      : com.huimv.common.utils.Result
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/12/5       
+     * @Time        : 17:02
+     */
+    @Override
+    public Result getOneWeekAlarm(Integer farmId) throws ParseException {
+        //倒序查询最近7天警报数据
+        String startDate = dateUtil.getPastDate(6);
+        String endDate = dateUtil.getTodayDateText();
+        //
+        List<BaseWarningInfoEntity> warningInfoEntityList = warningInfoRepo.findLastSevenDaysAlarm(farmId,startDate,endDate);
+        JSONObject outJo = new JSONObject();
+        outJo.put("one",_countAlarmTotal("一级",warningInfoEntityList));
+        outJo.put("two",_countAlarmTotal("二级",warningInfoEntityList));
+        outJo.put("three",_countAlarmTotal("三级",warningInfoEntityList));
+        return new Result(ResultCode.SUCCESS,outJo);
+    }
+
+    //计算警报数量
+    public Integer _countAlarmTotal(String typeName,List<BaseWarningInfoEntity> warningInfoEntityList){
+        int count = 0;
+        for(int a=0;a<warningInfoEntityList.size();a++){
+            BaseWarningInfoEntity warningInfoEntity = warningInfoEntityList.get(a);
+            if(warningInfoEntity.getLevelName().indexOf(typeName) != -1){
+                count++;
+//                warningInfoEntityList.remove(warningInfoEntity);
+            }
+        }
+        return count;
+    }
+
+    @Override
+    public Result getAlarmRate(Integer farmId) {
+        return null;
+    }
 }