This commit is contained in:
@@ -24,6 +24,7 @@
|
||||
var roleString = "<%=SessionManager.getRoleIdString(request)%>";
|
||||
let totalLogs = 0;
|
||||
let displayedLogs = 0;
|
||||
var bizErrCodeSet = new Set(); // ERRCODE_BIZ(업무 오류) 코드 목록 - 그리드 배경색 구분용
|
||||
|
||||
function adminChk() {
|
||||
var arrRoleID = roleString.split(',');
|
||||
@@ -106,6 +107,8 @@
|
||||
new makeOptions("CODE", "NAME").setObj($("select[name=searchExtBizCd]")).setNoValueInclude(true).setNoValue("", "전체").setData(json.extBizList).setFormat(codeName3OptionFormat).rendering();
|
||||
new makeOptions("CODE", "NAME").setObj($("select[name=searchLogPrcssSerno]")).setNoValueInclude(true).setNoValue("", "전체").setData(json.logPrcssSernoList).rendering();
|
||||
|
||||
bizErrCodeSet = new Set((json.bizErrCodeList || []).map(function (c) { return c.CODE; }));
|
||||
|
||||
setSearchable("searchEaiBzwkDstcd"); // 콤보에 searchable 설정
|
||||
setSearchable("searchExtBizCd");
|
||||
|
||||
@@ -311,7 +314,8 @@
|
||||
'<%=localeMessage.getString("tracking.companyitcontactname")%>',
|
||||
'<%=localeMessage.getString("tracking.companyitcontacttelno")%>',
|
||||
'<%=localeMessage.getString("tracking.itcontactpointperson1")%>',
|
||||
'<%=localeMessage.getString("tracking.bzwkcontactperson")%>'
|
||||
'<%=localeMessage.getString("tracking.bzwkcontactperson")%>',
|
||||
'EAIERRCD'
|
||||
],
|
||||
colModel: [
|
||||
{name: 'EAISVCSERNO', hidden: true},
|
||||
@@ -341,7 +345,8 @@
|
||||
{name: 'COMPANYITCONTACTNAME', align: 'left', width: '110', hidden: true},
|
||||
{name: 'COMPANYITCONTACTTELNO', align: 'left', width: '120', hidden: true},
|
||||
{name: 'ITCONTACTPOINTPERSON1', align: 'left', width: '120', hidden: true},
|
||||
{name: 'BZWKCONTACTPERSON', align: 'left', width: '120', hidden: true}
|
||||
{name: 'BZWKCONTACTPERSON', align: 'left', width: '120', hidden: true},
|
||||
{name: 'EAIERRCD', hidden: true}
|
||||
],
|
||||
jsonReader: {
|
||||
repeatitems: false
|
||||
@@ -378,7 +383,7 @@
|
||||
|
||||
},
|
||||
loadComplete: function (d) {
|
||||
$("#grid").tuiTableRowSpan("7");
|
||||
|
||||
|
||||
// 거래 건수 표시
|
||||
var uniqueCount = calculateUniqueLogCount("#grid");
|
||||
@@ -387,11 +392,19 @@
|
||||
//에러 행 색상 표시
|
||||
var rows = $(this).getDataIDs();
|
||||
for (var i = 0; i < rows.length; i++) {
|
||||
var val = $("#grid").getCell(rows[i], 'ERRYN');
|
||||
if (val == "Y") {
|
||||
var errYn = $("#grid").getCell(rows[i], 'ERRYN');
|
||||
var eaiErrCd = $("#grid").getCell(rows[i], 'EAIERRCD');
|
||||
var isBizErr = eaiErrCd != null && bizErrCodeSet.has(String(eaiErrCd).trim());
|
||||
|
||||
if (isBizErr) {
|
||||
// 업무(BIZ) 오류코드(ERRCODE_BIZ) - 하늘색 배경
|
||||
$("#" + rows[i]).find("td").css("background-color", "#BEEDFF");
|
||||
} else if (errYn == "Y") {
|
||||
$("#" + rows[i]).find("td").css("background-color", "#FFCC99");
|
||||
}
|
||||
}
|
||||
|
||||
$("#grid").tuiTableRowSpan("7");
|
||||
|
||||
//1000건이상 alert
|
||||
if (d.records == 1000) {
|
||||
|
||||
@@ -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