Przeglądaj źródła

牧场信息、能耗统计

Newspaper 2 lat temu
rodzic
commit
8dd4cae03b
43 zmienionych plików z 673 dodań i 36 usunięć
  1. 5 0
      pom.xml
  2. 19 5
      src/main/java/com/huimv/admin/common/utils/DataUill.java
  3. 6 1
      src/main/java/com/huimv/admin/controller/BasePigpenController.java
  4. 14 0
      src/main/java/com/huimv/admin/controller/EnvElectricityController.java
  5. 14 0
      src/main/java/com/huimv/admin/controller/EnvFeedController.java
  6. 7 1
      src/main/java/com/huimv/admin/controller/EnvWarningController.java
  7. 14 0
      src/main/java/com/huimv/admin/controller/EnvWaterController.java
  8. 4 2
      src/main/java/com/huimv/admin/entity/EnvAmmonia.java
  9. 4 2
      src/main/java/com/huimv/admin/entity/EnvCo2.java
  10. 4 3
      src/main/java/com/huimv/admin/entity/EnvData.java
  11. 4 2
      src/main/java/com/huimv/admin/entity/EnvElectricity.java
  12. 4 2
      src/main/java/com/huimv/admin/entity/EnvFeed.java
  13. 4 2
      src/main/java/com/huimv/admin/entity/EnvHumi.java
  14. 4 2
      src/main/java/com/huimv/admin/entity/EnvPressure.java
  15. 4 2
      src/main/java/com/huimv/admin/entity/EnvStive.java
  16. 4 2
      src/main/java/com/huimv/admin/entity/EnvTemp.java
  17. 4 2
      src/main/java/com/huimv/admin/entity/EnvWater.java
  18. 19 0
      src/main/java/com/huimv/admin/entity/vo/BasePigpenCountVo.java
  19. 15 0
      src/main/java/com/huimv/admin/entity/vo/energyMonthVo.java
  20. 15 0
      src/main/java/com/huimv/admin/entity/vo/energyYearVo.java
  21. 2 0
      src/main/java/com/huimv/admin/mapper/BasePigpenMapper.java
  22. 15 0
      src/main/java/com/huimv/admin/mapper/EnvElectricityMapper.java
  23. 15 0
      src/main/java/com/huimv/admin/mapper/EnvFeedMapper.java
  24. 15 0
      src/main/java/com/huimv/admin/mapper/EnvWaterMapper.java
  25. 2 0
      src/main/java/com/huimv/admin/service/IBasePigpenService.java
  26. 4 1
      src/main/java/com/huimv/admin/service/IEnvElectricityService.java
  27. 4 0
      src/main/java/com/huimv/admin/service/IEnvFeedService.java
  28. 3 1
      src/main/java/com/huimv/admin/service/IEnvWarningService.java
  29. 4 0
      src/main/java/com/huimv/admin/service/IEnvWaterService.java
  30. 79 5
      src/main/java/com/huimv/admin/service/impl/BasePigpenServiceImpl.java
  31. 103 0
      src/main/java/com/huimv/admin/service/impl/EnvElectricityServiceImpl.java
  32. 103 0
      src/main/java/com/huimv/admin/service/impl/EnvFeedServiceImpl.java
  33. 0 1
      src/main/java/com/huimv/admin/service/impl/EnvWarningServiceImpl.java
  34. 104 0
      src/main/java/com/huimv/admin/service/impl/EnvWaterServiceImpl.java
  35. 0 0
      src/main/resources/mapper/AccountGroupMapper.xml
  36. 0 0
      src/main/resources/mapper/EnvDataMapper.xml
  37. 0 0
      src/main/resources/mapper/EnvDeviceMapper.xml
  38. 17 0
      src/main/resources/mapper/EnvElectricityMapper.xml
  39. 17 0
      src/main/resources/mapper/EnvFeedMapper.xml
  40. 18 0
      src/main/resources/mapper/EnvWaterMapper.xml
  41. 0 0
      src/main/resources/mapper/GroupMenuMapper.xml
  42. 0 0
      src/main/resources/mapper/MenuMapper.xml
  43. 0 0
      src/main/resources/mapper/UserMapper.xml

+ 5 - 0
pom.xml

@@ -35,6 +35,11 @@
             <version>3.3.0</version>
         </dependency>
         <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-boot-starter</artifactId>
+            <version>3.0.0</version>
+        </dependency>
+        <dependency>
             <groupId>com.belerweb</groupId>
             <artifactId>pinyin4j</artifactId>
             <version>2.5.1</version>

+ 19 - 5
src/main/java/com/huimv/admin/common/utils/DataUill.java

@@ -126,10 +126,13 @@ public class DataUill {
   
   
     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();
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.DAY_OF_YEAR, 1);
+        calendar.set(Calendar.HOUR_OF_DAY, 0);
+        calendar.set(Calendar.MINUTE, 0);
+        calendar.set(Calendar.SECOND, 0);
+        Date firstDayOfYear = calendar.getTime();
+        return firstDayOfYear;
     }
   
     public static Date getCurrentYearEndTime() {
@@ -138,12 +141,23 @@ public class DataUill {
         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 getLastYearEndTime(){
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.YEAR, Calendar.getInstance().get(Calendar.YEAR) - 1);
+        calendar.set(Calendar.MONTH, Calendar.DECEMBER);
+        calendar.set(Calendar.DAY_OF_MONTH, 31);
+        calendar.set(Calendar.HOUR_OF_DAY, 23);
+        calendar.set(Calendar.MINUTE, 59);
+        calendar.set(Calendar.SECOND, 59);
+        Date lastDayOfLastYear = calendar.getTime();
+        return lastDayOfLastYear;
+    }
   
 }

+ 6 - 1
src/main/java/com/huimv/admin/controller/BasePigpenController.java

@@ -5,7 +5,7 @@ import com.huimv.admin.common.utils.Result;
 import com.huimv.admin.common.utils.ResultUtil;
 import com.huimv.admin.entity.BasePigpen;
 import com.huimv.admin.entity.dto.BasePigpenDto;
