Selaa lähdekoodia

测试数据访问

yinhao 3 vuotta sitten
vanhempi
commit
8cd8ffd0c6
15 muutettua tiedostoa jossa 736 lisäystä ja 4 poistoa
  1. 2 0
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/HuimvSmartEartagDataAcquisitionApplication.java
  2. 2 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/HuimvSmartEartagDataManagerApplication.java
  3. 39 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/BasePigpenEntity.java
  4. 92 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/CollectorRegisterEntity.java
  5. 34 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/CompanyRegisterEntity.java
  6. 82 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/DailyTabulateDataEntity.java
  7. 117 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/EartagDataEntity.java
  8. 34 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/EnvironmentDataEntity.java
  9. 44 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/InterfaceRegisterEntity.java
  10. 19 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/mapper/BasePigpenMapper.java
  11. 58 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/result/R.java
  12. 48 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/result/RRException.java
  13. 116 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/result/RRExceptionHandler.java
  14. 19 4
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/resources/application-dev.yml
  15. 30 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/test/java/com/huimv/manager/HuimvSmartEartagDataManagerTests.java

+ 2 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/java/com/huimv/acquisition/HuimvSmartEartagDataAcquisitionApplication.java

@@ -3,6 +3,8 @@ package com.huimv.acquisition;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
+import java.util.ArrayList;
+
 /**
  * @Project : huimv.shiwan
  * @Package : com.huimv.biosafety.uface.controller

+ 2 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/HuimvSmartEartagDataManagerApplication.java

@@ -1,5 +1,6 @@
 package com.huimv.manager;
 
+import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
@@ -11,6 +12,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
  * @Author : ZhuoNing
  * @Create : 2020-12-25
  **/
+@MapperScan("com.huimv.manager.mapper")
 @SpringBootApplication
 public class HuimvSmartEartagDataManagerApplication {
     public static void main(String[] args) {

+ 39 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/BasePigpenEntity.java

@@ -0,0 +1,39 @@
+package com.huimv.manager.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 栋舍表
+ */
+@Data
+@TableName("base_pigpen")
+public class BasePigpenEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId
+    private Integer id;
+
+    /**
+     * 栋舍名称
+     */
+    private String pigpenName;
+
+    /**
+     * 上级id
+     */
+    private Integer parentId;
+
+    /**
+     * 1.猪舍 2.单元
+     */
+    private Integer type;
+
+}

+ 92 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/CollectorRegisterEntity.java

@@ -0,0 +1,92 @@
+package com.huimv.manager.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@TableName("collector_register")
+public class CollectorRegisterEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 记录id(主键)
+     */
+    @TableId
+    private Integer id;
+
+    /**
+     * 设备编码
+     */
+    private String deviceCode;
+
+    /**
+     * 地县编码
+     */
+    private String countyCode;
+
+    /**
+     * 区县名
+     */
+    private String countyName;
+
+    /**
+     * 牧场编码
+     */
+    private String farmCode;
+
+    /**
+     * 牧场名称
+     */
+    private String farmName;
+
+    /**
+     * 动物种类
+     */
+    private Integer typeF;
+
+    /**
+     * 阶段
+     */
+    private Integer stage;
+
+    /**
+     * 猪舍id
+     */
+    private Integer pigpenId;
+
+    /**
+     * 单元id
+     */
+    private Integer unitId;
+
+    /**
+     * 上传服务器地址
+     */
+    private String serverIp;
+
+    /**
+     * 端口
+     */
+    private Integer port;
+
+    /**
+     * 注册时间
+     */
+    private Date registerTime;
+
+    /**
+     * 最后上传时间
+     */
+    private Date lastTime;
+
+    /**
+     * 状态 默认值 1  1.正常 2.异常
+     */
+    private Integer state;
+
+}

+ 34 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/CompanyRegisterEntity.java

@@ -0,0 +1,34 @@
+package com.huimv.manager.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 第三方企业注册表
+ */
+@Data
+@TableName("company_register")
+public class CompanyRegisterEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId
+    private Integer id;
+
+    /**
+     * 企业名称
+     */
+    private String companyName;
+
+    /**
+     * 客服服务号
+     */
+    private String serviceCode;
+
+}

+ 82 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/DailyTabulateDataEntity.java

