Newspaper 1 rok temu
rodzic
commit
de674b0e81
31 zmienionych plików z 1275 dodań i 55 usunięć
  1. 1 1
      snowy-web-app/src/main/java/vip/xiaonuo/modular/ai/followEvents/controller/FollowEventsController.java
  2. 26 12
      snowy-web-app/src/main/java/vip/xiaonuo/modular/base/baseConfig/controller/BaseConfigController.java
  3. 12 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/base/baseConfig/entity/vo/BaseEntity.java
  4. 12 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/base/baseConfig/entity/vo/BaseEntity1.java
  5. 12 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/base/baseConfig/entity/vo/BaseEntity2.java
  6. 11 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/base/baseConfig/entity/vo/PriceInVo.java
  7. 11 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/base/baseConfig/entity/vo/PriceLocalVo.java
  8. 11 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/base/baseConfig/entity/vo/PriceOutVo.java
  9. 3 1
      snowy-web-app/src/main/java/vip/xiaonuo/modular/base/baseConfig/service/BaseConfigService.java
  10. 133 33
      snowy-web-app/src/main/java/vip/xiaonuo/modular/base/baseConfig/service/impl/BaseConfigServiceImpl.java
  11. 1 2
      snowy-web-app/src/main/java/vip/xiaonuo/modular/base/baseSeason/entity/BaseSeason.java
  12. 2 2
      snowy-web-app/src/main/java/vip/xiaonuo/modular/base/baseSeason/service/impl/BaseSeasonServiceImpl.java
  13. 123 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/base/pigFarm/controller/PigFarmController.java
  14. 87 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/base/pigFarm/entity/PigFarm.java
  15. 34 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/base/pigFarm/enums/PigFarmEnum.java
  16. 25 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/base/pigFarm/mapper/PigFarmMapper.java
  17. 5 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/base/pigFarm/mapper/mapping/PigFarmMapper.xml
  18. 54 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/base/pigFarm/param/PigFarmAddParam.java
  19. 59 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/base/pigFarm/param/PigFarmEditParam.java
  20. 35 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/base/pigFarm/param/PigFarmIdParam.java
  21. 29 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/base/pigFarm/param/PigFarmPageParam.java
  22. 64 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/base/pigFarm/service/PigFarmService.java
  23. 128 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/base/pigFarm/service/impl/PigFarmServiceImpl.java
  24. 0 1
      snowy-web-app/src/main/java/vip/xiaonuo/modular/energy/energythreshold/service/impl/EnergyThresholdServiceImpl.java
  25. 1 1
      snowy-web-app/src/main/java/vip/xiaonuo/modular/env/envDeviceOnline/mapper/mapping/EnvDeviceOnlineMapper.xml
  26. 0 1
      snowy-web-app/src/main/java/vip/xiaonuo/modular/env/envThreshold/service/impl/EnvThresholdServiceImpl.java
  27. 17 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/env/envdata/controller/EnvDataController.java
  28. 23 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/env/envdata/param/EnvDataAddParm.java
  29. 4 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/env/envdata/service/EnvDataService.java
  30. 351 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/env/envdata/service/impl/EnvDataServiceImpl.java
  31. 1 1
      snowy-web-app/src/main/java/vip/xiaonuo/modular/env/envdevice/service/impl/EnvDeviceServiceImpl.java

+ 1 - 1
snowy-web-app/src/main/java/vip/xiaonuo/modular/ai/followEvents/controller/FollowEventsController.java

@@ -137,6 +137,6 @@ public class FollowEventsController {
     @PostMapping("/ai/followEvents/cancel")
     public CommonResult<String> cancel(@RequestBody FollowEventsAddParam followEventsAddParam) {
         followEventsService.cancel(followEventsAddParam);
-        return CommonResult.ok("取消关注成功");
+        return new CommonResult<>(200,"取消关注成功","取消关注成功");
     }
 }

+ 26 - 12
snowy-web-app/src/main/java/vip/xiaonuo/modular/base/baseConfig/controller/BaseConfigController.java

@@ -154,18 +154,32 @@ public class BaseConfigController {
         return CommonResult.data(baseConfigService.listOrgId());
     }
 
-//    /**
-//     * 获取今日猪价
-//     *
-//     * @author newspaper
-//     * @date  2023/12/08 10:22
-//     */
-//    @ApiOperationSupport(order = 8)
-//    @ApiOperation("获取今日猪价")
-//    @GetMapping("/base/baseConfig/getTodayPigPrice")
-//    public CommonResult<PigPriceVo> getTodayPigPrice(Integer areano) {
-//        return CommonResult.data(baseConfigService.getTodayPigPrice(areano));
-//    }
+    /**
+     * 获取今日猪价
+     *
+     * @author newspaper
+     * @date  2023/12/08 10:22
+     */
+    @ApiOperationSupport(order = 8)
+    @ApiOperation("获取今日猪价")
+    @GetMapping("/base/baseConfig/getTodayPigPrice")
+    public CommonResult<PigPriceVo> getTodayPigPrice(Integer areano) {
+        return CommonResult.data(baseConfigService.getTodayPigPrice(areano));
+    }
+
+
+    /**
+     * 获取历史猪价
+     *
+     * @author newspaper
+     * @date  2023/12/08 10:22
+     */
+    @ApiOperationSupport(order = 9)
+    @ApiOperation("获取历史猪价")
+    @GetMapping("/base/baseConfig/listPigPrice")
+    public CommonResult<List> listPigPrice(Integer areano, Integer pigType) {
+        return CommonResult.data(baseConfigService.listPigPrice(areano,pigType));
+    }
 
 
 }

+ 12 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/base/baseConfig/entity/vo/BaseEntity.java

@@ -0,0 +1,12 @@
+package vip.xiaonuo.modular.base.baseConfig.entity.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class BaseEntity {
+    private Integer code;
+    private List<PriceOutVo> data;
+    private String msg;
+}

+ 12 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/base/baseConfig/entity/vo/BaseEntity1.java

@@ -0,0 +1,12 @@
+package vip.xiaonuo.modular.base.baseConfig.entity.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class BaseEntity1 {
+    private Integer code;
+    private List<PriceInVo> data;
+    private String msg;
+}

+ 12 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/base/baseConfig/entity/vo/BaseEntity2.java

@@ -0,0 +1,12 @@
+package vip.xiaonuo.modular.base.baseConfig.entity.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class BaseEntity2 {
+    private Integer code;
+    private List<PriceLocalVo> data;
+    private String msg;
+}

+ 11 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/base/baseConfig/entity/vo/PriceInVo.java

@@ -0,0 +1,11 @@
+package vip.xiaonuo.modular.base.baseConfig.entity.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class PriceInVo {
+    private BigDecimal pig_in;
+    private String pricedate;
+}

+ 11 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/base/baseConfig/entity/vo/PriceLocalVo.java

@@ -0,0 +1,11 @@
+package vip.xiaonuo.modular.base.baseConfig.entity.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class PriceLocalVo {
+    private BigDecimal pig_local;
+    private String pricedate;
+}

+ 11 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/base/baseConfig/entity/vo/PriceOutVo.java

@@ -0,0 +1,11 @@
+package vip.xiaonuo.modular.base.baseConfig.entity.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class PriceOutVo {
+    private BigDecimal pigprice;
+    private String pricedate;
+}

+ 3 - 1
snowy-web-app/src/main/java/vip/xiaonuo/modular/base/baseConfig/service/BaseConfigService.java

@@ -85,5 +85,7 @@ public interface BaseConfigService extends IService<BaseConfig> {
 
     List<BizOrg> listOrgId();
 
-//    PigPriceVo getTodayPigPrice(Integer areano);
+    PigPriceVo getTodayPigPrice(Integer areano);
+
+    List listPigPrice(Integer areano, Integer pigType);
 }

+ 133 - 33
snowy-web-app/src/main/java/vip/xiaonuo/modular/base/baseConfig/service/impl/BaseConfigServiceImpl.java

@@ -23,6 +23,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import io.swagger.models.auth.In;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
@@ -35,17 +36,14 @@ import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
 import vip.xiaonuo.biz.modular.org.entity.BizOrg;
 import vip.xiaonuo.biz.modular.org.mapper.BizOrgMapper;
 import vip.xiaonuo.common.exception.CommonException;
