|
@@ -36,6 +36,7 @@ import com.sooka.sponest.event.utils.RemoteApiUtil;
|
|
|
import com.sooka.sponest.monitor.api.RemoteMonitorService;
|
|
|
import com.sooka.sponest.monitor.api.domain.CenterdataTAidevicedept;
|
|
|
import com.sooka.sponest.monitor.api.domain.CenterdataTCamera;
|
|
|
+import com.sooka.sponest.monitor.api.domain.CentermonitorTUav;
|
|
|
import org.apache.commons.collections4.MapUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -48,10 +49,7 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.web.client.RestTemplate;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Optional;
|
|
|
+import java.util.*;
|
|
|
|
|
|
import static com.ruoyi.common.core.utils.DateUtils.YYYY_MM_DD_HH_MM_SS;
|
|
|
import static com.sooka.sponest.event.utils.EventConstants.*;
|
|
@@ -279,6 +277,12 @@ public class AlarmEventServiceImpl implements AlarmEventService {
|
|
|
centereventTFireLog.setOperationType(LOG_OPER_TYPE_3);
|
|
|
centereventTFireLog.setCreateName(centereventTEventcatalogue.getCreateName());
|
|
|
centereventTFireLog.setCreateTime(centereventTEventcatalogue.getCreateTime());
|
|
|
+ if(StringUtils.isNotEmpty(centereventTEventcatalogue.getLongitude())){
|
|
|
+ centereventTFireLog.setLongitude(centereventTEventcatalogue.getLongitude());
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotEmpty(centereventTEventcatalogue.getLatitude())){
|
|
|
+ centereventTFireLog.setLatitude(centereventTEventcatalogue.getLatitude());
|
|
|
+ }
|
|
|
centereventTFireLogService.insertCentereventTFireLog(centereventTFireLog);
|
|
|
return centereventTFireLog.getId();
|
|
|
}
|
|
@@ -688,6 +692,15 @@ public class AlarmEventServiceImpl implements AlarmEventService {
|
|
|
|
|
|
@Override
|
|
|
public int insertDroneEvent(List<DroneVO> alarmData) {
|
|
|
+ Map<Object, Object> eventType = new HashMap<>();
|
|
|
+ eventType.put("Sheep","222");
|
|
|
+ eventType.put("Car","218");
|
|
|
+
|
|
|
+ Map<Object, Object> eventLabel = new HashMap<>();
|
|
|
+ eventLabel.put("Sheep","区域入侵");
|
|
|
+ eventLabel.put("Car","工程车检测");
|
|
|
+
|
|
|
+ // 将告警图片转换为本地图片
|
|
|
alarmData.parallelStream().forEach(item -> {
|
|
|
item.setId(IdUtils.simpleUUID());
|
|
|
try {
|
|
@@ -698,6 +711,78 @@ public class AlarmEventServiceImpl implements AlarmEventService {
|
|
|
logger.error("Failed to process image for item {}: {}", item.getId(), e.getMessage());
|
|
|
}
|
|
|
});
|
|
|
+ // 通过无人机id, 获取无人机信息和绑定的指挥中心
|
|
|
+ alarmData.forEach(alarm->{
|
|
|
+ CentermonitorTUav data = SpringUtils.getBean(RemoteMonitorService.class).selectUavByUavId(alarm.getCopterId()).getData();
|
|
|
+ /**
|
|
|
+ * 牛羊 Sheep:222
|
|
|
+ * 车辆 Car: 218
|
|
|
+ */
|
|
|
+
|
|
|
+ String eventName = data.getUavName()+"上报"+MapUtils.getString(eventLabel, alarm.getAlarmType())+"事件";
|
|
|
+ String eventDescription = "基站:"+data.getBaseStationName()+",无人机:"+data.getUavName()+",经度:"+alarm.getLongitude()+",纬度:"+alarm.getLatitude()+",海拔:"+alarm.getAltitude();
|
|
|
+
|
|
|
+ //创建事件主体, 写入事件表.
|
|
|
+ CentereventTEventcatalogue centereventTEventcatalogue = new CentereventTEventcatalogue("2", MapUtils.getString(eventType, alarm.getAlarmType()), eventName, eventDescription, alarm.getLongitude(), alarm.getLatitude(), data.getUavName(), alarm.getCreationTime(), "");
|
|
|
+ centereventTEventcatalogue.setLongitude(alarm.getLongitude());
|
|
|
+ centereventTEventcatalogue.setLatitude(alarm.getLatitude());
|
|
|
+ centereventTEventcatalogue.setReportSource(REPORTING_SOURCE_6);
|
|
|
+ CenterdataTCamera centerdataTCamera = new CenterdataTCamera();
|
|
|
+ centerdataTCamera.setId(alarm.getCopterId());
|
|
|
+ centerdataTCamera.setCameraName(data.getUavName());
|
|
|
+ centereventTEventcatalogue = this.insertEventCatalogue(centereventTEventcatalogue, centerdataTCamera, alarm.getCreationTime());
|
|
|
+
|
|
|
+ String eventCode = centereventTEventcatalogue.getEventCode();
|
|
|
+ String createName = centereventTEventcatalogue.getCreateName();
|
|
|
+ Date createTime = centereventTEventcatalogue.getCreateTime();
|
|
|
+ // 事件部门
|
|
|
+ data.getDeptList().forEach(item -> {
|
|
|
+ CentereventDeptEvent centereventTDeptEvent = new CentereventDeptEvent();
|
|
|
+ centereventTDeptEvent.setId(IdUtils.fastSimpleUUID());
|
|
|
+ centereventTDeptEvent.setEventCode(eventCode);
|
|
|
+ centereventTDeptEvent.setDeptId(item.getDeptId());
|
|
|
+ centereventTDeptEvent.setDeptName(item.getDeptName());
|
|
|
+ centereventTDeptEvent.setIsUrged(SYS_ISURGE_2);
|
|
|
+ centereventTDeptEvent.setEventStatus("上报");
|
|
|
+ centereventTDeptEvent.setEventStatusValue(FOREST_EVENT_STATUS_1);
|
|
|
+ centereventTDeptEvent.setDeptHandleType(DEPT_HANDLE_TYPE_2);
|
|
|
+ centereventTDeptEvent.setCreateBy(alarm.getCopterId());
|
|
|
+ centereventTDeptEvent.setCreateName(createName);
|
|
|
+ centereventTDeptEvent.setCreateTime(createTime);
|
|
|
+ centereventTDeptEventService.insertCentereventTDeptEvent(centereventTDeptEvent);
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+ //事件日志
|
|
|
+ CentereventTFireLog centereventTFireLog = new CentereventTFireLog();
|
|
|
+ centereventTFireLog.setId(IdUtils.simpleUUID());
|
|
|
+ centereventTFireLog.setEventCode(centereventTEventcatalogue.getEventCode());
|
|
|
+ centereventTFireLog.setLogContent(centereventTEventcatalogue.getEventName() + System.getProperty("line.separator") + centereventTEventcatalogue.getEventDescription());
|
|
|
+ centereventTFireLog.setOperation(BUS_OPER_TYPE_2);
|
|
|
+ centereventTFireLog.setOperationType(LOG_OPER_TYPE_4);
|
|
|
+ centereventTFireLog.setCreateBy(alarm.getCopterId());
|
|
|
+ centereventTFireLog.setCreateName(centereventTEventcatalogue.getCreateName());
|
|
|
+ centereventTFireLog.setCreateTime(centereventTEventcatalogue.getCreateTime());
|
|
|
+ if(StringUtils.isNotEmpty(centereventTEventcatalogue.getLongitude())){
|
|
|
+ centereventTFireLog.setLongitude(centereventTEventcatalogue.getLongitude());
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotEmpty(centereventTEventcatalogue.getLatitude())){
|
|
|
+ centereventTFireLog.setLatitude(centereventTEventcatalogue.getLatitude());
|
|
|
+ }
|
|
|
+ centereventTFireLogService.insertCentereventTFireLog(centereventTFireLog);
|
|
|
+
|
|
|
+ //事件附件
|
|
|
+ if (StringUtils.isNotBlank(alarm.getLocalPath())) {
|
|
|
+ CenterdataTAttach tAttach = new CenterdataTAttach();
|
|
|
+ tAttach.setBusId(centereventTFireLog.getId());
|
|
|
+ tAttach.setAttachPath(alarm.getLocalPath());
|
|
|
+ tAttach.setBusIndx(BUS_INDEX_2);
|
|
|
+ tAttach.setBusSource("UAV_1");
|
|
|
+ tAttach.setFileType(FILE_TYPE_1);
|
|
|
+ remoteDataService.insertAttach(tAttach);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
return alarmEventMapper.insertDrone(alarmData);
|
|
|
}
|
|
|
}
|