|
@@ -7,7 +7,6 @@ import com.utic.ptis.server.dto.LinkDto;
|
|
import com.utic.ptis.server.dto.dwdb.ParamAnalysisType;
|
|
import com.utic.ptis.server.dto.dwdb.ParamAnalysisType;
|
|
import com.utic.ptis.server.dto.utic.TrafficGrade;
|
|
import com.utic.ptis.server.dto.utic.TrafficGrade;
|
|
import com.utic.ptis.server.dto.utic.TrafficWeight;
|
|
import com.utic.ptis.server.dto.utic.TrafficWeight;
|
|
-import com.utic.ptis.server.service.collect.LinkCollectSetupService;
|
|
|
|
import lombok.Getter;
|
|
import lombok.Getter;
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -26,7 +25,7 @@ import java.util.stream.Collectors;
|
|
@Service
|
|
@Service
|
|
public class LinkTrafFusionService implements AbstractProcessService {
|
|
public class LinkTrafFusionService implements AbstractProcessService {
|
|
|
|
|
|
- private final LinkRepositoryService linkRepo;
|
|
|
|
|
|
+ private final LinkRepositoryService linkRepositoryService;
|
|
private final LinkTrafParamService trafParamService;
|
|
private final LinkTrafParamService trafParamService;
|
|
private final LinkTrafCollectService collectService;
|
|
private final LinkTrafCollectService collectService;
|
|
|
|
|
|
@@ -42,24 +41,25 @@ public class LinkTrafFusionService implements AbstractProcessService {
|
|
Elapsed elapsed = new Elapsed();
|
|
Elapsed elapsed = new Elapsed();
|
|
|
|
|
|
// 0. 링크 소통정보를 초기화 한다.
|
|
// 0. 링크 소통정보를 초기화 한다.
|
|
- this.linkRepo.initLinkTraf(true);
|
|
|
|
|
|
+ this.linkRepositoryService.initLinkTraf(true);
|
|
|
|
|
|
// 1. 수집된 소통정보를 객체로 초기화 한다.
|
|
// 1. 수집된 소통정보를 객체로 초기화 한다.
|
|
- this.collectOPER = Optional.ofNullable(this.collectService.get(LinkCollectSetupService.OPER))
|
|
|
|
- .orElseGet(() -> LinkCollectResultDto.builder().clctSystCd(LinkCollectSetupService.OPER).lists(new ArrayList<>()).build());
|
|
|
|
- this.collectUTIS = Optional.ofNullable(this.collectService.get(LinkCollectSetupService.UTIS))
|
|
|
|
- .orElseGet(() -> LinkCollectResultDto.builder().clctSystCd(LinkCollectSetupService.UTIS).lists(new ArrayList<>()).build());
|
|
|
|
- this.collectPRIO = Optional.ofNullable(this.collectService.get(LinkCollectSetupService.PRIO))
|
|
|
|
- .orElseGet(() -> LinkCollectResultDto.builder().clctSystCd(LinkCollectSetupService.PRIO).lists(new ArrayList<>()).build());
|
|
|
|
- this.collectPRIOETC = Optional.ofNullable(this.collectService.get(LinkCollectSetupService.PRIOETC))
|
|
|
|
- .orElseGet(() -> LinkCollectResultDto.builder().clctSystCd(LinkCollectSetupService.PRIOETC).lists(new ArrayList<>()).build());
|
|
|
|
- this.collectDONGBU = Optional.ofNullable(this.collectService.get(LinkCollectSetupService.DONGBU))
|
|
|
|
- .orElseGet(() -> LinkCollectResultDto.builder().clctSystCd(LinkCollectSetupService.DONGBU).lists(new ArrayList<>()).build());
|
|
|
|
- this.collectMOCT = Optional.ofNullable(this.collectService.get(LinkCollectSetupService.MOCT))
|
|
|
|
- .orElseGet(() -> LinkCollectResultDto.builder().clctSystCd(LinkCollectSetupService.MOCT).lists(new ArrayList<>()).build());
|
|
|
|
|
|
+ this.collectOPER = Optional.ofNullable(this.collectService.get(LinkTrafCollectSetupService.OPER))
|
|
|
|
+ .orElseGet(() -> LinkCollectResultDto.builder().clctSystCd(LinkTrafCollectSetupService.OPER).lists(new ArrayList<>()).build());
|
|
|
|
+ this.collectUTIS = Optional.ofNullable(this.collectService.get(LinkTrafCollectSetupService.UTIS))
|
|
|
|
+ .orElseGet(() -> LinkCollectResultDto.builder().clctSystCd(LinkTrafCollectSetupService.UTIS).lists(new ArrayList<>()).build());
|
|
|
|
+ this.collectPRIO = Optional.ofNullable(this.collectService.get(LinkTrafCollectSetupService.PRIO))
|
|
|
|
+ .orElseGet(() -> LinkCollectResultDto.builder().clctSystCd(LinkTrafCollectSetupService.PRIO).lists(new ArrayList<>()).build());
|
|
|
|
+ this.collectPRIOETC = Optional.ofNullable(this.collectService.get(LinkTrafCollectSetupService.PRIOETC))
|
|
|
|
+ .orElseGet(() -> LinkCollectResultDto.builder().clctSystCd(LinkTrafCollectSetupService.PRIOETC).lists(new ArrayList<>()).build());
|
|
|
|
+ this.collectDONGBU = Optional.ofNullable(this.collectService.get(LinkTrafCollectSetupService.DONGBU))
|
|
|
|
+ .orElseGet(() -> LinkCollectResultDto.builder().clctSystCd(LinkTrafCollectSetupService.DONGBU).lists(new ArrayList<>()).build());
|
|
|
|
+ this.collectMOCT = Optional.ofNullable(this.collectService.get(LinkTrafCollectSetupService.MOCT))
|
|
|
|
+ .orElseGet(() -> LinkCollectResultDto.builder().clctSystCd(LinkTrafCollectSetupService.MOCT).lists(new ArrayList<>()).build());
|
|
|
|
|
|
log.info("[FUSION.] LinkTrafFusionService.initialize: ..end. {}", Elapsed.elapsedStr(elapsed.nanoSeconds()));
|
|
log.info("[FUSION.] LinkTrafFusionService.initialize: ..end. {}", Elapsed.elapsedStr(elapsed.nanoSeconds()));
|
|
}
|
|
}
|
|
|
|
+
|
|
public int processing() {
|
|
public int processing() {
|
|
log.info("[FUSION.] LinkTrafFusionService.processing: start.");
|
|
log.info("[FUSION.] LinkTrafFusionService.processing: start.");
|
|
Elapsed elapsed = new Elapsed();
|
|
Elapsed elapsed = new Elapsed();
|
|
@@ -86,160 +86,16 @@ public class LinkTrafFusionService implements AbstractProcessService {
|
|
// 4. 소통정보 보정(속도, 통행시간 계산)
|
|
// 4. 소통정보 보정(속도, 통행시간 계산)
|
|
trafficCorrect();
|
|
trafficCorrect();
|
|
|
|
|
|
- // 4. 결측정보 처리를 통한 가공정보 생성
|
|
|
|
- missingDataCorrect();
|
|
|
|
-
|
|
|
|
log.info("[FUSION.] LinkTrafFusionService.processing: ..end. {}", Elapsed.elapsedStr(elapsed.nanoSeconds()));
|
|
log.info("[FUSION.] LinkTrafFusionService.processing: ..end. {}", Elapsed.elapsedStr(elapsed.nanoSeconds()));
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
- private int missingDataCorrectPSD() {
|
|
|
|
- log.info("[FUSION.] LinkTrafFusionService.missingDataCorrectPSD: start.");
|
|
|
|
- Elapsed elapsed = new Elapsed();
|
|
|
|
-
|
|
|
|
- /* PSD 알고리즘 결측정보 처리
|
|
|
|
- * 1. 레벨1 구간에 대한 처리
|
|
|
|
- * 2. 결측된 링크의 현재 패턴정보가 존재해야 처리할 수 있음.
|
|
|
|
- * 3. 상/하류 구간의 현재/패턴 정보가 존재해야함.
|
|
|
|
- * 3.1 상/하류 구간 정보가 모두 존재하는 경우
|
|
|
|
- * 결측속도 = 결측구간 패턴속도 * { [AVG(상류부현재속도+하류부현재속도)] / [AVG(상류부패턴속도+하류부패턴속도)] }
|
|
|
|
- * 3.2 상/하류 구간 중 하나의 구간 정보 만 존해하는 경우
|
|
|
|
- * 결측속도 = 결측구간 패턴속도 * { 상/하류구간현재속도 / 상/하류구간패턴속도 }
|
|
|
|
- * 4. 3항에서 결측한 결측 속도를 포함한 레벨4 구간의 속도정보를 계산
|
|
|
|
- * 5. 결측이 발생한 레벨1 구간에 대해
|
|
|
|
- * 결측속도 = 결측구간 패턴속도 * { 레벨4현재속도 / 레벨4패턴속도 }
|
|
|
|
- */
|
|
|
|
- AtomicInteger nCalCnt = new AtomicInteger();
|
|
|
|
- this.linkRepo.getLinkMap().values().parallelStream()
|
|
|
|
- .filter(link -> link.getLinkLevel() == 1)
|
|
|
|
- .forEach(link -> {
|
|
|
|
- // 구간의 패턴정보가 존재하지 않는 다면 결측 처리 못함
|
|
|
|
- if (!link.getTrafPtrn().getState().isState()) {
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- LinkDto upLink = this.linkRepo.getLink(link.getUpLinkId());
|
|
|
|
- LinkDto dnLink = this.linkRepo.getLink(link.getDnLinkId());
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- int step, speed;
|
|
|
|
- float cSpeed, pSpeed, ptrnSpeed;
|
|
|
|
-
|
|
|
|
- step = 0;
|
|
|
|
- cSpeed = pSpeed = 0F;
|
|
|
|
- ptrnSpeed = (float)link.getTrafPtrn().getSpeed();
|
|
|
|
-
|
|
|
|
- if (upLink != null) {
|
|
|
|
- if (upLink.getTrafFsn().getState().isState() && upLink.getTrafPtrn().getState().isState()) {
|
|
|
|
- // 상류 구간의 현재속도 정보와 패턴정보가 존재한다.
|
|
|
|
- step += 1;
|
|
|
|
- cSpeed += (float)upLink.getTrafFsn().getSpeed();
|
|
|
|
- pSpeed += (float)upLink.getTrafPtrn().getSpeed();
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- if (dnLink != null) {
|
|
|
|
- if (dnLink.getTrafFsn().getState().isState() && dnLink.getTrafPtrn().getState().isState()) {
|
|
|
|
- // 상류 구간의 현재속도 정보와 패턴정보가 존재한다.
|
|
|
|
- step += 2;
|
|
|
|
- cSpeed += (float)dnLink.getTrafFsn().getSpeed();
|
|
|
|
- pSpeed += (float)dnLink.getTrafPtrn().getSpeed();
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (step == 1) {
|
|
|
|
- // 상류부 소통정보 만 존재하는 경우 'H'
|
|
|
|
- speed = (int)( (ptrnSpeed * (cSpeed / pSpeed)) + 0.5 );
|
|
|
|
- link.getMissPsd().setTraffic("H", speed);
|
|
|
|
- }
|
|
|
|
- else if (step == 2) {
|
|
|
|
- // 하류부 소통정보 만 존재하는 경우 'L'
|
|
|
|
- speed = (int)( (ptrnSpeed * (cSpeed / pSpeed)) + 0.5 );
|
|
|
|
- link.getMissPsd().setTraffic("L", speed);
|
|
|
|
- }
|
|
|
|
- else if (step == 3)
|
|
|
|
- {
|
|
|
|
- // 상/하류부 소통정보가 모두 존재하는 경우 'Y'
|
|
|
|
- speed = (int)( (ptrnSpeed * ((cSpeed/2.) / (pSpeed/2.))) + 0.5 );
|
|
|
|
- link.getMissPsd().setTraffic("Y", speed);
|
|
|
|
- }
|
|
|
|
- else {
|
|
|
|
- /* 소통정보가 존재 하지 않음 */
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- if (link.getMissPsd().getSpeed() > link.getMaxSpeed()) {
|
|
|
|
- link.getMissPsd().setSpeed(link.getMaxSpeed());
|
|
|
|
- }
|
|
|
|
- nCalCnt.incrementAndGet();
|
|
|
|
- }
|
|
|
|
- );
|
|
|
|
-
|
|
|
|
- log.info("[FUSION.] LinkTrafFusionService.missingDataCorrectPSD: ..end. {} EA. {}", nCalCnt.get(), Elapsed.elapsedStr(elapsed.nanoSeconds()));
|
|
|
|
- return nCalCnt.get();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- private int correctLevelTraffic(int linkLevel, String dataResType) {
|
|
|
|
- log.info("[FUSION.] LinkTrafFusionService.correctLevelTraffic[Level:{}]: start.", linkLevel);
|
|
|
|
- Elapsed elapsed = new Elapsed();
|
|
|
|
- AtomicInteger nCalCnt = new AtomicInteger();
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- this.linkRepo.getLinkMap().values().parallelStream()
|
|
|
|
- .filter(link -> link.getLinkLevel() == linkLevel)
|
|
|
|
- .forEach(link -> {
|
|
|
|
- // 링크그룹에 속한 레벨1 링크의 소통정보를 이용하여 링크그룹 소통정보를 생성한다.
|
|
|
|
- if (link.getLinkIds() == null || link.getLinkIds().isEmpty()) {
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- float sumSpeed, sumLength, speed;
|
|
|
|
- int clctCnt;
|
|
|
|
- sumSpeed = sumLength = speed = 0.F;
|
|
|
|
- clctCnt = 0;
|
|
|
|
- for (String linkId : link.getLinkIds()) {
|
|
|
|
- LinkDto subLink = this.linkRepo.getLink(linkId);
|
|
|
|
- if (subLink == null) {
|
|
|
|
- log.error("[FUSION.] LinkTrafFusionService.correctLevelTraffic[Level:{}]: {} link not found.", linkLevel, linkId);
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
- if (!subLink.getTrafFsn().getState().isState()) {
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
- if (subLink.getTrafFsn().getSpeed() > 0) {
|
|
|
|
- sumSpeed += (float)(subLink.getTrafFsn().getSpeed() * subLink.getLength());
|
|
|
|
- sumLength+= (float)subLink.getLength();
|
|
|
|
- clctCnt++;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- if (sumSpeed > 0. && sumLength > 0. && clctCnt > 0) {
|
|
|
|
-
|
|
|
|
- nCalCnt.incrementAndGet();
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- );
|
|
|
|
-
|
|
|
|
- log.info("[FUSION.] LinkTrafFusionService.correctLevelTraffic[Level:{}]: ..end. {} EA. {}", linkLevel, nCalCnt.get(), Elapsed.elapsedStr(elapsed.nanoSeconds()));
|
|
|
|
- return nCalCnt.get();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- private int missingDataCorrect() {
|
|
|
|
- log.info("[FUSION.] LinkTrafFusionService.missingDataCorrect: start.");
|
|
|
|
- Elapsed elapsed = new Elapsed();
|
|
|
|
-
|
|
|
|
- // 모든 결측 알고리즘에 대해 결측 처리를 수행하고 최종 선택된 결측 알고리즘으로 결측을 수행한다.
|
|
|
|
- // 1. PSD 알고리즘
|
|
|
|
- missingDataCorrectPSD();
|
|
|
|
-
|
|
|
|
- // 2. 결측처리된 레벨1 구간 소통정보를 이용하여 레벨4 구간 소통정보 생성
|
|
|
|
- correctLevelTraffic(4, "P");
|
|
|
|
-
|
|
|
|
- log.info("[FUSION.] LinkTrafFusionService.missingDataCorrect: ..end. {}", Elapsed.elapsedStr(elapsed.nanoSeconds()));
|
|
|
|
- return 0;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
private int trafficCorrect() {
|
|
private int trafficCorrect() {
|
|
log.info("[FUSION.] LinkTrafFusionService.trafficCorrect: start.");
|
|
log.info("[FUSION.] LinkTrafFusionService.trafficCorrect: start.");
|
|
Elapsed elapsed = new Elapsed();
|
|
Elapsed elapsed = new Elapsed();
|
|
|
|
|
|
AtomicInteger nCalCnt = new AtomicInteger();
|
|
AtomicInteger nCalCnt = new AtomicInteger();
|
|
- this.linkRepo.getLinkMap().values().parallelStream()
|
|
|
|
|
|
+ this.linkRepositoryService.getLinkMap().values().parallelStream()
|
|
.filter(link -> link.getLinkLevel() == 1)
|
|
.filter(link -> link.getLinkLevel() == 1)
|
|
.forEach(link -> {
|
|
.forEach(link -> {
|
|
TrafficGrade grade = Optional.ofNullable(this.trafParamService.getTrafGradeMap().get(link.getLinkId()))
|
|
TrafficGrade grade = Optional.ofNullable(this.trafParamService.getTrafGradeMap().get(link.getLinkId()))
|
|
@@ -257,7 +113,7 @@ public class LinkTrafFusionService implements AbstractProcessService {
|
|
}
|
|
}
|
|
|
|
|
|
private boolean fusionTraffic(LinkCollectDto clctTraf, final String clctSystCd) {
|
|
private boolean fusionTraffic(LinkCollectDto clctTraf, final String clctSystCd) {
|
|
- LinkDto link = this.linkRepo.getLink(clctTraf.getLinkId());
|
|
|
|
|
|
+ LinkDto link = this.linkRepositoryService.getLink(clctTraf.getLinkId());
|
|
if (link == null) {
|
|
if (link == null) {
|
|
log.error("[FUSION.] LinkTrafFusionService.fusionTraffic: {} link not found[{}].", clctTraf.getLinkId(), clctSystCd);
|
|
log.error("[FUSION.] LinkTrafFusionService.fusionTraffic: {} link not found[{}].", clctTraf.getLinkId(), clctSystCd);
|
|
return false;
|
|
return false;
|
|
@@ -276,25 +132,25 @@ public class LinkTrafFusionService implements AbstractProcessService {
|
|
AtomicInteger nCalCnt = new AtomicInteger();
|
|
AtomicInteger nCalCnt = new AtomicInteger();
|
|
this.collectUTIS.getLists().parallelStream()
|
|
this.collectUTIS.getLists().parallelStream()
|
|
.forEach(clctTraf -> {
|
|
.forEach(clctTraf -> {
|
|
- if (fusionTraffic(clctTraf, LinkCollectSetupService.UTIS)) {
|
|
|
|
|
|
+ if (fusionTraffic(clctTraf, LinkTrafCollectSetupService.UTIS)) {
|
|
nCalCnt.incrementAndGet();
|
|
nCalCnt.incrementAndGet();
|
|
}
|
|
}
|
|
});
|
|
});
|
|
this.collectPRIO.getLists().parallelStream()
|
|
this.collectPRIO.getLists().parallelStream()
|
|
.forEach(clctTraf -> {
|
|
.forEach(clctTraf -> {
|
|
- if (fusionTraffic(clctTraf, LinkCollectSetupService.PRIO)) {
|
|
|
|
|
|
+ if (fusionTraffic(clctTraf, LinkTrafCollectSetupService.PRIO)) {
|
|
nCalCnt.incrementAndGet();
|
|
nCalCnt.incrementAndGet();
|
|
}
|
|
}
|
|
});
|
|
});
|
|
this.collectPRIOETC.getLists().parallelStream()
|
|
this.collectPRIOETC.getLists().parallelStream()
|
|
.forEach(clctTraf -> {
|
|
.forEach(clctTraf -> {
|
|
- if (fusionTraffic(clctTraf, LinkCollectSetupService.PRIOETC)) {
|
|
|
|
|
|
+ if (fusionTraffic(clctTraf, LinkTrafCollectSetupService.PRIOETC)) {
|
|
nCalCnt.incrementAndGet();
|
|
nCalCnt.incrementAndGet();
|
|
}
|
|
}
|
|
});
|
|
});
|
|
this.collectDONGBU.getLists().parallelStream()
|
|
this.collectDONGBU.getLists().parallelStream()
|
|
.forEach(clctTraf -> {
|
|
.forEach(clctTraf -> {
|
|
- if (fusionTraffic(clctTraf, LinkCollectSetupService.DONGBU)) {
|
|
|
|
|
|
+ if (fusionTraffic(clctTraf, LinkTrafCollectSetupService.DONGBU)) {
|
|
nCalCnt.incrementAndGet();
|
|
nCalCnt.incrementAndGet();
|
|
}
|
|
}
|
|
});
|
|
});
|
|
@@ -307,13 +163,13 @@ public class LinkTrafFusionService implements AbstractProcessService {
|
|
log.info("[FUSION.] LinkTrafFusionService.weightFusion: start.");
|
|
log.info("[FUSION.] LinkTrafFusionService.weightFusion: start.");
|
|
Elapsed elapsed = new Elapsed();
|
|
Elapsed elapsed = new Elapsed();
|
|
|
|
|
|
- Map<String, LinkCollectDto> utisMap = collectUTIS.getLists().stream()
|
|
|
|
|
|
+ Map<String, LinkCollectDto> utisMap = this.collectUTIS.getLists().stream()
|
|
.collect(Collectors.toMap(LinkCollectDto::getLinkId, dto -> dto, (existing, replacement) -> existing));
|
|
.collect(Collectors.toMap(LinkCollectDto::getLinkId, dto -> dto, (existing, replacement) -> existing));
|
|
- Map<String, LinkCollectDto> prioMap = collectPRIO.getLists().stream()
|
|
|
|
|
|
+ Map<String, LinkCollectDto> prioMap = this.collectPRIO.getLists().stream()
|
|
.collect(Collectors.toMap(LinkCollectDto::getLinkId, dto -> dto, (existing, replacement) -> existing));
|
|
.collect(Collectors.toMap(LinkCollectDto::getLinkId, dto -> dto, (existing, replacement) -> existing));
|
|
- Map<String, LinkCollectDto> prioEtcMap = collectPRIOETC.getLists().stream()
|
|
|
|
|
|
+ Map<String, LinkCollectDto> prioEtcMap = this.collectPRIOETC.getLists().stream()
|
|
.collect(Collectors.toMap(LinkCollectDto::getLinkId, dto -> dto, (existing, replacement) -> existing));
|
|
.collect(Collectors.toMap(LinkCollectDto::getLinkId, dto -> dto, (existing, replacement) -> existing));
|
|
- Map<String, LinkCollectDto> dongbuMap = collectDONGBU.getLists().stream()
|
|
|
|
|
|
+ Map<String, LinkCollectDto> dongbuMap = this.collectDONGBU.getLists().stream()
|
|
.collect(Collectors.toMap(LinkCollectDto::getLinkId, dto -> dto, (existing, replacement) -> existing));
|
|
.collect(Collectors.toMap(LinkCollectDto::getLinkId, dto -> dto, (existing, replacement) -> existing));
|
|
|
|
|
|
AtomicReference<String> gps = new AtomicReference<>("0");
|
|
AtomicReference<String> gps = new AtomicReference<>("0");
|
|
@@ -322,7 +178,7 @@ public class LinkTrafFusionService implements AbstractProcessService {
|
|
AtomicReference<String> dongbu = new AtomicReference<>("0");
|
|
AtomicReference<String> dongbu = new AtomicReference<>("0");
|
|
|
|
|
|
AtomicInteger nCalCnt = new AtomicInteger();
|
|
AtomicInteger nCalCnt = new AtomicInteger();
|
|
- this.linkRepo.getLinkMap().values().parallelStream()
|
|
|
|
|
|
+ this.linkRepositoryService.getLinkMap().values().parallelStream()
|
|
.filter(link -> link.getLinkLevel() == 1)
|
|
.filter(link -> link.getLinkLevel() == 1)
|
|
.filter(link -> !link.getTrafFsn().getState().isState())
|
|
.filter(link -> !link.getTrafFsn().getState().isState())
|
|
.forEach(link -> {
|
|
.forEach(link -> {
|
|
@@ -384,7 +240,7 @@ public class LinkTrafFusionService implements AbstractProcessService {
|
|
}
|
|
}
|
|
|
|
|
|
private boolean externalFusionTraffic(LinkCollectDto clctTraf, final String clctSystCd) {
|
|
private boolean externalFusionTraffic(LinkCollectDto clctTraf, final String clctSystCd) {
|
|
- LinkDto link = this.linkRepo.getLink(clctTraf.getLinkId());
|
|
|
|
|
|
+ LinkDto link = this.linkRepositoryService.getLink(clctTraf.getLinkId());
|
|
if (link == null) {
|
|
if (link == null) {
|
|
log.error("[FUSION.] LinkTrafFusionService.externalFusionTraffic: {} link not found[{}].", clctTraf.getLinkId(), clctSystCd);
|
|
log.error("[FUSION.] LinkTrafFusionService.externalFusionTraffic: {} link not found[{}].", clctTraf.getLinkId(), clctSystCd);
|
|
return false;
|
|
return false;
|
|
@@ -403,19 +259,19 @@ public class LinkTrafFusionService implements AbstractProcessService {
|
|
AtomicInteger nCalCnt = new AtomicInteger();
|
|
AtomicInteger nCalCnt = new AtomicInteger();
|
|
this.collectUTIS.getLists().parallelStream()
|
|
this.collectUTIS.getLists().parallelStream()
|
|
.forEach(clctTraf -> {
|
|
.forEach(clctTraf -> {
|
|
- if (externalFusionTraffic(clctTraf, LinkCollectSetupService.UTIS)) {
|
|
|
|
|
|
+ if (externalFusionTraffic(clctTraf, LinkTrafCollectSetupService.UTIS)) {
|
|
nCalCnt.incrementAndGet();
|
|
nCalCnt.incrementAndGet();
|
|
}
|
|
}
|
|
});
|
|
});
|
|
this.collectPRIO.getLists().parallelStream()
|
|
this.collectPRIO.getLists().parallelStream()
|
|
.forEach(clctTraf -> {
|
|
.forEach(clctTraf -> {
|
|
- if (externalFusionTraffic(clctTraf, LinkCollectSetupService.PRIO)) {
|
|
|
|
|
|
+ if (externalFusionTraffic(clctTraf, LinkTrafCollectSetupService.PRIO)) {
|
|
nCalCnt.incrementAndGet();
|
|
nCalCnt.incrementAndGet();
|
|
}
|
|
}
|
|
});
|
|
});
|
|
this.collectPRIOETC.getLists().parallelStream()
|
|
this.collectPRIOETC.getLists().parallelStream()
|
|
.forEach(clctTraf -> {
|
|
.forEach(clctTraf -> {
|
|
- if (externalFusionTraffic(clctTraf, LinkCollectSetupService.PRIOETC)) {
|
|
|
|
|
|
+ if (externalFusionTraffic(clctTraf, LinkTrafCollectSetupService.PRIOETC)) {
|
|
nCalCnt.incrementAndGet();
|
|
nCalCnt.incrementAndGet();
|
|
}
|
|
}
|
|
});
|
|
});
|
|
@@ -429,7 +285,7 @@ public class LinkTrafFusionService implements AbstractProcessService {
|
|
Elapsed elapsed = new Elapsed();
|
|
Elapsed elapsed = new Elapsed();
|
|
int nCalCnt = 0;
|
|
int nCalCnt = 0;
|
|
for (LinkCollectDto dto : this.collectOPER.getLists()) {
|
|
for (LinkCollectDto dto : this.collectOPER.getLists()) {
|
|
- LinkDto link = this.linkRepo.getLink(dto.getLinkId());
|
|
|
|
|
|
+ LinkDto link = this.linkRepositoryService.getLink(dto.getLinkId());
|
|
if (link == null) {
|
|
if (link == null) {
|
|
log.error("[FUSION.] LinkTrafFusionService.operatorFusion: {} link not found.", dto.getLinkId());
|
|
log.error("[FUSION.] LinkTrafFusionService.operatorFusion: {} link not found.", dto.getLinkId());
|
|
continue;
|
|
continue;
|