shjung 2 年之前
父節點
當前提交
b8cca760b8
共有 40 個文件被更改,包括 243 次插入117 次删除
  1. 9 0
      src/main/java/com/its/op/controller/ReloadDatabaseController.java
  2. 9 0
      src/main/java/com/its/op/controller/its/database/TbUserInfrController.java
  3. 3 3
      src/main/java/com/its/op/controller/its/vms/VmsCommonController.java
  4. 7 0
      src/main/java/com/its/op/dao/repository/its/oper/TbUserInfrRepository.java
  5. 26 8
      src/main/java/com/its/op/dao/repository/its/vms/TbVmsDsplPrstRepository.java
  6. 14 10
      src/main/java/com/its/op/dao/repository/its/vms/TbVmsDsplSchRepository.java
  7. 1 1
      src/main/java/com/its/op/dto/its/common/MonitoringListInf.java
  8. 15 0
      src/main/java/com/its/op/dto/its/vms/TbVmsDsplResultInf.java
  9. 1 1
      src/main/java/com/its/op/dto/its/vms/TbVmsDsplSchInf.java
  10. 3 0
      src/main/java/com/its/op/global/CmmnCdManager.java
  11. 15 0
      src/main/java/com/its/op/global/CmmnFcltCdManager.java
  12. 1 1
      src/main/java/com/its/op/global/TbCctvCtlrManager.java
  13. 1 1
      src/main/java/com/its/op/global/TbIfscManager.java
  14. 1 1
      src/main/java/com/its/op/global/TbIfscVrtxArrManager.java
  15. 1 1
      src/main/java/com/its/op/global/TbLinkManager.java
  16. 1 1
      src/main/java/com/its/op/global/TbLinkVrtxArrManager.java
  17. 1 1
      src/main/java/com/its/op/global/TbNodeManager.java
  18. 1 1
      src/main/java/com/its/op/global/TbRoadManager.java
  19. 1 1
      src/main/java/com/its/op/global/TbRoadVrtxArrManager.java
  20. 1 1
      src/main/java/com/its/op/global/TbRseCtlrManager.java
  21. 1 1
      src/main/java/com/its/op/global/TbScIxrCmraManager.java
  22. 1 1
      src/main/java/com/its/op/global/TbScIxrManager.java
  23. 1 1
      src/main/java/com/its/op/global/TbScSgnlCtlrManager.java
  24. 1 1
      src/main/java/com/its/op/global/TbScSgnlIxrManager.java
  25. 1 1
      src/main/java/com/its/op/global/TbUnitSystManager.java
  26. 1 1
      src/main/java/com/its/op/global/TbVdsCtlrManager.java
  27. 1 1
      src/main/java/com/its/op/global/TbVmsCtlrManager.java
  28. 1 1
      src/main/java/com/its/op/global/TbVmsIfscManager.java
  29. 31 40
      src/main/java/com/its/op/global/TbVmsSymbLibManager.java
  30. 1 1
      src/main/java/com/its/op/global/TbWcamCtlrManager.java
  31. 11 0
      src/main/java/com/its/op/service/its/oper/TbUserInfrService.java
  32. 22 14
      src/main/java/com/its/op/service/its/vms/TbVmsCtlrService.java
  33. 3 2
      src/main/java/com/its/op/service/its/vms/TbVmsDsplHsService.java
  34. 22 5
      src/main/java/com/its/op/service/its/vms/TbVmsDsplPrstService.java
  35. 3 2
      src/main/java/com/its/op/service/its/vms/TbVmsSymbLibSbt0Service.java
  36. 4 3
      src/main/java/com/its/op/service/its/vms/TbVmsSymbLibSbt1Service.java
  37. 4 3
      src/main/java/com/its/op/service/its/vms/TbVmsSymbLibSbt2Service.java
  38. 3 2
      src/main/java/com/its/op/service/its/vms/TbVmsSymbLibSbt3Service.java
  39. 3 2
      src/main/java/com/its/op/service/its/vms/TbVmsSymbLibSbt4Service.java
  40. 16 3
      src/main/java/com/its/op/service/its/vms/TbVmsSymbLibService.java

+ 9 - 0
src/main/java/com/its/op/controller/ReloadDatabaseController.java

@@ -22,6 +22,7 @@ import com.its.op.entity.its.unit.TbUnitSyst;
 import com.its.op.entity.its.vds.TbVdsCtlr;
 import com.its.op.entity.its.vms.TbVmsCtlr;
 import com.its.op.entity.its.vms.TbVmsIfsc;
+import com.its.op.entity.its.vms.TbVmsSymbLib;
 import com.its.op.entity.its.wcam.TbWcamCtlr;
 import com.its.op.global.*;
 import io.swagger.annotations.Api;
@@ -64,6 +65,7 @@ public class ReloadDatabaseController {
     private final CmmnCdManager cmmnCdManager;
     private final CmmnFcltCdManager cmmnFcltCdManager;
     private final TbVmsIfscManager vmsIfscManager;
+    private final TbVmsSymbLibManager vmsSymbLibManager;
 
     /******************************************************************************************************************/
     @ApiOperation(value = "시스템 UNIT 정보", response = TbUnitSyst.class, responseContainer = "ArrayList")
@@ -239,4 +241,11 @@ public class ReloadDatabaseController {
         return ResponseEntity.ok(result);
     }
 
+    @ApiOperation(value = "VMS 심볼 라이브러리 정보", response = TbVmsSymbLib.class, responseContainer = "ArrayList")
+    @GetMapping(path="/vms-symb-lib", produces = MediaType.APPLICATION_JSON_VALUE)
+    public ResponseEntity<List<TbVmsSymbLib>> reloadVmsSymbLib() {
+        List<TbVmsSymbLib> result = this.vmsSymbLibManager.reload();
+        return ResponseEntity.ok(result);
+    }
+
 }

+ 9 - 0
src/main/java/com/its/op/controller/its/database/TbUserInfrController.java

@@ -1,5 +1,6 @@
 package com.its.op.controller.its.database;
 
+import com.its.op.dto.its.common.UsageCountDto;
 import com.its.op.dto.its.oper.TbOperSystDto;
 import com.its.op.dto.its.oper.TbUserGropInfrDto;
 import com.its.op.dto.its.oper.TbUserInfrDto;
@@ -99,4 +100,12 @@ public class TbUserInfrController {
         return this.service.findByIdMenuAthr(id);
     }
 
+    @ApiOperation(value = "사용자 ID 사용여부 조회(신규 아이디 만들때 사용)", response = UsageCountDto.class)
+    @GetMapping(value = "/usage/{id}", produces = {"application/json; charset=utf8"})
+    public UsageCountDto findUsageId(
+            @ApiParam(name = "id", value = "사용자 ID", example = "ADMIN", required = true)
+            @PathVariable final String id) {
+        return this.service.findUsageId(id);
+    }
+
 }

+ 3 - 3
src/main/java/com/its/op/controller/its/vms/VmsCommonController.java

