Procházet zdrojové kódy

新建读取最近7天环保记录。

zhuoning před 3 roky
rodič
revize
5fcebd782d

+ 21 - 0
huimv-farm-v2/huimv-env/src/main/java/com/huimv/env/environ/controller/EnvironController.java

@@ -5,6 +5,8 @@ import com.huimv.env.environ.service.IEnviron;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.text.ParseException;
+
 /**
  * @Project : huimv.shiwan
  * @Package : com.huimv.biosafety.uface.controller
@@ -35,4 +37,23 @@ public class EnvironController {
         //
         return environ.getLastEnviron(farmId);
     }
+
+    /**
+     * @Method      : getLastSevenDayEnviron
+     * @Description : 获取最近N天环保数据集合
+     * @Params      : [farmId,days]
+     * @Return      : com.huimv.common.result.Result
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/12/3       
+     * @Time        : 20:51
+     */
+    @RequestMapping(value = "/getLastSevenDayEnviron",method = RequestMethod.GET)
+    public Result getLastSevenDayEnviron(@RequestParam(value = "farmId",required = true) Integer farmId,@RequestParam(value = "days",required = true) Integer days) throws ParseException {
+        if(days == null){
+            days = 7;
+        }
+        //
+        return environ.getLastSevenDayEnviron(farmId,days);
+    }
 }

+ 105 - 0
huimv-farm-v2/huimv-env/src/main/java/com/huimv/env/environ/dao/entity/EnvDayEntity.java

@@ -0,0 +1,105 @@
+package com.huimv.env.environ.dao.entity;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.sql.Timestamp;
+import java.util.Date;
+
+@Entity
+@Table(name = "env_day")
+public class EnvDayEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "id", nullable = false)
+    private Integer id;
+
+    @Column(name = "farm_id")
+    private Integer farmId;
+
+    @Column(name = "add_date")
+    private Date addDate;
+
+    @Column(name = "cod")
+    private String cod;
+
+    @Column(name = "ad")
+    private String ad;
+
+    @Column(name = "ph")
+    private String ph;
+
+    @Column(name = "ws")
+    private String ws;
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setFarmId(Integer farmId) {
+        this.farmId = farmId;
+    }
+
+    public Integer getFarmId() {
+        return farmId;
+    }
+
+    public Date getAddDate() {
+        return addDate;
+    }
+
+    public void setAddDate(Date addDate) {
+        this.addDate = addDate;
+    }
+
+    public void setCod(String cod) {
+        this.cod = cod;
+    }
+
+    public String getCod() {
+        return cod;
+    }
+
+    public void setAd(String ad) {
+        this.ad = ad;
+    }
+
+    public String getAd() {
+        return ad;
+    }
+
+    public void setPh(String ph) {
+        this.ph = ph;
+    }
+
+    public String getPh() {
+        return ph;
+    }
+
+    public void setWs(String ws) {
+        this.ws = ws;
+    }
+
+    public String getWs() {
+        return ws;
+    }
+
+    @Override
+    public String toString() {
+        return "EnvDayEntity{" +
+                "id=" + id +
+                ", farmId=" + farmId +
+                ", addDate=" + addDate +
+                ", cod='" + cod + '\'' +
+                ", ad='" + ad + '\'' +
+                ", ph='" + ph + '\'' +
+                ", ws='" + ws + '\'' +
+                '}';
+    }
+}

+ 16 - 0
huimv-farm-v2/huimv-env/src/main/java/com/huimv/env/environ/dao/repo/EnvDayRepo.java

@@ -0,0 +1,16 @@
+package com.huimv.env.environ.dao.repo;
+
+import com.huimv.env.environ.dao.entity.EnvDayEntity;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
+
+import java.util.Date;
+import java.util.List;
+
+public interface EnvDayRepo extends JpaRepository<EnvDayEntity, Integer>, JpaSpecificationExecutor<EnvDayEntity> {
+
+    //
+    @Query(nativeQuery = true,value ="SELECT * FROM env_day where farm_id=?1 AND add_date=?2 ORDER BY add_date DESC LIMIT ?3")
+    List<EnvDayEntity> findByFarmIdAndAddDate(Integer farmId, Date todayDate,Integer days);
+}

+ 1 - 0
huimv-farm-v2/huimv-env/src/main/java/com/huimv/env/environ/dao/repo/EnvHourRepo.java

@@ -9,6 +9,7 @@ import java.util.Optional;
 
 public interface EnvHourRepo extends JpaRepository<EnvHourEntity, Integer>, JpaSpecificationExecutor<EnvHourEntity> {
 
+    //
     @Query(nativeQuery = true,value ="SELECT * FROM env_hour where farm_id=?1 ORDER BY id DESC LIMIT 1")
     Optional<EnvHourEntity> findLastOne(Integer farmId);
 }

