Browse Source

일일 비정상상황, 비행통계 RS 변경

pull/16/head
lkd9125(이경도) 10 months ago
parent
commit
2c75ced8e5
  1. 8
      pav-server/src/main/java/com/palnet/biz/api/main/dash/controller/MainDashController.java
  2. 24
      pav-server/src/main/java/com/palnet/biz/api/main/dash/model/MainDashPlanNumStcsModel.java
  3. 25
      pav-server/src/main/java/com/palnet/biz/api/main/dash/model/MainDashWarnNumStcsModel.java
  4. 52
      pav-server/src/main/java/com/palnet/biz/api/main/dash/service/MainDashService.java
  5. 9
      pav-server/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlWarnLogQueryRepository.java
  6. 9
      pav-server/src/main/java/com/palnet/biz/jpa/repository/flt/FltPlanQueryRepository.java

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

@ -344,7 +344,7 @@ public class MainDashController {
}) })
public ResponseEntity<? extends BasicResponse> currentFlightWarn(@RequestParam(required = false) String groupId){ public ResponseEntity<? extends BasicResponse> currentFlightWarn(@RequestParam(required = false) String groupId){
List<MainCurrentStcsModel> result = new ArrayList<>(); List<MainDashWarnNumStcsModel> result = new ArrayList<>();
try { try {
result = service.currentFlightWarn(groupId); result = service.currentFlightWarn(groupId);
@ -354,7 +354,7 @@ public class MainDashController {
.body(new ErrorResponse("Server Error", "-1")); .body(new ErrorResponse("Server Error", "-1"));
} }
return ResponseEntity.ok().body(new SuccessResponse<List<MainCurrentStcsModel>>(result)); return ResponseEntity.ok().body(new SuccessResponse<List<MainDashWarnNumStcsModel>>(result));
} }
@GetMapping("/current/flight-plan") @GetMapping("/current/flight-plan")
@ -366,7 +366,7 @@ public class MainDashController {
public ResponseEntity<? extends BasicResponse> currentFlightPlan(@RequestParam(required = false) String groupId){ public ResponseEntity<? extends BasicResponse> currentFlightPlan(@RequestParam(required = false) String groupId){
log.warn("groupId => {}", groupId); log.warn("groupId => {}", groupId);
List<MainCurrentStcsModel> result = new ArrayList<>(); List<MainDashPlanNumStcsModel> result = new ArrayList<>();
try { try {
result = service.currentFlightPlan(groupId); result = service.currentFlightPlan(groupId);
} catch (Exception e){ } catch (Exception e){
@ -377,7 +377,7 @@ public class MainDashController {
return ResponseEntity.ok().body(new SuccessResponse<List<MainCurrentStcsModel>>(result)); return ResponseEntity.ok().body(new SuccessResponse<List<MainDashPlanNumStcsModel>>(result));
} }

24
pav-server/src/main/java/com/palnet/biz/api/main/dash/model/MainDashPlanNumStcsModel.java

@ -0,0 +1,24 @@
package com.palnet.biz.api.main.dash.model;
import io.swagger.annotations.ApiParam;
import lombok.Data;
@Data
public class MainDashPlanNumStcsModel {
@ApiParam(value = "구분",example = "전일(어제), 금일(오늘), 명일(내일)")
private String dateType = "";
@ApiParam(value = "제출",example = "전일(어제), 금일(오늘), 명일(내일) 비행계획서 목록")
private int plan = 0;
@ApiParam(value = "승인",example = "전일(어제), 금일(오늘), 명일(내일) 비행승인 목록")
private int aprvn = 0;
@ApiParam(value = "합계",example = "전일(어제), 금일(오늘), 명일(내일) 합계")
private int count = 0;
@ApiParam(value = "비고",example = "전일(어제), 금일(오늘), 명일(내일) 비고")
private double note = 0;
}

25
pav-server/src/main/java/com/palnet/biz/api/main/dash/model/MainDashWarnNumStcsModel.java

@ -0,0 +1,25 @@
package com.palnet.biz.api.main.dash.model;
import io.swagger.annotations.ApiParam;
import lombok.Data;
@Data
public class MainDashWarnNumStcsModel {
@ApiParam(value = "구분",example = "전일(어제), 금일(오늘), 명일(내일)")
private String dateType = "";
@ApiParam(value = "경로이탈",example = "전일(어제), 금일(오늘), 명일(내일) 경로이탈")
private int plan = 0;
@ApiParam(value = "고도이탈",example = "전일(어제), 금일(오늘), 명일(내일) 고도이탈")
private int altitude = 0;
@ApiParam(value = "충돌",example = "전일(어제), 금일(오늘), 명일(내일) 충돌")
private int crash = 0;
@ApiParam(value = "합계",example = "전일(어제), 금일(오늘), 명일(내일) 합계")
private int count = 0;
@ApiParam(value = "비고",example = "전일(어제), 금일(오늘), 명일(내일) 비고")
private double note = 0;
}

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

@ -278,25 +278,25 @@ public class MainDashService {
public List<MainCurrentStcsModel> currentFlightPlan(String groupId){ public List<MainDashPlanNumStcsModel> currentFlightPlan(String groupId){
final int sumCount = 2; // 2번은 합계
boolean authCheck = mainStatisticsService.authCheck(groupId); boolean authCheck = mainStatisticsService.authCheck(groupId);
String[] dateCate = {"-2", "-1", "0", "1"}; // 2일전, 전일, 금일, 명일 String[] dateCate = {"beforeYesterday", "yesterday", "today", "tomorrow"}; // 2일전, 전일, 금일, 명일
List<MainCurrentStcsModel> result = new ArrayList<>(); List<MainDashPlanNumStcsModel> result = new ArrayList<>();
for(String cate : dateCate){ for(String cate : dateCate){
List<FltPlanBas> fltPlanBas = fltPlanQueryRepository.currentFlightStcs(groupId, authCheck, cate); List<FltPlanBas> fltPlanBas = fltPlanQueryRepository.currentFlightStcs(groupId, authCheck, cate);
int count = fltPlanBas.size(); int plan = fltPlanBas.size();
int aprvnCount = (int)fltPlanBas.stream().filter(value -> value.getAprvlYn().equals("Y")).count(); int aprvnCount = (int)fltPlanBas.stream().filter(value -> value.getAprvlYn().equals("Y")).count();
List<Integer> stcsValues = Arrays.asList(count, aprvnCount, aprvnCount); MainDashPlanNumStcsModel node = new MainDashPlanNumStcsModel();
node.setDateType(cate);
MainCurrentStcsModel node = new MainCurrentStcsModel(); node.setPlan(plan);
node.setStcsValues(stcsValues); node.setCount(aprvnCount); // 합계는 승인된 계획서를 합계로 침.
node.setAprvn(aprvnCount);
result.add(node); result.add(node);
} }
@ -305,8 +305,8 @@ public class MainDashService {
if(i == 0) continue;; if(i == 0) continue;;
int prevSum = result.get(i-1).getStcsValues().get(sumCount); // 전날 합계 [기준] int prevSum = result.get(i-1).getCount(); // 전날 합계 [기준]
int sum = result.get(i).getStcsValues().get(sumCount); // 합계 int sum = result.get(i).getCount(); // 합계
double percent = 0; double percent = 0;
@ -314,7 +314,7 @@ public class MainDashService {
percent = ((sum - prevSum) / (double) prevSum) * 100; percent = ((sum - prevSum) / (double) prevSum) * 100;
} }
result.get(i).setPercent(percent); result.get(i).setNote(percent);
} }
result.remove(0); result.remove(0);
@ -325,15 +325,13 @@ public class MainDashService {
public List<MainCurrentStcsModel> currentFlightWarn(String groupId){ public List<MainDashWarnNumStcsModel> currentFlightWarn(String groupId){
final int sumCount = 3; // 3번은 합계
boolean authCheck = mainStatisticsService.authCheck(groupId); boolean authCheck = mainStatisticsService.authCheck(groupId);
String[] dateCate = {"-2", "-1", "0", "1"}; String[] dateCate = {"beforeYesterday", "yesterday", "today", "tomorrow"}; // 2일전, 전일, 금일, 명일
List<MainCurrentStcsModel> result = new ArrayList<>(); List<MainDashWarnNumStcsModel> result = new ArrayList<>();
for(String cate : dateCate){ for(String cate : dateCate){
List<CtrCntrlWarnLog> cntrlWarnLogs = ctrCntrlWarnLogQueryRepository.currentStcs(groupId, authCheck, cate); List<CtrCntrlWarnLog> cntrlWarnLogs = ctrCntrlWarnLogQueryRepository.currentStcs(groupId, authCheck, cate);
@ -344,10 +342,12 @@ public class MainDashService {
int altitude = (int)cntrlWarnLogs.stream().filter(value -> value.getWarnType().equals(WarnType.ALTITUDE.getValue())).count(); int altitude = (int)cntrlWarnLogs.stream().filter(value -> value.getWarnType().equals(WarnType.ALTITUDE.getValue())).count();
int crash = (int)cntrlWarnLogs.stream().filter(value -> value.getWarnType().equals(WarnType.CRASH.getValue())).count(); int crash = (int)cntrlWarnLogs.stream().filter(value -> value.getWarnType().equals(WarnType.CRASH.getValue())).count();
List<Integer> stcsValues = Arrays.asList(plan, altitude, crash, count); MainDashWarnNumStcsModel node = new MainDashWarnNumStcsModel();
node.setDateType(cate);
MainCurrentStcsModel node = new MainCurrentStcsModel(); node.setPlan(plan);
node.setStcsValues(stcsValues); node.setAltitude(altitude);
node.setCrash(crash);
node.setCount(count);
result.add(node); result.add(node);
} }
@ -356,8 +356,8 @@ public class MainDashService {
if(i == 0) continue;; if(i == 0) continue;;
int prevSum = result.get(i-1).getStcsValues().get(sumCount); // 전날 합계 [기준] int prevSum = result.get(i-1).getCount(); // 전날 합계 [기준]
int sum = result.get(i).getStcsValues().get(sumCount); // 합계 int sum = result.get(i).getCount(); // 합계
double percent = 0; double percent = 0;
@ -365,7 +365,7 @@ public class MainDashService {
percent = ((sum - prevSum) / (double) prevSum) * 100; percent = ((sum - prevSum) / (double) prevSum) * 100;
} }
result.get(i).setPercent(percent); result.get(i).setNote(percent);
} }
result.remove(0); result.remove(0);

9
pav-server/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlWarnLogQueryRepository.java

@ -325,8 +325,9 @@ public class CtrCntrlWarnLogQueryRepository {
String dateFormat = "%Y-%m-%d"; String dateFormat = "%Y-%m-%d";
BooleanExpression dateExpression = null; BooleanExpression dateExpression = null;
switch (cate){ switch (cate){
case "-2" : case "beforeYesterday" :
dateExpression = dateExpression =
Expressions.stringTemplate("DATE_FORMAT({0}, {1})", qCtrCntrlWarnLog.createDt, dateFormat) Expressions.stringTemplate("DATE_FORMAT({0}, {1})", qCtrCntrlWarnLog.createDt, dateFormat)
.eq(LocalDate.now().minusDays(2).toString()); .eq(LocalDate.now().minusDays(2).toString());
@ -334,7 +335,7 @@ public class CtrCntrlWarnLogQueryRepository {
builder.and(dateExpression); builder.and(dateExpression);
break; break;
case "-1": case "yesterday":
dateExpression = dateExpression =
Expressions.stringTemplate("DATE_FORMAT({0}, {1})", qCtrCntrlWarnLog.createDt, dateFormat) Expressions.stringTemplate("DATE_FORMAT({0}, {1})", qCtrCntrlWarnLog.createDt, dateFormat)
.eq(LocalDate.now().minusDays(1).toString()); .eq(LocalDate.now().minusDays(1).toString());
@ -342,14 +343,14 @@ public class CtrCntrlWarnLogQueryRepository {
builder.and(dateExpression); builder.and(dateExpression);
break; break;
case "0": case "today":
dateExpression = dateExpression =
Expressions.stringTemplate("DATE_FORMAT({0}, {1})", qCtrCntrlWarnLog.createDt, dateFormat) Expressions.stringTemplate("DATE_FORMAT({0}, {1})", qCtrCntrlWarnLog.createDt, dateFormat)
.eq(LocalDate.now().toString()); .eq(LocalDate.now().toString());
builder.and(dateExpression); builder.and(dateExpression);
break; break;
case "1": case "tomorrow":
dateExpression = dateExpression =
Expressions.stringTemplate("DATE_FORMAT({0}, {1})", qCtrCntrlWarnLog.createDt, dateFormat) Expressions.stringTemplate("DATE_FORMAT({0}, {1})", qCtrCntrlWarnLog.createDt, dateFormat)
.eq(LocalDate.now().plusDays(1).toString()); .eq(LocalDate.now().plusDays(1).toString());

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

@ -1881,8 +1881,9 @@ public class FltPlanQueryRepository {
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 "beforeYesterday" :
dateExpression = dateExpression =
Expressions.stringTemplate("DATE_FORMAT({0}, {1})", qFltPlanBas.createDt, "%Y-%m-%d") Expressions.stringTemplate("DATE_FORMAT({0}, {1})", qFltPlanBas.createDt, "%Y-%m-%d")
.eq(LocalDate.now().minusDays(2).toString()); .eq(LocalDate.now().minusDays(2).toString());
@ -1890,7 +1891,7 @@ public class FltPlanQueryRepository {
builder.and(dateExpression); builder.and(dateExpression);
break; break;
case "-1": case "yesterday":
dateExpression = dateExpression =
Expressions.stringTemplate("DATE_FORMAT({0}, {1})", qFltPlanBas.createDt, "%Y-%m-%d") Expressions.stringTemplate("DATE_FORMAT({0}, {1})", qFltPlanBas.createDt, "%Y-%m-%d")
.eq(LocalDate.now().minusDays(1).toString()); .eq(LocalDate.now().minusDays(1).toString());
@ -1898,14 +1899,14 @@ public class FltPlanQueryRepository {
builder.and(dateExpression); builder.and(dateExpression);
break; break;
case "0": case "today":
dateExpression = dateExpression =
Expressions.stringTemplate("DATE_FORMAT({0}, {1})", qFltPlanBas.createDt, "%Y-%m-%d") Expressions.stringTemplate("DATE_FORMAT({0}, {1})", qFltPlanBas.createDt, "%Y-%m-%d")
.eq(LocalDate.now().toString()); .eq(LocalDate.now().toString());
builder.and(dateExpression); builder.and(dateExpression);
break; break;
case "1": case "tomorrow":
dateExpression = dateExpression =
Expressions.stringTemplate("DATE_FORMAT({0}, {1})", qFltPlanBas.createDt, "%Y-%m-%d") Expressions.stringTemplate("DATE_FORMAT({0}, {1})", qFltPlanBas.createDt, "%Y-%m-%d")
.eq(LocalDate.now().plusDays(1).toString()); .eq(LocalDate.now().plusDays(1).toString());

Loading…
Cancel
Save