From 7aaaa2ac9d7458130e48eefb3d585df8457ae597 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?qkr7828=28=EB=B0=95=EC=9E=AC=EC=9A=B0=29?= <박재우@DESKTOP-EF7ECBO> Date: Wed, 12 Oct 2022 16:16:42 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B9=84=ED=96=89=EC=9D=B4=EB=A0=A5=20?= =?UTF-8?q?=ED=98=84=ED=99=A9=20-=20=EA=B6=8C=ED=95=9C=EB=B3=84=20?= =?UTF-8?q?=ED=95=84=ED=84=B0=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../anls/hstry/service/AnlsHstryService.java | 66 +++++++++++-------- .../ctr/CtrCntrlQueryRepository.java | 39 ++++++++--- .../repository/flt/FltPlanBasRepository.java | 10 ++- 3 files changed, 76 insertions(+), 39 deletions(-) diff --git a/src/main/java/com/palnet/biz/api/anls/hstry/service/AnlsHstryService.java b/src/main/java/com/palnet/biz/api/anls/hstry/service/AnlsHstryService.java index 4507ca4..4c595a6 100644 --- a/src/main/java/com/palnet/biz/api/anls/hstry/service/AnlsHstryService.java +++ b/src/main/java/com/palnet/biz/api/anls/hstry/service/AnlsHstryService.java @@ -95,37 +95,45 @@ public class AnlsHstryService { } } if("NORMAL".equals(groupAuth)) { - List idntfList = comIdntBasRepository.findIdntfNumber(cstmrSno); /* App 권한이 유저이면서 group 권한도 모두 NORMAL인 ID인 경우 본인이 생성한 기체만 조회 */ - if (idntfList.size() > 0) { - for (ComIdntfBas list : idntfList) { - List results = query.cntrlBasNormalHstryList(rq, list.getIdntfNum()); - if (results.size() > 0) { - resultList.addAll(results); - } - } - } - List basResult = fltPlanBasRepository.findByPlanSno(cstmrSno); /* App 권한이 유저이면서 group 권한도 모두 - NORMAL인 ID인 경우 cstmrSno로 비행계획서 조회 */ - for (FltPlanBas list : basResult) { - resultList.addAll(query.cntrlBasNormalPlanHstryList(rq, list.getPlanSno())); - } - List pilotResult = fltPlanPilotRepository.findByPlanSno(cstmrSno); /* App 권한이 유저이면서 group 권한도 - 모두 NORMAL인 ID인 경우 cstmrSno로 조종사 조회 */ - - for (FltPlanPilot list : pilotResult) { - resultList.addAll(query.cntrlBasNormalPlanHstryList(rq, list.getPlanSno())); +// List idntfList = comIdntBasRepository.findIdntfNumber(cstmrSno); /* App 권한이 유저이면서 group 권한도 모두 NORMAL인 ID인 경우 본인이 생성한 기체만 조회 */ +// if (idntfList.size() > 0) { +// for (ComIdntfBas list : idntfList) { +// List results = query.cntrlBasNormalHstryList(rq, list.getIdntfNum()); +// if (results.size() > 0) { +// resultList.addAll(results); +// } +// } +// } +// List basResult = fltPlanBasRepository.findByPlanSno(cstmrSno); /* App 권한이 유저이면서 group 권한도 모두 +// NORMAL인 ID인 경우 cstmrSno로 비행계획서 조회 */ +// for (FltPlanBas list : basResult) { +// resultList.addAll(query.cntrlBasNormalPlanHstryList(rq, list.getPlanSno())); +// } +// List pilotResult = fltPlanPilotRepository.findByPlanSno(cstmrSno); /* App 권한이 유저이면서 group 권한도 +// 모두 NORMAL인 ID인 경우 cstmrSno로 조종사 조회 */ +// +// for (FltPlanPilot list : pilotResult) { +// resultList.addAll(query.cntrlBasNormalPlanHstryList(rq, list.getPlanSno())); +// } +// +// Comparator comparator = (o1, o2) -> { +// if (DateUtils.diffSecond(o1.getCntrlStDt(), o2.getCntrlStDt()) < 0) { +// return 1; +// } else if(DateUtils.diffSecond(o1.getCntrlStDt(), o2.getCntrlStDt()) > 0) { +// return -1; +// } +// return 0; +// }; +// Collections.sort(resultList, comparator); + List idntfList = comIdntBasRepository.findIdntfNumber(cstmrSno); + List basResult = fltPlanBasRepository.findByPlanSno(cstmrSno); + List pilotList = fltPlanPilotRepository.findByPlanSno(cstmrSno); + List pilotResult = new ArrayList<>(); + for(FltPlanPilot list : pilotList) { + pilotResult = fltPlanBasRepository.findBasList(list.getPlanSno()); } + resultList = query.cntrlBasNormalHstryList(rq, idntfList, basResult, pilotResult); - Comparator comparator = (o1, o2) -> { - if (DateUtils.diffSecond(o1.getCntrlStDt(), o2.getCntrlStDt()) < 0) { - return 1; - } else if(DateUtils.diffSecond(o1.getCntrlStDt(), o2.getCntrlStDt()) > 0) { - return -1; - } - return 0; - }; - Collections.sort(resultList, comparator); - long totalPage = resultList.size() % rq.getRecord() > 0 ? (resultList.size()/rq.getRecord()) + 1 : resultList.size()/rq.getRecord(); PageImpl result = new PageImpl<>(resultList, pageable, resultList.size()); response.setItems(result.getContent()); diff --git a/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java b/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java index 8748001..6b71edc 100644 --- a/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java +++ b/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java @@ -31,12 +31,16 @@ import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlDtlModel; import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlEndModel; import com.palnet.biz.api.main.dash.model.MainDashStcsModel; import com.palnet.biz.jpa.entity.ComArcrftBas; +import com.palnet.biz.jpa.entity.ComIdntfBas; import com.palnet.biz.jpa.entity.CtrCntrlHstryArea; +import com.palnet.biz.jpa.entity.FltPlanBas; +import com.palnet.biz.jpa.entity.FltPlanPilot; import com.palnet.biz.jpa.entity.QComArcrftBas; import com.palnet.biz.jpa.entity.QComIdntfBas; import com.palnet.biz.jpa.entity.QCtrCntrlBas; import com.palnet.biz.jpa.entity.QCtrCntrlHstry; import com.palnet.biz.jpa.entity.QCtrCntrlHstryArea; +import com.palnet.biz.jpa.entity.QFltPlanBas; import com.palnet.biz.jpa.entity.QFltPlanCtrCntrlRel; import com.palnet.biz.jpa.entity.QPtyCstmrBas; import com.palnet.biz.jpa.entity.QPtyCstmrGroup; @@ -171,7 +175,6 @@ public class CtrCntrlQueryRepository{ BooleanBuilder builder = new BooleanBuilder(); builder.and(qCntrlBasEntity.statusCd.eq("99")); - log.debug("Params ===> " +rq.toString()); Calendar end = Calendar.getInstance(); end.setTime(DateUtils.stringToDate(rq.getEndDate())); end.add(Calendar.DATE, 1); @@ -256,12 +259,17 @@ public class CtrCntrlQueryRepository{ return result; } -public List cntrlBasNormalHstryList(AnlsHstryGroupModel rq, String idntfNum){ +public List cntrlBasNormalHstryList(AnlsHstryGroupModel rq, List idntfList, List basResult, List pilotResult){ QCtrCntrlBas qCntrlBasEntity = QCtrCntrlBas.ctrCntrlBas; QCtrCntrlHstryArea qCntrlHstryAreaEntity = QCtrCntrlHstryArea.ctrCntrlHstryArea; + QFltPlanCtrCntrlRel qFltPlanCtrCntrlRelEntity = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel; + QFltPlanBas qFltPlanBasEntity = QFltPlanBas.fltPlanBas; BooleanBuilder builder = new BooleanBuilder(); + BooleanBuilder idntfBuilder = new BooleanBuilder(); + BooleanBuilder basBuilder = new BooleanBuilder(); + BooleanBuilder pilotBuilder = new BooleanBuilder(); Calendar end = Calendar.getInstance(); end.setTime(DateUtils.stringToDate(rq.getEndDate())); @@ -271,7 +279,16 @@ public List cntrlBasNormalHstryList(AnlsHstryGroupModel rq, Stri builder.and(qCntrlBasEntity.cntrlEndDt.before(endDate)); builder.and(qCntrlBasEntity.statusCd.eq("99")); - builder.and(qCntrlBasEntity.idntfNum.eq(idntfNum)); + for(ComIdntfBas list : idntfList) { + idntfBuilder.and(qCntrlBasEntity.idntfNum.eq(list.getIdntfNum())); + } + for(FltPlanBas list : basResult) { + basBuilder.and(qFltPlanCtrCntrlRelEntity.planSno.eq(list.getPlanSno())); + } + for(FltPlanBas list : pilotResult) { + pilotBuilder.and(qFltPlanCtrCntrlRelEntity.planSno.eq(list.getPlanSno())); + } + if(!StringUtils.isEmpty(rq.getSearch1())) { builder.and(qCntrlBasEntity.idntfNum.like("%" + rq.getSearch1() + "%")); } @@ -313,7 +330,15 @@ public List cntrlBasNormalHstryList(AnlsHstryGroupModel rq, Stri .leftJoin(qCntrlHstryAreaEntity) .on(qCntrlBasEntity.cntrlId.eq(qCntrlHstryAreaEntity.cntrlId)) .on(qCntrlHstryAreaEntity.actnType.eq("01")) - .where(builder) + .leftJoin(qFltPlanCtrCntrlRelEntity) + .on(qCntrlBasEntity.cntrlId.eq(qFltPlanCtrCntrlRelEntity.cntrlId)) + .leftJoin(qFltPlanBasEntity) + .on(qFltPlanCtrCntrlRelEntity.planSno.eq(qFltPlanBasEntity.planSno)) + .where((builder) + .and( + (idntfBuilder) + .or(basBuilder) + .or(pilotBuilder))) .orderBy(qCntrlBasEntity.cntrlStDt.asc()) .fetch(); @@ -354,8 +379,7 @@ public List cntrlBasNormalHstryList(AnlsHstryGroupModel rq, Stri QCtrCntrlHstryArea qCntrlHstryAreaEntity = QCtrCntrlHstryArea.ctrCntrlHstryArea; BooleanBuilder builder = new BooleanBuilder(); - - log.debug("Params ===> " +rq.toString()); + Calendar end = Calendar.getInstance(); end.setTime(DateUtils.stringToDate(rq.getEndDate())); end.add(Calendar.DATE, 1); @@ -449,7 +473,7 @@ public List cntrlBasNormalHstryList(AnlsHstryGroupModel rq, Stri BooleanBuilder builder = new BooleanBuilder(); - log.debug("Params ===> " +rq.toString()); + Calendar end = Calendar.getInstance(); end.setTime(DateUtils.stringToDate(rq.getEndDate())); end.add(Calendar.DATE, 1); @@ -545,7 +569,6 @@ public List cntrlBasNormalPlanList(AnlsHstryRqModel rq, int plan BooleanBuilder builder = new BooleanBuilder(); - log.debug("Params ===> " +rq.toString()); Calendar end = Calendar.getInstance(); end.setTime(DateUtils.stringToDate(rq.getEndDate())); end.add(Calendar.DATE, 1); diff --git a/src/main/java/com/palnet/biz/jpa/repository/flt/FltPlanBasRepository.java b/src/main/java/com/palnet/biz/jpa/repository/flt/FltPlanBasRepository.java index 29a220a..b385513 100644 --- a/src/main/java/com/palnet/biz/jpa/repository/flt/FltPlanBasRepository.java +++ b/src/main/java/com/palnet/biz/jpa/repository/flt/FltPlanBasRepository.java @@ -39,6 +39,12 @@ public interface FltPlanBasRepository extends JpaRepository Optional findByPlanSnoAndDelYnNot(Integer planSno, String delYn); @Query("Select f from FltPlanBas f " + - "where f.cstmrSno = :cstmrSno " ) - List findByPlanSno(@Param("cstmrSno")int cstmrSno); + "where f.cstmrSno = :cstmrSno " + + "and f.delYn = 'N' " ) + List findByPlanSno(@Param("cstmrSno")int cstmrSno); + + @Query("Select f from FltPlanBas f " + + "where f.planSno = :planSno " + + "and f.delYn = 'N' " ) + List findBasList(@Param("planSno")int planSno); }