瀏覽代碼

添加设备修改

wwh 1 年之前
父節點
當前提交
f4d964ec12
共有 57 個文件被更改,包括 1486 次插入142 次删除
  1. 6 6
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigBreed/param/PigBreedEditParam.java
  2. 6 6
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigbackfat/param/PigBackfatEditParam.java
  3. 6 6
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigbatch/param/PigBatchEditParam.java
  4. 3 3
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigchildbirth/param/PigChildbirthEditParam.java
  5. 3 3
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigcure/param/PigCureAddParam.java
  6. 6 6
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigcure/param/PigCureEditParam.java
  7. 2 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigcure/service/impl/PigCureServiceImpl.java
  8. 37 8
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigdeath/controller/PigDeathController.java
  9. 3 3
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigdeath/param/PigDeathAddParam.java
  10. 9 9
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigdeath/param/PigDeathEditParam.java
  11. 2 1
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigdeath/param/PigDeathIdParam.java
  12. 3 2
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigdeath/service/PigDeathService.java
  13. 38 6
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigdeath/service/impl/PigDeathServiceImpl.java
  14. 3 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigdeliver/entity/PigDeliver.java
  15. 7 3
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigdeliver/param/PigDeliverAddParam.java
  16. 3 3
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigdeliver/param/PigDeliverEditParam.java
  17. 2 1
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigdeliver/service/impl/PigDeliverServiceImpl.java
  18. 2 4
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigeliminate/controller/PigEliminateController.java
  19. 1 1
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigeliminate/entity/PigEliminate.java
  20. 6 6
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigeliminate/param/PigEliminateAddParam.java
  21. 9 9
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigeliminate/param/PigEliminateEditParam.java
  22. 2 1
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigeliminate/param/PigEliminateIdParam.java
  23. 3 2
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigeliminate/service/PigEliminateService.java
  24. 37 6
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigeliminate/service/impl/PigEliminateServiceImpl.java
  25. 131 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigfat/controller/PigFatController.java
  26. 116 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigfat/entity/PigFat.java
  27. 34 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigfat/enums/PigFatEnum.java
  28. 25 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigfat/mapper/PigFatMapper.java
  29. 2 2
      snowy-web-app/src/main/resources/mapper/EnergyElectricityMapper.xml
  30. 102 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigfat/param/PigFatAddParam.java
  31. 107 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigfat/param/PigFatEditParam.java
  32. 35 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigfat/param/PigFatIdParam.java
  33. 55 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigfat/param/PigFatPageParam.java
  34. 83 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigfat/service/PigFatService.java
  35. 128 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigfat/service/impl/PigFatServiceImpl.java
  36. 4 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigfiles/entity/PigFiles.java
  37. 4 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigfiles/param/PigFilesAddParam.java
  38. 6 6
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigimmunity/param/PigImmunityAddParam.java
  39. 12 12
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigimmunity/param/PigImmunityEditParam.java
  40. 2 1
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigimmunity/param/PigImmunityIdParam.java
  41. 3 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigimmunity/service/impl/PigImmunityServiceImpl.java
  42. 4 4
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigsemen/param/PigSemenAddParam.java
  43. 7 7
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigsemen/param/PigSemenEditParam.java
  44. 2 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigsemen/service/impl/PigSemenServiceImpl.java
  45. 3 3
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigtransfer/param/PigTransferAddParam.java
  46. 7 7
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigtransfer/param/PigTransferEditParam.java
  47. 2 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigtransfer/service/impl/PigTransferServiceImpl.java
  48. 20 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/env/controller/EnvDeviceEquipmentController.java
  49. 77 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/env/entity/EnvDeviceEquipment.java
  50. 7 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/env/envdevice/param/EnvDeviceAddParam.java
  51. 2 1
      snowy-web-app/src/main/java/vip/xiaonuo/modular/env/envdevice/service/EnvDeviceService.java
  52. 39 3
      snowy-web-app/src/main/java/vip/xiaonuo/modular/env/envdevice/service/impl/EnvDeviceServiceImpl.java
  53. 16 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/env/mapper/EnvDeviceEquipmentMapper.java
  54. 16 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/env/service/IEnvDeviceEquipmentService.java
  55. 20 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/env/service/impl/EnvDeviceEquipmentServiceImpl.java
  56. 215 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/people/utils/DataUill.java
  57. 1 1
      snowy-web-app/src/main/resources/mapper/EnergyWaterMapper.xml

+ 6 - 6
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigBreed/param/PigBreedEditParam.java

@@ -82,16 +82,16 @@ public class PigBreedEditParam {
     @ApiModelProperty(value = "备注", position = 13)
     @ApiModelProperty(value = "备注", position = 13)
     private String remark;
     private String remark;
 
 
-    /** 创建时间 */
-    @ApiModelProperty(value = "创建时间", position = 14)
-    private Date createDate;
+//    /** 创建时间 */
+//    @ApiModelProperty(value = "创建时间", position = 14)
+//    private Date createDate;
 
 
     /** 修改时间 */
     /** 修改时间 */
     @ApiModelProperty(value = "修改时间", position = 16)
     @ApiModelProperty(value = "修改时间", position = 16)
     private Date updateDate;
     private Date updateDate;
 
 
-    /** 组织id */
-    @ApiModelProperty(value = "组织id", position = 18)
-    private String orgId;
+//    /** 组织id */
+//    @ApiModelProperty(value = "组织id", position = 18)
+//    private String orgId;
 
 
 }
 }

+ 6 - 6
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigbackfat/param/PigBackfatEditParam.java

@@ -66,16 +66,16 @@ public class PigBackfatEditParam {
     @ApiModelProperty(value = "备注", position = 9)
     @ApiModelProperty(value = "备注", position = 9)
     private String remark;
     private String remark;
 
 
-    /** 创建时间 */
-    @ApiModelProperty(value = "创建时间", position = 10)
-    private Date createDate;
+//    /** 创建时间 */
+//    @ApiModelProperty(value = "创建时间", position = 10)
+//    private Date createDate;
 
 
     /** 修改时间 */
     /** 修改时间 */
     @ApiModelProperty(value = "修改时间", position = 13)
     @ApiModelProperty(value = "修改时间", position = 13)
     private Date updateDate;
     private Date updateDate;
 
 
-    /** 组织id */
-    @ApiModelProperty(value = "组织id", position = 14)
-    private String orgId;
+//    /** 组织id */
+//    @ApiModelProperty(value = "组织id", position = 14)
+//    private String orgId;
 
 
 }
 }

+ 6 - 6
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigbatch/param/PigBatchEditParam.java

@@ -38,9 +38,9 @@ public class PigBatchEditParam {
     @ApiModelProperty(value = "批次号", position = 2)
     @ApiModelProperty(value = "批次号", position = 2)
     private String batchCode;
     private String batchCode;
 
 
-    /** 创建时间 */
-    @ApiModelProperty(value = "创建时间", position = 3)
-    private Date createDate;
+//    /** 创建时间 */
+//    @ApiModelProperty(value = "创建时间", position = 3)
+//    private Date createDate;
 
 
     /** 批次中母猪数量 */
     /** 批次中母猪数量 */
     @ApiModelProperty(value = "批次中母猪数量", position = 4)
     @ApiModelProperty(value = "批次中母猪数量", position = 4)
@@ -50,8 +50,8 @@ public class PigBatchEditParam {
     @ApiModelProperty(value = "修改时间", position = 6)
     @ApiModelProperty(value = "修改时间", position = 6)
     private Date updateDate;
     private Date updateDate;
 
 
-    /** 组织id */
-    @ApiModelProperty(value = "组织id", position = 9)
-    private String orgId;
+//    /** 组织id */
+//    @ApiModelProperty(value = "组织id", position = 9)
+//    private String orgId;
 
 
 }
 }

+ 3 - 3
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigchildbirth/param/PigChildbirthEditParam.java

