OBP GwMetric 검증

This commit is contained in:
Rinjae
2025-12-10 15:12:42 +09:00
parent ada110ce91
commit a90b481120
8 changed files with 175 additions and 49 deletions
@@ -3,6 +3,7 @@ package com.eactive.eai.rms.data.entity.onl.apim.obp;
import com.eactive.eai.rms.common.base.SqlMapClientTemplateDao;
import org.springframework.stereotype.Repository;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -44,16 +45,19 @@ public class ObpGwMetricDAO extends SqlMapClientTemplateDao {
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("schemaId", schemaId);
paramMap.put("apiIds", apiIds);
paramMap.put("apiIds", new ArrayList<>(apiIds)); // Set → List 변환 (iBATIS iterate 호환)
List<Map<String, String>> resultList = this.template.queryForList("ObpGwMetric.selectApiNames", paramMap);
return resultList.stream()
.collect(Collectors.toMap(
m -> m.get("API_ID"),
m -> m.get("API_NAME"),
(v1, v2) -> v1
));
Map<String, String> result = new HashMap<>();
for (Map<String, String> m : resultList) {
String apiId = m.get("API_ID");
String apiName = m.get("API_NAME");
if (apiId != null && apiName != null) {
result.put(apiId, apiName);
}
}
return result;
}
/**
@@ -67,16 +71,19 @@ public class ObpGwMetricDAO extends SqlMapClientTemplateDao {
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("schemaId", schemaId);
paramMap.put("apiIds", apiIds);
paramMap.put("apiIds", new ArrayList<>(apiIds)); // Set → List 변환 (iBATIS iterate 호환)
List<Map<String, String>> resultList = this.template.queryForList("ObpGwMetric.selectUris", paramMap);
return resultList.stream()
.collect(Collectors.toMap(
m -> m.get("API_ID"),
m -> m.get("URI"),
(v1, v2) -> v1
));
Map<String, String> result = new HashMap<>();
for (Map<String, String> m : resultList) {
String apiId = m.get("API_ID");
String uri = m.get("URI");
if (apiId != null && uri != null) {
result.put(apiId, uri);
}
}
return result;
}
/**
@@ -89,15 +96,18 @@ public class ObpGwMetricDAO extends SqlMapClientTemplateDao {
}
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("orgIds", orgIds);
paramMap.put("orgIds", new ArrayList<>(orgIds)); // Set → List 변환 (iBATIS iterate 호환)
List<Map<String, String>> resultList = this.template.queryForList("ObpGwMetric.selectAppIdsByOrgIds", paramMap);
return resultList.stream()
.collect(Collectors.toMap(
m -> m.get("ORG_ID"),
m -> m.get("APP_ID"),
(v1, v2) -> v1
));
Map<String, String> result = new HashMap<>();
for (Map<String, String> m : resultList) {
String orgId = m.get("ORG_ID");
String appId = m.get("APP_ID");
if (orgId != null && appId != null) {
result.put(orgId, appId);
}
}
return result;
}
}
@@ -1,7 +1,6 @@
package com.eactive.eai.rms.data.entity.onl.apim.obp;
import com.eactive.apim.portal.obp.entity.ObpGwMetric;
import com.eactive.eai.rms.data.jpa.AbstractEMSDataSerivce;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -14,13 +13,19 @@ import java.util.Optional;
*/
@Service
@Transactional(transactionManager = "transactionManagerForEMS")
public class ObpGwMetricService extends AbstractEMSDataSerivce<ObpGwMetric, String, ObpGwMetricRepository> {
public class ObpGwMetricService {
private final ObpGwMetricRepository repository;
public ObpGwMetricService(ObpGwMetricRepository repository) {
this.repository = repository;
}
/**
* UPSERT 판단을 위한 기존 데이터 조회
*/
public Optional<ObpGwMetric> findByUniqueKey(LocalDateTime timeslice, String apiId, String clientId, String hostname, String orgId) {
return getRepository().findByTimesliceAndApiIdAndClientIdAndHostnameAndOrgId(
return repository.findByTimesliceAndApiIdAndClientIdAndHostnameAndOrgId(
timeslice, apiId, clientId, hostname, orgId);
}
@@ -28,27 +33,27 @@ public class ObpGwMetricService extends AbstractEMSDataSerivce<ObpGwMetric, Stri
* 특정 시간대의 모든 GwMetric 데이터 조회
*/
public List<ObpGwMetric> findByTimeslice(LocalDateTime timeslice) {
return getRepository().findByTimeslice(timeslice);
return repository.findByTimeslice(timeslice);
}
/**
* 특정 시간 범위의 GwMetric 데이터 조회
*/
public List<ObpGwMetric> findByTimesliceBetween(LocalDateTime startTime, LocalDateTime endTime) {
return getRepository().findByTimesliceBetween(startTime, endTime);
return repository.findByTimesliceBetween(startTime, endTime);
}
/**
* 엔티티 저장 (INSERT 또는 UPDATE)
*/
public ObpGwMetric save(ObpGwMetric entity) {
return getRepository().save(entity);
return repository.save(entity);
}
/**
* 엔티티 목록 저장
*/
public List<ObpGwMetric> saveAll(List<ObpGwMetric> entities) {
return getRepository().saveAll(entities);
return repository.saveAll(entities);
}
}
@@ -45,7 +45,7 @@ public class ObpGwMetricVO {
if (timeslice == null || timeslice.isEmpty()) {
return null;
}
// yyyyMMddHH0000000 형식에서 앞 10자리(yyyyMMddHH)만 사용
// "yyyyMMddHH0000000" 형식에서 앞 10자리(yyyyMMddHH)만 사용
String dateTimeStr = timeslice.substring(0, 10) + "0000";
return LocalDateTime.parse(dateTimeStr, DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
}