From 83f08194fb16c5feea1b05d682120fe76d599775 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Fri, 05 Mar 2021 17:45:41 +0800
Subject: [PATCH] 体温数据接口

---
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/controller/AnimalHeatController.java    |   54 ++++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyTcpServer/TcpServer.java                      |   20 -
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.xml             |   34 ++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/vo/AnimalHeatVo.java                    |   28 ++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyServer/ServerHandler.java                     |  191 +++++++--------
 blade-service/blade-jfpts/src/main/resources/application.properties                                             |    2 
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.java            |   35 ++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/vo/StatisVo.java                        |   19 +
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyTcpServer/TcpServerHandler.java               |   34 --
 blade-service/blade-jfpts/src/main/resources/application-dev.yml                                                |    2 
 /dev/null                                                                                                       |   56 ----
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/service/AnimalHeatService.java          |   35 ++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/JfptApplication.java                               |    4 
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/entity/BladeAnimalHeat.java             |   12 
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/util/ImageUtil.java                     |   55 ++++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/jingdan/mapper/JingdanMapper.xml                   |    1 
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/service/impl/AnimalHeatServiceImpl.java |  118 +++++++++
 17 files changed, 499 insertions(+), 201 deletions(-)

diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/JfptApplication.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/JfptApplication.java
index 9aa3a84..f6d01ba 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/JfptApplication.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/JfptApplication.java
@@ -18,9 +18,7 @@
 
 import org.springblade.core.cloud.feign.EnableBladeFeign;
 import org.springblade.core.launch.BladeApplication;
-import org.springblade.jfpt.nettyServer.Server;
 import org.springblade.jfpt.nettyTcpServer.TcpServer;
-import org.springblade.jfpt.nettyUdpServer.server.UdpServer;
 import org.springframework.boot.CommandLineRunner;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
@@ -41,7 +39,7 @@
 	@Override
 	public void run(String... args) throws Exception {
 		//Server server=new Server(8088);
-		TcpServer server=new TcpServer(8088);
+		TcpServer server=new TcpServer(8099); //测试用
 		//UdpServer udpServer=new UdpServer(8099);
 	}
 
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/controller/AnimalHeatController.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/controller/AnimalHeatController.java
new file mode 100644
index 0000000..87478af
--- /dev/null
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/controller/AnimalHeatController.java
@@ -0,0 +1,54 @@
+package org.springblade.jfpt.animalheat.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.jfpt.animalheat.entity.BladeAnimalHeat;
+import org.springblade.jfpt.animalheat.service.AnimalHeatService;
+import org.springblade.jfpt.animalheat.vo.AnimalHeatVo;
+import org.springblade.jfpt.animalheat.vo.StatisVo;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 体温监测控制层
+ * @time 2021-2-25
+ */
+
+@RestController
+@RequestMapping("animalHeat/animalHeat")
+@AllArgsConstructor
+public class AnimalHeatController {
+
+	private final AnimalHeatService animalHeatService;
+
+	/**
+	 * 获取体温数据统计
+	 * @param animalHeatVo 条件参数 开始时间,结束时间
+	 * @return
+	 */
+	@GetMapping("/getAnimalStatis")
+	public List<StatisVo> getAnimalStatis(AnimalHeatVo animalHeatVo){
+		return animalHeatService.getAnimalStatis(animalHeatVo);
+	}
+
+
+	/**
+	 * 体温数据的分页数据
+	 * @param animalHeatVo 查询条件
+	 * @param query  查询页码
+	 * @return
+	 */
+	@GetMapping("/page")
+	@ApiOperationSupport(order = 3)
+	public R<IPage<BladeAnimalHeat>> page(AnimalHeatVo animalHeatVo, Query query) {
+		return R.data(animalHeatService.selectAnimalHeatPage(Condition.getPage(query), animalHeatVo));
+	}
+
+}
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/entity/BladeAnimalHeat.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/entity/BladeAnimalHeat.java
similarity index 66%
rename from blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/entity/BladeAnimalHeat.java
rename to blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/entity/BladeAnimalHeat.java
index b7efffd..854e91e 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/entity/BladeAnimalHeat.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/entity/BladeAnimalHeat.java
@@ -1,4 +1,4 @@
-package org.springblade.jfpt.nettyUdpServer.entity;
+package org.springblade.jfpt.animalheat.entity;
 
 
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -24,7 +24,7 @@
 	@TableId(value = "id", type = IdType.AUTO)
 	private Integer id;// bigint(20) NOT NULL COMMENT '主键',
 
-	//private Integer method;// int(1) NOT NULL COMMENT '方法名: 0 表示 infrared_aiom_picture 图片数据, 1 表示 engine_echo  心跳包	',
+	private Integer method;// int(1) NOT NULL COMMENT '方法名: 0 表示 infrared_aiom_picture 图片数据, 1 表示 engine_echo  心跳包	',
 
 	private String ip;// varchar(63) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '设备IP地址',
 
@@ -36,13 +36,15 @@
 	@TableField("temp_red")
 	private Float tempRed;// float(4,2) DEFAULT NULL COMMENT '当前人员的温度',
 
-	@TableField("person_rect")
-	private String[] personRect;// varchar(63) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '人脸位置二位数组,[left,top,right,bottom]',
+	@TableField(value = "person_rect")
+	private String personRect;// varchar(63) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '人脸位置二位数组,[left,top,right,bottom]',
 
 	@TableField("person_rect_red")
-	private Integer[] personRectRed;// varchar(63) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '红外人脸位置二位数组,[left,top,right,bottom]',
+	private String personRectRed;// varchar(63) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '红外人脸位置二位数组,[left,top,right,bottom]',
 
 	@TableField("create_time")
 	private Date createTime;// datetime DEFAULT NULL COMMENT '创建时间',
 
