Forráskód Böngészése

设备管理,汇总数据

523096025 3 éve
szülő
commit
767ba1eb50
36 módosított fájl, 1012 hozzáadás és 29 törlés
  1. 5 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/pom.xml
  2. 84 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/BaseFarmInfoController.java
  3. 30 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/CollectorRegisterController.java
  4. 24 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/EartagDataController.java
  5. 85 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/EartagOffineController.java
  6. 7 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/EnvironmentDataController.java
  7. 56 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/BaseFarmInfoEntity.java
  8. 19 2
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/CollectorRegisterEntity.java
  9. 10 5
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/DailyTabulateDataEntity.java
  10. 4 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/EartagDataEntity.java
  11. 48 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/EartagOffineEntity.java
  12. 22 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/EnvironmentDataEntity.java
  13. 19 2
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/vo/CollectorRegisterVo.java
  14. 22 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/vo/EartagDataCountVo.java
  15. 22 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/vo/EnvironmentDataVo.java
  16. 17 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/mapper/BaseFarmInfoDao.java
  17. 2 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/mapper/DailyTabulateDataDao.java
  18. 10 1
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/mapper/EartagDataDao.java
  19. 17 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/mapper/EartagOffineDao.java
  20. 9 1
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/mapper/EnvironmentDataDao.java
  21. 20 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/BaseFarmInfoService.java
  22. 3 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/CollectorRegisterService.java
  23. 6 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/EartagDataService.java
  24. 20 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/EartagOffineService.java
  25. 3 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/EnvironmentDataService.java
  26. 35 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/BaseFarmInfoServiceImpl.java
  27. 40 8
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/CollectorRegisterServiceImpl.java
  28. 32 1
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/DailyTabulateDataServiceImpl.java
  29. 217 5
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/EartagDataServiceImpl.java
  30. 34 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/EartagOffineServiceImpl.java
  31. 31 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/EnvironmentDataServiceImpl.java
  32. 19 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/resources/mapper/manager/BaseFarmInfoDao.xml
  33. 10 4
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/resources/mapper/manager/CollectorRegisterDao.xml
  34. 7 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/resources/mapper/manager/EartagDataDao.xml
  35. 17 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/resources/mapper/manager/EartagOffineDao.xml
  36. 6 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/resources/mapper/manager/EnvironmentDataDao.xml

+ 5 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/pom.xml

@@ -20,6 +20,11 @@
             <artifactId>commons-lang</artifactId>
             <version>2.6</version>
         </dependency>
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+            <version>5.7.5</version>
+        </dependency>
     </dependencies>
 
 

+ 84 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/BaseFarmInfoController.java

