Pārlūkot izejas kodu

更新耳标流水2数据

zhuoning 2 gadi atpakaļ
vecāks
revīzija
ea8ef3f13d
22 mainītis faili ar 601 papildinājumiem un 269 dzēšanām
  1. 43 0
      huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/entity/BasePigpenEntity.java
  2. 31 0
      huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/entity/BaseStageEntity.java
  3. 31 0
      huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/entity/BizBaseStageEntity.java
  4. 75 0
      huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/entity/EartagData2Entity.java
  5. 12 0
      huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/entity/EartagEartagOnlineEntity.java
  6. 135 0
      huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/entity/EartagEartagRegister2Entity.java
  7. 12 151
      huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/entity/EartagEartagRegisterEntity.java
  8. 4 19
      huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/entity/SysBaseConfigEntity.java
  9. 14 0
      huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/repo/BasePigpenEntityRepo.java
  10. 9 0
      huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/repo/BaseStageEntityRepo.java
  11. 14 0
      huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/repo/BizBaseStageEntityRepo.java
  12. 15 0
      huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/repo/EartagData2EntityRepo.java
  13. 1 0
      huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/repo/EartagDataRepo.java
  14. 2 0
      huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/repo/EartagDeviceRegisterRepo.java
  15. 13 0
      huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/repo/EartagEartagRegister2EntityRepo.java
  16. 14 0
      huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/repo/SysBaseConfigEntityRepo.java
  17. 6 6
      huimv-eartag2-platform/huimv-eartag2-eartag/pom.xml
  18. 28 28
      huimv-eartag2-platform/huimv-eartag2-eartag/src/main/java/com/huimv/eartag2/eartag/listener/EartagListener.java
  19. 2 0
      huimv-eartag2-platform/huimv-eartag2-eartag/src/main/java/com/huimv/eartag2/eartag/service/ICacheService.java
  20. 3 0
      huimv-eartag2-platform/huimv-eartag2-eartag/src/main/java/com/huimv/eartag2/eartag/service/IEartagService.java
  21. 21 0
      huimv-eartag2-platform/huimv-eartag2-eartag/src/main/java/com/huimv/eartag2/eartag/service/impl/CacheServiceImpl.java
  22. 116 65
      huimv-eartag2-platform/huimv-eartag2-eartag/src/main/java/com/huimv/eartag2/eartag/service/impl/EartagServiceImpl.java

+ 43 - 0
huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/entity/BasePigpenEntity.java

@@ -0,0 +1,43 @@
+package com.huimv.eartag2.common.dao.entity;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import javax.persistence.*;
+import java.io.Serializable;
+
+@Entity
+@Table(name = "base_pigpen")
+@Data
+@Accessors(chain = true)
+public class BasePigpenEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "id", nullable = false)
+    private Integer id;
+
+    @Column(name = "pigpen_code")
+    private String pigpenCode;
+
+    @Column(name = "pigpen_name")
+    private String pigpenName;
+
+    @Column(name = "parent_id")
+    private Integer parentId;
+
+    @Column(name = "f_type")
+    private Integer type;
+
+    @Column(name = "farm_code")
+    private String farmCode;
+
+    @Column(name = "sort")
+    private Integer sort;
+
+    @Column(name = "stage_code")
+    private String stageCode;
+
+}

+ 31 - 0
huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/entity/BaseStageEntity.java

@@ -0,0 +1,31 @@
+package com.huimv.eartag2.common.dao.entity;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import javax.persistence.*;
+import java.io.Serializable;
+
+@Entity
+@Data
+@Accessors(chain = true)
+@Table(name = "base_stage")
+public class BaseStageEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "id", nullable = false)
+    private Integer id;
+
+    @Column(name = "stage_code")
+    private String stageCode;
+
+    @Column(name = "stage_name")
+    private String stageName;
+
+    @Column(name = "sort")
+    private Integer sort;
+
+}

+ 31 - 0
huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/entity/BizBaseStageEntity.java

@@ -0,0 +1,31 @@
+package com.huimv.eartag2.common.dao.entity;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import javax.persistence.*;
+import java.io.Serializable;
+
+@Entity
+@Table(name = "biz_base_stage")
+@Data
+@Accessors(chain = true)
+public class BizBaseStageEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "id", nullable = false)
+    private Integer id;
+
+    @Column(name = "stage_code")
+    private String stageCode;
+
+    @Column(name = "stage_name")
+    private String stageName;
+
+    @Column(name = "sort")
+    private Integer sort;
+
+}

+ 75 - 0
huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/entity/EartagData2Entity.java

@@ -0,0 +1,75 @@
+package com.huimv.eartag2.common.dao.entity;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.sql.Date;
+import java.sql.Timestamp;
+
+@Entity
+@Data
+@Table(name = "eartag_data2")
+@Accessors(chain = true)
+public class EartagData2Entity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "id", nullable = false)
+    private Integer id;
+
+    @Column(name = "cmd_header")
+    private String cmdHeader;
+
+    @Column(name = "device")
+    private String device;
+
+    @Column(name = "earmark")
+    private String earmark;
+
+    @Column(name = "bat")
+    private Integer bat;
+
+    @Column(name = "ear_temp")
+    private Integer earTemp;
+
+    @Column(name = "ear_temp1")
+    private Float earTemp1;
+
+    @Column(name = "env_temp")
+    private Integer envTemp;
+
+    @Column(name = "env_temp1")
+    private Float envTemp1;
+
+    @Column(name = "act")
+    private Integer act;
+
+    @Column(name = "act1")
+    private Integer act1;
+
+    @Column(name = "signal1")
+    private Integer signal1;
+
+    @Column(name = "ask_time")
+    private String askTime;
+
+    @Column(name = "other")
+    private String other;
+
+    @Column(name = "add_time")
+    private Timestamp addTime;
+
+    @Column(name = "create_date")
+    private Date createDate;
+
+    @Column(name = "farm_id")
+    private String farmId;
+
+    @Column(name = "ask_date")
+    private Date askDate;
+
+}

+ 12 - 0
huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/entity/EartagEartagOnlineEntity.java

