瀏覽代碼

【feat】 添加对外服务 api

523096025 1 年之前
父節點
當前提交
bd54f8b7b5
共有 12 個文件被更改,包括 343 次插入18 次删除
  1. 1 1
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/HuimvManageApplication.java
  2. 36 0
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/controller/EartagData2Controller.java
  3. 11 0
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/controller/EartagEartagRegister2Controller.java
  4. 4 0
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/mapper/EartagData2Mapper.java
  5. 5 0
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/mapper/xml/EartagData2Mapper.xml
  6. 4 0
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/IEartagData2Service.java
  7. 27 13
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/impl/EartagData2ServiceImpl.java
  8. 2 2
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/impl/EartagServiceImpl.java
  9. 180 0
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/utils/Action.java
  10. 10 0
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/utils/Data.java
  11. 61 0
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/utils/Result.java
  12. 2 2
      huimv-eartag2-platform/huimv-eartag2-manage2/src/main/resources/application-prod2.yml

+ 1 - 1
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/HuimvManageApplication.java

@@ -26,7 +26,7 @@ import org.springframework.web.client.RestTemplate;
 @MapperScan("com.huimv.eartag2.manage2.mapper")
 @MapperScan("com.huimv.eartag2.manage2.mapper")
 @EntityScan(value = "com.huimv.eartag2.common.dao.entity")
 @EntityScan(value = "com.huimv.eartag2.common.dao.entity")
 @EnableJpaRepositories(basePackages = "com.huimv.eartag2.common.dao.repo")
 @EnableJpaRepositories(basePackages = "com.huimv.eartag2.common.dao.repo")