@@ -0,0 +1,84 @@
+ package com.huimv.manager.controller;
+
+import java.util.Arrays;
+import java.util.Map;
+
+import com.huimv.manager.entity.BaseFarmInfoEntity;
+import com.huimv.manager.result.R;
+import com.huimv.manager.service.BaseFarmInfoService;
+import com.huimv.manager.utils.PageUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+
+
+
+/**
+ * 
+ *
+ * @author yinhao
+ * @version ${version}
+ * @date 2021-07-27 14:50:11
+ */
+@RestController
+@RequestMapping("management/basefarminfo")
+public class BaseFarmInfoController {
+    @Autowired
+    private BaseFarmInfoService baseFarmInfoService;
+
+    /**
+     * 列表
+     */
+    @RequestMapping("/list")
+    public R list(@RequestParam Map<String, Object> params){
+        PageUtils page = baseFarmInfoService.queryPage(params);
+
+        return R.ok().put("page", page);
+    }
+
+
+    /**
+     * 信息
+     */
+    @RequestMapping("/info/{id}")
+    public R info(@PathVariable("id") Integer id){
+		BaseFarmInfoEntity baseFarmInfo = baseFarmInfoService.getById(id);
+
+        return R.ok().put("baseFarmInfo", baseFarmInfo);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    public R save(@RequestBody BaseFarmInfoEntity baseFarmInfo){
+		baseFarmInfoService.save(baseFarmInfo);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    public R update(@RequestBody BaseFarmInfoEntity baseFarmInfo){
+		baseFarmInfoService.updateById(baseFarmInfo);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    public R delete(@RequestBody Integer[] ids){
+		baseFarmInfoService.removeByIds(Arrays.asList(ids));
+
+        return R.ok();
+    }
+
+}

+ 30 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/CollectorRegisterController.java

@@ -1,8 +1,13 @@
  package com.huimv.manager.controller;
 
 import java.util.Arrays;
+import java.util.List;
 import java.util.Map;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.huimv.manager.entity.EartagDataEntity;
+import com.huimv.manager.result.RRException;
+import com.huimv.manager.service.EartagDataService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -25,6 +30,8 @@ import com.huimv.manager.utils.PageUtils;
 public class CollectorRegisterController {
     @Autowired
     private CollectorRegisterService collectorRegisterService;
+    @Autowired
+    private EartagDataService eartagDataService;
 
     /**
      * 列表
@@ -37,6 +44,8 @@ public class CollectorRegisterController {
     }
 
 
+
+
     /**
      * 信息
      */
@@ -72,9 +81,30 @@ public class CollectorRegisterController {
      */
     @RequestMapping("/delete")
     public R delete(@RequestBody Integer[] ids){
+
+        for (Integer id : ids) {
+            CollectorRegisterEntity  collectorRegisterEntity= collectorRegisterService.getById(id);
+            String deviceCode = collectorRegisterEntity.getDeviceCode();
+            int count = eartagDataService.count(Wrappers.<EartagDataEntity>lambdaQuery().eq(EartagDataEntity::getDeviceCode, deviceCode));
+            if (count >0){
+                throw new RRException("删除失败,编号为"+deviceCode+"的设备有尚未清理的耳标");
+            }
+        }
 		collectorRegisterService.removeByIds(Arrays.asList(ids));
 
         return R.ok();
     }
 
+    /**
+     * 统计设备状态
+     */
+    @RequestMapping("/countState")
+    public R countState(@RequestParam Map<String, Object> params){
+        Map map  = collectorRegisterService.countState(params);
+
+        return R.ok().put("data", map);
+    }
+
+
+
 }

+ 24 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/EartagDataController.java

@@ -1,9 +1,11 @@
  package com.huimv.manager.controller;
 
 import java.util.Arrays;
+import java.util.List;
 import java.util.Map;
 
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.web.bind.annotation.*;
 
 import com.huimv.manager.entity.EartagDataEntity;
@@ -78,4 +80,26 @@ public class EartagDataController {
         return R.ok();
     }
 
+    /**
+     * 查询每小时的上传量
+     */
+    @RequestMapping("/countByTime")
+    public R countByTime(@RequestParam Map<String, Object> params){
+       List list =  eartagDataService.countByTime(params);
+
+        return R.ok().put("data",list);
+    }
+
+    /*
+    * 获取每日数据统计
+    */
+//    @Scheduled(cron = "0 0 0/1 * * ? ")
+    @RequestMapping("/test")
+    private void updateDailyData(){
+        eartagDataService.updateDailyData();
+    }
+
+
+
+
 }

+ 85 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/EartagOffineController.java

@@ -0,0 +1,85 @@
+ package com.huimv.manager.controller;
+
+import java.util.Arrays;
+import java.util.Map;
+
+import com.huimv.manager.entity.EartagOffineEntity;
+import com.huimv.manager.result.R;
+import com.huimv.manager.service.EartagOffineService;
+import com.huimv.manager.utils.PageUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+
+
+
+
+/**
+ * 
+ *
+ * @author yinhao
+ * @version ${version}
+ * @date 2021-07-27 14:50:11
+ */
+@RestController
+@RequestMapping("management/eartagoffine")
+public class EartagOffineController {
+    @Autowired
+    private EartagOffineService eartagOffineService;
+
+    /**
+     * 列表
+     */
+    @RequestMapping("/list")
+    public R list(@RequestParam Map<String, Object> params){
+        PageUtils page = eartagOffineService.queryPage(params);
+
+        return R.ok().put("page", page);
+    }
+
+
+    /**
+     * 信息
+     */
+    @RequestMapping("/info/{id}")
+    public R info(@PathVariable("id") Integer id){
+		EartagOffineEntity eartagOffine = eartagOffineService.getById(id);
+
+        return R.ok().put("eartagOffine", eartagOffine);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    public R save(@RequestBody EartagOffineEntity eartagOffine){
+		eartagOffineService.save(eartagOffine);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    public R update(@RequestBody EartagOffineEntity eartagOffine){
+		eartagOffineService.updateById(eartagOffine);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    public R delete(@RequestBody Integer[] ids){
+		eartagOffineService.removeByIds(Arrays.asList(ids));
+
+        return R.ok();
+    }
+
+}

+ 7 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/EnvironmentDataController.java

@@ -1,6 +1,7 @@
  package com.huimv.manager.controller;
 
 import java.util.Arrays;
+import java.util.List;
 import java.util.Map;
 
 import org.springframework.beans.factory.annotation.Autowired;
@@ -37,6 +38,12 @@ public class EnvironmentDataController {
         return R.ok().put("page", page);
     }
 
+    @RequestMapping("/countEnvironmentTemperature")
+    public R findAll(@RequestParam Map<String, Object> params){
+        List list = environmentDataService.countEnvironmentTemperature(params);
+
+        return R.ok().put("page", list);
+    }
 
     /**
      * 信息

+ 56 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/BaseFarmInfoEntity.java

@@ -0,0 +1,56 @@
+package com.huimv.manager.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 
+ * 
+ * @author yinhao
+ * @version ${version}
+ * @date 2021-07-27 14:50:11
+ */
+@Data
+@TableName("base_farm_info")
+public class BaseFarmInfoEntity implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 主键
+	 */
+	@TableId
+	private Integer id;
+	/**
+	 * 牧场编码
+	 */
+	private String farmCode;
+	/**
+	 * 牧场名称
+	 */
+	private String farmName;
+	/**
+	 * 联系人
+	 */
+	private String man;
+	/**
+	 * 联系电话
+	 */
+	private String phone;
+	/**
+	 * 区县   行政区划代码
+	 */
+	private String county;
+	/**
+	 * 地市   行政区划代码
+	 */
+	private String city;
+	/**
+	 * 备用
+	 */
+	private String province;
+
+}

+ 19 - 2
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/CollectorRegisterEntity.java

@@ -1,6 +1,7 @@
 package com.huimv.manager.entity;
 
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 
@@ -85,8 +86,24 @@ public class CollectorRegisterEntity implements Serializable {
     private Date lastTime;
 
     /**
-     * 状态 默认值 1  1.正常 2.异常
+     * 采集状态 默认值 1  1.正常 0.异常
      */
-    private Integer state;
+    private Integer acqStatus;
+
+    /**
+     * 网络通信状态 默认值 1  1.正常 0.异常
+     */
+    private Integer networkStatus;
+
+    /**
+     * 注销状态 默认值 1  1.正常 0.注销
+     */
+    private Integer canStatus;
+
+    /**
+     * 删除状态 默认值 1  1.正常 0.注销
+     */
+    @TableLogic(delval = "0",value = "1")
+    private Integer delStatus;
 
 }

+ 10 - 5
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/DailyTabulateDataEntity.java

@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 
 import java.io.Serializable;
-import java.sql.Date;
+import java.util.Date;
 
 /**
  * 耳标每日汇总表
@@ -42,22 +42,22 @@ public class DailyTabulateDataEntity implements Serializable {
     /**
      * 日龄占比(250-1000)
      */
-    private Double ratio1;
+    private String ratio1;
 
     /**
      * 日龄(1000-1700)
      */
-    private Double ratio2;
+    private String ratio2;
 
     /**
      * 日龄(1700-2400)
      */
-    private Double ratio3;
+    private String ratio3;
 
     /**
      * 日龄(>2400)
      */
-    private Double ratio4;
+    private String ratio4;
 
     /**
      * 配怀存栏
@@ -79,4 +79,9 @@ public class DailyTabulateDataEntity implements Serializable {
      */
     private Integer stock4;
 
+    /*
+    * 牧场编号
+    */
+    private String farmCode;
+
 }

+ 4 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/EartagDataEntity.java

@@ -114,4 +114,8 @@ public class EartagDataEntity implements Serializable {
      */
     private String tail;
 
+    private String farmCode;
+
+    private Integer stage;
+
 }

+ 48 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/EartagOffineEntity.java

@@ -0,0 +1,48 @@
+package com.huimv.manager.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 
+ * 
+ * @author yinhao
+ * @version ${version}
+ * @date 2021-07-27 14:50:11
+ */
+@Data
+@TableName("eartag_offine")
+public class EartagOffineEntity implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 
+	 */
+	@TableId
+	private Integer id;
+	/**
+	 * 
+	 */
+	private String eartagNo;
+	/**
+	 * 
+	 */
+	private Date registerDate;
+	/**
+	 * 
+	 */
+	private String deviceCode;
+	/**
+	 * 
+	 */
+	private String farmCode;
+	/**
+	 * 
+	 */
+	private Date lastDate;
+
+}

+ 22 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/EnvironmentDataEntity.java

@@ -2,9 +2,11 @@ package com.huimv.manager.entity;
 
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * 环境数据表
@@ -31,4 +33,24 @@ public class EnvironmentDataEntity implements Serializable {
      */
     private Integer envTemp;
 
+
+
+    /**
+     * 同步时间
+     */
+    private String time;
+
+    /**
+     * 采集时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8")
+    private Date acqDate;
+
+    /**
+     * 牧场编码
+     */
+    private String farmCode;
+
+
+
 }

+ 19 - 2
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/vo/CollectorRegisterVo.java

@@ -1,5 +1,6 @@
 package com.huimv.manager.entity.vo;
 
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
@@ -80,7 +81,23 @@ public class CollectorRegisterVo implements Serializable {
     private Date lastTime;
 
     /**
-     * 状态 默认值 1  1.正常 2.异常
+     * 采集状态 默认值 1  1.正常 0.异常
      */
-    private Integer state;
+    private Integer acqStatus;
+
+    /**
+     * 网络通信状态 默认值 1  1.正常 0.异常
+     */
+    private Integer networkStatus;
+
+    /**
+     * 注销状态 默认值 1  1.正常 0.注销
+     */
+    private Integer canStatus;
+
+    /**
+     * 删除状态 默认值 1  1.正常 0.注销
+     */
+    @TableLogic(delval = "0",value = "1")
+    private Integer delStatus;
 }

+ 22 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/vo/EartagDataCountVo.java

@@ -0,0 +1,22 @@
+package com.huimv.manager.entity.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.manager.entity.vo
+ * @Description : TODO
+ * @Author : yuxuexuan
+ * @Create : 2021/7/26 0026 14:28
+ **/
+@Data
+public class EartagDataCountVo {
+
+    private int uploadCount;
+
+
+    private String countTime;
+}

+ 22 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/vo/EnvironmentDataVo.java

@@ -0,0 +1,22 @@
+package com.huimv.manager.entity.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.manager.entity.vo
+ * @Description : TODO
+ * @Author : yuxuexuan
+ * @Create : 2021/7/26 0026 14:28
+ **/
+@Data
+public class EnvironmentDataVo {
+
+    private int envTemp;
+
+    //日期:  MM-dd HH
+    private String acq;
+}

+ 17 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/mapper/BaseFarmInfoDao.java

@@ -0,0 +1,17 @@
+package com.huimv.manager.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.manager.entity.BaseFarmInfoEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 
+ * 
+ * @author yinhao
+ * @version ${version}
+ * @date 2021-07-27 14:50:11
+ */
+@Mapper
+public interface BaseFarmInfoDao extends BaseMapper<BaseFarmInfoEntity> {
+	
+}

+ 2 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/mapper/DailyTabulateDataDao.java

@@ -3,6 +3,7 @@ package com.huimv.manager.mapper;
 import com.huimv.manager.entity.DailyTabulateDataEntity;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
 
 /**
  * 耳标每日汇总表
@@ -12,6 +13,7 @@ import org.apache.ibatis.annotations.Mapper;
  * @date 2021-07-24 16:29:33
  */
 @Mapper
+@Repository
 public interface DailyTabulateDataDao extends BaseMapper<DailyTabulateDataEntity> {
 	
 }

+ 10 - 1
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/mapper/EartagDataDao.java

@@ -1,8 +1,15 @@
 package com.huimv.manager.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.huimv.manager.entity.EartagDataEntity;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.manager.entity.vo.EartagDataCountVo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * 
@@ -13,5 +20,7 @@ import org.apache.ibatis.annotations.Mapper;
  */
 @Mapper
 public interface EartagDataDao extends BaseMapper<EartagDataEntity> {
-	
+
+    List<EartagDataCountVo> countByTime(@Param(Constants.WRAPPER) QueryWrapper<EartagDataEntity> wrapper);
+
 }

+ 17 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/mapper/EartagOffineDao.java

@@ -0,0 +1,17 @@
+package com.huimv.manager.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.manager.entity.EartagOffineEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 
+ * 
+ * @author yinhao
+ * @version ${version}
+ * @date 2021-07-27 14:50:11
+ */
+@Mapper
+public interface EartagOffineDao extends BaseMapper<EartagOffineEntity> {
+	
+}

+ 9 - 1
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/mapper/EnvironmentDataDao.java

@@ -1,8 +1,15 @@
 package com.huimv.manager.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.huimv.manager.entity.EnvironmentDataEntity;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.manager.entity.vo.EnvironmentDataVo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * 环境数据表
@@ -13,5 +20,6 @@ import org.apache.ibatis.annotations.Mapper;
  */
 @Mapper
 public interface EnvironmentDataDao extends BaseMapper<EnvironmentDataEntity> {
-	
+
+    List<EnvironmentDataVo> countEnvironmentTemperature(@Param(Constants.WRAPPER) QueryWrapper<EnvironmentDataEntity> wrapper);
 }

+ 20 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/BaseFarmInfoService.java

@@ -0,0 +1,20 @@
+package com.huimv.manager.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.manager.entity.BaseFarmInfoEntity;
+import com.huimv.manager.utils.PageUtils;
+
+import java.util.Map;
+
+/**
+ * 
+ *
+ * @author yinhao
+ * @version ${version}
+ * @date 2021-07-27 14:50:11
+ */
+public interface BaseFarmInfoService extends IService<BaseFarmInfoEntity> {
+
+    PageUtils queryPage(Map<String, Object> params);
+}
+

+ 3 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/CollectorRegisterService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.huimv.manager.utils.PageUtils;
 import com.huimv.manager.entity.CollectorRegisterEntity;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -16,5 +17,7 @@ import java.util.Map;
 public interface CollectorRegisterService extends IService<CollectorRegisterEntity> {
 
     PageUtils queryPage(Map<String, Object> params);
+
+    Map countState(Map<String, Object> params);
 }
 

+ 6 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/EartagDataService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.huimv.manager.utils.PageUtils;
 import com.huimv.manager.entity.EartagDataEntity;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -16,5 +17,10 @@ import java.util.Map;
 public interface EartagDataService extends IService<EartagDataEntity> {
 
     PageUtils queryPage(Map<String, Object> params);
+
+    List countByTime(Map<String, Object> params);
+
+
+    void updateDailyData();
 }
 

+ 20 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/EartagOffineService.java

@@ -0,0 +1,20 @@
+package com.huimv.manager.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.manager.entity.EartagOffineEntity;
+import com.huimv.manager.utils.PageUtils;
+
+import java.util.Map;
+
+/**
+ * 
+ *
+ * @author yinhao
+ * @version ${version}
+ * @date 2021-07-27 14:50:11
+ */
+public interface EartagOffineService extends IService<EartagOffineEntity> {
+
+    PageUtils queryPage(Map<String, Object> params);
+}
+

+ 3 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/EnvironmentDataService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.huimv.manager.utils.PageUtils;
 import com.huimv.manager.entity.EnvironmentDataEntity;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -16,5 +17,7 @@ import java.util.Map;
 public interface EnvironmentDataService extends IService<EnvironmentDataEntity> {
 
     PageUtils queryPage(Map<String, Object> params);
+
+    List countEnvironmentTemperature(Map<String, Object> params);
 }
 

+ 35 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/BaseFarmInfoServiceImpl.java

@@ -0,0 +1,35 @@
+package com.huimv.manager.service.impl;
+
+import com.huimv.manager.entity.BaseFarmInfoEntity;
+import com.huimv.manager.mapper.BaseFarmInfoDao;
+import com.huimv.manager.service.BaseFarmInfoService;
+import com.huimv.manager.utils.PageUtils;
+import com.huimv.manager.utils.Query;
+import org.springframework.stereotype.Service;
+import java.util.Map;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+
+/**
+ * 
+ *
+ * @author yinhao
+ * @version ${version}
+ * @date 2021-07-27 14:50:11
+ */
+@Service("baseFarmInfoService")
+public class BaseFarmInfoServiceImpl extends ServiceImpl<BaseFarmInfoDao, BaseFarmInfoEntity> implements BaseFarmInfoService {
+
+    @Override
+    public PageUtils queryPage(Map<String, Object> params) {
+        IPage<BaseFarmInfoEntity> page = this.page(
+                new Query<BaseFarmInfoEntity>().getPage(params),
+                new QueryWrapper<BaseFarmInfoEntity>()
+        );
+
+        return new PageUtils(page);
+    }
+
+}

+ 40 - 8
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/CollectorRegisterServiceImpl.java

@@ -1,10 +1,15 @@
 package com.huimv.manager.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.huimv.manager.entity.vo.CollectorRegisterVo;
 import com.huimv.manager.mapper.CollectorRegisterDao;
+import com.huimv.manager.result.RRException;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -30,29 +35,56 @@ public class CollectorRegisterServiceImpl extends ServiceImpl<CollectorRegisterD
     @Override
     public PageUtils queryPage(Map<String, Object> params) {
         QueryWrapper<CollectorRegisterEntity> wrapper = new QueryWrapper<>();
+        String farmCode = (String)params.get("farmCode");
+//        if (StringUtils.isBlank(farmCode)){
+//            throw new RRException("牧场未选择");
+//        }
         String registerStartTime = (String)params.get("registerStartTime");
         String registerEndTime = (String)params.get("registerEndTime");
         String deviceCode = (String)params.get("deviceCode");
         String countyName = (String)params.get("countyName");
         String farmName = (String)params.get("farmName");
-        String state = (String)params.get("state");
-
-        wrapper.like(StringUtils.isNotBlank(deviceCode),"device_code",deviceCode)
-        .or().like(StringUtils.isNotBlank(countyName),"county_name",countyName)
-        .or().like(StringUtils.isNotBlank(farmName),"farm_name",farmName);
+        String state = (String)params.get("acqStatus");
 
+        wrapper.like(StringUtils.isNotBlank(deviceCode),"register.device_code",deviceCode)
+        .or().like(StringUtils.isNotBlank(countyName),"register.county_name",countyName)
+        .or().like(StringUtils.isNotBlank(farmName),"register.farm_name",farmName);
+        wrapper.eq(StringUtils.isNotBlank(farmCode),"register.farm_code",farmCode);
         if (StringUtils.isNotBlank(state)){
             wrapper.eq("state",Integer.parseInt(state));
         }
-        wrapper.le(StringUtils.isNotBlank(registerEndTime),"register_time",registerEndTime);
-        wrapper.ge(StringUtils.isNotBlank(registerEndTime),"register_time",registerStartTime);
+        wrapper.le(StringUtils.isNotBlank(registerEndTime),"rregister.egister_time",registerEndTime);
+        wrapper.ge(StringUtils.isNotBlank(registerEndTime),"register.register_time",registerStartTime);
 
-        IPage<CollectorRegisterVo> page = baseMapper.page(new Query<>().getPage(params),wrapper);
+        wrapper.apply("register.del_status  = 1");
 
+        String sortord = (String)params.get("sortord");
+        wrapper.orderByDesc(sortord);
+        IPage<CollectorRegisterVo> page = baseMapper.page(new Query<>().getPage(params),wrapper);
 
 
 
         return new PageUtils(page);
     }
 
+    @Override
+    public Map countState(Map<String, Object> params) {
+
+        String farmCode = (String)params.get("farmCode");
+        if (StringUtils.isBlank(farmCode)){
+            throw new RRException("牧场未选择");
+        }
+
+        QueryWrapper<CollectorRegisterEntity> wrapper = new QueryWrapper<>();
+        wrapper.eq("farm_code",farmCode);
+
+        List<CollectorRegisterEntity> collectorRegisterEntities = baseMapper.selectList(wrapper);
+        Map map = new HashMap();
+        map.put("allCount",collectorRegisterEntities.size());
+        map.put("normalStatus",collectorRegisterEntities.stream().filter(o->o.getNetworkStatus().equals(1) && o.getAcqStatus().equals(1) && o.getCanStatus().equals(1)).count());
+        map.put( "abnormalStatus",collectorRegisterEntities.stream().filter(o->o.getAcqStatus().equals(0)).count());
+        map.put("cancelStatus",collectorRegisterEntities.stream().filter(o->o.getCanStatus().equals(0)).count());
+
+        return map;
+    }
 }

+ 32 - 1
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/DailyTabulateDataServiceImpl.java

@@ -1,6 +1,8 @@
 package com.huimv.manager.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.huimv.manager.mapper.DailyTabulateDataDao;
+import com.huimv.manager.result.RRException;
 import org.springframework.stereotype.Service;
 import java.util.Map;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -24,9 +26,38 @@ public class DailyTabulateDataServiceImpl extends ServiceImpl<DailyTabulateDataD
 
     @Override
     public PageUtils queryPage(Map<String, Object> params) {
+       String farmCode =(String) params.get("farmCode");
+       if (StringUtils.isBlank(farmCode)){
+           throw new RRException("牧场未选择");
+       }
+       String startTime =(String) params.get("startTime");
+       String endTime =(String) params.get("endTime");
+       String minStockTotal =(String) params.get("minStockTotal");
+       String maxStockTotal =(String) params.get("maxStockTotal");
+       String minStockNew =(String) params.get("minStockNew");
+       String maxStockNew =(String) params.get("maxStockNew");
+       String minOfflineNo =(String) params.get("minOfflineNo");
+       String maxOfflineNo =(String) params.get("maxOfflineNo");
+
+        QueryWrapper<DailyTabulateDataEntity> wrapper = new QueryWrapper<>();
+        wrapper.eq("farm_code",farmCode);
+
+        wrapper.ge(StringUtils.isNotBlank(startTime),"statistic_date",startTime);
+        wrapper.le(StringUtils.isNotBlank(startTime),"statistic_date",endTime);
+
+        wrapper.ge(StringUtils.isNotBlank(minStockTotal),"stock_total",minStockTotal);
+        wrapper.le(StringUtils.isNotBlank(maxStockTotal),"stock_total",maxStockTotal);
+
+        wrapper.ge(StringUtils.isNotBlank(minStockNew),"stock_new",minStockNew);
+        wrapper.le(StringUtils.isNotBlank(maxStockNew),"stock_new",maxStockNew);
+
+        wrapper.ge(StringUtils.isNotBlank(minOfflineNo),"offline_no",minOfflineNo);
+        wrapper.le(StringUtils.isNotBlank(maxOfflineNo),"offline_no",maxOfflineNo);
+
+
         IPage<DailyTabulateDataEntity> page = this.page(
                 new Query<DailyTabulateDataEntity>().getPage(params),
-                new QueryWrapper<DailyTabulateDataEntity>()
+                wrapper
         );
 
         return new PageUtils(page);

+ 217 - 5
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/EartagDataServiceImpl.java

@@ -1,8 +1,24 @@
 package com.huimv.manager.service.impl;
 
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.huimv.manager.entity.BaseFarmInfoEntity;
+import com.huimv.manager.entity.DailyTabulateDataEntity;
+import com.huimv.manager.entity.EartagOffineEntity;
+import com.huimv.manager.entity.vo.EartagDataCountVo;
+import com.huimv.manager.mapper.BaseFarmInfoDao;
+import com.huimv.manager.mapper.DailyTabulateDataDao;
 import com.huimv.manager.mapper.EartagDataDao;
+import com.huimv.manager.mapper.EartagOffineDao;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import java.util.Map;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.*;
+
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -24,12 +40,208 @@ public class EartagDataServiceImpl extends ServiceImpl<EartagDataDao, EartagData
 
     @Override
     public PageUtils queryPage(Map<String, Object> params) {
-        IPage<EartagDataEntity> page = this.page(
-                new Query<EartagDataEntity>().getPage(params),
-                new QueryWrapper<EartagDataEntity>()
-        );
 
+
+        String time = (String)params.get("time");//采集时间
+        String farmName = (String)params.get("farmName");//牧场名称
+        String eartagNo = (String)params.get("eartagNo");//耳标号
+        String dayAge = (String)params.get("dayAge");//耳标号
+        String earTemp = (String)params.get("earTemp");//耳根温度
+        String envTemp = (String)params.get("envTemp");//环境温度
+        String bat = (String)params.get("bat");//电量
+        String rssi = (String)params.get("rssi");//信号强度
+        String pigpenName = (String)params.get("pigpenName");
+        String deviceCode = (String)params.get("deviceCode");
+
+        //TODO 多条件查询
+        QueryWrapper<EartagDataEntity> wrapper = new QueryWrapper<>();
+
+
+
+
+        IPage<EartagDataEntity> page = this.page(new Query<EartagDataEntity>().getPage(params),wrapper);
         return new PageUtils(page);
     }
 
+    @Override
+    public List countByTime(Map<String, Object> params) {
+        String  startTime = (String)params.get("startTime");
+        String  endTime = (String) params.get("endTime");
+        String deviceCode = (String)params.get("deviceCode");
+
+
+        QueryWrapper<EartagDataEntity> wrapper = new QueryWrapper<>();
+        wrapper.eq("device_code",deviceCode);
+        wrapper.ge(StringUtils.isNotBlank(startTime),"time",startTime);
+        wrapper.le(StringUtils.isNotBlank(endTime),"time",endTime);
+        wrapper.groupBy("count_time");
+        List<EartagDataCountVo> list = baseMapper.countByTime(wrapper);
+
+        return list;
+    }
+
+
+    @Autowired
+    private DailyTabulateDataDao dailyTabulateDataDao;
+
+    @Autowired
+    private EartagOffineDao eartagOffineDao;
+
+    @Autowired
+    private BaseFarmInfoDao baseFarmInfoDao;
+
+    @Override
+    public void updateDailyData() {
+        QueryWrapper<BaseFarmInfoEntity> baseFarmInfoWrapper = new QueryWrapper<>();
+        List<BaseFarmInfoEntity> baseFarmInfoEntities = baseFarmInfoDao.selectList(baseFarmInfoWrapper);
+        for (BaseFarmInfoEntity baseFarmInfoEntity : baseFarmInfoEntities) {
+            String farmCode = baseFarmInfoEntity.getFarmCode();
+            //查询当日牧场下耳标数据
+            Date now = new Date();
+            QueryWrapper<EartagDataEntity> wrapper = new QueryWrapper<>();
+            wrapper.eq("farm_code",farmCode);
+            wrapper.ge("time", DateUtil.beginOfDay(now));
+            wrapper.groupBy("eartag_no");
+            List<EartagDataEntity> eartagDataEntities = baseMapper.selectList(wrapper);
+
+            //过滤
+            Set<String>  nowSet = new HashSet();
+            for (EartagDataEntity eartagDataEntity : eartagDataEntities) {
+                nowSet.add(eartagDataEntity.getEartagNo());
+            }
+
+            //查询昨日牧场下耳标数据
+            wrapper.clear();
+            wrapper.eq("farm_code",farmCode);
+            wrapper.le("time", DateUtil.beginOfDay(now));
+            wrapper.ge("time", DateUtil.offsetDay(DateUtil.beginOfDay(now),-1));
+            wrapper.groupBy("eartag_no");
+            List<EartagDataEntity> yesterdayEartagDataEntities = baseMapper.selectList(wrapper);
+
+            //过滤
+            Set<String> yesterdaySet = new HashSet();
+            for (EartagDataEntity eartagDataEntity : yesterdayEartagDataEntities) {
+                yesterdaySet.add(eartagDataEntity.getEartagNo());
+            }
+            Set<String>  set = ObjectUtil.cloneByStream(nowSet);
+
+            //当日母猪总存栏
+            int allSow = nowSet.size();
+
+            //得到新增
+            nowSet.removeAll(yesterdaySet);
+            int newSow = nowSet.size();
+            //得到离线
+            yesterdaySet.removeAll(set);
+            int offSow = yesterdaySet.size();
+
+            //添加离线表
+            for (String eartagNo : yesterdaySet) {
+                wrapper.clear();
+                wrapper.eq("eartag_no",eartagNo);
+                wrapper.eq("farm_code",farmCode);
+                wrapper.orderByDesc("time");
+                EartagDataEntity dataEntity = baseMapper.selectList(wrapper).get(0);
+
+                EartagOffineEntity eartagOffineEntity = new EartagOffineEntity();
+                eartagOffineEntity.setEartagNo(eartagNo);
+                eartagOffineEntity.setFarmCode(farmCode);
+                eartagOffineEntity.setDeviceCode(dataEntity.getDeviceCode());
+                eartagOffineEntity.setLastDate(dataEntity.getTime());
+                eartagOffineEntity.setRegisterDate(now);
+                eartagOffineDao.insert(eartagOffineEntity);
+            }
+
+
+            //计算日龄
+            Integer totalRatio = eartagDataEntities.size();
+            Integer ratio1 = 0 ,ratio2 = 0,ratio3= 0,ratio4 = 0;
+            Integer stock1 = 0 ,stock2 = 0,stock3= 0,stock4 = 0;
+            for (EartagDataEntity eartagDataEntity : eartagDataEntities) {
+                Integer dayAge = eartagDataEntity.getDayAge2();
+                if (dayAge>250 &&  dayAge < 1000 ){
+                    ratio1++;
+                }
+
+                if (dayAge >=1000 &&  dayAge < 1700 ){
+                    ratio2++;
+                }
+
+                if (dayAge >= 1700 &&  dayAge < 2400 ){
+                    ratio3++;
+                }
+
+                if (dayAge >= 2400 ){
+                    ratio4++;
+                }
+
+                Integer stage = eartagDataEntity.getStage();
+                if (stage== 1){
+                    stock1++;
+                }
+                if (stage== 2){
+                    stock2++;
+                }
+                if (stage== 3){
+                    stock3++;
+                }
+                if (stage== 4){
+                    stock4++;
+                }
+
+            }
+            String ratioStr1 = CalculateUtil(BigDecimal.valueOf(ratio1), BigDecimal.valueOf(totalRatio));
+            String ratioStr2 = CalculateUtil(BigDecimal.valueOf(ratio2),BigDecimal.valueOf(totalRatio));
+            String ratioStr3 = CalculateUtil(BigDecimal.valueOf(ratio3),BigDecimal.valueOf(totalRatio));
+            String ratioStr4 = CalculateUtil(BigDecimal.valueOf(ratio4),BigDecimal.valueOf(totalRatio));
+
+
+
+
+            //新数据
+            QueryWrapper<DailyTabulateDataEntity> dailyWrapper = new QueryWrapper<>();
+            dailyWrapper.eq("statistic_date",DateUtil.beginOfDay(now));
+            dailyWrapper.eq("farm_code",farmCode);
+            DailyTabulateDataEntity dailyTabulateDataEntity = dailyTabulateDataDao.selectOne(dailyWrapper);
+            if (dailyTabulateDataEntity == null){
+                dailyTabulateDataEntity = new DailyTabulateDataEntity();
+            }
+            dailyTabulateDataEntity.setFarmCode(farmCode);
+            dailyTabulateDataEntity.setStockTotal(allSow);
+            dailyTabulateDataEntity.setStatisticDate(now);
+            dailyTabulateDataEntity.setStockNew(newSow);
+            dailyTabulateDataEntity.setOfflineNo(offSow);
+            dailyTabulateDataEntity.setRatio1(ratio1 +" ("+ratioStr1+")");
+            dailyTabulateDataEntity.setRatio2(ratio2 +" ("+ratioStr2+")");
+            dailyTabulateDataEntity.setRatio3(ratio3 +" ("+ratioStr3+")");
+            dailyTabulateDataEntity.setRatio4(ratio4 +" ("+ratioStr4+")");
+            dailyTabulateDataEntity.setStock1(stock1);
+            dailyTabulateDataEntity.setStock2(stock2);
+            dailyTabulateDataEntity.setStock3(stock3);
+            dailyTabulateDataEntity.setStock4(stock4);
+
+
+
+            if (dailyTabulateDataEntity.getId()==null){
+                dailyTabulateDataDao.insert(dailyTabulateDataEntity);
+            }else {
+                dailyTabulateDataDao.updateById(dailyTabulateDataEntity);
+            }
+        }
+
+
+
+
+
+    }
+
+    //计算百分比
+    public  String CalculateUtil(BigDecimal a, BigDecimal b){
+        String percent =
+                b == null ? "-" :
+                        b.compareTo(new BigDecimal(0)) == 0 ? "-":
+                                a == null ? "0.00%" :
+                                        a.multiply(new BigDecimal(100)).divide(b,2,BigDecimal.ROUND_HALF_UP) + "%";
+        return percent;
+    }
 }

+ 34 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/EartagOffineServiceImpl.java

@@ -0,0 +1,34 @@
+package com.huimv.manager.service.impl;
+
+import com.huimv.manager.entity.EartagOffineEntity;
+import com.huimv.manager.mapper.EartagOffineDao;
+import com.huimv.manager.service.EartagOffineService;
+import com.huimv.manager.utils.PageUtils;
+import com.huimv.manager.utils.Query;
+import org.springframework.stereotype.Service;
+import java.util.Map;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * 
+ *
+ * @author yinhao
+ * @version ${version}
+ * @date 2021-07-27 14:50:11
+ */
+@Service("eartagOffineService")
+public class EartagOffineServiceImpl extends ServiceImpl<EartagOffineDao, EartagOffineEntity> implements EartagOffineService {
+
+    @Override
+    public PageUtils queryPage(Map<String, Object> params) {
+        IPage<EartagOffineEntity> page = this.page(
+                new Query<EartagOffineEntity>().getPage(params),
+                new QueryWrapper<EartagOffineEntity>()
+        );
+
+        return new PageUtils(page);
+    }
+
+}

+ 31 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/EnvironmentDataServiceImpl.java

@@ -1,7 +1,14 @@
 package com.huimv.manager.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.huimv.manager.entity.vo.EnvironmentDataVo;
 import com.huimv.manager.mapper.EnvironmentDataDao;
+import com.huimv.manager.result.RRException;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
 import java.util.Map;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -32,4 +39,28 @@ public class EnvironmentDataServiceImpl extends ServiceImpl<EnvironmentDataDao,
         return new PageUtils(page);
     }
 
+    @Override
+    public List countEnvironmentTemperature(Map<String, Object> params) {
+//        String farmCode = (String) params.get("farmCode");
+//        if (org.apache.commons.lang.StringUtils.isBlank(farmCode)){
+//            throw new RRException("牧场未选择");
+//        }
+        String startTime = (String) params.get("startTime");
+        String endTime = (String) params.get("endTime");
+        String deviceCode = (String) params.get("deviceCode");
+
+        QueryWrapper<EnvironmentDataEntity> wrapper = new QueryWrapper<>();
+//        wrapper.eq(StringUtils.isNotBlank(farmCode),"farm_code",farmCode);
+        wrapper.eq("device_code",deviceCode);
+        wrapper.ge(StringUtils.isNotBlank(startTime),"acq_date",startTime);
+        wrapper.le(StringUtils.isNotBlank(endTime),"acq_date",endTime);
+
+
+       wrapper.groupBy("acq");
+        List<EnvironmentDataEntity> environmentDataEntities = baseMapper.selectList(wrapper);
+        List<EnvironmentDataVo> list = baseMapper.countEnvironmentTemperature(wrapper);
+
+
+        return list;
+    }
 }

