Przeglądaj źródła

新建耳标流水分页查询

zhuoning 3 lat temu
rodzic
commit
fe15a69b70

+ 13 - 0
huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/entity/EartagHeartbeatEntity.java

@@ -2,6 +2,7 @@ package com.huimv.eartag2.common.dao.entity;
 
 import javax.persistence.*;
 import java.io.Serializable;
+import java.sql.Date;
 import java.sql.Timestamp;
 
 @Entity
@@ -21,6 +22,9 @@ public class EartagHeartbeatEntity implements Serializable {
     @Column(name = "add_time")
     private Timestamp addTime;
 
+    @Column(name = "create_date")
+    private Date createDate;
+
     public void setId(Integer id) {
         this.id = id;
     }
@@ -45,12 +49,21 @@ public class EartagHeartbeatEntity implements Serializable {
         return addTime;
     }
 
+    public void setCreateDate(Date createDate) {
+        this.createDate = createDate;
+    }
+
+    public Date getCreateDate() {
+        return createDate;
+    }
+
     @Override
     public String toString() {
         return "EartagHeartbeatEntity{" +
                 "id=" + id + '\'' +
                 "deviceCode=" + deviceCode + '\'' +
                 "addTime=" + addTime + '\'' +
+                "createDate=" + createDate + '\'' +
                 '}';
     }
 }

+ 16 - 0
huimv-eartag2-platform/huimv-eartag2-manage/pom.xml

@@ -37,4 +37,20 @@
             <artifactId>spring-boot-starter-actuator</artifactId>
         </dependency>
     </dependencies>
+
+    <build>
+        <plugins>
+            <!--  -->
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+            <!--  -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-resources-plugin</artifactId>
+                <version>2.6</version>
+            </plugin>
+        </plugins>
+    </build>
 </project>

+ 53 - 0
huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/controller/DeviceController.java

@@ -1,5 +1,6 @@
 package com.huimv.eartag2.manage.controller;
 
+import com.huimv.eartag2.common.utils.DateUtil;
 import com.huimv.eartag2.common.utils.Result;
 import com.huimv.eartag2.manage.service.ICacheService;
 import com.huimv.eartag2.manage.service.IDeviceService;
@@ -197,6 +198,35 @@ public class DeviceController {
     }
 
     /**
+     * @Method      : listDeviceEartagOnlineCountByDeviceCodeInPager
+     * @Description : 显示设备关联耳标统计(带分页)
+     * @Params      : [deviceCode, earmark, addDate, pageNo, pageSize]
+     * @Return      : com.huimv.eartag2.common.utils.Result
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2022/3/9       
+     * @Time        : 20:06
+     */
+    @RequestMapping(value = "/listDeviceEartagOnlineCountByDeviceCodeInPager",method = RequestMethod.GET)
+    public Result listDeviceEartagOnlineCountByDeviceCodeInPager(@RequestParam(value = "deviceCode",required = true) String deviceCode,
+                                                                 @RequestParam(value = "earmark",required = false) String earmark,
+                                                                 @RequestParam(value = "addDate",required = true) String addDate,
+                                                                 @RequestParam(value = "pageNo",required = true) Integer pageNo,
+                                                                 @RequestParam(value = "pageSize",required = true) Integer pageSize) throws ParseException {
+        log.info("<listDeviceEartagOnlineCountByDeviceCodeInPager>输入参数 deviceCode>>"+deviceCode);
+        log.info("<listDeviceEartagOnlineCountByDeviceCodeInPager>输入参数 earmark>>"+earmark);
+        log.info("<listDeviceEartagOnlineCountByDeviceCodeInPager>输入参数 addDate>>"+addDate);
+        log.info("<listDeviceEartagOnlineCountByDeviceCodeInPager>输入参数 pageNo>>"+pageNo);
+        log.info("<listDeviceEartagOnlineCountByDeviceCodeInPager>输入参数 pageSize>>"+pageSize);
+        //
+        if(addDate == null){
+            addDate  =  new DateUtil().getTodayDateText();
+        }
+        //查询设备关联的在线耳标统计
+        return deviceService.listDeviceEartagOnlineCountByDeviceCodeInPager(deviceCode,earmark,addDate,pageNo,pageSize);
+    }
+
+    /**
      * @Method      : listDeviceEnvtempByDeviceCode
      * @Description : 显示设备温度流水
      * @Params      : [deviceCode]
@@ -213,4 +243,27 @@ public class DeviceController {
         return deviceService.listDeviceEnvtempByDeviceCode(deviceCode);
     }
 
+    /**
+     * @Method      : listHeartbeatByDeviceCodeAndDateInPager
+     * @Description : 显示设备心跳数据(带分页)
+     * @Params      : [deviceCode]
+     * @Return      : com.huimv.eartag2.common.utils.Result
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2022/3/9       
+     * @Time        : 20:35
+     */
+    @RequestMapping(value = "/listHeartbeatByDeviceCodeAndDateInPager",method = RequestMethod.GET)
+    public Result listHeartbeatByDeviceCodeAndDateInPager(@RequestParam(value = "deviceCode",required = true) String deviceCode,
+                                                          @RequestParam(value = "addDate",required = true) String addDate,
+                                                          @RequestParam(value = "pageNo",required = true) Integer pageNo,
+                                                          @RequestParam(value = "pageSize",required = true) Integer pageSize) throws ParseException {
+        log.info("<listHeartbeatByDeviceCodeAndDateInPager>输入参数 deviceCode>>"+deviceCode);
+        log.info("<listHeartbeatByDeviceCodeAndDateInPager>输入参数 addDate>>"+addDate);
+        log.info("<listHeartbeatByDeviceCodeAndDateInPager>输入参数 pageNo>>"+pageNo);
+        log.info("<listHeartbeatByDeviceCodeAndDateInPager>输入参数 pageSize>>"+pageSize);
+        //显示设备心跳
+        return deviceService.listHeartbeatByDeviceCodeAndDateInPager(deviceCode,addDate,pageNo,pageSize);
+    }
+
 }

