wwh пре 1 година
родитељ
комит
d2f17cf9b5
37 измењених фајлова са 764 додато и 108 уклоњено
  1. 1 1
      huimv-admin/src/main/java/com/huimv/guowei/admin/config/InterceptorConfig.java
  2. 10 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/controller/BaseDuckInfoController.java
  3. 2 2
      huimv-admin/src/main/java/com/huimv/guowei/admin/controller/DuckHealthInfoController.java
  4. 14 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/controller/EnvRegularCallEggController.java
  5. 20 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/controller/RawDataController.java
  6. 117 35
      huimv-admin/src/main/java/com/huimv/guowei/admin/controller/TaskController.java
  7. 7 1
      huimv-admin/src/main/java/com/huimv/guowei/admin/entity/Departure.java
  8. 2 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/entity/DuckHealthInfo.java
  9. 3 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/entity/EnvMoveCall.java
  10. 5 1
      huimv-admin/src/main/java/com/huimv/guowei/admin/entity/EnvRegularCallEgg.java
  11. 6 2
      huimv-admin/src/main/java/com/huimv/guowei/admin/entity/EnvRegularCallFeeding.java
  12. 40 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/entity/RawData.java
  13. 70 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/entity/vo/EnvMoveCallVo.java
  14. 2 2
      huimv-admin/src/main/java/com/huimv/guowei/admin/entity/vo/EnvRegularCallEggVo.java
  15. 72 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/entity/vo/EnvRegularCallFeedingVo.java
  16. 2 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/mapper/EnvMoveCallMapper.java
  17. 3 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/mapper/EnvRegularCallFeedingMapper.java
  18. 16 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/mapper/RawDataMapper.java
  19. 43 2
      huimv-admin/src/main/java/com/huimv/guowei/admin/mqtt/moveScale/DataBack.java
  20. 18 6
      huimv-admin/src/main/java/com/huimv/guowei/admin/mqtt/moveScale/ReceiveData.java
  21. 2 2
      huimv-admin/src/main/java/com/huimv/guowei/admin/mqtt/moveScale/SendData.java
  22. 35 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/mqtt/moveScale/UploadMqttStart.java
  23. 5 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/service/IBaseDuckInfoService.java
  24. 1 1
      huimv-admin/src/main/java/com/huimv/guowei/admin/service/IDuckHealthInfoService.java
  25. 7 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/service/IEnvRegularCallEggService.java
  26. 16 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/service/IRawDataService.java
  27. 45 3
      huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/BaseDuckInfoServiceImpl.java
  28. 6 3
      huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/DepartureServiceImpl.java
  29. 14 23
      huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/DuckHealthInfoServiceImpl.java
  30. 7 4
      huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/EnvMoveCallServiceImpl.java
  31. 87 15
      huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/EnvRegularCallEggServiceImpl.java
  32. 7 5
      huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/EnvRegularCallFeedingServiceImpl.java
  33. 20 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/RawDataServiceImpl.java
  34. 36 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/utils/SpringUtil.java
  35. 9 0
      huimv-admin/src/main/resources/com/huimv/guowei/admin/mapper/EnvMoveCallMapper.xml
  36. 9 0
      huimv-admin/src/main/resources/com/huimv/guowei/admin/mapper/EnvRegularCallFeedingMapper.xml
  37. 5 0
      huimv-admin/src/main/resources/mapper/RawDataMapper.xml

+ 1 - 1
huimv-admin/src/main/java/com/huimv/guowei/admin/config/InterceptorConfig.java

@@ -28,6 +28,6 @@ public class InterceptorConfig implements WebMvcConfigurer {
     public void addInterceptors(InterceptorRegistry registry) {
         registry.addInterceptor(jwtInterceptor()).
                 excludePathPatterns("/admin/my/*")
-                .excludePathPatterns("/receive/feed","/base-duck-info/printDuck","/env-regular-call-egg/printEgg");
+                .excludePathPatterns("/receive/feed","/base-duck-info/printDuck","/env-regular-call-egg/printEgg","/send/play");
     }
 }

+ 10 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/controller/BaseDuckInfoController.java

@@ -120,4 +120,14 @@ public class BaseDuckInfoController {
         String path = "/opt/guowei/duck.xls";
         PdfUtil.returnPdfStream3(response, path, "鸭只档案列表");
     }
+
+    //大屏
+    @RequestMapping("/listDuckByScreen")
+    public Result listDuckByScreen(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return duckInfoService.listDuckByScreen(httpServletRequest, paramsMap);
+    }
+    @RequestMapping("/listDuckByScreen2")
+    public Result listDuckByScreen2(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return duckInfoService.listDuckByScreen2(httpServletRequest, paramsMap);
+    }
 }

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

@@ -38,8 +38,8 @@ public class DuckHealthInfoController {
     }
 
     @RequestMapping("/addDuck")
