yang пре 3 година
родитељ
комит
f43d1d8da1

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

@@ -1,9 +1,13 @@
 package com.huimv.acquisition.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.huimv.acquisition.entity.EartagDataEntity;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
 /**
@@ -16,5 +20,6 @@ import org.springframework.stereotype.Repository;
 @Mapper
 @Repository
 public interface EartagDataDao extends BaseMapper<EartagDataEntity> {
-	
+
+    IPage<EartagDataEntity> page(@Param("page")IPage<EartagDataEntity> page,@Param(Constants.WRAPPER) LambdaQueryWrapper<EartagDataEntity> wrapper);
 }

+ 20 - 10
smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/service/impl/EartagDataServiceImpl.java

@@ -87,6 +87,7 @@ public class EartagDataServiceImpl extends ServiceImpl<EartagDataDao, EartagData
             //过滤时间
             wrapper.between(EartagDataEntity::getTime, startTime, endTime);
         }
+
         if (StringUtilsWork.isNotBlank(dayAge)){
             wrapper.eq(EartagDataEntity::getDayAge, dayAge );
         }
@@ -105,11 +106,12 @@ public class EartagDataServiceImpl extends ServiceImpl<EartagDataDao, EartagData
         if (StringUtilsWork.isNotBlank(highEnvTemp)&StringUtilsWork.isNotBlank(lowEnvTemp)){
             wrapper.between(EartagDataEntity::getEnvTemp, highEnvTemp, lowEnvTemp);
         }
-        wrapper.orderByDesc( EartagDataEntity::getId );
-
+        wrapper.groupBy(EartagDataEntity::getEartagNo)
+         .orderByDesc( EartagDataEntity::getId );
 
 
-        IPage<EartagDataEntity>  page =  this.page((new Query<EartagDataEntity>().getPage(params)),wrapper);
+//        IPage<EartagDataEntity>  page =  this.page((new Query<EartagDataEntity>().getPage(params)),wrapper);
+        IPage<EartagDataEntity> page = baseMapper.page(new Query<EartagDataEntity>().getPage(params), wrapper);
         //拼接栋舍信息在里面
         List<EartagDataEntity> records = page.getRecords();  //获取信息
 
@@ -134,7 +136,6 @@ public class EartagDataServiceImpl extends ServiceImpl<EartagDataDao, EartagData
             System.out.println("栋舍信息"+basePigpenEntity);
 
 
-
             LambdaQueryWrapper<BasePigpenEntity> wrapper5 = Wrappers.lambdaQuery();
             wrapper5.eq(BasePigpenEntity::getId, collectorRegisterEntity.getUnitId() );
             BasePigpenEntity basePigpenEntity1 = basePigpenDao.selectOne(wrapper5);
@@ -157,6 +158,9 @@ public class EartagDataServiceImpl extends ServiceImpl<EartagDataDao, EartagData
         return new PageUtils(page);
     }
 
+
+
+       //想办法把平均温度计算到表里面去
     @Override
     public Map<String, Object> queryDetails(Map<String, Object> params) throws ParseException {
         System.out.println("id = "+params.get("id"));
@@ -182,19 +186,24 @@ public class EartagDataServiceImpl extends ServiceImpl<EartagDataDao, EartagData
         Map<String ,Object>    map1 = new HashMap<>();
         map1.put("Registentity",collectorRegisterEntity);//耳标所在的机器信息
 
-        //倒数两条
-        LambdaQueryWrapper<MovePigpenEntity> wrapper2 = Wrappers.lambdaQuery();
-        wrapper2.eq(MovePigpenEntity::getEartagNo , earTagData.getEartagNo()).orderByDesc( MovePigpenEntity::getId ).last( "limit 2");
-        List<MovePigpenEntity> movePigpenEntities = movePigpenDao.selectList(wrapper2);
 
 
+        Map<String, Object>  pen = new HashMap<>();
+
+
+        //倒数yi条
+        LambdaQueryWrapper<MovePigpenEntity> wrapper2 = Wrappers.lambdaQuery();
+        wrapper2.eq(MovePigpenEntity::getEartagNo , earTagData.getEartagNo()).orderByDesc( MovePigpenEntity::getId ).last( "limit 1");
+        List<MovePigpenEntity> movePigpenEntities = movePigpenDao.selectList(wrapper2);
         //时间最开始的一条
         LambdaQueryWrapper<MovePigpenEntity> wrapper23 = Wrappers.lambdaQuery();
         wrapper23.eq(MovePigpenEntity::getEartagNo , earTagData.getEartagNo()).orderByAsc( MovePigpenEntity::getId ).last( "limit 1");
         MovePigpenEntity  movePigpen = movePigpenDao.selectOne(wrapper23);
 
 
-        movePigpenEntities.add(movePigpen);
+
+
+        movePigpenEntities.add(movePigpen);//加上去l
 
         System.out.println(movePigpen+"ioioio");//最开始不为空
 
@@ -205,7 +214,8 @@ public class EartagDataServiceImpl extends ServiceImpl<EartagDataDao, EartagData
         List<Object> movePigpe111 = new ArrayList<>();
 
         for (MovePigpenEntity movePigpenEntity : movePigpenEntities) {
-            Map<String, Object> movePigpenEntitiesmap = new HashMap<>();
+            Map<String, Object> c = new HashMap<>();
+
 
             LambdaQueryWrapper<CollectorRegisterEntity> wrapper3 = Wrappers.lambdaQuery();
             wrapper3.eq(CollectorRegisterEntity::getDeviceCode, movePigpenEntity.getDeviceCode());

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

@@ -108,11 +108,21 @@ public class ReceivePackageSerivce {
         LambdaQueryWrapper<EartagRegisterEntity> wrapper3 = Wrappers.lambdaQuery();
         wrapper3.eq(EartagRegisterEntity::getEartagNo, eartag_no );
         EartagRegisterEntity eartagRegisterEntity = eartagRegisterDao.selectOne(wrapper3);
-        System.out.println(eartagRegisterEntity);
+        System.out.println( "zhece xinxi "+eartagRegisterEntity+"ooo"+eartag_no+"ooo"+device_code);
+
        // String deviceCode = eartagRegisterEntity.getDeviceCode();//---获取这个基站的编码
        // System.out.println(deviceCode);
 
 
+if(!eartagRegisterEntity.getDeviceCode().equals(device_code) ){
+    //与注册表不同,,不存
+    System.out.println("丢弃");
+    return "hm+6+0+6+end";
+}
+        System.out.println("存储");
+        //日龄
+        eartagDataEntity.setDayAge2(eartagRegisterEntity.getAge());
+
         //上传设备发生了变化,      转舍信息进行存储
         //在接受数据的时候加一条记录迁移信息的数据到一个新表中,方便查找
         eartagDataEntity.setStage(collectorRegisterEntity.getStage()); //获取阶段
@@ -151,8 +161,8 @@ public class ReceivePackageSerivce {
                eartagRegisterService.save(eartagRegisterEntity2);//存储一条还没有处理的数据
            }
            //第一次上传的数据----注册表肯定没有这只耳标的信息
-           eartagDataEntity.setDayAge (0);  //佩标日龄----默认值,第一次有数据上传就是默认值
-           eartagDataEntity.setDayAge2(50); //日龄----默认第50天佩戴耳标
+         /*  eartagDataEntity.setDayAge (0);  //佩标日龄----默认值,第一次有数据上传就是默认值
+           eartagDataEntity.setDayAge2(50); //日龄----默认第50天佩戴耳标*/
            eartagDataEntity.setExercise(exercise);
            eartagDataEntity.setSportGap(2);
            eartagDataService.save(eartagDataEntity);
