diff --git a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalController.java b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalController.java index 3ab8f65..0acba34 100644 --- a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalController.java +++ b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalController.java @@ -47,7 +47,7 @@ public class TerminalController extends BaseController { @Log(title = "获取绘制图标", type = "查询") public ResponseReult getCoordinate(@RequestHeader HttpHeaders headers, @RequestBody @Validated MarkReqVo vo) { String requestIp = HeaderUtil.getRequestIp(headers); - ServiceBody serviceBody = terminalService.getCoordinate(requestIp,vo); + ServiceBody serviceBody = terminalService.getCoordinate(requestIp, vo); if (serviceBody.getCode() == ServiceStatus.SUCCESS) { return ResponseReult.success(serviceBody.getData()); } else { @@ -198,4 +198,17 @@ public class TerminalController extends BaseController { } } + @ApiOperation(value = "获取装置在线状态", notes = "获取装置在线状态", httpMethod = "POST") + @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")}) + @RequestMapping("/getTermStatus") + @Log(title = "获取装置在线状态", type = "查询") + public ResponseReult getTermStatus(@RequestParam("termId") @Validated Integer termId) { + ServiceBody serviceBody = terminalService.getTermStatus(termId); + if (serviceBody.getCode() == ServiceStatus.SUCCESS) { + return ResponseReult.success(serviceBody.getData()); + } else { + return ResponseReult.error(serviceBody.getCode(), serviceBody.getMsg()); + } + } + } diff --git a/xymanager_admin/src/main/resources/application-test.yml b/xymanager_admin/src/main/resources/application-test.yml index f4c0f13..c17658e 100644 --- a/xymanager_admin/src/main/resources/application-test.yml +++ b/xymanager_admin/src/main/resources/application-test.yml @@ -185,7 +185,7 @@ system: address: http://23.56.100.12 session: expire_time: 3600 - open_expire_time: 1800 + open_expire_time: 30 heart: time: 30 rsa: diff --git a/xymanager_admin/src/main/resources/log4j2.xml b/xymanager_admin/src/main/resources/log4j2.xml index ccd427f..afbf5e4 100644 --- a/xymanager_admin/src/main/resources/log4j2.xml +++ b/xymanager_admin/src/main/resources/log4j2.xml @@ -21,7 +21,7 @@ value="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight{%-5level}[%thread] %style{%logger{36}}{cyan} : %msg%n"/> - + diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TermStatusModel.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TermStatusModel.java new file mode 100644 index 0000000..f647d06 --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TermStatusModel.java @@ -0,0 +1,19 @@ +package com.shxy.xymanager_common.model; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * 装置在线状态 + */ +@Data +@ApiModel(value = "装置在线状态对象", description = "装置在线状态对象") +public class TermStatusModel implements Serializable { + + @ApiModelProperty(value = "是否在线", example = "123456") + private Boolean isonline; + +} diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalListModel.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalListModel.java index 3bc2e66..cbdc07c 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalListModel.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalListModel.java @@ -95,6 +95,9 @@ public class TerminalListModel implements Serializable { @ApiModelProperty(value = "最后一次心跳时间", example = "213") private BigInteger lastHeartbeat; + @ApiModelProperty(value = "是否在线", example = "213") + private boolean isonline; + @ApiModelProperty(value = "通道编号和名称", example = "213") private List list; diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalPhotosModel.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalPhotosModel.java index b4fd299..9e68a7f 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalPhotosModel.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalPhotosModel.java @@ -32,6 +32,9 @@ public class TerminalPhotosModel implements Serializable { @ApiModelProperty(value = "装置编号", example = "123456") private Integer termid; + @ApiModelProperty(value = "cmdid", example = "123456") + private String cmdid; + @ApiModelProperty(value = "装置显示名称", example = "123456") private String displayname; diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/util/HeaderUtil.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/HeaderUtil.java index ad00a6c..393b236 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/util/HeaderUtil.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/HeaderUtil.java @@ -19,7 +19,7 @@ public class HeaderUtil { private static String address; @Value("${system.address}") - public void setHost(String address) { + public void setAddress(String address) { HeaderUtil.address = address; } /** diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/util/TerminalUtils.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/TerminalUtils.java new file mode 100644 index 0000000..58d5db4 --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/TerminalUtils.java @@ -0,0 +1,51 @@ +package com.shxy.xymanager_common.util; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUnit; +import com.shxy.xymanager_common.entity.TerminalStatus; +import com.shxy.xymanager_common.entity.Terminals; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.math.BigInteger; +import java.util.Map; + +/** + * 执行指令 + * + * @author cy + */ +@Slf4j +@Component +public class TerminalUtils { + + private static Integer hearttime; + + + @Value("${heart.time}") + public void setHearttime(Integer time) { + TerminalUtils.hearttime = time; + } + + /** + * 判断装置是否在线 + * + * @param lastHeartbeat + */ + public static boolean judgeTerminalStatus(BigInteger lastHeartbeat) { + long time = MyDateUtils.TimeSecond2MillSecond(lastHeartbeat.longValue()); + DateTime date = MyDateUtils.date(time); + long between = MyDateUtils.between(MyDateUtils.getNowDate(), date, DateUnit.MINUTE); + if (between > hearttime) { + return false; + } else { + return true; + } + } + +} diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/VoiceCtrlVo.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/VoiceCtrlVo.java index 423a35a..1a492d6 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/VoiceCtrlVo.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/VoiceCtrlVo.java @@ -14,6 +14,10 @@ public class VoiceCtrlVo { @ApiModelProperty(value = "监测装置ID", example = "123455") private String cmdId; + @NotNull(message = "装置编号不能缺少") + @ApiModelProperty(value = "装置id", example = "123455") + private Integer termId; + @NotNull(message = "声光报警开关 0:关闭 1:开启") @ApiModelProperty(value = "声光报警开关", example = "0:关闭 1:开启") private short ctrl; diff --git a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalStatusDao.java b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalStatusDao.java index fd498b5..e01d4da 100644 --- a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalStatusDao.java +++ b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalStatusDao.java @@ -4,6 +4,8 @@ import com.shxy.xymanager_common.dto.TerminalsWithHeart; import com.shxy.xymanager_common.entity.TerminalStatus; import org.apache.ibatis.annotations.Param; +import java.util.List; + public interface TerminalStatusDao { int deleteByPrimaryKey(Integer termId); @@ -11,6 +13,8 @@ public interface TerminalStatusDao { int insertSelective(TerminalStatus record); + List selectAll(); + TerminalStatus selectByPrimaryKey(Integer termId); TerminalsWithHeart selectByCmdId(@Param("cmdid") String cmdid); diff --git a/xymanager_dao/src/main/resources/mappers/SysUserMapperDao.xml b/xymanager_dao/src/main/resources/mappers/SysUserMapperDao.xml index 9480b56..d6bf946 100644 --- a/xymanager_dao/src/main/resources/mappers/SysUserMapperDao.xml +++ b/xymanager_dao/src/main/resources/mappers/SysUserMapperDao.xml @@ -21,7 +21,7 @@ SELECT - user_id, + uid, user_name, `status` FROM @@ -54,8 +54,15 @@ where u.user_id = #{userId} - + select + id , + session_id, + user_name, + role, + expire_time + FROM + sys_user_session u where session_id = #{sessionid} @@ -130,7 +137,7 @@ create_time as createTime, role from sys_users - WHERE status = #{status} and role != 0 + WHERE status = #{status} and role != 0 and role != 3 order by create_time desc diff --git a/xymanager_dao/src/main/resources/mappers/TerminalStatusDao.xml b/xymanager_dao/src/main/resources/mappers/TerminalStatusDao.xml index 7bc336b..f8c39f4 100644 --- a/xymanager_dao/src/main/resources/mappers/TerminalStatusDao.xml +++ b/xymanager_dao/src/main/resources/mappers/TerminalStatusDao.xml @@ -44,17 +44,24 @@ + + + delete from terminal_status where term_id = #{termId,jdbcType=INTEGER} diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/cache/XyCache.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/cache/XyCache.java index 6711022..11ca528 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/cache/XyCache.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/cache/XyCache.java @@ -27,6 +27,8 @@ public class XyCache { public static Map globalParams = new HashMap(); + public static Map terminalStatusMap = new HashMap(); + @Autowired private LinesDao linesDao; @Autowired @@ -41,6 +43,8 @@ public class XyCache { private TerminalImgAlarmParamsDao terminalImgAlarmParamsDao; @Autowired private GlobalParamsDao globalParamsDao; + @Autowired + private TerminalStatusDao terminalStatusDao; @PostConstruct public void init() { @@ -53,6 +57,7 @@ public class XyCache { termchannelMapMap.clear(); alarmParamMap.clear(); globalParams.clear(); + terminalStatusMap.clear(); List lineAndDyNameDtos = linesDao.selectAll(CommonStatus.EFFECTIVE.value()); for (LineAndDyNameDto lineitem : lineAndDyNameDtos) { @@ -90,6 +95,11 @@ public class XyCache { globalParams.put(item.getParamName(), item.getParamValue()); } + List terminalStatuses = terminalStatusDao.selectAll(); + for (TerminalStatus item : terminalStatuses) { + terminalStatusMap.put(item.getTermId(), item); + } + } @PreDestroy diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/OpenServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/OpenServiceImpl.java index 9fc5b46..165ac34 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/OpenServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/OpenServiceImpl.java @@ -53,7 +53,7 @@ public class OpenServiceImpl implements OpenService { @Value("${session.open_expire_time}") - public BigInteger time; + public Integer time; @Value("${heart.time}") public Integer hearttime; @@ -68,6 +68,7 @@ public class OpenServiceImpl implements OpenService { public JSONObject cmaUserLogin(UserLoginVo vo) { JSONObject jsonObject = new JSONObject(); String username = vo.getUserName(); + String userPassword = vo.getPassWord(); SysUser sysUser = sysUserDao.selectByUserName(username); // 判断用户是否存在 if (BeanUtil.isEmpty(sysUser)) { @@ -80,7 +81,6 @@ public class OpenServiceImpl implements OpenService { jsonObject.putOpt("errcode", 2); jsonObject.putOpt("errmsg", "密码错误"); } - String userPassword = SecureUtil.md5(password); // 密码对比 if (!sysUser.getPassword().equals(userPassword)) { jsonObject.putOpt("errcode", 2); @@ -93,13 +93,13 @@ public class OpenServiceImpl implements OpenService { sysUserSession.setUserName(username); sysUserSession.setRole(sysUser.getRole()); sysUserSession.setSessionId(sessionId); - long expiretime = MyDateUtils.TimeMillSecond2Second(MyDateUtils.offsetMinute(date, 30)); + long expiretime = MyDateUtils.TimeMillSecond2Second(MyDateUtils.offsetMinute(date, time)); sysUserSession.setExpireTime(BigInteger.valueOf(expiretime)); sysUserMapperDao.insertOrUpdate(sysUserSession, date, date); jsonObject.set("errcode", 0); jsonObject.set("errmsg", "OK"); jsonObject.set("sessionid", sessionId); - jsonObject.set("keepingtime", 30); + jsonObject.set("keepingtime", time); return jsonObject; } diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TermSetServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TermSetServiceImpl.java index 557b62b..0e08ebf 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TermSetServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TermSetServiceImpl.java @@ -7,9 +7,11 @@ import com.shxy.xymanager_common.entity.Resolution; import com.shxy.xymanager_common.exception.Asserts; import com.shxy.xymanager_common.model.ResolutionModel; import com.shxy.xymanager_common.util.ProcessExecUtils; +import com.shxy.xymanager_common.util.TerminalUtils; import com.shxy.xymanager_common.vo.TerminalIdVo; import com.shxy.xymanager_common.vo.VoiceCtrlVo; import com.shxy.xymanager_dao.dao.TerminalResolutionDao; +import com.shxy.xymanager_service.cache.XyCache; import com.shxy.xymanager_service.service.TermSetService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -32,7 +34,6 @@ public class TermSetServiceImpl implements TermSetService { @Override public ServiceBody alarmMark(VoiceCtrlVo vo) { - String cmd =Constants.CMD+"voice --cmdid="+vo.getCmdId()+ " --ctrl="+ vo.getCtrl(); ProcessExecUtils.exec(cmd); return Asserts.success("设置成功"); diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalChannelServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalChannelServiceImpl.java index 2dcd903..d73fa1e 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalChannelServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalChannelServiceImpl.java @@ -17,9 +17,11 @@ import com.shxy.xymanager_common.model.TerminalAllChannelListModel; import com.shxy.xymanager_common.model.TerminalChannelListModel; import com.shxy.xymanager_common.model.TerminalChannelMapperListModel; import com.shxy.xymanager_common.page.PageUtils; +import com.shxy.xymanager_common.util.TerminalUtils; import com.shxy.xymanager_common.vo.*; import com.shxy.xymanager_dao.dao.TerminalChannelsDao; import com.shxy.xymanager_dao.dao.TerminalStatusDao; +import com.shxy.xymanager_service.cache.XyCache; import com.shxy.xymanager_service.service.TerminalChannelService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -166,8 +168,13 @@ public class TerminalChannelServiceImpl implements TerminalChannelService { */ @Override public ServiceBody getChannelByTermid(TerminalIdVo vo) { + Integer termId = vo.getTermid(); +// boolean b = TerminalUtils.judgeTerminalStatus(XyCache.terminalStatusMap, termId); +// if (!b) { +// Asserts.fail(100, "装置下线"); +// } TerminalChannelMapperListModel model = new TerminalChannelMapperListModel(); - List list = terminalChannelsDao.selectByTermid(vo.getTermid(), CommonStatus.EFFECTIVE.value()); + List list = terminalChannelsDao.selectByTermid(termId, CommonStatus.EFFECTIVE.value()); log.info("通道查出数据:{}", JSON.toJSONString(list)); boolean empty = CollectionUtil.isEmpty(list); if (empty) { @@ -176,7 +183,7 @@ public class TerminalChannelServiceImpl implements TerminalChannelService { List channelBeans = BeanUtil.copyToList(list, TerminalChannelMapperListModel.ChannelBean.class, CopyOptions.create().ignoreCase()); model.setList(channelBeans); } - TerminalStatus terminalStatus = terminalStatusDao.selectByPrimaryKey(vo.getTermid()); + TerminalStatus terminalStatus = terminalStatusDao.selectByPrimaryKey(termId); if (!BeanUtil.isEmpty(terminalStatus)) { model.setGpsstatus(terminalStatus.getGpsStatus()); } diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalGpsServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalGpsServiceImpl.java index 16db130..f9e3936 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalGpsServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalGpsServiceImpl.java @@ -96,8 +96,6 @@ public class TerminalGpsServiceImpl implements TerminalGpsService { TerminalPositions bean = terminalPositionsDao.selectByPrimaryKey(vo.getTermid()); Boolean hasNew = false; if (!BeanUtil.isEmpty(bean)) { - - model.setRadius(bean.getRadius()); model.setLongitude(bean.getLongitude()); model.setLatitude(bean.getLatitude()); diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalPhotoServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalPhotoServiceImpl.java index 919bc89..66b38e0 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalPhotoServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalPhotoServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateField; import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -18,10 +19,7 @@ import com.shxy.xymanager_common.enums.CommonStatus; import com.shxy.xymanager_common.exception.Asserts; import com.shxy.xymanager_common.model.*; import com.shxy.xymanager_common.page.PageUtils; -import com.shxy.xymanager_common.util.CmaUtil; -import com.shxy.xymanager_common.util.MyDateUtils; -import com.shxy.xymanager_common.util.ProcessExecUtils; -import com.shxy.xymanager_common.util.StringUtils; +import com.shxy.xymanager_common.util.*; import com.shxy.xymanager_common.vo.*; import com.shxy.xymanager_dao.dao.*; import com.shxy.xymanager_service.cache.XyCache; @@ -73,6 +71,8 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { @Value("${video.address}") private String videoaddress; + @Value("${heart.time}") + public Integer hearttime; /** * 根据装置id和通道id获取图片 @@ -354,8 +354,8 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { @Override public ServiceBody getLatestPhoto(TerminalPhotoVo vo) { - DateTime now = DateTime.now(); Integer termId = vo.getTermId(); + DateTime now = DateTime.now(); Map terminalMap = XyCache.terminalMap; Terminals terminals = terminalMap.get(termId); String cmdid = null; @@ -367,8 +367,10 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { ProcessExecUtils.exec(cmd); } return Asserts.success(now); + } + @Override public ServiceBody getReturnedPhoto(ReturnedPhotoVo vo) { Boolean hasNew = false; @@ -518,8 +520,8 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { lineid = terminals.getLineid(); photosBean.setLineid(lineid); photosBean.setDisplayname(terminals.getDisplayName()); + photosBean.setCmdid(terminals.getCmdid()); } - photosBean.setChannelid(channelid); photosBean.setChannnelname(termchannelMap.get(channelid).getChannelName()); diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalServiceImpl.java index a827421..91c55ca 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalServiceImpl.java @@ -14,6 +14,7 @@ import com.shxy.xymanager_common.dto.PhotoMarkDto; import com.shxy.xymanager_common.dto.TerminalInfoDto; import com.shxy.xymanager_common.dto.TerminalsAndLineAndChannelDto; import com.shxy.xymanager_common.entity.TerminalChannelMapper; +import com.shxy.xymanager_common.entity.TerminalStatus; import com.shxy.xymanager_common.entity.Terminals; import com.shxy.xymanager_common.enums.CommonStatus; import com.shxy.xymanager_common.enums.GloableParamsType; @@ -23,6 +24,7 @@ import com.shxy.xymanager_common.page.PageUtils; import com.shxy.xymanager_common.util.MyDateUtils; import com.shxy.xymanager_common.util.ProcessExecUtils; import com.shxy.xymanager_common.util.StringUtils; +import com.shxy.xymanager_common.util.TerminalUtils; import com.shxy.xymanager_common.vo.*; import com.shxy.xymanager_dao.dao.*; import com.shxy.xymanager_service.cache.XyCache; @@ -63,9 +65,15 @@ public class TerminalServiceImpl implements TerminalService { @Autowired DyLevelDao dyLevelDao; + @Autowired + TerminalStatusDao terminalStatusDao; + @Value("${photo.address}") private String photoaddress; + @Value("${heart.time}") + public Integer hearttime; + /** * 获取所有设备列表 @@ -90,6 +98,10 @@ public class TerminalServiceImpl implements TerminalService { model.setList(new ArrayList<>()); } else { List beans = BeanUtil.copyToList(list2, TerminalListModel.TerminalsBean.class, CopyOptions.create().ignoreCase()); + for (TerminalListModel.TerminalsBean item : beans) { + boolean b = TerminalUtils.judgeTerminalStatus(item.getLastHeartbeat()); + item.setIsonline(b); + } model.setList(beans); } } else { @@ -305,7 +317,7 @@ public class TerminalServiceImpl implements TerminalService { long time = MyDateUtils.TimeSecond2MillSecond(lastheartbeat); DateTime date = MyDateUtils.date(time); long between = MyDateUtils.between(MyDateUtils.getNowDate(), date, DateUnit.MINUTE); - if (between > 30) { + if (between > hearttime) { terminalsWithHeart.setOnlinestatus(CommonStatus.DELETE.value()); } else { terminalsWithHeart.setOnlinestatus(CommonStatus.EFFECTIVE.value()); @@ -358,12 +370,10 @@ public class TerminalServiceImpl implements TerminalService { terminalPhotoDao.updatePhotoMark(vo); } else { terminalPhotoDao.addPhotoMark(vo); - } if (CollectionUtil.isNotEmpty(vo.getList())) { terminalPhotoDao.addPhotoMarkPath(vo.getList(), vo.getId()); } - return Asserts.success("保存成功"); } @@ -394,5 +404,25 @@ public class TerminalServiceImpl implements TerminalService { } return Asserts.success(model); } + + /** + * 获取装置在线状态 + * + * @param termId + * @return + */ + @Override + public ServiceBody getTermStatus(Integer termId) { + TermStatusModel model = new TermStatusModel(); + TerminalStatus terminalStatus = terminalStatusDao.selectByPrimaryKey(termId); + if (terminalStatus != null) { + BigInteger lastHeartbeat = terminalStatus.getLastHeartbeat(); + boolean b = TerminalUtils.judgeTerminalStatus(lastHeartbeat); + model.setIsonline(b); + } else { + model.setIsonline(false); + } + return Asserts.success(model); + } } diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalService.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalService.java index 51ad0b1..ea65069 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalService.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalService.java @@ -90,4 +90,10 @@ public interface TerminalService { ServiceBody getCoordinate(String requestIp, MarkReqVo vo); + /** + * 获取装置在线状态 + * @param termId + * @return + */ + ServiceBody getTermStatus(Integer termId); }