-    public Result addDuck(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) throws ParseException {
-        return healthInfoService.addHealth(httpServletRequest, paramsMap);
+    public Result addDuck(HttpServletRequest httpServletRequest, @RequestBody DuckHealthInfo healthInfo) throws ParseException {
+        return healthInfoService.addHealth(httpServletRequest, healthInfo);
     }
 
     @RequestMapping("/editDuck")

+ 14 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/controller/EnvRegularCallEggController.java

@@ -72,4 +72,18 @@ public class EnvRegularCallEggController {
     public Result listSeven(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
         return eggService.listSeven(httpServletRequest, paramsMap);
     }
+
+
+    //大屏
+    //采集器
+    @RequestMapping("/collector")
+    public Result collector(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return eggService.collector(httpServletRequest, paramsMap);
+    }
+
+    //控制器
+    @RequestMapping("/collectorEnv")
+    public Result collectorEnv(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return eggService.collectorEnv(httpServletRequest, paramsMap);
+    }
 }

+ 20 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/controller/RawDataController.java

@@ -0,0 +1,20 @@
+package com.huimv.guowei.admin.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2023-06-25
+ */
+@RestController
+@RequestMapping("/raw-data")
+public class RawDataController {
+
+}

+ 117 - 35
huimv-admin/src/main/java/com/huimv/guowei/admin/controller/TaskController.java

@@ -1,51 +1,133 @@
 package com.huimv.guowei.admin.controller;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.guowei.admin.common.utils.Result;
+import com.huimv.guowei.admin.common.utils.ResultCode;
+import com.huimv.guowei.admin.entity.EnvDeviceEquipment;
+import com.huimv.guowei.admin.entity.EnvMoveCall;
+import com.huimv.guowei.admin.mqtt.moveScale.DataBack;
+import com.huimv.guowei.admin.mqtt.moveScale.ReceiveData;
+import com.huimv.guowei.admin.mqtt.moveScale.SendData;
+import com.huimv.guowei.admin.service.IEnvMoveCallService;
 import com.huimv.guowei.admin.utils.ProcessUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.io.IOException;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 @CrossOrigin
 @RestController
-@RequestMapping("/appleVideo")
+@RequestMapping("/send")
 public class TaskController {
 
-    @GetMapping("/play")
-    public String play(@RequestParam(value = "url", required = true) String url) throws IOException, InterruptedException {
-
-        String input = url;
-        System.out.println(input);
-        String[] split = input.split("/");
-        String name = split[4];
-        System.out.println(name);
-        String output = "/usr/local/nginx/html/hls/" + name + ".m3u8";
-        List<String> command = new ArrayList<>();
-        command.add("ffmpeg");
-        command.add("-i");
-        command.add(input);
-        command.add("-c:v");
-        command.add("copy");
-        command.add("-c:a");
-        command.add("copy");
-        command.add("-f");
-        command.add("ssegment");
-        command.add("-segment_format");
-        command.add("mpegts");
-        command.add("-segment_list");
-        command.add(output);
-        command.add("-segment_time");
-        command.add("10");
-        command.add("/usr/local/nginx/html/hls/" + name + "%05d.ts");//
-        System.out.println(command);
-        String result = ProcessUtil.execute(command);
-        Thread.sleep(10000);
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.put("url", "http://192.168.1.68:80" + "/hls/" + name + ".m3u8");
-        jsonObject.put("code", Integer.valueOf(8200));
-        jsonObject.put("message", "请求成功.");
-        return jsonObject.toJSONString();
+    @Autowired
+    private IEnvMoveCallService callService;
+
+    @PostMapping("/play")
+    public Result play(@RequestBody Map<String, String> paramsMap) throws InterruptedException {
+
+        SendData sendData = new SendData();
+        sendData.start();
+        Thread.sleep(3500);
+        QueryWrapper<EnvMoveCall> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", paramsMap.get("farmId")).eq("call_code", paramsMap.get("callCode"))
+                .orderByDesc("call_date").last("limit 1");
+        EnvMoveCall one = callService.getOne(queryWrapper);
+        if (ObjectUtil.isEmpty(one)) {
+            return new Result(10001, "请开启电子秤!", false);
+        }
+        QueryWrapper<EnvMoveCall> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.eq("farm_id", paramsMap.get("farmId")).eq("call_code", paramsMap.get("callCode"));
+        List<EnvMoveCall> list = callService.list(queryWrapper1);
+        for (EnvMoveCall envMoveCall : list) {
+            if (("").equals(envMoveCall.getDuckNum())|| null==envMoveCall.getDuckNum() ) {
+                callService.removeById(envMoveCall);
+            }
+        }
+        if ("".equals(one.getDuckWeight()) || null == one.getDuckWeight()) {
+            return new Result(10001, "称已失去连接,请重启电子秤!", false);
+        }
+
+        return new Result(ResultCode.SUCCESS, one.getDuckWeight());
+    }
+    @PostMapping("/update")
+    public Result update(@RequestBody EnvDeviceEquipment envDeviceEquipment) {
+    /*    try {
+            Date date = new Date();
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            System.out.println("----这个是开始请求的时间:"+sdf.format(date));
+            envDeviceEquipmentService.updateById(envDeviceEquipment);
+            EnvDeviceEquipment byId = envDeviceEquipmentService.getById(envDeviceEquipment.getId());
+            String deviceCode = byId.getDeviceCode();
+            System.out.println("设备" + deviceCode);
+            QueryWrapper<EnvDeviceRegister> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("device_code", deviceCode);
+            EnvDeviceRegister one = deviceRegisterService.getOne(queryWrapper);
+            String chipId = one.getChipId();
+            log.info("-------获取设备编码:" + chipId);
+//            PublishMQTT publishMQTT = new PublishMQTT();
+            log.info("-----开始配置消息----");
+            QueryWrapper<EnvDeviceEquipment> queryWrapper1 = new QueryWrapper<>();
+            queryWrapper1.eq("device_code", deviceCode).orderByDesc("equipment_port");
+            List<EnvDeviceEquipment> list = envDeviceEquipmentService.list(queryWrapper1);
+            StringBuilder deviceStatus = new StringBuilder();
+            for (EnvDeviceEquipment envDeviceEquipment1 : list) {
+                deviceStatus.append(envDeviceEquipment1.getUploadStart());
+            }
+            String s = deviceStatus.toString();
+            int i = Integer.parseInt(s, 2);
+            JSONObject jsonObject = new JSONObject();
+            jsonObject.put("dev_ctrl", i);
+            log.info("消息配置完成开始发送:" + jsonObject.toJSONString());
+            PublishMQTTTree publishMQTTTree = new PublishMQTTTree();
+            Boolean start = publishMQTTTree.start("tcp://115.238.57.190:1883", "test" + chipId, "admin", "admin", "huimv_down_" + chipId, jsonObject.toJSONString());
+
+            if (start) {
+                Thread.sleep(2500);//线程等待3秒
+                EnvDeviceEquipment byId1 = envDeviceEquipmentService.getById(envDeviceEquipment.getId());
+                Date updateTime = byId1.getUpdateTime();
+                System.out.println("-----这个是修改后的时间:"+updateTime);
+//                updateTime.setTime(updateTime.getTime()+5*1000);
+                int i1 = updateTime.compareTo(date);
+                if (byId1.getMark() == 1 && i1 > 0) {
+                    QueryWrapper<EnvDeviceEquipment> queryWrapper2 = new QueryWrapper<>();
+                    queryWrapper2.eq("device_code", deviceCode).orderByDesc("equipment_port");
+                    List<EnvDeviceEquipment> list1 = envDeviceEquipmentService.list(queryWrapper2);
+                    for (EnvDeviceEquipment equipment : list1) {
+                        equipment.setMark(0);
+                        envDeviceEquipmentService.updateById(equipment);
+                    }
+                    return new Result(10000, "修改成功", true);
+                } else {
+                    if (envDeviceEquipment.getUploadStart() == 1) {
+                        envDeviceEquipment.setUploadStart(0);
+                    } else {
+                        envDeviceEquipment.setUploadStart(1);
+                    }
+                    envDeviceEquipmentService.updateById(envDeviceEquipment);
+                    return new Result(10001, "设备掉线,请等待设备重连", false);
+                }
+            } else {
+                if (envDeviceEquipment.getUploadStart() == 1) {
+                    envDeviceEquipment.setUploadStart(0);
+                } else {
+                    envDeviceEquipment.setUploadStart(1);
+                }
+                envDeviceEquipmentService.updateById(envDeviceEquipment);
+                return new Result(10001, "网络连接超时,请等待5秒后重试", false);
+            }
+
+        } catch (Exception e) {
+            System.out.println("22222222222" + e);
+            return new Result(10001, "修改失败", false);
+        }*/
+        return null;
     }
 }

+ 7 - 1
huimv-admin/src/main/java/com/huimv/guowei/admin/entity/Departure.java

@@ -5,6 +5,9 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import java.time.LocalDateTime;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -44,7 +47,8 @@ public class Departure implements Serializable {
     /**
      * 离场日期
      */
-    private LocalDateTime date;
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date date;
 
     /**
      * 离场原因
@@ -53,4 +57,6 @@ public class Departure implements Serializable {
 
     private Integer farmId;
 
+    private String unitName;
+
 }

+ 2 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/entity/DuckHealthInfo.java

@@ -67,6 +67,8 @@ public class DuckHealthInfo implements Serializable {
 
     private String measure;//药品用量
 
+    private String unitName;//笼位名称
+
 
 
 }

+ 3 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/entity/EnvMoveCall.java

@@ -65,4 +65,7 @@ public class EnvMoveCall implements Serializable {
     private Integer farmId;
     private Integer duckId;
 
+    private String unitName;
+    private Integer unitId;
+
 }

+ 5 - 1
huimv-admin/src/main/java/com/huimv/guowei/admin/entity/EnvRegularCallEgg.java

@@ -48,7 +48,7 @@ public class EnvRegularCallEgg implements Serializable {
     /**
      * 鸡蛋重量 克
      */
-    private Integer duckWeight;
+    private Double duckWeight;
 
     /**
      * 原始数据
@@ -69,5 +69,9 @@ public class EnvRegularCallEgg implements Serializable {
     private Integer farmId;
     private Integer duckId;
 
+    private String battery;
+    private Integer unitId;
+    private String unitName;
+
 
 }

+ 6 - 2
huimv-admin/src/main/java/com/huimv/guowei/admin/entity/EnvRegularCallFeeding.java

@@ -48,7 +48,7 @@ public class EnvRegularCallFeeding implements Serializable {
     /**
      * 采食重量 克
      */
-    private Integer duckWeight;
+    private Double duckWeight;
 
     /**
      * 原始数据
@@ -58,12 +58,16 @@ public class EnvRegularCallFeeding implements Serializable {
     /**
      * 称重日期
      */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date callDate;
 
     private Integer farmId;
 
     private Integer duckId;
 
+    private String battery;
+    private Integer unitId;
+    private String unitName;
+
 
 }

+ 40 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/entity/RawData.java

@@ -0,0 +1,40 @@
+package com.huimv.guowei.admin.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2023-06-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("raw_data")
+public class RawData implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String deviceCode;
+
+    private String data;
+
+    private Date createTime;
+
+
+}

+ 70 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/entity/vo/EnvMoveCallVo.java

@@ -0,0 +1,70 @@
+package com.huimv.guowei.admin.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2023-06-01
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("env_move_call")
+public class EnvMoveCallVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 设备名称
+     */
+    private String callName;
+
+    /**
+     * 设备编码
+     */
+    private String callCode;
+
+    /**
+     * 鸭只编号
+     */
+    private String duckNum;
+
+    /**
+     * 体重
+     */
+    private BigDecimal duckWeight;
+
+    /**
+     * 称重日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date callDate;
+
+    /**
+     * 日龄
+     */
+    private Integer dayage;
+
+    private Integer farmId;
+    private Integer duckId;
+
+    private BigDecimal avgWeight;
+
+}

