Explorar o código

生产管理基础

wwh hai 9 meses
pai
achega
0f7799d9b2
Modificáronse 55 ficheiros con 1793 adicións e 0 borrados
  1. 44 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/controller/ProtBatchController.java
  2. 45 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/controller/ProtDiseaseController.java
  3. 39 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/controller/ProtEnvDataController.java
  4. 72 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/controller/ProtEnvDeviceController.java
  5. 20 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/controller/ProtInvestmentController.java
  6. 20 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/controller/ProtProductionController.java
  7. 20 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/controller/ProtSheepInfoController.java
  8. 64 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/controller/ProtTransferController.java
  9. 44 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/controller/ProtVaccinationController.java
  10. 69 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/entity/ProtBatch.java
  11. 76 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/entity/ProtDisease.java
  12. 77 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/entity/ProtEnvData.java
  13. 69 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/entity/ProtEnvDevice.java
  14. 36 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/entity/ProtInvestment.java
  15. 36 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/entity/ProtProduction.java
  16. 81 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/entity/ProtSheepInfo.java
  17. 82 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/entity/ProtTransfer.java
  18. 71 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/entity/ProtVaccination.java
  19. 16 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/entity/vo/ProtBatchAddVo.java
  20. 16 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/mapper/ProtBatchMapper.java
  21. 16 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/mapper/ProtDiseaseMapper.java
  22. 23 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/mapper/ProtEnvDataMapper.java
  23. 16 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/mapper/ProtEnvDeviceMapper.java
  24. 16 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/mapper/ProtInvestmentMapper.java
  25. 16 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/mapper/ProtProductionMapper.java
  26. 16 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/mapper/ProtSheepInfoMapper.java
  27. 16 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/mapper/ProtTransferMapper.java
  28. 16 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/mapper/ProtVaccinationMapper.java
  29. 22 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/service/IProtBatchService.java
  30. 19 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/service/IProtDiseaseService.java
  31. 24 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/service/IProtEnvDataService.java
  32. 20 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/service/IProtEnvDeviceService.java
  33. 16 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/service/IProtInvestmentService.java
  34. 16 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/service/IProtProductionService.java
  35. 16 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/service/IProtSheepInfoService.java
  36. 21 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/service/IProtTransferService.java
  37. 19 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/service/IProtVaccinationService.java
  38. 81 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/service/impl/ProtBatchServiceImpl.java
  39. 53 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/service/impl/ProtDiseaseServiceImpl.java
  40. 87 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/service/impl/ProtEnvDataServiceImpl.java
  41. 44 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/service/impl/ProtEnvDeviceServiceImpl.java
  42. 20 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/service/impl/ProtInvestmentServiceImpl.java
  43. 20 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/service/impl/ProtProductionServiceImpl.java
  44. 20 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/service/impl/ProtSheepInfoServiceImpl.java
  45. 47 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/service/impl/ProtTransferServiceImpl.java
  46. 46 0
      huimv-huyang-admin/src/main/java/com/huimv/admin/service/impl/ProtVaccinationServiceImpl.java
  47. 5 0
      huimv-huyang-admin/src/main/resources/mapper/ProtBatchMapper.xml
  48. 5 0
      huimv-huyang-admin/src/main/resources/mapper/ProtDiseaseMapper.xml
  49. 30 0
      huimv-huyang-admin/src/main/resources/mapper/ProtEnvDataMapper.xml
  50. 5 0
      huimv-huyang-admin/src/main/resources/mapper/ProtEnvDeviceMapper.xml
  51. 5 0
      huimv-huyang-admin/src/main/resources/mapper/ProtInvestmentMapper.xml
  52. 5 0
      huimv-huyang-admin/src/main/resources/mapper/ProtProductionMapper.xml
  53. 5 0
      huimv-huyang-admin/src/main/resources/mapper/ProtSheepInfoMapper.xml
  54. 5 0
      huimv-huyang-admin/src/main/resources/mapper/ProtTransferMapper.xml
  55. 5 0
      huimv-huyang-admin/src/main/resources/mapper/ProtVaccinationMapper.xml

+ 44 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/controller/ProtBatchController.java

