|
@@ -702,21 +702,30 @@ public class AlarmEventServiceImpl implements AlarmEventService {
|
|
|
|
|
|
@Override
|
|
|
public int insertDroneEvent(List<DroneVO> alarmData) {
|
|
|
- // 将告警图片转换为本地图片
|
|
|
- alarmData.parallelStream().forEach(item -> {
|
|
|
- item.setId(IdUtils.simpleUUID());
|
|
|
- try {
|
|
|
- MultipartFile multipartFile = FilePrefixUtils.urlToMultipartFile(item.getPhotoPath(), System.currentTimeMillis() + ".jpg");
|
|
|
- item.setLocalPath(fileService.upload(multipartFile).getData().getUrl());
|
|
|
- } catch (Exception e) {
|
|
|
- logger.error("Failed to process image for item {}: {}", item.getId(), e.getMessage());
|
|
|
- }
|
|
|
- });
|
|
|
// 通过无人机id, 获取无人机信息和绑定的指挥中心
|
|
|
alarmData.forEach(alarm -> {
|
|
|
- Map<String, Object> data = (Map<String, Object>) SpringUtils.getBean(RemoteMonitorService.class).selectUavByUavId(alarm.getCopterId(), "1").get("data");
|
|
|
+ alarm.setId(IdUtils.simpleUUID());
|
|
|
|
|
|
Map<Object, Object> eventType = alarmEventMapper.getEventTypeByCodeTower(alarm.getAlarmType());
|
|
|
+ if(null == eventType || eventType.isEmpty()){
|
|
|
+ logger.error("事件类型未配置{}",alarm.getAlarmType());
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<String, Object> data = (Map<String, Object>) SpringUtils.getBean(RemoteMonitorService.class).selectUavByUavId(alarm.getCopterId(), "1").get("data");
|
|
|
+
|
|
|
+ if(null == data || data.isEmpty()){
|
|
|
+ logger.error("未配置指挥中心{}",alarm.getCopterId());
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ try{
|
|
|
+ MultipartFile multipartFile = FilePrefixUtils.urlToMultipartFile(alarm.getPhotoPath(), System.currentTimeMillis() + ".jpg");
|
|
|
+ alarm.setLocalPath(fileService.upload(multipartFile).getData().getUrl());
|
|
|
+ }catch (Exception e){
|
|
|
+ logger.error(e.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
String eventName = MapUtils.getString(data, "uavName") + "上报" + MapUtils.getString(eventType, "eventTypeName") + "事件";
|
|
|
String eventDescription = "基站:" + MapUtils.getString(data, "baseStationName") + ",无人机:" + MapUtils.getString(data, "uavName") + ",经度:" + alarm.getLongitude() + ",纬度:" + alarm.getLatitude() + ",海拔:" + alarm.getAltitude();
|