Browse Source

耳标数据接收处理,增加了自动绑定等功能

yang 3 years ago
parent
commit
72db135445
30 changed files with 1261 additions and 90 deletions
  1. 1 1
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/HuimvSmartEartagDataAcquisitionApplication.java
  2. 83 0
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/controller/DailyTabulateDataController.java
  3. 2 9
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/controller/EartagDataController.java
  4. 82 0
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/controller/FarmStockController.java
  5. 83 0
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/controller/SowRankTableController.java
  6. 55 0
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/controller/StockRankController.java
  7. 54 0
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/entity/BaseFarmInfoEntity.java
  8. 88 0
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/entity/DailyTabulateDataEntity.java
  9. 92 0
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/entity/FarmStockEntity.java
  10. 84 0
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/entity/SowRankTableEntity.java
  11. 19 0
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/mapper/BaseFarmInfoDao.java
  12. 19 0
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/mapper/DailyTabulateDataDao.java
  13. 20 0
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/mapper/FarmStockDao.java
  14. 17 0
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/mapper/SowRankTableDao.java
  15. 21 0
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/service/BaseFarmInfoService.java
  16. 20 0
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/service/DailyTabulateDataService.java
  17. 21 0
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/service/FarmStockService.java
  18. 1 0
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/service/MovePigpenService.java
  19. 22 0
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/service/SowRankTableService.java
  20. 36 0
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/service/impl/BaseFarmInfoServiceImpl.java
  21. 34 0
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/service/impl/DailyTabulateDataServiceImpl.java
  22. 37 0
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/service/impl/FarmStockServiceImpl.java
  23. 34 0
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/service/impl/SowRankTableServiceImpl.java
  24. 0 1
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/socket/Server.java
  25. 0 8
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/socket/ServerThread.java
  26. 28 23
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/socket/eartagrecive/service/impl/ReceivePackageSerivce.java
  27. 0 5
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/socket/eartagrecive/service/impl/SendPackageService.java
  28. 12 24
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/socket/eartagrecive/util/DateUtilsPublic.java
  29. 105 19
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/timmertask/RefreshEartagRegiest.java
  30. 191 0
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/timmertask/provideNewRankData.java

+ 1 - 1
smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/HuimvSmartEartagDataAcquisitionApplication.java

@@ -13,7 +13,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
  * @Author : ZhuoNing
  * @Author : ZhuoNing
  * @Create : 2020-12-25
  * @Create : 2020-12-25
  **/
  **/
