Quellcode durchsuchen

添加系统告警

wanghc vor 3 Jahren
Ursprung
Commit
c071ca037e

+ 3 - 0
ipfcst-common/ipfcst-common-data/src/main/java/com/jiayue/ipfcst/common/data/entity/SysAlarm.java

@@ -74,4 +74,7 @@ public class SysAlarm extends AbstractBaseEntity {
     @Column
     private String pritority;
 
+    @Column
+    private String stationCode;
+
 }

+ 28 - 0
ipfcst-common/ipfcst-common-data/src/main/java/com/jiayue/ipfcst/common/data/service/BaseService.java

@@ -3,12 +3,16 @@ package com.jiayue.ipfcst.common.data.service;
 import cn.hutool.core.date.DateUtil;
 import com.jiayue.ipfcst.common.core.exception.BusinessException;
 import com.jiayue.ipfcst.common.core.util.NumberUtils;
+import com.jiayue.ipfcst.common.data.constant.enums.AlarmStatusEnum;
+import com.jiayue.ipfcst.common.data.constant.enums.AlarmTypeEnum;
 import com.jiayue.ipfcst.common.data.entity.ElectricField;
 import com.jiayue.ipfcst.common.data.entity.OverhaulPlan;
+import com.jiayue.ipfcst.common.data.entity.SysAlarm;
 import com.jiayue.ipfcst.common.data.entity.SysParameter;
 import com.jiayue.ipfcst.common.data.job.BaseJob;
 import com.jiayue.ipfcst.common.data.repository.ElectricFieldRepository;
 import com.jiayue.ipfcst.common.data.repository.OverhaulPlanRepository;
+import com.jiayue.ipfcst.common.data.repository.SysAlarmRepository;
 import com.jiayue.ipfcst.common.data.repository.SysParameterRepository;
 import com.sun.istack.internal.NotNull;
 import lombok.NonNull;
@@ -45,6 +49,8 @@ public class BaseService {
 
 	private Scheduler scheduler;
 
+	private SysAlarmRepository sysAlarmRepository;
+
 	@Autowired
 	public void setOverhaulPlanRepository(OverhaulPlanRepository overhaulPlanRepository) {
 		this.overhaulPlanRepository = overhaulPlanRepository;
@@ -351,4 +357,26 @@ public class BaseService {
 		}
 		return triggerStateName;
 	}
+	/**
+	 * 插入系统告警信息
+	 *
+	 * @param type      类型
+	 * @param name      名称
+	 * @param describe  描述
+	 * @param errorInfo 错误日志
+	 * @param solution  处理办法(插入的时候如果有处理建议,请给这个传值,比如(处理建议:联系运维人员处理))
+	 * @param stationCode 所属场站
+	 */
+	@Transactional(propagation = Propagation.REQUIRED)
+	public void saveSysAlarm(@NotNull AlarmTypeEnum type,
+							 @NotNull String name, @NotNull String describe, String errorInfo, String solution,String stationCode) {
+		SysAlarm sysAlarm = new SysAlarm();
+		sysAlarm.setAlarmTypeEnum(type);
+		sysAlarm.setName(name);
+		sysAlarm.setDescribe(describe);
+		sysAlarm.setAlarmStatusEnum(AlarmStatusEnum.E1);
+		sysAlarm.setErrorInfo(errorInfo);
+		sysAlarm.setSolution(solution);
+		sysAlarmRepository.save(sysAlarm);
+	}
 }

+ 17 - 3
ipfcst-console/src/main/java/com/jiayue/ipfcst/console/service/ReceiveDataService.java

@@ -5,9 +5,11 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.TypeReference;
 import com.jiayue.ipfcst.common.core.util.DateTimeUtil;
+import com.jiayue.ipfcst.common.data.constant.enums.AlarmTypeEnum;
 import com.jiayue.ipfcst.common.data.constant.enums.EquipmentTypeEnum;
 import com.jiayue.ipfcst.common.data.entity.*;
 import com.jiayue.ipfcst.common.data.repository.*;
+import com.jiayue.ipfcst.common.data.service.BaseService;
 import com.jiayue.ipfcst.console.util.RedisUtils;
 import org.apache.http.HttpEntity;
 import org.apache.http.client.config.RequestConfig;
@@ -36,7 +38,7 @@ import java.util.*;
  */
 @Service
 @Slf4j