+ 2 - 2
huimv-admin/src/main/java/com/huimv/guowei/admin/entity/vo/EnvRegularCallEggVo.java

@@ -41,7 +41,7 @@ public class EnvRegularCallEggVo implements Serializable {
 */
     private String date;
 
-    private Integer feed;
-    private Integer weight;
+    private Double feed;
+    private Double weight;
 
 }

+ 72 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/entity/vo/EnvRegularCallFeedingVo.java

@@ -0,0 +1,72 @@
+package com.huimv.guowei.admin.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * <p>
+ * 固定电子秤
+ * </p>
+ *
+ * @author author
+ * @since 2023-06-01
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("env_regular_call_feeding")
+public class EnvRegularCallFeedingVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 设备名称
+     */
+    private String callName;
+
+    /**
+     * 设备编码
+     */
+    private String callCode;
+
+    /**
+     * 鸭只编号
+     */
+    private String duckNum;
+
+    /**
+     * 采食重量 克
+     */
+    private Integer duckWeight;
+
+    /**
+     * 原始数据
+     */
+    private Integer duckFeedingOriginal;
+
+    /**
+     * 称重日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date callDate;
+
+    private Integer farmId;
+
+    private Integer duckId;
+
+    private BigDecimal avgWeight;
+
+
+}

+ 2 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/mapper/EnvMoveCallMapper.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.huimv.guowei.admin.entity.EnvMoveCall;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.huimv.guowei.admin.entity.EnvRegularCallEgg;
+import com.huimv.guowei.admin.entity.vo.EnvMoveCallVo;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -19,4 +20,5 @@ import java.util.List;
  */
 public interface EnvMoveCallMapper extends BaseMapper<EnvMoveCall> {
     List<EnvMoveCall> listDay(@Param(Constants.WRAPPER) QueryWrapper<EnvMoveCall> queryWrapper);
+    List<EnvMoveCallVo> listScreen(@Param(Constants.WRAPPER) QueryWrapper<EnvMoveCall> queryWrapper);
 }

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

@@ -8,6 +8,7 @@ import com.huimv.guowei.admin.entity.EnergyElectricity;
 import com.huimv.guowei.admin.entity.EnvRegularCallEgg;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.huimv.guowei.admin.entity.EnvRegularCallFeeding;
+import com.huimv.guowei.admin.entity.vo.EnvRegularCallFeedingVo;
 import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
@@ -32,4 +33,6 @@ public interface EnvRegularCallFeedingMapper extends BaseMapper<EnvRegularCallFe
 
     List<EnvRegularCallFeeding> listSevenDayFeed(String farmId,String unitId);
 
+    List<EnvRegularCallFeedingVo> listScreen(@Param(Constants.WRAPPER) QueryWrapper<EnvRegularCallFeeding> queryWrapper);
+
 }

+ 16 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/mapper/RawDataMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.guowei.admin.mapper;
+
+import com.huimv.guowei.admin.entity.RawData;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2023-06-25
+ */
+public interface RawDataMapper extends BaseMapper<RawData> {
+
+}

+ 43 - 2
huimv-admin/src/main/java/com/huimv/guowei/admin/mqtt/moveScale/DataBack.java

@@ -1,16 +1,25 @@
 package com.huimv.guowei.admin.mqtt.moveScale;
 
+import com.huimv.guowei.admin.entity.EnvMoveCall;
+import com.huimv.guowei.admin.mapper.EnvMoveCallMapper;
+import com.huimv.guowei.admin.service.IEnvMoveCallService;
+import com.huimv.guowei.admin.utils.SpringUtil;
 import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
 import org.eclipse.paho.client.mqttv3.MqttCallback;
 import org.eclipse.paho.client.mqttv3.MqttMessage;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.math.BigDecimal;
