Browse Source

Merge remote-tracking branch 'origin/master'

523096025 4 years ago
parent
commit
acabf1ca46
18 changed files with 298 additions and 63 deletions
  1. 1 0
      huimv-smart-apiservice/src/main/java/com/huimv/apiservice/HuimvSmartApiserviceApplication.java
  2. 2 0
      huimv-smart-apiservice/src/main/java/com/huimv/apiservice/MathTestMain.java
  3. 61 0
      huimv-smart-apiservice/src/main/java/com/huimv/apiservice/config/DataSourceConfig.java
  4. 19 5
      huimv-smart-apiservice/src/main/java/com/huimv/apiservice/controller/PigController.java
  5. 2 0
      huimv-smart-apiservice/src/main/java/com/huimv/apiservice/dao/AnimalHeatDao.java
  6. 2 0
      huimv-smart-apiservice/src/main/java/com/huimv/apiservice/dao/EatTimeDao.java
  7. 1 0
      huimv-smart-apiservice/src/main/java/com/huimv/apiservice/dao/PigDao.java
  8. 3 1
      huimv-smart-apiservice/src/main/java/com/huimv/apiservice/dao/YearPigHistoryImgDao.java
  9. 1 1
      huimv-smart-apiservice/src/main/java/com/huimv/apiservice/entity/SleepStatusEntity.java
  10. 2 2
      huimv-smart-apiservice/src/main/java/com/huimv/apiservice/entity/vo/PigBaseVo.java
  11. 3 1
      huimv-smart-apiservice/src/main/java/com/huimv/apiservice/entity/vo/PigImageVo.java
  12. 14 3
      huimv-smart-apiservice/src/main/java/com/huimv/apiservice/service/PigService.java
  13. 145 38
      huimv-smart-apiservice/src/main/java/com/huimv/apiservice/service/impl/PigServiceImpl.java
  14. 14 5
      huimv-smart-apiservice/src/main/resources/application-dev.yml
  15. 11 4
      huimv-smart-apiservice/src/main/resources/mapper/apiservice/YearPigBaseDao.xml
  16. 3 1
      huimv-smart-apiservice/src/main/resources/mapper/apiservice/YearPigHistoryImgDao.xml
  17. 13 1
      huimv-smart-management/src/main/resources/application-dev.yml
  18. 1 1
      huimv-smart-management/src/main/resources/application.properties

+ 1 - 0
huimv-smart-apiservice/src/main/java/com/huimv/apiservice/HuimvSmartApiserviceApplication.java

