|
@@ -6,6 +6,7 @@ import com.huimv.acquisition.entity.*;
|
|
import com.huimv.acquisition.mapper.CollectorRegisterDao;
|
|
import com.huimv.acquisition.mapper.CollectorRegisterDao;
|
|
import com.huimv.acquisition.mapper.EartagDataDao;
|
|
import com.huimv.acquisition.mapper.EartagDataDao;
|
|
import com.huimv.acquisition.mapper.EartagRegisterDao;
|
|
import com.huimv.acquisition.mapper.EartagRegisterDao;
|
|
|
|
+import com.huimv.acquisition.mapper.RawDataDao;
|
|
import com.huimv.acquisition.service.*;
|
|
import com.huimv.acquisition.service.*;
|
|
import com.huimv.acquisition.socket.eartagrecive.constant.ImportanteConfig;
|
|
import com.huimv.acquisition.socket.eartagrecive.constant.ImportanteConfig;
|
|
import com.huimv.acquisition.socket.eartagrecive.util.DateUtil;
|
|
import com.huimv.acquisition.socket.eartagrecive.util.DateUtil;
|
|
@@ -53,35 +54,34 @@ public class ReceivePackageSerivce {
|
|
private DeviceTempService deviceTempService;
|
|
private DeviceTempService deviceTempService;
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
- private CollectorRegisterService collectorRegisterService;
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- public String handleEartagData(String[] clientMessageArray) throws ParseException {
|
|
|
|
- String head = clientMessageArray[0]; //命令头
|
|
|
|
- String device_code = clientMessageArray[1]; //采集器ID
|
|
|
|
- String eartag_no = clientMessageArray[2]; //版本号
|
|
|
|
- String bat = clientMessageArray[3]; //耳标号
|
|
|
|
- String ear_temp = clientMessageArray[4]; //耳标帧序号
|
|
|
|
- String env_temp = clientMessageArray[5];
|
|
|
|
- int exercise = Integer.parseInt(clientMessageArray[6]); //运动量
|
|
|
|
- //重启次数
|
|
|
|
- String rssi = clientMessageArray[7]; //信号强度
|
|
|
|
-
|
|
|
|
- String time = clientMessageArray[8]; //采集时间
|
|
|
|
|
|
+ private RawDataService rawDataService ;
|
|
|
|
+ @Autowired
|
|
|
|
+ private HeartBeatRecordService heartBeatRecordService ;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public String handleEartagData(String[] clientMessageArray ,String rawdata) throws ParseException {
|
|
|
|
+ //这一块应该封装起来 ,而不是直接展示
|
|
|
|
+ //zj+202007239999895+133070303805451+86+0+2062+0+69+20211110104442+1.0#1.0#11567+0+end
|
|
|
|
+ String head = clientMessageArray[0]; //命令头
|
|
|
|
+ String device_code = clientMessageArray[1]; //采集器编码
|
|
|
|
+ String eartag_no = clientMessageArray[2]; //耳标号
|
|
|
|
+ String bat = clientMessageArray[3]; //电池电量
|
|
|
|
+ String useless_field = clientMessageArray[4]; //目前来说是无用字段
|
|
|
|
+ String env_temp = clientMessageArray[5]; //环境温度
|
|
|
|
+ int exercise = Integer.parseInt(clientMessageArray[6]); //运动量
|
|
|
|
+ String rssi = clientMessageArray[7]; //信号强度
|
|
|
|
+ String time = clientMessageArray[8]; //采集时间
|
|
Date sendEartagTime = DateUtilsPublic.parseDateTime(DateUtilsPublic.buildDateTimeString(time));
|
|
Date sendEartagTime = DateUtilsPublic.parseDateTime(DateUtilsPublic.buildDateTimeString(time));
|
|
-
|
|
|
|
- String prepare_field= clientMessageArray[9]; //耳标温度
|
|
|
|
-
|
|
|
|
- String[] split = prepare_field.split("#"); // 1.0#1.0#9314 --耳标版本--网关版本--电阻值(用来计算环境温度)
|
|
|
|
- String check = clientMessageArray[10]; //校验码
|
|
|
|
- String tail = clientMessageArray[11]; //命令尾
|
|
|
|
|
|
+ String prepare_field= clientMessageArray[9]; //复合字段 1.0#1.0#11567 --耳标版本--网关版本--电阻值(用来计算环境温度)
|
|
|
|
+ String[] split = prepare_field.split("#"); //1.0#1.0#9314
|
|
|
|
+ String check = clientMessageArray[10]; //校验码
|
|
|
|
+ String tail = clientMessageArray[11]; //命令尾
|
|
|
|
+ //存放数据
|
|
EartagDataEntity eartagDataEntity = new EartagDataEntity();
|
|
EartagDataEntity eartagDataEntity = new EartagDataEntity();
|
|
-
|
|
|
|
eartagDataEntity.setHead(head); //命令头
|
|
eartagDataEntity.setHead(head); //命令头
|
|
eartagDataEntity.setDeviceCode(device_code); //采集器ID
|
|
eartagDataEntity.setDeviceCode(device_code); //采集器ID
|
|
eartagDataEntity.setVersion(split[0]); //耳标版本
|
|
eartagDataEntity.setVersion(split[0]); //耳标版本
|
|
eartagDataEntity.setCommand(split[1]); //网关版本
|
|
eartagDataEntity.setCommand(split[1]); //网关版本
|
|
-
|
|
|
|
eartagDataEntity.setEartagNo(eartag_no); //耳标号
|
|
eartagDataEntity.setEartagNo(eartag_no); //耳标号
|
|
eartagDataEntity.setBat(Integer.parseInt(bat)); //电池 电量
|
|
eartagDataEntity.setBat(Integer.parseInt(bat)); //电池 电量
|
|
DecimalFormat df = new DecimalFormat("####0.00");
|
|
DecimalFormat df = new DecimalFormat("####0.00");
|
|
@@ -106,10 +106,9 @@ public class ReceivePackageSerivce {
|
|
System.out.println("设备编码 "+device_code);
|
|
System.out.println("设备编码 "+device_code);
|
|
if (collectorRegisterEntity==null){//设备没注册就不让他存,基础信息都没有
|
|
if (collectorRegisterEntity==null){//设备没注册就不让他存,基础信息都没有
|
|
System.out.println("设备登记表中没有此设备信息,请先注册");
|
|
System.out.println("设备登记表中没有此设备信息,请先注册");
|
|
- return "设备登记表中没有此设备信息,请先注册";
|
|
|
|
|
|
+ return null;
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
LambdaQueryWrapper<EartagDataEntity> wrapper = Wrappers.lambdaQuery();
|
|
LambdaQueryWrapper<EartagDataEntity> wrapper = Wrappers.lambdaQuery();
|
|
wrapper.eq(EartagDataEntity::getEartagNo, eartag_no ).orderByDesc( EartagDataEntity::getId ).last( "limit 1");
|
|
wrapper.eq(EartagDataEntity::getEartagNo, eartag_no ).orderByDesc( EartagDataEntity::getId ).last( "limit 1");
|
|
EartagDataEntity lastEarTagDate = eartagDataDao.selectOne(wrapper);
|
|
EartagDataEntity lastEarTagDate = eartagDataDao.selectOne(wrapper);
|
|
@@ -123,10 +122,9 @@ public class ReceivePackageSerivce {
|
|
movePigpenEntity.setMoveDate(DateUtilsPublic.parseDateTime(DateUtilsPublic.buildDateTimeString(time)));
|
|
movePigpenEntity.setMoveDate(DateUtilsPublic.parseDateTime(DateUtilsPublic.buildDateTimeString(time)));
|
|
movePigpenEntity.setStage(collectorRegisterEntity.getStage());
|
|
movePigpenEntity.setStage(collectorRegisterEntity.getStage());
|
|
movePigpenEntity.setOrgId(collectorRegisterEntity.getOrgId());
|
|
movePigpenEntity.setOrgId(collectorRegisterEntity.getOrgId());
|
|
-
|
|
|
|
movePigpenService.save(movePigpenEntity);
|
|
movePigpenService.save(movePigpenEntity);
|
|
|
|
|
|
- //存储注册信息(现在也是猪的基础信息---需要大量冗余,毕竟基础信息) 写定时任务刷新这张表
|
|
|
|
|
|
+ //存储注册信息(现在也是猪的基础信息---需要大量冗余,毕竟基础信息)
|
|
EartagRegisterEntity eartagRegisterEntity = new EartagRegisterEntity();
|
|
EartagRegisterEntity eartagRegisterEntity = new EartagRegisterEntity();
|
|
eartagRegisterEntity.setAge(0);
|
|
eartagRegisterEntity.setAge(0);
|
|
eartagRegisterEntity.setDeviceCode(device_code);//给绑定的设备编码死否会改变
|
|
eartagRegisterEntity.setDeviceCode(device_code);//给绑定的设备编码死否会改变
|
|
@@ -136,19 +134,28 @@ public class ReceivePackageSerivce {
|
|
eartagRegisterEntity.setRegisterDate(new Date());
|
|
eartagRegisterEntity.setRegisterDate(new Date());
|
|
eartagRegisterEntity.setOrgId( collectorRegisterEntity.getOrgId());
|
|
eartagRegisterEntity.setOrgId( collectorRegisterEntity.getOrgId());
|
|
eartagRegisterEntity.setStage(collectorRegisterEntity.getStage());
|
|
eartagRegisterEntity.setStage(collectorRegisterEntity.getStage());
|
|
|
|
+ eartagRegisterEntity.setStage(collectorRegisterEntity.getUnitId());
|
|
|
|
|
|
eartagRegisterService.save(eartagRegisterEntity);//存储一条还没有处理的数据
|
|
eartagRegisterService.save(eartagRegisterEntity);//存储一条还没有处理的数据
|
|
-
|
|
|
|
//存储这一条数据
|
|
//存储这一条数据
|
|
eartagDataEntity.setFarmCode(collectorRegisterEntity.getFarmCode());
|
|
eartagDataEntity.setFarmCode(collectorRegisterEntity.getFarmCode());
|
|
eartagDataEntity.setStage(collectorRegisterEntity.getStage());
|
|
eartagDataEntity.setStage(collectorRegisterEntity.getStage());
|
|
eartagDataEntity.setPigpen((String.valueOf( collectorRegisterEntity.getPigpenId())));
|
|
eartagDataEntity.setPigpen((String.valueOf( collectorRegisterEntity.getPigpenId())));
|
|
- eartagDataEntity.setSportGap(0);
|
|
|
|
|
|
+ eartagDataEntity.setSportGap(0);//运动量
|
|
eartagDataEntity.setOrgId(collectorRegisterEntity.getOrgId());
|
|
eartagDataEntity.setOrgId(collectorRegisterEntity.getOrgId());
|
|
eartagDataEntity.setUnitId(collectorRegisterEntity.getUnitId());
|
|
eartagDataEntity.setUnitId(collectorRegisterEntity.getUnitId());
|
|
System.out.println("存储成功------");
|
|
System.out.println("存储成功------");
|
|
eartagDataService.save(eartagDataEntity);
|
|
eartagDataService.save(eartagDataEntity);
|
|
- return "hm+6+0+6+end";
|
|
|
|
|
|
+
|
|
|
|
+ //存储原始数据
|
|
|
|
+ RawDataEntity rawDataEntity = new RawDataEntity();
|
|
|
|
+ rawDataEntity.setDetailData(rawdata);
|
|
|
|
+ rawDataEntity.setStatus(0);
|
|
|
|
+ rawDataEntity.setCreateTime(new Date());
|
|
|
|
+ rawDataService.save(rawDataEntity);
|
|
|
|
+
|
|
|
|
+ //罗工要求返回空数据
|
|
|
|
+ return null;
|
|
}
|
|
}
|
|
|
|
|
|
//如果第一条不为空,通过计算时间间隔来判断是否存储
|
|
//如果第一条不为空,通过计算时间间隔来判断是否存储
|
|
@@ -156,25 +163,32 @@ public class ReceivePackageSerivce {
|
|
if( DateGap < ImportanteConfig.EARTAG_SEND_GAP_TIME){
|
|
if( DateGap < ImportanteConfig.EARTAG_SEND_GAP_TIME){
|
|
//更改存储形式,通过计算间隔时间来判断数据的存储
|
|
//更改存储形式,通过计算间隔时间来判断数据的存储
|
|
System.out.println("间隔时间过短,抛弃");
|
|
System.out.println("间隔时间过短,抛弃");
|
|
- return "间隔时间过短,抛弃";
|
|
|
|
|
|
+ return null;
|
|
}
|
|
}
|
|
|
|
+
|
|
eartagDataEntity.setFarmCode(collectorRegisterEntity.getFarmCode());
|
|
eartagDataEntity.setFarmCode(collectorRegisterEntity.getFarmCode());
|
|
eartagDataEntity.setStage(collectorRegisterEntity.getStage());
|
|
eartagDataEntity.setStage(collectorRegisterEntity.getStage());
|
|
eartagDataEntity.setPigpen((String.valueOf( collectorRegisterEntity.getPigpenId())));
|
|
eartagDataEntity.setPigpen((String.valueOf( collectorRegisterEntity.getPigpenId())));
|
|
eartagDataEntity.setUnitId(collectorRegisterEntity.getUnitId());
|
|
eartagDataEntity.setUnitId(collectorRegisterEntity.getUnitId());
|
|
-
|
|
|
|
eartagDataEntity.setSportGap(0);
|
|
eartagDataEntity.setSportGap(0);
|
|
eartagDataEntity.setOrgId(collectorRegisterEntity.getOrgId());
|
|
eartagDataEntity.setOrgId(collectorRegisterEntity.getOrgId());
|
|
|
|
|
|
eartagDataService.save(eartagDataEntity);
|
|
eartagDataService.save(eartagDataEntity);
|
|
System.out.println("存储成功-----");
|
|
System.out.println("存储成功-----");
|
|
- return "hm+6+0+6+end";
|
|
|
|
|
|
+
|
|
|
|
+ //存储原始数据
|
|
|
|
+ RawDataEntity rawDataEntity = new RawDataEntity();
|
|
|
|
+ rawDataEntity.setDetailData(rawdata);
|
|
|
|
+ rawDataEntity.setStatus(0);
|
|
|
|
+ rawDataEntity.setCreateTime(new Date());
|
|
|
|
+ rawDataService.save(rawDataEntity);
|
|
|
|
+ //罗工要求返回空数据
|
|
|
|
+ return null;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void main(String[] args) {
|
|
public static void main(String[] args) {
|
|
DecimalFormat df = new DecimalFormat("####0.00");
|
|
DecimalFormat df = new DecimalFormat("####0.00");
|
|
-
|
|
|
|
System.out.println(df.format(23.00000));
|
|
System.out.println(df.format(23.00000));
|
|
}
|
|
}
|
|
|
|
|
|
@@ -267,8 +281,6 @@ public class ReceivePackageSerivce {
|
|
* @Time : 17:46
|
|
* @Time : 17:46
|
|
*/
|
|
*/
|
|
public String handleEartagTemperature(String[] clientMessageArray) throws ParseException {
|
|
public String handleEartagTemperature(String[] clientMessageArray) throws ParseException {
|
|
-
|
|
|
|
-
|
|
|
|
//设备温度
|
|
//设备温度
|
|
String header = clientMessageArray[0];
|
|
String header = clientMessageArray[0];
|
|
String deviceId = clientMessageArray[1];
|
|
String deviceId = clientMessageArray[1];
|
|
@@ -299,6 +311,29 @@ public class ReceivePackageSerivce {
|
|
deviceTempEntity.setOrgId(collectorRegisterEntity.getOrgId());
|
|
deviceTempEntity.setOrgId(collectorRegisterEntity.getOrgId());
|
|
deviceTempService.save(deviceTempEntity);
|
|
deviceTempService.save(deviceTempEntity);
|
|
// temperatureService.add(EartagTemperaturePojo);
|
|
// temperatureService.add(EartagTemperaturePojo);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //hm+202007239999856+2+0+end
|
|
|
|
+ System.out.println("基站编码编码为====>"+deviceId);
|
|
|
|
+ HeartBeatRecordEntity heartBeatRecordEntity = new HeartBeatRecordEntity();
|
|
|
|
+ heartBeatRecordEntity.setCheckNo("0");
|
|
|
|
+ heartBeatRecordEntity.setCmd(3);
|
|
|
|
+ heartBeatRecordEntity.setCountyCode(collectorRegisterEntity.getCountyCode());
|
|
|
|
+ heartBeatRecordEntity.setDeviceCode(deviceId);
|
|
|
|
+ heartBeatRecordEntity.setFarmCode(collectorRegisterEntity.getFarmCode());
|
|
|
|
+ heartBeatRecordEntity.setHead("hm");
|
|
|
|
+ heartBeatRecordEntity.setPigpenId(collectorRegisterEntity.getPigpenId().toString());
|
|
|
|
+ heartBeatRecordEntity.setTail("end");
|
|
|
|
+ heartBeatRecordEntity.setUnitId(collectorRegisterEntity.getUnitId().toString());
|
|
|
|
+ heartBeatRecordEntity.setCreateTime(new Date());
|
|
|
|
+ heartBeatRecordService.save(heartBeatRecordEntity);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
return "hm+4+0+7+end";
|
|
return "hm+4+0+7+end";
|
|
}
|
|
}
|
|
|
|
|