|
|
@ -26,6 +26,7 @@ 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.BasFlightPlanPilotModel; |
|
|
|
import com.palnet.biz.api.bas.flight.model.BasFlightScheduleRs; |
|
|
|
import com.palnet.biz.api.bas.flight.model.BasFlightScheduleRs; |
|
|
|
import com.palnet.biz.api.comn.file.service.ComnFileService; |
|
|
|
import com.palnet.biz.api.comn.file.service.ComnFileService; |
|
|
|
|
|
|
|
import com.palnet.biz.api.main.dash.model.MainDashFlightListModel; |
|
|
|
import com.palnet.biz.api.main.dash.model.MainDashStcsModel; |
|
|
|
import com.palnet.biz.api.main.dash.model.MainDashStcsModel; |
|
|
|
import com.palnet.biz.api.main.statistics.model.FlightStcsValueModel; |
|
|
|
import com.palnet.biz.api.main.statistics.model.FlightStcsValueModel; |
|
|
|
import com.palnet.biz.jpa.entity.FltPlanBas; |
|
|
|
import com.palnet.biz.jpa.entity.FltPlanBas; |
|
|
@ -54,11 +55,18 @@ import com.palnet.comn.utils.InstantUtils; |
|
|
|
import com.querydsl.core.BooleanBuilder; |
|
|
|
import com.querydsl.core.BooleanBuilder; |
|
|
|
import com.querydsl.core.group.GroupBy; |
|
|
|
import com.querydsl.core.group.GroupBy; |
|
|
|
import com.querydsl.core.types.ConstantImpl; |
|
|
|
import com.querydsl.core.types.ConstantImpl; |
|
|
|
|
|
|
|
import com.querydsl.core.types.Expression; |
|
|
|
import com.querydsl.core.types.ExpressionUtils; |
|
|
|
import com.querydsl.core.types.ExpressionUtils; |
|
|
|
import com.querydsl.core.types.Projections; |
|
|
|
import com.querydsl.core.types.Projections; |
|
|
|
|
|
|
|
import com.querydsl.core.types.dsl.CaseBuilder; |
|
|
|
|
|
|
|
import com.querydsl.core.types.dsl.ComparableExpressionBase; |
|
|
|
|
|
|
|
import com.querydsl.core.types.dsl.DateTemplate; |
|
|
|
|
|
|
|
import com.querydsl.core.types.dsl.Expressions; |
|
|
|
|
|
|
|
import com.querydsl.core.types.dsl.StringTemplate; |
|
|
|
import com.querydsl.jpa.JPAExpressions; |
|
|
|
import com.querydsl.jpa.JPAExpressions; |
|
|
|
import com.querydsl.jpa.impl.JPAQuery; |
|
|
|
import com.querydsl.jpa.impl.JPAQuery; |
|
|
|
import com.querydsl.jpa.impl.JPAQueryFactory; |
|
|
|
import com.querydsl.jpa.impl.JPAQueryFactory; |
|
|
|
|
|
|
|
import com.querydsl.sql.SQLExpressions; |
|
|
|
|
|
|
|
|
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
@ -1851,8 +1859,6 @@ public class FltPlanQueryRepository { |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = getCurrentBooleanBuilder(groupId, authCheck, cate, qFltPlanBas); |
|
|
|
BooleanBuilder builder = getCurrentBooleanBuilder(groupId, authCheck, cate, qFltPlanBas); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<FltPlanBas> stcsValues = query |
|
|
|
List<FltPlanBas> stcsValues = query |
|
|
|
.select( |
|
|
|
.select( |
|
|
|
Projections.bean( |
|
|
|
Projections.bean( |
|
|
@ -1874,12 +1880,9 @@ public class FltPlanQueryRepository { |
|
|
|
builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
|
|
|
|
|
|
|
|
String dateFormat = "%Y-%m-%d"; |
|
|
|
|
|
|
|
BooleanExpression dateExpression = null; |
|
|
|
BooleanExpression dateExpression = null; |
|
|
|
switch (cate){ |
|
|
|
switch (cate){ |
|
|
|
case "-2" : |
|
|
|
case "-2" : |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dateExpression = |
|
|
|
dateExpression = |
|
|
|
Expressions.stringTemplate("DATE_FORMAT({0}, {1})", qFltPlanBas.createDt, "%Y-%m-%d") |
|
|
|
Expressions.stringTemplate("DATE_FORMAT({0}, {1})", qFltPlanBas.createDt, "%Y-%m-%d") |
|
|
|
.eq(LocalDate.now().minusDays(2).toString()); |
|
|
|
.eq(LocalDate.now().minusDays(2).toString()); |
|
|
@ -1915,4 +1918,59 @@ public class FltPlanQueryRepository { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public List<MainDashFlightListModel> getFlightDronList(String orderBy, String groupId){ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
QComIdntfBas cib = QComIdntfBas.comIdntfBas; |
|
|
|
|
|
|
|
QFltPlanArcrft fpa = QFltPlanArcrft.fltPlanArcrft; |
|
|
|
|
|
|
|
QFltPlanBas fpb = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
QPtyGroupBas pgb = QPtyGroupBas.ptyGroupBas; |
|
|
|
|
|
|
|
QFltPlanCtrCntrlRel fpccr = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel; |
|
|
|
|
|
|
|
QCtrCntrlBas ccb = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Expression<Integer> groupOrder = new CaseBuilder() |
|
|
|
|
|
|
|
.when(pgb.groupNm.eq(orderBy)).then(0) |
|
|
|
|
|
|
|
.otherwise(1); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(!groupId.equals("all")) { |
|
|
|
|
|
|
|
builder.and(pgb.groupId.eq(groupId)); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
Instant now = Instant.now(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<MainDashFlightListModel> result = query |
|
|
|
|
|
|
|
.select(Projections.bean(MainDashFlightListModel.class, |
|
|
|
|
|
|
|
pgb.groupNm, |
|
|
|
|
|
|
|
fpb.memberName, |
|
|
|
|
|
|
|
fpa.idntfNum, |
|
|
|
|
|
|
|
ccb.cntrlStDt, |
|
|
|
|
|
|
|
ccb.cntrlEndDt, |
|
|
|
|
|
|
|
Expressions.stringTemplate( |
|
|
|
|
|
|
|
"CONCAT(SEC_TO_TIME(TIME_TO_SEC(TIMEDIFF({0}, {1}))))", |
|
|
|
|
|
|
|
ccb.cntrlEndDt, |
|
|
|
|
|
|
|
ccb.cntrlStDt |
|
|
|
|
|
|
|
).as("totalFlightTime"), |
|
|
|
|
|
|
|
new CaseBuilder() |
|
|
|
|
|
|
|
.when(ccb.statusCd.eq("01")).then("비행 중") |
|
|
|
|
|
|
|
.when(ccb.statusCd.eq("99")).then("비행 완료") |
|
|
|
|
|
|
|
.otherwise("비행 대기 중").as("status") |
|
|
|
|
|
|
|
)) |
|
|
|
|
|
|
|
.from(fpa) |
|
|
|
|
|
|
|
.leftJoin(fpb).on(fpb.planSno.eq(fpa.planSno)) |
|
|
|
|
|
|
|
.leftJoin(pgb).on(pgb.groupId.eq(fpb.groupId)) |
|
|
|
|
|
|
|
.leftJoin(cib).on(cib.idntfNum.eq(fpa.idntfNum)) |
|
|
|
|
|
|
|
.leftJoin(fpccr).on(fpccr.planSno.eq(fpb.planSno)) |
|
|
|
|
|
|
|
.leftJoin(ccb).on(ccb.cntrlId.eq(fpccr.cntrlId)) |
|
|
|
|
|
|
|
.where( |
|
|
|
|
|
|
|
builder |
|
|
|
|
|
|
|
.and(fpb.schFltStDt.between(now, now.plus(Duration.ofDays(1)))) |
|
|
|
|
|
|
|
.and(fpb.schFltEndDt.between(now, now.plus(Duration.ofDays(1)))) |
|
|
|
|
|
|
|
.and(fpb.planSno.isNotNull()) |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
.orderBy(((ComparableExpressionBase<Integer>) groupOrder).desc(), cib.createDt.asc()) |
|
|
|
|
|
|
|
.fetch(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |