|
@@ -392,22 +392,98 @@ public class BaseDuckInfoServiceImpl extends ServiceImpl<BaseDuckInfoMapper, Bas
|
|
public Result listDuckByScreen2(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
|
|
public Result listDuckByScreen2(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
|
|
String farmId = paramsMap.get("farmId");
|
|
String farmId = paramsMap.get("farmId");
|
|
String duckNum = paramsMap.get("duckNum");
|
|
String duckNum = paramsMap.get("duckNum");
|
|
- /* Calendar calendar = Calendar.getInstance();
|
|
|
|
- calendar.set(Calendar.DATE, calendar.get(Calendar.DATE - 7));*/
|
|
|
|
- QueryWrapper<EnvMoveCall> queryWrapper = new QueryWrapper<>();
|
|
|
|
- queryWrapper.eq("farm_id", farmId).eq("duck_num", duckNum)
|
|
|
|
- /*.ge("call_date", calendar.getTime())*/;
|
|
|
|
- List<EnvMoveCallVo> envMoveCallVos = moveCallMapper.listScreen(queryWrapper);
|
|
|
|
|
|
+ DateTime dateTime = DateUtil.offsetDay(DateUtil.beginOfDay(new Date()), -7);
|
|
|
|
|
|
- QueryWrapper<EnvRegularCallFeeding> queryWrapper1 = new QueryWrapper<>();
|
|
|
|
- queryWrapper1.eq("farm_id", farmId).eq("duck_num", duckNum).eq("event_type", 0)
|
|
|
|
- /*.ge("call_date", calendar.getTime())*/;
|
|
|
|
|
|
+ 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);
|
|
|
|
+ if (moveCalls.size() == 0) {
|
|
|
|
+ QueryWrapper<EnvMoveCall> queryWrapper = new QueryWrapper<>();
|
|
|
|
+ queryWrapper.eq("farm_id", farmId);
|
|
|
|
+ List<EnvMoveCallVo> envMoveCallVos = moveCallMapper.listScreen2(queryWrapper);
|
|
|
|
+ for (EnvMoveCallVo envMoveCallVo : envMoveCallVos) {
|
|
|
|
+ EnvMoveCallVo moveCallVo = new EnvMoveCallVo();
|
|
|
|
+ moveCallVo.setCallDate(envMoveCallVo.getCallDate());
|
|
|
|
+ moveCallVo.setDuckWeight(BigDecimal.ZERO);
|
|
|
|
+ moveCallVo.setAvgWeight(envMoveCallVo.getAvgWeight());
|
|
|
|
+ envMoveCallVoList.add(moveCallVo);
|
|
|
|
+ }
|
|
|
|
+ jsonObject.put("weight", envMoveCallVoList);
|
|
|
|
+ } else {
|
|
|
|
+ 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();
|
|
|
|
+ QueryWrapper<EnvMoveCall> queryWrapper1 = new QueryWrapper<>();
|
|
|
|
+ Date callDate = envMoveCallVo.getCallDate();
|
|
|
|
+ queryWrapper1.eq("farm_id", farmId).eq("duck_num", duckNum).between("call_date",DateUtil.offsetDay(dateTime,i),DateUtil.offsetDay(dateTime,i+1)).orderByDesc("id").last(" limit 1");
|
|
|
|
+ EnvMoveCall envMoveCall = moveCallMapper.selectOne(queryWrapper1);
|
|
|
|
+ if (ObjectUtil.isEmpty(envMoveCall)) {
|
|
|
|
+ moveCallVo.setDuckWeight(BigDecimal.ZERO);
|
|
|
|
+ moveCallVo.setCallDate(callDate);
|
|
|
|
+ } else {
|
|
|
|
+ moveCallVo.setDuckWeight(envMoveCall.getDuckWeight());
|
|
|
|
+ moveCallVo.setCallDate(envMoveCall.getCallDate());
|
|
|
|
+ }
|
|
|
|
+ moveCallVo.setAvgWeight(envMoveCallVo.getAvgWeight());
|
|
|
|
+ envMoveCallVoList.add(moveCallVo);
|
|
|
|
+ i++;
|
|
|
|
+ }
|
|
|
|
+ jsonObject.put("weight", envMoveCallVoList);
|
|
|
|
+ }
|
|
|
|
|
|
- List<EnvRegularCallFeedingVo> envRegularCallFeedingVos = feedingMapper.listScreen(queryWrapper1);
|
|
|
|
|
|
|
|
- JSONObject jsonObject = new JSONObject();
|
|
|
|
- jsonObject.put("weight", envMoveCallVos);
|
|
|
|
- jsonObject.put("feed", envRegularCallFeedingVos);
|
|
|
|
|
|
+ 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);
|
|
|
|
+ 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).ge("call_date",dateTime);
|
|
|
|
+ Integer integer = feedingMapper.selectCount(queryWrapper1);
|
|
|
|
+ queryWrapper1.eq("duck_num", duckNum);
|
|
|
|
+ List<EnvRegularCallFeedingVo> feedingVoList1 = feedingMapper.listScreen2(queryWrapper1);//某只鸭子的总采食量
|
|
|
|
+ int i = 0;
|
|
|
|
+ for (EnvRegularCallFeedingVo envRegularCallFeedingVo : feedingVoList1) {
|
|
|
|
+ Date callDate = envRegularCallFeedingVo.getCallDate();
|
|
|
|
+ QueryWrapper<EnvRegularCallFeeding> callFeedingQueryWrapper = new QueryWrapper<>();
|
|
|
|
+ callFeedingQueryWrapper.eq("farm_id", farmId).eq("event_type", 0).between("call_date", DateUtil.offsetDay(dateTime,i), DateUtil.offsetDay(dateTime, i));
|
|
|
|
+ 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(integer);
|
|
|
|
+ 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);
|
|
return new Result(ResultCode.SUCCESS, jsonObject);
|
|
}
|
|
}
|
|
|
|
|