+ 19 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/resources/mapper/manager/BaseFarmInfoDao.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.huimv.manager.mapper.BaseFarmInfoDao">
+
+	<!-- 可根据自己的需求,是否要使用 -->
+    <resultMap type="com.huimv.manager.entity.BaseFarmInfoEntity" id="baseFarmInfoMap">
+        <result property="id" column="id"/>
+        <result property="farmCode" column="farm_code"/>
+        <result property="farmName" column="farm_name"/>
+        <result property="man" column="man"/>
+        <result property="phone" column="phone"/>
+        <result property="county" column="county"/>
+        <result property="city" column="city"/>
+        <result property="province" column="province"/>
+    </resultMap>
+
+
+</mapper>

+ 10 - 4
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/resources/mapper/manager/CollectorRegisterDao.xml

@@ -19,7 +19,10 @@
         <result property="port" column="port"/>
         <result property="registerTime" column="register_time"/>
         <result property="lastTime" column="last_time"/>
-        <result property="state" column="state"/>
+        <result property="networkStatus" column="network_status"/>
+        <result property="acqStatus" column="acq_status"/>
+        <result property="canStatus" column="can_status"/>
+        <result property="delStatus" column="del_status"/>
     </resultMap>
     <select id="page" resultType="com.huimv.manager.entity.vo.CollectorRegisterVo">
 