-public class ReceiveDataService {
+public class ReceiveDataService extends BaseService {
   @Autowired
   ElectricFieldService electricFieldService;
   @Autowired
@@ -127,7 +129,7 @@ public class ReceiveDataService {
     paramMap.put("deviceIds", equipmentNo);
     paramMap.put("startTime", startTime);
     paramMap.put("endTime", endTime);
-    String body = httpClient(paramMap);
+    String body = httpClient(paramMap,electricField);
     AnalysisData(body, id, equipmentType, electricField);
   }
 
@@ -248,6 +250,12 @@ public class ReceiveDataService {
       }
     } catch (Exception e) {
       log.info(electricField.getName()+equipmentType.getMessage()+"接数程序异常");
+      // 进行告警
+      String errorInfo = "接数程序异常";
+      String name = "接数程序异常";
+      String describe = "";
+      String solution = "";
+      super.saveSysAlarm(AlarmTypeEnum.E1, name, describe, errorInfo, solution,electricField.getStationCode());
       e.printStackTrace();
     }
   }
@@ -257,7 +265,7 @@ public class ReceiveDataService {
    * @param paramMap 参数
    * @return 返回的数据
    */
-  public String httpClient( HashMap<String, Object> paramMap){
+  public String httpClient( HashMap<String, Object> paramMap,ElectricField electricField){
     String body = "";
     try{
       CloseableHttpClient  httpClient = HttpClientBuilder.create().build();
@@ -278,6 +286,12 @@ public class ReceiveDataService {
       log.info("请求异常");
       log.info("所用线程"+Thread.currentThread().getName());
       log.info("停止请求数据");
+      // 进行告警
+      String errorInfo = "请求异常";
+      String name = "请求异常";
+      String describe = "";
+      String solution = "停止请求数据";
+      super.saveSysAlarm(AlarmTypeEnum.E5, name, describe, errorInfo, solution,electricField.getStationCode());
       Thread.currentThread().stop();
     }
     return body;

+ 45 - 2
ipfcst-console/src/main/java/com/jiayue/ipfcst/fileupload/service/E63UploadFileService.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON;
 import com.jiayue.ipfcst.common.core.exception.BusinessException;
 import com.jiayue.ipfcst.common.core.util.DateMomentUtil;
 import com.jiayue.ipfcst.common.data.abst.equipmentinfo.AbstractEquipmentInfo;
+import com.jiayue.ipfcst.common.data.constant.enums.AlarmTypeEnum;
 import com.jiayue.ipfcst.common.data.constant.enums.FileTypeEnum;
 import com.jiayue.ipfcst.common.data.entity.*;
 import com.jiayue.ipfcst.common.data.repository.*;
@@ -166,6 +167,12 @@ public class E63UploadFileService extends BaseUploadFileService {
         }
       } catch (Exception e) {
         log.error(stationCode + "生成短期异常", e);
+        // 进行告警
+        String errorInfo = "生成短期异常";
+        String name = "生成短期异常";
+        String describe = "";
+        String solution = "";
+        super.saveSysAlarm(AlarmTypeEnum.E1, name, describe, errorInfo, solution,electricFieldInfo.getStationCode());
       }
     }
   }
@@ -239,6 +246,12 @@ public class E63UploadFileService extends BaseUploadFileService {
         }
       } catch (Exception e) {
         log.error(stationCode + "生成可用短期异常", e);
+        // 进行告警
+        String errorInfo = "生成可用短期异常";
+        String name = "生成可用短期异常";
+        String describe = "";
+        String solution = "";
+        super.saveSysAlarm(AlarmTypeEnum.E1, name, describe, errorInfo, solution,electricFieldInfo.getStationCode());
       }
     }
   }
@@ -319,6 +332,12 @@ public class E63UploadFileService extends BaseUploadFileService {
         }
       } catch (Exception e) {
         log.error(stationCode + "生成超短期异常", e);
+        // 进行告警
+        String errorInfo = "生成超短期异常";
+        String name = "生成超短期异常";
+        String describe = "";
+        String solution = "";
+        super.saveSysAlarm(AlarmTypeEnum.E1, name, describe, errorInfo, solution,electricFieldInfo.getStationCode());
       }
     }
   }
@@ -401,6 +420,12 @@ public class E63UploadFileService extends BaseUploadFileService {
         }
       } catch (Exception e) {
         log.error(stationCode + "生成可用超短期异常", e);
+        // 进行告警
+        String errorInfo = "生成可用超短期异常";
+        String name = "生成可用超短期异常";
+        String describe = "";
+        String solution = "";
+        super.saveSysAlarm(AlarmTypeEnum.E1, name, describe, errorInfo, solution,electricFieldInfo.getStationCode());
       }
     }
   }
@@ -445,7 +470,13 @@ public class E63UploadFileService extends BaseUploadFileService {
           }
         }
       } catch (Exception e) {
-        log.error(stationCode + "生成文件异常", e);
+        log.error(stationCode + "生成气象站或者测风塔文件异常", e);
+        // 进行告警
+        String errorInfo = "生成气象站或者测风塔文件异常";
+        String name = "生成气象站或者测风塔文件异常";
+        String describe = "";
+        String solution = "";
+        super.saveSysAlarm(AlarmTypeEnum.E1, name, describe, errorInfo, solution,electricFieldInfo.getStationCode());
       }
     }
   }
