wwh 1 年之前
父节点
当前提交
70ca8afd37

+ 26 - 3
huimv-admin/src/main/java/com/huimv/admin/controller/FeedingDataController.java

@@ -1,13 +1,16 @@
 package com.huimv.admin.controller;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.service.IFeedingDataService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
 
-import org.springframework.web.bind.annotation.RestController;
+import java.util.Map;
 
 /**
  * <p>
- *  前端控制器
+ * 前端控制器
  * </p>
  *
  * @author author
@@ -15,6 +18,26 @@ import org.springframework.web.bind.annotation.RestController;
  */
 @RestController
 @RequestMapping("/feeding-data")
+@CrossOrigin
 public class FeedingDataController {
 
+    @Autowired
+    private IFeedingDataService dataService;
+
+    @PostMapping("/listFeed")
+    public Result listFeed(@RequestBody Map<String, String> map) {
+        return dataService.listFeed(map);
+    }
+    @PostMapping("/listPig")
+    public Result listPig(@RequestBody Map<String, String> map) {
+        return dataService.listPig(map);
+    }
+    @PostMapping("/listEnv")
+    public Result listEnv(@RequestBody Map<String, String> map) {
+        return dataService.listEnv(map);
+    }
+    @PostMapping("/listMeals")
+    public Result listMeals(@RequestBody Map<String, String> map) {
+        return dataService.listMeals(map);
+    }
 }

+ 17 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/vo/FeedDataVo2.java

@@ -0,0 +1,17 @@
+package com.huimv.admin.entity.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class FeedDataVo2 {
+    private Double feedValue;
+
+    @JsonFormat(pattern = "MM-dd", timezone = "GMT+8")
+    private Date dateTime;
+
+    private Integer count;
+
+}

+ 3 - 0
huimv-admin/src/main/java/com/huimv/admin/mapper/FeedingDataMapper.java

@@ -6,6 +6,7 @@ import com.huimv.admin.entity.EnergyData;
 import com.huimv.admin.entity.FeedingData;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.huimv.admin.entity.vo.FeedDataVo;
+import com.huimv.admin.entity.vo.FeedDataVo2;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -20,4 +21,6 @@ import java.util.List;
  */
 public interface FeedingDataMapper extends BaseMapper<FeedingData> {
     List<FeedDataVo> listFeed(@Param(Constants.WRAPPER) QueryWrapper<FeedingData> queryWrapper);
+
+    List<FeedDataVo2> listDayFeed(@Param(Constants.WRAPPER) QueryWrapper<FeedingData> queryWrapper);
 }

+ 9 - 0
huimv-admin/src/main/java/com/huimv/admin/service/IFeedingDataService.java

@@ -1,8 +1,11 @@
 package com.huimv.admin.service;
 
+import com.huimv.admin.common.utils.Result;
 import com.huimv.admin.entity.FeedingData;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.Map;
+
 /**
  * <p>
  *  服务类
@@ -12,5 +15,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @since 2023-09-19
  */
 public interface IFeedingDataService extends IService<FeedingData> {
+    Result listFeed(Map<String,String> paramsMap);
+
+    Result listPig(Map<String,String> paramsMap);
+
+    Result listEnv(Map<String,String> paramsMap);
 
+    Result listMeals(Map<String,String> paramsMap);
 }

+ 93 - 0
huimv-admin/src/main/java/com/huimv/admin/service/impl/FeedingDataServiceImpl.java

@@ -1,11 +1,26 @@
 package com.huimv.admin.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.admin.common.utils.DataUill;
+import com.huimv.admin.common.utils.DateUtil;
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.common.utils.ResultCode;
 import com.huimv.admin.entity.FeedingData;
+import com.huimv.admin.entity.FeedingEnv;
+import com.huimv.admin.entity.vo.FeedDataVo2;
 import com.huimv.admin.mapper.FeedingDataMapper;
+import com.huimv.admin.mapper.FeedingEnvMapper;
 import com.huimv.admin.service.IFeedingDataService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
  *  服务实现类
