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 4c595a6..78a8105 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 @@ -83,7 +83,7 @@ public class AnlsHstryService { List groupAuthList = jwtTokenUtil.getGroupAuthByToken(); String groupAuth = null; String appAuth = jwtTokenUtil.getUserAuthByToken(); - ListresultList = new ArrayList<>(); + PageImplresultList; ComnPagingRs response = new ComnPagingRs<>(); Pageable pageable = PageRequest.of(rq.getPage()-1, rq.getRecord()); @@ -94,56 +94,30 @@ public class AnlsHstryService { groupAuth = list.getGroupAuthCd(); } } - 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())); -// } -// -// 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); - - 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()); - response.setTotal(resultList.size()); - response.setTotalPage(totalPage); - response.setPage(rq.getPage()); - - return response; - } - } + } + if("NORMAL".equals(groupAuth)) { + 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, pageable, idntfList, basResult, pilotResult); + + long total = query.cntrlBasNormalHstryCount(rq, idntfList, basResult, pilotResult); + + long totalPage = total % rq.getRecord() > 0 ? total/rq.getRecord() + 1 : total/rq.getRecord(); + response.setItems(resultList.getContent()); + response.setTotal(total); + response.setTotalPage(totalPage); + response.setPage(rq.getPage()); + + return response; + } + PageImpl result = query.listCntrlBasRs(rq, pageable); long total = query.countCntrlBasRs(rq, cstmrSno); 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 6b71edc..4d34d05 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 @@ -259,7 +259,7 @@ public class CtrCntrlQueryRepository{ return result; } -public List cntrlBasNormalHstryList(AnlsHstryGroupModel rq, List idntfList, List basResult, List pilotResult){ + public PageImpl cntrlBasNormalHstryList(AnlsHstryGroupModel rq, Pageable pageable, List idntfList, List basResult, List pilotResult){ QCtrCntrlBas qCntrlBasEntity = QCtrCntrlBas.ctrCntrlBas; QCtrCntrlHstryArea qCntrlHstryAreaEntity = QCtrCntrlHstryArea.ctrCntrlHstryArea; @@ -293,7 +293,7 @@ public List cntrlBasNormalHstryList(AnlsHstryGroupModel rq, List builder.and(qCntrlBasEntity.idntfNum.like("%" + rq.getSearch1() + "%")); } - ArrayList result = new ArrayList(); + List result = new ArrayList<>(); List queryList = query.select(Projections.bean(AnlsHstryModel.class , qCntrlBasEntity.cntrlId, @@ -340,6 +340,8 @@ public List cntrlBasNormalHstryList(AnlsHstryGroupModel rq, List .or(basBuilder) .or(pilotBuilder))) .orderBy(qCntrlBasEntity.cntrlStDt.asc()) + .offset(pageable.getOffset()) + .limit(pageable.getPageSize()) .fetch(); for(AnlsHstryModel model: queryList) { @@ -370,7 +372,7 @@ public List cntrlBasNormalHstryList(AnlsHstryGroupModel rq, List - return result; + return new PageImpl<>(result, pageable, result.size()); } public List cntrlBasNormalList(AnlsHstryRqModel rq, String idntfNum){ @@ -465,15 +467,18 @@ public List cntrlBasNormalHstryList(AnlsHstryGroupModel rq, List return result; } - public List cntrlBasNormalPlanHstryList(AnlsHstryGroupModel rq, int planSno){ + public long cntrlBasNormalHstryCount(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())); end.add(Calendar.DATE, 1); @@ -481,15 +486,24 @@ public List cntrlBasNormalHstryList(AnlsHstryGroupModel rq, List builder.and(qCntrlBasEntity.cntrlStDt.after(DateUtils.stringToDate(rq.getStDate()))); builder.and(qCntrlBasEntity.cntrlEndDt.before(endDate)); - builder.and(qFltPlanCtrCntrlRelEntity.planSno.eq(planSno)); builder.and(qCntrlBasEntity.statusCd.eq("99")); + 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() + "%")); } - ArrayList result = new ArrayList(); + - List queryList = query.select(Projections.bean(AnlsHstryModel.class , + long result = query.select(Projections.bean(AnlsHstryModel.class , qCntrlBasEntity.cntrlId, qCntrlBasEntity.idntfNum, qCntrlBasEntity.statusCd, @@ -526,38 +540,16 @@ public List cntrlBasNormalHstryList(AnlsHstryGroupModel rq, List .on(qCntrlHstryAreaEntity.actnType.eq("01")) .leftJoin(qFltPlanCtrCntrlRelEntity) .on(qCntrlBasEntity.cntrlId.eq(qFltPlanCtrCntrlRelEntity.cntrlId)) - .where(builder) + .leftJoin(qFltPlanBasEntity) + .on(qFltPlanCtrCntrlRelEntity.planSno.eq(qFltPlanBasEntity.planSno)) + .where((builder) + .and( + (idntfBuilder) + .or(basBuilder) + .or(pilotBuilder))) .orderBy(qCntrlBasEntity.cntrlStDt.asc()) - .fetch(); - - for(AnlsHstryModel model: queryList) { - String addr = ""; - - if(!StringUtils.isEmpty(model.getArea1())) { - addr = addr + " " + model.getArea1(); - } - - if(!StringUtils.isEmpty(model.getArea2())) { - addr = addr + " " + model.getArea2(); - } - - if(!StringUtils.isEmpty(model.getArea3())) { - addr = addr + " " + model.getArea3(); - } - - if(!StringUtils.isEmpty(model.getLandNm())) { - addr = addr + " " + model.getLandNm(); - } + .fetchCount(); - if(!StringUtils.isEmpty(model.getLandNum())) { - addr = addr + " " + model.getLandNum(); - } - model.setStArea(addr); - result.add(model); - } - - - return result; }