Browse Source

小程序

wwh 2 years ago
parent
commit
2462173044
38 changed files with 1197 additions and 11 deletions
  1. 69 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/controller/BreedController.java
  2. 76 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/controller/DepartureController.java
  3. 16 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/controller/DuckHealthInfoController.java
  4. 18 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/controller/DuckImmunityInfoController.java
  5. 38 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/controller/EnvMoveCallController.java
  6. 15 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/controller/EnvRegularCallEggController.java
  7. 16 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/controller/EnvRegularCallFeedingController.java
  8. 1 1
      huimv-admin/src/main/java/com/huimv/guowei/admin/controller/SysCameraController.java
  9. 51 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/controller/TaskController.java
  10. 54 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/entity/Breed.java
  11. 56 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/entity/Departure.java
  12. 12 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/entity/DuckHealthInfo.java
  13. 6 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/entity/DuckImmunityInfo.java
  14. 16 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/mapper/BreedMapper.java
  15. 16 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/mapper/DepartureMapper.java
  16. 42 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/mqtt/moveScale/DataBack.java
  17. 49 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/mqtt/moveScale/ReceiveData.java
  18. 102 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/mqtt/moveScale/SendData.java
  19. 22 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/service/IBreedService.java
  20. 22 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/service/IDepartureService.java
  21. 4 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/service/IDuckHealthInfoService.java
  22. 4 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/service/IDuckImmunityInfoService.java
  23. 5 1
      huimv-admin/src/main/java/com/huimv/guowei/admin/service/IEnvMoveCallService.java
  24. 6 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/service/IEnvRegularCallEggService.java
  25. 6 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/service/IEnvRegularCallFeedingService.java
  26. 1 1
      huimv-admin/src/main/java/com/huimv/guowei/admin/service/ISysCameraService.java
  27. 11 2
      huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/BaseDuckInfoServiceImpl.java
  28. 58 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/BreedServiceImpl.java
  29. 59 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/DepartureServiceImpl.java
  30. 32 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/DuckHealthInfoServiceImpl.java
  31. 31 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/DuckImmunityInfoServiceImpl.java
  32. 37 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/EnvMoveCallServiceImpl.java
  33. 47 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/EnvRegularCallEggServiceImpl.java
  34. 39 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/EnvRegularCallFeedingServiceImpl.java
  35. 33 6
      huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/SysCameraServiceImpl.java
  36. 117 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/utils/ProcessUtil.java
  37. 5 0
      huimv-admin/src/main/resources/com/huimv/guowei/admin/mapper/DepartureMapper.xml
  38. 5 0
      huimv-admin/src/main/resources/mapper/BreedMapper.xml

+ 69 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/controller/BreedController.java

@@ -0,0 +1,69 @@
+package com.huimv.guowei.admin.controller;
+
+
+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.BaseDuckInfo;
+import com.huimv.guowei.admin.entity.Breed;
+import com.huimv.guowei.admin.entity.Departure;
+import com.huimv.guowei.admin.service.IBreedService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2023-06-14
+ */
+@RestController
+@RequestMapping("/breed")
+@CrossOrigin
+public class BreedController {
+
+    @Autowired
+    private IBreedService breedService;
+
+
+    @RequestMapping("/list")
+    public Result listById(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return breedService.list(httpServletRequest, paramsMap);
+    }
+    @RequestMapping("/listByDuckId")
+    public Result listByDuckId(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        String id = paramsMap.get("id");
+        return new Result(ResultCode.SUCCESS,breedService.getById(id));
+    }
+    @RequestMapping("/listSelect")
+    public Result listSelect(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return breedService.listSelect(httpServletRequest, paramsMap);
+    }
+
+    @RequestMapping("/addDuck")
+    public Result addDuck(HttpServletRequest httpServletRequest, @RequestBody Breed breed) {
+        breedService.save(breed);
+        return new Result(10000, "添加成功!", true);
+    }
+
+    @RequestMapping("/editDuck")
+    public Result editDuck(HttpServletRequest httpServletRequest, @RequestBody Breed breed) {
+        breedService.updateById(breed);
+        return new Result(10000, "修改成功!", true);
+    }
+    @RequestMapping("/deleteDuck")
+    public Result deleteDuck(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        String id = paramsMap.get("id");
+        breedService.removeById(id);
+        return new Result(10000, "删除成功!", true);
+    }
+}

+ 76 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/controller/DepartureController.java

