Browse Source

修复计算持续逾期天数逻辑问题

miaolijing 3 years ago
parent
commit
0b10401f77

+ 4 - 11
src/main/java/com/persagy/apm/diagnose/maintenance/service/impl/ProjectDataRecordServiceImpl.java

@@ -471,7 +471,6 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
                             //冷却水组  日均 数据计算
                             computeTime = computeCoolWaterData(lastComputeTime, todayDate, projectDTO.getProjectId(), objId, indicatorType);
                         }
-                        log.error("项目:"+projectDTO.getProjectId()+"~设备:"+objId+"~指标:"+infoCode+"~日期:"+lastComputeTime);
                         //计算 运行持续时长
                         computeAlarmDay(projectDTO.getProjectId(), objId, infoCode, indicatorType, lastComputeTime, todayDate, monitorIndicatorMap);
                         //更新计算 时间记录
@@ -549,7 +548,6 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
                 String tempFormula = thresholdConfig.getTempFormula();
                 if (!StringUtils.isBlank(operator) && !StringUtils.isBlank(tempFormula)) {
                     //获取报警开始时间
-                    log.error("项目:"+projectId+"~设备:"+objId+"~指标:"+indicatorId+"~operator:"+operator+"~tempFormula:"+tempFormula+"~日期:"+start);
                     Date startAlarmDate = getStartAlarmDate(start, projectId, objId, indicatorId, operator, tempFormula);
                     if (null != startAlarmDate) {
                         dayNum = com.persagy.apm.diagnose.utils.DateUtils.getDayNum(startAlarmDate, start);
@@ -558,10 +556,10 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
             }
             //构造实体对象
             MonitorIndicatorRecord monitorIndicatorRecord = new MonitorIndicatorRecord();
+            monitorIndicatorRecord.setProject(projectId);
+            monitorIndicatorRecord.setObjId(objId);
             monitorIndicatorRecord.setMonitorIndicatorId(saveIndicatorType.getCode());
             monitorIndicatorRecord.setDataTime(start);
-            monitorIndicatorRecord.setObjId(objId);
-            monitorIndicatorRecord.setProject(projectId);
             monitorIndicatorRecord.setDataValue(Double.valueOf(dayNum));
             monitorIndicatorRecordService.saveOrUpdateByPk(monitorIndicatorRecord);
         }
@@ -580,25 +578,20 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
         queryMonitorIndicatorRecordDTO.setTimeFrom(checkStartDate); // >
         queryMonitorIndicatorRecordDTO.setTimeTo(alarmDate);  // <=
         List<MonitorIndicatorRecord> recordList = monitorIndicatorRecordService.queryMonitorIndicatorRecordList(queryMonitorIndicatorRecordDTO);
-        log.error("项目:"+projectId+"~设备:"+objId+"~指标:"+indicatorId+"~operator:"+operator+"~tempFormula:"+tempFormula+"~日期:"+checkStartDate+"~"+alarmDate);
         if (!CollectionUtils.isEmpty(recordList) && recordList.size() > 0) {
-            log.error("项目:"+projectId+"~设备:"+objId+"~指标:"+indicatorId+"~operator:"+operator+"~tempFormula:"+tempFormula+"~日期:"+checkStartDate+"~"+alarmDate+"~数据量:"+recordList.size());
             //倒序排
             recordList.sort(Comparator.comparing(MonitorIndicatorRecord::getDataTime).reversed());
             Date checkDate = alarmDate;
             for (MonitorIndicatorRecord record : recordList) {
-                log.error("项目:"+projectId+"~设备:"+objId+"~指标:"+indicatorId+"~operator:"+operator+"~tempFormula:"+tempFormula+"~日期:"+checkStartDate+"~"+alarmDate+"~数据值:"+record.getDataValue());
                 boolean isFlag = isAccordWith(operator, Double.valueOf(tempFormula), record.getDataValue());
                 if (!isFlag) {
-                    log.error("项目:"+projectId+"~设备:"+objId+"~指标:"+indicatorId+"~operator:"+operator+"~tempFormula:"+tempFormula+"~日期:"+checkStartDate+"~"+alarmDate+"~数据值:"+record.getDataValue()+"无报警"+"返回日期:"+record.getDataTime());
                     return record.getDataTime();
                 }
-                log.error("项目:"+projectId+"~设备:"+objId+"~指标:"+indicatorId+"~operator:"+operator+"~tempFormula:"+tempFormula+"~日期:"+checkStartDate+"~"+alarmDate+"~数据值:"+record.getDataValue()+"报警"+"赋值日期:"+record.getDataTime());
                 checkDate = record.getDataTime();
             }
-            log.error("项目:"+projectId+"~设备:"+objId+"~指标:"+indicatorId+"~operator:"+operator+"~tempFormula:"+tempFormula+"~日期:"+checkStartDate+"~"+alarmDate+"报警"+"赋值日期:"+checkDate);
             //继续往前找报警开始日期
-     //       return getStartAlarmDate(checkDate, projectId, objId, indicatorId, operator, tempFormula);
+            checkDate = com.persagy.apm.diagnose.utils.DateUtils.addDays(checkDate,-1);
+            return getStartAlarmDate(checkDate, projectId, objId, indicatorId, operator, tempFormula);
         }
         return alarmDate;
     }