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

【feat】将耳标信息存入对应的过滤的表中

chengjing 2 éve
szülő
commit
e8430606a0

+ 241 - 0
huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/entity/EartagDataEntity2.java

@@ -0,0 +1,241 @@
+package com.huimv.eartag2.common.dao.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.sql.Date;
+import java.sql.Timestamp;
+
+@Entity
+@Table(name = "eartag_data2")
+public class EartagDataEntity2 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")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date createDate;
+
+    @Column(name = "farm_id")
+    private String farmId;
+
+    @Column(name = "ask_date")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date askDate;
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setCmdHeader(String cmdHeader) {
+        this.cmdHeader = cmdHeader;
+    }
+
+    public String getCmdHeader() {
+        return cmdHeader;
+    }
+
+    public void setDevice(String device) {
+        this.device = device;
+    }
+
+    public String getDevice() {
+        return device;
+    }
+
+    public void setEarmark(String earmark) {
+        this.earmark = earmark;
+    }
+
+    public String getEarmark() {
+        return earmark;
+    }
+
+    public void setBat(Integer bat) {
+        this.bat = bat;
+    }
+
+    public Integer getBat() {
+        return bat;
+    }
+
+    public void setEarTemp(Integer earTemp) {
+        this.earTemp = earTemp;
+    }
+
+    public Integer getEarTemp() {
+        return earTemp;
+    }
+
+    public void setEarTemp1(Float earTemp1) {
+        this.earTemp1 = earTemp1;
+    }
+
+    public Float getEarTemp1() {
+        return earTemp1;
+    }
+
+    public void setEnvTemp(Integer envTemp) {
+        this.envTemp = envTemp;
+    }
+
+    public Integer getEnvTemp() {
+        return envTemp;
+    }
+
+    public void setEnvTemp1(Float envTemp1) {
+        this.envTemp1 = envTemp1;
+    }
+
+    public Float getEnvTemp1() {
+        return envTemp1;
+    }
+
+    public void setAct(Integer act) {
+        this.act = act;
+    }
+
+    public Integer getAct() {
+        return act;
+    }
+
+    public void setAct1(Integer act1) {
+        this.act1 = act1;
+    }
+
+    public Integer getAct1() {
+        return act1;
+    }
+
+    public void setSignal1(Integer signal1) {
+        this.signal1 = signal1;
+    }
+
+    public Integer getSignal1() {
+        return signal1;
+    }
+
+    public void setAskTime(String askTime) {
+        this.askTime = askTime;
+    }
+
+    public String getAskTime() {
+        return askTime;
+    }
+
+    public void setOther(String other) {
+        this.other = other;
+    }
+
+    public String getOther() {
+        return other;
+    }
+
+    public void setAddTime(Timestamp addTime) {
+        this.addTime = addTime;
+    }
+
+    public Timestamp getAddTime() {
+        return addTime;
+    }
+
+    public void setCreateDate(Date createDate) {
+        this.createDate = createDate;
+    }
+
+    public Date getCreateDate() {
+        return createDate;
+    }
+
+    public void setFarmId(String farmId) {
+        this.farmId = farmId;
+    }
+
+    public String getFarmId() {
+        return farmId;
+    }
+
+    public void setAskDate(Date askDate) {
+        this.askDate = askDate;
+    }
+
+    public Date getAskDate() {
+        return askDate;
+    }
+
+    @Override
+    public String toString() {
+        return "EartagDataEntity{" +
+                "id=" + id + '\'' +
+                "cmdHeader=" + cmdHeader + '\'' +
+                "device=" + device + '\'' +
+                "earmark=" + earmark + '\'' +
+                "bat=" + bat + '\'' +
+                "earTemp=" + earTemp + '\'' +
+                "earTemp1=" + earTemp1 + '\'' +
+                "envTemp=" + envTemp + '\'' +
+                "envTemp1=" + envTemp1 + '\'' +
+                "act=" + act + '\'' +
+                "act1=" + act1 + '\'' +
+                "signal1=" + signal1 + '\'' +
+                "askTime=" + askTime + '\'' +
+                "other=" + other + '\'' +
+                "addTime=" + addTime + '\'' +
+                "createDate=" + createDate + '\'' +
+                "farmId=" + farmId + '\'' +
+                "askDate=" + askDate + '\'' +
+                '}';
+    }
+}

+ 20 - 0
huimv-eartag2-platform/huimv-eartag2-common/src/main/java/com/huimv/eartag2/common/dao/repo/EartagDataRepo2.java

@@ -0,0 +1,20 @@
+package com.huimv.eartag2.common.dao.repo;
+
+
+import com.huimv.eartag2.common.dao.entity.EartagDataEntity2;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
+
+/**
+ * @Description: TODO
+ * @Author: 静静
+ * @CreateTime: 2022-07-26  09:00
+ * @Version: 1.0
+ */
+public interface EartagDataRepo2 extends JpaRepository<EartagDataEntity2, Integer>, JpaSpecificationExecutor<EartagDataEntity2> {
+
+    //
+    @Query(nativeQuery = true,value = "SELECT * FROM eartag_data2 WHERE earmark=?1 AND add_time BETWEEN add_time(now(),interval - 5 minute)")
+    EartagDataEntity2 getEartagFlowByEarmark(String earmark);
+}

+ 40 - 0
huimv-eartag2-platform/huimv-eartag2-common/src/main/test/java/com.huimv.eartag2.common/EartagTest.java