@@ -0,0 +1,76 @@
+package com.huimv.guowei.admin.controller;
+
+
+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.BaseDuckInfo;
+import com.huimv.guowei.admin.entity.Departure;
+import com.huimv.guowei.admin.service.IBaseDuckInfoService;
+import com.huimv.guowei.admin.service.IDepartureService;
+import com.huimv.guowei.admin.service.IDuckHealthInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2023-06-14
+ */
+@RestController
+@RequestMapping("/departure")
+@CrossOrigin
+public class DepartureController {
+    @Autowired
+    private IDepartureService departureService;
+    @Autowired
+    private IBaseDuckInfoService infoService;
+
+    @RequestMapping("/list")
+    public Result listById(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return departureService.list(httpServletRequest, paramsMap);
+    }
+    @RequestMapping("/listByDuckId")
+    public Result listByDuckId(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        String id = paramsMap.get("id");
+        return new Result(ResultCode.SUCCESS,departureService.getById(id));
+    }
+    @RequestMapping("/listSelect")
+    public Result listSelect(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return departureService.listSelect(httpServletRequest, paramsMap);
+    }
+
+    @RequestMapping("/addDuck")
+    public Result addDuck(HttpServletRequest httpServletRequest, @RequestBody Departure departure) {
+        departureService.save(departure);
+        String duckNum = departure.getDuckNum();
+        QueryWrapper<BaseDuckInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", departure.getFarmId()).eq("duck_num", duckNum);
+        BaseDuckInfo infoServiceOne = infoService.getOne(queryWrapper);
+        infoServiceOne.setIsCage(0);
+        infoService.updateById(infoServiceOne);
+        return new Result(10000, "添加成功!", true);
+    }
+
+    @RequestMapping("/editDuck")
+    public Result editDuck(HttpServletRequest httpServletRequest, @RequestBody Departure departure) {
+        departureService.updateById(departure);
+        return new Result(10000, "修改成功!", true);
+    }
+    @RequestMapping("/deleteDuck")
+    public Result deleteDuck(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        String id = paramsMap.get("id");
+        departureService.removeById(id);
+        return new Result(10000, "删除成功!", true);
+    }
+}

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

@@ -2,6 +2,7 @@ package com.huimv.guowei.admin.controller;
 
 
 import com.huimv.guowei.admin.common.utils.Result;
+import com.huimv.guowei.admin.common.utils.ResultCode;
 import com.huimv.guowei.admin.entity.DuckHealthInfo;
 import com.huimv.guowei.admin.service.IDuckHealthInfoService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -54,4 +55,19 @@ public class DuckHealthInfoController {
         return new Result(10000, "删除成功!", true);
     }
 
+    @RequestMapping("/listH5")
+    public Result listH5(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return healthInfoService.listByH5(httpServletRequest, paramsMap);
+    }
+
+    @RequestMapping("/listSelect")
+    public Result listSelect(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return healthInfoService.listSelect(httpServletRequest, paramsMap);
+    }
+
+    @RequestMapping("/listByDuckId")
+    public Result listByDuckId(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        String id = paramsMap.get("id");
+        return new Result(ResultCode.SUCCESS,healthInfoService.getById(id));
+    }
 }

+ 18 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/controller/DuckImmunityInfoController.java

@@ -2,6 +2,7 @@ package com.huimv.guowei.admin.controller;
 
 
 import com.huimv.guowei.admin.common.utils.Result;
+import com.huimv.guowei.admin.common.utils.ResultCode;
 import com.huimv.guowei.admin.entity.DuckImmunityInfo;
 import com.huimv.guowei.admin.service.IDuckImmunityInfoService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -53,4 +54,21 @@ public class DuckImmunityInfoController {
         infoService.removeById(id);
         return new Result(10000,"删除成功!",true);
     }
+
+
+    @RequestMapping("/listH5")
+    public Result listH5(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return infoService.listByH5(httpServletRequest, paramsMap);
+    }
+
+    @RequestMapping("/listSelect")
+    public Result listSelect(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return infoService.listSelect(httpServletRequest, paramsMap);
+    }
+
+    @RequestMapping("/listByDuckId")
+    public Result listByDuckId(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        String id = paramsMap.get("id");
+        return new Result(ResultCode.SUCCESS,infoService.getById(id));
+    }
 }

+ 38 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/controller/EnvMoveCallController.java

@@ -3,6 +3,8 @@ package com.huimv.guowei.admin.controller;
 
 import com.huimv.guowei.admin.common.utils.Result;
 import com.huimv.guowei.admin.common.utils.ResultCode;
+import com.huimv.guowei.admin.entity.DuckImmunityInfo;
+import com.huimv.guowei.admin.entity.EnvMoveCall;
 import com.huimv.guowei.admin.service.IEnvMoveCallService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.CrossOrigin;