@@ -0,0 +1,44 @@
+package com.huimv.admin.controller;
+
+
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.entity.ProtVaccination;
+import com.huimv.admin.service.IProtBatchService;
+import com.huimv.admin.service.IProtVaccinationService;
+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 java.util.Date;
+import java.util.Map;
+
+/**
+ * <p>
+ * 生产管理批次记录 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+@RestController
+@RequestMapping("/prot-batch")
+@CrossOrigin
+public class ProtBatchController {
+
+    @Autowired
+    private IProtBatchService batchService;
+
+    @RequestMapping("/listPage")
+    public Result listPage(@RequestBody Map<String, String> paramsMap) {
+        return batchService.listPage(paramsMap);
+    }
+
+    @RequestMapping("/add")
+    public Result add(@RequestBody Map<String, String> paramsMap) {
+
+        return new Result(10000, "新增成功!", true);
+    }
+}

+ 45 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/controller/ProtDiseaseController.java

@@ -0,0 +1,45 @@
+package com.huimv.admin.controller;
+
+
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.entity.ProtDisease;
+import com.huimv.admin.mapper.ProtDiseaseMapper;
+import com.huimv.admin.service.IProtDiseaseService;
+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 java.util.Date;
+import java.util.Map;
+
+/**
+ * <p>
+ * 生产管理疾病登记 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+@RestController
+@RequestMapping("/prot-disease")
+@CrossOrigin
+public class ProtDiseaseController {
+
+    @Autowired
+    private IProtDiseaseService diseaseService;
+
+    @RequestMapping("/listPage")
+    public Result listPage(@RequestBody Map<String, String> paramsMap) {
+        return diseaseService.listPage(paramsMap);
+    }
+
+    @RequestMapping("/add")
+    public Result add(@RequestBody ProtDisease disease) {
+        disease.setCreateTime(new Date());
+        diseaseService.save(disease);
+        return new Result(10000, "添加成功!", true);
+    }
+}

+ 39 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/controller/ProtEnvDataController.java

@@ -0,0 +1,39 @@
+package com.huimv.admin.controller;
+
+
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.service.IProtEnvDataService;
+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 java.util.Map;
+
+/**
+ * <p>
+ * 生产管理环境监测 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+@RestController
+@RequestMapping("/prot-env-data")
+@CrossOrigin
+public class ProtEnvDataController {
+
+    @Autowired
+    private IProtEnvDataService envDataService;
+
+    @RequestMapping("/listData")
+    public Result listData(@RequestBody Map<String, String> paramsMap) {
+        return envDataService.listData(paramsMap);
+    }
+    @RequestMapping("/listHistory")
+    public Result listHistory(@RequestBody Map<String, String> paramsMap) {
+        return envDataService.listHistory(paramsMap);
+    }
+}

+ 72 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/controller/ProtEnvDeviceController.java

@@ -0,0 +1,72 @@
+package com.huimv.admin.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.entity.ProtEnvDevice;
+import com.huimv.admin.service.IProtEnvDeviceService;
+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 java.util.Date;
+import java.util.Map;
+
+/**
+ * <p>
+ * 生产管理舍内设备 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-14
+ */
+@RestController
+@RequestMapping("/prot-env-device")
+@CrossOrigin
+public class ProtEnvDeviceController {
+
+    @Autowired
+    private IProtEnvDeviceService deviceService;
+
+    @RequestMapping("/listDevice")
+    public Result listDevice(@RequestBody Map<String, String> paramsMap) {
+        return deviceService.listDevice(paramsMap);
+    }
+
+    @RequestMapping("/delete")
+    public Result delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        String[] split = ids.split(",");
+        for (String s : split) {
+            deviceService.removeById(s);
+        }
+        return new Result(10000, "删除成功!", true);
+    }
+
+    @RequestMapping("/add")
+    public Result add(@RequestBody ProtEnvDevice protEnvDevice) {
+        int count = deviceService.count(new QueryWrapper<ProtEnvDevice>().eq("device_code", protEnvDevice.getDeviceCode()));
+        if (count > 0) {
+            return new Result(10001, "添加失败,设备编码已存在!", false);
+        }
+        protEnvDevice.setCreateTime(new Date());
+        protEnvDevice.setDeviceStatus(0);
+        deviceService.save(protEnvDevice);
+        return new Result(10000, "添加成功!", true);
+    }
+
+    @RequestMapping("/edit")
+    public Result edit(@RequestBody ProtEnvDevice protEnvDevice) {
+        int count = deviceService.count(new QueryWrapper<ProtEnvDevice>().eq("device_code", protEnvDevice.getDeviceCode())
+                .ne("id", protEnvDevice.getId()));
+        if (count > 0) {
+            return new Result(10001, "修改失败,设备编码已存在!", false);
+        }
+        protEnvDevice.setCreateTime(new Date());
+        deviceService.updateById(protEnvDevice);
+        return new Result(10000, "修改成功!", true);
+    }
+}

+ 20 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/controller/ProtInvestmentController.java

@@ -0,0 +1,20 @@
+package com.huimv.admin.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 生产管理投入品管理 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+@RestController
+@RequestMapping("/prot-investment")
+public class ProtInvestmentController {
+
+}

+ 20 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/controller/ProtProductionController.java

@@ -0,0 +1,20 @@
+package com.huimv.admin.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 生产管理产量管理 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+@RestController
+@RequestMapping("/prot-production")
+public class ProtProductionController {
+
+}

+ 20 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/controller/ProtSheepInfoController.java

@@ -0,0 +1,20 @@
+package com.huimv.admin.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 单个羊只信息 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-14
+ */
+@RestController
+@RequestMapping("/prot-sheep-info")
+public class ProtSheepInfoController {
+
+}

+ 64 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/controller/ProtTransferController.java

