shjung преди 2 години
родител
ревизия
6e85621823

+ 0 - 1
conf/pis-comm-server.pid

@@ -1 +0,0 @@
-23200

+ 0 - 9
src/main/java/com/its/pis/dao/mapper/BatchDaoService.java

@@ -27,18 +27,9 @@ public abstract class BatchDaoService {
         this.sqlSessionFactory = sqlSessionFactory;
     }
 
-    public int getCount() {
-        return this.count;
-    }
     public String getMapper() {
         return this.mapper;
     }
-    public String getServiceName() {
-        return this.serviceName;
-    }
-    public String getMapperName() {
-        return this.mapperName;
-    }
 
     public int execute(String mapper) {
         log.info("{}.insertBatch: {}: START.", this.serviceName, mapper);

+ 1 - 1
src/main/java/com/its/pis/dao/mapper/PrltCtlrMapper.java → src/main/java/com/its/pis/dao/mapper/PrkPlceMapper.java

@@ -9,7 +9,7 @@ import org.apache.ibatis.annotations.Param;
 import java.util.List;
 
 @Mapper
-public interface PrltCtlrMapper {
+public interface PrkPlceMapper {
 
     List<TbPrkPlce> selectAll();
 

+ 9 - 5
src/main/java/com/its/pis/dao/mapper/batch/PisInfrDao.java

@@ -20,7 +20,7 @@ public class PisInfrDao extends BatchDaoService {
     public PisInfrDao(SqlSessionFactory sqlSessionFactory) {
         super(sqlSessionFactory);
         this.serviceName = "PisInfrDao";
-        this.mapperName  = "";//"com.its.pis.dao.mapper.PisInfrMapper.";
+        this.mapperName  = "";//""com.its.pis.mapper.batchPisInfrMapper.";
     }
 
     public List<HashMap<String, Object>> getSttsList(List<TbPisInfrStts> req) {
@@ -38,7 +38,7 @@ public class PisInfrDao extends BatchDaoService {
     }
 
     public int updateStts(List<TbPisInfrStts> req, boolean isHistory) {
-        log.info("{}.updateStts: START. {} EA. History {}", this.serviceName, req.size(), isHistory);
+        //log.info("{}.updateStts: START. {} EA. History {}", this.serviceName, req.size(), isHistory);
         Elapsed elapsed = new Elapsed();
         int total = 0;
         SqlSession sqlSession = null;
@@ -57,12 +57,14 @@ public class PisInfrDao extends BatchDaoService {
                 sqlSession.close();
             }
         }
-        log.info("{}.updateStts: ..END. {} EA. {} ms.", this.serviceName, total, elapsed.milliSeconds());
+        if (elapsed.milliSeconds() > 1000) {
+            log.info("{}.updateStts: ..END. {} EA. {} ms.", this.serviceName, total, elapsed.milliSeconds());
+        }
         return total;
     }
 
     public int insertStts(List<TbPisInfrStts> req) {
-        log.info("{}.insertStts: START. {} EA.", this.serviceName, req.size());
+        //log.info("{}.insertStts: START. {} EA.", this.serviceName, req.size());
         Elapsed elapsed = new Elapsed();
         int total = 0;
         SqlSession sqlSession = null;
@@ -81,7 +83,9 @@ public class PisInfrDao extends BatchDaoService {
                 sqlSession.close();
             }
         }
-        log.info("{}.insertStts: ..END. {} EA. {} ms.", this.serviceName, total, elapsed.milliSeconds());
+        if (elapsed.milliSeconds() > 1000) {
+            log.info("{}.insertStts: ..END. {} EA. {} ms.", this.serviceName, total, elapsed.milliSeconds());
+        }
         return total;
     }
 

+ 34 - 22
src/main/java/com/its/pis/dao/mapper/batch/PrltCtlrDao.java → src/main/java/com/its/pis/dao/mapper/batch/PrkPlceDao.java

@@ -19,12 +19,12 @@ import java.util.List;
 
 @Slf4j
 @Repository
-public class PrltCtlrDao extends BatchDaoService {
+public class PrkPlceDao extends BatchDaoService {
 
-    public PrltCtlrDao(SqlSessionFactory sqlSessionFactory) {
+    public PrkPlceDao(SqlSessionFactory sqlSessionFactory) {
         super(sqlSessionFactory);
-        this.serviceName = "PrltCtlrDao";
-        this.mapperName  = "";//"/com.its.pis.dao.mapper.PrltCtlrMapper.";
+        this.serviceName = "PrkPlceDao";
+        this.mapperName  = "";//""com.its.pis.mapper.batchPrkPlceMapper.";
     }
 
     public List<HashMap<String, Object>> getSttsList(List<TbPrkPlceStts> req) {
@@ -39,51 +39,55 @@ public class PrltCtlrDao extends BatchDaoService {
         return lists;
     }
 
-    public int updateStts(List<TbPrkPlceStts> req, boolean isHistory) {
-        log.info("{}.updateStts: START. {} EA. History {}", this.serviceName, req.size(), isHistory);
+    public int updatePrkPlceStts(List<TbPrkPlceStts> req, boolean isHistory) {
+        //log.info("{}.updatePrkPlceStts: START. {} EA. History {}", this.serviceName, req.size(), isHistory);
         Elapsed elapsed = new Elapsed();
         int total = 0;
         SqlSession sqlSession = null;
         try {
             sqlSession = this.sqlSessionFactory.openSession(ExecutorType.BATCH, false);
 
-            this.mapper = this.mapperName + "batchUpdatePrltCtlrStts";
+            this.mapper = this.mapperName + "batchUpdatePrkPlceStts";
             total += updateBatch(this.mapper, getSttsList(req));
 
             sqlSession.commit();
         } catch(Exception e) {
-            log.error("updateStts: Exception, {}, {}", req, e.getMessage());
+            log.error("updatePrkPlceStts: Exception, {}, {}", req, e.getMessage());
         }
         finally {
             if (sqlSession != null) {
                 sqlSession.close();
             }
         }
-        log.info("{}.updateStts: ..END. {} EA. {} ms.", this.serviceName, total, elapsed.milliSeconds());
+        if (elapsed.milliSeconds() > 1000) {
+            log.info("{}.updatePrkPlceStts: ..END. {} EA. {} ms.", this.serviceName, total, elapsed.milliSeconds());
+        }
         return total;
     }
 
-    public int insertStts(List<TbPrkPlceStts> req) {
-        log.info("{}.insertStts: START. {} EA.", this.serviceName, req.size());
+    public int insertPrkPlceSttsHs(List<TbPrkPlceStts> req) {
+        //log.info("{}.insertPrkPlceSttsHs: START. {} EA.", this.serviceName, req.size());
         Elapsed elapsed = new Elapsed();
         int total = 0;
         SqlSession sqlSession = null;
         try {
             sqlSession = this.sqlSessionFactory.openSession(ExecutorType.BATCH, false);
 
-            this.mapper = this.mapperName + "batchInsertPrltCtlrSttsHs";
+            this.mapper = this.mapperName + "batchInsertPrkPlceSttsHs";
             total += insertBatch(this.mapper, getSttsList(req));
 
             sqlSession.commit();
         } catch(Exception e) {
-            log.error("insertStts: Exception, {}, {}", req, e.getMessage());
+            log.error("insertPrkPlceSttsHs: Exception, {}, {}", req, e.getMessage());
         }
         finally {
             if (sqlSession != null) {
                 sqlSession.close();
             }
         }
-        log.info("{}.insertStts: ..END. {} EA. {} ms.", this.serviceName, total, elapsed.milliSeconds());
+        if (elapsed.milliSeconds() > 1000) {
+            log.info("{}.insertPrkPlceSttsHs: ..END. {} EA. {} ms.", this.serviceName, total, elapsed.milliSeconds());
+        }
         return total;
     }
 
@@ -92,7 +96,7 @@ public class PrltCtlrDao extends BatchDaoService {
             log.info("{}.updateRlTimeFlr: Data Not Exist.", this.serviceName);
             return 0;
         }
-        log.info("{}.updateRlTimeFlr: START. {} EA.", this.serviceName, reqList.size());
+        //log.info("{}.updateRlTimeFlr: START. {} EA.", this.serviceName, reqList.size());
         Elapsed elapsed = new Elapsed();
         int total = 0;
         SqlSession sqlSession = null;
@@ -122,7 +126,9 @@ public class PrltCtlrDao extends BatchDaoService {
                 sqlSession.close();
             }
         }
-        log.info("{}.updateRlTimeFlr: ..END. {} EA. {} ms.", this.serviceName, total, elapsed.milliSeconds());
+        if (elapsed.milliSeconds() > 1000) {
+            log.info("{}.updateRlTimeFlr: ..END. {} EA. {} ms.", this.serviceName, total, elapsed.milliSeconds());
+        }
         return total;
     }
 
@@ -131,7 +137,7 @@ public class PrltCtlrDao extends BatchDaoService {
             log.info("{}.updateRlTimeAr: Data Not Exist.", this.serviceName);
             return 0;
         }
-        log.info("{}.updateRlTimeAr: START. {} EA.", this.serviceName, reqList.size());
+        //log.info("{}.updateRlTimeAr: START. {} EA.", this.serviceName, reqList.size());
         Elapsed elapsed = new Elapsed();
         int total = 0;
         SqlSession sqlSession = null;
@@ -161,7 +167,9 @@ public class PrltCtlrDao extends BatchDaoService {
                 sqlSession.close();
             }
         }
-        log.info("{}.updateRlTimeAr: ..END. {} EA. {} ms.", this.serviceName, total, elapsed.milliSeconds());
+        if (elapsed.milliSeconds() > 1000) {
+            log.info("{}.updateRlTimeAr: ..END. {} EA. {} ms.", this.serviceName, total, elapsed.milliSeconds());
+        }
         return total;
     }
 
@@ -170,7 +178,7 @@ public class PrltCtlrDao extends BatchDaoService {
             log.info("{}.updateRlTimePrv: Data Not Exist.", this.serviceName);
             return 0;
         }
-        log.info("{}.updateRlTimePrv: START. {} EA.", this.serviceName, reqList.size());
+        //log.info("{}.updateRlTimePrv: START. {} EA.", this.serviceName, reqList.size());
         Elapsed elapsed = new Elapsed();
         int total = 0;
         SqlSession sqlSession = null;
@@ -199,7 +207,9 @@ public class PrltCtlrDao extends BatchDaoService {
                 sqlSession.close();
             }
         }
-        log.info("{}.updateRlTimePrv: ..END. {} EA. {} ms.", this.serviceName, total, elapsed.milliSeconds());
+        if (elapsed.milliSeconds() > 1000) {
+            log.info("{}.updateRlTimePrv: ..END. {} EA. {} ms.", this.serviceName, total, elapsed.milliSeconds());
+        }
         return total;
     }
 
@@ -208,7 +218,7 @@ public class PrltCtlrDao extends BatchDaoService {
             log.info("{}.updateRlTimeDev: Data Not Exist.", this.serviceName);
             return 0;
         }
-        log.info("{}.updateRlTimeDev: START. {} EA.", this.serviceName, reqList.size());
+        //log.info("{}.updateRlTimeDev: START. {} EA.", this.serviceName, reqList.size());
         Elapsed elapsed = new Elapsed();
         int total = 0;
         SqlSession sqlSession = null;
@@ -240,7 +250,9 @@ public class PrltCtlrDao extends BatchDaoService {
                 sqlSession.close();
             }
         }
-        log.info("{}.updateRlTimePrv: ..END. {} EA. {} ms.", this.serviceName, total, elapsed.milliSeconds());
+        if (elapsed.milliSeconds() > 1000) {
+            log.info("{}.updateRlTimePrv: ..END. {} EA. {} ms.", this.serviceName, total, elapsed.milliSeconds());
+        }
         return total;
     }
 

+ 3 - 2
src/main/java/com/its/pis/entity/TbPisInfr.java

@@ -39,9 +39,10 @@ public class TbPisInfr {
 	private String PIS_ID;
 	private String PIS_TOKEN;
 	private int PIS_CYCLE;
+	private String PIS_CLCT_YN;
 	private String DEL_YN;
 
-	private Map<String, TbPrkPlce>  rltnPrltMap;
+	private Map<String, TbPrkPlce>  rltnPrkPlce;
 	private int 			 		netState;
 	private boolean       			isDupCon;
 	private boolean                 isDupLogin;
@@ -65,7 +66,7 @@ public class TbPisInfr {
 	}
 
 	public TbPisInfr() {
-		this.rltnPrltMap = Collections.synchronizedMap(new HashMap<String, TbPrkPlce>());
+		this.rltnPrkPlce = Collections.synchronizedMap(new HashMap<String, TbPrkPlce>());
 		this.stts = new TbPisInfrStts();
 
 		this.connectCount = 0;

+ 1 - 1
src/main/java/com/its/pis/process/AbstractDbmsJobProcess.java

@@ -88,7 +88,7 @@ public abstract class AbstractDbmsJobProcess {
                 log.error("AbstractDbmsJobProcess.add: Queue Full Error, Size: {} EA, {}", DBMS_DATA_QUEUE.size(), dbmsJobData);
                 return false;
             }
-            log.info("DBMS_DATA_QUEUE.offer: {} EA, {}", DBMS_DATA_QUEUE.size(), dbmsJobData);
+            //log.info("DBMS_DATA_QUEUE.offer: {} EA, {}", DBMS_DATA_QUEUE.size(), dbmsJobData);
             return true;
         } catch (Exception e) {
             log.error("AbstractDbmsJobProcess.add: Exception: {}", e.getMessage(), e);

+ 1 - 1
src/main/java/com/its/pis/process/AbstractMessageDataProcess.java

@@ -87,7 +87,7 @@ public abstract class AbstractMessageDataProcess {
                 log.error("AbstractMessageDataProcess.add: Queue Full Error, Size: {} EA, {}", DBMS_DATA_QUEUE.size(), messageData);
                 return false;
             }
-            log.info("DBMS_DATA_QUEUE.offer: {} EA, {}", DBMS_DATA_QUEUE.size(), messageData);
+            //log.info("DBMS_DATA_QUEUE.offer: {} EA, {}", DBMS_DATA_QUEUE.size(), messageData);
             return true;
         } catch (Exception e) {
             log.error("AbstractMessageDataProcess.add: Exception: {}", e.getMessage(), e);

+ 16 - 15
src/main/java/com/its/pis/process/DbmsJobProcess.java

@@ -2,9 +2,9 @@ package com.its.pis.process;
 
 import com.its.app.AppUtils;
 import com.its.app.utils.SysUtils;
-import com.its.pis.dao.mapper.PrltCtlrMapper;
+import com.its.pis.dao.mapper.PrkPlceMapper;
 import com.its.pis.dao.mapper.batch.PisInfrDao;
-import com.its.pis.dao.mapper.batch.PrltCtlrDao;
+import com.its.pis.dao.mapper.batch.PrkPlceDao;
 import com.its.pis.entity.TbPisInfr;
 import com.its.pis.entity.TbPisInfrStts;
 import com.its.pis.entity.TbPrkPlceRt;
@@ -23,15 +23,15 @@ import java.util.List;
 public class DbmsJobProcess extends AbstractDbmsJobProcess {
 
     private final PisInfrDao pisInfrDao;
-    private final PrltCtlrDao prltCtlrDao;
+    private final PrkPlceDao prkPlceDao;
 
 //    private PisInfrMapper pisInfrMapper;
-    private PrltCtlrMapper prltCtlrMapper;
+    private PrkPlceMapper prkPlceMapper;
 
     @Override
     protected void postConstruct() {
 //        this.pisInfrMapper = (PisInfrMapper) AppUtils.getBean(PisInfrMapper.class);
-        this.prltCtlrMapper = (PrltCtlrMapper) AppUtils.getBean(PrltCtlrMapper.class);
+        this.prkPlceMapper = (PrkPlceMapper) AppUtils.getBean(PrkPlceMapper.class);
     }
 
     @Override
@@ -48,11 +48,11 @@ public class DbmsJobProcess extends AbstractDbmsJobProcess {
                             PrkPlceRlTimeResponseInfo info = rlTimeInfo.getData().getPayload();
                             TbPrkPlceRt rt = TbPrkPlceRt.toEntity(pis.getPIS_NMBR(), DATA_COLCT_TIME, info);
 
-                            this.prltCtlrMapper.updatePrkPlceRlTime(rt);
-                            this.prltCtlrDao.updateRlTimeFlr(pis.getPIS_NMBR(), DATA_COLCT_TIME, info.getFlr_info());
-                            this.prltCtlrDao.updateRlTimeAr(pis.getPIS_NMBR(), info.getAr_info());
-                            this.prltCtlrDao.updateRlTimePrv(pis.getPIS_NMBR(), info.getPrvuse_prkar_info());
-                            this.prltCtlrDao.updateRlTimeDev(pis.getPIS_NMBR(), info.getPrk_colct_device_info());
+                            this.prkPlceMapper.updatePrkPlceRlTime(rt);
+                            this.prkPlceDao.updateRlTimeFlr(pis.getPIS_NMBR(), DATA_COLCT_TIME, info.getFlr_info());
+                            this.prkPlceDao.updateRlTimeAr(pis.getPIS_NMBR(), info.getAr_info());
+                            this.prkPlceDao.updateRlTimePrv(pis.getPIS_NMBR(), info.getPrvuse_prkar_info());
+                            this.prkPlceDao.updateRlTimeDev(pis.getPIS_NMBR(), info.getPrk_colct_device_info());
                         }
                         else {
                             log.error("RL TIME Data NULL...............");
@@ -66,16 +66,17 @@ public class DbmsJobProcess extends AbstractDbmsJobProcess {
                     List<TbPisInfrStts> pisSttsList = (List<TbPisInfrStts>)data.getData();
                     this.pisInfrDao.updateStts(pisSttsList, data.isHistory());
                     if (data.isHistory()) {
+                        // 주차정보시스템 상태정보 이력은 저장하지 않는다.
                         //this.pisInfrDao.insertStts(pisSttsList);
                     }
                     pisSttsList.clear();
                     break;
-                case DbmsJobType.DATA_TYPE_PRLT_STTS:
+                case DbmsJobType.DATA_TYPE_PRK_PLCE_STTS:
                     List<TbPrkPlceStts> prltSttsList = (List<TbPrkPlceStts>)data.getData();
-                    this.prltCtlrDao.updateStts(prltSttsList, data.isHistory());
-//                    if (data.isHistory()) {
-//                        this.prltCtlrDao.insertStts(prltSttsList);
-//                    }
+                    this.prkPlceDao.updatePrkPlceStts(prltSttsList, data.isHistory());
+                    if (data.isHistory()) {
+                        this.prkPlceDao.insertPrkPlceSttsHs(prltSttsList);
+                    }
                     prltSttsList.clear();
                     break;
                 default:

+ 1 - 1
src/main/java/com/its/pis/process/DbmsJobType.java

@@ -8,7 +8,7 @@ import lombok.Setter;
 public class DbmsJobType {
     public static final int DATA_TYPE_UNIT_SYST_STTS  = 0;
     public static final int DATA_TYPE_PIS_STTS        = 1;
-    public static final int DATA_TYPE_PRLT_STTS       = 2;
+    public static final int DATA_TYPE_PRK_PLCE_STTS   = 2;
     public static final int DATA_TYPE_STTUS_INFO      = 3;
     public static final int DATA_TYPE_OPR_INFO        = 4;
     public static final int DATA_TYPE_RL_TIME         = 5;

+ 2 - 2
src/main/java/com/its/pis/process/MessageDataProcess.java

@@ -1,7 +1,7 @@
 package com.its.pis.process;
 
 import com.its.pis.dao.mapper.batch.PisInfrDao;
-import com.its.pis.dao.mapper.batch.PrltCtlrDao;
+import com.its.pis.dao.mapper.batch.PrkPlceDao;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -12,7 +12,7 @@ import org.springframework.stereotype.Service;
 public class MessageDataProcess extends AbstractDbmsJobProcess {
 
     private final PisInfrDao pisInfrDao;
-    private final PrltCtlrDao prltCtlrDao;
+    private final PrkPlceDao prkPlceDao;
 
 //    private final UnitSystMapper unitSystMapper;
 //    private final PisInfrMapper pisInfrMapper;

+ 41 - 37
src/main/java/com/its/pis/service/PisInfrService.java

@@ -3,7 +3,7 @@ package com.its.pis.service;
 import com.its.app.AppUtils;
 import com.its.app.utils.SysUtils;
 import com.its.pis.dao.mapper.PisInfrMapper;
-import com.its.pis.dao.mapper.PrltCtlrMapper;
+import com.its.pis.dao.mapper.PrkPlceMapper;
 import com.its.pis.domain.NET;
 import com.its.pis.entity.*;
 import com.its.pis.global.AppRepository;
@@ -25,7 +25,7 @@ import java.util.*;
 public class PisInfrService {
 
     private PisInfrMapper pisInfrMapper;
-    private PrltCtlrMapper prltCtlrMapper;
+    private PrkPlceMapper prkPlceMapper;
 
     private int sttsMin;
 
@@ -33,7 +33,7 @@ public class PisInfrService {
     private void init() {
         log.info("PisInfrService.init: Start.");
         this.pisInfrMapper = (PisInfrMapper) AppUtils.getBean(PisInfrMapper.class);
-        this.prltCtlrMapper = (PrltCtlrMapper) AppUtils.getBean(PrltCtlrMapper.class);
+        this.prkPlceMapper = (PrkPlceMapper) AppUtils.getBean(PrkPlceMapper.class);
         log.info("PisInfrService.init: ..End.");
     }
 
@@ -125,13 +125,13 @@ public class PisInfrService {
                 continue;
             }
 
-            obj.getRltnPrltMap().put(rltn.getPRK_PLCE_NMBR(), prlt);
+            obj.getRltnPrkPlce().put(rltn.getPRK_PLCE_NMBR(), prlt);
         }
 
         log.info("loadPisRltnPrlt.PIS Rltn PRLT List.................");
         for (Map.Entry<String, TbPisInfr> e : AppRepository.getInstance().getPisInfrMap().entrySet()) {
             log.info("loadPisRltnPrlt.PIS PRLT Prlt: {}", e.getValue().getPIS_NMBR());
-            for (Map.Entry<String, TbPrkPlce> l : e.getValue().getRltnPrltMap().entrySet()) {
+            for (Map.Entry<String, TbPrkPlce> l : e.getValue().getRltnPrkPlce().entrySet()) {
                 log.info("  {}", l.toString());
             }
         }
@@ -142,7 +142,7 @@ public class PisInfrService {
      */
     public void loadPrkPlce() {
 
-        List<TbPrkPlce> objList = this.prltCtlrMapper.selectAll();
+        List<TbPrkPlce> objList = this.prkPlceMapper.selectAll();
         for (TbPrkPlce obj : objList) {
             obj.getStts().setPRK_PLCE_NMBR(obj.getPRK_PLCE_NMBR());
             obj.getStts().initStts(false);
@@ -181,6 +181,9 @@ public class PisInfrService {
 
         // 주차정보시스템 상태정보 업데이트
         List<TbPisInfrStts> pisSttsList = Collections.synchronizedList(new ArrayList<>());
+        // 주차장 상태정보 업데이트
+        List<TbPrkPlceStts> prkPlceSttsList = Collections.synchronizedList(new ArrayList<>());
+
         String UPDT_DT = SysUtils.getSysTime();
         int normal = 0;
         int error  = 0;
@@ -191,14 +194,39 @@ public class PisInfrService {
                 // 주차정보시스템 통신정상
                 normal++;
                 pis.getStts().setCMNC_STTS_CD("CMS0");
+
+                // 주차정보시스템에 연결된 주차장의 상태정보를 업데이트 한다.
+                if ("Y".equals(pis.getPIS_CLCT_YN())) {
+                    // 주차정보시스템이 데이터를 수집하지 않으면 주차장 상태정보를 업데이트 할 필요 없다.
+                    for (Map.Entry<String, TbPrkPlce> el : pis.getRltnPrkPlce().entrySet()) {
+                        TbPrkPlce obj = el.getValue();
+                        pis.getStts().setUPDT_DT(UPDT_DT);
+                        if (PisConstants.C2F.equals(pis.getPIS_TP())) {
+                            // 자체 수집하는 경우(주차정보시스템 당 주차장은 1개가 존재한다.
+                            obj.getStts().setCMNC_STTS_CD("CMS0");
+                        } else {
+                            // 외부 기관으로 부터 정보를 연계하는 경우 주차장은 여러개 일 수 있다.
+                            // 주차장의 상태정보는 기관으로 부터 수신하기 때문에 여기서는 확인할수 없고
+                            // 통신상에서 업데이트 되는것을 그대로 업데이트 해야 한다.
+                        }
+                        prkPlceSttsList.add(obj.getStts());
+                    }
+                }
             }
             else {
                 // 주차정보시스템 통신이상
                 error++;
                 pis.getStts().initStts(false);
-                for (Map.Entry<String, TbPrkPlce> l : pis.getRltnPrltMap().entrySet()) {
-                    TbPrkPlce prlt = l.getValue();
-                    prlt.getStts().initStts(false);
+
+                // 주차정보시스템에 연결된 주차장의 상태정보를 업데이트 한다.
+                if ("Y".equals(pis.getPIS_CLCT_YN())) {
+                    // 주차정보시스템이 데이터를 수집하지 않으면 주차장 상태정보를 업데이트 할 필요 없다.
+                    for (Map.Entry<String, TbPrkPlce> el : pis.getRltnPrkPlce().entrySet()) {
+                        TbPrkPlce obj = el.getValue();
+                        // 주차정보시스템의 통신상태가 비정상이기 때문에 주차장의 상태정보도 비정상이다.
+                        obj.getStts().initStts(false);
+                        prkPlceSttsList.add(obj.getStts());
+                    }
                 }
             }
 
@@ -206,40 +234,16 @@ public class PisInfrService {
         }
 
         // 주차정보시스템 상태정보 DB 업데이트
+        DbmsJobProcess dbmsJobProcess = (DbmsJobProcess) AppUtils.getBean(DbmsJobProcess.class);
         if (pisSttsList.size() > 0) {
-            DbmsJobProcess dbmsJobProcess = (DbmsJobProcess) AppUtils.getBean(DbmsJobProcess.class);
             dbmsJobProcess.add(new DbmsJobData(DbmsJobType.DATA_TYPE_PIS_STTS, insHs, pisSttsList, null));
         }
-        log.info("PisInfrService.updateCtlrStts: PIS, total {}, normal {}, error {}", normal + error, normal, error);
-
-        // 주차장 상태정보 업데이트
-        List<TbPrkPlceStts> prltSttsList = Collections.synchronizedList(new ArrayList<>());
-        int normal_prlt = 0;
-        int error_prlt = 0;
-        for (Map.Entry<String, TbPrkPlce> e : AppRepository.getInstance().getPrltNmbrMap().entrySet()) {
-            TbPrkPlce obj = e.getValue();
-            obj.getStts().setUPDT_DT(UPDT_DT);
-            if (isRun && obj.getNetState() >= NET.LOGIN_REQ) {
-                // 주차장 통신정상
-                normal_prlt++;
-                obj.getStts().setCMNC_STTS_CD("CMS0");
-            }
-            else {
-                // 주차장 통신이상
-                error_prlt++;
-                obj.getStts().initStts(false);
-            }
-
-            prltSttsList.add(obj.getStts());
-        }
-
         // 주차장 상태정보 DB 업데이트
-        if (prltSttsList.size() > 0) {
-            DbmsJobProcess dbmsJobProcess = (DbmsJobProcess) AppUtils.getBean(DbmsJobProcess.class);
-            dbmsJobProcess.add(new DbmsJobData(DbmsJobType.DATA_TYPE_PRLT_STTS, insHs, prltSttsList, null));
+        if (prkPlceSttsList.size() > 0) {
+            dbmsJobProcess.add(new DbmsJobData(DbmsJobType.DATA_TYPE_PRK_PLCE_STTS, insHs, prkPlceSttsList, null));
         }
 
-        log.info("PisInfrService.updateCtlrStts: PRLT total {}, normal {}, error {}", normal_prlt + error_prlt, normal_prlt, error_prlt);
+        log.info("PisInfrService.updateCtlrStts: PIS, total {}, normal {}, error {}", normal + error, normal, error);
     }
 
     /**

+ 49 - 13
src/main/java/com/its/pis/websocket/PisWebSocketHandler.java

@@ -5,6 +5,8 @@ import com.its.app.AppUtils;
 import com.its.app.utils.SysUtils;
 import com.its.pis.entity.TbPisInfr;
 import com.its.pis.entity.TbPisInfrStts;
+import com.its.pis.entity.TbPrkPlce;
+import com.its.pis.entity.TbPrkPlceStts;
 import com.its.pis.global.AppRepository;
 import com.its.pis.process.DbmsJobData;
 import com.its.pis.process.DbmsJobProcess;
@@ -43,6 +45,34 @@ public class PisWebSocketHandler extends TextWebSocketHandler {
         log.info("PisWebSocketHandler() START, type={}", this.type);
     }
 
+    public void updatePisStts(TbPisInfr pis, boolean online) {
+
+        String CMNC_STTS_CD = online ? "CMS0" : "CMS1";
+        String UPDT_DT = SysUtils.getSysTime();
+
+        List<TbPisInfrStts> pisOnSttsList = Collections.synchronizedList(new ArrayList<>());
+
+        pis.getStts().setUPDT_DT(UPDT_DT);
+        pis.getStts().setCMNC_STTS_CD(CMNC_STTS_CD);
+        pisOnSttsList.add(pis.getStts());
+        this.dbmsJobProcess.add(new DbmsJobData(DbmsJobType.DATA_TYPE_PIS_STTS, false, pisOnSttsList, pis));
+
+        if (PisConstants.C2F.equals(pis.getPIS_TP())) {
+            // 자체수집하는 경우 주차정보시스템의 상태가 주차장의 상태정보이다.
+            List<TbPrkPlceStts> prkPlceSttsList = Collections.synchronizedList(new ArrayList<>());
+            for (Map.Entry<String, TbPrkPlce> el : pis.getRltnPrkPlce().entrySet()) {
+                TbPrkPlce obj = el.getValue();
+                pis.getStts().setUPDT_DT(UPDT_DT);
+                obj.getStts().setCMNC_STTS_CD(CMNC_STTS_CD);
+                prkPlceSttsList.add(obj.getStts());
+            }
+            if (prkPlceSttsList.size() > 0) {
+                this.dbmsJobProcess.add(new DbmsJobData(DbmsJobType.DATA_TYPE_PRK_PLCE_STTS, false, prkPlceSttsList, null));
+            }
+        }
+
+    }
+
     @Override
     public void afterConnectionEstablished(WebSocketSession session) throws Exception {
         // 클라이언트가 연결되었을때 실행
@@ -87,14 +117,8 @@ public class PisWebSocketHandler extends TextWebSocketHandler {
         session.setTextMessageSizeLimit(1*1024*1024);
         super.afterConnectionEstablished(session);
 
+        updatePisStts(pis, true);
         log.info("{}: afterConnectionEstablished: connection accept, {}, {}", this.type, pis.getPIS_ID(), pis.getPIS_NM());
-
-        // TODO: 주차정보시스템에 연결된 모든 주차장에 대해서 통신상태를 업데이트 해야함
-        List<TbPisInfrStts> pisSttsList = Collections.synchronizedList(new ArrayList<>());
-        String UPDT_DT = SysUtils.getSysTime();
-        pis.getStts().setUPDT_DT(UPDT_DT);
-        pisSttsList.add(pis.getStts());
-        dbmsJobProcess.add(new DbmsJobData(DbmsJobType.DATA_TYPE_PIS_STTS, false, pisSttsList, pis));
     }
 
     //클라이언트 연결을 끊었을 때 실행
@@ -107,12 +131,24 @@ public class PisWebSocketHandler extends TextWebSocketHandler {
             if (pis != null) {
                 pis.channelClosed();
 
-                // TODO: 주차정보시스템에 연결된 모든 주차장에 대해서 통신상태를 업데이트 해야함
-                List<TbPisInfrStts> pisSttsList = Collections.synchronizedList(new ArrayList<>());
-                String UPDT_DT = SysUtils.getSysTime();
-                pis.getStts().setUPDT_DT(UPDT_DT);
-                pisSttsList.add(pis.getStts());
-                dbmsJobProcess.add(new DbmsJobData(DbmsJobType.DATA_TYPE_PIS_STTS, false, pisSttsList, pis));
+                updatePisStts(pis, false);
+
+//                List<TbPisInfrStts> pisOffSttsList = Collections.synchronizedList(new ArrayList<>());
+//                pis.getStts().initStts(false);
+//                pisOffSttsList.add(pis.getStts());
+//                this.dbmsJobProcess.add(new DbmsJobData(DbmsJobType.DATA_TYPE_PIS_STTS, false, pisOffSttsList, pis));
+//                if ("Y".equals(pis.getPIS_CLCT_YN())) {
+//                    // 주차정보를 수집하는 주차정보시스템인 경우 모든 주차장의 통신을 비정상으로 설정
+//                    List<TbPrkPlceStts> prkPlceSttsList = Collections.synchronizedList(new ArrayList<>());
+//                    for (Map.Entry<String, TbPrkPlce> el : pis.getRltnPrkPlce().entrySet()) {
+//                        TbPrkPlce obj = el.getValue();
+//                        obj.getStts().initStts(false);
+//                        prkPlceSttsList.add(obj.getStts());
+//                    }
+//                    if (prkPlceSttsList.size() > 0) {
+//                        this.dbmsJobProcess.add(new DbmsJobData(DbmsJobType.DATA_TYPE_PRK_PLCE_STTS, false, prkPlceSttsList, null));
+//                    }
+//                }
             }
         }
         else {

+ 5 - 11
src/main/java/com/its/pis/websocket/PisWebSocketHandlerC2C_C.java

@@ -1,11 +1,7 @@
 package com.its.pis.websocket;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
-import com.its.app.utils.SysUtils;
 import com.its.pis.entity.TbPisInfr;
-import com.its.pis.entity.TbPisInfrStts;
-import com.its.pis.process.DbmsJobData;
-import com.its.pis.process.DbmsJobType;
 import com.its.pis.websocket.common.SubscribeIdentifier;
 import com.its.pis.websocket.common.SubscribeRequest;
 import lombok.extern.slf4j.Slf4j;
@@ -22,7 +18,10 @@ import org.springframework.web.socket.sockjs.client.WebSocketTransport;
 
 import java.net.URI;
 import java.net.URISyntaxException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Timer;
+import java.util.TimerTask;
 
 @Slf4j
 public class PisWebSocketHandlerC2C_C extends PisWebSocketHandlerC2C {
@@ -102,12 +101,7 @@ public class PisWebSocketHandlerC2C_C extends PisWebSocketHandlerC2C {
         session.setTextMessageSizeLimit(1*1024*1024);
         log.info("{}: afterConnectionEstablished: connection accept, {}, {}", this.type, this.pis.getPIS_ID(), this.pis.getPIS_NM());
 
-        // TODO: 주차정보시스템에 연결된 모든 주차장에 대해서 통신상태를 업데이트 해야함
-        List<TbPisInfrStts> pisSttsList = Collections.synchronizedList(new ArrayList<>());
-        String UPDT_DT = SysUtils.getSysTime();
-        this.pis.getStts().setUPDT_DT(UPDT_DT);
-        pisSttsList.add(this.pis.getStts());
-        this.dbmsJobProcess.add(new DbmsJobData(DbmsJobType.DATA_TYPE_PIS_STTS, false, pisSttsList, this.pis));
+        updatePisStts(pis, true);
 
         // Subscribe 등록 요청
         SubscribeRequest subscribe = SubscribeRequest.builder()

+ 1 - 0
src/main/java/com/its/pis/websocket/PisWebSocketHandlerC2F.java

@@ -70,6 +70,7 @@ public class PisWebSocketHandlerC2F extends PisWebSocketHandler {
                 //log.info("C2F: RX] {}", subscribe);
                 log.info("RX] {}", this.mapper.writeValueAsString(subscribe));
                 pis.channelLogin(pis.getSession());
+                updatePisStts(pis, true);
 
                 SubscribeResponseAccept response = SubscribeResponseAccept.builder()
                         .identifier(SubscribeIdentifier.builder()

+ 1 - 49
src/main/resources/mybatis/mapper/PisInfrMapper.xml

@@ -14,6 +14,7 @@
 		       A.PIS_ID AS PIS_ID,
 		       A.PIS_TOKEN AS PIS_TOKEN,
 		       A.PIS_CYCLE AS PIS_CYCLE,
+               A.PIS_CLCT_YN AS PIS_CLCT_YN,
 		       A.DEL_YN AS DEL_YN
 		  FROM TB_PIS_INFR A
 		 WHERE A.DEL_YN = 'N'
@@ -97,53 +98,4 @@
     ]]>
     </insert>
 
-    <update id="batchUpdatePisInfrStts" parameterType="java.util.Map">
-    <![CDATA[
-        MERGE INTO TB_PIS_INFR_STTS L
-            USING (SELECT #{PIS_NMBR}     AS PIS_NMBR,
-                          #{UPDT_DT}      AS UPDT_DT,
-                          #{CMNC_STTS_CD} AS CMNC_STTS_CD,
-                          #{CONN_DT}      AS CONN_DT,
-                          #{DIS_CONN_DT}  AS DIS_CONN_DT
-                   FROM DUAL) M
-            ON (L.PIS_NMBR = M.PIS_NMBR)
-            WHEN MATCHED THEN
-                UPDATE SET
-                    L.UPDT_DT      = M.UPDT_DT,
-                    L.CMNC_STTS_CD = M.CMNC_STTS_CD,
-                    L.CONN_DT      = M.CONN_DT,
-                    L.DIS_CONN_DT  = M.DIS_CONN_DT
-            WHEN NOT MATCHED THEN
-                INSERT (
-                        PIS_NMBR,
-                        UPDT_DT,
-                        CMNC_STTS_CD,
-                        CONN_DT,
-                        DIS_CONN_DT
-                    )
-                    VALUES (
-                               M.PIS_NMBR,
-                               M.UPDT_DT,
-                               M.CMNC_STTS_CD,
-                               M.CONN_DT,
-                               NULL
-                           )
-        ]]>
-    </update>
-
-    <insert id="batchInsertPisInfrSttsHs" parameterType="java.util.Map">
-    <![CDATA[
-        INSERT INTO TB_PIS_INFR_STTS_HS (
-            CRTN_DT,
-            PIS_NMBR,
-            CMNC_STTS_CD
-        )
-        VALUES (
-                   #{UPDT_DT},
-                   #{PIS_NMBR},
-                   #{CMNC_STTS_CD}
-               )
-        ]]>
-    </insert>
-
 </mapper>

+ 99 - 0
src/main/resources/mybatis/mapper/PrkPlceMapper.xml

@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace ="com.its.pis.dao.mapper.PrkPlceMapper">
+
+    <select id="selectAll" resultType="com.its.pis.entity.TbPrkPlce">
+    <![CDATA[
+        SELECT A.PRK_PLCE_NMBR      AS PRK_PLCE_NMBR,
+               A.PRK_PLCE_MANAGE_NO AS PRK_PLCE_MANAGE_NO,
+               A.PRK_PLCE_NM        AS PRK_PLCE_NM,
+               A.PIS_TYPE           AS PIS_TYPE
+        FROM TB_PRK_PLCE A
+        WHERE A.PIS_TYPE != 'N'
+        ORDER BY A.PRK_PLCE_NMBR
+    ]]>
+    </select>
+
+    <update id="updatePrltCtlrStts" parameterType="com.its.pis.entity.TbPrkPlceStts">
+    <![CDATA[
+		MERGE INTO TB_PRK_PLCE_STTS L
+		USING (SELECT #{stts.PRK_PLCE_NMBR} AS PRK_PLCE_NMBR,
+		              #{stts.UPDT_DT} 	 	 AS UPDT_DT,
+		              #{stts.CMNC_STTS_CD}   AS CMNC_STTS_CD
+		         FROM DUAL) M
+		        ON (L.PRK_PLCE_NMBR = M.PRK_PLCE_NMBR)
+		WHEN MATCHED THEN
+		   UPDATE SET L.UPDT_DT      = M.UPDT_DT,
+		              L.CMNC_STTS_CD = M.CMNC_STTS_CD
+		WHEN NOT MATCHED THEN
+		   INSERT (
+                   PRK_PLCE_NMBR,
+		           UPDT_DT,
+                   CMNC_STTS_CD
+		          )
+		   VALUES (
+		           M.PRK_PLCE_NMBR,
+		           M.UPDT_DT,
+		           M.CMNC_STTS_CD
+		          )
+    ]]>
+    </update>
+
+    <insert id="insertPrltCtlrSttsHs" parameterType="com.its.pis.entity.TbPrkPlceStts">
+    <![CDATA[
+          INSERT INTO TB_PRK_PLCE_STTS_HS (
+		          CRTN_DT,
+                  PRK_PLCE_NMBR,
+                  CMNC_STTS_CD
+		         )
+          VALUES (
+				  #{stts.UPDT_DT},
+				  #{stts.PRK_PLCE_NMBR},
+				  #{stts.CMNC_STTS_CD}
+                 )
+    ]]>
+    </insert>
+
+    <update id="updatePrkPlceRlTime" parameterType="com.its.pis.entity.TbPrkPlceRt">
+    <![CDATA[
+        MERGE INTO TB_PRK_PLCE_RT L
+            USING (SELECT
+                       #{obj.prkPlceNmbr}           AS PRK_PLCE_NMBR,
+                       #{obj.dataColctTime}         AS DATA_COLCT_TIME,
+                       #{obj.parkingCgsSttus}       AS PARKING_CGS_STTUS,
+                       #{obj.prkCmprtCo}            AS PRK_CMPRT_CO,
+                       #{obj.remndrPrkCmprtCo}      AS REMNDR_PRK_CMPRT_CO,
+                       #{obj.prkResveAvailCmprtCo}  AS PRK_RESVE_AVAIL_CMPRT_CO,
+                       #{obj.partclrMatter}         AS PARTCLR_MATTER
+                   FROM DUAL) M
+            ON (L.PRK_PLCE_NMBR = M.PRK_PLCE_NMBR)
+            WHEN MATCHED THEN
+                UPDATE SET
+                    L.DATA_COLCT_TIME          = M.DATA_COLCT_TIME,
+                    L.PARKING_CGS_STTUS        = M.PARKING_CGS_STTUS,
+                    L.PRK_CMPRT_CO             = M.PRK_CMPRT_CO,
+                    L.REMNDR_PRK_CMPRT_CO      = M.REMNDR_PRK_CMPRT_CO,
+                    L.PRK_RESVE_AVAIL_CMPRT_CO = M.PRK_RESVE_AVAIL_CMPRT_CO,
+                    L.PARTCLR_MATTER           = M.PARTCLR_MATTER
+            WHEN NOT MATCHED THEN
+                INSERT (
+                        PRK_PLCE_NMBR,
+                        DATA_COLCT_TIME,
+                        PARKING_CGS_STTUS,
+                        PRK_CMPRT_CO,
+                        REMNDR_PRK_CMPRT_CO,
+                        PRK_RESVE_AVAIL_CMPRT_CO,
+                        PARTCLR_MATTER )
+                    VALUES (
+                               M.PRK_PLCE_NMBR,
+                               M.DATA_COLCT_TIME,
+                               M.PARKING_CGS_STTUS,
+                               M.PRK_CMPRT_CO,
+                               M.REMNDR_PRK_CMPRT_CO,
+                               M.PRK_RESVE_AVAIL_CMPRT_CO,
+                               M.PARTCLR_MATTER )
+        ]]>
+    </update>
+
+</mapper>

+ 55 - 0
src/main/resources/mybatis/mapper/batchPisInfrMapper.xml

@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace ="com.its.pis.mapper.batchPisInfrMapper">
+
+    <update id="batchUpdatePisInfrStts" parameterType="java.util.Map">
+    <![CDATA[
+        MERGE INTO TB_PIS_INFR_STTS L
+            USING (SELECT #{PIS_NMBR}     AS PIS_NMBR,
+                          #{UPDT_DT}      AS UPDT_DT,
+                          #{CMNC_STTS_CD} AS CMNC_STTS_CD,
+                          #{CONN_DT}      AS CONN_DT,
+                          #{DIS_CONN_DT}  AS DIS_CONN_DT
+                   FROM DUAL) M
+            ON (L.PIS_NMBR = M.PIS_NMBR)
+            WHEN MATCHED THEN
+                UPDATE SET
+                    L.UPDT_DT      = M.UPDT_DT,
+                    L.CMNC_STTS_CD = M.CMNC_STTS_CD,
+                    L.CONN_DT      = M.CONN_DT,
+                    L.DIS_CONN_DT  = M.DIS_CONN_DT
+            WHEN NOT MATCHED THEN
+                INSERT (
+                        PIS_NMBR,
+                        UPDT_DT,
+                        CMNC_STTS_CD,
+                        CONN_DT,
+                        DIS_CONN_DT
+                    )
+                    VALUES (
+                               M.PIS_NMBR,
+                               M.UPDT_DT,
+                               M.CMNC_STTS_CD,
+                               M.CONN_DT,
+                               NULL
+                           )
+        ]]>
+    </update>
+
+    <insert id="batchInsertPisInfrSttsHs" parameterType="java.util.Map">
+    <![CDATA[
+        INSERT INTO TB_PIS_INFR_STTS_HS (
+            CRTN_DT,
+            PIS_NMBR,
+            CMNC_STTS_CD
+        )
+        VALUES (
+                   #{UPDT_DT},
+                   #{PIS_NMBR},
+                   #{CMNC_STTS_CD}
+               )
+        ]]>
+    </insert>
+
+</mapper>

+ 3 - 96
src/main/resources/mybatis/mapper/PrltCtlrMapper.xml → src/main/resources/mybatis/mapper/batchPrkPlceMapper.xml

@@ -1,61 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 
-<mapper namespace ="com.its.pis.dao.mapper.PrltCtlrMapper">
+<mapper namespace ="com.its.pis.mapper.batchPrkPlceMapper">
 
-    <select id="selectAll" resultType="com.its.pis.entity.TbPrkPlce">
-    <![CDATA[
-        SELECT A.PRK_PLCE_NMBR      AS PRK_PLCE_NMBR,
-               A.PRK_PLCE_MANAGE_NO AS PRK_PLCE_MANAGE_NO,
-               A.PRK_PLCE_NM        AS PRK_PLCE_NM,
-               A.PIS_TYPE           AS PIS_TYPE
-        FROM TB_PRK_PLCE A
-        WHERE A.PIS_TYPE != 'N'
-        ORDER BY A.PRK_PLCE_NMBR
-    ]]>
-    </select>
-
-    <update id="updatePrltCtlrStts" parameterType="com.its.pis.entity.TbPrkPlceStts">
-    <![CDATA[
-		MERGE INTO TB_PRK_PLCE_STTS L
-		USING (SELECT #{stts.PRK_PLCE_NMBR} AS PRK_PLCE_NMBR,
-		              #{stts.UPDT_DT} 	 	 AS UPDT_DT,
-		              #{stts.CMNC_STTS_CD}   AS CMNC_STTS_CD
-		         FROM DUAL) M
-		        ON (L.PRK_PLCE_NMBR = M.PRK_PLCE_NMBR)
-		WHEN MATCHED THEN
-		   UPDATE SET L.UPDT_DT      = M.UPDT_DT,
-		              L.CMNC_STTS_CD = M.CMNC_STTS_CD
-		WHEN NOT MATCHED THEN
-		   INSERT (
-                   PRK_PLCE_NMBR,
-		           UPDT_DT,
-                   CMNC_STTS_CD
-		          )
-		   VALUES (
-		           M.PRK_PLCE_NMBR,
-		           M.UPDT_DT,
-		           M.CMNC_STTS_CD
-		          )
-    ]]>
-    </update>
-
-    <insert id="insertPrltCtlrSttsHs" parameterType="com.its.pis.entity.TbPrkPlceStts">
-    <![CDATA[
-          INSERT INTO TB_PRK_PLCE_STTS_HS (
-		          CRTN_DT,
-                  PRK_PLCE_NMBR,
-                  CMNC_STTS_CD
-		         )
-          VALUES (
-				  #{stts.UPDT_DT},
-				  #{stts.PRK_PLCE_NMBR},
-				  #{stts.CMNC_STTS_CD}
-                 )
-    ]]>
-    </insert>
-
-    <update id="batchUpdatePrltCtlrStts" parameterType="java.util.Map">
+    <update id="batchUpdatePrkPlceStts" parameterType="java.util.Map">
     <![CDATA[
         MERGE INTO TB_PRK_PLCE_STTS L
             USING (SELECT #{PRK_PLCE_NMBR}  AS PRK_PLCE_NMBR,
@@ -81,7 +29,7 @@
         ]]>
     </update>
 
-    <insert id="batchInsertPrltCtlrSttsHs" parameterType="java.util.Map">
+    <insert id="batchInsertPrkPlceSttsHs" parameterType="java.util.Map">
     <![CDATA[
         INSERT INTO TB_PRK_PLCE_STTS_HS (
             CRTN_DT,
@@ -96,47 +44,6 @@
         ]]>
     </insert>
 
-    <update id="updatePrkPlceRlTime" parameterType="com.its.pis.entity.TbPrkPlceRt">
-    <![CDATA[
-        MERGE INTO TB_PRK_PLCE_RT L
-            USING (SELECT
-                       #{obj.prkPlceNmbr}           AS PRK_PLCE_NMBR,
-                       #{obj.dataColctTime}         AS DATA_COLCT_TIME,
-                       #{obj.parkingCgsSttus}       AS PARKING_CGS_STTUS,
-                       #{obj.prkCmprtCo}            AS PRK_CMPRT_CO,
-                       #{obj.remndrPrkCmprtCo}      AS REMNDR_PRK_CMPRT_CO,
-                       #{obj.prkResveAvailCmprtCo}  AS PRK_RESVE_AVAIL_CMPRT_CO,
-                       #{obj.partclrMatter}         AS PARTCLR_MATTER
-                   FROM DUAL) M
-            ON (L.PRK_PLCE_NMBR = M.PRK_PLCE_NMBR)
-            WHEN MATCHED THEN
-                UPDATE SET
-                    L.DATA_COLCT_TIME          = M.DATA_COLCT_TIME,
-                    L.PARKING_CGS_STTUS        = M.PARKING_CGS_STTUS,
-                    L.PRK_CMPRT_CO             = M.PRK_CMPRT_CO,
-                    L.REMNDR_PRK_CMPRT_CO      = M.REMNDR_PRK_CMPRT_CO,
-                    L.PRK_RESVE_AVAIL_CMPRT_CO = M.PRK_RESVE_AVAIL_CMPRT_CO,
-                    L.PARTCLR_MATTER           = M.PARTCLR_MATTER
-            WHEN NOT MATCHED THEN
-                INSERT (
-                        PRK_PLCE_NMBR,
-                        DATA_COLCT_TIME,
-                        PARKING_CGS_STTUS,
-                        PRK_CMPRT_CO,
-                        REMNDR_PRK_CMPRT_CO,
-                        PRK_RESVE_AVAIL_CMPRT_CO,
-                        PARTCLR_MATTER )
-                    VALUES (
-                               M.PRK_PLCE_NMBR,
-                               M.DATA_COLCT_TIME,
-                               M.PARKING_CGS_STTUS,
-                               M.PRK_CMPRT_CO,
-                               M.REMNDR_PRK_CMPRT_CO,
-                               M.PRK_RESVE_AVAIL_CMPRT_CO,
-                               M.PARTCLR_MATTER )
-        ]]>
-    </update>
-
     <update id="batchUpdateRlTimeFlr" parameterType="java.util.Map">
     <![CDATA[
         MERGE INTO TB_PRK_PLCE_FLR L