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 4138414..6543eca 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 @@ -61,10 +61,14 @@ public class AnlsHstryService { Pageable pageable = PageRequest.of(rq.getPage()-1, rq.getRecord()); PageImpl list = query.listCntrlBasRs(rq, cstmrSno, userAccount, pageable); + long total = query.countCntrlBasRs(rq, cstmrSno, userAccount); + + long totalPage = total % rq.getRecord() > 0 ? (total/rq.getRecord()) + 1 : total/rq.getRecord(); + response.setItems(list.getContent()); - response.setTotal(list.getTotalElements()); - response.setTotalPage(list.getTotalPages()); + response.setTotal(total); response.setPage(rq.getPage()); + response.setTotalPage(totalPage); return response; } 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 a5cafa0..8c2f546 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 @@ -155,8 +155,57 @@ public class CtrCntrlQueryRepository{ return result; } - @Cacheable(value = "cntrl-bas") - public PageImpl listCntrlBasRs(AnlsHstryGroupModel rq, int cstmrSno , String userAccount, Pageable pageable){ + @Cacheable(value = "cntrl-count") + public long countCntrlBasRs(AnlsHstryGroupModel rq, int cstmrSno, String userAccount) { + QCtrCntrlBas qCntrlBasEntity = QCtrCntrlBas.ctrCntrlBas; + QCtrCntrlHstryArea qCntrlHstryAreaEntity = QCtrCntrlHstryArea.ctrCntrlHstryArea; + QComIdntfBas qComIdntfBasEntity = QComIdntfBas.comIdntfBas; + QComArcrftBas qComArcrftBasEntity = QComArcrftBas.comArcrftBas; + QFltPlanBas qFltPlanBasEntity = QFltPlanBas.fltPlanBas; + QPtyCstmrGroup qPtyCstmrGroupEntity = QPtyCstmrGroup.ptyCstmrGroup; + + BooleanBuilder builder = new BooleanBuilder(); + + builder.and(qCntrlBasEntity.statusCd.eq("99")); + log.debug("Params ===> " +rq.toString()); + if(userAccount.equals("USER")) { + builder.and(qFltPlanBasEntity.cstmrSno.eq(cstmrSno)); + builder.and(qComArcrftBasEntity.groupId.eq(rq.getGroupId())); + } else { + builder.and(qComArcrftBasEntity.groupId.eq(rq.getGroupId())); + } + + Calendar end = Calendar.getInstance(); + end.setTime(DateUtils.stringToDate(rq.getEndDate())); + end.add(Calendar.DATE, 1); + Date endDate = end.getTime(); + builder.and(qCntrlBasEntity.cntrlStDt.after(DateUtils.stringToDate(rq.getStDate()))); + builder.and(qCntrlBasEntity.cntrlEndDt.before(endDate)); + + long count = query + .select(qCntrlBasEntity) + .from(qCntrlBasEntity) + .leftJoin(qCntrlHstryAreaEntity) + .on(qCntrlBasEntity.cntrlId.eq(qCntrlHstryAreaEntity.cntrlId)) + .on(qCntrlHstryAreaEntity.actnType.eq("01")) + .leftJoin(qComIdntfBasEntity) + .on(qCntrlBasEntity.idntfNum.eq(qComIdntfBasEntity.idntfNum)) + .leftJoin(qComArcrftBasEntity) + .on(qComIdntfBasEntity.arcrftSno.eq(qComArcrftBasEntity.arcrftSno)) + .leftJoin(qFltPlanBasEntity) + .on(qComArcrftBasEntity.groupId.eq(qFltPlanBasEntity.groupId)) + .leftJoin(qPtyCstmrGroupEntity) + .on(qComArcrftBasEntity.groupId.eq(qPtyCstmrGroupEntity.groupId)) + .where(builder) + .fetchCount(); + + return count; + + } + + + @Cacheable(value = "cntrl-list") + public PageImpl listCntrlBasRs(AnlsHstryGroupModel rq, int cstmrSno, String userAccount, Pageable pageable){ QCtrCntrlBas qCntrlBasEntity = QCtrCntrlBas.ctrCntrlBas; QCtrCntrlHstryArea qCntrlHstryAreaEntity = QCtrCntrlHstryArea.ctrCntrlHstryArea; @@ -237,29 +286,6 @@ public class CtrCntrlQueryRepository{ .limit(pageable.getPageSize()) .fetch(); - // 전체 카운트 - long count = 0; - if(queryList.size() > 0) { - count = query - .select(qCntrlBasEntity) - .from(qCntrlBasEntity) - .leftJoin(qCntrlHstryAreaEntity) - .on(qCntrlBasEntity.cntrlId.eq(qCntrlHstryAreaEntity.cntrlId)) - .on(qCntrlHstryAreaEntity.actnType.eq("01")) - .leftJoin(qComIdntfBasEntity) - .on(qCntrlBasEntity.idntfNum.eq(qComIdntfBasEntity.idntfNum)) - .leftJoin(qComArcrftBasEntity) - .on(qComIdntfBasEntity.arcrftSno.eq(qComArcrftBasEntity.arcrftSno)) - .leftJoin(qFltPlanBasEntity) - .on(qComArcrftBasEntity.groupId.eq(qFltPlanBasEntity.groupId)) - .leftJoin(qPtyCstmrGroupEntity) - .on(qComArcrftBasEntity.groupId.eq(qPtyCstmrGroupEntity.groupId)) - .where(builder) - .fetchCount(); - } - - - List result = new ArrayList<>(); for(AnlsHstryRsModel model: queryList) { String addr = ""; @@ -286,10 +312,8 @@ public class CtrCntrlQueryRepository{ model.setStArea(addr); result.add(model); } - - - return new PageImpl<>(result, pageable, count); + return new PageImpl<>(result, pageable, result.size()); } /**