-import vip.xiaonuo.common.listener.CommonDataChangeEventCenter;
 import vip.xiaonuo.common.page.CommonPageRequest;
-import vip.xiaonuo.core.enums.BaseDataTypeEnum;
 import vip.xiaonuo.core.param.OrgIdParam;
 import vip.xiaonuo.modular.base.baseConfig.entity.BaseConfig;
-import vip.xiaonuo.modular.base.baseConfig.entity.vo.PigPriceVo;
+import vip.xiaonuo.modular.base.baseConfig.entity.vo.*;
 import vip.xiaonuo.modular.base.baseConfig.mapper.BaseConfigMapper;
 import vip.xiaonuo.modular.base.baseConfig.param.*;
 import vip.xiaonuo.modular.base.baseConfig.service.BaseConfigService;
 
-import javax.validation.constraints.NotBlank;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -158,35 +156,137 @@ public class BaseConfigServiceImpl extends ServiceImpl<BaseConfigMapper, BaseCon
         return bizOrgs;
     }
 
-//    @Override
-//    public PigPriceVo getTodayPigPrice(Integer areano) {
-//        PigPriceVo pigPriceVo = new PigPriceVo();
-//        HttpHeaders httpHeaders = new HttpHeaders();
-//        MediaType type = MediaType.parseMediaType("application/json;charset=UTF-8");
-//        httpHeaders.setContentType(type);
-//        HashMap<String, Integer> map = new HashMap<>();
-//        map.put("ptype",1);
-//        map.put("areano",areano);
-//        map.put("datetype",0);
-//        HttpEntity<Map<String, String>> objectHttpEntity = new HttpEntity<>(map, httpHeaders);
-//        RestTemplate restTemplate = new RestTemplate();
-////        restTemplate.postForEntity("https://xt.yangzhu.vip/data/getzhujiahitsdata",objectHttpEntity)
-//        return pigPriceVo;
-//    }
-
-//    public static void main(String[] args) {
-//        HttpHeaders httpHeaders = new HttpHeaders();
-//        MediaType type = MediaType.parseMediaType("application/json;charset=UTF-8");
-//        httpHeaders.setContentType(type);
-//        HashMap<String, Integer> map = new HashMap<>();
-//        map.put("ptype",1);
-//        map.put("areano",areano);
-//        map.put("datetype",0);
-//        HttpEntity<Map<String, String>> objectHttpEntity = new HttpEntity<>(map, httpHeaders);
-//        RestTemplate restTemplate = new RestTemplate();
-//        ResponseEntity<String> responseEntity = restTemplate.postForEntity("https://xt.yangzhu.vip/data/getzhujiahitsdata", objectHttpEntity, String.class);
-//
-//    }
+    @Override
+    public PigPriceVo getTodayPigPrice(Integer areano) {
+        PigPriceVo pigPriceVo = new PigPriceVo();
+        HttpHeaders httpHeaders = new HttpHeaders();
+        MediaType type = MediaType.parseMediaType("application/json;charset=UTF-8");
+        httpHeaders.setContentType(type);
+        HashMap<String, Integer> map = new HashMap<>();
+        map.put("ptype",1);
+        map.put("areano",areano);
+        map.put("datetype",0);
+
+        HashMap<String, Integer> map1 = new HashMap<>();
+        map1.put("ptype",2);
+        map1.put("areano",areano);
+        map1.put("datetype",0);
+
+        HashMap<String, Integer> map2 = new HashMap<>();
+        map2.put("ptype",3);
+        map2.put("areano",areano);
+        map2.put("datetype",0);
+
+        HttpEntity<Map<String, Integer>> objectHttpEntity = new HttpEntity<>(map, httpHeaders);
+
+        HttpEntity<Map<String, Integer>> objectHttpEntity1 = new HttpEntity<>(map1, httpHeaders);
+
+        HttpEntity<Map<String, Integer>> objectHttpEntity2 = new HttpEntity<>(map2, httpHeaders);
+
+        RestTemplate restTemplate = new RestTemplate();
+        ResponseEntity<BaseEntity> baseEntityResponseEntity = restTemplate.postForEntity("https://xt.yangzhu.vip/data/getzhujiahitsdata", objectHttpEntity, BaseEntity.class);
+
+        ResponseEntity<BaseEntity1> baseEntityResponseEntity1 = restTemplate.postForEntity("https://xt.yangzhu.vip/data/getzhujiahitsdata", objectHttpEntity1, BaseEntity1.class);
+
+        ResponseEntity<BaseEntity2> baseEntityResponseEntity2 = restTemplate.postForEntity("https://xt.yangzhu.vip/data/getzhujiahitsdata", objectHttpEntity2, BaseEntity2.class);
+
+        List<PriceOutVo> data = baseEntityResponseEntity.getBody().getData();
+        List<PriceInVo> data1 = baseEntityResponseEntity1.getBody().getData();
+        List<PriceLocalVo> data2 = baseEntityResponseEntity2.getBody().getData();
+
+        pigPriceVo.setOutTodayPrice(data.get(data.size() - 1).getPigprice());
+        pigPriceVo.setOutYesterdayPrice(data.get(data.size() - 2).getPigprice());
+
+        pigPriceVo.setInTodayPrice(data1.get(data1.size() - 1).getPig_in());
+        pigPriceVo.setInYesterdayPrice(data1.get(data1.size() - 2).getPig_in());
+
+        pigPriceVo.setAardvarkTodayPrice(data2.get(data2.size() - 1).getPig_local());
+        pigPriceVo.setAardvarkYesterdayPrice(data2.get(data2.size() - 2).getPig_local());
+        return pigPriceVo;
+    }
+
+    @Override
+    public List listPigPrice(Integer areano, Integer pigType) {
+        HttpHeaders httpHeaders = new HttpHeaders();
+        MediaType type = MediaType.parseMediaType("application/json;charset=UTF-8");
+        httpHeaders.setContentType(type);
+        HashMap<String, Integer> map = new HashMap<>();
+        map.put("ptype",pigType);
+        map.put("areano",areano);
+        map.put("datetype",0);
+
+        HttpEntity<Map<String, Integer>> objectHttpEntity = new HttpEntity<>(map, httpHeaders);
+        RestTemplate restTemplate = new RestTemplate();
+        if (pigType == 1){
+            ResponseEntity<BaseEntity> baseEntityResponseEntity = restTemplate.postForEntity("https://xt.yangzhu.vip/data/getzhujiahitsdata", objectHttpEntity, BaseEntity.class);
+            List<PriceOutVo> data = baseEntityResponseEntity.getBody().getData();
+            List<PriceOutVo> result = new ArrayList<>();
+            for (int i = 7 ; i >= 1; i-- ){
+                result.add(data.get(data.size() - i));
+            }
+            return result;
+
+        }else if (pigType == 2){
+            ResponseEntity<BaseEntity1> baseEntityResponseEntity = restTemplate.postForEntity("https://xt.yangzhu.vip/data/getzhujiahitsdata", objectHttpEntity, BaseEntity1.class);
+            List<PriceInVo> data = baseEntityResponseEntity.getBody().getData();
+            List<PriceInVo> result = new ArrayList<>();
+            for (int i = 7 ; i >= 1; i-- ){
+                result.add(data.get(data.size() - i));
+            }
+            return result;
+
+        }else {
+            ResponseEntity<BaseEntity2> baseEntityResponseEntity = restTemplate.postForEntity("https://xt.yangzhu.vip/data/getzhujiahitsdata", objectHttpEntity, BaseEntity2.class);
+            List<PriceLocalVo> data = baseEntityResponseEntity.getBody().getData();
+            List<PriceLocalVo> result = new ArrayList<>();
+            for (int i = 7 ; i >= 1; i-- ){
+                result.add(data.get(data.size() - i));
+            }
+            return result;
+        }
+    }
+
+    public static void main(String[] args) {
+        Integer pigType = 1;
+        Integer areano = 330000;
+        HttpHeaders httpHeaders = new HttpHeaders();
+        MediaType type = MediaType.parseMediaType("application/json;charset=UTF-8");
+        httpHeaders.setContentType(type);
+        HashMap<String, Integer> map = new HashMap<>();
+        map.put("ptype",pigType);
+        map.put("areano",areano);
+        map.put("datetype",0);
+
+        HttpEntity<Map<String, Integer>> objectHttpEntity = new HttpEntity<>(map, httpHeaders);
+        RestTemplate restTemplate = new RestTemplate();
+        if (pigType == 1){
+            ResponseEntity<BaseEntity> baseEntityResponseEntity = restTemplate.postForEntity("https://xt.yangzhu.vip/data/getzhujiahitsdata", objectHttpEntity, BaseEntity.class);
+            List<PriceOutVo> data = baseEntityResponseEntity.getBody().getData();
+            List<PriceOutVo> result = new ArrayList<>();
+            for (int i = 7 ; i >= 1; i-- ){
+                result.add(data.get(data.size() - i));
+            }
+            System.out.println(result);
+
+        }else if (pigType == 2){
+            ResponseEntity<BaseEntity1> baseEntityResponseEntity = restTemplate.postForEntity("https://xt.yangzhu.vip/data/getzhujiahitsdata", objectHttpEntity, BaseEntity1.class);
+            List<PriceInVo> data = baseEntityResponseEntity.getBody().getData();
+            List<PriceInVo> result = new ArrayList<>();
+            for (int i = 7 ; i > 1; i-- ){
+                result.add(data.get(data.size() - i));
+            }
+            System.out.println(result);
+
+        }else {
+            ResponseEntity<BaseEntity2> baseEntityResponseEntity = restTemplate.postForEntity("https://xt.yangzhu.vip/data/getzhujiahitsdata", objectHttpEntity, BaseEntity2.class);
+            List<PriceLocalVo> data = baseEntityResponseEntity.getBody().getData();
+            List<PriceLocalVo> result = new ArrayList<>();
+            for (int i = 7 ; i > 1; i-- ){
+                result.add(data.get(data.size() - i));
+            }
+            System.out.println(result);
+        }
+    }
 
 
 }