@@ -40,10 +43,13 @@
             register.port,
             register.register_time,
             register.last_time,
-            register.state
+            register.network_status,
+            register.acq_status,
+            register.can_status,
+            register.del_status
         from collector_register register
-        join base_pigpen pigpen on pigpen.id = register.pigpen_id and  pigpen.type = 1
-        join base_pigpen unit on unit.id = register.unit_id and unit.type = 2
+        join base_pigpen pigpen on pigpen.id = register.pigpen_id
+        join base_pigpen unit on unit.id = register.unit_id
       ${ew.customSqlSegment}
     </select>
 

+ 7 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/resources/mapper/manager/EartagDataDao.xml

@@ -26,6 +26,13 @@
         <result property="chk" column="chk"/>
         <result property="tail" column="tail"/>
     </resultMap>
+    <select id="countByTime" resultType="com.huimv.manager.entity.vo.EartagDataCountVo">
+         SELECT
+          DATE_FORMAT(`time`,"%y-%m-%d %H") count_time,COUNT(*) upload_count
+	        FROM `eartag_data`
+	        ${ew.customSqlSegment}
+    </select>
+
 
 
 </mapper>

+ 17 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/resources/mapper/manager/EartagOffineDao.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.huimv.manager.mapper.EartagOffineDao">
+
+	<!-- 可根据自己的需求,是否要使用 -->
+    <resultMap type="com.huimv.manager.entity.EartagOffineEntity" id="eartagOffineMap">
+        <result property="id" column="id"/>
+        <result property="eartagNo" column="eartag_no"/>
+        <result property="registerDate" column="register_date"/>
+        <result property="deviceCode" column="device_code"/>
+        <result property="farmCode" column="farm_code"/>
+        <result property="lastDate" column="last_date"/>
+    </resultMap>
+
+
+</mapper>

+ 6 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/resources/mapper/manager/EnvironmentDataDao.xml

@@ -9,6 +9,12 @@
         <result property="deviceCode" column="device_code"/>
         <result property="envTemp" column="env_temp"/>
     </resultMap>
+    <select id="countEnvironmentTemperature" resultType="com.huimv.manager.entity.vo.EnvironmentDataVo">
+
+        SELECT  DATE_FORMAT(acq_date,"%m-%d %H") acq , env_temp
+         FROM `environment_data`
+         ${ew.customSqlSegment}
+    </select>
 
 
 </mapper>