Bläddra i källkod

解决耳标详情报错的问题

yang 3 år sedan
förälder
incheckning
22def9fd55

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

@@ -165,6 +165,8 @@ public class EartagDataServiceImpl extends ServiceImpl<EartagDataDao, EartagData
     public Map<String, Object> queryDetails(Map<String, Object> params) throws ParseException {
         System.out.println("id = "+params.get("id"));
             String  id1 = String.valueOf(params.get("id"));
+        String starttime = (String) params.get("startTime");
+        String endtime = (String) params.get("endTime");
              int id = Integer.parseInt(id1);
         System.out.println("int id = "+id);
         //找出对应的ID
@@ -194,22 +196,22 @@ public class EartagDataServiceImpl extends ServiceImpl<EartagDataDao, EartagData
         movePigpenEntities.add(movePigpen);
         System.out.println(movePigpenEntities+"opop");
 
-
-         List<Object>   movePigpe111  = new ArrayList<>();
+    if (movePigpen!=null) {
+        List<Object> movePigpe111 = new ArrayList<>();
         for (MovePigpenEntity movePigpenEntity : movePigpenEntities) {
-            Map<String ,Object>   movePigpenEntitiesmap  = new HashMap<>();
+            Map<String, Object> movePigpenEntitiesmap = new HashMap<>();
 
             LambdaQueryWrapper<CollectorRegisterEntity> wrapper3 = Wrappers.lambdaQuery();
-            wrapper3.eq(CollectorRegisterEntity::getDeviceCode, movePigpenEntity.getDeviceCode()  );
+            wrapper3.eq(CollectorRegisterEntity::getDeviceCode, movePigpenEntity.getDeviceCode());
             CollectorRegisterEntity collectorRegisterEntit = collectorRegisterDao.selectOne(wrapper3);
             System.out.println();
 
             LambdaQueryWrapper<BasePigpenEntity> wrapper4 = Wrappers.lambdaQuery();
-            wrapper4.eq(BasePigpenEntity::getId, collectorRegisterEntit.getPigpenId() );//栋舍
+            wrapper4.eq(BasePigpenEntity::getId, collectorRegisterEntit.getPigpenId());//栋舍
             BasePigpenEntity basePigpenEnti = basePigpenDao.selectOne(wrapper4);
 
             LambdaQueryWrapper<BasePigpenEntity> wrapper5 = Wrappers.lambdaQuery();
-            wrapper5.eq(BasePigpenEntity::getId, collectorRegisterEntit.getUnitId() );//单元
+            wrapper5.eq(BasePigpenEntity::getId, collectorRegisterEntit.getUnitId());//单元
             BasePigpenEntity basePigpenEnt2 = basePigpenDao.selectOne(wrapper4);
             TempMovePenEntity tempMovePenEntity = new TempMovePenEntity();
             tempMovePenEntity.setDeviceCode(movePigpenEntity.getDeviceCode());
@@ -217,19 +219,19 @@ public class EartagDataServiceImpl extends ServiceImpl<EartagDataDao, EartagData
             tempMovePenEntity.setPenName(basePigpenEnti.getPigpenName());
             tempMovePenEntity.setUnitname(basePigpenEnt2.getPigpenName());
             tempMovePenEntity.setMoveDate(movePigpenEntity.getMoveDate());
-            tempMovePenEntity.setId(movePigpenEntity.getId() );
+            tempMovePenEntity.setId(movePigpenEntity.getId());
             tempMovePenEntity.setStage(movePigpenEntity.getStage());
             movePigpe111.add(tempMovePenEntity);
         }
-
         map1.put("movePigPenData",movePigpe111);
+    }
+
+
         map1.put("eartagdeta",earTagData);  //点击的耳标信息
         map1.put("movePigpen",movePigpenEntities);   //需要分解成首次,上一次,现在---三种情况--缺位置信息。需要添加位置信息
 
         //获取运动等信息
         String eartag = earTagData.getEartagNo();
-        String starttime = (String) params.get("startTime");
-        String endtime = (String) params.get("endTime");
         DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
         //格式化传入的时间

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

@@ -18,7 +18,7 @@ public class Server implements CommandLineRunner {
         try {
 
             // 初始化服务端socket连接, 并监听8888端口的socket请求
-            ServerSocket serverSocket = new ServerSocket(8888);
+            ServerSocket serverSocket = new ServerSocket(8889);
 
             System.out.println("****** I am Server, now begin to wait the client ******");
 

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

@@ -49,8 +49,6 @@ public class RefreshEartagRegiest {
 
     @Autowired
     private EartagRegisterDao eartagRegisterDao;
-
-
    //造数据---对于没有绑定的设备进行绑定
    // 首先找注册了了但是没有绑定设备的进行绑定
    //还要
@@ -99,7 +97,6 @@ public class RefreshEartagRegiest {
         }
     }
 
-
     //通过转舍记录来处理--如果转舍记录中的机器编码和注册表中的不相同就进行处理
     //每天中午15点触发------处理开始上传但是从未注册过的耳标数据
     @Scheduled(cron = "0 0 15 * * ?")
@@ -117,7 +114,6 @@ public class RefreshEartagRegiest {
             //过滤时间--抓出时间段内所有这个数据
             lambdaQuery8.eq(EartagRegisterEntity::getEartagNo, movePenEntity.getEartagNo() );
             EartagRegisterEntity eartagRegisterEntity = eartagRegisterDao.selectOne(lambdaQuery8);
-
             if (eartagRegisterEntity.getDeviceCode()!= movePenEntity.getDeviceCode()) {//为空开始绑定注册
                 LambdaQueryWrapper<EartagDataEntity> lambdaQuery2 = Wrappers.lambdaQuery();
                 //过滤时间----最近四小时的数据--耳标号为
@@ -145,7 +141,6 @@ public class RefreshEartagRegiest {
                         deviceCode = entry.getKey();//----上传最多的机器的机器id
                     }
                 }
-
                 //更新存储的编码
                 movePenEntity.setDeviceCode(deviceCode);
                 movePigpenService.save(movePenEntity);

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

@@ -17,7 +17,9 @@ import org.springframework.stereotype.Component;
 
 import java.text.ParseException;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import static com.huimv.acquisition.socket.eartagrecive.util.DateUtilsPublic.DATE_FORMAT;
 
@@ -75,7 +77,7 @@ public class provideNewRankData {
     //首先查找出所有的牧场id
 
     // @Scheduled(cron = "0 0 12 * * ?")
-    //@Scheduled(cron = "0/5 * * * * ?")
+    @Scheduled(cron = "0/5 * * * * ?")
     private void settingRegisting() throws ParseException {
 
         String date = DateUtilsPublic.formatDate(new Date(), DATE_FORMAT);
@@ -89,13 +91,22 @@ public class provideNewRankData {
         lambdaQuery2.orderByDesc(DailyTabulateDataEntity::getStockTotal);//母猪总存栏
         List<DailyTabulateDataEntity> dailyTabulateDataEntit = dailyTabulateDataDao.selectList(lambdaQuery2);
         int a = 0;
+        int b = 0;
         System.out.println();
+
+        //拿出一条判断时间--判断空
         LambdaQueryWrapper<SowRankTableEntity> lambdaQuery3 = Wrappers.lambdaQuery();
         lambdaQuery3.orderByDesc(SowRankTableEntity::getId).last("limit 1");
         SowRankTableEntity sowRankTableEntity1 = sowRankTableDao.selectOne(lambdaQuery3);
 
+        Map map = new HashMap<>(    );
+        for (DailyTabulateDataEntity dailyTabulateDataEnt : dailyTabulateDataEntit) {
+            b++;
+            map.put(dailyTabulateDataEnt.getFarmCode(),b);
+        }
+
         if (sowRankTableEntity1 == null) {
-            //为空,自动执行刷新流程
+            //为空,自动执行刷新流程--添加所有数据
             for (DailyTabulateDataEntity dailyTabulateDataEnt : dailyTabulateDataEntit) {
                 System.out.println(dailyTabulateDataEnt.getId());
                 SowRankTableEntity sowRankTableEntity = new SowRankTableEntity();
@@ -104,37 +115,24 @@ public class provideNewRankData {
                 sowRankTableEntity.setRank(String.valueOf(a));
                 sowRankTableEntity.setSowLivestock(dailyTabulateDataEnt.getSowStock());//总存栏量
                 sowRankTableEntity.setOutStockCount(1);
+                sowRankTableService.save(sowRankTableEntity);
                 //if(data.getTime().after(startTime)&data.getTime().before(DateUtilsPublic.addDateHour(startTime,1))){
             }
-        }
-    }
-}
-
-
-
-
-//如果数据不为空,说明已经存在----就只能更新而不是*----
-
-
-        /*else if(          ){//如果不为空--那么就判断时间是否合适--这里为刷新时间1.如果日不相同,,刷新
+        }else {
+            //现在是不为空的情况----旧的保存,刷新排名--新的就直接添加进去
+            //找出所有的
+            System.out.println("数据   更新");
+            LambdaQueryWrapper<SowRankTableEntity> lambdaQuery4 = Wrappers.lambdaQuery();
+            List<SowRankTableEntity> sowRankTableEntities = sowRankTableDao.selectList(lambdaQuery3);
+            for (SowRankTableEntity sowRankTableEntity : sowRankTableEntities) {
+                if (map.containsKey(sowRankTableEntity.getFarmCode() ) ){
+                    sowRankTableEntity.setRank(String.valueOf( map.get( (sowRankTableEntity.getFarmCode() ))));
+                    sowRankTableEntity.setCreate_time(new Date());
+                    sowRankTableService.save(sowRankTableEntity);
+                }
+            }
 
         }
-            Date date1 = new Date();
-            //当前时间大于上一次时间四小时就更新----过零点自动刷新后面加上就可以
-            Boolean timeGaptrue  = date1.after(sowRankTableEntity1.getCreate_time())   ;
-            if (sowRankTableEntity1||    )
-            System.out.println(dailyTabulateDataEnt.getId());
-
-            SowRankTableEntity sowRankTableEntity = new SowRankTableEntity();
-            sowRankTableEntity.setFarmCode(dailyTabulateDataEnt.getFarmCode());
-             a++;
-            sowRankTableEntity.setRank( String.valueOf(a));
-            sowRankTableEntity.setSowLivestock(dailyTabulateDataEnt.getSowStock() );//总存栏量
-            sowRankTableEntity.setOutStockCount(1);
         }
+    }
 
-
-
-       //当日母猪总存栏是总数
-
-*/