+ 1 - 2
snowy-web-app/src/main/java/vip/xiaonuo/modular/base/baseSeason/entity/BaseSeason.java

@@ -89,6 +89,5 @@ public class BaseSeason extends CommonEntity implements TransPojo {
 
     /** 组织ID */
     @ApiModelProperty(value = "组织ID", position = 12)
-
-private String orgId;
+    private String orgId;
 }

+ 2 - 2
snowy-web-app/src/main/java/vip/xiaonuo/modular/base/baseSeason/service/impl/BaseSeasonServiceImpl.java

@@ -83,6 +83,7 @@ public class BaseSeasonServiceImpl extends ServiceImpl<BaseSeasonMapper, BaseSea
                     baseSeason.setAutumnEndTime(sdf.parse("12-21"));
                     baseSeason.setWinterStartTime(sdf.parse("12-22"));
                     baseSeason.setWinterEndTime(sdf.parse("03-20"));
+                    this.save(baseSeason);
                     break;
                 case 2:
                     baseSeason.setSpringStartTime(sdf.parse("03-01"));
@@ -93,12 +94,11 @@ public class BaseSeasonServiceImpl extends ServiceImpl<BaseSeasonMapper, BaseSea
                     baseSeason.setAutumnEndTime(sdf.parse("11-30"));
                     baseSeason.setWinterStartTime(sdf.parse("12-01"));
                     baseSeason.setWinterEndTime(Date.valueOf(nextYearFebruaryLastDay));
+                    this.save(baseSeason);
                     break;
                 case 3:
                     break;
             }
-
-            this.save(baseSeason);
         }
         return baseSeason;
     }

+ 123 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/base/pigFarm/controller/PigFarmController.java

