|
|
@ -1,6 +1,7 @@ |
|
|
|
package com.palnet.biz.api.main.dash.service; |
|
|
|
package com.palnet.biz.api.main.dash.service; |
|
|
|
|
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.ArrayList; |
|
|
|
|
|
|
|
import java.util.Arrays; |
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.List; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Map; |
|
|
@ -18,10 +19,16 @@ import org.slf4j.LoggerFactory; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.palnet.biz.api.main.dash.model.MainCurrentStcsModel; |
|
|
|
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.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.api.main.statistics.service.MainStatisticsService; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.entity.CtrCntrlWarnLog; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.entity.FltPlanBas; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.entity.type.WarnType; |
|
|
|
import com.palnet.biz.jpa.repository.ctr.CtrCntrlQueryRepository; |
|
|
|
import com.palnet.biz.jpa.repository.ctr.CtrCntrlQueryRepository; |
|
|
|
|
|
|
|
import com.palnet.biz.jpa.repository.ctr.CtrCntrlWarnLogQueryRepository; |
|
|
|
import com.palnet.biz.jpa.repository.flt.FltPlanArcrftRepository; |
|
|
|
import com.palnet.biz.jpa.repository.flt.FltPlanArcrftRepository; |
|
|
|
import com.palnet.biz.jpa.repository.flt.FltPlanQueryRepository; |
|
|
|
import com.palnet.biz.jpa.repository.flt.FltPlanQueryRepository; |
|
|
|
|
|
|
|
|
|
|
@ -40,6 +47,9 @@ public class MainDashService { |
|
|
|
@Autowired |
|
|
|
@Autowired |
|
|
|
private FltPlanQueryRepository fltPlanQueryRepository; |
|
|
|
private FltPlanQueryRepository fltPlanQueryRepository; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
|
|
|
|
private CtrCntrlWarnLogQueryRepository ctrCntrlWarnLogQueryRepository; |
|
|
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
@Autowired |
|
|
|
private CtrCntrlQueryRepository query; |
|
|
|
private CtrCntrlQueryRepository query; |
|
|
|
|
|
|
|
|
|
|
@ -49,6 +59,9 @@ public class MainDashService { |
|
|
|
@Autowired |
|
|
|
@Autowired |
|
|
|
private JwtTokenUtil token; |
|
|
|
private JwtTokenUtil token; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
|
|
|
|
private MainStatisticsService mainStatisticsService; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 일별 비행횟수 통계 |
|
|
|
* 일별 비행횟수 통계 |
|
|
@ -252,4 +265,52 @@ public class MainDashService { |
|
|
|
return result; |
|
|
|
return result; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public List<MainCurrentStcsModel> currentFlightWarn(String groupId){ |
|
|
|
|
|
|
|
final int sumCount = 3; // 3번은 합계
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
boolean authCheck = mainStatisticsService.authCheck(groupId); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String[] dateCate = {"-2", "-1", "0", "1"}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<MainCurrentStcsModel> result = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(String cate : dateCate){ |
|
|
|
|
|
|
|
List<CtrCntrlWarnLog> cntrlWarnLogs = ctrCntrlWarnLogQueryRepository.currentStcs(groupId, authCheck, cate); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int count = cntrlWarnLogs.size(); //
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int plan = (int)cntrlWarnLogs.stream().filter(value -> value.getWarnType().equals(WarnType.PLAN.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(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<Integer> stcsValues = Arrays.asList(plan, altitude, crash, count); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MainCurrentStcsModel node = new MainCurrentStcsModel(); |
|
|
|
|
|
|
|
node.setStcsValues(stcsValues); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
result.add(node); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(int i = 0; i < result.size(); i++){ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(i == 0) continue;; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int prevSum = result.get(i-1).getStcsValues().get(sumCount); // 전날 합계 [기준]
|
|
|
|
|
|
|
|
int sum = result.get(i).getStcsValues().get(sumCount); // 합계
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
double percent = 0; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(prevSum != 0){ |
|
|
|
|
|
|
|
percent = ((sum - prevSum) / (double) prevSum) * 100; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
result.get(i).setPercent(percent); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
result.remove(0); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|