ソースを参照

前后端对接中出现的bug修复。

zhuoning 3 年 前
コミット
64596f2957
17 ファイル変更492 行追加77 行削除
  1. 15 0
      huimv-eartag2-platform/huimv-eartag2-admin/pom.xml
  2. 19 0
      huimv-eartag2-platform/huimv-eartag2-admin/src/main/java/com/huimv/eartag2/admin/HuimvEartag2AdminApplication.java
  3. 13 0
      huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/repo/EartagDeviceRegisterRepo.java
  4. 3 2
      huimv-eartag2-platform/huimv-eartag2-device/src/main/java/com/huimv/eartag2/device/service/IDeviceService.java
  5. 10 4
      huimv-eartag2-platform/huimv-eartag2-device/src/main/java/com/huimv/eartag2/device/service/impl/DeviceServiceImpl.java
  6. 6 2
      huimv-eartag2-platform/huimv-eartag2-eartag/src/main/java/com/huimv/eartag2/eartag/service/impl/EartagServiceImpl.java
  7. 7 4
      huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/controller/DeviceController.java
  8. 21 4
      huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/controller/DeviceRegisterController.java
  9. 6 8
      huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/controller/EartagController.java
  10. 11 0
      huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/service/IDeviceRegisterService.java
  11. 3 3
      huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/service/IDeviceService.java
  12. 2 2
      huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/service/IEartagService.java
  13. 17 14
      huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/service/impl/CacheServiceImpl.java
  14. 95 0
      huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/service/impl/DeviceRegisterServiceImpl.java
  15. 95 21
      huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/service/impl/DeviceServiceImpl.java
  16. 168 13
      huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/service/impl/EartagServiceImpl.java
  17. 1 0
      huimv-eartag2-platform/pom.xml

+ 15 - 0
huimv-eartag2-platform/huimv-eartag2-admin/pom.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>huimv-eartag2-platform</artifactId>
+        <groupId>com.huimv</groupId>
+        <version>0.0.1-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>huimv-eartag2-admin</artifactId>
+
+
+</project>

+ 19 - 0
huimv-eartag2-platform/huimv-eartag2-admin/src/main/java/com/huimv/eartag2/admin/HuimvEartag2AdminApplication.java

@@ -0,0 +1,19 @@
+package com.huimv.eartag2.admin;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@SpringBootApplication
+public class HuimvEartag2AdminApplication {
+    public static void main(String[] args) {
+        SpringApplication.run(HuimvEartag2AdminApplication.class, args);
+    }
+}

+ 13 - 0
huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/repo/EartagDeviceRegisterRepo.java

@@ -23,4 +23,17 @@ public interface EartagDeviceRegisterRepo extends JpaRepository<EartagDeviceRegi
 
     @Query(nativeQuery = true,value = "SELECT device_code FROM eartag_device_register WHERE device_status=1")
     List<Object[]> getDeviceCodeFromDeviceRegister();
+
+    @Query(nativeQuery = true,value = "DELETE FROM eartag_device_register WHERE id IN(?1)")
+    void removeDevice(List idList);
+
+    @Query(nativeQuery = true,value = "DELETE FROM eartag_device_register")
+    void removeDevice();
+
+    @Query(nativeQuery = true,value = "SELECT device_code FROM eartag_device_register WHERE id IN(?1)")
+    List<EartagDeviceRegisterEntity> getDeviceRegisterByIds(List idList);
+
+    @Query(nativeQuery = true,value = "DELETE FROM eartag_device_register WHERE id IN(?1)")
+    void deleteBatch(List<Integer> idList);
+
 }

+ 3 - 2
huimv-eartag2-platform/huimv-eartag2-device/src/main/java/com/huimv/eartag2/device/service/IDeviceService.java

@@ -2,13 +2,14 @@ package com.huimv.eartag2.device.service;
 
 import com.alibaba.fastjson.JSONObject;
 