@@ -12,6 +14,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
+import java.text.ParseException;
 import java.util.Map;
 
 /**
@@ -39,4 +42,39 @@ public class EnvMoveCallController {
     public Result listWeight(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
         return moveCallService.listWeight(httpServletRequest, paramsMap);
     }
+
+    @RequestMapping("/addDuck")
+    public Result addDuck(HttpServletRequest httpServletRequest, @RequestBody EnvMoveCall envMoveCall) throws ParseException {
+       moveCallService.save(envMoveCall);
+        return new Result(10000, "添加成功!", true);
+    }
+
+    @RequestMapping("/editDuck")
+    public Result editDuck(HttpServletRequest httpServletRequest, @RequestBody EnvMoveCall envMoveCall) {
+        moveCallService.updateById(envMoveCall);
+        return new Result(10000, "修改成功!", true);
+    }
+
+    @RequestMapping("/deleteDuck")
+    public Result deleteDuck(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        String id = paramsMap.get("id");
+        moveCallService.removeById(id);
+        return new Result(10000,"删除成功!",true);
+    }
+
+    @RequestMapping("/listH5")
+    public Result listH5(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return moveCallService.listByH5(httpServletRequest, paramsMap);
+    }
+
+    @RequestMapping("/listSelect")
+    public Result listSelect(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return moveCallService.listSelect(httpServletRequest, paramsMap);
+    }
+
+    @RequestMapping("/listByDuckId")
+    public Result listByDuckId(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        String id = paramsMap.get("id");
+        return new Result(ResultCode.SUCCESS,moveCallService.getById(id));
+    }
 }

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

@@ -57,4 +57,19 @@ public class EnvRegularCallEggController {
         String path = "/opt/guowei/egg.xls";
         PdfUtil.returnPdfStream3(response, path, "鸭只采食产蛋列表");
     }
+
+    @RequestMapping("/listByH5")
+    public Result listByH5(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return eggService.listByH5(httpServletRequest, paramsMap);
+    }
+
+    @RequestMapping("/listSelect")
+    public Result listSelect(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return eggService.listSelect(httpServletRequest, paramsMap);
+    }
+
+    @RequestMapping("/listSeven")
+    public Result listSeven(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return eggService.listSeven(httpServletRequest, paramsMap);
+    }
 }

+ 16 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/controller/EnvRegularCallFeedingController.java

@@ -34,4 +34,20 @@ public class EnvRegularCallFeedingController {
     public Result listById(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
         return feedingService.listById(httpServletRequest, paramsMap);
     }
+
+    @RequestMapping("/listByH5")
+    public Result listByH5(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return feedingService.listByH5(httpServletRequest, paramsMap);
+    }
+
+    @RequestMapping("/listSelect")
+    public Result listSelect(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return feedingService.listSelect(httpServletRequest, paramsMap);
+    }
+
+    @RequestMapping("/listSeven")
+    public Result listSeven(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
+        return feedingService.listSeven(httpServletRequest, paramsMap);
+    }
+
 }

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

@@ -60,7 +60,7 @@ public class SysCameraController {
     }
 
     @PostMapping("/getCameraDetails")
-    private Result getCameraDetails(@RequestBody CameraListsVo cameraListsVo) {
+    private Result getCameraDetails(@RequestBody CameraListsVo cameraListsVo) throws InterruptedException {
 
         List list = cameraService.getCameraDetails(cameraListsVo);
         return new Result(ResultCode.SUCCESS, list);

+ 51 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/controller/TaskController.java

@@ -0,0 +1,51 @@
+package com.huimv.guowei.admin.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.huimv.guowei.admin.utils.ProcessUtil;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+@CrossOrigin
+@RestController
+@RequestMapping("/appleVideo")
+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();
+    }
+}

+ 54 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/entity/Breed.java

@@ -0,0 +1,54 @@
+package com.huimv.guowei.admin.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2023-06-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("breed")
+public class Breed implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 雄鸭编号
+     */
+    private String maleNum;
+
+    /**
+     * 雌鸭编号
+     */
+    private String femaleNum;
+
+    /**
+     * 位置
+     */
+    private Integer unitId;
+
+    /**
+     * 配种日期
+     */
+    private LocalDateTime date;
+
+    private Integer farmId;
+
+
+}

+ 56 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/entity/Departure.java

@@ -0,0 +1,56 @@
+package com.huimv.guowei.admin.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2023-06-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("departure")
+public class Departure implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 鸭只编号
+     */
+    private String duckNum;
+
+    /**
+     * 位置
+     */
+    private Integer unitId;
+
+    /**
+     * 离场日期
+     */
+    private LocalDateTime date;
+
+    /**
+     * 离场原因
+     */
+    private String reason;
+
+    private Integer farmId;
+
+}

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

@@ -49,7 +49,19 @@ public class DuckHealthInfo implements Serializable {
     private String duckNum;
 
     private Integer farmId;
+
     private Integer duckId;
 
+    private Integer unitId;
+
+    private String symptom;//症状
+
+    private String cure;//治疗方法
+
+    private String medicine;//药品名称
+
+    private String measure;//药品用量
+
+
 
 }

+ 6 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/entity/DuckImmunityInfo.java

@@ -46,5 +46,11 @@ public class DuckImmunityInfo implements Serializable {
     private Integer farmId;
     private Integer duckId;
 
+    private Integer unitId;//位置id
+
+    private String injection;//注射部位
+
+    private Integer dose;//剂量
+
 
 }

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

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

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

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

+ 42 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/mqtt/moveScale/DataBack.java

@@ -0,0 +1,42 @@
+package com.huimv.guowei.admin.mqtt.moveScale;
+
+import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
+import org.eclipse.paho.client.mqttv3.MqttCallback;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+import org.springframework.stereotype.Component;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+@Component
+public class DataBack implements MqttCallback {
+
+    @Override
+    public void connectionLost(Throwable cause) {
+
+        // 连接丢失后,一般在这里面进行重连
+        System.out.println("连接断开,可以做重连");
+    }
+
+    @Override
+    public void deliveryComplete(IMqttDeliveryToken token) {
+        System.out.println("deliveryComplete---------" + token.isComplete());
+    }
+
+    @Override
+    public void messageArrived(String topic, MqttMessage message) throws Exception {
+        // subscribe后得到的消息会执行到这里面
+        System.out.println("接收消息主题 : " + topic);
+        System.out.println("接收消息Qos : " + message.getQos());
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date date = new Date();
+        System.out.println("接收时间:" + sdf.format(date));
+        System.out.println("接收消息内容 : " + new String(message.getPayload()));
+
+        System.out.println("开始处理数据:");
+
+
+        System.out.println("数据处理完成!");
+
+    }
+}

+ 49 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/mqtt/moveScale/ReceiveData.java

