diff --git a/pom.xml b/pom.xml
index ac2922d..6c6b41c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,6 +37,12 @@
3.0.0
+
+ org.projectlombok
+ lombok
+ true
+
+
kr.gmt.so
state-spring-boot-starter
diff --git a/src/main/java/kr/gmtc/gw/eyegw/controller/MainController.java b/src/main/java/kr/gmtc/gw/eyegw/controller/MainController.java
index 5abe8d9..cbeb60a 100644
--- a/src/main/java/kr/gmtc/gw/eyegw/controller/MainController.java
+++ b/src/main/java/kr/gmtc/gw/eyegw/controller/MainController.java
@@ -28,6 +28,7 @@ import kr.gmtc.gw.comp.thread.CustomThread;
import kr.gmtc.gw.eyegw.config.ServiceConfig;
import kr.gmtc.gw.eyegw.db1.EaiIfCheckService;
import kr.gmtc.gw.eyegw.db1.EaiProcService;
+import kr.gmtc.gw.eyegw.satats.IntrfcRecvStatsManager;
@Component("controller")
public class MainController implements ApplicationListener {
@@ -83,6 +84,8 @@ public class MainController implements ApplicationListener {
private boolean swBeforeStatus = true;
+ private IntrfcRecvStatsManager recvStatsMgr;
+
/** 초기화 실패 시 프로그램 종료 */
// private void systemError() {
// // logger.writeLevelLog("-- FAIL TO STARTUP --", LogLevelType.LOG_ERROR, "AllLog");
@@ -110,6 +113,8 @@ public class MainController implements ApplicationListener {
public void initialize() {
try {
+ recvStatsMgr = new IntrfcRecvStatsManager();
+
// 업무 스래드(프로시저 호출)
listCustomThreads = new ArrayList();
@@ -238,11 +243,21 @@ public class MainController implements ApplicationListener {
if( Integer.parseInt(sCnt) > 0 ) {
LocalDateTime dt_before = LocalDateTime.now();
+
+ Map paramMap = new HashMap<>();
+
+ paramMap.put("ar_dt", "%");
+ paramMap.put("ret_minDt", "");
+ paramMap.put("ret_procCnt", 0);
- eaiProcService.callProcArtsArr();
+ //DB 프로시져 Call
+ eaiProcService.callProcArtsArr(paramMap);
Duration diff = Duration.between(dt_before, LocalDateTime.now());
logger.info("callProcArtsArr Call " + sCnt + "건 " + diff.toMillis() + "msec");
+
+ // 수신(처리) 건수 집계 -> ELK전송용
+ recvStatsMgr.writeStatsLog_KST((String) paramMap.get("ret_minDt"), "103", "ARTS_ARR", (int) paramMap.get("ret_procCnt"), 0);
}
// Thread.sleep(3000);
@@ -261,10 +276,19 @@ public class MainController implements ApplicationListener {
LocalDateTime dt_before = LocalDateTime.now();
- eaiProcService.callProcArtsDep();
+ Map paramMap = new HashMap<>();
+
+ paramMap.put("ar_dt", "%");
+ paramMap.put("ret_minDt", "");
+ paramMap.put("ret_procCnt", 0);
+
+ eaiProcService.callProcArtsDep(paramMap);
Duration diff = Duration.between(dt_before, LocalDateTime.now());
logger.info("callProcArtsDep Call " + sCnt + "건 " + diff.toMillis() + "msec");
+
+ // 수신(처리) 건수 집계 -> ELK전송용
+ recvStatsMgr.writeStatsLog_KST((String) paramMap.get("ret_minDt"), "104", "ARTS_DEP", (int) paramMap.get("ret_procCnt"), 0);
}
@@ -284,10 +308,19 @@ public class MainController implements ApplicationListener {
LocalDateTime dt_before = LocalDateTime.now();
- eaiProcService.callProcAcdmArr();
+ Map paramMap = new HashMap<>();
+
+ paramMap.put("ar_dt", "%");
+ paramMap.put("ret_minDt", "");
+ paramMap.put("ret_procCnt", 0);
+
+ eaiProcService.callProcAcdmArr(paramMap);
Duration diff = Duration.between(dt_before, LocalDateTime.now());
logger.info("callProcAcdmArr Call " + sCnt + "건 " + diff.toMillis() + "msec");
+
+ // 수신(처리) 건수 집계 -> ELK전송용
+ recvStatsMgr.writeStatsLog_KST((String) paramMap.get("ret_minDt"), "101", "ACDM_ARR", (int) paramMap.get("ret_procCnt"), 0);
}
// Thread.sleep(3000);
@@ -305,10 +338,19 @@ public class MainController implements ApplicationListener {
LocalDateTime dt_before = LocalDateTime.now();
- eaiProcService.callProcAcdmDep();
+ Map paramMap = new HashMap<>();
+
+ paramMap.put("ar_dt", "%");
+ paramMap.put("ret_minDt", "");
+ paramMap.put("ret_procCnt", 0);
+
+ eaiProcService.callProcAcdmDep(paramMap);
Duration diff = Duration.between(dt_before, LocalDateTime.now());
logger.info("callProcAcdmDep Call " + sCnt + "건 " + diff.toMillis() + "msec");
+
+ // 수신(처리) 건수 집계 -> ELK전송용
+ recvStatsMgr.writeStatsLog_KST((String) paramMap.get("ret_minDt"), "102", "ACDM_DEP", (int) paramMap.get("ret_procCnt"), 0);
}
// Thread.sleep(3000);
@@ -326,10 +368,19 @@ public class MainController implements ApplicationListener {
LocalDateTime dt_before = LocalDateTime.now();
- eaiProcService.callProcGam();
+ Map paramMap = new HashMap<>();
+
+ paramMap.put("ar_dt", "%");
+ paramMap.put("ret_minDt", "");
+ paramMap.put("ret_procCnt", 0);
+
+ eaiProcService.callProcGam(paramMap);
Duration diff = Duration.between(dt_before, LocalDateTime.now());
logger.info("callProcGam Call " + sCnt + "건 " + diff.toMillis() + "msec");
+
+ // 수신(처리) 건수 집계 -> ELK전송용
+ recvStatsMgr.writeStatsLog_KST((String) paramMap.get("ret_minDt"), "105", "GAM", (int) paramMap.get("ret_procCnt"), 0);
}
// Thread.sleep(3000);
@@ -348,10 +399,19 @@ public class MainController implements ApplicationListener {
LocalDateTime dt_before = LocalDateTime.now();
- eaiProcService.callProcAmos();
+ Map paramMap = new HashMap<>();
+
+ paramMap.put("ar_dt", "%");
+ paramMap.put("ret_minDt", "");
+ paramMap.put("ret_procCnt", 0);
+
+ eaiProcService.callProcAmos(paramMap);
Duration diff = Duration.between(dt_before, LocalDateTime.now());
logger.info("callProcAmos Call " + sCnt + "건 " + diff.toMillis() + "msec");
+
+ // 수신(처리) 건수 집계 -> ELK전송용
+ recvStatsMgr.writeStatsLog_KST((String) paramMap.get("ret_minDt"), "106", "AMOS", (int) paramMap.get("ret_procCnt"), 0);
}
// Thread.sleep(3000);
@@ -369,10 +429,19 @@ public class MainController implements ApplicationListener {
LocalDateTime dt_before = LocalDateTime.now();
- eaiProcService.callProcNotam();
+ Map paramMap = new HashMap<>();
+
+ paramMap.put("ar_dt", "%");
+ paramMap.put("ret_minDt", "");
+ paramMap.put("ret_procCnt", 0);
+
+ eaiProcService.callProcNotam(paramMap);
Duration diff = Duration.between(dt_before, LocalDateTime.now());
logger.info("callProcNotam Call " + sCnt + "건 " + diff.toMillis() + "msec");
+
+ // 수신(처리) 건수 집계 -> ELK전송용
+ recvStatsMgr.writeStatsLog_KST((String) paramMap.get("ret_minDt"), "107", "NOTAM", (int) paramMap.get("ret_procCnt"), 0);
}
// Thread.sleep(3000);
diff --git a/src/main/java/kr/gmtc/gw/eyegw/db1/EaiProcMapper.java b/src/main/java/kr/gmtc/gw/eyegw/db1/EaiProcMapper.java
index 8829a1b..918f8ea 100644
--- a/src/main/java/kr/gmtc/gw/eyegw/db1/EaiProcMapper.java
+++ b/src/main/java/kr/gmtc/gw/eyegw/db1/EaiProcMapper.java
@@ -1,16 +1,19 @@
package kr.gmtc.gw.eyegw.db1;
+import java.util.Map;
+
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface EaiProcMapper {
- void callProcArtsArr();
- void callProcArtsDep();
- void callProcAcdmArr();
- void callProcAcdmDep();
- void callProcGam();
+ void callProcArtsArr(Map parameterMap);
+ void callProcArtsDep(Map parameterMap);
+ void callProcAcdmArr(Map parameterMap);
+ void callProcAcdmDep(Map parameterMap);
+ void callProcGam(Map parameterMap);
- void callProcAmos();
- void callProcNotam();
+ void callProcAmos(Map parameterMap);
+ void callProcNotam(Map parameterMap);
+ void callProcAll(Map parameterMap);
}
diff --git a/src/main/java/kr/gmtc/gw/eyegw/db1/EaiProcService.java b/src/main/java/kr/gmtc/gw/eyegw/db1/EaiProcService.java
index 3d11bc0..be5187a 100644
--- a/src/main/java/kr/gmtc/gw/eyegw/db1/EaiProcService.java
+++ b/src/main/java/kr/gmtc/gw/eyegw/db1/EaiProcService.java
@@ -1,5 +1,7 @@
package kr.gmtc.gw.eyegw.db1;
+import java.util.Map;
+
import org.springframework.stereotype.Service;
@Service
@@ -10,45 +12,51 @@ public class EaiProcService {
this.ueaiProcMapper = ueaiProcMapper;
}
- public void callProcArtsArr() {
+ public void callProcArtsArr(Map parameterMap) {
- ueaiProcMapper.callProcArtsArr();
+ ueaiProcMapper.callProcArtsArr(parameterMap);
}
- public void callProcArtsDep() {
+ public void callProcArtsDep(Map parameterMap) {
- ueaiProcMapper.callProcArtsDep();
+ ueaiProcMapper.callProcArtsDep(parameterMap);
}
- public void callProcAcdmArr() {
+ public void callProcAcdmArr(Map parameterMap) {
- ueaiProcMapper.callProcAcdmArr();
+ ueaiProcMapper.callProcAcdmArr(parameterMap);
}
- public void callProcAcdmDep() {
+ public void callProcAcdmDep(Map parameterMap) {
- ueaiProcMapper.callProcAcdmDep();
+ ueaiProcMapper.callProcAcdmDep(parameterMap);
}
- public void callProcGam() {
+ public void callProcGam(Map parameterMap) {
- ueaiProcMapper.callProcGam();
+ ueaiProcMapper.callProcGam(parameterMap);
}
- public void callProcAmos() {
+ public void callProcAmos(Map parameterMap) {
- ueaiProcMapper.callProcAmos();
+ ueaiProcMapper.callProcAmos(parameterMap);
}
- public void callProcNotam() {
+ public void callProcNotam(Map parameterMap) {
- ueaiProcMapper.callProcNotam();
+ ueaiProcMapper.callProcNotam(parameterMap);
+
+ }
+
+ public void callProcAll(Map parameterMap) {
+
+ ueaiProcMapper.callProcAll(parameterMap);
}
diff --git a/src/main/java/kr/gmtc/gw/eyegw/satats/IntrfcRecvStatsManager.java b/src/main/java/kr/gmtc/gw/eyegw/satats/IntrfcRecvStatsManager.java
new file mode 100644
index 0000000..77bb718
--- /dev/null
+++ b/src/main/java/kr/gmtc/gw/eyegw/satats/IntrfcRecvStatsManager.java
@@ -0,0 +1,116 @@
+package kr.gmtc.gw.eyegw.satats;
+
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+public class IntrfcRecvStatsManager {
+
+ private Logger logger = LoggerFactory.getLogger("STATS");
+
+ ObjectMapper mapper = new ObjectMapper();
+
+ DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss.SSS");
+ DateFormat cnvDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
+
+ public IntrfcRecvStatsManager(){
+ }
+
+ public void writeStatsLog_KST(String strRecvDate, String strIntrfcId, String strIntrfcNm, int iRecvCo, int iParseCo){
+
+ IntrfcRecvStatsVO stsVO = new IntrfcRecvStatsVO();
+
+ stsVO.setIntrfc_dt(strRecvDate);
+ stsVO.setIntrfc_id(strIntrfcId);
+ stsVO.setIntrfc_nm(strIntrfcNm);
+ stsVO.setRecv_co(iRecvCo);
+ stsVO.setParse_co(iParseCo);
+
+ String cnvJsonString = "";
+
+ try {
+ cnvJsonString = mapper.writeValueAsString(stsVO);
+ } catch (JsonProcessingException e) {
+ e.printStackTrace();
+ }
+
+ logger.info(cnvJsonString);
+
+ }
+
+ public void writeStatsLog(String strRecvDate, String strIntrfcId, String strIntrfcNm, int iRecvCo, int iParseCo){
+
+ IntrfcRecvStatsVO stsVO = new IntrfcRecvStatsVO();
+
+ String strCnvDate = convertDate(strRecvDate);
+
+ stsVO.setIntrfc_dt(strCnvDate);
+ stsVO.setIntrfc_id(strIntrfcId);
+ stsVO.setIntrfc_nm(strIntrfcNm);
+ stsVO.setRecv_co(iRecvCo);
+ stsVO.setParse_co(iParseCo);
+
+ String cnvJsonString = "";
+
+ try {
+ cnvJsonString = mapper.writeValueAsString(stsVO);
+ } catch (JsonProcessingException e) {
+ e.printStackTrace();
+ }
+
+ logger.info(cnvJsonString);
+
+ }
+
+
+ private String convertDate(String p_strDate){
+
+ String strCnvDate = "";
+
+ DateFormat df;
+
+ Calendar cal = Calendar.getInstance();
+
+ if(p_strDate == null || p_strDate.equals("")){
+ strCnvDate = dateFormat.format(new Date());
+ }else{
+
+ // 1. 포멧 변경
+ // 2. UTC -> KST
+
+ if(p_strDate.length() > 18 ){
+ df = cnvDateFormat;
+ }else{
+ df = dateFormat;
+ }
+
+ Date cnvDate = null;
+
+ try {
+ cnvDate = df.parse(p_strDate);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+
+ cal.setTime(cnvDate);
+ cal.add(Calendar.HOUR_OF_DAY, 9);
+
+ cnvDate = new Date(cal.getTimeInMillis());
+
+ strCnvDate = dateFormat.format(cnvDate);
+ }
+
+
+ return strCnvDate;
+ }
+
+
+}
diff --git a/src/main/java/kr/gmtc/gw/eyegw/satats/IntrfcRecvStatsVO.java b/src/main/java/kr/gmtc/gw/eyegw/satats/IntrfcRecvStatsVO.java
new file mode 100644
index 0000000..c67942a
--- /dev/null
+++ b/src/main/java/kr/gmtc/gw/eyegw/satats/IntrfcRecvStatsVO.java
@@ -0,0 +1,16 @@
+package kr.gmtc.gw.eyegw.satats;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class IntrfcRecvStatsVO {
+
+ private String intrfc_dt;
+ private String intrfc_id;
+ private String intrfc_nm;
+ private int recv_co;
+ private int parse_co;
+
+}
diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml
index 9455c2c..0865f9d 100644
--- a/src/main/resources/logback-spring.xml
+++ b/src/main/resources/logback-spring.xml
@@ -100,6 +100,19 @@
+
+ ${LOG_PATH}${file.separator}STATS${file.separator}stats.log
+
+ %msg%n
+
+
+ ${LOG_PATH}${file.separator}STATS${file.separator}stats.%d{yyyy-MM-dd}.log
+
+ 30
+
+
+
+
+
+