|
|
|
@ -9,6 +9,7 @@ import java.net.URLEncoder;
|
|
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
|
import java.time.LocalTime; |
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.Arrays; |
|
|
|
|
import java.util.Calendar; |
|
|
|
|
import java.util.Date; |
|
|
|
|
import java.util.HashMap; |
|
|
|
@ -23,6 +24,7 @@ import org.json.simple.parser.JSONParser;
|
|
|
|
|
import org.json.simple.parser.ParseException; |
|
|
|
|
import org.locationtech.jts.geom.Coordinate; |
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
|
import org.springframework.cache.annotation.Cacheable; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
@ -207,6 +209,7 @@ public class CtrCntrlService {
|
|
|
|
|
* @param cstmrSno |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
public List<CtrCntrlGroupArcrftModel> getGroupAuthInfo() { |
|
|
|
|
|
|
|
|
|
List<CtrCntrlGroupModel> list = query.findByGroupInfo(); |
|
|
|
@ -254,7 +257,7 @@ public class CtrCntrlService {
|
|
|
|
|
*/ |
|
|
|
|
@Transactional |
|
|
|
|
public List<CtrCntrlArcrftWarnModel> getArcrftWarnList(String id) { |
|
|
|
|
Map<String, CtrCntrlArcrftWarnModel> map = new HashMap<>(); |
|
|
|
|
|
|
|
|
|
List<CtrCntrlArcrftWarnModel> result = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
if ("".equals(id) || id == null) return null; |
|
|
|
@ -264,20 +267,19 @@ public class CtrCntrlService {
|
|
|
|
|
for (String cntrlId : ids) { |
|
|
|
|
CtrCntrlArcrftWarnModel model = new CtrCntrlArcrftWarnModel(); |
|
|
|
|
|
|
|
|
|
CtrCntrlBas control = cntrlBasRepository.findById(cntrlId).orElse(null); |
|
|
|
|
CtrCntrlHstry hisControl = cntrlHstryRepository.findFirstByCntrlIdOrderBySrvrRcvDtDesc(cntrlId).orElse(null); |
|
|
|
|
// List<BasFlightPlanModel> flightPlan = new ArrayList<>();
|
|
|
|
|
// if (control != null) {
|
|
|
|
|
// flightPlan = this.getFlightPlan(control.getIdntfNum());
|
|
|
|
|
// }
|
|
|
|
|
int planSno = relRepository.getPlanSno(control.getIdntfNum()); |
|
|
|
|
FltPlanArea planAreaData = planAreaRepository.getPlanData(planSno); |
|
|
|
|
String idntfNum = cntrlBasRepository.getIdntfNum(cntrlId); |
|
|
|
|
CtrCntrlHstry hisControl = query.getWarnHstryList(cntrlId); |
|
|
|
|
|
|
|
|
|
int planSno = relRepository.getPlanSno(idntfNum); |
|
|
|
|
FltPlanArea planAreaData = query.getPlanData(planSno); |
|
|
|
|
|
|
|
|
|
List<FltPlanAreaCoord> coordList = planCoordRepository.getCoordinate(planAreaData.getPlanAreaSno()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CtrCntrlSocketContainsRq containsRq = new CtrCntrlSocketContainsRq(); |
|
|
|
|
if (control != null) { |
|
|
|
|
containsRq.setIdntfNum(control.getIdntfNum()); |
|
|
|
|
if (idntfNum != null) { |
|
|
|
|
containsRq.setIdntfNum(idntfNum); |
|
|
|
|
model.setIdntfNum(idntfNum); |
|
|
|
|
model.setCntrlId(cntrlId); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (planAreaData != null) { |
|
|
|
@ -299,8 +301,8 @@ public class CtrCntrlService {
|
|
|
|
|
|
|
|
|
|
if (model.isControlWarnCd()) { |
|
|
|
|
CtrCntrlWarnLog log = new CtrCntrlWarnLog(); |
|
|
|
|
log.setCntrlId(control.getCntrlId()); |
|
|
|
|
log.setIdntfNum(control.getIdntfNum()); |
|
|
|
|
log.setCntrlId(cntrlId); |
|
|
|
|
log.setIdntfNum(idntfNum); |
|
|
|
|
log.setOccurDt(hisControl.getSrvrRcvDt()); |
|
|
|
|
log.setLat(hisControl.getLat()); |
|
|
|
|
log.setLon(hisControl.getLon()); |
|
|
|
@ -318,8 +320,6 @@ public class CtrCntrlService {
|
|
|
|
|
model.setCreateDt(warnLog.getCreateDt()); |
|
|
|
|
model.setCreateUserId(warnLog.getCreateUserId()); |
|
|
|
|
} |
|
|
|
|
model.setCntrlId(control.getCntrlId()); |
|
|
|
|
model.setIdntfNum(control.getIdntfNum()); |
|
|
|
|
model.setWarnCount(warnCount); |
|
|
|
|
|
|
|
|
|
result.add(model); |
|
|
|
@ -484,7 +484,6 @@ public class CtrCntrlService {
|
|
|
|
|
|
|
|
|
|
if (rq.getIdntfNum() != null) { |
|
|
|
|
List<Coordinate> planArea = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
for(FltPlanAreaCoord coord : rq.getCoordList()) { |
|
|
|
|
Coordinate coordinate = new Coordinate(coord.getLon(), coord.getLat()); |
|
|
|
|
|
|
|
|
@ -498,7 +497,6 @@ public class CtrCntrlService {
|
|
|
|
|
* 2. 비정상 상황 TYPE(비행구역, 공역)에 따라 구분 (미적용) |
|
|
|
|
*/ |
|
|
|
|
boolean areaContains = true; |
|
|
|
|
// boolean airspaceContains = false;
|
|
|
|
|
switch(rq.getAreaType()) { |
|
|
|
|
case "LINE" : |
|
|
|
|
List<Coordinate> transPlanArea = areaUtils.transform(planArea, "EPSG:4326", "EPSG:5181"); |
|
|
|
@ -506,7 +504,6 @@ public class CtrCntrlService {
|
|
|
|
|
List<Coordinate> transPlanBuffer = areaUtils.transform(planBuffer, "EPSG:5181", "EPSG:4326"); |
|
|
|
|
|
|
|
|
|
areaContains = areaUtils.contains(transPlanBuffer, targetCoord); |
|
|
|
|
// log.info("LINE CONTAINS : {}", areaContains);
|
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
case "POLYGON" : |
|
|
|
|