@@ -13,6 +13,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
 public class HuimvSmartApiserviceApplication {
 
     public static void main(String[] args) {
+//        System.setProperty("tomcat.util.http.parser.HttpParser.requestTargetAllow","|{}");
         SpringApplication.run(HuimvSmartApiserviceApplication.class, args);
     }
 

+ 2 - 0
huimv-smart-apiservice/src/main/java/com/huimv/apiservice/MathTestMain.java

@@ -11,6 +11,8 @@ public class MathTestMain {
 
     public static void main(String[] args) {
 
+        System.out.println(System.currentTimeMillis());
+
         System.out.println(1000000000 * 3);
 
 //        int i = Math.multiplyExact(1000000000, 3);

+ 61 - 0
huimv-smart-apiservice/src/main/java/com/huimv/apiservice/config/DataSourceConfig.java

@@ -0,0 +1,61 @@
+package com.huimv.apiservice.config;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.alibaba.druid.support.http.StatViewServlet;
+import com.alibaba.druid.support.http.WebStatFilter;
+import org.springframework.boot.web.servlet.FilterRegistrationBean;
+import org.springframework.boot.web.servlet.ServletRegistrationBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Druid配置
+ *
+ * @author yinhao
+ * @date 2017/5/20 21:58
+ */
+@Configuration
+// @Import(MultiDataSourceConfig.class)
+public class DataSourceConfig {
+
+    /**
+     * druid监控,配置StatViewServlet
+     *
+     * @author yinhao
+     * @date 2020/6/28 16:03
+     */
+    @Bean
+    public ServletRegistrationBean<StatViewServlet> druidServletRegistration() {
+
+        // 设置servlet的参数
+        HashMap<String, String> statViewServletParams = CollectionUtil.newHashMap();
+        statViewServletParams.put("resetEnable", "true");
+        //statViewServletParams.put("loginUsername", "admin");
+        //statViewServletParams.put("loginPassword", "admin");
+
+        ServletRegistrationBean<StatViewServlet> registration = new ServletRegistrationBean<>(new StatViewServlet());
+        registration.addUrlMappings("/druid/*");
+        registration.setInitParameters(statViewServletParams);
+        return registration;
+    }
+    /**
+     * 2.配置一个web监控的filter
+     * @return
+     */
+    @Bean
+    public FilterRegistrationBean webStatFilter(){
+        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
+        filterRegistrationBean.setFilter(new WebStatFilter());
+        filterRegistrationBean.setUrlPatterns(Collections.singletonList("/*"));
+        Map<String, String> initParams = new HashMap<>(16);
+        initParams.put("exclusions", "*.js,*.css,*.png,*.jpg,*.ico,/druid/*");
+        filterRegistrationBean.setInitParameters(initParams);
+        return filterRegistrationBean;
+    }
+
+
+}

+ 19 - 5
huimv-smart-apiservice/src/main/java/com/huimv/apiservice/controller/PigController.java

@@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
 
 /**
@@ -25,15 +26,27 @@ public class PigController {
     @Autowired
     private PigService pigService;
 
-
+    /**
+     * 获取猪基本信息
+     * @param accessToken token
+     * @param pigEarTagNo 耳标号
+     * @return
+     */
     @RequestMapping("/getPigInfo")
     public R getPigInfo(@RequestParam(value = "accessToken", required = false) String accessToken,
                         @RequestParam("pigEarTagNo") String pigEarTagNo) {
         //TODO token校验
-        PigBaseVo pigBaseVo = pigService.getPigInfoByEarTagNo(pigEarTagNo);
-        return Objects.requireNonNull(R.ok().put("code", 1000)).put("data", pigBaseVo);
+        Map<String,Object> map = pigService.getPigInfoByEarTagNo(pigEarTagNo);
+        return Objects.requireNonNull(R.ok().put("code", 1000)).put("data", map);
     }
 
+
+    /**
+     * 获取多媒体接口(照片/视频)
+     * @param accessToken token
+     * @param pigEarTagNo 耳标号
+     * @return
+     */
     @RequestMapping("/getImage")
     public R getImage(@RequestParam(value = "accessToken", required = false) String accessToken,
                       @RequestParam("pigEarTagNo") String pigEarTagNo) {
@@ -79,8 +92,9 @@ public class PigController {
                           @RequestParam("pigEarTagNo") String pigEarTagNo) {
         //TODO token校验
 
-          = pigService.getFeedTimes(pigEarTagNo);
-        return Objects.requireNonNull(R.ok().put("code", 1000)).put("data", envVo);
+//          = pigService.getFeedTimes(pigEarTagNo);
+//        return Objects.requireNonNull(R.ok().put("code", 1000)).put("data", envVo);
+        return null;
     }
 
     //8.获取当天的睡眠状态数据接⼝

+ 2 - 0
huimv-smart-apiservice/src/main/java/com/huimv/apiservice/dao/AnimalHeatDao.java

@@ -3,6 +3,7 @@ package com.huimv.apiservice.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.huimv.apiservice.entity.AnimalHeatEntity;
 import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
 
 /**
  * 体温信息表
@@ -12,6 +13,7 @@ import org.apache.ibatis.annotations.Mapper;
  * @date 2021-05-07 15:32:42
  */
 @Mapper
+@Repository
 public interface AnimalHeatDao extends BaseMapper<AnimalHeatEntity> {
 	
 }

+ 2 - 0
huimv-smart-apiservice/src/main/java/com/huimv/apiservice/dao/EatTimeDao.java

@@ -3,6 +3,7 @@ package com.huimv.apiservice.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.huimv.apiservice.entity.EatTimeEntity;
 import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
 
 /**
  * 采食频次表
@@ -12,6 +13,7 @@ import org.apache.ibatis.annotations.Mapper;
  * @date 2021-05-07 15:32:42
  */
 @Mapper
+@Repository
 public interface EatTimeDao extends BaseMapper<EatTimeEntity> {
 	
 }

+ 1 - 0
huimv-smart-apiservice/src/main/java/com/huimv/apiservice/dao/PigDao.java

@@ -17,4 +17,5 @@ public interface PigDao extends BaseMapper<YearPigBaseEntity> {
 
     EmployeeEntity selectFeederInfoByPigEarTagNo(String pigEarTagNo);
 
+    String selectPastureNameByPigstyId(Integer pigstyId);
 }

+ 3 - 1
huimv-smart-apiservice/src/main/java/com/huimv/apiservice/dao/YearPigHistoryImgDao.java

@@ -5,6 +5,8 @@ import com.huimv.apiservice.entity.YearPigHistoryImgEntity;
 import org.apache.ibatis.annotations.Mapper;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 /**
  * 年猪历史照片
  * 
@@ -16,5 +18,5 @@ import org.springframework.stereotype.Repository;
 @Repository
 public interface YearPigHistoryImgDao extends BaseMapper<YearPigHistoryImgEntity> {
 
-    String getLatestImgByPigEarTagNo(String pigEarTagNo);
+    List<String> getLatestImgByPigEarTagNo(String pigEarTagNo);
 }

+ 1 - 1
huimv-smart-apiservice/src/main/java/com/huimv/apiservice/entity/SleepStatusEntity.java

@@ -36,7 +36,7 @@ public class SleepStatusEntity implements Serializable {
     /**
      * 睡眠时长
      */
-    private String sleepCount;
+    private Integer sleepCount;
     /**
      * 采集时间
      */

+ 2 - 2
huimv-smart-apiservice/src/main/java/com/huimv/apiservice/entity/vo/PigBaseVo.java

@@ -37,12 +37,12 @@ public class PigBaseVo {
     /**
      * 养殖场名称
      */
-    private String pigsty;
+    private String pasture;
 
     /**
      * 体温
      */
-    private String bodyTemperature;
+    private Double bodyTemperature;
 
 
 }

+ 3 - 1
huimv-smart-apiservice/src/main/java/com/huimv/apiservice/entity/vo/PigImageVo.java

@@ -2,6 +2,8 @@ package com.huimv.apiservice.entity.vo;
 
 import lombok.Data;
 
+import java.util.List;
+
 /**
  * <p>
  *  猪照片/视频
@@ -20,5 +22,5 @@ public class PigImageVo {
     /**
      * 图片内容
      */
-    private String imageData;
+    private List<String> images;
 }

+ 14 - 3
huimv-smart-apiservice/src/main/java/com/huimv/apiservice/service/PigService.java

@@ -10,6 +10,7 @@ import com.huimv.apiservice.entity.vo.PigPedigreeVo;
 import com.huimv.apiservice.entity.vo.PigSportVo;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Author yinhao
@@ -18,11 +19,21 @@ import java.util.List;
  */
 public interface PigService extends IService<YearPigBaseEntity> {
 
-
-    PigBaseVo getPigInfoByEarTagNo(String pigEarTagNo);
-
+    /**
+     * 获取猪基本信息
+     * @param pigEarTagNo 耳标号
+     * @return
+     */
+    Map<String, Object> getPigInfoByEarTagNo(String pigEarTagNo);
+
+    /**
+     * 获取多媒体接口(照片/视频)
+     * @param pigEarTagNo 耳标号
+     * @return
+     */
     PigImageVo getImageByEarTagNo(String pigEarTagNo);
 
+
     List<PigBaseVo> getListByBreed(String breedName);
 
     PigPedigreeVo getPigPedigree(String pigEarTagNo);

+ 145 - 38
huimv-smart-apiservice/src/main/java/com/huimv/apiservice/service/impl/PigServiceImpl.java

@@ -1,9 +1,9 @@
 package com.huimv.apiservice.service.impl;
 
-import cn.hutool.core.codec.Base64;
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -23,9 +23,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 /**
  * @Author yinhao
@@ -39,6 +37,12 @@ public class PigServiceImpl extends ServiceImpl<PigDao, YearPigBaseEntity> imple
     private PigstyDao pigstyDao;
 
     @Autowired
+    private AnimalHeatDao animalHeatDao;
+
+    @Autowired
+    private EatTimeDao eatTimeDao;
+
+    @Autowired
     private YearPigHistoryImgDao yearPigHistoryImgDao;
 
     @Autowired
@@ -51,38 +55,141 @@ public class PigServiceImpl extends ServiceImpl<PigDao, YearPigBaseEntity> imple
     private SportTimeDao sportTimeDao;
 
     @Override
-    public PigBaseVo getPigInfoByEarTagNo(String pigEarTagNo) {
-
-        LambdaQueryWrapper<YearPigBaseEntity> lambdaQueryWrapper = Wrappers.lambdaQuery();
-        lambdaQueryWrapper.eq(YearPigBaseEntity::getEartag, pigEarTagNo);
-
-        YearPigBaseEntity yearPigBaseEntity = baseMapper.selectOne(lambdaQueryWrapper);
+    public Map<String, Object> getPigInfoByEarTagNo(String pigEarTagNo) {
+
+        Map<String, Object> result = new LinkedHashMap<>(16);
+        List<Map<String, Object>> temperature = new ArrayList<>();
+        List<Map<String, Object>> healthStatus = new ArrayList<>();
+        List<Map<String, Object>> feedingStatus = new ArrayList<>();
+        List<Map<String, Object>> sleepStatus = new ArrayList<>();
+        List<Map<String, Object>> sportStatus = new ArrayList<>();
+        result.put("temperature", temperature);
+        result.put("healthStatus", healthStatus);
+        result.put("feedingStatus", feedingStatus);
+        result.put("sleepStatus", sleepStatus);
+        result.put("sportStatus", sportStatus);
+
+        //公用时间 -> 当前日期
+        String today = DateUtil.format(DateUtil.date(), "yyyy-MM-dd");
+
+        //java代码对集合排序
+        //CollectionUtil.sort(animalHeatEntityList,(o1, o2) -> o2.getCollectTime().compareTo(o1.getCollectTime()));
+
+        //体温数据sql构建和查询
+        LambdaQueryWrapper<AnimalHeatEntity> temperatureLambdaQuery = Wrappers.lambdaQuery();
+        temperatureLambdaQuery.eq(AnimalHeatEntity::getEartag, pigEarTagNo)
+                .eq(AnimalHeatEntity::getNowDate, today)
+                .orderByDesc(AnimalHeatEntity::getId);
+        List<AnimalHeatEntity> animalHeatEntityList = animalHeatDao.selectList(temperatureLambdaQuery);
+
+        //体温数据
+        if (CollectionUtil.isNotEmpty(animalHeatEntityList)) {
+            for (AnimalHeatEntity animalHeatEntity : animalHeatEntityList) {
+                Map<String, Object> dataMap = new LinkedHashMap<>(16);
+                dataMap.put("collectTime", DateUtil.format(animalHeatEntity.getCollectTime(), "yyyy-MM-dd HH:mm:ss"));
+                dataMap.put("temperature", animalHeatEntity.getTemperature());
+                temperature.add(dataMap);
+            }
+        }
 
+        //健康状态数据sql构建及查询
+        //TODO 健康状态数据库查询
+        //模拟数据
+        Map<String, Object> healthData1 = new HashMap<>();
+        healthData1.put(DateUtil.format(DateUtil.date(), "yyyy-MM-dd HH:mm:ss"), "健康");
+        Map<String, Object> healthData2 = new HashMap<>();
+        healthData2.put(DateUtil.format(DateUtil.date(), "yyyy-MM-dd HH:mm:ss"), "亚健康");
+        healthStatus.add(healthData1);
+        healthStatus.add(healthData2);
+
+        //采食状态数据sql构建及查询
+        LambdaQueryWrapper<EatTimeEntity> eatTimeLambdaQuery = Wrappers.lambdaQuery();
+        eatTimeLambdaQuery.eq(EatTimeEntity::getEartag, pigEarTagNo)
+                .eq(EatTimeEntity::getNowDate, today)
+                .orderByDesc(EatTimeEntity::getId);
+        List<EatTimeEntity> eatTimeEntityList = eatTimeDao.selectList(eatTimeLambdaQuery);
+
+        //采食状态数据
+        if (CollectionUtil.isNotEmpty(eatTimeEntityList)) {
+            for (EatTimeEntity eatTimeEntity : eatTimeEntityList) {
+                Map<String, Object> dataMap = new LinkedHashMap<>(16);
+                dataMap.put("collectTime", DateUtil.format(eatTimeEntity.getCollectTime(), "yyyy-MM-dd HH:mm:ss"));
+                dataMap.put("feedCount", eatTimeEntity.getEatCount());
+                feedingStatus.add(dataMap);
+            }
+        }
 
-        PigBaseVo pigBaseVo = new PigBaseVo();
-//        BeanUtil.copyProperties(yearPigBaseEntity,pigBaseVo);
-        if (ObjectUtil.isNotNull(yearPigBaseEntity)) {
-            pigBaseVo.setWeight(yearPigBaseEntity.getWeight());
-            pigBaseVo.setDayAge(yearPigBaseEntity.getDayAge());
-            pigBaseVo.setBreed(yearPigBaseEntity.getBreed());
-            //虚拟数据 待填充
-            pigBaseVo.setBirthday(new Date());
-            Integer unitId = yearPigBaseEntity.getUnitId();
-            PigstyEntity pigstyEntity = null;
-            if (unitId != null) {
-                 pigstyEntity = pigstyDao.selectById(unitId);
+        //睡眠状态数据sql构建及查询
+        LambdaQueryWrapper<SleepStatusEntity> sleepStatusLambdaQuery = Wrappers.lambdaQuery();
+        sleepStatusLambdaQuery.eq(SleepStatusEntity::getEartag, pigEarTagNo)
+                .eq(SleepStatusEntity::getNowDate, today)
+                .orderByDesc(SleepStatusEntity::getId);
+        List<SleepStatusEntity> sleepStatusEntityList = sleepStatusDao.selectList(sleepStatusLambdaQuery);
+
+        //睡眠状态数据
+        if (CollectionUtil.isNotEmpty(sleepStatusEntityList)) {
+            for (SleepStatusEntity sleepStatusEntity : sleepStatusEntityList) {
+                Map<String, Object> dataMap = new LinkedHashMap<>(16);
+                dataMap.put("sleepStartTime", sleepStatusEntity.getSleepTime());
+                dataMap.put("duration", sleepStatusEntity.getSleepCount());
+                sleepStatus.add(dataMap);
             }
+        }
 
-            if (ObjectUtil.isNotNull(pigstyEntity)) {
-                String number = pigstyEntity.getNumber();
-                if (StringUtils.isNotEmpty(number)) {
-                    pigBaseVo.setPigsty(number);
-                }
+        //运动状态数据sql构建及查询
+        LambdaQueryWrapper<SportTimeEntity> sportStatusLambdaQuery = Wrappers.lambdaQuery();
+        sportStatusLambdaQuery.eq(SportTimeEntity::getEartag,pigEarTagNo)
+                .eq(SportTimeEntity::getNowDate,today)
+                .orderByDesc(SportTimeEntity::getId);
+        List<SportTimeEntity> sportTimeEntityList = sportTimeDao.selectList(sportStatusLambdaQuery);
+
+        //运动状态数据
+        if (CollectionUtil.isNotEmpty(sportTimeEntityList)) {
+            for (SportTimeEntity sportTimeEntity : sportTimeEntityList) {
+                Map<String, Object> dataMap = new LinkedHashMap<>(16);
+                dataMap.put("collectTime", sportTimeEntity.getCollectTime());
+                dataMap.put("sportCount", sportTimeEntity.getSportCount());
+                sportStatus.add(dataMap);
             }
-            //虚拟数据 待填充
-            pigBaseVo.setBodyTemperature("100");
         }
-        return pigBaseVo;
+
+
+//        //构建根据耳标查询的表达式
+//        LambdaQueryWrapper<YearPigBaseEntity> yearPigLambdaQuery = Wrappers.lambdaQuery();
+//        yearPigLambdaQuery.eq(YearPigBaseEntity::getEartag, pigEarTagNo);
+//
+//        //根据耳标查询猪的信息
+//        YearPigBaseEntity yearPigBaseEntity = baseMapper.selectOne(yearPigLambdaQuery);
+//
+//        //构建返回前端的VO对象
+//        PigBaseVo pigBaseVo = new PigBaseVo();
+//        if (ObjectUtil.isNotNull(yearPigBaseEntity)) {
+//            pigBaseVo.setWeight(yearPigBaseEntity.getWeight());
+//            pigBaseVo.setDayAge(yearPigBaseEntity.getDayAge());
+//            pigBaseVo.setBreed(yearPigBaseEntity.getBreed());
+//            pigBaseVo.setBirthday(yearPigBaseEntity.getBirthday());
+//
+//            Integer pigstyId = yearPigBaseEntity.getPigstyId();
+//            if (pigstyId != null) {
+//                String pastureName = baseMapper.selectPastureNameByPigstyId(pigstyId);
+//                if (StringUtils.isNotEmpty(pastureName)) {
+//                    pigBaseVo.setPasture(pastureName);
+//                }
+//            }
+//
+//            LambdaQueryWrapper<AnimalHeatEntity> animalHeatLambdaQuery = Wrappers.lambdaQuery();
+//            animalHeatLambdaQuery.eq(AnimalHeatEntity::getEartag, pigEarTagNo).orderByDesc(AnimalHeatEntity::getCollectTime);
+//            animalHeatLambdaQuery.last("limit 1");
+//            AnimalHeatEntity animalHeatEntity = animalHeatDao.selectOne(animalHeatLambdaQuery);
+//            if (ObjectUtil.isNotNull(animalHeatEntity)) {
+//                Double temperature = animalHeatEntity.getTemperature();
+//                if (temperature != null) {
+//                    pigBaseVo.setBodyTemperature(temperature);
+//                }
+//            }
+//
+//        }
+        return result;
     }
 
     @Override
@@ -91,10 +198,10 @@ public class PigServiceImpl extends ServiceImpl<PigDao, YearPigBaseEntity> imple
         PigImageVo pigImageVo = new PigImageVo();
 
         pigImageVo.setPigEarTagNo(pigEarTagNo);
-        String img = yearPigHistoryImgDao.getLatestImgByPigEarTagNo(pigEarTagNo);
-        if (StringUtils.isNotEmpty(img)) {
+        List<String> images = yearPigHistoryImgDao.getLatestImgByPigEarTagNo(pigEarTagNo);
+        if (CollectionUtil.isNotEmpty(images)) {
             //String encodeImg = Base64.encode(img);
-            pigImageVo.setImageData(img);
+            pigImageVo.setImages(images);
         }
         return pigImageVo;
     }
@@ -122,11 +229,11 @@ public class PigServiceImpl extends ServiceImpl<PigDao, YearPigBaseEntity> imple
                 if (ObjectUtil.isNotNull(pigstyEntity)) {
                     String number = pigstyEntity.getNumber();
                     if (StringUtils.isNotEmpty(number)) {
-                        pigBaseVo.setPigsty(number);
+//                        pigBaseVo.setPigsty(number);
                     }
                 }
                 //虚拟数据 待填充
-                pigBaseVo.setBodyTemperature("100");
+                pigBaseVo.setBodyTemperature(100D);
                 pigBaseVoList.add(pigBaseVo);
             }
         }
@@ -208,7 +315,7 @@ public class PigServiceImpl extends ServiceImpl<PigDao, YearPigBaseEntity> imple
         LambdaQueryWrapper<SportTimeEntity> lambdaQueryWrapper = Wrappers.lambdaQuery();
 
         //虚假数据
-        lambdaQueryWrapper.eq(SportTimeEntity::getEartag,pigEarTagNo);
+        lambdaQueryWrapper.eq(SportTimeEntity::getEartag, pigEarTagNo);
         SportTimeEntity sportTimeEntity = sportTimeDao.selectOne(lambdaQueryWrapper);
         sportVo.setActivityAmount(sportTimeEntity.getSportCount());
         sportVo.setPigEartagNo(pigEarTagNo);
@@ -220,7 +327,7 @@ public class PigServiceImpl extends ServiceImpl<PigDao, YearPigBaseEntity> imple
 
         //虚假数据
         LambdaQueryWrapper<SleepStatusEntity> lambdaQueryWrapper = Wrappers.lambdaQuery();
-        lambdaQueryWrapper.eq(SleepStatusEntity::getEartag,pigEarTagNo);
+        lambdaQueryWrapper.eq(SleepStatusEntity::getEartag, pigEarTagNo);
         SleepStatusEntity sleepStatusEntity = sleepStatusDao.selectOne(lambdaQueryWrapper);
 
 

+ 14 - 5
huimv-smart-apiservice/src/main/resources/application-dev.yml

@@ -43,16 +43,25 @@ spring:
       stat-view-servlet:
         enabled: true
         url-pattern: /druid/*
-        #login-username: admin
-        #login-password: admin
+        login-username: admin
+        login-password: admin
       filter:
         stat:
           log-slow-sql: true
-          slow-sql-millis: 1000
-          merge-sql: false
+          slow-sql-millis: 500
+          merge-sql: true
+          enabled: true
+          db-type: mysql
         wall:
           config:
             multi-statement-allow: true
+      filters:
+        - stat
+        - wall
+        - log4j
+
+
+
 
   # redis
   redis:
@@ -70,10 +79,10 @@ spring:
         min-idle: 5       # 连接池中的最小空闲连接
 
 
-
 # mybatis-plus相关配置
 mybatis-plus:
   type-aliases-package: com.huimv.*.entity
+
   global-config:
     banner: false
     db-config:

+ 11 - 4
huimv-smart-apiservice/src/main/resources/mapper/apiservice/YearPigBaseDao.xml

@@ -25,10 +25,8 @@
 
 
     <select id="selectFeederInfoByPigEarTagNo" parameterType="string" resultType="com.huimv.apiservice.entity.EmployeeEntity">
-        SELECT
-          me.*
-        FROM
-          mgt_employee me
+        SELECT me.*
+        FROM mgt_employee me
         JOIN mgt_pigsty mp
         ON me.id = mp.feeder_id
         JOIN mgt_pigsty_pig mpp
@@ -37,4 +35,13 @@
     </select>
 
 
+    <select id="selectPastureNameByPigstyId" resultType="java.lang.String">
+        SELECT mc.name
+        FROM mgt_pigsty zs
+        JOIN mgt_pasture mc
+        ON zs.pasture_id = mc.id
+        WHERE zs.id = #{pigstyId}
+    </select>
+
+
 </mapper>

+ 3 - 1
huimv-smart-apiservice/src/main/resources/mapper/apiservice/YearPigHistoryImgDao.xml

@@ -15,8 +15,10 @@
 
 
     <select id="getLatestImgByPigEarTagNo" parameterType="string" resultType="java.lang.String">
-        SELECT img FROM mgt_year_pig_history_img WHERE eartag = #{pigEarTagNo} ORDER BY id DESC limit 1;
+        SELECT img FROM mgt_year_pig_history_img WHERE eartag = #{pigEarTagNo} ORDER BY id DESC limit 10;
     </select>
 
 
+
+
 </mapper>

+ 13 - 1
huimv-smart-management/src/main/resources/application-dev.yml

@@ -21,24 +21,36 @@ spring:
 
   # 数据源
   datasource:
+    # 数据连接池类型
     type: com.alibaba.druid.pool.DruidDataSource
     druid:
       driver-class-name: com.mysql.cj.jdbc.Driver
       url: jdbc:mysql://localhost:3306/huimv_smart_mgt?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
       username: root
       password: root
+      # 初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时
       initial-size: 10
+      # 最大连接池连接数量,最大活跃连接数
       max-active: 100
+      # 最小连接池连接数量,最小空闲数量
       min-idle: 10
+      # 配置获取连接等待超时的时间
       max-wait: 60000
-      pool-prepared-statements: true
+      # 是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql下建议关闭。
+      pool-prepared-statements: false
+      # 指定每个连接上PSCache的大小
       max-pool-prepared-statement-per-connection-size: 20
       time-between-eviction-runs-millis: 60000
       min-evictable-idle-time-millis: 300000
       #Oracle需要打开注释
+      # 指定检测连接sql,如果是null,会影响testWhileIdle、testOnBorrow、testOnReturn失效,如果底层代码use-ping-method是true,默认使用ping
       #validation-query: SELECT 1 FROM DUAL
+
+      # 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果此连接空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
       test-while-idle: true
+      # 申请连接时会使用validationQuery检测连接是否有效,true会降低性能,如果是true,并且检测到连接已关闭,会获取其它的可用的连接
       test-on-borrow: false
+      # 归还连接时会使用validationQuery检测连接是否有效,true会降低性能,如果是true,并且检测到连接已关闭,会获取其它的可用的连接,放回数据库线程池
       test-on-return: false
       stat-view-servlet:
         enabled: true

+ 1 - 1
huimv-smart-management/src/main/resources/application.properties

@@ -1,2 +1,2 @@
 # \u73AF\u5883 dev|test|prod
-spring.profiles.active=dev
+spring.profiles.active=dev