|
@@ -115,6 +115,7 @@ public class DeviceServiceImpl implements IDeviceService {
|
|
|
|
|
|
//判断该设备编号是否存在缓存在线集合当中;
|
|
|
Boolean isExist = cacheService.isExistDeviceOnlineSet(farmId, deviceCode, todayDateText);
|
|
|
+ System.out.println("心跳处理 isExist>>"+isExist);
|
|
|
if (!isExist) {
|
|
|
//4、{更新总状态表}
|
|
|
// updateDeviceAllStatus(farmId, deviceCode,todayDateText,nowTimestamp,todayDate);
|
|
@@ -236,11 +237,13 @@ public class DeviceServiceImpl implements IDeviceService {
|
|
|
Timestamp heartbeatLastTime = nowTimestamp;
|
|
|
Timestamp envtempFirstTime = null;
|
|
|
Timestamp envtempLastTime = null;
|
|
|
+ Timestamp firstTime = nowTimestamp;
|
|
|
+ Timestamp lastTime = nowTimestamp;
|
|
|
//{计算耳标总数}
|
|
|
// Integer eartagTotal = eartagService.getEartagRegTotalByFarmId(farmId);
|
|
|
Integer eartagTotal = 0;
|
|
|
//{新建设备在线统计并创建缓存}
|
|
|
- newDeviceOnline(deviceCode,alias,heartbeatTotal,envtempTotal,eartagTotal,todayDate,farmId,heartbeatFirstTime,heartbeatLastTime,envtempFirstTime,envtempLastTime);
|
|
|
+ newDeviceOnline(deviceCode,alias,heartbeatTotal,envtempTotal,eartagTotal,todayDate,farmId,heartbeatFirstTime,heartbeatLastTime,envtempFirstTime,envtempLastTime,firstTime,lastTime);
|
|
|
}else{
|
|
|
eartagDeviceOnlineEntity.setAlias(alias);
|
|
|
int heartbeatTotal = eartagDeviceOnlineEntity.getHeartbeatTotal();
|
|
@@ -249,6 +252,10 @@ public class DeviceServiceImpl implements IDeviceService {
|
|
|
eartagDeviceOnlineEntity.setHeartbeatFirstTime(nowTimestamp);
|
|
|
}
|
|
|
eartagDeviceOnlineEntity.setHeartbeatLastTime(nowTimestamp);
|
|
|
+ if(eartagDeviceOnlineEntity.getFirstTime() == null){
|
|
|
+ eartagDeviceOnlineEntity.setFirstTime(nowTimestamp);
|
|
|
+ }
|
|
|
+ eartagDeviceOnlineEntity.setLastTime(nowTimestamp);
|
|
|
eartagDeviceOnlineRepo.saveAndFlush(eartagDeviceOnlineEntity);
|
|
|
//更新设备在线缓存数据
|
|
|
cacheService.putDeviceInOnline(deviceCode,eartagDeviceOnlineEntity);
|
|
@@ -346,7 +353,7 @@ public class DeviceServiceImpl implements IDeviceService {
|
|
|
//{通过设备编码取货牧场id}
|
|
|
String farmId = getFarmIdByDeviceCode(deviceCode);
|
|
|
if(farmId == null){
|
|
|
- log.error("该设备编码["+deviceCode+"]的设备已经不存在。");
|
|
|
+ log.error("出错:该设备编码["+deviceCode+"]的设备已经不存在。");
|
|
|
}
|
|
|
String temp = dataJo.getString("temp");
|
|
|
String envtemp = com.huimv.eartag2.common.utils.MathUtil.countEnvtemp(temp,2).toString();
|
|
@@ -355,7 +362,7 @@ public class DeviceServiceImpl implements IDeviceService {
|
|
|
Timestamp nowTimestamp = new Timestamp(new java.util.Date().getTime());
|
|
|
|
|
|
//1.保存环境温度流水
|
|
|
- saveDeviceTemp(dataJo,todayDate);
|
|
|
+ saveDeviceTemp(dataJo,todayDate,nowTimestamp);
|
|
|
|
|
|
String updateType = "环境温度";
|
|
|
//2.{更新设备注册表}
|
|
@@ -366,6 +373,7 @@ public class DeviceServiceImpl implements IDeviceService {
|
|
|
|
|
|
//判断该设备编号是否存在牧场缓存在线集合当中;
|
|
|
Boolean isExist = cacheService.isExistDeviceOnlineSet(farmId, deviceCode,todayDateText);
|
|
|
+ System.out.println("## 环境温度 isExist>>"+isExist);
|
|
|
if (!isExist) {
|
|
|
//4.{更新总状态表}
|
|
|
updateEnvtempOfDeviceAllStatus(farmId, todayDateText,todayDate,nowTimestamp);
|
|
@@ -381,6 +389,9 @@ public class DeviceServiceImpl implements IDeviceService {
|
|
|
//{获取处于工作状态的设备数量}
|
|
|
Integer deviceTotal = getDeviceTotalByFarmIdFromDeviceRegister(farmId);
|
|
|
System.out.println("## deviceTotal>>"+deviceTotal);
|
|
|
+ if(deviceTotal == 0){
|
|
|
+ log.error("出错:设备总数(deviceTotal)不能为0.");
|
|
|
+ }
|
|
|
//设备在线数量
|
|
|
Integer deviceOnlineSum = cacheService.getDeviceOnlineSum(farmId,todayDateText);
|
|
|
deviceOnlineSum++;
|
|
@@ -390,19 +401,22 @@ public class DeviceServiceImpl implements IDeviceService {
|
|
|
deviceOfflineSum = deviceTotal - deviceOnlineSum;
|
|
|
}
|
|
|
System.out.println("## deviceOnlineSum>>"+deviceOnlineSum);
|
|
|
-
|
|
|
//设备在线率
|
|
|
BigDecimal deviceRateBd= new BigDecimal(deviceOnlineSum).divide(new BigDecimal(deviceTotal),1,BigDecimal.ROUND_HALF_UP);
|
|
|
Float deviceOnlineRate = Float.parseFloat(deviceRateBd.toString());
|
|
|
//{获取注销设备数量}
|
|
|
Integer deviceCancelSum = getDeviceCancelTotalFromDeviceRegister(farmId);
|
|
|
+ Integer eartagOnlineSum = 0;
|
|
|
+ Float eartagOnlineRate = 0F;
|
|
|
//耳标总数量
|
|
|
Integer eartagTotal = eartagService.getEartagRegTotalByFarmId(farmId);
|
|
|
- //耳标在线数量
|
|
|
- Integer eartagOnlineSum = eartagService.getEartagOnelineTotal(farmId,todayDateText);
|
|
|
- //耳标在线率
|
|
|
- BigDecimal eartagRateBd= new BigDecimal(eartagOnlineSum).divide(new BigDecimal(eartagTotal),1,BigDecimal.ROUND_HALF_UP);
|
|
|
- Float eartagOnlineRate = Float.parseFloat(eartagRateBd.toString());
|
|
|
+ if(eartagTotal != 0){
|
|
|
+ //耳标在线数量
|
|
|
+ eartagOnlineSum = eartagService.getEartagOnelineTotal(farmId,todayDateText);
|
|
|
+ //耳标在线率
|
|
|
+ BigDecimal eartagRateBd= new BigDecimal(eartagOnlineSum).divide(new BigDecimal(eartagTotal),1,BigDecimal.ROUND_HALF_UP);
|
|
|
+ eartagOnlineRate = Float.parseFloat(eartagRateBd.toString());
|
|
|
+ }
|
|
|
//
|
|
|
EartarFarmAllStatusEntity farmAllStatusEntity = eartagFarmAllStatusRepo.getOneByFarmIdAndCreateDate(farmId,todayDateText);
|
|
|
if(farmAllStatusEntity == null){
|
|
@@ -527,11 +541,13 @@ public class DeviceServiceImpl implements IDeviceService {
|
|
|
Timestamp heartbeatLastTime = null;
|
|
|
Timestamp envtempFirstTime = nowTimestamp;
|
|
|
Timestamp envtempLastTime = nowTimestamp;
|
|
|
+ Timestamp firstTime = nowTimestamp;
|
|
|
+ Timestamp lastTime = nowTimestamp;
|
|
|
//{计算耳标总数}
|
|
|
// Integer eartagTotal = eartagService.getEartagRegTotalByFarmId(farmId);
|
|
|
Integer eartagTotal = 0;
|
|
|
//{新建设备在线统计并创建缓存}
|
|
|
- newDeviceOnline(deviceCode,alias,heartbeatTotal,envtempTotal,eartagTotal,envtemp,todayDate,farmId,heartbeatFirstTime,heartbeatLastTime,envtempFirstTime,envtempLastTime);
|
|
|
+ newDeviceOnline(deviceCode,alias,heartbeatTotal,envtempTotal,eartagTotal,envtemp,todayDate,farmId,heartbeatFirstTime,heartbeatLastTime,envtempFirstTime,envtempLastTime,firstTime,lastTime);
|
|
|
}else{
|
|
|
eartagDeviceOnlineEntity.setAlias(alias);
|
|
|
int envtempTotal = eartagDeviceOnlineEntity.getEnvtempTotal();
|
|
@@ -541,6 +557,10 @@ public class DeviceServiceImpl implements IDeviceService {
|
|
|
eartagDeviceOnlineEntity.setEnvtempFirstTime(nowTimestamp);
|
|
|
}
|
|
|
eartagDeviceOnlineEntity.setEnvtempLastTime(nowTimestamp);
|
|
|
+ if(eartagDeviceOnlineEntity.getFirstTime() == null){
|
|
|
+ eartagDeviceOnlineEntity.setFirstTime(nowTimestamp);
|
|
|
+ }
|
|
|
+ eartagDeviceOnlineEntity.setLastTime(nowTimestamp);
|
|
|
eartagDeviceOnlineRepo.saveAndFlush(eartagDeviceOnlineEntity);
|
|
|
//更新设备在线缓存数据
|
|
|
cacheService.putDeviceInOnline(deviceCode,eartagDeviceOnlineEntity);
|
|
@@ -557,7 +577,7 @@ public class DeviceServiceImpl implements IDeviceService {
|
|
|
* @Date : 2022/3/14
|
|
|
* @Time : 21:23
|
|
|
*/
|
|
|
- private void newDeviceOnline(String deviceCode, String alias, Integer heartbeatTotal, Integer envtempTotal, Integer eartagTotal, java.sql.Date todayDate, String farmId, Timestamp heartbeatFirstTime, Timestamp heartbeatLastTime, Timestamp envtempFirstTime, Timestamp envtempLastTime) {
|
|
|
+ private void newDeviceOnline(String deviceCode, String alias, Integer heartbeatTotal, Integer envtempTotal, Integer eartagTotal, java.sql.Date todayDate, String farmId, Timestamp heartbeatFirstTime, Timestamp heartbeatLastTime, Timestamp envtempFirstTime, Timestamp envtempLastTime, Timestamp firstTime, Timestamp lastTime) {
|
|
|
EartagDeviceOnlineEntity newEartagDeviceOnlineEntity = new EartagDeviceOnlineEntity();
|
|
|
newEartagDeviceOnlineEntity.setDeviceCode(deviceCode);
|
|
|
newEartagDeviceOnlineEntity.setAlias(alias);
|
|
@@ -570,6 +590,8 @@ public class DeviceServiceImpl implements IDeviceService {
|
|
|
newEartagDeviceOnlineEntity.setHeartbeatLastTime(heartbeatLastTime);
|
|
|
newEartagDeviceOnlineEntity.setEnvtempFirstTime(envtempFirstTime);
|
|
|
newEartagDeviceOnlineEntity.setEnvtempLastTime(envtempLastTime);
|
|
|
+ newEartagDeviceOnlineEntity.setFirstTime(firstTime);
|
|
|
+ newEartagDeviceOnlineEntity.setLastTime(lastTime);
|
|
|
eartagDeviceOnlineRepo.saveAndFlush(newEartagDeviceOnlineEntity);
|
|
|
//将新建的设备在线数据更新到设备在线缓存
|
|
|
cacheService.putDeviceInOnline(deviceCode,newEartagDeviceOnlineEntity);
|
|
@@ -585,7 +607,7 @@ public class DeviceServiceImpl implements IDeviceService {
|
|
|
* @Date : 2022/3/14
|
|
|
* @Time : 14:27
|
|
|
*/
|
|
|
- private void newDeviceOnline(String deviceCode, String alias, Integer heartbeatTotal, Integer envtempTotal, Integer eartagTotal, String temp, java.sql.Date todayDate, String farmId, Timestamp heartbeatFirstTime, Timestamp heartbeatLastTime, Timestamp envtempFirstTime, Timestamp envtempLastTime) {
|
|
|
+ private void newDeviceOnline(String deviceCode, String alias, Integer heartbeatTotal, Integer envtempTotal, Integer eartagTotal, String temp, java.sql.Date todayDate, String farmId, Timestamp heartbeatFirstTime, Timestamp heartbeatLastTime, Timestamp envtempFirstTime, Timestamp envtempLastTime, Timestamp firstTime, Timestamp lastTime) {
|
|
|
EartagDeviceOnlineEntity newEartagDeviceOnlineEntity = new EartagDeviceOnlineEntity();
|
|
|
newEartagDeviceOnlineEntity.setDeviceCode(deviceCode);
|
|
|
newEartagDeviceOnlineEntity.setAlias(alias);
|
|
@@ -599,6 +621,8 @@ public class DeviceServiceImpl implements IDeviceService {
|
|
|
newEartagDeviceOnlineEntity.setHeartbeatLastTime(heartbeatLastTime);
|
|
|
newEartagDeviceOnlineEntity.setEnvtempFirstTime(envtempFirstTime);
|
|
|
newEartagDeviceOnlineEntity.setEnvtempLastTime(envtempLastTime);
|
|
|
+ newEartagDeviceOnlineEntity.setFirstTime(firstTime);
|
|
|
+ newEartagDeviceOnlineEntity.setLastTime(lastTime);
|
|
|
eartagDeviceOnlineRepo.saveAndFlush(newEartagDeviceOnlineEntity);
|
|
|
//将新建的设备在线数据更新到设备在线缓存
|
|
|
cacheService.putDeviceInOnline(deviceCode,newEartagDeviceOnlineEntity);
|
|
@@ -705,15 +729,20 @@ public class DeviceServiceImpl implements IDeviceService {
|
|
|
* @Time : 14:39
|
|
|
*/
|
|
|
@Override
|
|
|
- public void saveDeviceTemp(JSONObject dataJo, java.sql.Date todayDate) {
|
|
|
+ public void saveDeviceTemp(JSONObject dataJo, java.sql.Date todayDate, Timestamp nowTimestamp) throws ParseException {
|
|
|
+ DateUtil dateUtil = new DateUtil();
|
|
|
+ MathUtil mathUtil = new MathUtil();
|
|
|
String device = dataJo.getString("device");
|
|
|
+ String askTime = dateUtil.rebuildDateTime(dataJo.getString("askTime"));
|
|
|
String temp = dataJo.getString("temp");
|
|
|
EartagEnvEntity envEntity = new EartagEnvEntity();
|
|
|
envEntity.setDeviceCode(device);
|
|
|
envEntity.setTemp1(Integer.parseInt(temp));
|
|
|
- envEntity.setTemp2(0F);
|
|
|
- envEntity.setAddTime(new Timestamp(new Date().getTime()));
|
|
|
+ envEntity.setTemp2(Float.parseFloat(mathUtil.countEnvtemp(temp,2)));
|
|
|
+ envEntity.setAddTime(nowTimestamp);
|
|
|
+ envEntity.setAskTime(new Timestamp(dateUtil.parseDateTime(askTime).getTime()));
|
|
|
envEntity.setCreateDate(todayDate);
|
|
|
+ envEntity.setAskDate(new java.sql.Date(dateUtil.parseDate(dateUtil.getAskDate(dataJo.getString("askTime"))).getTime()));
|
|
|
envRepo.saveAndFlush(envEntity);
|
|
|
}
|
|
|
|