@@ -0,0 +1,64 @@
+package com.huimv.admin.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.entity.ProtSheepInfo;
+import com.huimv.admin.entity.ProtTransfer;
+import com.huimv.admin.service.IProtBatchService;
+import com.huimv.admin.service.IProtSheepInfoService;
+import com.huimv.admin.service.IProtTransferService;
+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 java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 生产管理挑拨转舍 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+@RestController
+@RequestMapping("/prot-transfer")
+@CrossOrigin
+public class ProtTransferController {
+    @Autowired
+    private IProtTransferService transferService;
+    @Autowired
+    private IProtSheepInfoService sheepInfoService;
+
+    @RequestMapping("/listPage")
+    public Result listPage(@RequestBody Map<String, String> paramsMap) {
+        return transferService.listPage(paramsMap);
+    }
+
+    @RequestMapping("/add")
+    public Result add(@RequestBody ProtTransfer transfer) {
+        /*if ("".equals(transfer) || null == transfer.getBatchNum()) {
+            //说明是单只羊进行转舍
+            sheepInfoService.getOne(new QueryWrapper<>().eq("sheep_id",))
+        } else*/
+        {
+            //需要根据批次号去查询羊只数量并且修改羊只信息中的批次号
+            String batchNum = transfer.getBatchNum();
+            QueryWrapper<ProtSheepInfo> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("batch_num", batchNum);
+            List<ProtSheepInfo> sheepInfos = sheepInfoService.list(queryWrapper);
+            for (ProtSheepInfo sheepInfo : sheepInfos) {
+                sheepInfo.setUnitId(transfer.getToBuildId());
+                sheepInfo.setUnitName(transfer.getToBuildName());
+                sheepInfoService.updateById(sheepInfo);
+            }
+        }
+        transferService.save(transfer);
+        return new Result(10000, "新增成功!", true);
+    }
+}

+ 44 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/controller/ProtVaccinationController.java

@@ -0,0 +1,44 @@
+package com.huimv.admin.controller;
+
+
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.entity.ProtVaccination;
+import com.huimv.admin.service.IProtVaccinationService;
+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 java.util.Date;
+import java.util.Map;
+
+/**
+ * <p>
+ * 生产管理检疫 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+@RestController
+@RequestMapping("/prot-vaccination")
+@CrossOrigin
+public class ProtVaccinationController {
+
+    @Autowired
+    private IProtVaccinationService vaccinationService;
+
+    @RequestMapping("/listPage")
+    public Result listPage(@RequestBody Map<String, String> paramsMap) {
+        return vaccinationService.listPage(paramsMap);
+    }
+
+    @RequestMapping("/add")
+    public Result add(@RequestBody ProtVaccination vaccination) {
+        vaccination.setCreateTime(new Date());
+        vaccinationService.save(vaccination);
+        return new Result(10000, "新增成功!", true);
+    }
+}

+ 69 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/entity/ProtBatch.java

@@ -0,0 +1,69 @@
+package com.huimv.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 2024-08-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("prot_batch")
+public class ProtBatch implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 平均日龄
+     */
+    private Integer avgDay;
+
+    /**
+     * 平均体重(kg)
+     */
+    private Double avgWeight;
+
+    /**
+     * 批次编码
+     */
+    private String batchNum;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 羊只数量
+     */
+    private Integer number;
+
+    /**
+     * 操作人
+     */
+    private String registerUser;
+
+    /**
+     * 牧场编码
+     */
+    private Integer farmId;
+
+
+}

+ 76 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/entity/ProtDisease.java

@@ -0,0 +1,76 @@
+package com.huimv.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 2024-08-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("prot_disease")
+public class ProtDisease implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 疾病名称
+     */
+    private String disease;
+
+    /**
+     * 是否隔离 0 未隔离 1已隔离
+     */
+    private Integer ifIsolation;
+
+    /**
+     * 药物名称
+     */
+    private String medicine;
+
+    /**
+     * 登记人
+     */
+    private String registerUser;
+
+    /**
+     * 当前状态
+     */
+    private String status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 羊只编码
+     */
+    private String sheepId;
+
+    private Integer farmId;
+
+
+}

+ 77 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/entity/ProtEnvData.java

@@ -0,0 +1,77 @@
+package com.huimv.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 lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 生产管理环境监测
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("prot_env_data")
+public class ProtEnvData implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 生产管理湿度
+     */
+    private String hum;
+
+    /**
+     * 生产管理温度
+     */
+    private String temp;
+
+    /**
+     * 生产管理氨气
+     */
+    private String nh3n;
+
+    /**
+     * 生产管理硫化氢
+     */
+    private String h2s;
+
+    /**
+     * 生产管理照明
+     */
+    private String lighting;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 牧场编码
+     */
+    private Integer farmId;
+
+    /**
+     * 单元ID
+     */
+    private Integer unitId;
+
+    /**
+     * 单元名称
+     */
+    private String unitName;
+
+
+}

+ 69 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/entity/ProtEnvDevice.java