-import com.huimv.admin.service.IBasePigpenService;
+import com.huimv.admin.service.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -78,4 +78,9 @@ public class BasePigpenController {
         }
         return basePigpenService.list(farmCode,buildName,stageCode);
     }
+
+    @PostMapping("/countAll")
+    public Result countAll(@RequestBody Map<String,String> paramsMap){
+        return basePigpenService.countAll(paramsMap);
+    }
 }

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

@@ -1,10 +1,17 @@
 package com.huimv.admin.controller;
 
 
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.service.IEnvElectricityService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Map;
+
 /**
  * <p>
  *  前端控制器
@@ -17,4 +24,11 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/env-electricity")
 public class EnvElectricityController {
 
+    @Autowired
+    private IEnvElectricityService envElectricityService;
+
+    @PostMapping("/list")
+    public Result listElectricity(@RequestBody Map<String, String> paramsMap){
+        return envElectricityService.listElectricity(paramsMap);
+    }
 }

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

@@ -1,10 +1,17 @@
 package com.huimv.admin.controller;
 
 
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.service.IEnvFeedService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Map;
+
 /**
  * <p>
  *  前端控制器
@@ -17,4 +24,11 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/env-feed")
 public class EnvFeedController {
 
+    @Autowired
+    private IEnvFeedService envFeedService;
+
+    @PostMapping("/list")
+    public Result listFeed(@RequestBody Map<String, String> paramsMap){
+        return envFeedService.listFeed(paramsMap);
+    }
 }

+ 7 - 1
src/main/java/com/huimv/admin/controller/EnvWarningController.java

@@ -1,10 +1,17 @@
 package com.huimv.admin.controller;
 
 
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.service.IEnvWarningService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Map;
+
 /**
  * <p>
  *  前端控制器
@@ -16,5 +23,4 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController
 @RequestMapping("/env-warning")
 public class EnvWarningController {
-
 }

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

@@ -1,10 +1,17 @@
 package com.huimv.admin.controller;
 
 
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.service.IEnvWaterService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Map;
+
 /**
  * <p>
  *  前端控制器
@@ -17,4 +24,11 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/env-water")
 public class EnvWaterController {
 
+    @Autowired
+    private IEnvWaterService envWaterService;
+
+    @PostMapping("/list")
+    public Result listWater(@RequestBody Map<String, String> paramsMap){
+        return envWaterService.listWater(paramsMap);
+    }
 }

+ 4 - 2
src/main/java/com/huimv/admin/entity/EnvAmmonia.java

@@ -3,6 +3,8 @@ package com.huimv.admin.entity;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.io.Serializable;
 import io.swagger.annotations.ApiModel;
@@ -41,10 +43,10 @@ public class EnvAmmonia implements Serializable {
     private String unitId;
 
     @ApiModelProperty(value = "原始值记录")
-    private String originalValue;
+    private BigDecimal originalValue;
 
     @ApiModelProperty(value = "处理后的值")
-    private String handleValue;
+    private BigDecimal handleValue;
 
     @ApiModelProperty(value = "应答时间")
     private LocalDateTime askTime;

+ 4 - 2
src/main/java/com/huimv/admin/entity/EnvCo2.java

@@ -3,6 +3,8 @@ package com.huimv.admin.entity;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.io.Serializable;
 import io.swagger.annotations.ApiModel;
@@ -41,10 +43,10 @@ public class EnvCo2 implements Serializable {
     private String unitId;
 
     @ApiModelProperty(value = "原始值记录")
-    private String originalValue;
+    private BigDecimal originalValue;
 
     @ApiModelProperty(value = "处理后的值")
-    private String handleValue;
+    private BigDecimal handleValue;
 
     @ApiModelProperty(value = "应答时间")
     private LocalDateTime askTime;

+ 4 - 3
src/main/java/com/huimv/admin/entity/EnvData.java

@@ -9,6 +9,7 @@ import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -38,17 +39,17 @@ public class EnvData implements Serializable {
     /**
      * 温度
      */
-    private String envTemp;
+    private BigDecimal envTemp;
 
     /**
      * 湿度
      */
-    private String envHum;
+    private BigDecimal envHum;
 
     /**
      * 原始值
      */
