| 
					
				 | 
			
			
				@@ -26,6 +26,7 @@ public class PisInfrService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private PisInfrMapper pisInfrMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private PrkPlceMapper prkPlceMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private DbmsJobProcess dbmsJobProcess; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private int sttsMin; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -34,6 +35,7 @@ public class PisInfrService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         log.info("PisInfrService.init: Start."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.pisInfrMapper = (PisInfrMapper) AppUtils.getBean(PisInfrMapper.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.prkPlceMapper = (PrkPlceMapper) AppUtils.getBean(PrkPlceMapper.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.dbmsJobProcess = (DbmsJobProcess) AppUtils.getBean(DbmsJobProcess.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         log.info("PisInfrService.init: ..End."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -174,11 +176,17 @@ public class PisInfrService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         boolean insHs = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Calendar cal = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         int min = cal.get(Calendar.MINUTE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        log.error("updateCtlrStts: {}, {}", min, (min%5)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if ((min % 5) == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             insHs = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             this.sttsMin = min; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (isRun && insHs) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 5분 마다 실시간 주차장 이력 정보를 저장하자. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            insertPrkPlceSttsHs(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 주차정보시스템 상태정보 업데이트 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<TbPisInfrStts> pisSttsList = Collections.synchronizedList(new ArrayList<>()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 주차장 상태정보 업데이트 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -200,7 +208,7 @@ public class PisInfrService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     // 주차정보시스템이 데이터를 수집하지 않으면 주차장 상태정보를 업데이트 할 필요 없다. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     for (Map.Entry<String, TbPrkPlce> el : pis.getRltnPrkPlce().entrySet()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         TbPrkPlce obj = el.getValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        pis.getStts().setUPDT_DT(UPDT_DT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        obj.getStts().setUPDT_DT(UPDT_DT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         if (PisConstants.C2F.equals(pis.getPIS_TP())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             // 자체 수집하는 경우(주차정보시스템 당 주차장은 1개가 존재한다. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             obj.getStts().setCMNC_STTS_CD("CMS0"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -217,6 +225,7 @@ public class PisInfrService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // 주차정보시스템 통신이상 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 error++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 pis.getStts().initStts(false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                pis.getStts().setUPDT_DT(UPDT_DT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // 주차정보시스템에 연결된 주차장의 상태정보를 업데이트 한다. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if ("Y".equals(pis.getPIS_CLCT_YN())) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -225,6 +234,7 @@ public class PisInfrService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         TbPrkPlce obj = el.getValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         // 주차정보시스템의 통신상태가 비정상이기 때문에 주차장의 상태정보도 비정상이다. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         obj.getStts().initStts(false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        obj.getStts().setUPDT_DT(UPDT_DT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         prkPlceSttsList.add(obj.getStts()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -234,18 +244,24 @@ public class PisInfrService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 주차정보시스템 상태정보 DB 업데이트 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        DbmsJobProcess dbmsJobProcess = (DbmsJobProcess) AppUtils.getBean(DbmsJobProcess.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (pisSttsList.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            dbmsJobProcess.add(new DbmsJobData(DbmsJobType.DATA_TYPE_PIS_STTS, insHs, pisSttsList, null)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.dbmsJobProcess.add(new DbmsJobData(DbmsJobType.DATA_TYPE_PIS_STTS, insHs, pisSttsList, null)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 주차장 상태정보 DB 업데이트 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (prkPlceSttsList.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            dbmsJobProcess.add(new DbmsJobData(DbmsJobType.DATA_TYPE_PRK_PLCE_STTS, insHs, prkPlceSttsList, null)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.dbmsJobProcess.add(new DbmsJobData(DbmsJobType.DATA_TYPE_PRK_PLCE_STTS, insHs, prkPlceSttsList, null)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         log.info("PisInfrService.updateCtlrStts: PIS, total {}, normal {}, error {}", normal + error, normal, error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void insertPrkPlceSttsHs() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        TbPrkPlceRtHs rtHs = TbPrkPlceRtHs.builder() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .crtnDt(SysUtils.getSysTimeHm()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.dbmsJobProcess.addQ(new DbmsJobData(DbmsJobType.DATA_TYPE_RL_TIME_HS, true, rtHs, null)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * C2C-S 로 설정되어 있는 주차정보 시스템을 찾아 해당 주차정보 시스템으로 연결하여 통신하는 C2C_Client 핸들러를 실행시킨다. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 |