|
|
@ -1,58 +1,13 @@ |
|
|
|
package com.palnet.biz.jpa.repository.flt; |
|
|
|
package com.palnet.biz.jpa.repository.flt; |
|
|
|
|
|
|
|
|
|
|
|
import java.time.Duration; |
|
|
|
|
|
|
|
import java.time.Instant; |
|
|
|
|
|
|
|
import java.time.LocalDate; |
|
|
|
|
|
|
|
import java.time.ZoneId; |
|
|
|
|
|
|
|
import java.time.ZoneOffset; |
|
|
|
|
|
|
|
import java.time.temporal.ChronoUnit; |
|
|
|
|
|
|
|
import java.util.HashMap; |
|
|
|
|
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
import java.util.Map; |
|
|
|
|
|
|
|
import java.util.Optional; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.palnet.biz.api.main.dash.model.MainCurrentStcsModel; |
|
|
|
|
|
|
|
import com.querydsl.core.types.dsl.*; |
|
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
|
|
|
|
import org.springframework.cache.annotation.Cacheable; |
|
|
|
|
|
|
|
import org.springframework.data.domain.Page; |
|
|
|
|
|
|
|
import org.springframework.data.domain.PageImpl; |
|
|
|
|
|
|
|
import org.springframework.data.domain.Pageable; |
|
|
|
|
|
|
|
import org.springframework.stereotype.Repository; |
|
|
|
|
|
|
|
import org.springframework.util.StringUtils; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.palnet.biz.api.acnt.jwt.utils.JwtTokenUtil; |
|
|
|
import com.palnet.biz.api.acnt.jwt.utils.JwtTokenUtil; |
|
|
|
import com.palnet.biz.api.bas.flight.model.BasFlightPlanArcrftModel; |
|
|
|
import com.palnet.biz.api.bas.flight.model.*; |
|
|
|
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.api.main.dash.model.MainDashFlightListModel; |
|
|
|
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.*; |
|
|
|
import com.palnet.biz.jpa.entity.QComArcrftBas; |
|
|
|
import com.palnet.biz.jpa.entity.type.*; |
|
|
|
import com.palnet.biz.jpa.entity.QComFileBas; |
|
|
|
import com.palnet.biz.jpa.model.*; |
|
|
|
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.QFltPlanCtrCntrlRel; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.entity.QFltPlanPilot; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.entity.QPtyCstmrDtl; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.entity.QPtyCstmrGroup; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.entity.QPtyGroupBas; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.model.LaancAprvSearchDto; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.model.LaancPlanArcrftDto; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.model.LaancPlanAreaDto; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.model.LaancPlanDto; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.model.LaancPlanPilotDto; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.model.LaancPlanareaCoordDto; |
|
|
|
|
|
|
|
import com.palnet.comn.utils.DateUtils; |
|
|
|
import com.palnet.comn.utils.DateUtils; |
|
|
|
import com.palnet.comn.utils.InstantUtils; |
|
|
|
import com.palnet.comn.utils.InstantUtils; |
|
|
|
import com.querydsl.core.BooleanBuilder; |
|
|
|
import com.querydsl.core.BooleanBuilder; |
|
|
@ -62,17 +17,23 @@ import com.querydsl.core.types.ConstantImpl; |
|
|
|
import com.querydsl.core.types.Expression; |
|
|
|
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.*; |
|
|
|
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 lombok.RequiredArgsConstructor; |
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
|
|
|
|
import org.springframework.cache.annotation.Cacheable; |
|
|
|
|
|
|
|
import org.springframework.data.domain.Page; |
|
|
|
|
|
|
|
import org.springframework.data.domain.PageImpl; |
|
|
|
|
|
|
|
import org.springframework.data.domain.Pageable; |
|
|
|
|
|
|
|
import org.springframework.stereotype.Repository; |
|
|
|
|
|
|
|
import org.springframework.util.StringUtils; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.time.*; |
|
|
|
|
|
|
|
import java.time.temporal.ChronoUnit; |
|
|
|
|
|
|
|
import java.util.*; |
|
|
|
|
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
|
|
|
@Slf4j |
|
|
|
@Slf4j |
|
|
|
@Repository |
|
|
|
@Repository |
|
|
@ -81,7 +42,7 @@ public class FltPlanQueryRepository { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private final JPAQueryFactory query; |
|
|
|
private final JPAQueryFactory query; |
|
|
|
|
|
|
|
|
|
|
|
private final JwtTokenUtil jwtTokenUtil; |
|
|
|
private final JwtTokenUtil jwtTokenUtil; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -115,6 +76,7 @@ public class FltPlanQueryRepository { |
|
|
|
} |
|
|
|
} |
|
|
|
builder.and(bas.delYn.ne("Y")); |
|
|
|
builder.and(bas.delYn.ne("Y")); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<BasFlightPlanModel> r = query |
|
|
|
List<BasFlightPlanModel> r = query |
|
|
|
.from(bas) |
|
|
|
.from(bas) |
|
|
|
.leftJoin(area) |
|
|
|
.leftJoin(area) |
|
|
@ -1207,10 +1169,10 @@ public class FltPlanQueryRepository { |
|
|
|
List<FlightStcsValueModel> queryResult = query |
|
|
|
List<FlightStcsValueModel> queryResult = query |
|
|
|
.select( |
|
|
|
.select( |
|
|
|
Projections.bean(FlightStcsValueModel.class, |
|
|
|
Projections.bean(FlightStcsValueModel.class, |
|
|
|
qFltPlanCtrCntrlRel.idntfNum.as("name") // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
qFltPlanCtrCntrlRel.idntfNum.as("name") // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
.from(qFltPlanCtrCntrlRel) |
|
|
|
.from(qFltPlanCtrCntrlRel) |
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
.on(qFltPlanCtrCntrlRel.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.on(qFltPlanCtrCntrlRel.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
@ -1218,7 +1180,7 @@ public class FltPlanQueryRepository { |
|
|
|
.orderBy(qFltPlanCtrCntrlRel.planSno.countDistinct().desc()) |
|
|
|
.orderBy(qFltPlanCtrCntrlRel.planSno.countDistinct().desc()) |
|
|
|
.limit(1) |
|
|
|
.limit(1) |
|
|
|
.fetch(); |
|
|
|
.fetch(); |
|
|
|
|
|
|
|
|
|
|
|
if(queryResult.size() > 0){ |
|
|
|
if(queryResult.size() > 0){ |
|
|
|
result = queryResult.get(0); |
|
|
|
result = queryResult.get(0); |
|
|
|
if(result.getName().equals("")) result.setName(" "); |
|
|
|
if(result.getName().equals("")) result.setName(" "); |
|
|
@ -1249,7 +1211,7 @@ public class FltPlanQueryRepository { |
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
builder.and(qFltPlanCtrCntrlRel.idntfNum.eq(idntfNum)); |
|
|
|
builder.and(qFltPlanCtrCntrlRel.idntfNum.eq(idntfNum)); |
|
|
|
builder.and(qFltPlanBas.createDt.eq(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qFltPlanBas.createDt.eq(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qFltPlanCtrCntrlRel.planSno.isNotNull()); |
|
|
|
builder.and(qFltPlanCtrCntrlRel.planSno.isNotNull()); |
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
@ -1311,7 +1273,7 @@ public class FltPlanQueryRepository { |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
|
.fetchOne(); |
|
|
|
.fetchOne(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 비행계획에 많이 기용된 기체 데이터, top 1 |
|
|
|
* 비행계획에 많이 기용된 기체 데이터, top 1 |
|
|
@ -1319,11 +1281,11 @@ public class FltPlanQueryRepository { |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public FlightStcsValueModel getFltPlanStaticStcs(boolean authCheck, String groupId){ |
|
|
|
public FlightStcsValueModel getFltPlanStaticStcs(boolean authCheck, String groupId){ |
|
|
|
FlightStcsValueModel result = new FlightStcsValueModel(); |
|
|
|
FlightStcsValueModel result = new FlightStcsValueModel(); |
|
|
|
|
|
|
|
|
|
|
|
QFltPlanArcrft qFltPlanArcrft = QFltPlanArcrft.fltPlanArcrft; |
|
|
|
QFltPlanArcrft qFltPlanArcrft = QFltPlanArcrft.fltPlanArcrft; |
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
|
|
|
|
|
|
|
@ -1340,7 +1302,7 @@ public class FltPlanQueryRepository { |
|
|
|
.orderBy(qFltPlanArcrft.planSno.count().desc()) |
|
|
|
.orderBy(qFltPlanArcrft.planSno.count().desc()) |
|
|
|
.limit(1) |
|
|
|
.limit(1) |
|
|
|
.fetch(); |
|
|
|
.fetch(); |
|
|
|
|
|
|
|
|
|
|
|
log.warn("que => {}", queryResult); |
|
|
|
log.warn("que => {}", queryResult); |
|
|
|
|
|
|
|
|
|
|
|
if(queryResult.size() > 0){ |
|
|
|
if(queryResult.size() > 0){ |
|
|
@ -1367,11 +1329,11 @@ public class FltPlanQueryRepository { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private Long getFltPlanDay(String idntfNum, boolean authCheck, String groupId){ |
|
|
|
private Long getFltPlanDay(String idntfNum, boolean authCheck, String groupId){ |
|
|
|
QFltPlanArcrft bas = QFltPlanArcrft.fltPlanArcrft; |
|
|
|
QFltPlanArcrft bas = QFltPlanArcrft.fltPlanArcrft; |
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
builder.and(bas.idntfNum.eq(idntfNum.trim())); |
|
|
|
builder.and(bas.idntfNum.eq(idntfNum.trim())); |
|
|
|
builder.and(bas.createDt.eq(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(bas.createDt.eq(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
@ -1380,7 +1342,7 @@ public class FltPlanQueryRepository { |
|
|
|
.select( |
|
|
|
.select( |
|
|
|
bas.planSno.count() // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
bas.planSno.count() // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
) |
|
|
|
) |
|
|
|
.from(bas) |
|
|
|
.from(bas) |
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
.on(qFltPlanBas.planSno.eq(bas.planSno)) |
|
|
|
.on(qFltPlanBas.planSno.eq(bas.planSno)) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
@ -1388,11 +1350,11 @@ public class FltPlanQueryRepository { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private Long getFltPlanMonth(String idntfNum, boolean authCheck, String groupId){ |
|
|
|
private Long getFltPlanMonth(String idntfNum, boolean authCheck, String groupId){ |
|
|
|
QFltPlanArcrft bas = QFltPlanArcrft.fltPlanArcrft; |
|
|
|
QFltPlanArcrft bas = QFltPlanArcrft.fltPlanArcrft; |
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
builder.and(bas.idntfNum.eq(idntfNum.trim())); |
|
|
|
builder.and(bas.idntfNum.eq(idntfNum.trim())); |
|
|
|
builder.and(bas.createDt.goe(LocalDate.now().minusMonths(1).atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(bas.createDt.goe(LocalDate.now().minusMonths(1).atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(bas.createDt.loe(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(bas.createDt.loe(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
@ -1402,9 +1364,9 @@ public class FltPlanQueryRepository { |
|
|
|
.select( |
|
|
|
.select( |
|
|
|
bas.planSno.count() // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
bas.planSno.count() // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
) |
|
|
|
) |
|
|
|
.from(bas) |
|
|
|
.from(bas) |
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
.on(qFltPlanBas.planSno.eq(bas.planSno)) |
|
|
|
.on(qFltPlanBas.planSno.eq(bas.planSno)) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
|
.fetchOne(); |
|
|
|
.fetchOne(); |
|
|
|
} |
|
|
|
} |
|
|
@ -1414,7 +1376,7 @@ public class FltPlanQueryRepository { |
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
builder.and(bas.idntfNum.eq(idntfNum.trim())); |
|
|
|
builder.and(bas.idntfNum.eq(idntfNum.trim())); |
|
|
|
builder.and(bas.createDt.goe(LocalDate.now().minusYears(1).atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(bas.createDt.goe(LocalDate.now().minusYears(1).atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(bas.createDt.loe(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(bas.createDt.loe(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
@ -1430,9 +1392,9 @@ public class FltPlanQueryRepository { |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
|
.fetchOne(); |
|
|
|
.fetchOne(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 비행승인 많은 기체 데이터, top 1 |
|
|
|
* 비행승인 많은 기체 데이터, top 1 |
|
|
@ -1441,14 +1403,14 @@ public class FltPlanQueryRepository { |
|
|
|
public FlightStcsValueModel getFltPlanAprvnStaticStcs(boolean authCheck, String groupId){ |
|
|
|
public FlightStcsValueModel getFltPlanAprvnStaticStcs(boolean authCheck, String groupId){ |
|
|
|
FlightStcsValueModel result = new FlightStcsValueModel(); |
|
|
|
FlightStcsValueModel result = new FlightStcsValueModel(); |
|
|
|
|
|
|
|
|
|
|
|
QFltPlanArcrft qFltPlanArcrft = QFltPlanArcrft.fltPlanArcrft; |
|
|
|
QFltPlanArcrft qFltPlanArcrft = QFltPlanArcrft.fltPlanArcrft; |
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
builder.and(qFltPlanBas.aprvlYn.eq("Y")); |
|
|
|
builder.and(qFltPlanBas.aprvlYn.eq("Y")); |
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<FlightStcsValueModel> queryResult = query |
|
|
|
List<FlightStcsValueModel> queryResult = query |
|
|
|
.select( |
|
|
|
.select( |
|
|
@ -1456,7 +1418,7 @@ public class FltPlanQueryRepository { |
|
|
|
qFltPlanArcrft.idntfNum.as("name") // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
qFltPlanArcrft.idntfNum.as("name") // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
.from(qFltPlanArcrft) |
|
|
|
.from(qFltPlanArcrft) |
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
.on(qFltPlanArcrft.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.on(qFltPlanArcrft.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
@ -1464,7 +1426,7 @@ public class FltPlanQueryRepository { |
|
|
|
.orderBy(qFltPlanArcrft.planSno.count().desc()) |
|
|
|
.orderBy(qFltPlanArcrft.planSno.count().desc()) |
|
|
|
.limit(1) |
|
|
|
.limit(1) |
|
|
|
.fetch(); |
|
|
|
.fetch(); |
|
|
|
|
|
|
|
|
|
|
|
if(queryResult.size() > 0){ |
|
|
|
if(queryResult.size() > 0){ |
|
|
|
result = queryResult.get(0); |
|
|
|
result = queryResult.get(0); |
|
|
|
if(result.getName().equals("")) result.setName(" "); |
|
|
|
if(result.getName().equals("")) result.setName(" "); |
|
|
@ -1488,13 +1450,13 @@ public class FltPlanQueryRepository { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private Long getFltPlanAprvnDay(String idntfNum, boolean authCheck, String groupId){ |
|
|
|
private Long getFltPlanAprvnDay(String idntfNum, boolean authCheck, String groupId){ |
|
|
|
QFltPlanArcrft qFltPlanArcrft = QFltPlanArcrft.fltPlanArcrft; |
|
|
|
QFltPlanArcrft qFltPlanArcrft = QFltPlanArcrft.fltPlanArcrft; |
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
builder.and(qFltPlanArcrft.idntfNum.eq(idntfNum)); |
|
|
|
builder.and(qFltPlanArcrft.idntfNum.eq(idntfNum)); |
|
|
|
builder.and(qFltPlanBas.aprvlYn.eq("Y")); |
|
|
|
builder.and(qFltPlanBas.aprvlYn.eq("Y")); |
|
|
|
builder.and(qFltPlanBas.createDt.eq(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qFltPlanBas.createDt.eq(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
|
|
|
|
|
|
|
@ -1502,7 +1464,7 @@ public class FltPlanQueryRepository { |
|
|
|
.select( |
|
|
|
.select( |
|
|
|
qFltPlanArcrft.planSno.count() // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
qFltPlanArcrft.planSno.count() // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
) |
|
|
|
) |
|
|
|
.from(qFltPlanArcrft) |
|
|
|
.from(qFltPlanArcrft) |
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
.on(qFltPlanArcrft.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.on(qFltPlanArcrft.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
@ -1510,23 +1472,23 @@ public class FltPlanQueryRepository { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private Long getFltPlanAprvnMonth(String idntfNum, boolean authCheck, String groupId){ |
|
|
|
private Long getFltPlanAprvnMonth(String idntfNum, boolean authCheck, String groupId){ |
|
|
|
|
|
|
|
|
|
|
|
QFltPlanArcrft qFltPlanArcrft = QFltPlanArcrft.fltPlanArcrft; |
|
|
|
QFltPlanArcrft qFltPlanArcrft = QFltPlanArcrft.fltPlanArcrft; |
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
builder.and(qFltPlanArcrft.idntfNum.eq(idntfNum)); |
|
|
|
builder.and(qFltPlanArcrft.idntfNum.eq(idntfNum)); |
|
|
|
builder.and(qFltPlanBas.aprvlYn.eq("Y")); |
|
|
|
builder.and(qFltPlanBas.aprvlYn.eq("Y")); |
|
|
|
builder.and(qFltPlanBas.createDt.goe(LocalDate.now().minusMonths(1).atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qFltPlanBas.createDt.goe(LocalDate.now().minusMonths(1).atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qFltPlanBas.createDt.loe(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qFltPlanBas.createDt.loe(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
|
|
|
|
|
|
|
|
return query |
|
|
|
return query |
|
|
|
.select( |
|
|
|
.select( |
|
|
|
qFltPlanArcrft.planSno.count() // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
qFltPlanArcrft.planSno.count() // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
) |
|
|
|
) |
|
|
|
.from(qFltPlanArcrft) |
|
|
|
.from(qFltPlanArcrft) |
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
.on(qFltPlanArcrft.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.on(qFltPlanArcrft.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
@ -1534,28 +1496,28 @@ public class FltPlanQueryRepository { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private Long getFltPlanAprvnYear(String idntfNum, boolean authCheck, String groupId){ |
|
|
|
private Long getFltPlanAprvnYear(String idntfNum, boolean authCheck, String groupId){ |
|
|
|
QFltPlanArcrft qFltPlanArcrft = QFltPlanArcrft.fltPlanArcrft; |
|
|
|
QFltPlanArcrft qFltPlanArcrft = QFltPlanArcrft.fltPlanArcrft; |
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
builder.and(qFltPlanArcrft.idntfNum.eq(idntfNum)); |
|
|
|
builder.and(qFltPlanArcrft.idntfNum.eq(idntfNum)); |
|
|
|
builder.and(qFltPlanBas.aprvlYn.eq("Y")); |
|
|
|
builder.and(qFltPlanBas.aprvlYn.eq("Y")); |
|
|
|
builder.and(qFltPlanBas.createDt.goe(LocalDate.now().minusYears(1).atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qFltPlanBas.createDt.goe(LocalDate.now().minusYears(1).atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qFltPlanBas.createDt.loe(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qFltPlanBas.createDt.loe(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
|
|
|
|
|
|
|
|
return query |
|
|
|
return query |
|
|
|
.select( |
|
|
|
.select( |
|
|
|
qFltPlanArcrft.planSno.count() // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
qFltPlanArcrft.planSno.count() // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
) |
|
|
|
) |
|
|
|
.from(qFltPlanArcrft) |
|
|
|
.from(qFltPlanArcrft) |
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
.on(qFltPlanArcrft.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.on(qFltPlanArcrft.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
|
.fetchOne(); |
|
|
|
.fetchOne(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 비행실적 통계 카테고리 비행실적 |
|
|
|
* 비행실적 통계 카테고리 비행실적 |
|
|
|
* @param date |
|
|
|
* @param date |
|
|
@ -1564,21 +1526,21 @@ public class FltPlanQueryRepository { |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public List<FlightStcsValueModel> fltResultStcs(String date, String groupId, boolean authCheck, String[] formatParam){ |
|
|
|
public List<FlightStcsValueModel> fltResultStcs(String date, String groupId, boolean authCheck, String[] formatParam){ |
|
|
|
// QCtrCntrlBas bas = QCtrCntrlBas.ctrCntrlBas;
|
|
|
|
// QCtrCntrlBas bas = QCtrCntrlBas.ctrCntrlBas;
|
|
|
|
|
|
|
|
|
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
QFltPlanCtrCntrlRel qFltPlanCtrCntrlRel = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel; |
|
|
|
QFltPlanCtrCntrlRel qFltPlanCtrCntrlRel = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel; |
|
|
|
|
|
|
|
|
|
|
|
StringTemplate formattedDate = Expressions.stringTemplate( |
|
|
|
StringTemplate formattedDate = Expressions.stringTemplate( |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
, qFltPlanBas.createDt |
|
|
|
, qFltPlanBas.createDt |
|
|
|
, ConstantImpl.create(formatParam[0])); |
|
|
|
, ConstantImpl.create(formatParam[0])); |
|
|
|
|
|
|
|
|
|
|
|
StringTemplate formattedDate2 = Expressions.stringTemplate( |
|
|
|
StringTemplate formattedDate2 = Expressions.stringTemplate( |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
, qFltPlanBas.createDt |
|
|
|
, qFltPlanBas.createDt |
|
|
|
, ConstantImpl.create(formatParam[1])); |
|
|
|
, ConstantImpl.create(formatParam[1])); |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date)); |
|
|
|
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date)); |
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
@ -1586,7 +1548,7 @@ public class FltPlanQueryRepository { |
|
|
|
List<FlightStcsValueModel> result = query |
|
|
|
List<FlightStcsValueModel> result = query |
|
|
|
.select( |
|
|
|
.select( |
|
|
|
Projections.bean( |
|
|
|
Projections.bean( |
|
|
|
FlightStcsValueModel.class , |
|
|
|
FlightStcsValueModel.class , |
|
|
|
formattedDate2.as("name"), |
|
|
|
formattedDate2.as("name"), |
|
|
|
qFltPlanCtrCntrlRel.planSno.countDistinct().as("value") |
|
|
|
qFltPlanCtrCntrlRel.planSno.countDistinct().as("value") |
|
|
|
) |
|
|
|
) |
|
|
@ -1595,8 +1557,8 @@ public class FltPlanQueryRepository { |
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
.on(qFltPlanBas.planSno.eq(qFltPlanCtrCntrlRel.planSno)) |
|
|
|
.on(qFltPlanBas.planSno.eq(qFltPlanCtrCntrlRel.planSno)) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
|
.groupBy(formattedDate2) |
|
|
|
.groupBy(formattedDate2) |
|
|
|
.fetch(); |
|
|
|
.fetch(); |
|
|
|
|
|
|
|
|
|
|
|
if(result.size() <= 0){ |
|
|
|
if(result.size() <= 0){ |
|
|
|
FlightStcsValueModel node = new FlightStcsValueModel(); |
|
|
|
FlightStcsValueModel node = new FlightStcsValueModel(); |
|
|
@ -1608,7 +1570,7 @@ public class FltPlanQueryRepository { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
return result; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 비행계획서 통계 카테고리 비행계획서 |
|
|
|
* 비행계획서 통계 카테고리 비행계획서 |
|
|
@ -1616,20 +1578,20 @@ public class FltPlanQueryRepository { |
|
|
|
* @param formatParam |
|
|
|
* @param formatParam |
|
|
|
* @return |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public List<FlightStcsValueModel> fltPlanStcs(String date, String groupId, boolean authCheck, String[] formatParam){ |
|
|
|
public List<FlightStcsValueModel> fltPlanStcs(String date, String groupId, boolean authCheck, String[] formatParam){ |
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
StringTemplate formattedDate = Expressions.stringTemplate( |
|
|
|
StringTemplate formattedDate = Expressions.stringTemplate( |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
, qFltPlanBas.createDt |
|
|
|
, qFltPlanBas.createDt |
|
|
|
, ConstantImpl.create(formatParam[0])); |
|
|
|
, ConstantImpl.create(formatParam[0])); |
|
|
|
|
|
|
|
|
|
|
|
StringTemplate formattedDate2 = Expressions.stringTemplate( |
|
|
|
StringTemplate formattedDate2 = Expressions.stringTemplate( |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
, qFltPlanBas.createDt |
|
|
|
, qFltPlanBas.createDt |
|
|
|
, ConstantImpl.create(formatParam[1])); |
|
|
|
, ConstantImpl.create(formatParam[1])); |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date)); |
|
|
|
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date)); |
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
@ -1637,15 +1599,15 @@ public class FltPlanQueryRepository { |
|
|
|
List<FlightStcsValueModel> result = query |
|
|
|
List<FlightStcsValueModel> result = query |
|
|
|
.select( |
|
|
|
.select( |
|
|
|
Projections.bean( |
|
|
|
Projections.bean( |
|
|
|
FlightStcsValueModel.class , |
|
|
|
FlightStcsValueModel.class , |
|
|
|
formattedDate2.as("name"), |
|
|
|
formattedDate2.as("name"), |
|
|
|
qFltPlanBas.planSno.count().as("value") |
|
|
|
qFltPlanBas.planSno.count().as("value") |
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
.from(qFltPlanBas) |
|
|
|
.from(qFltPlanBas) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
|
.groupBy(formattedDate2) |
|
|
|
.groupBy(formattedDate2) |
|
|
|
.fetch(); |
|
|
|
.fetch(); |
|
|
|
|
|
|
|
|
|
|
|
if(result.size() <= 0){ |
|
|
|
if(result.size() <= 0){ |
|
|
|
FlightStcsValueModel node = new FlightStcsValueModel(); |
|
|
|
FlightStcsValueModel node = new FlightStcsValueModel(); |
|
|
@ -1657,7 +1619,7 @@ public class FltPlanQueryRepository { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
return result; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 비행승인 통계 카테고리 비행승인 |
|
|
|
* 비행승인 통계 카테고리 비행승인 |
|
|
@ -1667,14 +1629,14 @@ public class FltPlanQueryRepository { |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public List<FlightStcsValueModel> fltPlanAprvnStcs(String date, String groupId, boolean authCheck, String[] formatParam){ |
|
|
|
public List<FlightStcsValueModel> fltPlanAprvnStcs(String date, String groupId, boolean authCheck, String[] formatParam){ |
|
|
|
// QCtrCntrlBas bas = QCtrCntrlBas.ctrCntrlBas;
|
|
|
|
// QCtrCntrlBas bas = QCtrCntrlBas.ctrCntrlBas;
|
|
|
|
|
|
|
|
|
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
StringTemplate formattedDate = Expressions.stringTemplate( |
|
|
|
StringTemplate formattedDate = Expressions.stringTemplate( |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
, qFltPlanBas.createDt |
|
|
|
, qFltPlanBas.createDt |
|
|
|
, ConstantImpl.create(formatParam[0])); |
|
|
|
, ConstantImpl.create(formatParam[0])); |
|
|
|
|
|
|
|
|
|
|
|
StringTemplate formattedDate2 = Expressions.stringTemplate( |
|
|
|
StringTemplate formattedDate2 = Expressions.stringTemplate( |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
, qFltPlanBas.createDt |
|
|
|
, qFltPlanBas.createDt |
|
|
@ -1689,15 +1651,15 @@ public class FltPlanQueryRepository { |
|
|
|
List<FlightStcsValueModel> result = query |
|
|
|
List<FlightStcsValueModel> result = query |
|
|
|
.select( |
|
|
|
.select( |
|
|
|
Projections.bean( |
|
|
|
Projections.bean( |
|
|
|
FlightStcsValueModel.class , |
|
|
|
FlightStcsValueModel.class , |
|
|
|
formattedDate2.as("name"), |
|
|
|
formattedDate2.as("name"), |
|
|
|
qFltPlanBas.planSno.count().as("value") |
|
|
|
qFltPlanBas.planSno.count().as("value") |
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
.from(qFltPlanBas) |
|
|
|
.from(qFltPlanBas) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
|
.groupBy(formattedDate2) |
|
|
|
.groupBy(formattedDate2) |
|
|
|
.fetch(); |
|
|
|
.fetch(); |
|
|
|
|
|
|
|
|
|
|
|
if(result.size() <= 0){ |
|
|
|
if(result.size() <= 0){ |
|
|
|
FlightStcsValueModel node = new FlightStcsValueModel(); |
|
|
|
FlightStcsValueModel node = new FlightStcsValueModel(); |
|
|
@ -1709,7 +1671,7 @@ public class FltPlanQueryRepository { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
return result; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
@ -1727,7 +1689,7 @@ public class FltPlanQueryRepository { |
|
|
|
, qFltPlanBas.createDt |
|
|
|
, qFltPlanBas.createDt |
|
|
|
, ConstantImpl.create(formatParam[0])); |
|
|
|
, ConstantImpl.create(formatParam[0])); |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date)); |
|
|
|
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date)); |
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
@ -1735,7 +1697,7 @@ public class FltPlanQueryRepository { |
|
|
|
List<FlightStcsValueModel> result = query |
|
|
|
List<FlightStcsValueModel> result = query |
|
|
|
.select( |
|
|
|
.select( |
|
|
|
Projections.bean(FlightStcsValueModel.class, |
|
|
|
Projections.bean(FlightStcsValueModel.class, |
|
|
|
qFltPlanCtrCntrlRel.idntfNum.as("name") // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
qFltPlanCtrCntrlRel.idntfNum.as("name") // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
.from(qFltPlanCtrCntrlRel) |
|
|
|
.from(qFltPlanCtrCntrlRel) |
|
|
@ -1746,7 +1708,7 @@ public class FltPlanQueryRepository { |
|
|
|
.orderBy(qFltPlanCtrCntrlRel.planSno.countDistinct().desc()) |
|
|
|
.orderBy(qFltPlanCtrCntrlRel.planSno.countDistinct().desc()) |
|
|
|
.limit(5) |
|
|
|
.limit(5) |
|
|
|
.fetch(); |
|
|
|
.fetch(); |
|
|
|
|
|
|
|
|
|
|
|
if(result.size() <= 0){ |
|
|
|
if(result.size() <= 0){ |
|
|
|
FlightStcsValueModel node = new FlightStcsValueModel(); |
|
|
|
FlightStcsValueModel node = new FlightStcsValueModel(); |
|
|
|
|
|
|
|
|
|
|
@ -1775,7 +1737,7 @@ public class FltPlanQueryRepository { |
|
|
|
, qFltPlanArcrft.createDt |
|
|
|
, qFltPlanArcrft.createDt |
|
|
|
, ConstantImpl.create(formatParam[0])); |
|
|
|
, ConstantImpl.create(formatParam[0])); |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date)); |
|
|
|
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date)); |
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
@ -1787,15 +1749,15 @@ public class FltPlanQueryRepository { |
|
|
|
qFltPlanArcrft.planSno.countDistinct().as("value") |
|
|
|
qFltPlanArcrft.planSno.countDistinct().as("value") |
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
.from(qFltPlanArcrft) |
|
|
|
.from(qFltPlanArcrft) |
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
.on(qFltPlanBas.planSno.eq(qFltPlanArcrft.planSno)) |
|
|
|
.on(qFltPlanBas.planSno.eq(qFltPlanArcrft.planSno)) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
|
.groupBy(qFltPlanArcrft.idntfNum) |
|
|
|
.groupBy(qFltPlanArcrft.idntfNum) |
|
|
|
.orderBy(qFltPlanArcrft.planSno.countDistinct().desc()) |
|
|
|
.orderBy(qFltPlanArcrft.planSno.countDistinct().desc()) |
|
|
|
.limit(5) |
|
|
|
.limit(5) |
|
|
|
.fetch(); |
|
|
|
.fetch(); |
|
|
|
|
|
|
|
|
|
|
|
if(result.size() <= 0){ |
|
|
|
if(result.size() <= 0){ |
|
|
|
FlightStcsValueModel node = new FlightStcsValueModel(); |
|
|
|
FlightStcsValueModel node = new FlightStcsValueModel(); |
|
|
|
|
|
|
|
|
|
|
@ -1816,15 +1778,15 @@ public class FltPlanQueryRepository { |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public List<FlightStcsValueModel> fltTopPlanAprvnStcs(String date, String groupId, boolean authCheck, String[] formatParam){ |
|
|
|
public List<FlightStcsValueModel> fltTopPlanAprvnStcs(String date, String groupId, boolean authCheck, String[] formatParam){ |
|
|
|
|
|
|
|
|
|
|
|
QFltPlanArcrft qFltPlanArcrft = QFltPlanArcrft.fltPlanArcrft; |
|
|
|
QFltPlanArcrft qFltPlanArcrft = QFltPlanArcrft.fltPlanArcrft; |
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
StringTemplate formattedDate = Expressions.stringTemplate( |
|
|
|
StringTemplate formattedDate = Expressions.stringTemplate( |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
, qFltPlanBas.createDt |
|
|
|
, qFltPlanBas.createDt |
|
|
|
, ConstantImpl.create(formatParam[0])); |
|
|
|
, ConstantImpl.create(formatParam[0])); |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date)); |
|
|
|
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date)); |
|
|
|
builder.and(qFltPlanBas.aprvlYn.eq("Y")); |
|
|
|
builder.and(qFltPlanBas.aprvlYn.eq("Y")); |
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
@ -1837,15 +1799,15 @@ public class FltPlanQueryRepository { |
|
|
|
qFltPlanArcrft.planSno.countDistinct().as("value") |
|
|
|
qFltPlanArcrft.planSno.countDistinct().as("value") |
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
.from(qFltPlanArcrft) |
|
|
|
.from(qFltPlanArcrft) |
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
.on(qFltPlanArcrft.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.on(qFltPlanArcrft.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
|
.groupBy(qFltPlanArcrft.idntfNum) |
|
|
|
.groupBy(qFltPlanArcrft.idntfNum) |
|
|
|
.orderBy(qFltPlanArcrft.planSno.countDistinct().desc()) |
|
|
|
.orderBy(qFltPlanArcrft.planSno.countDistinct().desc()) |
|
|
|
.limit(5) |
|
|
|
.limit(5) |
|
|
|
.fetch(); |
|
|
|
.fetch(); |
|
|
|
|
|
|
|
|
|
|
|
if(result.size() <= 0){ |
|
|
|
if(result.size() <= 0){ |
|
|
|
FlightStcsValueModel node = new FlightStcsValueModel(); |
|
|
|
FlightStcsValueModel node = new FlightStcsValueModel(); |
|
|
|
|
|
|
|
|
|
|
@ -1888,9 +1850,9 @@ public class FltPlanQueryRepository { |
|
|
|
private BooleanBuilder getCurrentBooleanBuilder(String groupId, boolean authCheck, String cate, QFltPlanBas qFltPlanBas){ |
|
|
|
private BooleanBuilder getCurrentBooleanBuilder(String groupId, boolean authCheck, String cate, QFltPlanBas qFltPlanBas){ |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
if(groupId != null && !(groupId.equals("")))builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
|
|
|
|
|
|
|
|
BooleanExpression dateExpression = null; |
|
|
|
BooleanExpression dateExpression = null; |
|
|
|
switch (cate){ |
|
|
|
switch (cate){ |
|
|
|
case "-2" : |
|
|
|
case "-2" : |
|
|
@ -1929,9 +1891,9 @@ public class FltPlanQueryRepository { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public List<MainDashFlightListModel> getFlightDronList(String cptAuth, String serviceType){ |
|
|
|
public List<MainDashFlightListModel> getFlightDronList(String cptAuth, String serviceType){ |
|
|
|
|
|
|
|
|
|
|
|
QComIdntfBas cib = QComIdntfBas.comIdntfBas; |
|
|
|
QComIdntfBas cib = QComIdntfBas.comIdntfBas; |
|
|
|
QFltPlanArcrft fpa = QFltPlanArcrft.fltPlanArcrft; |
|
|
|
QFltPlanArcrft fpa = QFltPlanArcrft.fltPlanArcrft; |
|
|
|
QFltPlanBas fpb = QFltPlanBas.fltPlanBas; |
|
|
|
QFltPlanBas fpb = QFltPlanBas.fltPlanBas; |
|
|
@ -1942,9 +1904,9 @@ public class FltPlanQueryRepository { |
|
|
|
Expression<Integer> groupOrder = new CaseBuilder() |
|
|
|
Expression<Integer> groupOrder = new CaseBuilder() |
|
|
|
.when(pgb.groupNm.eq(cptAuth)).then(0) |
|
|
|
.when(pgb.groupNm.eq(cptAuth)).then(0) |
|
|
|
.otherwise(1); |
|
|
|
.otherwise(1); |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
|
|
|
|
|
|
|
|
if(!serviceType.equals("all")) { |
|
|
|
if(!serviceType.equals("all")) { |
|
|
|
builder.and(fpb.serviceType.contains(serviceType)); |
|
|
|
builder.and(fpb.serviceType.contains(serviceType)); |
|
|
|
} |
|
|
|
} |
|
|
@ -1953,7 +1915,7 @@ public class FltPlanQueryRepository { |
|
|
|
builder.and(pgb.groupNm.eq("cptAuth")); |
|
|
|
builder.and(pgb.groupNm.eq("cptAuth")); |
|
|
|
} |
|
|
|
} |
|
|
|
Instant now = Instant.now(); |
|
|
|
Instant now = Instant.now(); |
|
|
|
|
|
|
|
|
|
|
|
Instant todayStart = LocalDate.now().atStartOfDay().toInstant(ZoneOffset.UTC); |
|
|
|
Instant todayStart = LocalDate.now().atStartOfDay().toInstant(ZoneOffset.UTC); |
|
|
|
Instant todayEnd = LocalDate.now().plusDays(1).atStartOfDay().toInstant(ZoneOffset.UTC); |
|
|
|
Instant todayEnd = LocalDate.now().plusDays(1).atStartOfDay().toInstant(ZoneOffset.UTC); |
|
|
|
|
|
|
|
|
|
|
@ -1998,9 +1960,9 @@ public class FltPlanQueryRepository { |
|
|
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
return result; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public Map<String, String> getFlightDronStcs(String cptAuth){ |
|
|
|
public Map<String, String> getFlightDronStcs(String cptAuth){ |
|
|
|
|
|
|
|
|
|
|
|
QComIdntfBas cib = QComIdntfBas.comIdntfBas; |
|
|
|
QComIdntfBas cib = QComIdntfBas.comIdntfBas; |
|
|
|
QFltPlanArcrft fpa = QFltPlanArcrft.fltPlanArcrft; |
|
|
|
QFltPlanArcrft fpa = QFltPlanArcrft.fltPlanArcrft; |
|
|
|
QFltPlanBas fpb = QFltPlanBas.fltPlanBas; |
|
|
|
QFltPlanBas fpb = QFltPlanBas.fltPlanBas; |
|
|
@ -2008,13 +1970,13 @@ public class FltPlanQueryRepository { |
|
|
|
QFltPlanCtrCntrlRel fpccr = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel; |
|
|
|
QFltPlanCtrCntrlRel fpccr = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel; |
|
|
|
QCtrCntrlBas ccb = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
QCtrCntrlBas ccb = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
|
|
|
|
|
|
|
|
if(!cptAuth.equals("KAC")) { |
|
|
|
if(!cptAuth.equals("KAC")) { |
|
|
|
builder.and(pgb.groupNm.eq("cptAuth")); |
|
|
|
builder.and(pgb.groupNm.eq("cptAuth")); |
|
|
|
} |
|
|
|
} |
|
|
|
Instant now = Instant.now(); |
|
|
|
Instant now = Instant.now(); |
|
|
|
|
|
|
|
|
|
|
|
Instant todayStart = LocalDate.now().atStartOfDay().toInstant(ZoneOffset.UTC); |
|
|
|
Instant todayStart = LocalDate.now().atStartOfDay().toInstant(ZoneOffset.UTC); |
|
|
|
Instant todayEnd = LocalDate.now().plusDays(1).atStartOfDay().toInstant(ZoneOffset.UTC); |
|
|
|
Instant todayEnd = LocalDate.now().plusDays(1).atStartOfDay().toInstant(ZoneOffset.UTC); |
|
|
|
|
|
|
|
|
|
|
@ -2057,7 +2019,178 @@ public class FltPlanQueryRepository { |
|
|
|
result.put(status, count); |
|
|
|
result.put(status, count); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
return result; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 기체번호로 비행계획서 조회
|
|
|
|
|
|
|
|
public List<BasFlightPlanModel> getPlanByIdntfNum(String idntfNum) { |
|
|
|
|
|
|
|
QFltPlanBas bas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
QFltPlanArcrft arcrft = QFltPlanArcrft.fltPlanArcrft; |
|
|
|
|
|
|
|
QFltPlanArea area = QFltPlanArea.fltPlanArea; |
|
|
|
|
|
|
|
QFltPlanAreaCoord coord = QFltPlanAreaCoord.fltPlanAreaCoord; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Instant fltNowDt = Instant.now(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<BasFlightPlanModel> rs = query.from(bas) |
|
|
|
|
|
|
|
.leftJoin(arcrft) |
|
|
|
|
|
|
|
.on(bas.planSno.eq(arcrft.planSno)) |
|
|
|
|
|
|
|
.leftJoin(area) |
|
|
|
|
|
|
|
.on(area.planSno.eq(area.planSno)) |
|
|
|
|
|
|
|
.where( |
|
|
|
|
|
|
|
arcrft.idntfNum.eq(idntfNum) |
|
|
|
|
|
|
|
.and(bas.aprvlYn.eq("Y")) |
|
|
|
|
|
|
|
.and(bas.schFltStDt.before(fltNowDt)) |
|
|
|
|
|
|
|
.and(bas.schFltEndDt.after(fltNowDt)) |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
.orderBy(bas.createDt.desc()) |
|
|
|
|
|
|
|
.transform( |
|
|
|
|
|
|
|
GroupBy.groupBy(bas.planSno) |
|
|
|
|
|
|
|
.list(Projections.bean( |
|
|
|
|
|
|
|
BasFlightPlanModel.class, |
|
|
|
|
|
|
|
bas.planSno, |
|
|
|
|
|
|
|
bas.groupId, |
|
|
|
|
|
|
|
bas.cstmrSno, |
|
|
|
|
|
|
|
bas.memberName, |
|
|
|
|
|
|
|
bas.fltType.stringValue().as("fltType"), |
|
|
|
|
|
|
|
bas.email, |
|
|
|
|
|
|
|
bas.hpno, |
|
|
|
|
|
|
|
bas.clncd, |
|
|
|
|
|
|
|
bas.addr, |
|
|
|
|
|
|
|
bas.addrDtlCn, |
|
|
|
|
|
|
|
bas.zip, |
|
|
|
|
|
|
|
bas.schFltStDt, |
|
|
|
|
|
|
|
bas.schFltEndDt, |
|
|
|
|
|
|
|
bas.fltPurpose.stringValue().as("fltPurpose"), |
|
|
|
|
|
|
|
bas.aprvlYn, |
|
|
|
|
|
|
|
bas.delYn, |
|
|
|
|
|
|
|
bas.fileGroupNo, |
|
|
|
|
|
|
|
bas.createUserId, |
|
|
|
|
|
|
|
bas.createDt, |
|
|
|
|
|
|
|
bas.updateUserId, |
|
|
|
|
|
|
|
bas.updateDt, |
|
|
|
|
|
|
|
bas.corpRegYn, |
|
|
|
|
|
|
|
bas.serviceType, |
|
|
|
|
|
|
|
GroupBy.list(Projections.bean( |
|
|
|
|
|
|
|
BasFlightPlanAreaModel.class, |
|
|
|
|
|
|
|
area.planAreaSno, |
|
|
|
|
|
|
|
area.planSno, |
|
|
|
|
|
|
|
area.areaType, |
|
|
|
|
|
|
|
area.fltMethod.stringValue().as("fltMethod"), |
|
|
|
|
|
|
|
area.bufferZone, |
|
|
|
|
|
|
|
area.fltElev, |
|
|
|
|
|
|
|
area.createUserId, |
|
|
|
|
|
|
|
area.createDt, |
|
|
|
|
|
|
|
area.updateUserId, |
|
|
|
|
|
|
|
area.updateDt, |
|
|
|
|
|
|
|
area.fltMothoeRm |
|
|
|
|
|
|
|
).skipNulls()).as("areaList"), |
|
|
|
|
|
|
|
GroupBy.list(Projections.bean( |
|
|
|
|
|
|
|
BasFlightPlanArcrftModel.class, |
|
|
|
|
|
|
|
arcrft.planArcrftSno, |
|
|
|
|
|
|
|
arcrft.planSno, |
|
|
|
|
|
|
|
arcrft.arcrftSno, |
|
|
|
|
|
|
|
arcrft.idntfNum, |
|
|
|
|
|
|
|
arcrft.groupNm, |
|
|
|
|
|
|
|
arcrft.prdctNum, |
|
|
|
|
|
|
|
arcrft.arcrftTypeCd.stringValue().as("arcrftTypeCd"), |
|
|
|
|
|
|
|
arcrft.arcrftModelNm, |
|
|
|
|
|
|
|
arcrft.prdctCmpnNm, |
|
|
|
|
|
|
|
arcrft.prdctDate, |
|
|
|
|
|
|
|
arcrft.arcrftLngth, |
|
|
|
|
|
|
|
arcrft.arcrftWdth, |
|
|
|
|
|
|
|
arcrft.arcrftHght, |
|
|
|
|
|
|
|
arcrft.arcrftWght, |
|
|
|
|
|
|
|
arcrft.arcrftWghtCd.stringValue().as("arcrftWghtCd"), |
|
|
|
|
|
|
|
arcrft.wghtTypeCd, |
|
|
|
|
|
|
|
arcrft.imageUrl, |
|
|
|
|
|
|
|
arcrft.takeoffWght, |
|
|
|
|
|
|
|
arcrft.useYn, |
|
|
|
|
|
|
|
arcrft.cameraYn, |
|
|
|
|
|
|
|
arcrft.insrncYn, |
|
|
|
|
|
|
|
arcrft.ownerNm, |
|
|
|
|
|
|
|
arcrft.createUserId, |
|
|
|
|
|
|
|
arcrft.createDt, |
|
|
|
|
|
|
|
arcrft.updateUserId, |
|
|
|
|
|
|
|
arcrft.updateDt, |
|
|
|
|
|
|
|
arcrft.acrftInsuranceYn, |
|
|
|
|
|
|
|
arcrft.insuranceExperiod, |
|
|
|
|
|
|
|
arcrft.corporationNm |
|
|
|
|
|
|
|
).skipNulls()).as("arcrftList") |
|
|
|
|
|
|
|
).skipNulls()) |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (rs != null && !rs.isEmpty()) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// enum cd -> nm
|
|
|
|
|
|
|
|
for (BasFlightPlanModel p : rs) { |
|
|
|
|
|
|
|
if (p == null) continue; |
|
|
|
|
|
|
|
FltType fltType = FltType.fromCode(p.getFltType()); |
|
|
|
|
|
|
|
if (fltType != null) p.setFltTypeNm(fltType.getValue()); |
|
|
|
|
|
|
|
FltPurpose fltPurpose = FltPurpose.fromCode(p.getFltPurpose()); |
|
|
|
|
|
|
|
if (fltPurpose != null) p.setFltPurposeNm(fltPurpose.getValue()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (p.getAreaList() != null && !p.getAreaList().isEmpty()) { |
|
|
|
|
|
|
|
for (BasFlightPlanAreaModel a : p.getAreaList()) { |
|
|
|
|
|
|
|
if (a == null) continue; |
|
|
|
|
|
|
|
FltMethod fltMethod = FltMethod.fromCode(a.getFltMethod()); |
|
|
|
|
|
|
|
if (fltMethod != null) a.setFltMethodNm(fltMethod.getValue()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (p.getArcrftList() != null && !p.getArcrftList().isEmpty()) { |
|
|
|
|
|
|
|
for (BasFlightPlanArcrftModel c : p.getArcrftList()) { |
|
|
|
|
|
|
|
if (c == null) continue; |
|
|
|
|
|
|
|
ArcrftTypeCd arcrftTypeCd = ArcrftTypeCd.fromCode(c.getArcrftTypeCd()); |
|
|
|
|
|
|
|
if (arcrftTypeCd != null) c.setArcrftTypeNm(arcrftTypeCd.getValue()); |
|
|
|
|
|
|
|
ArcrftWghtCd arcrftWghtCd = ArcrftWghtCd.fromCode(c.getArcrftWghtCd()); |
|
|
|
|
|
|
|
if (arcrftWghtCd != null) c.setArcrftWghtNm(arcrftWghtCd.getValue()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<Integer> areaSnoList = rs.stream() |
|
|
|
|
|
|
|
.filter(p -> p != null && p.getAreaList() != null && !p.getAreaList().isEmpty()) |
|
|
|
|
|
|
|
.map(p -> { |
|
|
|
|
|
|
|
List<BasFlightPlanAreaModel> areaList = p.getAreaList(); |
|
|
|
|
|
|
|
return areaList.stream().map(BasFlightPlanAreaModel::getPlanAreaSno).collect(Collectors.toList()); |
|
|
|
|
|
|
|
}).flatMap(Collection::stream).collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<BasFlightPlanAreaCoordModel> coordEntities = query.select( |
|
|
|
|
|
|
|
Projections.bean( |
|
|
|
|
|
|
|
BasFlightPlanAreaCoordModel.class, |
|
|
|
|
|
|
|
coord.planAreaCoordSno, |
|
|
|
|
|
|
|
coord.planAreaSno, |
|
|
|
|
|
|
|
coord.lat, |
|
|
|
|
|
|
|
coord.lon, |
|
|
|
|
|
|
|
coord.createUserId, |
|
|
|
|
|
|
|
coord.createDt |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
.from(coord) |
|
|
|
|
|
|
|
.where(coord.planAreaSno.in(areaSnoList)) |
|
|
|
|
|
|
|
.orderBy(coord.planAreaSno.asc(), coord.planAreaCoordSno.asc()) |
|
|
|
|
|
|
|
.fetch(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<Integer, List<BasFlightPlanAreaCoordModel>> coordMap = coordEntities.stream().collect(Collectors.groupingBy(BasFlightPlanAreaCoordModel::getPlanAreaSno)); |
|
|
|
|
|
|
|
if (!areaSnoList.isEmpty()) { |
|
|
|
|
|
|
|
rs.forEach(r -> { |
|
|
|
|
|
|
|
List<BasFlightPlanAreaModel> areaList = r.getAreaList(); |
|
|
|
|
|
|
|
areaList.forEach(a -> { |
|
|
|
|
|
|
|
List<BasFlightPlanAreaCoordModel> coordList = coordMap.get(a.getPlanAreaSno()); |
|
|
|
|
|
|
|
if (coordList != null && !coordList.isEmpty()) { |
|
|
|
|
|
|
|
a.setCoordList(coordList); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return rs; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |