Bladeren bron

修复 指标数据为空时 不能更新数据

miaolijing 3 jaren geleden
bovenliggende
commit
01d9c4d90d

+ 2 - 0
src/main/java/com/persagy/apm/diagnose/indicatorrecord/service/IMonitorIndicatorRecordService.java

@@ -90,4 +90,6 @@ public interface IMonitorIndicatorRecordService {
      * @updateTime 2021/9/28 3:07
      */
     public void cleanAlarmConfigSendTime(CleanAlarmConfigDTO cleanAlarmConfigDTO);
+
+    public void saveDeleterOrUpdateByPk(MonitorIndicatorRecord monitorIndicatorRecord) throws Exception;
 }

+ 17 - 0
src/main/java/com/persagy/apm/diagnose/indicatorrecord/service/impl/MonitorIndicatorRecordServiceImpl.java

@@ -326,6 +326,23 @@ public class MonitorIndicatorRecordServiceImpl implements IMonitorIndicatorRecor
     }
 
     @Override
+    public void saveDeleterOrUpdateByPk(MonitorIndicatorRecord monitorIndicatorRecord) throws Exception {
+        MonitorIndicatorRecord query = new MonitorIndicatorRecord();
+        query.setProject(monitorIndicatorRecord.getProject());
+        query.setObjId(monitorIndicatorRecord.getObjId());
+        query.setDataTime(monitorIndicatorRecord.getDataTime());
+        //        query.setSplitTimeType(EnumTimeType.MIN15.getCode());
+        query.setMonitorIndicatorId(monitorIndicatorRecord.getMonitorIndicatorId());
+        List<MonitorIndicatorRecord> queryList = coredao.query(query);
+        if (CollectionUtils.isEmpty(queryList)) {//新增
+            coredao.save(monitorIndicatorRecord);
+        } else {
+            coredao.remove(query);
+            coredao.save(monitorIndicatorRecord);
+        }
+    }
+
+    @Override
     public void cleanAlarmConfig(String projectId) {
         if (StringUtils.isBlank(projectId)) {
             redisUtil.del(DiAgnoseConst.RedisConstants.PROJECT_ALARM_ITEM);

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

@@ -669,7 +669,7 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
             monitorIndicatorRecord.setObjId(cTObjId);
             monitorIndicatorRecord.setProject(projectDTO.getProjectId());
             monitorIndicatorRecord.setDataValue(dayAvg);
-            monitorIndicatorRecordService.saveOrUpdateByPk(monitorIndicatorRecord);
+            monitorIndicatorRecordService.saveDeleterOrUpdateByPk(monitorIndicatorRecord);
             runDate = dayDate;
         }
         return runDate;
@@ -716,7 +716,7 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
             monitorIndicatorRecord.setObjId(objId);
             monitorIndicatorRecord.setProject(projectId);
             monitorIndicatorRecord.setDataValue(dayAvg);
-            monitorIndicatorRecordService.saveOrUpdateByPk(monitorIndicatorRecord);
+            monitorIndicatorRecordService.saveDeleterOrUpdateByPk(monitorIndicatorRecord);
             runDate = dayDate;
         }
         return runDate;