@@ -0,0 +1,82 @@
+package com.huimv.manager.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.sql.Date;
+
+/**
+ * 耳标每日汇总表
+ */
+@Data
+@TableName("daily_tabulate_data")
+public class DailyTabulateDataEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId
+    private Integer id;
+
+    /**
+     * 统计日期
+     */
+    private Date statisticDate;
+
+    /**
+     * 当日母猪总存栏
+     */
+    private Integer stockTotal;
+
+    /**
+     * 每日母猪新增耳标数
+     */
+    private Integer stockNew;
+
+    /**
+     * 每日离线耳标数
+     */
+    private Integer offlineNo;
+
+    /**
+     * 日龄占比(250-1000)
+     */
+    private Double ratio1;
+
+    /**
+     * 日龄(1000-1700)
+     */
+    private Double ratio2;
+
+    /**
+     * 日龄(1700-2400)
+     */
+    private Double ratio3;
+
+    /**
+     * 日龄(>2400)
+     */
+    private Double ratio4;
+
+    /**
+     * 配怀存栏
+     */
+    private Integer stock1;
+
+    /**
+     * 分娩存栏
+     */
+    private Integer stock2;
+
+    /**
+     * 后备存栏
+     */
+    private Integer stock3;
+
+    /**
+     * 公猪存栏
+     */
+    private Integer stock4;
+
+}

+ 117 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/EartagDataEntity.java

@@ -0,0 +1,117 @@
+package com.huimv.manager.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@TableName("eartag_data")
+public class EartagDataEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 记录id(主键)
+     */
+    @TableId
+    private Integer id;
+
+    /**
+     * 采集器编码
+     */
+    private String deviceCode;
+
+    /**
+     * 耳标号
+     */
+    private String eartagNo;
+
+    /**
+     * 采集时间
+     */
+    private Date time;
+
+    /**
+     * 佩标日龄
+     */
+    private Integer dayAge;
+
+    /**
+     * 日龄
+     */
+    private Integer dayAge2;
+
+    /**
+     * 耳根温度
+     */
+    private Integer earTemp;
+
+    /**
+     * 运动量
+     */
+    private Integer exercise;
+
+    /**
+     * 栋舍
+     */
+    private String pigpen;
+
+    /**
+     * 环境温度
+     */
+    private Integer envTemp;
+
+    /**
+     * 电池电量
+     */
+    private Integer bat;
+
+    /**
+     * 信号强度
+     */
+    private Integer rssi;
+
+    /**
+     * 命令头
+     */
+    private String head;
+
+    /**
+     * 指令
+     */
+    private String command;
+
+    /**
+     * 版本号
+     */
+    private String version;
+
+    /**
+     * 耳标帧序号
+     */
+    private Integer frameSerialNo;
+
+    /**
+     * 重启次数
+     */
+    private Integer rebootTimes;
+
+    /**
+     * 预留字段
+     */
+    private String prepareField;
+
+    /**
+     * 校验码
+     */
+    private String chk;
+
+    /**
+     * 命令尾
+     */
+    private String tail;
+
+}

+ 34 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/EnvironmentDataEntity.java

@@ -0,0 +1,34 @@
+package com.huimv.manager.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 环境数据表
+ */
+@Data
+@TableName("environment_data")
+public class EnvironmentDataEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId
+    private Integer id;
+
+    /**
+     * 采集器编码
+     */
+    private String deviceCode;
+
+    /**
+     * 环境温度
+     */
+    private Integer envTemp;
+
+}

+ 44 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/InterfaceRegisterEntity.java

@@ -0,0 +1,44 @@
+package com.huimv.manager.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 推送接口表
+ */
+@Data
+@TableName("interface_register")
+public class InterfaceRegisterEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId
+    private Integer id;
+
+    /**
+     * 企业注册id
+     */
+    private Integer companyId;
+
+    /**
+     * 推送ip
+     */
+    private String ip;
+
+    /**
+     * 推送port
+     */
+    private Integer port;
+
+    /**
+     * 附属字段
+     */
+    private String other;
+
+}

+ 19 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/mapper/BasePigpenMapper.java

@@ -0,0 +1,19 @@
+package com.huimv.manager.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.manager.entity.BasePigpenEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * <p>
+ * 猪舍表
+ * </p>
+ *
+ * @author yinhao
+ * @date 2021/7/24 14:15
+ */
+@Mapper
+@Repository
+public interface BasePigpenMapper extends BaseMapper<BasePigpenEntity> {
+}

