瀏覽代碼

2021/7/6 室内环境对接慧牧环控

yinhao 4 年之前
父節點
當前提交
d9f3c43b6a
共有 51 個文件被更改,包括 1022 次插入79 次删除
  1. 3 3
      huimv-smart-common/src/main/java/com/huimv/common/exception/RRExceptionHandler.java
  2. 19 0
      huimv-smart-common/src/main/java/com/huimv/common/utils/MathUtil.java
  3. 13 0
      huimv-smart-datacollection/pom.xml
  4. 6 2
      huimv-smart-datacollection/src/main/java/com/huimv/datacollection/HuimvSmartDatacollectionApplication.java
  5. 69 0
      huimv-smart-datacollection/src/main/java/com/huimv/datacollection/controller/HuimvDeviceController.java
  6. 19 0
      huimv-smart-datacollection/src/main/java/com/huimv/datacollection/dao/DeviceUpDataDao.java
  7. 50 0
      huimv-smart-datacollection/src/main/java/com/huimv/datacollection/entity/DeviceEntity.java
  8. 64 0
      huimv-smart-datacollection/src/main/java/com/huimv/datacollection/entity/DeviceUpDataEntity.java
  9. 101 0
      huimv-smart-datacollection/src/main/java/com/huimv/datacollection/entity/WarningInfoEntity.java
  10. 32 0
      huimv-smart-datacollection/src/main/java/com/huimv/datacollection/feign/ManagementFeignService.java
  11. 21 0
      huimv-smart-datacollection/src/main/java/com/huimv/datacollection/service/DeviceUpDataService.java
  12. 124 0
      huimv-smart-datacollection/src/main/java/com/huimv/datacollection/service/impl/DeviceUpDataServiceImpl.java
  13. 7 0
      huimv-smart-datacollection/src/main/resources/application-dev.yml
  14. 19 0
      huimv-smart-gateway/pom.xml
  15. 14 6
      huimv-smart-gateway/src/main/resources/application.yml
  16. 13 0
      huimv-smart-management/pom.xml
  17. 6 3
      huimv-smart-management/src/main/java/com/huimv/management/Abc.java
  18. 82 0
      huimv-smart-management/src/main/java/com/huimv/management/controller/DeviceController.java
  19. 3 3
      huimv-smart-management/src/main/java/com/huimv/management/controller/HealthImmuneRecordController.java
  20. 10 3
      huimv-smart-management/src/main/java/com/huimv/management/controller/ThresholdManagementController.java
  21. 28 0
      huimv-smart-management/src/main/java/com/huimv/management/dao/DeviceDao.java
  22. 50 0
      huimv-smart-management/src/main/java/com/huimv/management/entity/DeviceEntity.java
  23. 2 0
      huimv-smart-management/src/main/java/com/huimv/management/entity/DrinkingWaterEntity.java
  24. 5 3
      huimv-smart-management/src/main/java/com/huimv/management/entity/ThresholdManagementEntity.java
  25. 1 1
      huimv-smart-management/src/main/java/com/huimv/management/entity/WarningInfoEntity.java
  26. 36 0
      huimv-smart-management/src/main/java/com/huimv/management/entity/vo/DeviceVo.java
  27. 1 1
      huimv-smart-management/src/main/java/com/huimv/management/entity/vo/ThresholdManagementVo.java
  28. 2 1
      huimv-smart-management/src/main/java/com/huimv/management/entity/vo/WarningInfoVo.java
  29. 24 0
      huimv-smart-management/src/main/java/com/huimv/management/service/DeviceService.java
  30. 7 0
      huimv-smart-management/src/main/java/com/huimv/management/service/ThresholdManagementService.java
  31. 3 3
      huimv-smart-management/src/main/java/com/huimv/management/service/impl/AnimalHeatServiceImpl.java
  32. 57 0
      huimv-smart-management/src/main/java/com/huimv/management/service/impl/DeviceServiceImpl.java
  33. 3 3
      huimv-smart-management/src/main/java/com/huimv/management/service/impl/EatTimeServiceImpl.java
  34. 4 5
      huimv-smart-management/src/main/java/com/huimv/management/service/impl/EmployeeServiceImpl.java
  35. 3 3
      huimv-smart-management/src/main/java/com/huimv/management/service/impl/FarmServiceImpl.java
  36. 3 3
      huimv-smart-management/src/main/java/com/huimv/management/service/impl/PigstyPigServiceImpl.java
  37. 3 3
      huimv-smart-management/src/main/java/com/huimv/management/service/impl/PigstyServiceImpl.java
  38. 3 3
      huimv-smart-management/src/main/java/com/huimv/management/service/impl/SleepStatusServiceImpl.java
  39. 3 3
      huimv-smart-management/src/main/java/com/huimv/management/service/impl/SportTimeServiceImpl.java
  40. 24 2
      huimv-smart-management/src/main/java/com/huimv/management/service/impl/ThresholdManagementServiceImpl.java
  41. 3 3
      huimv-smart-management/src/main/java/com/huimv/management/service/impl/UnitServiceImpl.java
  42. 8 2
      huimv-smart-management/src/main/java/com/huimv/management/service/impl/WarningInfoServiceImpl.java
  43. 3 3
      huimv-smart-management/src/main/java/com/huimv/management/service/impl/WaterTargetServiceImpl.java
  44. 15 5
      huimv-smart-management/src/main/java/com/huimv/management/service/impl/YearPigBaseServiceImpl.java
  45. 3 3
      huimv-smart-management/src/main/java/com/huimv/management/service/impl/YearPigHistortWeightServiceImpl.java
  46. 3 3
      huimv-smart-management/src/main/java/com/huimv/management/service/impl/YearPigHistoryImgServiceImpl.java
  47. 3 3
      huimv-smart-management/src/main/java/com/huimv/management/service/impl/YearPigPedigreeServiceImpl.java
  48. 8 1
      huimv-smart-management/src/main/resources/application-dev.yml
  49. 6 0
      huimv-smart-management/src/main/resources/application-prod.yml
  50. 2 2
      huimv-smart-management/src/main/resources/application.properties
  51. 31 0
      huimv-smart-management/src/main/resources/mapper/management/DeviceDao.xml

+ 3 - 3
huimv-smart-common/src/main/java/com/huimv/common/exception/RRExceptionHandler.java

@@ -45,7 +45,7 @@ public class RRExceptionHandler {
 		R r = new R();
 		r.put("code", e.getCode());
 		r.put("msg", e.getMessage());
-
+		logger.error(e.getMsg(),e);
 		return r;
 	}
 
@@ -105,9 +105,9 @@ public class RRExceptionHandler {
 	}
 
 	@ExceptionHandler(DataIntegrityViolationException.class)