+import java.sql.Date;
 import java.text.ParseException;
 
 public interface IDeviceService {
     //保存心跳数据
-    void saveDeviceHeartbeat(JSONObject dataJo);
+    void saveDeviceHeartbeat(JSONObject dataJo, Date todayDate);
     //保存设备温度数据
-    void saveDeviceTemp(JSONObject dataJo);
+    void saveDeviceTemp(JSONObject dataJo, Date todayDate);
     //保存采集器上传的原始数据
     void saveRawdata(String askText) throws ParseException;
 

+ 10 - 4
huimv-eartag2-platform/huimv-eartag2-device/src/main/java/com/huimv/eartag2/device/service/impl/DeviceServiceImpl.java

@@ -95,11 +95,12 @@ public class DeviceServiceImpl implements IDeviceService {
         Timestamp nowTimestamp = new Timestamp(new java.util.Date().getTime());
 
         //1、{保存设备心跳记录}
-        saveDeviceHeartbeat(dataJo);
+        saveDeviceHeartbeat(dataJo,todayDate);
 
          String updateType="设备心跳";
         //2、{更新设备注册表}
         updateDeviceRegister(farmId, deviceCode,nowTimestamp,updateType);
+
         //3、{更新在线统计表}
         updateDeviceOnlineCountWithHeartbeat(farmId, deviceCode,todayDateText,nowTimestamp,todayDate);
 
@@ -341,12 +342,15 @@ public class DeviceServiceImpl implements IDeviceService {
         Timestamp nowTimestamp = new Timestamp(new java.util.Date().getTime());
 
         //1.保存环境温度流水
-        saveDeviceTemp(dataJo);
+        saveDeviceTemp(dataJo,todayDate);
+
         String updateType = "环境温度";
         //2.{更新设备注册表}
         updateDeviceRegister(farmId, deviceCode,nowTimestamp,updateType);
+
         //3.{更新在线统计表}
         updateDeviceOnlineWithEnvtemp(farmId, deviceCode,envtemp,todayDate,nowTimestamp);
+
         //判断该设备编号是否存在牧场缓存在线集合当中;
         Boolean isExist = cacheService.isExistDeviceOnlineSet(farmId, deviceCode,todayDateText);
         if (!isExist) {
@@ -608,11 +612,12 @@ public class DeviceServiceImpl implements IDeviceService {
      * @Time        : 14:39
      */
     @Override
-    public void saveDeviceHeartbeat(JSONObject dataJo) {
+    public void saveDeviceHeartbeat(JSONObject dataJo, java.sql.Date todayDate) {
         String deviceCode = dataJo.getString("device");
         EartagHeartbeatEntity addHeartbeatEntity = new EartagHeartbeatEntity();
         addHeartbeatEntity.setDeviceCode(deviceCode);
         addHeartbeatEntity.setAddTime(new Timestamp(new Date().getTime()));
+        addHeartbeatEntity.setCreateDate(todayDate);
         heartbeatRepo.saveAndFlush(addHeartbeatEntity);
     }
 
@@ -627,7 +632,7 @@ public class DeviceServiceImpl implements IDeviceService {
      * @Time        : 14:39
      */
     @Override
-    public void saveDeviceTemp(JSONObject dataJo) {
+    public void saveDeviceTemp(JSONObject dataJo, java.sql.Date todayDate) {
         String device = dataJo.getString("device");
         String temp = dataJo.getString("temp");
         EartagEnvEntity envEntity = new EartagEnvEntity();
@@ -635,6 +640,7 @@ public class DeviceServiceImpl implements IDeviceService {
         envEntity.setTemp1(Integer.parseInt(temp));
         envEntity.setTemp2(0F);
         envEntity.setAddTime(new Timestamp(new Date().getTime()));
+        envEntity.setCreateDate(todayDate);
         envRepo.saveAndFlush(envEntity);
     }
 

+ 6 - 2
huimv-eartag2-platform/huimv-eartag2-eartag/src/main/java/com/huimv/eartag2/eartag/service/impl/EartagServiceImpl.java

@@ -66,7 +66,7 @@ public class EartagServiceImpl implements IEartagService {
         //获取牧场id
         String farmId = deviceService.getFarmIdByDeviceCode(deviceCode);
         //{保存耳标流水}
-        saveEartagFlow(dataJo,nowTimestamp);
+        saveEartagFlow(dataJo,nowTimestamp,todayDate,farmId);
 
         //{更新耳标注册数据}
         updateEartagRegister(earmark,deviceCode,nowTimestamp,todayDate,farmId);
@@ -461,8 +461,10 @@ public class EartagServiceImpl implements IEartagService {
      * @Time        : 14:33
      * @param eartagJo
      * @param nowTimestamp
+     * @param todayDate
+     * @param farmId
      */
-    public void saveEartagFlow(JSONObject eartagJo, Timestamp nowTimestamp) {
+    public void saveEartagFlow(JSONObject eartagJo, Timestamp nowTimestamp, java.sql.Date todayDate, String farmId) {
         EartagDataEntity dataEntity = new EartagDataEntity();
         dataEntity.setCmdHeader(eartagJo.getString("cmdHeader"));
         dataEntity.setDevice(eartagJo.getString("device"));
@@ -478,6 +480,8 @@ public class EartagServiceImpl implements IEartagService {
         dataEntity.setAskTime(getAskTime(eartagJo.getString("askTime")));
         dataEntity.setOther(eartagJo.getString("other"));
         dataEntity.setAddTime(nowTimestamp);
+        dataEntity.setCreateDate(todayDate);
+        dataEntity.setFarmId(farmId);
         eartagDataRepo.saveAndFlush(dataEntity);
 
         //最新的耳标数据覆盖老数据

+ 7 - 4
huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/controller/DeviceController.java

@@ -22,6 +22,7 @@ import java.text.ParseException;
  * @Author : ZhuoNing
  * @Create : 2020-12-25
  **/
+@CrossOrigin
 @RestController
 @RequestMapping(value = "/device")
 @Slf4j
@@ -83,10 +84,12 @@ public class DeviceController {
      * @Time        : 11:09
      */
     @RequestMapping(value = "/listOnlineDevice",method = RequestMethod.GET)
-    public Result listOnlineDevice(@RequestParam(value = "farmId",required = true) String farmId) throws ParseException {
+    public Result listOnlineDevice(@RequestParam(value = "farmId",required = true) String farmId,
+                                   @RequestParam(value = "date",required = true) String date) throws ParseException {
         log.info("<listOnlineDevice>输入参数 farmId>>"+farmId);
+        log.info("<listOnlineDevice>输入参数 date>>"+date);
         //
-        return deviceService.listOnlineDevice(farmId);
+        return deviceService.listOnlineDevice(farmId,date);
     }
 
     /**
@@ -127,7 +130,7 @@ public class DeviceController {
      * @Time        : 14:01
      */
     @RequestMapping(value = "/getDeviceRegisterByDeviceCode",method = RequestMethod.GET)
-    public Result getDeviceRegisterByDeviceCode(@RequestParam(value = "deviceCode",required = true) String deviceCode){
+    public Result getDeviceRegisterByDeviceCode(@RequestParam(value = "deviceCode",required = true) String deviceCode) throws ParseException {
         log.info("<getDeviceRegisterByDeviceCode>输入参数 deviceCode>>"+deviceCode);
         //
         return deviceService.getDeviceRegisterByDeviceCode(deviceCode);
@@ -152,7 +155,7 @@ public class DeviceController {
                                      @RequestParam(value = "activeStatus",required = false) Integer activeStatus,
                                      @RequestParam(value = "liveStatus",required = false) Integer liveStatus,
                                      @RequestParam(value = "pageNo",required = true) Integer pageNo,
-                                     @RequestParam(value = "pageSize",required = true) Integer pageSize){
+                                     @RequestParam(value = "pageSize",required = true) Integer pageSize) throws ParseException {
         log.info("<listDeviceRegisterInPager>输入参数 farmId>>"+farmId);
         log.info("<listDeviceRegisterInPager>输入参数 deviceCode>>"+deviceCode);
         log.info("<listDeviceRegisterInPager>输入参数 alias>>"+alias);

+ 21 - 4
huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/controller/DeviceRegisterController.java

@@ -7,10 +7,7 @@ import com.huimv.eartag2.manage.service.IDeviceRegisterService;
 import com.huimv.eartag2.manage.service.IDeviceService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.text.ParseException;
 
@@ -22,6 +19,7 @@ import java.text.ParseException;
  * @Author : ZhuoNing
  * @Create : 2020-12-25
  **/
+@CrossOrigin
 @RestController
 @RequestMapping(value = "/deviceRegister")
 @Slf4j
@@ -56,5 +54,24 @@ public class DeviceRegisterController {
         return new Result(ResultCode.SUCCESS,msg);
     }
 
+    @PostMapping("/editDevice")
+    public Result editDevice(String deviceCode, Integer deviceStatus, Integer activeStatus, String deviceAlias, String location, String remark, String id){
+        //{编辑}
+        return deviceRegisterService.editDevice(deviceCode,deviceStatus,activeStatus,deviceAlias,location,remark,id);
+    }
+
+    @PostMapping("/removeDevice")
+    public Result remove(String ids){
+        //{移除设备}
+//        return deviceRegisterService.removeDevice(ids);
+        return deviceRegisterService.deleteBatch(ids);
+    }
+
+    @GetMapping("/listDevice")
+    public Result listDevice(String farmId,String deviceCode,Integer deviceStatus,Integer activeStatus,String deviceAlias,String location,Integer pageNo,Integer pageSize){
+        //{展示设备列表}
+        return deviceRegisterService.listDevice(farmId,deviceCode,deviceStatus,activeStatus,deviceAlias,location,pageNo,pageSize);
+    }
+
 
 }

+ 6 - 8
huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/controller/EartagController.java

@@ -5,10 +5,7 @@ import com.huimv.eartag2.common.utils.Result;
 import com.huimv.eartag2.manage.service.IEartagService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.text.ParseException;
 
@@ -20,6 +17,7 @@ import java.text.ParseException;
  * @Author : ZhuoNing
  * @Create : 2020-12-25
  **/
+@CrossOrigin
 @RestController
 @RequestMapping(value = "/eartag")
 @Slf4j
@@ -82,7 +80,7 @@ public class EartagController {
         log.info("<listEartagFlowByEarmarkAndTodayInPager> 输入参数 pageSize>>"+pageSize);
         log.info("<listEartagFlowByEarmarkAndTodayInPager> 输入参数 createDate>>"+createDate);
         log.info("<listEartagFlowByEarmarkAndTodayInPager> 输入参数 deviceCode>>"+deviceCode);
-        if(createDate == null){
+        if(createDate == null || createDate.trim().length() == 0){
             createDate = new DateUtil().getTodayDateText();
         }
         //
@@ -158,7 +156,7 @@ public class EartagController {
         log.info("<listEartagFlowByDeviceCodeAndEarmarkAndTodayInPager> 输入参数 createDate>"+createDate);
         log.info("<listEartagFlowByDeviceCodeAndEarmarkAndTodayInPager> 输入参数 pageNo>>"+pageNo);
         log.info("<listEartagFlowByDeviceCodeAndEarmarkAndTodayInPager> 输入参数 pageSize>>"+pageSize);
-        if(createDate == null){
+        if(createDate == null || createDate.trim().length() == 0){
             createDate = new DateUtil().getTodayDateText();
         }
         //
@@ -252,7 +250,7 @@ public class EartagController {
         log.info("<listOnlineEartagCount>输入参数 pageNo>>"+pageNo);
         log.info("<listOnlineEartagCount>输入参数 pageSize>>"+pageSize);
         log.info("<listOnlineEartagCount>输入参数 showMode>>"+showMode);
-        if(addDate == null){
+        if(addDate == null || addDate.trim().length() == 0){
             addDate = new DateUtil().getTodayDateText();
         }
         //
@@ -274,7 +272,7 @@ public class EartagController {
                                                 @RequestParam(value = "addDate",required = false) String addDate) throws ParseException {
         log.info("<listEartagDeviceByEarmarkAndAddDate>输入参数 earmark>>"+earmark);
         log.info("<listEartagDeviceByEarmarkAndAddDate>输入参数 addDate>>"+addDate);
-        if(addDate == null){
+        if(addDate == null || addDate.trim().length() == 0){
             addDate = new DateUtil().getTodayDateText();
         }
         //

+ 11 - 0
huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/service/IDeviceRegisterService.java

@@ -8,4 +8,15 @@ public interface IDeviceRegisterService {
     //添加设备
     Result addDevice(String deviceCode, Integer deviceStatus, Integer activeStatus, String deviceAlias, String location, String remark, String farmId) throws ParseException;
 
+    //编辑设备
+    Result editDevice(String deviceCode, Integer deviceStatus, Integer activeStatus, String deviceAlias, String location, String remark, String id);
+
+    //移除设备
+    Result removeDevice(String ids);
+
+    //展示设备注册列表
+    Result listDevice(String farmId, String deviceCode, Integer deviceStatus, Integer activeStatus, String deviceAlias, String location, Integer pageNo, Integer pageSize);
+
+
+    Result deleteBatch(String ids);
 }

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

@@ -12,10 +12,10 @@ public interface IDeviceService {
     Result listManyDaysAllStatus(String farmId, Integer days) throws ParseException;
 
     //显示在线设备
-    Result listOnlineDevice(String farmId) throws ParseException;
+    Result listOnlineDevice(String farmId, String date) throws ParseException;
 
     //
-    Result getDeviceRegisterByDeviceCode(String deviceCode);
+    Result getDeviceRegisterByDeviceCode(String deviceCode) throws ParseException;
 
     //查询单个设备N天在线记录
     Result listDeviceOnlineCountByDeviceCode(String deviceCode, Integer pastDays,Integer showMode) throws ParseException;
@@ -42,6 +42,6 @@ public interface IDeviceService {
     Result listDeviceEnvtempByDeviceCodeInPager(String deviceCode, String addDate, Integer pageNo, Integer pageSize);
 
     //分页查询列表
-    Result listDeviceRegisterInPager(String farmId, String deviceCode, String alias, String startDate, String endDate, Integer activeStatus, Integer liveStatus, Integer pageNo, Integer pageSize);
+    Result listDeviceRegisterInPager(String farmId, String deviceCode, String alias, String startDate, String endDate, Integer activeStatus, Integer liveStatus, Integer pageNo, Integer pageSize) throws ParseException;
 
 }

+ 2 - 2
huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/service/IEartagService.java

@@ -20,10 +20,10 @@ public interface IEartagService {
     Result listEartagOnlineStatusByEarmarkAndDate(String earmark, Integer pastDays) throws ParseException;
 
     //带分页查询耳标流水
-    Result listEartagFlowByEarmarkAndTodayInPager(String earmark, Integer pageNo, Integer pageSize, String createDate, String deviceCode);
+    Result listEartagFlowByEarmarkAndTodayInPager(String earmark, Integer pageNo, Integer pageSize, String createDate, String deviceCode) throws ParseException;
 
     //带分页查询耳标流水
-    Result listEartagFlowByDeviceCodeAndEarmarkAndTodayInPager(String earmark, String deviceCode, String createDate, Integer pageNo, Integer pageSize);
+    Result listEartagFlowByDeviceCodeAndEarmarkAndTodayInPager(String earmark, String deviceCode, String createDate, Integer pageNo, Integer pageSize) throws ParseException;
 
     //带分页查询耳标流水
     Result listEartagFlowByDeviceCodeAndEarmarkAndDateInPager(String earmark, String deviceCode, String addDate, Integer pageNo, Integer pageSize);

+ 17 - 14
huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/service/impl/CacheServiceImpl.java

@@ -1,5 +1,7 @@
 package com.huimv.eartag2.manage.service.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.huimv.eartag2.common.dao.entity.EartarFarmAllStatusEntity;
 import com.huimv.eartag2.common.utils.BizConst;
 import com.huimv.eartag2.manage.service.ICacheService;
@@ -47,20 +49,21 @@ public class CacheServiceImpl implements ICacheService {
 
     @Override
     public void putFarmAllStatusCache(String farmId, EartarFarmAllStatusEntity farmAllStatusEntity) {
-        Map allStatusMap = new HashMap();
-//        allStatusMap.put("id",farmAllStatusEntity.getId());
-        allStatusMap.put("deviceTotal",farmAllStatusEntity.getDeviceTotal());
-        allStatusMap.put("deviceOnline",farmAllStatusEntity.getDeviceOnline());
-        allStatusMap.put("deviceOffline",farmAllStatusEntity.getDeviceOffline());
-        allStatusMap.put("deviceRate",farmAllStatusEntity.getDeviceRate());
-        allStatusMap.put("deviceCancel",farmAllStatusEntity.getDeviceCancel());
-        allStatusMap.put("eartagTotal",farmAllStatusEntity.getEartagTotal());
-        allStatusMap.put("eartagOnline",farmAllStatusEntity.getEartagOnline());
-        allStatusMap.put("farmId",farmId);
-//        allStatusMap.put("updateTime",duObj.formatDateTime(duObj.getTodayText()));
-//        allStatusMap.put("createDate",duObj.getTodayDate());
-        allStatusMap.put("updateTime",farmAllStatusEntity.getUpdateTime());
-        allStatusMap.put("createDate",farmAllStatusEntity.getCreateDate());
+//        Map allStatusMap = new HashMap();
+////        allStatusMap.put("id",farmAllStatusEntity.getId());
+//        allStatusMap.put("deviceTotal",farmAllStatusEntity.getDeviceTotal());
+//        allStatusMap.put("deviceOnline",farmAllStatusEntity.getDeviceOnline());
+//        allStatusMap.put("deviceOffline",farmAllStatusEntity.getDeviceOffline());
+//        allStatusMap.put("deviceRate",farmAllStatusEntity.getDeviceRate());
+//        allStatusMap.put("deviceCancel",farmAllStatusEntity.getDeviceCancel());
+//        allStatusMap.put("eartagTotal",farmAllStatusEntity.getEartagTotal());
+//        allStatusMap.put("eartagOnline",farmAllStatusEntity.getEartagOnline());
+//        allStatusMap.put("farmId",farmId);
+////        allStatusMap.put("updateTime",duObj.formatDateTime(duObj.getTodayText()));
+////        allStatusMap.put("createDate",duObj.getTodayDate());
+//        allStatusMap.put("updateTime",farmAllStatusEntity.getUpdateTime());
+//        allStatusMap.put("createDate",farmAllStatusEntity.getCreateDate());
+        Map allStatusMap = JSON.parseObject(JSONObject.toJSONString(farmAllStatusEntity),Map.class);
         redisTemplate.opsForHash().putAll(BizConst.FARM_ALL_STATUS_PREFIX+farmId, allStatusMap);
     }
 

+ 95 - 0
huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/service/impl/DeviceRegisterServiceImpl.java

@@ -1,5 +1,6 @@
 package com.huimv.eartag2.manage.service.impl;
 
+import com.huimv.eartag2.common.dao.entity.EartagDataEntity;
 import com.huimv.eartag2.common.dao.entity.EartagDeviceRegisterEntity;
 import com.huimv.eartag2.common.dao.repo.EartagDeviceRegisterRepo;
 import com.huimv.eartag2.common.utils.BizConst;
@@ -9,8 +10,14 @@ import com.huimv.eartag2.common.utils.ResultCode;
 import com.huimv.eartag2.manage.service.ICacheService;
 import com.huimv.eartag2.manage.service.IDeviceRegisterService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.domain.Specification;
 import org.springframework.stereotype.Service;
 
+import javax.persistence.criteria.Order;
+import javax.persistence.criteria.Predicate;
 import java.sql.Timestamp;
 import java.text.ParseException;
 import java.util.ArrayList;
@@ -59,6 +66,94 @@ public class DeviceRegisterServiceImpl implements IDeviceRegisterService {
         return new Result(ResultCode.SUCCESS);
     }
 
+    @Override
+    public Result editDevice(String deviceCode, Integer deviceStatus, Integer activeStatus, String deviceAlias, String location, String remark, String id) {
+        //
+        EartagDeviceRegisterEntity deviceRegisterEntity = deviceRegisterRepo.getDeviceRegister(id);
+        deviceRegisterEntity.setDeviceStatus(deviceStatus);
+        deviceRegisterEntity.setActiveStatus(activeStatus);
+        deviceRegisterEntity.setDeviceAlias(deviceAlias);
+        deviceRegisterEntity.setLocation(location);
+        deviceRegisterEntity.setRemark(remark);
+        deviceRegisterRepo.saveAndFlush(deviceRegisterEntity);
+        return new Result(ResultCode.SUCCESS);
+    }
+
+    @Override
+    public Result removeDevice(String ids) {
+        String[] idsArray = ids.split(",");
+        List<Integer> idList = new ArrayList();
+//        for(int a=0;a<idsArray.length;a++){
+//            idList.add(Integer.parseInt(idsArray[a]));
+//        }
+//        deviceRegisterRepo.removeDevice(idList);
+//        List<EartagDeviceRegisterEntity> deviceRegisterEntityList = deviceRegisterRepo.getDeviceRegisterByIds(idList);
+//        deviceRegisterRepo.deleteAll(deviceRegisterEntityList);
+//        deviceRegisterRepo.removeDevice();
+
+//        EartagDeviceRegisterEntity deviceRegisterEntity = deviceRegisterRepo.getDeviceRegister(ids);
+        return new Result(ResultCode.SUCCESS);
+    }
+
+    @Override
+    public Result listDevice(String farmId, String deviceCode, Integer deviceStatus, Integer activeStatus, String deviceAlias, String location, Integer pageNo, Integer pageSize) {
+        //
+        Specification<EartagDeviceRegisterEntity> sf = (Specification<EartagDeviceRegisterEntity>) (root, criteriaQuery, criteriaBuilder) -> {
+            //
+            List<Predicate> predList = new ArrayList<>();
+            //farmId
+            if (null != farmId && farmId.trim().length()>0) {
+                predList.add(criteriaBuilder.equal(root.get("farmId").as(String.class), farmId));
+            }
+            //deviceCode
+            if (null != deviceCode && deviceCode.trim().length()>0) {
+                predList.add(criteriaBuilder.equal(root.get("deviceCode").as(String.class), deviceCode));
+            }
+            //createDate
+//            if (null != createDate && createDate.trim().length()>0) {
+//                try {
+//                    predList.add(criteriaBuilder.equal(root.get("createDate").as(java.sql.Date.class), new java.sql.Date(new DateUtil().parseDateTextToLong(createDate))));
+//                } catch (ParseException e) {
+//                    e.printStackTrace();
+//                }
+//            }
+            //deviceStatus
+            if (null != deviceStatus) {
+                predList.add(criteriaBuilder.equal(root.get("deviceStatus").as(Integer.class), deviceStatus));
+            }
+            //activeStatus
+            if (null != activeStatus) {
+                predList.add(criteriaBuilder.equal(root.get("activeStatus").as(Integer.class), activeStatus));
+            }
+            //location
+            if (null != location && location.trim().length()>0) {
+                predList.add(criteriaBuilder.like(root.get("location").as(String.class), location));
+            }
+            //deviceAlias
+            if (null != deviceAlias && deviceAlias.trim().length()>0) {
+                predList.add(criteriaBuilder.like(root.get("deviceAlias").as(String.class), deviceAlias));
+            }
+            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);
+        Page<EartagDeviceRegisterEntity> entityPage = deviceRegisterRepo.findAll(sf, pageable);
+        return new Result(ResultCode.SUCCESS, entityPage);
+    }
+
+    @Override
+    public Result deleteBatch(String ids) {
+        int id = 1;
+        EartagDeviceRegisterEntity deviceRegisterEntity = deviceRegisterRepo.getDeviceRegister(ids);
+        deviceRegisterRepo.delete(deviceRegisterEntity);
+        return new Result(ResultCode.SUCCESS);
+    }
+
     //
     private Boolean isExistSameDevice(String deviceCode) {
         int allDeviceSetSize = cacheService.isExistAllDeviceSet();

+ 95 - 21
huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/service/impl/DeviceServiceImpl.java

@@ -1,5 +1,6 @@
 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.*;
@@ -133,6 +134,7 @@ public class DeviceServiceImpl implements IDeviceService {
 
     @Override
     public Result listHeartbeatByDeviceCodeAndDateInPager(String deviceCode, String addDate, Integer pageNo, Integer pageSize) {
+        System.out.println("## addDate>>"+addDate);
         //
         Specification<EartagHeartbeatEntity> sf = (Specification<EartagHeartbeatEntity>) (root, criteriaQuery, criteriaBuilder) -> {
             //
@@ -212,7 +214,7 @@ public class DeviceServiceImpl implements IDeviceService {
      * @Time        : 22:28
      */
     @Override
-    public Result listDeviceRegisterInPager(String farmId, String deviceCode, String alias, String startDate, String endDate, Integer activeStatus, Integer liveStatus, Integer pageNo, Integer pageSize) {
+    public Result listDeviceRegisterInPager(String farmId, String deviceCode, String alias, String startDate, String endDate, Integer activeStatus, Integer liveStatus, Integer pageNo, Integer pageSize) throws ParseException {
         //
         Specification<EartagDeviceRegisterEntity> sf = (Specification<EartagDeviceRegisterEntity>) (root, criteriaQuery, criteriaBuilder) -> {
             //
@@ -262,7 +264,50 @@ public class DeviceServiceImpl implements IDeviceService {
             return criteriaQuery.orderBy(orders).getRestriction();
         };
         Pageable pageable = PageRequest.of(pageNo - 1, pageSize);
-        return new Result(ResultCode.SUCCESS, deviceRegisterRepo.findAll(sf, pageable));
+        DateUtil dateUtil = new DateUtil();
+        //{}
+        Page<EartagDeviceRegisterEntity> pageDeviceRegister = deviceRegisterRepo.findAll(sf, pageable);
+        JSONObject outDataJo = new JSONObject();
+        outDataJo.put("pageable",pageDeviceRegister.getPageable());
+        outDataJo.put("last",pageDeviceRegister.isLast());
+        outDataJo.put("totalElements",pageDeviceRegister.getTotalElements());
+        outDataJo.put("totalPages",pageDeviceRegister.getTotalPages());
+        outDataJo.put("number",pageDeviceRegister.getNumber());
+        outDataJo.put("size",pageDeviceRegister.getSize());
+        outDataJo.put("sort",pageDeviceRegister.getSort());
+        outDataJo.put("numberOfElements",pageDeviceRegister.getNumberOfElements());
+        outDataJo.put("first",pageDeviceRegister.isFirst());
+        outDataJo.put("empty",pageDeviceRegister.isEmpty());
+
+        List<EartagDeviceRegisterEntity> deviceRegisterEntityList = pageDeviceRegister.getContent();
+        JSONArray outJa = new JSONArray();
+        outDataJo.put("content",outJa);
+        for(EartagDeviceRegisterEntity deviceRegisterEntity:deviceRegisterEntityList){
+            JSONObject outJo = new JSONObject();
+            outJa.add(outJo);
+            outJo.put("id",deviceRegisterEntity.getId());
+            outJo.put("deviceCode",deviceRegisterEntity.getDeviceCode());
+            outJo.put("countyCode",deviceRegisterEntity.getCountyCode());
+            outJo.put("countyName",deviceRegisterEntity.getCountyName());
+            outJo.put("farmId",deviceRegisterEntity.getFarmId());
+            outJo.put("farmName",deviceRegisterEntity.getFarmName());
+            outJo.put("typeF",deviceRegisterEntity.getTypeF());
+            outJo.put("stage",deviceRegisterEntity.getStage());
+            outJo.put("pigpenId",deviceRegisterEntity.getPigpenId());
+            outJo.put("unitId",deviceRegisterEntity.getUnitId());
+            outJo.put("registerTime",deviceRegisterEntity.getRegisterTime());
+            outJo.put("lastTime",deviceRegisterEntity.getLastTime());
+            outJo.put("activeStatus",deviceRegisterEntity.getActiveStatus());
+            outJo.put("activeTime",dateUtil.formatDatetimeText(deviceRegisterEntity.getActiveTime()));
+            outJo.put("deviceStatus",deviceRegisterEntity.getDeviceStatus());
+            outJo.put("deviceAlias",deviceRegisterEntity.getDeviceAlias());
+            outJo.put("location",deviceRegisterEntity.getLocation());
+            outJo.put("remark",deviceRegisterEntity.getRemark());
+            outJo.put("createDate",deviceRegisterEntity.getCreateDate());
+            outJo.put("updateType",deviceRegisterEntity.getUpdateType());
+        }
+        return new Result(ResultCode.SUCCESS, outDataJo);
+//        return new Result(ResultCode.SUCCESS, deviceRegisterRepo.findAll(sf, pageable));
     }
     
     /**
@@ -333,6 +378,13 @@ public class DeviceServiceImpl implements IDeviceService {
             return criteriaQuery.orderBy(orders).getRestriction();
         };
         Pageable pageable = PageRequest.of(pageNo - 1, pageSize);
+        Page<EartagDeviceOnlineEntity> pageDeviceOnlineEntity = deviceOnlineRepo.findAll(sf, pageable);
+
+        List<EartagDeviceOnlineEntity> deviceOnlineEntityList = pageDeviceOnlineEntity.getContent();
+        for(EartagDeviceOnlineEntity deviceOnlineEntity:deviceOnlineEntityList){
+
+        }
+
         return new Result(ResultCode.SUCCESS, deviceOnlineRepo.findAll(sf, pageable));
     }
 
@@ -354,7 +406,7 @@ public class DeviceServiceImpl implements IDeviceService {
         if (deviceEartagCountEntityList.size() == 0) {
             return new Result(BizConst.CODE_DEVICE_EARTAG_COUNT_NO_EXIST, BizConst.MSG_DEVICE_EARTAG_COUNT_NO_EXIST, false);
         } else {
-            return new Result(ResultCode.SUCCESS, JSONObject.toJSONString(deviceEartagCountEntityList));
+            return new Result(ResultCode.SUCCESS, JSON.toJSON(deviceEartagCountEntityList));
         }
     }
 
@@ -419,7 +471,13 @@ public class DeviceServiceImpl implements IDeviceService {
         List<EartagDeviceOnlineEntity> deviceOnlineEntityList = deviceOnlineRepo.getDeviceOnlineByDeviceCode(deviceCode, pastDate, todayDate);
         if (deviceOnlineEntityList.size() > 0) {
             if (showMode == 1) {
-                return new Result(ResultCode.SUCCESS, JSONObject.toJSONString(deviceOnlineEntityList));
+                JSONArray resultJa = (JSONArray) JSON.toJSON(deviceOnlineEntityList);
+                for(int a=0;a<resultJa.size();a++){
+                    JSONObject resultJo = resultJa.getJSONObject(a);
+                    resultJo.put("envtempFirstTime",dateUtil.formatDatetimeText(resultJo.getDate("envtempFirstTime")));
+                    resultJo.put("envtempLastTime",dateUtil.formatDatetimeText(resultJo.getDate("envtempLastTime")));
+                }
+                return new Result(ResultCode.SUCCESS, resultJa);
             } else {
                 JSONArray dataJa = new JSONArray();
                 for (EartagDeviceOnlineEntity deviceOnlineEntity : deviceOnlineEntityList) {
@@ -428,7 +486,7 @@ public class DeviceServiceImpl implements IDeviceService {
                     newJo.put("time", dateUtil.formatDateText(deviceOnlineEntity.getAddDate()));
                     newJo.put("value", deviceOnlineEntity.getEartagTotal());
                 }
-                return new Result(ResultCode.SUCCESS, dataJa.toJSONString());
+                return new Result(ResultCode.SUCCESS, dataJa);
             }
         } else {
             return new Result(BizConst.CODE_DEVICE_ONLINE_NO_EXIST, BizConst.MSG_DEVICE_ONLINE_NO_EXIST, false);
@@ -445,14 +503,18 @@ public class DeviceServiceImpl implements IDeviceService {
      * @Time : 13:55
      */
     @Override
-    public Result getDeviceRegisterByDeviceCode(String deviceCode) {
+    public Result getDeviceRegisterByDeviceCode(String deviceCode) throws ParseException {
+        DateUtil dateUtil = new DateUtil();
         //
         EartagDeviceRegisterEntity deviceRegisterEntity = deviceRegisterRepo.getDeviceRegister(deviceCode);
         if (deviceRegisterEntity == null) {
             log.error(BizConst.MSG_DEVICE_REGISTER_NO_EXIST);
             return new Result(BizConst.CODE_DEVICE_REGISTER_NO_EXIST, BizConst.MSG_DEVICE_REGISTER_NO_EXIST, false);
         } else {
-            return new Result(ResultCode.SUCCESS, JSONObject.toJSONString(deviceRegisterEntity));
+            JSONObject resultJo = (JSONObject) JSON.toJSON(deviceRegisterEntity);
+            resultJo.put("activeTime",dateUtil.formatDatetimeText(resultJo.getDate("activeTime")));
+
+            return new Result(ResultCode.SUCCESS, resultJo);
         }
     }
 
@@ -466,17 +528,19 @@ public class DeviceServiceImpl implements IDeviceService {
      * @Time : 13:21
      */
     @Override
-    public Result listOnlineDevice(String farmId) throws ParseException {
+    public Result listOnlineDevice(String farmId,String date) throws ParseException {
         DateUtil dateUtil = new DateUtil();
-        String todayDate = dateUtil.getTodayDateText();
+        if(date == null){
+            date = dateUtil.getTodayDateText();
+        }
         //* 这里提供2种方式:1、从数据库读取 2、从缓存中取数(后期优化),但是同时提供2种方式都可用,防止缓存方式失效 */
         System.out.println("deviceOnlineAccessMode>>" + deviceOnlineAccessMode);
         if (deviceOnlineAccessMode.trim().equalsIgnoreCase("mysql")) {
             //
-            return listDeviceOnlineFromMySQL(farmId, todayDate);
+            return listDeviceOnlineFromMySQL(farmId, date);
         } else {
             //
-            return listDeviceOnlineFromCache(farmId, todayDate);
+            return listDeviceOnlineFromCache(farmId, date);
         }
     }
 
@@ -499,7 +563,13 @@ public class DeviceServiceImpl implements IDeviceService {
 //            for(EartagDeviceOnlineEntity deviceOnlineEntity:deviceOnlineEntityList){
 //                deviceOnlineEntity.setHeartbeatFirstTime(du.formatDatetimeText());
 //            }
-            return new Result(ResultCode.SUCCESS, JSONObject.toJSONString(deviceOnlineEntityList));
+            JSONArray resultJa = (JSONArray) JSON.toJSON(deviceOnlineEntityList);
+            for(int a=0;a<resultJa.size();a++){
+                JSONObject resultJo = resultJa.getJSONObject(a);
+                resultJo.put("envtempFirstTime",du.formatDateText(resultJo.getTimestamp("envtempFirstTime")));
+                resultJo.put("envtempLastTime",du.formatDateText(resultJo.getTimestamp("envtempLastTime")));
+            }
+            return new Result(ResultCode.SUCCESS, resultJa);
         }
     }
 
@@ -518,7 +588,7 @@ public class DeviceServiceImpl implements IDeviceService {
         Map farmAllStatusMap = cacheService.getFarmAllStatusByFarmId(farmId);
         if (farmAllStatusMap.size() > 0) {
             log.info("返回缓存数据.");
-            return new Result(ResultCode.SUCCESS, JSONObject.toJSONString(farmAllStatusMap));
+            return new Result(ResultCode.SUCCESS, JSON.toJSON(farmAllStatusMap));
         } else {
             //#从数据库读取总状态表
             String todayDateText = dateUtil.getTodayDateText();
@@ -528,7 +598,7 @@ public class DeviceServiceImpl implements IDeviceService {
             if (farmAllStatusEntity != null) {
                 //#初始化总状态缓存
                 cacheService.putFarmAllStatusCache(farmId, farmAllStatusEntity);
-                return new Result(ResultCode.SUCCESS, JSONObject.toJSONString(farmAllStatusEntity));
+                return new Result(ResultCode.SUCCESS, JSON.toJSON(farmAllStatusEntity));
             } else {
                 //*构建总状态数据 */
                 int deviceTotal = getDeviceCancelTotalFromDeviceRegister(farmId);
@@ -536,21 +606,25 @@ public class DeviceServiceImpl implements IDeviceService {
                 int deviceOnlineTotal = cacheService.getDeviceOnlineTotal(farmId, todayDateText);
                 int eartagOnlineTotal = cacheService.getEartagOnlineTotal(farmId, todayDateText);
                 int deviceOffline = deviceTotal - deviceOnlineTotal;
-                BigDecimal rateBd = new BigDecimal(deviceOnlineTotal).divide(new BigDecimal(deviceTotal), 1, BigDecimal.ROUND_HALF_UP);
+                BigDecimal deviceRateBd = new BigDecimal(deviceOnlineTotal).divide(new BigDecimal(deviceTotal), 1, BigDecimal.ROUND_HALF_UP);
+                BigDecimal eartagRateBd = new BigDecimal(eartagOnlineTotal).divide(new BigDecimal(eartagTotal), 1, BigDecimal.ROUND_HALF_UP);
+
                 EartarFarmAllStatusEntity newFarmAllStatusEntity = new EartarFarmAllStatusEntity();
                 newFarmAllStatusEntity.setDeviceTotal(deviceTotal);
                 newFarmAllStatusEntity.setDeviceOnline(deviceOnlineTotal);
                 newFarmAllStatusEntity.setDeviceOffline(deviceOffline);
-                newFarmAllStatusEntity.setDeviceRate(Float.parseFloat(rateBd.toString()));
+                newFarmAllStatusEntity.setDeviceRate(Float.parseFloat(deviceRateBd.toString()));
                 newFarmAllStatusEntity.setEartagTotal(eartagTotal);
                 newFarmAllStatusEntity.setEartagOnline(eartagOnlineTotal);
+                newFarmAllStatusEntity.setEartagRate(Float.parseFloat(eartagRateBd.toString()));
                 newFarmAllStatusEntity.setFarmId(farmId);
                 newFarmAllStatusEntity.setUpdateTime(timestamp);
                 newFarmAllStatusEntity.setCreateDate(todayDate);
                 farmAllStatusRepo.saveAndFlush(newFarmAllStatusEntity);
                 //*初始化总状态缓存*/
                 cacheService.putFarmAllStatusCache(farmId, newFarmAllStatusEntity);
-                return new Result(ResultCode.SUCCESS, JSONObject.toJSONString(newFarmAllStatusEntity));
+//                JSON.parseObject(JSON.toJSON(newFarmAllStatusEntity));
+                return new Result(ResultCode.SUCCESS, JSON.toJSON(newFarmAllStatusEntity));
             }
         }
 
@@ -568,11 +642,11 @@ public class DeviceServiceImpl implements IDeviceService {
             dataJa.add(newJo);
             newJo.put("time", dateUtil.formatDateText(farmAllStatusEntity.getCreateDate()));
             newJo.put("value", farmAllStatusEntity.getDeviceOnline());
-            newJo.put("total", farmAllStatusEntity.getDeviceTotal());
-            newJo.put("rate", farmAllStatusEntity.getDeviceRate());
-            newJo.put("offline", farmAllStatusEntity.getDeviceOffline());
+//            newJo.put("total", farmAllStatusEntity.getDeviceTotal());
+//            newJo.put("rate", farmAllStatusEntity.getDeviceRate());
+//            newJo.put("offline", farmAllStatusEntity.getDeviceOffline());
         }
-        return new Result(ResultCode.SUCCESS, dataJa.toJSONString());
+        return new Result(ResultCode.SUCCESS, dataJa);
     }
 
     //计算注册设备数量

+ 168 - 13
huimv-eartag2-platform/huimv-eartag2-manage/src/main/java/com/huimv/eartag2/manage/service/impl/EartagServiceImpl.java

@@ -1,5 +1,6 @@
 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.*;
@@ -152,6 +153,42 @@ public class EartagServiceImpl implements IEartagService {
         };
         Pageable pageable = PageRequest.of(pageNo - 1, pageSize);
         Page<EartagEartagRegisterEntity> eartagRegisterPage = eartagRegisterRepo.findAll(sf, pageable);
+        JSONObject outDataJo = new JSONObject();
+
+
+        List<EartagEartagRegisterEntity> eartagRegisterEntityList = eartagRegisterPage.getContent();
+        JSONArray outJa = new JSONArray();
+        outDataJo.put("content",outJa);
+        DateUtil dateUtil = new DateUtil();
+        for(EartagEartagRegisterEntity eartagRegisterEntity:eartagRegisterEntityList){
+            JSONObject outJo = new JSONObject();
+            outJa.add(outJo);
+            outJo.put("id",eartagRegisterEntity.getId());
+            outJo.put("earmark",eartagRegisterEntity.getEarmark());
+            outJo.put("firstTime",dateUtil.formatDatetimeText(eartagRegisterEntity.getFirstTime()));
+            outJo.put("lastTime",dateUtil.formatDatetimeText(eartagRegisterEntity.getLastTime()));
+            outJo.put("firstDevice",eartagRegisterEntity.getFirstDevice());
+            outJo.put("belongDevice",eartagRegisterEntity.getBelongDevice());
+            outJo.put("lastDevice",eartagRegisterEntity.getLastDevice());
+            outJo.put("registerTime",dateUtil.formatDatetimeText(eartagRegisterEntity.getRegisterTime()));
+            outJo.put("registerType",eartagRegisterEntity.getRegisterType());
+            outJo.put("remark",eartagRegisterEntity.getRemark());
+            outJo.put("farmId",eartagRegisterEntity.getFarmId());
+            outJo.put("activeStatus",eartagRegisterEntity.getActiveStatus());
+            outJo.put("activeTime",dateUtil.formatDatetimeText(eartagRegisterEntity.getActiveTime()));
+            outJo.put("liveStatus",eartagRegisterEntity.getLiveStatus());
+            outJo.put("createDate",eartagRegisterEntity.getCreateDate());
+        }
+        outDataJo.put("pageable",eartagRegisterPage.getPageable());
+        outDataJo.put("last",eartagRegisterPage.isLast());
+        outDataJo.put("totalElements",eartagRegisterPage.getTotalElements());
+        outDataJo.put("totalPages",eartagRegisterPage.getTotalPages());
+        outDataJo.put("number",eartagRegisterPage.getNumber());
+        outDataJo.put("size",eartagRegisterPage.getSize());
+        outDataJo.put("sort",eartagRegisterPage.getSort());
+        outDataJo.put("numberOfElements",eartagRegisterPage.getNumberOfElements());
+        outDataJo.put("first",eartagRegisterPage.isFirst());
+        outDataJo.put("empty",eartagRegisterPage.isEmpty());
 //        System.out.println("## eartagRegisterPage>>"+eartagRegisterPage);
 //        List<EartagEartagRegisterEntity> eartagRegisterEntityList = eartagRegisterPage.getContent();
 //        System.out.println("## eartagRegisterEntityList.size()>>"+eartagRegisterEntityList.size());
@@ -169,7 +206,7 @@ public class EartagServiceImpl implements IEartagService {
 //        eartagRegisterEntity.setFirstTime(new Timestamp(du.parseDateTime(eartagRegisterEntity.getFirstTime().toString()).getTime()));
 //        System.out.println("getFirstTime 33>>"+du.parseDateTime(eartagRegisterEntity.getFirstTime().toString()));
 //    }
-        return new Result(ResultCode.SUCCESS, eartagRegisterPage);
+        return new Result(ResultCode.SUCCESS, outDataJo);
     }
 
     /**
@@ -187,7 +224,7 @@ public class EartagServiceImpl implements IEartagService {
         //
         List<EartagDeviceEartagCountEntity> deviceEartagCountEntityList = deviceEartagCountRepo.getOnlineEartagDeviceByEarmarkAndAddDate(earmark,addDate);
         if(deviceEartagCountEntityList != null){
-            return new Result(ResultCode.SUCCESS, JSONObject.toJSONString(deviceEartagCountEntityList));
+            return new Result(ResultCode.SUCCESS, JSON.toJSON(deviceEartagCountEntityList));
         }else{
             return new Result(BizConst.CODE_DEVICE_EARTAG_COUNT_NO_EXIST, BizConst.MSG_DEVICE_EARTAG_COUNT_NO_EXIST, false);
         }
@@ -251,7 +288,7 @@ public class EartagServiceImpl implements IEartagService {
      * @Date : 2022/3/10
      * @Time : 21:54
      */
-    private Result listEartagOnlineInRecords(String farmId, String addDate, Integer pageNo, Integer pageSize) {
+    private Result listEartagOnlineInRecords(String farmId, String addDate, Integer pageNo, Integer pageSize) throws ParseException {
         //
         Specification<EartagEartagOnlineEntity> sf = (Specification<EartagEartagOnlineEntity>) (root, criteriaQuery, criteriaBuilder) -> {
             //
@@ -276,7 +313,38 @@ public class EartagServiceImpl implements IEartagService {
             return criteriaQuery.orderBy(orders).getRestriction();
         };
         Pageable pageable = PageRequest.of(pageNo - 1, pageSize);
-        return new Result(ResultCode.SUCCESS, eartagOnlineRepo.findAll(sf, pageable));
+        Page<EartagEartagOnlineEntity> pageEartagOnline = eartagOnlineRepo.findAll(sf, pageable);
+        JSONObject outDataJo = new JSONObject();
+        outDataJo.put("pageable",pageEartagOnline.getPageable());
+        outDataJo.put("last",pageEartagOnline.isLast());
+        outDataJo.put("totalElements",pageEartagOnline.getTotalElements());
+        outDataJo.put("totalPages",pageEartagOnline.getTotalPages());
+        outDataJo.put("number",pageEartagOnline.getNumber());
+        outDataJo.put("size",pageEartagOnline.getSize());
+        outDataJo.put("sort",pageEartagOnline.getSort());
+        outDataJo.put("numberOfElements",pageEartagOnline.getNumberOfElements());
+        outDataJo.put("first",pageEartagOnline.isFirst());
+        outDataJo.put("empty",pageEartagOnline.isEmpty());
+
+        List<EartagEartagOnlineEntity> eartagOnlineEntityList = pageEartagOnline.getContent();
+        JSONArray outJa = new JSONArray();
+        outDataJo.put("content",outJa);
+        DateUtil dateUtil = new DateUtil();
+        for(EartagEartagOnlineEntity eartagOnlineEntity:eartagOnlineEntityList){
+            JSONObject outJo = new JSONObject();
+            outJa.add(outJo);
+            outJo.put("id",eartagOnlineEntity.getId());
+            outJo.put("earmark",eartagOnlineEntity.getEarmark());
+            outJo.put("total",eartagOnlineEntity.getTotal());
+            outJo.put("firstTime",dateUtil.formatDatetimeText(eartagOnlineEntity.getFirstTime()));
+            outJo.put("lastTime",dateUtil.formatDatetimeText(eartagOnlineEntity.getLastTime()));
+            outJo.put("envTemp",eartagOnlineEntity.getEnvTemp());
+            outJo.put("eartagTemp",eartagOnlineEntity.getEartagTemp());
+            outJo.put("addDate",eartagOnlineEntity.getAddDate());
+            outJo.put("farmId",eartagOnlineEntity.getFarmId());
+        }
+
+        return new Result(ResultCode.SUCCESS, outDataJo);
     }
 
     /**
@@ -300,9 +368,9 @@ public class EartagServiceImpl implements IEartagService {
             dataJa.add(newJo);
             newJo.put("time", dateUtil.formatDateText(farmAllStatusEntity.getCreateDate()));
             newJo.put("value", farmAllStatusEntity.getEartagOnline());
-            newJo.put("total", farmAllStatusEntity.getEartagTotal());
+//            newJo.put("total", farmAllStatusEntity.getEartagTotal());
         }
-        return new Result(ResultCode.SUCCESS, dataJa.toJSONString());
+        return new Result(ResultCode.SUCCESS, dataJa);
     }
 
     /**
@@ -366,7 +434,12 @@ public class EartagServiceImpl implements IEartagService {
      * @Time : 20:19
      */
     @Override
-    public Result listEartagFlowByEarmarkAndTodayInPager(String earmark, Integer pageNo, Integer pageSize, String createDate, String deviceCode) {
+    public Result listEartagFlowByEarmarkAndTodayInPager(String earmark, Integer pageNo, Integer pageSize, String createDate, String deviceCode) throws ParseException {
+        System.out.println("earmark>>"+earmark);
+        System.out.println("pageNo>>"+pageNo);
+        System.out.println("pageSize>>"+pageSize);
+        System.out.println("createDate>>"+createDate);
+        System.out.println("deviceCode>>"+deviceCode);
         //
         Specification<EartagDataEntity> sf = (Specification<EartagDataEntity>) (root, criteriaQuery, criteriaBuilder) -> {
             //
@@ -395,7 +468,50 @@ public class EartagServiceImpl implements IEartagService {
             return criteriaQuery.orderBy(orders).getRestriction();
         };
         Pageable pageable = PageRequest.of(pageNo - 1, pageSize);
-        return new Result(ResultCode.SUCCESS, eartagDataRepo.findAll(sf, pageable));
+        Page<EartagDataEntity> pageEartagData = eartagDataRepo.findAll(sf, pageable);
+        JSONObject outDataJo = new JSONObject();
+        outDataJo.put("pageable",pageEartagData.getPageable());
+        outDataJo.put("last",pageEartagData.isLast());
+        outDataJo.put("totalElements",pageEartagData.getTotalElements());
+        outDataJo.put("totalPages",pageEartagData.getTotalPages());
+        outDataJo.put("number",pageEartagData.getNumber());
+        outDataJo.put("size",pageEartagData.getSize());
+        outDataJo.put("sort",pageEartagData.getSort());
+        outDataJo.put("numberOfElements",pageEartagData.getNumberOfElements());
+        outDataJo.put("first",pageEartagData.isFirst());
+        outDataJo.put("empty",pageEartagData.isEmpty());
+        List<EartagDataEntity> dataEntityList = pageEartagData.getContent();
+        System.out.println("## dataEntityList.size>>"+dataEntityList.size());
+        JSONArray outJa = new JSONArray();
+        outDataJo.put("content",outJa);
+        DateUtil dateUtil = new DateUtil();
+        for(EartagDataEntity eartagDataEntity:dataEntityList) {
+//            System.out.println(">>"+deviceRegisterEntity.toString());
+//            Map map = JSON.parseObject(JSONObject.toJSONString(deviceRegisterEntity),Map.class);
+//            System.out.println("map>>"+map.toString());
+            JSONObject outJo = new JSONObject();
+            outJa.add(outJo);
+            outJo.put("id", eartagDataEntity.getId());
+            outJo.put("cmdHeader", eartagDataEntity.getCmdHeader());
+            outJo.put("device", eartagDataEntity.getDevice());
+            outJo.put("earmark", eartagDataEntity.getEarmark());
+            outJo.put("bat", eartagDataEntity.getBat());
+            outJo.put("earTemp", eartagDataEntity.getEarTemp());
+            outJo.put("earTemp1", eartagDataEntity.getEarTemp1());
+            outJo.put("envTemp", eartagDataEntity.getEnvTemp());
+            outJo.put("envTemp1", eartagDataEntity.getEnvTemp1());
+            outJo.put("act", eartagDataEntity.getAct());
+            outJo.put("act1", eartagDataEntity.getAct1());
+            outJo.put("signal1", eartagDataEntity.getSignal1());
+            outJo.put("askTime", eartagDataEntity.getAskTime());
+            outJo.put("other", eartagDataEntity.getOther());
+            outJo.put("addTime", dateUtil.formatDatetimeText(eartagDataEntity.getAddTime()));
+            outJo.put("createDate", eartagDataEntity.getCreateDate());
+            outJo.put("farmId", eartagDataEntity.getFarmId());
+        }
+
+        return new Result(ResultCode.SUCCESS, outDataJo);
+//        return new Result(ResultCode.SUCCESS, pageEartagData);
     }
 
     /**
@@ -408,7 +524,7 @@ public class EartagServiceImpl implements IEartagService {
      * @Time : 20:37
      */
     @Override
-    public Result listEartagFlowByDeviceCodeAndEarmarkAndTodayInPager(String earmark, String deviceCode, String createDate, Integer pageNo, Integer pageSize) {
+    public Result listEartagFlowByDeviceCodeAndEarmarkAndTodayInPager(String earmark, String deviceCode, String createDate, Integer pageNo, Integer pageSize) throws ParseException {
         //
         Specification<EartagDataEntity> sf = (Specification<EartagDataEntity>) (root, criteriaQuery, criteriaBuilder) -> {
             //
@@ -438,7 +554,46 @@ public class EartagServiceImpl implements IEartagService {
             return criteriaQuery.orderBy(orders).getRestriction();
         };
         Pageable pageable = PageRequest.of(pageNo - 1, pageSize);
-        return new Result(ResultCode.SUCCESS, eartagDataRepo.findAll(sf, pageable));
+        Page<EartagDataEntity> pageEartagData = eartagDataRepo.findAll(sf, pageable);
+        JSONObject outDataJo = new JSONObject();
+        outDataJo.put("pageable",pageEartagData.getPageable());
+        outDataJo.put("last",pageEartagData.isLast());
+        outDataJo.put("totalElements",pageEartagData.getTotalElements());
+        outDataJo.put("totalPages",pageEartagData.getTotalPages());
+        outDataJo.put("number",pageEartagData.getNumber());
+        outDataJo.put("size",pageEartagData.getSize());
+        outDataJo.put("sort",pageEartagData.getSort());
+        outDataJo.put("numberOfElements",pageEartagData.getNumberOfElements());
+        outDataJo.put("first",pageEartagData.isFirst());
+        outDataJo.put("empty",pageEartagData.isEmpty());
+
+        List<EartagDataEntity> dataEntityList = pageEartagData.getContent();
+        JSONArray outJa = new JSONArray();
+        outDataJo.put("content",outJa);
+        DateUtil dateUtil = new DateUtil();
+        for(EartagDataEntity eartagDataEntity:dataEntityList) {
+            JSONObject outJo = new JSONObject();
+            outJa.add(outJo);
+            outJo.put("id", eartagDataEntity.getId());
+            outJo.put("cmdHeader", eartagDataEntity.getCmdHeader());
+            outJo.put("device", eartagDataEntity.getDevice());
+            outJo.put("earmark", eartagDataEntity.getEarmark());
+            outJo.put("bat", eartagDataEntity.getBat());
+            outJo.put("earTemp", eartagDataEntity.getEarTemp());
+            outJo.put("earTemp1", eartagDataEntity.getEarTemp1());
+            outJo.put("envTemp", eartagDataEntity.getEnvTemp());
+            outJo.put("envTemp1", eartagDataEntity.getEnvTemp1());
+            outJo.put("act", eartagDataEntity.getAct());
+            outJo.put("act1", eartagDataEntity.getAct1());
+            outJo.put("signal1", eartagDataEntity.getSignal1());
+            outJo.put("askTime", eartagDataEntity.getAskTime());
+            outJo.put("other", eartagDataEntity.getOther());
+            outJo.put("addTime", dateUtil.formatDatetimeText(eartagDataEntity.getAddTime()));
+            outJo.put("createDate", eartagDataEntity.getCreateDate());
+            outJo.put("farmId", eartagDataEntity.getFarmId());
+        }
+        return new Result(ResultCode.SUCCESS, outDataJo);
+//        return new Result(ResultCode.SUCCESS, pageEartagData);
     }
 
     /**
@@ -547,7 +702,7 @@ public class EartagServiceImpl implements IEartagService {
         //
         List<EartagDataEntity> eartagDataEntityList = eartagDataRepo.getEartagFlowByDeviceCodeAndEarmarkAndToday(deviceCode, earmark, todayDateText);
         if (eartagDataEntityList.size() > 0) {
-            return new Result(ResultCode.SUCCESS, JSONObject.toJSONString(eartagDataEntityList));
+            return new Result(ResultCode.SUCCESS, JSON.toJSON(eartagDataEntityList));
         } else {
             return new Result(BizConst.CODE_EARTAG_FLOW_NO_EXIST, BizConst.MSG_EARTAG_FLOW_NO_EXIST, false);
         }
@@ -569,7 +724,7 @@ public class EartagServiceImpl implements IEartagService {
         //
         List<EartagDataEntity> eartagDataEntityList = eartagDataRepo.getEartagFlowByEarmarkAndToday(earmark, todayDateText);
         if (eartagDataEntityList.size() > 0) {
-            return new Result(ResultCode.SUCCESS, JSONObject.toJSONString(eartagDataEntityList));
+            return new Result(ResultCode.SUCCESS, JSON.toJSON(eartagDataEntityList));
         } else {
             return new Result(BizConst.CODE_EARTAG_FLOW_NO_EXIST, BizConst.MSG_EARTAG_FLOW_NO_EXIST, false);
         }
@@ -589,7 +744,7 @@ public class EartagServiceImpl implements IEartagService {
         //
         EartagEartagRegisterEntity eartagRegisterEntity = eartagRegisterRepo.getEartagByEarmark(earmark);
         if (eartagRegisterEntity != null) {
-            return new Result(ResultCode.SUCCESS, JSONObject.toJSONString(eartagRegisterEntity));
+            return new Result(ResultCode.SUCCESS, JSON.toJSON(eartagRegisterEntity));
         } else {
             return new Result(BizConst.CODE_EARTAG_REGISTER_NO_EXIST, BizConst.MSG_EARTAG_REGISTER_NO_EXIST, false);
         }

+ 1 - 0
huimv-eartag2-platform/pom.xml

@@ -11,6 +11,7 @@
         <module>huimv-eartag2-process2</module>
         <module>huimv-eartag2-device</module>
         <module>huimv-eartag2-eartag</module>
+        <module>huimv-eartag2-admin</module>
     </modules>
     <parent>
         <groupId>org.springframework.boot</groupId>