+ 58 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/result/R.java

@@ -0,0 +1,58 @@
+package com.huimv.manager.result;
+
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class R extends HashMap<String, Object> {
+
+    private static final long serialVersionUID = 1L;
+
+    public R() {
+        put("code", 0);
+        put("msg", "success");
+    }
+
+    public static R error() {
+        return error(500, "未知异常,请联系管理员");
+    }
+
+    public static R error(String msg) {
+        return error(500, msg);
+    }
+
+    public static R error(int code, String msg) {
+        R r = new R();
+        r.put("code", code);
+        r.put("msg", msg);
+        return r;
+    }
+
+    public static R ok(String msg) {
+        R r = new R();
+        r.put("msg", msg);
+        return r;
+    }
+
+    public static R ok(Map<String, Object> map) {
+        R r = new R();
+        r.putAll(map);
+        return r;
+    }
+
+    public static R ok() {
+        return new R();
+    }
+
+    @Override
+    public R put(String key, Object value) {
+        super.put(key, value);
+        return this;
+    }
+
+    public static void main(String[] args) {
+        R r = new R();
+        System.out.println(r);
+
+    }
+}

+ 48 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/result/RRException.java

@@ -0,0 +1,48 @@
+package com.huimv.manager.result;
+
+public class RRException extends RuntimeException {
+	private static final long serialVersionUID = 1L;
+	
+    private String msg;
+    private int code = 500;
+    
+    public RRException(String msg) {
+		super(msg);
+		this.msg = msg;
+	}
+	
+	public RRException(String msg, Throwable e) {
+		super(msg, e);
+		this.msg = msg;
+	}
+	
+	public RRException(String msg, int code) {
+		super(msg);
+		this.msg = msg;
+		this.code = code;
+	}
+	
+	public RRException(String msg, int code, Throwable e) {
+		super(msg, e);
+		this.msg = msg;
+		this.code = code;
+	}
+
+	public String getMsg() {
+		return msg;
+	}
+
+	public void setMsg(String msg) {
+		this.msg = msg;
+	}
+
+	public int getCode() {
+		return code;
+	}
+
+	public void setCode(int code) {
+		this.code = code;
+	}
+	
+	
+}

+ 116 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/result/RRExceptionHandler.java