@@ -0,0 +1,69 @@
+package com.huimv.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 2024-08-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("prot_env_device")
+public class ProtEnvDevice implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 设备编码
+     */
+    private String deviceCode;
+
+    /**
+     * 安装位置id
+     */
+    private Integer unitId;
+
+    /**
+     * 安装位置名称
+     */
+    private String unitName;
+
+    /**
+     * 设备名称
+     */
+    private String deviceName;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 设备状态
+     */
+    private Integer deviceStatus;
+
+    /**
+     * 牧场编码
+     */
+    private Integer farmId;
+
+
+}

+ 36 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/entity/ProtInvestment.java

@@ -0,0 +1,36 @@
+package com.huimv.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 lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 生产管理投入品管理
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("prot_investment")
+public class ProtInvestment implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private LocalDateTime createTime;
+
+    private Integer farmId;
+
+
+}

+ 36 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/entity/ProtProduction.java

@@ -0,0 +1,36 @@
+package com.huimv.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 lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 生产管理产量管理
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("prot_production")
+public class ProtProduction implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private LocalDateTime createTime;
+
+    private Integer farmId;
+
+
+}

+ 81 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/entity/ProtSheepInfo.java

@@ -0,0 +1,81 @@
+package com.huimv.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 lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 单个羊只信息
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("prot_sheep_info")
+public class ProtSheepInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 羊只编码
+     */
+    private String sheepId;
+
+    /**
+     * 羊只母类编码
+     */
+    private String sheepFather;
+
+    /**
+     * 羊只父类编码
+     */
+    private String sheepMother;
+
+    /**
+     * 羊只种类
+     */
+    private String sheepType;
+
+    /**
+     * 羊只日龄
+     */
+    private Integer sheepDay;
+
+    /**
+     * 羊只体重
+     */
+    private Double sheepWeight;
+
+    /**
+     * 羊只所在单元id
+     */
+    private Integer unitId;
+
+    /**
+     * 羊只所在单元名称
+     */
+    private String unitName;
+
+    /**
+     * 批次号
+     */
+    private String batchNum;
+
+    private Integer farmId;
+
+    private LocalDateTime createTime;
+
+
+}

+ 82 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/entity/ProtTransfer.java

@@ -0,0 +1,82 @@
+package com.huimv.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 lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 生产管理挑拨转舍
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("prot_transfer")
+public class ProtTransfer implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 批次编码
+     */
+    private String batchNum;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 转出位置名称
+     */
+    private String fromBuildName;
+
+    /**
+     * 转出位置id
+     */
+    private Integer fromBuildId;
+
+    /**
+     * 转入位置名称
+     */
+    private String toBuildName;
+
+    /**
+     * 转入位置id
+     */
+    private Integer toBuildId;
+
+    /**
+     * 转舍羊只数量
+     */
+    private Integer number;
+
+    /**
+     * 操作人
+     */
+    private String registerUser;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 牧场编码
+     */
+    private Integer farmId;
+
+
+}

+ 71 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/entity/ProtVaccination.java

@@ -0,0 +1,71 @@
+package com.huimv.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 2024-08-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("prot_vaccination")
+public class ProtVaccination implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 免疫数量
+     */
+    private Integer number;
+
+    /**
+     * 药物名称
+     */
+    private String medicine;
+
+    /**
+     * 使用方法
+     */
+    private String method;
+
+    /**
+     * 操作人
+     */
+    private String registerUser;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 批次号
+     */
+    private String batchNum;
+
+    private Integer farmId;
+
+
+}

+ 16 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/entity/vo/ProtBatchAddVo.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.entity.vo;
+
+import com.huimv.admin.entity.ProtSheepInfo;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class ProtBatchAddVo {
+    private Integer farmId;
+    private String registerUser;
+    private String batchNum;
+    private List<ProtSheepInfo> sheepInfos;
+    private Date createTime;
+}

+ 16 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/mapper/ProtBatchMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.mapper;
+
+import com.huimv.admin.entity.ProtBatch;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 生产管理批次记录 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+public interface ProtBatchMapper extends BaseMapper<ProtBatch> {
+
+}

+ 16 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/mapper/ProtDiseaseMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.mapper;
+
+import com.huimv.admin.entity.ProtDisease;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 生产管理疾病登记 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+public interface ProtDiseaseMapper extends BaseMapper<ProtDisease> {
+
+}

+ 23 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/mapper/ProtEnvDataMapper.java

@@ -0,0 +1,23 @@
+package com.huimv.admin.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.huimv.admin.entity.ProtEnvData;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.data.repository.query.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 生产管理环境监测 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+public interface ProtEnvDataMapper extends BaseMapper<ProtEnvData> {
+    List<ProtEnvData> listData(@Param(Constants.WRAPPER)QueryWrapper<ProtEnvData> queryWrapper);
+
+    List<ProtEnvData> listDataDay(@Param(Constants.WRAPPER)QueryWrapper<ProtEnvData> queryWrapper);
+}