@@ -0,0 +1,49 @@
+package com.huimv.guowei.admin.mqtt.moveScale;
+
+import org.eclipse.paho.client.mqttv3.MqttClient;
+import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
+
+@Configuration
+public class ReceiveData {
+    public static final String HOST = "tcp://192.168.1.68:1883";
+    //    public static final String TOPIC1 = "/today/#";//请阅地址
+    private static final String clientid = "GuoWei01";
+    private static MqttClient client;
+    private static MqttConnectOptions options;
+
+    private static String userName = "admin";    //非必须
+    private static String passWord = "admin";  //非必须
+
+    public void start() {
+        try {
+            // host为主机名,clientid即连接MQTT的客户端ID,一般以唯一标识符表示,MemoryPersistence设置clientid的保存形式,默认为以内存保存
+            client = new MqttClient(HOST, clientid, new MemoryPersistence());
+            // MQTT的连接设置
+            options = new MqttConnectOptions();
+            // 设置是否清空session,这里如果设置为false表示服务器会保留客户端的连接记录,设置为true表示每次连接到服务器都以新的身份连接
+            options.setCleanSession(true);
+            // 设置连接的用户名
+            options.setUserName(userName);
+            // 设置连接的密码
+            options.setPassword(passWord.toCharArray());
+            // 设置超时时间 单位为秒
+            options.setConnectionTimeout(10);
+            // 设置会话心跳时间 单位为秒 服务器会每隔1.5*20秒的时间向客户端发送个消息判断客户端是否在线,但这个方法并没有重连的机制
+            options.setKeepAliveInterval(20);
+            //设置断开后重新连接
+            options.setAutomaticReconnect(false);
+            // 设置回调
+            client.setCallback(new DataBack());
+
+            client.connect(options);
+            //订阅消息
+            client.subscribe("huimv_GW_down",0);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+}

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

@@ -0,0 +1,102 @@
+package com.huimv.guowei.admin.mqtt.moveScale;
+
+import org.eclipse.paho.client.mqttv3.MqttClient;
+import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
+
+@Configuration
+@Component
+public class SendData  {
+
+    public static final String HOST = "tcp://192.168.1.68:1883";
+    private static final String clientid = "Test003";
+    private MqttClient client;
+    private MqttConnectOptions options;
+
+    private String userName = "admin";    //非必须
+    private String passWord = "admin";  //非必须
+
+    public void start() {
+        try {
+            // host为主机名,clientid即连接MQTT的客户端ID,一般以唯一标识符表示,MemoryPersistence设置clientid的保存形式,默认为以内存保存
+            client = new MqttClient(HOST, clientid, new MemoryPersistence());
+            // MQTT的连接设置
+            options = new MqttConnectOptions();
+            // 设置是否清空session,这里如果设置为false表示服务器会保留客户端的连接记录,设置为true表示每次连接到服务器都以新的身份连接
+            options.setCleanSession(true);
+            // 设置连接的用户名
+            options.setUserName(userName);
+            // 设置连接的密码
+            options.setPassword(passWord.toCharArray());
+            // 设置超时时间 单位为秒
+            options.setConnectionTimeout(10);
+            // 设置会话心跳时间 单位为秒 服务器会每隔1.5*20秒的时间向客户端发送个消息判断客户端是否在线,但这个方法并没有重连的机制
+            options.setKeepAliveInterval(20);
+            //设置断开后重新连接
+            options.setAutomaticReconnect(true);
+            // 设置回调
+
+            String s = "02 52 03";
+            byte[] bytes = hexStr2Bytes(s);
+            client.connect(options);
+            pubMessage(bytes, "huimv_GW_up");
+            System.out.println("发送完成!");
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 消息发送
+     *
+     * @param message
+     * @param topic
+     */
+    public void pubMessage(byte[] message, String topic) {
+        MqttMessage mess = new MqttMessage();
+        mess.setQos(0);
+        mess.setRetained(true);
+        mess.setPayload(message);
+        System.out.println(mess);
+        try {
+            client.publish(topic, mess);
+        } catch (Exception e) {
+            //LOGGER.error(e.getLocalizedMessage());
+        }
+    }
+
+    /**
+     * @param src
+     * @return byte[]
+     * @Description: 字符串转byte数组
+     * @Title: hexStr2Bytes
+     * @author qin
+     * @date 2021年11月30日下午5:31:30
+     */
+    public static byte[] hexStr2Bytes(String src) {
+        src = src.replaceAll(" ", "");
+        System.out.println(src);
+        int m = 0, n = 0;
+        int l = src.length() / 2;
+        System.out.println(l);
+        byte[] ret = new byte[l];
+        for (int i = 0; i < l; i++) {
+            m = i * 2 + 1;
+            n = m + 1;
+            String sss = "0x" + src.substring(i * 2, m) + src.substring(m, n);
+            System.out.println("sss[" + i + "]:" + sss);
+            try {
+                ret[i] = Byte.decode(sss);
+            } catch (Exception e) {
+                // TODO: handle exception
+                int s = Integer.decode(sss);
+                ret[i] = (byte) s;
+            }
+        }
+        return ret;
+    }
+}
+

+ 22 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/service/IBreedService.java

@@ -0,0 +1,22 @@
+package com.huimv.guowei.admin.service;
+
+import com.huimv.guowei.admin.common.utils.Result;
+import com.huimv.guowei.admin.entity.Breed;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2023-06-14
+ */
+public interface IBreedService extends IService<Breed> {
+    Result list(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
+
+    Result listSelect(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
+}

+ 22 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/service/IDepartureService.java

@@ -0,0 +1,22 @@
+package com.huimv.guowei.admin.service;
+
+import com.huimv.guowei.admin.common.utils.Result;
+import com.huimv.guowei.admin.entity.Departure;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2023-06-14
+ */
+public interface IDepartureService extends IService<Departure> {
+    Result list(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
+
+    Result listSelect(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
+}

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

@@ -22,4 +22,8 @@ public interface IDuckHealthInfoService extends IService<DuckHealthInfo> {
 
     Result addHealth(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) throws ParseException;
 
+    Result listByH5(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
+
+    Result listSelect(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
+
 }

+ 4 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/service/IDuckImmunityInfoService.java

@@ -20,4 +20,8 @@ public interface IDuckImmunityInfoService extends IService<DuckImmunityInfo> {
     Result listById(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
 
     Result addImmunity(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) throws ParseException;
+
+    Result listByH5(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
+
+    Result listSelect(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
 }

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

@@ -18,5 +18,9 @@ import java.util.Map;
 public interface IEnvMoveCallService extends IService<EnvMoveCall> {
     Result listById(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
 
-    Result listWeight(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
+    Result listWeight(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
+
+    Result listByH5(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
+
+    Result listSelect(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
 }

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

@@ -29,4 +29,10 @@ public interface IEnvRegularCallEggService extends IService<EnvRegularCallEgg> {
     Result deleteEgg(HttpServletRequest httpServletRequest,Map<String,String> paramsMap);
 
     void printEgg(HttpServletResponse response, Map<String, String> paramsMap) throws Exception;
+
+    Result listByH5(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
+
+    Result listSelect(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
+
+    Result listSeven(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
 }

+ 6 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/service/IEnvRegularCallFeedingService.java

@@ -18,4 +18,10 @@ import java.util.Map;
  */
 public interface IEnvRegularCallFeedingService extends IService<EnvRegularCallFeeding> {
     Result listById(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
+
+    Result listByH5(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
+
+    Result listSelect(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
+
+    Result listSeven(HttpServletRequest httpServletRequest, Map<String,String> paramsMap);
 }

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

@@ -23,7 +23,7 @@ import java.util.Map;
 public interface ISysCameraService extends IService<SysCamera> {
     Result listPage(CameraListVo cameraListVo);
 
-    List getCameraDetails(CameraListsVo cameraListsVo);
+    List getCameraDetails(CameraListsVo cameraListsVo) throws InterruptedException;
 
     Result add(SysCamera camera);
 

+ 11 - 2
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/BaseDuckInfoServiceImpl.java

@@ -111,16 +111,25 @@ public class BaseDuckInfoServiceImpl extends ServiceImpl<BaseDuckInfoMapper, Bas
         baseDuckInfo.setSpecialNeeds(paramsMap.get("specialNeeds"));
         baseDuckInfo.setIsCage(0);
         QueryWrapper<BaseDuckInfo> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("duck_num", paramsMap.get("duckCode")).or().eq("unit_id", paramsMap.get("unitId"));
+        queryWrapper.eq("duck_num", paramsMap.get("duckCode"));
         Integer integer = duckInfoMapper.selectCount(queryWrapper);
         if (integer == 0) {
+            QueryWrapper<BaseDuckInfo> queryWrapper1 = new QueryWrapper<>();
+            queryWrapper1.eq("unit_id", paramsMap.get("unitId"));
+            List<BaseDuckInfo> baseDuckInfos = duckInfoMapper.selectList(queryWrapper1);
+            for (BaseDuckInfo duckInfo : baseDuckInfos) {
+                if (duckInfo.getIsCage() == 1) {
+                    return new Result(10001, "鸭笼已被使用!", false);
+                }
+            }
             String content = uploadImage.getImageCom(imgUrl);
             baseDuckInfo.setDuckImgUrl(content);
             duckInfoMapper.insert(baseDuckInfo);
             return new Result(10000, "添加成功!", true);
         } else {
-            return new Result(10001, "鸭只编码已存在或该笼位已使用", false);
+            return new Result(10001, "鸭只编码已存在", false);
         }
+
     }
     /**
      * 获取两个日期间的天数,精确到年月日

+ 58 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/BreedServiceImpl.java

@@ -0,0 +1,58 @@
+package com.huimv.guowei.admin.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huimv.guowei.admin.common.utils.Result;
+import com.huimv.guowei.admin.common.utils.ResultCode;
+import com.huimv.guowei.admin.entity.Breed;
+import com.huimv.guowei.admin.entity.Departure;
+import com.huimv.guowei.admin.mapper.BreedMapper;
+import com.huimv.guowei.admin.service.IBreedService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2023-06-14
+ */
+@Service
+public class BreedServiceImpl extends ServiceImpl<BreedMapper, Breed> implements IBreedService {
+    @Autowired
+    private BreedMapper breedMapper;
+
+    @Override
+    public Result list(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        QueryWrapper<Breed> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).orderByDesc("date").last(" limit 10");
+        return new Result(ResultCode.SUCCESS, breedMapper.selectList(queryWrapper));
+    }
+
+    @Override
+    public Result listSelect(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        String unitId = paramsMap.get("unitId");
+        String pageNum = paramsMap.get("pageNum");
+        String pageSize = paramsMap.get("pageSize");
+        if (pageNum == null || "".equals(pageNum)) {
+            pageNum = "1";
+        }
+        if (pageSize == null || "".equals(pageSize)) {
+            pageSize = "10";
+        }
+        QueryWrapper<Breed> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).eq(StringUtils.isNotBlank("unit_id"),"unit_id", unitId)
+                .orderByDesc("date");
+        Page<Breed> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
+        return new Result(ResultCode.SUCCESS, breedMapper.selectPage(page, queryWrapper));
+    }
+}

+ 59 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/DepartureServiceImpl.java

@@ -0,0 +1,59 @@
+package com.huimv.guowei.admin.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huimv.guowei.admin.common.utils.Result;
+import com.huimv.guowei.admin.common.utils.ResultCode;
+import com.huimv.guowei.admin.entity.Departure;
+import com.huimv.guowei.admin.entity.DuckHealthInfo;
+import com.huimv.guowei.admin.mapper.DepartureMapper;
+import com.huimv.guowei.admin.service.IDepartureService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2023-06-14
+ */
+@Service
+public class DepartureServiceImpl extends ServiceImpl<DepartureMapper, Departure> implements IDepartureService {
+
+    @Autowired
+    private DepartureMapper departureMapper;
+
+    @Override
+    public Result list(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        QueryWrapper<Departure> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).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 pageNum = paramsMap.get("pageNum");
+        String pageSize = paramsMap.get("pageSize");
+        if (pageNum == null || "".equals(pageNum)) {
+            pageNum = "1";
+        }
+        if (pageSize == null || "".equals(pageSize)) {
+            pageSize = "10";
+        }
+        QueryWrapper<Departure> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).eq(StringUtils.isNotBlank("unit_id"),"unit_id", unitId)
+                .orderByDesc("date");
+        Page<Departure> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
+        return new Result(ResultCode.SUCCESS, departureMapper.selectPage(page, queryWrapper));
+    }
+}

+ 32 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/DuckHealthInfoServiceImpl.java

@@ -85,9 +85,41 @@ public class DuckHealthInfoServiceImpl extends ServiceImpl<DuckHealthInfoMapper,
         healthInfo.setHealthResult(healthResult);
         healthInfo.setDuckId(Integer.parseInt(duckId));
         healthInfo.setTreatmentMeasure(treatmentMeasure);
+        healthInfo.setUnitId(baseDuckInfo.getUnitId());
+        healthInfo.setSymptom(paramsMap.get("symptom"));
+        healthInfo.setCure(paramsMap.get("cure"));
+        healthInfo.setMedicine(paramsMap.get("medicine"));
+        healthInfo.setMeasure(paramsMap.get("measure"));
         healthInfoMapper.insert(healthInfo);
         return new Result(ResultCode.SUCCESS);
     }
 
+    @Override
+    public Result listByH5(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        QueryWrapper<DuckHealthInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).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 pageNum = paramsMap.get("pageNum");
+        String pageSize = paramsMap.get("pageSize");
+        if (pageNum == null || "".equals(pageNum)) {
+            pageNum = "1";
+        }
+        if (pageSize == null || "".equals(pageSize)) {
+            pageSize = "10";
+        }
+        QueryWrapper<DuckHealthInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).eq(StringUtils.isNotBlank("unit_id"),"unit_id", unitId)
+                .orderByDesc("health_date");;
+        Page<DuckHealthInfo> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
+        return new Result(ResultCode.SUCCESS, healthInfoMapper.selectPage(page, queryWrapper));
+    }
+
 
 }

+ 31 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/DuckImmunityInfoServiceImpl.java

@@ -70,6 +70,8 @@ public class DuckImmunityInfoServiceImpl extends ServiceImpl<DuckImmunityInfoMap
         date = date + " 00:00:00";
         String farmId = paramsMap.get("farmId");
         String duckId = paramsMap.get("duckId");
+        String injection = paramsMap.get("injection");
+        String dose = paramsMap.get("dose");
         QueryWrapper<BaseDuckInfo> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("id", duckId);
         BaseDuckInfo baseDuckInfo = baseDuckInfoMapper.selectOne(queryWrapper);
@@ -77,6 +79,9 @@ public class DuckImmunityInfoServiceImpl extends ServiceImpl<DuckImmunityInfoMap
         Date date1 = sdf.parse(date);
         String vaccination = paramsMap.get("vaccination");//接种疫苗
         DuckImmunityInfo immunityInfo = new DuckImmunityInfo();
+        immunityInfo.setDuckId(baseDuckInfo.getUnitId());
+        immunityInfo.setDose(Integer.parseInt(dose));
+        immunityInfo.setInjection(injection);
         immunityInfo.setDuckId(Integer.parseInt(duckId));
         immunityInfo.setDuckNum(baseDuckInfo.getDuckNum());
         immunityInfo.setFarmId(Integer.parseInt(farmId));
@@ -85,5 +90,31 @@ public class DuckImmunityInfoServiceImpl extends ServiceImpl<DuckImmunityInfoMap
         infoMapper.insert(immunityInfo);
         return new Result(ResultCode.SUCCESS);
     }
+    @Override
+    public Result listByH5(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        QueryWrapper<DuckImmunityInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).orderByDesc("health_date").last(" limit 10");
+        return new Result(ResultCode.SUCCESS, infoMapper.selectList(queryWrapper));
+    }
+
+    @Override
+    public Result listSelect(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        String unitId = paramsMap.get("unitId");
+        String pageNum = paramsMap.get("pageNum");
+        String pageSize = paramsMap.get("pageSize");
+        if (pageNum == null || "".equals(pageNum)) {
+            pageNum = "1";
+        }
+        if (pageSize == null || "".equals(pageSize)) {
+            pageSize = "10";
+        }
+        QueryWrapper<DuckImmunityInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).eq(StringUtils.isNotBlank("unit_id"),"unit_id", unitId)
+        .orderByDesc("health_date");
+        Page<DuckImmunityInfo> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
+        return new Result(ResultCode.SUCCESS, infoMapper.selectPage(page, queryWrapper));
+    }
 
 }

+ 37 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/EnvMoveCallServiceImpl.java

@@ -6,6 +6,7 @@ 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.DuckImmunityInfo;
 import com.huimv.guowei.admin.entity.EnvMoveCall;
 import com.huimv.guowei.admin.entity.EnvRegularCallEgg;
 import com.huimv.guowei.admin.mapper.EnvMoveCallMapper;
@@ -90,4 +91,40 @@ public class EnvMoveCallServiceImpl extends ServiceImpl<EnvMoveCallMapper, EnvMo
         Page<EnvMoveCall> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
         return new Result(ResultCode.SUCCESS, moveCallMapper.selectPage(page, queryWrapper));
     }
+
+    @Override
+    public Result listByH5(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        QueryWrapper<EnvMoveCall> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).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 type = paramsMap.get("type");//显示类型
+        String pageNum = paramsMap.get("pageNum");
+        String pageSize = paramsMap.get("pageSize");
+        if (pageNum == null || "".equals(pageNum)) {
+            pageNum = "1";
+        }
+        if (pageSize == null || "".equals(pageSize)) {
+            pageSize = "10";
+        }
+        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);
+            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)
+                    .ge("call_date", calendar.getTime());
+            return new Result(ResultCode.SUCCESS, moveCallMapper.listDay(queryWrapper));
+        }
+    }
 }

+ 47 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/EnvRegularCallEggServiceImpl.java

@@ -1,6 +1,8 @@
 package com.huimv.guowei.admin.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.huimv.guowei.admin.common.utils.DataUill;
 import com.huimv.guowei.admin.common.utils.Result;
@@ -137,5 +139,50 @@ 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");
+        QueryWrapper<EnvRegularCallEgg> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).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 pageNum = paramsMap.get("pageNum");
+        String pageSize = paramsMap.get("pageSize");
+        if (pageNum == null || "".equals(pageNum)) {
+            pageNum = "1";
+        }
+        if (pageSize == null || "".equals(pageSize)) {
+            pageSize = "10";
+        }
+        QueryWrapper<EnvRegularCallEgg> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).eq(StringUtils.isNotBlank("unit_id"),"unit_id", unitId)
+                .orderByDesc("call_date");
+        Page<EnvRegularCallEgg> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
+        return new Result(ResultCode.SUCCESS, eggMapper.selectPage(page, queryWrapper));
+    }
+
+    @Override
+    public Result listSeven(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        String unitId = paramsMap.get("unitId");
+        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<EnvRegularCallEgg> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.eq("farm_id", farmId).eq(StringUtils.isNotBlank("unit_id"), "unit_id", unitId);
+        queryWrapper1.select(" IFNULL(SUM(duck_weight),'0') duckWeight, IFNULL(SUM(egg_num),'0') eggNum");
+        EnvRegularCallEgg egg = eggMapper.selectOne(queryWrapper1);
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("eggNum", egg.getEggNum());
+        jsonObject.put("egg", eggMapper.selectList(queryWrapper));
+        jsonObject.put("eggWeight", egg.getDuckWeight());
+        return new Result(ResultCode.SUCCESS, jsonObject);
+    }
 
 }

+ 39 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/EnvRegularCallFeedingServiceImpl.java

@@ -1,10 +1,12 @@
 package com.huimv.guowei.admin.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 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.DuckHealthInfo;
 import com.huimv.guowei.admin.entity.EnvMoveCall;
 import com.huimv.guowei.admin.entity.EnvRegularCallEgg;
 import com.huimv.guowei.admin.entity.EnvRegularCallFeeding;
@@ -80,5 +82,42 @@ public class EnvRegularCallFeedingServiceImpl extends ServiceImpl<EnvRegularCall
         }
 
     }
