Browse Source

코드 정리 , 에러메시지 전달 모델 추가

feature/auth
박재우 2 years ago
parent
commit
b64474d801
  1. 12
      src/main/java/com/palnet/biz/api/bas/flight/model/BasFlightPlanResultMessageRq.java
  2. 272
      src/main/java/com/palnet/biz/api/bas/flight/service/BasFlightService.java

12
src/main/java/com/palnet/biz/api/bas/flight/model/BasFlightPlanResultMessageRq.java

@ -0,0 +1,12 @@
package com.palnet.biz.api.bas.flight.model;
import lombok.Data;
@Data
public class BasFlightPlanResultMessageRq {
private boolean dateCheck;
private boolean areaCheck;
private boolean finalCheck;
}

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

@ -111,151 +111,143 @@ public class BasFlightService {
// 비행계획서 등록
public boolean createPlan(BasFlightPlanModel rq) {
// 비행계획서 등록 시 계획일자 중복 , 비행구역 중복 체크
GeometryFactory geometryFactory = new GeometryFactory();
GeometryFactory geometryFactory = new GeometryFactory();
List<BasFlightPlanArcrftModel> arcrftModelList = rq.getArcrftList();
List<BasFlightPlanAreaModel> areaModelList = rq.getAreaList();
for(int i = 0; i < arcrftModelList.size(); i++) {
List<BasFlightPlanAreaModel> areaModelList = rq.getAreaList();
for(int i = 0; i < arcrftModelList.size(); i++) {
String idntfNum = arcrftModelList.get(i).getIdntfNum();
int size = fltPlanQueryRepository.arcrftCheck(rq, idntfNum).size();
if( size != 0) {
BasFlightPlanResultMessageRq dateCheck = new BasFlightPlanResultMessageRq();
dateCheck.setDateCheck(false);
// return false;
// boolean dCheck = false;
// BasFlightPlanResultMessageRq dateCheck = dCheck;
// return dheck;
}else {
String idntfNum = arcrftModelList.get(i).getIdntfNum();
int size = fltPlanQueryRepository.arcrftCheck(rq, idntfNum).size();
if( size != 0) {
return false;
}else {
}
}
List<Coordinate> coordList = new ArrayList<>();
List<Coordinate> bufferCoord = new ArrayList<>();
List<BasFlightPlanAreaCoordRq> queryList = fltPlanQueryRepository.CoordCheck(rq);
List<BasFlightPlanAreaCoordRq> queryCount = fltPlanQueryRepository.CoordCount(rq);
String type = null;
String queryType = null;
Integer bufferZone = null;
Integer queryBufferZone = null;
Coordinate queryCoord = null;
Coordinate coord = null;
for(int i = 0; i<arcrftModelList.size(); i++) {
List<BasFlightPlanAreaCoordModel> coordModelList = areaModelList.get(i).getCoordList();
type = rq.getAreaList().get(i).getAreaType();
bufferZone = rq.getAreaList().get(i).getBufferZone();
Double lat;
Double lon;
}
}
List<Coordinate> coordList = new ArrayList<>();
List<Coordinate> bufferCoord = new ArrayList<>();
List<BasFlightPlanAreaCoordRq> queryList = fltPlanQueryRepository.CoordCheck(rq);
List<BasFlightPlanAreaCoordRq> queryCount = fltPlanQueryRepository.CoordCount(rq);
String type = null;
String queryType = null;
Integer bufferZone = null;
Integer queryBufferZone = null;
Coordinate queryCoord = null;
Coordinate coord = null;
for(int i = 0; i<arcrftModelList.size(); i++) {
List<BasFlightPlanAreaCoordModel> coordModelList = areaModelList.get(i).getCoordList();
type = rq.getAreaList().get(i).getAreaType();
bufferZone = rq.getAreaList().get(i).getBufferZone();
Double lat;
Double lon;
for(int j = 0; j<coordModelList.size(); j++) {
lat = rq.getAreaList().get(i).getCoordList().get(j).getLat();
lon = rq.getAreaList().get(i).getCoordList().get(j).getLon();
coord = new Coordinate(lon , lat);
coordList.add(coord);
}
if("POLYGON".equals(type)) {
coord = new Coordinate(rq.getAreaList().get(i).getCoordList().get(0).getLon(),rq.getAreaList().get(i).getCoordList().get(0).getLat());
coordList.add(coord);
}
}
List<Coordinate> transCoordList = areaUtils.transform(coordList, "EPSG:4326", "EPSG:5181");
if("LINE".equals(type)){
for(int j = 0; j<coordModelList.size(); j++) {
lat = rq.getAreaList().get(i).getCoordList().get(j).getLat();
lon = rq.getAreaList().get(i).getCoordList().get(j).getLon();
coord = new Coordinate(lon , lat);
coordList.add(coord);
}
if("POLYGON".equals(type)) {
coord = new Coordinate(rq.getAreaList().get(i).getCoordList().get(0).getLon(),rq.getAreaList().get(i).getCoordList().get(0).getLat());
coordList.add(coord);
}
}
List<Coordinate> transCoordList = areaUtils.transform(coordList, "EPSG:4326", "EPSG:5181");
if("LINE".equals(type)){
bufferCoord = areaUtils.buffer(transCoordList, bufferZone);
}
if("CIRCLE".equals(type)) {
}
if("CIRCLE".equals(type)) {
bufferCoord = areaUtils.createCircle(coord, bufferZone);
}
if("POLYGON".equals(type)) {
Polygon polygon = geometryFactory.createPolygon(coordList.toArray(new Coordinate[] {}));
Coordinate[] coords = polygon.getCoordinates();
bufferCoord.addAll(Arrays.asList(coords));
}
List<Coordinate> reverseBufferList = areaUtils.transform(bufferCoord, "EPSG:5181","EPSG:4326");
int k=0;
for(int i = 0; i<queryCount.size(); i++) {
List<Coordinate> queryBufferCoord = new ArrayList<>();
List<Coordinate> queryCoordList = new ArrayList<>();
queryType = queryCount.get(i).getAreaType();
queryBufferZone = queryCount.get(i).getBufferZone();
for(int j=0; j< queryCount.get(i).getCnt(); j++) {
Double lat = queryList.get(k).getLat();
Double lon = queryList.get(k).getLon();
System.out.println(lon + "," + lat);
k++;
queryCoord = new Coordinate(lon , lat);
queryCoordList.add(queryCoord);
}
List<Coordinate> transQueryCoordList = areaUtils.transform(queryCoordList, "EPSG:4326", "EPSG:5181");
if("LINE".equals(queryType)){
queryBufferCoord = areaUtils.buffer(transQueryCoordList, queryBufferZone);
}
if("CIRCLE".equals(queryType)) {
queryBufferCoord = areaUtils.createCircle(queryCoord, queryBufferZone);
}
if("POLYGON".equals(queryType)) {
queryCoord = new Coordinate(queryCoordList.get(0).getX(),queryCoordList.get(0).getY());
queryCoordList.add(queryCoord);
Polygon polygon = geometryFactory.createPolygon(queryCoordList.toArray(new Coordinate[] {}));
Coordinate[] coords = polygon.getCoordinates();
queryBufferCoord.addAll(Arrays.asList(coords));
}
List<Coordinate> reverseQueryBufferList = areaUtils.transform(queryBufferCoord, "EPSG:5181","EPSG:4326");
queryCoord = new Coordinate(reverseQueryBufferList.get(0).getX(),reverseQueryBufferList.get(0).getY());
reverseQueryBufferList.add(queryCoord);
Coordinate[] rqPoly= null;
Coordinate[] queryPoly= null;
boolean rqContains = false;
boolean queryContains = false;
List<Coordinate> rqCooCheck = new ArrayList<>();
List<Coordinate> queryCooCheck = new ArrayList<>();
if("LINE".equals(type)) {
rqPoly = reverseBufferList.toArray(new Coordinate[] {});
} else {
rqPoly = bufferCoord.toArray(new Coordinate[] {});
}
if("LINE".equals(queryType)) {
queryPoly = reverseQueryBufferList.toArray(new Coordinate[] {});
} else {
queryPoly = queryBufferCoord.toArray(new Coordinate[] {});
}
for(Coordinate co : rqPoly) {
Coordinate coo = new Coordinate(co.x , co.y);
rqCooCheck.add(coo);
}
System.out.println("ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ");
for(Coordinate co : queryPoly) {
Coordinate coo = new Coordinate(co.x , co.y);
queryCooCheck.add(coo);
}
for(Coordinate co : queryPoly) {
Coordinate coo = new Coordinate(co.x , co.y);
boolean Q = areaUtils.contains(rqCooCheck, coo);
if(Q == true) {
rqContains = true;
break;
}
}
for(Coordinate co : rqPoly) {
Coordinate coo = new Coordinate(co.x , co.y);
boolean Q = areaUtils.contains(queryCooCheck, coo);
if(Q == true) {
queryContains = true;
break;
}
}
boolean check = FlightUtils.overlaps(rqPoly, queryPoly);
boolean checks = FlightUtils.overlaps(queryPoly, rqPoly);
if(check == true || checks == true || rqContains == true || queryContains == true) {
return false;
}
}
//비행계획서
}
if("POLYGON".equals(type)) {
Polygon polygon = geometryFactory.createPolygon(coordList.toArray(new Coordinate[] {}));
Coordinate[] coords = polygon.getCoordinates();
bufferCoord.addAll(Arrays.asList(coords));
}
List<Coordinate> reverseBufferList = areaUtils.transform(bufferCoord, "EPSG:5181","EPSG:4326");
int k=0;
for(int i = 0; i<queryCount.size(); i++) {
List<Coordinate> queryBufferCoord = new ArrayList<>();
List<Coordinate> queryCoordList = new ArrayList<>();
queryType = queryCount.get(i).getAreaType();
queryBufferZone = queryCount.get(i).getBufferZone();
for(int j=0; j< queryCount.get(i).getCnt(); j++) {
Double lat = queryList.get(k).getLat();
Double lon = queryList.get(k).getLon();
System.out.println(lon + "," + lat);
k++;
queryCoord = new Coordinate(lon , lat);
queryCoordList.add(queryCoord);
}
List<Coordinate> transQueryCoordList = areaUtils.transform(queryCoordList, "EPSG:4326", "EPSG:5181");
if("LINE".equals(queryType)){
queryBufferCoord = areaUtils.buffer(transQueryCoordList, queryBufferZone);
}
if("CIRCLE".equals(queryType)) {
queryBufferCoord = areaUtils.createCircle(queryCoord, queryBufferZone);
}
if("POLYGON".equals(queryType)) {
queryCoord = new Coordinate(queryCoordList.get(0).getX(),queryCoordList.get(0).getY());
queryCoordList.add(queryCoord);
Polygon polygon = geometryFactory.createPolygon(queryCoordList.toArray(new Coordinate[] {}));
Coordinate[] coords = polygon.getCoordinates();
queryBufferCoord.addAll(Arrays.asList(coords));
}
List<Coordinate> reverseQueryBufferList = areaUtils.transform(queryBufferCoord, "EPSG:5181","EPSG:4326");
queryCoord = new Coordinate(reverseQueryBufferList.get(0).getX(),reverseQueryBufferList.get(0).getY());
reverseQueryBufferList.add(queryCoord);
Coordinate[] rqPoly= null;
Coordinate[] queryPoly= null;
boolean rqContains = false;
boolean queryContains = false;
List<Coordinate> rqCooCheck = new ArrayList<>();
List<Coordinate> queryCooCheck = new ArrayList<>();
if("LINE".equals(type)) {
rqPoly = reverseBufferList.toArray(new Coordinate[] {});
} else {
rqPoly = bufferCoord.toArray(new Coordinate[] {});
}
if("LINE".equals(queryType)) {
queryPoly = reverseQueryBufferList.toArray(new Coordinate[] {});
} else {
queryPoly = queryBufferCoord.toArray(new Coordinate[] {});
}
for(Coordinate co : rqPoly) {
Coordinate coo = new Coordinate(co.x , co.y);
rqCooCheck.add(coo);
}
System.out.println("ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ");
for(Coordinate co : queryPoly) {
Coordinate coo = new Coordinate(co.x , co.y);
queryCooCheck.add(coo);
}
for(Coordinate co : queryPoly) {
Coordinate coo = new Coordinate(co.x , co.y);
boolean Q = areaUtils.contains(rqCooCheck, coo);
if(Q == true) {
rqContains = true;
break;
}
}
for(Coordinate co : rqPoly) {
Coordinate coo = new Coordinate(co.x , co.y);
boolean Q = areaUtils.contains(queryCooCheck, coo);
if(Q == true) {
queryContains = true;
break;
}
}
boolean check = FlightUtils.overlaps(rqPoly, queryPoly);
boolean checks = FlightUtils.overlaps(queryPoly, rqPoly);
if(check == true || checks == true || rqContains == true || queryContains == true) {
return false;
}
}
//비행계획서
String userId = jwtTokenUtil.getCstmrSnoByToken().toString();
FltPlanBas basEntity = BasFlightMapper.mapper.modelToEntity(rq);
basEntity.setDelYn("N");

Loading…
Cancel
Save