Browse Source

query instant 형변환 변경 , 조건 변경

pull/16/head
박재우 10 months ago
parent
commit
93ce5bc2ba
  1. 100
      pav-server/src/main/java/com/palnet/biz/jpa/repository/flt/FltPlanQueryRepository.java

100
pav-server/src/main/java/com/palnet/biz/jpa/repository/flt/FltPlanQueryRepository.java

@ -1941,45 +1941,46 @@ public class FltPlanQueryRepository {
builder.and(pgb.groupNm.eq("cptAuth")); builder.and(pgb.groupNm.eq("cptAuth"));
} }
Instant now = Instant.now(); Instant now = Instant.now();
ZoneId databaseTimeZone = ZoneId.of("Asia/Seoul");
LocalDate currentDate = LocalDate.now(ZoneId.of("Asia/Seoul"));
Instant startOfToday = currentDate.atTime(LocalTime.MIN).atZone(databaseTimeZone).toInstant();
Instant startOfTomorrow = currentDate.plusDays(1).atTime(LocalTime.MIN).atZone(databaseTimeZone).toInstant();
builder.and(
ccb.cntrlStDt.between(startOfToday, startOfTomorrow)
.or(fpb.schFltStDt.loe(now).and(fpb.schFltEndDt.goe(now)))
)
.and(fpb.planSno.isNotNull());
List<MainDashFlightListModel> result = query List<MainDashFlightListModel> result = query
.select(Projections.bean(MainDashFlightListModel.class, .select(Projections.bean(MainDashFlightListModel.class,
pgb.groupNm, pgb.groupNm,
fpb.memberName, fpb.memberName,
fpa.idntfNum, fpa.idntfNum,
ccb.cntrlStDt, ccb.cntrlStDt,
ccb.cntrlEndDt, ccb.cntrlEndDt,
Expressions.stringTemplate( Expressions.stringTemplate(
"CONCAT(SEC_TO_TIME(TIME_TO_SEC(TIMEDIFF({0}, {1}))))", "CONCAT(SEC_TO_TIME(TIME_TO_SEC(TIMEDIFF({0}, {1}))))",
ccb.cntrlEndDt, ccb.cntrlEndDt,
ccb.cntrlStDt ccb.cntrlStDt
).as("totalFlightTime"), ).as("totalFlightTime"),
new CaseBuilder() new CaseBuilder()
.when(ccb.statusCd.eq("01")).then("비행 중") .when(ccb.statusCd.eq("01")).then("비행 중")
.when(ccb.statusCd.eq("99")).then("비행 완료") .when(ccb.statusCd.eq("99")).then("비행 완료")
.when(fpb.planSno.isNotNull()).then("비행 대기 중") .when(fpb.planSno.isNotNull()).then("비행 대기 중")
.otherwise("비행 없음").as("status") .otherwise("비행 없음").as("status")
)) ))
.from(fpa) .from(fpa)
.leftJoin(fpb).on(fpb.planSno.eq(fpa.planSno)) .leftJoin(fpb).on(fpb.planSno.eq(fpa.planSno))
.leftJoin(pgb).on(pgb.groupId.eq(fpb.groupId)) .leftJoin(pgb).on(pgb.groupId.eq(fpb.groupId))
.leftJoin(cib).on(cib.idntfNum.eq(fpa.idntfNum)) .leftJoin(cib).on(cib.idntfNum.eq(fpa.idntfNum))
.leftJoin(fpccr).on(fpccr.planSno.eq(fpb.planSno)) .leftJoin(fpccr).on(fpccr.planSno.eq(fpb.planSno))
.leftJoin(ccb).on(ccb.cntrlId.eq(fpccr.cntrlId)) .leftJoin(ccb).on(ccb.cntrlId.eq(fpccr.cntrlId))
.where( .where(builder)
builder .orderBy(((ComparableExpressionBase<Integer>) groupOrder).desc(), cib.createDt.asc())
.and(ccb.cntrlStDt.between( .fetch();
now.atZone(ZoneId.of("Asia/Seoul")).truncatedTo(ChronoUnit.DAYS).toInstant(),
now.atZone(ZoneId.of("Asia/Seoul")).truncatedTo(ChronoUnit.DAYS).plus(1, ChronoUnit.DAYS).toInstant()
))
.and(ccb.cntrlEndDt.between(
now.atZone(ZoneId.of("Asia/Seoul")).truncatedTo(ChronoUnit.DAYS).toInstant(),
now.atZone(ZoneId.of("Asia/Seoul")).truncatedTo(ChronoUnit.DAYS).plus(1, ChronoUnit.DAYS).toInstant()
))
.and(fpb.planSno.isNotNull())
)
.orderBy(((ComparableExpressionBase<Integer>) groupOrder).desc(), cib.createDt.asc())
.fetch();
return result; return result;
} }
@ -1999,6 +2000,18 @@ public class FltPlanQueryRepository {
builder.and(pgb.groupNm.eq("cptAuth")); builder.and(pgb.groupNm.eq("cptAuth"));
} }
Instant now = Instant.now(); Instant now = Instant.now();
ZoneId databaseTimeZone = ZoneId.of("Asia/Seoul");
LocalDate currentDate = LocalDate.now(ZoneId.of("Asia/Seoul"));
Instant startOfToday = currentDate.atTime(LocalTime.MIN).atZone(databaseTimeZone).toInstant();
Instant startOfTomorrow = currentDate.plusDays(1).atTime(LocalTime.MIN).atZone(databaseTimeZone).toInstant();
builder.and(
ccb.cntrlStDt.between(startOfToday, startOfTomorrow)
.or(fpb.schFltStDt.loe(now).and(fpb.schFltEndDt.goe(now)))
)
.and(fpb.planSno.isNotNull());
List<Tuple> res = query List<Tuple> res = query
.select( .select(
@ -2015,18 +2028,7 @@ public class FltPlanQueryRepository {
.leftJoin(cib).on(cib.idntfNum.eq(fpa.idntfNum)) .leftJoin(cib).on(cib.idntfNum.eq(fpa.idntfNum))
.leftJoin(fpccr).on(fpccr.planSno.eq(fpb.planSno)) .leftJoin(fpccr).on(fpccr.planSno.eq(fpb.planSno))
.leftJoin(ccb).on(ccb.cntrlId.eq(fpccr.cntrlId)) .leftJoin(ccb).on(ccb.cntrlId.eq(fpccr.cntrlId))
.where( .where(builder)
builder
.and(ccb.cntrlStDt.between(
now.atZone(ZoneId.of("Asia/Seoul")).truncatedTo(ChronoUnit.DAYS).toInstant(),
now.atZone(ZoneId.of("Asia/Seoul")).truncatedTo(ChronoUnit.DAYS).plus(1, ChronoUnit.DAYS).toInstant()
))
.and(ccb.cntrlEndDt.between(
now.atZone(ZoneId.of("Asia/Seoul")).truncatedTo(ChronoUnit.DAYS).toInstant(),
now.atZone(ZoneId.of("Asia/Seoul")).truncatedTo(ChronoUnit.DAYS).plus(1, ChronoUnit.DAYS).toInstant()
))
.and(fpb.planSno.isNotNull())
)
.groupBy(ccb.statusCd) .groupBy(ccb.statusCd)
.fetch(); .fetch();

Loading…
Cancel
Save