1、健康检查增加连续无效解时长统计
This commit is contained in:
parent
a5dd6e6b7d
commit
10d0044b01
@ -23,6 +23,7 @@ public class Ehm {
|
|||||||
private Short offlinestatdays;
|
private Short offlinestatdays;
|
||||||
private Integer offlinecount;
|
private Integer offlinecount;
|
||||||
private Integer offlineminutes;
|
private Integer offlineminutes;
|
||||||
|
private Integer invalidresultminutes;
|
||||||
private Integer calcstathours;
|
private Integer calcstathours;
|
||||||
private Float stdeve;
|
private Float stdeve;
|
||||||
private Float stdevn;
|
private Float stdevn;
|
||||||
|
|||||||
@ -61,6 +61,8 @@ public class EhmTask{
|
|||||||
|
|
||||||
// 检查过去N天离线次数和时长
|
// 检查过去N天离线次数和时长
|
||||||
checkOffline(ehm, status.getState()==GnssStatus.STATE_OFFLINE);
|
checkOffline(ehm, status.getState()==GnssStatus.STATE_OFFLINE);
|
||||||
|
// 检查过去N天无效解总时长
|
||||||
|
checkInvalidGnssDataTime(ehm);
|
||||||
// 计算过去N小时标准差
|
// 计算过去N小时标准差
|
||||||
// 计算过去N小时有效解比例
|
// 计算过去N小时有效解比例
|
||||||
// 计算过去N小时固定解比例
|
// 计算过去N小时固定解比例
|
||||||
@ -111,6 +113,37 @@ public class EhmTask{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void checkInvalidGnssDataTime(Ehm ehm){
|
||||||
|
LocalDateTime now = ehm.getCreatetime();
|
||||||
|
// 从告警消息里查询离线记录
|
||||||
|
QueryWrapper<WarningMsg> queryWrapper = new QueryWrapper<>();
|
||||||
|
queryWrapper.eq("deviceid",ehm.getDeviceid());
|
||||||
|
queryWrapper.ge("createtime",now.minusDays(ehm.getOfflinestatdays()));
|
||||||
|
queryWrapper.eq("code",WarningCfg.TYPE_CONT_INVALID_RESULT);
|
||||||
|
List<WarningMsg> warningMsgList = warningMsgMapper.selectList(queryWrapper);
|
||||||
|
if(warningMsgList!=null){
|
||||||
|
int invalidGnssDataMinutes = 0;
|
||||||
|
LocalDateTime offlineEnd = null;
|
||||||
|
LocalDateTime offlineBegin = null;
|
||||||
|
for(WarningMsg warningMsg:warningMsgList){
|
||||||
|
// 读下一条纪录时才计算上一条的时间差,因为cleartime有可能没有
|
||||||
|
if(offlineEnd==null) offlineEnd=warningMsg.getCreatetime();
|
||||||
|
if(offlineBegin!=null){
|
||||||
|
Duration duration = Duration.between(offlineBegin,offlineEnd);
|
||||||
|
invalidGnssDataMinutes+=duration.toMinutes();
|
||||||
|
}
|
||||||
|
offlineBegin = warningMsg.getCreatetime();
|
||||||
|
offlineEnd = warningMsg.getCleartime();
|
||||||
|
}
|
||||||
|
if(offlineEnd==null) offlineEnd=now;
|
||||||
|
if(offlineBegin!=null){
|
||||||
|
Duration duration = Duration.between(offlineBegin,offlineEnd);
|
||||||
|
invalidGnssDataMinutes+=duration.toMinutes();
|
||||||
|
}
|
||||||
|
ehm.setInvalidresultminutes(invalidGnssDataMinutes);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void checkCalcResults(Ehm ehm){
|
private void checkCalcResults(Ehm ehm){
|
||||||
// 获取过去N小时的解算数据
|
// 获取过去N小时的解算数据
|
||||||
QueryWrapper<GnssCalcData> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<GnssCalcData> queryWrapper = new QueryWrapper<>();
|
||||||
|
|||||||
@ -42,6 +42,7 @@ public class GnssEhmController extends BasicController implements CommonExcelSer
|
|||||||
if(sortItems.size()==0) {
|
if(sortItems.size()==0) {
|
||||||
sortItems.add("离线次数");sortSqls.add("order by offlinecount desc");
|
sortItems.add("离线次数");sortSqls.add("order by offlinecount desc");
|
||||||
sortItems.add("离线时长");sortSqls.add("order by offlineminutes desc");
|
sortItems.add("离线时长");sortSqls.add("order by offlineminutes desc");
|
||||||
|
sortItems.add("连续无效解时长");sortSqls.add("order by invalidresultminutes desc");
|
||||||
sortItems.add("东标准差");sortSqls.add("order by stdeve desc");
|
sortItems.add("东标准差");sortSqls.add("order by stdeve desc");
|
||||||
sortItems.add("北标准差");sortSqls.add("order by stdevn desc");
|
sortItems.add("北标准差");sortSqls.add("order by stdevn desc");
|
||||||
sortItems.add("天标准差");sortSqls.add("order by stdevu desc");
|
sortItems.add("天标准差");sortSqls.add("order by stdevu desc");
|
||||||
|
|||||||
@ -377,6 +377,7 @@ CREATE TABLE IF NOT EXISTS `ehm` (
|
|||||||
`offlinestatdays` smallint DEFAULT NULL COMMENT '离线统计周期',
|
`offlinestatdays` smallint DEFAULT NULL COMMENT '离线统计周期',
|
||||||
`offlinecount` int DEFAULT NULL COMMENT '离线统计周期内的离线次数',
|
`offlinecount` int DEFAULT NULL COMMENT '离线统计周期内的离线次数',
|
||||||
`offlineminutes` int DEFAULT NULL COMMENT '离线统计周期内的离线时长',
|
`offlineminutes` int DEFAULT NULL COMMENT '离线统计周期内的离线时长',
|
||||||
|
`invalidresultminutes` int DEFAULT NULL COMMENT '离线统计周期内的连续无效解时长',
|
||||||
`calcstathours` int DEFAULT NULL COMMENT '数据分析周期',
|
`calcstathours` int DEFAULT NULL COMMENT '数据分析周期',
|
||||||
`stdeve` float DEFAULT NULL COMMENT '标准差',
|
`stdeve` float DEFAULT NULL COMMENT '标准差',
|
||||||
`stdevn` float DEFAULT NULL COMMENT '标准差',
|
`stdevn` float DEFAULT NULL COMMENT '标准差',
|
||||||
|
|||||||
@ -80,6 +80,7 @@
|
|||||||
{field: 'calcstathours', title: '数据分析周期(小时)'},
|
{field: 'calcstathours', title: '数据分析周期(小时)'},
|
||||||
{field: 'offlinecount', title: '离线次数'},
|
{field: 'offlinecount', title: '离线次数'},
|
||||||
{field: 'offlineminutes', title: '离线分钟数'},
|
{field: 'offlineminutes', title: '离线分钟数'},
|
||||||
|
{field: 'invalidresultminutes', title: '连续无效解分钟数'},
|
||||||
{field: 'stdeve', title: '东标准差'},
|
{field: 'stdeve', title: '东标准差'},
|
||||||
{field: 'stdevn', title: '北标准差'},
|
{field: 'stdevn', title: '北标准差'},
|
||||||
{field: 'stdevu', title: '天标准差'},
|
{field: 'stdevu', title: '天标准差'},
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user