@@ -0,0 +1,40 @@
+package com.huimv.eartag2.common;
+
+import com.huimv.eartag2.common.dao.entity.EartagDataEntity;
+import com.huimv.eartag2.common.dao.entity.EartagDataEntity2;
+import com.huimv.eartag2.common.dao.repo.EartagDataRepo;
+import com.huimv.eartag2.common.dao.repo.EartagDataRepo2;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+/**
+ * @Description: TODO
+ * @Author: 静静
+ * @CreateTime: 2022-07-26  10:42
+ * @Version: 1.0
+ */
+@SpringBootTest
+public class EartagTest {
+    @Autowired
+    private EartagDataRepo2 eartagDataRepo2;
+
+    @Autowired
+    private EartagDataRepo eartagDataRepo;
+
+    @Test
+    public void test_1(){
+        EartagDataEntity2 eartagFlowByEarmark = eartagDataRepo2.getEartagFlowByEarmark("123");
+        System.out.println(eartagFlowByEarmark);
+
+    }
+
+    //122083123610011
+
+    @Test
+    public void test_2(){
+        EartagDataEntity eartagFlowByEarmark = eartagDataRepo.getLastEartagData("202007239999873");
+        System.out.println(eartagFlowByEarmark);
+
+    }
+}

+ 54 - 0
huimv-eartag2-platform/huimv-eartag2-eartag/src/main/java/com/huimv/eartag2/eartag/service/impl/EartagServiceImpl.java

@@ -13,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.sql.Time;
 import java.sql.Timestamp;
@@ -33,6 +34,8 @@ import java.util.Map;
 @Service
 @Slf4j
 public class EartagServiceImpl implements IEartagService {
+    @Resource
+    private static EartagDataRepo2 eartagDataRepo2;
     @Autowired
     private RedisTemplate redisTemplate;
     @Autowired
@@ -56,6 +59,8 @@ public class EartagServiceImpl implements IEartagService {
     @Autowired
     private EartagDeviceOnlineRepo eartagDeviceOnlineRepo;
 
+
+
     @Override
     public void handleEartag(JSONObject dataJo) throws ParseException {
         //设备编码
@@ -76,6 +81,8 @@ public class EartagServiceImpl implements IEartagService {
             //{保存耳标流水}
             saveEartagFlow(dataJo, nowTimestamp, todayDate, farmId);
 
+            saveEartagFlow2(dataJo, nowTimestamp, todayDate, farmId);
+
             //{更新设备注册信息}
             updateDeviceRegister(deviceCode, nowTimestamp, todayDate, farmId);
 
@@ -634,6 +641,53 @@ public class EartagServiceImpl implements IEartagService {
         cacheService.putEartagFlowToCache(dataEntity.getEarmark(),dataEntity);
     }
 
+    public void saveEartagFlow2(JSONObject eartagJo, Timestamp nowTimestamp, java.sql.Date todayDate, String farmId) throws ParseException {
+        DateUtil dateUtil = new DateUtil();
+        //判断近五分钟内是否有耳标数据 先获取耳标号
+        String earmark = eartagJo.getString("earmark");
+        EartagDataEntity2 eartagFlowByEarmark = eartagDataRepo2.getEartagFlowByEarmark(earmark);
+        if (null == eartagFlowByEarmark){
+            //插数据到数据库里
+            EartagDataEntity2 dataEntity2 = new EartagDataEntity2();
+            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")));
+            dataEntity2.setAskTime(getAskTime(eartagJo.getString("askTime")));
+            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()));
+            eartagDataRepo2.saveAndFlush(dataEntity2);
+        }else {
+            eartagFlowByEarmark.setCmdHeader(eartagJo.getString("cmdHeader"));
+            eartagFlowByEarmark.setDevice(eartagJo.getString("device"));
+            eartagFlowByEarmark.setEarmark(eartagJo.getString("earmark"));
+            eartagFlowByEarmark.setBat(Integer.parseInt(eartagJo.getString("bat")));
+            eartagFlowByEarmark.setEarTemp(Integer.parseInt(eartagJo.getString("earTemp")));
+            eartagFlowByEarmark.setEarTemp1(eartagJo.getFloat("earTemp1"));
+            eartagFlowByEarmark.setEnvTemp(Integer.parseInt(eartagJo.getString("envTemp")));
+            eartagFlowByEarmark.setEnvTemp1(eartagJo.getFloat("envTemp1"));
+            eartagFlowByEarmark.setAct(Integer.parseInt(eartagJo.getString("act")));
+            eartagFlowByEarmark.setAct1(Integer.parseInt(eartagJo.getString("act1")));
+            eartagFlowByEarmark.setSignal1(Integer.parseInt(eartagJo.getString("signal")));
+            eartagFlowByEarmark.setAskTime(getAskTime(eartagJo.getString("askTime")));
+            eartagFlowByEarmark.setOther(eartagJo.getString("other"));
+            eartagFlowByEarmark.setCreateDate(todayDate);
+            eartagFlowByEarmark.setFarmId(farmId);
+            eartagFlowByEarmark.setAskDate(new java.sql.Date(dateUtil.parseDate(getAskDate(eartagJo.getString("askTime"))).getTime()));
+            eartagDataRepo2.saveAndFlush(eartagFlowByEarmark);
+        }
+    }
+
     //
     public String getAskTime(String askTime) {
         String newAskTime = askTime.substring(0, 4) + "-" + askTime.substring(4, 6) + "-" + askTime.substring(6, 8) + " " + askTime.substring(8, 10) + ":" + askTime.substring(10, 12) + ":" + askTime.substring(12, 14);