+ 16 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/mapper/ProtEnvDeviceMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.mapper;
+
+import com.huimv.admin.entity.ProtEnvDevice;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 生产管理舍内设备 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-14
+ */
+public interface ProtEnvDeviceMapper extends BaseMapper<ProtEnvDevice> {
+
+}

+ 16 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/mapper/ProtInvestmentMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.mapper;
+
+import com.huimv.admin.entity.ProtInvestment;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 生产管理投入品管理 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+public interface ProtInvestmentMapper extends BaseMapper<ProtInvestment> {
+
+}

+ 16 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/mapper/ProtProductionMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.mapper;
+
+import com.huimv.admin.entity.ProtProduction;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 生产管理产量管理 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+public interface ProtProductionMapper extends BaseMapper<ProtProduction> {
+
+}

+ 16 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/mapper/ProtSheepInfoMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.mapper;
+
+import com.huimv.admin.entity.ProtSheepInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 单个羊只信息 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-14
+ */
+public interface ProtSheepInfoMapper extends BaseMapper<ProtSheepInfo> {
+
+}

+ 16 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/mapper/ProtTransferMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.mapper;
+
+import com.huimv.admin.entity.ProtTransfer;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 生产管理挑拨转舍 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+public interface ProtTransferMapper extends BaseMapper<ProtTransfer> {
+
+}

+ 16 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/mapper/ProtVaccinationMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.mapper;
+
+import com.huimv.admin.entity.ProtVaccination;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 生产管理检疫 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+public interface ProtVaccinationMapper extends BaseMapper<ProtVaccination> {
+
+}

+ 22 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/service/IProtBatchService.java

@@ -0,0 +1,22 @@
+package com.huimv.admin.service;
+
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.entity.ProtBatch;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.admin.entity.vo.ProtBatchAddVo;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 生产管理批次记录 服务类
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+public interface IProtBatchService extends IService<ProtBatch> {
+    Result listPage(Map<String, String> paramsMap);
+
+    Result addBatch(ProtBatchAddVo batchAddVo);
+}

+ 19 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/service/IProtDiseaseService.java

@@ -0,0 +1,19 @@
+package com.huimv.admin.service;
+
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.entity.ProtDisease;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 生产管理疾病登记 服务类
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+public interface IProtDiseaseService extends IService<ProtDisease> {
+    Result listPage(Map<String, String> paramsMap);
+}

+ 24 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/service/IProtEnvDataService.java

@@ -0,0 +1,24 @@
+package com.huimv.admin.service;
+
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.entity.ProtEnvData;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 生产管理环境监测 服务类
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+public interface IProtEnvDataService extends IService<ProtEnvData> {
+
+    //实时监测
+    Result listData(Map<String, String> paramsMap);
+
+    //历史曲线统计
+    Result listHistory(Map<String, String> paramsMap);
+}

+ 20 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/service/IProtEnvDeviceService.java

@@ -0,0 +1,20 @@
+package com.huimv.admin.service;
+
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.entity.ProtEnvDevice;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 生产管理舍内设备 服务类
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-14
+ */
+public interface IProtEnvDeviceService extends IService<ProtEnvDevice> {
+
+    Result listDevice(Map<String,String> paramsMap);
+}

+ 16 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/service/IProtInvestmentService.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.service;
+
+import com.huimv.admin.entity.ProtInvestment;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 生产管理投入品管理 服务类
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+public interface IProtInvestmentService extends IService<ProtInvestment> {
+
+}

+ 16 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/service/IProtProductionService.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.service;
+
+import com.huimv.admin.entity.ProtProduction;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 生产管理产量管理 服务类
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+public interface IProtProductionService extends IService<ProtProduction> {
+
+}

+ 16 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/service/IProtSheepInfoService.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.service;
+
+import com.huimv.admin.entity.ProtSheepInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 单个羊只信息 服务类
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-14
+ */
+public interface IProtSheepInfoService extends IService<ProtSheepInfo> {
+
+}

+ 21 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/service/IProtTransferService.java

@@ -0,0 +1,21 @@
+package com.huimv.admin.service;
+
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.entity.ProtTransfer;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 生产管理挑拨转舍 服务类
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+public interface IProtTransferService extends IService<ProtTransfer> {
+    Result listPage(Map<String, String> paramsMap);
+
+
+}

+ 19 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/service/IProtVaccinationService.java

@@ -0,0 +1,19 @@
+package com.huimv.admin.service;
+
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.entity.ProtVaccination;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 生产管理检疫 服务类
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+public interface IProtVaccinationService extends IService<ProtVaccination> {
+    Result listPage(Map<String,String> paramsMap);
+}

+ 81 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/service/impl/ProtBatchServiceImpl.java

