瀏覽代碼

环境监测

Newspaper 1 年之前
父節點
當前提交
ca37c648f5

+ 19 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/controller/EnvDataController.java

@@ -1,10 +1,17 @@
 package com.huimv.guowei.admin.controller;
 
 
+import com.huimv.guowei.admin.common.utils.Result;
+import com.huimv.guowei.admin.service.IEnvDataService;
+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 javax.annotation.Resource;
+import java.util.Map;
+
 /**
  * <p>
  *  前端控制器
@@ -16,5 +23,17 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController
 @RequestMapping("/env-data")
 public class EnvDataController {
+    @Resource
+    private IEnvDataService envDataService;
+
+    @PostMapping("/getLastFlow")
+    public Result getLastFlow(@RequestBody Map<String ,String> paramsMap){
+        return envDataService.getLastFlow(paramsMap);
+    }
+
+    @PostMapping("/listByBuild")
+    public Result listByBuild(@RequestBody Map<String ,String> paramsMap){
+        return envDataService.listByBuild(paramsMap);
+    }
 
 }

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

@@ -6,6 +6,8 @@ import java.time.LocalDate;
 import com.baomidou.mybatisplus.annotation.TableId;
 import  java.util.Date;
 import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -56,6 +58,7 @@ public class EnvData implements Serializable {
 
     private Integer farmId;
 
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
     private Date createTime;
 
     /**

+ 10 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/entity/vo/EnvDataVo.java

@@ -0,0 +1,10 @@
+package com.huimv.guowei.admin.entity.vo;
+
+import lombok.Data;
+
+@Data
+public class EnvDataVo {
+    private String buildName;
+    private String envTemp;
+    private String envHum;
+}

+ 12 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/mapper/EnvDataMapper.java

@@ -2,6 +2,9 @@ package com.huimv.guowei.admin.mapper;
 
 import com.huimv.guowei.admin.entity.EnvData;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.guowei.admin.entity.vo.EnvDataVo;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +16,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface EnvDataMapper extends BaseMapper<EnvData> {
 
+    List<EnvDataVo> getLastFlow(String farmId);
+
+    List<EnvData> listDayDetail(String farmId, String unitId);
+
+    List<EnvData> listWeekDetail(String farmId, String unitId);
+
+    List<EnvData> listMonthDetail(String farmId, String unitId);
+
+    List<EnvData> listCustomDetail(String farmId, String unitId, String startDate, String endDate);
 }

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

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

+ 64 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/EnvDataServiceImpl.java

@@ -1,11 +1,23 @@
 package com.huimv.guowei.admin.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.huimv.guowei.admin.common.utils.Result;
+import com.huimv.guowei.admin.common.utils.ResultCode;
+import com.huimv.guowei.admin.entity.BaseBuilding;
 import com.huimv.guowei.admin.entity.EnvData;
+import com.huimv.guowei.admin.entity.vo.EnvDataVo;
+import com.huimv.guowei.admin.mapper.BaseBuildingMapper;
 import com.huimv.guowei.admin.mapper.EnvDataMapper;
 import com.huimv.guowei.admin.service.IEnvDataService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
  *  服务实现类
@@ -17,4 +29,56 @@ import org.springframework.stereotype.Service;
 @Service
 public class EnvDataServiceImpl extends ServiceImpl<EnvDataMapper, EnvData> implements IEnvDataService {
 
+    @Resource
+    private EnvDataMapper envDataMapper;
+
+    @Resource
+    private BaseBuildingMapper baseBuildingMapper;
+
+    @Override
+    public Result getLastFlow(Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        List<EnvDataVo> envDataList = envDataMapper.getLastFlow(farmId);
+        return new Result(ResultCode.SUCCESS,envDataList);
+    }
+
+    @Override
+    public Result listByBuild(Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        String unitId = paramsMap.get("unitId");
+        String startDate = paramsMap.get("startDate");
+        String endDate = paramsMap.get("endDate")+" 23:59:59";
+        String type = paramsMap.get("type");
+
+        List<EnvData> envDataList = null;
+//      默认情况:第一个栋舍的本周数据
+        if (StringUtils.isBlank(type)){
+            List<BaseBuilding> baseBuildings = baseBuildingMapper.selectList(new QueryWrapper<BaseBuilding>().eq("parent_id", 0));
+            if (ObjectUtil.isEmpty(baseBuildings)){
+                return new Result(10001,"请先添加栋舍!",false);
+            }else {
+                unitId = String.valueOf(baseBuildings.get(0).getId());
+                envDataList = envDataMapper.listWeekDetail(farmId,unitId);
+            }
+        }
+
+        //今日查询
+        if ("0".equals(type)){
+            envDataList = envDataMapper.listDayDetail(farmId,unitId);
+        }
+        //本周查询
+        else if ("1".equals(type)){
+            envDataList = envDataMapper.listWeekDetail(farmId,unitId);
+        }
+        //本月查询
+        else if ("2".equals(type)){
+            envDataList = envDataMapper.listMonthDetail(farmId,unitId);
+        }
+        //自定义查询
+        else if ("3".equals(type)){
+            envDataList = envDataMapper.listCustomDetail(farmId,unitId,startDate,endDate);
+        }
+        return new Result(ResultCode.SUCCESS,envDataList);
+    }
+
 }

+ 42 - 0
huimv-admin/src/main/resources/mapper/EnvDataMapper.xml

@@ -18,4 +18,46 @@
         <result column="other3" property="other3" />
     </resultMap>
 
+    <select id="getLastFlow" resultType="com.huimv.guowei.admin.entity.vo.EnvDataVo">
+        SELECT b.build_name,d.env_temp,d.env_hum FROM `env_data` d LEFT JOIN `base_building`  b
+    ON b.id = d.unit_id
+    WHERE d.id IN (
+        SELECT MAX(id)
+        FROM `env_data`
+        GROUP BY unit_id
+    )AND d.farm_id = #{farmId}
+    ORDER BY b.id ASC
+    </select>
+
+    <select id="listDayDetail" resultType="com.huimv.guowei.admin.entity.EnvData">
+        SELECT ROUND(env_temp,2) 'envTemp',ROUND(env_hum,2) 'envHum',create_time FROM `env_data`
+        WHERE unit_id = #{unitId}
+        AND farm_id = #{farmId}
+        AND TO_DAYS(create_time) = TO_DAYS(NOW()) ORDER BY create_time ASC
+    </select>
+
+    <select id="listWeekDetail" resultType="com.huimv.guowei.admin.entity.EnvData">
+        SELECT ROUND(AVG(env_temp),2) 'envTemp',ROUND(AVG(env_hum),2) 'envHum',create_time FROM `env_data`
+        WHERE unit_id = #{unitId}
+        AND farm_id = #{farmId}
+        AND create_time BETWEEN (SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) DAY)) AND NOW()
+        GROUP BY DATE_FORMAT(create_time,"%Y-%m-%d")
+    </select>
+
+    <select id="listMonthDetail" resultType="com.huimv.guowei.admin.entity.EnvData">
+        SELECT ROUND(AVG(env_temp),2) 'envTemp',ROUND(AVG(env_hum),2) 'envHum',create_time FROM `env_data`
+        WHERE unit_id = #{unitId}
+        AND farm_id = #{farmId}
+        AND create_time BETWEEN (SELECT DATE_ADD(CURDATE(),INTERVAL -DAY(CURDATE())+1 DAY)) AND NOW()
+        GROUP BY DATE_FORMAT(create_time,"%Y-%m-%d")
+    </select>
+
+    <select id="listCustomDetail" resultType="com.huimv.guowei.admin.entity.EnvData">
+        SELECT ROUND(AVG(env_temp),2) 'envTemp',ROUND(AVG(env_hum),2) 'envHum',create_time FROM `env_data`
+        WHERE unit_id = #{unitId}
+        AND farm_id = #{farmId}
+        AND create_time BETWEEN '#{startDate}' AND '#{endDate}'
+        GROUP BY DATE_FORMAT(create_time,"%Y-%m-%d")
+    </select>
+
 </mapper>