-@EnableScheduling
+@EnableScheduling     //开启定时任务
 @SpringBootApplication
 @SpringBootApplication
 public class HuimvSmartEartagDataAcquisitionApplication {
 public class HuimvSmartEartagDataAcquisitionApplication {
     public static void main(String[] args) {
     public static void main(String[] args) {

+ 83 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/controller/DailyTabulateDataController.java

@@ -0,0 +1,83 @@
+ package com.huimv.acquisition.controller;
+
+import java.util.Arrays;
+import java.util.Map;
+
+import com.huimv.acquisition.entity.DailyTabulateDataEntity;
+import com.huimv.acquisition.result.R;
+import com.huimv.acquisition.service.DailyTabulateDataService;
+import com.huimv.acquisition.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-08-04 14:59:05
+ */
+@RestController
+@RequestMapping("management/dailytabulatedata")
+public class DailyTabulateDataController {
+    @Autowired
+    private DailyTabulateDataService dailyTabulateDataService;
+
+    /**
+     * 列表
+     */
+    @RequestMapping("/list")
+    public R list(@RequestParam Map<String, Object> params){
+        PageUtils page = dailyTabulateDataService.queryPage(params);
+
+        return R.ok().put("page", page);
+    }
+
+
+    /**
+     * 信息
+     */
+    @RequestMapping("/info/{id}")
+    public R info(@PathVariable("id") Integer id){
+		DailyTabulateDataEntity dailyTabulateData = dailyTabulateDataService.getById(id);
+
+        return R.ok().put("dailyTabulateData", dailyTabulateData);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    public R save(@RequestBody DailyTabulateDataEntity dailyTabulateData){
+		dailyTabulateDataService.save(dailyTabulateData);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    public R update(@RequestBody DailyTabulateDataEntity dailyTabulateData){
+		dailyTabulateDataService.updateById(dailyTabulateData);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    public R delete(@RequestBody Integer[] ids){
+		dailyTabulateDataService.removeByIds(Arrays.asList(ids));
+
+        return R.ok();
+    }
+
+}

+ 2 - 9
smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/controller/EartagDataController.java

@@ -1,23 +1,16 @@
 package com.huimv.acquisition.controller;
 package com.huimv.acquisition.controller;
 
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.huimv.acquisition.entity.EartagDataEntity;
 import com.huimv.acquisition.entity.EartagDataEntity;
 import com.huimv.acquisition.mapper.EartagDataDao;
 import com.huimv.acquisition.mapper.EartagDataDao;
 import com.huimv.acquisition.result.R;
 import com.huimv.acquisition.result.R;
 import com.huimv.acquisition.service.EartagDataService;
 import com.huimv.acquisition.service.EartagDataService;
-import com.huimv.acquisition.utils.Constant;
+import com.huimv.acquisition.timmertask.RefreshEartagRegiest;
 import com.huimv.acquisition.utils.PageUtils;
 import com.huimv.acquisition.utils.PageUtils;
-import com.huimv.acquisition.utils.Query;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
-import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.ParseException;
-import java.text.SimpleDateFormat;
 import java.util.Arrays;
 import java.util.Arrays;
-import java.util.Date;
 import java.util.Map;
 import java.util.Map;
 
 
 /**
 /**
@@ -59,7 +52,6 @@ public class EartagDataController {
     @RequestMapping("/list_deatils")
     @RequestMapping("/list_deatils")
     public R listDeatils(@RequestParam Map<String, Object> params) throws ParseException {
     public R listDeatils(@RequestParam Map<String, Object> params) throws ParseException {
         Map queryDetailsMap = eartagDataService.queryDetails(params);
         Map queryDetailsMap = eartagDataService.queryDetails(params);
-
         return R.ok().put("page", queryDetailsMap);
         return R.ok().put("page", queryDetailsMap);
     }
     }
 
 
@@ -70,6 +62,7 @@ public class EartagDataController {
     public R info(@PathVariable("id") Integer id) {
     public R info(@PathVariable("id") Integer id) {
         EartagDataEntity eartagData = eartagDataService.getById(id);
         EartagDataEntity eartagData = eartagDataService.getById(id);
 
 
+
         return R.ok().put("eartagData", eartagData);
         return R.ok().put("eartagData", eartagData);
     }
     }
 
 

+ 82 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/controller/FarmStockController.java

@@ -0,0 +1,82 @@
+ package com.huimv.acquisition.controller;
+
+import java.util.Arrays;
+import java.util.Map;
+
+import com.huimv.acquisition.entity.FarmStockEntity;
+import com.huimv.acquisition.result.R;
+import com.huimv.acquisition.service.FarmStockService;
+import com.huimv.acquisition.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-08-04 14:13:15
+ */
+@RestController
+@RequestMapping("management/farmstock")
+public class FarmStockController {
+    @Autowired
+    private FarmStockService farmStockService;
+
+    /**
+     * 列表
+     */
+    @RequestMapping("/list")
+    public R list(@RequestParam Map<String, Object> params){
+        PageUtils page = farmStockService.queryPage(params);
+
+        return R.ok().put("page", page);
+    }
+
+
+    /**
+     * 信息
+     */
+    @RequestMapping("/info/{id}")
+    public R info(@PathVariable("id") Integer id){
+		FarmStockEntity farmStock = farmStockService.getById(id);
+
+        return R.ok().put("farmStock", farmStock);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    public R save(@RequestBody FarmStockEntity farmStock){
+		farmStockService.save(farmStock);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    public R update(@RequestBody FarmStockEntity farmStock){
+		farmStockService.updateById(farmStock);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    public R delete(@RequestBody Integer[] ids){
+		farmStockService.removeByIds(Arrays.asList(ids));
+
+        return R.ok();
+    }
+
+}

+ 83 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/controller/SowRankTableController.java

@@ -0,0 +1,83 @@
+ package com.huimv.acquisition.controller;
+
+import java.util.Arrays;
+import java.util.Map;
+
+import com.huimv.acquisition.entity.SowRankTableEntity;
+import com.huimv.acquisition.result.R;
+import com.huimv.acquisition.service.SowRankTableService;
+import com.huimv.acquisition.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-08-04 17:47:18
+ */
+@RestController
+@RequestMapping("management/sowranktable")
+public class SowRankTableController {
+    @Autowired
+    private SowRankTableService sowRankTableService;
+
+    /**
+     * 列表
+     */
+    @RequestMapping("/list")
+    public R list(@RequestParam Map<String, Object> params){
+        PageUtils page = sowRankTableService.queryPage(params);
+
+        return R.ok().put("page", page);
+    }
+
+
+    /**
+     * 信息
+     */
+    @RequestMapping("/info/{id}")
+    public R info(@PathVariable("id") Integer id){
+		SowRankTableEntity sowRankTable = sowRankTableService.getById(id);
+
+        return R.ok().put("sowRankTable", sowRankTable);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    public R save(@RequestBody SowRankTableEntity sowRankTable){
+		sowRankTableService.save(sowRankTable);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    public R update(@RequestBody SowRankTableEntity sowRankTable){
+		sowRankTableService.updateById(sowRankTable);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    public R delete(@RequestBody Integer[] ids){
+		sowRankTableService.removeByIds(Arrays.asList(ids));
+
+        return R.ok();
+    }
+
+}

+ 55 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/controller/StockRankController.java

@@ -0,0 +1,55 @@
+package com.huimv.acquisition.controller;
+
+import com.huimv.acquisition.mapper.EartagDataDao;
+import com.huimv.acquisition.result.R;
+import com.huimv.acquisition.service.EartagDataService;
+import com.huimv.acquisition.utils.PageUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+/**
+ * @Author Anchor
+ * @Date 2021/8/4 13:57
+ * @Version 1.0.1
+ */
+
+//存栏排名的接口
+@RestController
+@RequestMapping("manager/rank")
+@CrossOrigin
+public class StockRankController {
+
+
+    @Autowired
+    private EartagDataDao eartagDataDao;
+
+    @Autowired
+    private EartagDataService  eartagDataService  ;
+
+
+
+    /**
+     * 列表
+     */
+    @RequestMapping("/list")
+    public R list(@RequestParam Map<String, Object> params) {
+        PageUtils page = eartagDataService.queryPage(params);
+        return R.ok().put("page", page);
+    }
+
+
+
+
+
+
+
+
+
+
+
+}

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

@@ -0,0 +1,54 @@
+package com.huimv.acquisition.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import java.io.Serializable;
+
+
+/**
+ *
+ * @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;
+
+}

+ 88 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/entity/DailyTabulateDataEntity.java

@@ -0,0 +1,88 @@
+package com.huimv.acquisition.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-08-04 14:59:05
+ */
+@Data
+@TableName("daily_tabulate_data")
+public class DailyTabulateDataEntity implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 
+	 */
+	@TableId
+	private Integer id;
+	/**
+	 * 统计日期
+	 */
+	private Date statisticDate;
+	/**
+	 * 当日母猪总存栏
+	 */
+	private Integer stockTotal;
+	/**
+	 * 每日母猪新增耳标数
+	 */
+	private Integer stockNew;
+	/**
+	 * 每日离线耳标数
+	 */
+	private Integer offlineNo;
+	/**
+	 * 能繁母猪存栏数
+	 */
+	private Integer sowStock;
+	/**
+	 * 日龄占比(250-1000)
+	 */
+	private String ratio1;
+	/**
+	 * 日龄(1000-1700)
+	 */
+	private String ratio2;
+	/**
+	 * 日龄(1700-2400)
+	 */
+	private String ratio3;
+	/**
+	 * 日龄(>2400)
+	 */
+	private String ratio4;
+	/**
+	 * 配怀存栏
+	 */
+	private Integer stock1;
+	/**
+	 * 分娩存栏
+	 */
+	private Integer stock2;
+	/**
+	 * 空怀母猪
+	 */
+	private Integer stock3;
+	/**
+	 * 后备存栏
+	 */
+	private Integer stock4;
+	/**
+	 * 公猪存栏
+	 */
+	private Integer stock5;
+	/**
+	 * 牧场编码
+	 */
+	private String farmCode;
+
+}

+ 92 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/entity/FarmStockEntity.java

@@ -0,0 +1,92 @@
+package com.huimv.acquisition.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-08-04 14:13:15
+ */
+@Data
+@TableName("farm_stock")
+public class FarmStockEntity implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 
+	 */
+	@TableId
+	private Integer id;
+	/**
+	 * 牧场代码
+	 */
+	private String farmCode;
+	/**
+	 * 牧场名称
+	 */
+	private String farmName;
+	/**
+	 * 母猪总存栏
+	 */
+	private Integer sowTotalStock;
+	/**
+	 * 母猪新增
+	 */
+	private Integer eartagNew;
+	/**
+	 * 耳标离线
+	 */
+	private Integer eartagOffone;
+	/**
+	 * 能繁母猪存栏
+	 */
+	private Integer sowStock;
+	/**
+	 * 配怀存栏
+	 */
+	private Integer stock1;
+	/**
+	 * 分娩存栏
+	 */
+	private Integer stock2;
+	/**
+	 * 空怀存栏
+	 */
+	private Integer stock3;
+	/**
+	 * 后备存栏
+	 */
+	private Integer stock4;
+	/**
+	 * 公猪存栏
+	 */
+	private Integer stock5;
+	/**
+	 * 月份
+	 */
+	private Integer month;
+	/**
+	 * 年度
+	 */
+	private Integer year;
+	/**
+	 * 地市代码
+	 */
+	private String cityCode;
+	/**
+	 * 区县代码
+	 */
+	private String countyCode;
+	/**
+	 * 创建时间
+	 */
+	private Date createTime;
+
+}

+ 84 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/entity/SowRankTableEntity.java

@@ -0,0 +1,84 @@
+package com.huimv.acquisition.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-08-04 17:47:18
+ */
+@Data
+@TableName("sow_rank_table")
+public class SowRankTableEntity implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * id
+	 */
+	@TableId
+	private Integer id;
+	/**
+	 * 
+	 */
+	private String farmCode;
+	/**
+	 * 
+	 */
+	private String farmId;
+	/**
+	 * 母猪存栏
+	 */
+	private Integer sowLivestock;
+	/**
+	 * 排名
+	 */
+	private Integer sowLivestockRank;
+	/**
+	 * 存栏增长
+	 */
+	private Integer sowLivestockInc;
+	/**
+	 * 排名
+	 */
+	private Integer sowLivestockIncRank;
+	/**
+	 * 母猪msy
+	 */
+	private Integer sowMsy;
+	/**
+	 * 排名
+	 */
+	private Integer sowMsyRank;
+	/**
+	 * 统计
+	 */
+	private Integer outStockCount;
+	/**
+	 * 预计
+	 */
+	private Integer outStockExpected;
+	/**
+	 * 目标
+	 */
+	private Integer ainOutStock;
+	/**
+	 * 完成度
+	 */
+	private Integer finishPercent;
+	/**
+	 * 备注
+	 */
+	private String remark;
+	/**
+	 * 排名备用
+	 */
+	private String rank;
+
+}

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

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

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

@@ -0,0 +1,19 @@
+package com.huimv.acquisition.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.acquisition.entity.DailyTabulateDataEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 耳标每日汇总表
+ * 
+ * @author yinhao
+ * @version ${version}
+ * @date 2021-08-04 14:59:05
+ */
+@Mapper
+@Repository
+public interface DailyTabulateDataDao extends BaseMapper<DailyTabulateDataEntity> {
+	
+}

+ 20 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/mapper/FarmStockDao.java

@@ -0,0 +1,20 @@
+package com.huimv.acquisition.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.acquisition.entity.FarmStockEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 
+ * 
+ * @author yinhao
+ * @version ${version}
+ * @date 2021-08-04 14:13:15
+ */
+@Mapper
+@Repository
+public interface FarmStockDao extends BaseMapper<FarmStockEntity> {
+	
+}

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

@@ -0,0 +1,17 @@
+package com.huimv.acquisition.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.acquisition.entity.SowRankTableEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 
+ * 
+ * @author yinhao
+ * @version ${version}
+ * @date 2021-08-04 17:47:18
+ */
+@Mapper
+public interface SowRankTableDao extends BaseMapper<SowRankTableEntity> {
+	
+}

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

@@ -0,0 +1,21 @@
+package com.huimv.acquisition.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.acquisition.entity.BaseFarmInfoEntity;
+import com.huimv.acquisition.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);
+}
+

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

@@ -0,0 +1,20 @@
+package com.huimv.acquisition.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.acquisition.entity.DailyTabulateDataEntity;
+import com.huimv.acquisition.utils.PageUtils;
+
+import java.util.Map;
+
+/**
+ * 耳标每日汇总表
+ *
+ * @author yinhao
+ * @version ${version}
+ * @date 2021-08-04 14:59:05
+ */
+public interface DailyTabulateDataService extends IService<DailyTabulateDataEntity> {
+
+    PageUtils queryPage(Map<String, Object> params);
+}
+

+ 21 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/service/FarmStockService.java

@@ -0,0 +1,21 @@
+package com.huimv.acquisition.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.acquisition.entity.FarmStockEntity;
+import com.huimv.acquisition.utils.PageUtils;
+
+
+import java.util.Map;
+
+/**
+ * 
+ *
+ * @author yinhao
+ * @version ${version}
+ * @date 2021-08-04 14:13:15
+ */
+public interface FarmStockService extends IService<FarmStockEntity> {
+
+    PageUtils queryPage(Map<String, Object> params);
+}
+

+ 1 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/service/MovePigpenService.java

@@ -16,5 +16,6 @@ import java.util.Map;
 public interface MovePigpenService extends IService<MovePigpenEntity> {
 public interface MovePigpenService extends IService<MovePigpenEntity> {
 
 
     PageUtils queryPage(Map<String, Object> params);
     PageUtils queryPage(Map<String, Object> params);
+
 }
 }
 
 

+ 22 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/service/SowRankTableService.java

@@ -0,0 +1,22 @@
+package com.huimv.acquisition.service;
+
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.acquisition.entity.SowRankTableEntity;
+import com.huimv.acquisition.utils.PageUtils;
+
+import java.util.Map;
+
+/**
+ * 
+ *
+ * @author yinhao
+ * @version ${version}
+ * @date 2021-08-04 17:47:18
+ */
+public interface SowRankTableService extends IService<SowRankTableEntity> {
+
+    PageUtils queryPage(Map<String, Object> params);
+}
+

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

@@ -0,0 +1,36 @@
+package com.huimv.acquisition.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.huimv.acquisition.entity.BaseFarmInfoEntity;
+import com.huimv.acquisition.mapper.BaseFarmInfoDao;
+import com.huimv.acquisition.service.BaseFarmInfoService;
+import com.huimv.acquisition.utils.PageUtils;
+import com.huimv.acquisition.utils.Query;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+
+/**
+ * 
+ *
+ * @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);
+    }
+
+}

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

@@ -0,0 +1,34 @@
+package com.huimv.acquisition.service.impl;
+
+import com.huimv.acquisition.entity.DailyTabulateDataEntity;
+import com.huimv.acquisition.mapper.DailyTabulateDataDao;
+import com.huimv.acquisition.service.DailyTabulateDataService;
+import com.huimv.acquisition.utils.PageUtils;
+import com.huimv.acquisition.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-08-04 14:59:05
+ */
+@Service("dailyTabulateDataService")
+public class DailyTabulateDataServiceImpl extends ServiceImpl<DailyTabulateDataDao, DailyTabulateDataEntity> implements DailyTabulateDataService {
+
+    @Override
+    public PageUtils queryPage(Map<String, Object> params) {
+        IPage<DailyTabulateDataEntity> page = this.page(
+                new Query<DailyTabulateDataEntity>().getPage(params),
+                new QueryWrapper<DailyTabulateDataEntity>()
+        );
+
+        return new PageUtils(page);
+    }
+
+}

+ 37 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/service/impl/FarmStockServiceImpl.java

@@ -0,0 +1,37 @@
+package com.huimv.acquisition.service.impl;
+
+import com.huimv.acquisition.entity.FarmStockEntity;
+import com.huimv.acquisition.mapper.FarmStockDao;
+import com.huimv.acquisition.service.FarmStockService;
+import com.huimv.acquisition.utils.PageUtils;
+import com.huimv.acquisition.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-08-04 14:13:15
+ */
+@Service("farmStockService")
+public class FarmStockServiceImpl extends ServiceImpl<FarmStockDao, FarmStockEntity> implements FarmStockService {
+
+    @Override
+    public PageUtils queryPage(Map<String, Object> params) {
+        IPage<FarmStockEntity> page = this.page(
+                new Query<FarmStockEntity>().getPage(params),
+                new QueryWrapper<FarmStockEntity>()
+        );
+        return new PageUtils(page);
+
+
+
+
+
+    }
+
+}

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

@@ -0,0 +1,34 @@
+package com.huimv.acquisition.service.impl;
+
+import com.huimv.acquisition.entity.SowRankTableEntity;
+import com.huimv.acquisition.mapper.SowRankTableDao;
+import com.huimv.acquisition.service.SowRankTableService;
+import com.huimv.acquisition.utils.PageUtils;
+import com.huimv.acquisition.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-08-04 17:47:18
+ */
+@Service("sowRankTableService")
+public class SowRankTableServiceImpl extends ServiceImpl<SowRankTableDao, SowRankTableEntity> implements SowRankTableService {
+
+    @Override
+    public PageUtils queryPage(Map<String, Object> params) {
+        IPage<SowRankTableEntity> page = this.page(
+                new Query<SowRankTableEntity>().getPage(params),
+                new QueryWrapper<SowRankTableEntity>()
+        );
+
+        return new PageUtils(page);
+    }
+
+}

+ 0 - 1
smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/socket/Server.java

@@ -26,7 +26,6 @@ public class Server implements CommandLineRunner {
             System.out.println("****** I am Server, now begin to wait the client ******");
             System.out.println("****** I am Server, now begin to wait the client ******");
 
 
             int count = 0;
             int count = 0;
-
             // 处理socket请求
             // 处理socket请求
             Socket socket = null;
             Socket socket = null;
             while (true) {
             while (true) {

+ 0 - 8
smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/socket/ServerThread.java

@@ -1,10 +1,4 @@
 package com.huimv.acquisition.socket;
 package com.huimv.acquisition.socket;
-
-
-
-
-
-
 import com.huimv.acquisition.socket.eartagrecive.service.IClientDataPacketService;
 import com.huimv.acquisition.socket.eartagrecive.service.IClientDataPacketService;
 
 
 import java.io.*;
 import java.io.*;
@@ -35,8 +29,6 @@ public class ServerThread extends Thread {
 
 
             // server接收消息
             // server接收消息
             inputStream = socket.getInputStream();
             inputStream = socket.getInputStream();
-
-
             inputStream = socket.getInputStream();
             inputStream = socket.getInputStream();
             byte[] b = new byte[1024];
             byte[] b = new byte[1024];
             inputStream.read(b);
             inputStream.read(b);

+ 28 - 23
smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/socket/eartagrecive/service/impl/ReceivePackageSerivce.java

@@ -24,6 +24,8 @@ import java.math.BigDecimal;
 import java.text.*;
 import java.text.*;
 import java.util.Date;
 import java.util.Date;
 
 
+import static org.apache.commons.lang.StringUtils.split;
+
 /**
 /**
  * @Project : huimv.ql
  * @Project : huimv.ql
  * @Package : com.huimv.biosafety.uface.controller
  * @Package : com.huimv.biosafety.uface.controller
@@ -70,20 +72,29 @@ public class ReceivePackageSerivce {
         String rssi  = clientMessageArray[7];           //信号强度
         String rssi  = clientMessageArray[7];           //信号强度
         String  time = clientMessageArray[8];           //采集时间
         String  time = clientMessageArray[8];           //采集时间
         String prepare_field= clientMessageArray[9];    //耳标温度
         String prepare_field= clientMessageArray[9];    //耳标温度
+
+        String[] split = prepare_field.split("#");//1.0#1.0#9314   --耳标版本--网关版本--电阻值(用来计算环境温度)
+
+
+
+
         String  check = clientMessageArray[10];          //校验码
         String  check = clientMessageArray[10];          //校验码
         String  tail  = clientMessageArray[11];          //命令尾
         String  tail  = clientMessageArray[11];          //命令尾
         EartagDataEntity eartagDataEntity = new EartagDataEntity();
         EartagDataEntity eartagDataEntity = new EartagDataEntity();
+
         eartagDataEntity.setHead(head);   //命令头
         eartagDataEntity.setHead(head);   //命令头
         eartagDataEntity.setDeviceCode(device_code); //采集器ID
         eartagDataEntity.setDeviceCode(device_code); //采集器ID
-      //  eartagDataEntity.setVersion(version);  //版本
+         eartagDataEntity.setVersion(split[0]);  //耳标版本
+         eartagDataEntity.setCommand(split[1]);  //网关版本
+
         eartagDataEntity.setEartagNo(eartag_no);  //耳标号
         eartagDataEntity.setEartagNo(eartag_no);  //耳标号
        // eartagDataEntity.setFrameSerialNo(Integer.parseInt(frame_serial_no));   //耳标帧序号
        // eartagDataEntity.setFrameSerialNo(Integer.parseInt(frame_serial_no));   //耳标帧序号
         eartagDataEntity.setBat(Integer.parseInt(bat));   //电池 电量
         eartagDataEntity.setBat(Integer.parseInt(bat));   //电池 电量
         DecimalFormat df = new DecimalFormat("####0.00");
         DecimalFormat df = new DecimalFormat("####0.00");
 
 
-        eartagDataEntity.setEarTemp(Double.parseDouble( df.format( ln(Integer.parseInt(prepare_field))))) ;  //ntc转环境温度
+        eartagDataEntity.setEarTemp(Double.parseDouble( df.format( ln(Integer.parseInt(split[2]))))) ;  //ntc转环境温度
         eartagDataEntity.setEnvTemp(  Double.parseDouble(new DecimalFormat("#,##0.00").format(( Double.parseDouble(env_temp)/100))));   //环境温度--转doubbo
         eartagDataEntity.setEnvTemp(  Double.parseDouble(new DecimalFormat("#,##0.00").format(( Double.parseDouble(env_temp)/100))));   //环境温度--转doubbo
-        System.out.println( ln(Integer.parseInt(prepare_field)));//----25.001
+        //System.out.println( ln(Integer.parseInt(prepare_field)));//----25.001
         System.out.println(Double.parseDouble(env_temp)/100);
         System.out.println(Double.parseDouble(env_temp)/100);
 
 
         eartagDataEntity.setExercise(exercise);//运动量
         eartagDataEntity.setExercise(exercise);//运动量
@@ -107,8 +118,8 @@ public class ReceivePackageSerivce {
         wrapper3.eq(EartagRegisterEntity::getEartagNo, eartag_no );
         wrapper3.eq(EartagRegisterEntity::getEartagNo, eartag_no );
         EartagRegisterEntity eartagRegisterEntity = eartagRegisterDao.selectOne(wrapper3);
         EartagRegisterEntity eartagRegisterEntity = eartagRegisterDao.selectOne(wrapper3);
         System.out.println(eartagRegisterEntity);
         System.out.println(eartagRegisterEntity);
-        String deviceCode = eartagRegisterEntity.getDeviceCode();//---获取这个基站的编码
-        System.out.println(deviceCode);
+       // String deviceCode = eartagRegisterEntity.getDeviceCode();//---获取这个基站的编码
+       // System.out.println(deviceCode);
 
 
 
 
 
 
@@ -149,11 +160,8 @@ public class ReceivePackageSerivce {
            eartagDataService.save(eartagDataEntity);
            eartagDataService.save(eartagDataEntity);
            return "hm+6+0+6+end";
            return "hm+6+0+6+end";
      }
      }
-       //  //上一条不为空---而且判断是存储注册表device-code
-
-
-
-        //存储转舍信息
+        //上一条不为空---而且判断是存储注册表device-code
+        //存储转舍信息--还要判断新的设备阶段和老的设备阶段是否相同,如果相同就不存储转舍信息
         if(!lastEarTagDate.getDeviceCode().equals(device_code)){
         if(!lastEarTagDate.getDeviceCode().equals(device_code)){
             LambdaQueryWrapper<EartagRegisterEntity> wrapper4 = Wrappers.lambdaQuery();
             LambdaQueryWrapper<EartagRegisterEntity> wrapper4 = Wrappers.lambdaQuery();
             wrapper4.eq(EartagRegisterEntity::getEartagNo, eartag_no );
             wrapper4.eq(EartagRegisterEntity::getEartagNo, eartag_no );
@@ -161,18 +169,18 @@ public class ReceivePackageSerivce {
             if ( eartagRegisterEntity1.getDeviceCode().equals(null)  ) {//如果耳标注册表的绑定机器ID为空就不存储转舍信息
             if ( eartagRegisterEntity1.getDeviceCode().equals(null)  ) {//如果耳标注册表的绑定机器ID为空就不存储转舍信息
                 System.out.println("之前=" + lastEarTagDate.getDeviceCode() + "现在" + device_code);
                 System.out.println("之前=" + lastEarTagDate.getDeviceCode() + "现在" + device_code);
                 System.out.println(lastEarTagDate.getDeviceCode().equals(device_code));
                 System.out.println(lastEarTagDate.getDeviceCode().equals(device_code));
-                //不相等,增加转舍信息
-                MovePigpenEntity movePigpenEntity = new MovePigpenEntity();
-                movePigpenEntity.setDeviceCode(device_code);
-                movePigpenEntity.setEartagNo(eartag_no);
-                movePigpenEntity.setMoveDate(DateUtilsPublic.parseDateTime(DateUtilsPublic.buildDateTimeString(time)));
-                movePigpenEntity.setStage(collectorRegisterEntity.getStage());
-                movePigpenService.save(movePigpenEntity);
+                 //上一阶段的
+                if( lastEarTagDate.getStage() != collectorRegisterEntity.getStage()  ) {  //不相等,---判断阶段是否相同--阶段也不相同--增加转舍信息
+                    MovePigpenEntity movePigpenEntity = new MovePigpenEntity();
+                    movePigpenEntity.setDeviceCode(device_code);
+                    movePigpenEntity.setEartagNo(eartag_no);
+                    movePigpenEntity.setMoveDate(DateUtilsPublic.parseDateTime(DateUtilsPublic.buildDateTimeString(time)));
+                    movePigpenEntity.setStage(collectorRegisterEntity.getStage());
+                    movePigpenService.save(movePigpenEntity);
+                }
             }
             }
         }
         }
 
 
-
-
         Integer exercise1 = lastEarTagDate.getExercise();
         Integer exercise1 = lastEarTagDate.getExercise();
         eartagDataEntity.setSportGap(exercise - exercise1);//存储区间运动量
         eartagDataEntity.setSportGap(exercise - exercise1);//存储区间运动量
         //获取当前时间的 “天”---判断天的情况
         //获取当前时间的 “天”---判断天的情况
@@ -194,9 +202,6 @@ public class ReceivePackageSerivce {
 
 
 
 
 
 
-
-
-
     public static void main(String[] args) {
     public static void main(String[] args) {
         DecimalFormat df = new DecimalFormat("####0.00");
         DecimalFormat df = new DecimalFormat("####0.00");
 
 
@@ -277,7 +282,7 @@ public class ReceivePackageSerivce {
         eartagDampnessPojo.setCheckNumber(Integer.parseInt(checkCode));
         eartagDampnessPojo.setCheckNumber(Integer.parseInt(checkCode));
         eartagDampnessPojo.setTail(tail);
         eartagDampnessPojo.setTail(tail);
         dampnessMapper.insert(eartagDampnessPojo);
         dampnessMapper.insert(eartagDampnessPojo);
-//        dampnessService.add(eartagDampnessPojo);
+//      dampnessService.add(eartagDampnessPojo);
         log.info(Const.SAVE_DAMPNESS_SUCCESS);*/
         log.info(Const.SAVE_DAMPNESS_SUCCESS);*/
         return "hm+5+0+8+end";
         return "hm+5+0+8+end";
     }
     }

+ 0 - 5
smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/socket/eartagrecive/service/impl/SendPackageService.java

@@ -20,11 +20,6 @@ import org.springframework.stereotype.Component;
  **/
  **/
 @Component
 @Component
 public class SendPackageService {
 public class SendPackageService {
-
-
-
-
-
     @Autowired
     @Autowired
     private CollectorRegisterDao collectorRegisterDao;
     private CollectorRegisterDao collectorRegisterDao;
     /**
     /**

+ 12 - 24
smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/socket/eartagrecive/util/DateUtilsPublic.java

@@ -14,6 +14,7 @@ import java.util.Locale;
 public class DateUtilsPublic {
 public class DateUtilsPublic {
 
 
 	public static final String DATE_FORMAT = "yyyy-MM-dd";
 	public static final String DATE_FORMAT = "yyyy-MM-dd";
+
 	public static final String DATE_FORMAT_NUMBER = "yyyyMMdd";
 	public static final String DATE_FORMAT_NUMBER = "yyyyMMdd";
 	public static final String DATE_FORMAT_NUMBER_MONTH = "yyyyMM";
 	public static final String DATE_FORMAT_NUMBER_MONTH = "yyyyMM";
 
 
@@ -31,13 +32,14 @@ public class DateUtilsPublic {
 		}
 		}
 	}
 	}
 
 
-/*
-	//测试增加时间
+
 	public static void main(String[] args) {
 	public static void main(String[] args) {
-		String s = addDateHour("2021-07-08 23:23:00", 2);
-		System.out.println(s);
+		String date = DateUtilsPublic.formatDate(new Date(), DATE_FORMAT);
+		System.out.println(date);
 	}
 	}
-*/
+
+
+
 
 
 //改一下,传进来date  处理完之后返回date
 //改一下,传进来date  处理完之后返回date
 	public static String addDateStringHour(String day, int hour) {
 	public static String addDateStringHour(String day, int hour) {
@@ -61,6 +63,9 @@ public class DateUtilsPublic {
 
 
 
 
 	}
 	}
+
+
+
 	//改一下,传进来date  处理完之后返回date
 	//改一下,传进来date  处理完之后返回date
 	public static Date addDateHour(Date datein, int hour) {
 	public static Date addDateHour(Date datein, int hour) {
 		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -81,15 +86,6 @@ public class DateUtilsPublic {
 	}
 	}
 
 
 
 
-
-
-
-
-
-
-
-
-
 		//过去五秒
 		//过去五秒
 	public static Date getPassedsecond(){
 	public static Date getPassedsecond(){
 		Calendar c = Calendar.getInstance();
 		Calendar c = Calendar.getInstance();
@@ -110,15 +106,7 @@ public class DateUtilsPublic {
 
 
 	}
 	}
 
 
-    //制定格式转换时间
-	public static Date parseDate(String dateStr, String pattern) {
-		SimpleDateFormat sdf = new SimpleDateFormat(pattern);
-		try {
-			return sdf.parse(dateStr);
-		} catch (Exception e) {
-			return null;
-		}
-	}
+
 
 
 
 
 
 
@@ -178,7 +166,6 @@ public class DateUtilsPublic {
       return dateString;
       return dateString;
 }
 }
 
 
-
 	public static Date getNextWeekMonday(Date date) {
 	public static Date getNextWeekMonday(Date date) {
 		Calendar cal = Calendar.getInstance();
 		Calendar cal = Calendar.getInstance();
 		cal.setTime(getThisWeekMonday(date));
 		cal.setTime(getThisWeekMonday(date));
@@ -249,6 +236,7 @@ public class DateUtilsPublic {
 		return df3.format(date);
 		return df3.format(date);
 	}
 	}
 
 
+
 	public String beforeTime(int times) {
 	public String beforeTime(int times) {
 		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 		Calendar calendar = Calendar.getInstance();
 		Calendar calendar = Calendar.getInstance();

+ 105 - 19
smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/timmertask/RefreshEartagRegiest.java

@@ -4,16 +4,16 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.huimv.acquisition.entity.EartagDataEntity;
 import com.huimv.acquisition.entity.EartagDataEntity;
 import com.huimv.acquisition.entity.EartagRegisterEntity;
 import com.huimv.acquisition.entity.EartagRegisterEntity;
+import com.huimv.acquisition.entity.MovePigpenEntity;
 import com.huimv.acquisition.mapper.*;
 import com.huimv.acquisition.mapper.*;
 import com.huimv.acquisition.service.EartagRegisterService;
 import com.huimv.acquisition.service.EartagRegisterService;
 import com.huimv.acquisition.service.MovePigpenService;
 import com.huimv.acquisition.service.MovePigpenService;
 import com.huimv.acquisition.socket.eartagrecive.util.DateUtilsPublic;
 import com.huimv.acquisition.socket.eartagrecive.util.DateUtilsPublic;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
 
 
-import java.text.DateFormat;
-import java.text.DecimalFormat;
-import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.List;
 import java.util.List;
@@ -26,6 +26,8 @@ import java.util.Map;
  * @Version 1.0.1
  * @Version 1.0.1
  */
  */
 
 
+@Slf4j
+@Component
 public class RefreshEartagRegiest {
 public class RefreshEartagRegiest {
 
 
     @Autowired
     @Autowired
@@ -35,7 +37,7 @@ public class RefreshEartagRegiest {
     private BasePigpenDao basePigpenDao;
     private BasePigpenDao basePigpenDao;
 
 
     @Autowired
     @Autowired
-    private CollectorRegisterDao collectorRegisterDao ;
+    private CollectorRegisterDao collectorRegisterDao;
 
 
     @Autowired
     @Autowired
     private MovePigpenService movePigpenService;
     private MovePigpenService movePigpenService;
@@ -49,33 +51,117 @@ public class RefreshEartagRegiest {
     private EartagRegisterDao eartagRegisterDao;
     private EartagRegisterDao eartagRegisterDao;
 
 
 
 
-    @Scheduled(cron = "0 0 2 * * ?")
-    private void  Settingregisting() {
+   //造数据---对于没有绑定的设备进行绑定
+   // 首先找注册了了但是没有绑定设备的进行绑定
+   //还要
+   //每天中午12点触发------处理开始上传但是从未注册过的耳标数据
 
 
-
-        /*LambdaQueryWrapper<EartagRegisterEntity> lambdaQuery1 = Wrappers.lambdaQuery();
-        //过滤时间
-        lambdaQuery1.between(EartagRegisterEntity::getRegisterDate, new Date(), DateUtilsPublic.addDateHour(new Date(), 20));
+    @Scheduled(cron = "0 0 12 * * ?")
+    private void settingRegisting() {
+        LambdaQueryWrapper<EartagRegisterEntity> lambdaQuery1 = Wrappers.lambdaQuery();
+        //过滤时间--抓出时间段内所有这个数据
+        lambdaQuery1.between(EartagRegisterEntity::getRegisterDate, new Date(), DateUtilsPublic.addDateHour(new Date(), 24));
         List<EartagRegisterEntity> eartagDateEntities1 = eartagRegisterDao.selectList(lambdaQuery1);
         List<EartagRegisterEntity> eartagDateEntities1 = eartagRegisterDao.selectList(lambdaQuery1);
-        //最近四小时
-
+        //最近二十小时数据--如果注册信息为空--那么说明这一条是还没有进行基站绑定的耳标
         for (EartagRegisterEntity eartagRegisterEntity : eartagDateEntities1) {
         for (EartagRegisterEntity eartagRegisterEntity : eartagDateEntities1) {
-
             if (eartagRegisterEntity.getDeviceCode() == null) {//为空开始绑定注册
             if (eartagRegisterEntity.getDeviceCode() == null) {//为空开始绑定注册
+                LambdaQueryWrapper<EartagDataEntity> lambdaQuery2 = Wrappers.lambdaQuery();
+                //过滤时间----最近四小时的数据--耳标号为
+                lambdaQuery2.eq(EartagDataEntity::getEartagNo, eartagRegisterEntity.getEartagNo()  );//--对应上耳标号和时间
+                lambdaQuery2.between(EartagDataEntity::getTime, new Date(), DateUtilsPublic.addDateHour(new Date(), 24));
+                List<EartagDataEntity> eartagDateEntities2 = eartagDataDao.selectList(lambdaQuery2);
+                Map<String, Integer> map = new HashMap<>();
+                for (EartagDataEntity eartagDataEntity : eartagDateEntities2) {
+                    //对机器id进行分组
+                    if (map.containsKey(eartagDataEntity.getDeviceCode())) {
+                        Integer integer = map.get(eartagDataEntity.getDeviceCode());
+                        map.put(eartagDataEntity.getDeviceCode(), integer + 1);
+                    }
+                    map.put(eartagDataEntity.getDeviceCode(), 1);
+                }
+                int a = 0;
+                String deviceCode =null;
+                //存在一个问题----假如由于两个基站相隔较近,数据绑定最多的机器反复切换,反复生成转舍记录应该如何处理(之前是通过上传的机器编码切换来实现转舍记录的展示的)
+                //上面的问题通过判断基站编码是否相近来处理
+                for (Map.Entry<String, Integer> entry : map.entrySet()) {
+                    //打印出来这个值,取出出现数量最多的机器,将其设置为绑定id
+                    System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
+                    if (a >=  entry.getValue()) {
+
+                        a = entry.getValue() ;  //遍历出来最大的A  同时给B赋值到最新的entity
+                        deviceCode = entry.getKey();//----上传最多的机器的机器id
+                    }
+                }
+                //取到未注册的(耳标注册条) 开始填写上耳标号
+                eartagRegisterEntity.setDeviceCode(deviceCode);
+                eartagRegisterService.save(eartagRegisterEntity); //上面的计算获得出现次数最高的deviceCode  并且赋值给他--保存;
+            }
+        }
+    }
+
 
 
+    //通过转舍记录来处理--如果转舍记录中的机器编码和注册表中的不相同就进行处理
+    //每天中午15点触发------处理开始上传但是从未注册过的耳标数据
+    @Scheduled(cron = "0 0 15 * * ?")
+    private void changeRegistingByMovePenRecord() {
+        LambdaQueryWrapper<MovePigpenEntity> lambdaQuery1 = Wrappers.lambdaQuery();
+        //过滤时间--抓出时间段内所有这个数据
+        lambdaQuery1.between(MovePigpenEntity::getMoveDate, new Date(), DateUtilsPublic.addDateHour(new Date(), 24));
+        List<MovePigpenEntity>  MovePenEntities1 = movePigpenDao.selectList(lambdaQuery1);
 
 
+        //最近二十小时数据--如果有转舍情况发生--时间段内的转舍后机器id与注册表中的是否相同,不相同则说明有问题,进行校准
+        //需要更新转舍记录和注册表中的两个数据--
+
+        for (MovePigpenEntity   movePenEntity : MovePenEntities1) {
+            LambdaQueryWrapper<EartagRegisterEntity> lambdaQuery8 = Wrappers.lambdaQuery();
+            //过滤时间--抓出时间段内所有这个数据
+            lambdaQuery8.eq(EartagRegisterEntity::getEartagNo, movePenEntity.getEartagNo() );
+            EartagRegisterEntity eartagRegisterEntity = eartagRegisterDao.selectOne(lambdaQuery8);
+
+            if (eartagRegisterEntity.getDeviceCode()!= movePenEntity.getDeviceCode()) {//为空开始绑定注册
                 LambdaQueryWrapper<EartagDataEntity> lambdaQuery2 = Wrappers.lambdaQuery();
                 LambdaQueryWrapper<EartagDataEntity> lambdaQuery2 = Wrappers.lambdaQuery();
-                //过滤时间----最近四小时的数据
-                lambdaQuery2.between(EartagDataEntity::getTime, new Date(), DateUtilsPublic.addDateHour(new Date(), 20));
+                //过滤时间----最近四小时的数据--耳标号为
+                lambdaQuery2.eq(EartagDataEntity::getEartagNo, eartagRegisterEntity.getEartagNo()  );//--对应上耳标号和时间
+                lambdaQuery2.between(EartagDataEntity::getTime, new Date(), DateUtilsPublic.addDateHour(new Date(), 24));
                 List<EartagDataEntity> eartagDateEntities2 = eartagDataDao.selectList(lambdaQuery2);
                 List<EartagDataEntity> eartagDateEntities2 = eartagDataDao.selectList(lambdaQuery2);
-                Map map = new HashMap();
-                for (EartagDataEntity Map map = new HashMap(); :eartagDateEntities2){
+                Map<String, Integer> map = new HashMap<>();
+                for (EartagDataEntity eartagDataEntity : eartagDateEntities2) {
                     //对机器id进行分组
                     //对机器id进行分组
-
-*/
+                    if (map.containsKey(eartagDataEntity.getDeviceCode())) {
+                        Integer integer = map.get(eartagDataEntity.getDeviceCode());
+                        map.put(eartagDataEntity.getDeviceCode(), integer + 1);
+                    }
+                    map.put(eartagDataEntity.getDeviceCode(), 1);
                 }
                 }
+                int a = 0;
+                String deviceCode =null;
+                //存在一个问题----假如由于两个基站相隔较近,数据绑定最多的机器反复切换,反复生成转舍记录应该如何处理(之前是通过上传的机器编码切换来实现转舍记录的展示的)
+                //上面的问题通过判断基站编码是否相近来处理
+                for (Map.Entry<String, Integer> entry : map.entrySet()) {
+                    //打印出来这个值,取出出现数量最多的机器,将其设置为绑定id
+                    System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
+                    if (a >=  entry.getValue()) {
+                        a = entry.getValue() ;  //遍历出来最大的A  同时给B赋值到最新的entity
+                        deviceCode = entry.getKey();//----上传最多的机器的机器id
+                    }
+                }
+
+                //更新存储的编码
+                movePenEntity.setDeviceCode(deviceCode);
+                movePigpenService.save(movePenEntity);
+
+                //取到未注册的(耳标注册条) 开始填写上耳标号
+                eartagRegisterEntity.setDeviceCode(deviceCode);
+                eartagRegisterService.save(eartagRegisterEntity); //上面的计算获得出现次数最高的deviceCode  并且赋值给他--保存;
+
             }
             }
+        }
+    }
+
+
+
 
 
+}
 
 
 
 
 
 

+ 191 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/timmertask/provideNewRankData.java

@@ -0,0 +1,191 @@
+package com.huimv.acquisition.timmertask;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.fasterxml.jackson.databind.ser.Serializers;
+import com.huimv.acquisition.entity.*;
+import com.huimv.acquisition.mapper.*;
+import com.huimv.acquisition.service.BaseFarmInfoService;
+import com.huimv.acquisition.service.EartagRegisterService;
+import com.huimv.acquisition.service.MovePigpenService;
+import com.huimv.acquisition.socket.eartagrecive.util.DateUtil;
+import com.huimv.acquisition.socket.eartagrecive.util.DateUtilsPublic;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.text.ParseException;
+import java.util.Date;
+import java.util.List;
+
+import static com.huimv.acquisition.socket.eartagrecive.util.DateUtilsPublic.DATE_FORMAT;
+
+/**
+ * @Author Anchor
+ * @Date 2021/8/4 15:03
+ * @Version 1.0.1
+ */
+
+@Slf4j
+@Component
+public class provideNewRankData {
+
+
+//将存储的数据更新到最新的排名表--首先列出所有牧场
+
+    @Autowired
+    private EartagDataDao eartagDataDao;
+
+    @Autowired
+    private BasePigpenDao basePigpenDao;
+
+    @Autowired
+    private CollectorRegisterDao collectorRegisterDao;
+
+    @Autowired
+    private MovePigpenService movePigpenService;
+
+    @Autowired
+    private MovePigpenDao movePigpenDao;
+    @Autowired
+    private EartagRegisterService eartagRegisterService;
+
+    @Autowired
+    private EartagRegisterDao eartagRegisterDao;
+
+    @Autowired
+    private   BaseFarmInfoDao baseFarmInfoDao ;
+
+    @Autowired
+    private BaseFarmInfoService  baseFarmInfoService  ;
+
+
+    @Autowired
+    private DailyTabulateDataDao dailyTabulateDataDao   ;
+
+    //首先查找出所有的牧场id
+
+   // @Scheduled(cron = "0 0 12 * * ?")
+    @Scheduled(cron = "0/5 * * * * ?")
+    private void settingRegisting() throws ParseException {
+
+       //找出所有的猪舍
+     /*   LambdaQueryWrapper<BaseFarmInfoEntity> lambdaQuery3 = Wrappers.lambdaQuery();
+        lambdaQuery3.orderByDesc( BaseFarmInfoEntity::get );
+        List<BaseFarmInfoEntity> baseFarmInfoEntities = baseFarmInfoDao.selectList(lambdaQuery2);
+*/
+        String date = DateUtilsPublic.formatDate(new Date(), DATE_FORMAT);
+        String datebegan= date+" 00:00:00";
+        String dateend  = date+" 23:59:00";
+        Date datebegan1 = DateUtil.parseDateTime(datebegan);
+        Date dateeend = DateUtil.parseDateTime(dateend);
+
+
+        LambdaQueryWrapper<DailyTabulateDataEntity> lambdaQuery2 = Wrappers.lambdaQuery();
+        lambdaQuery2.between(DailyTabulateDataEntity::getStatisticDate,datebegan1, dateeend);
+        lambdaQuery2.orderByDesc( DailyTabulateDataEntity::getStockTotal);//母猪总存栏
+        List<DailyTabulateDataEntity> dailyTabulateDataEntit = dailyTabulateDataDao.selectList(lambdaQuery2);
+         int a = 0;
+        System.out.println();
+        for ( DailyTabulateDataEntity dailyTabulateDataEnt : dailyTabulateDataEntit ) {
+            System.out.println(dailyTabulateDataEnt.getId());
+
+
+
+/*
+              if ()
+            SowRankTableEntity sowRankTableEntity = new SowRankTableEntity();
+            sowRankTableEntity.setFarmCode(dailyTabulateDataEnt.getFarmCode());
+             a++;
+            sowRankTableEntity.setRank( String.valueOf(a));
+            sowRankTableEntity.setOutStockCount(1);*/
+
+        }
+
+
+
+       //当日母猪总存栏是总数
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+