@@ -0,0 +1,123 @@
+/*
+ * 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.base.pigFarm.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 io.swagger.annotations.ApiParam;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import vip.xiaonuo.common.annotation.CommonLog;
+import vip.xiaonuo.common.pojo.CommonResult;
+import vip.xiaonuo.common.pojo.CommonValidList;
+import vip.xiaonuo.core.param.OrgIdParam;
+import vip.xiaonuo.modular.base.pigFarm.entity.PigFarm;
+import vip.xiaonuo.modular.base.pigFarm.param.PigFarmAddParam;
+import vip.xiaonuo.modular.base.pigFarm.param.PigFarmEditParam;
+import vip.xiaonuo.modular.base.pigFarm.param.PigFarmIdParam;
+import vip.xiaonuo.modular.base.pigFarm.service.PigFarmService;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
+import java.io.IOException;
+
+/**
+ * 猪场控制器
+ *
+ * @author newspaper
+ * @date  2024/01/25 15:11
+ */
+@Api(tags = "猪场控制器")
+@ApiSupport(author = "SNOWY_TEAM", order = 1)
+@RestController
+@Validated
+public class PigFarmController {
+
+    @Resource
+    private PigFarmService pigFarmService;
+
+    /**
+     * 获取猪场分页
+     *
+     * @author newspaper
+     * @date  2024/01/25 15:11
+     */
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("获取猪场")
+    @GetMapping("/base/pigFarm/getSelf")
+    public CommonResult<PigFarm> getSelf(OrgIdParam orgIdParam) {
+        return CommonResult.data(pigFarmService.getSelf(orgIdParam));
+    }
+
+    /**
+     * 添加猪场
+     *
+     * @author newspaper
+     * @date  2024/01/25 15:11
+     */
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("添加猪场")
+    @CommonLog("添加猪场")
+    @PostMapping("/base/pigFarm/add")
+    public CommonResult<String> add(@RequestParam @ApiParam(value = "名称") String name,
+                                    @RequestParam @ApiParam(value = "规模") String size,
+                                    @RequestParam @ApiParam(value = "所在区域") String location,
+                                    @RequestParam @ApiParam(value = "详细地址") String detailLocation,
+                                    @RequestParam @ApiParam(value = "组织id") String orgId,
+                                    @RequestParam(value = "imgUrl",required = false) @ApiParam(value = "猪场图片") MultipartFile imgUrl) throws IOException {
+        pigFarmService.add(name,size,location,detailLocation,orgId,imgUrl);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 编辑猪场
+     *
+     * @author newspaper
+     * @date  2024/01/25 15:11
+     */
+    @ApiOperationSupport(order = 3)
+    @ApiOperation("编辑猪场")
+    @CommonLog("编辑猪场")
+    @PostMapping("/base/pigFarm/edit")
+    public CommonResult<String> edit(@RequestParam @ApiParam(value = "id") String id,
+                                     @RequestParam @ApiParam(value = "规模") String size,
+                                     @RequestParam @ApiParam(value = "所在区域") String location,
+                                     @RequestParam @ApiParam(value = "详细地址") String detailLocation,
+                                     @RequestParam @ApiParam(value = "组织id") String orgId,
+                                     @RequestParam(value = "imgUrl",required = false) @ApiParam(value = "猪场图片") MultipartFile imgUrl) throws IOException {
+        pigFarmService.edit(id,size,location,detailLocation,orgId,imgUrl);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 删除猪场
+     *
+     * @author newspaper
+     * @date  2024/01/25 15:11
+     */
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("删除猪场")
+    @CommonLog("删除猪场")
+    @PostMapping("/base/pigFarm/delete")
+    public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空")
+                                                   CommonValidList<PigFarmIdParam> pigFarmIdParamList) {
+        pigFarmService.delete(pigFarmIdParamList);
+        return CommonResult.ok();
+    }
+}

+ 87 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/base/pigFarm/entity/PigFarm.java

@@ -0,0 +1,87 @@
+/*
+ * 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.base.pigFarm.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 newspaper
+ * @date  2024/01/25 15:11
+ **/
+@Getter
+@Setter
+@TableName("pig_farm")
+public class PigFarm {
+
+    /** id */
+    @TableId
+    @ApiModelProperty(value = "id", position = 1)
+    private String id;
+
+    /** 名称 */
+    @ApiModelProperty(value = "名称", position = 2)
+    private String name;
+
+    /** 图片 */
+    @ApiModelProperty(value = "图片", position = 3)
+    private String imgUrl;
+
+    /** 规模 */
+    @ApiModelProperty(value = "规模", position = 4)
+    private String size;
+
+    /** 区域 */
+    @ApiModelProperty(value = "区域", position = 5)
+    private String location;
+
+    /** 组织id */
+    @ApiModelProperty(value = "组织id", position = 5)
+    private String orgId;
+
+    /** 详细地址 */
+    @ApiModelProperty(value = "详细地址", position = 6)
+    private String detailLocation;
+
+    /** 删除标志 */
+    @ApiModelProperty(value = "删除标志", position = 7)
+    @TableLogic
+    @TableField(fill = FieldFill.INSERT)
+    private String deleteFlag;
+
+    /** 创建时间 */
+    @ApiModelProperty(value = "创建时间", position = 8)
+    @TableField(fill = FieldFill.INSERT)
+    private String createTime;
+
+    /** 创建用户 */
+    @ApiModelProperty(value = "创建用户", position = 9)
+    @TableField(fill = FieldFill.INSERT)
+    private String createUser;
+
+    /** 修改时间 */
+    @ApiModelProperty(value = "修改时间", position = 10)
+    @TableField(fill = FieldFill.UPDATE)
+    private String updateTime;
+
+    /** 修改用户 */
+    @ApiModelProperty(value = "修改用户", position = 11)
+    @TableField(fill = FieldFill.UPDATE)
+    private String updateUser;
+}

+ 34 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/base/pigFarm/enums/PigFarmEnum.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.base.pigFarm.enums;
+
+import lombok.Getter;
+
+/**
+ * 猪场枚举
+ *
+ * @author newspaper
+ * @date  2024/01/25 15:11
+ **/
+@Getter
+public enum PigFarmEnum {
+
+    /** 测试 */
+    TEST("TEST");
+
+    private final String value;
+
+    PigFarmEnum(String value) {
+        this.value = value;
+    }
+}

+ 25 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/base/pigFarm/mapper/PigFarmMapper.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.base.pigFarm.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import vip.xiaonuo.modular.base.pigFarm.entity.PigFarm;
+
+/**
+ * 猪场Mapper接口
+ *
+ * @author newspaper
+ * @date  2024/01/25 15:11
+ **/
+public interface PigFarmMapper extends BaseMapper<PigFarm> {
+}

+ 5 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/base/pigFarm/mapper/mapping/PigFarmMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="vip.xiaonuo.modular.base.pigFarm.mapper.PigFarmMapper">
+
+</mapper>

+ 54 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/base/pigFarm/param/PigFarmAddParam.java

@@ -0,0 +1,54 @@
+/*
+ * 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.base.pigFarm.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 newspaper
+ * @date  2024/01/25 15:11
+ **/
+@Getter
+@Setter
+public class PigFarmAddParam {
+
+    /** 名称 */
+    @ApiModelProperty(value = "名称", position = 2)
+    private String name;
+
+    /** 图片 */
+    @ApiModelProperty(value = "图片", position = 3)
+    private String imgUrl;
+
+    /** 规模 */
+    @ApiModelProperty(value = "规模", position = 4)
+    private String size;
+
+    /** 区域 */
+    @ApiModelProperty(value = "区域", position = 5)
+    private String location;
+
+    /** 详细地址 */
+    @ApiModelProperty(value = "详细地址", position = 6)
+    private String detailLocation;
+
+}

+ 59 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/base/pigFarm/param/PigFarmEditParam.java

@@ -0,0 +1,59 @@
+/*
+ * 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.base.pigFarm.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 newspaper
+ * @date  2024/01/25 15:11
+ **/
+@Getter
+@Setter
+public class PigFarmEditParam {
+
+    /** id */
+    @ApiModelProperty(value = "id", required = true, position = 1)
+    @NotBlank(message = "id不能为空")
+    private String id;
+
+    /** 名称 */
+    @ApiModelProperty(value = "名称", position = 2)
+    private String name;
+
+    /** 图片 */
+    @ApiModelProperty(value = "图片", position = 3)
+    private String imgUrl;
+
+    /** 规模 */
+    @ApiModelProperty(value = "规模", position = 4)
+    private String size;
+
+    /** 区域 */
+    @ApiModelProperty(value = "区域", position = 5)
+    private String location;
+
+    /** 详细地址 */
+    @ApiModelProperty(value = "详细地址", position = 6)
+    private String detailLocation;
+
+}

+ 35 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/base/pigFarm/param/PigFarmIdParam.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.base.pigFarm.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 猪场Id参数
+ *
+ * @author newspaper
+ * @date  2024/01/25 15:11
+ **/
+@Getter
+@Setter
+public class PigFarmIdParam {
+
+    /** id */
+    @ApiModelProperty(value = "id", required = true)
+    @NotBlank(message = "id不能为空")
+    private String id;
+}

+ 29 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/base/pigFarm/param/PigFarmPageParam.java

@@ -0,0 +1,29 @@
+/*
+ * 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.base.pigFarm.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import vip.xiaonuo.core.param.OrgIdParam;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 猪场查询参数
+ *
+ * @author newspaper
+ * @date  2024/01/25 15:11
+ **/
+

+ 64 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/base/pigFarm/service/PigFarmService.java

@@ -0,0 +1,64 @@
+/*
+ * 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.base.pigFarm.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.web.multipart.MultipartFile;
+import vip.xiaonuo.core.param.OrgIdParam;
+import vip.xiaonuo.modular.base.pigFarm.entity.PigFarm;
+import vip.xiaonuo.modular.base.pigFarm.param.PigFarmAddParam;
+import vip.xiaonuo.modular.base.pigFarm.param.PigFarmEditParam;
+import vip.xiaonuo.modular.base.pigFarm.param.PigFarmIdParam;
+
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * 猪场Service接口
+ *
+ * @author newspaper
+ * @date  2024/01/25 15:11
+ **/
+public interface PigFarmService extends IService<PigFarm> {
+
+    /**
+     * 删除猪场
+     *
+     * @author newspaper
+     * @date  2024/01/25 15:11
+     */
+    void delete(List<PigFarmIdParam> pigFarmIdParamList);
+
+    /**
+     * 获取猪场详情
+     *
+     * @author newspaper
+     * @date  2024/01/25 15:11
+     */
+    PigFarm detail(PigFarmIdParam pigFarmIdParam);
+
+    /**
+     * 获取猪场详情
+     *
+     * @author newspaper
+     * @date  2024/01/25 15:11
+     **/
+    PigFarm queryEntity(String id);
+
+    void add(String name, String size, String location, String detailLocation, String orgId, MultipartFile imgUrl) throws IOException;
+
+    void edit(String id, String size, String location, String detailLocation, String orgId, MultipartFile imgUrl) throws IOException;
+
+    PigFarm getSelf(OrgIdParam orgIdParam);
+}

+ 128 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/base/pigFarm/service/impl/PigFarmServiceImpl.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.base.pigFarm.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.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
+import vip.xiaonuo.biz.modular.org.mapper.BizOrgMapper;
+import vip.xiaonuo.common.enums.CommonSortOrderEnum;
+import vip.xiaonuo.common.exception.CommonException;
+import vip.xiaonuo.common.page.CommonPageRequest;
+import vip.xiaonuo.common.util.UploadImage;
+import vip.xiaonuo.core.param.OrgIdParam;
+import vip.xiaonuo.modular.base.pigFarm.entity.PigFarm;
+import vip.xiaonuo.modular.base.pigFarm.mapper.PigFarmMapper;
+import vip.xiaonuo.modular.base.pigFarm.param.PigFarmAddParam;
+import vip.xiaonuo.modular.base.pigFarm.param.PigFarmEditParam;
+import vip.xiaonuo.modular.base.pigFarm.param.PigFarmIdParam;
+import vip.xiaonuo.modular.base.pigFarm.service.PigFarmService;
+
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * 猪场Service接口实现类
+ *
+ * @author newspaper
+ * @date  2024/01/25 15:11
+ **/
+@Service
+public class PigFarmServiceImpl extends ServiceImpl<PigFarmMapper, PigFarm> implements PigFarmService {
+
+    @Autowired
+    private UploadImage uploadImage;
+    @Autowired
+    private BizOrgMapper bizOrgMapper;
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void delete(List<PigFarmIdParam> pigFarmIdParamList) {
+        // 执行删除
+        this.removeByIds(CollStreamUtil.toList(pigFarmIdParamList, PigFarmIdParam::getId));
+    }
+
+    @Override
+    public PigFarm detail(PigFarmIdParam pigFarmIdParam) {
+        return this.queryEntity(pigFarmIdParam.getId());
+    }
+
+    @Override
+    public PigFarm queryEntity(String id) {
+        PigFarm pigFarm = this.getById(id);
+        if(ObjectUtil.isEmpty(pigFarm)) {
+            throw new CommonException("猪场不存在,id值为:{}", id);
+        }
+        return pigFarm;
+    }
+
+    @Override
+    public void add(String name, String size, String location, String detailLocation, String orgId, MultipartFile imgUrl) throws IOException {
+        PigFarm pigFarm = new PigFarm();
+        if ((this.count(new QueryWrapper<PigFarm>().lambda().eq(PigFarm::getOrgId,orgId).eq(PigFarm::getName,name))) > 0) {
+            throw new CommonException("存在相同名称猪场");
+        }
+        pigFarm.setName(name);
+        pigFarm.setLocation(location);
+        pigFarm.setDetailLocation(detailLocation);
+        pigFarm.setSize(size);
+        pigFarm.setOrgId(orgId);
+        if (ObjectUtil.isNotEmpty(imgUrl)){
+            String imageCom = uploadImage.getImageCom(imgUrl);
+            if ("上传失败".equals(imageCom)){
+                throw new CommonException("图片上传失败");
+            }
+            pigFarm.setImgUrl(imageCom);
+        }
+        this.save(pigFarm);
+    }
+
+    @Override
+    public void edit(String id, String size, String location, String detailLocation, String orgId, MultipartFile imgUrl) throws IOException {
+        PigFarm pigFarm = this.queryEntity(id);
+        pigFarm.setName(bizOrgMapper.selectById(orgId).getName());
+        pigFarm.setLocation(location);
+        pigFarm.setDetailLocation(detailLocation);
+        pigFarm.setSize(size);
+        pigFarm.setOrgId(orgId);
+        if (ObjectUtil.isNotEmpty(imgUrl)){
+            String imageCom = uploadImage.getImageCom(imgUrl);
+            if ("上传失败".equals(imageCom)){
+                throw new CommonException("图片上传失败");
+            }
+            pigFarm.setImgUrl(imageCom);
+        }
+        this.updateById(pigFarm);
+    }
+
+    @Override
+    public PigFarm getSelf(OrgIdParam orgIdParam) {
+        PigFarm one = this.getOne(new QueryWrapper<PigFarm>().lambda().eq(PigFarm::getOrgId, orgIdParam.getOrgId()));
+        if (ObjectUtil.isEmpty(one)){
+            one = new PigFarm();
+            one.setName(bizOrgMapper.selectById(orgIdParam.getOrgId()).getName());
+            one.setOrgId(orgIdParam.getOrgId());
+            this.save(one);
+        }
+        return one;
+    }
+}

+ 0 - 1
snowy-web-app/src/main/java/vip/xiaonuo/modular/energy/energythreshold/service/impl/EnergyThresholdServiceImpl.java

@@ -67,7 +67,6 @@ public class EnergyThresholdServiceImpl extends ServiceImpl<EnergyThresholdMappe
                         energyThreshold = new EnergyThreshold();
                         energyThreshold.setOrgId(orgId);
                         energyThreshold.setUnitId(unitId);
-                        this.save(energyThreshold);
                     }
                     BeanUtil.copyProperties(energyThreshold,energyThresholdVo);
                     energyThresholdVos.add(energyThresholdVo);

