Browse Source

国伟大屏称重曲线修改

wwh 1 year ago
parent
commit
2882078e7d

+ 2 - 1
huimv-admin/src/main/java/com/huimv/guowei/admin/controller/BaseDuckInfoController.java

@@ -17,6 +17,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.text.ParseException;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -183,7 +184,7 @@ public class BaseDuckInfoController {
     }
 
     @RequestMapping("/listDuckByScreen2")
-    public Result listDuckByScreen2(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+    public Result listDuckByScreen2(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) throws ParseException {
         return duckInfoService.listDuckByScreen2(httpServletRequest, paramsMap);
     }
 

+ 1 - 1
huimv-admin/src/main/java/com/huimv/guowei/admin/service/IBaseDuckInfoService.java

@@ -40,7 +40,7 @@ public interface IBaseDuckInfoService extends IService<BaseDuckInfo> {
     //大屏
     Result listDuckByScreen(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
 
-    Result listDuckByScreen2(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
+    Result listDuckByScreen2(HttpServletRequest httpServletRequest, Map<String,String> paramsMap) throws ParseException;
 
     Result listAppDuck(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
 }

+ 68 - 103
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/BaseDuckInfoServiceImpl.java

@@ -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);