@@ -0,0 +1,81 @@
+package com.huimv.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.admin.common.utils.Result;
+import com.huimv.admin.common.utils.ResultCode;
+import com.huimv.admin.entity.ProtBatch;
+import com.huimv.admin.entity.ProtSheepInfo;
+import com.huimv.admin.entity.vo.ProtBatchAddVo;
+import com.huimv.admin.mapper.ProtBatchMapper;
+import com.huimv.admin.mapper.ProtSheepInfoMapper;
+import com.huimv.admin.service.IProtBatchService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.checkerframework.checker.units.qual.A;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 生产管理批次记录 服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+@Service
+public class ProtBatchServiceImpl extends ServiceImpl<ProtBatchMapper, ProtBatch> implements IProtBatchService {
+
+    @Autowired
+    private ProtBatchMapper batchMapper;
+    @Autowired
+    private ProtSheepInfoMapper sheepInfoMapper;
+
+    @Override
+    public Result listPage(Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        String pageNum = paramsMap.get("pageNum");
+        String pageSize = paramsMap.get("pageSize");
+        String batchNum = paramsMap.get("batchNum");
+        if ("".equals(pageNum) || null == pageNum) {
+            pageNum = "1";
+            pageSize = "20";
+        }
+        Page<ProtBatch> page = new Page(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
+        QueryWrapper<ProtBatch> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).like(StringUtils.isNotBlank(batchNum), "batch_num", batchNum);
+        return new Result(ResultCode.SUCCESS, batchMapper.selectPage(page, queryWrapper));
+    }
+
+    @Override
+    public Result addBatch(ProtBatchAddVo batchAddVo) {
+        Integer dayCount = 0;
+        BigDecimal weight = BigDecimal.ZERO;
+        Integer number = batchAddVo.getSheepInfos().size();
+        ProtBatch protBatch = new ProtBatch();
+        protBatch.setBatchNum(batchAddVo.getBatchNum());
+        protBatch.setNumber(number);
+        protBatch.setFarmId(batchAddVo.getFarmId());
+        protBatch.setRegisterUser(batchAddVo.getRegisterUser());
+        protBatch.setCreateTime(batchAddVo.getCreateTime());
+        List<ProtSheepInfo> sheepInfos = batchAddVo.getSheepInfos();
+        for (ProtSheepInfo sheepInfo : sheepInfos) {
+            dayCount = dayCount + sheepInfo.getSheepDay();
+            BigDecimal db = new BigDecimal(sheepInfo.getSheepWeight());
+            weight = weight.add(db);
+            sheepInfo.setBatchNum(batchAddVo.getBatchNum());
+            sheepInfoMapper.updateById(sheepInfo);
+        }
+        BigDecimal num2 = new BigDecimal(number);
+        BigDecimal avgWeight = weight.divide(num2);//
+        protBatch.setAvgWeight(avgWeight.doubleValue());
+        protBatch.setAvgDay(dayCount / number);
+        batchMapper.insert(protBatch);
+        return new Result(ResultCode.SUCCESS);
+    }
+}

+ 53 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/service/impl/ProtDiseaseServiceImpl.java

@@ -0,0 +1,53 @@
+package com.huimv.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.admin.common.utils.Result;
+import com.huimv.admin.common.utils.ResultCode;
+import com.huimv.admin.entity.ProtDisease;
+import com.huimv.admin.mapper.ProtDiseaseMapper;
+import com.huimv.admin.service.IProtDiseaseService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 生产管理疾病登记 服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+@Service
+public class ProtDiseaseServiceImpl extends ServiceImpl<ProtDiseaseMapper, ProtDisease> implements IProtDiseaseService {
+
+    @Autowired
+    private ProtDiseaseMapper diseaseMapper;
+
+    @Override
+    public Result listPage(Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        String startDate = paramsMap.get("startDate");
+        String endDate = paramsMap.get("endDate");
+        String type = paramsMap.get("type");
+        String pageNum = paramsMap.get("pageNum");
+        String pageSize = paramsMap.get("pageSize");
+        String sheepId = paramsMap.get("sheepId");
+        if ("".equals(pageNum) || null == pageNum) {
+            pageNum = "1";
+            pageSize = "20";
+        }
+        Page<ProtDisease> page = new Page(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
+        QueryWrapper<ProtDisease> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).like(StringUtils.isNotBlank(sheepId), "sheep_id", sheepId)
+                .between(StringUtils.isNotBlank(startDate), "create_time", startDate + " 00:00:00", endDate + " 23:59:59");
+        if (!"0".equals(type)) {
+            queryWrapper.eq("status", type);
+        }
+        return new Result(ResultCode.SUCCESS, diseaseMapper.selectPage(page, queryWrapper));
+    }
+}

+ 87 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/service/impl/ProtEnvDataServiceImpl.java

