TbRoadManager.java 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package com.its.op.global;
  2. import com.its.op.dao.repository.its.road.TbRoadRepository;
  3. import com.its.op.dao.repository.its.road.TbRoadTrafRepository;
  4. import com.its.op.dao.repository.its.road.TbRoadTrafSimpleRepository;
  5. import com.its.op.entity.its.road.TbRoad;
  6. import com.its.op.entity.its.road.TbRoadTraf;
  7. import com.its.op.entity.its.road.TbRoadTrafSimple;
  8. import lombok.Getter;
  9. import lombok.RequiredArgsConstructor;
  10. import lombok.extern.slf4j.Slf4j;
  11. import org.springframework.stereotype.Component;
  12. import javax.annotation.PostConstruct;
  13. import java.util.ArrayList;
  14. import java.util.Collections;
  15. import java.util.List;
  16. import java.util.concurrent.ConcurrentHashMap;
  17. @Slf4j
  18. @RequiredArgsConstructor
  19. @Getter
  20. @Component
  21. public class TbRoadManager extends TbTableManager<Long, TbRoad> {
  22. private final TbRoadRepository repo;
  23. private final TbRoadTrafRepository trafRepo;
  24. private final TbRoadTrafSimpleRepository simpleTrafRepo;
  25. private List<TbRoadTraf> trafList = Collections.synchronizedList(new ArrayList<>());
  26. private List<TbRoadTrafSimple> simpleTrafList = Collections.synchronizedList(new ArrayList<>());
  27. @PostConstruct
  28. void init() {
  29. load();
  30. }
  31. public void load() {
  32. List<TbRoad> lists = this.repo.findAll();
  33. for (TbRoad obj : lists) {
  34. put(obj.getRoadId(), obj);
  35. }
  36. loadTraf();
  37. }
  38. public void loadTraf() {
  39. findTraf();
  40. findSimpleTraf();
  41. }
  42. private void findTraf() {
  43. List<TbRoadTraf> data = this.trafRepo.findAll();
  44. this.trafList = data;
  45. }
  46. private void findSimpleTraf() {
  47. List<TbRoadTrafSimple> data = this.simpleTrafRepo.findAll();
  48. this.simpleTrafList = data;
  49. }
  50. @Override
  51. public List<TbRoad> reload() {
  52. List<TbRoad> objList = repo.findAll();
  53. ConcurrentHashMap<Long, TbRoad> tempMap = new ConcurrentHashMap<>();
  54. objList.forEach(obj -> {
  55. tempMap.put(obj.getRoadId(), obj);
  56. });
  57. return updateMap(tempMap);
  58. }
  59. }