@@ -40,6 +40,18 @@ public class EartagEartagOnlineEntity implements Serializable {
     @Column(name = "farm_id")
     @Column(name = "farm_id")
     private String farmId;
     private String farmId;
 
 
+    @Column(name = "pigpen_id")
+    private Integer pigpenId;
+
+    @Column(name = "pigpen_name")
+    private String pigpenName;
+
+    @Column(name = "unit_id")
+    private Integer unitId;
+
+    @Column(name = "unit_name")
+    private String unitName;
+
     public void setId(Integer id) {
     public void setId(Integer id) {
         this.id = id;
         this.id = id;
     }
     }

+ 135 - 0
huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/entity/EartagEartagRegister2Entity.java

@@ -0,0 +1,135 @@
+package com.huimv.eartag2.common.dao.entity;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.sql.Date;
+import java.sql.Timestamp;
+
+@Entity
+@Data
+@Table(name = "eartag_eartag_register2")
+@Accessors(chain = true)
+public class EartagEartagRegister2Entity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "id", nullable = false)
+    private Integer id;
+
+    @Column(name = "earmark")
+    private String earmark;
+
+    @Column(name = "first_time")
+    private Timestamp firstTime;
+
+    @Column(name = "last_time")
+    private Timestamp lastTime;
+
+    @Column(name = "first_device")
+    private String firstDevice;
+
+    @Column(name = "belong_device")
+    private String belongDevice;
+
+    @Column(name = "last_device")
+    private String lastDevice;
+
+    @Column(name = "register_time")
+    private Timestamp registerTime;
+
+    @Column(name = "register_type")
+    private Integer registerType;
+
+    @Column(name = "remark")
+    private String remark;
+
+    @Column(name = "farm_id")
+    private String farmId;
+
+    @Column(name = "active_status")
+    private Integer activeStatus;
+
+    @Column(name = "active_time")
+    private Timestamp activeTime;
+
+    @Column(name = "live_status")
+    private Integer liveStatus;
+
+    @Column(name = "create_date")
+    private Date createDate;
+
+    @Column(name = "bat")
+    private Integer bat;
+
+    @Column(name = "reboot_times")
+    private Integer rebootTimes;
+
+    @Column(name = "on_day_age")
+    private Integer onDayAge;
+
+    @Column(name = "day_age")
+    private Integer dayAge;
+
+    @Column(name = "stage_code")
+    private String stageCode;
+
+    @Column(name = "stage_name")
+    private String stageName;
+
+    @Column(name = "pigpen_id")
+    private Integer pigpenId;
+
+    @Column(name = "pigpen_name")
+    private String pigpenName;
+
+    @Column(name = "unit_id")
+    private Integer unitId;
+
+    @Column(name = "unit_name")
+    private String unitName;
+
+    @Column(name = "act_range")
+    private Integer actRange;
+
+    @Column(name = "ear_temp1")
+    private Float earTemp1;
+
+    @Column(name = "env_temp1")
+    private Float envTemp1;
+
+    @Column(name = "act")
+    private Integer act;
+
+    @Column(name = "signal1")
+    private Integer signal1;
+
+    @Column(name = "other")
+    private String other;
+
+    @Column(name = "ask_time")
+    private String askTime;
+
+    @Column(name = "env_abnormal")
+    private Integer envAbnormal;
+
+    @Column(name = "ear_abnormal")
+    private Integer earAbnormal;
+
+    /**
+     * 可视码
+     */
+    @Column(name = "view_code")
+    private String viewCode;
+
+    /**
+     * RFID id号
+     */
+    @Column(name = "rfid_id")
+    private String rfidId;
+
+}

+ 12 - 151
huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/entity/EartagEartagRegisterEntity.java

@@ -1,6 +1,7 @@
 package com.huimv.eartag2.common.dao.entity;
 package com.huimv.eartag2.common.dao.entity;
 
 
-import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.experimental.Accessors;
 
 
 import javax.persistence.*;
 import javax.persistence.*;
 import java.io.Serializable;
 import java.io.Serializable;
@@ -8,7 +9,9 @@ import java.sql.Date;
 import java.sql.Timestamp;
 import java.sql.Timestamp;
 
 
 @Entity
 @Entity
+@Data
 @Table(name = "eartag_eartag_register")
 @Table(name = "eartag_eartag_register")
