Browse Source

비행운항 스케줄 목록 작업

Test
노승철 2 years ago
parent
commit
0a9e4ae74e
  1. 28
      src/main/java/com/palnet/biz/api/bas/flight/controller/BasFlightController.java
  2. 22
      src/main/java/com/palnet/biz/api/bas/flight/model/BasFlightScheduleRs.java
  3. 17
      src/main/java/com/palnet/biz/api/bas/flight/service/BasFlightService.java
  4. 58
      src/main/java/com/palnet/biz/jpa/repository/flt/FltPlanQueryRepository.java

28
src/main/java/com/palnet/biz/api/bas/flight/controller/BasFlightController.java

@ -15,6 +15,7 @@ import org.json.simple.parser.ParseException;
import org.springframework.core.env.Environment;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
@ -22,6 +23,8 @@ import org.springframework.web.bind.annotation.*;
import java.io.*;
import java.net.URLEncoder;
import java.time.LocalDate;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -40,7 +43,7 @@ public class BasFlightController {
}
@GetMapping("/area")
public ResponseEntity<Object> getAirArea() throws IOException, ParseException {
public ResponseEntity<Object> findAirSpace() throws IOException, ParseException {
// 1. file read
Resource resource = new ClassPathResource("air/airgeo.json");
InputStream jsonInputStream = resource.getInputStream();
@ -64,7 +67,7 @@ public class BasFlightController {
// 비행계획서 조회
@GetMapping(value = "/plan/list")
public ResponseEntity<? extends BasicResponse> listPlan(BasFlightPlanListRq rq) {
public ResponseEntity<? extends BasicResponse> findPlanList(BasFlightPlanListRq rq) {
List<BasFlightPlanModel> result = null;
// System.out.println(rq);
try {
@ -213,7 +216,7 @@ public class BasFlightController {
// 비행계획서 리스트(승인)
@GetMapping(value = "/aprv/list")
public ResponseEntity<? extends BasicResponse> aprvList(BasFlightPlanListRq rq) {
public ResponseEntity<? extends BasicResponse> findAprvList(BasFlightPlanListRq rq) {
List<BasFlightPlanModel> result = null;
try {
result = basFlightService.aprvList(rq);
@ -227,7 +230,7 @@ public class BasFlightController {
}
// 비행계획서 승인/미승인
@PutMapping(value = "/aprv/proc")
public ResponseEntity<? extends BasicResponse> aprvProc(@RequestBody BasFlightAprovRq rq) {
public ResponseEntity<? extends BasicResponse> updateAprvProc(@RequestBody BasFlightAprovRq rq) {
Map<String, Object> resultMap = new HashMap<String, Object>();
try {
int result = basFlightService.aprovePlan(rq);
@ -287,4 +290,21 @@ public class BasFlightController {
return ResponseEntity.ok().body(new SuccessResponse<>(obj));
}
@GetMapping("/schedule")
public ResponseEntity<? extends BasicResponse> findSchedule(@RequestParam("searchDate") String searchDate) {
List<BasFlightScheduleRs> response;
try {
response = basFlightService.findSchecdule(searchDate);
} catch (Exception e) {
log.error("IGNORE : {}", e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(new ErrorResponse("Server Error", "-1"));
}
return ResponseEntity.ok().body(new SuccessResponse<List>(response));
}
}

22
src/main/java/com/palnet/biz/api/bas/flight/model/BasFlightScheduleRs.java

@ -0,0 +1,22 @@
package com.palnet.biz.api.bas.flight.model;
import lombok.Data;
import java.util.Date;
@Data
public class BasFlightScheduleRs {
private String groupId;
private String groupNm;
private String memberName;
private String ownerNm;
private String idntfNum;
private Date schFltStDt;
private Date schFltEndDt;
private String cntrlId;
private Date cntrlStDt;
private Date cntrlEndDt;
private String statusCd;
}

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

@ -8,10 +8,12 @@ import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.palnet.biz.api.bas.flight.model.*;
import com.palnet.comn.code.ErrorCode;
import com.palnet.comn.exception.CustomException;
import org.apache.commons.lang3.StringUtils;
@ -20,14 +22,6 @@ import org.springframework.stereotype.Service;
import com.palnet.biz.api.acnt.jwt.model.JwtGroupModel;
import com.palnet.biz.api.acnt.jwt.utils.JwtTokenUtil;
import com.palnet.biz.api.bas.flight.model.BasFlightAprovRq;
import com.palnet.biz.api.bas.flight.model.BasFlightPlanArcrftModel;
import com.palnet.biz.api.bas.flight.model.BasFlightPlanAreaCoordModel;
import com.palnet.biz.api.bas.flight.model.BasFlightPlanAreaCoordRq;
import com.palnet.biz.api.bas.flight.model.BasFlightPlanAreaModel;
import com.palnet.biz.api.bas.flight.model.BasFlightPlanListRq;
import com.palnet.biz.api.bas.flight.model.BasFlightPlanModel;
import com.palnet.biz.api.bas.flight.model.BasFlightPlanPilotModel;
import com.palnet.biz.api.bas.group.model.BasGroupJoinModel;
import com.palnet.biz.jpa.entity.FltPlanArcrft;
import com.palnet.biz.jpa.entity.FltPlanArea;
@ -597,4 +591,11 @@ public class BasFlightService {
throw new RuntimeException("API 응답을 읽는데 실패했습니다.", e);
}
}
public List<BasFlightScheduleRs> findSchecdule(String searchDate) {
List<BasFlightScheduleRs> schedule = fltPlanQueryRepository.findSchedule(searchDate);
return schedule;
}
}

58
src/main/java/com/palnet/biz/jpa/repository/flt/FltPlanQueryRepository.java

@ -4,9 +4,15 @@ import com.palnet.biz.api.bas.flight.model.*;
import com.palnet.biz.jpa.entity.*;
import com.palnet.comn.utils.DateUtils;
import com.querydsl.core.BooleanBuilder;
import com.querydsl.core.Tuple;
import com.querydsl.core.group.GroupBy;
import com.querydsl.core.types.ConstantImpl;
import com.querydsl.core.types.ExpressionUtils;
import com.querydsl.core.types.Predicate;
import com.querydsl.core.types.Projections;
import com.querydsl.core.types.dsl.DateTemplate;
import com.querydsl.core.types.dsl.Expressions;
import com.querydsl.jpa.JPAExpressions;
import com.querydsl.jpa.impl.JPAQueryFactory;
import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2;
@ -14,6 +20,10 @@ import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Repository;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.Date;
import java.util.List;
@Log4j2
@ -354,4 +364,52 @@ public class FltPlanQueryRepository {
return r;
}
public List<BasFlightScheduleRs> findSchedule(String searchDate) {
QFltPlanBas fltPlanBas = QFltPlanBas.fltPlanBas;
QFltPlanArcrft fltPlanArcrft = QFltPlanArcrft.fltPlanArcrft;
QCtrCntrlBas cntrlBas = QCtrCntrlBas.ctrCntrlBas;
QPtyGroupBas groupBas = QPtyGroupBas.ptyGroupBas;
BooleanBuilder builder = new BooleanBuilder();
DateTemplate<Date> startDate = Expressions.dateTemplate(
Date.class,
"DATE({0})",
fltPlanBas.schFltStDt);
builder.and(startDate.eq(DateUtils.stringToDate(searchDate)))
.and(fltPlanBas.aprvlYn.eq("Y"));
List<BasFlightScheduleRs> querys = query.select(
Projections.bean(
BasFlightScheduleRs.class,
fltPlanBas.groupId,
ExpressionUtils.as(
JPAExpressions.select(groupBas.groupNm)
.from(groupBas)
.where(groupBas.groupId.eq(fltPlanBas.groupId)),"groupNm"
),
fltPlanBas.memberName,
fltPlanArcrft.ownerNm,
fltPlanArcrft.idntfNum,
fltPlanBas.schFltStDt,
fltPlanBas.schFltEndDt,
cntrlBas.cntrlId,
cntrlBas.cntrlStDt,
cntrlBas.cntrlEndDt,
cntrlBas.statusCd
)
)
.from(fltPlanBas)
.leftJoin(fltPlanArcrft)
.on(fltPlanBas.planSno.eq(fltPlanArcrft.planSno))
.leftJoin(cntrlBas)
.on(fltPlanArcrft.idntfNum.eq(cntrlBas.idntfNum))
.where(builder)
.fetch();
return querys;
}
}
Loading…
Cancel
Save