LinkDto.java 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package com.utic.ptis.server.dto;
  2. import lombok.AllArgsConstructor;
  3. import lombok.Builder;
  4. import lombok.Data;
  5. import lombok.NoArgsConstructor;
  6. import java.io.Serializable;
  7. import java.util.ArrayList;
  8. @Data
  9. @Builder
  10. @NoArgsConstructor//(access = AccessLevel.PROTECTED)
  11. @AllArgsConstructor
  12. public class LinkDto implements Serializable {
  13. private static final long serialVersionUID = 1L;
  14. private String linkId;
  15. private String roadRank;
  16. private Integer linkLevel;
  17. private Integer roadUse;
  18. private Integer length;
  19. private Integer lanes;
  20. private Integer maxSpeed;
  21. private String upLinkId;
  22. private String dnLinkId;
  23. private ArrayList<String> linkIds;
  24. private boolean prcsPtrnMissing; // 패턴 결측 처리 여부(링크 레벨1 인 경우)
  25. private LinkTrafPtrn trafPtrn; // 현재 주기 패턴값
  26. private LinkTrafVal trafFsn; // 퓨전 소통정보
  27. private LinkTrafVal trafExt; // 외부연계용 소통정보(동부 NTS 제외한 퓨전값)
  28. private LinkTrafMiss missPsd; // PSD 알고리즘 수행 값
  29. private LinkTrafMiss missKnn; // k-NN 알고리즘 수행 값
  30. public LinkTrafCenterDto getTrafficDto(String regDate) {
  31. return this.trafFsn.toDto(this.linkId, this.linkLevel, regDate);
  32. }
  33. public void init() {
  34. this.upLinkId = "";
  35. this.dnLinkId = "";
  36. this.linkIds = new ArrayList<>();
  37. this.prcsPtrnMissing = false;
  38. this.trafPtrn = new LinkTrafPtrn();
  39. this.trafFsn = new LinkTrafVal();
  40. this.trafExt = new LinkTrafVal();
  41. this.missPsd = new LinkTrafMiss();
  42. this.missKnn = new LinkTrafMiss();
  43. }
  44. public void initTraf(boolean initPtrnTraf) {
  45. if (initPtrnTraf) {
  46. this.trafPtrn.init();
  47. }
  48. this.trafFsn.init();
  49. this.trafExt.init();
  50. this.missPsd.init();
  51. this.missKnn.init();
  52. }
  53. public int getTravelTime(int speed) {
  54. if (this.length > 0 && speed > 0) {
  55. return (int)((this.length * 3.6 / speed) + 0.5);
  56. }
  57. return 0;
  58. }
  59. }