+ 1 - 1
snowy-web-app/src/main/java/vip/xiaonuo/modular/env/envDeviceOnline/mapper/mapping/EnvDeviceOnlineMapper.xml

@@ -10,7 +10,7 @@
         FROM
             `env_device_online`
         WHERE
-            org_id = #{orgId} AND creat_time BETWEEN CURDATE() - INTERVAL 6 DAY AND CURDATE()
+            org_id = #{orgId} AND creat_time BETWEEN CURDATE() - INTERVAL 6 DAY AND NOW()
         GROUP BY
             DATE(creat_time);
     </select>

+ 0 - 1
snowy-web-app/src/main/java/vip/xiaonuo/modular/env/envThreshold/service/impl/EnvThresholdServiceImpl.java

@@ -69,7 +69,6 @@ public class EnvThresholdServiceImpl extends ServiceImpl<EnvThresholdMapper, Env
                         envThreshold = new EnvThreshold();
                         envThreshold.setOrgId(orgId);
                         envThreshold.setUnitId(unitId);
-                        this.save(envThreshold);
                     }
                     BeanUtil.copyProperties(envThreshold,envThresholdVo);
                     envThresholdVos.add(envThresholdVo);

+ 17 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/env/envdata/controller/EnvDataController.java

@@ -26,12 +26,14 @@ import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.modular.env.envdata.entity.vo.EnvDataCarouselVo;
 import vip.xiaonuo.modular.env.envdata.entity.vo.EnvDataRecentVo;
 import vip.xiaonuo.modular.env.envdata.entity.vo.EnvDataTrendVo;
+import vip.xiaonuo.modular.env.envdata.param.EnvDataAddParm;
 import vip.xiaonuo.modular.env.envdata.param.EnvDataBuildNameParm;
 import vip.xiaonuo.modular.env.envdata.param.EnvDataListParm;
 import vip.xiaonuo.modular.env.envdata.param.EnvDataPigpenIdParm;
 import vip.xiaonuo.modular.env.envdata.service.EnvDataService;
 
 import javax.validation.Valid;
+import java.text.ParseException;
 import java.util.List;
 import java.util.Map;
 
@@ -89,4 +91,19 @@ public class EnvDataController {
     }
 
 
+    /**
+     * 添加环控数据(测试)
+     *
+     * @author newspaper
+     * @date  2023/12/20 14:38
+     */
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("添加环控数据(测试)")
+    @PostMapping("/env/envData/addData")
+    public CommonResult<String> addData(@RequestBody @Valid EnvDataAddParm envDataAddParm) throws ParseException {
+        envDataService.addData(envDataAddParm);
+        return CommonResult.ok();
+    }
+
+
 }

+ 23 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/env/envdata/param/EnvDataAddParm.java

@@ -0,0 +1,23 @@
+package vip.xiaonuo.modular.env.envdata.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import vip.xiaonuo.core.param.OrgIdParam;
+
+import javax.validation.constraints.NotBlank;
+import java.math.BigDecimal;
+
+@Data
+public class EnvDataAddParm extends OrgIdParam {
+
+    @ApiModelProperty(value = "栋舍ID", required = true, position = 1)
+    @NotBlank(message = "栋舍ID不能为空")
+    private String pigpenId;
+
+    @ApiModelProperty(value = "温度", required = true, position = 2)
+    private BigDecimal tem;
+
+    @ApiModelProperty(value = "湿度", required = true, position = 3)
+    private BigDecimal hum;
+
+}

+ 4 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/env/envdata/service/EnvDataService.java

@@ -17,10 +17,12 @@ import vip.xiaonuo.modular.env.envdata.entity.EnvData;
 import vip.xiaonuo.modular.env.envdata.entity.vo.EnvDataCarouselVo;
 import vip.xiaonuo.modular.env.envdata.entity.vo.EnvDataRecentVo;
 import vip.xiaonuo.modular.env.envdata.entity.vo.EnvDataTrendVo;
+import vip.xiaonuo.modular.env.envdata.param.EnvDataAddParm;
 import vip.xiaonuo.modular.env.envdata.param.EnvDataBuildNameParm;
 import vip.xiaonuo.modular.env.envdata.param.EnvDataListParm;
 import vip.xiaonuo.modular.env.envdata.param.EnvDataPigpenIdParm;
 
+import java.text.ParseException;
 import java.util.List;
 import java.util.Map;
 
@@ -37,4 +39,6 @@ public interface EnvDataService extends IService<EnvData> {
     EnvDataTrendVo listDataByPigpenId(EnvDataListParm envDataListParm);
 
     List<EnvDataCarouselVo> listData(EnvDataBuildNameParm envDataBuildNameParm);
+
+    void addData(EnvDataAddParm envDataAddParm) throws ParseException;
 }