@@ -0,0 +1,87 @@
+package com.huimv.admin.service.impl;
+
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.huimv.admin.common.utils.DataUill;
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.common.utils.ResultCode;
+import com.huimv.admin.entity.ProtEnvData;
+import com.huimv.admin.mapper.ProtEnvDataMapper;
+import com.huimv.admin.service.IProtEnvDataService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.lang.time.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 生产管理环境监测 服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+@Service
+public class ProtEnvDataServiceImpl extends ServiceImpl<ProtEnvDataMapper, ProtEnvData> implements IProtEnvDataService {
+
+    @Autowired
+    private ProtEnvDataMapper envDataMapper;
+
+    @Override
+    public Result listData(Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        String unitId = paramsMap.get("unitId");
+        String startDate = paramsMap.get("startDate");
+        String endDate = paramsMap.get("endDate");
+        QueryWrapper<ProtEnvData> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).eq("unit_id", unitId).between(StringUtils.isNotBlank(startDate), "create_time", startDate, endDate);
+        return new Result(ResultCode.SUCCESS,envDataMapper.selectList(queryWrapper));
+    }
+
+    @Override
+    public Result listHistory(Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        String unitId = paramsMap.get("unitId");
+        String timeType = paramsMap.get("timeType");
+
+        if ("".equals(timeType) || null == timeType) {
+            timeType = "1";
+        }
+        QueryWrapper<ProtEnvData> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).eq("unit_id", unitId);
+        //今日
+        List<ProtEnvData> protEnvData = null;
+        if ("1".equals(timeType)) {
+            Date timesmorning = DataUill.getTimesmorning();
+            queryWrapper.ge("create_time", timesmorning);
+            protEnvData = envDataMapper.listDataDay(queryWrapper);
+        }
+        //本周
+        else if ("2".equals(timeType)) {
+            DateTime dateTime = DateUtil.beginOfWeek(new Date());
+            queryWrapper.ge("create_time", dateTime);
+            protEnvData = envDataMapper.listData(queryWrapper);
+        }
+        //本月
+        else if ("3".equals(timeType)) {
+            Date monthmorning = DataUill.getTimesMonthmorning();
+            queryWrapper.ge("create_time", monthmorning);
+            protEnvData=envDataMapper.listData(queryWrapper);
+        }
+        //自定义
+        else if ("4".equals(timeType)) {
+            String startDate = paramsMap.get("startDate");
+            String endDate = paramsMap.get("endDate");
+            queryWrapper.between("create_time", startDate,endDate);
+            protEnvData=envDataMapper.listData(queryWrapper);
+        }
+        return new Result(ResultCode.SUCCESS, protEnvData);
+    }
+}

+ 44 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/service/impl/ProtEnvDeviceServiceImpl.java

@@ -0,0 +1,44 @@
+package com.huimv.admin.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.common.utils.ResultCode;
+import com.huimv.admin.entity.ProtEnvDevice;
+import com.huimv.admin.mapper.ProtEnvDeviceMapper;
+import com.huimv.admin.service.IProtEnvDeviceService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 生产管理舍内设备 服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-14
+ */
+@Service
+public class ProtEnvDeviceServiceImpl extends ServiceImpl<ProtEnvDeviceMapper, ProtEnvDevice> implements IProtEnvDeviceService {
+
+    @Autowired
+    private ProtEnvDeviceMapper deviceMapper;
+
+    @Override
+    public Result listDevice(Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        String pageNum = paramsMap.get("pageNum");
+        String pageSize = paramsMap.get("pageSize");
+        if ("".equals(pageNum) || null == pageNum) {
+            pageNum = "1";
+            pageSize = "20";
+        }
+        Page<ProtEnvDevice> page = new Page(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
+        QueryWrapper<ProtEnvDevice> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId);
+        return new Result(ResultCode.SUCCESS, deviceMapper.selectPage(page, queryWrapper));
+    }
+}

+ 20 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/service/impl/ProtInvestmentServiceImpl.java

@@ -0,0 +1,20 @@
+package com.huimv.admin.service.impl;
+
+import com.huimv.admin.entity.ProtInvestment;
+import com.huimv.admin.mapper.ProtInvestmentMapper;
+import com.huimv.admin.service.IProtInvestmentService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 生产管理投入品管理 服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+@Service
+public class ProtInvestmentServiceImpl extends ServiceImpl<ProtInvestmentMapper, ProtInvestment> implements IProtInvestmentService {
+
+}

+ 20 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/service/impl/ProtProductionServiceImpl.java

@@ -0,0 +1,20 @@
+package com.huimv.admin.service.impl;
+
+import com.huimv.admin.entity.ProtProduction;
+import com.huimv.admin.mapper.ProtProductionMapper;
+import com.huimv.admin.service.IProtProductionService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 生产管理产量管理 服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+@Service
+public class ProtProductionServiceImpl extends ServiceImpl<ProtProductionMapper, ProtProduction> implements IProtProductionService {
+
+}

+ 20 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/service/impl/ProtSheepInfoServiceImpl.java

@@ -0,0 +1,20 @@
+package com.huimv.admin.service.impl;
+
+import com.huimv.admin.entity.ProtSheepInfo;
+import com.huimv.admin.mapper.ProtSheepInfoMapper;
+import com.huimv.admin.service.IProtSheepInfoService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 单个羊只信息 服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-14
+ */
+@Service
+public class ProtSheepInfoServiceImpl extends ServiceImpl<ProtSheepInfoMapper, ProtSheepInfo> implements IProtSheepInfoService {
+
+}