@@ -17,4 +32,82 @@ import org.springframework.stereotype.Service;
 @Service
 public class FeedingDataServiceImpl extends ServiceImpl<FeedingDataMapper, FeedingData> implements IFeedingDataService {
 
+    @Autowired
+    private FeedingDataMapper dataMapper;
+    @Autowired
+    private FeedingEnvMapper envMapper;
+
+    @Override
+    public Result listFeed(Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        QueryWrapper<FeedingData> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId);
+        List<FeedDataVo2> dataVo2s = dataMapper.listDayFeed(queryWrapper);
+        for (FeedDataVo2 dataVo2 : dataVo2s) {
+            Date dateTime = dataVo2.getDateTime();
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+            String format = sdf.format(dateTime);
+            String start = format + " 00:00:00";
+            String end = format + " 23:59:59";
+            QueryWrapper<FeedingData> queryWrapper1 = new QueryWrapper<>();
+            queryWrapper1.eq("farm_id", farmId).between("upload_time", start, end);
+            queryWrapper1.groupBy("device_code");
+            List<FeedingData> feedingData = dataMapper.selectList(queryWrapper1);
+            dataVo2.setCount(feedingData.size());
+        }
+        return new Result(ResultCode.SUCCESS, dataVo2s);
+    }
+
+    @Override
+    public Result listPig(Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        QueryWrapper<FeedingEnv> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).eq("device_type", 0);
+        Integer integer = envMapper.selectCount(queryWrapper);//哺乳
+        QueryWrapper<FeedingEnv> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.eq("farm_id", farmId).eq("device_type", 1);
+        Integer integer1 = envMapper.selectCount(queryWrapper);//配怀
+
+        Date timesmorning = DataUill.getTimesmorning();
+        QueryWrapper<FeedingData> queryWrapper2 = new QueryWrapper<>();
+        queryWrapper2.eq("farm_id", farmId).ge("upload_time", timesmorning).groupBy("device_code");
+        Integer integer2 = dataMapper.selectCount(queryWrapper2);//头数
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("peihuai", integer1);
+        jsonObject.put("buru", integer);
+        jsonObject.put("oneHour", integer2);
+        jsonObject.put("threeHour", integer2);
+        jsonObject.put("allHour", integer1 + integer);
+        return new Result(ResultCode.SUCCESS, jsonObject);
+    }
+
+    @Override
+    public Result listEnv(Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        QueryWrapper<FeedingEnv> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).orderByDesc("last_time").groupBy("device_code");
+        List<FeedingEnv> feedingEnvs = envMapper.selectList(queryWrapper);
+        return new Result(ResultCode.SUCCESS, feedingEnvs);
+    }
+
+    @Override
+    public Result listMeals(Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        QueryWrapper<FeedingData> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).groupBy("device_code").eq("meals", 0);
+        List<FeedingData> feedingData = dataMapper.selectList(queryWrapper);
+        QueryWrapper<FeedingData> queryWrapper2 = new QueryWrapper<>();
+        queryWrapper2.eq("farm_id", farmId).groupBy("device_code").eq("meals", 1);
+        List<FeedingData> feedingData2 = dataMapper.selectList(queryWrapper2);
+        QueryWrapper<FeedingData> queryWrapper3 = new QueryWrapper<>();
+        queryWrapper3.eq("farm_id", farmId).groupBy("device_code").eq("meals", 2);
+        List<FeedingData> feedingData3 = dataMapper.selectList(queryWrapper3);
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("first", feedingData.size());
+        jsonObject.put("second", feedingData2.size());
+        jsonObject.put("third", feedingData3.size());
+        jsonObject.put("huai", feedingData.size());
+        jsonObject.put("yun", feedingData2.size());
+        return new Result(ResultCode.SUCCESS, jsonObject);
+    }
 }

+ 0 - 3
huimv-admin/src/main/java/com/huimv/admin/service/impl/ProtDataServiceImpl.java

@@ -1007,7 +1007,6 @@ public class ProtDataServiceImpl extends ServiceImpl<ProtDataMapper, ProtData> i
                 jsonObject.put("in", writeProtData);
             }
 
-
             QueryWrapper<WriteProtData> queryWrapper1 = new QueryWrapper<>();
             queryWrapper1.eq("farm_id", farmId).eq("type", 2).orderByDesc("create_date").last(" limit 1");
             WriteProtData writeProtData1 = writeProtDataMapper.selectOne(queryWrapper1);
@@ -1017,7 +1016,6 @@ public class ProtDataServiceImpl extends ServiceImpl<ProtDataMapper, ProtData> i
                 jsonObject.put("deal", writeProtData1);
             }
 
-
             QueryWrapper<WriteProtData> queryWrapper2 = new QueryWrapper<>();
             queryWrapper2.eq("farm_id", farmId).eq("type", 3).orderByDesc("create_date").last(" limit 1");
             WriteProtData writeProtData2 = writeProtDataMapper.selectOne(queryWrapper2);
@@ -1029,7 +1027,6 @@ public class ProtDataServiceImpl extends ServiceImpl<ProtDataMapper, ProtData> i
 
         }
 
-
         return new Result(ResultCode.SUCCESS, jsonObject);
     }
 

+ 13 - 12
huimv-admin/src/main/java/com/huimv/admin/timer/FeedTimer.java

