From 0a9e4ae74e1eaecea78267024630fb3f27ea99cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?scnoh=28=EB=85=B8=EC=8A=B9=EC=B2=A0=29?= Date: Fri, 30 Sep 2022 16:39:49 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B9=84=ED=96=89=EC=9A=B4=ED=95=AD=20?= =?UTF-8?q?=EC=8A=A4=EC=BC=80=EC=A4=84=20=EB=AA=A9=EB=A1=9D=20=EC=9E=91?= =?UTF-8?q?=EC=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BasFlightController.java | 28 +++++++-- .../bas/flight/model/BasFlightScheduleRs.java | 22 +++++++ .../bas/flight/service/BasFlightService.java | 17 +++--- .../flt/FltPlanQueryRepository.java | 58 +++++++++++++++++++ 4 files changed, 113 insertions(+), 12 deletions(-) create mode 100644 src/main/java/com/palnet/biz/api/bas/flight/model/BasFlightScheduleRs.java diff --git a/src/main/java/com/palnet/biz/api/bas/flight/controller/BasFlightController.java b/src/main/java/com/palnet/biz/api/bas/flight/controller/BasFlightController.java index cc4f3e3..2a22bea 100644 --- a/src/main/java/com/palnet/biz/api/bas/flight/controller/BasFlightController.java +++ b/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 getAirArea() throws IOException, ParseException { + public ResponseEntity 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 listPlan(BasFlightPlanListRq rq) { + public ResponseEntity findPlanList(BasFlightPlanListRq rq) { List result = null; // System.out.println(rq); try { @@ -213,7 +216,7 @@ public class BasFlightController { // 비행계획서 리스트(승인) @GetMapping(value = "/aprv/list") - public ResponseEntity aprvList(BasFlightPlanListRq rq) { + public ResponseEntity findAprvList(BasFlightPlanListRq rq) { List result = null; try { result = basFlightService.aprvList(rq); @@ -227,7 +230,7 @@ public class BasFlightController { } // 비행계획서 승인/미승인 @PutMapping(value = "/aprv/proc") - public ResponseEntity aprvProc(@RequestBody BasFlightAprovRq rq) { + public ResponseEntity updateAprvProc(@RequestBody BasFlightAprovRq rq) { Map resultMap = new HashMap(); try { int result = basFlightService.aprovePlan(rq); @@ -287,4 +290,21 @@ public class BasFlightController { return ResponseEntity.ok().body(new SuccessResponse<>(obj)); } + @GetMapping("/schedule") + public ResponseEntity findSchedule(@RequestParam("searchDate") String searchDate) { + List 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(response)); + } + } diff --git a/src/main/java/com/palnet/biz/api/bas/flight/model/BasFlightScheduleRs.java b/src/main/java/com/palnet/biz/api/bas/flight/model/BasFlightScheduleRs.java new file mode 100644 index 0000000..b15c776 --- /dev/null +++ b/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; + +} diff --git a/src/main/java/com/palnet/biz/api/bas/flight/service/BasFlightService.java b/src/main/java/com/palnet/biz/api/bas/flight/service/BasFlightService.java index 2a681cf..5da1215 100644 --- a/src/main/java/com/palnet/biz/api/bas/flight/service/BasFlightService.java +++ b/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 findSchecdule(String searchDate) { + + List schedule = fltPlanQueryRepository.findSchedule(searchDate); + + return schedule; + } } diff --git a/src/main/java/com/palnet/biz/jpa/repository/flt/FltPlanQueryRepository.java b/src/main/java/com/palnet/biz/jpa/repository/flt/FltPlanQueryRepository.java index 76e5cfa..56d5bcd 100644 --- a/src/main/java/com/palnet/biz/jpa/repository/flt/FltPlanQueryRepository.java +++ b/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 findSchedule(String searchDate) { + QFltPlanBas fltPlanBas = QFltPlanBas.fltPlanBas; + QFltPlanArcrft fltPlanArcrft = QFltPlanArcrft.fltPlanArcrft; + QCtrCntrlBas cntrlBas = QCtrCntrlBas.ctrCntrlBas; + + QPtyGroupBas groupBas = QPtyGroupBas.ptyGroupBas; + + BooleanBuilder builder = new BooleanBuilder(); + + DateTemplate startDate = Expressions.dateTemplate( + Date.class, + "DATE({0})", + fltPlanBas.schFltStDt); + + builder.and(startDate.eq(DateUtils.stringToDate(searchDate))) + .and(fltPlanBas.aprvlYn.eq("Y")); + + List 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; + } } \ No newline at end of file