Browse Source

Merge branch 'master' into feature/remove-rabbit

feature/remove-rabbit
지대한 1 year ago
parent
commit
6ebc9a7e08
  1. 6
      src/main/java/com/palnet/biz/api/bas/flight/service/BasFlightService.java
  2. 24
      src/main/java/com/palnet/biz/api/ctr/cntrl/service/CtrCntrlService.java

6
src/main/java/com/palnet/biz/api/bas/flight/service/BasFlightService.java

@ -246,11 +246,9 @@ public class BasFlightService {
List<Coordinate> trans = areaUtils.transform(rqCoord, "EPSG:4326", "EPSG:5181"); List<Coordinate> trans = areaUtils.transform(rqCoord, "EPSG:4326", "EPSG:5181");
List<Coordinate> bufferList = areaUtils.buffer(trans, rqArea.getBufferZone()); List<Coordinate> bufferList = areaUtils.buffer(trans, rqArea.getBufferZone());
rqCoordBufferList = areaUtils.transform(bufferList, "EPSG:5181", "EPSG:4326"); rqCoordBufferList = areaUtils.transform(bufferList, "EPSG:5181", "EPSG:4326");
} }else if( "POLYGON".equals(rqArea.getAreaType())) {
if( "POLYGON".equals(rqArea.getAreaType())) {
rqCoordBufferList.addAll(rqCoord); rqCoordBufferList.addAll(rqCoord);
} }else if("CIRCLE".equals(rqArea.getAreaType())) {
if("CIRCLE".equals(rqArea.getAreaType())) {
rqCoordBufferList = areaUtils.createCircle(rqCoord.get(0), rqArea.getBufferZone()); rqCoordBufferList = areaUtils.createCircle(rqCoord.get(0), rqArea.getBufferZone());
} }
//검증 //검증

24
src/main/java/com/palnet/biz/api/ctr/cntrl/service/CtrCntrlService.java

@ -252,7 +252,7 @@ public class CtrCntrlService {
/** /**
* TODO 기체 최신 비정상 로그 비정상 로그 전체 개수 * TODO 비행계획서에 등록 기체 최신 비정상 로그 비정상 로그 전체 개수
* *
* @param id * @param id
* @return * @return
@ -264,20 +264,20 @@ public class CtrCntrlService {
if ("".equals(id) || id == null) return null; if ("".equals(id) || id == null) return null;
String[] ids = id.indexOf(",") > -1 ? id.split(",") : new String[]{id}; String[] ids = id.indexOf(",") > -1 ? id.split(",") : new String[]{id}; // 식별번호(cntrlId)가 여러개일 경우 콤마 구분자로 나눠 배열에 저장
for (String cntrlId : ids) { for (String cntrlId : ids) {
CtrCntrlArcrftWarnModel model = new CtrCntrlArcrftWarnModel(); CtrCntrlArcrftWarnModel model = new CtrCntrlArcrftWarnModel();
String idntfNum = cntrlBasRepository.getIdntfNum(cntrlId); String idntfNum = cntrlBasRepository.getIdntfNum(cntrlId); //이미 Socket에서 payload의 trim에 따라 cntrlBas에 식별번호가 PA로 시작하는 데이터가 insert 되어 있음. 이 데이터 중 매개변수로 들어온 id와 일치하는 cntrlBas의 식별번호를 가져옴
CtrCntrlHstry hisControl = query.getWarnHstryList(cntrlId); CtrCntrlHstry hisControl = query.getWarnHstryList(cntrlId); // repo method 이름을 왜 이렇게 지었는지는 모르겠으나.. cntrlBas에 insert될 때 같이 insert되는 cntrlHstry 데이터 중 가장 마지막에 찍힌 hstry 로그를 가져옴
int planSno = relRepository.getPlanSno(idntfNum).orElse(0); int planSno = relRepository.getPlanSno(idntfNum).orElse(0); // cntrlBas insert될때 같이 insert된 mapping 테이블에서 식별번호로 planSno 가져옴
if(query.checkPlanSno(planSno) < 1) continue; if(query.checkPlanSno(planSno) < 1) continue;
FltPlanArea planAreaData = query.getPlanData(planSno); FltPlanArea planAreaData = query.getPlanData(planSno); // planSno에 맞는 비헹계획서의 비행계획경로정보 가져옴
List<FltPlanAreaCoord> coordList = planCoordRepository.getCoordinate(planAreaData.getPlanAreaSno()); List<FltPlanAreaCoord> coordList = planCoordRepository.getCoordinate(planAreaData.getPlanAreaSno()); // 비행계획서에 등록한 경로의 좌표 전부를 가져옴
CtrCntrlSocketContainsRq containsRq = new CtrCntrlSocketContainsRq(); CtrCntrlSocketContainsRq containsRq = new CtrCntrlSocketContainsRq();
if (idntfNum != null) { if (idntfNum != null) {
@ -300,10 +300,10 @@ public class CtrCntrlService {
containsRq.setCoordList(coordList); containsRq.setCoordList(coordList);
} }
CtrCntrlPlanContainsRs ctrCntrlPlanContainsRs = this.checkSocketContains(containsRq); CtrCntrlPlanContainsRs ctrCntrlPlanContainsRs = this.checkSocketContains(containsRq); // 위의 정보를 기반으로 만들어진 비행계획서 경로와 rq의 좌표를 비교해서 정상 비행 여부 확인
model.setControlWarnCd(ctrCntrlPlanContainsRs.isWarning()); model.setControlWarnCd(ctrCntrlPlanContainsRs.isWarning());
if (model.isControlWarnCd()) { if (model.isControlWarnCd()) { // 정상 비행이 아니라면 warning log 생성
CtrCntrlWarnLog log = new CtrCntrlWarnLog(); CtrCntrlWarnLog log = new CtrCntrlWarnLog();
log.setCntrlId(cntrlId); log.setCntrlId(cntrlId);
log.setIdntfNum(idntfNum); log.setIdntfNum(idntfNum);
@ -315,10 +315,10 @@ public class CtrCntrlService {
log.setWarnType("PLAN"); log.setWarnType("PLAN");
warnLogRepository.save(log); warnLogRepository.save(log);
} }
CtrCntrlWarnLog warnLog = warnLogRepository.findFirstByCntrlIdOrderByOccurDtDesc(cntrlId); CtrCntrlWarnLog warnLog = warnLogRepository.findFirstByCntrlIdOrderByOccurDtDesc(cntrlId); // 가장 마지막에 쌓인 warnLog 가져옴
Integer warnCount = warnLogRepository.countByCntrlId(cntrlId); Integer warnCount = warnLogRepository.countByCntrlId(cntrlId); // warnLog 누적 카운트 가져옴
if (warnLog != null) { if (warnLog != null) { // front에 표출할 warnLog 정보 set
model.setWarnType(warnLog.getWarnType()); model.setWarnType(warnLog.getWarnType());
model.setOccurDt(warnLog.getOccurDt()); model.setOccurDt(warnLog.getOccurDt());
model.setCreateDt(warnLog.getCreateDt()); model.setCreateDt(warnLog.getCreateDt());

Loading…
Cancel
Save