diff --git a/WebContent/jsp/onl/admin/adapter/adapterManDetail.jsp b/WebContent/jsp/onl/admin/adapter/adapterManDetail.jsp index 66fd2f1..9529ce9 100644 --- a/WebContent/jsp/onl/admin/adapter/adapterManDetail.jsp +++ b/WebContent/jsp/onl/admin/adapter/adapterManDetail.jsp @@ -942,6 +942,21 @@ $(document).ready(function() { buttonControl(isDetail); titleControl(isDetail); + + // 프라퍼티 값 space 확인 및 제거 + $(document).on('blur', '#grid input[name="PRPTY2VAL"]', function() { + var $this = $(this); + var originalVal = $this.val(); + + if (originalVal) { + var trimmedVal = $.trim(originalVal); + + // 공백 제거 전/후가 다를 때만 값을 변경 (불필요한 동작 방지) + if (originalVal !== trimmedVal) { + $this.val(trimmedVal); + } + } + }); }); // clientManPopup.jsp에서 호출될 함수 (전역 스코프에 정의) diff --git a/WebContent/jsp/onl/transaction/tracking/trackingMan.jsp b/WebContent/jsp/onl/transaction/tracking/trackingMan.jsp index c9bccd1..773f804 100644 --- a/WebContent/jsp/onl/transaction/tracking/trackingMan.jsp +++ b/WebContent/jsp/onl/transaction/tracking/trackingMan.jsp @@ -303,6 +303,12 @@ return cellvalue; } + function trimFormatter(cellvalue, options, rowObject) { + + return cellvalue ? String(cellvalue).trim() : ''; + + } + $(document).ready(function () { console.log(roleString); @@ -373,7 +379,7 @@ {name: 'TRACKASISKEY1CTNT', hidden: true}, {name: 'TRACKASISKEY2CTNT', hidden: true}, - {name: 'EAISVCSERNO_TMP', align: 'left', width: '220'}, + {name: 'EAISVCSERNO_TMP', align: 'left', width: '220', formatter: trimFormatter}, {name: 'KEYMGTMSGCTNT', align: 'left', width: '240'}, {name: 'LOGPRCSSSERNO_TMP', align: 'center', width: '40'}, {name: 'TELGMRECVTRANCD', align: 'left', width: '135', hidden: true}, diff --git a/WebContent/jsp/onl/transaction/tracking/trackingManDetail.jsp b/WebContent/jsp/onl/transaction/tracking/trackingManDetail.jsp index ca13dc6..2f5db38 100644 --- a/WebContent/jsp/onl/transaction/tracking/trackingManDetail.jsp +++ b/WebContent/jsp/onl/transaction/tracking/trackingManDetail.jsp @@ -216,7 +216,7 @@ $(tag+"[name="+name+"]").val(data[name.toUpperCase()]); //업체코드.업체명 - if(name=="companyName"){ + if(name=="eaiSvcSerno"){ if(data["COMPANYCODE"] !=null && data["COMPANYCODE"].trim() != ''){ $("input[name=companyName]").val("["+data["COMPANYCODE"]+"] "+data[name.toUpperCase()]); } @@ -233,6 +233,13 @@ } }); + // 거래고유번호 trim + var $svcSernoInput = $("input[name=eaiSvcSerno]"); + + if($svcSernoInput.val()) { + $svcSernoInput.val( $svcSernoInput.val().trim() ); + } + $("input[name=gstatSysAdptrBzwkGroupName],input[name=psvSysAdptrBzwkGroupName]").each(function(){ var name = $(this).attr("name"); if ("${rmsMenuAuth}" =="W"){ //2020.07.08 admin 만 버튼보이게 수정 diff --git a/src/main/java/com/eactive/eai/rms/data/entity/onl/logger/EAILogRepositoryImpl.java b/src/main/java/com/eactive/eai/rms/data/entity/onl/logger/EAILogRepositoryImpl.java index aad5b34..53f4852 100644 --- a/src/main/java/com/eactive/eai/rms/data/entity/onl/logger/EAILogRepositoryImpl.java +++ b/src/main/java/com/eactive/eai/rms/data/entity/onl/logger/EAILogRepositoryImpl.java @@ -44,38 +44,47 @@ public class EAILogRepositoryImpl implements EAILogRepository { QEAIMessageEntity qeaiMessageEntity = QEAIMessageEntity.eAIMessageEntity; - JPAQuery query = new JPAQueryFactory(em).from(entityPathBase); - appendConditions(eaiLogSearch, qeaiLog, entityPathBase, query); + JPAQuery query = new JPAQueryFactory(em) + .from(entityPathBase) + .leftJoin(qeaiMessageEntity) + .on(qeaiLog.eaisvcname.eq(qeaiMessageEntity.eaisvcname)); + + appendConditions(eaiLogSearch, qeaiLog, entityPathBase, query, qeaiMessageEntity); long totalCount = query.select(qeaiLog.id.msgdpstyms.count()).fetchOne(); - if (totalCount == 0) { - return new PageImpl<>(new ArrayList<>(), pageable, 0); - } + if (totalCount == 0) { + return new PageImpl<>(new ArrayList<>(), pageable, 0); + } - List list = query -// .select(Projections.constructor(EAILogDto.class, qeaiLog, qeaiMessageEntity.eaisvcdesc)) - .select(Projections.constructor(EAILogDto.class, - 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)) - .from(entityPathBase) - .leftJoin(qeaiMessageEntity) - .on(qeaiLog.eaisvcname.eq(qeaiMessageEntity.eaisvcname)) - .orderBy(qeaiLog.id.msgdpstyms.desc(), qeaiLog.id.eaisvcserno.asc(), qeaiLog.id.logprcssserno.asc()) - .limit(1000) - .fetch(); + List list = query +// .select(Projections.constructor(EAILogDto.class, qeaiLog, qeaiMessageEntity.eaisvcdesc)) + .select(Projections.constructor(EAILogDto.class, + 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)) + // .from(...) --> 이미 위에서 선언했으므로 생략 + // .leftJoin(...) --> 이미 위에서 선언했으므로 생략 + .orderBy(qeaiLog.id.msgdpstyms.desc(), qeaiLog.id.eaisvcserno.asc(), qeaiLog.id.logprcssserno.asc()) + .limit(1000) + .fetch(); - return new PageImpl<>(list, pageable, totalCount); + return new PageImpl<>(list, pageable, totalCount); } public Map countDetailedTransactions(Class clazz, EAILogSearch eaiLogSearch) { QEAILog qeaiLog = QEAILog.eAILog; EntityPathBase entityPathBase = new EntityPathBase<>(clazz, qeaiLog.getMetadata().getName()); + + QEAIMessageEntity qeaiMessageEntity = QEAIMessageEntity.eAIMessageEntity; - JPAQuery query = new JPAQueryFactory(em).from(entityPathBase); - appendConditions(eaiLogSearch, qeaiLog, entityPathBase, query); + JPAQuery query = new JPAQueryFactory(em) + .from(entityPathBase) + .leftJoin(qeaiMessageEntity) + .on(qeaiLog.eaisvcname.eq(qeaiMessageEntity.eaisvcname)); + + appendConditions(eaiLogSearch, qeaiLog, entityPathBase, query, qeaiMessageEntity); List results = query.select( qeaiLog.id.logprcssserno, // 로그 처리 상태 @@ -91,7 +100,7 @@ public class EAILogRepositoryImpl implements EAILogRepository { return reult; } - private void appendConditions(EAILogSearch eaiLogSearch, QEAILog qeaiLog, EntityPathBase entityPathBase, JPAQuery query) { + private void appendConditions(EAILogSearch eaiLogSearch, QEAILog qeaiLog, EntityPathBase entityPathBase, JPAQuery query, QEAIMessageEntity qeaiMessageEntity) { if (StringUtils.equalsIgnoreCase(eaiLogSearch.getAuthChk(), "Y")) { QUserBusiness qUserBusiness = QUserBusiness.userBusiness; @@ -127,6 +136,10 @@ public class EAILogRepositoryImpl implements EAILogRepository { if (StringUtils.isNotBlank(eaiLogSearch.getSearchEaiSvcName())) { query.where(qeaiLog.eaisvcname.containsIgnoreCase(eaiLogSearch.getSearchEaiSvcName())); } + + if (StringUtils.isNotBlank(eaiLogSearch.getSearchEaiSvcDesc())) { + query.where(qeaiMessageEntity.eaisvcdesc.containsIgnoreCase(eaiLogSearch.getSearchEaiSvcDesc())); + } if (StringUtils.isNotBlank(eaiLogSearch.getSearchKeyMgtMsgCtnt())) { query.where(qeaiLog.keymgtmsgctnt.contains(eaiLogSearch.getSearchKeyMgtMsgCtnt()));