+import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
 @Component
 public class DataBack implements MqttCallback {
 
+    @Autowired
+    private EnvMoveCallMapper moveCallMapper;
     @Override
     public void connectionLost(Throwable cause) {
 
@@ -34,9 +43,41 @@ public class DataBack implements MqttCallback {
         System.out.println("接收消息内容 : " + new String(message.getPayload()));
 
         System.out.println("开始处理数据:");
+        String s = new String(message.getPayload());
+        String[] split = s.split("\\+");
+        String s1 = split[0];
+        if (s1.equals("865328066116350")) {
+            IEnvMoveCallService iEnvMoveCallService = SpringUtil.getBean(IEnvMoveCallService.class);
+            System.out.println(s1);
+            String s2 = split[1];
+            String substring = s2.substring(0, 9);
+            BigDecimal bg = new BigDecimal(substring);
+            EnvMoveCall envMoveCall = new EnvMoveCall();
+            envMoveCall.setCallDate(date);
+            envMoveCall.setCallCode(s1);
+            envMoveCall.setCallName("移动电子秤1");
+            envMoveCall.setDuckWeight(bg);
+            envMoveCall.setFarmId(21);
+            iEnvMoveCallService.save(envMoveCall);
+            System.out.println(bg);
+            System.out.println("数据处理完成!");
+        }
 
+    }
 
-        System.out.println("数据处理完成!");
 
-    }
+/*    public static void main(String[] args) {
+        String s = "865328066116350+000.04000.00kg";
+        String[] split = s.split("\\+");
+        String s1 = split[0];
+        System.out.println(s1);
+        System.out.println(split[1]);
+        String s2 = split[1];
+        String substring = s2.substring(0, 9);
+        System.out.println(substring);
+        BigDecimal bg = new BigDecimal(substring);
+        System.out.println(bg);
+
+
+    }*/
 }

+ 18 - 6
huimv-admin/src/main/java/com/huimv/guowei/admin/mqtt/moveScale/ReceiveData.java

@@ -1,5 +1,6 @@
 package com.huimv.guowei.admin.mqtt.moveScale;
 
+import lombok.Data;
 import org.eclipse.paho.client.mqttv3.MqttClient;
 import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
 import org.eclipse.paho.client.mqttv3.MqttMessage;