+ 4 - 0
huimv-farm-v2/huimv-env/src/main/java/com/huimv/env/environ/service/IEnviron.java

@@ -2,7 +2,11 @@ package com.huimv.env.environ.service;
 
 import com.huimv.common.result.Result;
 
+import java.text.ParseException;
+
 public interface IEnviron {
     //
     Result getLastEnviron(Integer farmId);
+
+    Result getLastSevenDayEnviron(Integer farmId,Integer days) throws ParseException;
 }

+ 51 - 0
huimv-farm-v2/huimv-env/src/main/java/com/huimv/env/environ/service/impl/EnvironImpl.java

@@ -1,16 +1,23 @@
 package com.huimv.env.environ.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.huimv.common.result.Result;
 import com.huimv.common.result.ResultCode;
+import com.huimv.env.environ.dao.entity.EnvDayEntity;
 import com.huimv.env.environ.dao.entity.EnvHourEntity;
+import com.huimv.env.environ.dao.repo.EnvDayRepo;
 import com.huimv.env.environ.dao.repo.EnvHourRepo;
 import com.huimv.env.environ.service.IEnviron;
 import com.huimv.env.utils.Const;
+import com.huimv.env.utils.DateUtil;
 import org.hibernate.criterion.Example;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.text.ParseException;
+import java.util.List;
 import java.util.Optional;
 
 /**
@@ -25,6 +32,10 @@ import java.util.Optional;
 public class EnvironImpl implements IEnviron {
     @Autowired
     private EnvHourRepo envHourRepo;
+    @Autowired
+    private EnvDayRepo envDayRepo;
+    @Autowired
+    private DateUtil dateUtil;
     /**
      * @Method      : getLastEnviron
      * @Description : 读取最后一条记录
@@ -46,4 +57,44 @@ public class EnvironImpl implements IEnviron {
             return new Result(Const.ERROR_CODE_NOTEXIST,Const.ERROR_MSG_NOTEXIST,false);
         }
     }
+
+    /**
+     * @Method      : getLastSevenDayEnviron
+     * @Description : 
+     * @Params      : [farmId, days]
+     * @Return      : com.huimv.common.result.Result
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/12/3       
+     * @Time        : 21:18
+     */
+    @Override
+    public Result getLastSevenDayEnviron(Integer farmId,Integer days) throws ParseException {
+        //查询最近N天记录
+        List<EnvDayEntity> envDayEntityList = envDayRepo.findByFarmIdAndAddDate(farmId,dateUtil.getTodayDate(),days);
+        if(envDayEntityList.size()>0){
+            JSONArray dateJa = new JSONArray();
+            JSONArray codJa = new JSONArray();
+            JSONArray adJa = new JSONArray();
+            JSONArray phJa = new JSONArray();
+            JSONArray wsJa = new JSONArray();
+            for(int a=envDayEntityList.size()-1;a>=0;a--){
+                EnvDayEntity envDayEntity = envDayEntityList.get(a);
+                dateJa.add(dateUtil.formatDate(envDayEntity.getAddDate()));
+                codJa.add(envDayEntity.getCod());
+                adJa.add(envDayEntity.getAd());
+                phJa.add(envDayEntity.getPh());
+                wsJa.add(envDayEntity.getWs());
+            }
+            JSONObject outJo = new JSONObject();
+            outJo.put("date",dateJa);
+            outJo.put("cod",codJa);
+            outJo.put("ad",adJa);
+            outJo.put("ph",phJa);
+            outJo.put("ws",wsJa);
+            return new Result(ResultCode.SUCCESS,outJo);
+        }else{
+            return new Result(Const.ERROR_CODE_NOTEXIST,Const.ERROR_MSG_NOTEXIST,false);
+        }
+    }
 }

+ 190 - 0
huimv-farm-v2/huimv-env/src/main/java/com/huimv/env/utils/DateUtil.java