+ 6 - 0
huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/service/IDeviceService.java

@@ -31,4 +31,10 @@ public interface IDeviceService {
 
     //查询设备环境温度
     Result listDeviceEnvtempByDeviceCode(String deviceCode) throws ParseException;
+
+    //用分页方式
+    Result listDeviceEartagOnlineCountByDeviceCodeInPager(String deviceCode, String earmark, String addDate, Integer pageNo, Integer pageSize) throws ParseException;
+
+    //显示设备心跳
+    Result listHeartbeatByDeviceCodeAndDateInPager(String deviceCode, String addDate, Integer pageNo, Integer pageSize);
 }

+ 76 - 3
huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/service/impl/DeviceServiceImpl.java

@@ -1,6 +1,5 @@
 package com.huimv.eartag2.manage.service.impl;
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.huimv.eartag2.common.dao.entity.*;
@@ -13,10 +12,8 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.*;
 import org.springframework.data.jpa.domain.Specification;
-import org.springframework.stereotype.Service;
 
 import javax.persistence.criteria.*;
 
@@ -57,6 +54,8 @@ public class DeviceServiceImpl implements IDeviceService {
     private EartagDeviceEartagCountRepo deviceEartagCountRepo;
     @Autowired
     private EartagEnvRepo eartagEnvRepo;
+    @Autowired
+    private EartagHeartbeatRepo heartbeatRepo;
 
     /**
      * @Method      : listDeviceEnvtempByDeviceCode
@@ -88,6 +87,80 @@ public class DeviceServiceImpl implements IDeviceService {
     }
 
     /**
+     * @Method      : listDeviceEartagOnlineCountByDeviceCodeInPager
+     * @Description : 显示设备关联耳标统计(带分页)
+     * @Params      : [deviceCode, earmark, addDate, pageNo, pageSize]
+     * @Return      : com.huimv.eartag2.common.utils.Result
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2022/3/9       
+     * @Time        : 20:08
+     */
+    @Override
+    public Result listDeviceEartagOnlineCountByDeviceCodeInPager(String deviceCode, String earmark, String addDate, Integer pageNo, Integer pageSize) throws ParseException {
+        //
+        Specification<EartagDeviceEartagCountEntity> sf = (Specification<EartagDeviceEartagCountEntity>) (root, criteriaQuery, criteriaBuilder) -> {
+            //
+            List<Predicate> predList = new ArrayList<>();
+            if (null != earmark && earmark.trim().length()>0) {
+                predList.add(criteriaBuilder.equal(root.get("earmark").as(String.class), earmark));
+            }
+            //
+            if (null != deviceCode && deviceCode.trim().length()>0) {
+                predList.add(criteriaBuilder.greaterThanOrEqualTo(root.get("deviceCode").as(String.class), deviceCode));
+            }
+            //
+            if (null != addDate && addDate.trim().length()>0) {
+                try {
+                    predList.add(criteriaBuilder.lessThanOrEqualTo(root.get("createDate").as(Date.class), new Date(new DateUtil().parseDateTextToLong(addDate))));
+                } catch (ParseException e) {
+                    e.printStackTrace();
+                }
+            }
+            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();
+        };
+        Pageable pageable = PageRequest.of(pageNo - 1, pageSize);
+        return new Result(ResultCode.SUCCESS, deviceEartagCountRepo.findAll(sf, pageable));
+    }
+
+    @Override
+    public Result listHeartbeatByDeviceCodeAndDateInPager(String deviceCode, String addDate, Integer pageNo, Integer pageSize) {
+        //
+        Specification<EartagHeartbeatEntity> sf = (Specification<EartagHeartbeatEntity>) (root, criteriaQuery, criteriaBuilder) -> {
+            //
+            List<Predicate> predList = new ArrayList<>();
+            //
+            if (null != deviceCode && deviceCode.trim().length()>0) {
+                predList.add(criteriaBuilder.greaterThanOrEqualTo(root.get("deviceCode").as(String.class), deviceCode));
+            }
+            //
+            if (null != addDate && addDate.trim().length()>0) {
+                try {
+                    predList.add(criteriaBuilder.lessThanOrEqualTo(root.get("createDate").as(Date.class), new Date(new DateUtil().parseDateTextToLong(addDate))));
+                } catch (ParseException e) {
+                    e.printStackTrace();
+                }
+            }
+            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();
+        };
+        Pageable pageable = PageRequest.of(pageNo - 1, pageSize);
+        return new Result(ResultCode.SUCCESS, heartbeatRepo.findAll(sf, pageable));
+        /////////////////////////////////////////////////////////////////////////////////////////////////////////////
+    }
+
+    /**
      * @Method      : listOnlineDevice
      * @Description : 
      * @Params      : [farmId, deviceCode, alias, addDate, pageNo, pageSize]