523096025 1 рік тому
батько
коміт
43be3ad938

+ 7 - 14
huimv-eartag2-eartag/src/main/java/com/huimv/eartag2/eartag/listener/EartagListener.java

@@ -224,13 +224,13 @@ public class EartagListener {
     }
 
 //    @RabbitListener(queues = Const.QUEUE_EARTAG_FLOW)
-    @RabbitListener(queues = "#{'direct.eartagFlow.queue' + ${rabbitmq.queues}}")
-    @RabbitHandler
-    public void saveEartagFlow(JSONObject dataJo) {
-        log.info("开始保存耳标流水数据------>"+dataJo);
-        eartagService.saveEartagFlow(dataJo);
-
-    }
+//    @RabbitListener(queues = "#{'direct.eartagFlow.queue' + ${rabbitmq.queues}}")
+//    @RabbitHandler
+//    public void saveEartagFlow(JSONObject dataJo) {
+//        log.info("开始保存耳标流水数据------>"+dataJo);
+//        eartagService.saveEartagFlow(dataJo);
+//
+//    }
 
 //    @RabbitListener(queues = Const.QUEUE_DEVICE_REGIST)
     @RabbitListener(queues = "#{'direct.deviceRegist.queue' + ${rabbitmq.queues}}")
@@ -307,13 +307,6 @@ public class EartagListener {
 
 
 
-
-
-
-
-
-
-
     public boolean 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);
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

+ 17 - 0
huimv-eartag2-input/src/main/java/com/huimv/eartag2/mapper/EartagData2Mapper.java

@@ -0,0 +1,17 @@
+package com.huimv.eartag2.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.eartag2.pojo.EartagData;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2022-07-29
+ */
+public interface EartagData2Mapper extends BaseMapper<EartagData> {
+
+}

+ 76 - 0
huimv-eartag2-input/src/main/java/com/huimv/eartag2/pojo/EartagData.java

@@ -0,0 +1,76 @@
+package com.huimv.eartag2.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2022-07-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+//@TableName("eartag_data")
+public class EartagData implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+     private Integer id;
+
+    @TableLogic
+    private  byte isDeleted;
+
+    private String cmdHeader;
+
+    private String device;
+
+    private String earmark;
+
+    private Integer bat;
+
+    private Integer earTemp;
+
+    private Float earTemp1;
+    private Float earTemp2;
+
+    private Integer envTemp;
+
+    private Float envTemp1;
+
+    private Integer act;
+
+    private Integer act1;
+
+    private Integer signal1;
+
+//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private String  askTime;
+
+    private String other;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date addTime;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date createDate;
+
+    private String farmId;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date askDate;
+
+
+}

+ 17 - 0
huimv-eartag2-input/src/main/java/com/huimv/eartag2/service/IEartagData2Service.java

@@ -0,0 +1,17 @@
+package com.huimv.eartag2.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.eartag2.pojo.EartagData;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2022-07-29
+ */
+public interface IEartagData2Service extends IService<EartagData> {
+
+}

+ 1 - 1
huimv-eartag2-input/src/main/java/com/huimv/eartag2/service/IEartagService.java

@@ -4,5 +4,5 @@ public interface IEartagService {
     //处理耳标信息
     void handleEartagInfo();
 
-    Integer countAct(String deviceCode, String nowAct);
+    Integer countAct(String deviceCode, String nowAct,String farmId);
 }

+ 7 - 2
huimv-eartag2-input/src/main/java/com/huimv/eartag2/service/impl/DataServiceImpl.java