-//@Import(InterceptorConfig.class)
+@Import(InterceptorConfig.class)
 public class HuimvManageApplication {
 public class HuimvManageApplication {
     public static void main(String[] args) throws InterruptedException {
     public static void main(String[] args) throws InterruptedException {
 
 

+ 36 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/controller/EartagData2Controller.java

@@ -1,9 +1,14 @@
 package com.huimv.eartag2.manage2.controller;
 package com.huimv.eartag2.manage2.controller;
 
 
 
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.eartag2.common.utils.ResultCode;
+import com.huimv.eartag2.manage2.pojo.EartagData2;
 import com.huimv.eartag2.manage2.service.IEartagData2Service;
 import com.huimv.eartag2.manage2.service.IEartagData2Service;
 import com.huimv.eartag2.common.common.token.TokenSign;
 import com.huimv.eartag2.common.common.token.TokenSign;
 import com.huimv.eartag2.common.utils.Result;
 import com.huimv.eartag2.common.utils.Result;
+import com.huimv.eartag2.manage2.utils.Action;
+import com.huimv.eartag2.manage2.utils.Data;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -12,6 +17,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
 /**
 /**
@@ -28,6 +35,35 @@ public class EartagData2Controller {
     @Autowired
     @Autowired
     private IEartagData2Service eartagDataService;
     private IEartagData2Service eartagDataService;
 
 
+    @PostMapping("/getActAndEemp")
+    public Result getActAndEemp(@RequestBody Map<String, String> maps){
+
+        String starTime = maps.get("starTime");
+        String endTime = maps.get("endTime");
+        String earmark = maps.get("earmark");
+//        String farmId = maps.get("farmId");
+
+        try {
+            QueryWrapper<EartagData2> eartagData2QueryWrapper = new QueryWrapper<EartagData2>().eq("earmark", earmark).between("add_time", starTime, endTime);
+
+            List<Data> data = eartagDataService.getActAndEemp(eartagData2QueryWrapper);
+
+
+            Action action = new Action(35.5, 5.5, 6.0, 8, 10);
+            action.analyze(data);
+            List<com.huimv.eartag2.manage2.utils.Result> filter = action.filter(5, 5);
+            Map map = new HashMap();
+            map.put("results",filter);
+
+            map.put("calc",action.calc());
+            return new Result(ResultCode.SUCCESS,map);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        return new Result(ResultCode.FAIL,"");
+    }
+
     @PostMapping("/getEnvByTime")
     @PostMapping("/getEnvByTime")
     public Result getEnvByTime(@RequestBody Map<String,String> map, HttpServletRequest request){
     public Result getEnvByTime(@RequestBody Map<String,String> map, HttpServletRequest request){
         Integer userId = TokenSign.getMemberIdByJwtToken(request);
         Integer userId = TokenSign.getMemberIdByJwtToken(request);

+ 11 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/controller/EartagEartagRegister2Controller.java

@@ -1,10 +1,18 @@
 package com.huimv.eartag2.manage2.controller;
 package com.huimv.eartag2.manage2.controller;
 
 
 
 
+import com.huimv.eartag2.common.utils.Result;
+import com.huimv.eartag2.manage2.utils.Action;
+import com.huimv.eartag2.manage2.utils.Data;
+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.RequestMapping;
 
 
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 
 
+import java.util.List;
+import java.util.Map;
+
 /**
 /**
  * <p>
  * <p>
  *  前端控制器
  *  前端控制器
@@ -17,4 +25,7 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/eartagRegister2")
 @RequestMapping("/eartagRegister2")
 public class EartagEartagRegister2Controller {
 public class EartagEartagRegister2Controller {
 
 
+
+
+
 }
 }

+ 4 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/mapper/EartagData2Mapper.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.huimv.eartag2.manage2.pojo.EartagData2;
 import com.huimv.eartag2.manage2.pojo.EartagData2;
 import com.huimv.eartag2.manage2.pojo.pojovo.EartagDataDto;
 import com.huimv.eartag2.manage2.pojo.pojovo.EartagDataDto;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.eartag2.manage2.utils.Data;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 
 
 import java.util.List;
 import java.util.List;
@@ -22,4 +23,7 @@ public interface EartagData2Mapper extends BaseMapper<EartagData2> {
     List<EartagData2> getEartagDataByEarmark(@Param("earmark") String earmark, @Param("recordCount") String recordCount);
     List<EartagData2> getEartagDataByEarmark(@Param("earmark") String earmark, @Param("recordCount") String recordCount);
 
 
     List<EartagDataDto> getAct(@Param(Constants.WRAPPER) QueryWrapper<EartagData2> wrapper);
     List<EartagDataDto> getAct(@Param(Constants.WRAPPER) QueryWrapper<EartagData2> wrapper);
+
+    List<Data> getActAndEemp(@Param(Constants.WRAPPER) QueryWrapper<EartagData2> eartagData2QueryWrapper);
+
 }
 }

+ 5 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/mapper/xml/EartagData2Mapper.xml

@@ -31,6 +31,11 @@
      ${ew.customSqlSegment}
      ${ew.customSqlSegment}
 
 
     </select>
     </select>
+    <select id="getActAndEemp" resultType="com.huimv.eartag2.manage2.utils.Data">
+
+          SELECT  act1 , ear_temp1 ,ear_temp2  ,env_temp1 ,add_time ,env_temp1 as envTemp FROM `eartag_data2`
+     ${ew.customSqlSegment}
+    </select>
 
 
 
 
 </mapper>
 </mapper>

+ 4 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/IEartagData2Service.java

@@ -1,8 +1,10 @@
 package com.huimv.eartag2.manage2.service;
 package com.huimv.eartag2.manage2.service;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.huimv.eartag2.manage2.pojo.EartagData2;
 import com.huimv.eartag2.manage2.pojo.EartagData2;
 import com.huimv.eartag2.common.utils.Result;
 import com.huimv.eartag2.common.utils.Result;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.eartag2.manage2.utils.Data;
 
 
 import java.text.ParseException;
 import java.text.ParseException;
 import java.util.List;
 import java.util.List;
@@ -37,4 +39,6 @@ public interface IEartagData2Service extends IService<EartagData2> {
     Result getEnvLast(Map<String, String> map);
     Result getEnvLast(Map<String, String> map);
 
 
     Result getByTimeFilter(Map<String, String> map);
     Result getByTimeFilter(Map<String, String> map);
+
+    List<Data> getActAndEemp(QueryWrapper<EartagData2> eartagData2QueryWrapper);
 }
 }

+ 27 - 13
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/impl/EartagData2ServiceImpl.java

@@ -16,6 +16,7 @@ import com.huimv.eartag2.manage2.pojo.EartagEartagRegister2;
 import com.huimv.eartag2.manage2.pojo.SysAccountMultilevel;
 import com.huimv.eartag2.manage2.pojo.SysAccountMultilevel;
 import com.huimv.eartag2.manage2.service.IEartagData2Service;
 import com.huimv.eartag2.manage2.service.IEartagData2Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.huimv.eartag2.manage2.utils.Data;
 import com.huimv.eartag2.manage2.utils.Filter;
 import com.huimv.eartag2.manage2.utils.Filter;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -23,7 +24,9 @@ import org.springframework.web.bind.annotation.PostMapping;
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import java.text.ParseException;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.text.SimpleDateFormat;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.*;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -272,11 +275,12 @@ public class EartagData2ServiceImpl extends ServiceImpl<EartagData2Mapper, Earta
         }
         }
         wrapper.orderByAsc("add_time");
         wrapper.orderByAsc("add_time");
         List<Double> list1 = new ArrayList<>();
         List<Double> list1 = new ArrayList<>();
-        List<Double> list2 = new ArrayList<>();
-        List<Double> list3 = new ArrayList<>();
+        List<Float> list2 = new ArrayList<>();
+        List<Float> list3 = new ArrayList<>();
         List<Date> list4 = new ArrayList<>();
         List<Date> list4 = new ArrayList<>();
         List<Long> list5 = new ArrayList<>();
         List<Long> list5 = new ArrayList<>();
         List<Integer> list6 = new ArrayList<>();
         List<Integer> list6 = new ArrayList<>();
+        List<Float> list7 = new ArrayList<>();
         List<EartagData2> list = this.list(wrapper);
         List<EartagData2> list = this.list(wrapper);
         for (EartagData2 eartagData2 : list) {
         for (EartagData2 eartagData2 : list) {
             Float earTemp1 = eartagData2.getEarTemp1();
             Float earTemp1 = eartagData2.getEarTemp1();
@@ -284,29 +288,39 @@ public class EartagData2ServiceImpl extends ServiceImpl<EartagData2Mapper, Earta
             Float envTemp1 = eartagData2.getEnvTemp1();
             Float envTemp1 = eartagData2.getEnvTemp1();
 
 
             list1.add(earTemp1 == null ? null:Double.valueOf(earTemp1));
             list1.add(earTemp1 == null ? null:Double.valueOf(earTemp1));
-            list2.add( earTemp2 == null ? null:Double.valueOf(earTemp2));
-            list3.add(envTemp1 == null ? null:Double.valueOf(envTemp1));
+            list2.add(earTemp2);
+            list3.add(envTemp1);
             list4.add( eartagData2.getAddTime());
             list4.add( eartagData2.getAddTime());
             list5.add( eartagData2.getAct1());
             list5.add( eartagData2.getAct1());
             list6.add( eartagData2.getBat());
             list6.add( eartagData2.getBat());
+            list7.add( eartagData2.getEarTemp1());
         }
         }
         Filter filter1 = new Filter(list1,0.2);
         Filter filter1 = new Filter(list1,0.2);
         List<Double> earTemp1 = filter1.max(20, 200, 30, 40);
         List<Double> earTemp1 = filter1.max(20, 200, 30, 40);
 
 
-        Filter filter2 = new Filter(list2,0.2);
-        List<Double> earTemp2 = filter2.max(20, 200, 30, 40);
-
-        Filter filter3 = new Filter(list3,0.2);
-        List<Double> earTemp3 = filter3.max(20, 200, 10, 40);
+//        Filter filter2 = new Filter(list2,0.2);
+//        List<Double> earTemp2 = filter2.max(20, 200, 30, 40);
+//
+//        Filter filter3 = new Filter(list3,0.2);
+//        List<Double> earTemp3 = filter3.max(20, 200, 10, 40);
 
 
         Map endMap = new HashMap();
         Map endMap = new HashMap();
-        endMap.put("earTemp1",earTemp1);
-        endMap.put("earTemp2",earTemp2);
-        endMap.put("getEnvTemp1",earTemp3);
-        endMap.put("time",list4);
+        endMap.put("earTemp1",earTemp1.stream().map(number -> String.format("%.2f", number)).collect(Collectors.toList()));
+        endMap.put("earTemp2",list2.stream().map(number -> String.format("%.2f", number)).collect(Collectors.toList()));
+        endMap.put("getEnvTemp1",list3.stream().map(number -> String.format("%.2f", number)).collect(Collectors.toList()));
+        endMap.put("earTemp",list7.stream().map(number -> String.format("%.2f", number)).collect(Collectors.toList()));
+        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        endMap.put("time",list4.stream()
+                .map(date -> formatter.format(date))
+                .collect(Collectors.toList()));
         endMap.put("act",list5);
         endMap.put("act",list5);
         endMap.put("bat",list6);
         endMap.put("bat",list6);
 
 
         return new Result(ResultCode.SUCCESS, endMap);
         return new Result(ResultCode.SUCCESS, endMap);
     }
     }
+
+    @Override
+    public List<Data> getActAndEemp(QueryWrapper<EartagData2> eartagData2QueryWrapper) {
+        return eartagData2Mapper.getActAndEemp(eartagData2QueryWrapper);
+    }
 }
 }

+ 2 - 2
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/impl/EartagServiceImpl.java

@@ -91,9 +91,9 @@ public class EartagServiceImpl implements IEartagService {
                     // {读取相关耳标注册记录}
                     // {读取相关耳标注册记录}
                     List<EartagEartagRegister2> eartagEartagRegister2List = getEartagRegister(farmCode, unitId);
                     List<EartagEartagRegister2> eartagEartagRegister2List = getEartagRegister(farmCode, unitId);
                     if (eartagEartagRegister2List.size() == 0) {
                     if (eartagEartagRegister2List.size() == 0) {
-                        System.out.println("该单元没有耳标。");
+//                        System.out.println("该单元没有耳标。");
                     }
                     }
-                    System.out.println("该单元没有耳标 eartagEartagRegister2List.size=" + eartagEartagRegister2List.size());
+//                    System.out.println("该单元没有耳标 eartagEartagRegister2List.size=" + eartagEartagRegister2List.size());
                     for (EartagEartagRegister2 eartagEartagRegister2 : eartagEartagRegister2List) {
                     for (EartagEartagRegister2 eartagEartagRegister2 : eartagEartagRegister2List) {
                         Date lastTime = eartagEartagRegister2.getLastTime();
                         Date lastTime = eartagEartagRegister2.getLastTime();
                         long offlineTimeDiff = nowTimestamp.getTime() - lastTime.getTime();
                         long offlineTimeDiff = nowTimestamp.getTime() - lastTime.getTime();

+ 180 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/utils/Action.java

@@ -0,0 +1,180 @@
+package com.huimv.eartag2.manage2.utils;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class Action {
+    private final double body, tMin, tMax;
+    private final int aMin, aMax;
+    private final List<Result> result = new ArrayList<>();
+
+    private static int kind(int id) {
+        switch (id) {
+            case 1:
+                return 1;
+            case 3:
+                return 2;
+            case 8:
+            case 10:
+            case 12:
+                return 3;
+            default:
+                return 4;
+        }
+    }
+
+    private void handle(Data data, int id) throws Exception {
+        id = kind(id);
+        Result now = new Result(id, data.getAddTime(), data.getEnvTemp());
+        result.add(now);
+    }
+
+    private int nni(int idx, int id) {
+        for (; idx < this.result.size(); ++idx) {
+            if (this.result.get(idx).getId() != id) return idx;
+        }
+        return -1;
+    }
+
+    private int ln4(int idx) {
+        for (; idx > -1; --idx) {
+            if (this.result.get(idx).getId() != 4) return idx;
+        }
+        return -1;
+    }
+
+    private int ex(int idx, int cnt) throws Exception {
+        int s = Math.max(0, idx - cnt), e = Math.min(this.result.size(), idx + cnt), t = this.result.get(idx).getId();
+        for (idx = s; idx < e; ++idx) update(idx, t);
+        return e;
+    }
+
+    private void update(int idx, int id) throws Exception {
+        Result tmp = this.result.get(idx);
+        tmp.setId(id);
+        this.result.set(idx, tmp);
+    }
+
+    public Action(double body, double tMin, double tMax, int aMin, int aMax) {
+        this.body = body;
+        this.tMin = tMin;
+        this.tMax = tMax;
+        this.aMin = aMin;
+        this.aMax = aMax;
+    }
+
+    public List<Result> analyze(List<Data> data) throws Exception {
+        for (Data itr : data) {
+            if (Math.abs(itr.getEarTemp1() - itr.getEarTemp2()) < tMin) {
+                if (Math.abs(itr.getEarTemp1() - body) < tMin) {
+                    if (itr.getAct1() < aMax) handle(itr, 1);
+                    else handle(itr, 2);
+                } else if (Math.abs(itr.getEarTemp1() - itr.getEnvTemp1()) < tMin) {
+                    if (itr.getAct1() < aMax) handle(itr, 3);
+                    else handle(itr, 4);
+                } else {
+                    if (itr.getAct1() < aMax) handle(itr, 5);
+                    else handle(itr, 6);
+                }
+            } else {
+                if (Math.abs(itr.getEarTemp1() - body) < tMax) {
+                    if (itr.getAct1() < aMin) handle(itr, 7);
+                    else handle(itr, 8);
+                } else if (Math.abs(itr.getEarTemp1() - itr.getEnvTemp1()) < tMax) {
+                    if (itr.getAct1() < aMin) handle(itr, 9);
+                    else handle(itr, 10);
+                } else {
+                    if (itr.getAct1() < aMin) handle(itr, 11);
+                    else handle(itr, 12);
+                }
+            }
+        }
+
+        return result;
+    }
+
+    public List<Result> filter(int sub, int exp) throws Exception {
+        for (int idx = 0; idx < this.result.size(); ) {
+            int cid = this.result.get(idx).getId();
+            if (cid == 4) {
+                int nid = nni(idx, 4);
+                if (nid == -1) break;
+                if (nid - idx <= sub) {
+                    int pid = ln4(idx), tar;
+                    if (pid == -1 || (nid - idx) < (idx - pid)) tar = this.result.get(nid).getId();
+                    else tar = this.result.get(pid).getId();
+                    for (int i = idx; i < nid; ++i) update(i, tar);
+                }
+                idx = nid;
+            } else if (cid == 2 || cid == 3) {
+                idx = ex(idx, exp);
+            } else {
+                idx = nni(idx, 1);
+                if (idx == -1) break;
+            }
+        }
+        return this.result;
+    }
+
+    public Map<String, List<Double>> calc() {
+        Map<String, List<Double>> res = new HashMap<>();
+        if (result.size() == 0) return res;
+
+        Result result0 = this.result.get(0);
+        int last = result0.getTimestamp();
+        double temp0 = Double.parseDouble(result0.getEnvTemp());
+        Double  maxTemp=  temp0;
+        Double  minTemp=  temp0;
+        Double  avgTemp=  temp0;
+
+        for (int i = 1; i < this.result.size(); ++i) {
+            String key = this.result.get(i).getTime().substring(0, 10);
+            double temp = Double.parseDouble( this.result.get(i).getEnvTemp());
+
+            if (!res.containsKey(key)) {
+                ArrayList<Double> tmp = new ArrayList<>(7);
+                tmp.add(0.0);
+                tmp.add(0.0);
+                tmp.add(0.0);
+                tmp.add(0.0);
+
+                tmp.add(0.0);
+                tmp.add(0.0);
+                tmp.add(0.0);
+                res.put(key, tmp);
+            }
+            List<Double> list = res.get(key);
+            int idx = this.result.get(i).getId() - 1;
+            list.set(idx, list.get(idx) + (this.result.get(i).getTimestamp() - last));
+            avgTemp += temp;
+            maxTemp = maxTemp <temp ? temp :maxTemp;
+            minTemp = minTemp > temp ? temp :minTemp;
+            list.set(4,maxTemp);
+            list.set(5,minTemp );
+            list.set(6,avgTemp/(i+1));
+
+            res.replace(key, list);
+            last = this.result.get(i).getTimestamp();
+        }
+
+        for (String key : res.keySet()) {
+            List<Double> list = res.get(key);
+            double sum = list.get(0) + list.get(1) + list.get(2) + list.get(3);
+            list.set(0, new BigDecimal(list.get(0) * 100 / sum).setScale(2, RoundingMode.UP).doubleValue());
+            list.set(1, new BigDecimal(list.get(1) * 100 / sum).setScale(2, RoundingMode.UP).doubleValue());
+            list.set(2, new BigDecimal(list.get(2) * 100 / sum).setScale(2, RoundingMode.UP).doubleValue());
+            list.set(3, new BigDecimal(list.get(3) * 100 / sum).setScale(2, RoundingMode.UP).doubleValue());
+            list.set(4, BigDecimal.valueOf(list.get(4)).setScale(2, RoundingMode.UP).doubleValue());
+            list.set(5, BigDecimal.valueOf(list.get(5)).setScale(2, RoundingMode.UP).doubleValue());
+            list.set(6,  BigDecimal.valueOf(list.get(6)).setScale(2, RoundingMode.UP).doubleValue());
+            res.replace(key, list);
+        }
+
+        return res;
+    }
+
+}

+ 10 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/utils/Data.java

@@ -0,0 +1,10 @@
+package com.huimv.eartag2.manage2.utils;
+
+@lombok.Data
+public class Data {
+    private int act1;
+    private Double earTemp1, earTemp2, envTemp1;
+    private String addTime;
+    private String envTemp;
+
+}

+ 61 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/utils/Result.java

@@ -0,0 +1,61 @@
+package com.huimv.eartag2.manage2.utils;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+public class Result {
+    private int id, timestamp;
+    private String type, time;
+    private String envTemp;
+
+    private int str2stamp(String time) throws ParseException {
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date date = simpleDateFormat.parse(time);
+        return (int)(date.getTime() / 1000);
+    }
+
+    public Result(int id, String time,String envTemp) throws Exception {
+        this.setId(id);
+        this.setTime(time);
+        this.setEnvTemp(envTemp);
+    }
+
+    public void setId(int id) throws Exception {
+        if (id == 1) this.type = "睡眠状态";
+        else if (id == 2) this.type = "侧躺状态";
+        else if (id == 3) this.type = "活跃状态";
+        else if (id == 4) this.type = "其它状态";
+        else throw new RuntimeException("unrecognized id: " + id);
+        this.id = id;
+    }
+
+    public int getId() {
+        return id;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setTime(String time) throws ParseException {
+        this.timestamp = str2stamp(time);
+        this.time = time;
+    }
+
+    public String getTime() {
+        return time;
+    }
+
+    public int getTimestamp() {
+        return timestamp;
+    }
+
+    public String getEnvTemp() {
+        return envTemp;
+    }
+
+    public void setEnvTemp(String envTemp) {
+        this.envTemp = envTemp;
+    }
+}

+ 2 - 2
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/resources/application-prod2.yml

@@ -47,7 +47,7 @@ spring:
 
 
 mybatis-plus:
 mybatis-plus:
   configuration:
   configuration:
-#      log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
-    log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
+      log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+#    log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
   # mapper.xml文件所存放的位置
   # mapper.xml文件所存放的位置
   mapper-locations: classpath*:com/huimv/eartag2/manage2/mapper/xml/*.xml  # 不加这一行出错:“org.apache.ibatis.binding.BindingException:  Invalid bound statement (not found)”
   mapper-locations: classpath*:com/huimv/eartag2/manage2/mapper/xml/*.xml  # 不加这一行出错:“org.apache.ibatis.binding.BindingException:  Invalid bound statement (not found)”