|
|
@ -1,7 +1,31 @@ |
|
|
|
package com.palnet.biz.jpa.repository.flt; |
|
|
|
package com.palnet.biz.jpa.repository.flt; |
|
|
|
|
|
|
|
|
|
|
|
import com.palnet.biz.api.bas.flight.model.*; |
|
|
|
import java.util.Date; |
|
|
|
import com.palnet.biz.jpa.entity.*; |
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import org.springframework.data.domain.PageImpl; |
|
|
|
|
|
|
|
import org.springframework.data.domain.Pageable; |
|
|
|
|
|
|
|
import org.springframework.stereotype.Repository; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.palnet.biz.api.bas.flight.model.BasFlightPlanArcrftModel; |
|
|
|
|
|
|
|
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.flight.model.BasFlightScheduleRs; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.entity.FltPlanBas; |
|
|
|
|
|
|
|
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.QCtrCntrlHstryArea; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.entity.QFltPlanArcrft; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.entity.QFltPlanArea; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.entity.QFltPlanAreaCoord; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.entity.QFltPlanBas; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.entity.QPtyCstmrDtl; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.entity.QPtyCstmrGroup; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.entity.QPtyGroupBas; |
|
|
|
import com.palnet.comn.utils.DateUtils; |
|
|
|
import com.palnet.comn.utils.DateUtils; |
|
|
|
import com.querydsl.core.BooleanBuilder; |
|
|
|
import com.querydsl.core.BooleanBuilder; |
|
|
|
import com.querydsl.core.group.GroupBy; |
|
|
|
import com.querydsl.core.group.GroupBy; |
|
|
@ -11,16 +35,11 @@ import com.querydsl.core.types.dsl.CaseBuilder; |
|
|
|
import com.querydsl.core.types.dsl.DateTemplate; |
|
|
|
import com.querydsl.core.types.dsl.DateTemplate; |
|
|
|
import com.querydsl.core.types.dsl.Expressions; |
|
|
|
import com.querydsl.core.types.dsl.Expressions; |
|
|
|
import com.querydsl.jpa.JPAExpressions; |
|
|
|
import com.querydsl.jpa.JPAExpressions; |
|
|
|
import com.querydsl.jpa.impl.JPAQuery; |
|
|
|
|
|
|
|
import com.querydsl.jpa.impl.JPAQueryFactory; |
|
|
|
import com.querydsl.jpa.impl.JPAQueryFactory; |
|
|
|
|
|
|
|
|
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
import lombok.extern.log4j.Log4j2; |
|
|
|
import lombok.extern.log4j.Log4j2; |
|
|
|
|
|
|
|
|
|
|
|
import org.springframework.stereotype.Repository; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.Date; |
|
|
|
|
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Log4j2 |
|
|
|
@Log4j2 |
|
|
|
@Repository |
|
|
|
@Repository |
|
|
|
@RequiredArgsConstructor |
|
|
|
@RequiredArgsConstructor |
|
|
@ -293,7 +312,7 @@ public class FltPlanQueryRepository { |
|
|
|
return models; |
|
|
|
return models; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public List<BasFlightPlanModel> aprvList(BasFlightPlanListRq rq, String userAccount) { |
|
|
|
public PageImpl<BasFlightPlanModel> aprvList(BasFlightPlanListRq rq, String userAccount, Pageable pageable) { |
|
|
|
QFltPlanBas bas = QFltPlanBas.fltPlanBas; |
|
|
|
QFltPlanBas bas = QFltPlanBas.fltPlanBas; |
|
|
|
QFltPlanArea area = QFltPlanArea.fltPlanArea; |
|
|
|
QFltPlanArea area = QFltPlanArea.fltPlanArea; |
|
|
|
|
|
|
|
|
|
|
@ -320,6 +339,8 @@ public class FltPlanQueryRepository { |
|
|
|
.leftJoin(area) |
|
|
|
.leftJoin(area) |
|
|
|
.on(bas.planSno.eq(area.planSno)) |
|
|
|
.on(bas.planSno.eq(area.planSno)) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
|
|
|
|
|
.offset(pageable.getOffset()) |
|
|
|
|
|
|
|
.limit(pageable.getPageSize()) |
|
|
|
.transform( |
|
|
|
.transform( |
|
|
|
GroupBy.groupBy(bas.planSno) |
|
|
|
GroupBy.groupBy(bas.planSno) |
|
|
|
.list(Projections.bean( |
|
|
|
.list(Projections.bean( |
|
|
@ -359,9 +380,80 @@ public class FltPlanQueryRepository { |
|
|
|
)) |
|
|
|
)) |
|
|
|
); |
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
return r; |
|
|
|
return new PageImpl<>(r,pageable, r.size()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public long aprvCount(BasFlightPlanListRq rq, String userAccount) { |
|
|
|
|
|
|
|
QFltPlanBas bas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
QFltPlanArea area = QFltPlanArea.fltPlanArea; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
|
|
|
|
// if (userAccount.equals("CREATER") || userAccount.equals("ADMIN")) {
|
|
|
|
|
|
|
|
if(userAccount != null) { |
|
|
|
|
|
|
|
if (userAccount.equals("MASTER") || userAccount.equals("LEADER")) { |
|
|
|
|
|
|
|
builder.and(bas.groupId.in(rq.getGroupId())); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
builder.and(bas.groupId.in(rq.getGroupId())); |
|
|
|
|
|
|
|
builder.and(bas.cstmrSno.eq(rq.getCstmrSno())); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
builder.and(bas.schFltStDt.goe(rq.getSchFltStDt())); |
|
|
|
|
|
|
|
builder.and(bas.schFltStDt.before(rq.getSchFltEndDt())); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (rq.getAprvlYn() != null && !"A".equals(rq.getAprvlYn())) { |
|
|
|
|
|
|
|
builder.and(bas.aprvlYn.eq(rq.getAprvlYn())); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
builder.and(bas.delYn.ne("Y")); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<BasFlightPlanModel> list = query |
|
|
|
|
|
|
|
.from(bas) |
|
|
|
|
|
|
|
.leftJoin(area) |
|
|
|
|
|
|
|
.on(bas.planSno.eq(area.planSno)) |
|
|
|
|
|
|
|
.where(builder) |
|
|
|
|
|
|
|
.transform( |
|
|
|
|
|
|
|
GroupBy.groupBy(bas.planSno) |
|
|
|
|
|
|
|
.list(Projections.bean( |
|
|
|
|
|
|
|
BasFlightPlanModel.class, |
|
|
|
|
|
|
|
bas.planSno, |
|
|
|
|
|
|
|
bas.groupId, |
|
|
|
|
|
|
|
bas.cstmrSno, |
|
|
|
|
|
|
|
bas.memberName, |
|
|
|
|
|
|
|
bas.email, |
|
|
|
|
|
|
|
bas.hpno, |
|
|
|
|
|
|
|
bas.clncd, |
|
|
|
|
|
|
|
bas.addr, |
|
|
|
|
|
|
|
bas.addrDtlCn, |
|
|
|
|
|
|
|
bas.zip, |
|
|
|
|
|
|
|
bas.schFltStDt, |
|
|
|
|
|
|
|
bas.schFltEndDt, |
|
|
|
|
|
|
|
bas.fltPurpose, |
|
|
|
|
|
|
|
bas.aprvlYn, |
|
|
|
|
|
|
|
bas.delYn, |
|
|
|
|
|
|
|
bas.createUserId, |
|
|
|
|
|
|
|
bas.createDt, |
|
|
|
|
|
|
|
bas.updateUserId, |
|
|
|
|
|
|
|
bas.updateDt, |
|
|
|
|
|
|
|
GroupBy.list(Projections.bean( |
|
|
|
|
|
|
|
BasFlightPlanAreaModel.class, |
|
|
|
|
|
|
|
area.planAreaSno, |
|
|
|
|
|
|
|
area.planSno, |
|
|
|
|
|
|
|
area.areaType, |
|
|
|
|
|
|
|
area.fltMethod, |
|
|
|
|
|
|
|
area.bufferZone, |
|
|
|
|
|
|
|
area.fltElev, |
|
|
|
|
|
|
|
area.createUserId, |
|
|
|
|
|
|
|
area.createDt, |
|
|
|
|
|
|
|
area.updateUserId, |
|
|
|
|
|
|
|
area.updateDt |
|
|
|
|
|
|
|
).skipNulls()).as("areaList") |
|
|
|
|
|
|
|
)) |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
long cnt = 0; |
|
|
|
|
|
|
|
for(BasFlightPlanModel lis : list) { |
|
|
|
|
|
|
|
cnt++; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return cnt; |
|
|
|
|
|
|
|
} |
|
|
|
public List<BasFlightScheduleRs> findSchedule(String searchDate) { |
|
|
|
public List<BasFlightScheduleRs> findSchedule(String searchDate) { |
|
|
|
QFltPlanBas fltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
QFltPlanBas fltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
QFltPlanArcrft fltPlanArcrft = QFltPlanArcrft.fltPlanArcrft; |
|
|
|
QFltPlanArcrft fltPlanArcrft = QFltPlanArcrft.fltPlanArcrft; |
|
|
|