@@ -66,9 +66,9 @@ public class PigChildbirthEditParam {
     @ApiModelProperty(value = "妊娠异常说明", position = 10)
     @ApiModelProperty(value = "妊娠异常说明", position = 10)
     private String birthError;
     private String birthError;
 
 
-    /** 组织id */
-    @ApiModelProperty(value = "组织id", position = 12)
-    private String orgId;
+//    /** 组织id */
+//    @ApiModelProperty(value = "组织id", position = 12)
+//    private String orgId;
 
 
     /** 位置id */
     /** 位置id */
     @ApiModelProperty(value = "位置id", position = 13)
     @ApiModelProperty(value = "位置id", position = 13)

+ 3 - 3
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigcure/param/PigCureAddParam.java

@@ -60,9 +60,9 @@ public class PigCureAddParam {
     @ApiModelProperty(value = "备注", position = 9)
     @ApiModelProperty(value = "备注", position = 9)
     private String remark;
     private String remark;
 
 
-    /** 创建时间 */
-    @ApiModelProperty(value = "创建时间", position = 10)
-    private Date createDate;
+//    /** 创建时间 */
+//    @ApiModelProperty(value = "创建时间", position = 10)
+//    private Date createDate;
 
 
     /** 组织id */
     /** 组织id */
     @ApiModelProperty(value = "组织id", position = 14)
     @ApiModelProperty(value = "组织id", position = 14)

+ 6 - 6
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigcure/param/PigCureEditParam.java

@@ -66,12 +66,12 @@ public class PigCureEditParam {
     @ApiModelProperty(value = "备注", position = 9)
     @ApiModelProperty(value = "备注", position = 9)
     private String remark;
     private String remark;
 
 
-    /** 创建时间 */
-    @ApiModelProperty(value = "创建时间", position = 10)
-    private Date createDate;
+//    /** 创建时间 */
+//    @ApiModelProperty(value = "创建时间", position = 10)
+//    private Date createDate;
 
 
-    /** 组织id */
-    @ApiModelProperty(value = "组织id", position = 14)
-    private String orgId;
+//    /** 组织id */
+//    @ApiModelProperty(value = "组织id", position = 14)
+//    private String orgId;
 
 
 }
 }

+ 2 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigcure/service/impl/PigCureServiceImpl.java

@@ -32,6 +32,7 @@ import vip.xiaonuo.modular.bi.pigcure.param.PigCureIdParam;
 import vip.xiaonuo.modular.bi.pigcure.param.PigCurePageParam;
 import vip.xiaonuo.modular.bi.pigcure.param.PigCurePageParam;
 import vip.xiaonuo.modular.bi.pigcure.service.PigCureService;
 import vip.xiaonuo.modular.bi.pigcure.service.PigCureService;
 
 
+import java.util.Date;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
@@ -66,6 +67,7 @@ public class PigCureServiceImpl extends ServiceImpl<PigCureMapper, PigCure> impl
     @Override
     @Override
     public void add(PigCureAddParam pigCureAddParam) {
     public void add(PigCureAddParam pigCureAddParam) {
         PigCure pigCure = BeanUtil.toBean(pigCureAddParam, PigCure.class);
         PigCure pigCure = BeanUtil.toBean(pigCureAddParam, PigCure.class);
+        pigCure.setCreateDate(new Date());
         this.save(pigCure);
         this.save(pigCure);
     }
     }
 
 

+ 37 - 8
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigdeath/controller/PigDeathController.java

@@ -13,16 +13,16 @@
 package vip.xiaonuo.modular.bi.pigdeath.controller;
 package vip.xiaonuo.modular.bi.pigdeath.controller;
 
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.github.xiaoymin.knife4j.annotations.ApiSupport;
 import com.github.xiaoymin.knife4j.annotations.ApiSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 import vip.xiaonuo.common.annotation.CommonLog;
 import vip.xiaonuo.common.annotation.CommonLog;
 import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.common.pojo.CommonValidList;
 import vip.xiaonuo.common.pojo.CommonValidList;
@@ -32,10 +32,13 @@ import vip.xiaonuo.modular.bi.pigdeath.param.PigDeathEditParam;
 import vip.xiaonuo.modular.bi.pigdeath.param.PigDeathIdParam;
 import vip.xiaonuo.modular.bi.pigdeath.param.PigDeathIdParam;
 import vip.xiaonuo.modular.bi.pigdeath.param.PigDeathPageParam;
 import vip.xiaonuo.modular.bi.pigdeath.param.PigDeathPageParam;
 import vip.xiaonuo.modular.bi.pigdeath.service.PigDeathService;
 import vip.xiaonuo.modular.bi.pigdeath.service.PigDeathService;
+import vip.xiaonuo.modular.people.utils.UploadImage;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import javax.validation.Valid;
 import javax.validation.Valid;
 import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotEmpty;
+import java.io.IOException;
+import java.util.Date;
 
 
 /**
 /**
  * 死亡信息控制器
  * 死亡信息控制器
@@ -51,6 +54,8 @@ public class PigDeathController {
 
 
     @Resource
     @Resource
     private PigDeathService pigDeathService;
     private PigDeathService pigDeathService;
+    @Resource
+    private UploadImage uploadImage;
 
 
     /**
     /**
      * 获取死亡信息分页
      * 获取死亡信息分页
@@ -69,15 +74,39 @@ public class PigDeathController {
      * 添加死亡信息
      * 添加死亡信息
      *
      *
      * @author wang
      * @author wang
-     * @date  2023/12/07 17:36
+     * @date 2023/12/07 17:36
      */
      */
     @ApiOperationSupport(order = 2)
     @ApiOperationSupport(order = 2)
     @ApiOperation("添加死亡信息")
     @ApiOperation("添加死亡信息")
     @CommonLog("添加死亡信息")
     @CommonLog("添加死亡信息")
     @PostMapping("/bi/pigdeath/add")
     @PostMapping("/bi/pigdeath/add")
-    public CommonResult<String> add(@RequestBody @Valid PigDeathAddParam pigDeathAddParam) {
-        pigDeathService.add(pigDeathAddParam);
-        return CommonResult.ok();
+    public CommonResult<String> add(@RequestParam(name = "eartag") String eartag,
+                                    @RequestParam(name = "unitId") String unitId,
+                                    @RequestParam(name = "deathDate") Date deathDate,
+                                    @RequestParam(name = "deathReason") String deathReason,
+                                    @RequestParam(name = "weight") Double weight,
+                                    @RequestParam(name = "deathImg") MultipartFile deathImg,
+                                    @RequestParam(name = "remark") String remark,
+                                    @RequestParam(name = "orgId") String orgId) throws IOException {
+        PigDeathAddParam pigDeathAddParam = new PigDeathAddParam();
+        String imageCom = "";
+        if (ObjectUtil.isNotEmpty(deathImg)) {
+            if (uploadImage.getImageCom(deathImg).equals("上传失败")) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return new CommonResult(500, "图片上传失败", false);
+            }
+            imageCom = uploadImage.getImageCom(deathImg);
+            pigDeathAddParam.setDeathImg(imageCom);
+        }
+        pigDeathAddParam.setEartag(eartag);
+        pigDeathAddParam.setDeathDate(deathDate);
+        pigDeathAddParam.setCreateDate(new Date());
+        pigDeathAddParam.setUnitId(unitId);
+        pigDeathAddParam.setDeathReason(remark);
+        pigDeathAddParam.setOrgId(orgId);
+        pigDeathAddParam.setWeight(weight);
+        pigDeathAddParam.setDeathReason(deathReason);
+        return pigDeathService.add(pigDeathAddParam);
     }
     }
 
 
     /**
     /**

+ 3 - 3
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigdeath/param/PigDeathAddParam.java

@@ -60,9 +60,9 @@ public class PigDeathAddParam {
     @ApiModelProperty(value = "创建时间", position = 9)
     @ApiModelProperty(value = "创建时间", position = 9)
     private Date createDate;
     private Date createDate;
 
 
-    /** 修改时间 */
-    @ApiModelProperty(value = "修改时间", position = 12)
-    private Date updateDate;
+//    /** 修改时间 */
+//    @ApiModelProperty(value = "修改时间", position = 12)
+//    private Date updateDate;
 
 
     /** 组织id */
     /** 组织id */
     @ApiModelProperty(value = "组织id", position = 13)
     @ApiModelProperty(value = "组织id", position = 13)

+ 9 - 9
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigdeath/param/PigDeathEditParam.java

@@ -54,24 +54,24 @@ public class PigDeathEditParam {
     @ApiModelProperty(value = "体重", position = 6)
     @ApiModelProperty(value = "体重", position = 6)
     private Double weight;
     private Double weight;
 
 
-    /** 死亡图片 */
-    @ApiModelProperty(value = "死亡图片", position = 7)
-    private String deathImg;
+//    /** 死亡图片 */
+//    @ApiModelProperty(value = "死亡图片", position = 7)
+//    private String deathImg;
 
 
     /** 备注 */
     /** 备注 */
     @ApiModelProperty(value = "备注", position = 8)
     @ApiModelProperty(value = "备注", position = 8)
     private String remark;
     private String remark;
 
 
-    /** 创建时间 */
-    @ApiModelProperty(value = "创建时间", position = 9)
-    private Date createDate;
+//    /** 创建时间 */
+//    @ApiModelProperty(value = "创建时间", position = 9)
+//    private Date createDate;
 
 
     /** 修改时间 */
     /** 修改时间 */
     @ApiModelProperty(value = "修改时间", position = 12)
     @ApiModelProperty(value = "修改时间", position = 12)
     private Date updateDate;
     private Date updateDate;
 
 
-    /** 组织id */
-    @ApiModelProperty(value = "组织id", position = 13)
-    private String orgId;
+//    /** 组织id */
+//    @ApiModelProperty(value = "组织id", position = 13)
+//    private String orgId;
 
 
 }
 }

+ 2 - 1
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigdeath/param/PigDeathIdParam.java

@@ -17,6 +17,7 @@ import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 
 
 /**
 /**
  * 死亡信息Id参数
  * 死亡信息Id参数
@@ -30,6 +31,6 @@ public class PigDeathIdParam {
 
 
     /** ID */
     /** ID */
     @ApiModelProperty(value = "ID", required = true)
     @ApiModelProperty(value = "ID", required = true)
-    @NotBlank(message = "id不能为空")
+    @NotNull(message = "id不能为空")
     private Integer id;
     private Integer id;
 }
 }

+ 3 - 2
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigdeath/service/PigDeathService.java

@@ -14,6 +14,7 @@ package vip.xiaonuo.modular.bi.pigdeath.service;
 
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
+import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.modular.bi.pigdeath.entity.PigDeath;
 import vip.xiaonuo.modular.bi.pigdeath.entity.PigDeath;
 import vip.xiaonuo.modular.bi.pigdeath.param.PigDeathAddParam;
 import vip.xiaonuo.modular.bi.pigdeath.param.PigDeathAddParam;
 import vip.xiaonuo.modular.bi.pigdeath.param.PigDeathEditParam;
 import vip.xiaonuo.modular.bi.pigdeath.param.PigDeathEditParam;
