Browse Source

Merge commit '0ae4b21f91cfeb6786416efbc07c6907acfe5059' into feature/main/date-statistics

pull/1/head
lkd9125 1 year ago
parent
commit
76af7ac8af
  1. 32
      pav-server/src/main/java/com/palnet/biz/api/main/dash/controller/MainDashController.java
  2. 28
      pav-server/src/main/java/com/palnet/biz/api/main/dash/service/MainDashService.java
  3. 55
      pav-server/src/main/java/com/palnet/biz/jpa/repository/flt/FltPlanQueryRepository.java

32
pav-server/src/main/java/com/palnet/biz/api/main/dash/controller/MainDashController.java

@ -186,7 +186,37 @@ public class MainDashController {
.body(new ErrorResponse("Server Error", "-1")); .body(new ErrorResponse("Server Error", "-1"));
} }
return ResponseEntity.ok().body(new SuccessResponse<Object>(result)); return ResponseEntity.ok().body(new SuccessResponse<List<MainDashStcsModel>>(result));
}
@GetMapping("/kac/stcs/plan-allow")
@ApiOperation(value = "김포공항, 비행승인 통계")
@Tag(name = "메인화면 컨트롤러", description = "메인화면 관련 API")
@ApiImplicitParam(name = "yyyymm",value = "날짜", dataTypeClass = String.class)
public ResponseEntity<? extends BasicResponse> kacPlanAllowStatistics(String yyyymm){
String[] formatParam = null;
try {
if(yyyymm == null) yyyymm = "";
formatParam = service.paramCheck(yyyymm);
} catch (NumberFormatException e) {
return ResponseEntity.status(HttpStatus.OK)
.body(new ErrorResponse(RSErrorCode.ER_PARAM));
}
List<MainDashStcsModel> result = null;
try {
result = service.mainKacStcsPlanAllow(yyyymm,formatParam);
} catch (Exception e) {
log.error("IGNORE : {}", e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(new ErrorResponse("Server Error", "-1"));
}
return ResponseEntity.ok().body(new SuccessResponse<List<MainDashStcsModel>>(result));
} }
} }

28
pav-server/src/main/java/com/palnet/biz/api/main/dash/service/MainDashService.java

