This commit is contained in:
@@ -102,9 +102,15 @@ public class EAILogRepositoryImpl implements EAILogRepository {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(eaiLogSearch.getSearchGuid())) {
|
if (StringUtils.isNotBlank(eaiLogSearch.getSearchGuid())) {
|
||||||
query
|
query.where(qeaiLog.pguid.eq(eaiLogSearch.getSearchGuid()));
|
||||||
.where(qeaiLog.pguid.eq(eaiLogSearch.getSearchGuid()))
|
|
||||||
.where(qeaiLog.id.logprcssserno.eq(eaiLogSearch.getSearchLogPrcssSerno()));
|
// 처리단계(logprcssserno)를 명시적으로 선택한 경우에만 추가로 좁힌다.
|
||||||
|
// 하나의 GUID는 처리단계(100/200/300/400)별로 여러 로그 행에 걸쳐 존재하므로,
|
||||||
|
// 선택하지 않았으면 해당 GUID의 모든 단계를 조회한다.
|
||||||
|
if (StringUtils.isNotBlank(eaiLogSearch.getSearchLogPrcssSerno())) {
|
||||||
|
query.where(qeaiLog.id.logprcssserno.eq(eaiLogSearch.getSearchLogPrcssSerno()));
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import org.springframework.data.domain.Pageable;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import com.eactive.eai.common.util.UUIDGenerator;
|
||||||
import com.eactive.eai.data.RollingTable;
|
import com.eactive.eai.data.RollingTable;
|
||||||
import com.eactive.eai.data.entity.onl.logger.EAILog;
|
import com.eactive.eai.data.entity.onl.logger.EAILog;
|
||||||
import com.eactive.eai.data.entity.onl.logger.EAILogId;
|
import com.eactive.eai.data.entity.onl.logger.EAILogId;
|
||||||
@@ -38,19 +39,36 @@ public class EAILogServiceImpl implements EAILogService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Page<EAILogDto> findAll(Pageable pageable, EAILogSearch eaiLogSearch) {
|
public Page<EAILogDto> findAll(Pageable pageable, EAILogSearch eaiLogSearch) {
|
||||||
long time = CommonUtil.getCalendar(eaiLogSearch.getSearchStartTime()).getTimeInMillis();
|
long time = CommonUtil.getCalendar(resolveTableDate(eaiLogSearch)).getTimeInMillis();
|
||||||
EAILog eaiLog = (EAILog) applicationContext.getBean(RollingTable.class, EAILog.class, time);
|
EAILog eaiLog = (EAILog) applicationContext.getBean(RollingTable.class, EAILog.class, time);
|
||||||
Page<EAILogDto> eaiLogDtos = eaiLogRepository.findAll(eaiLog.getClass(), pageable, eaiLogSearch);
|
Page<EAILogDto> eaiLogDtos = eaiLogRepository.findAll(eaiLog.getClass(), pageable, eaiLogSearch);
|
||||||
return eaiLogDtos;
|
return eaiLogDtos;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, Long> getTransactionCounts(EAILogSearch eaiLogSearch) {
|
public Map<String, Long> getTransactionCounts(EAILogSearch eaiLogSearch) {
|
||||||
long time = CommonUtil.getCalendar(eaiLogSearch.getSearchStartTime()).getTimeInMillis();
|
long time = CommonUtil.getCalendar(resolveTableDate(eaiLogSearch)).getTimeInMillis();
|
||||||
EAILog eaiLog = (EAILog) applicationContext.getBean(RollingTable.class, EAILog.class, time);
|
EAILog eaiLog = (EAILog) applicationContext.getBean(RollingTable.class, EAILog.class, time);
|
||||||
Map<String, Long> detailedCounts = eaiLogRepository.countDetailedTransactions(eaiLog.getClass(), eaiLogSearch);
|
Map<String, Long> detailedCounts = eaiLogRepository.countDetailedTransactions(eaiLog.getClass(), eaiLogSearch);
|
||||||
return detailedCounts;
|
return detailedCounts;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GUID로 조회하는 경우, 대상 롤링 테이블을 검색시간이 아닌 GUID 자체에 포함된 시각으로 특정한다.
|
||||||
|
// GUID 포맷/오프셋은 UUIDGenerator.GUID_DATE_POSITION 기준.
|
||||||
|
private String resolveTableDate(EAILogSearch eaiLogSearch) {
|
||||||
|
String guid = eaiLogSearch.getSearchGuid();
|
||||||
|
|
||||||
|
if (StringUtils.isNotBlank(guid)) {
|
||||||
|
int start = UUIDGenerator.GUID_DATE_POSITION;
|
||||||
|
int end = start + 14; // yyyyMMddHHmmss
|
||||||
|
|
||||||
|
if (guid.length() >= end) {
|
||||||
|
return guid.substring(start, end);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return eaiLogSearch.getSearchStartTime();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public EAILogDto getById(EAILogId eaiLogId) {
|
public EAILogDto getById(EAILogId eaiLogId) {
|
||||||
long time = CommonUtil.getCalendar(eaiLogId.getMsgdpstyms()).getTimeInMillis();
|
long time = CommonUtil.getCalendar(eaiLogId.getMsgdpstyms()).getTimeInMillis();
|
||||||
|
|||||||
Reference in New Issue
Block a user