@@ -162,7 +172,8 @@ public class ReceivePackageSerivce {
         //上一条不为空---而且判断是存储注册表device-code
         //存储转舍信息--还要判断新的设备阶段和老的设备阶段是否相同,如果相同就不存储转舍信息
         if(!lastEarTagDate.getDeviceCode().equals(device_code)){
-            LambdaQueryWrapper<EartagRegisterEntity> wrapper4 = Wrappers.lambdaQuery();
+
+           /* LambdaQueryWrapper<EartagRegisterEntity> wrapper4 = Wrappers.lambdaQuery();
             wrapper4.eq(EartagRegisterEntity::getEartagNo, eartag_no );
             EartagRegisterEntity eartagRegisterEntity1 = eartagRegisterDao.selectOne(wrapper4);//查到注册信息--有可能为空的
             String deviceCode = eartagRegisterEntity1.getDeviceCode();
@@ -179,13 +190,14 @@ public class ReceivePackageSerivce {
                     movePigpenEntity.setStage(collectorRegisterEntity.getStage());
                     movePigpenService.save(movePigpenEntity);
                 }
-            }
+            }*/
         }
         Integer exercise1 = lastEarTagDate.getExercise();
         eartagDataEntity.setSportGap(exercise - exercise1);//存储区间运动量
         //获取当前时间的 “天”---判断天的情况
         int dayNow= Integer.parseInt(String.format("%td", DateUtilsPublic.parseDateTime(DateUtilsPublic.buildDateTimeString(time))));   //当前上传数据的天
         int dayLastData= Integer.parseInt(String.format("%td",lastEarTagDate.getTime()));     //当前的天
+
         System.out.println("当天时间="+dayNow+"----上一条时间"+dayLastData);
            if( dayNow == dayLastData){
                //若相等,沿用上一条的日龄和配标日龄
@@ -196,6 +208,9 @@ public class ReceivePackageSerivce {
                eartagDataEntity.setDayAge (lastEarTagDate.getDayAge()+1 );  //佩标日龄
                eartagDataEntity.setDayAge2(lastEarTagDate.getDayAge2()+1 ); //日龄
            }
+
+
+
         eartagDataService.save(eartagDataEntity);
         return "hm+6+0+6+end";
     }

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

@@ -97,6 +97,8 @@ public class RefreshEartagRegiest {
         }
     }
 
