|
@@ -558,12 +558,14 @@ public class BaseDuckInfoServiceImpl extends ServiceImpl<BaseDuckInfoMapper, Bas
|
|
|
return new Result(ResultCode.SUCCESS, jsonObject);
|
|
|
}
|
|
|
@Override
|
|
|
- public Result listDuckByScreen2(HttpServletRequest httpServletRequest, Map<String, String> paramsMap){
|
|
|
+ public Result listDuckByScreen2(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) throws ParseException {
|
|
|
String farmId = paramsMap.get("farmId");
|
|
|
String duckNum = paramsMap.get("duckNum");
|
|
|
DateTime dateTime = DateUtil.offsetDay(DateUtil.beginOfDay(new Date()), -7);
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
+
|
|
|
List<EnvMoveCallVo> envMoveCallVoList = new ArrayList<>();
|
|
|
+
|
|
|
QueryWrapper<EnvMoveCall> callQueryWrapper = new QueryWrapper<>();
|
|
|
callQueryWrapper.eq("farm_id", farmId).eq("duck_num", duckNum);
|
|
|
List<EnvMoveCall> moveCalls = moveCallMapper.selectList(callQueryWrapper);
|
|
@@ -583,168 +585,131 @@ public class BaseDuckInfoServiceImpl extends ServiceImpl<BaseDuckInfoMapper, Bas
|
|
|
QueryWrapper<EnvMoveCall> queryWrapper = new QueryWrapper<>();
|
|
|
queryWrapper.eq("farm_id", farmId).ge("call_date",dateTime);
|
|
|
List<EnvMoveCallVo> envMoveCallVos = moveCallMapper.listScreen2(queryWrapper);
|
|
|
- int i = 0;
|
|
|
- for (EnvMoveCallVo envMoveCallVo : envMoveCallVos) {
|
|
|
- EnvMoveCallVo moveCallVo = new EnvMoveCallVo();
|
|
|
- System.out.println("这个是平均值的时间:"+envMoveCallVo.getCallDate());
|
|
|
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
- String format = sdf.format(envMoveCallVo.getCallDate());
|
|
|
-
|
|
|
- System.out.println("格式化后的时间:"+format);
|
|
|
-
|
|
|
- String start= format + " 00:00:00";
|
|
|
-
|
|
|
- String end= format + " 23:59:59";
|
|
|
-
|
|
|
- QueryWrapper<EnvMoveCall> queryWrapper1 = new QueryWrapper<>();
|
|
|
-
|
|
|
- queryWrapper1.eq("farm_id", farmId).eq("duck_num", duckNum)
|
|
|
-
|
|
|
- .between("call_date",start,end)
|
|
|
-
|
|
|
- .orderByDesc("id")
|
|
|
-
|
|
|
- .last(" limit 1");
|
|
|
-
|
|
|
- EnvMoveCall envMoveCall = moveCallMapper.selectOne(queryWrapper1);
|
|
|
-
|
|
|
- if (ObjectUtil.isEmpty(envMoveCall)) {
|
|
|
-
|
|
|
- moveCallVo.setDuckWeight(BigDecimal.ZERO);
|
|
|
-
|
|
|
- moveCallVo.setCallDate(envMoveCallVo.getCallDate());
|
|
|
+ int i = 7;
|
|
|
+ QueryWrapper<EnvMoveCall> queryWrapper2 = new QueryWrapper<>();
|
|
|
+ queryWrapper2.eq("farm_id", farmId).eq("duck_num", duckNum)
|
|
|
+ .orderByDesc("id").last(" limit 1");
|
|
|
+ EnvMoveCall call = moveCallMapper.selectOne(queryWrapper2);
|
|
|
+ for (int j = 0; j < 7; j++) {
|
|
|
+ if (envMoveCallVos.size() > j) {
|
|
|
+ System.out.println("这个是平均值的时间:" + envMoveCallVos.get(j).getCallDate());
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ String format = sdf.format(envMoveCallVos.get(j).getCallDate());
|
|
|
+ System.out.println("格式化后的时间:" + format);
|
|
|
+ EnvMoveCallVo moveCallVo = new EnvMoveCallVo();
|
|
|
+ moveCallVo.setCallDate(sdf.parse(format));
|
|
|
+ String start = format + " 00:00:00";
|
|
|
+ String end = format + " 23:59:59";
|
|
|
+ QueryWrapper<EnvMoveCall> queryWrapper1 = new QueryWrapper<>();
|
|
|
+ queryWrapper1.eq("farm_id", farmId).eq("duck_num", duckNum)
|
|
|
+ .between("call_date", start, end)
|
|
|
+ .orderByDesc("id")
|
|
|
+ .last(" limit 1");
|
|
|
+ EnvMoveCall envMoveCall = moveCallMapper.selectOne(queryWrapper1);
|
|
|
+
|
|
|
+ if (ObjectUtil.isEmpty(envMoveCall)) {
|
|
|
+ moveCallVo.setDuckWeight(call.getDuckWeight());
|
|
|
+ } else {
|
|
|
+ moveCallVo.setDuckWeight(envMoveCall.getDuckWeight());
|
|
|
+ }
|
|
|
|
|
|
+ moveCallVo.setAvgWeight(envMoveCallVos.get(j).getAvgWeight());
|
|
|
+ envMoveCallVoList.add(moveCallVo);
|
|
|
} else {
|
|
|
-
|
|
|
- moveCallVo.setDuckWeight(envMoveCall.getDuckWeight());
|
|
|
-
|
|
|
- moveCallVo.setCallDate(envMoveCallVo.getCallDate());
|
|
|
-
|
|
|
+ DateTime dateTime1 = DateUtil.offsetDay(DateUtil.beginOfDay(new Date()), -i);
|
|
|
+ EnvMoveCallVo moveCallVo = new EnvMoveCallVo();
|
|
|
+ moveCallVo.setDuckWeight(call.getDuckWeight());
|
|
|
+ moveCallVo.setCallDate(dateTime1);
|
|
|
+ moveCallVo.setAvgWeight(envMoveCallVos.get(0).getAvgWeight());
|
|
|
+ envMoveCallVoList.add(moveCallVo);
|
|
|
}
|
|
|
-
|
|
|
- moveCallVo.setAvgWeight(envMoveCallVo.getAvgWeight());
|
|
|
-
|
|
|
- envMoveCallVoList.add(moveCallVo);
|
|
|
-
|
|
|
- i++;
|
|
|
-
|
|
|
+ i--;
|
|
|
}
|
|
|
|
|
|
+// for (EnvMoveCallVo envMoveCallVo : envMoveCallVos) {
|
|
|
+//
|
|
|
+// System.out.println("这个是平均值的时间:"+envMoveCallVo.getCallDate());
|
|
|
+// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+// String format = sdf.format(envMoveCallVo.getCallDate());
|
|
|
+// System.out.println("格式化后的时间:"+format);
|
|
|
+// EnvMoveCallVo moveCallVo = new EnvMoveCallVo();
|
|
|
+// moveCallVo.setCallDate(sdf.parse(format));
|
|
|
+//
|
|
|
+// String start= format + " 00:00:00";
|
|
|
+// String end= format + " 23:59:59";
|
|
|
+//
|
|
|
+// QueryWrapper<EnvMoveCall> queryWrapper1 = new QueryWrapper<>();
|
|
|
+// queryWrapper1.eq("farm_id", farmId).eq("duck_num", duckNum)
|
|
|
+// .between("call_date",start,end)
|
|
|
+// .orderByDesc("id")
|
|
|
+// .last(" limit 1");
|
|
|
+// EnvMoveCall envMoveCall = moveCallMapper.selectOne(queryWrapper1);
|
|
|
+//
|
|
|
+// if (ObjectUtil.isEmpty(envMoveCall)) {
|
|
|
+// moveCallVo.setDuckWeight(call.getDuckWeight());
|
|
|
+// } else {
|
|
|
+// moveCallVo.setDuckWeight(envMoveCall.getDuckWeight());
|
|
|
+// }
|
|
|
+//
|
|
|
+// moveCallVo.setAvgWeight(envMoveCallVo.getAvgWeight());
|
|
|
+//
|
|
|
+// envMoveCallVoList.add(moveCallVo);
|
|
|
+// }
|
|
|
jsonObject.put("weight", envMoveCallVoList);
|
|
|
-
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
List<EnvRegularCallFeedingVo> feedingVoList = new ArrayList<>();
|
|
|
-
|
|
|
QueryWrapper<EnvRegularCallFeeding> feedingQueryWrapper = new QueryWrapper<>();
|
|
|
-
|
|
|
feedingQueryWrapper.eq("farm_id", farmId).eq("duck_num", duckNum);
|
|
|
-
|
|
|
List<EnvRegularCallFeeding> feedings = feedingMapper.selectList(feedingQueryWrapper);
|
|
|
-
|
|
|
if (feedings.size() == 0) {
|
|
|
-
|
|
|
QueryWrapper<EnvRegularCallFeeding> queryWrapper1 = new QueryWrapper<>();
|
|
|
-
|
|
|
queryWrapper1.eq("farm_id", farmId).eq("event_type", 0).ge("call_date",dateTime);
|
|
|
-
|
|
|
List<EnvRegularCallFeedingVo> envRegularCallFeedingVos = feedingMapper.listScreen2(queryWrapper1);
|
|
|
-
|
|
|
queryWrapper1.groupBy("duck_num");
|
|
|
-
|
|
|
List<EnvRegularCallFeeding> list = feedingMapper.selectList(queryWrapper1);
|
|
|
-
|
|
|
for (EnvRegularCallFeedingVo envRegularCallFeedingVo : envRegularCallFeedingVos) {
|
|
|
-
|
|
|
EnvRegularCallFeedingVo feedingVo = new EnvRegularCallFeedingVo();
|
|
|
-
|
|
|
BigDecimal value = BigDecimal.valueOf(envRegularCallFeedingVo.getDuckWeight());
|
|
|
-
|
|
|
BigDecimal decimal = BigDecimal.valueOf(list.size());
|
|
|
-
|
|
|
BigDecimal decimal1 = value.divide(decimal, 2);//pingjun
|
|
|
-
|
|
|
feedingVo.setAvgWeight(decimal1);
|
|
|
-
|
|
|
feedingVo.setDuckWeight(0);
|
|
|
-
|
|
|
feedingVo.setCallDate(envRegularCallFeedingVo.getCallDate());
|
|
|
-
|
|
|
feedingVoList.add(feedingVo);
|
|
|
-
|
|
|
}
|
|
|
-
|
|
|
jsonObject.put("feed", feedingVoList);
|
|
|
-
|
|
|
} else {
|
|
|
-
|
|
|
QueryWrapper<EnvRegularCallFeeding> queryWrapper1 = new QueryWrapper<>();
|
|
|
-
|
|
|
queryWrapper1.eq("farm_id", farmId).eq("event_type", 0);
|
|
|
-
|
|
|
queryWrapper1.groupBy("duck_num");
|
|
|
-
|
|
|
List<EnvRegularCallFeeding> list = feedingMapper.selectList(queryWrapper1);
|
|
|
-
|
|
|
QueryWrapper<EnvRegularCallFeeding> queryWrapper2 = new QueryWrapper<>();
|
|
|
-
|
|
|
queryWrapper2.eq("farm_id",farmId).eq("duck_num",duckNum).eq("event_type", 0).ge("call_date",dateTime);
|
|
|
-
|
|
|
List<EnvRegularCallFeedingVo> feedingVoList1 = feedingMapper.listScreen2(queryWrapper2);//某只鸭子的总采食量
|
|
|
-
|
|
|
int i = 0;
|
|
|
-
|
|
|
for (EnvRegularCallFeedingVo envRegularCallFeedingVo : feedingVoList1) {
|
|
|
-
|
|
|
Date callDate = envRegularCallFeedingVo.getCallDate();
|
|
|
-
|
|
|
System.out.println("这个是平均值的时间:"+callDate);
|
|
|
-
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
-
|
|
|
String format = sdf.format(callDate);
|
|
|
-
|
|
|
System.out.println("格式化后的时间:"+format);
|
|
|
-
|
|
|
String start= format + " 00:00:00";
|
|
|
-
|
|
|
String end= format + " 23:59:59";
|
|
|
-
|
|
|
QueryWrapper<EnvRegularCallFeeding> callFeedingQueryWrapper = new QueryWrapper<>();
|
|
|
-
|
|
|
callFeedingQueryWrapper.eq("farm_id", farmId).eq("event_type", 0).between("call_date", start, end);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
callFeedingQueryWrapper.select("IFNULL(SUM(duck_weight),0) duckWeight");
|
|
|
-
|
|
|
EnvRegularCallFeeding feeding = feedingMapper.selectOne(callFeedingQueryWrapper);
|
|
|
-
|
|
|
EnvRegularCallFeedingVo feedingVo = new EnvRegularCallFeedingVo();
|
|
|
-
|
|
|
BigDecimal value = BigDecimal.valueOf(feeding.getDuckWeight());
|
|
|
-
|
|
|
BigDecimal decimal = BigDecimal.valueOf(list.size());
|
|
|
-
|
|
|
BigDecimal decimal1 = value.divide(decimal, 2);//pingjun
|
|
|
-
|
|
|
feedingVo.setAvgWeight(decimal1);
|
|
|
-
|
|
|
feedingVo.setDuckWeight(envRegularCallFeedingVo.getDuckWeight());
|
|
|
-
|
|
|
feedingVo.setCallDate(envRegularCallFeedingVo.getCallDate());
|
|
|
-
|
|
|
feedingVoList.add(feedingVo);
|
|
|
-
|
|
|
i++;
|
|
|
-
|
|
|
}
|
|
|
jsonObject.put("feed", feedingVoList);
|
|
|
-
|
|
|
}
|
|
|
return new Result(ResultCode.SUCCESS, jsonObject);
|
|
|
|