+	private Integer status;//状态 1为高温   0为正常   ,以37度为标准,大于37度为高温
+
 }
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.java
new file mode 100644
index 0000000..c426ff4
--- /dev/null
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.java
@@ -0,0 +1,35 @@
+package org.springblade.jfpt.animalheat.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.jfpt.animalheat.entity.BladeAnimalHeat;
+import org.springblade.jfpt.animalheat.vo.AnimalHeatVo;
+import org.springblade.jfpt.animalheat.vo.StatisVo;
+
+import java.util.List;
+
+/**
+ * mapper 映射层
+ *
+ */
+public interface AnimalHeatMapper extends BaseMapper<BladeAnimalHeat> {
+	/**
+	 * 获取体温数据统计  --当天
+	 * @return
+	 */
+	List<StatisVo> getAnimalStatis();
+
+	/**
+	 * 获取体温数据统计  --本周
+	 * @return
+	 */
+	List<StatisVo> getAnimalStatisWeek();
+
+	/**
+	 * 体温数据的分页数据
+	 * @param animalHeatVo 查询条件
+	 * @param page  查询页码
+	 * @return
+	 */
+	List<BladeAnimalHeat> selectAnimalHeatPageList(IPage<BladeAnimalHeat> page, AnimalHeatVo animalHeatVo);
+}
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.xml b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.xml
new file mode 100644
index 0000000..a899abe
--- /dev/null
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.xml
@@ -0,0 +1,34 @@
+<?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="org.springblade.jfpt.animalheat.mapper.AnimalHeatMapper">
+
+    <!--查询当天体温数据统计-->
+    <select id="getAnimalStatis" resultType="org.springblade.jfpt.animalheat.vo.StatisVo">
+        SELECT 1 `status`,count(`status`) number FROM `blade_animal_heat` where
+             TO_DAYS(create_time)=TO_DAYS(now())  and `status`=1
+        UNION
+        SELECT 0 `status`,count(`status`) number FROM `blade_animal_heat` where
+            TO_DAYS(create_time)=TO_DAYS(now())  and `status`=0
+    </select>
+
+    <!--获取本周的体温统计数据-->
+    <select id="getAnimalStatisWeek" resultType="org.springblade.jfpt.animalheat.vo.StatisVo">
+        SELECT 1 `status`,count(`status`) number FROM `blade_animal_heat` where
+            YEARWEEK(date_format(create_time,'%Y-%m-%d')) = YEARWEEK(now()) and `status`=1
+        UNION
+        SELECT 0 `status`,count(`status`) number FROM `blade_animal_heat` where
+            YEARWEEK(date_format(create_time,'%Y-%m-%d')) = YEARWEEK(now()) and `status`=0
+    </select>
+
+    <select id="selectAnimalHeatPageList" resultType="org.springblade.jfpt.animalheat.entity.BladeAnimalHeat">
+        SELECT * FROM blade_animal_heat
+        <if test="animalHeatVo.begTime!=null and animalHeatVo.begTime!=''">
+            and create_time &gt;=#{animalHeatVo.begTime}
+        </if>
+        <if test="animalHeatVo.endTime!=null and animalHeatVo.endTime!=''">
+            and create_time &lt;=#{animalHeatVo.endTime}
+        </if>
+        ORDER BY create_time asc
+    </select>
+
+</mapper>
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/service/AnimalHeatService.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/service/AnimalHeatService.java
new file mode 100644
index 0000000..cadaa15
--- /dev/null
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/service/AnimalHeatService.java
@@ -0,0 +1,35 @@
+package org.springblade.jfpt.animalheat.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springblade.jfpt.animalheat.entity.BladeAnimalHeat;
+import org.springblade.jfpt.animalheat.vo.AnimalHeatVo;
+import org.springblade.jfpt.animalheat.vo.StatisVo;
+
+import java.util.List;
+
+/**
+ * 体温监测服务层接口层
+ */
+public interface AnimalHeatService extends IService<BladeAnimalHeat> {
+	/**
+	 * 插入体温数据
+	 * @param body 温度数据
+	 */
+    void save(String body);
+
+	/**
+	 * 获取体温数据统计
+	 * @param animalHeatVo 条件参数 开始时间,结束时间
+	 * @return
+	 */
+	List<StatisVo> getAnimalStatis(AnimalHeatVo animalHeatVo);
+
+	/**
+	 * 体温数据的分页数据
+	 * @param animalHeatVo 查询条件
+	 * @param page  查询页码
+	 * @return
+	 */
+    IPage<BladeAnimalHeat> selectAnimalHeatPage(IPage<BladeAnimalHeat> page, AnimalHeatVo animalHeatVo);
+}
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/service/impl/AnimalHeatServiceImpl.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/service/impl/AnimalHeatServiceImpl.java
new file mode 100644
index 0000000..0bfa7e9
--- /dev/null
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/service/impl/AnimalHeatServiceImpl.java
@@ -0,0 +1,118 @@
+package org.springblade.jfpt.animalheat.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.jfpt.animalheat.entity.BladeAnimalHeat;
+import org.springblade.jfpt.animalheat.mapper.AnimalHeatMapper;
+import org.springblade.jfpt.animalheat.service.AnimalHeatService;
+import org.springblade.jfpt.animalheat.util.ImageUtil;
+import org.springblade.jfpt.animalheat.vo.AnimalHeatVo;
+import org.springblade.jfpt.animalheat.vo.StatisVo;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.validation.Valid;
+import java.util.List;
+import java.util.Map;
+import static org.springblade.core.tool.utils.DateUtil.now;
+
+/**
+ * 体温数据服务层
+ *
+ */
+@Service
+public class AnimalHeatServiceImpl extends ServiceImpl<AnimalHeatMapper, BladeAnimalHeat> implements AnimalHeatService {
+	@Override
+	public boolean save(BladeAnimalHeat entity) {
+		return false;
+	}
+
+	@Value("${picture.addUrl}")
+	private String picAddUrl;
+
+	@Value("${picture.pre}")
+	private String picPre;
+
+
+	/**
+	 * 新增体温数据
+	 * @param body 体温数据
+	 */
+	@Override
+	@Transactional
+	public void save(String body) {
+		//1.截取信息
+		int i = body.indexOf("{");
+		//2.从 {  处开始截取
+		int length = body.length();
+		//3.截取,由于获取数据时,} 被去除,需要加上
+		String dataBody = body.substring(i, length)+"}";
+		System.out.println("dataBody = " + dataBody);
+		//4.数据转换
+		Map<String,Object> data = (Map<String, Object>) JSONObject.parse(dataBody);
+		System.out.println("data = " + data);
+		//5.创建体温数据对象
+		BladeAnimalHeat bladeAnimalHeat = new BladeAnimalHeat();
+		//6.取出数据,封装数据到对象
+		String picture = data.get("picture").toString();
+		//将二进制原始图片转换成图片
+		ImageUtil.base64StringToImage(picture);
+		//bladeAnimalHeat.setPicture(data.get("picture").toString());  //暂时不存入
+		String temp_red =data.get("temp_red").toString();
+		String[] temRedArr = temp_red.substring(1,temp_red.length()-1).split(",");
+		if (temRedArr.length>1){
+			//比较两个温度的大小,取大的值
+			float v = Float.parseFloat(temRedArr[0]);
+			float v1 = Float.parseFloat(temRedArr[1]);
+			int compare = Float.compare(v, v1);
+			bladeAnimalHeat.setTempRed(compare>=0 ? v:v1);
+			//和标志温度比较,大于37度为高温,标记为1,小于则为正常0
+			int compare1 = Float.compare(37, compare >= 0 ? v : v1);
+			bladeAnimalHeat.setStatus(compare1>0 ?0:1);
+		}else {
+			bladeAnimalHeat.setTempRed(Float.parseFloat(temRedArr[0]));
+			int compare1 = Float.compare(37, Float.parseFloat(temRedArr[0]));
+			bladeAnimalHeat.setStatus(compare1>0 ?0:1);
+		}
+		String person_rects = data.get("person_rect").toString();
+		bladeAnimalHeat.setPersonRect(person_rects.substring(2,person_rects.length()-2));
+		bladeAnimalHeat.setCreateTime(now());
+		//7.插入数据
+		int idata = baseMapper.insert(bladeAnimalHeat);
+	}
+
+
+	/**
+	 * 获取体温数据统计
+	 * @param animalHeatVo 条件参数 开始时间,结束时间
+	 * @return
+	 */
+	@Override
+	public List<StatisVo> getAnimalStatis(AnimalHeatVo animalHeatVo) {
+		if(null!= animalHeatVo.getStatus()){
+			//查询当天的统计数据
+			if (animalHeatVo.getStatus()==0){
+				return baseMapper.getAnimalStatis();
+			}
+			//查询本周的统计数据
+			if (animalHeatVo.getStatus()==1){
+				return baseMapper.getAnimalStatisWeek();
+			}
+		}
+		return null;
+	}
+
+
+	/**
+	 * 体温数据的分页数据
+	 * @param animalHeatVo 查询条件
+	 * @param page  查询页码
+	 * @return
+	 */
+	@Override
+	public IPage<BladeAnimalHeat> selectAnimalHeatPage(IPage<BladeAnimalHeat> page, AnimalHeatVo animalHeatVo) {
+		return page.setRecords(baseMapper.selectAnimalHeatPageList(page, animalHeatVo));
+	}
+}
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/util/ImageUtil.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/util/ImageUtil.java
new file mode 100644
index 0000000..15c444e
--- /dev/null
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/util/ImageUtil.java
@@ -0,0 +1,55 @@
+package org.springblade.jfpt.animalheat.util;
+
+import jodd.util.StringPool;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.tool.utils.FileUtil;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springframework.beans.factory.annotation.Value;
+import sun.misc.BASE64Decoder;
+import sun.misc.BASE64Encoder;
+
+import javax.imageio.ImageIO;
+import java.awt.image.BufferedImage;
+import java.io.*;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import static java.time.LocalDate.now;
+
+/**
+ * 二进制原始数据转换为图片工具类
+ */
+public class ImageUtil {
+	static BASE64Encoder encoder = new sun.misc.BASE64Encoder();
+	static BASE64Decoder decoder = new sun.misc.BASE64Decoder();
+
+	@Value("${picture.addUrl}")
+	private String picAddUrl;
+
+	@Value("${picture.pre}")
+	private static String picPre;
+
+	/**
+	 * 二进制原始数据转换为图片
+	 * @param base64String
+	 */
+	public static String base64StringToImage(String base64String){
+		try {
+			byte[] bytes1 = decoder.decodeBuffer(base64String);
+
+			ByteArrayInputStream bais = new ByteArrayInputStream(bytes1);
+			BufferedImage bi1 = ImageIO.read(bais);
+			String yyyyMMddHHmmss = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
+			File w2 = new File("D://"+picPre+StringPool.SLASH+ DateUtil.today()+StringPool.SLASH+ StringUtil.randomUUID()
+				+".jpg");//可以是jpg,png,gif格式
+
+			ImageIO.write(bi1, "jpg", w2);//不管输出什么格式图片,此处不需改动
+			//返回图片路径
+			return picPre+ StringPool.SLASH+ DateUtil.today()+StringPool.SLASH+ StringUtil.randomUUID()
+				+StringPool.DOT+ "jpg";
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
+}
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/vo/AnimalHeatVo.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/vo/AnimalHeatVo.java
new file mode 100644
index 0000000..6a5c9c8
--- /dev/null
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/vo/AnimalHeatVo.java
@@ -0,0 +1,28 @@
+package org.springblade.jfpt.animalheat.vo;
+
+import lombok.Data;
+import org.springblade.jfpt.animalheat.entity.BladeAnimalHeat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 查询的条件属性
+ */
+@Data
+public class AnimalHeatVo extends BladeAnimalHeat implements Serializable {
+	/**
+	 *开始时间
+	 */
+	private Date begTime;
+
+	/**
+	 * 结束时间
+	 */
+	private Date endTime;
+
+	/**
+	 * 状态  0: 当天时间统计数据     1: 本周内的数据统计
+	 */
+	private Integer status;
+}
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/vo/StatisVo.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/vo/StatisVo.java
new file mode 100644
index 0000000..b94d93e
--- /dev/null
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/vo/StatisVo.java
@@ -0,0 +1,19 @@
+package org.springblade.jfpt.animalheat.vo;
+
+import lombok.Data;
+
+/**
+ * 体温数据统计返回属性参数
+ */
+@Data
+public class StatisVo {
+	/**
+	 * 体温状态  1为高于37度高温状态   0为正常
+	 */
+	private Integer status;
+
+	/**
+	 * 数量
+	 */
+	private Integer number;
+}
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/jingdan/mapper/JingdanMapper.xml b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/jingdan/mapper/JingdanMapper.xml
index 8332563..e5f8bd3 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/jingdan/mapper/JingdanMapper.xml
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/jingdan/mapper/JingdanMapper.xml
@@ -25,7 +25,6 @@
         <result column="handletype" property="handletype"/>
     </resultMap>
 
-
     <select id="selectJingdanPage" resultMap="jingdanResultMap">
         SELECT j.id,j.galarmPeople,j.phoneNumber,j.place,j.content,j.galarmTime,j.waringType,j.deviceNumber,j.type,
         j.handleP,j.handleTime,j.handName,j.level,ST_ASTEXT(j.coordinate) as coordinate,j.jd,j.wd,j.addvcd,j.rName,
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyServer/ServerHandler.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyServer/ServerHandler.java
index 691565b..4206e9c 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyServer/ServerHandler.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyServer/ServerHandler.java
@@ -9,6 +9,7 @@
 import org.springblade.jfpt.Netty.service.nettyService;
 import org.springblade.jfpt.alarm.entity.Alarm;
 import org.springblade.jfpt.alarm.service.IAlarmService;
+import org.springblade.jfpt.animalheat.service.AnimalHeatService;
 import org.springblade.jfpt.catalog.service.catalogService;
 import org.springblade.jfpt.equipment.service.IEquipmentService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -41,6 +42,9 @@
 
 	@Autowired
 	private IEquipmentService equipmentService;
+
+	@Autowired
+	private AnimalHeatService animalHeatService;
 
 	@Autowired
 	private IAlarmService alarmService;
@@ -102,146 +106,135 @@
 		String body = new String(req, "UTF-8");
 		String content = body;
 		System.out.println("接收客户端数据:" + body);
-		String ChannelName = content.substring(10, 22);//设备编码
-		String sub = content.substring(23, 27);
-		ConcurrentHashMap<String, Channel> channelHashMap = ChannelMap.getChannelHashMap();
-		if (channelHashMap==null){
-			if (!sub.equals("VIMO")){
-				// 保存当前连接
-				ChannelMap.addChannel(ChannelName,channelHandlerContext.channel());
+		//获取字符串的长度
+		int length = content.length();
+		//当字符串长度大于200时,采集体温数据,小于则采集报警数据
+		if (length>200){
+			//只有数据长度大于300时,采集体温数据  200-300 之间为心跳数据,当前不采集
+			if (length>250){
+				//插入数据
+				serverHandler.animalHeatService.save(body);
 			}
-		}
-		else {
-			Channel channel = ChannelMap.getChannelByName(ChannelName);
-			if (channel!=channelHandlerContext.channel()|| channel==null){
-				if (!sub.equals("VIMO")){
+		}else {
+			String ChannelName = content.substring(10, 22);//设备编码
+			String sub = content.substring(23, 27);
+			ConcurrentHashMap<String, Channel> channelHashMap = ChannelMap.getChannelHashMap();
+			if (channelHashMap == null) {
+				if (!sub.equals("VIMO")) {
 					// 保存当前连接
-					ChannelMap.addChannel(ChannelName,channelHandlerContext.channel());
+					ChannelMap.addChannel(ChannelName, channelHandlerContext.channel());
+				}
+			} else {
+				Channel channel = ChannelMap.getChannelByName(ChannelName);
+				if (channel != channelHandlerContext.channel() || channel == null) {
+					if (!sub.equals("VIMO")) {
+						// 保存当前连接
+						ChannelMap.addChannel(ChannelName, channelHandlerContext.channel());
+					}
 				}
 			}
-		}
 
-		List<String> outData = new ArrayList<>();
-		switch (content.substring(0, 2))
-		{
-			case "LA":
-			{
-				String devId = content.substring(10, 22);
-				String fqbm = content.substring(24, 26);
-				List<Map<String, Object>> list = serverHandler.equipmentService.selectInfos(devId);
-				Alarm alarm= new Alarm();
-				alarm.setAlarmType("一键报警");
-				alarm.setGalarmPeople("报警主机");
-				Date day = new Date();
-				SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-				alarm.setAlarmTime(df.format(day));
-				alarm.setPlace((String) list.get(0).get("streeName"));//事发地址
-				alarm.setDeviceNumber((String) list.get(0).get("deviceNumber"));//设备编号
-				alarm.setDistrict((String) list.get(0).get("district"));//县区
-				alarm.setProvince((String) list.get(0).get("province"));//市
-				alarm.setCity((String) list.get(0).get("city"));
-				alarm.setJd((String) list.get(0).get("jd"));//经度
-				alarm.setWd((String) list.get(0).get("wd"));//纬度
-				alarm.setJtype("0");
-				if (fqbm.equals("00")){
-                 alarm.setWaringType("旁路");
-				}
-				else if(fqbm.equals("01")){
-					alarm.setWaringType("火警");
-				}
-				else if(fqbm.equals("02")){
-					alarm.setWaringType("挟持");
-				}
-				else if(fqbm.equals("03")){
-					alarm.setWaringType("紧急");
-				}
-				else if(fqbm.equals("04")){
-					alarm.setWaringType("救护");
-				}
-				else if(fqbm.equals("05")){
-					alarm.setWaringType("内部");
-				}
-				else if(fqbm.equals("06")){
-					alarm.setWaringType("出入");
-				}
-				else if(fqbm.equals("07")){
-					alarm.setWaringType("周边");
-				}
-				else {
-					alarm.setWaringType("防拆");
-				}
-				serverHandler.alarmService.s(alarm);
-				outData.add("LEOK#@");
+			List<String> outData = new ArrayList<>();
+			switch (content.substring(0, 2)) {
+				case "LA": {
+					String devId = content.substring(10, 22);
+					String fqbm = content.substring(24, 26);
+					List<Map<String, Object>> list = serverHandler.equipmentService.selectInfos(devId);
+					Alarm alarm = new Alarm();
+					alarm.setAlarmType("一键报警");
+					alarm.setGalarmPeople("报警主机");
+					Date day = new Date();
+					SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+					alarm.setAlarmTime(df.format(day));
+					alarm.setPlace((String) list.get(0).get("streeName"));//事发地址
+					alarm.setDeviceNumber((String) list.get(0).get("deviceNumber"));//设备编号
+					alarm.setDistrict((String) list.get(0).get("district"));//县区
+					alarm.setProvince((String) list.get(0).get("province"));//市
+					alarm.setCity((String) list.get(0).get("city"));
+					alarm.setJd((String) list.get(0).get("jd"));//经度
+					alarm.setWd((String) list.get(0).get("wd"));//纬度
+					alarm.setJtype("0");
+					if (fqbm.equals("00")) {
+						alarm.setWaringType("旁路");
+					} else if (fqbm.equals("01")) {
+						alarm.setWaringType("火警");
+					} else if (fqbm.equals("02")) {
+						alarm.setWaringType("挟持");
+					} else if (fqbm.equals("03")) {
+						alarm.setWaringType("紧急");
+					} else if (fqbm.equals("04")) {
+						alarm.setWaringType("救护");
+					} else if (fqbm.equals("05")) {
+						alarm.setWaringType("内部");
+					} else if (fqbm.equals("06")) {
+						alarm.setWaringType("出入");
+					} else if (fqbm.equals("07")) {
+						alarm.setWaringType("周边");
+					} else {
+						alarm.setWaringType("防拆");
+					}
+					serverHandler.alarmService.s(alarm);
+					outData.add("LEOK#@");
 
-				break;
-			}
-			case "LD":
-			{
+					break;
+				}
+				case "LD": {
 //				if (Pattern.matches(content, reg_LD))
-				   String deviceNumber = content.substring(10, 22);
+					String deviceNumber = content.substring(10, 22);
 					String keyword = content.substring(23, 27);
 					System.out.println(keyword);
-					switch(keyword)
-					{
-						case "IMEI":
-						{
+					switch (keyword) {
+						case "IMEI": {
 							Date d = new Date();
 							SimpleDateFormat sbf = new SimpleDateFormat("MMddHHmm");
 							outData.add("LC8C0470" + sbf.format(d) + "#@" + "LEOK#@");
 							outData.add("LEOK#@");
 							break;
 						}
-						case "SRTC":
-						{
+						case "SRTC": {
 							Date d = new Date();
 							SimpleDateFormat sbf = new SimpleDateFormat("yyyyMMddHHmmss");
 							outData.add("LEOK#@");
 							outData.add("LC8C0700" + sbf.format(d) + "#@");
 							break;
 						}
-						case "STAS":
-						{
+						case "STAS": {
 							outData.add("LEOK#@");
-							outData.add("LC8100001E"+ "#@");
+							outData.add("LC8100001E" + "#@");
 							break;
 						}
-						case "TEST":
-						{
+						case "TEST": {
 							Date d = new Date();
 							SimpleDateFormat sbf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 							String format = sbf.format(d);
-							serverHandler.equipmentService.updateChannel(format,deviceNumber);
+							serverHandler.equipmentService.updateChannel(format, deviceNumber);
 							outData.add("LEOK#@");
 							outData.add("LEON#@");
 							break;
 						}
-						case "COMM":
-						{
+						case "COMM": {
 							outData.add("LEOK#@");
 							break;
 						}
-						default:
-						{
+						default: {
 							outData.add("LEOK#@");
 							break;
 						}
 					}
 
-				break;
-			}
-			case "LB":
-			{
+					break;
+				}
+				case "LB": {
 					outData.add("LEOK#@");
-				break;
+					break;
+				}
 			}
-		}
-		if(outData.size() == 0)
-		{
-			outData.add("LERR#@");
-		}
-		for (int i = 0; i < outData.size(); i++)
-		{
-			channelHandlerContext.writeAndFlush(Unpooled.copiedBuffer(outData.get(i), CharsetUtil.UTF_8));
+			if (outData.size() == 0) {
+				outData.add("LERR#@");
+			}
+			for (int i = 0; i < outData.size(); i++) {
+				channelHandlerContext.writeAndFlush(Unpooled.copiedBuffer(outData.get(i), CharsetUtil.UTF_8));
+			}
 		}
 
 
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyTcpServer/MyNettyDecode.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyTcpServer/MyNettyDecode.java
deleted file mode 100644
index e78319f..0000000
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyTcpServer/MyNettyDecode.java
+++ /dev/null
@@ -1,126 +0,0 @@
-package org.springblade.jfpt.nettyTcpServer;
-
-import io.netty.buffer.ByteBuf;
-import io.netty.buffer.Unpooled;
-import io.netty.channel.ChannelHandlerContext;
-import io.netty.handler.codec.ByteToMessageDecoder;
-import java.util.List;
-
-/**
- * 自定义解码器
- *
- */
-public class MyNettyDecode extends ByteToMessageDecoder {
-	public final int BASE_LENGTH = 4 + 4 ;
-
-//	@Override
-//	protected void decode(ChannelHandlerContext channelHandlerContext, ByteBuf byteBuf, List<Object> list) throws Exception {
-//		System.out.println("byteBuf = " + byteBuf.readableBytes());
-//		// 可读长度必须大于基本长度
-//		if (byteBuf.readableBytes() >= BASE_LENGTH) {
-//			// 防止socket字节流攻击
-//			// 防止,客户端传来的数据过大
-//			// 因为,太大的数据,是不合理的
-//			if (byteBuf.readableBytes() > 202048) {
-//				byteBuf.skipBytes(byteBuf.readableBytes());
-//			}
-//
-//			// 记录包头开始的index
-//			int beginReader;
-//
-//			while (true) {
-//				// 获取包头开始的index
-//				beginReader = byteBuf.readerIndex();
-//				// 标记包头开始的index
-//				byteBuf.markReaderIndex();
-//				// 读到了协议的开始标志,结束while循环
-//				if (byteBuf.readInt() == NettyConstant.HEAD_DATA) {
-//					break;
-//				}
-//
-//				// 未读到包头,略过一个字节
-//				// 每次略过,一个字节,去读取,包头信息的开始标记
-//				byteBuf.resetReaderIndex();
-//				byteBuf.readByte();
-//
-//				// 当略过,一个字节之后,
-//				// 数据包的长度,又变得不满足
-//				// 此时,应该结束。等待后面的数据到达
-//				if (byteBuf.readableBytes() < BASE_LENGTH) {
-//					return;
-//				}
-//			}
-//
-//			// 消息的长度
-//
-//			int length = byteBuf.readInt();
-//			// 判断请求数据包数据是否到齐
-//			if (byteBuf.readableBytes() < length) {
-//				// 还原读指针
-//				byteBuf.readerIndex(beginReader);
-//				return;
-//			}
-//
-//			// 读取data数据
-//			byte[] data = new byte[length];
-//			byteBuf.readBytes(data);
-//			System.out.println("byteBuf末尾 = " + byteBuf);
-//
-//			NettyProPool protocol = new NettyProPool(data.length, data);
-//			list.add(protocol);
-//			System.out.println("list = " + list);
-//		}
-//	}
-
-	static final int PACKET_SIZE = 110088;
-
-	// 用来临时保留没有处理过的请求报文
-	ByteBuf tempMsg = Unpooled.buffer();
-
-	/**
-	 * @param ctx
-	 * @param in 请求的数据
-	 * @param out 将粘在一起的报文拆分后的结果保留起来
-	 * @throws Exception
-	 */
-	@Override
-	protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) throws Exception {
-		System.out.println(Thread.currentThread() + "收到了一次数据包,长度是:" + in.readableBytes());
-
-		// 合并报文
-		ByteBuf message = null;
-		int tmpMsgSize = tempMsg.readableBytes();
-		System.out.println("tmpMsgSize = " + tmpMsgSize);
-		// 如果暂存有上一次余下的请求报文,则合并
-		if (tmpMsgSize > 0) {
-			message = Unpooled.buffer();
-			message.writeBytes(tempMsg);
-			message.writeBytes(in);
-			System.out.println("合并:上一数据包余下的长度为:" + tmpMsgSize + ",合并后长度为:" + message.readableBytes());
-		} else {
-			message = in;
-		}
-
-		int size = message.readableBytes();
-		int counter = size / PACKET_SIZE;
-		for (int i = 0; i < counter; i++) {
-			byte[] request = new byte[PACKET_SIZE];
-			// 每次从总的消息中读取220个字节的数据
-			message.readBytes(request);
-
-			// 将拆分后的结果放入out列表中,交由后面的业务逻辑去处理
-			out.add(Unpooled.copiedBuffer(request));
-		}
-
-		// 多余的报文存起来
-		// 第一个报文: i+  暂存
-		// 第二个报文: 1 与第一次
-		size = message.readableBytes();
-		if (size != 0) {
-			System.out.println("多余的数据长度:" + size);
-			// 剩下来的数据放到tempMsg暂存
-			tempMsg.clear();
-			tempMsg.writeBytes(message.readBytes(size));
-		}
-	}
-}
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyTcpServer/NettyConstant.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyTcpServer/NettyConstant.java
deleted file mode 100644
index 8d2886a..0000000
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyTcpServer/NettyConstant.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.springblade.jfpt.nettyTcpServer;
-
-/**
- * 自定义协议常量
- */
-public class NettyConstant {
-	/**
-	 * 自定义协议开始
-	 */
-	public static final int HEAD_DATA = 0*76;
-
-}
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyTcpServer/NettyProPool.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyTcpServer/NettyProPool.java
deleted file mode 100644
index 02b1a0f..0000000
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyTcpServer/NettyProPool.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package org.springblade.jfpt.nettyTcpServer;
-
-
-public class NettyProPool {
-
-	/**
-	 * 协议开始的标志,16进制为 0*76
-	 */
-	private int haed_data=NettyConstant.HEAD_DATA;
-
-	/**
-	 * 传送的长度
-	 */
-	private int contentLength;
-
-	/**
-	 * 传送的内容
-	 */
-	private byte[] content;
-
-	public NettyProPool(int contentLength) {
-		this.contentLength = contentLength;
-	}
-
-	public int getContentLength() {
-		return contentLength;
-	}
-
-	public void setContentLength(int contentLength) {
-		this.contentLength = contentLength;
-	}
-
-	public NettyProPool(int contentLength, byte[] content) {
-		this.contentLength = contentLength;
-		this.content = content;
-	}
-
-	public byte[] getContent() {
-		return content;
-	}
-
-	public void setContent(byte[] content) {
-		this.content = content;
-	}
-
-	public int getHaed_data() {
-		return haed_data;
-	}
-
-	public void setHaed_data(int haed_data) {
-		this.haed_data = haed_data;
-	}
-}
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyTcpServer/ParseString.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyTcpServer/ParseString.java
deleted file mode 100644
index ac47ea6..0000000
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyTcpServer/ParseString.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package org.springblade.jfpt.nettyTcpServer;
-
-import io.swagger.models.auth.In;
-
-public class ParseString {
-		public static Integer[] stringToInts(String s){
-			String[] split = s.split(",");
-			Integer[] n = new Integer[split.length];
-			for(int i = 0;i<split.length;i++){
-				n[i] = Integer.parseInt(split[i]);
-			}
-			return n;
-		}
-}
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyTcpServer/TcpServer.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyTcpServer/TcpServer.java
index f322210..d84e838 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyTcpServer/TcpServer.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyTcpServer/TcpServer.java
@@ -9,13 +9,6 @@
 import io.netty.channel.socket.SocketChannel;
 import io.netty.channel.socket.nio.NioServerSocketChannel;
 import io.netty.handler.codec.DelimiterBasedFrameDecoder;
-import io.netty.handler.codec.LengthFieldBasedFrameDecoder;
-import io.netty.handler.codec.LengthFieldPrepender;
-import io.netty.handler.codec.string.StringDecoder;
-import io.netty.handler.logging.LoggingHandler;
-
-import java.nio.ByteOrder;
-import java.nio.charset.Charset;
 
 
 public class TcpServer {
@@ -40,12 +33,15 @@
 				// 绑定处理group
 				bootstrap.group(boss, worker).channel(NioServerSocketChannel.class)
 					//保持连接数
-					.option(ChannelOption.SO_BACKLOG, 128)
+					.option(ChannelOption.SO_BACKLOG, 30)
+					//设置缓冲区大小
+					.option(ChannelOption.SO_RCVBUF, 1024*1024)
+					.option(ChannelOption.SO_SNDBUF, 1024*1024)
 					//有数据立即发送
 					.option(ChannelOption.TCP_NODELAY, true)
 					//保持连接
 					.childOption(ChannelOption.SO_KEEPALIVE, true)
-					.childOption(ChannelOption.RCVBUF_ALLOCATOR, new FixedRecvByteBufAllocator(512*250))
+					.childOption(ChannelOption.RCVBUF_ALLOCATOR, new FixedRecvByteBufAllocator(1024*1024))
 					.childHandler(new NettyChannelHandler());
 
 				//绑定端口,同步等待成功
@@ -81,10 +77,8 @@
 		@Override
 		protected void initChannel(SocketChannel socketChannel)
 			throws Exception {
-			//socketChannel.pipeline().addLast(new MyNettyDecode());
-			//socketChannel.pipeline().addLast(new StringDecoder(Charset.forName("UTF-8")));
-			//socketChannel.pipeline().addLast("decoder", new LengthFieldBasedFrameDecoder(Integer.MAX_VALUE,0,4,0,4));
-			//socketChannel.pipeline().addLast("encoder", new LengthFieldPrepender(4, false));
+			ByteBuf delimiter = Unpooled.copiedBuffer("}".getBytes());
+			socketChannel.pipeline().addLast( new DelimiterBasedFrameDecoder(200000,delimiter));
 			socketChannel.pipeline().addLast(new TcpServerHandler());
 		}
 	}
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyTcpServer/TcpServerHandler.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyTcpServer/TcpServerHandler.java
index 7d113a5..f12c77c 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyTcpServer/TcpServerHandler.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyTcpServer/TcpServerHandler.java
@@ -7,7 +7,7 @@
 import org.springblade.jfpt.alarm.service.IAlarmService;
 import org.springblade.jfpt.equipment.service.IEquipmentService;
 import org.springblade.jfpt.nettyServer.NettyConfig;
-import org.springblade.jfpt.nettyUdpServer.service.AnimalHeatService;
+import org.springblade.jfpt.animalheat.service.AnimalHeatService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import javax.annotation.PostConstruct;
@@ -15,26 +15,6 @@
 
 @Component
 public class TcpServerHandler extends ChannelInboundHandlerAdapter {
-
-	private  String reg_LA ="LA[d]{8}[d|A-F]{12}[d|A-F]{8}[d|A-Z]{2}[d|A-F]{4}[x2A][d|A-F]{6}[#@]";
-	private String reg_LB = "LB[\\d|A-F]{12}[\\x2A].*[#@]";
-	private String reg_LB2 = "LB[\\d|A-F]{6}[\\x2A].*[#@]";
-	private String reg_LD = "LD[d]{8}[d|A-F]{12}:[A-Z]{4}[\\x2A].*[#@]";
-
-
-	private ConcurrentHashMap<String, Channel> sessionChannelMap = new ConcurrentHashMap<String, Channel>();
-
-	@Autowired
-	private org.springblade.jfpt.catalog.service.catalogService catalogService;
-
-	@Autowired
-	private org.springblade.jfpt.Netty.service.nettyService nettyService;
-
-	@Autowired
-	private IEquipmentService equipmentService;
-
-	@Autowired
-	private IAlarmService alarmService;
 
 	private static TcpServerHandler tcpServerHandler;
 
@@ -96,9 +76,15 @@
 		String body = new String(req, "UTF-8");
 		String content = body;
 		System.out.println("接收客户端数据:" + body);
-		//插入数据
-		tcpServerHandler.animalHeatService.save(body);
-
+		System.out.println("content.length() = " + content.length());
+		//获取字符串的长度
+		int length = content.length();
+		//当字符串长度大于200时,采集体温数据,小于则采集报警数据
+		//只有数据长度大于300时,采集体温数据  200-300 之间为心跳数据,当前不采集
+		if (length>250){
+			//插入数据
+			tcpServerHandler.animalHeatService.save(body);
+		}
 	}
 
 
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/controller/AnimalHeatController.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/controller/AnimalHeatController.java
deleted file mode 100644
index 57d38d5..0000000
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/controller/AnimalHeatController.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.springblade.jfpt.nettyUdpServer.controller;
-
-import lombok.AllArgsConstructor;
-import org.springblade.jfpt.nettyUdpServer.service.AnimalHeatService;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * 体温监测控制层
- * @time 2021-2-25
- */
-
-@RestController
-@RequestMapping("animalHeat/animalHeat")
-@AllArgsConstructor
-public class AnimalHeatController {
-
-	private final AnimalHeatService animalHeatService;
-
-}
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/mapper/AnimalHeatMapper.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/mapper/AnimalHeatMapper.java
deleted file mode 100644
index f71cc52..0000000
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/mapper/AnimalHeatMapper.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.springblade.jfpt.nettyUdpServer.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.springblade.jfpt.nettyUdpServer.entity.BladeAnimalHeat;
-
-/**
- * mapper 映射层
- *
- */
-public interface AnimalHeatMapper extends BaseMapper<BladeAnimalHeat> {
-}
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/service/AnimalHeatService.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/service/AnimalHeatService.java
deleted file mode 100644
index 11d92a4..0000000
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/service/AnimalHeatService.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package org.springblade.jfpt.nettyUdpServer.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import org.springblade.jfpt.nettyUdpServer.entity.BladeAnimalHeat;
-
-/**
- * 体温监测服务层接口层
- */
-public interface AnimalHeatService extends IService<BladeAnimalHeat> {
-	/**
-	 * 插入体温数据
-	 * @param body 温度数据
-	 */
-    void save(String body);
-}
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/service/impl/AnimalHeatServiceImpl.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/service/impl/AnimalHeatServiceImpl.java
deleted file mode 100644
index f6f906a..0000000
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/service/impl/AnimalHeatServiceImpl.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package org.springblade.jfpt.nettyUdpServer.service.impl;
-
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springblade.jfpt.nettyTcpServer.ParseString;
-import org.springblade.jfpt.nettyUdpServer.entity.BladeAnimalHeat;
-import org.springblade.jfpt.nettyUdpServer.mapper.AnimalHeatMapper;
-import org.springblade.jfpt.nettyUdpServer.service.AnimalHeatService;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.lang.reflect.Array;
-import java.util.Map;
-import static org.springblade.core.tool.utils.DateUtil.now;
-
-/**
- * 体温数据服务层
- *
- */
-@Service
-public class AnimalHeatServiceImpl extends ServiceImpl<AnimalHeatMapper, BladeAnimalHeat> implements AnimalHeatService {
-	@Override
-	public boolean save(BladeAnimalHeat entity) {
-		return false;
-	}
-
-	/**
-	 * 新增体温数据
-	 * @param body 体温数据
-	 */
-	@Override
-	@Transactional
-	public void save(String body) {
-		//1.截取信息
-		int i = body.indexOf("{");
-		//2.从 {  处开始截取
-		int length = body.length();
-		//3.截取
-		String dataBody = body.substring(i, length);
-		System.out.println("dataBody = " + dataBody);
-		//4.数据转换
-		Map<String,Object> data = (Map<String, Object>) JSONObject.parse(dataBody);
-		System.out.println("data = " + data);
-		//5.创建体温数据对象
-		BladeAnimalHeat bladeAnimalHeat = new BladeAnimalHeat();
-		//6.取出数据,封装数据到对象
-		bladeAnimalHeat.setPicture(data.get("picture").toString());
-		String temp_red =data.get("temp_red").toString();
-		bladeAnimalHeat.setTempRed(Float.parseFloat(temp_red.substring(1,temp_red.length()-1)));
-		String person_rects = data.get("person_rect").toString();
-		bladeAnimalHeat.setPersonRect(person_rects.substring(2,person_rects.length()-2).split(","));
-		bladeAnimalHeat.setCreateTime(now());
-		//7.插入数据
-		int idata = baseMapper.insert(bladeAnimalHeat);
-	}
-}
diff --git a/blade-service/blade-jfpts/src/main/resources/application-dev.yml b/blade-service/blade-jfpts/src/main/resources/application-dev.yml
index ba90ad6..05645de 100644
--- a/blade-service/blade-jfpts/src/main/resources/application-dev.yml
+++ b/blade-service/blade-jfpts/src/main/resources/application-dev.yml
@@ -8,3 +8,5 @@
     url: jdbc:mysql://36.134.81.48:3306/jfpt?allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true&useOldAliasMetadataBehavior=true
     username: root
     password: jfpt123
+
+
diff --git a/blade-service/blade-jfpts/src/main/resources/application.properties b/blade-service/blade-jfpts/src/main/resources/application.properties
new file mode 100644
index 0000000..2fd2358
--- /dev/null
+++ b/blade-service/blade-jfpts/src/main/resources/application.properties
@@ -0,0 +1,2 @@
+picture.addUrl= http://36.134.81.48:9000/
+picture.pre= software/minio/data/animalHeat/

--
Gitblit v1.9.3