@@ -309,6 +309,10 @@ public class DataServiceImpl implements IDataService {
             String deviceCode = dataJo.getString("device");
             String farmId = deviceService.getFarmIdByDeviceCode(deviceCode);
             System.out.println("####### farmId=" + farmId);
+
+            Integer act1Int = eartagService.countAct(dataJo.getString("earmark"), dataJo.getString("act"),farmId);
+            dataJo.put("act1", act1Int);
+
             if (ObjectUtil.isEmpty(farmId)) {
                 log.error("出错:该请求的FarmId为空.请检查该设备编码[" + deviceCode + "]是否存在FarmId.");
                 return;
@@ -326,6 +330,7 @@ public class DataServiceImpl implements IDataService {
             rabbitTemplate.convertAndSend(Const.EXCHANGE_EARTAG_DEVICE_ONLINE, Const.ROUTING_KEY_EARTAG_DEVICE_ONLINE+i, dataJo);
             rabbitTemplate.convertAndSend(Const.EXCHANGE_ABNORMAL, Const.ROUTING_KEY_ABNORMAL+i, dataJo);
             rabbitTemplate.convertAndSend(Const.EXCHANGE_AllSTATUS, Const.ROUTING_KEY_AllSTATUS+i, dataJo);
+            return;
         }
         log.error("耳标数据有误------>"+dataJo);
 
@@ -387,7 +392,7 @@ public class DataServiceImpl implements IDataService {
 
                 }
                 //计算运动量//
-                Integer act1Int = eartagService.countAct(dataArray[2], dataArray[6]);
+
                 //命令头
                 dataJo.put("cmdHeader", dataArray[0]);
                 //采集器id
@@ -405,7 +410,7 @@ public class DataServiceImpl implements IDataService {
                 dataJo.put("envTemp1", MathUtil.countEnvtemp(dataArray[5], 2));
                 //运动量
                 dataJo.put("act", dataArray[6]);
-                dataJo.put("act1", act1Int);
+
                 //信号强度
                 dataJo.put("signal", dataArray[7]);
                 //采集时间

+ 0 - 1
huimv-eartag2-input/src/main/java/com/huimv/eartag2/service/impl/DeviceServiceImpl.java

@@ -88,7 +88,6 @@ public class DeviceServiceImpl implements IDeviceService {
     public String getFarmIdByDeviceCode(String deviceCode) {
         //
         String farmId = (String)cacheService.getFarmIdByDeviceCode(deviceCode);
-        System.out.println("####### farmId=" + farmId);
         if(farmId != null && farmId.trim().length()>0){
             return farmId;
         }else{

+ 21 - 0
huimv-eartag2-input/src/main/java/com/huimv/eartag2/service/impl/EartagData2ServiceImpl.java

@@ -0,0 +1,21 @@
+package com.huimv.eartag2.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.huimv.eartag2.mapper.EartagData2Mapper;
+import com.huimv.eartag2.pojo.EartagData;
+import com.huimv.eartag2.service.IEartagData2Service;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2022-07-29
+ */
+@Service
+public class EartagData2ServiceImpl extends ServiceImpl<EartagData2Mapper, EartagData> implements IEartagData2Service {
+
+
+}

+ 38 - 17
huimv-eartag2-input/src/main/java/com/huimv/eartag2/service/impl/EartagServiceImpl.java

@@ -1,7 +1,11 @@
 package com.huimv.eartag2.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.huimv.eartag2.common.dao.entity.EartagDataEntity;
 import com.huimv.eartag2.common.dao.repo.EartagDataRepo;
+import com.huimv.eartag2.mapper.EartagData2Mapper;
+import com.huimv.eartag2.pojo.EartagData;
 import com.huimv.eartag2.service.IEartagService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.amqp.rabbit.core.RabbitTemplate;
@@ -65,26 +69,43 @@ public class EartagServiceImpl implements IEartagService {
      * @Date : 2022/1/18
      * @Time : 15:25
      */
+    @Autowired
+    private EartagData2Mapper eartagData2Mapper;
+
     @Override
-    public Integer countAct(String deviceCode, String nowAct) {
-        //读取hash
-        Object actObj = redisTemplate.opsForHash().get(deviceCode, "act");
-        if (actObj == null) {
-            //--初始化最新的redis记录
-            initRedisObj(deviceCode);
-            Object lastAct = redisTemplate.opsForHash().get(deviceCode, "act");
-            if (lastAct == null) {
-                log.error("#--- redis数据库有问题,请检查redis是否能正常连接 ---# ");
-                return 0;
-            }
+    public Integer countAct(String earmark, String nowAct,String farmId) {
+
+        EartagData eartagData = eartagData2Mapper.selectOne(new QueryWrapper<EartagData>().eq("farm_id", farmId).eq("earmark", earmark).orderByDesc("ask_time").last("limit 1"));
+        Integer lastAct = 0;
+        if (ObjectUtil.isNotEmpty(eartagData)){
+            lastAct = eartagData.getAct();
         }
-        Object lastAct = redisTemplate.opsForHash().get(deviceCode, "act");
-        Integer act1 = Integer.parseInt(nowAct) - Integer.parseInt(lastAct.toString());
-//        redisTemplate.opsForHash().put(deviceCode, "act1", act1);
-        if(act1<0){
-            return Integer.parseInt(nowAct);
+        int nowActInt = Integer.parseInt(nowAct);
+
+        if (lastAct <nowActInt ){
+            return nowActInt - lastAct;
+        }else {
+          return   nowActInt;
         }
-        return act1;
+
+        //读取hash
+//        Object actObj = redisTemplate.opsForHash().get(deviceCode, "act");
+//        if (actObj == null) {
+//            //--初始化最新的redis记录
+//            initRedisObj(deviceCode);
+//            Object lastAct = redisTemplate.opsForHash().get(deviceCode, "act");
+//            if (lastAct == null) {
+//                log.error("#--- redis数据库有问题,请检查redis是否能正常连接 ---# ");
+//                return 0;
+//            }
+//        }
+//        Object lastAct = redisTemplate.opsForHash().get(deviceCode, "act");
+//        Integer act1 = Integer.parseInt(nowAct) - Integer.parseInt(lastAct.toString());
+////        redisTemplate.opsForHash().put(deviceCode, "act1", act1);
+//        if(act1<0){
+//            return Integer.parseInt(nowAct);
+//        }
+//        return act1;
     }
 
     /**

+ 29 - 0
huimv-eartag2-input/src/main/resources/bootstrap.yml

@@ -0,0 +1,29 @@
+spring:
+  application:
+    name: huimv-eartag2-input
+  profiles:
+    active: dev
+  cloud:
+    nacos:
+      config:
+        # 配置中心的地址
+        server-addr: 47.98.40.154:8848
+        #server-addr: 127.0.0.1:8848
+        # 配置文件prefix
+        prefix: ${spring.application.name}
+        # 配置文件的格式
+        file-extension: yaml
+        # 配置文件的环境
+        group: DEFAULT_GROUP
+        # 命名空间
+        namespace: public
+        username: nacos
+        password: nacos
+server:
+  port: 8090
+
+data:
+  input:
+    flow: 2
+  test:
+    input: 0