-    private String originalData;
+    private BigDecimal originalData;
 
     /**
      * 单元id

+ 4 - 2
src/main/java/com/huimv/admin/entity/EnvElectricity.java

@@ -3,6 +3,8 @@ package com.huimv.admin.entity;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.io.Serializable;
 import io.swagger.annotations.ApiModel;
@@ -41,10 +43,10 @@ public class EnvElectricity implements Serializable {
     private String unitId;
 
     @ApiModelProperty(value = "原始值记录")
-    private String originalValue;
+    private BigDecimal originalValue;
 
     @ApiModelProperty(value = "处理后的值")
-    private String handleValue;
+    private BigDecimal handleValue;
 
     @ApiModelProperty(value = "应答时间")
     private LocalDateTime askTime;

+ 4 - 2
src/main/java/com/huimv/admin/entity/EnvFeed.java

@@ -3,6 +3,8 @@ package com.huimv.admin.entity;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.io.Serializable;
 import io.swagger.annotations.ApiModel;
@@ -41,10 +43,10 @@ public class EnvFeed implements Serializable {
     private String unitId;
 
     @ApiModelProperty(value = "原始值记录")
-    private String originalValue;
+    private BigDecimal originalValue;
 
     @ApiModelProperty(value = "处理后的值")
-    private String handleValue;
+    private BigDecimal handleValue;
 
     @ApiModelProperty(value = "应答时间")
     private LocalDateTime askTime;

+ 4 - 2
src/main/java/com/huimv/admin/entity/EnvHumi.java

@@ -3,6 +3,8 @@ package com.huimv.admin.entity;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.io.Serializable;
 import io.swagger.annotations.ApiModel;
@@ -41,10 +43,10 @@ public class EnvHumi implements Serializable {
     private String unitId;
 
     @ApiModelProperty(value = "原始值记录")
-    private String originalValue;
+    private BigDecimal originalValue;
 
     @ApiModelProperty(value = "处理后的值")
-    private String handleValue;
+    private BigDecimal handleValue;
 
     @ApiModelProperty(value = "应答时间")
     private LocalDateTime askTime;

+ 4 - 2
src/main/java/com/huimv/admin/entity/EnvPressure.java

@@ -3,6 +3,8 @@ package com.huimv.admin.entity;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.io.Serializable;
 import io.swagger.annotations.ApiModel;
@@ -41,10 +43,10 @@ public class EnvPressure implements Serializable {
     private String unitId;
 
     @ApiModelProperty(value = "原始值记录")
-    private String originalValue;
+    private BigDecimal originalValue;
 
     @ApiModelProperty(value = "处理后的值")
-    private String handleValue;
+    private BigDecimal handleValue;
 
     @ApiModelProperty(value = "应答时间")
     private LocalDateTime askTime;

+ 4 - 2
src/main/java/com/huimv/admin/entity/EnvStive.java

@@ -3,6 +3,8 @@ package com.huimv.admin.entity;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.io.Serializable;
 import io.swagger.annotations.ApiModel;
@@ -41,10 +43,10 @@ public class EnvStive implements Serializable {
     private String unitId;
 
     @ApiModelProperty(value = "原始值记录")
-    private String originalValue;
+    private BigDecimal originalValue;
 
     @ApiModelProperty(value = "处理后的值")
-    private String handleValue;
+    private BigDecimal handleValue;
 
     @ApiModelProperty(value = "应答时间")
     private LocalDateTime askTime;

+ 4 - 2
src/main/java/com/huimv/admin/entity/EnvTemp.java

@@ -3,6 +3,8 @@ package com.huimv.admin.entity;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.io.Serializable;
 import io.swagger.annotations.ApiModel;
@@ -41,10 +43,10 @@ public class EnvTemp implements Serializable {
     private String unitId;
 
     @ApiModelProperty(value = "原始值记录")
-    private String originalValue;
+    private BigDecimal originalValue;
 
     @ApiModelProperty(value = "处理后的值")
-    private String handleValue;
+    private BigDecimal handleValue;
 
     @ApiModelProperty(value = "应答时间")
     private LocalDateTime askTime;

+ 4 - 2
src/main/java/com/huimv/admin/entity/EnvWater.java

@@ -3,6 +3,8 @@ package com.huimv.admin.entity;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.io.Serializable;
 import io.swagger.annotations.ApiModel;
@@ -41,10 +43,10 @@ public class EnvWater implements Serializable {
     private String unitId;
 
     @ApiModelProperty(value = "原始值记录")
-    private String originalValue;
+    private BigDecimal originalValue;
 
     @ApiModelProperty(value = "处理后的值")
-    private String handleValue;
+    private BigDecimal handleValue;
 
     @ApiModelProperty(value = "应答时间")
     private LocalDateTime askTime;

+ 19 - 0
src/main/java/com/huimv/admin/entity/vo/BasePigpenCountVo.java

@@ -0,0 +1,19 @@
+package com.huimv.admin.entity.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class BasePigpenCountVo {
+    private Integer buildingNum;
+    private Integer unitNum;
+    private Integer monthWarning;
+    private Integer dayWarning;
+    private BigDecimal monthWater;
+    private BigDecimal dayWater;
+    private BigDecimal monthElectricity;
+    private BigDecimal dayElectricity;
+    private BigDecimal monthFeed;
+    private BigDecimal dayFeed;
+}

+ 15 - 0
src/main/java/com/huimv/admin/entity/vo/energyMonthVo.java

@@ -0,0 +1,15 @@
+package com.huimv.admin.entity.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Data
+public class energyMonthVo {
+    private BigDecimal value;
+
+    @JsonFormat(pattern = "yyyy-MM-dd" ,timezone = "GMT+8")
+    private LocalDateTime date;
+}

+ 15 - 0
src/main/java/com/huimv/admin/entity/vo/energyYearVo.java

@@ -0,0 +1,15 @@
+package com.huimv.admin.entity.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Data
+public class energyYearVo {
+    private BigDecimal value;
+
+    @JsonFormat(pattern = "yyyy-MM" ,timezone = "GMT+8")
+    private LocalDateTime date;
+}

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

@@ -2,6 +2,7 @@ package com.huimv.admin.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.huimv.admin.entity.BasePigpen;
+import org.springframework.stereotype.Repository;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.huimv.admin.entity.BasePigpen;
  * @author author
  * @since 2023-02-13
  */
+@Repository
 public interface BasePigpenMapper extends BaseMapper<BasePigpen> {
 
 }

+ 15 - 0
src/main/java/com/huimv/admin/mapper/EnvElectricityMapper.java

@@ -1,7 +1,16 @@
 package com.huimv.admin.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.huimv.admin.entity.EnvElectricity;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.admin.entity.vo.energyMonthVo;
+import com.huimv.admin.entity.vo.energyYearVo;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * <p>
@@ -11,6 +20,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @author author
  * @since 2023-03-23
  */
+@Repository
 public interface EnvElectricityMapper extends BaseMapper<EnvElectricity> {
 
+    List<energyMonthVo> listDayElectricity(@Param(Constants.WRAPPER)QueryWrapper<EnvElectricity> queryWrapper);
+
+    BigDecimal getElectricity(@Param(Constants.WRAPPER)QueryWrapper<EnvElectricity> queryWrapper);
+
+    List<energyYearVo> listMonthElectricity(@Param(Constants.WRAPPER)QueryWrapper<EnvElectricity> queryWrapper);
 }

+ 15 - 0
src/main/java/com/huimv/admin/mapper/EnvFeedMapper.java

@@ -1,7 +1,16 @@
 package com.huimv.admin.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.huimv.admin.entity.EnvFeed;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.admin.entity.vo.energyMonthVo;
+import com.huimv.admin.entity.vo.energyYearVo;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * <p>
@@ -11,6 +20,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @author author
  * @since 2023-03-23
  */