+    @Override
+    public Result listByH5(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        QueryWrapper<EnvRegularCallFeeding> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).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 pageNum = paramsMap.get("pageNum");
+        String pageSize = paramsMap.get("pageSize");
+        if (pageNum == null || "".equals(pageNum)) {
+            pageNum = "1";
+        }
+        if (pageSize == null || "".equals(pageSize)) {
+            pageSize = "10";
+        }
+        QueryWrapper<EnvRegularCallFeeding> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).eq(StringUtils.isNotBlank("unit_id"),"unit_id", unitId)
+                .orderByDesc("call_date");
+        Page<EnvRegularCallFeeding> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
+        return new Result(ResultCode.SUCCESS, feedingMapper.selectPage(page, queryWrapper));
+    }
+
+    @Override
+    public Result listSeven(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        String unitId = paramsMap.get("unitId");
+        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());
+        return new Result(ResultCode.SUCCESS, feedingMapper.selectList(queryWrapper));
+    }
 
 }

+ 33 - 6
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/SysCameraServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.RandomUtil;
 import cn.hutool.poi.excel.ExcelReader;
 import cn.hutool.poi.excel.ExcelUtil;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -19,15 +20,13 @@ import com.huimv.guowei.admin.mapper.SysCameraBrandMapper;
 import com.huimv.guowei.admin.mapper.SysCameraMapper;
 import com.huimv.guowei.admin.service.ISysCameraService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.huimv.guowei.admin.utils.ProcessUtil;
 import javafx.scene.Camera;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.servlet.http.HttpServletRequest;
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * <p>
@@ -92,7 +91,7 @@ public class SysCameraServiceImpl extends ServiceImpl<SysCameraMapper, SysCamera
     }
 
     @Override
-    public List getCameraDetails(CameraListsVo cameraListsVo) {
+    public List getCameraDetails(CameraListsVo cameraListsVo) throws InterruptedException {
         List<Integer> cameraIds = cameraListsVo.getCameraIds();
         CameraListVo cameraListVo = new CameraListsVo();
         cameraListVo.setCurrent(1);
@@ -138,7 +137,7 @@ public class SysCameraServiceImpl extends ServiceImpl<SysCameraMapper, SysCamera
                     cameraVo.setRtspUrl("rtsp://" + cameraAccount + ":" + cameraPassword + "@" + camerIp + rtsp);
 
                     cameraVo.setCameraName(cameraName);
-                    cameraVo.setHttpUrl(handleHlsHttpUrl(url, cameraAccount, cameraPassword, camerIp, farmAppPort, farmVideoApp, hlsMediaPort));
+                    cameraVo.setHttpUrl(("rtsp://" + cameraAccount + ":" + cameraPassword + "@" + camerIp + rtsp));
                     if (i > 0) {
                         cameraVo.setLastId(list.get(i - 1).getId());
                     }
@@ -153,6 +152,34 @@ public class SysCameraServiceImpl extends ServiceImpl<SysCameraMapper, SysCamera
         return cameraDetailsList;
     }
 
+  /*  public String HlsHttp(String url) throws InterruptedException {
+        String name = generateByShuffle();
+        System.out.println(name);
+        String input = url;
+        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);
+        return "http://192.168.1.68:80" + "/hls/" + name + ".m3u8";
+    }*/
+
     //构造HlsHttp地址
     private String handleHlsHttpUrl(String url, String cameraAccount, String cameraPassword, String camerIp, String farmAppPort, String farmVideoApp, String hlsMediaPort) {
         url = url.substring(0, url.indexOf(":"));

+ 117 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/utils/ProcessUtil.java

@@ -0,0 +1,117 @@
+package com.huimv.guowei.admin.utils;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.List;
+
+public class ProcessUtil extends Thread{
+
+
+    public static String execute(List<String> command) {
+        StringBuffer inputStringBuffer = new StringBuffer();
+        StringBuffer errorStringBuffer = new StringBuffer();
+        try {
+            ProcessBuilder builder = new ProcessBuilder(command);
+            Process process = builder.start();
+            System.out.println("============inputStream============");
+            // 处理InputStream
+
+            Thread t1 = new Thread(() -> {
+                InputStream input = null;
+                InputStreamReader reader = null;
+                BufferedReader buffer = null;
+
+                try {
+                    input = process.getInputStream();
+                    reader = new InputStreamReader(input);
+                    buffer = new BufferedReader(reader);
+                    String inputLine = "";
+                    while ((inputLine = buffer.readLine()) != null) {
+                        System.out.println(inputLine);
+                        inputStringBuffer.append(inputLine);
+
+                    }
+                    //退出循环后表示结束流
+                    System.out.println("===》》退出循环后表示结束流");
+                } catch (IOException e) {
+                    e.printStackTrace();
+                } finally {
+                    try {
+                        if (buffer != null) {
+                            buffer.close();
+                        }
+                        if (reader != null) {
+                            reader.close();
+                        }
+                        if (input != null) {
+                            input.close();
+                        }
+                    } catch (IOException e) {
+                        e.printStackTrace();
+                    }
+                }
+            });
+
+            t1.setName("deviceName");
+            t1.start();
+
+            System.out.println("============errorStream============");
+            // 处理ErrorStream
+            new Thread(() -> {
+                InputStream input = null;
+                InputStreamReader reader = null;
+                BufferedReader buffer = null;
+                try {
+                    input = process.getErrorStream();
+                    reader = new InputStreamReader(input);
+                    buffer = new BufferedReader(reader);
+                    String errorLine = "";
+                    while ((errorLine = buffer.readLine()) != null) {
+                        System.out.println(errorLine);
+                        errorStringBuffer.append(errorLine);
+                    }
+                } catch (IOException e) {
+                    e.printStackTrace();
+                } finally {
+                    try {
+                        if (buffer != null) {
+                            buffer.close();
+                        }
+                        if (reader != null) {
+                            reader.close();
+                        }
+                        if (input != null) {
+                            input.close();
+                        }
+                    } catch (IOException e) {
+                        e.printStackTrace();
+                    }
+                }
+            }).start();
+
+            // 这里进程阻塞,将等待外部转换成功后,才往下执行
+//            process.waitFor();
+            synchronized (t1) {
+                t1.wait(100);
+            }
+
+
+            /**
+             * 只会存在一个输入流返回
+             */
+            if (inputStringBuffer != null) {
+                return inputStringBuffer.toString();
+            }
+            if (errorStringBuffer != null) {
+                return errorStringBuffer.toString();
+            }
+
+        } catch (InterruptedException | IOException e) {
+            e.printStackTrace();
+            return null;
+        }
+        return null;
+    }
+}

+ 5 - 0
huimv-admin/src/main/resources/com/huimv/guowei/admin/mapper/DepartureMapper.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.DepartureMapper">
+
+</mapper>

+ 5 - 0
huimv-admin/src/main/resources/mapper/BreedMapper.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.BreedMapper">
+
+</mapper>