@@ -7,18 +8,23 @@ import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 @Configuration
-public class ReceiveData {
-    public static final String HOST = "tcp://192.168.1.68:1883";
+@Data
+public class ReceiveData extends Thread {
+    public static final String HOST = "tcp://115.238.57.190:1883";
     //    public static final String TOPIC1 = "/today/#";//请阅地址
-    private static final String clientid = "GuoWei01";
+    private String clientid="GuoWeiReceive";
     private static MqttClient client;
     private static MqttConnectOptions options;
 
     private static String userName = "admin";    //非必须
     private static String passWord = "admin";  //非必须
+    private List<String> topics;
 
-    public void start() {
+    @Override
+    public void run() {
         try {
             // host为主机名,clientid即连接MQTT的客户端ID,一般以唯一标识符表示,MemoryPersistence设置clientid的保存形式,默认为以内存保存
             client = new MqttClient(HOST, clientid, new MemoryPersistence());
@@ -40,10 +46,16 @@ public class ReceiveData {
             client.setCallback(new DataBack());
 
             client.connect(options);
-            //订阅消息
-            client.subscribe("huimv_GW_down",0);
+
+            for (String topic : topics) {
+                if (topic.equals("865328066116350")) {
+                    //订阅消息
+                    client.subscribe("huimv_GW_down",0);
+                }
+            }
         } catch (Exception e) {
             e.printStackTrace();
         }
     }
+
 }

+ 2 - 2
huimv-admin/src/main/java/com/huimv/guowei/admin/mqtt/moveScale/SendData.java

@@ -11,8 +11,8 @@ import org.springframework.stereotype.Component;
 @Component
 public class SendData  {
 
-    public static final String HOST = "tcp://192.168.1.68:1883";
-    private static final String clientid = "Test003";
+    public static final String HOST = "tcp://115.238.57.190:1883";
+    private static final String clientid = "GuoWeiSend";
     private MqttClient client;
     private MqttConnectOptions options;
 

+ 35 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/mqtt/moveScale/UploadMqttStart.java

@@ -0,0 +1,35 @@
+package com.huimv.guowei.admin.mqtt.moveScale;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.guowei.admin.entity.EnvDevice;
+import com.huimv.guowei.admin.service.IEnvDeviceService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+import java.util.ArrayList;
+import java.util.List;
+
+@Component
+public class UploadMqttStart {
+
+    @Autowired
+    private IEnvDeviceService envDeviceService;
+
+    @PostConstruct
+    public  void  test() {
+        QueryWrapper<EnvDevice> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("device_type", 2).eq("farm_id", 21);
+        List<EnvDevice> list = envDeviceService.list(queryWrapper);
+
+        List<String> deviceNum = new ArrayList<>();
+        for (EnvDevice callDevice : list) {
+            deviceNum.add(callDevice.getDeviceCode());
+        }
+
+        ReceiveData receiveData = new ReceiveData();
+        receiveData.setTopics(deviceNum);
+        receiveData.run();
+    }
+
+}

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

@@ -31,4 +31,9 @@ public interface IBaseDuckInfoService extends IService<BaseDuckInfo> {
     void printDuck(HttpServletResponse response, Map<String,String> paramsMap) throws Exception;
 
     void updateDayAge();
+
+    //大屏
+    Result listDuckByScreen(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
+
+    Result listDuckByScreen2(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
 }

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

@@ -20,7 +20,7 @@ public interface IDuckHealthInfoService extends IService<DuckHealthInfo> {
 
     Result listById(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
 
-    Result addHealth(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) throws ParseException;
+    Result addHealth(HttpServletRequest httpServletRequest, DuckHealthInfo healthInfo) throws ParseException;
 
     Result listByH5(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
 

+ 7 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/service/IEnvRegularCallEggService.java

@@ -36,4 +36,11 @@ public interface IEnvRegularCallEggService extends IService<EnvRegularCallEgg> {
 
     Result listSeven(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
 
+
+    //大屏
+    Result collector(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
+
+    Result collectorEnv(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
+
+
 }

+ 16 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/service/IRawDataService.java

@@ -0,0 +1,16 @@
+package com.huimv.guowei.admin.service;
+
+import com.huimv.guowei.admin.entity.RawData;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2023-06-25
+ */
+public interface IRawDataService extends IService<RawData> {
+
+}

+ 45 - 3
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/BaseDuckInfoServiceImpl.java

@@ -9,6 +9,8 @@ import com.huimv.guowei.admin.common.utils.Result;
 import com.huimv.guowei.admin.common.utils.ResultCode;
 import com.huimv.guowei.admin.common.utils.UploadImage;
 import com.huimv.guowei.admin.entity.*;
+import com.huimv.guowei.admin.entity.vo.EnvMoveCallVo;
+import com.huimv.guowei.admin.entity.vo.EnvRegularCallFeedingVo;
 import com.huimv.guowei.admin.mapper.*;
 import com.huimv.guowei.admin.service.IBaseDuckInfoService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -25,9 +27,7 @@ import java.text.DecimalFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.temporal.ChronoUnit;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * <p>
@@ -193,4 +193,46 @@ public class BaseDuckInfoServiceImpl extends ServiceImpl<BaseDuckInfoMapper, Bas
         duckInfoMapper.updateDayAge();
     }
 
+    @Override
+    public Result listDuckByScreen(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        String duckNum = paramsMap.get("duckNum");//鸭只编号
+        QueryWrapper<BaseDuckInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("duck_num", duckNum).eq("farm_id", farmId);
+        BaseDuckInfo baseDuckInfo = duckInfoMapper.selectOne(queryWrapper);//鸭只档案
+
+        QueryWrapper<EnvRegularCallFeeding> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.eq("farm_id", farmId).eq("duck_num", duckNum);
+        List<EnvRegularCallFeeding> feedings = feedingMapper.selectList(queryWrapper1);
+        List<String> list = new ArrayList<>();
+        for (EnvRegularCallFeeding feeding : feedings) {
+            String s = feeding.getDuckNum() + "号鸭进食" + feeding.getDuckWeight() + "kg,";
+            list.add(s);
+        }
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("duckInfo", baseDuckInfo);
+        jsonObject.put("feedInfo", list);
+        return new Result(ResultCode.SUCCESS, jsonObject);
+    }
+
+    @Override
+    public Result listDuckByScreen2(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        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);
+
+        QueryWrapper<EnvRegularCallFeeding> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.eq("farm_id", farmId).eq("duck_num", duckNum).ge("call_date", calendar.getTime());
+        List<EnvRegularCallFeedingVo> envRegularCallFeedingVos = feedingMapper.listScreen(queryWrapper1);
+
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("weight", envMoveCallVos);
+        jsonObject.put("feed", envRegularCallFeedingVos);
+        return new Result(ResultCode.SUCCESS, jsonObject);
+    }
+
 }

+ 6 - 3
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/DepartureServiceImpl.java

@@ -33,15 +33,18 @@ public class DepartureServiceImpl extends ServiceImpl<DepartureMapper, Departure
     @Override
     public Result list(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
         String farmId = paramsMap.get("farmId");
+        String unitName = paramsMap.get("unitName");
         QueryWrapper<Departure> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("farm_id", farmId).orderByDesc("date").last(" limit 10");
+        queryWrapper.eq("farm_id", farmId)
+                .like(StringUtils.isNotBlank(unitName),"unit_name", unitName)
+                .orderByDesc("date").last(" limit 10");
         return new Result(ResultCode.SUCCESS, departureMapper.selectList(queryWrapper));
     }
 
     @Override
     public Result listSelect(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
         String farmId = paramsMap.get("farmId");
-        String unitId = paramsMap.get("unitId");
+        String unitName = paramsMap.get("unitName");
         String pageNum = paramsMap.get("pageNum");
         String pageSize = paramsMap.get("pageSize");
         if (pageNum == null || "".equals(pageNum)) {
@@ -51,7 +54,7 @@ public class DepartureServiceImpl extends ServiceImpl<DepartureMapper, Departure
             pageSize = "10";
         }
         QueryWrapper<Departure> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("farm_id", farmId).eq(StringUtils.isNotBlank("unit_id"),"unit_id", unitId)
+        queryWrapper.eq("farm_id", farmId).like(StringUtils.isNotBlank(unitName),"unit_name", unitName)
                 .orderByDesc("date");
         Page<Departure> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
         return new Result(ResultCode.SUCCESS, departureMapper.selectPage(page, queryWrapper));

+ 14 - 23
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/DuckHealthInfoServiceImpl.java

@@ -67,29 +67,17 @@ public class DuckHealthInfoServiceImpl extends ServiceImpl<DuckHealthInfoMapper,
     }
 
     @Override
-    public Result addHealth(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) throws ParseException {
-        String farmId = paramsMap.get("farmId");
-        String duckId = paramsMap.get("duckId");
+    public Result addHealth(HttpServletRequest httpServletRequest,DuckHealthInfo healthInfo) throws ParseException {
+
+        Integer farmId = healthInfo.getFarmId();
+        String duckNum = healthInfo.getDuckNum();
         QueryWrapper<BaseDuckInfo> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("id", duckId);
+        queryWrapper.eq("duck_num", duckNum);
         BaseDuckInfo baseDuckInfo = infoMapper.selectOne(queryWrapper);
-        String date = paramsMap.get("date");
-        date = date + " 00:00:00";
-        String healthResult = paramsMap.get("healthResult");
-        String treatmentMeasure = paramsMap.get("treatmentMeasure");
-        DuckHealthInfo healthInfo = new DuckHealthInfo();
         healthInfo.setDuckNum(baseDuckInfo.getDuckNum());
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-        healthInfo.setFarmId(Integer.parseInt(farmId));
-        healthInfo.setHealthDate(sdf.parse(date));
-        healthInfo.setHealthResult(healthResult);
-        healthInfo.setDuckId(Integer.parseInt(duckId));
-        healthInfo.setTreatmentMeasure(treatmentMeasure);
+        healthInfo.setFarmId(farmId);
         healthInfo.setUnitId(baseDuckInfo.getUnitId());
-        healthInfo.setSymptom(paramsMap.get("symptom"));
-        healthInfo.setCure(paramsMap.get("cure"));
-        healthInfo.setMedicine(paramsMap.get("medicine"));
-        healthInfo.setMeasure(paramsMap.get("measure"));
+        healthInfo.setUnitName(baseDuckInfo.getUnitName());
         healthInfoMapper.insert(healthInfo);
         return new Result(ResultCode.SUCCESS);
     }
@@ -97,15 +85,18 @@ public class DuckHealthInfoServiceImpl extends ServiceImpl<DuckHealthInfoMapper,
     @Override
     public Result listByH5(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
         String farmId = paramsMap.get("farmId");
+        String unitName = paramsMap.get("unitName");
         QueryWrapper<DuckHealthInfo> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("farm_id", farmId).orderByDesc("health_date").last(" limit 10");
+        queryWrapper.eq("farm_id", farmId)
+                .like(StringUtils.isNotBlank(unitName),"unit_name", unitName)
+                .orderByDesc("health_date").last(" limit 10");
         return new Result(ResultCode.SUCCESS, healthInfoMapper.selectList(queryWrapper));
     }
 
     @Override
     public Result listSelect(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
         String farmId = paramsMap.get("farmId");
-        String unitId = paramsMap.get("unitId");
+        String unitName = paramsMap.get("unitName");
         String pageNum = paramsMap.get("pageNum");
         String pageSize = paramsMap.get("pageSize");
         if (pageNum == null || "".equals(pageNum)) {
@@ -115,8 +106,8 @@ public class DuckHealthInfoServiceImpl extends ServiceImpl<DuckHealthInfoMapper,
             pageSize = "10";
         }
         QueryWrapper<DuckHealthInfo> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("farm_id", farmId).eq(StringUtils.isNotBlank("unit_id"),"unit_id", unitId)
-                .orderByDesc("health_date");;
+        queryWrapper.eq("farm_id", farmId).like(StringUtils.isNotBlank("unit_name"),"unit_name", unitName)
+                .orderByDesc("health_date");
         Page<DuckHealthInfo> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
         return new Result(ResultCode.SUCCESS, healthInfoMapper.selectPage(page, queryWrapper));
     }

+ 7 - 4
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/EnvMoveCallServiceImpl.java

@@ -95,15 +95,18 @@ public class EnvMoveCallServiceImpl extends ServiceImpl<EnvMoveCallMapper, EnvMo
     @Override
     public Result listByH5(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
         String farmId = paramsMap.get("farmId");
+        String unitName = paramsMap.get("unitName");
         QueryWrapper<EnvMoveCall> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("farm_id", farmId).orderByDesc("call_date").last(" limit 10");
+        queryWrapper.eq("farm_id", farmId)
+                .like(StringUtils.isNotBlank(unitName), "unit_name", unitName)
+                .orderByDesc("call_date").last(" limit 10");
         return new Result(ResultCode.SUCCESS, moveCallMapper.selectList(queryWrapper));
     }
 
     @Override
     public Result listSelect(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
         String farmId = paramsMap.get("farmId");
-        String unitId = paramsMap.get("unitId");
+        String unitName = paramsMap.get("unitName");
         String type = paramsMap.get("type");//显示类型
         String pageNum = paramsMap.get("pageNum");
         String pageSize = paramsMap.get("pageSize");
@@ -115,14 +118,14 @@ public class EnvMoveCallServiceImpl extends ServiceImpl<EnvMoveCallMapper, EnvMo
         }
         QueryWrapper<EnvMoveCall> queryWrapper = new QueryWrapper<>();
         if ("1".equals(type)) {
-            queryWrapper.eq(StringUtils.isNotBlank("unit_id"), "unit_id", unitId).orderByDesc("call_date").eq("farm_id", farmId);
+            queryWrapper.like(StringUtils.isNotBlank(unitName), "unit_name", unitName).orderByDesc("call_date").eq("farm_id", farmId);
             Page<EnvMoveCall> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
             return new Result(ResultCode.SUCCESS, moveCallMapper.selectPage(page, queryWrapper));
         } else {
             Calendar calendar = Calendar.getInstance();
             calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) - 7);
             queryWrapper.eq("farm_id", farmId)
-                    .eq(StringUtils.isNotBlank("unit_id"), "unit_id", unitId)
+                    .like(StringUtils.isNotBlank(unitName), "unit_name", unitName)
                     .ge("call_date", calendar.getTime());
             return new Result(ResultCode.SUCCESS, moveCallMapper.listDay(queryWrapper));
         }

+ 87 - 15
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/EnvRegularCallEggServiceImpl.java

@@ -1,5 +1,6 @@
 package com.huimv.guowei.admin.service.impl;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -7,12 +8,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.huimv.guowei.admin.common.utils.DataUill;
 import com.huimv.guowei.admin.common.utils.Result;
 import com.huimv.guowei.admin.common.utils.ResultCode;
-import com.huimv.guowei.admin.entity.BaseDuckInfo;
-import com.huimv.guowei.admin.entity.EnvRegularCallEgg;
-import com.huimv.guowei.admin.entity.EnvRegularCallFeeding;
-import com.huimv.guowei.admin.mapper.BaseDuckInfoMapper;
-import com.huimv.guowei.admin.mapper.EnvRegularCallEggMapper;
-import com.huimv.guowei.admin.mapper.EnvRegularCallFeedingMapper;
+import com.huimv.guowei.admin.entity.*;
+import com.huimv.guowei.admin.mapper.*;
 import com.huimv.guowei.admin.service.IEnvRegularCallEggService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.huimv.guowei.admin.utils.Print;
@@ -45,6 +42,14 @@ public class EnvRegularCallEggServiceImpl extends ServiceImpl<EnvRegularCallEggM
     private BaseDuckInfoMapper infoMapper;
     @Autowired
     private EnvRegularCallFeedingMapper feedingMapper;
+    @Autowired
+    private EnvDataMapper dataMapper;
+    @Autowired
+    private EnergyElectricityMapper electricityMapper;
+    @Autowired
+    private EnergyWaterMapper waterMapper;
+    @Autowired
+    private BaseBuildingMapper buildingMapper;
 
     @Override
     public Result listById(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
@@ -107,12 +112,12 @@ public class EnvRegularCallEggServiceImpl extends ServiceImpl<EnvRegularCallEggM
         EnvRegularCallEgg egg = new EnvRegularCallEgg();
         egg.setDuckNum(baseDuckInfo.getDuckNum());
         egg.setFarmId(Integer.parseInt(farmId));
-        egg.setDuckWeight(Integer.parseInt(eggWeight));
+        egg.setDuckWeight(Double.valueOf(eggWeight));
         egg.setEggNum(Integer.parseInt(eggNum));
         egg.setCallDate(sdf.parse(date));
         egg.setDuckId(Integer.parseInt(duckId));
         eggMapper.insert(egg);
-        return new Result(10000,"添加成功!",true);
+        return new Result(10000, "添加成功!", true);
     }
 
     @Override
@@ -122,7 +127,7 @@ public class EnvRegularCallEggServiceImpl extends ServiceImpl<EnvRegularCallEggM
     }
 
     @Override
-    public Result deleteEgg(HttpServletRequest httpServletRequest, Map<String,String> paramsMap) {
+    public Result deleteEgg(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
         String id = paramsMap.get("id");//此时这里就是表中的id
         eggMapper.deleteById(id);
         return new Result(10000, "删除成功!", true);
@@ -139,18 +144,22 @@ public class EnvRegularCallEggServiceImpl extends ServiceImpl<EnvRegularCallEggM
         List<EnvRegularCallFeeding> feedings = feedingMapper.listDay(queryWrapper1);
         Print.printEgg(eggs, feedings);
     }
+
     @Override
     public Result listByH5(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
         String farmId = paramsMap.get("farmId");
+        String unitName = paramsMap.get("unitName");
         QueryWrapper<EnvRegularCallEgg> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("farm_id", farmId).orderByDesc("call_date").last(" limit 10");
+        queryWrapper.eq("farm_id", farmId)
+                .like(StringUtils.isNotBlank(unitName), "unit_name", unitName)
+                .orderByDesc("call_date").last(" limit 10");
         return new Result(ResultCode.SUCCESS, eggMapper.selectList(queryWrapper));
     }
 
     @Override
     public Result listSelect(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
         String farmId = paramsMap.get("farmId");
-        String unitId = paramsMap.get("unitId");
+        String unitName = paramsMap.get("unitName");
         String pageNum = paramsMap.get("pageNum");
         String pageSize = paramsMap.get("pageSize");
         if (pageNum == null || "".equals(pageNum)) {
@@ -160,7 +169,7 @@ public class EnvRegularCallEggServiceImpl extends ServiceImpl<EnvRegularCallEggM
             pageSize = "10";
         }
         QueryWrapper<EnvRegularCallEgg> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("farm_id", farmId).eq(StringUtils.isNotBlank("unit_id"),"unit_id", unitId)
+        queryWrapper.eq("farm_id", farmId).like(StringUtils.isNotBlank(unitName), "unit_name", unitName)
                 .orderByDesc("call_date");
         Page<EnvRegularCallEgg> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
         return new Result(ResultCode.SUCCESS, eggMapper.selectPage(page, queryWrapper));
@@ -169,13 +178,13 @@ public class EnvRegularCallEggServiceImpl extends ServiceImpl<EnvRegularCallEggM
     @Override
     public Result listSeven(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
         String farmId = paramsMap.get("farmId");
-        String unitId = paramsMap.get("unitId");
+        String duckId = paramsMap.get("id");
         QueryWrapper<EnvRegularCallEgg> queryWrapper = new QueryWrapper<>();
         Calendar calendar = Calendar.getInstance();
         calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) - 7);
-        queryWrapper.eq("farm_id", farmId).eq(StringUtils.isNotBlank("unit_id"),"unit_id", unitId).ge("call_date", calendar.getTime());
+        queryWrapper.eq("farm_id", farmId).like(StringUtils.isNotBlank(duckId), "duck_id", duckId).ge("call_date", calendar.getTime());
         QueryWrapper<EnvRegularCallEgg> queryWrapper1 = new QueryWrapper<>();
-        queryWrapper1.eq("farm_id", farmId).eq(StringUtils.isNotBlank("unit_id"), "unit_id", unitId);
+        queryWrapper1.eq("farm_id", farmId).like(StringUtils.isNotBlank(duckId), "duck_id", duckId);
         queryWrapper1.select(" IFNULL(SUM(duck_weight),'0') duckWeight, IFNULL(SUM(egg_num),'0') eggNum");
         EnvRegularCallEgg egg = eggMapper.selectOne(queryWrapper1);
         JSONObject jsonObject = new JSONObject();
@@ -185,7 +194,70 @@ public class EnvRegularCallEggServiceImpl extends ServiceImpl<EnvRegularCallEggM
         return new Result(ResultCode.SUCCESS, jsonObject);
     }
 
+    @Override
+    public Result collector(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String duckNum = paramsMap.get("duckNum");//鸭只编号
+        String farmId = paramsMap.get("farmId");
+        String unitId = paramsMap.get("unitId");//传入的是某个舍的id
+        QueryWrapper<BaseBuilding> buildingQueryWrapper = new QueryWrapper<>();
+        buildingQueryWrapper.eq("farm_id", farmId).eq("parent_id", unitId);
+        List<BaseBuilding> baseBuildings = buildingMapper.selectList(buildingQueryWrapper);//某个舍下所有的笼子
+
+        JSONArray jsonArray = new JSONArray();
+
+        for (BaseBuilding baseBuilding : baseBuildings) {
+            Integer baseBuildingId = baseBuilding.getId();//笼子id
+            QueryWrapper<BaseDuckInfo> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("farm_id", farmId).eq("unit_id", baseBuildingId).like(StringUtils.isNotBlank(duckNum), "duck_num", duckNum);
+            BaseDuckInfo baseDuckInfo = infoMapper.selectOne(queryWrapper);//笼子里的鸭只信息
 
+            QueryWrapper<EnvRegularCallEgg> queryWrapper1 = new QueryWrapper<>();
+            queryWrapper1.eq("farm_id", farmId).eq("duck_num", baseDuckInfo.getDuckNum());
+            queryWrapper1.select("SUM(egg_num) eggNum,duck_num duckNum");
+            queryWrapper1.groupBy("duck_num");
+            EnvRegularCallEgg egg = eggMapper.selectOne(queryWrapper1);//鸡蛋个数
+
+            QueryWrapper<EnvRegularCallFeeding> queryWrapper2 = new QueryWrapper<>();
+            queryWrapper2.eq("farm_id", farmId).eq("duck_num", baseDuckInfo.getDuckNum());
+            queryWrapper2.select("SUM(duck_weight) duckWeight,duck_num duckNum");
+            queryWrapper2.groupBy("duck_num");
+            EnvRegularCallFeeding envRegularCallFeeding = feedingMapper.selectOne(queryWrapper2);//采食量
+
+            JSONObject jsonObject = new JSONObject();
+            jsonObject.put("duckNum", baseDuckInfo.getDuckNum());
+            jsonObject.put("feed", envRegularCallFeeding.getDuckWeight());
+            jsonObject.put("egg", egg.getEggNum());
+            jsonObject.put("location", baseDuckInfo.getUnitName());
+            jsonArray.add(jsonObject);
+        }
 
 
+        return new Result(ResultCode.SUCCESS, jsonArray);
+    }
+
+    @Override
+    public Result collectorEnv(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        String unitId = paramsMap.get("unitId");
+        QueryWrapper<EnergyElectricity> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).eq("unit_id", unitId).orderByDesc("create_date").last(" limit 1");
+        EnergyElectricity energyElectricity = electricityMapper.selectOne(queryWrapper);//电表
+
+        QueryWrapper<EnergyWater> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.eq("farm_id", farmId).eq("unit_id", unitId).orderByDesc("create_date").last(" limit 1");
+        EnergyWater water = waterMapper.selectOne(queryWrapper1);//水表
+
+        QueryWrapper<EnvData> queryWrapper2 = new QueryWrapper<>();
+        queryWrapper2.eq("farm_id", farmId).eq("unit_id", unitId).orderByDesc("create_date").last(" limit 1");
+        EnvData envData = dataMapper.selectOne(queryWrapper2);//温湿度
+
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("electricity", energyElectricity.getElectricityValue());
+        jsonObject.put("water", water.getWaterValue());
+        jsonObject.put("hum", envData.getEnvHum());
+        jsonObject.put("temp", envData.getEnvTemp());
+
+        return new Result(ResultCode.SUCCESS, jsonObject);
+    }
+
 }

+ 7 - 5
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/EnvRegularCallFeedingServiceImpl.java

@@ -84,15 +84,17 @@ public class EnvRegularCallFeedingServiceImpl extends ServiceImpl<EnvRegularCall
     @Override
     public Result listByH5(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
         String farmId = paramsMap.get("farmId");
+        String unitName = paramsMap.get("unitName");
         QueryWrapper<EnvRegularCallFeeding> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("farm_id", farmId).orderByDesc("call_date").last(" limit 10");
+        queryWrapper.eq("farm_id", farmId)
+                .like(StringUtils.isNotBlank(unitName),"unit_name", unitName).orderByDesc("call_date").last(" limit 10");
         return new Result(ResultCode.SUCCESS, feedingMapper.selectList(queryWrapper));
     }
 
     @Override
     public Result listSelect(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
         String farmId = paramsMap.get("farmId");
-        String unitId = paramsMap.get("unitId");
+        String unitName = paramsMap.get("unitName");
         String pageNum = paramsMap.get("pageNum");
         String pageSize = paramsMap.get("pageSize");
         if (pageNum == null || "".equals(pageNum)) {
@@ -102,7 +104,7 @@ public class EnvRegularCallFeedingServiceImpl extends ServiceImpl<EnvRegularCall
             pageSize = "10";
         }
         QueryWrapper<EnvRegularCallFeeding> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("farm_id", farmId).eq(StringUtils.isNotBlank("unit_id"),"unit_id", unitId)
+        queryWrapper.eq("farm_id", farmId).like(StringUtils.isNotBlank(unitName),"unit_name", unitName)
                 .orderByDesc("call_date");
         Page<EnvRegularCallFeeding> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
         return new Result(ResultCode.SUCCESS, feedingMapper.selectPage(page, queryWrapper));
@@ -111,11 +113,11 @@ public class EnvRegularCallFeedingServiceImpl extends ServiceImpl<EnvRegularCall
     @Override
     public Result listSeven(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
         String farmId = paramsMap.get("farmId");
-        String unitId = paramsMap.get("unitId");
+        String duckId = paramsMap.get("id");
         QueryWrapper<EnvRegularCallFeeding> queryWrapper = new QueryWrapper<>();
         Calendar calendar = Calendar.getInstance();
         calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) - 7);
-        queryWrapper.eq("farm_id", farmId).eq("unit_id", unitId).ge("call_date", calendar.getTime());
+        queryWrapper.eq("farm_id", farmId).like(StringUtils.isNotBlank(duckId),"duck_id", duckId).ge("call_date", calendar.getTime());
         return new Result(ResultCode.SUCCESS, feedingMapper.selectList(queryWrapper));
     }
 

+ 20 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/RawDataServiceImpl.java

@@ -0,0 +1,20 @@
+package com.huimv.guowei.admin.service.impl;
+
+import com.huimv.guowei.admin.entity.RawData;
+import com.huimv.guowei.admin.mapper.RawDataMapper;
+import com.huimv.guowei.admin.service.IRawDataService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2023-06-25
+ */
+@Service
+public class RawDataServiceImpl extends ServiceImpl<RawDataMapper, RawData> implements IRawDataService {
+
+}

+ 36 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/utils/SpringUtil.java

@@ -0,0 +1,36 @@
+package com.huimv.guowei.admin.utils;
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.stereotype.Component;
+
+
+@Component
+public class SpringUtil implements ApplicationContextAware {
+    private static ApplicationContext applicationContext = null;
+
+    @Override
+    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+        if(SpringUtil.applicationContext == null){
+            SpringUtil.applicationContext  = applicationContext;
+        }
+    }
+
+    public static ApplicationContext getApplicationContext() {
+        return applicationContext;
+    }
+
+    public static Object getBean(String name){
+        return getApplicationContext().getBean(name);
+    }
+
+    public static <T> T getBean(Class<T> clazz){
+        return getApplicationContext().getBean(clazz);
+    }
+
+    public static <T> T getBean(String name,Class<T> clazz){
+        return getApplicationContext().getBean(name, clazz);
+    }
+
+
+}

+ 9 - 0
huimv-admin/src/main/resources/com/huimv/guowei/admin/mapper/EnvMoveCallMapper.xml

@@ -13,6 +13,8 @@
         <result column="dayage" property="dayage" />
         <result column="farm_id" property="farmId" />
         <result column="duck_id" property="duckId"/>
+        <result column="unit_id" property="unitId"/>
+        <result column="unit_name" property="unitName"/>
     </resultMap>
 
     <select id="listDay" resultType="com.huimv.guowei.admin.entity.EnvMoveCall">
@@ -21,4 +23,11 @@
         GROUP BY DATE_FORMAT(dayage,'%Y-%m-%d')
         ORDER BY dayage ASC
     </select>
+
+    <select id="listScreen" resultType="com.huimv.guowei.admin.entity.vo.EnvMoveCallVo">
+        SELECT (IFNUll(sum(duck_weight),'0')) 'duckWeight',ROUND(avg(duck_weight),2) avgWeight FROM `env_move_call`
+         ${ew.customSqlSegment}
+        GROUP BY DATE_FORMAT(dayage,'%Y-%m-%d')
+        ORDER BY dayage ASC
+    </select>
 </mapper>

+ 9 - 0
huimv-admin/src/main/resources/com/huimv/guowei/admin/mapper/EnvRegularCallFeedingMapper.xml

@@ -13,6 +13,8 @@
         <result column="call_date" property="callDate"/>
         <result column="farm_id" property="farmId"/>
         <result column="duck_id" property="duckId"/>
+        <result column="unit_id" property="unitId"/>
+        <result column="unit_name" property="unitName"/>
     </resultMap>
     <select id="listDay" resultType="com.huimv.guowei.admin.entity.EnvRegularCallFeeding">
         SELECT (IFNUll(sum(duck_weight),'0')) 'duckWeight',duck_num 'duckNum',call_date 'callDate' FROM `env_regular_call_feeding`
@@ -49,4 +51,11 @@
         AND f.call_date &gt;= DATE_SUB(CURDATE(), INTERVAL 6 DAY)
         GROUP BY DATE_FORMAT(f.call_date,"%Y-%m-%d")
     </select>
+
+    <select id="listScreen" resultType="com.huimv.guowei.admin.entity.vo.EnvRegularCallFeedingVo">
+        SELECT (IFNUll(sum(duck_weight),'0')) 'duckWeight',duck_num 'duckNum',call_date 'callDate',Round(avg(duck_weight),2) avgWeight  FROM `env_regular_call_feeding`
+         ${ew.customSqlSegment}
+        GROUP BY DATE_FORMAT(call_date,'%Y-%m-%d')
+        ORDER BY call_date ASC
+    </select>
 </mapper>

+ 5 - 0
huimv-admin/src/main/resources/mapper/RawDataMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.huimv.guowei.admin.mapper.RawDataMapper">
+
+</mapper>