@@ -53,19 +53,21 @@ public class FeedTimer {
     private FeedingDataMapper dataMapper;
 
 
-    @Scheduled(cron = "0 0 */1 * * ? ")
+//    @Scheduled(cron = "0 0 */1 * * ? ")
+    @Scheduled(cron = "0 0/59 * * * ? ")
     @Transactional
     public void getFeed() throws Exception {
         QueryWrapper<FeedArea> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("farm_id", 26);
         List<FeedArea> feedAreas = feedAreaMapper.selectList(queryWrapper);
         Date now = new Date(); // 获取当前时间
-        long oneHour = 1 * 30 * 1000; // 1小时的毫秒数
+        long oneHour = 1 * 60 * 60 * 1000; // 1小时的毫秒数
         Date oneHourAgo = new Date(now.getTime() - oneHour); // 获取1小时前的时间
         List<String> time = new ArrayList<>();
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         time.add(sdf.format(oneHourAgo));
         time.add(sdf.format(new Date()));
+        System.out.println("这个是传入的时间数组:" + time);
         for (FeedArea feedArea : feedAreas) {
             HashMap<String, String> paramMap = new HashMap<>();
             JSONObject jsonObject = new JSONObject();
@@ -86,20 +88,22 @@ public class FeedTimer {
                 FeedingData data = new FeedingData();
                 data.setFarmId(26);
                 data.setUnitName(feedArea.getUnitName());
+                data.setDeviceCode(stringMap.get("fdQrcode").toString());
                 QueryWrapper<FeedingEnv> queryWrapper1 = new QueryWrapper<>();
                 queryWrapper1.eq("device_code", stringMap.get("fdQrcode"));
                 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                 data.setUploadTime(dateFormat.parse(stringMap.get("createTime").toString()));
                 data.setBlanking(stringMap.get("zkAlram").toString());
                 FeedingEnv env = envMapper.selectOne(queryWrapper1);
-                data.setEartag(env.getEartag());
-                env.setUnitName(feedArea.getUnitName());
-                env.setBlanking(stringMap.get("zkAlram").toString());
+                if (ObjectUtil.isNotEmpty(env)) {
+                    data.setEartag(env.getEartag());
+                    env.setUnitName(feedArea.getUnitName());
+                    env.setBlanking(stringMap.get("zkAlram").toString());
+                    envMapper.updateById(env);
+                }
+                data.setMeals(Integer.parseInt(stringMap.get("dayDeliver").toString()));
                 data.setFoodIntake(stringMap.get("intFdWeight").toString());
-//                data.setMeals((int)Math.random() * 10 + 1);
-//                env.setMeals((int)Math.random() * 10 + 1);
                 dataMapper.insert(data);
-                envMapper.updateById(env);
             }
         }
     }
@@ -111,12 +115,9 @@ public class FeedTimer {
         jsonObject.put("password", "123456");
         paramMap.put("Content-Type", "application/json;charset=utf-8");
         String post = HttpRequest.post("http://znsw.zxkj2006.com/feed/api/admin/appLogin").headerMap(paramMap, false).body(jsonObject.toJSONString()).timeout(30 * 1000).execute().body();
-        System.out.println(post);
         JSONObject jsonObject1 = JSONObject.parseObject(post);
-        System.out.println(jsonObject1);
         Map map = (Map) jsonObject1.get("data");
         String s = map.get("tokenHead") + " " + map.get("token");
-        System.out.println(s);
         return s;
     }
 
@@ -148,7 +149,7 @@ public class FeedTimer {
 
 
     //饲养器添加
-    @Scheduled(cron = "0 0 */1 * * ? ")
+    @Scheduled(cron = "0 0/30 * * * ? ")
     @Transactional
     public void getFeedEnv() throws Exception {
         QueryWrapper<FeedArea> queryWrapper = new QueryWrapper<>();

+ 7 - 0
huimv-admin/src/main/resources/mapper/FeedingDataMapper.xml

@@ -8,4 +8,11 @@
         GROUP BY DATE_FORMAT(upload_time,'%Y-%m-%d')
         ORDER BY upload_time ASC
     </select>
+
+    <select id="listDayFeed" resultType="com.huimv.admin.entity.vo.FeedDataVo2">
+        SELECT Convert((IFNUll(sum(food_intake),'0')),DECIMAL(10,2)) 'feedValue',upload_time 'dateTime' FROM `feeding_data`
+         ${ew.customSqlSegment}
+        GROUP BY DATE_FORMAT(upload_time,'%Y-%m-%d')
+        ORDER BY upload_time ASC
+    </select>
 </mapper>