This commit is contained in:
@@ -19,7 +19,8 @@ public class EAILogDto {
|
||||
|
||||
public EAILogDto(EAILogId eaiLogId, String trackasiskey1ctnt, String trackasiskey2ctnt, String keymgtmsgctnt,
|
||||
String eaisvcname, String extbizcd, String refkey, String clientname,
|
||||
String orgname, String msgprcssyms, String companycode, String eaierrctnt, String eaiSvcDesc) {
|
||||
String orgname, String msgprcssyms, String companycode, String eaierrctnt,
|
||||
String eaierrcd, String eaiSvcDesc) {
|
||||
this.eaiLog = new EAILog();
|
||||
this.eaiLog.setId(eaiLogId);
|
||||
this.eaiLog.setTrackasiskey1ctnt(trackasiskey1ctnt);
|
||||
@@ -33,6 +34,7 @@ public class EAILogDto {
|
||||
this.eaiLog.setMsgprcssyms(msgprcssyms);
|
||||
this.eaiLog.setCompanycode(companycode);
|
||||
this.eaiLog.setEaierrctnt(eaierrctnt);
|
||||
this.eaiLog.setEaierrcd(eaierrcd);
|
||||
this.eaiSvcDesc = eaiSvcDesc;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.eactive.eai.data.entity.onl.logger.EAILogId;
|
||||
import com.eactive.eai.data.entity.onl.logger.QEAILog;
|
||||
import com.eactive.eai.data.entity.onl.message.QEAIMessageEntity;
|
||||
import com.eactive.eai.rms.data.entity.onl.bzwkdstcd.QUserBusiness;
|
||||
import com.eactive.eai.rms.data.entity.onl.code.CodeService;
|
||||
import com.querydsl.core.Tuple;
|
||||
import com.querydsl.core.types.Projections;
|
||||
import com.querydsl.core.types.dsl.BooleanExpression;
|
||||
@@ -12,6 +13,7 @@ import com.querydsl.core.types.dsl.EntityPathBase;
|
||||
import com.querydsl.jpa.impl.JPAQuery;
|
||||
import com.querydsl.jpa.impl.JPAQueryFactory;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageImpl;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
@@ -27,8 +29,15 @@ import java.util.stream.Collectors;
|
||||
@Repository
|
||||
public class EAILogRepositoryImpl implements EAILogRepository {
|
||||
|
||||
// 업무(BIZ) 오류코드 그룹 - 해당 코드는 시스템 에러가 아닌 정상적인 업무 거부 응답이므로
|
||||
// "에러로그" 검색 조건에서는 제외한다.
|
||||
private static final String ERRCODE_BIZ_GROUP = "ERRCODE_BIZ";
|
||||
|
||||
private EntityManager em;
|
||||
|
||||
|
||||
@Autowired
|
||||
private CodeService codeService;
|
||||
|
||||
@PersistenceContext
|
||||
public void setEm(EntityManager em) {
|
||||
this.em = em;
|
||||
@@ -57,7 +66,7 @@ public class EAILogRepositoryImpl implements EAILogRepository {
|
||||
qeaiLog.id, qeaiLog.trackasiskey1ctnt, qeaiLog.trackasiskey2ctnt, qeaiLog.keymgtmsgctnt,
|
||||
qeaiLog.eaisvcname, qeaiLog.extbizcd, qeaiLog.refkey, qeaiLog.clientname,
|
||||
qeaiLog.orgname, qeaiLog.msgprcssyms, qeaiLog.companycode, qeaiLog.eaierrctnt,
|
||||
qeaiMessageEntity.eaisvcdesc))
|
||||
qeaiLog.eaierrcd, qeaiMessageEntity.eaisvcdesc))
|
||||
.from(entityPathBase)
|
||||
.leftJoin(qeaiMessageEntity)
|
||||
.on(qeaiLog.eaisvcname.eq(qeaiMessageEntity.eaisvcname))
|
||||
@@ -195,8 +204,18 @@ public class EAILogRepositoryImpl implements EAILogRepository {
|
||||
.between(eaiLogSearch.getSearchStartTime(), eaiLogSearch.getSearchEndTime()))
|
||||
.where(
|
||||
qeaiLog.eaierrcd.trim().isNotEmpty()
|
||||
)
|
||||
.distinct();
|
||||
);
|
||||
|
||||
// ERRCODE_BIZ(업무 오류) 코드는 시스템 에러가 아니므로 "에러로그" 검색 대상에서 제외
|
||||
List<String> bizErrCodes = codeService.findByIdCodegroup(ERRCODE_BIZ_GROUP).stream()
|
||||
.map(code -> code.getId().getCode())
|
||||
.collect(Collectors.toList());
|
||||
|
||||
if (!bizErrCodes.isEmpty()) {
|
||||
errorInstancesSubQuery.where(qeaiLog.eaierrcd.notIn(bizErrCodes));
|
||||
}
|
||||
|
||||
errorInstancesSubQuery.distinct();
|
||||
|
||||
// 찾은 eaisevrinstncname에 해당하는 모든 로그 조회
|
||||
query.where(qeaiLog.id.eaisvcserno.in(errorInstancesSubQuery));
|
||||
|
||||
@@ -126,9 +126,9 @@ public class ApiStatsHourlyAggregationJob implements Job {
|
||||
" , API_NAME, GW_INSTANCE_ID, BIZ_DIV_CODE, NVL(A.CLIENT_ID, 'NONE')" +
|
||||
" , INBOUND_ADAPTER, OUTBOUND_ADAPTER" +
|
||||
" , COUNT(EAISVCSERNO)" +
|
||||
" , SUM(CASE WHEN A.ERROR_CODE IS NULL AND E400 IS NOT NULL THEN 1 ELSE 0 END)" +
|
||||
" , SUM(CASE WHEN (A.ERROR_CODE IS NULL OR C.CODE IS NOT NULL) AND E400 IS NOT NULL THEN 1 ELSE 0 END)" +
|
||||
" , SUM(CASE WHEN B.CODE IS NOT NULL THEN 1 ELSE 0 END)" +
|
||||
" , SUM(CASE WHEN (A.E400 IS NULL OR A.ERROR_CODE IS NOT NULL) AND B.CODE IS NULL THEN 1 ELSE 0 END)" +
|
||||
" , SUM(CASE WHEN (A.E400 IS NULL OR A.ERROR_CODE IS NOT NULL) AND B.CODE IS NULL AND C.CODE IS NULL THEN 1 ELSE 0 END)" +
|
||||
" , 0, 0, 0, 0" +
|
||||
" , TRUNC(AVG(RESP_TIME)), MIN(RESP_TIME), MAX(RESP_TIME), 0, 0" +
|
||||
" FROM (" +
|
||||
@@ -145,10 +145,11 @@ public class ApiStatsHourlyAggregationJob implements Job {
|
||||
" ) AS RESP_TIME" +
|
||||
" , MAX(CASE WHEN LOGPRCSSSERNO = '400' THEN LOGPRCSSSERNO ELSE '' END) AS E400" +
|
||||
" , MAX(EAIERRCD) AS ERROR_CODE" +
|
||||
" FROM " + logTableName +
|
||||
" FROM " + logTableName + " A " +
|
||||
" WHERE MSGDPSTYMS >= :rangeStart AND MSGDPSTYMS < :rangeEnd" +
|
||||
" GROUP BY EAISVCSERNO" +
|
||||
" ) A LEFT OUTER JOIN TSEAICM20 B ON A.ERROR_CODE = B.CODE AND B.CODEGROUP = 'ERRCODE_TIMEOUT' AND B.USEYN = 'Y' " +
|
||||
" LEFT OUTER JOIN TSEAICM20 C ON A.ERROR_CODE = C.CODE AND C.CODEGROUP = 'ERRCODE_BIZ' AND C.USEYN = 'Y' " +
|
||||
" GROUP BY SUBSTR(DT,1,10), API_NAME, GW_INSTANCE_ID, BIZ_DIV_CODE, NVL(A.CLIENT_ID, 'NONE')" +
|
||||
" , INBOUND_ADAPTER, OUTBOUND_ADAPTER";
|
||||
|
||||
|
||||
@@ -426,10 +426,14 @@ public class DbTrackingService extends BaseService {
|
||||
List<ComboVo> listLogPrcssSerno = comboService
|
||||
.getFromCode("LOGPRCSSSERNO_TYPE");
|
||||
|
||||
// 업무(BIZ) 오류코드 목록 - 그리드에서 별도 배경색으로 표시하기 위함
|
||||
List<ComboVo> bizErrCodeList = comboService.getFromCode("ERRCODE_BIZ");
|
||||
|
||||
Map<String, List<ComboVo>> map = new HashMap<>();
|
||||
map.put("eaiBizList", bizList);
|
||||
map.put("extBizList", extBizList);
|
||||
map.put("logPrcssSernoList", listLogPrcssSerno);
|
||||
map.put("bizErrCodeList", bizErrCodeList);
|
||||
|
||||
return map;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user