@@ -889,7 +920,13 @@ public class E63UploadFileService extends BaseUploadFileService {
           }
         }
       } catch (Exception e) {
-        log.error(stationCode + "生成文件异常", e);
+        log.error(stationCode + "生成逆变器或风机文件异常", e);
+        // 进行告警
+        String errorInfo = "生成逆变器或风机文件异常";
+        String name = "生成逆变器或风机文件异常";
+        String describe = "";
+        String solution = "";
+        super.saveSysAlarm(AlarmTypeEnum.E1, name, describe, errorInfo, solution,electricFieldInfo.getStationCode());
       }
     }
   }
@@ -1317,6 +1354,12 @@ public class E63UploadFileService extends BaseUploadFileService {
         }
       } catch (Exception e) {
         log.error(stationCode + "生成文件异常", e);
+        // 进行告警
+        String errorInfo = "生成理论功率文件异常";
+        String name = "生成理论功率文件异常";
+        String describe = "";
+        String solution = "";
+        super.saveSysAlarm(AlarmTypeEnum.E1, name, describe, errorInfo, solution,electricFieldInfo.getStationCode());
       }
     }
   }

+ 19 - 4
ipfcst-console/src/main/java/com/jiayue/ipfcst/fileupload/service/FtpUploadService.java

@@ -6,6 +6,7 @@ import cn.hutool.extra.ftp.Ftp;
 import cn.hutool.extra.ftp.FtpConfig;
 import cn.hutool.extra.ftp.FtpMode;
 import cn.hutool.extra.ssh.Sftp;
+import com.jiayue.ipfcst.common.data.constant.enums.AlarmTypeEnum;
 import com.jiayue.ipfcst.common.data.constant.enums.ChannelStatusEnum;
 import com.jiayue.ipfcst.common.data.entity.UploadFileChannel;
 import com.jiayue.ipfcst.common.data.entity.UploadFileLog;
@@ -30,7 +31,7 @@ import java.util.stream.Collectors;
 
 @Service
 @Slf4j
-public class FtpUploadService {
+public class FtpUploadService extends BaseUploadFileService{
   final
   UploadFileChannelService uploadFileChannelService;
   final
@@ -59,7 +60,7 @@ public class FtpUploadService {
   /**
    * 开启FTP客户端上报文件
    */
-  public void startFtpUpload() {
+  public void startFtpUpload(){
     List<UploadObject> uploadObjectList = uploadObjectService.get();
     // 过滤出ftp/sftp的上报对象
     uploadObjectList = uploadObjectList.stream().filter(s -> s.getUploadProtocolEnum().toString().equals("E4") || s.getUploadProtocolEnum().toString().equals("E5")).collect(Collectors.toList());
@@ -130,12 +131,19 @@ public class FtpUploadService {
                 while ((line = returnData.readLine()) != null) {
                   returnMsg.append(line);
                 }
-
+                String errorInfo = "";
                 if (returnMsg.indexOf("100% loss") != -1) {
                   logger.info("与 " + uploadFileChannel.getRemoteIp() + " 连接不畅通.");
+                  errorInfo = "与 " + uploadFileChannel.getRemoteIp() + " 连接不畅通.";
                 } else {
                   logger.info("与 " + uploadFileChannel.getRemoteIp() + " 连接畅通.");
+                  errorInfo = "与 " + uploadFileChannel.getRemoteIp() + " 连接畅通.";
                 }
+                // 进行告警
+                String name = "上报文件异常";
+                String describe = "";
+                String solution = "";
+                super.saveSysAlarm(AlarmTypeEnum.E1, name, describe, errorInfo, solution,"");
 
                 returnData.close();
                 r.close();
@@ -190,13 +198,20 @@ public class FtpUploadService {
                 while ((line = returnData.readLine()) != null) {
                   returnMsg.append(line);
                 }
-
+                String errorInfo = "";
                 if (returnMsg.indexOf("100% loss") != -1) {
                   logger.info("与 " + uploadFileChannel.getRemoteIp() + " 连接不畅通.");
+                  errorInfo = "与 " + uploadFileChannel.getRemoteIp() + " 连接不畅通.";
                 } else {
                   logger.info("与 " + uploadFileChannel.getRemoteIp() + " 连接畅通.");
+                  errorInfo = "与 " + uploadFileChannel.getRemoteIp() + " 连接畅通.";
                 }
 
+                // 进行告警
+                String name = "上报文件异常";
+                String describe = "";
+                String solution = "";
+                super.saveSysAlarm(AlarmTypeEnum.E1, name, describe, errorInfo, solution,"");
                 returnData.close();
                 r.close();
                 process.getInputStream().close();