@ -9,8 +9,6 @@ import java.util.stream.Collectors;
import com.palnet.biz.api.bas.group.model.BasGroupModel; import com.palnet.biz.api.bas.group.model.BasGroupModel;
import com.palnet.biz.jpa.repository.pty.*; import com.palnet.biz.jpa.repository.pty.*;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -18,24 +16,23 @@ import org.springframework.stereotype.Service;
import com.palnet.biz.api.main.dash.model.MainDashListModel; import com.palnet.biz.api.main.dash.model.MainDashListModel;
import com.palnet.biz.api.main.dash.model.MainDashStcsModel; import com.palnet.biz.api.main.dash.model.MainDashStcsModel;
import com.palnet.biz.jpa.repository.ctr.CtrCntrlBasRepository;
import com.palnet.biz.jpa.repository.ctr.CtrCntrlQueryRepository; import com.palnet.biz.jpa.repository.ctr.CtrCntrlQueryRepository;
import com.palnet.biz.jpa.repository.flt.FltPlanQueryRepository;
@Service @Service
@Slf4j
public class MainDashService { public class MainDashService {
private Logger logger = LoggerFactory.getLogger(getClass()); private Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private CtrCntrlBasRepository ctrCntrlBasRepository;
@Autowired @Autowired
private PtyDronQueryRepository ptyDronQueryRepository; private PtyDronQueryRepository ptyDronQueryRepository;
@Autowired @Autowired
private PtyGroupQueryRepository ptyGroupQueryRepository; private PtyGroupQueryRepository ptyGroupQueryRepository;
@Autowired
private FltPlanQueryRepository fltPlanQueryRepository;
@Autowired @Autowired
private CtrCntrlQueryRepository query; private CtrCntrlQueryRepository query;
@ -112,6 +109,18 @@ public class MainDashService {
return resultList; return resultList;
} }
/**
* 김포공항, 비행승인 통계
* @param yyyymm
* @return
*/
public List<MainDashStcsModel> mainKacStcsPlanAllow(String yyyymm, String[] formatParam){
List<MainDashStcsModel> resultList = fltPlanQueryRepository.mainKacStcsPlanAllow(yyyymm, formatParam);
return resultList;
}
/** /**
* 파라미터 체크 * 파라미터 체크
* 1. 연단위 검색 -> Parameter Null일 경우 * 1. 연단위 검색 -> Parameter Null일 경우
@ -127,6 +136,9 @@ public class MainDashService {
String[] result = new String[2]; String[] result = new String[2];
yyyymm = yyyymm.trim(); yyyymm = yyyymm.trim();
logger.error("yyyymm -> {}", yyyymm.length());
String[] paramStrings = yyyymm.split("-"); String[] paramStrings = yyyymm.split("-");
switch (yyyymm.length()) { switch (yyyymm.length()) {
@ -165,7 +177,7 @@ public class MainDashService {
} }
break; break;
default: // 1. 연단위 검색 -> Parameter Null일 경우 default: // 1. 연단위 검색 -> Parameter Null일 경우
if(paramStrings.length > 0) throw new NumberFormatException(); if(paramStrings.length > 1) throw new NumberFormatException();
result[0] = ""; result[0] = "";
result[1] = "%y"; result[1] = "%y";

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

@ -1,11 +1,8 @@
package com.palnet.biz.jpa.repository.flt; package com.palnet.biz.jpa.repository.flt;
import java.time.Instant; import java.time.Instant;
import java.util.Date;
import java.util.List; import java.util.List;
import com.palnet.biz.api.acnt.jwt.utils.JwtTokenUtil;
import org.springframework.cache.annotation.Cacheable; import org.springframework.cache.annotation.Cacheable;
import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
@ -18,6 +15,7 @@ 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.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.main.dash.model.MainDashStcsModel;
import com.palnet.biz.jpa.entity.FltPlanBas; import com.palnet.biz.jpa.entity.FltPlanBas;
import com.palnet.biz.jpa.entity.QComArcrftBas; import com.palnet.biz.jpa.entity.QComArcrftBas;
import com.palnet.biz.jpa.entity.QComIdntfBas; import com.palnet.biz.jpa.entity.QComIdntfBas;
@ -33,11 +31,13 @@ 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;
import com.querydsl.core.types.ConstantImpl;
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.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.core.types.dsl.StringTemplate;
import com.querydsl.jpa.JPAExpressions; import com.querydsl.jpa.JPAExpressions;
import com.querydsl.jpa.impl.JPAQueryFactory; import com.querydsl.jpa.impl.JPAQueryFactory;
@ -666,4 +666,53 @@ public class FltPlanQueryRepository {
return result; return result;
} }
/**
* 김포공항, 비행승인 통계 API
* @param yyyymm
* @return
*/
public List<MainDashStcsModel> mainKacStcsPlanAllow(String yyyymm, String[] formatParam){
QFltPlanBas bas = QFltPlanBas.fltPlanBas;
StringTemplate formattedDate = Expressions.stringTemplate(
"DATE_FORMAT({0}, {1})"
, bas.schFltStDt
, ConstantImpl.create(formatParam[0]));
StringTemplate formattedDate2 = Expressions.stringTemplate(
"DATE_FORMAT({0}, {1})"
, bas.schFltStDt
, ConstantImpl.create(formatParam[1]));
BooleanBuilder builder = new BooleanBuilder();
builder.and(bas.aprvlYn.eq("Y"));
if(yyyymm != null && yyyymm.length() > 0) builder.and(formattedDate.eq(yyyymm));
List<MainDashStcsModel> result = query
.select(
Projections.bean(
MainDashStcsModel.class ,
formattedDate2.as("typeCd"),
bas.count().as("count")
)
)
.from(bas)
.where(builder)
.groupBy(formattedDate2)
.fetch();
if(result.size() <= 0){
MainDashStcsModel node = new MainDashStcsModel();
node.setCount(0);
node.setTypeCd("NoData");
result.add(node);
}
return result;
}
} }
Loading…
Cancel
Save