+ 47 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/service/impl/ProtTransferServiceImpl.java

@@ -0,0 +1,47 @@
+package com.huimv.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.admin.common.utils.Result;
+import com.huimv.admin.common.utils.ResultCode;
+import com.huimv.admin.entity.ProtBatch;
+import com.huimv.admin.entity.ProtTransfer;
+import com.huimv.admin.mapper.ProtTransferMapper;
+import com.huimv.admin.service.IProtTransferService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 生产管理挑拨转舍 服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+@Service
+public class ProtTransferServiceImpl extends ServiceImpl<ProtTransferMapper, ProtTransfer> implements IProtTransferService {
+
+    @Autowired
+    private ProtTransferMapper transferMapper;
+
+    @Override
+    public Result listPage(Map<String, String> paramsMap) {
+        String pageNum = paramsMap.get("pageNum");
+        String pageSize = paramsMap.get("pageSize");
+        String batchNum = paramsMap.get("batchNum");
+        String farmId = paramsMap.get("farmId");
+        if ("".equals(pageNum) || null == pageNum) {
+            pageNum = "1";
+            pageSize = "20";
+        }
+        Page<ProtTransfer> page = new Page(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
+        QueryWrapper<ProtTransfer> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).like(StringUtils.isNotBlank(batchNum), "batch_num", batchNum);
+        return new Result(ResultCode.SUCCESS, transferMapper.selectPage(page, queryWrapper));
+    }
+}

+ 46 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/service/impl/ProtVaccinationServiceImpl.java

@@ -0,0 +1,46 @@
+package com.huimv.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.admin.common.utils.Result;
+import com.huimv.admin.common.utils.ResultCode;
+import com.huimv.admin.entity.ProtVaccination;
+import com.huimv.admin.mapper.ProtVaccinationMapper;
+import com.huimv.admin.service.IProtVaccinationService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 生产管理检疫 服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-13
+ */
+@Service
+public class ProtVaccinationServiceImpl extends ServiceImpl<ProtVaccinationMapper, ProtVaccination> implements IProtVaccinationService {
+
+    @Autowired
+    private ProtVaccinationMapper vaccinationMapper;
+
+    @Override
+    public Result listPage(Map<String, String> paramsMap) {
+        String pageNum = paramsMap.get("pageNum");
+        String pageSize = paramsMap.get("pageSize");
+        String farmId = paramsMap.get("farmId");
+        String batchNum = paramsMap.get("batchNum");
+        if ("".equals(pageNum) || null == pageNum) {
+            pageNum = "1";
+            pageSize = "20";
+        }
+        Page<ProtVaccination> page = new Page(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
+        QueryWrapper<ProtVaccination> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).like(StringUtils.isNotBlank(batchNum), "batch_num", batchNum);
+        return new Result(ResultCode.SUCCESS, vaccinationMapper.selectPage(page, queryWrapper));
+    }
+}

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

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

+ 30 - 0
huimv-huyang-admin/src/main/resources/mapper/ProtEnvDataMapper.xml

@@ -0,0 +1,30 @@
+<?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.admin.mapper.ProtEnvDataMapper">
+
+    <select id="listData" resultType="com.huimv.admin.entity.ProtEnvData">
+        select Convert((IFNUll(avg(hum),'0')),DECIMAL(10,2)) 'hum',
+        Convert((IFNUll(avg(temp),'0')),DECIMAL(10,2)) 'temp',
+        Convert((IFNUll(avg(nh3n),'0')),DECIMAL(10,2)) 'nh3n',
+        Convert((IFNUll(avg(h2s),'0')),DECIMAL(10,2)) 'h2s',
+        Convert((IFNUll(avg(lighting),'0')),DECIMAL(10,2)) 'lighting',
+        create_time 'createTime',unit_id 'unitId',unit_name 'unitName',farm_id 'farmId'
+        from prot_env_data
+        ${ew.customSqlSegment}
+        GROUP BY DATE_FORMAT(create_time,'%Y-%m-%d')
+        ORDER BY create_time ASC
+    </select>
+
+    <select id="listDataDay" resultType="com.huimv.admin.entity.ProtEnvData">
+        select Convert((IFNUll(avg(hum),'0')),DECIMAL(10,2)) 'hum',
+        Convert((IFNUll(avg(temp),'0')),DECIMAL(10,2)) 'temp',
+        Convert((IFNUll(avg(nh3n),'0')),DECIMAL(10,2)) 'nh3n',
+        Convert((IFNUll(avg(h2s),'0')),DECIMAL(10,2)) 'h2s',
+        Convert((IFNUll(avg(lighting),'0')),DECIMAL(10,2)) 'lighting',
+        create_time 'createTime',unit_id 'unitId',unit_name 'unitName',farm_id 'farmId'
+        from prot_env_data
+        ${ew.customSqlSegment}
+        GROUP BY DATE_FORMAT(create_time,'%Y-%m-%d %H')
+        ORDER BY create_time ASC
+    </select>
+</mapper>

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

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

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

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

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

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