@@ -0,0 +1,116 @@
+/**
+ * Copyright (c) 2016-2019 人人开源 All rights reserved.
+ *
+ * https://www.renren.io
+ *
+ * 版权所有,侵权必究!
+ */
+
+package com.huimv.manager.result;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.dao.DataIntegrityViolationException;
+import org.springframework.dao.DuplicateKeyException;
+import org.springframework.validation.FieldError;
+import org.springframework.validation.ObjectError;
+import org.springframework.web.HttpRequestMethodNotSupportedException;
+import org.springframework.web.bind.MethodArgumentNotValidException;
+import org.springframework.web.bind.MissingServletRequestParameterException;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+import org.springframework.web.servlet.NoHandlerFoundException;
+
+/**
+ * 异常处理器
+ *
+ * @author Mark sunlightcs@gmail.com
+ */
+@RestControllerAdvice
+public class RRExceptionHandler {
+	private Logger logger = LoggerFactory.getLogger(getClass());
+
+	/**
+	 * 处理自定义异常
+	 */
+	@ExceptionHandler(RRException.class)
+	public R handleRRException(RRException e){
+		R r = new R();
+		r.put("code", e.getCode());
+		r.put("msg", e.getMessage());
+		logger.error(e.getMsg(),e);
+		return r;
+	}
+
+	@ExceptionHandler(NoHandlerFoundException.class)
+	public R handlerNoFoundException(Exception e) {
+		logger.error(e.getMessage(), e);
+		return R.error(404, "路径不存在,请检查路径是否正确");
+	}
+
+	@ExceptionHandler(DuplicateKeyException.class)
+	public R handleDuplicateKeyException(DuplicateKeyException e){
+		logger.error(e.toString());
+		String message = e.getCause().getMessage();
+		String[] s = message.split(" ");
+		return R.error(600,s[2].replace("'","") + " 已经存在!");
+	}
+
+//	@ExceptionHandler(AuthorizationException.class)
+//	public R handleAuthorizationException(AuthorizationException e){
+//		logger.error(e.getMessage(), e);
+//		return R.error("没有权限,请联系管理员授权");
+//	}
+//
+//	@ExceptionHandler(value = LimitAccessException.class)
+//	public R handleLimitAccessException(LimitAccessException e) {
+//		logger.error("LimitAccessException", e);
+//		return  R.error(429,e.getMessage());
+//	}
+
+	//当校验失败时,会抛出MethodArgumentNotValidException
+	//输出错误原因到前端
+	@ExceptionHandler(MethodArgumentNotValidException.class)
+	public R handleMethodArgumentNotValidException(MethodArgumentNotValidException ex) {
+		logger.error(ex.getMessage(),ex);
+		StringBuilder sb = new StringBuilder();
+		for(ObjectError error : ex.getBindingResult().getAllErrors()){
+			if(error instanceof FieldError){
+				FieldError e = (FieldError) error;
+				sb.append(e.getField()).append(e.getDefaultMessage()).append(" ");
+			}
+		}
+		return R.error(1001,sb.toString());
+	}
+
+//	@ExceptionHandler(ConstraintViolationException.class)
+//	public R handleConstraintViolationException(ConstraintViolationException e) {
+//		logger.error(e.getMessage(),e);
+//		StringBuilder sb = new StringBuilder();
+//		e.getConstraintViolations().forEach(constraintViolation -> sb.append(constraintViolation.getMessage()).append(" "));
+//		return R.error(1001,sb.toString().substring(0,sb.length() - 1));
+//	}
+
+	@ExceptionHandler(MissingServletRequestParameterException.class)
+	public R handMissingServletRequestParameterException(MissingServletRequestParameterException e) {
+		logger.error(e.getMessage(),e);
+		return R.error(1001,e.getMessage());
+	}
+
+	@ExceptionHandler(DataIntegrityViolationException.class)
+	public R handDataIntegrityViolationException(DataIntegrityViolationException e) {
+		logger.error(e.getMessage(),e);
+		return R.error(1001,e.getCause().getMessage());
+	}
+
+	@ExceptionHandler(HttpRequestMethodNotSupportedException.class)
+	public R handHttpRequestMethodNotSupportedException(HttpRequestMethodNotSupportedException e) {
+		logger.error(e.getMessage(), e);
+		return R.error(1001, e.getMessage());
+	}
+	@ExceptionHandler(Exception.class)
+	public R handleException(Exception e){
+		logger.error(e.getMessage(), e);
+		return R.error();
+	}
+}

+ 19 - 4
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/resources/application-dev.yml

@@ -3,13 +3,13 @@ server:
 
 spring:
   datasource:
-    url: jdbc:mysql://192.168.1.7:3306/huimv-video2_db?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://192.168.1.7:3306/smart_eartag_data_platform?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai
     username: root
     password: hm123456
     driver-class-name: com.mysql.cj.jdbc.Driver
   jpa:
-    hibernate:
-      ddl-auto: update  #validate
+#    hibernate:
+#      ddl-auto: update  #validate
     database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
     show-sql: true
   servlet:
@@ -37,4 +37,19 @@ spring:
 #        max-wait: -1
 #        max-idle: 10
 #        min-idle: 0
-#    timeout: 5000
+#    timeout: 5000
+
+# mybatis-plus相关配置
+mybatis-plus:
+  type-aliases-package: com.huimv.*.entity
+  global-config:
+    banner: false
+    db-config:
+      id-type: auto
+  #原生配置
+  configuration:
+    map-underscore-to-camel-case: true
+    cache-enabled: false
+    call-setters-on-nulls: true
+    jdbc-type-for-null: 'null'
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

+ 30 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/test/java/com/huimv/manager/HuimvSmartEartagDataManagerTests.java

@@ -0,0 +1,30 @@
+package com.huimv.manager;
+
+import com.huimv.manager.entity.BasePigpenEntity;
+import com.huimv.manager.mapper.BasePigpenMapper;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import java.util.List;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author yinhao
+ * @date 2021/7/24 14:20
+ */
+@SpringBootTest
+public class HuimvSmartEartagDataManagerTests {
+
+    @Autowired
+    private BasePigpenMapper basePigpenMapper;
+
+    @Test
+    void contextLoads() {
+        List<BasePigpenEntity> basePigpenEntities = basePigpenMapper.selectList(null);
+        System.out.println(basePigpenEntities);
+    }
+}