+ 351 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/env/envdata/service/impl/EnvDataServiceImpl.java

@@ -17,15 +17,29 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import vip.xiaonuo.core.param.OrgIdParam;
+import vip.xiaonuo.modular.ai.taskInspection.entity.TaskInspection;
+import vip.xiaonuo.modular.ai.taskInspection.mapper.TaskInspectionMapper;
+import vip.xiaonuo.modular.ai.warningRemind.entity.WarningRemind;
+import vip.xiaonuo.modular.ai.warningRemind.mapper.WarningRemindMapper;
+import vip.xiaonuo.modular.base.baseConfig.entity.BaseConfig;
+import vip.xiaonuo.modular.base.baseConfig.mapper.BaseConfigMapper;
+import vip.xiaonuo.modular.base.baseSeason.entity.BaseSeason;
+import vip.xiaonuo.modular.base.baseSeason.mapper.BaseSeasonMapper;
+import vip.xiaonuo.modular.base.baseSeason.param.BaseSeasonTypeParam;
+import vip.xiaonuo.modular.base.baseSeason.service.BaseSeasonService;
 import vip.xiaonuo.modular.base.pigpen.entity.BasePigpen;
 import vip.xiaonuo.modular.base.pigpen.mapper.BasePigpenMapper;
 import vip.xiaonuo.modular.env.entity.EnvDeviceEquipment;
+import vip.xiaonuo.modular.env.envThreshold.entity.EnvThreshold;
+import vip.xiaonuo.modular.env.envThreshold.mapper.EnvThresholdMapper;
 import vip.xiaonuo.modular.env.envdata.entity.EnvData;
 import vip.xiaonuo.modular.env.envdata.entity.vo.EnvDataCarouselVo;
 import vip.xiaonuo.modular.env.envdata.entity.vo.EnvDataListVo;
 import vip.xiaonuo.modular.env.envdata.entity.vo.EnvDataRecentVo;
 import vip.xiaonuo.modular.env.envdata.entity.vo.EnvDataTrendVo;
 import vip.xiaonuo.modular.env.envdata.mapper.EnvDataMapper;
+import vip.xiaonuo.modular.env.envdata.param.EnvDataAddParm;
 import vip.xiaonuo.modular.env.envdata.param.EnvDataBuildNameParm;
 import vip.xiaonuo.modular.env.envdata.param.EnvDataListParm;
 import vip.xiaonuo.modular.env.envdata.param.EnvDataPigpenIdParm;
@@ -33,9 +47,16 @@ import vip.xiaonuo.modular.env.envdata.service.EnvDataService;
 import vip.xiaonuo.modular.env.envdevice.entity.EnvDevice;
 import vip.xiaonuo.modular.env.envdevice.mapper.EnvDeviceMapper;
 import vip.xiaonuo.modular.env.mapper.EnvDeviceEquipmentMapper;
+import vip.xiaonuo.modular.warning.warningInfo.entity.WarningInfo;
+import vip.xiaonuo.modular.warning.warningInfo.mapper.WarningInfoMapper;
+import vip.xiaonuo.modular.warning.warningManager.entity.WarningManager;
+import vip.xiaonuo.modular.warning.warningManager.mapper.WarningManagerMapper;
 
+import javax.validation.constraints.NotBlank;
 import java.math.BigDecimal;
+import java.text.ParseException;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -56,6 +77,20 @@ public class EnvDataServiceImpl extends ServiceImpl<EnvDataMapper, EnvData> impl
     private EnvDeviceEquipmentMapper envDeviceEquipmentMapper;
     @Autowired
     private EnvDeviceMapper envDeviceMapper;
+    @Autowired
+    private EnvThresholdMapper envThresholdMapper;
+    @Autowired
+    private BaseSeasonService baseSeasonService;
+    @Autowired
+    private WarningManagerMapper warningManagerMapper;
+    @Autowired
+    private BaseConfigMapper baseConfigMapper;
+    @Autowired
+    private WarningInfoMapper warningInfoMapper;
+    @Autowired
+    private TaskInspectionMapper taskInspectionMapper;
+    @Autowired
+    private WarningRemindMapper warningRemindMapper;
 
     @Override
     public List<EnvDataRecentVo> getLastDataByPigpenId(EnvDataPigpenIdParm envDataPigpenIdParm) {
@@ -139,4 +174,320 @@ public class EnvDataServiceImpl extends ServiceImpl<EnvDataMapper, EnvData> impl
         return envDatas;
     }
 