+@Repository
 public interface EnvFeedMapper extends BaseMapper<EnvFeed> {
 
+    BigDecimal getFeed(@Param(Constants.WRAPPER)QueryWrapper<EnvFeed> eq);
+
+    List<energyMonthVo> listDayFeed(@Param(Constants.WRAPPER) QueryWrapper<EnvFeed> queryWrapper);
+
+    List<energyYearVo> listMonthFeed(@Param(Constants.WRAPPER) QueryWrapper<EnvFeed> queryWrapper);
 }

+ 15 - 0
src/main/java/com/huimv/admin/mapper/EnvWaterMapper.java

@@ -1,7 +1,16 @@
 package com.huimv.admin.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.huimv.admin.entity.EnvWater;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.admin.entity.vo.energyMonthVo;
+import com.huimv.admin.entity.vo.energyYearVo;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * <p>
@@ -11,6 +20,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @author author
  * @since 2023-03-23
  */
+@Repository
 public interface EnvWaterMapper extends BaseMapper<EnvWater> {
 
+    BigDecimal getWater(@Param(Constants.WRAPPER) QueryWrapper<EnvWater> update_time);
+
+    List<energyMonthVo> listDayWater(@Param(Constants.WRAPPER) QueryWrapper<EnvWater> ge);
+
+    List<energyYearVo> listMonthWater(@Param(Constants.WRAPPER) QueryWrapper<EnvWater> ge);
 }

+ 2 - 0
src/main/java/com/huimv/admin/service/IBasePigpenService.java

@@ -24,4 +24,6 @@ public interface IBasePigpenService extends IService<BasePigpen> {
     Result updatePigpen(BasePigpen basePigpen);
 
     Result deletePigpen(Map<String, Integer> map);
+
+    Result countAll(Map<String, String> paramsMap);
 }

+ 4 - 1
src/main/java/com/huimv/admin/service/IEnvElectricityService.java

@@ -1,8 +1,11 @@
 package com.huimv.admin.service;
 
+import com.huimv.admin.common.utils.Result;
 import com.huimv.admin.entity.EnvElectricity;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.Map;
+
 /**
  * <p>
  *  服务类
@@ -12,5 +15,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @since 2023-03-23
  */
 public interface IEnvElectricityService extends IService<EnvElectricity> {
-
+    Result listElectricity(Map<String, String> paramsMap);
 }

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

@@ -1,8 +1,11 @@
 package com.huimv.admin.service;
 
+import com.huimv.admin.common.utils.Result;
 import com.huimv.admin.entity.EnvFeed;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.Map;
+
 /**
  * <p>
  *  服务类
@@ -13,4 +16,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IEnvFeedService extends IService<EnvFeed> {
 
+    Result listFeed(Map<String, String> paramsMap);
 }

+ 3 - 1
src/main/java/com/huimv/admin/service/IEnvWarningService.java

@@ -1,8 +1,11 @@
 package com.huimv.admin.service;
 
+import com.huimv.admin.common.utils.Result;
 import com.huimv.admin.entity.EnvWarning;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.Map;
+
 /**
  * <p>
  *  服务类
@@ -12,5 +15,4 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @since 2023-03-23
  */
 public interface IEnvWarningService extends IService<EnvWarning> {
-
 }

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

@@ -1,8 +1,11 @@
 package com.huimv.admin.service;
 
+import com.huimv.admin.common.utils.Result;
 import com.huimv.admin.entity.EnvWater;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.Map;
