diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/Terminals.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/Terminals.java
index d7045c8..07f98c1 100644
--- a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/Terminals.java
+++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/Terminals.java
@@ -41,6 +41,8 @@ public class Terminals implements Serializable {
private Date updateTime;
+ private Long lastheartbeat;
+
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/DyLineTreeListModel.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/DyLineTreeListModel.java
index ccf396f..e8042ec 100644
--- a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/DyLineTreeListModel.java
+++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/DyLineTreeListModel.java
@@ -69,6 +69,9 @@ public class DyLineTreeListModel implements Serializable {
@ApiModelProperty(value = "装置型号", example = "型号型号")
private String model;
+ @ApiModelProperty(value = "在线状态", example = "0--掉线1--在线")
+ private Integer onlinestatus;
+
}
}
diff --git a/xymanager_dao/src/main/resources/mappers/DyLevelDao.xml b/xymanager_dao/src/main/resources/mappers/DyLevelDao.xml
index 02a6099..5c2e7d1 100644
--- a/xymanager_dao/src/main/resources/mappers/DyLevelDao.xml
+++ b/xymanager_dao/src/main/resources/mappers/DyLevelDao.xml
@@ -26,6 +26,7 @@
+
@@ -61,9 +62,11 @@
y.cmdid as cmdid,
y.equip_name as equip_name,
y.display_name as display_name,
- y.model as model
- from ((dy_level z join `lines` x on z.id = x.dy_level_id and x.status = #{status} and z.status = #{status})
- join terminals y on x.id = y.line_id and y.status = #{status})
+ y.model as model,
+ f.last_heartbeat as last_heartbeat
+ from (((dy_level z left join `lines` x on z.id = x.dy_level_id and x.status = #{status} and z.status = #{status})
+ left join terminals y on x.id = y.line_id and y.status = #{status})
+ left join terminal_status f on f.term_id = y.id)
diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/DyLevelServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/DyLevelServiceImpl.java
index f41c3db..cb428c9 100644
--- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/DyLevelServiceImpl.java
+++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/DyLevelServiceImpl.java
@@ -2,6 +2,8 @@ package com.shxy.xymanager_service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUnit;
import com.shxy.xymanager_common.bean.ServiceBody;
import com.shxy.xymanager_common.dto.DyLineAndTerminalDto;
import com.shxy.xymanager_common.entity.DyLevel;
@@ -10,6 +12,7 @@ import com.shxy.xymanager_common.enums.CommonStatus;
import com.shxy.xymanager_common.exception.Asserts;
import com.shxy.xymanager_common.model.DyLineTreeListModel;
import com.shxy.xymanager_common.model.DyListModel;
+import com.shxy.xymanager_common.util.MyDateUtils;
import com.shxy.xymanager_common.vo.TerminalIdVo;
import com.shxy.xymanager_dao.dao.DyLevelDao;
import com.shxy.xymanager_service.service.DyLevelService;
@@ -17,6 +20,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
@@ -48,6 +52,15 @@ public class DyLevelServiceImpl implements DyLevelService {
for (int j = 0; j < beans.get(i).getList().size(); j++) {
for (int k = 0; k < beans.get(i).getList().get(j).getList().size(); k++) {
beans.get(i).getList().get(j).getList().get(k).setName(list.get(i).getList().get(j).getList().get(k).getDisplayName());
+ Long lastheartbeat = list.get(i).getList().get(j).getList().get(k).getLastheartbeat();
+ BigInteger time = MyDateUtils.TimeSecond2MillSecond(lastheartbeat);
+ DateTime date = MyDateUtils.date(time.longValue());
+ long between = MyDateUtils.between(MyDateUtils.getNowDate(), date, DateUnit.MINUTE);
+ if (between > 30) {
+ beans.get(i).getList().get(j).getList().get(k).setOnlinestatus(CommonStatus.DELETE.value());
+ } else {
+ beans.get(i).getList().get(j).getList().get(k).setOnlinestatus(CommonStatus.EFFECTIVE.value());
+ }
}
}
}