@@ -44,7 +45,7 @@ public interface PigDeathService extends IService<PigDeath> {
      * @author wang
      * @author wang
      * @date  2023/12/07 17:36
      * @date  2023/12/07 17:36
      */
      */
-    void add(PigDeathAddParam pigDeathAddParam);
+    CommonResult add(PigDeathAddParam pigDeathAddParam);
 
 
     /**
     /**
      * 编辑死亡信息
      * 编辑死亡信息
@@ -52,7 +53,7 @@ public interface PigDeathService extends IService<PigDeath> {
      * @author wang
      * @author wang
      * @date  2023/12/07 17:36
      * @date  2023/12/07 17:36
      */
      */
-    void edit(PigDeathEditParam pigDeathEditParam);
+    CommonResult edit(PigDeathEditParam pigDeathEditParam);
 
 
     /**
     /**
      * 删除死亡信息
      * 删除死亡信息

+ 38 - 6
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigdeath/service/impl/PigDeathServiceImpl.java

@@ -17,13 +17,17 @@ import cn.hutool.core.collection.CollStreamUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 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.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 import vip.xiaonuo.common.enums.CommonSortOrderEnum;
 import vip.xiaonuo.common.enums.CommonSortOrderEnum;
 import vip.xiaonuo.common.exception.CommonException;
 import vip.xiaonuo.common.exception.CommonException;
 import vip.xiaonuo.common.page.CommonPageRequest;
 import vip.xiaonuo.common.page.CommonPageRequest;
+import vip.xiaonuo.common.pojo.CommonResult;
+import vip.xiaonuo.modular.bi.pigbatch.entity.PigBatch;
 import vip.xiaonuo.modular.bi.pigdeath.entity.PigDeath;
 import vip.xiaonuo.modular.bi.pigdeath.entity.PigDeath;
 import vip.xiaonuo.modular.bi.pigdeath.mapper.PigDeathMapper;
 import vip.xiaonuo.modular.bi.pigdeath.mapper.PigDeathMapper;
 import vip.xiaonuo.modular.bi.pigdeath.param.PigDeathAddParam;
 import vip.xiaonuo.modular.bi.pigdeath.param.PigDeathAddParam;
@@ -31,7 +35,9 @@ import vip.xiaonuo.modular.bi.pigdeath.param.PigDeathEditParam;
 import vip.xiaonuo.modular.bi.pigdeath.param.PigDeathIdParam;
 import vip.xiaonuo.modular.bi.pigdeath.param.PigDeathIdParam;
 import vip.xiaonuo.modular.bi.pigdeath.param.PigDeathPageParam;
 import vip.xiaonuo.modular.bi.pigdeath.param.PigDeathPageParam;
 import vip.xiaonuo.modular.bi.pigdeath.service.PigDeathService;
 import vip.xiaonuo.modular.bi.pigdeath.service.PigDeathService;
+import vip.xiaonuo.modular.people.entity.PeopleList;
 
 
+import java.util.Date;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
@@ -42,6 +48,8 @@ import java.util.List;
  **/
  **/
 @Service
 @Service
 public class PigDeathServiceImpl extends ServiceImpl<PigDeathMapper, PigDeath> implements PigDeathService {
 public class PigDeathServiceImpl extends ServiceImpl<PigDeathMapper, PigDeath> implements PigDeathService {
+    @Autowired
+    private PigDeathMapper deathMapper;
 
 
     @Override
     @Override
     public Page<PigDeath> page(PigDeathPageParam pigDeathPageParam) {
     public Page<PigDeath> page(PigDeathPageParam pigDeathPageParam) {
@@ -64,17 +72,41 @@ public class PigDeathServiceImpl extends ServiceImpl<PigDeathMapper, PigDeath> i
 
 
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     @Override
     @Override
-    public void add(PigDeathAddParam pigDeathAddParam) {
-        PigDeath pigDeath = BeanUtil.toBean(pigDeathAddParam, PigDeath.class);
-        this.save(pigDeath);
+    public CommonResult add(PigDeathAddParam pigDeathAddParam) {
+        QueryWrapper<PigDeath> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("org_id", pigDeathAddParam.getOrgId()).eq("eartag", pigDeathAddParam.getEartag());
+        if (ObjectUtil.isEmpty(deathMapper.selectOne(queryWrapper))) {
+            PigDeath pigDeath = BeanUtil.toBean(pigDeathAddParam, PigDeath.class);
+            pigDeath.setCreateDate(new Date());
+            this.save(pigDeath);
+            return CommonResult.ok();
+        } else {
+            return new CommonResult(500, "耳标号已存在,请重新添加!", false);
+        }
     }
     }
 
 
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     @Override
     @Override
-    public void edit(PigDeathEditParam pigDeathEditParam) {
+    public CommonResult edit(PigDeathEditParam pigDeathEditParam) {
         PigDeath pigDeath = this.queryEntity(pigDeathEditParam.getId());
         PigDeath pigDeath = this.queryEntity(pigDeathEditParam.getId());
-        BeanUtil.copyProperties(pigDeathEditParam, pigDeath);
-        this.updateById(pigDeath);
+        if (ObjectUtil.isNotEmpty(pigDeathEditParam.getEartag())) {
+            QueryWrapper<PigDeath> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("org_id", pigDeath.getOrgId())
+                    .eq(StringUtils.isNotBlank(pigDeathEditParam.getEartag()),"eartag",pigDeathEditParam.getEartag())
+                    .ne("id", pigDeathEditParam.getId());
+            if (ObjectUtil.isEmpty(deathMapper.selectOne(queryWrapper))) {
+                BeanUtil.copyProperties(pigDeathEditParam, pigDeath);
+                this.updateById(pigDeath);
+                return CommonResult.ok();
+            } else {
+                return new CommonResult(500, "耳标号已存在!", false);
+            }
+        } else {
+            BeanUtil.copyProperties(pigDeathEditParam, pigDeath);
+            this.updateById(pigDeath);
+            return CommonResult.ok();
+        }
+
     }
     }
 
 
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)

+ 3 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigdeliver/entity/PigDeliver.java

@@ -125,4 +125,7 @@ public class PigDeliver {
     /** 修改日期 */
     /** 修改日期 */
     @ApiModelProperty(value = "修改日期", position = 23)
     @ApiModelProperty(value = "修改日期", position = 23)
     private Date updateDate;
     private Date updateDate;
+    /** 组织ID */
+    @ApiModelProperty(value = "组织id", position = 24)
+    private String orgId;
 }
 }

+ 7 - 3
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigdeliver/param/PigDeliverAddParam.java

@@ -100,12 +100,16 @@ public class PigDeliverAddParam {
     @ApiModelProperty(value = "备注", position = 19)
     @ApiModelProperty(value = "备注", position = 19)
     private String remark;
     private String remark;
 
 
-    /** 创建时间 */
-    @ApiModelProperty(value = "创建时间", position = 20)
-    private Date createDate;
+//    /** 创建时间 */
+//    @ApiModelProperty(value = "创建时间", position = 20)
+//    private Date createDate;
 
 
     /** 修改日期 */
     /** 修改日期 */
     @ApiModelProperty(value = "修改日期", position = 23)
     @ApiModelProperty(value = "修改日期", position = 23)
     private Date updateDate;
     private Date updateDate;
 
 
+    /** 组织ID */
+    @ApiModelProperty(value = "组织id", position = 24)
+    private String orgId;
+
 }
 }

+ 3 - 3
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigdeliver/param/PigDeliverEditParam.java

@@ -106,9 +106,9 @@ public class PigDeliverEditParam {
     @ApiModelProperty(value = "备注", position = 19)
     @ApiModelProperty(value = "备注", position = 19)
     private String remark;
     private String remark;
 
 
-    /** 创建时间 */
-    @ApiModelProperty(value = "创建时间", position = 20)
-    private Date createDate;
+//    /** 创建时间 */
+//    @ApiModelProperty(value = "创建时间", position = 20)
+//    private Date createDate;
 
 
     /** 修改日期 */
     /** 修改日期 */
     @ApiModelProperty(value = "修改日期", position = 23)
     @ApiModelProperty(value = "修改日期", position = 23)

+ 2 - 1
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigdeliver/service/impl/PigDeliverServiceImpl.java

@@ -33,7 +33,7 @@ import vip.xiaonuo.modular.bi.pigdeliver.param.PigDeliverEditParam;
 import vip.xiaonuo.modular.bi.pigdeliver.param.PigDeliverIdParam;
 import vip.xiaonuo.modular.bi.pigdeliver.param.PigDeliverIdParam;
 
 
 
 
-
+import java.util.Date;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
@@ -68,6 +68,7 @@ public class PigDeliverServiceImpl extends ServiceImpl<PigDeliverMapper, PigDeli
     @Override
     @Override
     public void add(PigDeliverAddParam pigDeliverAddParam) {
     public void add(PigDeliverAddParam pigDeliverAddParam) {
         PigDeliver pigDeliver = BeanUtil.toBean(pigDeliverAddParam, PigDeliver.class);
         PigDeliver pigDeliver = BeanUtil.toBean(pigDeliverAddParam, PigDeliver.class);
+        pigDeliver.setCreateDate(new Date());
         this.save(pigDeliver);
         this.save(pigDeliver);
     }
     }
 
 

+ 2 - 4
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigeliminate/controller/PigEliminateController.java

@@ -76,8 +76,7 @@ public class PigEliminateController {
     @CommonLog("添加淘汰信息")
     @CommonLog("添加淘汰信息")
     @PostMapping("/bi/pigeliminate/add")
     @PostMapping("/bi/pigeliminate/add")
     public CommonResult<String> add(@RequestBody @Valid PigEliminateAddParam pigEliminateAddParam) {
     public CommonResult<String> add(@RequestBody @Valid PigEliminateAddParam pigEliminateAddParam) {
-        pigEliminateService.add(pigEliminateAddParam);
-        return CommonResult.ok();
+        return  pigEliminateService.add(pigEliminateAddParam);
     }
     }
 
 
     /**
     /**
@@ -91,8 +90,7 @@ public class PigEliminateController {
     @CommonLog("编辑淘汰信息")
     @CommonLog("编辑淘汰信息")
     @PostMapping("/bi/pigeliminate/edit")
     @PostMapping("/bi/pigeliminate/edit")
     public CommonResult<String> edit(@RequestBody @Valid PigEliminateEditParam pigEliminateEditParam) {
     public CommonResult<String> edit(@RequestBody @Valid PigEliminateEditParam pigEliminateEditParam) {
-        pigEliminateService.edit(pigEliminateEditParam);
-        return CommonResult.ok();
+        return pigEliminateService.edit(pigEliminateEditParam);
     }
     }
 
 
     /**
     /**

+ 1 - 1
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigeliminate/entity/PigEliminate.java

@@ -74,7 +74,7 @@ public class PigEliminate {
 
 
     /** 删除标志 */
     /** 删除标志 */
     @ApiModelProperty(value = "删除标志", position = 11)
     @ApiModelProperty(value = "删除标志", position = 11)
-    private String deletaFlag;
+    private String deleteFlag;
 
 
     /** 修改时间 */
     /** 修改时间 */
     @ApiModelProperty(value = "修改时间", position = 12)
     @ApiModelProperty(value = "修改时间", position = 12)

+ 6 - 6
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigeliminate/param/PigEliminateAddParam.java

@@ -56,13 +56,13 @@ public class PigEliminateAddParam {
     @ApiModelProperty(value = "备注", position = 8)
     @ApiModelProperty(value = "备注", position = 8)
     private String remark;
     private String remark;
 
 
-    /** 创建日期 */
-    @ApiModelProperty(value = "创建日期", position = 9)
-    private Date createDate;
+//    /** 创建日期 */
+//    @ApiModelProperty(value = "创建日期", position = 9)
+//    private Date createDate;
 
 
-    /** 删除标志 */
-    @ApiModelProperty(value = "删除标志", position = 11)
-    private String deletaFlag;
+//    /** 删除标志 */
+//    @ApiModelProperty(value = "删除标志", position = 11)
+//    private String deleteFlag;
 
 
     /** 组织id */
     /** 组织id */
     @ApiModelProperty(value = "组织id", position = 13)
     @ApiModelProperty(value = "组织id", position = 13)

+ 9 - 9
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigeliminate/param/PigEliminateEditParam.java

@@ -62,16 +62,16 @@ public class PigEliminateEditParam {
     @ApiModelProperty(value = "备注", position = 8)
     @ApiModelProperty(value = "备注", position = 8)
     private String remark;
     private String remark;
 
 
-    /** 创建日期 */
-    @ApiModelProperty(value = "创建日期", position = 9)
-    private Date createDate;
+//    /** 创建日期 */
+//    @ApiModelProperty(value = "创建日期", position = 9)
+//    private Date createDate;
 
 
-    /** 删除标志 */
-    @ApiModelProperty(value = "删除标志", position = 11)
-    private String deletaFlag;
+//    /** 删除标志 */
+//    @ApiModelProperty(value = "删除标志", position = 11)
+//    private String deleteFlag;
 
 
-    /** 组织id */
-    @ApiModelProperty(value = "组织id", position = 13)
-    private String orgId;
+//    /** 组织id */
+//    @ApiModelProperty(value = "组织id", position = 13)
+//    private String orgId;
 
 
 }
 }

+ 2 - 1
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigeliminate/param/PigEliminateIdParam.java

@@ -17,6 +17,7 @@ import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 
 
 /**
 /**
  * 淘汰信息Id参数
  * 淘汰信息Id参数
@@ -30,6 +31,6 @@ public class PigEliminateIdParam {
 
 
     /** ID */
     /** ID */
     @ApiModelProperty(value = "ID", required = true)
     @ApiModelProperty(value = "ID", required = true)
-    @NotBlank(message = "id不能为空")
+    @NotNull(message = "id不能为空")
     private Integer id;
     private Integer id;
 }
 }

+ 3 - 2
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigeliminate/service/PigEliminateService.java

@@ -14,6 +14,7 @@ package vip.xiaonuo.modular.bi.pigeliminate.service;
 
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
+import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.modular.bi.pigeliminate.entity.PigEliminate;
 import vip.xiaonuo.modular.bi.pigeliminate.entity.PigEliminate;
 import vip.xiaonuo.modular.bi.pigeliminate.param.PigEliminateAddParam;
 import vip.xiaonuo.modular.bi.pigeliminate.param.PigEliminateAddParam;
 import vip.xiaonuo.modular.bi.pigeliminate.param.PigEliminateEditParam;
 import vip.xiaonuo.modular.bi.pigeliminate.param.PigEliminateEditParam;
@@ -44,7 +45,7 @@ public interface PigEliminateService extends IService<PigEliminate> {
      * @author wang
      * @author wang
      * @date  2023/12/08 09:14
      * @date  2023/12/08 09:14
      */
      */
-    void add(PigEliminateAddParam pigEliminateAddParam);
+    CommonResult add(PigEliminateAddParam pigEliminateAddParam);
 
 
     /**
     /**
      * 编辑淘汰信息
      * 编辑淘汰信息
@@ -52,7 +53,7 @@ public interface PigEliminateService extends IService<PigEliminate> {
      * @author wang
      * @author wang
      * @date  2023/12/08 09:14
      * @date  2023/12/08 09:14
      */
      */
-    void edit(PigEliminateEditParam pigEliminateEditParam);
+    CommonResult edit(PigEliminateEditParam pigEliminateEditParam);
 
 
     /**
     /**
      * 删除淘汰信息
      * 删除淘汰信息

+ 37 - 6
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigeliminate/service/impl/PigEliminateServiceImpl.java

@@ -17,13 +17,17 @@ import cn.hutool.core.collection.CollStreamUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 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.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 import vip.xiaonuo.common.enums.CommonSortOrderEnum;
 import vip.xiaonuo.common.enums.CommonSortOrderEnum;
 import vip.xiaonuo.common.exception.CommonException;
 import vip.xiaonuo.common.exception.CommonException;
 import vip.xiaonuo.common.page.CommonPageRequest;
 import vip.xiaonuo.common.page.CommonPageRequest;
+import vip.xiaonuo.common.pojo.CommonResult;
+import vip.xiaonuo.modular.bi.pigdeath.entity.PigDeath;
 import vip.xiaonuo.modular.bi.pigeliminate.entity.PigEliminate;
 import vip.xiaonuo.modular.bi.pigeliminate.entity.PigEliminate;
 import vip.xiaonuo.modular.bi.pigeliminate.mapper.PigEliminateMapper;
 import vip.xiaonuo.modular.bi.pigeliminate.mapper.PigEliminateMapper;
 import vip.xiaonuo.modular.bi.pigeliminate.param.PigEliminateAddParam;
 import vip.xiaonuo.modular.bi.pigeliminate.param.PigEliminateAddParam;
@@ -32,6 +36,7 @@ import vip.xiaonuo.modular.bi.pigeliminate.param.PigEliminateIdParam;
 import vip.xiaonuo.modular.bi.pigeliminate.param.PigEliminatePageParam;
 import vip.xiaonuo.modular.bi.pigeliminate.param.PigEliminatePageParam;
 import vip.xiaonuo.modular.bi.pigeliminate.service.PigEliminateService;
 import vip.xiaonuo.modular.bi.pigeliminate.service.PigEliminateService;
 
 
+import java.util.Date;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
@@ -43,6 +48,8 @@ import java.util.List;
 @Service
 @Service
 public class PigEliminateServiceImpl extends ServiceImpl<PigEliminateMapper, PigEliminate> implements PigEliminateService {
 public class PigEliminateServiceImpl extends ServiceImpl<PigEliminateMapper, PigEliminate> implements PigEliminateService {
 
 
+    @Autowired
+    private PigEliminateMapper eliminateMapper;
     @Override
     @Override
     public Page<PigEliminate> page(PigEliminatePageParam pigEliminatePageParam) {
     public Page<PigEliminate> page(PigEliminatePageParam pigEliminatePageParam) {
         QueryWrapper<PigEliminate> queryWrapper = new QueryWrapper<>();
         QueryWrapper<PigEliminate> queryWrapper = new QueryWrapper<>();
@@ -64,17 +71,41 @@ public class PigEliminateServiceImpl extends ServiceImpl<PigEliminateMapper, Pig
 
 
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     @Override
     @Override
-    public void add(PigEliminateAddParam pigEliminateAddParam) {
-        PigEliminate pigEliminate = BeanUtil.toBean(pigEliminateAddParam, PigEliminate.class);
-        this.save(pigEliminate);
+    public CommonResult add(PigEliminateAddParam pigEliminateAddParam) {
+        QueryWrapper<PigEliminate> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("org_id", pigEliminateAddParam.getOrgId()).eq("eartag", pigEliminateAddParam.getEartag());
+        if (ObjectUtil.isEmpty(eliminateMapper.selectOne(queryWrapper))) {
+            PigEliminate pigEliminate = BeanUtil.toBean(pigEliminateAddParam, PigEliminate.class);
+            pigEliminate.setCreateDate(new Date());
+            this.save(pigEliminate);
+            return CommonResult.ok();
+        } else {
+            return new CommonResult(500, "添加失败!耳标号已存在!", false);
+        }
+
     }
     }
 
 
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     @Override
     @Override
-    public void edit(PigEliminateEditParam pigEliminateEditParam) {
+    public CommonResult edit(PigEliminateEditParam pigEliminateEditParam) {
         PigEliminate pigEliminate = this.queryEntity(pigEliminateEditParam.getId());
         PigEliminate pigEliminate = this.queryEntity(pigEliminateEditParam.getId());
-        BeanUtil.copyProperties(pigEliminateEditParam, pigEliminate);
-        this.updateById(pigEliminate);
+        if (ObjectUtil.isNotEmpty(pigEliminateEditParam.getEartag())) {
+            QueryWrapper<PigEliminate> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("org_id", pigEliminate.getOrgId())
+                    .eq(StringUtils.isNotBlank(pigEliminateEditParam.getEartag()),"eartag",pigEliminateEditParam.getEartag())
+                    .ne("id", pigEliminateEditParam.getId());
+            if (ObjectUtil.isEmpty(eliminateMapper.selectOne(queryWrapper))) {
+                BeanUtil.copyProperties(pigEliminateEditParam, pigEliminate);
+                this.updateById(pigEliminate);
+                return CommonResult.ok();
+            } else {
+                return new CommonResult(500, "耳标号已存在!", false);
+            }
+        } else {
+            BeanUtil.copyProperties(pigEliminateEditParam, pigEliminate);
+            this.updateById(pigEliminate);
+            return CommonResult.ok();
+        }
     }
     }
 
 
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)

+ 131 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigfat/controller/PigFatController.java

@@ -0,0 +1,131 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.modular.bi.pigfat.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.github.xiaoymin.knife4j.annotations.ApiSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+import vip.xiaonuo.common.annotation.CommonLog;
+import vip.xiaonuo.common.pojo.CommonResult;
+import vip.xiaonuo.common.pojo.CommonValidList;
+import vip.xiaonuo.modular.bi.pigfat.entity.PigFat;
+import vip.xiaonuo.modular.bi.pigfat.param.PigFatAddParam;
+import vip.xiaonuo.modular.bi.pigfat.param.PigFatEditParam;
+import vip.xiaonuo.modular.bi.pigfat.param.PigFatIdParam;
+import vip.xiaonuo.modular.bi.pigfat.param.PigFatPageParam;
+import vip.xiaonuo.modular.bi.pigfat.service.PigFatService;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
+
+/**
+ * 肥猪信息控制器
+ *
+ * @author wang
+ * @date  2023/12/18 09:20
+ */
+@Api(tags = "肥猪信息控制器")
+@ApiSupport(author = "SNOWY_TEAM", order = 1)
+@RestController
+@Validated
+public class PigFatController {
+
+    @Resource
+    private PigFatService pigFatService;
+
+    /**
+     * 获取肥猪信息分页
+     *
+     * @author wang
+     * @date  2023/12/18 09:20
+     */
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("获取肥猪信息分页")
+    @SaCheckPermission("/bi/pigfat/page")
+    @GetMapping("/bi/pigfat/page")
+    public CommonResult<Page<PigFat>> page(PigFatPageParam pigFatPageParam) {
+        return CommonResult.data(pigFatService.page(pigFatPageParam));
+    }
+
+    /**
+     * 添加肥猪信息
+     *
+     * @author wang
+     * @date  2023/12/18 09:20
+     */
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("添加肥猪信息")
+    @CommonLog("添加肥猪信息")
+    @SaCheckPermission("/bi/pigfat/add")
+    @PostMapping("/bi/pigfat/add")
+    public CommonResult<String> add(@RequestBody @Valid PigFatAddParam pigFatAddParam) {
+        pigFatService.add(pigFatAddParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 编辑肥猪信息
+     *
+     * @author wang
+     * @date  2023/12/18 09:20
+     */
+    @ApiOperationSupport(order = 3)
+    @ApiOperation("编辑肥猪信息")
+    @CommonLog("编辑肥猪信息")
+    @SaCheckPermission("/bi/pigfat/edit")
+    @PostMapping("/bi/pigfat/edit")
+    public CommonResult<String> edit(@RequestBody @Valid PigFatEditParam pigFatEditParam) {
+        pigFatService.edit(pigFatEditParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 删除肥猪信息
+     *
+     * @author wang
+     * @date  2023/12/18 09:20
+     */
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("删除肥猪信息")
+    @CommonLog("删除肥猪信息")
+    @SaCheckPermission("/bi/pigfat/delete")
+    @PostMapping("/bi/pigfat/delete")
+    public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空")
+                                               CommonValidList<PigFatIdParam> pigFatIdParamList) {
+        pigFatService.delete(pigFatIdParamList);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 获取肥猪信息详情
+     *
+     * @author wang
+     * @date  2023/12/18 09:20
+     */
+    @ApiOperationSupport(order = 5)
+    @ApiOperation("获取肥猪信息详情")
+    @SaCheckPermission("/bi/pigfat/detail")
+    @GetMapping("/bi/pigfat/detail")
+    public CommonResult<PigFat> detail(@Valid PigFatIdParam pigFatIdParam) {
+        return CommonResult.data(pigFatService.detail(pigFatIdParam));
+    }
+}

+ 116 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigfat/entity/PigFat.java

@@ -0,0 +1,116 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.modular.bi.pigfat.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 肥猪信息实体
+ *
+ * @author wang
+ * @date  2023/12/18 09:20
+ **/
+@Getter
+@Setter
+@TableName("pig_fat")
+public class PigFat {
+
+    /** ID */
+    @TableId(value = "id", type = IdType.AUTO)
+    @ApiModelProperty(value = "ID", position = 1)
+    private Integer id;
+
+    /** 耳标号 */
+    @ApiModelProperty(value = "耳标号", position = 2)
+    private String eartag;
+
+    /** 性别 */
+    @ApiModelProperty(value = "性别", position = 3)
+    private Integer sex;
+
+    /** 品种 */
+    @ApiModelProperty(value = "品种", position = 4)
+    private String breed;
+
+    /** 品系 */
+    @ApiModelProperty(value = "品系", position = 5)
+    private String strain;
+
+    /** 当前位置id */
+    @ApiModelProperty(value = "当前位置id", position = 6)
+    private String unitId;
+
+    /** 当前位置 */
+    @ApiModelProperty(value = "当前位置", position = 7)
+    private String unitName;
+
+    /** 父系耳标号 */
+    @ApiModelProperty(value = "父系耳标号", position = 8)
+    private String fatherEartag;
+
+    /** 母系耳标号 */
+    @ApiModelProperty(value = "母系耳标号", position = 9)
+    private String motherEartag;
+
+    /** 出生日期 */
+    @ApiModelProperty(value = "出生日期", position = 10)
+    private Date birthDate;
+
+    /** 入场日期 */
+    @ApiModelProperty(value = "入场日期", position = 11)
+    private Date intoDate;
+
+    /** 出生地、引种地 */
+    @ApiModelProperty(value = "出生地、引种地", position = 12)
+    private String birthAddress;
+
+    /** 出生重 */
+    @ApiModelProperty(value = "出生重", position = 13)
+    private Double birthWeight;
+
+    /** 出生胎次 */
+    @ApiModelProperty(value = "出生胎次", position = 14)
+    private String birthBatch;
+
+    /** 备注 */
+    @ApiModelProperty(value = "备注", position = 15)
+    private String remark;
+
+    /** 创建时间 */
+    @ApiModelProperty(value = "创建时间", position = 16)
+    private Date createDate;
+
+    /** 创建人 */
+    @ApiModelProperty(value = "创建人", position = 17)
+    @TableField(fill = FieldFill.INSERT)
+    private String createUser;
+
+    /** 删除标志 */
+    @ApiModelProperty(value = "删除标志", position = 18)
+    @TableLogic
+    @TableField(fill = FieldFill.INSERT)
+    private String deleteFlag;
+
+    /** 修改时间 */
+    @ApiModelProperty(value = "修改时间", position = 19)
+    private Date updateDate;
+
+    /** 组织id */
+    @ApiModelProperty(value = "组织id", position = 20)
+    private String orgId;
+}

+ 34 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigfat/enums/PigFatEnum.java

@@ -0,0 +1,34 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.modular.bi.pigfat.enums;
+
+import lombok.Getter;
+
+/**
+ * 肥猪信息枚举
+ *
+ * @author wang
+ * @date  2023/12/18 09:20
+ **/
+@Getter
+public enum PigFatEnum {
+
+    /** 测试 */
+    TEST("TEST");
+
+    private final String value;
+
+    PigFatEnum(String value) {
+        this.value = value;
+    }
+}

+ 25 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigfat/mapper/PigFatMapper.java

@@ -0,0 +1,25 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.modular.bi.pigfat.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import vip.xiaonuo.modular.bi.pigfat.entity.PigFat;
+
+/**
+ * 肥猪信息Mapper接口
+ *
+ * @author wang
+ * @date  2023/12/18 09:20
+ **/
+public interface PigFatMapper extends BaseMapper<PigFat> {
+}

+ 2 - 2
snowy-web-app/src/main/resources/mapper/EnergyElectricityMapper.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?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">
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="vip.xiaonuo.modular.energy.mapper.EnergyElectricityMapper">
+<mapper namespace="vip.xiaonuo.modular.bi.pigfat.mapper.PigFatMapper">
 
 
-</mapper>
+</mapper>

+ 102 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigfat/param/PigFatAddParam.java

@@ -0,0 +1,102 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.modular.bi.pigfat.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 肥猪信息添加参数
+ *
+ * @author wang
+ * @date  2023/12/18 09:20
+ **/
+@Getter
+@Setter
+public class PigFatAddParam {
+
+    /** 耳标号 */
+    @ApiModelProperty(value = "耳标号", position = 2)
+    private String eartag;
+
+    /** 性别 */
+    @ApiModelProperty(value = "性别", position = 3)
+    private Integer sex;
+
+    /** 品种 */
+    @ApiModelProperty(value = "品种", position = 4)
+    private String breed;
+
+    /** 品系 */
+    @ApiModelProperty(value = "品系", position = 5)
+    private String strain;
+
+    /** 当前位置id */
+    @ApiModelProperty(value = "当前位置id", position = 6)
+    private String unitId;
+
+    /** 当前位置 */
+    @ApiModelProperty(value = "当前位置", position = 7)
+    private String unitName;
+
+    /** 父系耳标号 */
+    @ApiModelProperty(value = "父系耳标号", position = 8)
+    private String fatherEartag;
+
+    /** 母系耳标号 */
+    @ApiModelProperty(value = "母系耳标号", position = 9)
+    private String motherEartag;
+
+    /** 出生日期 */
+    @ApiModelProperty(value = "出生日期", position = 10)
+    private Date birthDate;
+
+    /** 入场日期 */
+    @ApiModelProperty(value = "入场日期", position = 11)
+    private Date intoDate;
+
+    /** 出生地、引种地 */
+    @ApiModelProperty(value = "出生地、引种地", position = 12)
+    private String birthAddress;
+
+    /** 出生重 */
+    @ApiModelProperty(value = "出生重", position = 13)
+    private Double birthWeight;
+
+    /** 出生胎次 */
+    @ApiModelProperty(value = "出生胎次", position = 14)
+    private String birthBatch;
+
+    /** 备注 */
+    @ApiModelProperty(value = "备注", position = 15)
+    private String remark;
+
+    /** 创建时间 */
+    @ApiModelProperty(value = "创建时间", position = 16)
+    private Date createDate;
+
+    /** 修改时间 */
+    @ApiModelProperty(value = "修改时间", position = 19)
+    private Date updateDate;
+
+    /** 组织id */
+    @ApiModelProperty(value = "组织id", position = 20)
+    private String orgId;
+
+}

+ 107 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigfat/param/PigFatEditParam.java

@@ -0,0 +1,107 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.modular.bi.pigfat.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 肥猪信息编辑参数
+ *
+ * @author wang
+ * @date  2023/12/18 09:20
+ **/
+@Getter
+@Setter
+public class PigFatEditParam {
+
+    /** ID */
+    @ApiModelProperty(value = "ID", required = true, position = 1)
+    @NotNull(message = "id不能为空")
+    private Integer id;
+
+    /** 耳标号 */
+    @ApiModelProperty(value = "耳标号", position = 2)
+    private String eartag;
+
+    /** 性别 */
+    @ApiModelProperty(value = "性别", position = 3)
+    private Integer sex;
+
+    /** 品种 */
+    @ApiModelProperty(value = "品种", position = 4)
+    private String breed;
+
+    /** 品系 */
+    @ApiModelProperty(value = "品系", position = 5)
+    private String strain;
+
+    /** 当前位置id */
+    @ApiModelProperty(value = "当前位置id", position = 6)
+    private String unitId;
+
+    /** 当前位置 */
+    @ApiModelProperty(value = "当前位置", position = 7)
+    private String unitName;
+
+    /** 父系耳标号 */
+    @ApiModelProperty(value = "父系耳标号", position = 8)
+    private String fatherEartag;
+
+    /** 母系耳标号 */
+    @ApiModelProperty(value = "母系耳标号", position = 9)
+    private String motherEartag;
+
+    /** 出生日期 */
+    @ApiModelProperty(value = "出生日期", position = 10)
+    private Date birthDate;
+
+    /** 入场日期 */
+    @ApiModelProperty(value = "入场日期", position = 11)
+    private Date intoDate;
+
+    /** 出生地、引种地 */
+    @ApiModelProperty(value = "出生地、引种地", position = 12)
+    private String birthAddress;
+
+    /** 出生重 */
+    @ApiModelProperty(value = "出生重", position = 13)
+    private Double birthWeight;
+
+    /** 出生胎次 */
+    @ApiModelProperty(value = "出生胎次", position = 14)
+    private String birthBatch;
+
+    /** 备注 */
+    @ApiModelProperty(value = "备注", position = 15)
+    private String remark;
+
+    /** 创建时间 */
+    @ApiModelProperty(value = "创建时间", position = 16)
+    private Date createDate;
+
+    /** 修改时间 */
+    @ApiModelProperty(value = "修改时间", position = 19)
+    private Date updateDate;
+
+    /** 组织id */
+    @ApiModelProperty(value = "组织id", position = 20)
+    private String orgId;
+
+}

+ 35 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigfat/param/PigFatIdParam.java

@@ -0,0 +1,35 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.modular.bi.pigfat.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 肥猪信息Id参数
+ *
+ * @author wang
+ * @date  2023/12/18 09:20
+ **/
+@Getter
+@Setter
+public class PigFatIdParam {
+
+    /** ID */
+    @ApiModelProperty(value = "ID", required = true)
+    @NotBlank(message = "id不能为空")
+    private Integer id;
+}

+ 55 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigfat/param/PigFatPageParam.java

@@ -0,0 +1,55 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.modular.bi.pigfat.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 肥猪信息查询参数
+ *
+ * @author wang
+ * @date  2023/12/18 09:20
+ **/
+@Getter
+@Setter
+public class PigFatPageParam {
+
+    /** 当前页 */
+    @ApiModelProperty(value = "当前页码")
+    private Integer current;
+
+    /** 每页条数 */
+    @ApiModelProperty(value = "每页条数")
+    private Integer size;
+
+    /** 排序字段 */
+    @ApiModelProperty(value = "排序字段,字段驼峰名称,如:userName")
+    private String sortField;
+
+    /** 排序方式 */
+    @ApiModelProperty(value = "排序方式,升序:ASCEND;降序:DESCEND")
+    private String sortOrder;
+
+    /** 关键词 */
+    @ApiModelProperty(value = "关键词")
+    private String searchKey;
+
+    /** 耳标号 */
+    @ApiModelProperty(value = "耳标号")
+    private String eartag;
+
+}

+ 83 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigfat/service/PigFatService.java

@@ -0,0 +1,83 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.modular.bi.pigfat.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import io.swagger.models.auth.In;
+import vip.xiaonuo.common.pojo.CommonResult;
+import vip.xiaonuo.modular.bi.pigfat.entity.PigFat;
+import vip.xiaonuo.modular.bi.pigfat.param.PigFatAddParam;
+import vip.xiaonuo.modular.bi.pigfat.param.PigFatEditParam;
+import vip.xiaonuo.modular.bi.pigfat.param.PigFatIdParam;
+import vip.xiaonuo.modular.bi.pigfat.param.PigFatPageParam;
+
+
+import java.util.List;
+
+/**
+ * 肥猪信息Service接口
+ *
+ * @author wang
+ * @date  2023/12/18 09:20
+ **/
+public interface PigFatService extends IService<PigFat> {
+
+    /**
+     * 获取肥猪信息分页
+     *
+     * @author wang
+     * @date  2023/12/18 09:20
+     */
+    Page<PigFat> page(PigFatPageParam pigFatPageParam);
+
+    /**
+     * 添加肥猪信息
+     *
+     * @author wang
+     * @date  2023/12/18 09:20
+     */
+    CommonResult add(PigFatAddParam pigFatAddParam);
+
+    /**
+     * 编辑肥猪信息
+     *
+     * @author wang
+     * @date  2023/12/18 09:20
+     */
+    CommonResult edit(PigFatEditParam pigFatEditParam);
+
+    /**
+     * 删除肥猪信息
+     *
+     * @author wang
+     * @date  2023/12/18 09:20
+     */
+    void delete(List<PigFatIdParam> pigFatIdParamList);
+
+    /**
+     * 获取肥猪信息详情
+     *
+     * @author wang
+     * @date  2023/12/18 09:20
+     */
+    PigFat detail(PigFatIdParam pigFatIdParam);
+
+    /**
+     * 获取肥猪信息详情
+     *
+     * @author wang
+     * @date  2023/12/18 09:20
+     **/
+    PigFat queryEntity(Integer id);
+}

+ 128 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigfat/service/impl/PigFatServiceImpl.java

@@ -0,0 +1,128 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.modular.bi.pigfat.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollStreamUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+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.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 org.springframework.transaction.annotation.Transactional;
+import vip.xiaonuo.common.enums.CommonSortOrderEnum;
+import vip.xiaonuo.common.exception.CommonException;
+import vip.xiaonuo.common.page.CommonPageRequest;
+import vip.xiaonuo.common.pojo.CommonResult;
+import vip.xiaonuo.modular.bi.pigfat.entity.PigFat;
+import vip.xiaonuo.modular.bi.pigfat.mapper.PigFatMapper;
+import vip.xiaonuo.modular.bi.pigfat.param.PigFatAddParam;
+import vip.xiaonuo.modular.bi.pigfat.param.PigFatEditParam;
+import vip.xiaonuo.modular.bi.pigfat.param.PigFatIdParam;
+import vip.xiaonuo.modular.bi.pigfat.param.PigFatPageParam;
+import vip.xiaonuo.modular.bi.pigfat.service.PigFatService;
+import vip.xiaonuo.modular.bi.pigfiles.entity.PigFiles;
+
+import java.util.List;
+
+/**
+ * 肥猪信息Service接口实现类
+ *
+ * @author wang
+ * @date  2023/12/18 09:20
+ **/
+@Service
+public class PigFatServiceImpl extends ServiceImpl<PigFatMapper, PigFat> implements PigFatService {
+
+    @Autowired
+    private PigFatMapper fatMapper;
+    @Override
+    public Page<PigFat> page(PigFatPageParam pigFatPageParam) {
+        QueryWrapper<PigFat> queryWrapper = new QueryWrapper<>();
+        if(ObjectUtil.isNotEmpty(pigFatPageParam.getEartag())) {
+            queryWrapper.lambda().like(PigFat::getEartag, pigFatPageParam.getEartag());
+        }
+        if(ObjectUtil.isAllNotEmpty(pigFatPageParam.getSortField(), pigFatPageParam.getSortOrder())) {
+            CommonSortOrderEnum.validate(pigFatPageParam.getSortOrder());
+            queryWrapper.orderBy(true, pigFatPageParam.getSortOrder().equals(CommonSortOrderEnum.ASC.getValue()),
+                    StrUtil.toUnderlineCase(pigFatPageParam.getSortField()));
+        } else {
+            queryWrapper.lambda().orderByAsc(PigFat::getId);
+        }
+        return this.page(CommonPageRequest.defaultPage(), queryWrapper);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public CommonResult add(PigFatAddParam pigFatAddParam) {
+        QueryWrapper<PigFat> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("org_id", pigFatAddParam.getOrgId()).eq("eartag", pigFatAddParam.getEartag());
+        if (ObjectUtil.isEmpty(fatMapper.selectOne(queryWrapper))) {
+            PigFat pigFat = BeanUtil.toBean(pigFatAddParam, PigFat.class);
+            this.save(pigFat);
+            return CommonResult.ok();
+        } else {
+            return new CommonResult(500, "耳标号已存在,请重新添加!", false);
+        }
+
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public CommonResult edit(PigFatEditParam pigFatEditParam) {
+        PigFat pigFat = this.queryEntity(pigFatEditParam.getId());
+        if (ObjectUtil.isNotEmpty(pigFatEditParam.getEartag())) {
+            QueryWrapper<PigFat> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("org_id", pigFat.getOrgId())
+                    .eq(StringUtils.isNotBlank(pigFatEditParam.getEartag()),"eartag",pigFatEditParam.getEartag())
+                    .ne("id", pigFatEditParam.getId());
+            if (ObjectUtil.isEmpty(fatMapper.selectOne(queryWrapper))) {
+                BeanUtil.copyProperties(pigFatEditParam, pigFat);
+                this.updateById(pigFat);
+                return CommonResult.ok();
+            } else {
+                return new CommonResult(500, "耳标号已存在!", false);
+            }
+        } else {
+            BeanUtil.copyProperties(pigFatEditParam, pigFat);
+            this.updateById(pigFat);
+            return CommonResult.ok();
+        }
+
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void delete(List<PigFatIdParam> pigFatIdParamList) {
+        // 执行删除
+        this.removeByIds(CollStreamUtil.toList(pigFatIdParamList, PigFatIdParam::getId));
+    }
+
+    @Override
+    public PigFat detail(PigFatIdParam pigFatIdParam) {
+        return this.queryEntity(pigFatIdParam.getId());
+    }
+
+    @Override
+    public PigFat queryEntity(Integer id) {
+        PigFat pigFat = this.getById(id);
+        if(ObjectUtil.isEmpty(pigFat)) {
+            throw new CommonException("肥猪信息不存在,id值为:{}", id);
+        }
+        return pigFat;
+    }
+}

+ 4 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigfiles/entity/PigFiles.java

@@ -113,4 +113,8 @@ public class PigFiles {
     /** 母系耳标号 */
     /** 母系耳标号 */
     @ApiModelProperty(value = "母系耳标号", position = 20)
     @ApiModelProperty(value = "母系耳标号", position = 20)
     private String motherEartag;
     private String motherEartag;
+//
+//    /** 存栏位置名称 */
+//    @ApiModelProperty(value = "存栏位置名称", position = 21)
+//    private String unitName;
 }
 }

+ 4 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigfiles/param/PigFilesAddParam.java

@@ -107,4 +107,8 @@ public class PigFilesAddParam {
     /** 母系耳标号 */
     /** 母系耳标号 */
     @ApiModelProperty(value = "母系耳标号", position = 20)
     @ApiModelProperty(value = "母系耳标号", position = 20)
     private String motherEartag;
     private String motherEartag;
+
+//    /** 存栏位置名称 */
+//    @ApiModelProperty(value = "存栏位置名称", position = 21)
+//    private String unitName;
 }
 }

+ 6 - 6
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigimmunity/param/PigImmunityAddParam.java

@@ -52,13 +52,13 @@ public class PigImmunityAddParam {
     @ApiModelProperty(value = "备注", position = 7)
     @ApiModelProperty(value = "备注", position = 7)
     private String remark;
     private String remark;
 
 
-    /** 创建时间 */
-    @ApiModelProperty(value = "创建时间", position = 9)
-    private Date createDate;
+//    /** 创建时间 */
+//    @ApiModelProperty(value = "创建时间", position = 9)
+//    private Date createDate;
 
 
-    /** 删除标志 */
-    @ApiModelProperty(value = "删除标志", position = 10)
-    private String deleteFlag;
+//    /** 删除标志 */
+//    @ApiModelProperty(value = "删除标志", position = 10)
+//    private String deleteFlag;
 
 
     /** 修改日期 */
     /** 修改日期 */
     @ApiModelProperty(value = "修改日期", position = 11)
     @ApiModelProperty(value = "修改日期", position = 11)

+ 12 - 12
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigimmunity/param/PigImmunityEditParam.java

@@ -58,20 +58,20 @@ public class PigImmunityEditParam {
     @ApiModelProperty(value = "备注", position = 7)
     @ApiModelProperty(value = "备注", position = 7)
     private String remark;
     private String remark;
 
 
-    /** 创建时间 */
-    @ApiModelProperty(value = "创建时间", position = 9)
-    private Date createDate;
+//    /** 创建时间 */
+//    @ApiModelProperty(value = "创建时间", position = 9)
+//    private Date createDate;
 
 
-    /** 删除标志 */
-    @ApiModelProperty(value = "删除标志", position = 10)
-    private String deleteFlag;
+//    /** 删除标志 */
+//    @ApiModelProperty(value = "删除标志", position = 10)
+//    private String deleteFlag;
 
 
-    /** 修改日期 */
-    @ApiModelProperty(value = "修改日期", position = 11)
-    private Date updateDate;
+//    /** 修改日期 */
+//    @ApiModelProperty(value = "修改日期", position = 11)
+//    private Date updateDate;
 
 
-    /** 组织id */
-    @ApiModelProperty(value = "组织id", position = 12)
-    private String orgId;
+//    /** 组织id */
+//    @ApiModelProperty(value = "组织id", position = 12)
+//    private String orgId;
 
 
 }
 }

+ 2 - 1
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigimmunity/param/PigImmunityIdParam.java

@@ -17,6 +17,7 @@ import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 
 
 /**
 /**
  * 免疫信息Id参数
  * 免疫信息Id参数
@@ -30,6 +31,6 @@ public class PigImmunityIdParam {
 
 
     /** ID */
     /** ID */
     @ApiModelProperty(value = "ID", required = true)
     @ApiModelProperty(value = "ID", required = true)
-    @NotBlank(message = "id不能为空")
+    @NotNull(message = "id不能为空")
     private Integer id;
     private Integer id;
 }
 }

+ 3 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigimmunity/service/impl/PigImmunityServiceImpl.java

@@ -32,6 +32,7 @@ import vip.xiaonuo.modular.bi.pigimmunity.param.PigImmunityIdParam;
 import vip.xiaonuo.modular.bi.pigimmunity.param.PigImmunityPageParam;
 import vip.xiaonuo.modular.bi.pigimmunity.param.PigImmunityPageParam;
 import vip.xiaonuo.modular.bi.pigimmunity.service.PigImmunityService;
 import vip.xiaonuo.modular.bi.pigimmunity.service.PigImmunityService;
 
 
+import java.util.Date;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
@@ -66,6 +67,7 @@ public class PigImmunityServiceImpl extends ServiceImpl<PigImmunityMapper, PigIm
     @Override
     @Override
     public void add(PigImmunityAddParam pigImmunityAddParam) {
     public void add(PigImmunityAddParam pigImmunityAddParam) {
         PigImmunity pigImmunity = BeanUtil.toBean(pigImmunityAddParam, PigImmunity.class);
         PigImmunity pigImmunity = BeanUtil.toBean(pigImmunityAddParam, PigImmunity.class);
+        pigImmunity.setCreateDate(new Date());
         this.save(pigImmunity);
         this.save(pigImmunity);
     }
     }
 
 
@@ -74,6 +76,7 @@ public class PigImmunityServiceImpl extends ServiceImpl<PigImmunityMapper, PigIm
     public void edit(PigImmunityEditParam pigImmunityEditParam) {
     public void edit(PigImmunityEditParam pigImmunityEditParam) {
         PigImmunity pigImmunity = this.queryEntity(pigImmunityEditParam.getId());
         PigImmunity pigImmunity = this.queryEntity(pigImmunityEditParam.getId());
         BeanUtil.copyProperties(pigImmunityEditParam, pigImmunity);
         BeanUtil.copyProperties(pigImmunityEditParam, pigImmunity);
+        pigImmunity.setUpdateDate(new Date());
         this.updateById(pigImmunity);
         this.updateById(pigImmunity);
     }
     }
 
 

+ 4 - 4
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigsemen/param/PigSemenAddParam.java

@@ -91,10 +91,10 @@ public class PigSemenAddParam {
     /** 备注 */
     /** 备注 */
     @ApiModelProperty(value = "备注", position = 17)
     @ApiModelProperty(value = "备注", position = 17)
     private String remark;
     private String remark;
-
-    /** 创建时间 */
-    @ApiModelProperty(value = "创建时间", position = 18)
-    private Date createDate;
+//
+//    /** 创建时间 */
+//    @ApiModelProperty(value = "创建时间", position = 18)
+//    private Date createDate;
 
 
     /** 组织id */
     /** 组织id */
     @ApiModelProperty(value = "组织id", position = 22)
     @ApiModelProperty(value = "组织id", position = 22)

+ 7 - 7
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigsemen/param/PigSemenEditParam.java

@@ -98,12 +98,12 @@ public class PigSemenEditParam {
     @ApiModelProperty(value = "备注", position = 17)
     @ApiModelProperty(value = "备注", position = 17)
     private String remark;
     private String remark;
 
 
-    /** 创建时间 */
-    @ApiModelProperty(value = "创建时间", position = 18)
-    private Date createDate;
-
-    /** 组织id */
-    @ApiModelProperty(value = "组织id", position = 22)
-    private String orgId;
+//    /** 创建时间 */
+//    @ApiModelProperty(value = "创建时间", position = 18)
+//    private Date createDate;
+//
+//    /** 组织id */
+//    @ApiModelProperty(value = "组织id", position = 22)
+//    private String orgId;
 
 
 }
 }

+ 2 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigsemen/service/impl/PigSemenServiceImpl.java

@@ -32,6 +32,7 @@ import vip.xiaonuo.modular.bi.pigsemen.param.PigSemenIdParam;
 import vip.xiaonuo.modular.bi.pigsemen.param.PigSemenPageParam;
 import vip.xiaonuo.modular.bi.pigsemen.param.PigSemenPageParam;
 import vip.xiaonuo.modular.bi.pigsemen.service.PigSemenService;
 import vip.xiaonuo.modular.bi.pigsemen.service.PigSemenService;
 
 
+import java.util.Date;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
@@ -66,6 +67,7 @@ public class PigSemenServiceImpl extends ServiceImpl<PigSemenMapper, PigSemen> i
     @Override
     @Override
     public void add(PigSemenAddParam pigSemenAddParam) {
     public void add(PigSemenAddParam pigSemenAddParam) {
         PigSemen pigSemen = BeanUtil.toBean(pigSemenAddParam, PigSemen.class);
         PigSemen pigSemen = BeanUtil.toBean(pigSemenAddParam, PigSemen.class);
+        pigSemen.setCreateDate(new Date());
         this.save(pigSemen);
         this.save(pigSemen);
     }
     }
 
 

+ 3 - 3
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigtransfer/param/PigTransferAddParam.java

@@ -52,9 +52,9 @@ public class PigTransferAddParam {
     @ApiModelProperty(value = "备注", position = 7)
     @ApiModelProperty(value = "备注", position = 7)
     private String remark;
     private String remark;
 
 
-    /** 创建时间 */
-    @ApiModelProperty(value = "创建时间", position = 8)
-    private Date createDate;
+//    /** 创建时间 */
+//    @ApiModelProperty(value = "创建时间", position = 8)
+//    private Date createDate;
 
 
     /** 组织id */
     /** 组织id */
     @ApiModelProperty(value = "组织id", position = 12)
     @ApiModelProperty(value = "组织id", position = 12)

+ 7 - 7
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigtransfer/param/PigTransferEditParam.java

@@ -57,13 +57,13 @@ public class PigTransferEditParam {
     /** 备注 */
     /** 备注 */
     @ApiModelProperty(value = "备注", position = 7)
     @ApiModelProperty(value = "备注", position = 7)
     private String remark;
     private String remark;
+//
+//    /** 创建时间 */
+//    @ApiModelProperty(value = "创建时间", position = 8)
+//    private Date createDate;
 
 
-    /** 创建时间 */
-    @ApiModelProperty(value = "创建时间", position = 8)
-    private Date createDate;
-
-    /** 组织id */
-    @ApiModelProperty(value = "组织id", position = 12)
-    private String orgId;
+//    /** 组织id */
+//    @ApiModelProperty(value = "组织id", position = 12)
+//    private String orgId;
 
 
 }
 }

+ 2 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/bi/pigtransfer/service/impl/PigTransferServiceImpl.java

@@ -32,6 +32,7 @@ import vip.xiaonuo.modular.bi.pigtransfer.param.PigTransferIdParam;
 import vip.xiaonuo.modular.bi.pigtransfer.param.PigTransferPageParam;
 import vip.xiaonuo.modular.bi.pigtransfer.param.PigTransferPageParam;
 import vip.xiaonuo.modular.bi.pigtransfer.service.PigTransferService;
 import vip.xiaonuo.modular.bi.pigtransfer.service.PigTransferService;
 
 
+import java.util.Date;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
@@ -66,6 +67,7 @@ public class PigTransferServiceImpl extends ServiceImpl<PigTransferMapper, PigTr
     @Override
     @Override
     public void add(PigTransferAddParam pigTransferAddParam) {
     public void add(PigTransferAddParam pigTransferAddParam) {
         PigTransfer pigTransfer = BeanUtil.toBean(pigTransferAddParam, PigTransfer.class);
         PigTransfer pigTransfer = BeanUtil.toBean(pigTransferAddParam, PigTransfer.class);
+        pigTransfer.setCreateDate(new Date());
         this.save(pigTransfer);
         this.save(pigTransfer);
     }
     }
 
 

+ 20 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/env/controller/EnvDeviceEquipmentController.java

@@ -0,0 +1,20 @@
+package vip.xiaonuo.modular.env.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 环控设备状态表 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2023-12-20
+ */
+@RestController
+@RequestMapping("/env-device-equipment")
+public class EnvDeviceEquipmentController {
+
+}

+ 77 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/env/entity/EnvDeviceEquipment.java

@@ -0,0 +1,77 @@
+package vip.xiaonuo.modular.env.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 com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 环控设备状态表
+ * </p>
+ *
+ * @author author
+ * @since 2023-12-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("env_device_equipment")
+public class EnvDeviceEquipment implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 设备编码
+     */
+    private String deviceCode;
+
+    /**
+     * 组织id
+     */
+    private String orgId;
+
+    /**
+     * 设备类型 0为风机 1为水帘
+     */
+    private Integer deviceType;
+
+    /**
+     * 设备状态 0为关 1为开
+     */
+    private Integer deviceStatus;
+
+    /**
+     * 生成的设备编码
+     */
+    private String chipCode;
+
+    /**
+     * 设备名称
+     */
+    private String deviceName;
+
+    /**
+     * 响应时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date askTime;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+
+}

+ 7 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/env/envdevice/param/EnvDeviceAddParam.java

@@ -12,6 +12,8 @@
  */
  */
 package vip.xiaonuo.modular.env.envdevice.param;
 package vip.xiaonuo.modular.env.envdevice.param;
 
 
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
@@ -61,4 +63,9 @@ public class EnvDeviceAddParam {
     @NotNull(message = "curtainNum不能为空")
     @NotNull(message = "curtainNum不能为空")
     private Integer curtainNum;
     private Integer curtainNum;
 
 
+    /** 组织ID */
+    @ApiModelProperty(value = "组织ID", position = 9)
+    @TableField(fill = FieldFill.INSERT)
+    private String orgId;
+
 }
 }

+ 2 - 1
snowy-web-app/src/main/java/vip/xiaonuo/modular/env/envdevice/service/EnvDeviceService.java

@@ -14,6 +14,7 @@ package vip.xiaonuo.modular.env.envdevice.service;
 
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
+import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.modular.env.envdevice.entity.EnvDevice;
 import vip.xiaonuo.modular.env.envdevice.entity.EnvDevice;
 import vip.xiaonuo.modular.env.envdevice.param.EnvDeviceAddParam;
 import vip.xiaonuo.modular.env.envdevice.param.EnvDeviceAddParam;
 import vip.xiaonuo.modular.env.envdevice.param.EnvDeviceEditParam;
 import vip.xiaonuo.modular.env.envdevice.param.EnvDeviceEditParam;
@@ -45,7 +46,7 @@ public interface EnvDeviceService extends IService<EnvDevice> {
      * @author newspaper
      * @author newspaper
      * @date  2023/12/18 09:58
      * @date  2023/12/18 09:58
      */
      */
-    void add(EnvDeviceAddParam envDeviceAddParam);
+    CommonResult add(EnvDeviceAddParam envDeviceAddParam);
 
 
     /**
     /**
      * 编辑环控设备
      * 编辑环控设备

+ 39 - 3
snowy-web-app/src/main/java/vip/xiaonuo/modular/env/envdevice/service/impl/EnvDeviceServiceImpl.java

@@ -28,7 +28,9 @@ import vip.xiaonuo.common.enums.CommonSortOrderEnum;
 import vip.xiaonuo.common.exception.CommonException;
 import vip.xiaonuo.common.exception.CommonException;
 import vip.xiaonuo.common.listener.CommonDataChangeEventCenter;
 import vip.xiaonuo.common.listener.CommonDataChangeEventCenter;
 import vip.xiaonuo.common.page.CommonPageRequest;
 import vip.xiaonuo.common.page.CommonPageRequest;
+import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.core.enums.EnvDataTypeEnum;
 import vip.xiaonuo.core.enums.EnvDataTypeEnum;
+import vip.xiaonuo.modular.env.entity.EnvDeviceEquipment;
 import vip.xiaonuo.modular.env.envdevice.entity.EnvDevice;
 import vip.xiaonuo.modular.env.envdevice.entity.EnvDevice;
 import vip.xiaonuo.modular.env.envdevice.mapper.EnvDeviceMapper;
 import vip.xiaonuo.modular.env.envdevice.mapper.EnvDeviceMapper;
 import vip.xiaonuo.modular.env.envdevice.param.EnvDeviceAddParam;
 import vip.xiaonuo.modular.env.envdevice.param.EnvDeviceAddParam;
@@ -36,9 +38,11 @@ import vip.xiaonuo.modular.env.envdevice.param.EnvDeviceEditParam;
 import vip.xiaonuo.modular.env.envdevice.param.EnvDeviceIdParam;
 import vip.xiaonuo.modular.env.envdevice.param.EnvDeviceIdParam;
 import vip.xiaonuo.modular.env.envdevice.param.EnvDevicePageParam;
 import vip.xiaonuo.modular.env.envdevice.param.EnvDevicePageParam;
 import vip.xiaonuo.modular.env.envdevice.service.EnvDeviceService;
 import vip.xiaonuo.modular.env.envdevice.service.EnvDeviceService;
+import vip.xiaonuo.modular.env.mapper.EnvDeviceEquipmentMapper;
 
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotBlank;
 import java.text.NumberFormat;
 import java.text.NumberFormat;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
@@ -54,6 +58,8 @@ public class EnvDeviceServiceImpl extends ServiceImpl<EnvDeviceMapper, EnvDevice
 
 
     @Autowired
     @Autowired
     private EnvDeviceMapper envDeviceMapper;
     private EnvDeviceMapper envDeviceMapper;
+    @Autowired
+    private EnvDeviceEquipmentMapper equipmentMapper;
 
 
 //    @Override
 //    @Override
 //    public Page<EnvDevice> page(EnvDevicePageParam envDevicePageParam) {
 //    public Page<EnvDevice> page(EnvDevicePageParam envDevicePageParam) {
@@ -89,11 +95,41 @@ public class EnvDeviceServiceImpl extends ServiceImpl<EnvDeviceMapper, EnvDevice
 
 
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     @Override
     @Override
-    public void add(EnvDeviceAddParam envDeviceAddParam) {
+    public CommonResult add(EnvDeviceAddParam envDeviceAddParam) {
         EnvDevice envDevice = BeanUtil.toBean(envDeviceAddParam, EnvDevice.class);
         EnvDevice envDevice = BeanUtil.toBean(envDeviceAddParam, EnvDevice.class);
-        this.save(envDevice);
+        QueryWrapper<EnvDevice> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("org_id", envDeviceAddParam.getOrgId())
+                .eq("device_code", envDeviceAddParam.getDeviceCode())
+                .or().eq("install_position", envDeviceAddParam.getInstallPosition());
+        if (ObjectUtil.isEmpty(envDeviceMapper.selectOne(queryWrapper))) {
+            for (int i = 0; i < envDeviceAddParam.getFanNum(); i++) {
+                EnvDeviceEquipment equipment = new EnvDeviceEquipment();
+                equipment.setDeviceCode(envDeviceAddParam.getDeviceCode());
+                equipment.setChipCode(envDeviceAddParam.getDeviceCode() + "01");
+                equipment.setDeviceName(envDeviceAddParam.getDeviceName());
+                equipment.setCreateTime(new Date());
+                equipment.setOrgId(envDeviceAddParam.getOrgId());
+                equipment.setDeviceType(0);
+                equipmentMapper.insert(equipment);
+            }
+            for (int i = 0; i < envDeviceAddParam.getCurtainNum(); i++) {
+                EnvDeviceEquipment equipment = new EnvDeviceEquipment();
+                equipment.setDeviceCode(envDeviceAddParam.getDeviceCode());
+                equipment.setChipCode(envDeviceAddParam.getDeviceCode() + "01");
+                equipment.setDeviceName(envDeviceAddParam.getDeviceName());
+                equipment.setCreateTime(new Date());
+                equipment.setOrgId(envDeviceAddParam.getOrgId());
+                equipment.setDeviceType(1);
+                equipmentMapper.insert(equipment);
+            }
+            this.save(envDevice);
+            CommonDataChangeEventCenter.doAddWithData(EnvDataTypeEnum.DEVICE.getValue(), JSONUtil.createArray().put(envDevice));
+            return CommonResult.ok();
+        } else {
+            return new CommonResult(500, "设备编号重复或者安装位置已存在设备", false);
+        }
+
 
 
-        CommonDataChangeEventCenter.doAddWithData(EnvDataTypeEnum.DEVICE.getValue(), JSONUtil.createArray().put(envDevice));
     }
     }
 
 
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)

+ 16 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/env/mapper/EnvDeviceEquipmentMapper.java

@@ -0,0 +1,16 @@
+package vip.xiaonuo.modular.env.mapper;
+
+import vip.xiaonuo.modular.env.entity.EnvDeviceEquipment;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 环控设备状态表 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2023-12-20
+ */
+public interface EnvDeviceEquipmentMapper extends BaseMapper<EnvDeviceEquipment> {
+
+}

+ 16 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/env/service/IEnvDeviceEquipmentService.java

@@ -0,0 +1,16 @@
+package vip.xiaonuo.modular.env.service;
+
+import vip.xiaonuo.modular.env.entity.EnvDeviceEquipment;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 环控设备状态表 服务类
+ * </p>
+ *
+ * @author author
+ * @since 2023-12-20
+ */
+public interface IEnvDeviceEquipmentService extends IService<EnvDeviceEquipment> {
+
+}

+ 20 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/env/service/impl/EnvDeviceEquipmentServiceImpl.java

@@ -0,0 +1,20 @@
+package vip.xiaonuo.modular.env.service.impl;
+
+import vip.xiaonuo.modular.env.entity.EnvDeviceEquipment;
+import vip.xiaonuo.modular.env.mapper.EnvDeviceEquipmentMapper;
+import vip.xiaonuo.modular.env.service.IEnvDeviceEquipmentService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 环控设备状态表 服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2023-12-20
+ */
+@Service
+public class EnvDeviceEquipmentServiceImpl extends ServiceImpl<EnvDeviceEquipmentMapper, EnvDeviceEquipment> implements IEnvDeviceEquipmentService {
+
+}

+ 215 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/people/utils/DataUill.java

@@ -0,0 +1,215 @@
+package vip.xiaonuo.modular.people.utils;
+  
+import com.alibaba.fastjson.JSONObject;
+
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+
+public class DataUill {
+  
+
+  
+    // 获得当天0点时间
+    public static Date getTimesmorning() {
+        Calendar cal = Calendar.getInstance();
+        cal.set(Calendar.HOUR_OF_DAY, 0);
+        cal.set(Calendar.SECOND, 0);
+        cal.set(Calendar.MINUTE, 0);
+        cal.set(Calendar.MILLISECOND, 0);
+        return cal.getTime();
+  
+  
+    }
+    // 获得昨天0点时间
+    public static Date getYesterdaymorning() {
+        Calendar cal = Calendar.getInstance();
+        cal.setTimeInMillis(getTimesmorning().getTime()-3600*24*1000);
+        return cal.getTime();
+    }
+    // 获得当天近7天时间
+    public static Date getWeekFromNow() {
+        Calendar cal = Calendar.getInstance();
+        cal.setTimeInMillis( getTimesmorning().getTime()-3600*24*1000*7);
+        return cal.getTime();
+    }
+  
+    // 获得当天24点时间
+    public static Date getTimesnight() {
+        Calendar cal = Calendar.getInstance();
+        cal.set(Calendar.HOUR_OF_DAY, 24);
+        cal.set(Calendar.SECOND, 0);
+        cal.set(Calendar.MINUTE, 0);
+        cal.set(Calendar.MILLISECOND, 0);
+        return cal.getTime();
+    }
+  
+    // 获得本周一0点时间
+    public static Date getTimesWeekmorning() {
+        Calendar cal = Calendar.getInstance();
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
+        cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
+        return cal.getTime();
+    }
+  
+    // 获得本周日24点时间
+    public static Date getTimesWeeknight() {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(getTimesWeekmorning());
+        cal.add(Calendar.DAY_OF_WEEK, 7);
+        return cal.getTime();
+    }
+  
+    // 获得本月第一天0点时间
+    public static Date getTimesMonthmorning() {
+        Calendar cal = Calendar.getInstance();
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
+        cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));
+        return cal.getTime();
+    }
+  
+    // 获得本月最后一天24点时间
+    public static Date getTimesMonthnight() {
+        Calendar cal = Calendar.getInstance();
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
+        cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
+        cal.set(Calendar.HOUR_OF_DAY, 24);
+        return cal.getTime();
+    }
+  
+    public static Date getLastMonthStartMorning() {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(getTimesMonthmorning());
+        cal.add(Calendar.MONTH, -1);
+        return cal.getTime();
+    }
+
+    public static Date getTwoLastMonthStartMorning() {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(getTimesMonthmorning());
+        cal.add(Calendar.MONTH, -2);
+        return cal.getTime();
+    }
+  
+    public static Date getCurrentQuarterStartTime() {
+        Calendar c = Calendar.getInstance();
+        int currentMonth = c.get(Calendar.MONTH) + 1;
+        SimpleDateFormat longSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        SimpleDateFormat shortSdf = new SimpleDateFormat("yyyy-MM-dd");
+        Date now = null;
+        try {
+            if (currentMonth >= 1 && currentMonth <= 3)
+                c.set(Calendar.MONTH, 0);
+            else if (currentMonth >= 4 && currentMonth <= 6)
+                c.set(Calendar.MONTH, 3);
+            else if (currentMonth >= 7 && currentMonth <= 9)
+                c.set(Calendar.MONTH, 4);
+            else if (currentMonth >= 10 && currentMonth <= 12)
+                c.set(Calendar.MONTH, 9);
+            c.set(Calendar.DATE, 1);
+            now = longSdf.parse(shortSdf.format(c.getTime()) + " 00:00:00");
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return now;
+    }
+  
+    /**
+     * 当前季度的结束时间,即2012-03-31 23:59:59
+     *
+     * @return
+     */
+    public static Date getCurrentQuarterEndTime() {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(getCurrentQuarterStartTime());
+        cal.add(Calendar.MONTH, 3);
+        return cal.getTime();
+    }
+  
+  
+    public static Date getCurrentYearStartTime() {
+        Calendar cal = Calendar.getInstance();
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
+        cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.YEAR));
+        return cal.getTime();
+    }
+  
+    public static Date getCurrentYearEndTime() {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(getCurrentYearStartTime());
+        cal.add(Calendar.YEAR, 1);
+        return cal.getTime();
+    }
+  
+    public static Date getLastYearStartTime() {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(getCurrentYearStartTime());
+        cal.add(Calendar.YEAR, -1);
+        return cal.getTime();
+    }
+    public static Date getNextDay(Date date,Integer num) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.add(Calendar.DAY_OF_MONTH, +num);//+1今天的时间加一天
+        date = calendar.getTime();
+        return date;
+    }
+    /**
+     * 获取上周开始时间和结束时间
+     */
+    public static JSONObject getLastWeekRange() {
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
+        calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
+        calendar.add(Calendar.DAY_OF_WEEK, -7);
+        Date startTime = calendar.getTime();
+        calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 23, 59, 59);
+        calendar.add(Calendar.DAY_OF_WEEK, 6);
+        Date stopTime = calendar.getTime();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("startTime", startTime);
+        jsonObject.put("stopTime", stopTime);
+        return jsonObject;
+    }
+
+    /**
+     * 获取上月开始时间和结束时间
+     */
+    public static JSONObject getLastMonthRange() {
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
+        calendar.add(Calendar.MONTH, -1);
+        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
+        Date startTime = calendar.getTime();
+        calendar.add(Calendar.DAY_OF_WEEK, 7);
+        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
+        //calendar.set(Calendar.HOUR_OF_DAY, 24);
+        calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 23, 59, 59);
+        Date stopTime = calendar.getTime();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("startTime", startTime);
+        jsonObject.put("stopTime", stopTime);
+        return jsonObject;
+    }
+
+    /**
+     * 获取昨天开始时间和结束时间
+     */
+    public static JSONObject getYesterdayRange() {
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.MILLISECOND, 0);
+        calendar.set(Calendar.SECOND, 0);
+        calendar.set(Calendar.MINUTE, 0);
+        calendar.set(Calendar.HOUR_OF_DAY, -24);
+        Date startTime = calendar.getTime();
+        calendar.set(Calendar.MILLISECOND, 0);
+        calendar.set(Calendar.SECOND, 59);
+        calendar.set(Calendar.MINUTE, 59);
+        calendar.set(Calendar.HOUR_OF_DAY, 23);
+        Date stopTime = calendar.getTime();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("startTime", startTime);
+        jsonObject.put("stopTime", stopTime);
+        return jsonObject;
+    }
+}

+ 1 - 1
snowy-web-app/src/main/resources/mapper/EnergyWaterMapper.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?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">
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="vip.xiaonuo.modular.energy.mapper.EnergyWaterMapper">
+<mapper namespace="vip.xiaonuo.modular.env.mapper.EnvDeviceEquipmentMapper">
 
 
 </mapper>
 </mapper>