Browse Source

비정상상황 통계 추가

pull/7/head
lkd9125 1 year ago
parent
commit
87377baa1c
  1. 30
      pav-server/src/main/java/com/palnet/biz/api/main/dash/controller/MainDashController.java
  2. 16
      pav-server/src/main/java/com/palnet/biz/api/main/dash/service/MainDashService.java
  3. 52
      pav-server/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java

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

@ -251,5 +251,35 @@ public class MainDashController {
return ResponseEntity.ok().body(new SuccessResponse<List<MainDashStcsModel>>(result)); return ResponseEntity.ok().body(new SuccessResponse<List<MainDashStcsModel>>(result));
} }
@GetMapping("/stcs/warning-flight/date/{type}")
@ApiOperation(value = "김포공항, 비정상상황 비행 통계")
@Tag(name = "메인화면 컨트롤러", description = "메인화면 관련 API")
@ApiImplicitParam(name = "date",value = "날짜", dataTypeClass = String.class)
public ResponseEntity<? extends BasicResponse> warningFlightStatistics(String date, @PathVariable String type){
String[] formatParam = null;
try {
if(date == null) date = "";
formatParam = service.paramCheck(date,type);
} catch (NumberFormatException e) {
return ResponseEntity.status(HttpStatus.OK)
.body(new ErrorResponse(RSErrorCode.ER_PARAM));
}
List<MainDashStcsModel> result = null;
try {
result = service.mainStcsWarningFlight(date,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));
}
} }

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

@ -122,7 +122,7 @@ public class MainDashService {
} }
/** /**
* 드론별 비행실적 리스트 * 김포공항, 드론별 비행실적 통계
* @param idntfNum * @param idntfNum
* @param date * @param date
* @param formatParam * @param formatParam
@ -135,6 +135,20 @@ public class MainDashService {
return resultList; return resultList;
} }
/**
* 김포공항, 비정상상황 통계
* @param idntfNum
* @param date
* @param formatParam
* @return
*/
public List<MainDashStcsModel> mainStcsWarningFlight(String date, String[] formatParam){
List<MainDashStcsModel> resultList = query.mainStcsWarningFlight(date, formatParam);
return resultList;
}
/** /**
* 파라미터 체크 * 파라미터 체크
* 1. 연단위 검색 -> Parameter Null일 경우 * 1. 연단위 검색 -> Parameter Null일 경우

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

@ -38,6 +38,7 @@ import com.palnet.biz.jpa.entity.QComIdntfBas;
import com.palnet.biz.jpa.entity.QCtrCntrlBas; import com.palnet.biz.jpa.entity.QCtrCntrlBas;
import com.palnet.biz.jpa.entity.QCtrCntrlHstry; import com.palnet.biz.jpa.entity.QCtrCntrlHstry;
import com.palnet.biz.jpa.entity.QCtrCntrlHstryArea; import com.palnet.biz.jpa.entity.QCtrCntrlHstryArea;
import com.palnet.biz.jpa.entity.QCtrCntrlWarnLog;
import com.palnet.biz.jpa.entity.QFltPlanArea; import com.palnet.biz.jpa.entity.QFltPlanArea;
import com.palnet.biz.jpa.entity.QFltPlanBas; import com.palnet.biz.jpa.entity.QFltPlanBas;
import com.palnet.biz.jpa.entity.QFltPlanCtrCntrlRel; import com.palnet.biz.jpa.entity.QFltPlanCtrCntrlRel;
@ -1710,8 +1711,6 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date)); if(date != null && date.length() > 0) builder.and(formattedDate.eq(date));
if(idntfNum != null) builder.and(bas.idntfNum.eq(idntfNum)); if(idntfNum != null) builder.and(bas.idntfNum.eq(idntfNum));
log.info("builder -> {}", builder);
List<MainDashStcsModel> result = query List<MainDashStcsModel> result = query
.select( .select(
Projections.bean( Projections.bean(
@ -1722,7 +1721,7 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){
) )
.from(bas) .from(bas)
.where(builder) .where(builder)
.groupBy(formattedDate2) .groupBy(formattedDate2)
.fetch(); .fetch();
if(result.size() <= 0){ if(result.size() <= 0){
@ -1736,6 +1735,53 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){
return result; return result;
} }
/**
* 김포공항, 비정상상황 통계
* @param date
* @param formatParam
* @return
*/
public List<MainDashStcsModel> mainStcsWarningFlight(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();
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date));
List<MainDashStcsModel> result = query
.select(
Projections.bean(
MainDashStcsModel.class ,
formattedDate2.as("typeCd"),
bas.cntrlId.countDistinct().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;
}
public List<CtrCntrlHstry> getCompleteInfo(String cntrlId){ public List<CtrCntrlHstry> getCompleteInfo(String cntrlId){

Loading…
Cancel
Save