|
@@ -109,7 +109,7 @@ public class EartagDataServiceImpl extends ServiceImpl<EartagDataDao, EartagData
|
|
|
if (StringUtilsWork.isNotBlank(highEnvTemp)&StringUtilsWork.isNotBlank(lowEnvTemp)){
|
|
|
wrapper.between(EartagDataEntity::getEnvTemp, highEnvTemp, lowEnvTemp);
|
|
|
}
|
|
|
- wrapper.orderByDesc( EartagDataEntity::getId );
|
|
|
+
|
|
|
|
|
|
List<EartagDataEntity> records;
|
|
|
IPage<EartagDataEntity> page;
|
|
@@ -120,7 +120,7 @@ public class EartagDataServiceImpl extends ServiceImpl<EartagDataDao, EartagData
|
|
|
|
|
|
}else{
|
|
|
System.out.println("没有耳标号,展示最新");
|
|
|
- wrapper.groupBy(EartagDataEntity::getEartagNo);
|
|
|
+ wrapper.groupBy(EartagDataEntity::getEartagNo).orderByDesc( EartagDataEntity::getId );
|
|
|
page = baseMapper.page(new Query<EartagDataEntity>().getPage(params), wrapper);
|
|
|
records = page.getRecords(); //获取信息
|
|
|
}
|
|
@@ -169,6 +169,7 @@ public class EartagDataServiceImpl extends ServiceImpl<EartagDataDao, EartagData
|
|
|
}
|
|
|
|
|
|
|
|
|
+
|
|
|
//想办法把平均温度计算到表里面去
|
|
|
@Override
|
|
|
public Map<String, Object> queryDetails(Map<String, Object> params) throws ParseException {
|
|
@@ -316,6 +317,153 @@ public class EartagDataServiceImpl extends ServiceImpl<EartagDataDao, EartagData
|
|
|
return map1;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ //想办法把平均温度计算到表里面去
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> queryDetailsByEarTag(Map<String, Object> params) throws ParseException {
|
|
|
+ System.out.println("eartagno = "+params.get("eartagno"));
|
|
|
+ String eartagno1 = String.valueOf(params.get("eartagno"));
|
|
|
+ String starttime = (String) params.get("startTime");
|
|
|
+ String endtime = (String) params.get("endTime");
|
|
|
+
|
|
|
+ //找出对应的ID
|
|
|
+ LambdaQueryWrapper<EartagDataEntity> wrapper = Wrappers.lambdaQuery();
|
|
|
+ wrapper.eq(EartagDataEntity::getEartagNo, eartagno1 ).orderByDesc( EartagDataEntity::getId ).last( "limit 1");
|
|
|
+ EartagDataEntity earTagData = eartagDataDao.selectOne(wrapper);
|
|
|
+ if(earTagData==null){
|
|
|
+ Map map = new HashMap();
|
|
|
+ map.put("error" ,"当前数据不存在");
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ //对数据进行包装
|
|
|
+ LambdaQueryWrapper<CollectorRegisterEntity> wrapper1 = Wrappers.lambdaQuery();
|
|
|
+ wrapper1.eq(CollectorRegisterEntity::getDeviceCode, earTagData.getDeviceCode() );
|
|
|
+ CollectorRegisterEntity collectorRegisterEntity = collectorRegisterDao.selectOne(wrapper1);
|
|
|
+ Map<String ,Object> map1 = new HashMap<>();
|
|
|
+ map1.put("Registentity",collectorRegisterEntity);//耳标所在的机器信息
|
|
|
+
|
|
|
+ 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);//加上去l
|
|
|
+
|
|
|
+ System.out.println(movePigpen+"ioioio");//最开始不为空
|
|
|
+
|
|
|
+
|
|
|
+ System.out.println(movePigpenEntities+"opop");
|
|
|
+ if ( movePigpen!=null ) {
|
|
|
+
|
|
|
+ List<Object> movePigpe111 = new ArrayList<>();
|
|
|
+
|
|
|
+ for (MovePigpenEntity movePigpenEntity : movePigpenEntities) {
|
|
|
+ Map<String, Object> c = new HashMap<>();
|
|
|
+
|
|
|
+
|
|
|
+ LambdaQueryWrapper<CollectorRegisterEntity> wrapper3 = Wrappers.lambdaQuery();
|
|
|
+ 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());//栋舍
|
|
|
+ BasePigpenEntity basePigpenEnti = basePigpenDao.selectOne(wrapper4);
|
|
|
+
|
|
|
+ LambdaQueryWrapper<BasePigpenEntity> wrapper5 = Wrappers.lambdaQuery();
|
|
|
+ wrapper5.eq(BasePigpenEntity::getId, collectorRegisterEntit.getUnitId());//单元
|
|
|
+ BasePigpenEntity basePigpenEnt2 = basePigpenDao.selectOne(wrapper4);
|
|
|
+
|
|
|
+ TempMovePenEntity tempMovePenEntity = new TempMovePenEntity();
|
|
|
+ tempMovePenEntity.setDeviceCode(movePigpenEntity.getDeviceCode());
|
|
|
+ tempMovePenEntity.setEartagNo(movePigpenEntity.getEartagNo());
|
|
|
+ tempMovePenEntity.setPenName(basePigpenEnti.getPigpenName());
|
|
|
+ tempMovePenEntity.setUnitname(basePigpenEnt2.getPigpenName());
|
|
|
+ tempMovePenEntity.setMoveDate(movePigpenEntity.getMoveDate());
|
|
|
+ tempMovePenEntity.setId(movePigpenEntity.getId());
|
|
|
+ tempMovePenEntity.setStage(movePigpenEntity.getStage());
|
|
|
+
|
|
|
+ movePigpe111.add(tempMovePenEntity);
|
|
|
+ }
|
|
|
+
|
|
|
+ map1.put("movePigPenData",movePigpe111);
|
|
|
+ }else{
|
|
|
+ map1.put("movePigPenData",null);}
|
|
|
+
|
|
|
+
|
|
|
+ map1.put("eartagdeta",earTagData); //点击的耳标信息
|
|
|
+
|
|
|
+ //获取运动等信息
|
|
|
+ String eartag = earTagData.getEartagNo();
|
|
|
+ DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+
|
|
|
+ //格式化传入的时间
|
|
|
+ Date startTime = fmt.parse(starttime);
|
|
|
+ Date endTime = fmt.parse(endtime);
|
|
|
+ System.out.println("yangdi"+starttime+endtime);
|
|
|
+
|
|
|
+ LambdaQueryWrapper<EartagDataEntity> lambdaQuery = Wrappers.lambdaQuery();
|
|
|
+ lambdaQuery.eq(EartagDataEntity::getEartagNo,eartag);
|
|
|
+ //过滤时间
|
|
|
+ lambdaQuery.between(EartagDataEntity::getTime,startTime, endTime);
|
|
|
+ List<EartagDataEntity> eartagDateEntities = baseMapper.selectList(lambdaQuery);
|
|
|
+ //生成平均温度 -----如果刚刚转舍就没办法操作了---数据不会立马出来需要等
|
|
|
+
|
|
|
+ LambdaQueryWrapper<EartagDataEntity> lambdaQuery1 = Wrappers.lambdaQuery();
|
|
|
+ lambdaQuery1.eq(EartagDataEntity::getDeviceCode,earTagData.getDeviceCode());
|
|
|
+ //过滤时间
|
|
|
+ lambdaQuery1.between(EartagDataEntity::getTime,startTime, endTime);
|
|
|
+ List<EartagDataEntity> eartagDateEntities1 = baseMapper.selectList(lambdaQuery1);
|
|
|
+ Map averange = getAverange(starttime, endtime, eartagDateEntities1);
|
|
|
+
|
|
|
+ //这样,时间轴
|
|
|
+
|
|
|
+ List<String> timeList = new ArrayList<>();
|
|
|
+ List<Double> tempList = new ArrayList<>();
|
|
|
+ List<Integer> sportsList = new ArrayList<>();
|
|
|
+ List<Integer> electricList = new ArrayList<>();
|
|
|
+ List<Double> environmenttempList = new ArrayList<>();
|
|
|
+ List<Object> averangeTemp = new ArrayList<>();
|
|
|
+ for (EartagDataEntity data : eartagDateEntities) {
|
|
|
+ timeList.add(fmt.format(data.getTime()));
|
|
|
+ tempList.add(data.getEarTemp());
|
|
|
+ if (data.getDeviceCode() == null) {
|
|
|
+ sportsList.add(0);
|
|
|
+ } else {
|
|
|
+ sportsList.add(data.getSportGap());
|
|
|
+ }
|
|
|
+ electricList.add(data.getBat());
|
|
|
+ //sleeptime.add(data.getSleepStatus()); 用来存睡眠状态了
|
|
|
+ environmenttempList.add(data.getEnvTemp());
|
|
|
+ averangeTemp.add(averange.get(getMonthDayHour( data.getTime() ) ) );
|
|
|
+ }
|
|
|
+
|
|
|
+ map1.put("time",timeList);
|
|
|
+ map1.put("temp",tempList);
|
|
|
+ map1.put("sports",sportsList);
|
|
|
+ map1.put("electric",electricList);
|
|
|
+ map1.put("environmenttemp",environmenttempList);
|
|
|
+ map1.put("averangeTemp",averangeTemp);
|
|
|
+
|
|
|
+ System.out.println("changdu"+timeList.size()+"**"+averangeTemp.size()
|
|
|
+ );
|
|
|
+ //对time循环--用contains来处理稍微快一点
|
|
|
+ //map1.put("averangeTemp",averange);
|
|
|
+
|
|
|
+ //关于耳标存在的位置的信息,这里需要做记录,如果发生位置迁移那么需要将位置迁移信息记录到一张表中
|
|
|
+ return map1;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
public String getMonthDayHour( Date date ){
|
|
|
|
|
|
String year=String.format("%tY", date);
|
|
@@ -330,9 +478,6 @@ return mon+day+h;
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
public Map<String ,String> getAverange( String starttime , String endtime , List<EartagDataEntity> entityList ) throws ParseException {
|
|
|
DecimalFormat df = new DecimalFormat("####0.00");
|
|
|
DateFormat fmt1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|