shjung 2 years ago
parent
commit
0d39f5504d

+ 1 - 1
src/main/java/com/its/op/controller/its/management/SystOprController.java

@@ -51,7 +51,7 @@ public class SystOprController {
     @ApiOperation(value = "소통정보결측구간(TB_LINK_TRAF, TB_LINK)", response = TbLinkTrafDto.class, responseContainer = "ArrayList")
     @GetMapping(value = "/miss-link-traf", produces = {"application/json; charset=utf8"})
     public List<TbLinkTrafDto> findMissingLinkTrafAll() {
-        return this.linkTrafService.findAllMissTraf();
+        return this.linkTrafService.findAllMissTraf(true);
     }
 
 }

+ 1 - 1
src/main/java/com/its/op/controller/its/management/TbIfscTrafController.java

@@ -26,7 +26,7 @@ public class TbIfscTrafController {
     @ApiOperation(value = "정보제공구간 소통상황 전체조회(TB_IFSC_TRAF)", response = TbIfscTrafDto.class, responseContainer = "ArrayList")
     @GetMapping(value = "", produces = {"application/json; charset=utf8"})
     public List<TbIfscTrafDto> findAll() {
-        return service.findAll();
+        return service.findAll(true);
     }
 
     @ApiOperation(value = "정보제공구간 소통상황 개별조회(TB_IFSC_TRAF)", response = TbIfscTrafDto.class)

+ 1 - 1
src/main/java/com/its/op/controller/its/management/TbLinkTrafController.java

@@ -26,7 +26,7 @@ public class TbLinkTrafController {
     @ApiOperation(value = "링크 소통상황 전체조회(TB_LINK_TRAF)", response = TbLinkTrafDto.class, responseContainer = "ArrayList")
     @GetMapping(value = "", produces = {"application/json; charset=utf8"})
     public List<TbLinkTrafDto> findAll() {
-        return service.findAll();
+        return service.findAll(true);
     }
 
     @ApiOperation(value = "링크 소통상황 개별조회(TB_LINK_TRAF)", response = TbLinkTrafDto.class)

+ 1 - 1
src/main/java/com/its/op/controller/its/management/TbRoadTrafController.java

@@ -26,7 +26,7 @@ public class TbRoadTrafController {
     @ApiOperation(value = "도로 소통상황 전체조회(TB_ROAD_TRAF)", response = TbRoadTrafDto.class, responseContainer = "ArrayList")
     @GetMapping(value = "", produces = {"application/json; charset=utf8"})
     public List<TbRoadTrafDto> findAll() {
-        return service.findAll();
+        return service.findAll(true);
     }
 
     @ApiOperation(value = "도로 소통상황 개별조회(TB_ROAD_TRAF)", response = TbRoadTrafDto.class)

+ 3 - 3
src/main/java/com/its/op/controller/its/management/TrafController.java

@@ -33,19 +33,19 @@ public class TrafController {
     @ApiOperation(value = "링크소통정보(TB_LINK_TRAF)", response = TrafDto.class, responseContainer = "ArrayList")
     @GetMapping(value = "/link", produces = {"application/json; charset=utf8"})
     public List<TrafDto> findAllTrafLink() {
-        return this.linkTrafService.findAllTraf();
+        return this.linkTrafService.findAllTraf(true);
     }
 
     @ApiOperation(value = "정보제공구간소통정보(TB_IFSC_TRAF)", response = TrafDto.class, responseContainer = "ArrayList")
     @GetMapping(value = "/ifsc", produces = {"application/json; charset=utf8"})
     public List<TrafDto> findAllTrafIfsc() {
-        return this.ifscTrafService.findAllTraf();
+        return this.ifscTrafService.findAllTraf(true);
     }
 
     @ApiOperation(value = "도로소통정보(TB_ROAD_TRAF)", response = TrafDto.class, responseContainer = "ArrayList")
     @GetMapping(value = "/road", produces = {"application/json; charset=utf8"})
     public List<TrafDto> findAllTrafRoad() {
-        return this.roadTrafService.findAllTraf();
+        return this.roadTrafService.findAllTraf(true);
     }
 
     @ApiOperation(value = "VMS 정보제공구간 소통정보(TB_VMS_IFSC_TRAF)", response = TrafDto.class, responseContainer = "ArrayList")

+ 25 - 0
src/main/java/com/its/op/global/TbIfscManager.java

@@ -1,13 +1,19 @@
 package com.its.op.global;
 
 import com.its.op.dao.repository.its.ifsc.TbIfscRepository;
+import com.its.op.dao.repository.its.ifsc.TbIfscTrafRepository;
+import com.its.op.dao.repository.its.ifsc.TbIfscTrafSimpleRepository;
 import com.its.op.entity.its.ifsc.TbIfsc;
+import com.its.op.entity.its.ifsc.TbIfscTraf;
+import com.its.op.entity.its.ifsc.TbIfscTrafSimple;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.PostConstruct;
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -18,6 +24,11 @@ import java.util.concurrent.ConcurrentHashMap;
 public class TbIfscManager extends TbTableManager<Long, TbIfsc> {
 
     private final TbIfscRepository repo;
+    private final TbIfscTrafRepository trafRepo;
+    private final TbIfscTrafSimpleRepository simpleTrafRepo;
+
+    private List<TbIfscTraf> trafList = Collections.synchronizedList(new ArrayList<>());
+    private List<TbIfscTrafSimple> simpleTrafList = Collections.synchronizedList(new ArrayList<>());
 
     @PostConstruct
     void init() {
@@ -29,6 +40,20 @@ public class TbIfscManager extends TbTableManager<Long, TbIfsc> {
         for (TbIfsc obj : lists) {
             put(obj.getIfscId(), obj);
         }
+        loadTraf();
+    }
+
+    public void loadTraf() {
+        findTraf();
+        findSimpleTraf();
+    }
+    private void findTraf() {
+        List<TbIfscTraf> data = this.trafRepo.findAll();
+        this.trafList = data;
+    }
+    private void findSimpleTraf() {
+        List<TbIfscTrafSimple> data = this.simpleTrafRepo.findAll();
+        this.simpleTrafList = data;
     }
 
     @Override

+ 31 - 0
src/main/java/com/its/op/global/TbLinkManager.java

@@ -1,13 +1,19 @@
 package com.its.op.global;
 
 import com.its.op.dao.repository.its.link.TbLinkRepository;
+import com.its.op.dao.repository.its.link.TbLinkTrafRepository;
+import com.its.op.dao.repository.its.link.TbLinkTrafSimpleRepository;
 import com.its.op.entity.its.link.TbLink;
+import com.its.op.entity.its.link.TbLinkTraf;
+import com.its.op.entity.its.link.TbLinkTrafSimple;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.PostConstruct;
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -18,6 +24,12 @@ import java.util.concurrent.ConcurrentHashMap;
 public class TbLinkManager extends TbTableManager<Long, TbLink> {
 
     private final TbLinkRepository repo;
+    private final TbLinkTrafRepository trafRepo;
+    private final TbLinkTrafSimpleRepository simpleTrafRepo;
+
+    private List<TbLinkTraf> trafList = Collections.synchronizedList(new ArrayList<>());
+    private List<TbLinkTrafSimple> simpleTrafList = Collections.synchronizedList(new ArrayList<>());
+    private List<TbLinkTraf> missTrafList = Collections.synchronizedList(new ArrayList<>());
 
     @PostConstruct
     void init() {
@@ -29,6 +41,25 @@ public class TbLinkManager extends TbTableManager<Long, TbLink> {
         for (TbLink obj : lists) {
             put(obj.getLinkId(), obj);
         }
+        loadTraf();
+    }
+
+    public void loadTraf() {
+        findTraf();
+        findSimpleTraf();
+        findMissTraf();
+    }
+    private void findTraf() {
+        List<TbLinkTraf> data = this.trafRepo.findAll();
+        this.trafList = data;
+    }
+    private void findSimpleTraf() {
+        List<TbLinkTrafSimple> data = this.simpleTrafRepo.findAll();
+        this.simpleTrafList = data;
+    }
+    private void findMissTraf() {
+        List<TbLinkTraf> data = this.trafRepo.findAllMissTraf();
+        this.missTrafList = data;
     }
 
     @Override

+ 25 - 0
src/main/java/com/its/op/global/TbRoadManager.java

@@ -1,13 +1,19 @@
 package com.its.op.global;
 
 import com.its.op.dao.repository.its.road.TbRoadRepository;
+import com.its.op.dao.repository.its.road.TbRoadTrafRepository;
+import com.its.op.dao.repository.its.road.TbRoadTrafSimpleRepository;
 import com.its.op.entity.its.road.TbRoad;
+import com.its.op.entity.its.road.TbRoadTraf;
+import com.its.op.entity.its.road.TbRoadTrafSimple;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.PostConstruct;
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -18,6 +24,11 @@ import java.util.concurrent.ConcurrentHashMap;
 public class TbRoadManager extends TbTableManager<Long, TbRoad> {
 
     private final TbRoadRepository repo;
+    private final TbRoadTrafRepository trafRepo;
+    private final TbRoadTrafSimpleRepository simpleTrafRepo;
+
+    private List<TbRoadTraf> trafList = Collections.synchronizedList(new ArrayList<>());
+    private List<TbRoadTrafSimple> simpleTrafList = Collections.synchronizedList(new ArrayList<>());
 
     @PostConstruct
     void init() {
@@ -29,6 +40,20 @@ public class TbRoadManager extends TbTableManager<Long, TbRoad> {
         for (TbRoad obj : lists) {
             put(obj.getRoadId(), obj);
         }
+        loadTraf();
+    }
+
+    public void loadTraf() {
+        findTraf();
+        findSimpleTraf();
+    }
+    private void findTraf() {
+        List<TbRoadTraf> data = this.trafRepo.findAll();
+        this.trafList = data;
+    }
+    private void findSimpleTraf() {
+        List<TbRoadTrafSimple> data = this.simpleTrafRepo.findAll();
+        this.simpleTrafList = data;
     }
 
     @Override

+ 25 - 13
src/main/java/com/its/op/service/its/ifsc/TbIfscTrafService.java

@@ -39,17 +39,6 @@ public class TbIfscTrafService {
 //                .orElseThrow(() -> new NoSuchElementException("데이터가 존재하지 않습니다: " + id));
     }
 
-    // 전체 데이터 조회
-    @Transactional(readOnly = true)
-    public List<TbIfscTrafDto> findAll() {
-        List<TbIfscTrafDto> result = new ArrayList<>();
-        List<TbIfscTraf> data = this.repo.findAll();
-        for (TbIfscTraf entity : data) {
-            result.add(entity.toDto());
-        }
-        return result;
-    }
-
     // 데이터 1건 조회(기존 데이터가 반드시 존재해야 함)
     @Transactional(readOnly = true)
     public TbIfscTrafDto findById(Long id) {
@@ -57,13 +46,36 @@ public class TbIfscTrafService {
         return entity.toDto();
     }
 
+    // 전체 데이터 조회
+    @Transactional(readOnly = true)
+    public List<TbIfscTrafDto> findAll(boolean isMemory) {
+        List<TbIfscTrafDto> result = new ArrayList<>();
+        List<TbIfscTraf> data;
+        if (isMemory) {
+            data = this.manager.getTrafList();
+        } else {
+            data = this.repo.findAll();
+        }
+
+        data.forEach(obj -> {
+            result.add(obj.toDto());
+        });
+        return result;
+    }
+
     /**
      * 소통정보조회
      * @return
      */
-    public List<TrafDto> findAllTraf() {
+    public List<TrafDto> findAllTraf(boolean isMemory) {
         List<TrafDto> result = new ArrayList<>();
-        List<TbIfscTrafSimple> data = this.trafRepo.findAll();
+        List<TbIfscTrafSimple> data;
+        if (isMemory) {
+            data = this.manager.getSimpleTrafList();
+        } else {
+            data = this.trafRepo.findAll();
+        }
+
         data.forEach(obj -> {
             result.add(obj.toDto());
         });

+ 33 - 15
src/main/java/com/its/op/service/its/link/TbLinkTrafService.java

@@ -39,17 +39,6 @@ public class TbLinkTrafService {
 //                .orElseThrow(() -> new NoSuchElementException("데이터가 존재하지 않습니다: " + id));
     }
 
-    // 전체 데이터 조회
-    @Transactional(readOnly = true)
-    public List<TbLinkTrafDto> findAll() {
-        List<TbLinkTrafDto> result = new ArrayList<>();
-        List<TbLinkTraf> data = this.repo.findAll();
-        for (TbLinkTraf entity : data) {
-            result.add(entity.toDto());
-        }
-        return result;
-    }
-
     // 데이터 1건 조회(기존 데이터가 반드시 존재해야 함)
     @Transactional(readOnly = true)
     public TbLinkTrafDto findById(Long id) {
@@ -57,13 +46,36 @@ public class TbLinkTrafService {
         return entity.toDto();
     }
 
+    // 전체 데이터 조회
+    @Transactional(readOnly = true)
+    public List<TbLinkTrafDto> findAll(boolean isMemory) {
+        List<TbLinkTrafDto> result = new ArrayList<>();
+        List<TbLinkTraf> data;
+        if (isMemory) {
+            data = this.manager.getTrafList();
+        } else {
+            data = this.repo.findAll();
+        }
+
+        data.forEach(obj -> {
+            result.add(obj.toDto());
+        });
+        return result;
+    }
+
     /**
      * 소통정보조회
      * @return
      */
-    public List<TrafDto> findAllTraf() {
+    public List<TrafDto> findAllTraf(boolean isMemory) {
         List<TrafDto> result = new ArrayList<>();
-        List<TbLinkTrafSimple> data = this.trafRepo.findAll();
+        List<TbLinkTrafSimple> data;
+        if (isMemory) {
+            data = this.manager.getSimpleTrafList();
+        } else {
+            data = this.trafRepo.findAll();
+        }
+
         data.forEach(obj -> {
             result.add(obj.toDto());
         });
@@ -74,9 +86,15 @@ public class TbLinkTrafService {
      * 소통정보조회
      * @return
      */
-    public List<TbLinkTrafDto> findAllMissTraf() {
+    public List<TbLinkTrafDto> findAllMissTraf(boolean isMemory) {
         List<TbLinkTrafDto> result = new ArrayList<>();
-        List<TbLinkTraf> data = this.repo.findAllMissTraf();
+        List<TbLinkTraf> data;
+        if (isMemory) {
+            data = this.manager.getMissTrafList();
+        } else {
+            data = this.repo.findAllMissTraf();
+        }
+
         data.forEach(obj -> {
             result.add(obj.toDto());
         });

+ 25 - 13
src/main/java/com/its/op/service/its/road/TbRoadTrafService.java

@@ -39,17 +39,6 @@ public class TbRoadTrafService {
 //                .orElseThrow(() -> new NoSuchElementException("데이터가 존재하지 않습니다: " + id));
     }
 
-    // 전체 데이터 조회
-    @Transactional(readOnly = true)
-    public List<TbRoadTrafDto> findAll() {
-        List<TbRoadTrafDto> result = new ArrayList<>();
-        List<TbRoadTraf> data = this.repo.findAll();
-        for (TbRoadTraf entity : data) {
-            result.add(entity.toDto());
-        }
-        return result;
-    }
-
     // 데이터 1건 조회(기존 데이터가 반드시 존재해야 함)
     @Transactional(readOnly = true)
     public TbRoadTrafDto findById(Long id) {
@@ -57,13 +46,36 @@ public class TbRoadTrafService {
         return entity.toDto();
     }
 
+    // 전체 데이터 조회
+    @Transactional(readOnly = true)
+    public List<TbRoadTrafDto> findAll(boolean isMemory) {
+        List<TbRoadTrafDto> result = new ArrayList<>();
+        List<TbRoadTraf> data;
+        if (isMemory) {
+            data = this.manager.getTrafList();
+        } else {
+            data = this.repo.findAll();
+        }
+
+        data.forEach(obj -> {
+            result.add(obj.toDto());
+        });
+        return result;
+    }
+
     /**
      * 소통정보조회
      * @return
      */
-    public List<TrafDto> findAllTraf() {
+    public List<TrafDto> findAllTraf(boolean isMemory) {
         List<TrafDto> result = new ArrayList<>();
-        List<TbRoadTrafSimple> data = this.trafRepo.findAll();
+        List<TbRoadTrafSimple> data;
+        if (isMemory) {
+            data = this.manager.getSimpleTrafList();
+        } else {
+            data = this.trafRepo.findAll();
+        }
+
         data.forEach(obj -> {
             result.add(obj.toDto());
         });

+ 1 - 1
src/main/resources/static/application/op/01.traffic-manager/01.traffic-current/current-traffic.js

@@ -490,7 +490,7 @@ $(() => {
                     table: road,
                 },
             ],
-            selectIndex: 0,
+            selectedIndex: 2,
             loop: false,
             animationEnabled: true,
             swipeEnabled: false,