+
 /**
  * <p>
  *  服务类
@@ -13,4 +16,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IEnvWaterService extends IService<EnvWater> {
 
+    Result listWater(Map<String, String> paramsMap);
 }

+ 79 - 5
src/main/java/com/huimv/admin/service/impl/BasePigpenServiceImpl.java

@@ -2,24 +2,27 @@ package com.huimv.admin.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.convert.Convert;
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.huimv.admin.common.utils.DataUill;
 import com.huimv.admin.common.utils.Result;
 import com.huimv.admin.common.utils.ResultCode;
 import com.huimv.admin.common.utils.ResultUtil;
-import com.huimv.admin.entity.BasePigpen;
-import com.huimv.admin.entity.EnvDevice;
+import com.huimv.admin.entity.*;
 import com.huimv.admin.entity.dto.BasePigpenDto;
+import com.huimv.admin.entity.vo.BasePigpenCountVo;
 import com.huimv.admin.entity.vo.TreeBasePigpen;
-import com.huimv.admin.mapper.BasePigpenMapper;
-import com.huimv.admin.mapper.EnvDeviceMapper;
-import com.huimv.admin.service.IBasePigpenService;
+import com.huimv.admin.mapper.*;
+import com.huimv.admin.service.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -38,6 +41,16 @@ public class BasePigpenServiceImpl extends ServiceImpl<BasePigpenMapper, BasePig
     private BasePigpenMapper basePigpenMapper;
     @Autowired
     private EnvDeviceMapper envDeviceMapper;
+    @Autowired
+    private IBasePigpenService basePigpenService;
+    @Autowired
+    private IEnvWarningService envWarningService;
+    @Autowired
+    private EnvWaterMapper envWaterMapper;
+    @Autowired
+    private EnvElectricityMapper envElectricityMapper;
+    @Autowired
+    private EnvFeedMapper envFeedMapper;
 
     @Override
     @Transactional
@@ -107,6 +120,67 @@ public class BasePigpenServiceImpl extends ServiceImpl<BasePigpenMapper, BasePig
     }
 
     @Override
+    public Result countAll(Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        Date timesMonthmorning = DataUill.getTimesMonthmorning();
+        Date timesmorning = DataUill.getTimesmorning();
+        BasePigpenCountVo basePigpenCountVo = new BasePigpenCountVo();
+        //牧场栋舍
+        basePigpenCountVo.setBuildingNum(basePigpenService.count(new QueryWrapper<BasePigpen>()
+                .eq("parent_id", 0)
+                .eq("farm_id",farmId)));
+        basePigpenCountVo.setUnitNum(basePigpenService.count(new QueryWrapper<BasePigpen>()
+                .ne("parent_id",0)
+                .eq("farm_id",farmId)));
+        //牧场预警
+        basePigpenCountVo.setMonthWarning(envWarningService.count(new QueryWrapper<EnvWarning>()
+                .ge("update_time",timesMonthmorning)
+                .eq("farm_id",farmId)));
+        basePigpenCountVo.setDayWarning(envWarningService.count(new QueryWrapper<EnvWarning>()
+                .ge("update_time",timesmorning)
+                .eq("farm_id",farmId)));
+        BigDecimal monthWater = envWaterMapper.getWater(new QueryWrapper<EnvWater>().ge("update_time", timesMonthmorning).eq("farm_id", farmId));
+        if (ObjectUtil.isNull(monthWater)){
+            monthWater = BigDecimal.ZERO;
+        }
+        basePigpenCountVo.setMonthWater(monthWater);
+        BigDecimal dayWater = envWaterMapper.getWater(new QueryWrapper<EnvWater>().ge("update_time", timesmorning).eq("farm_id", farmId));
+        if (ObjectUtil.isNull(dayWater)){
+            dayWater = BigDecimal.ZERO;
+        }
+        basePigpenCountVo.setDayWater(dayWater);
+        BigDecimal monthElectricity = envElectricityMapper.getElectricity(new QueryWrapper<EnvElectricity>()
+                .ge("update_time", timesMonthmorning)
+                .eq("farm_id", farmId));
+        if (ObjectUtil.isNull(monthElectricity)){
+            monthElectricity = BigDecimal.ZERO;
+        }
+        basePigpenCountVo.setMonthElectricity(monthElectricity);
+        BigDecimal dayElectricity = envElectricityMapper.getElectricity(new QueryWrapper<EnvElectricity>()
+                .ge("update_time", timesmorning)
+                .eq("farm_id", farmId));
+        if (ObjectUtil.isNull(dayElectricity)){
+            dayElectricity = BigDecimal.ZERO;
+        }
+        basePigpenCountVo.setDayElectricity(dayElectricity);
+        BigDecimal monthFeed = envFeedMapper.getFeed(new QueryWrapper<EnvFeed>()
+                .ge("update_time", timesMonthmorning)
+                .eq("farm_id", farmId));
+        if (ObjectUtil.isNull(monthFeed)){
+            monthFeed = BigDecimal.ZERO;
+        }
+        basePigpenCountVo.setMonthFeed(monthFeed);
+        BigDecimal dayFeed = envFeedMapper.getFeed(new QueryWrapper<EnvFeed>()
+                .ge("update_time", timesmorning)
+                .eq("farm_id", farmId));
+        if (ObjectUtil.isNull(dayFeed)){
+            dayFeed = BigDecimal.ZERO;
+        }
+        basePigpenCountVo.setDayFeed(dayFeed);
+        return new Result(ResultCode.SUCCESS,basePigpenCountVo);
+    }
+
+    @Override
     public Result list(String farmCode, String buildName, String stageCode) {
         QueryWrapper<BasePigpen> queryWrapper = new QueryWrapper<>();
         queryWrapper.like(StringUtils.isNotBlank(buildName),"build_name", buildName);

+ 103 - 0
src/main/java/com/huimv/admin/service/impl/EnvElectricityServiceImpl.java

@@ -1,11 +1,25 @@
 package com.huimv.admin.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.admin.common.utils.DataUill;
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.common.utils.ResultCode;
 import com.huimv.admin.entity.EnvElectricity;
+import com.huimv.admin.entity.EnvWater;
+import com.huimv.admin.entity.vo.energyMonthVo;
+import com.huimv.admin.entity.vo.energyYearVo;
 import com.huimv.admin.mapper.EnvElectricityMapper;
 import com.huimv.admin.service.IEnvElectricityService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
 /**
  * <p>
  *  服务实现类
@@ -17,4 +31,93 @@ import org.springframework.stereotype.Service;
 @Service
 public class EnvElectricityServiceImpl extends ServiceImpl<EnvElectricityMapper, EnvElectricity> implements IEnvElectricityService {
 
+    @Autowired
+    private EnvElectricityMapper envElectricityMapper;
+    @Override
+    public Result listElectricity(Map<String, String> paramsMap) {
+        Date timesMonthmorning = DataUill.getTimesMonthmorning();
+        Date currentYearStartTime = DataUill.getCurrentYearStartTime();
+        Date lastYearStartTime = DataUill.getLastYearStartTime();
+        Date lastYearEndTime = DataUill.getLastYearEndTime();
+
+        String farmId = paramsMap.get("farmId");
+        String type =  paramsMap.get("type");
+
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //格式化时间
+        QueryWrapper<EnvElectricity> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id",farmId);
+        Map resultMap = new HashMap();
+        //月
+        if ("1".equals(type)){
+            queryWrapper.ge("update_time",timesMonthmorning);
+            List<energyMonthVo> energyMonthVos = envElectricityMapper.listDayElectricity(queryWrapper);
+            resultMap.put("data", energyMonthVos);
+            BigDecimal currentElectricity = envElectricityMapper.getElectricity(queryWrapper);
+            if (ObjectUtil.isNull(currentElectricity)){
+                currentElectricity = BigDecimal.ZERO;
+            }
+            resultMap.put("currentValue",currentElectricity);
+            //上个月
+            //获取上个月的第一天
+            Calendar cal_1 = Calendar.getInstance();//获取当前日期
+            cal_1.add(Calendar.MONTH, -1);
+            cal_1.set(Calendar.DAY_OF_MONTH, 1);//设置为1号
+            cal_1.set(Calendar.HOUR_OF_DAY, 0);
+            cal_1.set(Calendar.MINUTE, 0);
+            cal_1.set(Calendar.SECOND, 0);
+            String firstDay = format.format(cal_1.getTime());
+            //获取上个月的最后一天
+            Calendar cal_2 = Calendar.getInstance();
+            cal_2.set(Calendar.DAY_OF_MONTH, 0);//设置为1号,当前日期既为本月第一天
+            cal_2.set(Calendar.HOUR_OF_DAY, 23);
+            cal_2.set(Calendar.MINUTE, 59);
+            cal_2.set(Calendar.SECOND, 59);
+            String lastDay = format.format(cal_2.getTime());
+            QueryWrapper<EnvElectricity> wrapper = new QueryWrapper();
+            wrapper.eq("farm_id",farmId).between("update_time",firstDay,lastDay);
+            BigDecimal lastElectricity = envElectricityMapper.getElectricity(wrapper);
+            if (ObjectUtil.isNull(lastElectricity)){
+                resultMap.put("lastValue",0);
+                resultMap.put("gap",100);
+                return new Result(ResultCode.SUCCESS,resultMap);
+            }
+            resultMap.put("lastValue",lastElectricity);
+            double gap = ((currentElectricity.doubleValue() - lastElectricity.doubleValue()) / lastElectricity.doubleValue()) * 100;
+            if (ObjectUtil.isNull(gap)){
+                gap = 0.0;
+            }
+            BigDecimal bg = new BigDecimal(gap).setScale(2, RoundingMode.UP);
+            resultMap.put("gap",bg);
+            return new Result(ResultCode.SUCCESS,resultMap);
+        }else {
+            //年
+            queryWrapper.ge("update_time",currentYearStartTime);
+            List<energyYearVo> energyMonthVos = envElectricityMapper.listMonthElectricity(queryWrapper);
+            resultMap.put("data", energyMonthVos);
+            BigDecimal currentElectricity = envElectricityMapper.getElectricity(queryWrapper);
+            if (ObjectUtil.isNull(currentElectricity)){
+                currentElectricity = BigDecimal.ZERO;
+            }
+            resultMap.put("currentValue",currentElectricity);
+            //上一年
+            String firstDay = format.format(lastYearStartTime);
+            String lastDay = format.format(lastYearEndTime);
+            QueryWrapper<EnvElectricity> wrapper = new QueryWrapper();
+            wrapper.eq("farm_id",farmId).between("update_time",firstDay,lastDay);
+            BigDecimal lastElectricity = envElectricityMapper.getElectricity(wrapper);
+            if (ObjectUtil.isNull(lastElectricity)){
+                resultMap.put("lastValue",0);
+                resultMap.put("gap",100);
+                return new Result(ResultCode.SUCCESS,resultMap);
+            }
+            resultMap.put("lastValue",lastElectricity);
+            double gap = ((currentElectricity.doubleValue() - lastElectricity.doubleValue()) / lastElectricity.doubleValue()) * 100;
+            if (ObjectUtil.isNull(gap)){
+                gap = 0.0;
+            }
+            BigDecimal bg = new BigDecimal(gap).setScale(2, RoundingMode.UP);
+            resultMap.put("gap",bg);
+            return new Result(ResultCode.SUCCESS,resultMap);
+        }
+    }
 }

+ 103 - 0
src/main/java/com/huimv/admin/service/impl/EnvFeedServiceImpl.java

@@ -1,11 +1,25 @@
 package com.huimv.admin.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.admin.common.utils.DataUill;
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.common.utils.ResultCode;
 import com.huimv.admin.entity.EnvFeed;
+import com.huimv.admin.entity.EnvWater;
+import com.huimv.admin.entity.vo.energyMonthVo;
+import com.huimv.admin.entity.vo.energyYearVo;
 import com.huimv.admin.mapper.EnvFeedMapper;
 import com.huimv.admin.service.IEnvFeedService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
 /**
  * <p>
  *  服务实现类
@@ -17,4 +31,93 @@ import org.springframework.stereotype.Service;
 @Service
 public class EnvFeedServiceImpl extends ServiceImpl<EnvFeedMapper, EnvFeed> implements IEnvFeedService {
 
+    @Autowired
+    private EnvFeedMapper envFeedMapper;
+
+    @Override
+    public Result listFeed(Map<String, String> paramsMap) {
+        Date timesMonthmorning = DataUill.getTimesMonthmorning();
+        Date currentYearStartTime = DataUill.getCurrentYearStartTime();
+        Date lastYearStartTime = DataUill.getLastYearStartTime();
+        Date lastYearEndTime = DataUill.getLastYearEndTime();
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //格式化时间
+
+        String farmId = paramsMap.get("farmId");
+        String type =  paramsMap.get("type");
+        QueryWrapper<EnvFeed> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id",farmId);
+        Map resultMap = new HashMap();
+        //月
+        if ("1".equals(type)){
+            queryWrapper.ge("update_time",timesMonthmorning);
+            List<energyMonthVo> energyMonthVos = envFeedMapper.listDayFeed(queryWrapper);
+            resultMap.put("data", energyMonthVos);
+            BigDecimal currentFeed = envFeedMapper.getFeed(queryWrapper);
+            if (ObjectUtil.isNull(currentFeed)){
+                currentFeed = BigDecimal.ZERO;
+            }
+            resultMap.put("currentValue",currentFeed);
+            //上个月
+            //获取上个月的第一天
+            Calendar cal_1 = Calendar.getInstance();//获取当前日期
+            cal_1.add(Calendar.MONTH, -1);
+            cal_1.set(Calendar.DAY_OF_MONTH, 1);//设置为1号
+            cal_1.set(Calendar.HOUR_OF_DAY, 0);
+            cal_1.set(Calendar.MINUTE, 0);
+            cal_1.set(Calendar.SECOND, 0);
+            String firstDay = format.format(cal_1.getTime());
+            //获取上个月的最后一天
+            Calendar cal_2 = Calendar.getInstance();
+            cal_2.set(Calendar.DAY_OF_MONTH, 0);//设置为1号,当前日期既为本月第一天
+            cal_2.set(Calendar.HOUR_OF_DAY, 23);
+            cal_2.set(Calendar.MINUTE, 59);
+            cal_2.set(Calendar.SECOND, 59);
+            String lastDay = format.format(cal_2.getTime());
+            QueryWrapper<EnvFeed> wrapper = new QueryWrapper();
+            wrapper.eq("farm_id",farmId).between("update_time",firstDay,lastDay);
+            BigDecimal lastFeed = envFeedMapper.getFeed(wrapper);
+            if (ObjectUtil.isNull(lastFeed)){
+                resultMap.put("lastValue",0);
+                resultMap.put("gap",100);
+                return new Result(ResultCode.SUCCESS,resultMap);
+            }
+            resultMap.put("lastValue",lastFeed);
+            double gap = ((currentFeed.doubleValue() - lastFeed.doubleValue()) / lastFeed.doubleValue()) * 100;
+            if (ObjectUtil.isNull(gap)){
+                gap = 0.0;
+            }
+            BigDecimal bg = new BigDecimal(gap).setScale(2, RoundingMode.UP);
+            resultMap.put("gap",bg);
+            return new Result(ResultCode.SUCCESS,resultMap);
+        }else {
+            //年
+            queryWrapper.ge("update_time",currentYearStartTime);
+            List<energyYearVo> energyMonthVos = envFeedMapper.listMonthFeed(queryWrapper);
+            resultMap.put("data", energyMonthVos);
+            BigDecimal currentFeed = envFeedMapper.getFeed(queryWrapper);
+            if (ObjectUtil.isNull(currentFeed)){
+                currentFeed = BigDecimal.ZERO;
+            }
+            resultMap.put("currentValue",currentFeed);
+            //上一年
+            String firstDay = format.format(lastYearStartTime);
+            String lastDay = format.format(lastYearEndTime);
+            QueryWrapper<EnvFeed> wrapper = new QueryWrapper();
+            wrapper.eq("farm_id",farmId).between("update_time",firstDay,lastDay);
+            BigDecimal lastFeed = envFeedMapper.getFeed(wrapper);
+            if (ObjectUtil.isNull(lastFeed)){
+                resultMap.put("lastValue",0);
+                resultMap.put("gap",100);
+                return new Result(ResultCode.SUCCESS,resultMap);
+            }
+            resultMap.put("lastValue",lastFeed);
+            double gap = ((currentFeed.doubleValue() - lastFeed.doubleValue()) / lastFeed.doubleValue()) * 100;
+            if (ObjectUtil.isNull(gap)){
+                gap = 0.0;
+            }
+            BigDecimal bg = new BigDecimal(gap).setScale(2, RoundingMode.UP);
+            resultMap.put("gap",bg);
+            return new Result(ResultCode.SUCCESS,resultMap);
+        }
+    }
 }

+ 0 - 1
src/main/java/com/huimv/admin/service/impl/EnvWarningServiceImpl.java

@@ -16,5 +16,4 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class EnvWarningServiceImpl extends ServiceImpl<EnvWarningMapper, EnvWarning> implements IEnvWarningService {
-
 }

+ 104 - 0
src/main/java/com/huimv/admin/service/impl/EnvWaterServiceImpl.java

@@ -1,11 +1,24 @@
 package com.huimv.admin.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.admin.common.utils.DataUill;
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.common.utils.ResultCode;
 import com.huimv.admin.entity.EnvWater;
+import com.huimv.admin.entity.vo.energyMonthVo;
+import com.huimv.admin.entity.vo.energyYearVo;
 import com.huimv.admin.mapper.EnvWaterMapper;
 import com.huimv.admin.service.IEnvWaterService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
 /**
  * <p>
  *  服务实现类
@@ -17,4 +30,95 @@ import org.springframework.stereotype.Service;
 @Service
 public class EnvWaterServiceImpl extends ServiceImpl<EnvWaterMapper, EnvWater> implements IEnvWaterService {
 
+    @Autowired
+    private EnvWaterMapper envWaterMapper;
+
+    @Override
+    public Result listWater(Map<String, String> paramsMap) {
+        Date timesMonthmorning = DataUill.getTimesMonthmorning();
+        Date currentYearStartTime = DataUill.getCurrentYearStartTime();
+        Date lastYearStartTime = DataUill.getLastYearStartTime();
+        Date lastYearEndTime = DataUill.getLastYearEndTime();
+
+        String farmId = paramsMap.get("farmId");
+        String type =  paramsMap.get("type");
+
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //格式化时间
+        QueryWrapper<EnvWater> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id",farmId);
+        Map resultMap = new HashMap();
+        //月
+        if ("1".equals(type)){
+            queryWrapper.ge("update_time",timesMonthmorning);
+            List<energyMonthVo> energyMonthVos = envWaterMapper.listDayWater(queryWrapper);
+            resultMap.put("data", energyMonthVos);
+            BigDecimal currentWater = envWaterMapper.getWater(queryWrapper);
+            if (ObjectUtil.isNull(currentWater)){
+                currentWater = BigDecimal.ZERO;
+            }
+            resultMap.put("currentValue",currentWater);
+            //上个月
+            //获取上个月的第一天
+            Calendar cal_1 = Calendar.getInstance();//获取当前日期
+            cal_1.add(Calendar.MONTH, -1);
+            cal_1.set(Calendar.DAY_OF_MONTH, 1);//设置为1号
+            cal_1.set(Calendar.HOUR_OF_DAY, 0);
+            cal_1.set(Calendar.MINUTE, 0);
+            cal_1.set(Calendar.SECOND, 0);
+            String firstDay = format.format(cal_1.getTime());
+            //获取上个月的最后一天
+            Calendar cal_2 = Calendar.getInstance();
+            cal_2.set(Calendar.DAY_OF_MONTH, 0);//设置为1号,当前日期既为本月第一天
+            cal_2.set(Calendar.HOUR_OF_DAY, 23);
+            cal_2.set(Calendar.MINUTE, 59);
+            cal_2.set(Calendar.SECOND, 59);
+            String lastDay = format.format(cal_2.getTime());
+            QueryWrapper<EnvWater> wrapper = new QueryWrapper();
+            wrapper.eq("farm_id",farmId).between("update_time",firstDay,lastDay);
+            BigDecimal lastWater = envWaterMapper.getWater(wrapper);
+            if (ObjectUtil.isNull(lastWater)){
+                resultMap.put("lastValue",0);
+                resultMap.put("gap",100);
+                return new Result(ResultCode.SUCCESS,resultMap);
+            }
+            resultMap.put("lastValue",lastWater);
+            double gap = ((currentWater.doubleValue() - lastWater.doubleValue()) / lastWater.doubleValue()) * 100;
+            if (ObjectUtil.isNull(gap)){
+                gap = 0.0;
+            }
+            BigDecimal bg = new BigDecimal(gap).setScale(2, RoundingMode.UP);
+            resultMap.put("gap",bg);
+            return new Result(ResultCode.SUCCESS,resultMap);
+        }else {
+            //年
+            queryWrapper.ge("update_time",currentYearStartTime);
+            List<energyYearVo> energyMonthVos = envWaterMapper.listMonthWater(queryWrapper);
+            resultMap.put("data", energyMonthVos);
+            BigDecimal currentWater = envWaterMapper.getWater(queryWrapper);
+            if (ObjectUtil.isNull(currentWater)){
+                currentWater = BigDecimal.ZERO;
+            }
+            resultMap.put("currentValue",currentWater);
+            //上一年
+            String firstDay = format.format(lastYearStartTime);
+            String lastDay = format.format(lastYearEndTime);
+            QueryWrapper<EnvWater> wrapper = new QueryWrapper();
+            wrapper.eq("farm_id",farmId).between("update_time",firstDay,lastDay);
+            BigDecimal lastWater = envWaterMapper.getWater(wrapper);
+            if (ObjectUtil.isNull(lastWater)){
+                resultMap.put("lastValue",0);
+                resultMap.put("gap",100);
+                return new Result(ResultCode.SUCCESS,resultMap);
+            }
+            resultMap.put("lastValue",lastWater);
+            double gap = ((currentWater.doubleValue() - lastWater.doubleValue()) / lastWater.doubleValue()) * 100;
+            if (ObjectUtil.isNull(gap)){
+                gap = 0.0;
+            }
+            BigDecimal bg = new BigDecimal(gap).setScale(2, RoundingMode.UP);
+            resultMap.put("gap",bg);
+            return new Result(ResultCode.SUCCESS,resultMap);
+        }
+
+    }
 }

src/main/resources/com/huimv/admin/mapper/AccountGroupMapper.xml → src/main/resources/mapper/AccountGroupMapper.xml


src/main/resources/com/huimv/admin/mapper/EnvDataMapper.xml → src/main/resources/mapper/EnvDataMapper.xml


src/main/resources/com/huimv/admin/mapper/EnvDeviceMapper.xml → src/main/resources/mapper/EnvDeviceMapper.xml


+ 17 - 0
src/main/resources/mapper/EnvElectricityMapper.xml

@@ -2,4 +2,21 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.huimv.admin.mapper.EnvElectricityMapper">
 
+    <select id="getElectricity" resultType="java.math.BigDecimal">
+        select ROUND(SUM(handle_value),2) FROM `env_electricity`
+        ${ew.customSqlSegment}
+    </select>
+
+    <select id="listDayElectricity" resultType="com.huimv.admin.entity.vo.energyMonthVo">
+        select ROUND(SUM(`handle_value`),2) as 'value' ,update_time as 'date' from `env_electricity`
+        ${ew.customSqlSegment}
+         GROUP BY DATE_FORMAT(update_time,"%y-%m-%d")
+    </select>
+
+    <select id="listMonthElectricity" resultType="com.huimv.admin.entity.vo.energyYearVo">
+        select ROUND(SUM(`handle_value`),2) as 'value' ,update_time as 'date' from `env_electricity`
+        ${ew.customSqlSegment}
+         GROUP BY DATE_FORMAT(update_time,"%y-%m")
+    </select>
+
 </mapper>

+ 17 - 0
src/main/resources/mapper/EnvFeedMapper.xml

@@ -2,4 +2,21 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.huimv.admin.mapper.EnvFeedMapper">
 
+    <select id="getFeed" resultType="java.math.BigDecimal">
+        select ROUND(SUM(handle_value),2) FROM `env_feed`
+        ${ew.customSqlSegment}
+    </select>
+
+    <select id="listDayFeed" resultType="com.huimv.admin.entity.vo.energyMonthVo">
+        select ROUND(SUM(`handle_value`),2) as 'value' ,update_time as 'date' from `env_feed`
+        ${ew.customSqlSegment}
+         GROUP BY DATE_FORMAT(update_time,"%y-%m-%d")
+    </select>
+
+    <select id="listMonthFeed" resultType="com.huimv.admin.entity.vo.energyYearVo">
+        select ROUND(SUM(`handle_value`),2) as 'value' ,update_time as 'date' from `env_feed`
+        ${ew.customSqlSegment}
+         GROUP BY DATE_FORMAT(update_time,"%y-%m")
+    </select>
+
 </mapper>

+ 18 - 0
src/main/resources/mapper/EnvWaterMapper.xml

@@ -2,4 +2,22 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.huimv.admin.mapper.EnvWaterMapper">
 
+    <select id="getWater" resultType="java.math.BigDecimal">
+        select ROUND(SUM(handle_value),2) FROM `env_water`
+        ${ew.customSqlSegment}
+    </select>
+
+    <select id="listDayWater" resultType="com.huimv.admin.entity.vo.energyMonthVo">
+        select ROUND(SUM(`handle_value`),2) as 'value' ,update_time as 'date' from `env_water`
+        ${ew.customSqlSegment}
+         GROUP BY DATE_FORMAT(update_time,"%y-%m-%d")
+    </select>
+
+    <select id="listMonthWater" resultType="com.huimv.admin.entity.vo.energyYearVo">
+        select ROUND(SUM(`handle_value`),2) as 'value' ,update_time as 'date' from `env_water`
+        ${ew.customSqlSegment}
+         GROUP BY DATE_FORMAT(update_time,"%y-%m")
+    </select>
+
+
 </mapper>

src/main/resources/com/huimv/admin/mapper/GroupMenuMapper.xml → src/main/resources/mapper/GroupMenuMapper.xml


src/main/resources/com/huimv/admin/mapper/MenuMapper.xml → src/main/resources/mapper/MenuMapper.xml


src/main/resources/com/huimv/admin/mapper/UserMapper.xml → src/main/resources/mapper/UserMapper.xml