|
@@ -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 핸들러를 실행시킨다.
|
|
|
*/
|