|
@@ -1,11 +1,19 @@
|
|
|
package com.inspur.elevator_data_collect.service;
|
|
package com.inspur.elevator_data_collect.service;
|
|
|
|
|
|
|
|
|
|
+import cn.hutool.core.util.RandomUtil;
|
|
|
|
|
+import cn.hutool.http.HttpRequest;
|
|
|
|
|
+import cn.hutool.http.HttpUtil;
|
|
|
|
|
+import cn.hutool.json.JSONUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.inspur.elevator_data_collect.dao.DeviceAlarmInfoDao;
|
|
import com.inspur.elevator_data_collect.dao.DeviceAlarmInfoDao;
|
|
|
import com.inspur.elevator_data_collect.dao.DeviceStartInfoDao;
|
|
import com.inspur.elevator_data_collect.dao.DeviceStartInfoDao;
|
|
|
|
|
+import com.inspur.elevator_data_collect.domain.AlarmType;
|
|
|
|
|
+import com.inspur.elevator_data_collect.domain.AlarmUploadInfo;
|
|
|
import com.inspur.elevator_data_collect.domain.DeviceAlarmInfo;
|
|
import com.inspur.elevator_data_collect.domain.DeviceAlarmInfo;
|
|
|
import com.inspur.elevator_data_collect.domain.DeviceStartInfo;
|
|
import com.inspur.elevator_data_collect.domain.DeviceStartInfo;
|
|
|
|
|
+import com.inspur.elevator_data_collect.utils.CachedThreadPoolUtil;
|
|
|
|
|
+import com.inspur.elevator_data_collect.utils.DateUtil;
|
|
|
import com.inspur.elevator_data_collect.utils.UUIDUtil;
|
|
import com.inspur.elevator_data_collect.utils.UUIDUtil;
|
|
|
import com.inspur.idm.api.IRescueService;
|
|
import com.inspur.idm.api.IRescueService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -30,8 +38,19 @@ public class WriteMysqlService {
|
|
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private DeviceStartInfoDao deviceStartInfoDao;
|
|
private DeviceStartInfoDao deviceStartInfoDao;
|
|
|
-
|
|
|
|
|
- private static final Boolean IS_UPLOAD_ALARM = true;
|
|
|
|
|
|
|
+
|
|
|
|
|
+ private static final Boolean IS_UPLOAD_ALARM = false;
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 最大重试次数
|
|
|
|
|
+ */
|
|
|
|
|
+ private static final int MAX_RETRY_COUNT = 3;
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 超时时间,单位毫秒
|
|
|
|
|
+ */
|
|
|
|
|
+ private static final int TIMEOUT = 10000;
|
|
|
|
|
+
|
|
|
|
|
+ private static final String ALARM_UPLOAD_URL = "https://rzzhsq.shuzirizhao.cn/api/gov/org/kaElevatorPush/alarm/push";
|
|
|
|
|
|
|
|
@Reference
|
|
@Reference
|
|
|
private IRescueService rescueService;
|
|
private IRescueService rescueService;
|
|
@@ -75,9 +94,9 @@ public class WriteMysqlService {
|
|
|
deviceAlarmInfo.setAlarmCode(code);
|
|
deviceAlarmInfo.setAlarmCode(code);
|
|
|
|
|
|
|
|
deviceAlarmInfoDao.insert(deviceAlarmInfo);
|
|
deviceAlarmInfoDao.insert(deviceAlarmInfo);
|
|
|
- // TODO 新增故障上报至数字日照平台
|
|
|
|
|
|
|
+ // 新增故障上报至数字日照平台 20241219
|
|
|
if (IS_UPLOAD_ALARM) {
|
|
if (IS_UPLOAD_ALARM) {
|
|
|
- uploadAlarm(id, code);
|
|
|
|
|
|
|
+ uploadAlarm(deviceAlarmInfo);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if ("48".equals(code)) {
|
|
if ("48".equals(code)) {
|
|
@@ -88,7 +107,28 @@ public class WriteMysqlService {
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private void uploadAlarm(String id, String code) {
|
|
|
|
|
|
|
+ private void uploadAlarm(DeviceAlarmInfo deviceAlarmInfo) {
|
|
|
|
|
+ // 防止接口不通,阻碍正常业务,异步执行
|
|
|
|
|
+ CachedThreadPoolUtil.executeTask(() -> {
|
|
|
|
|
+ // 组装数据
|
|
|
|
|
+ AlarmUploadInfo uploadInfo = new AlarmUploadInfo();
|
|
|
|
|
+ uploadInfo.setElevatorId(deviceAlarmInfo.getDeviceId());
|
|
|
|
|
+ uploadInfo.setAlarmCode(deviceAlarmInfo.getAlarmCode());
|
|
|
|
|
+ uploadInfo.setAlarmDesc(AlarmType.getDescriptionByCode(deviceAlarmInfo.getAlarmCode()));
|
|
|
|
|
+ uploadInfo.setAlarmTime(DateUtil.convertDateToStr(deviceAlarmInfo.getAlarmTime(), "yyyy-MM-dd HH:mm:ss"));
|
|
|
|
|
+ for (int i = 0; i < MAX_RETRY_COUNT; i++) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ HttpRequest request = HttpUtil.createPost(ALARM_UPLOAD_URL)
|
|
|
|
|
+ .timeout(TIMEOUT);
|
|
|
|
|
+ String result = request.body(JSONUtil.toJsonStr(uploadInfo)).execute().body();
|
|
|
|
|
+ System.out.println("上传报警信息结果:" + result);
|
|
|
|
|
+ return;
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ // 处理异常,如打印日志
|
|
|
|
|
+ System.err.println("请求失败,第" + (i + 1) + "次重试,错误信息:" + e.getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public void writeStart(String payload) {
|
|
public void writeStart(String payload) {
|