@@ -98,15 +98,15 @@ public class VmsCommonController {
     @ApiOperation(value = "VMS 표출 현재 폼 조회-전체(TB_VMS_DSPL_PRST)", response = TbVmsDsplPrstDto.class, responseContainer = "ArrayList")
     @GetMapping(value = "/vms-form/dspl-prst/all", produces = {"application/json; charset=utf8"})
     public List<TbVmsDsplPrstDto> findAllVmsDsplPrst() {
-        return this.dsplPrstService.findAll();
+        return this.dsplPrstService.findAll(true);
     }
 
     @ApiOperation(value = "VMS 표출 현재 폼 조회-목록(TB_VMS_DSPL_PRST)", response = TbVmsDsplPrstDto.class, responseContainer = "ArrayList")
     @GetMapping(value = "/vms-form/dspl-prst", produces = {"application/json; charset=utf8"})
-    public List<TbVmsDsplPrstDto> findAllVmsDsplPrst(
+    public List<TbVmsDsplPrstDto> findAllVmsDsplPrstByIds(
             @ApiParam(name = "id", value = "VMS 제어기 관리번호 목록", example = "10005", required = true)
             @RequestParam final List<Long> id) {
-        return this.dsplPrstService.findAllByIds(id);
+        return this.dsplPrstService.findAllByIds(id, true);
     }
 
     @ApiOperation(value = "VMS 표출 현재 폼 조회(PHASE)(TB_VMS_DSPL_PRST)", response = TbVmsDsplPrstDto.class, responseContainer = "ArrayList")

+ 7 - 0
src/main/java/com/its/op/dao/repository/its/oper/TbUserInfrRepository.java

@@ -43,4 +43,11 @@ public interface TbUserInfrRepository extends JpaRepository<TbUserInfr, String>,
     @Query(value = "SELECT crypto_decrypt(:pswd) AS PSWD FROM DUAL", nativeQuery = true)
     String getCryptoDecrypt(@Param("pswd") String pswd);
 
+    /**
+     * 사용자 ID 갯수 조회
+     * @param userId
+     * @return
+     */
+    @Query("select count(p.userId) from TbUserInfr p where p.userId = :userId")
+    Integer findUsageId(@Param("userId") String userId);
 }

+ 26 - 8
src/main/java/com/its/op/dao/repository/its/vms/TbVmsDsplPrstRepository.java

@@ -1,5 +1,6 @@
 package com.its.op.dao.repository.its.vms;
 
+import com.its.op.dto.its.vms.TbVmsDsplResultInf;
 import com.its.op.entity.its.vms.TbVmsDsplPrst;
 import com.its.op.entity.its.vms.TbVmsDsplPrstKey;
 import org.springframework.data.jpa.repository.JpaRepository;
@@ -13,9 +14,14 @@ import java.util.List;
 @Repository
 public interface TbVmsDsplPrstRepository extends JpaRepository<TbVmsDsplPrst, TbVmsDsplPrstKey>, JpaSpecificationExecutor<TbVmsDsplPrst> {
 
-    @Query("select p from TbVmsDsplPrst p inner join fetch p.vms vms inner join fetch vms.type tp left outer join fetch vms.state state " +
-           " where vms.delYn = 'N' " +
-           "   and (p.vmsCtlrNmbr, p.dsplDt) in (select s.vmsCtlrNmbr, max(s.dsplDt) from TbVmsDsplPrst s group by s.vmsCtlrNmbr)")
+//    @Query("select p from TbVmsDsplPrst p inner join fetch p.vms vms inner join fetch vms.type tp left outer join fetch vms.state state " +
+//           " where vms.delYn = 'N'                                                                                                      " +
+//           "   and (p.vmsCtlrNmbr, p.dsplDt) in (select s.vmsCtlrNmbr, max(s.dsplDt) from TbVmsDsplPrst s group by s.vmsCtlrNmbr)")
+//    List<TbVmsDsplPrst> findAll();
+
+    @Query("select p from TbVmsDsplPrst p                                                                                         " +
+            " where vms.delYn = 'N'                                                                                               " +
+            "   and (p.vmsCtlrNmbr, p.dsplDt) in (select s.vmsCtlrNmbr, max(s.dsplDt) from TbVmsDsplPrst s group by s.vmsCtlrNmbr)")
     List<TbVmsDsplPrst> findAll();
 
     @Query("select p from TbVmsDsplPrst p inner join fetch p.vms vms inner join fetch vms.type tp left outer join fetch vms.state state  " +
@@ -24,9 +30,21 @@ public interface TbVmsDsplPrstRepository extends JpaRepository<TbVmsDsplPrst, Tb
             "   and (p.vmsCtlrNmbr, p.dsplDt) in (select s.vmsCtlrNmbr, max(s.dsplDt) from TbVmsDsplPrst s group by s.vmsCtlrNmbr)")
     List<TbVmsDsplPrst> findAllByIds(@Param("vmsCtlrNmbr") List<Long> vmsCtlrNmbr);
 
-    @Query("select p from TbVmsDsplPrst p inner join fetch p.vms vms inner join fetch vms.type tp left outer join fetch vms.state state  " +
-            " where vms.delYn = 'N' " +
-            "   and p.vmsCtlrNmbr = :vmsCtlrNmbr " +
-            "   and p.phase = :phase")
-    List<TbVmsDsplPrst> findAllByIdAndPhase(@Param("vmsCtlrNmbr") Long vmsCtlrNmbr, @Param("phase") Integer phase);
+    @Query(value =
+           "SELECT A.VMS_CTLR_NMBR AS nmbr, MAX(A.DSPL_DT) AS dsplDt, MIN(A.DNLD_YN), COUNT(1) AS dsplCount" +
+           "  FROM TB_VMS_DSPL_PRST A " +
+           " WHERE (A.VMS_CTLR_NMBR, A.DSPL_DT) " +
+           "    IN (SELECT VMS_CTLR_NMBR, MAX(DSPL_DT) " +
+           "          FROM TB_VMS_DSPL_PRST " +
+           "         GROUP BY VMS_CTLR_NMBR)" +
+           " GROUP BY A.VMS_CTLR_NMBR"
+           , nativeQuery = true)
+    List<TbVmsDsplResultInf> findAllDsplResult();
+
+//    @Query("select p from TbVmsDsplPrst p inner join fetch p.vms vms inner join fetch vms.type tp left outer join fetch vms.state state  " +
+//            " where vms.delYn = 'N' " +
+//            "   and p.vmsCtlrNmbr = :vmsCtlrNmbr " +
+//            "   and p.phase = :phase")
+//    List<TbVmsDsplPrst> findAllByIdAndPhase(@Param("vmsCtlrNmbr") Long vmsCtlrNmbr, @Param("phase") Integer phase);
+
 }

+ 14 - 10
src/main/java/com/its/op/dao/repository/its/vms/TbVmsDsplSchRepository.java

@@ -35,19 +35,23 @@ public interface TbVmsDsplSchRepository extends JpaRepository<TbVmsDsplSch, TbVm
     List<TbVmsDsplSch> findAllByAllEditVmsList(@Param("vmsSchType") String vmsSchType, @Param("vmsSchFormType") Integer vmsSchFormType, @Param("vmsFormId") Integer vmsFormId);
 
     @Query(value =
+            "SELECT nmbr, trfc, sum(total) as total, sum(used) as used                            " +
+            "  FROM (                                                                             " +
             "SELECT A.VMS_CTLR_NMBR AS nmbr, A.VMS_SCH_TYPE AS trfc, COUNT(1) AS total, 0 AS used " +
-            "  FROM TB_VMS_DSPL_SCH A,                        " +
-            "       TB_VMS_FORM     B                         " +
-            " WHERE A.VMS_FORM_ID = B.VMS_FORM_ID                       " +
-            " GROUP BY A.VMS_CTLR_NMBR, A.VMS_SCH_TYPE             " +
-            "UNION ALL " +
+            "  FROM TB_VMS_DSPL_SCH A,                                                            " +
+            "       TB_VMS_FORM     B                                                             " +
+            " WHERE A.VMS_FORM_ID = B.VMS_FORM_ID                                                 " +
+            " GROUP BY A.VMS_CTLR_NMBR, A.VMS_SCH_TYPE                                            " +
+            "UNION ALL                                                                            " +
             "SELECT A.VMS_CTLR_NMBR AS nmbr, A.VMS_SCH_TYPE AS trfc, 0 AS total, COUNT(1) AS used " +
-            "  FROM TB_VMS_DSPL_SCH A,                        " +
-            "       TB_VMS_FORM     B                         " +
-            " WHERE A.VMS_FORM_ID = B.VMS_FORM_ID                       " +
-            "   AND A.USE_YN = 'Y'                                      " +
+            "  FROM TB_VMS_DSPL_SCH A,                                                            " +
+            "       TB_VMS_FORM     B                                                             " +
+            " WHERE A.VMS_FORM_ID = B.VMS_FORM_ID                                                 " +
+            "   AND A.USE_YN = 'Y'                                                                " +
             "   AND TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS') BETWEEN A.DSPL_STRT_HH AND A.DSPL_END_HH " +
-            " GROUP BY A.VMS_CTLR_NMBR, A.VMS_SCH_TYPE"
+            " GROUP BY A.VMS_CTLR_NMBR, A.VMS_SCH_TYPE                                            " +
+            "       )                                                                             " +
+            " GROUP BY nmbr, trfc                                                                 "
             , nativeQuery = true)
     List<TbVmsDsplSchInf> findAllUsage();
 

+ 1 - 1
src/main/java/com/its/op/dto/its/common/MonitoringListInf.java

@@ -3,7 +3,7 @@ package com.its.op.dto.its.common;
 import java.math.BigDecimal;
 
 /**
- * 시설물 오류 갯수 조회 Interface Class
+ * 모니터링 갯수 조회 Interface Class
  */
 public interface MonitoringListInf {
 

+ 15 - 0
src/main/java/com/its/op/dto/its/vms/TbVmsDsplResultInf.java

@@ -0,0 +1,15 @@
+package com.its.op.dto.its.vms;
+
+import java.math.BigInteger;
+
+/**
+ * Interface Class
+ */
+public interface TbVmsDsplResultInf {
+
+    Long getNmbr();
+    String getDsplDt();
+    String getDnldYn();
+    BigInteger getDsplCount();
+
+}

+ 1 - 1
src/main/java/com/its/op/dto/its/vms/TbVmsDsplSchInf.java

@@ -3,7 +3,7 @@ package com.its.op.dto.its.vms;
 import java.math.BigInteger;
 
 /**
- * 시설물 오류 갯수 조회 Interface Class
+ * Interface Class
  */
 public interface TbVmsDsplSchInf {
 

+ 3 - 0
src/main/java/com/its/op/global/CmmnCdManager.java

@@ -172,6 +172,9 @@ public class CmmnCdManager {
     }
 
     public void refresh(List<TbCmmnCdDto> codeList) {
+        if (codeList == null) {
+            return;
+        }
         ConcurrentHashMap<String, HashMap<String, Code>> tempMap = new ConcurrentHashMap<>();
         for (TbCmmnCdDto cd : codeList) {
             HashMap<String, Code> codeMap = tempMap.get(cd.getCmmnClsfCd());

+ 15 - 0
src/main/java/com/its/op/global/CmmnFcltCdManager.java

@@ -121,6 +121,9 @@ public class CmmnFcltCdManager {
     }
 
     public void refreshFailOcrrType(List<TbFcltFailOcrrTypeDto> codeList1) {
+        if (codeList1 == null) {
+            return;
+        }
         ConcurrentHashMap<String, TbFcltFailOcrrTypeDto> tempCodeFailOcrrType = new ConcurrentHashMap<>();
         for (TbFcltFailOcrrTypeDto code : codeList1) {
             tempCodeFailOcrrType.put(code.getFailOcrrCd(), code);
@@ -132,6 +135,9 @@ public class CmmnFcltCdManager {
     }
 
     public void refreshFailType(List<TbFcltFailTypeDto> codeList2) {
+        if (codeList2 == null) {
+            return;
+        }
         ConcurrentHashMap<String, TbFcltFailTypeDto> tempCodeFailType = new ConcurrentHashMap<>();
         for (TbFcltFailTypeDto code : codeList2) {
             tempCodeFailType.put(code.getFailCd(), code);
@@ -143,6 +149,9 @@ public class CmmnFcltCdManager {
     }
 
     public void refreshFailTypeAct(List<TbFcltFailTypeActDto> codeList3) {
+        if (codeList3 == null) {
+            return;
+        }
         ConcurrentHashMap<String, TbFcltFailTypeActDto> tempCodeFailTypeAct = new ConcurrentHashMap<>();
         for (TbFcltFailTypeActDto code : codeList3) {
             tempCodeFailTypeAct.put(code.getFailActCd(), code);
@@ -154,6 +163,9 @@ public class CmmnFcltCdManager {
     }
 
     public void refreshSubj(List<TbFcltSubjDto> codeList4) {
+        if (codeList4 == null) {
+            return;
+        }
         ConcurrentHashMap<Long, TbFcltSubjDto> tempCodeFcltSubj = new ConcurrentHashMap<>();
         for (TbFcltSubjDto code : codeList4) {
             tempCodeFcltSubj.put(code.getSubjNmbr(), code);
@@ -168,6 +180,9 @@ public class CmmnFcltCdManager {
     }
 
     public void refreshSubPart(List<TbFcltSubjPartDto> codeList5) {
+        if (codeList5 == null) {
+            return;
+        }
         ConcurrentHashMap<Long, TbFcltSubjPartDto> tempCodeFcltSubjPart = new ConcurrentHashMap<>();
         for (TbFcltSubjPartDto code : codeList5) {
             tempCodeFcltSubjPart.put(code.getPartNmbr(), code);

+ 1 - 1
src/main/java/com/its/op/global/TbCctvCtlrManager.java

@@ -33,8 +33,8 @@ public class TbCctvCtlrManager extends AbstractTableManager<Long, TbCctvCtlr> {
 
     @Override
     public List<TbCctvCtlr> reload() {
-        List<TbCctvCtlr> objList = this.repo.findAll();
         ConcurrentHashMap<Long, TbCctvCtlr> tempMap = new ConcurrentHashMap<>();
+        List<TbCctvCtlr> objList = this.repo.findAll();
         objList.forEach(obj -> {
             tempMap.put(obj.getCctvCtlrNmbr(), obj);
         });

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

@@ -73,8 +73,8 @@ public class TbIfscManager extends AbstractTableManager<Long, TbIfsc> {
 
     @Override
     public List<TbIfsc> reload() {
-        List<TbIfsc> objList = this.repo.findAll();
         ConcurrentHashMap<Long, TbIfsc> tempMap = new ConcurrentHashMap<>();
+        List<TbIfsc> objList = this.repo.findAll();
         objList.forEach(obj -> {
             tempMap.put(obj.getIfscId(), obj);
         });

+ 1 - 1
src/main/java/com/its/op/global/TbIfscVrtxArrManager.java

@@ -35,8 +35,8 @@ public class TbIfscVrtxArrManager extends AbstractTableManager<Long, TbIfscVrtxA
 
     @Override
     public List<TbIfscVrtxArr> reload() {
-        List<TbIfscVrtxArr> objList = this.repo.findAllByLevl(this.DEFAULT_LEVL);
         ConcurrentHashMap<Long, TbIfscVrtxArr> tempMap = new ConcurrentHashMap<>();
+        List<TbIfscVrtxArr> objList = this.repo.findAllByLevl(this.DEFAULT_LEVL);
         objList.forEach(obj -> {
             tempMap.put(obj.getIfscId(), obj);
         });

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

@@ -79,8 +79,8 @@ public class TbLinkManager extends AbstractTableManager<Long, TbLink> {
 
     @Override
     public List<TbLink> reload() {
-        List<TbLink> objList = this.repo.findAll();
         ConcurrentHashMap<Long, TbLink> tempMap = new ConcurrentHashMap<>();
+        List<TbLink> objList = this.repo.findAll();
         objList.forEach(obj -> {
             tempMap.put(obj.getLinkId(), obj);
         });

+ 1 - 1
src/main/java/com/its/op/global/TbLinkVrtxArrManager.java

@@ -35,8 +35,8 @@ public class TbLinkVrtxArrManager extends AbstractTableManager<Long, TbLinkVrtxA
 
     @Override
     public List<TbLinkVrtxArr> reload() {
-        List<TbLinkVrtxArr> objList = this.repo.findAllByLevl(this.DEFAULT_LEVL);
         ConcurrentHashMap<Long, TbLinkVrtxArr> tempMap = new ConcurrentHashMap<>();
+        List<TbLinkVrtxArr> objList = this.repo.findAllByLevl(this.DEFAULT_LEVL);
         objList.forEach(obj -> {
             tempMap.put(obj.getLinkId(), obj);
         });

+ 1 - 1
src/main/java/com/its/op/global/TbNodeManager.java

@@ -33,8 +33,8 @@ public class TbNodeManager extends AbstractTableManager<Long, TbNode> {
 
     @Override
     public List<TbNode> reload() {
-        List<TbNode> objList = this.repo.findAll();
         ConcurrentHashMap<Long, TbNode> tempMap = new ConcurrentHashMap<>();
+        List<TbNode> objList = this.repo.findAll();
         objList.forEach(obj -> {
             tempMap.put(obj.getNodeId(), obj);
         });

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

@@ -73,8 +73,8 @@ public class TbRoadManager extends AbstractTableManager<Long, TbRoad> {
 
     @Override
     public List<TbRoad> reload() {
-        List<TbRoad> objList = this.repo.findAll();
         ConcurrentHashMap<Long, TbRoad> tempMap = new ConcurrentHashMap<>();
+        List<TbRoad> objList = this.repo.findAll();
         objList.forEach(obj -> {
             tempMap.put(obj.getRoadId(), obj);
         });

+ 1 - 1
src/main/java/com/its/op/global/TbRoadVrtxArrManager.java

@@ -35,8 +35,8 @@ public class TbRoadVrtxArrManager extends AbstractTableManager<Long, TbRoadVrtxA
 
     @Override
     public List<TbRoadVrtxArr> reload() {
-        List<TbRoadVrtxArr> objList = this.repo.findAllByLevl(this.DEFAULT_LEVL);
         ConcurrentHashMap<Long, TbRoadVrtxArr> tempMap = new ConcurrentHashMap<>();
+        List<TbRoadVrtxArr> objList = this.repo.findAllByLevl(this.DEFAULT_LEVL);
         objList.forEach(obj -> {
             tempMap.put(obj.getRoadId(), obj);
         });

+ 1 - 1
src/main/java/com/its/op/global/TbRseCtlrManager.java

@@ -33,8 +33,8 @@ public class TbRseCtlrManager extends AbstractTableManager<Long, TbRseCtlr> {
 
     @Override
     public List<TbRseCtlr> reload() {
-        List<TbRseCtlr> objList = this.repo.findAll();
         ConcurrentHashMap<Long, TbRseCtlr> tempMap = new ConcurrentHashMap<>();
+        List<TbRseCtlr> objList = this.repo.findAll();
         objList.forEach(obj -> {
             tempMap.put(obj.getRseCtlrNmbr(), obj);
         });

+ 1 - 1
src/main/java/com/its/op/global/TbScIxrCmraManager.java

@@ -33,8 +33,8 @@ public class TbScIxrCmraManager extends AbstractTableManager<String, TbScIxrCmra
 
     @Override
     public List<TbScIxrCmraMngm> reload() {
-        List<TbScIxrCmraMngm> objList = this.repo.findAll();
         ConcurrentHashMap<String, TbScIxrCmraMngm> tempMap = new ConcurrentHashMap<>();
+        List<TbScIxrCmraMngm> objList = this.repo.findAll();
         objList.forEach(obj -> {
             tempMap.put(obj.getCmraId(), obj);
         });

+ 1 - 1
src/main/java/com/its/op/global/TbScIxrManager.java

@@ -33,8 +33,8 @@ public class TbScIxrManager extends AbstractTableManager<String, TbScIxrMngm> {
 
     @Override
     public List<TbScIxrMngm> reload() {
-        List<TbScIxrMngm> objList = this.repo.findAll();
         ConcurrentHashMap<String, TbScIxrMngm> tempMap = new ConcurrentHashMap<>();
+        List<TbScIxrMngm> objList = this.repo.findAll();
         objList.forEach(obj -> {
             tempMap.put(obj.getIxrId(), obj);
         });

+ 1 - 1
src/main/java/com/its/op/global/TbScSgnlCtlrManager.java

@@ -33,8 +33,8 @@ public class TbScSgnlCtlrManager extends AbstractTableManager<Integer, TbScSgnlC
 
     @Override
     public List<TbScSgnlCtlr> reload() {
-        List<TbScSgnlCtlr> objList = this.repo.findAll();
         ConcurrentHashMap<Integer, TbScSgnlCtlr> tempMap = new ConcurrentHashMap<>();
+        List<TbScSgnlCtlr> objList = this.repo.findAll();
         objList.forEach(obj -> {
             tempMap.put(obj.getSgnlIxrNmbr(), obj);
         });

+ 1 - 1
src/main/java/com/its/op/global/TbScSgnlIxrManager.java

@@ -33,8 +33,8 @@ public class TbScSgnlIxrManager extends AbstractTableManager<Integer, TbScSgnlIx
 
     @Override
     public List<TbScSgnlIxrMngm> reload() {
-        List<TbScSgnlIxrMngm> objList = this.repo.findAll();
         ConcurrentHashMap<Integer, TbScSgnlIxrMngm> tempMap = new ConcurrentHashMap<>();
+        List<TbScSgnlIxrMngm> objList = this.repo.findAll();
         objList.forEach(obj -> {
             tempMap.put(obj.getSgnlIxrNmbr(), obj);
         });

+ 1 - 1
src/main/java/com/its/op/global/TbUnitSystManager.java

@@ -33,8 +33,8 @@ public class TbUnitSystManager extends AbstractTableManager<String, TbUnitSyst>
 
     @Override
     public List<TbUnitSyst> reload() {
-        List<TbUnitSyst> objList = this.repo.findAll();
         ConcurrentHashMap<String, TbUnitSyst> tempMap = new ConcurrentHashMap<>();
+        List<TbUnitSyst> objList = this.repo.findAll();
         objList.forEach(obj -> {
             tempMap.put(obj.getSystId(), obj);
         });

+ 1 - 1
src/main/java/com/its/op/global/TbVdsCtlrManager.java

@@ -33,8 +33,8 @@ public class TbVdsCtlrManager extends AbstractTableManager<Long, TbVdsCtlr> {
 
     @Override
     public List<TbVdsCtlr> reload() {
-        List<TbVdsCtlr> objList = this.repo.findAll();
         ConcurrentHashMap<Long, TbVdsCtlr> tempMap = new ConcurrentHashMap<>();
+        List<TbVdsCtlr> objList = this.repo.findAll();
         objList.forEach(obj -> {
             tempMap.put(obj.getVdsCtlrNmbr(), obj);
         });

+ 1 - 1
src/main/java/com/its/op/global/TbVmsCtlrManager.java

@@ -33,8 +33,8 @@ public class TbVmsCtlrManager extends AbstractTableManager<Long, TbVmsCtlr> {
 
     @Override
     public List<TbVmsCtlr> reload() {
-        List<TbVmsCtlr> objList = this.repo.findAll();
         ConcurrentHashMap<Long, TbVmsCtlr> tempMap = new ConcurrentHashMap<>();
+        List<TbVmsCtlr> objList = this.repo.findAll();
         objList.forEach(obj -> {
             tempMap.put(obj.getVmsCtlrNmbr(), obj);
         });

+ 1 - 1
src/main/java/com/its/op/global/TbVmsIfscManager.java

@@ -33,8 +33,8 @@ public class TbVmsIfscManager extends AbstractTableManager<Long, TbVmsIfsc> {
 
     @Override
     public List<TbVmsIfsc> reload() {
-        List<TbVmsIfsc> objList = this.repo.findAll();
         ConcurrentHashMap<Long, TbVmsIfsc> tempMap = new ConcurrentHashMap<>();
+        List<TbVmsIfsc> objList = this.repo.findAll();
         objList.forEach(obj -> {
             tempMap.put(obj.getVmsIfscId(), obj);
         });

+ 31 - 40
src/main/java/com/its/op/global/TbVmsSymbLibManager.java

@@ -1,8 +1,6 @@
 package com.its.op.global;
 
-import com.its.op.dao.repository.its.vms.TbVmsSymbIfscRepository;
 import com.its.op.dao.repository.its.vms.TbVmsSymbLibRepository;
-import com.its.op.entity.its.vms.TbVmsSymbIfsc;
 import com.its.op.entity.its.vms.TbVmsSymbLib;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
@@ -10,22 +8,20 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.PostConstruct;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
 @Slf4j
 @RequiredArgsConstructor
 @Getter
 @Component
-public class TbVmsSymbLibManager {
+public class TbVmsSymbLibManager extends AbstractTableManager<Integer, TbVmsSymbLib> {
 
     private final TbVmsSymbLibRepository repo;
-    private final TbVmsSymbIfscRepository ifscRepo;
+    //private final TbVmsSymbIfscRepository ifscRepo;
 
-    private static final ConcurrentHashMap<Integer, TbVmsSymbLib> dbMap = new ConcurrentHashMap<>();
-    private static final ConcurrentHashMap<Integer, Map<Integer, TbVmsSymbIfsc>> ifscMap = new ConcurrentHashMap<>();
+//    private static final ConcurrentHashMap<Integer, TbVmsSymbLib> dbMap = new ConcurrentHashMap<>();
+//    private static final ConcurrentHashMap<Integer, Map<Integer, TbVmsSymbIfsc>> ifscMap = new ConcurrentHashMap<>();
 
     @PostConstruct
     void init() {
@@ -35,43 +31,38 @@ public class TbVmsSymbLibManager {
     public void load() {
         List<TbVmsSymbLib> objList = this.repo.findAll();
         objList.forEach(obj -> {
-            dbMap.put(obj.getSymbLibNmbr(), obj);
+            put(obj.getSymbLibNmbr(), obj);
         });
+//
+//        List<TbVmsSymbIfsc> ifscList = this.ifscRepo.findAll();
+//        ifscList.forEach(obj -> {
+//            Map<Integer, TbVmsSymbIfsc> ifscMap = TbVmsSymbLibManager.ifscMap.get(obj.getSymbLibNmbr());
+//            if (ifscMap == null) {
+//                ifscMap = new HashMap<>();
+//                TbVmsSymbLibManager.ifscMap.put(obj.getSymbLibNmbr(), ifscMap);
+//            }
+//            ifscMap.put(obj.getCellId(), obj);
+//        });
+    }
 
-        List<TbVmsSymbIfsc> ifscList = this.ifscRepo.findAll();
-        ifscList.forEach(obj -> {
-            Map<Integer, TbVmsSymbIfsc> ifscMap = TbVmsSymbLibManager.ifscMap.get(obj.getSymbLibNmbr());
-            if (ifscMap == null) {
-                ifscMap = new HashMap<>();
-                TbVmsSymbLibManager.ifscMap.put(obj.getSymbLibNmbr(), ifscMap);
-            }
-            ifscMap.put(obj.getCellId(), obj);
+    @Override
+    public List<TbVmsSymbLib> reload() {
+        ConcurrentHashMap<Integer, TbVmsSymbLib> tempMap = new ConcurrentHashMap<>();
+        List<TbVmsSymbLib> objList = this.repo.findAll();
+        objList.forEach(obj -> {
+            tempMap.put(obj.getSymbLibNmbr(), obj);
         });
+        return updateMap(tempMap);
     }
 
-    public static TbVmsSymbLib get(Integer id) {
-        if (id == null) {
-            return null;
+    public void refresh(List<TbVmsSymbLib> objList) {
+        if (objList == null) {
+            return;
         }
-        return dbMap.get(id);
+        ConcurrentHashMap<Integer, TbVmsSymbLib> tempMap = new ConcurrentHashMap<>();
+        objList.forEach(obj -> {
+            tempMap.put(obj.getSymbLibNmbr(), obj);
+        });
+        updateMap(tempMap);
     }
-//
-//    public static TbVmsSymbIfsc getIfsc(Integer id) {
-//        if (id == null) {
-//            return null;
-//        }
-//        Map<Integer, TbVmsSymbIfsc> ifscMap = ifsc.get(id);
-//        if (ifscMap != null) {
-//            return ifscMap.get(1);
-//        }
-//        return null;
-//    }
-//
-//    public static Map<Integer, TbVmsSymbIfsc> getIfscMap(Integer id) {
-//        if (id == null) {
-//            return null;
-//        }
-//        return ifsc.get(id);
-//    }
-
 }

+ 1 - 1
src/main/java/com/its/op/global/TbWcamCtlrManager.java

@@ -33,8 +33,8 @@ public class TbWcamCtlrManager extends AbstractTableManager<Long, TbWcamCtlr> {
 
     @Override
     public List<TbWcamCtlr> reload() {
-        List<TbWcamCtlr> objList = this.repo.findAll();
         ConcurrentHashMap<Long, TbWcamCtlr> tempMap = new ConcurrentHashMap<>();
+        List<TbWcamCtlr> objList = this.repo.findAll();
         objList.forEach(obj -> {
             tempMap.put(obj.getWcamCtlrNmbr(), obj);
         });

+ 11 - 0
src/main/java/com/its/op/service/its/oper/TbUserInfrService.java

@@ -1,6 +1,7 @@
 package com.its.op.service.its.oper;
 
 import com.its.op.dao.repository.its.oper.TbUserInfrRepository;
+import com.its.op.dto.its.common.UsageCountDto;
 import com.its.op.dto.its.oper.TbUserGropMenuAthrDto;
 import com.its.op.dto.its.oper.TbUserInfrDto;
 import com.its.op.dto.its.oper.UserGropMenuInf;
@@ -203,4 +204,14 @@ public class TbUserInfrService {
     public String getCryptoDecrypt(String pswd) {
         return this.repo.getCryptoDecrypt(pswd);
     }
+
+    @Transactional(readOnly = true)
+    public UsageCountDto findUsageId(String id) {
+        UsageCountDto result = UsageCountDto.builder()
+                .count(0)
+                .build();
+        Integer data = this.repo.findUsageId(id);
+        result.setCount(data);
+        return result;
+    }
 }

+ 22 - 14
src/main/java/com/its/op/service/its/vms/TbVmsCtlrService.java

@@ -7,12 +7,8 @@ import com.its.op.dao.repository.its.vms.TbVmsDsplSchRepository;
 import com.its.op.dto.its.code.TbCmmnCdDto;
 import com.its.op.dto.its.common.*;
 import com.its.op.dto.its.facility.TbFcltSttsAlrmStupDto;
-import com.its.op.dto.its.vms.TbVmsCtlrDto;
-import com.its.op.dto.its.vms.TbVmsCtlrSttsDto;
-import com.its.op.dto.its.vms.TbVmsDsplSchInf;
-import com.its.op.dto.its.vms.VmsOnOffTimeDto;
+import com.its.op.dto.its.vms.*;
 import com.its.op.entity.its.vms.TbVmsCtlr;
-import com.its.op.entity.its.vms.TbVmsDsplPrst;
 import com.its.op.global.CmmnCdManager;
 import com.its.op.global.TbVmsCtlrManager;
 import com.its.op.service.its.code.TbCmmnCdService;
@@ -109,6 +105,7 @@ public class TbVmsCtlrService {
         } else {
             data = this.repo.findAllList();
         }
+
         data.forEach(obj -> {
             if (!CmmnCdManager.CMNC_STTS_NORMAL.equals(obj.getCmncSttsCd())) {
                 TbFcltSttsAlrmStupDto alarm = alarmMap.get(obj.getVmsCtlrId());
@@ -136,32 +133,43 @@ public class TbVmsCtlrService {
                 Integer total = obj.getTotal().intValue();
                 Integer used = obj.getUsed().intValue();
                 String trfc = obj.getTrfc();
-                if (StringUtils.equals("5", trfc)) {
+                if (StringUtils.equals("A", trfc)) {
+                    stts.setAutoTotal(stts.getAutoTotal()+total);
+                    stts.setAutoUsed(stts.getAutoUsed()+used);
+                }
+                else if (StringUtils.equals("F", trfc)) {
                     stts.setFixedTotal(stts.getFixedTotal()+total);
                     stts.setFixedUsed(stts.getFixedUsed()+used);
                 }
-                else if (StringUtils.equals("6", trfc)) {
+                else {
+                    // "B"
                     stts.setBasicTotal(stts.getBasicTotal()+total);
                     stts.setBasicUsed(stts.getBasicUsed()+used);
                 }
-                else {
-                    stts.setAutoTotal(stts.getAutoTotal()+total);
-                    stts.setAutoUsed(stts.getAutoUsed()+used);
-                }
             }
         });
 
         // 표출 메시지 조회
-        List<TbVmsDsplPrst> dsplPrstList = this.dsplPrstRepo.findAll();
+        List<TbVmsDsplResultInf> dsplPrstList = this.dsplPrstRepo.findAllDsplResult();
         dsplPrstList.forEach(obj -> {
-            TbVmsCtlrSttsDto stts = result.get(obj.getVmsCtlrNmbr());
+            TbVmsCtlrSttsDto stts = result.get(obj.getNmbr());
             if (stts != null) {
                 stts.setProvideTime(obj.getDsplDt());
-                stts.setProvideCnt(stts.getProvideCnt()+1);
+                stts.setProvideCnt(obj.getDsplCount().intValue());
                 stts.setProvideResult(obj.getDnldYn());
                 stts.setProvideSvc(ItsUtils.getServiceYn(obj.getDsplDt()));
             }
         });
+//        List<TbVmsDsplPrst> dsplPrstList = this.dsplPrstRepo.findAll();
+//        dsplPrstList.forEach(obj -> {
+//            TbVmsCtlrSttsDto stts = result.get(obj.getVmsCtlrNmbr());
+//            if (stts != null) {
+//                stts.setProvideTime(obj.getDsplDt());
+//                stts.setProvideCnt(stts.getProvideCnt()+1);
+//                stts.setProvideResult(obj.getDnldYn());
+//                stts.setProvideSvc(ItsUtils.getServiceYn(obj.getDsplDt()));
+//            }
+//        });
 
         return new ArrayList<>(result.values());
     }

+ 3 - 2
src/main/java/com/its/op/service/its/vms/TbVmsDsplHsService.java

@@ -29,6 +29,7 @@ import java.util.List;
 public class TbVmsDsplHsService {
 
     private final TbVmsDsplHsRepository repo;
+    private final TbVmsSymbLibManager manager;
 
     // 전체 데이터 조회
     @Transactional(readOnly = true)
@@ -166,7 +167,7 @@ public class TbVmsDsplHsService {
                     /**
                      * 심볼을 이미지 위에 그린다.
                      */
-                    TbVmsSymbLib symbLib = TbVmsSymbLibManager.get(Integer.parseInt(symbLibId));
+                    TbVmsSymbLib symbLib = this.manager.get(Integer.parseInt(symbLibId));
                     if (symbLib != null) {
                         //BufferedImage symbol = Sanselan.getBufferedImage(symbLib.getImagData());
                         //g2d.drawImage(symbol, left, top, null);
@@ -190,7 +191,7 @@ public class TbVmsDsplHsService {
                         int imgW  = Integer.parseInt(tmp.substring(16, 20), 16);
                         int imgH = Integer.parseInt(tmp.substring(20, 24), 16);
                         String symbLibId = tmp.substring(24, tmp.length());
-                        TbVmsSymbLib symbLib = TbVmsSymbLibManager.get(Integer.parseInt(symbLibId));
+                        TbVmsSymbLib symbLib = this.manager.get(Integer.parseInt(symbLibId));
                         if (symbLib != null) {
                             Image imgBmp = symbLib.getImage();
                             //g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

+ 22 - 5
src/main/java/com/its/op/service/its/vms/TbVmsDsplPrstService.java

@@ -6,12 +6,14 @@ import com.its.op.dto.its.vms.TbVmsDsplPrstDto;
 import com.its.op.entity.its.vms.TbVmsCtlr;
 import com.its.op.entity.its.vms.TbVmsDsplPrst;
 import com.its.op.entity.its.vms.TbVmsDsplPrstKey;
+import com.its.op.global.TbVmsCtlrManager;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
+import java.util.stream.Collectors;
 
 @Slf4j
 @RequiredArgsConstructor
@@ -20,6 +22,7 @@ public class TbVmsDsplPrstService {
 
     private final TbVmsDsplPrstRepository repo;
     private final TbVmsCtlrRepository ctlrRepo;
+    private final TbVmsCtlrManager ctlrManager;
 
     // 데이터 1건 조회, 없으면 exception
     private TbVmsDsplPrst requireOne(TbVmsDsplPrstKey id) throws NoSuchElementException {
@@ -39,10 +42,17 @@ public class TbVmsDsplPrstService {
      * @return
      */
     @Transactional(readOnly = true)
-    public List<TbVmsDsplPrstDto> findAll() {
-        List<TbVmsDsplPrstDto> result = new ArrayList<>();
+    public List<TbVmsDsplPrstDto> findAll(boolean isMemory) {
+        //List<TbVmsDsplPrstDto> result = new ArrayList<>();
         List<TbVmsDsplPrst> data = this.repo.findAll();
-        List<TbVmsCtlr> stts = this.ctlrRepo.findAllList();
+        List<TbVmsCtlr> stts;
+        if (isMemory) {
+            List<TbVmsCtlr> temp = this.ctlrManager.findAll();
+            stts = temp.stream().filter(obj -> "N".equals(obj.getDelYn())).collect(Collectors.toList());
+        } else {
+            stts = this.ctlrRepo.findAllList();
+        }
+
         return makeDsplPrstList(data, stts);
 //        for (TbVmsDsplPrst entity : data) {
 //            result.add(entity.toDto());
@@ -55,10 +65,17 @@ public class TbVmsDsplPrstService {
      * @return
      */
     @Transactional(readOnly = true)
-    public List<TbVmsDsplPrstDto> findAllByIds(List<Long> ids) {
+    public List<TbVmsDsplPrstDto> findAllByIds(List<Long> ids, boolean isMemory) {
         List<TbVmsDsplPrstDto> result = new ArrayList<>();
         List<TbVmsDsplPrst> data = this.repo.findAllByIds(ids);
-        List<TbVmsCtlr> stts = this.ctlrRepo.findAllListByIds(ids);
+        List<TbVmsCtlr> stts;
+        if (isMemory) {
+            List<TbVmsCtlr> temp = this.ctlrManager.findAll();
+            stts = temp.stream().filter(obj -> "N".equals(obj.getDelYn())).collect(Collectors.toList());
+        } else {
+            stts = this.ctlrRepo.findAllList();
+        }
+
         return makeDsplPrstList(data, stts);
 //        for (TbVmsDsplPrst entity : data) {
 //            result.add(entity.toDto());

+ 3 - 2
src/main/java/com/its/op/service/its/vms/TbVmsSymbLibSbt0Service.java

@@ -4,6 +4,7 @@ import com.its.op.dao.repository.its.vms.TbVmsFormObjectRepository;
 import com.its.op.dao.repository.its.vms.TbVmsSymbLibRepository;
 import com.its.op.dto.its.common.UsageCountDto;
 import com.its.op.dto.its.vms.TbVmsSymbLibDto;
+import com.its.op.global.TbVmsSymbLibManager;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
@@ -15,8 +16,8 @@ import java.util.ConcurrentModificationException;
 public class TbVmsSymbLibSbt0Service extends TbVmsSymbLibService {
 
     // 일반 이미지
-    public TbVmsSymbLibSbt0Service(TbVmsSymbLibRepository repo, TbVmsFormObjectRepository formObjectRepository) {
-        super("SBT0", 6000, 6999, repo, formObjectRepository);
+    public TbVmsSymbLibSbt0Service(TbVmsSymbLibRepository repo, TbVmsFormObjectRepository formObjectRepository, TbVmsSymbLibManager manager) {
+        super("SBT0", 6000, 6999, repo, formObjectRepository, manager);
     }
 
     @Transactional

+ 4 - 3
src/main/java/com/its/op/service/its/vms/TbVmsSymbLibSbt1Service.java

@@ -7,6 +7,7 @@ import com.its.op.dto.its.vms.TbVmsSymbIfscDto;
 import com.its.op.dto.its.vms.TbVmsSymbLibDto;
 import com.its.op.dto.its.vms.TbVmsSymbLibIfscSbt1Dto;
 import com.its.op.entity.its.vms.TbVmsSymbLib;
+import com.its.op.global.TbVmsSymbLibManager;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
@@ -22,13 +23,13 @@ public class TbVmsSymbLibSbt1Service extends TbVmsSymbLibService {
     private final TbVmsSymbIfscService ifscService;
 
     // 소통정보 배경 이미지
-    public TbVmsSymbLibSbt1Service(TbVmsSymbLibRepository repo, TbVmsFormObjectRepository formObjectRepository, TbVmsSymbIfscService ifscService) {
-        super("SBT1", 7000, 7999, repo, formObjectRepository);
+    public TbVmsSymbLibSbt1Service(TbVmsSymbLibRepository repo, TbVmsFormObjectRepository formObjectRepository, TbVmsSymbIfscService ifscService, TbVmsSymbLibManager manager) {
+        super("SBT1", 7000, 7999, repo, formObjectRepository, manager);
         this.ifscService = ifscService;
     }
     public TbVmsSymbLibIfscSbt1Dto findAllById(Integer id) {
         TbVmsSymbLib lib = requireOne(id);
-        List<TbVmsSymbIfscDto> list = ifscService.findDataById(id);
+        List<TbVmsSymbIfscDto> list = this.ifscService.findDataById(id);
         return TbVmsSymbLibIfscSbt1Dto.toDto(lib.toDto(), list);
     }
 

+ 4 - 3
src/main/java/com/its/op/service/its/vms/TbVmsSymbLibSbt2Service.java

@@ -9,6 +9,7 @@ import com.its.op.dto.its.vms.TbVmsSymbLibIfscSbt2Dto;
 import com.its.op.entity.its.vms.TbVmsSymbIfsc;
 import com.its.op.entity.its.vms.TbVmsSymbIfscKey;
 import com.its.op.entity.its.vms.TbVmsSymbLib;
+import com.its.op.global.TbVmsSymbLibManager;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
@@ -22,8 +23,8 @@ public class TbVmsSymbLibSbt2Service extends TbVmsSymbLibService {
     private final TbVmsSymbIfscService ifscService;
 
     // 소통정보 이미지
-    public TbVmsSymbLibSbt2Service(TbVmsSymbLibRepository repo, TbVmsFormObjectRepository formObjectRepository, TbVmsSymbIfscService ifscService) {
-        super("VMP2", 8000, 8999, repo, formObjectRepository);
+    public TbVmsSymbLibSbt2Service(TbVmsSymbLibRepository repo, TbVmsFormObjectRepository formObjectRepository, TbVmsSymbIfscService ifscService, TbVmsSymbLibManager manager) {
+        super("VMP2", 8000, 8999, repo, formObjectRepository, manager);
         this.ifscService = ifscService;
     }
 
@@ -32,7 +33,7 @@ public class TbVmsSymbLibSbt2Service extends TbVmsSymbLibService {
 
         Integer cellId =  1;
         TbVmsSymbIfscKey key = new TbVmsSymbIfscKey(id, cellId);
-        TbVmsSymbIfsc ifsc = ifscService.requireOne(key);
+        TbVmsSymbIfsc ifsc = this.ifscService.requireOne(key);
 
         return TbVmsSymbLibIfscSbt2Dto.toDto(lib.toDto(), ifsc.toDto());
     }

+ 3 - 2
src/main/java/com/its/op/service/its/vms/TbVmsSymbLibSbt3Service.java

@@ -4,6 +4,7 @@ import com.its.op.dao.repository.its.vms.TbVmsFormObjectRepository;
 import com.its.op.dao.repository.its.vms.TbVmsSymbLibRepository;
 import com.its.op.dto.its.common.UsageCountDto;
 import com.its.op.dto.its.vms.TbVmsSymbLibDto;
+import com.its.op.global.TbVmsSymbLibManager;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
@@ -15,8 +16,8 @@ import java.util.ConcurrentModificationException;
 public class TbVmsSymbLibSbt3Service extends TbVmsSymbLibService {
 
     // 동영상
-    public TbVmsSymbLibSbt3Service(TbVmsSymbLibRepository repo, TbVmsFormObjectRepository formObjectRepository) {
-        super("SBT3", 5000, 5999, repo, formObjectRepository);
+    public TbVmsSymbLibSbt3Service(TbVmsSymbLibRepository repo, TbVmsFormObjectRepository formObjectRepository, TbVmsSymbLibManager manager) {
+        super("SBT3", 5000, 5999, repo, formObjectRepository, manager);
     }
 
     @Transactional

+ 3 - 2
src/main/java/com/its/op/service/its/vms/TbVmsSymbLibSbt4Service.java

@@ -4,6 +4,7 @@ import com.its.op.dao.repository.its.vms.TbVmsFormObjectRepository;
 import com.its.op.dao.repository.its.vms.TbVmsSymbLibRepository;
 import com.its.op.dto.its.common.UsageCountDto;
 import com.its.op.dto.its.vms.TbVmsSymbLibDto;
+import com.its.op.global.TbVmsSymbLibManager;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
@@ -15,8 +16,8 @@ import java.util.ConcurrentModificationException;
 public class TbVmsSymbLibSbt4Service extends TbVmsSymbLibService {
 
     // 대기환경 이미지
-    public TbVmsSymbLibSbt4Service(TbVmsSymbLibRepository repo, TbVmsFormObjectRepository formObjectRepository) {
-        super("SBT4", 6000, 6999, repo, formObjectRepository);
+    public TbVmsSymbLibSbt4Service(TbVmsSymbLibRepository repo, TbVmsFormObjectRepository formObjectRepository, TbVmsSymbLibManager manager) {
+        super("SBT4", 6000, 6999, repo, formObjectRepository, manager);
     }
 
     @Transactional

+ 16 - 3
src/main/java/com/its/op/service/its/vms/TbVmsSymbLibService.java

@@ -6,6 +6,7 @@ import com.its.op.dto.its.common.NewIdIntegerDto;
 import com.its.op.dto.its.common.UsageCountDto;
 import com.its.op.dto.its.vms.TbVmsSymbLibDto;
 import com.its.op.entity.its.vms.TbVmsSymbLib;
+import com.its.op.global.TbVmsSymbLibManager;
 import com.its.utils.ItsUtils;
 import lombok.extern.slf4j.Slf4j;
 
@@ -22,13 +23,15 @@ public class TbVmsSymbLibService {
     private final Integer maxNmbr;
     private final TbVmsSymbLibRepository repo;
     private final TbVmsFormObjectRepository formObjectRepository;
+    private final TbVmsSymbLibManager manager;
 
-    public TbVmsSymbLibService(String symbType, Integer minNmbr, Integer maxNmbr, TbVmsSymbLibRepository repo, TbVmsFormObjectRepository formObjectRepository) {
+    public TbVmsSymbLibService(String symbType, Integer minNmbr, Integer maxNmbr, TbVmsSymbLibRepository repo, TbVmsFormObjectRepository formObjectRepository, TbVmsSymbLibManager manager) {
         this.SYMB_TYPE = symbType;
         this.minNmbr = minNmbr;
         this.maxNmbr = maxNmbr;
         this.repo = repo;
         this.formObjectRepository = formObjectRepository;
+        this.manager = manager;
     }
 
     // 데이터 1건 조회, 없으면 exception
@@ -47,8 +50,7 @@ public class TbVmsSymbLibService {
      * @return
      */
     public List<TbVmsSymbLibDto> findAllSymbolImage() {
-
-        String saveDir = ItsUtils.createUserDir("/image/vms/");
+        //String saveDir = ItsUtils.createUserDir("/image/vms/");
         List<TbVmsSymbLibDto> result = new ArrayList<>();
         List<TbVmsSymbLib> data = this.repo.findAllSymbolImage(this.SYMB_TYPE);
         if (data != null) {
@@ -69,6 +71,7 @@ public class TbVmsSymbLibService {
                 result.add(entity.toDto());
             }
         }
+        this.manager.refresh(data);
         return result;
     }
 
@@ -86,6 +89,7 @@ public class TbVmsSymbLibService {
         req.setUpdtDt(ItsUtils.getSysTime());   // 현재시각으로 업데이트
         entity.updateInfo(req);
         this.repo.save(entity);
+        this.manager.put(entity.getSymbLibNmbr(), entity);
         return entity.toDto();
     }
 
@@ -99,6 +103,9 @@ public class TbVmsSymbLibService {
             TbVmsSymbLib obj = req.toEntity();
             this.repo.save(obj);
             result.add(obj.toDto());
+
+            TbVmsSymbLib entity = requireOne(req.getSymbLibNmbr());
+            this.manager.put(entity.getSymbLibNmbr(), entity);
         }
         return result;
     }
@@ -113,6 +120,10 @@ public class TbVmsSymbLibService {
         req.setUpdtDt(ItsUtils.getSysTime());   // 현재시각으로 업데이트
         TbVmsSymbLib obj = req.toEntity();
         this.repo.save(obj);
+
+        TbVmsSymbLib entity = requireOne(req.getSymbLibNmbr());
+        this.manager.put(entity.getSymbLibNmbr(), entity);
+
         return obj.toDto();
     }
 
@@ -120,6 +131,7 @@ public class TbVmsSymbLibService {
     public TbVmsSymbLibDto deleteById(Integer id) {
         TbVmsSymbLib entity = requireOne(id);
         this.repo.deleteById(id);
+        this.manager.remove(id);
         return entity.toDto();
     }
 
@@ -130,6 +142,7 @@ public class TbVmsSymbLibService {
             Optional<TbVmsSymbLib> obj = this.repo.findById(id);
             if (obj.isPresent()) {
                 this.repo.deleteById(id);
+                this.manager.remove(id);
                 result.add(obj.get().toDto());
             }
         }