@@ -0,0 +1,190 @@
+package com.huimv.env.utils;
+
+import cn.hutool.core.date.DateTime;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@Component
+@Slf4j
+public class DateUtil {
+
+    //格式化本年
+    public String getThisYear(){
+        Calendar cal = Calendar.getInstance();
+        int year = cal.get(Calendar.YEAR);
+        return String.valueOf(year);
+    }
+
+    //格式化本月
+    public String getThisMonth(){
+        Calendar cal = Calendar.getInstance();
+        int month = cal.get(Calendar.MONTH) + 1;
+        if(String.valueOf(month).length()==1)
+        {
+            return "0"+String.valueOf(month);
+        }else{
+            return String.valueOf(month);
+        }
+    }
+
+    //格式化日期时间
+    public String formatDateTime(String dateText) throws ParseException {
+        if(dateText.indexOf("T") != -1){
+            dateText = dateText.replace("T"," ");
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date date = sdf.parse(dateText);
+        return sdf.format(date);
+    }
+
+    public Date parseDateTime(String dateText) throws ParseException {
+        if(dateText.indexOf("T") != -1){
+            dateText = dateText.replace("T"," ");
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        return sdf.parse(dateText);
+    }
+
+    public Long parseDateTimeLong(String dateText) throws ParseException {
+        if(dateText.indexOf("T") != -1){
+            dateText = dateText.replace("T"," ");
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date date = sdf.parse(dateText);
+        return date.getTime();
+    }
+
+    public Date formatDate(String dateText) throws ParseException {
+        if(dateText.indexOf("T") != -1){
+            dateText = dateText.replace("T"," ");
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        return sdf.parse(dateText);
+    }
+
+    public Date parseDate(Date date) throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        String dateText = sdf.format(date);
+        if(dateText.indexOf("T") != -1){
+            dateText = dateText.replace("T"," ");
+        }
+        return sdf.parse(dateText);
+    }
+
+    public String formatDate(Date date) throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        String dateText = sdf.format(date);
+        if(dateText.indexOf("T") != -1){
+            String[] dateTextArray = dateText.split("T");
+            dateText = dateTextArray[0];
+        }
+        return dateText;
+    }
+
+    //
+    public Date getTodayDate() throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        return sdf.parse(sdf.format(new Date()));
+    }
+
+    public String getTodayDateText() throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        return sdf.format(new Date());
+    }
+
+    public String getTodayText() throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        return sdf.format(new Date());
+    }
+
+    public String getTodayMissionText() throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
+        return sdf.format(new Date());
+    }
+
+    public String getStartDateInThisMonth(){
+        DateTime date = cn.hutool.core.date.DateUtil.date();
+        return (cn.hutool.core.date.DateUtil.beginOfMonth(date) + "").substring(0, 10);
+    }
+
+    public String getEndDateInThisMonth(){
+        DateTime date = cn.hutool.core.date.DateUtil.date();
+        return (date + "").substring(0, 10);
+    }
+
+    /**
+     * 获取过去或者未来 任意天内的日期数组
+     * @param intervals      intervals天内
+     * @return              日期数组
+     */
+    public ArrayList<String> test(int intervals ) {
+        ArrayList<String> pastDaysList = new ArrayList<>();
+        ArrayList<String> fetureDaysList = new ArrayList<>();
+        for (int i = 0; i <intervals; i++) {
+            pastDaysList.add(getPastDate(i));
+            fetureDaysList.add(getFetureDate(i));
+        }
+        return pastDaysList;
+    }
+
+    /**
+     * 获取过去第几天的日期
+     *
+     * @param past
+     * @return
+     */
+    public String getPastDate(int past) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - past);
+        Date today = calendar.getTime();
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        String result = format.format(today);
+        return result;
+    }
+
+    /**
+     * 获取未来 第 past 天的日期
+     * @param past
+     * @return
+     */
+    public String getFetureDate(int past) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + past);
+        Date today = calendar.getTime();
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        String result = format.format(today);
+        return result;
+    }
+
+    //重新构建日期
+    public String rebuildDateTime(String text){
+        return text.substring(0,4)+"-"+text.substring(4,6)+"-"+text.substring(6,8)+" "+text.substring(8,10)+":"+text.substring(10,12)+":"+text.substring(12,14);
+    }
+
+    public static void main(String[] args){
+        DateUtil du = new DateUtil();
+        //
+        du.test1();
+    }
+
+    private void test1() {
+        String text = "20211201104300";
+//        String text = "1234567890abcd";
+        String date = text.substring(0,4)+"-"+text.substring(4,6)+"-"+text.substring(6,8)+" "+text.substring(8,10)+":"+text.substring(10,12)+":"+text.substring(12,14);
+        System.out.println("date="+date);
+    }
+}

+ 9 - 0
huimv-farm-v2/huimv-env/src/test/java/com/huimv/env/environ/service/EnvironTest.java

@@ -1,9 +1,12 @@
 package com.huimv.env.environ.service;
 
+import com.huimv.common.result.Result;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 
+import java.text.ParseException;
+
 /**
  * @Project : huimv.shiwan
  * @Package : com.huimv.biosafety.uface.controller
@@ -21,6 +24,12 @@ public class EnvironTest {
     public void testGet(){
         //
         System.out.println(environ.getLastEnviron(1)); ;
+    }
 
+    @Test
+    public void testGetLastSevenDayEnviron() throws ParseException {
+        //
+        Result out = environ.getLastSevenDayEnviron(1,7);
+        System.out.println("测试结果>>"+out.toString());
     }
 }