summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nz-admin/src/main/java/com/nis/modules/alert/service/impl/AlertHandlerServiceImpl.java22
1 files changed, 18 insertions, 4 deletions
diff --git a/nz-admin/src/main/java/com/nis/modules/alert/service/impl/AlertHandlerServiceImpl.java b/nz-admin/src/main/java/com/nis/modules/alert/service/impl/AlertHandlerServiceImpl.java
index fda56a82..54afa9a8 100644
--- a/nz-admin/src/main/java/com/nis/modules/alert/service/impl/AlertHandlerServiceImpl.java
+++ b/nz-admin/src/main/java/com/nis/modules/alert/service/impl/AlertHandlerServiceImpl.java
@@ -2,6 +2,7 @@ package com.nis.modules.alert.service.impl;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.net.URLDecoder;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.log.Log;
@@ -44,6 +45,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.IOException;
+import java.nio.charset.Charset;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -558,7 +560,13 @@ public class AlertHandlerServiceImpl implements AlertHandlerService {
PageUtils page = fullTextSearchService.queryAlertMessageFullTextPage(params);
List<AlertMessageEntity> list = (List<AlertMessageEntity>) page.getList();
- List<List<String>> exportDataList = this.handleExportDataList(list);
+ String queryBodyJsonStr = (String) params.get("body");
+ queryBodyJsonStr = URLDecoder.decode(queryBodyJsonStr, Charset.forName("UTF-8"));
+
+ Map queryBody = JSONUtil.toBean(queryBodyJsonStr, HashMap.class);
+ String alertState = Tool.MapUtil.getStr(queryBody, "state", "1");
+
+ List<List<String>> exportDataList = this.handleExportDataList(list, alertState);
String sysHeaderJsonStr = sysConfigService.getValue("alert_export_header");
String fileName = "AlertMessages";
@@ -566,7 +574,7 @@ public class AlertHandlerServiceImpl implements AlertHandlerService {
basicImportAndExportServices.exportDataByFormat(response, exportDataList, sysHeaderJsonStr, formatStr, fileName);
}
- private List<List<String>> handleExportDataList(List<AlertMessageEntity> list) {
+ private List<List<String>> handleExportDataList(List<AlertMessageEntity> list, String alertState) {
List<List<String>> exportDataList = new ArrayList<>();
TimezoneController.Timezone sysTimezone = TimezoneController.queryTimezoneByName(sysConfigService.getValue("timezone"));
@@ -588,7 +596,7 @@ public class AlertHandlerServiceImpl implements AlertHandlerService {
tempList.add(alertMessage.getDescription());
tempList.add(getExportFormatTime(alertMessage.getStartAt(), dateformat));
tempList.add(getExportFormatTime(alertMessage.getEndAt(), dateformat));
- tempList.add(getDuration(alertMessage.getStartAt(), alertMessage.getEndAt()));
+ tempList.add(getDuration(alertState, alertMessage.getStartAt(), alertMessage.getEndAt()));
tempList.add(Constant.ALERT_MESSAGE_STATE_NAME_MAPPING.get(alertMessage.getState()));
exportDataList.add(tempList);
}
@@ -598,11 +606,17 @@ public class AlertHandlerServiceImpl implements AlertHandlerService {
/**
* 通过 endAtstartAt 获取持续时间
*
+ * @param alertState
* @param startAt
* @param endAt
* @return
*/
- private String getDuration(Date startAt, Date endAt) {
+ private String getDuration(String alertState, Date startAt, Date endAt) {
+ // 当 state = active | silence 时,duration = 当前服务器时间(result.time)- startAt
+ if (StrUtil.equalsAny(alertState, "1", "2")) {
+ endAt = new Date();
+ }
+
if (Tool.ObjectUtil.isNull(endAt)) return Tool.StrUtil.DASHED;
long durationSecond = Tool.DateUtil.between(startAt, endAt, DateUnit.SECOND);