+@Accessors(chain = true)
 public class EartagEartagRegisterEntity implements Serializable {
 public class EartagEartagRegisterEntity implements Serializable {
 
 
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;
@@ -22,11 +25,9 @@ public class EartagEartagRegisterEntity implements Serializable {
     private String earmark;
     private String earmark;
 
 
     @Column(name = "first_time")
     @Column(name = "first_time")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
     private Timestamp firstTime;
     private Timestamp firstTime;
 
 
     @Column(name = "last_time")
     @Column(name = "last_time")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
     private Timestamp lastTime;
     private Timestamp lastTime;
 
 
     @Column(name = "first_device")
     @Column(name = "first_device")
@@ -39,7 +40,6 @@ public class EartagEartagRegisterEntity implements Serializable {
     private String lastDevice;
     private String lastDevice;
 
 
     @Column(name = "register_time")
     @Column(name = "register_time")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
     private Timestamp registerTime;
     private Timestamp registerTime;
 
 
     @Column(name = "register_type")
     @Column(name = "register_type")
@@ -55,166 +55,27 @@ public class EartagEartagRegisterEntity implements Serializable {
     private Integer activeStatus;
     private Integer activeStatus;
 
 
     @Column(name = "active_time")
     @Column(name = "active_time")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
     private Timestamp activeTime;
     private Timestamp activeTime;
 
 
     @Column(name = "live_status")
     @Column(name = "live_status")
     private Integer liveStatus;
     private Integer liveStatus;
 
 
     @Column(name = "create_date")
     @Column(name = "create_date")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
     private Date createDate;
     private Date createDate;
 
 
     @Column(name = "bat")
     @Column(name = "bat")
     private Integer bat;
     private Integer bat;
 
 
-    public void setId(Integer id) {
-        this.id = id;
-    }
+    @Column(name = "unit_id")
+    private Integer unitId;
 
 
-    public Integer getId() {
-        return id;
-    }
+    @Column(name = "unit_name")
+    private String unitName;
 
 
-    public void setEarmark(String earmark) {
-        this.earmark = earmark;
-    }
+    @Column(name = "pigpen_id")
+    private Integer pigpenId;
 
 
-    public String getEarmark() {
-        return earmark;
-    }
+    @Column(name = "pigpen_name")
+    private String pigpenName;
 
 
-    public void setFirstTime(Timestamp firstTime) {
-        this.firstTime = firstTime;
-    }
-
-    public Timestamp getFirstTime() {
-        return firstTime;
-    }
-
-    public void setLastTime(Timestamp lastTime) {
-        this.lastTime = lastTime;
-    }
-
-    public Timestamp getLastTime() {
-        return lastTime;
-    }
-
-    public void setFirstDevice(String firstDevice) {
-        this.firstDevice = firstDevice;
-    }
-
-    public String getFirstDevice() {
-        return firstDevice;
-    }
-
-    public void setBelongDevice(String belongDevice) {
-        this.belongDevice = belongDevice;
-    }
-
-    public String getBelongDevice() {
-        return belongDevice;
-    }
-
-    public void setLastDevice(String lastDevice) {
-        this.lastDevice = lastDevice;
-    }
-
-    public String getLastDevice() {
-        return lastDevice;
-    }
-
-    public void setRegisterTime(Timestamp registerTime) {
-        this.registerTime = registerTime;
-    }
-
-    public Timestamp getRegisterTime() {
-        return registerTime;
-    }
-
-    public void setRegisterType(Integer registerType) {
-        this.registerType = registerType;
-    }
-
-    public Integer getRegisterType() {
-        return registerType;
-    }
-
-    public void setRemark(String remark) {
-        this.remark = remark;
-    }
-
-    public String getRemark() {
-        return remark;
-    }
-
-    public void setFarmId(String farmId) {
-        this.farmId = farmId;
-    }
-
-    public String getFarmId() {
-        return farmId;
-    }
-
-    public void setActiveStatus(Integer activeStatus) {
-        this.activeStatus = activeStatus;
-    }
-
-    public Integer getActiveStatus() {
-        return activeStatus;
-    }
-
-    public void setActiveTime(Timestamp activeTime) {
-        this.activeTime = activeTime;
-    }
-
-    public Timestamp getActiveTime() {
-        return activeTime;
-    }
-
-    public void setLiveStatus(Integer liveStatus) {
-        this.liveStatus = liveStatus;
-    }
-
-    public Integer getLiveStatus() {
-        return liveStatus;
-    }
-
-    public void setCreateDate(Date createDate) {
-        this.createDate = createDate;
-    }
-
-    public Date getCreateDate() {
-        return createDate;
-    }
-
-    public void setBat(Integer bat) {
-        this.bat = bat;
-    }
-
-    public Integer getBat() {
-        return bat;
-    }
-
-    @Override
-    public String toString() {
-        return "EartagEartagRegisterEntity{" +
-                "id=" + id + '\'' +
-                "earmark=" + earmark + '\'' +
-                "firstTime=" + firstTime + '\'' +
-                "lastTime=" + lastTime + '\'' +
-                "firstDevice=" + firstDevice + '\'' +
-                "belongDevice=" + belongDevice + '\'' +
-                "lastDevice=" + lastDevice + '\'' +
-                "registerTime=" + registerTime + '\'' +
-                "registerType=" + registerType + '\'' +
-                "remark=" + remark + '\'' +
-                "farmId=" + farmId + '\'' +
-                "activeStatus=" + activeStatus + '\'' +
-                "activeTime=" + activeTime + '\'' +
-                "liveStatus=" + liveStatus + '\'' +
-                "createDate=" + createDate + '\'' +
-                "bat=" + bat + '\'' +
-                '}';
-    }
 }
 }

+ 4 - 19
huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/entity/SysBaseConfigEntity.java

@@ -1,29 +1,17 @@
-/*
 package com.huimv.eartag2.common.dao.entity;
 package com.huimv.eartag2.common.dao.entity;
 
 
-import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.Data;
-import lombok.NoArgsConstructor;
-import org.springframework.stereotype.Component;
+import lombok.experimental.Accessors;
 
 
 import javax.persistence.*;
 import javax.persistence.*;
 import java.io.Serializable;
 import java.io.Serializable;
 
 
-*/
-/**
- * @Description: 基础配置信息表
- * @Author: 静静
- * @CreateTime: 2022-07-19  08:44
- * @Version: 1.0
- *//*
-
 @Entity
 @Entity
 @Table(name = "sys_base_config")
 @Table(name = "sys_base_config")
-@AllArgsConstructor
-@NoArgsConstructor
 @Data
 @Data
-@Component
+@Accessors(chain = true)
 public class SysBaseConfigEntity implements Serializable {
 public class SysBaseConfigEntity implements Serializable {
+
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;
 
 
     @Id
     @Id
@@ -40,10 +28,7 @@ public class SysBaseConfigEntity implements Serializable {
     @Column(name = "config_value")
     @Column(name = "config_value")
     private String configValue;
     private String configValue;
 
 
-    @Column(name = "area_name")
-    private String areaName;
-
     @Column(name = "row_id")
     @Column(name = "row_id")
     private String rowId;
     private String rowId;
+
 }
 }
-*/

+ 14 - 0
huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/repo/BasePigpenEntityRepo.java

@@ -0,0 +1,14 @@
+package com.huimv.eartag2.common.dao.repo;
+
+import com.huimv.eartag2.common.dao.entity.BasePigpenEntity;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
+
+import java.util.List;
+
+public interface BasePigpenEntityRepo extends JpaRepository<BasePigpenEntity, Integer>, JpaSpecificationExecutor<BasePigpenEntity> {
+    @Query(nativeQuery=true, value="SELECT * FROM base_pigpen WHERE id IN(?1,?2)")
+    public abstract List<BasePigpenEntity> getPigpenByPigpenIdAndUnitId(Integer paramInteger1, Integer paramInteger2);
+
+}

+ 9 - 0
huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/repo/BaseStageEntityRepo.java

@@ -0,0 +1,9 @@
+package com.huimv.eartag2.common.dao.repo;
+
+import com.huimv.eartag2.common.dao.entity.BaseStageEntity;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+
+public interface BaseStageEntityRepo extends JpaRepository<BaseStageEntity, Integer>, JpaSpecificationExecutor<BaseStageEntity> {
+
+}

+ 14 - 0
huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/repo/BizBaseStageEntityRepo.java

@@ -0,0 +1,14 @@
+package com.huimv.eartag2.common.dao.repo;
+
+import com.huimv.eartag2.common.dao.entity.BizBaseStageEntity;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
+
+import java.util.Optional;
+
+public interface BizBaseStageEntityRepo extends JpaRepository<BizBaseStageEntity, Integer>, JpaSpecificationExecutor<BizBaseStageEntity> {
+    @Query(nativeQuery=true, value="SELECT * FROM biz_base_stage WHERE stage_code=?1")
+    public abstract Optional<BizBaseStageEntity> getStageByStageCode(String paramString);
+
+}

+ 15 - 0
huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/repo/EartagData2EntityRepo.java

@@ -0,0 +1,15 @@
+package com.huimv.eartag2.common.dao.repo;
+
+import com.huimv.eartag2.common.dao.entity.EartagData2Entity;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
+
+import java.util.List;
+import java.util.Optional;
+
+public interface EartagData2EntityRepo extends JpaRepository<EartagData2Entity, Integer>, JpaSpecificationExecutor<EartagData2Entity> {
+
+    @Query(nativeQuery = true,value = "SELECT * FROM eartag_data2 WHERE earmark=?1 ORDER BY add_time DESC LIMIT 1")
+    Optional<EartagData2Entity> getLastByEarmark(String earmark);
+}

+ 1 - 0
huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/repo/EartagDataRepo.java

@@ -25,4 +25,5 @@ public interface EartagDataRepo extends JpaRepository<EartagDataEntity, Integer>
 
 
     @Query(nativeQuery = true,value = "SELECT * FROM eartag_data WHERE earmark=?1 ORDER BY id DESC   LIMIT 1,50 ")
     @Query(nativeQuery = true,value = "SELECT * FROM eartag_data WHERE earmark=?1 ORDER BY id DESC   LIMIT 1,50 ")
     List<EartagDataEntity> listTemByEartag(String earmark);
     List<EartagDataEntity> listTemByEartag(String earmark);
+
 }
 }

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

@@ -32,6 +32,8 @@ public interface EartagDeviceRegisterRepo extends JpaRepository<EartagDeviceRegi
     @Query(nativeQuery = true,value = "SELECT * FROM eartag_device_register WHERE chip_id=?1")
     @Query(nativeQuery = true,value = "SELECT * FROM eartag_device_register WHERE chip_id=?1")
     EartagDeviceRegisterEntity getByChipId(String chipId);
     EartagDeviceRegisterEntity getByChipId(String chipId);
 
 
+    @Query(nativeQuery=true, value="SELECT * FROM eartag_device_register WHERE device_code=?1")
+    EartagDeviceRegisterEntity getByDeviceCode(String paramString);
 
 
     @Query(value = "update eartag_device_register set sync_time=?1 where chip_id=?2" ,nativeQuery = true)
     @Query(value = "update eartag_device_register set sync_time=?1 where chip_id=?2" ,nativeQuery = true)
     @Modifying
     @Modifying

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

@@ -0,0 +1,13 @@
+package com.huimv.eartag2.common.dao.repo;
+
+import com.huimv.eartag2.common.dao.entity.EartagEartagRegister2Entity;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
+
+public interface EartagEartagRegister2EntityRepo extends JpaRepository<EartagEartagRegister2Entity, Integer>, JpaSpecificationExecutor<EartagEartagRegister2Entity> {
+
+    @Query(nativeQuery=true, value="SELECT * FROM eartag_eartag_register2 WHERE farm_id=?2 AND earmark=?1")
+    EartagEartagRegister2Entity getOneByEarmark(String earmark,String farmId);
+
+}

+ 14 - 0
huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/repo/SysBaseConfigEntityRepo.java

@@ -0,0 +1,14 @@
+package com.huimv.eartag2.common.dao.repo;
+
+import com.huimv.eartag2.common.dao.entity.SysBaseConfigEntity;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
+
+import java.util.Optional;
+
+public interface SysBaseConfigEntityRepo extends JpaRepository<SysBaseConfigEntity, Integer>, JpaSpecificationExecutor<SysBaseConfigEntity> {
+
+    @Query(nativeQuery = true,value = "SELECT * FROM sys_base_config WHERE config_key=?1")
+    Optional<SysBaseConfigEntity> getConfigValue(String timeDifference);
+}

+ 6 - 6
huimv-eartag2-platform/huimv-eartag2-eartag/pom.xml

@@ -56,12 +56,12 @@
             <groupId>org.springframework.boot</groupId>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-actuator</artifactId>
             <artifactId>spring-boot-starter-actuator</artifactId>
         </dependency>
         </dependency>
-        <dependency>
-            <groupId>com.huimv</groupId>
-            <artifactId>huimv-eartag2-common</artifactId>
-            <version>0.0.2-SNAPSHOT</version>
-            <scope>compile</scope>
-        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>com.huimv</groupId>-->
+<!--            <artifactId>huimv-eartag2-common</artifactId>-->
+<!--            <version>0.0.2-SNAPSHOT</version>-->
+<!--            <scope>compile</scope>-->
+<!--        </dependency>-->
     </dependencies>
     </dependencies>
 
 
     <build>
     <build>

+ 28 - 28
huimv-eartag2-platform/huimv-eartag2-eartag/src/main/java/com/huimv/eartag2/eartag/listener/EartagListener.java

@@ -33,19 +33,18 @@ public class EartagListener {
     private IEartagService eartagService;
     private IEartagService eartagService;
 
 
     /**
     /**
-     * @Method      : processRawdata
+     * @Method : processRawdata
      * @Description :
      * @Description :
-     * @Params      : [RawMap]
-     * @Return      : void
-     *
-     * @Author      : ZhuoNing
-     * @Date        : 2022/3/12
-     * @Time        : 17:53
+     * @Params : [RawMap]
+     * @Return : void
+     * @Author : ZhuoNing
+     * @Date : 2022/3/12
+     * @Time : 17:53
      */
      */
     @RabbitListener(queues = Const.QUEUE_ASK_EARTAG)
     @RabbitListener(queues = Const.QUEUE_ASK_EARTAG)
     @RabbitHandler
     @RabbitHandler
     public void processRawdata(Map RawMap) throws ParseException {
     public void processRawdata(Map RawMap) throws ParseException {
-        System.out.println("<<<<<<<<<<<<<<< RawMap>>"+RawMap.toString());
+        System.out.println("<<<<<<<<<<<<<<< RawMap>>" + RawMap.toString());
         String askText = RawMap.get("askText").toString();
         String askText = RawMap.get("askText").toString();
         System.out.println("<<<<<<<<<<<<<<<<<<<<<<< 处理耳标 <<<<<<<<<<<<<<<<<<<<<<<");
         System.out.println("<<<<<<<<<<<<<<<<<<<<<<< 处理耳标 <<<<<<<<<<<<<<<<<<<<<<<");
         //本模块主要执行保存以下4类数据:(其他注册数据,在线数据,状态数据等都是由其他模块工程执行处理-process2模块工程)
         //本模块主要执行保存以下4类数据:(其他注册数据,在线数据,状态数据等都是由其他模块工程执行处理-process2模块工程)
@@ -58,10 +57,18 @@ public class EartagListener {
         Map askMap = handleAskText(askText);
         Map askMap = handleAskText(askText);
         String type = askMap.get("type").toString();
         String type = askMap.get("type").toString();
         JSONObject dataJo = (JSONObject) askMap.get("data");
         JSONObject dataJo = (JSONObject) askMap.get("data");
-        System.out.println("## dataJo>>"+dataJo);
+        System.out.println("## dataJo>>" + dataJo);
         //
         //
         String earmark = dataJo.getString("earmark");
         String earmark = dataJo.getString("earmark");
-        System.out.println("earmark>>"+earmark);
+        System.out.println("earmark>>" + earmark);
+
+        //正式代码
+        if (type.trim().equalsIgnoreCase("eartag")) {
+            System.out.println("askText>>" + askText);
+            //{处理耳标数据}
+            eartagService.handleEartag(dataJo);
+        }
+
         //测试代码(属于测试耳标才能进行测试)
         //测试代码(属于测试耳标才能进行测试)
 //        if(checkTestRange(earmark)){
 //        if(checkTestRange(earmark)){
 //            if(type.trim().equalsIgnoreCase("eartag")){
 //            if(type.trim().equalsIgnoreCase("eartag")){
@@ -71,30 +78,23 @@ public class EartagListener {
 //        }else{
 //        }else{
 //            System.out.println("## 已过滤非测试耳标");
 //            System.out.println("## 已过滤非测试耳标");
 //        }
 //        }
-//        //正式代码
-        if(type.trim().equalsIgnoreCase("eartag")){
-            System.out.println("askText>>"+askText);
-            //{处理耳标数据}
-            eartagService.handleEartag(dataJo);
-        }
     }
     }
 
 
     private boolean checkTestRange(String earmark) {
     private boolean checkTestRange(String earmark) {
         Long c = Long.parseLong(earmark);
         Long c = Long.parseLong(earmark);
         Long a = 122083123610001L;
         Long a = 122083123610001L;
         Long b = 122083123610100L;
         Long b = 122083123610100L;
-        return (c>=a && c<b) || (c>a && c<=b);
+        return (c >= a && c < b) || (c > a && c <= b);
     }
     }
 
 
     /**
     /**
-     * @Method      : handleAskText
+     * @Method : handleAskText
      * @Description : 处理请求
      * @Description : 处理请求
-     * @Params      : [askText]
-     * @Return      : java.util.Map
-     *
-     * @Author      : ZhuoNing
-     * @Date        : 2022/2/9
-     * @Time        : 13:38
+     * @Params : [askText]
+     * @Return : java.util.Map
+     * @Author : ZhuoNing
+     * @Date : 2022/2/9
+     * @Time : 13:38
      */
      */
     private Map handleAskText(String askText) {
     private Map handleAskText(String askText) {
         Map outMap = new HashMap();
         Map outMap = new HashMap();
@@ -135,7 +135,7 @@ public class EartagListener {
                 String[] otherArray = other.split("#");
                 String[] otherArray = other.split("#");
                 String resi = otherArray[2];
                 String resi = otherArray[2];
                 int resiInt = Integer.parseInt(resi);
                 int resiInt = Integer.parseInt(resi);
-                if(resiInt != 0){
+                if (resiInt != 0) {
                     Double temp = MathUtil.ln(resiInt);
                     Double temp = MathUtil.ln(resiInt);
                     earTemp = new BigDecimal(temp).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
                     earTemp = new BigDecimal(temp).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
                 }
                 }
@@ -155,7 +155,7 @@ public class EartagListener {
             dataJo.put("earTemp1", earTemp);
             dataJo.put("earTemp1", earTemp);
             //环境温度
             //环境温度
             dataJo.put("envTemp", dataArray[5]);
             dataJo.put("envTemp", dataArray[5]);
-            dataJo.put("envTemp1", MathUtil.countEnvtemp(dataArray[5],2));
+            dataJo.put("envTemp1", MathUtil.countEnvtemp(dataArray[5], 2));
             //运动量
             //运动量
             dataJo.put("act", dataArray[6]);
             dataJo.put("act", dataArray[6]);
             dataJo.put("act1", act1Int);
             dataJo.put("act1", act1Int);
@@ -167,8 +167,8 @@ public class EartagListener {
             dataJo.put("other", dataArray[9]);
             dataJo.put("other", dataArray[9]);
             type = "eartag";
             type = "eartag";
         }
         }
-        outMap.put("type",type);
-        outMap.put("data",dataJo);
+        outMap.put("type", type);
+        outMap.put("data", dataJo);
         return outMap;
         return outMap;
     }
     }
 }
 }

+ 2 - 0
huimv-eartag2-platform/huimv-eartag2-eartag/src/main/java/com/huimv/eartag2/eartag/service/ICacheService.java

@@ -98,4 +98,6 @@ public interface ICacheService {
 
 
     //设置耳标上次运动数值
     //设置耳标上次运动数值
     void putEartagAct(String earmark, String nowAct);
     void putEartagAct(String earmark, String nowAct);
+
+    void putEartagFlowToCache(String earmark, EartagData2Entity dataEntity);
 }
 }

+ 3 - 0
huimv-eartag2-platform/huimv-eartag2-eartag/src/main/java/com/huimv/eartag2/eartag/service/IEartagService.java

@@ -11,4 +11,7 @@ public interface IEartagService {
 
 
     //
     //
     void handleEartag(JSONObject dataJo) throws ParseException;
     void handleEartag(JSONObject dataJo) throws ParseException;
+
+    // 统计指定是时间内的耳标上传次数
+//    Boolean countTimesByInTime(String earmark, Timestamp nowTimestamp);
 }
 }

+ 21 - 0
huimv-eartag2-platform/huimv-eartag2-eartag/src/main/java/com/huimv/eartag2/eartag/service/impl/CacheServiceImpl.java

@@ -518,6 +518,27 @@ public class CacheServiceImpl implements ICacheService {
         redisTemplate.opsForHash().putAll(BizConst.EARTAG_FLOW_PREFIX+earmark, map);
         redisTemplate.opsForHash().putAll(BizConst.EARTAG_FLOW_PREFIX+earmark, map);
     }
     }
 
 