-	public R handSQLException(DataIntegrityViolationException e) {
+	public R handDataIntegrityViolationException(DataIntegrityViolationException e) {
 		logger.error(e.getMessage(),e);
-		return R.error(1001,e.getCause().getMessage().split(" ")[1] + "没有默认值!");
+		return R.error(1001,e.getCause().getMessage());
 	}
 
 	@ExceptionHandler(HttpRequestMethodNotSupportedException.class)

+ 19 - 0
huimv-smart-common/src/main/java/com/huimv/common/utils/MathUtil.java

@@ -0,0 +1,19 @@
+package com.huimv.common.utils;
+
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author yinhao
+ * @date 2021/7/6 11:01
+ */
+public class MathUtil {
+
+    public static double formatDecimalNumber(double inNum, int n) {
+        BigDecimal b = new BigDecimal(inNum);
+        return b.setScale(n, BigDecimal.ROUND_HALF_UP).doubleValue();
+    }
+}

+ 13 - 0
huimv-smart-datacollection/pom.xml

@@ -39,6 +39,11 @@
             <artifactId>spring-boot-starter-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+        </dependency>
     </dependencies>
     <dependencyManagement>
         <dependencies>
@@ -49,6 +54,14 @@
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
+            <!--cloud-alibaba版本-->
+            <dependency>
+                <groupId>com.alibaba.cloud</groupId>
+                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
+                <version>2021.1</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 

+ 6 - 2
huimv-smart-datacollection/src/main/java/com/huimv/datacollection/HuimvSmartDatacollectionApplication.java

@@ -1,19 +1,23 @@
 package com.huimv.datacollection;
 
+import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.cloud.openfeign.EnableFeignClients;
 
 /**
  * @author yinhao
  * @version 1.0
  * @date 2021/6/23
  */
+@EnableFeignClients(basePackages = "com.huimv.datacollection.feign")
+@MapperScan("com.huimv.datacollection.dao")
 @SpringBootApplication
-public class HuimvSmartDatacollectionApplication {
+public class HuimvSmartDataCollectionApplication {
 
     public static void main(String[] args) {
-        SpringApplication.run(HuimvSmartDatacollectionApplication.class, args);
+        SpringApplication.run(HuimvSmartDataCollectionApplication.class, args);
     }
 
 }

+ 69 - 0
huimv-smart-datacollection/src/main/java/com/huimv/datacollection/controller/HuimvDeviceController.java

@@ -0,0 +1,69 @@
+package com.huimv.datacollection.controller;
+
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.huimv.datacollection.service.DeviceUpDataService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
+
+/**
+ * <p>
+ * 慧牧环控设备
+ * </p>
+ *
+ * @author yinhao
+ * @version 1.0
+ * @date 2021/7/5 15:13
+ */
+@Slf4j
+@RestController
+@RequestMapping(value = "/deviceData", method = RequestMethod.POST)
+public class HuimvDeviceController {
+
+
+    @Autowired
+    private DeviceUpDataService deviceUpDataService;
+
+
+    @RequestMapping(value = "/deviceChange", method = {RequestMethod.GET, RequestMethod.POST})
+    public void deviceUpAndDown(HttpServletRequest request, HttpServletResponse response) {
+        DateTime date = DateUtil.date();
+        log.info("开始时间------>" + date);
+
+        StringBuffer result = new StringBuffer();
+        BufferedReader br = null;
+        try {
+            br = new BufferedReader(new InputStreamReader(request.getInputStream(), StandardCharsets.UTF_8));
+            String temp;
+            while ((temp = br.readLine()) != null) {
+                result.append(temp);
+            }
+            JSONObject jsonData = JSONObject.parseObject(result.toString());
+            deviceUpDataService.saveDeviceUpData(jsonData);
+
+        } catch (IOException e) {
+            log.error(e.getMessage(), e);
+            //关闭字符输入流
+        } finally {
+            if (br != null) {
+                try {
+                    br.close();
+                } catch (IOException e) {
+                    log.error(e.getMessage(), e);
+                }
+            }
+
+        }
+    }
+}

+ 19 - 0
huimv-smart-datacollection/src/main/java/com/huimv/datacollection/dao/DeviceUpDataDao.java

@@ -0,0 +1,19 @@
+package com.huimv.datacollection.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.datacollection.entity.DeviceUpDataEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author yinhao
+ * @date 2021/7/5 16:13
+ */
+@Mapper
+@Repository
+public interface DeviceUpDataDao extends BaseMapper<DeviceUpDataEntity> {
+}

+ 50 - 0
huimv-smart-datacollection/src/main/java/com/huimv/datacollection/entity/DeviceEntity.java

@@ -0,0 +1,50 @@
+package com.huimv.datacollection.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 慧牧环控设备
+ * 
+ * @author yinhao
+ * @version ${version}
+ * @date 2021-07-05 10:42:14
+ */
+@Data
+@TableName("mgt_device")
+public class DeviceEntity implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 设备id
+	 */
+	@TableId(type = IdType.INPUT)
+	private String deviceId;
+	/**
+	 * 牧场id
+	 */
+	private Integer farmId;
+	/**
+	 * 猪舍id
+	 */
+	private Integer pigstyId;
+	/**
+	 * 删除状态 0:未删除 其他:已删除
+	 */
+	@TableLogic
+	private Integer deleted;
+	/**
+	 * 创建时间
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	private Date gmtCreate;
+	/**
+	 * 修改时间
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	private Date gmtModified;
+
+}

+ 64 - 0
huimv-smart-datacollection/src/main/java/com/huimv/datacollection/entity/DeviceUpDataEntity.java

@@ -0,0 +1,64 @@
+package com.huimv.datacollection.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author yinhao
+ * @date 2021/7/5 15:46
+ */
+@Data
+@TableName("dc_device_up_data")
+public class DeviceUpDataEntity implements Serializable {
+    private static final long serialVersionUID = -4933550721235784950L;
+
+    @TableId
+    private Integer id;
+
+    private String productId;
+
+    private String deviceId;
+
+    private String timestamp;
+
+    private String serviceId;
+
+    private String protocol;
+
+    private String imsi;
+
+    private String imei;
+
+    private String deviceType;
+
+    private String messageType;
+
+    private Integer dataVer;
+
+    private Integer dataTime;
+
+    private Integer dataTemp;
+
+    private Integer dataStc;
+
+    private Integer dataRssi;
+
+    private Integer dataHumi;
+
+    private Integer dataBat;
+
+    private String tenantId;
+
+    private double dataTempConvert;
+
+    private double dataHumiConvert;
+
+    private double dataBatConvert;
+}

+ 101 - 0
huimv-smart-datacollection/src/main/java/com/huimv/datacollection/entity/WarningInfoEntity.java

@@ -0,0 +1,101 @@
+package com.huimv.datacollection.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 报警信息entity
+ * </p>
+ * @author yinhao
+ * @version 1.0
+ * @date 2021-06-15 13:01:37
+ */
+@Data
+@TableName("mgt_warning_info")
+public class WarningInfoEntity implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 主键
+	 */
+	@TableId
+	private Integer id;
+	/**
+	 * 当前日期
+	 */
+	@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GTM+8")
+	private Date nowDate;
+	/**
+	 * 牧场id
+	 */
+	private Integer farmId;
+	/**
+	 * 猪舍id
+	 */
+	private Integer pigstyId;
+	/**
+	 * 单元id
+	 */
+	private Integer unitId;
+	/**
+	 * 耳标号
+	 */
+	private String earTag;
+	/**
+	 * 报警类型 
+		--室内环境
+		1:室内高温
+		2:室内低温
+		3:室内空气污染
+		4:室内饮用水污染
+
+		--室外环境
+		5.室外高温
+		6.室外低温
+		7.室外空气污染
+
+		--体温
+		8.体温高温
+		9.体温低温
+	 */
+	private String warningType;
+	/**
+	 * 归属于
+	 * 1.室内
+	 * 2.室外
+	 * 3.体温
+	 */
+	private Short belongTo;
+	/**
+	 * 当前数值
+	 */
+	private Double nowValue;
+	/**
+	 * 报警时间
+	 */
+	private Date warningTime;
+	/**
+	 * 确认状态 0:未确认 1.已确认
+	 */
+	private Boolean verifyStatus;
+	/**
+	 * 确认人id
+	 */
+	private String verifyUser;
+	/**
+	 * 确认描述
+	 */
+	private String verifyDescription;
+
+	/**
+	 * 确认时间
+	 */
+	private Date verifyTime;
+
+}

+ 32 - 0
huimv-smart-datacollection/src/main/java/com/huimv/datacollection/feign/ManagementFeignService.java

@@ -0,0 +1,32 @@
+package com.huimv.datacollection.feign;
+
+import com.huimv.common.utils.R;
+import com.huimv.datacollection.entity.WarningInfoEntity;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 微服务management提供feign接口
+ * </p>
+ *
+ * @author yinhao
+ * @date 2021/7/6 9:24
+ */
+@FeignClient(value = "huimv-smart-management")
+public interface ManagementFeignService {
+
+    @GetMapping("/management/thresholdManagement/selectByType/{type}")
+    Map<String,Double> selectByType(@PathVariable("type") Short type);
+
+    @GetMapping("/management/device/info/{deviceId}")
+    R info(@PathVariable("deviceId") String deviceId);
+
+    @PostMapping("/management/warningInfo/save")
+    R save(@RequestBody WarningInfoEntity warningInfo);
+}

+ 21 - 0
huimv-smart-datacollection/src/main/java/com/huimv/datacollection/service/DeviceUpDataService.java

@@ -0,0 +1,21 @@
+package com.huimv.datacollection.service;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.datacollection.entity.DeviceUpDataEntity;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author yinhao
+ * @date 2021/7/5 16:06
+ */
+public interface DeviceUpDataService extends IService<DeviceUpDataEntity> {
+    /**
+     * 保存设备上传数据
+     * @param jsonData
+     */
+    void saveDeviceUpData(JSONObject jsonData);
+}

+ 124 - 0
huimv-smart-datacollection/src/main/java/com/huimv/datacollection/service/impl/DeviceUpDataServiceImpl.java

@@ -0,0 +1,124 @@
+package com.huimv.datacollection.service.impl;
+
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.huimv.common.exception.RRException;
+import com.huimv.common.utils.MathUtil;
+import com.huimv.common.utils.R;
+import com.huimv.datacollection.dao.DeviceUpDataDao;
+import com.huimv.datacollection.entity.DeviceEntity;
+import com.huimv.datacollection.entity.DeviceUpDataEntity;
+import com.huimv.datacollection.entity.WarningInfoEntity;
+import com.huimv.datacollection.feign.ManagementFeignService;
+import com.huimv.datacollection.service.DeviceUpDataService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 设备数据上传和报警
+ * </p>
+ *
+ * @author yinhao
+ * @date 2021/7/5 16:12
+ */
+@Service("deviceUpDataServiceImpl")
+public class DeviceUpDataServiceImpl extends ServiceImpl<DeviceUpDataDao, DeviceUpDataEntity> implements DeviceUpDataService {
+
+    @Autowired
+    ManagementFeignService managementFeignService;
+
+    @Override
+    public void saveDeviceUpData(JSONObject jsonData) {
+        String productId = jsonData.getString("productId");
+        String deviceId = jsonData.getString("deviceId");
+        long timestamp = jsonData.getLong("timestamp");
+        String upDataDate = DateUtil.date(timestamp).toString();
+        String serviceId = jsonData.getString("serviceId");
+        String imsi = jsonData.getString("IMSI");
+        String imei = jsonData.getString("IMEI");
+        String deviceType = jsonData.getString("deviceType");
+        String messageType = jsonData.getString("messageType");
+        String protocol = jsonData.getString("protocol");
+        String tenantId = jsonData.getString("tenantId");
+        JSONObject businessDataJo = jsonData.getJSONObject("payload");
+        int dataVer = businessDataJo.getInteger("VER");
+        int dataTime = businessDataJo.getInteger("TIME");
+        int dataTemp = businessDataJo.getInteger("TEMP");
+        int dataStc = businessDataJo.getInteger("STC");
+        int dataRssi = businessDataJo.getInteger("RSSI");
+        int dataHumi = businessDataJo.getInteger("HUMI");
+        int dataBat = businessDataJo.getInteger("BAT");
+        DeviceUpDataEntity deviceUpdataEntity = new DeviceUpDataEntity();
+        deviceUpdataEntity.setProductId(productId);
+        deviceUpdataEntity.setDeviceId(deviceId);
+        deviceUpdataEntity.setTimestamp(upDataDate);
+        deviceUpdataEntity.setServiceId(serviceId);
+        deviceUpdataEntity.setImei(imei);
+        deviceUpdataEntity.setImsi(imsi);
+        deviceUpdataEntity.setDeviceType(deviceType);
+        deviceUpdataEntity.setMessageType(messageType);
+        deviceUpdataEntity.setProtocol(protocol);
+        deviceUpdataEntity.setDataVer(dataVer);
+        deviceUpdataEntity.setDataTime(dataTime);
+        deviceUpdataEntity.setDataTemp(dataTemp);
+        deviceUpdataEntity.setDataStc(dataStc);
+        deviceUpdataEntity.setDataRssi(dataRssi);
+        deviceUpdataEntity.setDataHumi(dataHumi);
+        deviceUpdataEntity.setDataBat(dataBat);
+        deviceUpdataEntity.setTenantId(tenantId);
+        double dataTempConvert = MathUtil.formatDecimalNumber(dataTemp * 0.1, 1);
+        deviceUpdataEntity.setDataTempConvert(dataTempConvert);
+        double dataHumiConvert = MathUtil.formatDecimalNumber(dataHumi * 0.1, 1);
+        deviceUpdataEntity.setDataHumiConvert(dataHumiConvert);
+        deviceUpdataEntity.setDataBatConvert(MathUtil.formatDecimalNumber(dataBat * 0.01, 1));
+        save(deviceUpdataEntity);
+
+
+        Map<String, Double> map = managementFeignService.selectByType((short) 1);
+        Double highTemp = map.get("高温");
+        double highTempThreshold = highTemp == null ? 40.0 : highTemp;
+        Double lowTemp = map.get("低温");
+        double lowTempThreshold = lowTemp == null ? 15.0 : lowTemp;
+
+        if (dataTempConvert > highTempThreshold) {
+            insertWarningInfo(deviceId, dataTempConvert, "高温");
+        } else if (dataTempConvert < lowTempThreshold) {
+            insertWarningInfo(deviceId, dataTempConvert, "低温");
+
+        }
+        Double highHumidity = map.get("湿度过高");
+        double highHumidityThreshold = highHumidity == null ? 80.0 : highHumidity;
+        Double lowHumidity = map.get("湿度过低");
+        double lowHumidityThreshold = lowHumidity == null ? 30.0 : lowHumidity;
+        if (dataHumiConvert > highHumidityThreshold) {
+            insertWarningInfo(deviceId,dataHumiConvert,"湿度过高");
+        } else if (dataHumiConvert < lowHumidityThreshold) {
+            insertWarningInfo(deviceId,dataHumiConvert,"湿度过低");
+        }
+
+
+    }
+
+    private void insertWarningInfo(String deviceId, double nowValue, String warningType) {
+        DeviceEntity deviceInfo = (DeviceEntity) managementFeignService.info(deviceId).get("device");
+        WarningInfoEntity warningInfoEntity = new WarningInfoEntity();
+        DateTime date = DateUtil.date();
+        warningInfoEntity.setNowDate(date);
+        warningInfoEntity.setFarmId(deviceInfo.getFarmId());
+        warningInfoEntity.setPigstyId(deviceInfo.getPigstyId());
+        warningInfoEntity.setWarningType(warningType);
+        warningInfoEntity.setBelongTo((short) 1);
+        warningInfoEntity.setNowValue(nowValue);
+        warningInfoEntity.setWarningTime(date);
+
+        managementFeignService.save(warningInfoEntity);
+
+    }
+
+
+}

+ 7 - 0
huimv-smart-datacollection/src/main/resources/application-dev.yml

@@ -19,6 +19,7 @@ spring:
       max-request-size: 100MB
       enabled: true
 
+
   # 数据源
   datasource:
     type: com.alibaba.druid.pool.DruidDataSource
@@ -69,6 +70,12 @@ spring:
         max-idle: 10      # 连接池中的最大空闲连接
         min-idle: 5       # 连接池中的最小空闲连接
 
+  # nacos
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 192.168.1.57:8848
+
 
 
 # mybatis-plus相关配置

+ 19 - 0
huimv-smart-gateway/pom.xml

@@ -40,6 +40,17 @@
             <artifactId>spring-boot-starter-test</artifactId>
             <scope>test</scope>
         </dependency>
+
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
+        </dependency>
+
     </dependencies>
     <dependencyManagement>
         <dependencies>
@@ -50,6 +61,14 @@
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
+            <!--cloud-alibaba版本-->
+            <dependency>
+                <groupId>com.alibaba.cloud</groupId>
+                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
+                <version>2021.1</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 

+ 14 - 6
huimv-smart-gateway/src/main/resources/application.yml

@@ -1,8 +1,8 @@
 spring:
   cloud:
-#    nacos:
-#      discovery:
-#        server-addr: 127.0.0.1:8848
+    nacos:
+      discovery:
+        server-addr: 192.168.1.57:8848
     gateway:
 #      globalcors:
 #        cors-configurations:
@@ -18,12 +18,20 @@ spring:
 #              - OPTION
 #            maxAge: 1800
       routes:
-        - id: managment_route
-          uri: http://127.0.0.1:9200
+        # management
+        - id: management_route
+          uri: lb://huimv-smart-management
           predicates:
             - Path=/api/management/**
           filters:
             - RewritePath=/api/management/(?<segment>/?.*), /management/$\{segment}
+        # datacollection
+        - id: datacollection_route
+          uri: lb://huimv-smart-datacollection
+          predicates:
+            - Path=/api/datacollection/**
+          filters:
+            - RewritePath=/api/datacollection/(?<segment>/?.*), /datacollection/$\{segment}
         # renren-fast后台管理系统的路由(低优先级的放在下面)
         - id: admin_route
           uri: http://127.0.0.1:9500
@@ -48,7 +56,7 @@ spring:
 ## 前端项目, /api
 ## http://localhost:88/api/captcha.jpg  -> http://renren-fast/api/captcha.jpg -> http:localhost:8080/renren-fast/captcha.jpg
   application:
-    name: gulimall-gateway
+    name: huimv-smart-gateway
 
 
 server:

+ 13 - 0
huimv-smart-management/pom.xml

@@ -53,6 +53,11 @@
         </dependency>
 
         <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+        </dependency>
+
+        <dependency>
             <groupId>org.jeecgframework</groupId>
             <artifactId>autopoi-web</artifactId>
             <version>1.0.4</version>
@@ -79,6 +84,14 @@
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
+            <!--cloud-alibaba版本-->
+            <dependency>
+                <groupId>com.alibaba.cloud</groupId>
+                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
+                <version>2021.1</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 

+ 6 - 3
huimv-smart-management/src/main/java/com/huimv/management/Abc.java

@@ -1,6 +1,7 @@
 package com.huimv.management;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateUtil;
 import com.huimv.common.utils.Constant;
 import com.huimv.management.rsa.JdkSignatureUtil;
 import com.huimv.management.util.GetUserUtil;
@@ -106,9 +107,11 @@ public class Abc {
 
 
 
-        String s = "111122345";
-        List<Integer> collect = Arrays.stream(s.split("")).map(Integer::parseInt).collect(Collectors.toList());
+//        String s = "111122345";
+//        List<Integer> collect = Arrays.stream(s.split("")).map(Integer::parseInt).collect(Collectors.toList());
+//
+//        ArrayList<Object> objects = new ArrayList<>();
 
-        ArrayList<Object> objects = new ArrayList<>();
+        System.out.println(DateUtil.date());
     }
 }

+ 82 - 0
huimv-smart-management/src/main/java/com/huimv/management/controller/DeviceController.java

@@ -0,0 +1,82 @@
+ package com.huimv.management.controller;
+
+import java.util.Arrays;
+import java.util.Map;
+
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import com.huimv.management.entity.DeviceEntity;
+import com.huimv.management.service.DeviceService;
+import com.huimv.common.utils.PageUtils;
+import com.huimv.common.utils.R;
+
+
+
+/**
+ * 慧牧环控设备
+ *
+ * @author yinhao
+ * @version ${version}
+ * @date 2021-07-05 10:42:14
+ */
+@Api(tags = "环控设备Controller")
+@RestController
+@RequestMapping("management/device")
+public class DeviceController {
+    @Autowired
+    private DeviceService deviceService;
+
+    /**
+     * 列表
+     */
+    @RequestMapping("/list")
+    public R list(@RequestParam Map<String, Object> params){
+        PageUtils page = deviceService.queryPage(params);
+
+        return R.ok().put("page", page);
+    }
+
+
+    /**
+     * 信息
+     */
+    @GetMapping("/info/{deviceId}")
+    public R info(@PathVariable("deviceId") String deviceId){
+		DeviceEntity device = deviceService.getById(deviceId);
+
+        return R.ok().put("device", device);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    public R save(@RequestBody DeviceEntity device){
+		deviceService.save(device);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    public R update(@RequestBody DeviceEntity device){
+		deviceService.updateById(device);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    public R delete(@RequestBody String[] deviceIds){
+		deviceService.removeByIds(Arrays.asList(deviceIds));
+
+        return R.ok();
+    }
+
+}

+ 3 - 3
huimv-smart-management/src/main/java/com/huimv/management/controller/HealthImmuneRecordController.java

@@ -22,7 +22,7 @@ import com.huimv.common.utils.R;
 
 
 /**
- * 
+ *
  *
  * @author yinhao
  * @email yinhao@163.com
@@ -82,7 +82,7 @@ public class HealthImmuneRecordController {
     @RequestMapping("/delete")
     public R delete(@RequestBody Integer[] ids){
         for (Integer id : ids) {
-            
+
         }
 		healthImmuneRecordService.removeByIds(Arrays.asList(ids));
 
@@ -100,7 +100,7 @@ public class HealthImmuneRecordController {
 
 
         String vaccineName = (String)map.get("vaccineName");
-        Integer farmId = Integer.parseInt((String)map.get("formFarmId"));
+        Integer farmId =(Integer) map.get("formFarmId");
         Integer manId = (Integer)map.get("manId");
 
         healthImmuneRecordService.saveAll(split,vaccineName,farmId,manName,manId);

+ 10 - 3
huimv-smart-management/src/main/java/com/huimv/management/controller/ThresholdManagementController.java

@@ -98,6 +98,11 @@ public class ThresholdManagementController {
         return R.ok();
     }
 
+    @GetMapping("/selectByType/{type}")
+    public Map<String,Double> selectByType(@PathVariable("type") Short type) {
+        return thresholdManagementService.selectByType(type);
+    }
+
     @GetMapping("/exportXls")
     public ModelAndView exportXls(ThresholdManagementEntity thresholdManagementEntity, HttpServletRequest request) {
 
@@ -114,7 +119,7 @@ public class ThresholdManagementController {
     }
 
 
-    @PostMapping("/importExcel")
+    /*@PostMapping("/importExcel")
     @Transactional(rollbackFor = Throwable.class)
     public R importExcel(HttpServletRequest request, HttpServletResponse response) {
         MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
@@ -129,7 +134,7 @@ public class ThresholdManagementController {
             try {
                 List<ThresholdManagementEntity> list = ExcelImportUtil.importExcel(file.getInputStream(), ThresholdManagementEntity.class, params);
                 for (ThresholdManagementEntity thresholdManagementEntity : list) {
-                    Integer thresholdType = thresholdManagementEntity.getThresholdType();
+                    String thresholdType = thresholdManagementEntity.getThresholdType();
                     switch (thresholdType) {
                         case 1:
                         case 2:
@@ -149,6 +154,8 @@ public class ThresholdManagementController {
                         case 10:
                             thresholdManagementEntity.setBelongTo((short) 3);
                             break;
+                        default:
+                            break;
                     }
                     thresholdManagementService.save(thresholdManagementEntity);
                 }
@@ -164,6 +171,6 @@ public class ThresholdManagementController {
         }
         return R.ok();
 
-    }
+    }*/
 
 }

+ 28 - 0
huimv-smart-management/src/main/java/com/huimv/management/dao/DeviceDao.java

@@ -0,0 +1,28 @@
+package com.huimv.management.dao;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.huimv.management.entity.DeviceEntity;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.management.entity.vo.DeviceVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 慧牧环控设备
+ * 
+ * @author yinhao
+ * @version ${version}
+ * @date 2021-07-05 10:42:14
+ */
+@Mapper
+public interface DeviceDao extends BaseMapper<DeviceEntity> {
+
+    /**
+     * 分页条件查询
+     * @param page
+     * @param queryWrapper
+     * @return
+     */
+    IPage<DeviceVo> page(@Param("page") IPage page,@Param("ew") QueryWrapper queryWrapper);
+}

+ 50 - 0
huimv-smart-management/src/main/java/com/huimv/management/entity/DeviceEntity.java

@@ -0,0 +1,50 @@
+package com.huimv.management.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 慧牧环控设备
+ * 
+ * @author yinhao
+ * @version ${version}
+ * @date 2021-07-05 10:42:14
+ */
+@Data
+@TableName("mgt_device")
+public class DeviceEntity implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 设备id
+	 */
+	@TableId(type = IdType.INPUT)
+	private String deviceId;
+	/**
+	 * 牧场id
+	 */
+	private Integer farmId;
+	/**
+	 * 猪舍id
+	 */
+	private Integer pigstyId;
+	/**
+	 * 删除状态 0:未删除 其他:已删除
+	 */
+	@TableLogic
+	private Integer deleted;
+	/**
+	 * 创建时间
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	private Date gmtCreate;
+	/**
+	 * 修改时间
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	private Date gmtModified;
+
+}

+ 2 - 0
huimv-smart-management/src/main/java/com/huimv/management/entity/DrinkingWaterEntity.java

@@ -2,6 +2,7 @@ package com.huimv.management.entity;
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
@@ -24,6 +25,7 @@ public class DrinkingWaterEntity implements Serializable {
     /**
      * 主键
      */
+    @TableId
     private String id;
     /**
      * 牧场id

+ 5 - 3
huimv-smart-management/src/main/java/com/huimv/management/entity/ThresholdManagementEntity.java

@@ -32,8 +32,9 @@ public class ThresholdManagementEntity implements Serializable {
 	/**
 	 * 阈值类型
 	 */
-	@Excel(name = "阈值类型",width = 15,orderNum = "1",replace = {"室内高温_1","室内低温_2","室内空气污染_3","饮用水污染_4","室外高温_5","室外低温_6","室外空气污染_7","体温高温_8","体温低温_9","耳标电量不足_10"})
-	private Integer thresholdType;
+	@Excel(name = "阈值类型",width = 15,orderNum = "1")
+//	@Excel(name = "阈值类型",width = 15,orderNum = "1",replace = {"室内高温_1","室内低温_2","室内空气污染_3","饮用水污染_4","室外高温_5","室外低温_6","室外空气污染_7","体温高温_8","体温低温_9","耳标电量不足_10"})
+	private String thresholdType;
 	/**
 	 * 所属范围
 	 * 1.室内
@@ -41,11 +42,12 @@ public class ThresholdManagementEntity implements Serializable {
 	 * 3.体温
 	 * 4.饮用水
 	 */
+	@Excel(name = "所属范围",orderNum = "2",replace = {"室内_1","室外_2","耳标数据_3","饮用水_4"})
 	private Short belongTo;
 	/**
 	 * 阈值数值
 	 */
-	@Excel(name = "阈值数值",orderNum = "2")
+	@Excel(name = "阈值数值",orderNum = "3")
 	private Double thresholdValue;
 	/**
 	 * 删除状态 0:未删除 其他:已删除

+ 1 - 1
huimv-smart-management/src/main/java/com/huimv/management/entity/WarningInfoEntity.java

@@ -62,7 +62,7 @@ public class WarningInfoEntity implements Serializable {
 		8.体温高温
 		9.体温低温
 	 */
-	private Integer warningType;
+	private String warningType;
 	/**
 	 * 归属于
 	 * 1.室内

+ 36 - 0
huimv-smart-management/src/main/java/com/huimv/management/entity/vo/DeviceVo.java

@@ -0,0 +1,36 @@
+package com.huimv.management.entity.vo;
+
+import lombok.Data;
+
+/**
+ * <p>
+ * 慧牧环控设备
+ * </p>
+ *
+ * @author yinhao
+ * @date 2021/7/5 11:10
+ */
+@Data
+public class DeviceVo {
+
+    /**
+     * 设备id
+     */
+    private String deviceId;
+    /**
+     * 牧场id
+     */
+    private Integer farmId;
+    /**
+     * 牧场名称
+     */
+    private String farmName;
+    /**
+     * 猪舍id
+     */
+    private Integer pigstyId;
+    /**
+     * 猪舍名称
+     */
+    private String pigstyName;
+}

+ 1 - 1
huimv-smart-management/src/main/java/com/huimv/management/entity/vo/ThresholdManagementVo.java

@@ -32,7 +32,7 @@ public class ThresholdManagementVo implements Serializable {
     /**
      * 阈值类型
      */
-    private Integer thresholdType;
+    private String thresholdType;
     /**
      * 所属范围
      * 1.室内

+ 2 - 1
huimv-smart-management/src/main/java/com/huimv/management/entity/vo/WarningInfoVo.java

@@ -59,12 +59,13 @@ public class WarningInfoVo implements Serializable {
     /**
      * 报警类型(数字)
      */
-    private Short warningType;
+    private String warningType;
     /**
      * 归属于
      * 1.室内
      * 2.室外
      * 3.体温
+     * 4.饮用水
      */
     private Short belongTo;
     /**

+ 24 - 0
huimv-smart-management/src/main/java/com/huimv/management/service/DeviceService.java

@@ -0,0 +1,24 @@
+package com.huimv.management.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.common.utils.PageUtils;
+import com.huimv.management.entity.DeviceEntity;
+
+import java.util.Map;
+
+/**
+ * 慧牧环控设备
+ *
+ * @author yinhao
+ * @version ${version}
+ * @date 2021-07-05 10:42:14
+ */
+public interface DeviceService extends IService<DeviceEntity> {
+    /**
+     * 分页条件查询
+     * @param params
+     * @return
+     */
+    PageUtils queryPage(Map<String, Object> params);
+}
+

+ 7 - 0
huimv-smart-management/src/main/java/com/huimv/management/service/ThresholdManagementService.java

@@ -23,5 +23,12 @@ public interface ThresholdManagementService extends IService<ThresholdManagement
      * @return
      */
     PageUtils queryPage(Map<String, Object> params);
+
+    /**
+     * 根据belongTo查询阈值
+     * @param type
+     * @return
+     */
+    Map<String, Double> selectByType(Short type);
 }
 

+ 3 - 3
huimv-smart-management/src/main/java/com/huimv/management/service/impl/AnimalHeatServiceImpl.java

@@ -23,9 +23,9 @@ public class AnimalHeatServiceImpl extends ServiceImpl<AnimalHeatDao, AnimalHeat
     public PageUtils queryPage(Map<String, Object> params) {
 
         LambdaQueryWrapper<AnimalHeatEntity> lambdaQuery = Wrappers.lambdaQuery();
-        String keywords = (String) params.get("keywords");
+        String keyword = (String) params.get("keyword");
         //没有参数
-        if (keywords == null || keywords.equals("")){
+        if (keyword == null || keyword.equals("")){
             IPage<AnimalHeatEntity> page = this.page(
                     new Query<AnimalHeatEntity>().getPage(params),
                     new QueryWrapper<AnimalHeatEntity>()
@@ -33,7 +33,7 @@ public class AnimalHeatServiceImpl extends ServiceImpl<AnimalHeatDao, AnimalHeat
             return new PageUtils(page);
         }
 
-        lambdaQuery.like(AnimalHeatEntity::getEartag,keywords);
+        lambdaQuery.like(AnimalHeatEntity::getEartag,keyword);
         IPage<AnimalHeatEntity> page = page(this.page(
                 new Query<AnimalHeatEntity>().getPage(params)
         ), lambdaQuery);

+ 57 - 0
huimv-smart-management/src/main/java/com/huimv/management/service/impl/DeviceServiceImpl.java

@@ -0,0 +1,57 @@
+package com.huimv.management.service.impl;
+
+import com.huimv.common.exception.RRException;
+import com.huimv.management.entity.vo.DeviceVo;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.huimv.common.utils.PageUtils;
+import com.huimv.common.utils.Query;
+
+import com.huimv.management.dao.DeviceDao;
+import com.huimv.management.entity.DeviceEntity;
+import com.huimv.management.service.DeviceService;
+
+/**
+ * 慧牧环控设备
+ *
+ * @author yinhao
+ * @version ${version}
+ * @date 2021-07-05 10:42:14
+ */
+@Service("deviceService")
+public class DeviceServiceImpl extends ServiceImpl<DeviceDao, DeviceEntity> implements DeviceService {
+
+    @Override
+    public PageUtils queryPage(Map<String, Object> params) {
+
+        QueryWrapper<DeviceVo> queryWrapper = new QueryWrapper<>();
+        String farmId = (String) params.get("formFarmId");
+        if (StringUtils.isBlank(farmId)) {
+            throw new RRException("请先指定牧场id再进行查询!");
+        }
+        queryWrapper.eq("device.farm_id", Integer.parseInt(farmId));
+
+        String keyword = (String) params.get("keyword");
+        if (StringUtils.isNotBlank(keyword)) {
+            queryWrapper.like("device.device_id", keyword);
+        }
+
+        String pigstyId = (String) params.get("pigstyId");
+        if (StringUtils.isNotBlank(pigstyId)) {
+            queryWrapper.eq("device.pigsty_id", pigstyId);
+        }
+
+        queryWrapper.apply("device.deleted = 0");
+        queryWrapper.orderByDesc("device.gmt_modified");
+
+        IPage<DeviceVo> page = baseMapper.page(new Query<>().getPage(params),queryWrapper);
+        return new PageUtils(page);
+    }
+
+}

+ 3 - 3
huimv-smart-management/src/main/java/com/huimv/management/service/impl/EatTimeServiceImpl.java

@@ -23,9 +23,9 @@ public class EatTimeServiceImpl extends ServiceImpl<EatTimeDao, EatTimeEntity> i
     public PageUtils queryPage(Map<String, Object> params) {
 
         LambdaQueryWrapper<EatTimeEntity> lambdaQuery = Wrappers.lambdaQuery();
-        String keywords = (String) params.get("keywords");
+        String keyword = (String) params.get("keyword");
         //没有参数
-        if (keywords == null || "".equals(keywords)){
+        if (keyword == null || "".equals(keyword)){
             IPage<EatTimeEntity> page = this.page(
                     new Query<EatTimeEntity>().getPage(params),
                     new QueryWrapper<EatTimeEntity>()
@@ -33,7 +33,7 @@ public class EatTimeServiceImpl extends ServiceImpl<EatTimeDao, EatTimeEntity> i
             return new PageUtils(page);
         }
 
-        lambdaQuery.like(EatTimeEntity::getEartag,keywords);
+        lambdaQuery.like(EatTimeEntity::getEartag,keyword);
         IPage<EatTimeEntity> page = page(this.page(
                 new Query<EatTimeEntity>().getPage(params)
         ), lambdaQuery);

+ 4 - 5
huimv-smart-management/src/main/java/com/huimv/management/service/impl/EmployeeServiceImpl.java

@@ -41,12 +41,11 @@ public class EmployeeServiceImpl extends ServiceImpl<EmployeeDao, EmployeeEntity
 
        LambdaQueryWrapper<EmployeeEntity> lambdaQuery = Wrappers.lambdaQuery();
        String farmId = (String)params.get("formFarmId");
-       lambdaQuery.eq(StringUtils.isNotBlank(farmId),EmployeeEntity::getFarmId,farmId);
+       lambdaQuery.eq(StringUtils.isNotBlank(farmId),EmployeeEntity::getFarmId,Integer.parseInt(farmId));
 
-       String keywords = (String) params.get("keywords");
-       lambdaQuery.like(EmployeeEntity::getName,keywords);
+       String keyword = (String) params.get("keyword");
        //没有参数
-       if (keywords == null || keywords.equals("")){
+       if (keyword == null || "".equals(keyword)){
            IPage<EmployeeEntity> page = this.page(
                    new Query<EmployeeEntity>().getPage(params),
                    lambdaQuery
@@ -54,7 +53,7 @@ public class EmployeeServiceImpl extends ServiceImpl<EmployeeDao, EmployeeEntity
            return new PageUtils(page);
        }
 
-       lambdaQuery.like(EmployeeEntity::getName,keywords);
+       lambdaQuery.like(EmployeeEntity::getName,keyword);
        IPage<EmployeeEntity> page = page(this.page(
                new Query<EmployeeEntity>().getPage(params)
        ), lambdaQuery);

+ 3 - 3
huimv-smart-management/src/main/java/com/huimv/management/service/impl/FarmServiceImpl.java

@@ -31,10 +31,10 @@ public class FarmServiceImpl extends ServiceImpl<FarmDao, FarmEntity> implements
     public PageUtils queryPage(Map<String, Object> params) {
 
         LambdaQueryWrapper<FarmEntity> lambdaQuery = Wrappers.lambdaQuery();
-        String keywords = (String) params.get("keywords");
+        String keyword = (String) params.get("keyword");
         //有参数
-        if (StringUtils.isNotEmpty(keywords)) {
-            lambdaQuery.apply("CONCAT(name,front_location ,manager,build_time) like CONCAT('%',{0},'%')",keywords);
+        if (StringUtils.isNotEmpty(keyword)) {
+            lambdaQuery.apply("CONCAT(name,front_location ,manager,build_time) like CONCAT('%',{0},'%')",keyword);
         }
         //lambdaQuery.orderByDesc(FarmEntity::getBuildTime);
 

+ 3 - 3
huimv-smart-management/src/main/java/com/huimv/management/service/impl/PigstyPigServiceImpl.java

@@ -24,9 +24,9 @@ public class PigstyPigServiceImpl extends ServiceImpl<PigstyPigDao, PigstyPigEnt
     public PageUtils queryPage(Map<String, Object> params) {
 
         LambdaQueryWrapper<PigstyPigEntity> lambdaQuery = Wrappers.lambdaQuery();
-        String keywords = (String) params.get("keywords");
+        String keyword = (String) params.get("keyword");
         //没有参数
-        if (keywords == null || keywords.equals("")){
+        if (keyword == null || keyword.equals("")){
             IPage<PigstyPigEntity> page = this.page(
                     new Query<PigstyPigEntity>().getPage(params),
                     new QueryWrapper<PigstyPigEntity>()
@@ -34,7 +34,7 @@ public class PigstyPigServiceImpl extends ServiceImpl<PigstyPigDao, PigstyPigEnt
             return new PageUtils(page);
         }
 
-        lambdaQuery.like(PigstyPigEntity::getEartag,keywords);
+        lambdaQuery.like(PigstyPigEntity::getEartag,keyword);
         IPage<PigstyPigEntity> page = page(this.page(
                 new Query<PigstyPigEntity>().getPage(params)
         ), lambdaQuery);

+ 3 - 3
huimv-smart-management/src/main/java/com/huimv/management/service/impl/PigstyServiceImpl.java

@@ -42,9 +42,9 @@ public class PigstyServiceImpl extends ServiceImpl<PigstyDao, PigstyEntity> impl
         String farmId = (String) params.get("formFarmId");
         wrapper.eq(StringUtils.isNotBlank(farmId),"pigsty.farm_id",Integer.parseInt(farmId));
 
-        String keywords = (String) params.get("keywords");
-        if (StringUtils.isNotBlank(keywords)) {
-            wrapper.like("pigsty.number",keywords);
+        String keyword = (String) params.get("keyword");
+        if (StringUtils.isNotBlank(keyword)) {
+            wrapper.like("pigsty.number",keyword);
         }
 
         String feederId = (String) params.get("feederId");

+ 3 - 3
huimv-smart-management/src/main/java/com/huimv/management/service/impl/SleepStatusServiceImpl.java

@@ -21,16 +21,16 @@ public class SleepStatusServiceImpl extends ServiceImpl<SleepStatusDao, SleepSta
     public PageUtils queryPage(Map<String, Object> params) {
 
         LambdaQueryWrapper<SleepStatusEntity> lambdaQuery = Wrappers.lambdaQuery();
-        String keywords = (String) params.get("keywords");
+        String keyword = (String) params.get("keyword");
         //没有参数
-        if (keywords == null || keywords.equals("")){
+        if (keyword == null || keyword.equals("")){
             IPage<SleepStatusEntity> page = this.page(
                     new Query<SleepStatusEntity>().getPage(params),
                     new QueryWrapper<SleepStatusEntity>()
             );
             return new PageUtils(page);
         }
-        lambdaQuery.like(SleepStatusEntity::getEartag,keywords);
+        lambdaQuery.like(SleepStatusEntity::getEartag,keyword);
         IPage<SleepStatusEntity> page = page(this.page(
                 new Query<SleepStatusEntity>().getPage(params)
         ), lambdaQuery);

+ 3 - 3
huimv-smart-management/src/main/java/com/huimv/management/service/impl/SportTimeServiceImpl.java

@@ -22,9 +22,9 @@ public class SportTimeServiceImpl extends ServiceImpl<SportTimeDao, SportTimeEnt
     public PageUtils queryPage(Map<String, Object> params) {
 
         LambdaQueryWrapper<SportTimeEntity> lambdaQuery = Wrappers.lambdaQuery();
-        String keywords = (String) params.get("keywords");
+        String keyword = (String) params.get("keyword");
         //没有参数
-        if (keywords == null || keywords.equals("")){
+        if (keyword == null || keyword.equals("")){
 
             IPage<SportTimeEntity> page = this.page(
                     new Query<SportTimeEntity>().getPage(params),
@@ -34,7 +34,7 @@ public class SportTimeServiceImpl extends ServiceImpl<SportTimeDao, SportTimeEnt
         }
 
 
-        lambdaQuery.like(SportTimeEntity::getEartag,keywords);
+        lambdaQuery.like(SportTimeEntity::getEartag,keyword);
         IPage<SportTimeEntity> page = page(this.page(
                 new Query<SportTimeEntity>().getPage(params)
         ), lambdaQuery);

+ 24 - 2
huimv-smart-management/src/main/java/com/huimv/management/service/impl/ThresholdManagementServiceImpl.java

@@ -1,10 +1,15 @@
 package com.huimv.management.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.huimv.common.exception.RRException;
 import com.huimv.management.entity.vo.ThresholdManagementVo;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -40,15 +45,32 @@ public class ThresholdManagementServiceImpl extends ServiceImpl<ThresholdManagem
         }
         queryWrapper.eq("farm_id", Integer.parseInt(farmId));
 
+        String belongTo = (String) params.get("belongTo");
+        if (StringUtils.isNotBlank(belongTo)) {
+            queryWrapper.eq("belong_to", Short.parseShort(belongTo));
+        }
         String thresholdType = (String) params.get("thresholdType");
         if (StringUtils.isNotBlank(thresholdType)) {
-            queryWrapper.eq("threshold_type",thresholdType);
+            queryWrapper.like("threshold_type", thresholdType);
         }
-
         queryWrapper.apply("threshold.deleted = 0 AND farm.deleted = 0");
 
         IPage<ThresholdManagementVo> page = baseMapper.page(new Query<>().getPage(params), queryWrapper);
         return new PageUtils(page);
     }
 
+    @Override
+    public Map<String, Double> selectByType(Short type) {
+        LambdaQueryWrapper<ThresholdManagementEntity> lambdaQueryWrapper = Wrappers.lambdaQuery();
+        lambdaQueryWrapper.eq(ThresholdManagementEntity::getBelongTo, type);
+
+        Map<String, Double> map = new HashMap<>();
+        List<ThresholdManagementEntity> thresholdManagementEntities = baseMapper.selectList(lambdaQueryWrapper);
+        if (CollUtil.isNotEmpty(thresholdManagementEntities)) {
+            for (ThresholdManagementEntity entity : thresholdManagementEntities) {
+                map.put(entity.getThresholdType(), entity.getThresholdValue());
+            }
+        }
+        return map;
+    }
 }

+ 3 - 3
huimv-smart-management/src/main/java/com/huimv/management/service/impl/UnitServiceImpl.java

@@ -39,10 +39,10 @@ public class UnitServiceImpl extends ServiceImpl<UnitDao, UnitEntity> implements
         }
 
         //单元编号
-        String keywords = (String) params.get("keyword");
-        if (StringUtils.isNotBlank(keywords)) {
+        String keyword = (String) params.get("keyword");
+        if (StringUtils.isNotBlank(keyword)) {
 
-            queryWrapper.like("unit.number", keywords);
+            queryWrapper.like("unit.number", keyword);
         }
 
         //栏期编号

+ 8 - 2
huimv-smart-management/src/main/java/com/huimv/management/service/impl/WarningInfoServiceImpl.java

@@ -49,7 +49,13 @@ public class WarningInfoServiceImpl extends ServiceImpl<WarningInfoDao, WarningI
 
         LambdaUpdateWrapper<WarningInfoEntity> updateWrapper = Wrappers.lambdaUpdate();
 
-        String username = GetUserUtil.getUser(request).getUsername();
+        String username = null;
+        try {
+            username = GetUserUtil.getUser(request).getUsername();
+        } catch (Exception e) {
+            log.error(e.getMessage(),e);
+            throw new RRException("获取用户信息异常!");
+        }
 
         updateWrapper.set(WarningInfoEntity::getVerifyDescription, warningInfoDto.getVerifyDescription())
                 .set(WarningInfoEntity::getVerifyStatus, true)
@@ -75,7 +81,7 @@ public class WarningInfoServiceImpl extends ServiceImpl<WarningInfoDao, WarningI
         //报警类型
         String warningType = (String) params.get("warningType");
         if (StringUtils.isNotBlank(warningType)) {
-            queryWrapper.eq("warn.warning_type", Short.parseShort(warningType));
+            queryWrapper.like("warn.warning_type", warningType);
         }
         //牧场id
         String farmId = (String) params.get("formFarmId");

+ 3 - 3
huimv-smart-management/src/main/java/com/huimv/management/service/impl/WaterTargetServiceImpl.java

@@ -23,9 +23,9 @@ public class WaterTargetServiceImpl extends ServiceImpl<WaterTargetDao, WaterTar
     public PageUtils queryPage(Map<String, Object> params) {
 
         LambdaQueryWrapper<WaterTargetEntity> lambdaQuery = Wrappers.lambdaQuery();
-        String keywords = (String) params.get("keywords");
+        String keyword = (String) params.get("keyword");
         //没有参数
-        if (keywords == null || keywords.equals("")){
+        if (keyword == null || keyword.equals("")){
             IPage<WaterTargetEntity> page = this.page(
                     new Query<WaterTargetEntity>().getPage(params),
                     new QueryWrapper<WaterTargetEntity>()
@@ -33,7 +33,7 @@ public class WaterTargetServiceImpl extends ServiceImpl<WaterTargetDao, WaterTar
             return new PageUtils(page);
         }
 
-        lambdaQuery.like(WaterTargetEntity::getId,keywords);
+        lambdaQuery.like(WaterTargetEntity::getId,keyword);
         IPage<WaterTargetEntity> page = page(this.page(
                 new Query<WaterTargetEntity>().getPage(params)
         ), lambdaQuery);

+ 15 - 5
huimv-smart-management/src/main/java/com/huimv/management/service/impl/YearPigBaseServiceImpl.java

@@ -62,9 +62,9 @@ public class YearPigBaseServiceImpl extends ServiceImpl<YearPigBaseDao, YearPigB
 //    public PageUtils queryPage(Map<String, Object> params) {
 //
 //        LambdaQueryWrapper<YearPigBaseEntity> lambdaQuery = Wrappers.lambdaQuery();
-//        String keywords = (String) params.get("keywords");
+//        String keyword = (String) params.get("keyword");
 //        //没有参数
-//        if (keywords == null || keywords.equals("")){
+//        if (keyword == null || keyword.equals("")){
 //            IPage<YearPigBaseEntity> page = this.page(
 //                    new Query<YearPigBaseEntity>().getPage(params),
 //                    new QueryWrapper<YearPigBaseEntity>()
@@ -72,7 +72,7 @@ public class YearPigBaseServiceImpl extends ServiceImpl<YearPigBaseDao, YearPigB
 //            return new PageUtils(page);
 //        }
 //
-//        lambdaQuery.like(YearPigBaseEntity::getBreed,keywords);
+//        lambdaQuery.like(YearPigBaseEntity::getBreed,keyword);
 //        IPage<YearPigBaseEntity> page = page(this.page(
 //                new Query<YearPigBaseEntity>().getPage(params)
 //        ), lambdaQuery);
@@ -306,7 +306,12 @@ public class YearPigBaseServiceImpl extends ServiceImpl<YearPigBaseDao, YearPigB
         List<TransferPeriodLogEntity> logEntityList = new ArrayList<>();
         YearPigBaseEntity yearPigBaseEntity = new YearPigBaseEntity();
         //获取当前操作用户
-        SysUserEntity user = GetUserUtil.getUser(request);
+        SysUserEntity user = null;
+        try {
+            user = GetUserUtil.getUser(request);
+        } catch (Exception e) {
+            throw new RRException("获取用户信息异常!");
+        }
         String username = user.getUsername();
 
         for (Integer pigId : pigIds) {
@@ -361,7 +366,12 @@ public class YearPigBaseServiceImpl extends ServiceImpl<YearPigBaseDao, YearPigB
         List<TransferPeriodLogEntity> logEntityList = new ArrayList<>();
         YearPigBaseEntity yearPigBaseEntity = new YearPigBaseEntity();
         //获取当前操作用户
-        SysUserEntity user = GetUserUtil.getUser(request);
+        SysUserEntity user = null;
+        try {
+            user = GetUserUtil.getUser(request);
+        } catch (Exception e) {
+            throw new RRException("获取用户信息异常!");
+        }
         String username = user.getUsername();
 
         LambdaQueryWrapper<YearPigBaseEntity> queryWrapper = Wrappers.lambdaQuery();

+ 3 - 3
huimv-smart-management/src/main/java/com/huimv/management/service/impl/YearPigHistortWeightServiceImpl.java

@@ -23,17 +23,17 @@ public class YearPigHistortWeightServiceImpl extends ServiceImpl<YearPigHistortW
     public PageUtils queryPage(Map<String, Object> params) {
 
         LambdaQueryWrapper<YearPigHistortWeightEntity> lambdaQuery = Wrappers.lambdaQuery();
-        String keywords = (String) params.get("keywords");
+        String keyword = (String) params.get("keyword");
 
         //没有参数
-        if (keywords == null || keywords.equals("")){
+        if (keyword == null || keyword.equals("")){
             IPage<YearPigHistortWeightEntity> page = this.page(
                     new Query<YearPigHistortWeightEntity>().getPage(params),
                     new QueryWrapper<YearPigHistortWeightEntity>()
             );
             return new PageUtils(page);
         }
-        lambdaQuery.like(YearPigHistortWeightEntity::getEartag,keywords);
+        lambdaQuery.like(YearPigHistortWeightEntity::getEartag,keyword);
         IPage<YearPigHistortWeightEntity> page = page(this.page(
                 new Query<YearPigHistortWeightEntity>().getPage(params)
         ), lambdaQuery);

+ 3 - 3
huimv-smart-management/src/main/java/com/huimv/management/service/impl/YearPigHistoryImgServiceImpl.java

@@ -23,9 +23,9 @@ public class YearPigHistoryImgServiceImpl extends ServiceImpl<YearPigHistoryImgD
     public PageUtils queryPage(Map<String, Object> params) {
 
         LambdaQueryWrapper<YearPigHistoryImgEntity> lambdaQuery = Wrappers.lambdaQuery();
-        String keywords = (String) params.get("keywords");
+        String keyword = (String) params.get("keyword");
         //没有参数
-        if (keywords == null || keywords.equals("")){
+        if (keyword == null || keyword.equals("")){
             IPage<YearPigHistoryImgEntity> page = this.page(
                     new Query<YearPigHistoryImgEntity>().getPage(params),
                     new QueryWrapper<YearPigHistoryImgEntity>()
@@ -33,7 +33,7 @@ public class YearPigHistoryImgServiceImpl extends ServiceImpl<YearPigHistoryImgD
             return new PageUtils(page);
         }
 
-        lambdaQuery.like(YearPigHistoryImgEntity::getEartag,keywords);
+        lambdaQuery.like(YearPigHistoryImgEntity::getEartag,keyword);
         IPage<YearPigHistoryImgEntity> page = page(this.page(
                 new Query<YearPigHistoryImgEntity>().getPage(params)
         ), lambdaQuery);

+ 3 - 3
huimv-smart-management/src/main/java/com/huimv/management/service/impl/YearPigPedigreeServiceImpl.java

@@ -23,9 +23,9 @@ public class YearPigPedigreeServiceImpl extends ServiceImpl<YearPigPedigreeDao,
     public PageUtils queryPage(Map<String, Object> params) {
 
         LambdaQueryWrapper<YearPigPedigreeEntity> lambdaQuery = Wrappers.lambdaQuery();
-        String keywords = (String) params.get("keywords");
+        String keyword = (String) params.get("keyword");
         //没有参数
-        if (keywords == null || keywords.equals("")){
+        if (keyword == null || keyword.equals("")){
             IPage<YearPigPedigreeEntity> page = this.page(
                     new Query<YearPigPedigreeEntity>().getPage(params),
                     new QueryWrapper<YearPigPedigreeEntity>()
@@ -33,7 +33,7 @@ public class YearPigPedigreeServiceImpl extends ServiceImpl<YearPigPedigreeDao,
             return new PageUtils(page);
         }
 
-        lambdaQuery.like(YearPigPedigreeEntity::getBoarEartag,keywords);
+        lambdaQuery.like(YearPigPedigreeEntity::getBoarEartag,keyword);
         IPage<YearPigPedigreeEntity> page = page(this.page(
                 new Query<YearPigPedigreeEntity>().getPage(params)
         ), lambdaQuery);

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

@@ -7,7 +7,6 @@ server:
 #  servlet:
 #    context-path:
 
-
 spring:
   # jackson时间格式化
   jackson:
@@ -19,6 +18,11 @@ spring:
       max-request-size: 100MB
       enabled: true
 
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 192.168.1.57:8848
+
   # 数据源
   datasource:
     # 数据连接池类型
@@ -81,6 +85,9 @@ spring:
         max-idle: 10      # 连接池中的最大空闲连接
         min-idle: 5       # 连接池中的最小空闲连接
 
+  application:
+    name: huimv-smart-management
+
 
 
 # mybatis-plus相关配置

+ 6 - 0
huimv-smart-management/src/main/resources/application-prod.yml

@@ -19,6 +19,12 @@ spring:
       max-request-size: 100MB
       enabled: true
 
+  # nacos
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 192.168.1.57:8848
+
   # 数据源
   datasource:
     # 数据连接池类型

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

@@ -1,3 +1,3 @@
 # \u73AF\u5883 dev|test|prod
-spring.profiles.active=prod
-#user.info.url=http://192.168.1.57:88/api/sys/user/info
+spring.profiles.active=dev
+user.info.url=http://192.168.1.57:88/api/sys/user/info

+ 31 - 0
huimv-smart-management/src/main/resources/mapper/management/DeviceDao.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.huimv.management.dao.DeviceDao">
+
+	<!-- 可根据自己的需求,是否要使用 -->
+    <resultMap type="com.huimv.management.entity.DeviceEntity" id="deviceMap">
+        <result property="deviceId" column="device_id"/>
+        <result property="farmId" column="farm_id"/>
+        <result property="pigstyId" column="pigsty_id"/>
+        <result property="deleted" column="deleted"/>
+        <result property="gmtCreate" column="mgt_create"/>
+        <result property="gmtModified" column="mgt_modified"/>
+    </resultMap>
+
+    <select id="page" resultType="com.huimv.management.entity.vo.DeviceVo">
+        SELECT
+          device_id,
+          device.farm_id,
+          name farm_name,
+          pigsty_id,
+          number pigsty_name
+        FROM
+          mgt_device device
+        LEFT JOIN mgt_farm farm ON device.farm_id = farm.id
+        LEFT JOIN mgt_pigsty pigsty ON device.pigsty_id = pigsty.id
+        ${ew.customSqlSegment}
+    </select>
+
+
+</mapper>