Browse Source

비정상 상황 통계 API 추가

pull/12/head
lkd9125(이경도) 11 months ago
parent
commit
4d857ba9a4
  1. 4
      pav-server/src/main/java/com/palnet/biz/api/main/dash/controller/MainDashController.java
  2. 36
      pav-server/src/main/java/com/palnet/biz/api/main/dash/service/MainDashService.java
  3. 89
      pav-server/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java

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

@ -398,8 +398,8 @@ public class MainDashController {
if(date == null) date = "";
formatParam = service.paramCheck(date,type);
List<FlightStaticStcsModel> graphData = service.fltStatics(cate, date, formatParam);
List<FlightStaticStcsModel> topData = service.fltTopStatics(cate, date, formatParam);
List<FlightStaticStcsModel> graphData = service.warnStatics(cate, date, formatParam);
List<FlightStaticStcsModel> topData = service.warnTopStatics(cate, date, formatParam);
result.setGraphData(graphData);
result.setTopData(topData);

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

@ -242,7 +242,7 @@ public class MainDashService {
}
/**
* 김포공항, 비정상상황 통계
* 비행통계
* @param idntfNum
* @param date
* @param formatParam
@ -270,6 +270,13 @@ public class MainDashService {
return resultList;
}
/**
* 비행통계 카테고리 Top 5 데이터 가져오기
* @param cate
* @param date
* @param formatParam
* @return
*/
public List<FlightStaticStcsModel> fltTopStatics(String cate, String date, String[] formatParam){
List<FlightStaticStcsModel> resultList = null;
@ -311,5 +318,32 @@ public class MainDashService {
return result;
}
/**
* 비정상상황 그래프 데이터
* @param cate
* @param date
* @param formatParam
* @return
*/
public List<FlightStaticStcsModel> warnStatics(String cate, String date, String[] formatParam){
List<FlightStaticStcsModel> resultList = query.warnStcs(cate, date, formatParam);
return resultList;
}
/**
* 비정상상황 카테고리별 Top5 데이터
* @param cate
* @param date
* @param formatParam
* @return
*/
public List<FlightStaticStcsModel> warnTopStatics(String cate, String date, String[] formatParam){
List<FlightStaticStcsModel> resultList = query.warnTopStcs(cate, date, formatParam);
return resultList;
}
}

89
pav-server/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java

@ -2242,5 +2242,94 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){
}
/**
* 비정상상황 카테고리 경로이탈
* @param date
* @param formatParam
* @return
*/
public List<FlightStaticStcsModel> warnStcs(String cate, String date, String[] formatParam){
// QCtrCntrlBas bas = QCtrCntrlBas.ctrCntrlBas;
QCtrCntrlWarnLog bas = QCtrCntrlWarnLog.ctrCntrlWarnLog;
StringTemplate formattedDate = Expressions.stringTemplate(
"DATE_FORMAT({0}, {1})"
, bas.createDt
, ConstantImpl.create(formatParam[0]));
StringTemplate formattedDate2 = Expressions.stringTemplate(
"DATE_FORMAT({0}, {1})"
, bas.createDt
, ConstantImpl.create(formatParam[1]));
BooleanBuilder builder = new BooleanBuilder();
builder.and(bas.warnType.eq(cate));
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date));
List<FlightStaticStcsModel> result = query
.select(
Projections.bean(
FlightStaticStcsModel.class ,
formattedDate2.as("name"),
bas.cntrlId.countDistinct().as("value")
)
)
.from(bas)
.where(builder)
.groupBy(formattedDate2)
.fetch();
if(result.size() <= 0){
FlightStaticStcsModel node = new FlightStaticStcsModel();
node.setName(null);
node.setValue("NoData");
result.add(node);
}
return result;
}
/**
* 비정상상황 카테고리 기체별 Top5 통계
* @param cate
* @param date
* @param formatParam
* @return
*/
public List<FlightStaticStcsModel> warnTopStcs(String cate, String date, String[] formatParam){
QCtrCntrlWarnLog bas = QCtrCntrlWarnLog.ctrCntrlWarnLog;
StringTemplate formattedDate = Expressions.stringTemplate(
"DATE_FORMAT({0}, {1})"
, bas.createDt
, ConstantImpl.create(formatParam[0]));
BooleanBuilder builder = new BooleanBuilder();
builder.and(bas.warnType.eq(cate));
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date));
List<FlightStaticStcsModel> result = query
.select(
Projections.bean(FlightStaticStcsModel.class,
bas.idntfNum.as("name"), // 결과 객체의 프로퍼티 이름을 지정
bas.cntrlId.countDistinct().as("value") // 결과 객체의 프로퍼티 이름을 지정
)
)
.from(bas)
.where(builder)
.groupBy(bas.idntfNum)
.orderBy(bas.cntrlId.countDistinct().desc())
.limit(5)
.fetch();
return result;
}
}

Loading…
Cancel
Save