+    @Override
+    public void putEartagFlowToCache(String earmark, EartagData2Entity dataEntity) {
+        Map<String, String> map = new HashMap<>();
+        map.put("cmdHeader", dataEntity.getCmdHeader());
+        map.put("device", dataEntity.getDevice());
+        map.put("earmark", dataEntity.getEarmark());
+        map.put("bat", dataEntity.getBat().toString());
+        map.put("earTemp", dataEntity.getEarTemp().toString());
+        map.put("earTemp1", dataEntity.getEarTemp1().toString());
+        map.put("envTemp", dataEntity.getEnvTemp().toString());
+        map.put("envTemp1", dataEntity.getEnvTemp1().toString());
+        map.put("act", dataEntity.getAct().toString());
+        map.put("act1", dataEntity.getAct1().toString());
+        map.put("signal1", dataEntity.getSignal1().toString());
+        map.put("askTime", dataEntity.getAskTime());
+        map.put("other", dataEntity.getOther());
+        map.put("addTime", dataEntity.getAddTime().toString());
+        //为hash结构设置多个键值对(hmset)
+        redisTemplate.opsForHash().putAll(BizConst.EARTAG_FLOW_PREFIX+earmark, map);
+    }
+
     /**
     /**
      * @Method : RegisterEntityToMap
      * @Method : RegisterEntityToMap
      * @Description :
      * @Description :

+ 116 - 65
huimv-eartag2-platform/huimv-eartag2-eartag/src/main/java/com/huimv/eartag2/eartag/service/impl/EartagServiceImpl.java

@@ -1,7 +1,5 @@
 package com.huimv.eartag2.eartag.service.impl;
 package com.huimv.eartag2.eartag.service.impl;
 
 
-import cn.hutool.core.convert.Convert;
-import cn.hutool.core.date.DateTime;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.huimv.eartag2.common.dao.entity.*;
 import com.huimv.eartag2.common.dao.entity.*;
 import com.huimv.eartag2.common.dao.repo.*;
 import com.huimv.eartag2.common.dao.repo.*;
@@ -18,9 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
-import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
-import java.sql.Time;
 import java.sql.Timestamp;
 import java.sql.Timestamp;
 import java.text.ParseException;
 import java.text.ParseException;
 import java.util.*;
 import java.util.*;
@@ -45,6 +41,8 @@ public class EartagServiceImpl implements IEartagService {
     @Autowired
     @Autowired
     private EartagDataRepo eartagDataRepo;
     private EartagDataRepo eartagDataRepo;
     @Autowired
     @Autowired
+    private EartagData2EntityRepo eartagData2Repo;
+    @Autowired
     private ICacheService cacheService;
     private ICacheService cacheService;
     @Autowired
     @Autowired
     private IDeviceService deviceService;
     private IDeviceService deviceService;
@@ -62,6 +60,12 @@ public class EartagServiceImpl implements IEartagService {
     private EartagDeviceRegisterRepo deviceRegisterRepo;
     private EartagDeviceRegisterRepo deviceRegisterRepo;
     @Autowired
     @Autowired
     private EartagDeviceOnlineRepo eartagDeviceOnlineRepo;
     private EartagDeviceOnlineRepo eartagDeviceOnlineRepo;
+    @Autowired
+    private EartagData2EntityRepo eartagData2EntityRepo;
+    @Autowired
+    private SysBaseConfigEntityRepo sysBaseConfigEntityRepo;
+    @Autowired
+    private EartagEartagRegister2EntityRepo eartagEartagRegister2EntityRepo;
 
 
     @Override
     @Override
     public void handleEartag(JSONObject dataJo) throws ParseException {
     public void handleEartag(JSONObject dataJo) throws ParseException {
@@ -80,11 +84,11 @@ public class EartagServiceImpl implements IEartagService {
         //获取牧场id
         //获取牧场id
         String farmId = deviceService.getFarmIdByDeviceCode(deviceCode);
         String farmId = deviceService.getFarmIdByDeviceCode(deviceCode);
         if (farmId != null) {
         if (farmId != null) {
-            //{保存耳标流水}
+            //{保存耳标流水(所有耳标数据,可能重复上传)}
             saveEartagFlow(dataJo, nowTimestamp, todayDate, farmId);
             saveEartagFlow(dataJo, nowTimestamp, todayDate, farmId);
 
 
+            //{保存耳标流水,过滤设定时间范围重复耳标上传数据}
             saveEartagFlow2(dataJo, nowTimestamp, todayDate, farmId);
             saveEartagFlow2(dataJo, nowTimestamp, todayDate, farmId);
-            System.out.println("deviceCode >>>>>>>>>>>>>>>>>" + deviceCode);
 
 
             //{更新设备注册信息}
             //{更新设备注册信息}
             updateDeviceRegister(deviceCode, nowTimestamp, todayDate, farmId);
             updateDeviceRegister(deviceCode, nowTimestamp, todayDate, farmId);
@@ -117,6 +121,52 @@ public class EartagServiceImpl implements IEartagService {
         }
         }
     }
     }
 
 
+
+    /**
+     * @Method      : countTimesByInTime
+     * @Description :
+     * @Params      : [earmark, nowTimestamp]
+     * @Return      : java.lang.Boolean
+     *
+     * @Author      : ZhuoNing
+     * @Date        : 2022/8/5
+     * @Time        : 14:16
+     */
+    public Map countTimesByInTime(String earmark, Timestamp nowTimestamp) {
+        Map countMap = new HashMap();
+        //
+        Optional<EartagData2Entity> optionEartagData = eartagData2Repo.getLastByEarmark(earmark);
+        if (!optionEartagData.isPresent()) {
+            log.info("该耳标号无数据["+earmark+"].");
+            countMap.put("countTimes",true);
+            countMap.put("act",0);
+            return countMap;
+        } else {
+            EartagData2Entity eartagData2Entity = optionEartagData.get();
+            Timestamp addTime = eartagData2Entity.getAddTime();
+            Integer act = eartagData2Entity.getAct();
+            long timeDifference = nowTimestamp.getTime() - addTime.getTime();
+            int setTimeDiff = 5;
+            Optional<SysBaseConfigEntity> optionConfig = sysBaseConfigEntityRepo.getConfigValue("timeDifference");
+            if (optionConfig.isPresent()) {
+                setTimeDiff = Integer.parseInt(optionConfig.get().getConfigValue());
+                log.info("耳标数据过滤时间差="+setTimeDiff);
+            }else{
+                log.error("耳标数据过滤时间差属性未配置.");
+            }
+            if (timeDifference / 1000 < setTimeDiff) {
+                // 同一耳标数据距上一次上传数据时间<5秒,视为被其他基站上传。
+                countMap.put("countTimes",false);
+                return countMap;
+            } else {
+                // 同一耳标数据距上一次上传数据时间>5
+                countMap.put("countTimes",true);
+                countMap.put("act",act);
+                return countMap;
+            }
+        }
+    }
+
     /**
     /**
      * @Method : updateDeviceOnline
      * @Method : updateDeviceOnline
      * @Description : 更新设备在线统计
      * @Description : 更新设备在线统计
@@ -494,9 +544,9 @@ public class EartagServiceImpl implements IEartagService {
     }
     }
 
 
     @Autowired
     @Autowired
-    private BasePigpenRepo basePigpenRepo;
+    private BasePigpenEntityRepo basePigpenRepo;
     @Autowired
     @Autowired
-    private BizBaseStageRepo bizBaseStageRepo;
+    private BizBaseStageEntityRepo bizBaseStageRepo;
 
 
     //更新耳标注册数据
     //更新耳标注册数据
     public void updateEartagRegister(String earmark, String deviceCode, String bat, Timestamp nowTimestamp, java.sql.Date todayDate, String farmId) {
     public void updateEartagRegister(String earmark, String deviceCode, String bat, Timestamp nowTimestamp, java.sql.Date todayDate, String farmId) {
@@ -562,9 +612,6 @@ public class EartagServiceImpl implements IEartagService {
         }
         }
     }
     }
 
 
-    @Autowired
-    private EartagEartagRegister2EntityRepo eartagEartagRegister2EntityRepo;
-
     /**
     /**
      * @Method : updateEartagRegister2
      * @Method : updateEartagRegister2
      * @Description :
      * @Description :
@@ -600,7 +647,7 @@ public class EartagServiceImpl implements IEartagService {
         //-- 获取阶段名称 --//
         //-- 获取阶段名称 --//
         Optional<BizBaseStageEntity> optionalBizBaseStageEntity = bizBaseStageRepo.getStageByStageCode(stageCode);
         Optional<BizBaseStageEntity> optionalBizBaseStageEntity = bizBaseStageRepo.getStageByStageCode(stageCode);
         if (!optionalBizBaseStageEntity.isPresent()) {
         if (!optionalBizBaseStageEntity.isPresent()) {
-            log.error("该阶段不存在["+stageCode+"].");
+            log.error("该阶段不存在[" + stageCode + "].");
             return;
             return;
         }
         }
         BizBaseStageEntity bizBaseStageEntity = optionalBizBaseStageEntity.get();
         BizBaseStageEntity bizBaseStageEntity = optionalBizBaseStageEntity.get();
@@ -702,7 +749,7 @@ public class EartagServiceImpl implements IEartagService {
         newEartagRegisterEntity.setAskTime(getAskTime(eartagJo.getString("askTime")));
         newEartagRegisterEntity.setAskTime(getAskTime(eartagJo.getString("askTime")));
         newEartagRegisterEntity.setOther(eartagJo.getString("other"));
         newEartagRegisterEntity.setOther(eartagJo.getString("other"));
 
 
-        System.out.println("newEartagRegisterEntity>>"+newEartagRegisterEntity.toString());
+        System.out.println("newEartagRegisterEntity>>" + newEartagRegisterEntity.toString());
 
 
         eartagEartagRegister2EntityRepo.saveAndFlush(newEartagRegisterEntity);
         eartagEartagRegister2EntityRepo.saveAndFlush(newEartagRegisterEntity);
         //{更新耳标注册消息缓存}
         //{更新耳标注册消息缓存}
@@ -810,65 +857,69 @@ public class EartagServiceImpl implements IEartagService {
         dataEntity.setCreateDate(todayDate);
         dataEntity.setCreateDate(todayDate);
         dataEntity.setFarmId(farmId);
         dataEntity.setFarmId(farmId);
         dataEntity.setAskDate(new java.sql.Date(dateUtil.parseDate(getAskDate(eartagJo.getString("askTime"))).getTime()));
         dataEntity.setAskDate(new java.sql.Date(dateUtil.parseDate(getAskDate(eartagJo.getString("askTime"))).getTime()));
-
-
         eartagDataRepo.saveAndFlush(dataEntity);
         eartagDataRepo.saveAndFlush(dataEntity);
 
 
         //最新的耳标数据覆盖老数据
         //最新的耳标数据覆盖老数据
-        cacheService.putEartagFlowToCache(dataEntity.getEarmark(), dataEntity);
+//        cacheService.putEartagFlowToCache(dataEntity.getEarmark(), dataEntity);
     }
     }
 
 
+    /**
+     * @Method : saveEartagFlow2
+     * @Description :
+     * @Params : [eartagJo, nowTimestamp, todayDate, farmId]
+     * @Return : void
+     * @Author : ZhuoNing
+     * @Date : 2022/8/5
+     * @Time : 10:53
+     */
     public void saveEartagFlow2(JSONObject eartagJo, Timestamp nowTimestamp, java.sql.Date todayDate, String farmId) throws ParseException {
     public void saveEartagFlow2(JSONObject eartagJo, Timestamp nowTimestamp, java.sql.Date todayDate, String farmId) throws ParseException {
-        DateUtil dateUtil = new DateUtil();
-        //判断近五分钟内是否有耳标数据 先获取耳标号
+        // 判断近五分钟内是否有耳标数据 先获取耳标号
         String earmark = eartagJo.getString("earmark");
         String earmark = eartagJo.getString("earmark");
-//        List<EartagData2> eartagFlowByEarmark = eartagData2Service.getEartagData(earmark);
-//        if (null == eartagFlowByEarmark ||eartagFlowByEarmark.size() == 0 ){
-//            //插数据到数据库里
-//            EartagData2 dataEntity2 = new EartagData2();
-//            dataEntity2.setCmdHeader(eartagJo.getString("cmdHeader"));
-//            dataEntity2.setDevice(eartagJo.getString("device"));
-//            dataEntity2.setEarmark(eartagJo.getString("earmark"));
-//            dataEntity2.setBat(Integer.parseInt(eartagJo.getString("bat")));
-//            dataEntity2.setEarTemp(Integer.parseInt(eartagJo.getString("earTemp")));
-//            dataEntity2.setEarTemp1(eartagJo.getFloat("earTemp1"));
-//            dataEntity2.setEnvTemp(Integer.parseInt(eartagJo.getString("envTemp")));
-//            dataEntity2.setEnvTemp1(eartagJo.getFloat("envTemp1"));
-//            dataEntity2.setAct(Integer.parseInt(eartagJo.getString("act")));
-//            dataEntity2.setAct1(Integer.parseInt(eartagJo.getString("act1")));
-//            dataEntity2.setSignal1(Integer.parseInt(eartagJo.getString("signal")));
-//            Date date = Convert.toDate(getAskTime(eartagJo.getString("askTime")));
-//            Date date1 = new Date();
-//            Timestamp timestamp = new Timestamp(date1.getTime());
-//            dataEntity2.setAskTime(timestamp);
-//            dataEntity2.setOther(eartagJo.getString("other"));
-//            dataEntity2.setAddTime(nowTimestamp);
-//            dataEntity2.setCreateDate(todayDate);
-//            dataEntity2.setFarmId(farmId);
-//            dataEntity2.setAskDate(new java.sql.Date(dateUtil.parseDate(getAskDate(eartagJo.getString("askTime"))).getTime()));
-//            eartagData2Mapper.insert(dataEntity2);
-//        }else {
-//            EartagData2 eartagData2 = eartagFlowByEarmark.get(0);
-//            eartagData2.setCmdHeader(eartagJo.getString("cmdHeader"));
-//            eartagData2.setDevice(eartagJo.getString("device"));
-//            eartagData2.setEarmark(eartagJo.getString("earmark"));
-//            eartagData2.setBat(Integer.parseInt(eartagJo.getString("bat")));
-//            eartagData2.setEarTemp(Integer.parseInt(eartagJo.getString("earTemp")));
-//            eartagData2.setEarTemp1(eartagJo.getFloat("earTemp1"));
-//            eartagData2.setEnvTemp(Integer.parseInt(eartagJo.getString("envTemp")));
-//            eartagData2.setEnvTemp1(eartagJo.getFloat("envTemp1"));
-//            eartagData2.setAct(Integer.parseInt(eartagJo.getString("act")));
-//            eartagData2.setAct1(Integer.parseInt(eartagJo.getString("act1")));
-//            eartagData2.setSignal1(Integer.parseInt(eartagJo.getString("signal")));
-//            Date date = Convert.toDate(getAskTime(eartagJo.getString("askTime")));
-//            Timestamp timestamp = new Timestamp(date.getTime());
-//            eartagData2.setAskTime(timestamp);
-//            eartagData2.setOther(eartagJo.getString("other"));
-//            eartagData2.setCreateDate(todayDate);
-//            eartagData2.setFarmId(farmId);
-//            eartagData2.setAskDate(new java.sql.Date(dateUtil.parseDate(getAskDate(eartagJo.getString("askTime"))).getTime()));
-//            eartagData2Mapper.updateById(eartagData2);
-//        }
+        System.out.println("earmark ====================================="+earmark);
+        //
+        Map countMap = countTimesByInTime(earmark, nowTimestamp);
+        Boolean countTimes = Boolean.parseBoolean(countMap.get("countTimes").toString());
+        //true:设定过滤时间内无耳标数据上传入库;false:有数据入库;
+        if(countTimes){
+            Integer act1 = 0;
+            Integer act = Integer.parseInt(eartagJo.getString("act"));
+            Integer lastAct = Integer.parseInt(countMap.get("act").toString());
+            // 耳标重启之后运动量可能为0
+            if(act > 0){
+                act1 = act - lastAct;
+            }
+            System.out.println("act ====================="+act);
+            System.out.println("lastAct ====================="+lastAct);
+            DateUtil dateUtil = new DateUtil();
+            EartagData2Entity dataEntity = new EartagData2Entity();
+            dataEntity.setCmdHeader(eartagJo.getString("cmdHeader"));
+            dataEntity.setDevice(eartagJo.getString("device"));
+            dataEntity.setEarmark(eartagJo.getString("earmark"));
+            dataEntity.setBat(Integer.parseInt(eartagJo.getString("bat")));
+            dataEntity.setEarTemp(Integer.parseInt(eartagJo.getString("earTemp")));
+            dataEntity.setEarTemp1(eartagJo.getFloat("earTemp1"));
+            dataEntity.setEnvTemp(Integer.parseInt(eartagJo.getString("envTemp")));
+            dataEntity.setEnvTemp1(eartagJo.getFloat("envTemp1"));
+            dataEntity.setAct(act);
+            dataEntity.setAct1(act1);
+            dataEntity.setSignal1(Integer.parseInt(eartagJo.getString("signal")));
+            dataEntity.setAskTime(getAskTime(eartagJo.getString("askTime")));
+            dataEntity.setOther(eartagJo.getString("other"));
+            dataEntity.setAddTime(nowTimestamp);
+            dataEntity.setCreateDate(todayDate);
+            dataEntity.setFarmId(farmId);
+            dataEntity.setAskDate(new java.sql.Date(dateUtil.parseDate(getAskDate(eartagJo.getString("askTime"))).getTime()));
+            eartagData2EntityRepo.saveAndFlush(dataEntity);
+            //更新耳标注册表中的运动量数据
+            EartagEartagRegister2Entity eartagRegister2Entity = eartagEartagRegister2EntityRepo.getOneByEarmark(earmark, farmId);
+            if(eartagRegister2Entity != null){
+                System.out.println("更新耳标="+earmark+","+act1);
+                eartagRegister2Entity.setAct(act1);
+                eartagEartagRegister2EntityRepo.saveAndFlush(eartagRegister2Entity);
+            }
+            //最新的耳标数据覆盖老数据
+            cacheService.putEartagFlowToCache(dataEntity.getEarmark(), dataEntity);
+        }
     }
     }
 
 
     //
     //