+
+
     //通过转舍记录来处理--如果转舍记录中的机器编码和注册表中的不相同就进行处理
     //每天中午15点触发------处理开始上传但是从未注册过的耳标数据
     @Scheduled(cron = "0 0 15 * * ?")

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

@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.huimv.acquisition.mapper.EartagDataDao">
+
+	<!-- 可根据自己的需求,是否要使用 -->
+    <resultMap type="com.huimv.acquisition.entity.EartagDataEntity" id="eartagDataMap">
+        <result property="id" column="id"/>
+        <result property="deviceCode" column="device_code"/>
+        <result property="eartagNo" column="eartag_no"/>
+        <result property="time" column="time"/>
+        <result property="dayAge" column="day_age"/>
+        <result property="dayAge2" column="day_age2"/>
+        <result property="earTemp" column="ear_temp"/>
+        <result property="exercise" column="exercise"/>
+        <result property="pigpen" column="pigpen"/>
+        <result property="envTemp" column="env_temp"/>
+        <result property="bat" column="bat"/>
+        <result property="rssi" column="rssi"/>
+        <result property="head" column="head"/>
+        <result property="command" column="command"/>
+        <result property="version" column="version"/>
+        <result property="frameSerialNo" column="frame_serial_no"/>
+        <result property="rebootTimes" column="reboot_times"/>
+        <result property="prepareField" column="prepare_field"/>
+        <result property="chk" column="chk"/>
+        <result property="tail" column="tail"/>
+    </resultMap>
+
+    <select id="page" resultType="com.huimv.acquisition.entity.EartagDataEntity">
+        SELECT * FROM eartag_data ed1 JOIN (SELECT MAX(id) id FROM eartag_data ed2 ${ew.customSqlSegment}) b ON ed1.id = b.id
+    </select>
+
+</mapper>