+    @Override
+    public void addData(EnvDataAddParm envDataAddParm) throws ParseException {
+        BigDecimal hum = envDataAddParm.getHum();
+        BigDecimal tem = envDataAddParm.getTem();
+        String pigpenId = envDataAddParm.getPigpenId();
+        String orgId = envDataAddParm.getOrgId();
+        BaseConfig baseConfig = baseConfigMapper.selectOne(new QueryWrapper<BaseConfig>().lambda().eq(BaseConfig::getConfigName, "预警类型").eq(BaseConfig::getParentId, 0));
+        BaseConfig envWarning = baseConfigMapper.selectOne(new QueryWrapper<BaseConfig>().lambda().eq(BaseConfig::getConfigName, "环控预警").eq(BaseConfig::getParentId, baseConfig.getId()));
+
+        WarningRemind warningRemind = warningRemindMapper.selectOne(new QueryWrapper<WarningRemind>().lambda()
+                .eq(WarningRemind::getWarningTypeId, envWarning.getId())
+                .eq(WarningRemind::getOrgId, orgId).eq(WarningRemind::getUnitId, pigpenId));
+
+
+
+        Date now = new Date();
+        Integer sea = 1 ;
+        EnvData envData = new EnvData();
+        envData.setAskTime(now);
+        envData.setUpdateTime(now);
+        envData.setHumiHandleValue(hum);
+        envData.setTemHandleValue(tem);
+        envData.setPigpenId(pigpenId);
+        this.save(envData);
+
+        if (ObjectUtil.isNotEmpty(warningRemind)){
+
+            System.out.println("warningRemind:"+warningRemind);
+            if (warningRemind.getTodayNoRemind() == 1){
+                return;
+            }
+        }
+
+        OrgIdParam orgIdParam = new OrgIdParam();
+        orgIdParam.setOrgId(orgId);
+        Integer seasonType = baseSeasonService.getEnableSeason(orgIdParam);
+
+        BaseSeasonTypeParam baseSeasonTypeParam = new BaseSeasonTypeParam();
+        baseSeasonTypeParam.setSeasonType(seasonType.toString());
+        baseSeasonTypeParam.setOrgId(orgId);
+        BaseSeason season = baseSeasonService.getSeason(baseSeasonTypeParam);
+
+        if (now.after(season.getSpringStartTime()) && now.before(season.getSpringEndTime())){
+            sea = 1;
+        }
+        if (now.after(season.getSummerStartTime()) && now.before(season.getSummerEndTime())){
+            sea = 2;
+        }
+        if (now.after(season.getAutumnStartTime()) && now.before(season.getAutumnEndTime())){
+            sea = 3;
+        }
+        if (now.after(season.getWinterStartTime()) && now.before(season.getWinterEndTime())){
+            sea = 4;
+        }
+
+        EnvThreshold envThreshold = envThresholdMapper.selectOne(new QueryWrapper<EnvThreshold>().lambda().eq(EnvThreshold::getUnitId, pigpenId));
+        if (ObjectUtil.isNotEmpty(envThreshold)){
+            if (sea == 1){
+                if ((tem.compareTo(envThreshold.getSpringTemLower()) < 0 )){
+                    WarningInfo warningInfo = new WarningInfo();
+                    WarningManager warningManager = warningManagerMapper.selectOne(new QueryWrapper<WarningManager>().lambda().eq(WarningManager::getType, 0).eq(WarningManager::getOrgId, orgId));
+                    if (ObjectUtil.isNotEmpty(warningManager)){
+                        warningInfo.setWarningNotifierId(warningManager.getSecondManagerId());
+                    }
+                    warningInfo.setUnitId(pigpenId);
+                    warningInfo.setWarningTypeId(envWarning.getId());
+                    warningInfo.setWarningTime(now);
+                    warningInfo.setOrgId(orgId);
+                    warningInfo.setWarningContent("温度"+ tem + "℃" +"低于阈值");
+                    warningInfoMapper.insert(warningInfo);
+
+                    this.generateInspection(warningManager,warningInfo,orgId);
+
+                }
+                if ((tem.compareTo(envThreshold.getSpringTemUpper()) > 0 )){
+                    WarningInfo warningInfo = new WarningInfo();
+                    WarningManager warningManager = warningManagerMapper.selectOne(new QueryWrapper<WarningManager>().lambda().eq(WarningManager::getType, 0).eq(WarningManager::getOrgId, orgId));
+                    if (ObjectUtil.isNotEmpty(warningManager)){
+                        warningInfo.setWarningNotifierId(warningManager.getSecondManagerId());
+                    }
+                    warningInfo.setUnitId(pigpenId);
+                    warningInfo.setWarningTypeId(envWarning.getId());
+                    warningInfo.setWarningTime(now);
+                    warningInfo.setOrgId(orgId);
+                    warningInfo.setWarningContent("温度"+ tem + "℃" +"高于阈值");
+                    warningInfoMapper.insert(warningInfo);
+
+                    this.generateInspection(warningManager,warningInfo,orgId);
+                }
+                if ((hum.compareTo(envThreshold.getSpringHumiLower()) < 0 )){
+                    WarningInfo warningInfo = new WarningInfo();
+                    WarningManager warningManager = warningManagerMapper.selectOne(new QueryWrapper<WarningManager>().lambda().eq(WarningManager::getType, 0).eq(WarningManager::getOrgId, orgId));
+                    if (ObjectUtil.isNotEmpty(warningManager)){
+                        warningInfo.setWarningNotifierId(warningManager.getSecondManagerId());
+                    }
+                    warningInfo.setUnitId(pigpenId);
+                    warningInfo.setWarningTypeId(envWarning.getId());
+                    warningInfo.setWarningTime(now);
+                    warningInfo.setOrgId(orgId);
+                    warningInfo.setWarningContent("湿度"+ hum +"低于阈值");
+                    warningInfoMapper.insert(warningInfo);
+
+                    this.generateInspection(warningManager,warningInfo,orgId);
+                }
+                if ((hum.compareTo(envThreshold.getSpringHumiUpper()) > 0 )){
+                    WarningInfo warningInfo = new WarningInfo();
+                    WarningManager warningManager = warningManagerMapper.selectOne(new QueryWrapper<WarningManager>().lambda().eq(WarningManager::getType, 0).eq(WarningManager::getOrgId, orgId));
+                    if (ObjectUtil.isNotEmpty(warningManager)){
+                        warningInfo.setWarningNotifierId(warningManager.getSecondManagerId());
+                    }
+                    warningInfo.setUnitId(pigpenId);
+                    warningInfo.setWarningTypeId(envWarning.getId());
+                    warningInfo.setWarningTime(now);
+                    warningInfo.setOrgId(orgId);
+                    warningInfo.setWarningContent("湿度"+ hum +"低于阈值");
+                    warningInfoMapper.insert(warningInfo);
+
+                    this.generateInspection(warningManager,warningInfo,orgId);
+                }
+            }else if (sea == 2){
+                if ((tem.compareTo(envThreshold.getSummerTemLower()) < 0 )){
+                    WarningInfo warningInfo = new WarningInfo();
+                    WarningManager warningManager = warningManagerMapper.selectOne(new QueryWrapper<WarningManager>().lambda().eq(WarningManager::getType, 0).eq(WarningManager::getOrgId, orgId));
+                    if (ObjectUtil.isNotEmpty(warningManager)){
+                        warningInfo.setWarningNotifierId(warningManager.getSecondManagerId());
+                    }
+                    warningInfo.setUnitId(pigpenId);
+                    warningInfo.setWarningTypeId(envWarning.getId());
+                    warningInfo.setWarningTime(now);
+                    warningInfo.setOrgId(orgId);
+                    warningInfo.setWarningContent("温度"+ tem + "℃" +"低于阈值");
+                    warningInfoMapper.insert(warningInfo);
+
+                    this.generateInspection(warningManager,warningInfo,orgId);
+                }
+                if ((tem.compareTo(envThreshold.getSummerTemUpper()) > 0 )){
+                    WarningInfo warningInfo = new WarningInfo();
+                    WarningManager warningManager = warningManagerMapper.selectOne(new QueryWrapper<WarningManager>().lambda().eq(WarningManager::getType, 0).eq(WarningManager::getOrgId, orgId));
+                    if (ObjectUtil.isNotEmpty(warningManager)){
+                        warningInfo.setWarningNotifierId(warningManager.getSecondManagerId());
+                    }
+                    warningInfo.setUnitId(pigpenId);
+                    warningInfo.setWarningTypeId(envWarning.getId());
+                    warningInfo.setWarningTime(now);
+                    warningInfo.setOrgId(orgId);
+                    warningInfo.setWarningContent("温度"+ tem + "℃" +"高于阈值");
+                    warningInfoMapper.insert(warningInfo);
+
+                    this.generateInspection(warningManager,warningInfo,orgId);
+                }
+                if ((hum.compareTo(envThreshold.getSummerHumiLower()) < 0 )){
+                    WarningInfo warningInfo = new WarningInfo();
+                    WarningManager warningManager = warningManagerMapper.selectOne(new QueryWrapper<WarningManager>().lambda().eq(WarningManager::getType, 0).eq(WarningManager::getOrgId, orgId));
+                    if (ObjectUtil.isNotEmpty(warningManager)){
+                        warningInfo.setWarningNotifierId(warningManager.getSecondManagerId());
+                    }
+                    warningInfo.setUnitId(pigpenId);
+                    warningInfo.setWarningTypeId(envWarning.getId());
+                    warningInfo.setWarningTime(now);
+                    warningInfo.setOrgId(orgId);
+                    warningInfo.setWarningContent("湿度"+ hum +"低于阈值");
+                    warningInfoMapper.insert(warningInfo);
+
+                    this.generateInspection(warningManager,warningInfo,orgId);
+                }
+                if ((hum.compareTo(envThreshold.getSummerHumiUpper()) > 0 )){
+                    WarningInfo warningInfo = new WarningInfo();
+                    WarningManager warningManager = warningManagerMapper.selectOne(new QueryWrapper<WarningManager>().lambda().eq(WarningManager::getType, 0).eq(WarningManager::getOrgId, orgId));
+                    if (ObjectUtil.isNotEmpty(warningManager)){
+                        warningInfo.setWarningNotifierId(warningManager.getSecondManagerId());
+                    }
+                    warningInfo.setUnitId(pigpenId);
+                    warningInfo.setWarningTypeId(envWarning.getId());
+                    warningInfo.setWarningTime(now);
+                    warningInfo.setOrgId(orgId);
+                    warningInfo.setWarningContent("湿度"+ hum +"低于阈值");
+                    warningInfoMapper.insert(warningInfo);
+
+                    this.generateInspection(warningManager,warningInfo,orgId);
+                }
+            }else if (sea == 3){
+                if ((tem.compareTo(envThreshold.getAutumnTemLower()) < 0 )){
+                    WarningInfo warningInfo = new WarningInfo();
+                    WarningManager warningManager = warningManagerMapper.selectOne(new QueryWrapper<WarningManager>().lambda().eq(WarningManager::getType, 0).eq(WarningManager::getOrgId, orgId));
+                    if (ObjectUtil.isNotEmpty(warningManager)){
+                        warningInfo.setWarningNotifierId(warningManager.getSecondManagerId());
+                    }
+                    warningInfo.setUnitId(pigpenId);
+                    warningInfo.setWarningTypeId(envWarning.getId());
+                    warningInfo.setWarningTime(now);
+                    warningInfo.setOrgId(orgId);
+                    warningInfo.setWarningContent("温度"+ tem + "℃" +"低于阈值");
+                    warningInfoMapper.insert(warningInfo);
+
+                    this.generateInspection(warningManager,warningInfo,orgId);
+                }
+                if ((tem.compareTo(envThreshold.getAutumnTemUpper()) > 0 )){
+                    WarningInfo warningInfo = new WarningInfo();
+                    WarningManager warningManager = warningManagerMapper.selectOne(new QueryWrapper<WarningManager>().lambda().eq(WarningManager::getType, 0).eq(WarningManager::getOrgId, orgId));
+                    if (ObjectUtil.isNotEmpty(warningManager)){
+                        warningInfo.setWarningNotifierId(warningManager.getSecondManagerId());
+                    }
+                    warningInfo.setUnitId(pigpenId);
+                    warningInfo.setWarningTypeId(envWarning.getId());
+                    warningInfo.setWarningTime(now);
+                    warningInfo.setOrgId(orgId);
+                    warningInfo.setWarningContent("温度"+ tem + "℃" +"高于阈值");
+                    warningInfoMapper.insert(warningInfo);
+
+                    this.generateInspection(warningManager,warningInfo,orgId);
+                }
+                if ((hum.compareTo(envThreshold.getAutumnHumiLower()) < 0 )){
+                    WarningInfo warningInfo = new WarningInfo();
+                    WarningManager warningManager = warningManagerMapper.selectOne(new QueryWrapper<WarningManager>().lambda().eq(WarningManager::getType, 0).eq(WarningManager::getOrgId, orgId));
+                    if (ObjectUtil.isNotEmpty(warningManager)){
+                        warningInfo.setWarningNotifierId(warningManager.getSecondManagerId());
+                    }
+                    warningInfo.setUnitId(pigpenId);
+                    warningInfo.setWarningTypeId(envWarning.getId());
+                    warningInfo.setWarningTime(now);
+                    warningInfo.setOrgId(orgId);
+                    warningInfo.setWarningContent("湿度"+ hum +"低于阈值");
+                    warningInfoMapper.insert(warningInfo);
+
+                    this.generateInspection(warningManager,warningInfo,orgId);
+                }
+                if ((hum.compareTo(envThreshold.getAutumnHumiUpper()) > 0 )){
+                    WarningInfo warningInfo = new WarningInfo();
+                    WarningManager warningManager = warningManagerMapper.selectOne(new QueryWrapper<WarningManager>().lambda().eq(WarningManager::getType, 0).eq(WarningManager::getOrgId, orgId));
+                    if (ObjectUtil.isNotEmpty(warningManager)){
+                        warningInfo.setWarningNotifierId(warningManager.getSecondManagerId());
+                    }
+                    warningInfo.setUnitId(pigpenId);
+                    warningInfo.setWarningTypeId(envWarning.getId());
+                    warningInfo.setWarningTime(now);
+                    warningInfo.setOrgId(orgId);
+                    warningInfo.setWarningContent("湿度"+ hum +"低于阈值");
+                    warningInfoMapper.insert(warningInfo);
+
+                    this.generateInspection(warningManager,warningInfo,orgId);
+                }
+            }
+            else{
+                if ((tem.compareTo(envThreshold.getWinterTemLower()) < 0 )){
+                    WarningInfo warningInfo = new WarningInfo();
+                    WarningManager warningManager = warningManagerMapper.selectOne(new QueryWrapper<WarningManager>().lambda().eq(WarningManager::getType, 0).eq(WarningManager::getOrgId, orgId));
+                    if (ObjectUtil.isNotEmpty(warningManager)){
+                        warningInfo.setWarningNotifierId(warningManager.getSecondManagerId());
+                    }
+                    warningInfo.setUnitId(pigpenId);
+                    warningInfo.setWarningTypeId(envWarning.getId());
+                    warningInfo.setWarningTime(now);
+                    warningInfo.setOrgId(orgId);
+                    warningInfo.setWarningContent("温度"+ tem + "℃" +"低于阈值");
+                    warningInfoMapper.insert(warningInfo);
+
+                    this.generateInspection(warningManager,warningInfo,orgId);
+                }
+                if ((tem.compareTo(envThreshold.getWinterTemUpper()) > 0 )){
+                    WarningInfo warningInfo = new WarningInfo();
+                    WarningManager warningManager = warningManagerMapper.selectOne(new QueryWrapper<WarningManager>().lambda().eq(WarningManager::getType, 0).eq(WarningManager::getOrgId, orgId));
+                    if (ObjectUtil.isNotEmpty(warningManager)){
+                        warningInfo.setWarningNotifierId(warningManager.getSecondManagerId());
+                    }
+                    warningInfo.setUnitId(pigpenId);
+                    warningInfo.setWarningTypeId(envWarning.getId());
+                    warningInfo.setWarningTime(now);
+                    warningInfo.setOrgId(orgId);
+                    warningInfo.setWarningContent("温度"+ tem + "℃" +"高于阈值");
+                    warningInfoMapper.insert(warningInfo);
+
+                    this.generateInspection(warningManager,warningInfo,orgId);
+                }
+                if ((hum.compareTo(envThreshold.getWinterHumiLower()) < 0 )){
+                    WarningInfo warningInfo = new WarningInfo();
+                    WarningManager warningManager = warningManagerMapper.selectOne(new QueryWrapper<WarningManager>().lambda().eq(WarningManager::getType, 0).eq(WarningManager::getOrgId, orgId));
+                    if (ObjectUtil.isNotEmpty(warningManager)){
+                        warningInfo.setWarningNotifierId(warningManager.getSecondManagerId());
+                    }
+                    warningInfo.setUnitId(pigpenId);
+                    warningInfo.setWarningTypeId(envWarning.getId());
+                    warningInfo.setWarningTime(now);
+                    warningInfo.setOrgId(orgId);
+                    warningInfo.setWarningContent("湿度"+ hum +"低于阈值");
+                    warningInfoMapper.insert(warningInfo);
+
+                    this.generateInspection(warningManager,warningInfo,orgId);
+                }
+                if ((hum.compareTo(envThreshold.getWinterHumiUpper()) > 0 )){
+                    WarningInfo warningInfo = new WarningInfo();
+                    WarningManager warningManager = warningManagerMapper.selectOne(new QueryWrapper<WarningManager>().lambda().eq(WarningManager::getType, 0).eq(WarningManager::getOrgId, orgId));
+                    if (ObjectUtil.isNotEmpty(warningManager)){
+                        warningInfo.setWarningNotifierId(warningManager.getSecondManagerId());
+                    }
+                    warningInfo.setUnitId(pigpenId);
+                    warningInfo.setWarningTypeId(envWarning.getId());
+                    warningInfo.setWarningTime(now);
+                    warningInfo.setOrgId(orgId);
+                    warningInfo.setWarningContent("湿度"+ hum +"低于阈值");
+                    warningInfoMapper.insert(warningInfo);
+
+                    this.generateInspection(warningManager,warningInfo,orgId);
+                }
+            }
+        }
+    }
+    private void generateInspection(WarningManager warningManager, WarningInfo warningInfo,String orgId){
+        TaskInspection taskInspection = new TaskInspection();
+        if (ObjectUtil.isNotEmpty(warningManager)){
+            taskInspection.setNotifierId(warningManager.getSecondManagerId());
+            taskInspection.setWarningId(warningInfo.getId());
+            taskInspection.setOrgId(orgId);
+            taskInspectionMapper.insert(taskInspection);
+        }
+    }
+
 }

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

@@ -259,7 +259,7 @@ public class EnvDeviceServiceImpl extends ServiceImpl<EnvDeviceMapper, EnvDevice
     public List<BaseConfig> deviceTypeSelector(EnvDeviceOrgIdParam envDeviceOrgIdParam) {
         String orgId = envDeviceOrgIdParam.getOrgId();
         String parentId = baseConfigMapper.selectOne(new QueryWrapper<BaseConfig>().lambda().eq(BaseConfig::getParentId, 0).eq(BaseConfig::getConfigName, "环控设备类型")).getId();
-        List<BaseConfig> baseConfigs = baseConfigMapper.selectList(new QueryWrapper<BaseConfig>().lambda().eq(BaseConfig::getParentId, parentId).eq(BaseConfig::getOrgId, orgId));
+        List<BaseConfig> baseConfigs = baseConfigMapper.selectList(new QueryWrapper<BaseConfig>().lambda().eq(BaseConfig::getStatus,1).eq(BaseConfig::getParentId, parentId).eq(BaseConfig::getOrgId, orgId));
         return baseConfigs;
     }