From 5d498aa208a5d4207ed0f71c6f36de7169137cd2 Mon Sep 17 00:00:00 2001 From: huangfeng Date: Wed, 24 Apr 2024 11:05:20 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E7=85=A7=E7=89=87?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xymanager_common/model/PhotoDayModel.java | 9 +- .../shxy/xymanager_common/util/DateUtil.java | 98 +++++++++++++++++++ .../impl/TerminalPhotoServiceImpl.java | 11 ++- 3 files changed, 112 insertions(+), 6 deletions(-) create mode 100644 xymanager_common/src/main/java/com/shxy/xymanager_common/util/DateUtil.java diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/PhotoDayModel.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/PhotoDayModel.java index d12434c..6a75d54 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/PhotoDayModel.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/PhotoDayModel.java @@ -4,15 +4,16 @@ package com.shxy.xymanager_common.model; import lombok.Data; import java.io.Serializable; +import java.util.Date; @Data public class PhotoDayModel implements Serializable { - private long firstPhotoTime; - - private long lastRecvTime; - + private Date firstPhotoTime; + private Date lastPhotoTime; + private Date lastRecvTime; + private long totalDays; private long photoCount; } diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/util/DateUtil.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/DateUtil.java new file mode 100644 index 0000000..2ef37b4 --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/DateUtil.java @@ -0,0 +1,98 @@ +package com.shxy.xymanager_common.util; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.ZoneId; +import java.time.temporal.ChronoUnit; +import java.util.Calendar; +import java.util.Date; + +public class DateUtil { + public final static String defaultDatePattern = "yyyy-MM-dd HH:mm:ss"; + + /** + * 获得默认的 date pattern + */ + public static String getDatePattern() { + return defaultDatePattern; + } + + /** + * 使用预设Format格式化Date成字符串 + */ + public static String format(Date date) { + return format(date, getDatePattern()); + } + + /** + * 使用参数Format格式化Date成字符串 + */ + public static String format(Date date, String pattern) { + String returnValue = ""; + + if (date != null) { + SimpleDateFormat df = new SimpleDateFormat(pattern); + returnValue = df.format(date); + } + + return (returnValue); + } + + /** + * 使用预设格式将字符串转为Date + */ + public static Date parse(String strDate) throws ParseException { + return parse(strDate, getDatePattern()); + } + + /** + * 使用参数Format将字符串转为Date + */ + public static Date parse(String strDate, String pattern) throws ParseException { + SimpleDateFormat df = new SimpleDateFormat(pattern); + return df.parse(strDate); + } + + public static Date getTodayZero() throws ParseException { + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + String str = df.format(new Date()); + return df.parse(str); + } + + public static Date getDayZero(Date date) throws ParseException { + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + String str = df.format(date); + return df.parse(str); + } + + public static Date getMonthZero() throws ParseException { + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM"); + String str = df.format(new Date()); + return df.parse(str); + } + + /** + * 在日期上增加数个整日(n为负数则是减少数日) + */ + public static Date addDay(Date date, int n) { + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + cal.add(Calendar.DAY_OF_MONTH, n); + return cal.getTime(); + } + + public static Date addMonth(Date date, int n) { + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + cal.add(Calendar.MONTH, n); + return cal.getTime(); + } + + public static long getDifferenceInDays(Date startDate, Date endDate) { + LocalDate startLocalDate = startDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + LocalDate endLocalDate = endDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + return ChronoUnit.DAYS.between(startLocalDate, endLocalDate); + } + +} 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 9449160..6bbcb8f 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 @@ -817,12 +817,19 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { example.setOrderByClause("photo_time desc"); PageHelper.startPage(1, 1); List list = terminalPhotoDao.selectByExample(example); - result.setLastRecvTime(list.get(0).getRecvTime().longValue()); + long lastrecv = list.get(0).getRecvTime().longValue(); + result.setLastRecvTime(new Date(lastrecv * 1000)); + long lastphoto = list.get(0).getPhotoTime().longValue(); + result.setLastPhotoTime(new Date(lastphoto * 1000)); example.setOrderByClause("photo_time asc"); PageHelper.startPage(1, 1); list = terminalPhotoDao.selectByExample(example); - result.setFirstPhotoTime(list.get(0).getPhotoTime().longValue()); + long firstphoto = list.get(0).getPhotoTime().longValue(); + result.setFirstPhotoTime(new Date(firstphoto * 1000)); + + long totalDays = DateUtil.getDifferenceInDays(result.getFirstPhotoTime(), result.getLastPhotoTime()); + result.setTotalDays(totalDays); } return result; } From 1381c35598457eacb4ddaac0667897840ef116f1 Mon Sep 17 00:00:00 2001 From: huangfeng Date: Wed, 24 Apr 2024 13:18:17 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E9=87=8D?= =?UTF-8?q?=E5=90=AF=E6=AC=A1=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/TerminalExtController.java | 4 +++ .../entity/View_Dy_Line_Tower_Terminals.java | 1 + .../TerminalBasicInfoHistoryServiceImpl.java | 31 +++++++++++++++++++ .../TerminalBasicInfoHistoryService.java | 5 +++ 4 files changed, 41 insertions(+) create mode 100644 xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalBasicInfoHistoryServiceImpl.java create mode 100644 xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalBasicInfoHistoryService.java diff --git a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalExtController.java b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalExtController.java index 7df8913..ce17261 100644 --- a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalExtController.java +++ b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalExtController.java @@ -43,6 +43,8 @@ public class TerminalExtController extends BaseController { TerminalStatusDao terminalStatusDao; @Resource TerminalPositionsDao terminalPositionsDao; + @Resource + TerminalBasicInfoHistoryService infoHistoryService; @GetMapping("listWithAll") @@ -66,6 +68,8 @@ public class TerminalExtController extends BaseController { terminal.setWorkingStatus(status); TerminalPositions positions = terminalPositionsDao.selectByPrimaryKey(terminal.getId()); terminal.setPositions(positions); + long rebootCount = infoHistoryService.count(terminal.getId(), start, end); + terminal.setRebootCount(rebootCount); } } return ResponseReult.success(result); diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/View_Dy_Line_Tower_Terminals.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/View_Dy_Line_Tower_Terminals.java index 3a7586d..2d420ba 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/View_Dy_Line_Tower_Terminals.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/View_Dy_Line_Tower_Terminals.java @@ -126,4 +126,5 @@ public class View_Dy_Line_Tower_Terminals implements Serializable { private PhotoDayModel photoInfo; private TerminalStatus workingStatus; private TerminalPositions positions; + private Long rebootCount; } \ No newline at end of file diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalBasicInfoHistoryServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalBasicInfoHistoryServiceImpl.java new file mode 100644 index 0000000..a4350c9 --- /dev/null +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalBasicInfoHistoryServiceImpl.java @@ -0,0 +1,31 @@ +package com.shxy.xymanager_service.impl; + +import com.shxy.xymanager_common.entity.TerminalBasicInfoHistoryExample; +import com.shxy.xymanager_dao.dao.TerminalBasicInfoHistoryDao; +import com.shxy.xymanager_service.service.TerminalBasicInfoHistoryService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +@Slf4j +public class TerminalBasicInfoHistoryServiceImpl implements TerminalBasicInfoHistoryService { + + @Resource + TerminalBasicInfoHistoryDao terminalBasicInfoHistoryDao; + + @Override + public long count(Integer termId, Long start, Long end) { + TerminalBasicInfoHistoryExample example = new TerminalBasicInfoHistoryExample(); + TerminalBasicInfoHistoryExample.Criteria criteria = example.createCriteria(); + criteria.andTermIdEqualTo(termId); + if (start != null) { + criteria.andUpdateTimeGreaterThanOrEqualTo(start); + } + if (end != null) { + criteria.andUpdateTimeLessThan(end); + } + return terminalBasicInfoHistoryDao.countByExample(example); + } +} diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalBasicInfoHistoryService.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalBasicInfoHistoryService.java new file mode 100644 index 0000000..0c3e504 --- /dev/null +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalBasicInfoHistoryService.java @@ -0,0 +1,5 @@ +package com.shxy.xymanager_service.service; + +public interface TerminalBasicInfoHistoryService { + long count(Integer termId, Long start, Long end); +} From bbee2fdf963fe2125e425f2b99d9566d727c9fee Mon Sep 17 00:00:00 2001 From: huangfeng Date: Wed, 24 Apr 2024 13:29:32 +0800 Subject: [PATCH 3/3] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E5=BF=83?= =?UTF-8?q?=E8=B7=B3=E5=8E=86=E5=8F=B2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/TerminalExtController.java | 10 + .../entity/TerminalHeartbeatHistory.java | 135 +++++ .../TerminalHeartbeatHistoryExample.java | 551 ++++++++++++++++++ .../dao/TerminalHeartbeatHistoryMapper.java | 65 +++ .../TerminalHeartbeatHistoryMapper.xml | 208 +++++++ .../impl/HeartbeatServiceImpl.java | 27 + .../service/HeartbeatService.java | 11 + 7 files changed, 1007 insertions(+) create mode 100644 xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalHeartbeatHistory.java create mode 100644 xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalHeartbeatHistoryExample.java create mode 100644 xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalHeartbeatHistoryMapper.java create mode 100644 xymanager_dao/src/main/resources/mappers/TerminalHeartbeatHistoryMapper.xml create mode 100644 xymanager_service/src/main/java/com/shxy/xymanager_service/impl/HeartbeatServiceImpl.java create mode 100644 xymanager_service/src/main/java/com/shxy/xymanager_service/service/HeartbeatService.java diff --git a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalExtController.java b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalExtController.java index ce17261..b7ac21e 100644 --- a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalExtController.java +++ b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalExtController.java @@ -21,6 +21,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.validation.constraints.NotNull; +import java.util.List; @RestController @Api(tags = {"装置附带额外信息接口"}) @@ -45,6 +46,8 @@ public class TerminalExtController extends BaseController { TerminalPositionsDao terminalPositionsDao; @Resource TerminalBasicInfoHistoryService infoHistoryService; + @Resource + HeartbeatService heartbeatService; @GetMapping("listWithAll") @@ -146,6 +149,13 @@ public class TerminalExtController extends BaseController { return ResponseReult.success(result); } + @GetMapping("heartbeat") + @ApiOperation("心跳历史") + public ResponseReult> heartbeat(Integer termId) { + List list = heartbeatService.listAll(termId); + return ResponseReult.success(list); + } + private TableDataInfo getTerminalPage(Integer dyId, Integer lineId, Integer towerId, String search, Integer pageNum, Integer pageSize) { TerminalSelectVo vo = new TerminalSelectVo(); diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalHeartbeatHistory.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalHeartbeatHistory.java new file mode 100644 index 0000000..9edc3db --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalHeartbeatHistory.java @@ -0,0 +1,135 @@ +package com.shxy.xymanager_common.entity; + +public class TerminalHeartbeatHistory { + /** + * + * This field was generated by MyBatis Generator. + * This field corresponds to the database column terminal_heartbeat_history.term_id + * + * @mbg.generated + */ + private Integer termId; + + /** + * + * This field was generated by MyBatis Generator. + * This field corresponds to the database column terminal_heartbeat_history.heartbeat_time + * + * @mbg.generated + */ + private Long heartbeatTime; + + /** + * + * This field was generated by MyBatis Generator. + * This field corresponds to the database column terminal_heartbeat_history.heartbeat_ip + * + * @mbg.generated + */ + private String heartbeatIp; + + /** + * + * This field was generated by MyBatis Generator. + * This field corresponds to the database column terminal_heartbeat_history.heartbeat_port + * + * @mbg.generated + */ + private Short heartbeatPort; + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column terminal_heartbeat_history.term_id + * + * @return the value of terminal_heartbeat_history.term_id + * + * @mbg.generated + */ + public Integer getTermId() { + return termId; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column terminal_heartbeat_history.term_id + * + * @param termId the value for terminal_heartbeat_history.term_id + * + * @mbg.generated + */ + public void setTermId(Integer termId) { + this.termId = termId; + } + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column terminal_heartbeat_history.heartbeat_time + * + * @return the value of terminal_heartbeat_history.heartbeat_time + * + * @mbg.generated + */ + public Long getHeartbeatTime() { + return heartbeatTime; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column terminal_heartbeat_history.heartbeat_time + * + * @param heartbeatTime the value for terminal_heartbeat_history.heartbeat_time + * + * @mbg.generated + */ + public void setHeartbeatTime(Long heartbeatTime) { + this.heartbeatTime = heartbeatTime; + } + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column terminal_heartbeat_history.heartbeat_ip + * + * @return the value of terminal_heartbeat_history.heartbeat_ip + * + * @mbg.generated + */ + public String getHeartbeatIp() { + return heartbeatIp; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column terminal_heartbeat_history.heartbeat_ip + * + * @param heartbeatIp the value for terminal_heartbeat_history.heartbeat_ip + * + * @mbg.generated + */ + public void setHeartbeatIp(String heartbeatIp) { + this.heartbeatIp = heartbeatIp; + } + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column terminal_heartbeat_history.heartbeat_port + * + * @return the value of terminal_heartbeat_history.heartbeat_port + * + * @mbg.generated + */ + public Short getHeartbeatPort() { + return heartbeatPort; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column terminal_heartbeat_history.heartbeat_port + * + * @param heartbeatPort the value for terminal_heartbeat_history.heartbeat_port + * + * @mbg.generated + */ + public void setHeartbeatPort(Short heartbeatPort) { + this.heartbeatPort = heartbeatPort; + } +} \ No newline at end of file diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalHeartbeatHistoryExample.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalHeartbeatHistoryExample.java new file mode 100644 index 0000000..64ee1f7 --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalHeartbeatHistoryExample.java @@ -0,0 +1,551 @@ +package com.shxy.xymanager_common.entity; + +import java.util.ArrayList; +import java.util.List; + +public class TerminalHeartbeatHistoryExample { + /** + * This field was generated by MyBatis Generator. + * This field corresponds to the database table terminal_heartbeat_history + * + * @mbg.generated + */ + protected String orderByClause; + + /** + * This field was generated by MyBatis Generator. + * This field corresponds to the database table terminal_heartbeat_history + * + * @mbg.generated + */ + protected boolean distinct; + + /** + * This field was generated by MyBatis Generator. + * This field corresponds to the database table terminal_heartbeat_history + * + * @mbg.generated + */ + protected List oredCriteria; + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table terminal_heartbeat_history + * + * @mbg.generated + */ + public TerminalHeartbeatHistoryExample() { + oredCriteria = new ArrayList<>(); + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table terminal_heartbeat_history + * + * @mbg.generated + */ + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table terminal_heartbeat_history + * + * @mbg.generated + */ + public String getOrderByClause() { + return orderByClause; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table terminal_heartbeat_history + * + * @mbg.generated + */ + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table terminal_heartbeat_history + * + * @mbg.generated + */ + public boolean isDistinct() { + return distinct; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table terminal_heartbeat_history + * + * @mbg.generated + */ + public List getOredCriteria() { + return oredCriteria; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table terminal_heartbeat_history + * + * @mbg.generated + */ + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table terminal_heartbeat_history + * + * @mbg.generated + */ + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table terminal_heartbeat_history + * + * @mbg.generated + */ + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table terminal_heartbeat_history + * + * @mbg.generated + */ + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table terminal_heartbeat_history + * + * @mbg.generated + */ + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + /** + * This class was generated by MyBatis Generator. + * This class corresponds to the database table terminal_heartbeat_history + * + * @mbg.generated + */ + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andTermIdIsNull() { + addCriterion("term_id is null"); + return (Criteria) this; + } + + public Criteria andTermIdIsNotNull() { + addCriterion("term_id is not null"); + return (Criteria) this; + } + + public Criteria andTermIdEqualTo(Integer value) { + addCriterion("term_id =", value, "termId"); + return (Criteria) this; + } + + public Criteria andTermIdNotEqualTo(Integer value) { + addCriterion("term_id <>", value, "termId"); + return (Criteria) this; + } + + public Criteria andTermIdGreaterThan(Integer value) { + addCriterion("term_id >", value, "termId"); + return (Criteria) this; + } + + public Criteria andTermIdGreaterThanOrEqualTo(Integer value) { + addCriterion("term_id >=", value, "termId"); + return (Criteria) this; + } + + public Criteria andTermIdLessThan(Integer value) { + addCriterion("term_id <", value, "termId"); + return (Criteria) this; + } + + public Criteria andTermIdLessThanOrEqualTo(Integer value) { + addCriterion("term_id <=", value, "termId"); + return (Criteria) this; + } + + public Criteria andTermIdIn(List values) { + addCriterion("term_id in", values, "termId"); + return (Criteria) this; + } + + public Criteria andTermIdNotIn(List values) { + addCriterion("term_id not in", values, "termId"); + return (Criteria) this; + } + + public Criteria andTermIdBetween(Integer value1, Integer value2) { + addCriterion("term_id between", value1, value2, "termId"); + return (Criteria) this; + } + + public Criteria andTermIdNotBetween(Integer value1, Integer value2) { + addCriterion("term_id not between", value1, value2, "termId"); + return (Criteria) this; + } + + public Criteria andHeartbeatTimeIsNull() { + addCriterion("heartbeat_time is null"); + return (Criteria) this; + } + + public Criteria andHeartbeatTimeIsNotNull() { + addCriterion("heartbeat_time is not null"); + return (Criteria) this; + } + + public Criteria andHeartbeatTimeEqualTo(Long value) { + addCriterion("heartbeat_time =", value, "heartbeatTime"); + return (Criteria) this; + } + + public Criteria andHeartbeatTimeNotEqualTo(Long value) { + addCriterion("heartbeat_time <>", value, "heartbeatTime"); + return (Criteria) this; + } + + public Criteria andHeartbeatTimeGreaterThan(Long value) { + addCriterion("heartbeat_time >", value, "heartbeatTime"); + return (Criteria) this; + } + + public Criteria andHeartbeatTimeGreaterThanOrEqualTo(Long value) { + addCriterion("heartbeat_time >=", value, "heartbeatTime"); + return (Criteria) this; + } + + public Criteria andHeartbeatTimeLessThan(Long value) { + addCriterion("heartbeat_time <", value, "heartbeatTime"); + return (Criteria) this; + } + + public Criteria andHeartbeatTimeLessThanOrEqualTo(Long value) { + addCriterion("heartbeat_time <=", value, "heartbeatTime"); + return (Criteria) this; + } + + public Criteria andHeartbeatTimeIn(List values) { + addCriterion("heartbeat_time in", values, "heartbeatTime"); + return (Criteria) this; + } + + public Criteria andHeartbeatTimeNotIn(List values) { + addCriterion("heartbeat_time not in", values, "heartbeatTime"); + return (Criteria) this; + } + + public Criteria andHeartbeatTimeBetween(Long value1, Long value2) { + addCriterion("heartbeat_time between", value1, value2, "heartbeatTime"); + return (Criteria) this; + } + + public Criteria andHeartbeatTimeNotBetween(Long value1, Long value2) { + addCriterion("heartbeat_time not between", value1, value2, "heartbeatTime"); + return (Criteria) this; + } + + public Criteria andHeartbeatIpIsNull() { + addCriterion("heartbeat_ip is null"); + return (Criteria) this; + } + + public Criteria andHeartbeatIpIsNotNull() { + addCriterion("heartbeat_ip is not null"); + return (Criteria) this; + } + + public Criteria andHeartbeatIpEqualTo(String value) { + addCriterion("heartbeat_ip =", value, "heartbeatIp"); + return (Criteria) this; + } + + public Criteria andHeartbeatIpNotEqualTo(String value) { + addCriterion("heartbeat_ip <>", value, "heartbeatIp"); + return (Criteria) this; + } + + public Criteria andHeartbeatIpGreaterThan(String value) { + addCriterion("heartbeat_ip >", value, "heartbeatIp"); + return (Criteria) this; + } + + public Criteria andHeartbeatIpGreaterThanOrEqualTo(String value) { + addCriterion("heartbeat_ip >=", value, "heartbeatIp"); + return (Criteria) this; + } + + public Criteria andHeartbeatIpLessThan(String value) { + addCriterion("heartbeat_ip <", value, "heartbeatIp"); + return (Criteria) this; + } + + public Criteria andHeartbeatIpLessThanOrEqualTo(String value) { + addCriterion("heartbeat_ip <=", value, "heartbeatIp"); + return (Criteria) this; + } + + public Criteria andHeartbeatIpLike(String value) { + addCriterion("heartbeat_ip like", value, "heartbeatIp"); + return (Criteria) this; + } + + public Criteria andHeartbeatIpNotLike(String value) { + addCriterion("heartbeat_ip not like", value, "heartbeatIp"); + return (Criteria) this; + } + + public Criteria andHeartbeatIpIn(List values) { + addCriterion("heartbeat_ip in", values, "heartbeatIp"); + return (Criteria) this; + } + + public Criteria andHeartbeatIpNotIn(List values) { + addCriterion("heartbeat_ip not in", values, "heartbeatIp"); + return (Criteria) this; + } + + public Criteria andHeartbeatIpBetween(String value1, String value2) { + addCriterion("heartbeat_ip between", value1, value2, "heartbeatIp"); + return (Criteria) this; + } + + public Criteria andHeartbeatIpNotBetween(String value1, String value2) { + addCriterion("heartbeat_ip not between", value1, value2, "heartbeatIp"); + return (Criteria) this; + } + + public Criteria andHeartbeatPortIsNull() { + addCriterion("heartbeat_port is null"); + return (Criteria) this; + } + + public Criteria andHeartbeatPortIsNotNull() { + addCriterion("heartbeat_port is not null"); + return (Criteria) this; + } + + public Criteria andHeartbeatPortEqualTo(Short value) { + addCriterion("heartbeat_port =", value, "heartbeatPort"); + return (Criteria) this; + } + + public Criteria andHeartbeatPortNotEqualTo(Short value) { + addCriterion("heartbeat_port <>", value, "heartbeatPort"); + return (Criteria) this; + } + + public Criteria andHeartbeatPortGreaterThan(Short value) { + addCriterion("heartbeat_port >", value, "heartbeatPort"); + return (Criteria) this; + } + + public Criteria andHeartbeatPortGreaterThanOrEqualTo(Short value) { + addCriterion("heartbeat_port >=", value, "heartbeatPort"); + return (Criteria) this; + } + + public Criteria andHeartbeatPortLessThan(Short value) { + addCriterion("heartbeat_port <", value, "heartbeatPort"); + return (Criteria) this; + } + + public Criteria andHeartbeatPortLessThanOrEqualTo(Short value) { + addCriterion("heartbeat_port <=", value, "heartbeatPort"); + return (Criteria) this; + } + + public Criteria andHeartbeatPortIn(List values) { + addCriterion("heartbeat_port in", values, "heartbeatPort"); + return (Criteria) this; + } + + public Criteria andHeartbeatPortNotIn(List values) { + addCriterion("heartbeat_port not in", values, "heartbeatPort"); + return (Criteria) this; + } + + public Criteria andHeartbeatPortBetween(Short value1, Short value2) { + addCriterion("heartbeat_port between", value1, value2, "heartbeatPort"); + return (Criteria) this; + } + + public Criteria andHeartbeatPortNotBetween(Short value1, Short value2) { + addCriterion("heartbeat_port not between", value1, value2, "heartbeatPort"); + return (Criteria) this; + } + } + + /** + * This class was generated by MyBatis Generator. + * This class corresponds to the database table terminal_heartbeat_history + * + * @mbg.generated do_not_delete_during_merge + */ + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + /** + * This class was generated by MyBatis Generator. + * This class corresponds to the database table terminal_heartbeat_history + * + * @mbg.generated + */ + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalHeartbeatHistoryMapper.java b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalHeartbeatHistoryMapper.java new file mode 100644 index 0000000..424f7f2 --- /dev/null +++ b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/TerminalHeartbeatHistoryMapper.java @@ -0,0 +1,65 @@ +package com.shxy.xymanager_dao.dao; + +import com.shxy.xymanager_common.entity.TerminalHeartbeatHistory; +import com.shxy.xymanager_common.entity.TerminalHeartbeatHistoryExample; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface TerminalHeartbeatHistoryMapper { + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table terminal_heartbeat_history + * + * @mbg.generated + */ + long countByExample(TerminalHeartbeatHistoryExample example); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table terminal_heartbeat_history + * + * @mbg.generated + */ + int deleteByExample(TerminalHeartbeatHistoryExample example); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table terminal_heartbeat_history + * + * @mbg.generated + */ + int insert(TerminalHeartbeatHistory row); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table terminal_heartbeat_history + * + * @mbg.generated + */ + int insertSelective(TerminalHeartbeatHistory row); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table terminal_heartbeat_history + * + * @mbg.generated + */ + List selectByExample(TerminalHeartbeatHistoryExample example); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table terminal_heartbeat_history + * + * @mbg.generated + */ + int updateByExampleSelective(@Param("row") TerminalHeartbeatHistory row, @Param("example") TerminalHeartbeatHistoryExample example); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table terminal_heartbeat_history + * + * @mbg.generated + */ + int updateByExample(@Param("row") TerminalHeartbeatHistory row, @Param("example") TerminalHeartbeatHistoryExample example); +} \ No newline at end of file diff --git a/xymanager_dao/src/main/resources/mappers/TerminalHeartbeatHistoryMapper.xml b/xymanager_dao/src/main/resources/mappers/TerminalHeartbeatHistoryMapper.xml new file mode 100644 index 0000000..85dd36a --- /dev/null +++ b/xymanager_dao/src/main/resources/mappers/TerminalHeartbeatHistoryMapper.xml @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + term_id, heartbeat_time, heartbeat_ip, heartbeat_port + + + + + delete from terminal_heartbeat_history + + + + + + + insert into terminal_heartbeat_history (term_id, heartbeat_time, heartbeat_ip, + heartbeat_port) + values (#{termId,jdbcType=INTEGER}, #{heartbeatTime,jdbcType=BIGINT}, #{heartbeatIp,jdbcType=VARCHAR}, + #{heartbeatPort,jdbcType=SMALLINT}) + + + + insert into terminal_heartbeat_history + + + term_id, + + + heartbeat_time, + + + heartbeat_ip, + + + heartbeat_port, + + + + + #{termId,jdbcType=INTEGER}, + + + #{heartbeatTime,jdbcType=BIGINT}, + + + #{heartbeatIp,jdbcType=VARCHAR}, + + + #{heartbeatPort,jdbcType=SMALLINT}, + + + + + + + update terminal_heartbeat_history + + + term_id = #{row.termId,jdbcType=INTEGER}, + + + heartbeat_time = #{row.heartbeatTime,jdbcType=BIGINT}, + + + heartbeat_ip = #{row.heartbeatIp,jdbcType=VARCHAR}, + + + heartbeat_port = #{row.heartbeatPort,jdbcType=SMALLINT}, + + + + + + + + + update terminal_heartbeat_history + set term_id = #{row.termId,jdbcType=INTEGER}, + heartbeat_time = #{row.heartbeatTime,jdbcType=BIGINT}, + heartbeat_ip = #{row.heartbeatIp,jdbcType=VARCHAR}, + heartbeat_port = #{row.heartbeatPort,jdbcType=SMALLINT} + + + + + \ No newline at end of file diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/HeartbeatServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/HeartbeatServiceImpl.java new file mode 100644 index 0000000..cc68eb8 --- /dev/null +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/HeartbeatServiceImpl.java @@ -0,0 +1,27 @@ +package com.shxy.xymanager_service.impl; + +import com.shxy.xymanager_common.entity.TerminalHeartbeatHistory; +import com.shxy.xymanager_common.entity.TerminalHeartbeatHistoryExample; +import com.shxy.xymanager_dao.dao.TerminalHeartbeatHistoryMapper; +import com.shxy.xymanager_service.service.HeartbeatService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Service +@Slf4j +public class HeartbeatServiceImpl implements HeartbeatService { + @Resource + TerminalHeartbeatHistoryMapper mapper; + + @Override + public List listAll(Integer termId) { + TerminalHeartbeatHistoryExample example = new TerminalHeartbeatHistoryExample(); + TerminalHeartbeatHistoryExample.Criteria criteria = example.createCriteria(); + criteria.andTermIdEqualTo(termId); + example.setOrderByClause("heartbeat_time desc"); + return mapper.selectByExample(example); + } +} diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/HeartbeatService.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/HeartbeatService.java new file mode 100644 index 0000000..a4ddc53 --- /dev/null +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/HeartbeatService.java @@ -0,0 +1,11 @@ +package com.shxy.xymanager_service.service; + +import com.shxy.xymanager_common.entity.TerminalHeartbeatHistory; + +import java.util.List; + +public interface HeartbeatService { + + List listAll(Integer termId); + +}