Jelajahi Sumber

新增大屏查询N条警报记录

zhuoning 3 tahun lalu
induk
melakukan
5cadccd9ef

+ 26 - 2
huimv-farm-v2/huimv-env/src/main/java/com/huimv/env/controller/AlarmController.java

@@ -31,8 +31,8 @@ public class AlarmController {
     public Result getAlarmByFarmIdAndDate(@RequestParam(value = "farmId",required = true) Integer farmId,
                                           @RequestParam(value="alarmType",required=false) Integer alarmType,
                                           @RequestParam(value = "alarmDate",required=false) String alarmDate,
-                                          @RequestParam(value = "pageSize",required=false) Integer pageSize,
-                                          @RequestParam(value = "pageNo") Integer pageNo) throws ParseException {
+                                          @RequestParam(value = "pageSize",required=true) Integer pageSize,
+                                          @RequestParam(value = "pageNo",required=true) Integer pageNo) throws ParseException {
         log.info("farmId>>"+farmId);
         log.info("alarmType>>"+alarmType);
         log.info("alarmDate>>"+alarmDate);
@@ -42,4 +42,28 @@ public class AlarmController {
         return iAlarm.getAlarm(farmId,alarmType,alarmDate,pageNo,pageSize);
     }
 
+    @RequestMapping(value = "/getManyAlarm",method = RequestMethod.GET)
+    public Result getManyAlarmByFarmIdAndDate(@RequestParam(value = "farmId",required = true) Integer farmId,
+                                          @RequestParam(value="alarmType",required=false) Integer alarmType,
+                                          @RequestParam(value = "alarmDate",required=false) String alarmDate,
+                                               @RequestParam(value = "quantity",required=true) Integer quantity     ) throws ParseException {
+        log.info("farmId>>"+farmId);
+        log.info("alarmType>>"+alarmType);
+        log.info("alarmDate>>"+alarmDate);
+        log.info("quantity>>"+quantity);
+        //
+//        return iAlarm.getAlarm(farmId,alarmType,alarmDate,pageNo,pageSize);
+        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 {
+        log.info("farmId>>"+farmId);
+        log.info("quantity>>"+quantity);
+        //
+//        return iAlarm.getAlarm(farmId,alarmType,alarmDate,pageNo,pageSize);
+        return iAlarm.getAlarm(farmId,quantity);
+    }
 }

+ 6 - 0
huimv-farm-v2/huimv-env/src/main/java/com/huimv/env/dao/repo/BaseWarningInfoRepo.java

@@ -3,7 +3,13 @@ package com.huimv.env.dao.repo;
 import com.huimv.env.dao.entity.BaseWarningInfoEntity;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
+
+import java.util.List;
 
 public interface BaseWarningInfoRepo extends JpaRepository<BaseWarningInfoEntity, Integer>, JpaSpecificationExecutor<BaseWarningInfoEntity> {
 
+    //查询今天的N条记录
+    @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') ORDER BY id DESC LIMIT ?3")
+    List<BaseWarningInfoEntity> findTodayAlarm(Integer farmId, String today, Integer quantity);
 }

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

@@ -7,4 +7,8 @@ import java.text.ParseException;
 public interface IAlarm {
     //
     Result getAlarm(Integer farmId, Integer alarmType, String alarmDate, Integer pageSize, Integer pageNo) throws ParseException;
+
+    Result getAlarm(Integer farmId, Integer alarmType, String alarmDate,Integer quantity) throws ParseException;
+
+    Result getAlarm(Integer farmId, Integer quantity) throws ParseException;
 }

+ 73 - 0
huimv-farm-v2/huimv-env/src/main/java/com/huimv/env/service/impl/AlarmImpl.java

@@ -5,6 +5,7 @@ import com.huimv.common.utils.ResultCode;
 import com.huimv.env.dao.entity.BaseWarningInfoEntity;
 import com.huimv.env.dao.repo.BaseWarningInfoRepo;
 import com.huimv.env.service.IAlarm;
+import com.huimv.env.utils.Const;
 import com.huimv.env.utils.DateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.*;
@@ -73,4 +74,76 @@ public class AlarmImpl implements IAlarm {
 //        }
         return new Result(ResultCode.SUCCESS, warningInfoEntityPage);
     }
+
+    @Override
+    public Result getAlarm(Integer farmId, Integer alarmType, String alarmDateText,Integer quantity) throws ParseException {
+        Specification<BaseWarningInfoEntity> sf = (Specification<BaseWarningInfoEntity>) (root, criteriaQuery, criteriaBuilder) -> {
+            //
+            List<Predicate> predList = new ArrayList<>();
+            if (null != farmId) {
+                predList.add(criteriaBuilder.equal(root.get("farmId").as(Integer.class), farmId));
+            }
+            if (null != alarmType) {
+                predList.add(criteriaBuilder.equal(root.get("alarmType").as(Integer.class), alarmType));
+            }
+            if (null != alarmDateText) {
+                //转换为日期才能比较
+                Date alarmDate = null;
+                try {
+                    alarmDate = dateUtil.formatDate(alarmDateText);
+                } catch (ParseException e) {
+                    e.printStackTrace();
+                }
+                predList.add(criteriaBuilder.equal(root.get("warningTime").as(Date.class), alarmDate));
+            }
+//            if (null != returnState) {
+//                predList.add(criteriaBuilder.equal(root.get("returnState").as(Integer.class), returnState));
+//            }
+//            if (null != deliverState) {
+//                predList.add(criteriaBuilder.equal(root.get("deliverState").as(Integer.class), deliverState));
+//            }
+            //
+            Predicate[] pred = new Predicate[predList.size()];
+            Predicate and = criteriaBuilder.and(predList.toArray(pred));
+            criteriaQuery.where(and);
+            //
+            List<Order> orders = new ArrayList<>();
+            orders.add(criteriaBuilder.desc(root.get("id")));
+            return criteriaQuery.orderBy(orders).getRestriction();
+        };
+//        return new Result(ResultCode.SUCCESS,applyRepo.listApply(pageable,applyId));
+        List<BaseWarningInfoEntity>  warningInfoEntityList = warningInfoRepo.findAll(sf);
+        System.out.println("warningInfoEntityList.size="+warningInfoEntityList.size());
+        //格式化日期
+//        List<BaseWarningInfoEntity> warningInfoEntityList = warningInfoEntityPage.getContent();
+//        for(BaseWarningInfoEntity warningInfoEntity:warningInfoEntityList){
+//            warningInfoEntity.setWarningTime(new Timestamp(dateUtil.formatDate(dateUtil.fromLongToDate(warningInfoEntity.getWarningTime().getTime(),"yyyy-MM-dd")).getTime()));
+//            warningInfoEntity.setUploadTime(new Timestamp(dateUtil.formatDate(dateUtil.fromLongToDate(warningInfoEntity.getUploadTime().getTime(),"yyyy-MM-dd")).getTime()));
+//        }
+        return new Result(ResultCode.SUCCESS, warningInfoEntityList);
+    }
+
+    /**
+     * @Method      : getAlarm
+     * @Description : 查询今天的警报
+     * @Params      : [farmId, quantity]
+     * @Return      : com.huimv.common.utils.Result
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/12/5       
+     * @Time        : 14:54
+     */
+    @Override
+    public Result getAlarm(Integer farmId, Integer quantity) throws ParseException {
+        String today = dateUtil.getTodayDateText();
+        System.out.println("today>>"+today);
+        //
+        List<BaseWarningInfoEntity>  warningInfoEntityList = warningInfoRepo.findTodayAlarm(farmId,today,quantity);
+        System.out.println("size>>"+warningInfoEntityList.size());
+        if(warningInfoEntityList.size()>0){
+            return new Result(ResultCode.SUCCESS,warningInfoEntityList);
+        }else{
+            return new Result(Const.ERROR_CODE_NOTEXIST,Const.ERROR_MSG_NOTEXIST,false);
+        }
+    }
 }

+ 1 - 1
huimv-farm-v2/huimv-env/src/main/resources/application-dev.yml

@@ -3,7 +3,7 @@ server:
 
 spring:
   application:
-    name: location
+    name: huimv-env
   datasource:
     url: jdbc:mysql://192.168.1.7:3306/huimv_farm_v2?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai
     username: root

+ 1 - 1
huimv-farm-v2/huimv-env/src/main/resources/application-prod.yml

@@ -3,7 +3,7 @@ server:
 
 spring:
   application:
-    name: location
+    name: huimv-env
   datasource:
     url: jdbc:mysql://192.168.1.68:3308/huimv-farm-center?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai
     username: root