From f18100ae89089307d03efc1d2fdbbcb503b7ae5b Mon Sep 17 00:00:00 2001 From: Rinjae Date: Tue, 16 Sep 2025 10:42:17 +0900 Subject: [PATCH 01/49] =?UTF-8?q?logback=20=EC=84=A4=EC=A0=95=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WEB-INF/properties/env.D.properties | 2 +- .../WEB-INF/properties/env.P.properties | 4 ++-- .../WEB-INF/properties/env.T.properties | 2 +- src/main/resources/logback-dev.xml | 23 +++++++++++++++++++ src/main/resources/logback.xml | 22 +++++++++++++++++- 5 files changed, 48 insertions(+), 5 deletions(-) diff --git a/WebContent/WEB-INF/properties/env.D.properties b/WebContent/WEB-INF/properties/env.D.properties index 0445e14..b83da1a 100644 --- a/WebContent/WEB-INF/properties/env.D.properties +++ b/WebContent/WEB-INF/properties/env.D.properties @@ -6,7 +6,7 @@ db.vendor=mariadb # - oracle10g : org.hibernate.dialect.Oracle10gDialect # - MySQL8 : org.hibernate.dialect.MySQL8Dialect # - MariaDB 10.3 : org.hibernate.dialect.MariaDB103Dialect -hibernate.dialect=org.hibernate.dialect.MySQL5Dialect +hibernate.dialect=org.hibernate.dialect.Oracle12cDialect # Priority of the was -D option inst.Name=apimsSvr11 diff --git a/WebContent/WEB-INF/properties/env.P.properties b/WebContent/WEB-INF/properties/env.P.properties index 6702788..908dbda 100644 --- a/WebContent/WEB-INF/properties/env.P.properties +++ b/WebContent/WEB-INF/properties/env.P.properties @@ -6,7 +6,7 @@ db.vendor=mariadb # - oracle10g : org.hibernate.dialect.Oracle10gDialect # - MySQL8 : org.hibernate.dialect.MySQL8Dialect # - MariaDB 10.3 : org.hibernate.dialect.MariaDB103Dialect -hibernate.dialect=org.hibernate.dialect.MySQL5Dialect +hibernate.dialect=org.hibernate.dialect.Oracle12cDialect # Priority of the was -D option inst.Name=admSvr11 @@ -15,4 +15,4 @@ eai.tableowner=EMSADM eai.systemmode=D eai.drmode=N # black / blue / green / orange / yellow -theme.color=orange +theme.color=orange \ No newline at end of file diff --git a/WebContent/WEB-INF/properties/env.T.properties b/WebContent/WEB-INF/properties/env.T.properties index 4eef0bc..806baae 100644 --- a/WebContent/WEB-INF/properties/env.T.properties +++ b/WebContent/WEB-INF/properties/env.T.properties @@ -6,7 +6,7 @@ db.vendor=mariadb # - oracle10g : org.hibernate.dialect.Oracle10gDialect # - MySQL8 : org.hibernate.dialect.MySQL8Dialect # - MariaDB 10.3 : org.hibernate.dialect.MariaDB103Dialect -hibernate.dialect=org.hibernate.dialect.MySQL5Dialect +hibernate.dialect=org.hibernate.dialect.Oracle12cDialect # Priority of the was -D option inst.Name=admSvr11 diff --git a/src/main/resources/logback-dev.xml b/src/main/resources/logback-dev.xml index 61f9097..ca1d61f 100644 --- a/src/main/resources/logback-dev.xml +++ b/src/main/resources/logback-dev.xml @@ -27,6 +27,9 @@ 10 + + ${LOG_PATTERN} + + + utf-8 + ${LOG_PATTERN} + @@ -49,6 +56,10 @@ 10 + + utf-8 + ${LOG_PATTERN} + @@ -60,6 +71,10 @@ 10 + + utf-8 + ${LOG_PATTERN} + @@ -71,6 +86,10 @@ 10 + + utf-8 + ${LOG_PATTERN} + ${LOG_HOME}/${PREFIX}_hibernate.log @@ -78,6 +97,10 @@ ${LOG_HOME}/${PREFIX}_hibernate.log-%d{yyyy-MM-dd} 10 + + utf-8 + ${LOG_PATTERN} + diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml index 9ee91f6..b16a368 100644 --- a/src/main/resources/logback.xml +++ b/src/main/resources/logback.xml @@ -2,7 +2,7 @@ - + @@ -16,6 +16,10 @@ 10 + + utf-8 + ${LOG_PATTERN} + + + utf-8 + ${LOG_PATTERN} + @@ -38,6 +46,10 @@ 10 + + utf-8 + ${LOG_PATTERN} + @@ -49,6 +61,10 @@ 10 + + utf-8 + ${LOG_PATTERN} + @@ -60,6 +76,10 @@ 10 + + utf-8 + ${LOG_PATTERN} + From 67e6f6d59ae7f4d36c97df52eb0ccbd7add7a2a2 Mon Sep 17 00:00:00 2001 From: Rinjae Date: Wed, 24 Sep 2025 17:33:57 +0900 Subject: [PATCH 02/49] =?UTF-8?q?=EA=B4=91=EC=A3=BC=EC=9D=80=ED=96=89=20?= =?UTF-8?q?=EC=A0=84=EC=9A=A9=20password=20encoder=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WebContent/WEB-INF/applicationContext.xml | 2 ++ .../spring/KjbSafedbPasswordEncoder.java | 20 +++++++++++++++++++ .../apim/portaluser/PortalUserManService.java | 6 ++++-- 3 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/eactive/eai/custom/kjb/common/spring/KjbSafedbPasswordEncoder.java diff --git a/WebContent/WEB-INF/applicationContext.xml b/WebContent/WEB-INF/applicationContext.xml index 2c394c4..5e52154 100644 --- a/WebContent/WEB-INF/applicationContext.xml +++ b/WebContent/WEB-INF/applicationContext.xml @@ -54,6 +54,8 @@ + diff --git a/src/main/java/com/eactive/eai/custom/kjb/common/spring/KjbSafedbPasswordEncoder.java b/src/main/java/com/eactive/eai/custom/kjb/common/spring/KjbSafedbPasswordEncoder.java new file mode 100644 index 0000000..7f61416 --- /dev/null +++ b/src/main/java/com/eactive/eai/custom/kjb/common/spring/KjbSafedbPasswordEncoder.java @@ -0,0 +1,20 @@ +package com.eactive.eai.custom.kjb.common.spring; + +import com.eactive.ext.kjb.safedb.SafeDBWrapper; +import org.springframework.security.crypto.password.PasswordEncoder; + + +public class KjbSafedbPasswordEncoder implements PasswordEncoder { + @Override + public String encode(CharSequence rawPassword) { + SafeDBWrapper safedb = SafeDBWrapper.getInstance(); + return safedb.encryptPswd(rawPassword.toString()); + } + + @Override + public boolean matches(CharSequence rawPassword, String encodedPassword) { + SafeDBWrapper safedb = SafeDBWrapper.getInstance(); + String encoded = safedb.encryptPswd(rawPassword.toString()); + return encoded.equals(encodedPassword); + } +} diff --git a/src/main/java/com/eactive/eai/rms/onl/apim/portaluser/PortalUserManService.java b/src/main/java/com/eactive/eai/rms/onl/apim/portaluser/PortalUserManService.java index 0957556..62a7ede 100644 --- a/src/main/java/com/eactive/eai/rms/onl/apim/portaluser/PortalUserManService.java +++ b/src/main/java/com/eactive/eai/rms/onl/apim/portaluser/PortalUserManService.java @@ -41,9 +41,11 @@ public class PortalUserManService extends BaseService { private final PortalOrgService portalOrgService; private final FileService fileService; private final PortalOrgManService portalOrgManService; - private final PasswordEncoder passwordEncoder; +// private final PasswordEncoder passwordEncoder; + private final PasswordEncoder kjbSafedbPasswordEncoder; private final PortalUserTermsService portalUserTermsService; + public Page selectList(Pageable pageable, PortalUserUISearch portalUserUISearch) { Page portalUser = portalUserService.findAll(pageable, portalUserUISearch); return portalUser.map(entity -> { @@ -122,7 +124,7 @@ public class PortalUserManService extends BaseService { } PortalUser portalUser = portalUserUIMapper.toEntity(portalUserUI); - portalUser.setPasswordHash(passwordEncoder.encode("!" + portalUserUI.getLoginId())); + portalUser.setPasswordHash(kjbSafedbPasswordEncoder.encode("!" + portalUserUI.getLoginId())); portalUser.setLoginFailureCount(0); portalUser.setAccountLockYn("N"); portalUser.setEmailAddr(portalUserUI.getLoginId()); From a621be0062e4cf43b0787e0c383c37e3d547f5cd Mon Sep 17 00:00:00 2001 From: daekuk Date: Fri, 26 Sep 2025 17:08:06 +0900 Subject: [PATCH 03/49] =?UTF-8?q?APIInterface=20Detail=20UI=20SyncAsync=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apim/apiInterfaceManDetail.jsp | 331 ++++++++++++------ .../transaction/apim/ApiInterfaceService.java | 44 ++- .../transaction/apim/ui/ApiInterfaceUI.java | 5 + 3 files changed, 277 insertions(+), 103 deletions(-) diff --git a/WebContent/jsp/onl/transaction/apim/apiInterfaceManDetail.jsp b/WebContent/jsp/onl/transaction/apim/apiInterfaceManDetail.jsp index 9701b31..1e402a2 100644 --- a/WebContent/jsp/onl/transaction/apim/apiInterfaceManDetail.jsp +++ b/WebContent/jsp/onl/transaction/apim/apiInterfaceManDetail.jsp @@ -101,16 +101,31 @@ standardMessageItems: [], inboundResponseStandardMessageItems: [], fromResponseAdapter: '', + toResponseAdapter: '', inboundResponseHttpMethod: '', inboundResponseRestPath: '', - syncAsyncType: 'sync' + outboundResponseHttpMethod: '', + outboundResponseRestPath: '', + syncAsyncType: 'sync', + wordType: '1', + requestType:'S' }, // 컴퓨티드 프로퍼티 get showInboundResponse() { return this.apiInterface.syncAsyncType === 'asyncSync'; }, + + // 컴퓨티드 프로퍼티 + get showOutboundResponse() { + return this.apiInterface.syncAsyncType === 'syncAsync'; + }, })); + + // 요청/응답 disable 처리. + Alpine.store('formState', { + isReqResDisabled: false + }); }); // Alpine 컴포넌트 접근을 위한 유틸리티 함수 @@ -136,6 +151,7 @@ new makeOptions("ADPTRBZWKGROUPNAME","ADPTRBZWKGROUPDESC").setObj($("select[name=fromAdapter]")).setFormat(codeName3OptionFormat).setNoValueInclude(true).setAttr('std','ADPTRMSGPTRNCD').setData(json.fromList).rendering(); new makeOptions("ADPTRBZWKGROUPNAME","ADPTRBZWKGROUPDESC").setObj($("select[name=fromResponseAdapter]")).setFormat(codeName3OptionFormat).setNoValueInclude(true).setData(json.toList).rendering(); new makeOptions("ADPTRBZWKGROUPNAME","ADPTRBZWKGROUPDESC").setObj($("select[name=toAdapter]")).setFormat(codeName3OptionFormat).setNoValueInclude(true).setData(json.toList).rendering(); + new makeOptions("ADPTRBZWKGROUPNAME","ADPTRBZWKGROUPDESC").setObj($("select[name=toResponseAdapter]")).setFormat(codeName3OptionFormat).setNoValueInclude(true).setData(json.fromList).rendering(); //if(key == "") setSearchable(selectName); // 콤보에 searchable 설정 if (typeof callback === 'function') { @@ -196,27 +212,33 @@ // 어댑터 설정 정보 객체에 인바운드 응답 관련 설정 추가 const adapterConfig = { - inbound: { - ioType: 'inbound', - methodSelectId: '#inboundHttpMethod', - restPathInputId: '#inboundRestPath', - adapterUrlId: '#fromAdapterUrl', - }, - outbound: { - ioType: 'outbound', - methodSelectId: '#outboundHttpMethod', - restPathInputId: '#outboundRestPath', - adapterUrlId: '#toAdapterUrl', - standardOptionsId: '#standardOutboundOptions', - commonFieldId: '#commonFieldPart' - }, - inboundResponse: { - methodSelectId: '#inboundResponseHttpMethod', - restPathInputId: '#inboundResponseRestPath', - adapterUrlId: '#fromResponseAdapterUrl', - standardOptionsId: '#inboundResponseRestPart', - commonFieldId: '#inboundResponseCommonFieldPart' - } + inbound: { + ioType: 'inbound', + methodSelectId: '#inboundHttpMethod', + restPathInputId: '#inboundRestPath', + adapterUrlId: '#fromAdapterUrl', + }, + outbound: { + ioType: 'outbound', + methodSelectId: '#outboundHttpMethod', + restPathInputId: '#outboundRestPath', + adapterUrlId: '#toAdapterUrl', + standardOptionsId: '#standardOutboundOptions', + commonFieldId: '#commonFieldPart' + }, + inboundResponse: { + methodSelectId: '#inboundResponseHttpMethod', + restPathInputId: '#inboundResponseRestPath', + adapterUrlId: '#fromResponseAdapterUrl', + standardOptionsId: '#inboundResponseRestPart', + commonFieldId: '#inboundResponseCommonFieldPart' + }, + outboundResponse: { + methodSelectId: '#outboundResponseHttpMethod', + restPathInputId: '#outboundResponseRestPath', + adapterUrlId: '#toResponseAdapterUrl', + standardOptionsId: '#outboundResponseRestPart' + } }; // 어댑터 선택 변경 시 호출되는 함수 수정 @@ -373,9 +395,13 @@ $("select[name=authType]" ).val(data["authType"]); } $("select[name=fromResponseAdapter]" ).val(data["fromResponseAdapter"]);//fromResponseAdapter + + $("select[name=toResponseAdapter]" ).val(data["toResponseAdapter"]);//toResponseAdapter + $('#inboundHttpMethod').val(data.inboundHttpMethod); $('#outboundHttpMethod').val(data.outboundHttpMethod); $('#inboundResponseHttpMethod').val(data.inboundResponseHttpMethod); + $('#outboundResponseHttpMethod').val(data.outboundResponseHttpMethod); $('#svcLogLvelNo').val(data.svcLogLvelNo); if(data['inboundRequestLayout']!=null && data['outboundRequestLayout']!=null){ @@ -420,6 +446,12 @@ const inOutType = data['eaiSvcName'].slice(-1); $('#inOutType').val(inOutType); + $("input[name=btnRadioReqRes][value='" + sendRecvType + "']").prop("checked", true); + Alpine.store('formState').isReqResDisabled = true; + $("input[name=btnRadioInOut][value='" + inOutType + "']").prop("checked", true); + $("input[name=btnRadioInOut]").prop("disabled", true); + + $('#eaiBzwkDstcd').attr("readonly", "readonly"); $('#eaiSvcName').attr("readonly", "readonly"); $('#sendRecvType').attr("readonly", "readonly"); @@ -439,6 +471,7 @@ $('#cloneOrgInterfaceIdDesc').text(eaiSvcName); $("#fromResponseAdapter").change(); + $("#toResponseAdapter").change(); }, error:function(e){ alert(e.responseText); @@ -1057,6 +1090,14 @@ } }); + $("#toResponseAdapter").change(function() { + const alpineData = getApiInterface(); + if (alpineData.syncAsyncType === 'syncAsync') { + const adapterGroupName = $(this).val(); + adapterSelectChange('outboundResponse', adapterGroupName); + } + }); + $('#outboundRestPath').on('input', function() { checkTagVariableUrl(); }); @@ -1283,10 +1324,10 @@
- + - +
@@ -1303,47 +1344,81 @@
-
+
INTERFACE TYPE
+

-
- - +
+ + + + + + + + + + + +
+
+
+
+
+ + - - + + +
+
+
+
+
+ + - - -
+ + +
+
-
+
TRANSACTION OPTIONS
@@ -1408,21 +1483,37 @@
-
+
- - - -
+
+ + + +
+
+
+
+ + + +
+
@@ -1528,34 +1619,34 @@
-
-
- OUTBOUND ROUTING -
-
-
- - -
-
- - -
-
+
+
+ OUTBOUND ROUTING +
+
+
+ + +
+
+ + +
+
-
-
-
-
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+ + +
diff --git a/src/main/java/com/eactive/eai/rms/onl/transaction/apim/ApiInterfaceService.java b/src/main/java/com/eactive/eai/rms/onl/transaction/apim/ApiInterfaceService.java index 7bd2011..9629911 100644 --- a/src/main/java/com/eactive/eai/rms/onl/transaction/apim/ApiInterfaceService.java +++ b/src/main/java/com/eactive/eai/rms/onl/transaction/apim/ApiInterfaceService.java @@ -216,6 +216,20 @@ public class ApiInterfaceService extends OnlBaseService { apiInterfaceUI.setInboundResponseStandardMessageItems(convertMapToStdMessageItems(restOption.getStandardCommonFields())); } } + + if("syncAsync".equals(apiInterfaceUI.getSyncAsyncType()) && serviceMessageEntityList != null && serviceMessageEntityList.size() > 1){ + ServiceMessageEntity extraServiceMessageEntity = serviceMessageEntityList.get(1); + apiInterfaceUI.setToResponseAdapter(extraServiceMessageEntity.getPsvsysadptrbzwkgroupname()); + String restOptionStr = extraServiceMessageEntity.getRestoption(); + + if(StringUtils.isNotBlank(restOptionStr)) { + ObjectMapper mapper = new ObjectMapper(); + RestOption restOption = mapper.readValue(restOptionStr, RestOption.class); + + apiInterfaceUI.setOutboundResponseHttpMethod(restOption.getMethod()); + apiInterfaceUI.setOutboundResponseRestPath(restOption.getExtraPath()); + } + } apiInterfaceUI.setTransformYn(transformYn); apiInterfaceUI.setErrTransformYn(errTransformYn); // 추가 @@ -430,8 +444,8 @@ public class ApiInterfaceService extends OnlBaseService { public void setServiceMessageRoutingInfo(ApiInterfaceUI vo, EAIMessageEntity eaiMessageEntity, List serviceMessageEntityList) throws Exception { // 기본 요청 ServiceMessageEntity 설정 ServiceMessageEntity requestEntity = serviceMessageEntityList.get(0); - - if ("async".equals(vo.getSyncAsyncType())) { + + if ("async".equals(vo.getSyncAsyncType()) || "syncAsync".equals(vo.getSyncAsyncType())) { requestEntity.setPsvintfacdsticname("ASYN"); } @@ -462,6 +476,32 @@ public class ApiInterfaceService extends OnlBaseService { setRouteInfo(vo, vo.getInboundResponseHttpMethod(), vo.getInboundResponseRestPath(), vo.getFromResponseAdapter(), responseEntity, vo.getInboundResponseStandardMessageItems()); } + + // syncAsync 타입인 경우 응답용 ServiceMessageEntity 추가 처리 + if ("syncAsync".equals(vo.getSyncAsyncType())) { + ServiceMessageEntity responseEntity; + + // ServiceMessageEntity가 없으면 새로 생성 + if (serviceMessageEntityList.size() < 2) { + responseEntity = new ServiceMessageEntity(); + responseEntity.setId(new ServiceMessageEntityId(vo.getEaiSvcName(), 2)); + responseEntity.setEaimessage(eaiMessageEntity); + serviceMessageEntityList.add(responseEntity); + } else { + responseEntity = serviceMessageEntityList.get(1); + } + + // ServiceMessageEntity 설정 + responseEntity.setPsvsysadptrbzwkgroupname(vo.getToResponseAdapter()); + responseEntity.setPsvintfacdsticname("ASYN"); + + // REST 정보 설정 + AdapterGroupUI responseAdapter = adapterService.selectDetail(vo.getToResponseAdapter()); + String responseRoutName = getOutboundProcessorName(responseAdapter); + responseEntity.setOutbndroutname(responseRoutName); + + setRouteInfo(vo, vo.getOutboundResponseHttpMethod(), vo.getOutboundResponseRestPath(), vo.getToResponseAdapter(), responseEntity, vo.getStandardMessageItems()); + } } public static List convertMapToStdMessageItems(Map standardCommonFields) { diff --git a/src/main/java/com/eactive/eai/rms/onl/transaction/apim/ui/ApiInterfaceUI.java b/src/main/java/com/eactive/eai/rms/onl/transaction/apim/ui/ApiInterfaceUI.java index 7763e62..82ee29f 100644 --- a/src/main/java/com/eactive/eai/rms/onl/transaction/apim/ui/ApiInterfaceUI.java +++ b/src/main/java/com/eactive/eai/rms/onl/transaction/apim/ui/ApiInterfaceUI.java @@ -54,6 +54,11 @@ public class ApiInterfaceUI { private String inboundResponseHttpMethod; private String inboundResponseRestPath; private String fromResponseAdapter; + + //SYNC-ASYNC 용 + private String outboundResponseHttpMethod; + private String outboundResponseRestPath; + private String toResponseAdapter; private String inboundErrResponseLayout; private String errResponseTransform; From 95e50edb55bee250c4ed33cbb56496b6abfe7a2c Mon Sep 17 00:00:00 2001 From: Rinjae Date: Fri, 26 Sep 2025 21:18:25 +0900 Subject: [PATCH 04/49] =?UTF-8?q?kjb-safedb=20=EB=AA=A8=EB=93=88=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 1 + settings.gradle | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 8f1fafa..48c5e9f 100644 --- a/build.gradle +++ b/build.gradle @@ -76,6 +76,7 @@ dependencies { implementation project(':elink-online-common') implementation project(':elink-online-emsclient') implementation project(':elink-portal-common') + implementation project(':kjb-safedb') /* Custom Libs */ implementation fileTree(dir: 'libs', include: ['*.jar']) diff --git a/settings.gradle b/settings.gradle index c0e25bd..c36ddb9 100644 --- a/settings.gradle +++ b/settings.gradle @@ -12,4 +12,8 @@ project (':elink-online-core').projectDir = new File(settingsDir, "../eapim-onli project (':elink-online-transformer').projectDir = new File(settingsDir, "../eapim-online/elink-online-transformer") project (':elink-online-common').projectDir = new File(settingsDir, "../eapim-online/elink-online-common") project (':elink-online-emsclient').projectDir = new File(settingsDir, "../eapim-online/elink-online-emsclient") -project (':elink-portal-common').projectDir = new File(settingsDir, "../elink-portal-common") \ No newline at end of file +project (':elink-portal-common').projectDir = new File(settingsDir, "../elink-portal-common") + + +include 'kjb-safedb' +project (':kjb-safedb').projectDir = new File(settingsDir, "../kjb-safedb") \ No newline at end of file From 5f91ae64d9056accdb4365b6397388640c5f899b Mon Sep 17 00:00:00 2001 From: daekuk Date: Mon, 29 Sep 2025 11:19:20 +0900 Subject: [PATCH 05/49] =?UTF-8?q?=EC=9D=B8=ED=84=B0=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=8A=A4=20=ED=99=94=EB=A9=B4=20=EA=B8=B0=EB=8A=A5=20=EB=B0=8F?= =?UTF-8?q?=20UI=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apim/apiInterfaceManDetail.jsp | 63 ++++++++++++++----- 1 file changed, 47 insertions(+), 16 deletions(-) diff --git a/WebContent/jsp/onl/transaction/apim/apiInterfaceManDetail.jsp b/WebContent/jsp/onl/transaction/apim/apiInterfaceManDetail.jsp index 1e402a2..a7cbe4c 100644 --- a/WebContent/jsp/onl/transaction/apim/apiInterfaceManDetail.jsp +++ b/WebContent/jsp/onl/transaction/apim/apiInterfaceManDetail.jsp @@ -48,6 +48,19 @@ background-color: #eeeeee; border-color: #cccccc; } + + /* input-group 안에서 invalid-feedback이 차지하는 공간 없애기, 유효성검사 할 때 현재 스타일 바뀌지않게 CSS 처리 */ + .input-group > .invalid-feedback { + position: absolute; + top: 100%; + left: 0; + width: 100%; + margin-top: .25rem; + } + + .input-group { + position: relative; + } + + + + + + +
+
+ +
+ +
+ +
+
button
+
+ + + +
+ +

2020.02.26(수) 15:19:59

+ + + + + + + +
    +
  • " onclick="javascript:clearSmsInfo();" onfocus="blur();">SMS초기화
  • +
  • " onclick="javascript:btnSound();" onfocus="blur();" id="soundOption" >소리끄기
  • +
  • " onclick="javascript:btnPopupClose();" onfocus="blur();" >전체팝업닫기
  • +
  • " onclick="javascript:btnPopup();" onfocus="blur();" id="popOption">팝업끄기
  • +
+
+ + + + + +
+
+

MCI

+ <% for(int j = 1; j < 5; j++){ %> +
+ +
    +
  • CPU

  • +
  • MEM

  • +
  • DISK

  • +
+

<%= localeMessage.getString("dashMain.nA") %>

+
+ <%} %> +
+ +
+

EAI

+ <% for(int j = 1; j < 5; j++){ %> +
+ +
    +
  • CPU

  • +
  • MEM

  • +
  • DISK

  • +
+

<%= localeMessage.getString("dashMain.nA") %>

+
+ <%} %> +
+ +
+

FEP

+ <% for(int j = 1; j < 5; j++){ %> +
+ +
    +
  • CPU

  • +
  • MEM

  • +
  • DISK

  • +
+

<%= localeMessage.getString("dashMain.nA") %>

+
+ <%} %> +
+ +
+

OPA

+ <% for(int j = 1; j < 3; j++){ %> +
+ +
    +
  • CPU

  • +
  • MEM

  • +
  • DISK

  • +
+

<%= localeMessage.getString("dashMain.nA") %>

+
+ <%} %> +
+ +
+

<%= localeMessage.getString("dashMain.bat") %>

+ <% for(int j = 1; j < 3; j++){ %> +
+ +
    +
  • CPU

  • +
  • MEM

  • +
  • DISK

  • +
+

<%= localeMessage.getString("dashMain.nA") %>

+
+ <%} %> +
+ +
+

<%= localeMessage.getString("dashMain.bap") %>

+ <% for(int j = 1; j < 3; j++){ %> +
+ +
    +
  • CPU

  • +
  • MEM

  • +
  • DISK

  • +
+

<%= localeMessage.getString("dashMain.nA") %>

+
+ <%} %> + +
+
+ + + +
+

<%= localeMessage.getString("dashMain.tranProgTotSta") %>

+ + + + + + + + + + + + + + + + <% + int j; + if (srvCnt > 3) j = 3; + else j = srvCnt; + + for (int i = 0; i < j; i++) { + DataSourceType d = srvList.get(i); + + if (d.getName() != null && !"".equals(d.getName())) { + %> + + + + + + + + + + + + <% + } + } + %> + +
<%= localeMessage.getString("dashMain.bizGrp") %><%= localeMessage.getString("dashMain.tran") %><%= localeMessage.getString("dashMain.tranInc") %>TIMEOUT<%= localeMessage.getString("dashMain.timeOutInc") %><%= localeMessage.getString("dashMain.traErr") %><%= localeMessage.getString("dashMain.traErrInc") %><%= localeMessage.getString("dashMain.connErr") %><%= localeMessage.getString("dashMain.connErrInc") %>
<%=d.getText()%>" style="cursor: pointer">00" style="cursor: pointer">00" style="cursor: pointer">00" style="cursor: pointer">00
+ + + + + + + + + + + + + + + + + <% + for (int i = j; i < srvCnt; i++) { + DataSourceType d = srvList.get(i); + + if (d.getName() != null && !"".equals(d.getName())) { + %> + + + + + + + + + + + + <% + } + } + + %> + + + + + + + + + + + + + +
<%= localeMessage.getString("dashMain.bizGrp") %><%= localeMessage.getString("dashMain.tran") %><%= localeMessage.getString("dashMain.tranInc") %>TIMEOUT<%= localeMessage.getString("dashMain.timeOutInc") %><%= localeMessage.getString("dashMain.traErr") %><%= localeMessage.getString("dashMain.traErrInc") %><%= localeMessage.getString("dashMain.connErr") %><%= localeMessage.getString("dashMain.connErrInc") %>
<%=d.getText()%>00000000
<%= localeMessage.getString("dashMain.tot") %>00000000
+
+ + + + + + + + + + + +
<%= localeMessage.getString("dashMain.bap") %>

<%= localeMessage.getString("dashMain.norSend") %>

0

<%= localeMessage.getString("dashMain.norRecv") %>

0

<%= localeMessage.getString("dashMain.errSend") %>

0

<%= localeMessage.getString("dashMain.errRecv") %>

0

<%= localeMessage.getString("dashMain.waitSend") %>

0

<%= localeMessage.getString("dashMain.waitRecv") %>

0
+ + + + + + + + + + +
<%= localeMessage.getString("dashMain.bat") %>

<%= localeMessage.getString("dashMain.norSend") %>

0

<%= localeMessage.getString("dashMain.norRecv") %>

0

<%= localeMessage.getString("dashMain.errSend") %>

0

<%= localeMessage.getString("dashMain.errRecv") %>

0

<%= localeMessage.getString("dashMain.waitSend") %>

0

<%= localeMessage.getString("dashMain.waitRecv") %>

0
+ +
+ + + + +
+

거래처리 집계현황

+ + + + + + + + + + + + + + + +<% + for (int i = 0; i < srvCnt; i++) { + DataSourceType d = srvList.get(i); + + if (d.getName() != null && !"".equals(d.getName())) { + +%> + + + + + + + + + + + +<% + } + } + +%> + + + + + + + + + + + + +
업무그룹거래처리거래처리증가TIMEOUTTIMEOUT증가업무에러업무에러증가통신에러통신에러증가
<%=d.getText()%>00000000
합계00000000
+ + + + + + + + + + + + + + + + + + + + +
일괄전송

정상송신

0

정상수신

0

에러송신

0

에러수신

0

대기송신

0

대기수신

0
배치

정상송신

0

정상수신

0

에러송신

0

에러수신

0

대기송신

0

대기수신

0
+
+ + +
+ +
+

<%= localeMessage.getString("dashMain.errNotiSta") %>

+ + + + + + + + + + + <% +// for (int i = 1; i <= 6; i++) { + for (int i = 0; i < srvCnt+2; i++) { + %> + > + + + + + + <% + } + %> + +
<%= localeMessage.getString("dashMain.bizGrp") %><%= localeMessage.getString("dashMain.inst") %><%= localeMessage.getString("dashMain.time") %><%= localeMessage.getString("dashMain.mess") %>
+
+ + + +
+

Peak Day (TPS)

+ + + + + + + + + + + <% + for (int i = 0; i < srvCnt; i++) { + DataSourceType d = srvList.get(i); + if (d.getName() != null && !"".equals(d.getName())) { + %> + + + + + + + + + + <% + } + } + %> + + + + + + + + + + + + + +
<%= localeMessage.getString("dashMain.bizGrp") %><%= localeMessage.getString("dashMain.date") %><%= localeMessage.getString("dashMain.proUni") %>TPS
<%=d.getText()%>
<%= localeMessage.getString("dashMain.bap") %>
<%= localeMessage.getString("dashMain.bat") %>
+
+ +
+ + + + + + + + + + + + <%--
${rmsMenuName}
-
+
@@ -1368,6 +1369,10 @@
+
+
+ +
@@ -1424,14 +1429,17 @@

-
- - - - + + + + - +
@@ -1702,8 +1710,11 @@ 응답 수신 메소드
diff --git a/src/main/java/com/eactive/eai/rms/onl/transaction/apim/ApiInterfaceService.java b/src/main/java/com/eactive/eai/rms/onl/transaction/apim/ApiInterfaceService.java index 9629911..c401f87 100644 --- a/src/main/java/com/eactive/eai/rms/onl/transaction/apim/ApiInterfaceService.java +++ b/src/main/java/com/eactive/eai/rms/onl/transaction/apim/ApiInterfaceService.java @@ -709,6 +709,8 @@ public class ApiInterfaceService extends OnlBaseService { sheet.setColumnWidth(ci++, 200 * 30); sheet.setColumnWidth(ci++, 300 * 30); sheet.setColumnWidth(ci++, 200 * 30); + sheet.setColumnWidth(ci++, 200 * 30); + sheet.setColumnWidth(ci++, 300 * 30); sheet.setColumnWidth(ci, 300 * 30); int rowNum = 0; @@ -730,6 +732,8 @@ public class ApiInterfaceService extends OnlBaseService { createCell(row, cellIndex++, textStyle, apiInterfaceUI.getEaiSvcDesc()); createCell(row, cellIndex++, headerStyle, "변환여부(Y/N)"); createCell(row, cellIndex++, textStyle, apiInterfaceUI.getTransformYn()); + createCell(row, cellIndex++, headerStyle, "Sync/Async 타입"); + createCell(row, cellIndex++, textStyle, apiInterfaceUI.getSyncAsyncType()); rowNum = addTitle(sheet, ++rowNum, titleStyle, "어댑터 설정"); row = sheet.createRow(rowNum++); @@ -738,8 +742,23 @@ public class ApiInterfaceService extends OnlBaseService { createCell(row, cellIndex++, headerStyle, "인바운드 어댑터"); createCell(row, cellIndex++, textStyle, apiInterfaceUI.getFromAdapter()); createCell(row, cellIndex++, headerStyle, "아웃바운드 어댑터"); - createCell(row, cellIndex, textStyle, apiInterfaceUI.getToAdapter()); - + createCell(row, cellIndex++, textStyle, apiInterfaceUI.getToAdapter()); + + //SYNC TYPE 에 따라 추가정보 생성 + String syncAsyncType = apiInterfaceUI.getSyncAsyncType(); + + if (syncAsyncType.equals("asyncSync") || syncAsyncType.equals("syncAsync")) { + + if (apiInterfaceUI.getSyncAsyncType().equals("asyncSync")) { + createCell(row, cellIndex++, headerStyle, "INBOUND (ASYNC) 응답 어댑터"); + createCell(row, cellIndex, textStyle, apiInterfaceUI.getFromResponseAdapter()); + } else { + createCell(row, cellIndex++, headerStyle, "OUTBOUND (ASYNC) 응답 어댑터"); + createCell(row, cellIndex, textStyle, apiInterfaceUI.getToResponseAdapter()); + } + + } + rowNum = addTitle(sheet, ++rowNum, titleStyle, "REST 설정"); row = sheet.createRow(rowNum++); row.setHeightInPoints(height); // 행 높이를 20 포인트로 설정 @@ -747,14 +766,30 @@ public class ApiInterfaceService extends OnlBaseService { createCell(row, cellIndex++, headerStyle, "수신 메소드"); createCell(row, cellIndex++, textStyle, apiInterfaceUI.getInboundHttpMethod()); createCell(row, cellIndex++, headerStyle, "수신 PATH(URL)"); - createCell(row, cellIndex, textStyle, apiInterfaceUI.getInboundRestPath()); + createCell(row, cellIndex++, textStyle, apiInterfaceUI.getInboundRestPath()); + + if(apiInterfaceUI.getSyncAsyncType().equals("asyncSync")) { + createCell(row, cellIndex++, headerStyle, "응답 송신 메소드"); + createCell(row, cellIndex++, textStyle, apiInterfaceUI.getInboundResponseHttpMethod()); + createCell(row, cellIndex++, headerStyle, "응답 송신 REST PATH(URL)"); + createCell(row, cellIndex, textStyle, apiInterfaceUI.getInboundResponseRestPath()); + } + row = sheet.createRow(rowNum++); row.setHeightInPoints(height); // 행 높이를 20 포인트로 설정 cellIndex = 0; // 초기 셀 인덱스 createCell(row, cellIndex++, headerStyle, "송신 메소드"); createCell(row, cellIndex++, textStyle, apiInterfaceUI.getOutboundHttpMethod()); createCell(row, cellIndex++, headerStyle, "송신 PATH(URL)"); - createCell(row, cellIndex, textStyle, apiInterfaceUI.getOutboundRestPath()); + createCell(row, cellIndex++, textStyle, apiInterfaceUI.getOutboundRestPath()); + + if(apiInterfaceUI.getSyncAsyncType().equals("syncAsync")) { + createCell(row, cellIndex++, headerStyle, "응답 수신 메소드"); + createCell(row, cellIndex++, textStyle, apiInterfaceUI.getOutboundResponseHttpMethod()); + createCell(row, cellIndex++, headerStyle, "송신 REST PATH(URL)"); + createCell(row, cellIndex, textStyle, apiInterfaceUI.getOutboundResponseRestPath()); + } + if ("Y".equals(apiInterfaceUI.getTransformYn())) { rowNum = addTitle(sheet, ++rowNum, titleStyle, "변환 설정"); @@ -808,9 +843,27 @@ public class ApiInterfaceService extends OnlBaseService { String interfaceDesc = PoiUtils.getCellValue(sheet, 2, 1); String transformYn = PoiUtils.getCellValue(sheet, 2, 3); + String syncAsyncType = PoiUtils.getCellValue(sheet, 2, 5); String inboundAdapterGroupName = PoiUtils.getCellValue(sheet, 5, 1); String outboundAdapterGroupName = PoiUtils.getCellValue(sheet, 5, 3); + String inboundResponseHttpMethod = ""; + String inboundResponseRestPath = ""; + String fromResponseAdapter = ""; + + String outboundResponseHttpMethod = ""; + String outboundResponseRestPath = ""; + String toResponseAdapter = ""; + + if (syncAsyncType.equals("asyncSync")) { + inboundResponseHttpMethod = PoiUtils.getCellValue(sheet, 8, 5); + inboundResponseRestPath = PoiUtils.getCellValue(sheet, 8, 7); + fromResponseAdapter = PoiUtils.getCellValue(sheet, 5, 5); + } else if (syncAsyncType.equals("syncAsync")) { + outboundResponseHttpMethod = PoiUtils.getCellValue(sheet, 9, 5); + outboundResponseRestPath = PoiUtils.getCellValue(sheet, 9, 7); + toResponseAdapter = PoiUtils.getCellValue(sheet, 5, 5); + } String inboundHttpMethod = PoiUtils.getCellValue(sheet, 8, 1); String inboundRestPath = PoiUtils.getCellValue(sheet, 8, 3); @@ -824,6 +877,7 @@ public class ApiInterfaceService extends OnlBaseService { apiInterfaceUI.setEaiSvcName(elinkServiceId); apiInterfaceUI.setEaiSvcDesc(interfaceDesc); apiInterfaceUI.setTransformYn(transformYn); + apiInterfaceUI.setSyncAsyncType(syncAsyncType); apiInterfaceUI.setFromAdapter(inboundAdapterGroupName); apiInterfaceUI.setToAdapter(outboundAdapterGroupName); @@ -832,6 +886,14 @@ public class ApiInterfaceService extends OnlBaseService { apiInterfaceUI.setInboundRestPath(inboundRestPath); apiInterfaceUI.setOutboundHttpMethod(outboundHttpMethod); apiInterfaceUI.setOutboundRestPath(outboundRestPath); + + apiInterfaceUI.setInboundResponseHttpMethod(inboundResponseHttpMethod); + apiInterfaceUI.setInboundResponseRestPath(inboundResponseRestPath); + apiInterfaceUI.setFromResponseAdapter(fromResponseAdapter); + + apiInterfaceUI.setOutboundResponseHttpMethod(outboundResponseHttpMethod); + apiInterfaceUI.setOutboundResponseRestPath(outboundResponseRestPath); + apiInterfaceUI.setToResponseAdapter(toResponseAdapter); apiInterfaceUI.setIsHeaderRouting(false); diff --git a/src/main/java/com/eactive/eai/rms/onl/transaction/apim/mapping/ApiInterfaceUIMapper.java b/src/main/java/com/eactive/eai/rms/onl/transaction/apim/mapping/ApiInterfaceUIMapper.java index fb9e897..6ac8dff 100644 --- a/src/main/java/com/eactive/eai/rms/onl/transaction/apim/mapping/ApiInterfaceUIMapper.java +++ b/src/main/java/com/eactive/eai/rms/onl/transaction/apim/mapping/ApiInterfaceUIMapper.java @@ -110,6 +110,10 @@ public interface ApiInterfaceUIMapper { syncAsyncType = "asyncSync"; } vo.setSyncAsyncType(syncAsyncType); + + // 가상응답 여부 + String simYn = "T".equals(eaiMessageEntity.getTrantype()) ? "Y" : "N"; + vo.setSimYn(simYn); vo.setToAdapter(requestEntity.getPsvsysadptrbzwkgroupname()); vo.setToutVal(requestEntity.getToutval()); @@ -193,4 +197,4 @@ public interface ApiInterfaceUIMapper { break; } } -} +} \ No newline at end of file From d8f477550461a7dcb5d7bf46fee208320da3edf2 Mon Sep 17 00:00:00 2001 From: daekuk Date: Thu, 6 Nov 2025 15:11:20 +0900 Subject: [PATCH 29/49] =?UTF-8?q?=EC=8B=A0=EA=B7=9C=EC=83=9D=EC=84=B1?= =?UTF-8?q?=EC=8B=9C=20=EA=B0=80=EC=83=81=EC=9D=91=EB=8B=B5=20=EC=A0=80?= =?UTF-8?q?=EC=9E=A5=EC=95=88=ED=95=98=EB=8A=94=20=EB=B6=80=EB=B6=84=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../onl/transaction/apim/mapping/ApiInterfaceUIMapper.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/com/eactive/eai/rms/onl/transaction/apim/mapping/ApiInterfaceUIMapper.java b/src/main/java/com/eactive/eai/rms/onl/transaction/apim/mapping/ApiInterfaceUIMapper.java index 6ac8dff..c70d363 100644 --- a/src/main/java/com/eactive/eai/rms/onl/transaction/apim/mapping/ApiInterfaceUIMapper.java +++ b/src/main/java/com/eactive/eai/rms/onl/transaction/apim/mapping/ApiInterfaceUIMapper.java @@ -190,6 +190,11 @@ public interface ApiInterfaceUIMapper { if(vo == null || vo.getSyncAsyncType() == null){ return; } + + // 가상응답 여부 + String tranType = "Y".equals(vo.getSimYn()) ? "T" : "R"; + entity.setTrantype(tranType); + switch(vo.getSyncAsyncType()){ case "async": case "asyncSync": From 398c76f7db79203790fc0d805c3816eedda8ba75 Mon Sep 17 00:00:00 2001 From: Rinjae Date: Fri, 7 Nov 2025 13:14:58 +0900 Subject: [PATCH 30/49] =?UTF-8?q?=EA=B2=8C=EC=8B=9C=ED=8C=90=20=EA=B2=8C?= =?UTF-8?q?=EC=8B=9C=EB=AC=BC=20=EC=9E=91=EC=84=B1=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WebContent/WEB-INF/web.xml | 18 +++++------------- .../portalnotice/PortalNoticeManService.java | 17 ++++++++++++++--- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/WebContent/WEB-INF/web.xml b/WebContent/WEB-INF/web.xml index aad14c7..f108b9c 100644 --- a/WebContent/WEB-INF/web.xml +++ b/WebContent/WEB-INF/web.xml @@ -51,6 +51,11 @@ encodingFilter *.file + + + encodingFilter + *.json + - - springapp diff --git a/src/main/java/com/eactive/eai/rms/onl/apim/portalnotice/PortalNoticeManService.java b/src/main/java/com/eactive/eai/rms/onl/apim/portalnotice/PortalNoticeManService.java index 9e125a3..64ffe55 100644 --- a/src/main/java/com/eactive/eai/rms/onl/apim/portalnotice/PortalNoticeManService.java +++ b/src/main/java/com/eactive/eai/rms/onl/apim/portalnotice/PortalNoticeManService.java @@ -5,9 +5,11 @@ import com.eactive.apim.portal.file.entity.FileInfo; import com.eactive.apim.portal.file.service.FileService; import com.eactive.apim.portal.file.service.FileTypeContext; import com.eactive.apim.portal.portalNotice.entity.PortalNotice; +import com.eactive.eai.common.util.ContainerUtil; import com.eactive.eai.rms.common.base.BaseService; import com.eactive.eai.rms.data.entity.onl.apim.portalnotice.PortalNoticeService; import com.eactive.eai.rms.data.entity.onl.apim.portalnotice.PortalNoticeUISearch; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -18,19 +20,28 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; +import java.io.UnsupportedEncodingException; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.Optional; @Service @Transactional(transactionManager = "transactionManagerForEMS") +@Slf4j public class PortalNoticeManService extends BaseService { private final PortalNoticeService portalNoticeService; private final PortalNoticeUIMapper portalNoticeUIMapper; - private final FileService fileService; + private final FileService fileService; private String decodeString(String value) { -// return new String(value.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8); + if (ContainerUtil.get() == ContainerUtil.TOMCAT) { + try { + return new String(value.getBytes("euc-kr"), StandardCharsets.UTF_8); + } catch (UnsupportedEncodingException e) { + log.warn("Failed euc-kr to UTF-8", e); + return value; + } + } return new String(value.getBytes(Charset.defaultCharset()), StandardCharsets.UTF_8); } @@ -102,7 +113,7 @@ public class PortalNoticeManService extends BaseService { if (file != null && !file.isEmpty()) { // 새로운 파일이 업로드된 경우에만 처리 String decodedFileName = decodeString(portalNoticeUI.getFileName()); FileTypeContext.setFileType("notice"); - FileInfo fileInfo = fileService.createOrUpdateSingleFile(portalNotice.getFileId(), file, decodedFileName); + FileInfo fileInfo = fileService.createOrUpdateSingleFile(portalNotice.getFileId(), file, decodedFileName, true); if (fileInfo != null) { portalNotice.setFileId(fileInfo.getFileId()); From 2a845e0a2f2b23a277427a85a1cae3a5fa041aaf Mon Sep 17 00:00:00 2001 From: dogyeom Date: Fri, 7 Nov 2025 17:22:35 +0900 Subject: [PATCH 31/49] =?UTF-8?q?=EB=AF=B8=EC=82=AC=EC=9A=A9=20=ED=85=8C?= =?UTF-8?q?=EC=9D=B4=EB=B8=94=20=EA=B4=80=EB=A0=A8=20=EC=BF=BC=EB=A6=AC=20?= =?UTF-8?q?=EB=B0=8F=20=EC=98=A4=EB=A5=98=20=EB=B6=80=EB=B6=84=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../comm/server/BapServerController.java | 2 +- .../message/BapMessageProcController.java | 35 ++++----- .../work/message/BapMessageProcDao.java | 5 ++ .../work/message/BapMessageProcService.java | 20 ++++-- .../procWork/BapProcWorkController.java | 4 +- .../BapTransactionStatusController.java | 72 ++++++++++--------- .../BapTransactionStatusDao.java | 15 +++- .../BapTransactionStatusService.java | 29 ++++---- .../BapTransactionTraceController.java | 9 ++- .../BapTransactionTraceDao.java | 4 ++ .../BapTransactionTraceService.java | 10 ++- .../BapTransactionWaitController.java | 4 +- .../rms/bap/manage/adapter/Adapter-oracle.xml | 3 + .../bap/manage/common/AdapterPropertyMan.xml | 14 ++-- .../rms/bap/manage/message/FlowRuleMan.xml | 6 +- .../bap/manage/work/MessageProcMan-oracle.xml | 6 +- .../rms/bap/manage/work/MessageProcMan.xml | 4 ++ .../bap/manage/work/SystemInstMan-oracle.xml | 6 ++ 18 files changed, 159 insertions(+), 89 deletions(-) diff --git a/src/main/java/com/eactive/eai/rms/bap/manage/comm/server/BapServerController.java b/src/main/java/com/eactive/eai/rms/bap/manage/comm/server/BapServerController.java index 1796bb7..f3257f6 100644 --- a/src/main/java/com/eactive/eai/rms/bap/manage/comm/server/BapServerController.java +++ b/src/main/java/com/eactive/eai/rms/bap/manage/comm/server/BapServerController.java @@ -101,7 +101,7 @@ public class BapServerController extends BapBaseAnnotationController { public ModelAndView initCombo( HttpServletRequest request, HttpServletResponse response,String eaiSvcName) throws Exception { - List> listServer = ibatisComboService.selectListComboForTable("TSEAICM20", "code", "codename","codegroup = 'YN' "); + List> listServer = ibatisComboService.selectListComboForTable("TSEAIBP03","EAISEVRINSTNCNAME","EAISEVRINSTNCNAME"); Map resultMap = new HashMap(); resultMap.put("serverRows" , listServer); diff --git a/src/main/java/com/eactive/eai/rms/bap/manage/work/message/BapMessageProcController.java b/src/main/java/com/eactive/eai/rms/bap/manage/work/message/BapMessageProcController.java index f674a8d..47c7bee 100644 --- a/src/main/java/com/eactive/eai/rms/bap/manage/work/message/BapMessageProcController.java +++ b/src/main/java/com/eactive/eai/rms/bap/manage/work/message/BapMessageProcController.java @@ -137,20 +137,20 @@ public class BapMessageProcController extends BapBaseAnnotationController { List> bjobBzwkDstcd = comboService.selectListComboForTableWithCode("TSEAIBJ02", "BJOBBZWKDSTCD", "BJOBBZWKNAME"); List> bjobInstiDstcd = comboService.selectListComboForTableWithCode("TSEAIBJ06", "OSIDINSTIDSTCD", "OSIDINSTINAME"); // -// List> sysCd = comboService.selectListComboForTableWithCode("TSEAIBJ11", "SYSCD", "SYSNAME"); - List> uapplCd = //comboService.selectListComboForTableWithCode("TSEAICM01", "TRIM(EAIBZWKDSTCD)", "BZWKDSTICNAME"); - comboService.selectListComboForTable("TSEAICM01", "TRIM(EAIBZWKDSTCD)", "BZWKDSTICNAME","systeminoutdstcd = 'I' "); - List> bJobCycleGb = //comboService.selectListCombo("BAP_CYCLE_GB"); // BATCH작업주기구분 - comboService.selectListComboForTable("TSEAICM20", "code", "codename","codegroup = 'BAP_CYCLE_GB' "); + List> sysCd = comboService.selectListComboForTableWithCode("TSEAIBJ11", "SYSCD", "SYSNAME"); +// List> uapplCd = //comboService.selectListComboForTableWithCode("TSEAICM01", "TRIM(EAIBZWKDSTCD)", "BZWKDSTICNAME"); +// comboService.selectListComboForTable("TSEAICM01", "TRIM(EAIBZWKDSTCD)", "BZWKDSTICNAME","systeminoutdstcd = 'I' "); +// List> bJobCycleGb = //comboService.selectListCombo("BAP_CYCLE_GB"); // BATCH작업주기구분 +// comboService.selectListComboForTable("TSEAICM20", "code", "codename","codegroup = 'BAP_CYCLE_GB' "); Map resultMap = new HashMap(); resultMap.put("bjobBzwkDstcd" , bjobBzwkDstcd); resultMap.put("bjobInstiDstcd", bjobInstiDstcd); // resultMap.put("groupCoCd" , groupCoCd); -// resultMap.put("sysCd" , sysCd); - resultMap.put("uapplCd" , uapplCd); - resultMap.put("bJobCycleGb" , bJobCycleGb); + resultMap.put("sysCd" , sysCd); +// resultMap.put("uapplCd" , uapplCd); +// resultMap.put("bJobCycleGb" , bJobCycleGb); ModelAndView modelAndView = new ModelAndView("jsonView",resultMap); return modelAndView; @@ -159,20 +159,23 @@ public class BapMessageProcController extends BapBaseAnnotationController { @RequestMapping(value= "/bap/admin/work/messageProcMan.json",params = "cmd=LIST_PROP") public ModelAndView getProps( HttpServletRequest request, HttpServletResponse response, - @RequestParam String bjobBzwkDstcd, - @RequestParam String bjobMsgDstcd + @RequestParam String bjobBzwkDstcd ) throws Exception { Map resultMap = new HashMap(); +// if(!StringUtils.isEmpty(bjobBzwkDstcd)) { +// HashMap propMap = service.getProps(bjobBzwkDstcd); // 프로퍼티 정보 +// HashMap InstMap = service.selectOsidInstiDstcd(bjobBzwkDstcd); +// +// resultMap.put("propMap", propMap); +// resultMap.put("InstMap", InstMap); +// } + if(!StringUtils.isEmpty(bjobBzwkDstcd)) { - HashMap propMap = service.getProps(bjobBzwkDstcd, bjobMsgDstcd); // 프로퍼티 정보 - HashMap InstMap = service.selectOsidInstiDstcd(bjobBzwkDstcd); - - resultMap.put("propMap", propMap); - resultMap.put("InstMap", InstMap); + HashMap map = service.getProps(bjobBzwkDstcd); } - + ModelAndView modelAndView = new ModelAndView("jsonView", resultMap); return modelAndView; } diff --git a/src/main/java/com/eactive/eai/rms/bap/manage/work/message/BapMessageProcDao.java b/src/main/java/com/eactive/eai/rms/bap/manage/work/message/BapMessageProcDao.java index e10de38..e7c56dc 100644 --- a/src/main/java/com/eactive/eai/rms/bap/manage/work/message/BapMessageProcDao.java +++ b/src/main/java/com/eactive/eai/rms/bap/manage/work/message/BapMessageProcDao.java @@ -87,4 +87,9 @@ public class BapMessageProcDao extends SqlMapClientTemplateDao { public void deleteVerifyInfo(HashMap param) throws Exception{ this.template.delete("BapMessageProc.deleteVerifyInfo", param); } + + public void deleteBS01(HashMap param) throws Exception{ + this.template.delete("BapMessageProc.deleteBS01", param); + } + } \ No newline at end of file diff --git a/src/main/java/com/eactive/eai/rms/bap/manage/work/message/BapMessageProcService.java b/src/main/java/com/eactive/eai/rms/bap/manage/work/message/BapMessageProcService.java index d0e3441..180f2ac 100644 --- a/src/main/java/com/eactive/eai/rms/bap/manage/work/message/BapMessageProcService.java +++ b/src/main/java/com/eactive/eai/rms/bap/manage/work/message/BapMessageProcService.java @@ -75,9 +75,8 @@ public class BapMessageProcService extends BapBaseService { } } - public void insert(HashMap paramMap, HashMap[] list, HashMap connList) throws Exception { - -// paramMap.put( "bjobMsgDstcd", dao.generatePK(paramMap)); + public void insert(HashMap paramMap, HashMap[] list, HashMap connList) throws Exception { + paramMap.put( "bjobMsgDstcd", dao.generatePK(paramMap)); dao.insert(paramMap); telePropDao.delete(paramMap); telePropDao.deleteProperty(paramMap); @@ -99,7 +98,8 @@ public class BapMessageProcService extends BapBaseService { public void delete(HashMap paramMap) throws Exception { dao.delete(paramMap); - dao.deleteVerifyInfo(paramMap); +// dao.deleteVerifyInfo(paramMap); + dao.deleteBS01(paramMap); telePropDao.delete(paramMap); telePropDao.deleteProperty(paramMap); } @@ -114,6 +114,18 @@ public class BapMessageProcService extends BapBaseService { map.put("rows", list); return map; } + + public HashMap getProps(String bjobBzwkDstcd) throws Exception { + + HashMap param = new HashMap(); + param.put("bjobBzwkDstcd", bjobBzwkDstcd); + List> list = dao.getProps(param); + HashMap map = new HashMap(); + + map.put("rows", list); + + return map; + } public HashMap selectOsidInstiDstcd(String bjobBzwkDstcd) throws Exception { diff --git a/src/main/java/com/eactive/eai/rms/bap/tansaction/procWork/BapProcWorkController.java b/src/main/java/com/eactive/eai/rms/bap/tansaction/procWork/BapProcWorkController.java index d7e4b55..b185650 100644 --- a/src/main/java/com/eactive/eai/rms/bap/tansaction/procWork/BapProcWorkController.java +++ b/src/main/java/com/eactive/eai/rms/bap/tansaction/procWork/BapProcWorkController.java @@ -92,14 +92,14 @@ public class BapProcWorkController extends BapBaseAnnotationController { List> bjobBzwkDstcd = comboService.selectListComboForTableWithCode("TSEAIBJ02", "BJOBBZWKDSTCD", "BJOBBZWKNAME"); List> osidInstiDstcd = statusService.selectOsidInstiDstcd(""); - List> svcPrcssNo = comboService.selectListComboForTable("TSEAICM20", "code", "codename","codegroup = 'SVC_PRCSS_NO' "); +// List> svcPrcssNo = comboService.selectListComboForTable("TSEAICM20", "code", "codename","codegroup = 'SVC_PRCSS_NO' "); //comboService.selectListCombo("SVC_PRCSS_NO"); Map resultMap = new HashMap(); resultMap.put("bjobBzwkDstcd" , bjobBzwkDstcd); resultMap.put("osidInstiDstcd" , osidInstiDstcd); - resultMap.put("svcPrcssNo" , svcPrcssNo); +// resultMap.put("svcPrcssNo" , svcPrcssNo); ModelAndView modelAndView = new ModelAndView("jsonView",resultMap); return modelAndView; diff --git a/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionStatus/BapTransactionStatusController.java b/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionStatus/BapTransactionStatusController.java index 6f0f4c1..78511ed 100644 --- a/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionStatus/BapTransactionStatusController.java +++ b/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionStatus/BapTransactionStatusController.java @@ -50,32 +50,30 @@ public class BapTransactionStatusController extends BapBaseAnnotationController * @throws Exception */ @RequestMapping(value= "/bap/transaction/transactionStatusMan.json", params = "cmd=LIST") - public ModelAndView selectList(HttpServletRequest request, + public ModelAndView selectList(HttpServletRequest request, JsonPageVo pageVo, @RequestParam HashMap paramMap) throws Exception { -// String date = (String)paramMap.get("searchStartYYYYMMDD"); -// CommonCommand command = new CommonCommand("com.eactive.eai.agent.schedule.GetScheduleBasisListCommand",date); + String date = (String)paramMap.get("searchStartYYYYMMDD"); + CommonCommand command = new CommonCommand("com.eactive.eai.agent.schedule.GetScheduleBasisListCommand",date); + + Map returnMap = agentUtilService.broadcast(command); + Iterator iter = returnMap.keySet().iterator(); + String svrName = iter.next(); + String[] basis = null; + + if(returnMap.get(svrName) instanceof String[]) { + basis = (String[])returnMap.get(svrName); + } -// String[] basis = null; - - Map returnMap = null; - Iterator iter = null; - String svrName = ""; -// try { -// returnMap = agentUtilService.broadcast(command); -// iter = returnMap.keySet().iterator(); -// svrName = iter.next(); -// basis = (String[])returnMap.get(svrName); -// } catch (Exception e) { -// basis = new String[1]; -// basis[0] = "D"; -// } - -// paramMap.put("basis", basis); + if ( basis == null ){ + basis = new String[1]; + basis[0] = "D"; + } + paramMap.put("basis", basis); String activeTab = (String)paramMap.get("activeTab"); if ( activeTab.equals("tabS") ){ - CommonCommand command = new CommonCommand("com.eactive.eai.agent.transaction.ProcessingFileTransferCommand",""); + command = new CommonCommand("com.eactive.eai.agent.transaction.ProcessingFileTransferCommand",""); returnMap = agentUtilService.broadcast(command); iter = returnMap.keySet().iterator(); svrName = iter.next(); @@ -84,9 +82,22 @@ public class BapTransactionStatusController extends BapBaseAnnotationController paramMap.put("procList", list); } - Map resultMap = service.selectList( paramMap); + //Map resultMap = service.selectList( paramMap); - ModelAndView modelAndView = new ModelAndView("jsonView",resultMap); + //ModelAndView modelAndView = new ModelAndView("jsonView",resultMap); + + Map listMap = service.selectList(pageVo.getStartNum(), pageVo.getEndNum(), paramMap); + + pageVo.setTotalCount((Integer)listMap.get("totalCount")); + + Map resultMap = new HashMap(); + resultMap.put("total" , pageVo.getTotal()); //전체 페이지수 + resultMap.put("page" , pageVo.getPage()); //현재 페이지수 + resultMap.put("records", pageVo.getTotalCount()); //전체 레코드건수 + resultMap.put("rows" , listMap.get("rows")); + + ModelAndView modelAndView = new ModelAndView("jsonView",resultMap); + return modelAndView; } @@ -135,22 +146,19 @@ public class BapTransactionStatusController extends BapBaseAnnotationController public ModelAndView initCombo( HttpServletRequest request, HttpServletResponse response) throws Exception { - List> groupCoCd = comboService.selectListComboForTable("TSEAICM20", "code", "codename","codegroup = 'EAIGROUPCOCD' "); - //comboService.selectListCombo("EAIGROUPCOCD"); - List> bjobBzwkDstcd = comboService.selectListComboForTableWithCode("TSEAIBJ02", "BJOBBZWKDSTCD", "BJOBBZWKNAME"); - List> osidInstiDstcd = service.selectOsidInstiDstcd(""); - List> uapplCd = comboService.selectListComboForTableWithCode("TSEAICM01", "TRIM(EAIBZWKDSTCD)", "BZWKDSTICNAME"); + List> bjobBzwkDstcd = comboService.selectListComboForTableWithCode("TSEAIBJ02", "BJOBBZWKDSTCD", "BJOBBZWKNAME"); + List> osidInstiDstcd = service.selectOsidInstiDstcd(""); +// List> uapplCd = comboService.selectListComboForTableWithCode("TSEAICM01", "TRIM(EAIBZWKDSTCD)", "BZWKDSTICNAME"); Map resultMap = new HashMap(); resultMap.put("bjobBzwkDstcd" , bjobBzwkDstcd); resultMap.put("osidInstiDstcd" , osidInstiDstcd); - resultMap.put("groupCoCd" , groupCoCd); - resultMap.put("uapplCd" , uapplCd); +// resultMap.put("uapplCd" , uapplCd); - ModelAndView modelAndView = new ModelAndView("jsonView",resultMap); - return modelAndView; - } + ModelAndView modelAndView = new ModelAndView("jsonView",resultMap); + return modelAndView; + } @RequestMapping(value= "/bap/transaction/transactionStatusMan.json",params = "cmd=LIST_ORGN_COMBO") public ModelAndView initOrgnCombo( HttpServletRequest request, diff --git a/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionStatus/BapTransactionStatusDao.java b/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionStatus/BapTransactionStatusDao.java index d38f2ee..e562a90 100644 --- a/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionStatus/BapTransactionStatusDao.java +++ b/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionStatus/BapTransactionStatusDao.java @@ -15,18 +15,31 @@ public class BapTransactionStatusDao extends SqlMapClientTemplateDao { public List> findStatusList(HashMap param) throws Exception { return (List>)template.queryForList("BapTranStatus.list_normal", param); } + public int findStatusListCount(HashMap param) throws Exception { + return (Integer)template.queryForObject("BapTranStatus.list_normal_count", param); + } public List> findErrorList(HashMap param) throws Exception { return (List>)template.queryForList("BapTranStatus.list_e", param); } + public int findErrorListCount(HashMap param) throws Exception { + return (Integer)template.queryForObject("BapTranStatus.list_e_count", param); + } public List> findFutureList(HashMap param) throws Exception { return (List>)template.queryForList("BapTranStatus.list_f", param); } + public int findFutureListCount(HashMap param) throws Exception { + return (Integer)template.queryForObject("BapTranStatus.list_f_count", param); + } public List> findDelayList(HashMap param) throws Exception { return (List>)template.queryForList("BapTranStatus.list_l", param); } public List> findSpecList(HashMap param) throws Exception { return (List>)template.queryForList("BapTranStatus.speclist", param); - } + } + public int findSpecListCount(HashMap param) throws Exception { + return (Integer)template.queryForObject("BapTranStatus.speclist_count", param); + } + public HashMap selectDetail(HashMap param) throws Exception { return (HashMap)template.queryForObject("BapTranStatus.masterlog", param); diff --git a/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionStatus/BapTransactionStatusService.java b/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionStatus/BapTransactionStatusService.java index eb11183..a716cb6 100644 --- a/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionStatus/BapTransactionStatusService.java +++ b/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionStatus/BapTransactionStatusService.java @@ -20,46 +20,51 @@ public class BapTransactionStatusService extends BapBaseService { @Qualifier("bapTransactionStatusDao") private BapTransactionStatusDao dao; - public HashMap selectList(HashMap paramMap) throws Exception { - + public HashMap selectList(int startNum,int endNum, HashMap paramMap) throws Exception { + String activeTab = (String)paramMap.get("activeTab"); ArrayList tranPrcssDstcds = new ArrayList(); - ArrayList tranPrcssDstcds2 = new ArrayList(); - + paramMap.put("startNum" , startNum); + paramMap.put("endNum" , endNum); + HashMap map = new HashMap(); - + if ( activeTab.equals("tabE")){ tranPrcssDstcds.add("T"); - //tranPrcssDstcds.add("R"); + tranPrcssDstcds.add("R"); paramMap.put("tranPrcssDstcds", tranPrcssDstcds); - paramMap.put("tranPrcssDstcds2", tranPrcssDstcds2); List> listNomal = dao.findStatusList(paramMap); List> listError = dao.findErrorList(paramMap); map.put("rows", processErrorList(listNomal, listError)); - + map.put("totalCount", dao.findErrorListCount(paramMap)); }else if ( activeTab.equals("tabF")){ List> listF = dao.findFutureList(paramMap); map.put("rows", listF); + map.put("totalCount", dao.findFutureListCount(paramMap)); }else if ( activeTab.equals("tabQ")){ tranPrcssDstcds.add("Q"); paramMap.put("tranPrcssDstcds", tranPrcssDstcds); List> waitlist = dao.findStatusList(paramMap); map.put("rows", waitlist); - + map.put("totalCount", dao.findStatusListCount(paramMap)); }else if ( activeTab.equals("tabS")){ - tranPrcssDstcds2.add("S"); + tranPrcssDstcds.add("S"); paramMap.put("tranPrcssDstcds", tranPrcssDstcds); - paramMap.put("tranPrcssDstcds2", tranPrcssDstcds2); List> sendlist = dao.findStatusList(paramMap); @SuppressWarnings("unchecked") List> memList = (List>)paramMap.get("procList"); - processMemList(sendlist, memList); + + if(memList != null) { + processMemList(sendlist, memList); + } map.put("rows", sendlist); + map.put("totalCount", dao.findStatusListCount(paramMap)); }else if ( activeTab.equals("tabA")){ List> listA = dao.findSpecList(paramMap); map.put("rows", listA); + map.put("totalCount", dao.findSpecListCount(paramMap)); } return map; diff --git a/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionTrace/BapTransactionTraceController.java b/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionTrace/BapTransactionTraceController.java index 2978d11..1610347 100644 --- a/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionTrace/BapTransactionTraceController.java +++ b/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionTrace/BapTransactionTraceController.java @@ -17,7 +17,6 @@ import org.springframework.web.servlet.ModelAndView; import com.eactive.eai.agent.command.CommonCommand; import com.eactive.eai.rms.common.base.BapBaseAnnotationController; -import com.eactive.eai.rms.common.combo.ComboService; import com.eactive.eai.rms.common.combo.IbatisComboService; import com.eactive.eai.rms.common.login.SessionManager; import com.eactive.eai.rms.common.util.CamelCaseUtil; @@ -72,15 +71,15 @@ public class BapTransactionTraceController extends BapBaseAnnotationController public ModelAndView initCombo( HttpServletRequest request, HttpServletResponse response) throws Exception { - List> groupCoCd = comboService.selectListComboForTable("TSEAICM20", "code", "codename","codegroup = 'EAIGROUPCOCD' "); +// List> groupCoCd = comboService.selectListComboForTable("TSEAICM20", "code", "codename","codegroup = 'EAIGROUPCOCD' "); List> bjobBzwkDstcd = comboService.selectListComboForTableWithCode("TSEAIBJ02", "BJOBBZWKDSTCD", "BJOBBZWKNAME"); - List> uapplCd = comboService.selectListComboForTableWithCode("TSEAICM01", "TRIM(EAIBZWKDSTCD)", "BZWKDSTICNAME"); +// List> uapplCd = comboService.selectListComboForTableWithCode("TSEAICM01", "TRIM(EAIBZWKDSTCD)", "BZWKDSTICNAME"); Map resultMap = new HashMap(); resultMap.put("bjobBzwkDstcd" , bjobBzwkDstcd); - resultMap.put("groupCoCd" , groupCoCd); - resultMap.put("uapplCd" , uapplCd); +// resultMap.put("groupCoCd" , groupCoCd); +// resultMap.put("uapplCd" , uapplCd); ModelAndView modelAndView = new ModelAndView("jsonView",resultMap); return modelAndView; diff --git a/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionTrace/BapTransactionTraceDao.java b/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionTrace/BapTransactionTraceDao.java index 474bb38..c34bca0 100644 --- a/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionTrace/BapTransactionTraceDao.java +++ b/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionTrace/BapTransactionTraceDao.java @@ -19,4 +19,8 @@ public class BapTransactionTraceDao extends SqlMapClientTemplateDao { public List> selectList(HashMap param) throws Exception { return (List>)template.queryForList("BapTransactionTrace.selectList", param); } + + public List> selectOsidInstiDstcd(HashMap param) throws Exception { + return (List>)template.queryForList("BapTranStatus.selectOsidInstiDstcd", param); + } } \ No newline at end of file diff --git a/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionTrace/BapTransactionTraceService.java b/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionTrace/BapTransactionTraceService.java index 79cf1e7..93e5906 100644 --- a/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionTrace/BapTransactionTraceService.java +++ b/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionTrace/BapTransactionTraceService.java @@ -34,6 +34,14 @@ public class BapTransactionTraceService extends BapBaseService { return map; - } + } + + public List> selectOsidInstiDstcd(String bjobBzwkDstcd) throws Exception { + + HashMap param = new HashMap(); + param.put("bjobBzwkDstcd", bjobBzwkDstcd); + + return dao.selectOsidInstiDstcd(param); + } } \ No newline at end of file diff --git a/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionWait/BapTransactionWaitController.java b/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionWait/BapTransactionWaitController.java index 73b097c..bab492b 100644 --- a/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionWait/BapTransactionWaitController.java +++ b/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionWait/BapTransactionWaitController.java @@ -86,14 +86,14 @@ public class BapTransactionWaitController extends BapBaseAnnotationController { List> bjobBzwkDstcd = comboService.selectListComboForTableWithCode("TSEAIBJ02", "BJOBBZWKDSTCD", "BJOBBZWKNAME"); List> osidInstiDstcd = statusService.selectOsidInstiDstcd(""); - List> svcPrcssNo = comboService.selectListComboForTable("TSEAICM20", "code", "codename","codegroup = 'SVC_PRCSS_NO' "); +// List> svcPrcssNo = comboService.selectListComboForTable("TSEAICM20", "code", "codename","codegroup = 'SVC_PRCSS_NO' "); //comboService.selectListCombo("SVC_PRCSS_NO"); Map resultMap = new HashMap(); resultMap.put("bjobBzwkDstcd" , bjobBzwkDstcd); resultMap.put("osidInstiDstcd" , osidInstiDstcd); - resultMap.put("svcPrcssNo" , svcPrcssNo); +// resultMap.put("svcPrcssNo" , svcPrcssNo); ModelAndView modelAndView = new ModelAndView("jsonView",resultMap); return modelAndView; diff --git a/src/main/resources/com/eactive/eai/rms/bap/manage/adapter/Adapter-oracle.xml b/src/main/resources/com/eactive/eai/rms/bap/manage/adapter/Adapter-oracle.xml index a7a9be8..5386651 100644 --- a/src/main/resources/com/eactive/eai/rms/bap/manage/adapter/Adapter-oracle.xml +++ b/src/main/resources/com/eactive/eai/rms/bap/manage/adapter/Adapter-oracle.xml @@ -47,6 +47,9 @@ UPPER(AdptrBzwkGroupName) LIKE '%' || #searchAdptrBzwkGroupName# || '%' + + UPPER(AdptrBzwkGroupDesc) LIKE '%' || #searchAdptrBzwkGroupDesc# || '%' + ) TMP ) T WHERE ROWNO BETWEEN #startNum# AND #endNum# diff --git a/src/main/resources/com/eactive/eai/rms/bap/manage/common/AdapterPropertyMan.xml b/src/main/resources/com/eactive/eai/rms/bap/manage/common/AdapterPropertyMan.xml index 4d6dbe6..e280b9f 100644 --- a/src/main/resources/com/eactive/eai/rms/bap/manage/common/AdapterPropertyMan.xml +++ b/src/main/resources/com/eactive/eai/rms/bap/manage/common/AdapterPropertyMan.xml @@ -3,40 +3,40 @@ SELECT PRPTYGROUPNAME AS "PRPTYGROUPNAME", PRPTYGROUPDESC AS "PRPTYGROUPDESC" - FROM $schemaId$.TSEAIBA03 + FROM $schemaId$.TSEAIBP01 WHERE PrptyGroupName = #prptyGroupName# SELECT PRPTYNAME AS "PRPTYNAME", PRPTY2VAL AS "PRPTY2VAL" - FROM $schemaId$.TSEAIBA04 + FROM $schemaId$.TSEAIBP02 WHERE PrptyGroupName = #prptyGroupName# - UPDATE $schemaId$.TSEAIBA03 + UPDATE $schemaId$.TSEAIBP01 SET PrptyGroupDesc = #prptyGroupDesc# WHERE PrptyGroupName = #prptyGroupName# - INSERT INTO $schemaId$.TSEAIBA03( + INSERT INTO $schemaId$.TSEAIBP01( PrptyGroupName, PrptyGroupDesc) VALUES(#prptyGroupName#, #prptyGroupDesc#) - INSERT INTO $schemaId$.TSEAIBA04( + INSERT INTO $schemaId$.TSEAIBP02( PrptyGroupName, PrptyName, Prpty2Val) VALUES(#prptyGroupName#, #prptyName#, #prpty2Val#) - DELETE FROM $schemaId$.TSEAIBA03 WHERE PrptyGroupName = #prptyGroupName# + DELETE FROM $schemaId$.TSEAIBP01 WHERE PrptyGroupName = #prptyGroupName# - DELETE FROM $schemaId$.TSEAIBA04 WHERE PrptyGroupName = #prptyGroupName# + DELETE FROM $schemaId$.TSEAIBP02 WHERE PrptyGroupName = #prptyGroupName# diff --git a/src/main/resources/com/eactive/eai/rms/bap/manage/message/FlowRuleMan.xml b/src/main/resources/com/eactive/eai/rms/bap/manage/message/FlowRuleMan.xml index f8a14f0..e6724d2 100644 --- a/src/main/resources/com/eactive/eai/rms/bap/manage/message/FlowRuleMan.xml +++ b/src/main/resources/com/eactive/eai/rms/bap/manage/message/FlowRuleMan.xml @@ -66,8 +66,8 @@ #telgmPtrnDstcd# , #telgmDtalsOperCd# , #bjobCmnTelgmTranCd# , - #toutVal#::NUMERIC , - #bjobIterNotms#::NUMERIC , + #toutVal# , + #bjobIterNotms# , #telgmClsID# , #cndnItemDcsnCtnt# , #cndnTelgmPtrnCd# , @@ -75,7 +75,7 @@ #cndnTranClsfiCd# , #cndnRspnsCd# , #bjobStgeFlxblCndnDesc# , - #tranPrcssPrity#::NUMERIC ) + #tranPrcssPrity# ) diff --git a/src/main/resources/com/eactive/eai/rms/bap/manage/work/MessageProcMan-oracle.xml b/src/main/resources/com/eactive/eai/rms/bap/manage/work/MessageProcMan-oracle.xml index 65001e2..9d14d71 100644 --- a/src/main/resources/com/eactive/eai/rms/bap/manage/work/MessageProcMan-oracle.xml +++ b/src/main/resources/com/eactive/eai/rms/bap/manage/work/MessageProcMan-oracle.xml @@ -101,7 +101,7 @@ MsgPrcssPrity , BjobTelgmRecSize , SysCd , - SysCd2 , + UapplCd , SndrcvFileName , ThisMsgChrgIDs , @@ -125,7 +125,7 @@ #msgPrcssPrity# , #bjobTelgmRecSize# , NVL(#sysCd#, ' ' ) , - NVL(#sysCd2#, ' ' ) , + NVL(#uapplCd#, ' ' ) , #sndrcvFileName# , #thisMsgChrgIDs# , @@ -149,7 +149,7 @@ MsgPrcssPrity = #msgPrcssPrity# , BjobTelgmRecSize = #bjobTelgmRecSize# , SysCd = NVL(#sysCd#, ' ' ) , - SysCd2 = NVL(#sysCd2#, ' ' ) , + UapplCd = #uapplCd# , SndrcvFileName = #sndrcvFileName# , ThisMsgChrgIDs = #thisMsgChrgIDs# , diff --git a/src/main/resources/com/eactive/eai/rms/bap/manage/work/MessageProcMan.xml b/src/main/resources/com/eactive/eai/rms/bap/manage/work/MessageProcMan.xml index f60f593..d1fe75f 100644 --- a/src/main/resources/com/eactive/eai/rms/bap/manage/work/MessageProcMan.xml +++ b/src/main/resources/com/eactive/eai/rms/bap/manage/work/MessageProcMan.xml @@ -51,4 +51,8 @@ DELETE FROM $schemaId$.TSEAIBJ01 WHERE BjobMsgDstcd = #bjobMsgDstcd# + + DELETE FROM $schemaId$.TSEAIBS01 + WHERE BjobMsgDstcd = #bjobMsgDstcd# + \ No newline at end of file diff --git a/src/main/resources/com/eactive/eai/rms/bap/manage/work/SystemInstMan-oracle.xml b/src/main/resources/com/eactive/eai/rms/bap/manage/work/SystemInstMan-oracle.xml index dc7a5f4..c647ca5 100644 --- a/src/main/resources/com/eactive/eai/rms/bap/manage/work/SystemInstMan-oracle.xml +++ b/src/main/resources/com/eactive/eai/rms/bap/manage/work/SystemInstMan-oracle.xml @@ -31,6 +31,9 @@ AND A.OsidInstiName LIKE '%' || #searchOsidInstiName# || '%' AND A.OsidInstiDstcd LIKE '%' || #searchOsidInstiDstcd# || '%' AND B.BjobBzwkName LIKE '%' || #searchBjobBzwkName# || '%' + AND A.BjobBzwkDstcd LIKE '%' || #searchBjobBzwkDstcd# || '%' + AND A.SendPrcssRuleCd LIKE '%' || #searchSendPrcssRulecd# || '%' + AND A.RecvPrcssRuleCd LIKE '%' || #searchRecvPrcssRulecd# || '%' ) TMP WHERE ROWNO BETWEEN #startNum# AND #endNum# @@ -43,6 +46,9 @@ AND A.OsidInstiName LIKE '%' || #searchOsidInstiName# || '%' AND A.OsidInstiDstcd LIKE '%' || #searchOsidInstiDstcd# || '%' AND B.BjobBzwkName LIKE '%' || #searchBjobBzwkName# || '%' + AND A.BjobBzwkDstcd LIKE '%' || #searchBjobBzwkDstcd# || '%' + AND A.SendPrcssRuleCd LIKE '%' || #searchSendPrcssRulecd# || '%' + AND A.RecvPrcssRuleCd LIKE '%' || #searchRecvPrcssRulecd# || '%' From e830715a2e5e119d5a84472fd0d458d33720b67e Mon Sep 17 00:00:00 2001 From: "Yunsam.Eo" Date: Fri, 7 Nov 2025 17:24:18 +0900 Subject: [PATCH 32/49] =?UTF-8?q?=EC=98=A4=ED=83=80=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WebContent/common/errors/error.jsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WebContent/common/errors/error.jsp b/WebContent/common/errors/error.jsp index 26a78a4..7b6e1bc 100644 --- a/WebContent/common/errors/error.jsp +++ b/WebContent/common/errors/error.jsp @@ -35,7 +35,7 @@
From ffdf506e3e02bf9910508c8c044e2ea662c2092b Mon Sep 17 00:00:00 2001 From: "Yunsam.Eo" Date: Fri, 7 Nov 2025 17:32:00 +0900 Subject: [PATCH 33/49] =?UTF-8?q?=ED=85=8C=EB=A7=88=EB=B3=84=20favicon=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WebContent/img/ic_eai_favi_black.png | Bin 0 -> 1832 bytes WebContent/img/ic_eai_favi_pink.png | Bin 0 -> 1318 bytes WebContent/img/ic_eai_favi_yellow.png | Bin 0 -> 1306 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 WebContent/img/ic_eai_favi_black.png create mode 100644 WebContent/img/ic_eai_favi_pink.png create mode 100644 WebContent/img/ic_eai_favi_yellow.png diff --git a/WebContent/img/ic_eai_favi_black.png b/WebContent/img/ic_eai_favi_black.png new file mode 100644 index 0000000000000000000000000000000000000000..7b9e2d7ab36034e204913886794d0d7a82c1bc95 GIT binary patch literal 1832 zcmV+@2iN$CP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D2E9o{K~z{rrIvq8 zTh|rG&--EfJp;D+VQhi`69*D|(;!WjHG`=TNI^>)kdj!TN|mHRiJC4bkv1iZI*H_; zYMP>obyU-ayLvHVnHG{QOjd-NG6G7YwCiXGh2xL#LNc+aP$;G{|X_533@CR>zbRJLr$mjX)2X!kjA}etfd1O&+`-j z07;U;Z=MSP@ZWcrmzU=N0N{CE<953zJRZ-TrKP2vqB)*Rt^$bR;bE8EZcjxb5fjhz z832G}GTEF;rCt%7d_Ldr;C}^jiA3Vn`T6;W!C>$T0AS(?rMzepD(rT9l;?T5QmOQG zbaa?yGFfzCVd0OlSnMzW@DxRT!Esz!Hk;jqVOXZJvhw>FhNT#Wc{d)9cK`t7=jY!n zD=X{5Ff1cY052$j7#tjoa~wzMbh^JaH8mYpC=`pZyk``CzkeVajlM2)kR(a3Uax;s zsZ`z(CWu5LZ~OiJUjhKGR;#T#ovvG)Kwz~3@EbR7e4R)ns)~z?AGWo%?IB4rE_GsA zwsL7{$%Ny0M4?c8vDymb@%Rz1*Ey?gim zaJA&HylS^nsk}o`)TgT@hvoMFp}4sC3IISNk=Q4-!zvxXhlYm2*=)98_wL=NYHDhJ zD>iPFWHPx|p-@Z_1QC$h#2vuL#>R%T*=&JaE)N@xM!U%Ne?imqCk(?BJbCiuTZu$M zEB-Qs4v==cJ;n1pDHw{2i$7~_Zthenl^#LcAlT{Cr-R{exKI#`M&oDa&!0c6)oSPQ zU@+Kbx7*V^&y(fl<&G^|wpe8{StJ+??!0&J-r#EcWF6o~j~>m0!{I`+**v~y&mOBv zrD9wz*Uqa~uMQ)G2pAa|d1$lQ(A3n_JHqi8i9~Acc6-WZvmu6IzAHUG*E(D-*D;I5 zf~;0+zo3Oeq4EWHM=h<#XOG*4KkvE)N3$ zIGxUy#d=;|UOoT-MNx6$;>C-lfk2?q>-DxFga`o8jE#*AMWfLzDwWE)W54oU z3D!z7nJjWR94BUGW}33uES;a9PxSZqTkqe$-=bEl14oV=c?aV-j=p>M?k%s^`>Hrt zE|))TX=!;)tJO}5_4U%<-~apZ@$omr8bwiw3l}cDW;UBY5$<%-`}+DGS*_NOIgV3EZ5u(a*OLT6aQpY~zbdt@D1c>IRXUv} zA3b{1bo1uT-$?E2ggAcucx+-~;-!82_PwXm>0B!udV71H5pW#O6crWCPft%D^!a>s zEXyj4M&rlNI04A!=H`AhJ3ISkAP{KaIF44SRR6{>OnkFpXU?2)N2Ae_s;a6ldwP0a zCkTQS*_WNr%KrfX0C@1=!CNCEBfmlj;kC83e?4^QP`6U4^Z@|$_V%V(mVM^+n9b%t zcXf3g#4wBl062E+STdbX(|Wz$b@}q;A80h1RX6l=3jhF^ot^Exe*O9o%d!+nlIi;T z`azG!)3UIzVA#5Kt7H52?H@4=vvq82?58Zt(gzM4czf5bT_40^vDWVH?opG;G;!|S zIm`2sL#_f~`Gho$j*ecLo}NA^T%%g8cDARd=Q|jNu>b&*laoJoI2^yItgM_ob?Q_j z%d%>>+g)2-UHx~VBhO>SCX`ZAQZn1s)phvn*|RTg+O+9&0D!WxvMC`s06;@S!+WrN z@|D8!-%@1r=FJatC5N>XAfVIf{?Xdn`ZHKQ+gs!DxL&Z`zI}TD0HCzAbVeMr7IMA< zF$f`|udnZ)48v@rX*yV2TRR#Gg=!u@e!K(2F#hDplg$Q$VO$#bBGy#^06;JpthsjW z+Fuxk*(PWtNv1nHJKw6Wum9*-@7%1r0Qja8PN%cY=kwK36csU1=;$EP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1iMK@K~z{rwO4Cw zRAmr7v#+x4;w}M7c}5}fN)Z%ImH^d6sf3ae2$HxZ;bCm>5hR%SM?)wi)+j-xJk$_c zgAz$&qRFDb9|;mf8bD)(io{1-Y9XY-2H5W2d*}FL*=6_c?PHgClJjHF%zSsg`DVU* zS4g5z@Z*1oVIH77Xvkcj&u$+Iq|gM|(3u@LCO}yga%E{lK;8jJJ^Zm!$odIg^6G@S z2>5_&w}j^n%kDcE3Q7Q@N+9!n4Jg5Q2+qs8QUL(8+{k;qyaPa#BH#spjhV8%Jbo4u zR_@UZf}thwbNgEWCIbKrosRZiy9c=U>Mtnv0WKHV&`Iv@RJ)H822FtTwvjvAwlmIO z0RTSNNvMK*y3#vkLnq;J11m>EUKuwIQ$rRAVM8ZDOvzl&jsd5D^R^LBRYTsKV<7-f zTECF^1E+611iib-fDc$a8ZuUry^!+T(?zI4){WbQfa}9dTN)%Cso^^6rn6L2f3(}~ z(xtt6oN>NKGUQ-SuCx0pbyo+eoNTv|bWT8D`|LMeeS~^PExWA{>aGsz(c84^>^FgM z9rYXMfcv1&LCbAIzHzt}Wm6!Fi|g&S`$WPnz}|$Mzg?kBHqyc>Q{J8H&G0Q4R4r?% zT5%%Y-Ti=dC+3|~`9fQ$VdKK2kp$yLxrXbgTP{*R=%7{~q=xIL^{qGUCCisqEH*0& zKYM-4sgLjA8BAgneztp_CP@KJouc77>Y*Nz9F+>x%Dt-LI#T(debIavg`Zlno2p8Z z6RDhW3S$_BpL)eo7pt4D005o|5x|X9+2q(uUI5_lMq|2`c_Mc1(q;g_mh})30nh=# zrFl)w2LS-xrnpc#A?e)~w>L?$7ZS3-rVklKeNqAdh_+_wT2=lz03hTB^uV>`c`rGT zHFg@Vqi#4!RsF$U)*;iy2Q9y86WZzYkQ0N8zVdA0o*Ec6)9>k{%-%p%IKwx3t9^>`7WWmOXvT za`X&F;pd<33TmG^Zf2kl60bF4ZGtr5ezqnqhnEb?G@7BBtU&kjwYQ{k(eO;|h!pcd z*G$Z8Z-I=@{#Z%Fo{^13W@#;rV1#CAElGMAH>MlG2zBY#)UW=fZoSNukABoelF(SZ zJPJR1e9Nev&O1*rM{uC%%HuRcYnVC~Yxeuu-JH-Tj9`S;!X}b*(_)35il^>>kHea2 z_CE#pKxtki?(0pfT+@?pP?<3sBC<5?;guEuKu;F{Y=#RbWxh}D-v4IW&jCY8APFy; zU1v530O;u>0C3LkA`j03fDXGpAnYX>l)ZgV8o>z7Nv|i%do#Ak7*V5UXbtsje8BT| z;y_c-FZ7We)b05#qKqPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1g}X%K~z{rwN_n- z8&w!RcarSRW;WYqD@nCKTCG?WY74T(Qv9v0_+U#xD~JfiMIZb@P}CPu>szJtL0?pq zf)9$UD5Y3bTpvWS($-WLTCH}|?snI1lHL4FGJp3TAJW+-GclWN@xWo2^PTVB?|ygg zWk3>(qrKiOuc0}62OaAzhU1-4kVN}i2uOM+AdomT!9Dmg)taGjBFWHCvvn4)xleS@lcyDTQ@R#s4XC#lr*&sKR4Wid%v zOwuxk8@4LUkkCM(3OddF4l0==NzIShm1pY(T$-d-+(_w-lH@Ai<2naD-(y!^{Ldmn zf=^Y@S(({J(rkIgmC7HN-YBI!M$$He@jBfhzX;DAY3T_G^xIxoN2LlaC+~*RJ33O| ziYG}j5sZftNV!}Ubh_3-l1zr<-BZaweo!jcaxtNskh6XCR0^@d(-K0DHU<9&G#o?c zX3q8z0HWGOn1vmY2HzEfb0hC^eD@eHyfO+p8+=`m1WQ}aLmpdcVJAc^jfg#hsFp*G z+Yul9qU-y;8SGalmz1r6tKo-PpqfS!S!0MHA709@_b4?YF}%Bj_wCsF_a>78iG)HGwV{=BA1?-CjSNV|FL zXnga201(0eY;!MFL8qHblXQms)~SL{Gq;IUt{rS^H`Qn^Zy zTwX0aGSw#zHC5@U6e3GMgBBUOqL0wJ_`K?w{-|jT8BHLv_ETs*TjKNgfaiQp*E$4x zCZhTV#Pr7@v{gC)yD@n&u=B5}*yI7hXbfKZ8T2gO0};7)8Gu5lWh5UW+1oLH^~&;I@Opte}bKevv1V}n%Qc<4F~nMuO^=l&^~HCW9*7fM(RWhOx@_a;fc z5R8S)m)I|}24&WuU3q_@izwDYo2SeqSUz(fscJ136B2wXd10@YT}qiXSeahWw}PCrK1`jS?8KYfp5 ze&|o6%S?imzjwBseBlD>G|ZV{dgBB0t1X?sn^f-nz|uYSp3E97PwpVe2+3aQoFJ8K zJ2^Wn03@O0`4gpy2kKjrdzvJ7HO6JuU?sb`<%iae9sQOAfY4TMOsx1y0DxBe765(; zdEz$#z*takhmH&IVd)P~$J7+;i5t&dlA`L|fFfe(9T*0HubVU4BlJtw2`ZC!GA@tL zzpF?;u Date: Fri, 7 Nov 2025 17:32:48 +0900 Subject: [PATCH 34/49] =?UTF-8?q?=EC=9A=B4=EC=98=81=ED=8E=B8=EC=9D=98?= =?UTF-8?q?=EC=84=B1=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WebContent/color.jsp | 71 +++++++ WebContent/loglevel.jsp | 83 ++++++++ WebContent/runSql.jsp | 409 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 563 insertions(+) create mode 100644 WebContent/color.jsp create mode 100644 WebContent/loglevel.jsp create mode 100644 WebContent/runSql.jsp diff --git a/WebContent/color.jsp b/WebContent/color.jsp new file mode 100644 index 0000000..4664d2e --- /dev/null +++ b/WebContent/color.jsp @@ -0,0 +1,71 @@ +<%@ page language="java" contentType="text/html; charset=utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<% + String systemColor = System.getProperty("theme.color"); + String range = (String)request.getParameter("range"); + String color = (String)request.getParameter("color"); + String change = (String)request.getParameter("change"); + if(color == null || color.length() == 0) color= systemColor; + + if("all".equals(range)) { + System.setProperty("theme.color", color); + } +%> + + + + + + + Change Theme Color + "/> + " /> + + + + + + + +
+ " method="get"> + + + + + + + + + + + + + + +
Theme Color + +
Range + +

+ +
+ +
+ + + diff --git a/WebContent/loglevel.jsp b/WebContent/loglevel.jsp new file mode 100644 index 0000000..bea8feb --- /dev/null +++ b/WebContent/loglevel.jsp @@ -0,0 +1,83 @@ +<%@ page contentType="text/html;charset=utf-8"%> +<%@page import="ch.qos.logback.core.*"%> +<%@page import="ch.qos.logback.classic.*"%> +<%@page import="org.slf4j.*"%> +<%@page import="java.util.*"%> +<% + + String loggerName = request.getParameter("loggerName"); + String slevel = request.getParameter("level"); + LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory(); + if (loggerName != null && !"".equals(loggerName) && slevel != null && !"".equals(slevel)){ + Level level = Level.ERROR; + if ("DEBUG".equals(slevel)){ + level = Level.DEBUG; + }else if ("INFO".equals(slevel)){ + level = Level.INFO; + }else if ("WARN".equals(slevel)){ + level = Level.WARN; + }else if ("ERROR".equals(slevel)){ + level = Level.ERROR; + }else if ("TRACE".equals(slevel)){ + level = Level.TRACE; + } + + lc.getLogger(loggerName).setLevel(level); +%> + <%=loggerName %> 의 로그 level이 <%=slevel %> 로 변경되었습니다. +<% + } + + List logs = lc.getLoggerList();; + +%> + +
+ + + +
+ +<% + ArrayList al = new ArrayList(); + for(ch.qos.logback.classic.Logger log : logs){ + if (log.getLevel() != null){ + al.add(log.getName()); + } + } + al.sort(null); + for(String name : al){ + ch.qos.logback.classic.Logger l = lc.getLogger(name); +%> + + + +<% + } +%> +
<%=l.getName() %> +
diff --git a/WebContent/runSql.jsp b/WebContent/runSql.jsp new file mode 100644 index 0000000..9c44fa6 --- /dev/null +++ b/WebContent/runSql.jsp @@ -0,0 +1,409 @@ +<%@page import="com.eactive.eai.rms.common.datasource.DataSourceTypeManager"%> +<%@ page language="java" contentType="text/html; charset=utf-8"%> +<%@ page import="java.io.*, +java.util.*, +javax.xml.parsers.*, +org.w3c.dom.*, +javax.xml.xpath.*, +java.sql.*, +javax.sql.*, +com.eactive.eai.agent.command.*, +com.eactive.eai.agent.*, +com.eactive.eai.rms.onl.common.util.*, +com.eactive.eai.rms.common.datasource.*, +org.apache.commons.logging.Log, +org.apache.commons.logging.LogFactory, +java.util.Arrays, +com.eactive.eai.rms.common.util.StringUtils, +com.eactive.eai.common.util.* +" %> + + +<%! +private static final Logger logger = Logger.getLogger("runSql.jsp"); + +private String NEW_LINE = "\n"; +private int MAX_FETCH_SIZE = 1000; + +private static Object obj = new Object(); + +public StringBuffer ListToString(List list){ + StringBuffer sb = new StringBuffer(); + //first item is ColName + boolean isHead = true; + for(int row=1;row list,String displayType, String serviceType ) throws Exception { + Connection conn = null; + Statement stmt = null; + String driver = null; + String url = null; + String id =null; + String pwd=null; + ResultSet rs = null; + + HashMap results = new HashMap(); + StringBuffer sb = new StringBuffer(); + + StringBuffer errorBuff = new StringBuffer(); + + int rownum = 0; + try { + DataSourceType dataType = DataSourceTypeManager.getDataSourceType(serviceType); + + String jndiName = dataType.getJndiName(); + ServiceLocator sl = ServiceLocator.getInstance(); + DataSource ds = sl.getDataSource( jndiName); + + conn = ds.getConnection(); + stmt = conn.createStatement(); + + int cnt = 0; + for(String sql : list) { + try{ + + sql = sql.trim(); + if(sql.length() == 0) continue; +// System.out.println(sql); + if(sql.toUpperCase().startsWith("SELECT")){ + + // 메모리 문제로 조회건수를 100건으로 제한하도록 한다. // 요건에 따라 변경 필요 + sql = sql + "\n fetch first "+MAX_FETCH_SIZE+" rows only"; // DB2 + stmt.execute(sql); + rs = stmt.getResultSet(); + + List ret = new ArrayList(); + int maxColumn = rs.getMetaData().getColumnCount(); + ResultSetMetaData rsmd = rs.getMetaData(); + String[] colName = new String[maxColumn]; + int[] colSize = new int[maxColumn]; + //get Col Name + for(int i =1; i<=maxColumn; i++){ + colName[i-1] = rsmd.getColumnName(i); + colSize[i-1] = rsmd.getPrecision(i); + } + ret.add(colSize); + ret.add(colName); + while(rs.next()) { + String[] row = new String[maxColumn]; + for (int i=0;i Execute - ["+sql.trim()+"], affected "+ affected +" rows").append(NEW_LINE); + } + + }catch(Exception e){ + errorBuff.append("==> Error - ["+sql + "] : " +e.getMessage()).append(NEW_LINE); + } + } + }catch(Exception e) { + logger.error(e.getMessage(),e); + throw e; + } + finally { + try { + if(stmt != null) stmt.close(); + if(conn != null) conn.close(); + if(rs != null) rs.close(); + } + catch (SQLException sqle) { + logger.error("SQLException was thrown: " + sqle.getMessage()); + } + } + + HashMap retMap = new HashMap(); + retMap.put("records",results); + retMap.put("result", sb.toString()); + retMap.put("error", errorBuff.toString()); + return retMap; +} + +public HashMap execute(String statements, String displayType,String serviceType,ServletRequest request) throws Exception { + String[] results = new String[2]; + + String[] arr = statements.split(";"); + List list = Arrays.asList(arr); + + return runSql(list, displayType, serviceType); +} +%> + + +<% + response.setHeader("Pragma", "No-cache"); + response.setHeader("Cache-Control", "no-cache"); + response.setHeader("Expires", "0"); +%> + +<% + request.setCharacterEncoding("utf-8"); + String filter = request.getParameter("filter"); + + String displayType = request.getParameter("displayType"); + String serviceType = request.getParameter("serviceType"); + String statement = request.getParameter("statement"); + String userType=request.getParameter("userType"); + String run=request.getParameter("run"); + + if (run == null) run = ""; + if (displayType == null) displayType = "GRID"; + if (serviceType == null) serviceType = ""; + if (statement == null) statement = ""; + + HashMap runResult =new HashMap(); + + String errorMessage = ""; + + if (!"".equals(run) ){ + runResult = execute(statement,displayType, serviceType,request); + //response.sendRedirect("/monitoring/jsp/common/jsonResult.jsp"); + errorMessage = (String)runResult.get("error"); + if(errorMessage == null) errorMessage = ""; + }else{ + ; + } +%> + + + + +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%> +<%@ include file="/jsp/common/include/localemessage.jsp" %> + + + +<%-- + --%> + + + +
+
+ +
+
+
+ + +<%-- " level="W" style="cursor:hand;"/> --%> +<%-- " level="w" style="cursor:hand;"/> --%> +
+
Data Explorer
+ + + + + + + + + + + + + + + +
+ Database : + +
+ +
+
+ DIsplay : + +
+ +
+
+ + + + + + + + + + + + + + + <% + if("FLAT".equals(displayType)) { + %> + + + + + <% + } + else { + HashMap recordsMap = (HashMap)runResult.get("records"); + if(recordsMap != null) { + %> + + + + <% + } + } + %> +
<%= localeMessage.getString("runSql.excute") %> : max fetch size <%= MAX_FETCH_SIZE %>
+ + +
<%= localeMessage.getString("runSql.result") %>
<%= errorMessage %>
+ <%--
+ + +
--%> + +
<% + for(int sel=0; sel <= 10;sel++) { + ArrayList resultList = (ArrayList)recordsMap.get("SEL"+sel); +// System.out.println("SEL"+sel+" = "+resultList); + if(resultList == null) { + break; + } + %>
+ + + + <% + int[] colSize = (int[])resultList.get(0); + int cellWidth = 40; + for(int index = 1; index + + <% + for(int p = 0; p cellWidth) cellWidth = colSize[p]; + cellWidth = cellWidth * 10; + out.println(String.format("", cellWidth, rows[p] )); + } + else { + out.println(String.format("", rows[p])); + } + + } + %> + + <% + } + %> +
%s%s
+
+ <% } + %> +
+ + + + + + + + From af7ed03492f517500b5d362c15fbf75e73eab459 Mon Sep 17 00:00:00 2001 From: Rinjae Date: Fri, 7 Nov 2025 19:37:40 +0900 Subject: [PATCH 35/49] =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EC=B0=A8?= =?UTF-8?q?=EB=8B=A8=20=EA=B4=80=EB=A0=A8=20=EB=A9=94=EC=84=B8=EC=A7=80=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsp/onl/apim/portaluser/portalUserMan.jsp | 6 ++++-- .../onl/apim/portaluser/portalUserManDetail.jsp | 16 ++++++++++++++++ .../rms/onl/apim/portaluser/PortalUserUI.java | 1 + .../message/LocaleMessage_ko.properties | 1 + 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/WebContent/jsp/onl/apim/portaluser/portalUserMan.jsp b/WebContent/jsp/onl/apim/portaluser/portalUserMan.jsp index 017c49f..35cadcc 100644 --- a/WebContent/jsp/onl/apim/portaluser/portalUserMan.jsp +++ b/WebContent/jsp/onl/apim/portaluser/portalUserMan.jsp @@ -92,7 +92,8 @@ '<%= localeMessage.getString("portalUser.roleName") %>', '<%= localeMessage.getString("portalUser.userStatus") %>', '<%= localeMessage.getString("portalUser.createOn") %>', - '<%= localeMessage.getString("portalUser.approvalStatus") %>' + '<%= localeMessage.getString("portalUser.approvalStatus") %>', + '<%= localeMessage.getString("portalUser.accountLockYn") %>' ], colModel: [ {name: 'rowNum', align: 'center', width: '30', sortable: false}, @@ -104,7 +105,8 @@ {name: 'roleCodeDescription', align: 'center', width: "80"}, {name: 'userStatusDescription', align: 'center', width: "50"}, {name: 'createdDate', align: 'center', width: "100", formatter: timeStampFormat}, - {name: 'approvalStatusDescription', align: 'center', width: "50"} + {name: 'approvalStatusDescription', align: 'center', width: "50"}, + {name: 'accountLockYn', align: 'center', width: "50"} ], jsonReader: { repeatitems: false diff --git a/WebContent/jsp/onl/apim/portaluser/portalUserManDetail.jsp b/WebContent/jsp/onl/apim/portaluser/portalUserManDetail.jsp index b970798..533c8a7 100644 --- a/WebContent/jsp/onl/apim/portaluser/portalUserManDetail.jsp +++ b/WebContent/jsp/onl/apim/portaluser/portalUserManDetail.jsp @@ -184,6 +184,9 @@ } else { $('#orgInfoSection').hide(); } + + $("select[name=accountLockYn]").val(data.accountLockYn); + // 25.09.23 - 마스킹 해제 상태를 기본으로 적용 / Rinjae updateButtonStates($("#userStatus").val(), true); @@ -633,6 +636,19 @@
<%= getRequiredLabel(localeMessage.getString("portalUser.accountLockYn")) %> +
+ +
+
diff --git a/src/main/java/com/eactive/eai/rms/onl/apim/portaluser/PortalUserUI.java b/src/main/java/com/eactive/eai/rms/onl/apim/portaluser/PortalUserUI.java index 475ecda..16094a5 100644 --- a/src/main/java/com/eactive/eai/rms/onl/apim/portaluser/PortalUserUI.java +++ b/src/main/java/com/eactive/eai/rms/onl/apim/portaluser/PortalUserUI.java @@ -50,4 +50,5 @@ public class PortalUserUI { @DateTimeFormat(pattern = "yyyyMMddHHmmss") private LocalDateTime lastModifiedDate; + private String accountLockYn; } diff --git a/src/main/resources/message/LocaleMessage_ko.properties b/src/main/resources/message/LocaleMessage_ko.properties index 61a0e22..15179a2 100644 --- a/src/main/resources/message/LocaleMessage_ko.properties +++ b/src/main/resources/message/LocaleMessage_ko.properties @@ -2728,6 +2728,7 @@ portalUser.mobile = \uD734\uB300\uD3F0\uBC88\uD638 portalUser.roleName = \uAD8C\uD55C portalUser.emailAddr =\uC774\uBA54\uC77C \uC544\uC774\uB514 portalUser.approvalStatus =\uC2B9\uC778\uC0C1\uD0DC +portalUser.accountLockYn =\uCC28\uB2E8\uC5EC\uBD80 portalUserDetail.title =\uAC00\uC785\uC790\uC815\uBCF4 portalOrgDetail.title=\uBC95\uC778 \uC815\uBCF4 From 3fa29c1951d250db6f7e22cb66a06cf12bed9b8a Mon Sep 17 00:00:00 2001 From: dogyeom Date: Mon, 10 Nov 2025 10:38:40 +0900 Subject: [PATCH 36/49] =?UTF-8?q?=EC=9D=BC=EA=B4=84=EC=A0=84=EC=86=A1=20?= =?UTF-8?q?=ED=98=84=ED=99=A9=20=EC=83=81=EC=84=B8=20=EC=A1=B0=ED=9A=8C?= =?UTF-8?q?=EC=8B=9C=20file=20log=20count,=20stage=20log=20count=20?= =?UTF-8?q?=EC=BF=BC=EB=A6=AC=20=EC=A0=95=EC=83=81=20=ED=98=B8=EC=B6=9C?= =?UTF-8?q?=EB=90=98=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BapTransactionStatusController.java | 15 +++++++-- .../BapTransactionStatusDao.java | 4 +-- .../TransactionStatusMan-oracle.xml | 31 +++++++++++++++++-- 3 files changed, 43 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionStatus/BapTransactionStatusController.java b/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionStatus/BapTransactionStatusController.java index 78511ed..a211a1a 100644 --- a/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionStatus/BapTransactionStatusController.java +++ b/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionStatus/BapTransactionStatusController.java @@ -77,9 +77,18 @@ public class BapTransactionStatusController extends BapBaseAnnotationController returnMap = agentUtilService.broadcast(command); iter = returnMap.keySet().iterator(); svrName = iter.next(); - @SuppressWarnings("unchecked") - List> list = (List>)returnMap.get(svrName); - paramMap.put("procList", list); + + Object value = returnMap.get(svrName); + + + if(value instanceof List) { + @SuppressWarnings("unchecked") + List> list = (List>)value; + paramMap.put("procList", list); + }else { + paramMap.put("procList", null); + } + } //Map resultMap = service.selectList( paramMap); diff --git a/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionStatus/BapTransactionStatusDao.java b/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionStatus/BapTransactionStatusDao.java index e562a90..bce6585 100644 --- a/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionStatus/BapTransactionStatusDao.java +++ b/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionStatus/BapTransactionStatusDao.java @@ -54,11 +54,11 @@ public class BapTransactionStatusDao extends SqlMapClientTemplateDao { } public int getFileLogCount(HashMap param) throws Exception { - return (Integer)template.queryForObject("BapTranStatus.getFileLogCount", param); + return (Integer)template.queryForObject("BapTranStatus.filelogcount", param); } public int getStageLogCount(HashMap param) throws Exception { - return (Integer)template.queryForObject("BapTranStatus.getStageLogCount", param); + return (Integer)template.queryForObject("BapTranStatus.stagelogcount", param); } public List> selectOsidInstiDstcd(HashMap param) throws Exception { diff --git a/src/main/resources/com/eactive/eai/rms/bap/transaction/TransactionStatusMan-oracle.xml b/src/main/resources/com/eactive/eai/rms/bap/transaction/TransactionStatusMan-oracle.xml index 9c3e372..8c68bb6 100644 --- a/src/main/resources/com/eactive/eai/rms/bap/transaction/TransactionStatusMan-oracle.xml +++ b/src/main/resources/com/eactive/eai/rms/bap/transaction/TransactionStatusMan-oracle.xml @@ -1239,7 +1239,7 @@ WHERE A.BjobDmndMsgID = #bjobDmndMsgID# AND A.BjobDmndSubMsgID = #bjobDmndSubMsgID# - + SELECT B.BjobDmndMsgID , B.BjobDmndSubMsgID , @@ -1311,8 +1311,35 @@ ORDER BY B.BjobDmndMsgID, B.BjobDmndSubMsgID, B.ThisStgeStartHMS, TO_NUMBER(B.BjobNodeCasNo) + + SELECT COUNT(BJOBDMNDMSGID) AS "stageTotalCount" + FROM( SELECT B.BjobDmndMsgID AS "BJOBDMNDMSGID", + B.BjobDmndSubMsgID AS "BJOBDMNDSUBMSGID", + E.BjobMsgDstcd AS "BJOBMSGDSTCD", + E.BjobMsgDsticName AS "BJOBMSGDSTICNAME", + B.BjobTranDstcdName AS "BJOBTRANDSTCDNAME", + B.RqstRecvFileStorgDirName AS "RQSTRECVFILESTORGDIRNAME", + B.SndrcvFileName AS "SNDRCVFILENAME", + B.BkupSndrcvFileName AS "BKUPSNDRCVFILENAME", + B.SndrcvRecCnt AS "SNDRCVRECCNT", + B.SndrcvFileSize AS "SNDRCVFILESIZE", + B.FileTrsmtStartHMS AS "FileTrsmtStartHMS", + B.FileTrsmtEndHMS AS "FILETRSMTENDHMS", + B.ThisStgePrcssRsultCd AS "THISSTGEPRCSSRSULTCD", + B.EAIObstclOccurCausCtnt AS "EAIOBSTCLOCCURCAUSCTNT", + B.BjobFileHdrCtnt AS "BJOBFILEHDRCTNT", + B.BjobFileTrailCtnt AS "BJOBFILETRAILCTNT", + E.UapplCd AS "UAPPLCD", + E.ThisMsgChrgIDs AS "THISMSGCHRGIDS", + B.HdrInfoName AS "THISMSGCHRGIDS" + FROM $schemaId$.TSEAIBJ08 B LEFT OUTER JOIN $schemaId$.TSEAIBJ01 E ON B.BjobBzwkDstcd = E.BjobBzwkDstcd AND B.BjobTranDstcdName = E.BjobTranDstcdName + WHERE B.BjobDmndMsgID = #bjobDmndMsgID# + AND B.BjobDmndSubMsgID = #bjobDmndSubMsgID# + ORDER BY B.BjobDmndMsgID, B.BjobDmndSubMsgID, B.FileTrsmtStartHMS) + + - SELECT COUNT(BJOBDMNDMSGID) AS "TOTALCOUNT" + SELECT COUNT(BJOBDMNDMSGID) AS "stageTotalCount" FROM (SELECT B.BjobDmndMsgID AS "BJOBDMNDMSGID", B.BjobDmndSubMsgID AS "BJOBDMNDSUBMSGID", B.BjobStgeID AS "BJOBSTGEID", From faca8c6a927e4971f26423f571f5f14732e9f14d Mon Sep 17 00:00:00 2001 From: dogyeom Date: Mon, 10 Nov 2025 10:40:56 +0900 Subject: [PATCH 37/49] =?UTF-8?q?=EC=9D=BC=EA=B4=84=20=EB=A9=94=EB=89=B4?= =?UTF-8?q?=EB=B3=84=20=ED=99=94=EB=A9=B4=20=EC=83=81=EC=9D=98=20=EB=B9=84?= =?UTF-8?q?=EC=A0=95=EC=83=81=EC=A0=81=EC=9D=B8=20=EC=9E=91=EB=8F=99=20?= =?UTF-8?q?=EB=B0=8F=20=EC=98=A4=EB=A5=98=20=EB=B6=80=EB=B6=84=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsp/bap/adapter/socket/connStatus.jsp | 3 +- .../jsp/bap/adapter/socket/instStatus.jsp | 12 +- .../jsp/bap/adapter/socket/serverStatus.jsp | 3 +- .../jsp/bap/admin/adapter/adapterMan.jsp | 203 +-- .../bap/admin/adapter/adapterManDetail.jsp | 17 +- .../jsp/bap/admin/common/comErrMessageMan.jsp | 6 +- .../admin/common/comErrMessageManDetail.jsp | 4 +- .../jsp/bap/admin/common/comLifecycleMan.jsp | 6 +- .../admin/common/comLifecycleManDetail.jsp | 4 +- .../jsp/bap/admin/common/comPropertyMan.jsp | 6 +- .../bap/admin/common/comPropertyManDetail.jsp | 6 +- .../jsp/bap/admin/common/serverManDetail.jsp | 2 +- .../jsp/bap/admin/message/classInfoMan.jsp | 23 +- .../jsp/bap/admin/message/classMapMan.jsp | 10 +- .../bap/admin/message/flowRuleManDetail.jsp | 6 +- .../jsp/bap/admin/message/flowStepMan.jsp | 18 +- .../jsp/bap/admin/message/messageItemMan.jsp | 28 +- .../jsp/bap/admin/message/messageMetaMan.jsp | 10 +- .../bap/admin/message/messageMetaManPopup.jsp | 20 +- WebContent/jsp/bap/admin/work/bizGbnMan.jsp | 322 ++--- .../jsp/bap/admin/work/bizGbnManDetail.jsp | 10 +- .../jsp/bap/admin/work/messageProcMan.jsp | 533 +++---- .../bap/admin/work/messageProcManDetail.jsp | 686 ++++----- .../jsp/bap/admin/work/systemInstMan.jsp | 388 ++--- .../bap/admin/work/systemInstManDetail.jsp | 8 +- .../jsp/bap/transaction/procWorkMan.jsp | 2 +- .../bap/transaction/transactionStatusMan.jsp | 1283 ++++++++--------- .../bap/transaction/transactionTraceMan.jsp | 366 +++-- .../bap/transaction/transactionWaitMan.jsp | 6 +- 29 files changed, 1564 insertions(+), 2427 deletions(-) diff --git a/WebContent/jsp/bap/adapter/socket/connStatus.jsp b/WebContent/jsp/bap/adapter/socket/connStatus.jsp index 805f62e..188c9c3 100644 --- a/WebContent/jsp/bap/adapter/socket/connStatus.jsp +++ b/WebContent/jsp/bap/adapter/socket/connStatus.jsp @@ -75,6 +75,7 @@ $(document).ready(function() { { name : 'status' , align:'center'}, { name : 'stop' , align:'center'} ], + autowidth: true, autoheight: true, height: $("#container").height(), //height: "500", @@ -133,7 +134,7 @@ $(document).ready(function() {
- " id="btn_excel" level="R"/> + <%-- " id="btn_excel" level="R"/> --%> " alt="" id="btn_search" level="R" />
연결된 세션정보
diff --git a/WebContent/jsp/bap/adapter/socket/instStatus.jsp b/WebContent/jsp/bap/adapter/socket/instStatus.jsp index 2b246b9..63aee4f 100644 --- a/WebContent/jsp/bap/adapter/socket/instStatus.jsp +++ b/WebContent/jsp/bap/adapter/socket/instStatus.jsp @@ -21,7 +21,8 @@ $(document).ready(function() { mtype: 'POST', url: '', postData : { cmd : 'LIST' }, - colNames:['업무구분', + colNames:[ + '업무구분', '대외기관', 'IP', 'PORT', @@ -53,7 +54,7 @@ $(document).ready(function() { } } }, - { name : 'serverCheck' , align:'center' , + { name : 'serverCheck' , align:'center' , hidden: true, formatter: function (cellValue, options, rowObject) { var ip = rowObject.LNKGIPINFONAME; var port = rowObject.LNKGPORTINFONAME; @@ -67,8 +68,9 @@ $(document).ready(function() { return be; } }, - { name : 'serverConnected', align: 'center' } + { name : 'serverConnected', align: 'center', hidden: true } ], + autowidth: true, autoheight: true, height: $("#container").height(), //height: "500", @@ -151,8 +153,8 @@ function serverCheck(rowId) {
- " id="btn_operate" level="R"/> - " id="btn_excel" level="R"/> + <%-- " id="btn_operate" level="R"/> --%> + <%-- " id="btn_excel" level="R"/> --%> " alt="" id="btn_search" level="R" />
비연결유지형 클라이언트 소켓 상태정보
diff --git a/WebContent/jsp/bap/adapter/socket/serverStatus.jsp b/WebContent/jsp/bap/adapter/socket/serverStatus.jsp index d4d5cb8..416c9fd 100644 --- a/WebContent/jsp/bap/adapter/socket/serverStatus.jsp +++ b/WebContent/jsp/bap/adapter/socket/serverStatus.jsp @@ -93,6 +93,7 @@ $(document).ready(function() { { name : 'status2' , align:'center', width:70}, { name : 'startStop' , align:'center'} ], + autowidth: true, autoheight: true, height: $("#container").height(), //height: "500", @@ -166,7 +167,7 @@ $(document).ready(function() {
- " id="btn_excel" level="R"/> + <%-- " id="btn_excel" level="R"/> --%> " alt="" id="btn_search" level="R" />
연결유지형 소켓 상태정보
diff --git a/WebContent/jsp/bap/admin/adapter/adapterMan.jsp b/WebContent/jsp/bap/admin/adapter/adapterMan.jsp index 66e8da7..87c3915 100644 --- a/WebContent/jsp/bap/admin/adapter/adapterMan.jsp +++ b/WebContent/jsp/bap/admin/adapter/adapterMan.jsp @@ -25,17 +25,17 @@ var svrType = ''; $(document).ready(function() { - var url = ''; + var url = ''; var url_view = ''; var gridPostData = getSearchForJqgrid("cmd","LIST"); //jqgrid에서는 object 로 - - if(devSvr) { + + /* if(devSvr) { svrType = "stg"; } else if (stgSvr){ svrType = "prod"; } else if (!prdSvr){ svrType = "dev"; - } + }*/ $('#grid').jqGrid({ datatype:"json", @@ -68,8 +68,8 @@ $(document).ready(function() { height: $("#container").height(), autowidth: true, viewrecords: true, - multiselect: true, - multiboxonly: false, + /* multiselect: true, + multiboxonly: false, */ rowList : eval('[${rmsDefaultRowList}]'), gridComplete:function (d){ var colModel = $(this).getGridParam("colModel"); @@ -117,197 +117,8 @@ $(document).ready(function() { $("#btn_search").click(); } }); - $("#btn_delete").click(function() { - - var id = "grid"; - var data = new Array(); - var ids = $("#grid").jqGrid('getDataIDs'); - var chkcnt = 0; - - for(var i=0;i @@ -325,7 +136,7 @@ $(document).ready(function() { " alt="" id="btn_new" level="W" /> - " alt="" id="btn_delete" level="W" /> + <%-- " alt="" id="btn_delete" level="W" /> --%> " alt="" id="btn_search" level="R" />
어댑터 관리일괄전송에서 사용하는 어댑터 목록(Server/Non-permanent Client)
diff --git a/WebContent/jsp/bap/admin/adapter/adapterManDetail.jsp b/WebContent/jsp/bap/admin/adapter/adapterManDetail.jsp index 734ed08..41f8302 100644 --- a/WebContent/jsp/bap/admin/adapter/adapterManDetail.jsp +++ b/WebContent/jsp/bap/admin/adapter/adapterManDetail.jsp @@ -486,7 +486,7 @@ /* 231102 김기영 이전기능 관련 숨김 처리 */ setBtnHide(roleString, " ", "btn_clone_stg"); setBtnHide(roleString, " ", "btn_clone_prod"); - setBtnHide(roleString, " ", "btn_clone_dev"); + setBtnHide(roleString, " ", "btn_clone_dev"); }); @@ -500,9 +500,9 @@
- " alt="" id="btn_clone_stg" level="W" status="DETAIL"/> + <%-- " alt="" id="btn_clone_stg" level="W" status="DETAIL"/> " alt="" id="btn_clone_prod" level="W" status="DETAIL"/> - " alt="" id="btn_clone_dev" level="W" status="DETAIL"/> + " alt="" id="btn_clone_dev" level="W" status="DETAIL"/> --%> " alt="" id="btn_modify" level="W" status="DETAIL,NEW" /> " alt="" id="btn_delete" level="W" status="DETAIL"/> " alt="" id="btn_previous" level="R" status="DETAIL,NEW"/> @@ -533,6 +533,15 @@ 어댑터 사용 구분 + +
+ +
+ + 복제 어댑터 그룹명 diff --git a/WebContent/jsp/bap/admin/common/comErrMessageMan.jsp b/WebContent/jsp/bap/admin/common/comErrMessageMan.jsp index 730ef4b..c2137a1 100644 --- a/WebContent/jsp/bap/admin/common/comErrMessageMan.jsp +++ b/WebContent/jsp/bap/admin/common/comErrMessageMan.jsp @@ -129,10 +129,10 @@ $(document).ready(function() {
오류메시지 관리표준화된 IF시스템 에러 응답코드를 조회합니다. 메시지 키 및 내용으로 그에 해당하는 오류메시지를 조회할 수 있습니다.
- + + -->
diff --git a/WebContent/jsp/bap/admin/common/comErrMessageManDetail.jsp b/WebContent/jsp/bap/admin/common/comErrMessageManDetail.jsp index b6e522f..702596d 100644 --- a/WebContent/jsp/bap/admin/common/comErrMessageManDetail.jsp +++ b/WebContent/jsp/bap/admin/common/comErrMessageManDetail.jsp @@ -133,10 +133,10 @@ $(document).ready(function() {
- + diff --git a/WebContent/jsp/bap/admin/common/comLifecycleMan.jsp b/WebContent/jsp/bap/admin/common/comLifecycleMan.jsp index e44525c..7c9dfb8 100644 --- a/WebContent/jsp/bap/admin/common/comLifecycleMan.jsp +++ b/WebContent/jsp/bap/admin/common/comLifecycleMan.jsp @@ -127,10 +127,10 @@ $(document).ready(function() {
라이프사이클 관리시스템 기동 시 로딩 되는 라이프사이클 클래스를 조회합니다.
- + + -->
오류메시지 코드 *
diff --git a/WebContent/jsp/bap/admin/common/comLifecycleManDetail.jsp b/WebContent/jsp/bap/admin/common/comLifecycleManDetail.jsp index 9575281..b33a2e6 100644 --- a/WebContent/jsp/bap/admin/common/comLifecycleManDetail.jsp +++ b/WebContent/jsp/bap/admin/common/comLifecycleManDetail.jsp @@ -135,10 +135,10 @@ $(document).ready(function() { - + diff --git a/WebContent/jsp/bap/admin/common/comPropertyMan.jsp b/WebContent/jsp/bap/admin/common/comPropertyMan.jsp index a92f85b..f3281bb 100644 --- a/WebContent/jsp/bap/admin/common/comPropertyMan.jsp +++ b/WebContent/jsp/bap/admin/common/comPropertyMan.jsp @@ -132,10 +132,10 @@ $(document).ready(function() {
프로퍼티 관리각 Layer에서 필요한 프라퍼티 Key, Value를 하나의 그룹으로 등록하기 위한 그룹명
- + + -->
라이프사이클 클래스명 *
diff --git a/WebContent/jsp/bap/admin/common/comPropertyManDetail.jsp b/WebContent/jsp/bap/admin/common/comPropertyManDetail.jsp index 290b136..b47c550 100644 --- a/WebContent/jsp/bap/admin/common/comPropertyManDetail.jsp +++ b/WebContent/jsp/bap/admin/common/comPropertyManDetail.jsp @@ -435,14 +435,14 @@
- + diff --git a/WebContent/jsp/bap/admin/common/serverManDetail.jsp b/WebContent/jsp/bap/admin/common/serverManDetail.jsp index bb8eb42..7379911 100644 --- a/WebContent/jsp/bap/admin/common/serverManDetail.jsp +++ b/WebContent/jsp/bap/admin/common/serverManDetail.jsp @@ -179,7 +179,7 @@ $(document).ready(function() { - + diff --git a/WebContent/jsp/bap/admin/message/classInfoMan.jsp b/WebContent/jsp/bap/admin/message/classInfoMan.jsp index 6d826fa..4c7598a 100644 --- a/WebContent/jsp/bap/admin/message/classInfoMan.jsp +++ b/WebContent/jsp/bap/admin/message/classInfoMan.jsp @@ -95,8 +95,8 @@ function getGridData() { height: $("#container").height(), autowidth: true, viewrecords: true, - multiselect: true, - multiboxonly: false, +/* multiselect: true, + multiboxonly: false, */ rowList : eval('[${rmsDefaultRowList}]'), gridComplete:function (d){ var colModel = $(this).getGridParam("colModel"); @@ -136,7 +136,7 @@ function getGridData() { var url = ''; url = url + '?cmd=DETAIL'; url = url + '&page='+$("#grid").getGridParam("page"); - url = url + '&returnUrl='+getSearchUrlForReturn(); + url = url + '&returnUrl='+getReturnUrl(); url = url + '&menuId='+'${param.menuId}'; //검색값 url = url + '&'+getSearchUrl(); @@ -385,7 +385,7 @@ function getGridData() { " alt="" id="btn_new" level="W" /> - " alt="" id="btn_delete" level="W" /> + " alt="" id="btn_search" level="R" />
클래스정보 관리클래스정보를 등록/관리합니다
@@ -395,16 +395,23 @@ function getGridData() {
- - - + <%-- + --%> + diff --git a/WebContent/jsp/bap/admin/message/classMapMan.jsp b/WebContent/jsp/bap/admin/message/classMapMan.jsp index 277d121..489a566 100644 --- a/WebContent/jsp/bap/admin/message/classMapMan.jsp +++ b/WebContent/jsp/bap/admin/message/classMapMan.jsp @@ -101,8 +101,8 @@ function getGridData() { height: $("#container").height(), autowidth: true, viewrecords: true, - multiselect: true, - multiboxonly: false, + /* multiselect: true, + multiboxonly: false, */ rowList : eval('[${rmsDefaultRowList}]'), gridComplete:function (d){ var colModel = $(this).getGridParam("colModel"); @@ -406,7 +406,7 @@ function getGridData() { " alt="" id="btn_new" level="W" /> - " alt="" id="btn_delete" level="W" /> + <%-- " alt="" id="btn_delete" level="W" /> --%> " alt="" id="btn_search" level="R" />
클래스맵핑 관리클래스정보를 등록/관리합니다
@@ -418,7 +418,7 @@ function getGridData() { - + diff --git a/WebContent/jsp/bap/admin/message/flowRuleManDetail.jsp b/WebContent/jsp/bap/admin/message/flowRuleManDetail.jsp index e0aaa73..0b7df99 100644 --- a/WebContent/jsp/bap/admin/message/flowRuleManDetail.jsp +++ b/WebContent/jsp/bap/admin/message/flowRuleManDetail.jsp @@ -155,7 +155,7 @@ { name : 'MOVEUP' , align : 'center', sortable:false, width : '80', unformat : imgUpunformatter, formatter : imgUpformatter}, { name : 'MOVEDOWN' , align : 'center', sortable:false, width : '80', unformat : imgDownunformatter, formatter : imgDownformatter}, { name : 'DELETEYN' , align : 'center', sortable:false, width : '80', unformat : unformatterFunction, formatter : formatterFunction}, - { name : 'CLONE' , align : 'center', sortable:false, width : '80', unformat : cloneunformatter, formatter : cloneformatter} + { name : 'CLONE' , align : 'center', sortable:false, width : '80', unformat : cloneunformatter, formatter : cloneformatter, hidden: true} ], jsonReader : { repeatitems : false @@ -676,10 +676,10 @@
- " alt="" id="btn_clone_stg" level="W" status="DETAIL"/> + <%-- " alt="" id="btn_clone_stg" level="W" status="DETAIL"/> " alt="" id="btn_clone_prod" level="W" status="DETAIL"/> " alt="" id="btn_clone_dev" level="W" status="DETAIL"/> - " alt="" id="btn_excel" level="W" status="DETAIL"/> + " alt="" id="btn_excel" level="W" status="DETAIL"/> --%> " alt="" id="btn_modify" level="W" status="DETAIL,NEW" /> " alt="" id="btn_delete" level="W" status="DETAIL"/> " alt="" id="btn_previous" level="R" status="DETAIL,NEW"/> diff --git a/WebContent/jsp/bap/admin/message/flowStepMan.jsp b/WebContent/jsp/bap/admin/message/flowStepMan.jsp index 73e96f3..bf9f6e2 100644 --- a/WebContent/jsp/bap/admin/message/flowStepMan.jsp +++ b/WebContent/jsp/bap/admin/message/flowStepMan.jsp @@ -116,8 +116,8 @@ function cloneformatter(cellvalue, options, rowObject) { { name : 'BJOBFLOWCMPONAME' , align:'left' ,width:40 }, { name : 'TELGMCLSID' , align:'left' ,width:40 }, { name : 'UNITTELGMLEN' , align:'left' ,width:40 }, - { name : 'BJOBNODEDESC' , align:'left' ,width:40, hidden : false }, - { name : 'CLONE' , align:'center',width:10, unformat:cloneunformatter, formatter:cloneformatter} + { name : 'BJOBNODEDESC' , align:'left' ,width:40, hidden : true }, + { name : 'CLONE' , align:'center',width:10, unformat:cloneunformatter, formatter:cloneformatter, hidden: true } ], jsonReader: { repeatitems:false @@ -129,8 +129,8 @@ function cloneformatter(cellvalue, options, rowObject) { height: $("#container").height(), autowidth: true, viewrecords: true, - multiselect: true, - multiboxonly: false, + /* multiselect: true, + multiboxonly: false, */ rowList : eval('[${rmsDefaultRowList}]'), loadComplete : function(rowId) { $("img[name^=img_clone]").click(function() { @@ -478,7 +478,7 @@ function cloneformatter(cellvalue, options, rowObject) { " alt="" id="btn_new" level="W" /> - " alt="" id="btn_delete" level="W" /> + <%-- " alt="" id="btn_delete" level="W" /> --%> " alt="" id="btn_search" level="R" />
흐름단계 리스트흐름단계 리스트를 관리합니다
@@ -490,9 +490,9 @@ function cloneformatter(cellvalue, options, rowObject) {
-<%-- - --%> - + + + <%-- + --%> diff --git a/WebContent/jsp/bap/admin/message/messageItemMan.jsp b/WebContent/jsp/bap/admin/message/messageItemMan.jsp index 7898fb6..f80a743 100644 --- a/WebContent/jsp/bap/admin/message/messageItemMan.jsp +++ b/WebContent/jsp/bap/admin/message/messageItemMan.jsp @@ -57,13 +57,13 @@ { name : 'MSGCLMNVAL' , align:'center' , width:40 }, { name : 'THISMSGCLMNUSEYN' , align:'center' , width:40 , formatter: function (cellvalue) { - if ( !cellvalue ) { - return '사용안함'; - } else if ( cellvalue ) { - return '사용함'; - } else { - return cellvalue; - } + if ( cellvalue == '0' ) { + return '사용안함'; + } else if ( cellvalue == '1' ) { + return '사용'; + } else { + return cellvalue; + } } } ], @@ -77,8 +77,8 @@ height: $("#container").height(), autowidth: true, viewrecords: true, - multiselect: true, - multiboxonly: false, + /* multiselect: true, + multiboxonly: false, */ rowList : eval('[${rmsDefaultRowList}]'), gridComplete:function (d){ var colModel = $(this).getGridParam("colModel"); @@ -396,7 +396,7 @@ " alt="" id="btn_new" level="W" /> - " alt="" id="btn_delete" level="W" /> + <%-- " alt="" id="btn_delete" level="W" /> --%> " alt="" id="btn_search" level="R" /> @@ -406,12 +406,12 @@ - - + + - + <%-- + " level="W" status="LIST" class="btn_img"/> --%>
프라퍼티 그룹명 * - " class="btn_img" level="W" status="DETAIL"/> + <%-- " class="btn_img" level="W" status="DETAIL"/> --%>
IF서버인스턴스명
마스터여부
장애극복서버명
IF서버IP
전문클래스명 전문클래스 설명복제 사용여부전문클래스 설명
메시지항목 구분명메시지 컬럼명메시지 컬럼명 복제 메시지항목 구분명복제 메시지항목 구분명 - " level="W" status="LIST" class="btn_img"/>
diff --git a/WebContent/jsp/bap/admin/message/messageMetaMan.jsp b/WebContent/jsp/bap/admin/message/messageMetaMan.jsp index ff66f1a..e6248df 100644 --- a/WebContent/jsp/bap/admin/message/messageMetaMan.jsp +++ b/WebContent/jsp/bap/admin/message/messageMetaMan.jsp @@ -109,8 +109,8 @@ function getGridData() { height: $("#container").height(), autowidth: true, viewrecords: true, - multiselect: true, - multiboxonly: false, +/* multiselect: true, + multiboxonly: false, */ rowList : eval('[${rmsDefaultRowList}]'), gridComplete:function (d){ var colModel = $(this).getGridParam("colModel"); @@ -402,7 +402,7 @@ function getGridData() { " alt="" id="btn_new" level="W" /> - " alt="" id="btn_delete" level="W" /> + <%-- " alt="" id="btn_delete" level="W" /> --%> " alt="" id="btn_search" level="R" />
메시지메타 관리메시지메타 정보를 등록 관리합니다
@@ -415,14 +415,14 @@ function getGridData() { 메시지 설명 - 복제 사용여부 + 복제 메시지메타 구분코드 diff --git a/WebContent/jsp/bap/admin/message/messageMetaManPopup.jsp b/WebContent/jsp/bap/admin/message/messageMetaManPopup.jsp index fae898a..b6308aa 100644 --- a/WebContent/jsp/bap/admin/message/messageMetaManPopup.jsp +++ b/WebContent/jsp/bap/admin/message/messageMetaManPopup.jsp @@ -71,9 +71,9 @@ function getGridData() { colModel:[ { name : 'MSGITEMDSTICNAME' , align:'left' ,width:40 ,sortable:false }, { name : 'MSGCLMNNAME' , align:'center' ,width:40 }, - { name : 'MSGCLMNATTRIPTRNCD' , align:'center' ,width:30 }, - { name : 'MSGCLMNVAL' , align:'center' ,width:30 }, - { name : 'THISMSGCLMNUSEYN' , align:'center' ,width:30 , + { name : 'MSGCLMNATTRIPTRNCD' , align:'center' ,width:40 }, + { name : 'MSGCLMNVAL' , align:'center' ,width:40 }, + { name : 'THISMSGCLMNUSEYN' , align:'center' ,width:40 , formatter: function (cellvalue) { if ( !cellvalue ) { return '사용안함'; @@ -84,9 +84,9 @@ function getGridData() { } } }, - { name : 'MSGITEMCLONENAME', align:'left', sortable:false, width:40, unformat:unformatterFunction, formatter:gridCloneName}, - { name : 'MSGITEMCLONE' , align:'center', sortable:false, width:20, unformat:unformatterFunction, formatter:gridCloneFunction}, - { name : 'DELETEYN' , align:'center', sortable:false, width:20, unformat:unformatterFunction, formatter:formatterFunction} + { name : 'MSGITEMCLONENAME', align:'left', sortable:false, width:40, unformat:unformatterFunction, formatter:gridCloneName, hidden:true }, + { name : 'MSGITEMCLONE' , align:'center', sortable:false, width:20, unformat:unformatterFunction, formatter:gridCloneFunction, hidden:true }, + { name : 'DELETEYN' , align:'center', sortable:false, width:20, unformat:unformatterFunction, formatter:formatterFunction, hidden:true } ], jsonReader: { repeatitems:false @@ -98,8 +98,8 @@ function getGridData() { height: $("#container").height(), autowidth: true, viewrecords: true, - multiselect: true, - multiboxonly: false, + /* multiselect: true, + multiboxonly: false, */ rowList : eval('[${rmsDefaultRowList}]'), gridComplete:function (d){ var colModel = $(this).getGridParam("colModel"); @@ -224,8 +224,8 @@ function getGridData() { -
배치 대외 기관 코드
+
업무구분코드
- + <%--
-
" class="btn_img"/>
+ --%> - + - + diff --git a/WebContent/jsp/bap/admin/work/messageProcMan.jsp b/WebContent/jsp/bap/admin/work/messageProcMan.jsp index 01f3139..aba6598 100644 --- a/WebContent/jsp/bap/admin/work/messageProcMan.jsp +++ b/WebContent/jsp/bap/admin/work/messageProcMan.jsp @@ -9,342 +9,215 @@ - - - - + + +
+
+ +
+ +
+
+ " alt="" id="btn_new" + level="W" /> " alt="" + id="btn_search" level="R" /> +
+
+ 송수신 파일 관리일괄 전송에서 사용하는 송수신 파일을 관리 하는 화면입니다 +
-function init() { - $.ajax({ - type: "POST", - url: url, - dataType: "json", - data: { cmd: 'LIST_INIT_COMBO' }, - success: function(json) { - new makeOptions("CODE","NAME").setObj($("select[name=searchBjobBzwkDstcd]")).setNoValueInclude(true).setNoValue('', '전체').setData(json.bjobBzwkDstcd).rendering(); // 업무구분코드 - list(); - }, - error: function(e) { - alert(e.responseText); - } - }); - setSearchable(selectName); // 콤보에 searchable 설정 -} +
배치 대외 기관 코드업무구분코드
배치 대외 기관명업무구분명
당메시지 사용여부 *
+ + + + + + + + + + + + + + +
업무구분명 + + 송수신파일명 + + 송수신파일설명 + +
-$(document).ready(function() { - - resizeJqGridWidth('grid', 'title', '1000'); - init(); - - $("#btn_search").click(function() { - var postData = getSearchForJqgrid("cmd","LIST"); //jqgrid에서는 object 로 - $("#grid").setGridParam({url:url, postData: postData,page:"1" }).trigger("reloadGrid"); - }); - - $("#btn_new").click(function() { - var url = ''; - url += '?cmd=DETAIL'; - url += '&page=' + $("#grid").getGridParam("page"); - url += '&returnUrl=' + getReturnUrl(); - url += '&menuId=' + '${param.menuId}'; - //검색값 - url += '&'+getSearchUrl(); - - goNav(url); - }); - - $("input[name^=search]").keydown(function(key) { - if (key.keyCode == 13) { - $("#btn_search").click(); - } - }); - - $("input[name^=like]").keydown(function(key) { - if (key.keyCode == 13) { - $("#btn_search").click(); - } - }); - - $("#btn_excel").click(function(event) { - event.stopPropagation(); // Do not propagate the event. - // Create an object that will manage to download the file. - var merge = new Array(); - gridToExcelSubmit(url_excel, "LIST_GRID_TO_EXCEL", $("#grid"), $("#ajaxForm"), "송수신 파일 관리", merge); - return false; - }); - - $("#btn_download").click(function() { - let selectedVal = ""; - const rowIds = $("#grid").getGridParam("selarrrow"); - - rowIds.forEach(rowId => { - selectedVal += "," + $("#grid").getRowData(rowId).BJOBMSGDSTCD; - }); - - if(selectedVal != "") selectedVal = selectedVal.substring(1); - - var url =''; - url += '?cmd=messageProcMan'; - url += '&control=download'; - url += '&serviceType=' + sessionStorage["serviceType"]; - url += '&fileName=messageProcMan'; - url += '&selectedVal=' + selectedVal; - url += '&' + getSearchUrl(); - - goNav(url); - }); - - $("#multiform").on('submit', fileupload); - $('#btn_upload').click(function() { - if( confirm( "동일한 이름의 경우 기존내용을 수정합니다.\n\n업로드 하시겠습니까?" ) != true ) return; - - if(window.FormData !== undefined) { - $("input[name=file]").click(); - } else { - if($("input[name=file]").val() == "") return; - $("#multiform").submit(); - } - }); - - if(window.FormData !== undefined) { - $("input[name=file]").change(function(ev) { - var filename = $(this).val().split('\\').pop(); - - if (!filename.startsWith('messageProcMan')) { - alert("송수신 파일관리 JSON 파일을 선택하십시오.\n\n[파일명 : messageProcMan.json]") - return false; - } - - if(filename == "") return; - else $("#multiform").submit(); - }); - } - - if(window.FormData !== undefined) { - $("input[name=file]").hide(); - } else { - $("input[name=file]").show(); - } - - buttonControl(); -}); - - - - -
-
- -
-
- "> -
- - - - " id="btn_excel" level="R" /> - " alt="" id="btn_upload" level="W" /> - " alt="" id="btn_download" level="R" /> - " alt="" id="btn_new" level="W" /> - " alt="" id="btn_search" level="R" /> -
- -
송수신 파일 관리일괄 전송에서 사용하는 송수신 파일을 관리 하는 화면입니다
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
인터페이스ID업무구분코드 -
- -
-
세부기관코드
송수신파일설명인터페이스설명사용여부 -
- -
-
- -
-
- -
-
- +
+
+
+ + + + diff --git a/WebContent/jsp/bap/admin/work/messageProcManDetail.jsp b/WebContent/jsp/bap/admin/work/messageProcManDetail.jsp index 1ce2662..1bc6419 100644 --- a/WebContent/jsp/bap/admin/work/messageProcManDetail.jsp +++ b/WebContent/jsp/bap/admin/work/messageProcManDetail.jsp @@ -16,529 +16,387 @@
" alt="" id="btn_delete" level="W" status="DETAIL"/> - " alt="" id="btn_modify" level="W" status="DETAIL,NEW" /> - " alt="" id="btn_previous" level="R" status="DETAIL,NEW"/> - " alt="" id="btn_close" level="R" style="display:none;" /> + " alt="" id="btn_modify" level="W" status="DETAIL,NEW" /> + " alt="" id="btn_previous" level="R" status="DETAIL,NEW"/>
-
송수신 파일
+
송수신 파일
- - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
인터페이스ID *업무구분코드
+
BATCH작업메시지구분코드
BATCH작업메시지구분명
BATCH작업전문헤더크기
BATCH작업전문데이터크기
BATCH작업전문트레일러크기
파일송신사용여부
+
파일수신사용여부
+
작업처리 우선순위
연계시스템 CODE(송신)
+
연계시스템 CODE(수신)
+
APPLICATION CODE + + +
파일담당자
수신시 알림여부 +
+
당메시지 사용여부 * -
- - -
+
BATCH작업메시지구분코드 *BATCH작업메시지구분명 *jFlow Job ID
BATCH작업전문헤더크기 *BATCH작업전문데이터크기 *
BATCH작업전문트레일러크기BATCH작업주기구분
파일 송/수신 구분 -
- -
-
수신시 알림여부 -
- -
-
APPLICATION CODE *
EAI 인터페이스ID
데이터검증여부 -
- -
-
" class="btn_img" />작업처리 우선순위
처리여부 -
- -
-
중복횟수
종결여부 -
- -
-
종결횟수
파일담당자
-
프라퍼티 정보
+ +
프라퍼티 정보
-
+ \ No newline at end of file diff --git a/WebContent/jsp/bap/admin/work/systemInstMan.jsp b/WebContent/jsp/bap/admin/work/systemInstMan.jsp index 44ecd4b..19d04b8 100644 --- a/WebContent/jsp/bap/admin/work/systemInstMan.jsp +++ b/WebContent/jsp/bap/admin/work/systemInstMan.jsp @@ -13,296 +13,170 @@ - -
-
- -
-
-
"> -
- - - - " id="btn_excel" level="R"/> - " alt="" id="btn_upload" level="W" /> - " alt="" id="btn_download" level="R" /> - " alt="" id="btn_new" level="W" /> - " alt="" id="btn_search" level="R" /> -
-
-
배치 세부 기관 관리일괄 전송에서 사용하는 배치 세부 기관 코드를 관리 하는 화면입니다
- - - - - - - - - - - - -
배치 세부 기관 명배치 세부 기관 코드배치 기관명
-
-
-
-
- + +
+
+ +
+
+
+ " alt="" id="btn_new" level="W" /> + " alt="" id="btn_search" level="R" /> +
+
시스템 대외기관 관리일괄 전송에서 사용하는 대외 기관구분 코드를 관리 하는 화면입니다
+ + + + + + + + + + + + + + + + + + + + + + + +
대외기관명대외기관코드업무구분명
업무구분코드송신처리규칙코드수신처리규칙코드
+
+
+ +
+
+ - diff --git a/WebContent/jsp/bap/admin/work/systemInstManDetail.jsp b/WebContent/jsp/bap/admin/work/systemInstManDetail.jsp index 39ec69d..8c83647 100644 --- a/WebContent/jsp/bap/admin/work/systemInstManDetail.jsp +++ b/WebContent/jsp/bap/admin/work/systemInstManDetail.jsp @@ -116,7 +116,7 @@ function init(key1, key2) { getBjobBzwkDstcd(key1, key2); getBjobBzwkPrcssDstcd(key1, key2); getAdaptorGroup(key1, key2); - setSearchable(selectName); // 콤보에 searchable 설정 + //setSearchable(selectName); // 콤보에 searchable 설정 } function getBjobBzwkDstcd(key1, key2) { @@ -178,7 +178,7 @@ function getAdaptorGroup(key1, key2) { } }, error: function(e) { - alert(e.responseText); + //alert(e.responseText); } }); } @@ -224,7 +224,7 @@ function detail(key1,key2) { $("#grid")[0].addJSONData(data); }, error: function(e) { - alert(e.responseText); + //alert(e.responseText); } }); } @@ -245,7 +245,7 @@ function setRqstRspnsDstcd() { $("select[name=adptrBzwkName]").val(sysLnkgList["ADPTRBZWKNAME"]); }, error: function(e) { - alert(e.responseText); + //alert(e.responseText); } }); } diff --git a/WebContent/jsp/bap/transaction/procWorkMan.jsp b/WebContent/jsp/bap/transaction/procWorkMan.jsp index 4b6d0e0..881a85b 100644 --- a/WebContent/jsp/bap/transaction/procWorkMan.jsp +++ b/WebContent/jsp/bap/transaction/procWorkMan.jsp @@ -214,7 +214,7 @@ $(document).ready(function() {
- " id="btn_excel" level="R"/> + <%-- " id="btn_excel" level="R"/> --%> " alt="" id="btn_search" level="R" />
진행작업 관리
diff --git a/WebContent/jsp/bap/transaction/transactionStatusMan.jsp b/WebContent/jsp/bap/transaction/transactionStatusMan.jsp index 54f8aca..5640bcd 100644 --- a/WebContent/jsp/bap/transaction/transactionStatusMan.jsp +++ b/WebContent/jsp/bap/transaction/transactionStatusMan.jsp @@ -12,772 +12,611 @@ - - +
- " id="btn_excel" level="R"/> - " alt="" id="btn_search" level="R" /> + " alt="" id="btn_search" level="R" />
일괄전송 현황 조회
@@ -789,8 +628,8 @@ $(document).ready(function() {
-
- +
+ 작업유형
@@ -806,8 +645,8 @@ $(document).ready(function() {
- - - + + + 대외기관명
-
@@ -839,46 +678,50 @@ $(document).ready(function() {
-
+
- +
    +
  • 비정상:지연+에러
  • +
  • 미도래
  • 큐대기
  • -
  • 진행중
  • 전송현황
  • -
  • 미완료
+
+
+
+
+
-
-
+
+
- - + + \ No newline at end of file diff --git a/WebContent/jsp/bap/transaction/transactionTraceMan.jsp b/WebContent/jsp/bap/transaction/transactionTraceMan.jsp index 6198356..6625437 100644 --- a/WebContent/jsp/bap/transaction/transactionTraceMan.jsp +++ b/WebContent/jsp/bap/transaction/transactionTraceMan.jsp @@ -13,97 +13,96 @@ - -
-
- -
-
-
- " id="btn_excel" level="R"/> - " alt="" id="btn_search" level="R" /> -
-
거래 추적
- - - - - - - - - - - - - - - - - - - - - - -
프레임웍구분 -
- -
-
업무구분명 -
- -
-
송수신구분 -
- -
-
상태 -
- -
-
파일명 - - 기관명 - - 거래기간 - - ~ - - - - -
-
-
-
-
- + +
+
+ +
+
+
+ " alt="" id="btn_search" level="R" /> +
+
거래 추적
+ + + + + + + + + + + + + + + + + + + + + + +
프레임웍구분 +
+ +
+
업무구분명 +
+ +
+
송수신구분 +
+ +
+
상태 +
+ +
+
파일명 + + 기관명 + + 거래기간 + + ~ + + + + +
+ +
+
+
+
+ + \ No newline at end of file diff --git a/WebContent/jsp/bap/transaction/transactionWaitMan.jsp b/WebContent/jsp/bap/transaction/transactionWaitMan.jsp index 4362ebe..b95e837 100644 --- a/WebContent/jsp/bap/transaction/transactionWaitMan.jsp +++ b/WebContent/jsp/bap/transaction/transactionWaitMan.jsp @@ -144,7 +144,7 @@ $(document).ready(function() { autowidth: true, viewrecords: true, gridview: true, - multiselect: true, + /* multiselect: true, */ rowList: eval('[${rmsDefaultRowList}]'), gridComplete: function (d) { var colModel = $(this).getGridParam("colModel"); @@ -250,8 +250,8 @@ $(document).ready(function() {
- " id="btn_excel" level="R"/> - " alt="" id="btn_delete" level="W" status="DETAIL"/> + <%-- " id="btn_excel" level="R"/> + " alt="" id="btn_delete" level="W" status="DETAIL"/> --%> " alt="" id="btn_search" level="R" />
작업대기 관리
From 20aaf13b434050b0dce9727d18e178047a8c2ca8 Mon Sep 17 00:00:00 2001 From: goseoan Date: Mon, 10 Nov 2025 13:22:53 +0900 Subject: [PATCH 38/49] =?UTF-8?q?XSS=20checkReturnUrl=20Debug=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eai/rms/common/filter/CrossScriptingFilter.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/eactive/eai/rms/common/filter/CrossScriptingFilter.java b/src/main/java/com/eactive/eai/rms/common/filter/CrossScriptingFilter.java index f7426c7..8d5da1e 100644 --- a/src/main/java/com/eactive/eai/rms/common/filter/CrossScriptingFilter.java +++ b/src/main/java/com/eactive/eai/rms/common/filter/CrossScriptingFilter.java @@ -38,9 +38,9 @@ public class CrossScriptingFilter implements Filter { String servletPath = request.getServletPath(); String baseUrl = uri.replace(servletPath, ""); boolean isValidUrl = returnUrl.startsWith(baseUrl); -// System.out.println("checkReturnUrl => "+ uri + " : "+ servletPath); -// System.out.println("checkReturnUrl => "+ baseUrl + " : "+ returnUrl); -// System.out.println("checkReturnUrl => "+ returnUrl + " : "+ isValidUrl); + System.out.println("checkReturnUrl => "+ uri + " : "+ servletPath); + System.out.println("checkReturnUrl => "+ baseUrl + " : "+ returnUrl); + System.out.println("checkReturnUrl => "+ returnUrl + " : "+ isValidUrl); return isValidUrl; } @@ -52,7 +52,7 @@ public class CrossScriptingFilter implements Filter { String returnUrl = (String)request.getParameter("returnUrl"); if(returnUrl != null) { if(!checkReturnUrl(request, returnUrl)) { - System.out.println("CrossScriptingFilter] bad request. - " + returnUrl); + System.out.println("[CrossScriptingFilter] bad request. - " + returnUrl); response.sendError(HttpServletResponse.SC_BAD_REQUEST, "bad request. - "+returnUrl); return; } From 333b186342e6f080f74ebc650db7d92726946f7d Mon Sep 17 00:00:00 2001 From: Rinjae Date: Mon, 10 Nov 2025 16:49:21 +0900 Subject: [PATCH 39/49] =?UTF-8?q?property=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kjb-docs/Property 설정.md | 29 +++- .../service/ums/UmsDispatchService.java | 43 +++--- .../eactive/ext/kjb/ums/KjbEmailService.java | 142 ------------------ .../ext/kjb/util/KjbPropertyInjector.java | 62 ++++++++ 4 files changed, 113 insertions(+), 163 deletions(-) delete mode 100644 src/main/java/com/eactive/ext/kjb/ums/KjbEmailService.java create mode 100644 src/main/java/com/eactive/ext/kjb/util/KjbPropertyInjector.java diff --git a/kjb-docs/Property 설정.md b/kjb-docs/Property 설정.md index f46ea6a..9356d8c 100644 --- a/kjb-docs/Property 설정.md +++ b/kjb-docs/Property 설정.md @@ -38,15 +38,38 @@ | | | | | | ```sql +-- 개발 서버용 insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.eai_batch.url', 'http://172.31.32.111:10230/BATAppWeb/EaiBatCall'); -insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.eai_batch.connection_timeout', '5'); -insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.eai_batch.response_timeout', '10'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.eai.batch.connection_timeout', '5'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.eai.batch.response_timeout', '5'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.eai.batch.timeout', '10'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.eai.batch.charset', 'euc-kr'); insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.eai_batch.send_dir', '/Data/eapim/portal/sendmail/snd'); insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.eai_batch.backup_dir', '/Data/eapim/portal/sendmail/bak'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.eai_batch.error_dir', '/Data/eapim/portal/sendmail/bak'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.eai_batch.retention_date', '60'); insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.eai_batch.interface_id', 'UAGFF00001UIE'); insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.host_url', 'http://172.31.35.144:9021'); insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.api_key', '7cca6d58-e4f7-474d-9edd-525806bc99ff'); insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.connection_timeout', '5'); -insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.response_timeout', '10'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.response_timeout', '5'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.timeout', '10'); + +-- autogen template +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.eai.batch.url', ''); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.eai.batch.connection_timeout', '5'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.eai.batch.response_timeout', '5'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.eai.batch.timeout', '10'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.eai.batch.charset', 'euc-kr'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.eai_batch.send_dir', ''); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.eai_batch.backup_dir', ''); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.eai_batch.error_dir', ''); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.eai_batch.interface_id', ''); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.eai_batch.retention_date', '60'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.host', ''); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.api_key', ''); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.connection_timeout', '5'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.response_timeout', '5'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.timeout', '10'); ``` \ No newline at end of file diff --git a/src/main/java/com/eactive/eai/rms/onl/common/service/ums/UmsDispatchService.java b/src/main/java/com/eactive/eai/rms/onl/common/service/ums/UmsDispatchService.java index 30951e5..549ce34 100644 --- a/src/main/java/com/eactive/eai/rms/onl/common/service/ums/UmsDispatchService.java +++ b/src/main/java/com/eactive/eai/rms/onl/common/service/ums/UmsDispatchService.java @@ -1,13 +1,13 @@ package com.eactive.eai.rms.onl.common.service.ums; import com.eactive.apim.portal.template.entity.MessageRequest; +import com.eactive.apim.portal.template.repository.MessageRequestRepository; import com.eactive.eai.rms.data.entity.man.monitoringProperty.service.MonitoringPropertyService; import com.eactive.ext.kjb.common.KjbProperty; -import com.eactive.ext.kjb.safedb.KjbSafedbWrapper; -import com.eactive.ext.kjb.ums.KjbEmailService; +import com.eactive.ext.kjb.ums.KjbEmailSendModule; import com.eactive.ext.kjb.ums.KjbUmsService; +import com.eactive.ext.kjb.util.KjbPropertyInjector; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.NotImplementedException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; @@ -42,19 +42,21 @@ public class UmsDispatchService { @PersistenceContext(unitName = "entityManagerFactoryForEMS") private EntityManager entityManager; -// private final KjbEmailService kjbEmailService; -// private final KjbSafedbWrapper kjbSafedbWrapper; -// private final MonitoringPropertyService monitoringPropertyService; - + private final MessageRequestRepository messageRequestRepository; private final KjbUmsService kjbUmsService; + private final KjbEmailSendModule kjbEmailSendModule; + private final KjbPropertyInjector kjbPropertyInjector; @Autowired public UmsDispatchService( @Qualifier("transactionManagerForEMS") PlatformTransactionManager transactionManager, -// KjbSafedbWrapper kjbSafedbWrapper, - MonitoringPropertyService monitoringPropertyService + MonitoringPropertyService monitoringPropertyService, + MessageRequestRepository messageRequestRepository ) { + this.kjbPropertyInjector = new KjbPropertyInjector(monitoringPropertyService, PROP_GORUP_ID); + + this.messageRequestRepository = messageRequestRepository; // this.kjbEmailService = kjbEmailService; // this.kjbSafedbWrapper = kjbSafedbWrapper; // this.monitoringPropertyService = monitoringPropertyService; @@ -73,14 +75,17 @@ public class UmsDispatchService { KjbProperty prop = new KjbProperty(); - prop.setEaiBatchUrl(monitoringPropertyService.getPrpty2ValById(PROP_GORUP_ID, "kjb.ums.eai_batch.url")); - prop.setUmsEaiBatchSendDir(monitoringPropertyService.getPrpty2ValById(PROP_GORUP_ID, "kjb.ums.eai_batch.send_dir")); - prop.setUmsEaiBatchBackupDir(monitoringPropertyService.getPrpty2ValById(PROP_GORUP_ID, "kjb.ums.eai_batch.backup_dir")); - prop.setUmsEaiBatchInterfaceId(monitoringPropertyService.getPrpty2ValById(PROP_GORUP_ID, "kjb.ums.eai_batch.interface_id")); - prop.setUmsHostUrl(monitoringPropertyService.getPrpty2ValById(PROP_GORUP_ID, "kjb.ums.host_url")); - prop.setUmsApiKey(monitoringPropertyService.getPrpty2ValById(PROP_GORUP_ID, "kjb.ums.api_key")); +// prop.setEaiBatchUrl(monitoringPropertyService.getPrpty2ValById(PROP_GORUP_ID, "kjb.ums.eai_batch.url")); +// prop.setUmsEaiBatchSendDir(monitoringPropertyService.getPrpty2ValById(PROP_GORUP_ID, "kjb.ums.eai_batch.send_dir")); +// prop.setUmsEaiBatchBackupDir(monitoringPropertyService.getPrpty2ValById(PROP_GORUP_ID, "kjb.ums.eai_batch.backup_dir")); +// prop.setUmsEaiBatchInterfaceId(monitoringPropertyService.getPrpty2ValById(PROP_GORUP_ID, "kjb.ums.eai_batch.interface_id")); +// prop.setUmsHostUrl(monitoringPropertyService.getPrpty2ValById(PROP_GORUP_ID, "kjb.ums.host_url")); +// prop.setUmsApiKey(monitoringPropertyService.getPrpty2ValById(PROP_GORUP_ID, "kjb.ums.api_key")); + prop = kjbPropertyInjector.inject(prop); this.kjbUmsService = new KjbUmsService(prop); + + this.kjbEmailSendModule = KjbEmailSendModule.getInstance(prop, messageRequestRepository); } @SuppressWarnings("unchecked") @@ -123,6 +128,9 @@ public class UmsDispatchService { } } else { log.info("No pending messages found"); + + // 발송 메세지가 없을 때 파일 삭제 처리 진행 + } } @@ -142,9 +150,8 @@ public class UmsDispatchService { kjbUmsService.send(message); } - if (KjbEmailService.isAllowChannel(message)) { - throw new NotImplementedException(); -// kjbEmailService.sendEmail(message); + if (KjbEmailSendModule.isAllowChannel(message)) { + kjbEmailSendModule.sendEmail(message); } return null; diff --git a/src/main/java/com/eactive/ext/kjb/ums/KjbEmailService.java b/src/main/java/com/eactive/ext/kjb/ums/KjbEmailService.java deleted file mode 100644 index 334a336..0000000 --- a/src/main/java/com/eactive/ext/kjb/ums/KjbEmailService.java +++ /dev/null @@ -1,142 +0,0 @@ -package com.eactive.ext.kjb.ums; - -import com.eactive.apim.portal.template.entity.MessageCode; -import com.eactive.apim.portal.template.entity.MessageRequest; -import com.eactive.eai.rms.common.base.BaseService; -import com.eactive.eai.rms.data.entity.man.monitoringProperty.service.MonitoringPropertyService; -import com.eactive.ext.kjb.common.KjbProperty; -import com.eactive.ext.kjb.safedb.KjbSafedbWrapper; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.JsonObject; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.io.UnsupportedEncodingException; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.Arrays; - -@Service -@Transactional(transactionManager = "transactionManagerForEMS") -@Slf4j -public class KjbEmailService extends BaseService { - public final static int[] ALLOW_CHANNELS = { MessageCode.Channels.EMAIL.getValue() }; - - public static final String PROP_GORUP_ID = "Monitoring"; - public static final String PROP_EAI_BATCH_URL = "kjb.ums.eai_batch.url"; - public static final String PROP_EAI_BATCH_SEND_DIR = "kjb.ums.eai_batch.send_dir"; - - - private final KjbSafedbWrapper kjbSafedbWrapper; - - private final KjbProperty prop; - - - @Autowired - public KjbEmailService(MonitoringPropertyService monitoringPropertyService) { - this.kjbSafedbWrapper = KjbSafedbWrapper.getInstance(); - - KjbProperty prop = new KjbProperty(); - prop.setEaiBatchUrl(monitoringPropertyService.getPrpty2ValById(PROP_GORUP_ID, PROP_EAI_BATCH_URL)); - prop.setUmsEaiBatchSendDir(monitoringPropertyService.getPrpty2ValById(PROP_GORUP_ID, PROP_EAI_BATCH_SEND_DIR)); - prop.setUmsEaiBatchBackupDir(monitoringPropertyService.getPrpty2ValById(PROP_GORUP_ID, "kjb.ums.eai_batch.backup_dir")); - prop.setUmsEaiBatchInterfaceId(monitoringPropertyService.getPrpty2ValById(PROP_GORUP_ID, "kjb.ums.eai_batch.interface_id")); - prop.setUmsHostUrl(monitoringPropertyService.getPrpty2ValById(PROP_GORUP_ID, "kjb.ums.host_url")); - prop.setUmsApiKey(monitoringPropertyService.getPrpty2ValById(PROP_GORUP_ID, "kjb.ums.api_key")); - - this.prop = prop; - } - - - public static boolean isAllowChannel(MessageRequest message) { - for (int channel : ALLOW_CHANNELS) { - if ((message.getMessageCode().getChannels() & channel) == channel) { - return true; - } - } - return false; - } - - - public KjbEmailService(KjbSafedbWrapper kjbSafedbWrapper, - KjbProperty property) { - this.kjbSafedbWrapper = kjbSafedbWrapper; - this.prop = property; - - init(); - } - - - private void init() { - if (prop.getEaiBatchUrl().isEmpty()) { - log.warn("{} 가 설정되지 않음. 실제 EAI 배치 연동 없이 동작함", PROP_EAI_BATCH_URL); - } - - log.info("EAI Batch URL: {}", prop.getEaiBatchUrl()); - log.info("EAI Batch Send Dir: {}", prop.getUmsEaiBatchSendDir()); - - - // 디렉토리 검사(쓰기 권한 포함) - Path sendDirPath = Paths.get(prop.getUmsEaiBatchSendDir()); - if (!sendDirPath.toFile().exists()) { - // 생성 시도 - boolean created = sendDirPath.toFile().mkdirs(); - if (!created) { - log.error("EAI_BATCH_SEND_DIR 디렉토리를 생성할 수 없음: {}", prop.getUmsEaiBatchSendDir()); - throw new IllegalStateException("EAI_BATCH_SEND_DIR 디렉토리를 생성할 수 없음: " + prop.getUmsEaiBatchSendDir()); - } - } - - if (!sendDirPath.toFile().isDirectory()) { - log.error("EAI_BATCH_SEND_DIR 가 디렉토리가 아님: {}", prop.getUmsEaiBatchSendDir()); - throw new IllegalStateException("EAI_BATCH_SEND_DIR 가 디렉토리가 아님: " + prop.getUmsEaiBatchSendDir()); - } - - if (!sendDirPath.toFile().canWrite()) { - log.error("EAI_BATCH_SEND_DIR 에 쓰기 권한이 없음: {}", prop.getUmsEaiBatchSendDir()); - throw new IllegalStateException("EAI_BATCH_SEND_DIR 에 쓰기 권한이 없음: " + prop.getUmsEaiBatchSendDir()); - } - } - - - public void sendEmail(MessageRequest messageRequest) { - log.debug("sendEmail() called - EAI_BATCH_URL: {}, EAI_BATCH_SEND_DIR: {}", prop.getEaiBatchUrl(), prop.getUmsEaiBatchSendDir()); - log.debug("MessageRequest ID: {}, Email: {}", messageRequest.getId(), messageRequest.getEmail()); - - - if (StringUtils.isEmpty(messageRequest.getId())) { - log.warn("MessageRequest ID is empty"); - throw new IllegalArgumentException("MessageRequest ID is required"); - } - - if (StringUtils.isEmpty(messageRequest.getEmail())) { - log.warn("MessageRequest Email is empty for ID: {}", messageRequest.getId()); - throw new IllegalArgumentException("MessageRequest Email is required for ID: " + messageRequest.getId()); - } - - - String filename = "EMAIL_" + messageRequest.getId() + ".json"; - - JsonObject jsonObject = new JsonObject(); - jsonObject.addProperty("EMAIL", kjbSafedbWrapper.encryptNotRnnoString(messageRequest.getEmail())); - - - Gson gson = new GsonBuilder().setPrettyPrinting().create(); - String jsonString = gson.toJson(jsonObject); - byte[] jsonBytes = null; - - try { - jsonBytes = jsonString.getBytes("euc-kr"); - } catch (UnsupportedEncodingException e) { - throw new RuntimeException(e); - - } - - log.debug("Generated JSON({} bytes): {}", jsonBytes.length, jsonString); - log.debug("euc-kr first 10 bytes: {}...", Arrays.toString(Arrays.copyOfRange(jsonBytes, 0, 10))); - } -} diff --git a/src/main/java/com/eactive/ext/kjb/util/KjbPropertyInjector.java b/src/main/java/com/eactive/ext/kjb/util/KjbPropertyInjector.java new file mode 100644 index 0000000..8b4ac6c --- /dev/null +++ b/src/main/java/com/eactive/ext/kjb/util/KjbPropertyInjector.java @@ -0,0 +1,62 @@ +package com.eactive.ext.kjb.util; + +import com.eactive.eai.rms.data.entity.man.monitoringProperty.service.MonitoringPropertyService; +import com.eactive.ext.kjb.common.KjbProperty; +import com.eactive.ext.kjb.common.KjbPropertyValue; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; + +import java.lang.reflect.Field; + +@Slf4j +public class KjbPropertyInjector { + private final MonitoringPropertyService monitoringPropertyService; + private final String groupId; + + + public KjbPropertyInjector(MonitoringPropertyService monitoringPropertyService, String groupId) { + this.monitoringPropertyService = monitoringPropertyService; + this.groupId = groupId; + } + + public T inject(T property) { + Class clazz = property.getClass(); + + for (Field field : clazz.getDeclaredFields()) { + KjbPropertyValue anno = field.getAnnotation(KjbPropertyValue.class); + + if (anno != null) { + String key = anno.key(); + String rawValue = monitoringPropertyService.getPropertyValue(groupId, key, anno.defaultValue()); + Object convertedValue = convertValue(field.getType(), rawValue); + + field.setAccessible(true); + try { + field.set(property, convertedValue); + } catch (IllegalAccessException e) { + log.error("Failed to inject property: {} - {}", field.getName(), key, e); + throw new RuntimeException(e); + } + } + } + + return property; + } + + + private static Object convertValue(Class type, String rawValue) { + if (rawValue == null) return null; + if (StringUtils.isEmpty(rawValue)) return ""; + + if (type == String.class) return rawValue; + if (type == Integer.class || type == int.class) return Integer.valueOf(rawValue); + if (type == Long.class || type == long.class) return Long.valueOf(rawValue); + if (type == Double.class || type == double.class) return Double.valueOf(rawValue); + if (type == Boolean.class || type == boolean.class) return Boolean.valueOf(rawValue); + if (type == Float.class || type == float.class) return Float.valueOf(rawValue); + if (type == Short.class || type == short.class) return Short.valueOf(rawValue); + if (type == Byte.class || type == byte.class) return Byte.valueOf(rawValue); + + return rawValue; + } +} From 8ad147ed0b963c70dd40d14cca066c9edd3edafa Mon Sep 17 00:00:00 2001 From: Rinjae Date: Mon, 10 Nov 2025 17:29:39 +0900 Subject: [PATCH 40/49] =?UTF-8?q?weblogic=20https=20=EB=8C=80=EC=9D=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eai/rms/common/filter/CrossScriptingFilter.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/eactive/eai/rms/common/filter/CrossScriptingFilter.java b/src/main/java/com/eactive/eai/rms/common/filter/CrossScriptingFilter.java index 8d5da1e..c01f2cb 100644 --- a/src/main/java/com/eactive/eai/rms/common/filter/CrossScriptingFilter.java +++ b/src/main/java/com/eactive/eai/rms/common/filter/CrossScriptingFilter.java @@ -37,11 +37,9 @@ public class CrossScriptingFilter implements Filter { String uri = request.getRequestURL().toString(); String servletPath = request.getServletPath(); String baseUrl = uri.replace(servletPath, ""); - boolean isValidUrl = returnUrl.startsWith(baseUrl); - System.out.println("checkReturnUrl => "+ uri + " : "+ servletPath); - System.out.println("checkReturnUrl => "+ baseUrl + " : "+ returnUrl); - System.out.println("checkReturnUrl => "+ returnUrl + " : "+ isValidUrl); - return isValidUrl; + // 25.11.10 - weblogic https://host:443/ 문제 대응 + baseUrl = baseUrl.replace(":443", ""); + return returnUrl.startsWith(baseUrl); } public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) @@ -52,7 +50,6 @@ public class CrossScriptingFilter implements Filter { String returnUrl = (String)request.getParameter("returnUrl"); if(returnUrl != null) { if(!checkReturnUrl(request, returnUrl)) { - System.out.println("[CrossScriptingFilter] bad request. - " + returnUrl); response.sendError(HttpServletResponse.SC_BAD_REQUEST, "bad request. - "+returnUrl); return; } From c4d5392ed846b979d6b16f32c23b86066349baa7 Mon Sep 17 00:00:00 2001 From: dogyeom Date: Mon, 10 Nov 2025 17:42:25 +0900 Subject: [PATCH 41/49] =?UTF-8?q?=EB=A9=94=EC=8B=9C=EC=A7=80=20=EB=A9=94?= =?UTF-8?q?=ED=83=80=20insert=20bm02=20=EC=BF=BC=EB=A6=AC=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20=EB=B0=8F=20controller,=20service=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../messageMeta/BapMessageMetaController.java | 87 +-------- .../messageMeta/BapMessageMetaService.java | 181 +----------------- .../manage/message/MessageMetaMan-oracle.xml | 10 +- 3 files changed, 10 insertions(+), 268 deletions(-) diff --git a/src/main/java/com/eactive/eai/rms/bap/manage/message/messageMeta/BapMessageMetaController.java b/src/main/java/com/eactive/eai/rms/bap/manage/message/messageMeta/BapMessageMetaController.java index 2dcb309..67842e4 100644 --- a/src/main/java/com/eactive/eai/rms/bap/manage/message/messageMeta/BapMessageMetaController.java +++ b/src/main/java/com/eactive/eai/rms/bap/manage/message/messageMeta/BapMessageMetaController.java @@ -1,8 +1,6 @@ package com.eactive.eai.rms.bap.manage.message.messageMeta; -import java.util.ArrayList; import java.util.HashMap; -import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; @@ -122,88 +120,5 @@ public class BapMessageMetaController extends BapBaseAnnotationController { return null; } - @RequestMapping(value= "/bap/admin/message/messageMetaMan.json",params = "cmd=LIST_DELETE") - public String deleteList(HttpServletRequest request, - HttpServletResponse response, @RequestParam HashMap paramMap ) throws Exception { - for (String msgMetaDstcd : paramMap.get("msgMetaDstcdList").toString().split(",")) { - HashMap paramDetail = new HashMap(); - paramDetail.put("msgMetaDstcd", msgMetaDstcd); - service.delete(paramDetail); - } - return null; - - } - @SuppressWarnings("unchecked") - @RequestMapping(value= "/bap/admin/message/messageMetaMan.json",params = "cmd=CLONE") - public ModelAndView clone(HttpServletRequest request, - HttpServletResponse response,@RequestParam HashMap map) throws Exception { - - String msgMetaDstcd = map.get("msgMetaDstcd").toString(); - HashMap detailMap = service.selectDetail(msgMetaDstcd); - HashMap detail = (HashMap)detailMap.get("detail"); - List> list = (List>)detailMap.get("list"); - - // detail insert 데이터키 치환 (insert_bm03) - String newMsgMetaDstcd = map.get("newMsgMetaDstcd").toString(); - detail.put("msgMetaDstcd", newMsgMetaDstcd); - detail.put("msgDesc" , map.get("newMsgDesc") != null ? map.get("newMsgDesc") : detail.get("MSGDESC")); - detail.put("thisMsgUseYn", detail.get("THISMSGUSEYN")); - - String searchMsgMetaDstcd = map.get("searchMsgMetaDstcd").toString(); - String cloneMsgMetaDstcd = map.get("cloneMsgMetaDstcd").toString(); - - // gridList insert 데이터키 치환 (insert_bm02) - HashMap[] gridList = list.toArray(new HashMap[list.size()]); - for (int i=0; i listMap = (Map)list.get(i); - gridList[i].put("msgMetaDstcd" , ((String)listMap.get("MSGMETADSTCD")).replace(searchMsgMetaDstcd,cloneMsgMetaDstcd)); - gridList[i].put("thisMsgUseYn" , listMap.get("THISMSGCLMNUSEYN")); - // 메시지항목명을 치환하면 메시지항목 테이블(BM01)에 항목이 없으므로 메타 Item 리스트에 보이지 않음 --> 치환 안함으로 변경 -// gridList[i].replace("MSGITEMDSTICNAME" , ((String)listMap.get("MSGITEMDSTICNAME")).replace(searchMsgMetaDstcd,cloneMsgMetaDstcd)); - gridList[i].replace("MSGITEMDSTICNAME" , listMap.get("MSGITEMDSTICNAME")); - gridList[i].replace("MSGCLMNSEQ" , listMap.get("MSGCLMNSEQ")); - } - String userid = com.eactive.eai.rms.common.login.SessionManager.getUserId(request); - detail.put("userid", userid ); - - service.insert(detail,gridList); - - CommonCommand command = new CommonCommand("com.eactive.eai.agent.telegram.UpdateTelegramCommand",map.get("newMsgMetaDstcd")); - agentUtilService.broadcast(command); - - HashMap result = new HashMap(); - result.put("detail",detail); - result.put("list",gridList); - ModelAndView modelAndView = new ModelAndView("jsonView", result); - - return modelAndView; - } - - @SuppressWarnings("unchecked") - @RequestMapping(value= "/bap/admin/message/messageMetaMan.json",params = "cmd=LIST_DOWNLOAD_SQL") - public ModelAndView downloadSql(HttpServletRequest request, - HttpServletResponse response,@RequestParam HashMap map) throws Exception { - - List> msgMetaList = new ArrayList>(); - for (String searchMsgMetaDstcd : map.get("searchMsgMetaDstcdList").toString().split(",")) { - HashMap msgMeta = service.selectDetail(searchMsgMetaDstcd); - msgMetaList.add((Map)msgMeta.get("detail")); - } - - HashMap messageMeta = new HashMap(); - messageMeta.put("list", msgMetaList); - messageMeta.put("userid",com.eactive.eai.rms.common.login.SessionManager.getUserId(request)); - messageMeta.put("fileName", map.get("fileName")); - messageMeta.put("svrType", map.get("svrType")); - - ModelAndView modelAndView = new ModelAndView("jsonView",service.mkInserSqlForMsgMeta(messageMeta)); - - return modelAndView; - } - @RequestMapping(value= "/bap/admin/message/messageMetaMan.view",params = "cmd=LIST_FILE_DOWNLOAD") - public String fileDownload(HttpServletRequest request) throws Exception { - - return "/bap/admin/common/filedownload"; - } -} \ No newline at end of file +} diff --git a/src/main/java/com/eactive/eai/rms/bap/manage/message/messageMeta/BapMessageMetaService.java b/src/main/java/com/eactive/eai/rms/bap/manage/message/messageMeta/BapMessageMetaService.java index dd0ae97..91c9289 100644 --- a/src/main/java/com/eactive/eai/rms/bap/manage/message/messageMeta/BapMessageMetaService.java +++ b/src/main/java/com/eactive/eai/rms/bap/manage/message/messageMeta/BapMessageMetaService.java @@ -1,9 +1,5 @@ package com.eactive.eai.rms.bap.manage.message.messageMeta; -import java.io.FileOutputStream; -import java.io.OutputStream; -import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -13,8 +9,6 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import com.eactive.eai.rms.bap.common.base.BapBaseService; -import com.eactive.eai.rms.bap.manage.comm.property.BapPropertyDao; -import com.eactive.eai.rms.common.util.SqlUtil; @Service("bapMessageMetaService") public class BapMessageMetaService extends BapBaseService { @@ -23,17 +17,13 @@ public class BapMessageMetaService extends BapBaseService { @Qualifier("bapMessageMetaDao") private BapMessageMetaDao dao; - @Autowired - @Qualifier("bapPropertyDao") - private BapPropertyDao propDao; - public HashMap selectList(int startNum,int endNum, HashMap paramMap) throws Exception { - // 전체 목록수 얻기 + // 전체 목록 수 얻기 int totalCount = dao.selectListCount(paramMap); - paramMap.put("startNum" , startNum);// 시작 record - paramMap.put("endNum" , endNum);// 끝 record + paramMap.put("startNum" , startNum);// record + paramMap.put("endNum" , endNum);// record List> list = dao.selectList(paramMap); HashMap map = new HashMap(); @@ -44,11 +34,6 @@ public class BapMessageMetaService extends BapBaseService { return map; } - public int selectTotalCount(HashMap paramMap) throws Exception { - - return dao.selectListCount(paramMap); // 전체 목록수 얻기 - } - public HashMap selectDetail(String msgMetaDstcd) throws Exception { HashMap detail = dao.selectDetail(msgMetaDstcd); @@ -94,162 +79,4 @@ public class BapMessageMetaService extends BapBaseService { dao.deleteList(paramMap); } - @SuppressWarnings("unchecked") - public HashMap mkInserSqlForMsgMeta(HashMap msgMetaMap) throws Exception { - - StringBuffer msgMetaInsertSql = new StringBuffer(); - String[] columnUserId = {"THISMSGREGSNTID","THISMSGAMNDRID","THISMSGCLMNREGSNTID","THISMSGCLMNAMNDRID"}; // userID 입력컬럼 구분 - String[] columnDateTime = {"THISMSGREGIHMS","THISMSGAMNDHMS","THISMSGCLMNREGIHMS","THISMSGCLMNAMNDHMS"}; // DateTime 입력컬럼 구분 - List> msgMetaList = (List>)msgMetaMap.get("list"); - String userid = msgMetaMap.containsKey("userid") ? msgMetaMap.get("userid").toString() : ""; - - for (Map meta : msgMetaList) { - // MESSAGE META LIST into BM03 - List columnArr = new ArrayList(); - String[] columnList = {"MSGMETADSTCD","MSGDESC","THISMSGUSEYN","THISMSGREGSNTID","THISMSGREGIHMS","THISMSGAMNDRID","THISMSGAMNDHMS"}; - columnArr = Arrays.asList(columnList); - msgMetaInsertSql.append("INSERT INTO EAIPKG.TSEAIBM03 ("); - - // 필드명 입력 - for (String column : columnArr) { - msgMetaInsertSql.append((column.equals(columnArr.get(columnArr.size()-1))) ? column : column+","); - } - msgMetaInsertSql.append(") VALUES ("); - // 필드값 입력 - for (String column : columnArr) { - if (column.equals(columnArr.get(columnArr.size()-1))) { - if (Arrays.asList(columnUserId).contains(column)) { - msgMetaInsertSql.append("'"+userid+"');\n"); - } else if (Arrays.asList(columnDateTime).contains(column)) { - msgMetaInsertSql.append("TO_CHAR(LOCALTIMESTAMP, 'YYYYMMDDHH24MISSFF3'));\n"); - } else { - msgMetaInsertSql.append("'"+(meta.containsKey(column) ? meta.get(column) : "")+"');\n"); - } - } else { - if (Arrays.asList(columnUserId).contains(column)) { - msgMetaInsertSql.append("'"+userid+"',"); - } else if (Arrays.asList(columnDateTime).contains(column)) { - msgMetaInsertSql.append("TO_CHAR(LOCALTIMESTAMP, 'YYYYMMDDHH24MISSFF3'),"); - } else { - msgMetaInsertSql.append("'"+(meta.containsKey(column) ? meta.get(column) : "")+"',"); - } - } - } - - HashMap metaMap = selectDetail(meta.get("MSGMETADSTCD").toString()); - List> metaItemList = (List>)metaMap.get("list"); - - // MESSAGE META LIST into BM02 - for (Map metaItem : metaItemList) { - List columnItemArr = new ArrayList(); - String[] columnItemList = {"MSGMETADSTCD","MSGCLMNSEQ","MSGITEMDSTICNAME","THISMSGCLMNUSEYN","THISMSGREGSNTID","THISMSGREGIHMS","THISMSGAMNDRID","THISMSGAMNDHMS"}; - columnItemArr = Arrays.asList(columnItemList); - msgMetaInsertSql.append("INSERT INTO EAIPKG.TSEAIBM02 (MSGGROUPDSTCD,"); - - // 필드명 입력 - for (String columnItem : columnItemArr) { - if (columnItem.equals("MSGMETADSTCD")) continue; - msgMetaInsertSql.append((columnItem.equals(columnItemArr.get(columnItemArr.size()-1))) ? columnItem : columnItem+","); - } - msgMetaInsertSql.append(") VALUES ("); - // 필드값 입력 - for (String column : columnItemArr) { - if (column.equals(columnItemArr.get(columnItemArr.size()-1))) { - if (Arrays.asList(columnUserId).contains(column)) { - msgMetaInsertSql.append("'"+userid+"');\n"); - } else if (Arrays.asList(columnDateTime).contains(column)) { - msgMetaInsertSql.append("TO_CHAR(LOCALTIMESTAMP, 'YYYYMMDDHH24MISSFF3'));\n"); - } else { - msgMetaInsertSql.append("'"+(metaItem.containsKey(column) ? metaItem.get(column) : "")+"');\n"); - } - } else { - if (Arrays.asList(columnUserId).contains(column)) { - msgMetaInsertSql.append("'"+userid+"',"); - } else if (Arrays.asList(columnDateTime).contains(column)) { - msgMetaInsertSql.append("TO_CHAR(LOCALTIMESTAMP, 'YYYYMMDDHH24MISSFF3'),"); - } else { - msgMetaInsertSql.append("'"+(metaItem.containsKey(column) ? metaItem.get(column) : "")+"',"); - } - } - } - } - - // MESSAGE META LIST into BM01 - for (Map metaItem : metaItemList) { - List columnClmArr = new ArrayList(); - String[] columnClmList = {"MSGITEMDSTICNAME","THISMSGCLMNUSEYN","MSGCLMNNAME","MSGCLMNATTRIPTRNCD","MSGCLMNVAL","THISMSGCLMNREGSNTID","THISMSGCLMNREGIHMS","THISMSGCLMNAMNDRID","THISMSGCLMNAMNDHMS"}; - columnClmArr = Arrays.asList(columnClmList); - - msgMetaInsertSql.append("MERGE INTO EAIPKG.TSEAIBM01 r USING (VALUES("); - // 필드값 입력 - for (String column : columnClmArr) { - if (column.equals(columnClmArr.get(columnClmArr.size()-1))) { - if (Arrays.asList(columnUserId).contains(column)) { - msgMetaInsertSql.append("'"+userid+"')) "); - } else if (Arrays.asList(columnDateTime).contains(column)) { - msgMetaInsertSql.append("TO_CHAR(LOCALTIMESTAMP, 'YYYYMMDDHH24MISSFF3'))) "); - } else { - msgMetaInsertSql.append("'"+(metaItem.containsKey(column) ? metaItem.get(column) : "")+"')) "); - } - } else { - if (Arrays.asList(columnUserId).contains(column)) { - msgMetaInsertSql.append("'"+userid+"',"); - } else if (Arrays.asList(columnDateTime).contains(column)) { - msgMetaInsertSql.append("TO_CHAR(LOCALTIMESTAMP, 'YYYYMMDDHH24MISSFF3'),"); - } else { - msgMetaInsertSql.append("'"+(metaItem.containsKey(column) ? metaItem.get(column) : "")+"',"); - } - } - } - // 필드명 입력 - msgMetaInsertSql.append("AS s("); - for (String columnClm : columnClmArr) { - msgMetaInsertSql.append((columnClm.equals(columnClmArr.get(columnClmArr.size()-1))) ? columnClm+")\n" : columnClm+","); - } - msgMetaInsertSql.append("ON r.MSGITEMDSTICNAME = s.MSGITEMDSTICNAME WHEN NOT MATCHED THEN\n"); - msgMetaInsertSql.append("INSERT ("); - for (String columnClm : columnClmArr) { - msgMetaInsertSql.append((columnClm.equals(columnClmArr.get(columnClmArr.size()-1))) ? "r."+columnClm : "r."+columnClm+","); - } - msgMetaInsertSql.append(") VALUES ("); - for (String columnClm : columnClmArr) { - msgMetaInsertSql.append((columnClm.equals(columnClmArr.get(columnClmArr.size()-1))) ? "s."+columnClm+");\n" : "s."+columnClm+","); - } - } - } - - HashMap retMap = new HashMap(); - if (msgMetaMap.get("fileName") != null) { - OutputStream output = null; - try { - String sqlDownloadPath = getProperties("SQL_DOWNLOAD", "DOWNLOAD_PATH"); - String sqlDownloadFile = sqlDownloadPath+msgMetaMap.get("fileName"); - output = new FileOutputStream(sqlDownloadFile); - if (sqlDownloadPath != null) { - byte[] bt = msgMetaInsertSql.toString().getBytes(); - output.write(bt); - output.close(); - } - retMap.put("path", sqlDownloadPath); - } catch (Exception e) { - logger.error( e.getMessage(), e); - } finally { - if(output != null) try { output.close(); } catch(Exception ee) {logger.error( ee.getMessage(), ee);} - } - } else { - retMap = SqlUtil.executeSql(msgMetaInsertSql.toString(), "BAP_"+msgMetaMap.get("svrType").toString().toUpperCase()); - } - - return retMap; - } - - private String getProperties(String propGroup, String propName) throws Exception { - HashMap params = new HashMap(); - params.put("prptyGroupName", propGroup); - params.put("prptyName", propName); - - HashMap props = propDao.getProperties(params); - - return props.get("PRPTY2VAL").toString(); - } -} \ No newline at end of file +} diff --git a/src/main/resources/com/eactive/eai/rms/bap/manage/message/MessageMetaMan-oracle.xml b/src/main/resources/com/eactive/eai/rms/bap/manage/message/MessageMetaMan-oracle.xml index d0437c6..bb1e6a8 100644 --- a/src/main/resources/com/eactive/eai/rms/bap/manage/message/MessageMetaMan-oracle.xml +++ b/src/main/resources/com/eactive/eai/rms/bap/manage/message/MessageMetaMan-oracle.xml @@ -78,8 +78,8 @@ ThisMsgRegsntID, ThisMsgRegiHMS, ThisMsgAmndrID, - ThisMsgAmndHMS ) - + ThisMsgAmndHMS, + MSGMETADSTCD ) VALUES ( #msgMetaDstcd# , #msgClmnSeq# , @@ -88,10 +88,10 @@ #userid# , TO_CHAR(SYSTIMESTAMP, 'YYYYMMDDHH24MISSFF3'), #userid# , - TO_CHAR(SYSTIMESTAMP, 'YYYYMMDDHH24MISSFF3') - + TO_CHAR(SYSTIMESTAMP, 'YYYYMMDDHH24MISSFF3'), + #msgMetaDstcd# ) - + \ No newline at end of file From c530eb747510f7ae5be17bf309c6e48f59170613 Mon Sep 17 00:00:00 2001 From: dogyeom Date: Mon, 10 Nov 2025 17:45:36 +0900 Subject: [PATCH 42/49] =?UTF-8?q?=EB=B6=88=ED=95=84=EC=9A=94=ED=95=9C=20?= =?UTF-8?q?=EC=BD=94=EB=93=9C=20=EC=A3=BC=EC=84=9D=EC=B2=98=EB=A6=AC=20?= =?UTF-8?q?=EB=B0=8F=20bap=20command=20class=20=EA=B2=BD=EB=A1=9C=20?= =?UTF-8?q?=EC=9E=AC=EC=84=A4=EC=A0=95,=20=EC=84=9C=EB=B2=84=20=EC=84=B8?= =?UTF-8?q?=EC=85=98=20=EC=84=A4=EC=A0=95=20api=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rms/bap/adaptor/socket/BapConnSessionController.java | 2 +- .../bap/manage/comm/property/BapTelePropertyController.java | 6 +++--- .../bap/manage/message/classmap/BapClassMapController.java | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/eactive/eai/rms/bap/adaptor/socket/BapConnSessionController.java b/src/main/java/com/eactive/eai/rms/bap/adaptor/socket/BapConnSessionController.java index 39082a8..c93f1d1 100644 --- a/src/main/java/com/eactive/eai/rms/bap/adaptor/socket/BapConnSessionController.java +++ b/src/main/java/com/eactive/eai/rms/bap/adaptor/socket/BapConnSessionController.java @@ -53,7 +53,7 @@ public class BapConnSessionController extends BapBaseAnnotationController { } - @RequestMapping(value= "/bap/adapter/socket/connStatus.json", params = "cmd=TRANSACTION") + @RequestMapping(value= "/bap/adapter/socket/connStatus.json", params = "cmd=CONTROL") public ModelAndView control(HttpServletRequest request, String startStop, String uuid) throws Exception { String[] args = new String[4]; diff --git a/src/main/java/com/eactive/eai/rms/bap/manage/comm/property/BapTelePropertyController.java b/src/main/java/com/eactive/eai/rms/bap/manage/comm/property/BapTelePropertyController.java index d94e65e..20f3553 100644 --- a/src/main/java/com/eactive/eai/rms/bap/manage/comm/property/BapTelePropertyController.java +++ b/src/main/java/com/eactive/eai/rms/bap/manage/comm/property/BapTelePropertyController.java @@ -80,7 +80,7 @@ public class BapTelePropertyController extends BapBaseAnnotationController { HashMap[] list = gson.fromJson(gridData, HashMap[].class); service.insert(map,list); - CommonCommand command = new CommonCommand("com.eactive.eai.agent.teleproperty.UpdatePropertyCommand",(String)map.get("prptyGroupName")); + CommonCommand command = new CommonCommand("com.eactive.eai.agent.property.UpdatePropertyCommand",(String)map.get("prptyGroupName")); agentUtilService.broadcast(command); return null; @@ -94,7 +94,7 @@ public class BapTelePropertyController extends BapBaseAnnotationController { HashMap[] list = gson.fromJson(gridData, HashMap[].class); service.update(map,list); - CommonCommand command = new CommonCommand("com.eactive.eai.agent.teleproperty.UpdatePropertyCommand",(String)map.get("prptyGroupName")); + CommonCommand command = new CommonCommand("com.eactive.eai.agent.property.UpdatePropertyCommand",(String)map.get("prptyGroupName")); agentUtilService.broadcast(command); return null; @@ -107,7 +107,7 @@ public class BapTelePropertyController extends BapBaseAnnotationController { paramMap.put("prptyGroupName", prptyGroupName); service.delete(paramMap); - CommonCommand command = new CommonCommand("com.eactive.eai.agent.teleproperty.RemovePropertyCommand",prptyGroupName); + CommonCommand command = new CommonCommand("com.eactive.eai.agent.property.RemovePropertyCommand",prptyGroupName); agentUtilService.broadcast(command); return null; diff --git a/src/main/java/com/eactive/eai/rms/bap/manage/message/classmap/BapClassMapController.java b/src/main/java/com/eactive/eai/rms/bap/manage/message/classmap/BapClassMapController.java index 9278801..43bbb9d 100644 --- a/src/main/java/com/eactive/eai/rms/bap/manage/message/classmap/BapClassMapController.java +++ b/src/main/java/com/eactive/eai/rms/bap/manage/message/classmap/BapClassMapController.java @@ -88,7 +88,7 @@ public class BapClassMapController extends BapBaseAnnotationController { HttpServletResponse response,@RequestParam HashMap map ) throws Exception { // 전문클래스ID 공백 제거 - map.replace("telgmClsID",map.get("telgmClsID").toString().trim()); +// map.replace("telgmClsID",map.get("telgmClsID").toString().trim()); service.insert(map); CommonCommand command = new CommonCommand("com.eactive.eai.agent.rule.telegraminfo.UpdateTelegramInfoCommand", map.get("telgmClsID")); From 0da6142f60190d52d2379387ce0d715278c0e60b Mon Sep 17 00:00:00 2001 From: dogyeom Date: Wed, 12 Nov 2025 18:37:22 +0900 Subject: [PATCH 43/49] =?UTF-8?q?=EC=86=A1=EC=88=98=EC=8B=A0=20=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=20=EA=B4=80=EB=A6=AC=20=EC=83=81=EC=84=B8=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=ED=94=84=EB=A1=9C=ED=8D=BC=ED=8B=B0=20=EB=AA=A9?= =?UTF-8?q?=EB=A1=9D=20=EC=95=88=EB=B3=B4=EC=9D=B4=EB=8A=94=20=ED=98=84?= =?UTF-8?q?=EC=83=81=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../work/message/BapMessageProcController.java | 17 +++-------------- .../work/message/BapMessageProcService.java | 5 +++-- 2 files changed, 6 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/eactive/eai/rms/bap/manage/work/message/BapMessageProcController.java b/src/main/java/com/eactive/eai/rms/bap/manage/work/message/BapMessageProcController.java index 47c7bee..f20b6eb 100644 --- a/src/main/java/com/eactive/eai/rms/bap/manage/work/message/BapMessageProcController.java +++ b/src/main/java/com/eactive/eai/rms/bap/manage/work/message/BapMessageProcController.java @@ -162,21 +162,10 @@ public class BapMessageProcController extends BapBaseAnnotationController { @RequestParam String bjobBzwkDstcd ) throws Exception { - Map resultMap = new HashMap(); + HashMap map = service.getProps(bjobBzwkDstcd); + + ModelAndView modelAndView = new ModelAndView("jsonView", map); -// if(!StringUtils.isEmpty(bjobBzwkDstcd)) { -// HashMap propMap = service.getProps(bjobBzwkDstcd); // 프로퍼티 정보 -// HashMap InstMap = service.selectOsidInstiDstcd(bjobBzwkDstcd); -// -// resultMap.put("propMap", propMap); -// resultMap.put("InstMap", InstMap); -// } - - if(!StringUtils.isEmpty(bjobBzwkDstcd)) { - HashMap map = service.getProps(bjobBzwkDstcd); - } - - ModelAndView modelAndView = new ModelAndView("jsonView", resultMap); return modelAndView; } diff --git a/src/main/java/com/eactive/eai/rms/bap/manage/work/message/BapMessageProcService.java b/src/main/java/com/eactive/eai/rms/bap/manage/work/message/BapMessageProcService.java index 180f2ac..4dbd3f1 100644 --- a/src/main/java/com/eactive/eai/rms/bap/manage/work/message/BapMessageProcService.java +++ b/src/main/java/com/eactive/eai/rms/bap/manage/work/message/BapMessageProcService.java @@ -43,9 +43,10 @@ public class BapMessageProcService extends BapBaseService { HashMap detail = dao.selectDetail(param); String bjobBzwkDstcd = (String)detail.get("BJOBBZWKDSTCD"); - String bjobMsgDstcd = (String)detail.get("BJOBMSGDSTCD"); + String bjobTranDstcdName = (String)detail.get("BJOBTRANDSTCDNAME"); param.put("bjobBzwkDstcd", bjobBzwkDstcd ); - param.put("propGroupName", "TelegramInfo{" + bjobMsgDstcd + "}"); + param.put("propGroupName", "TelegramInfo{" + bjobBzwkDstcd + "_" + bjobTranDstcdName + "}"); + List> list = dao.getProps(param); HashMap map = new HashMap(); From 0ba7f1ab64264a4c5f9604deb68636131c550e3a Mon Sep 17 00:00:00 2001 From: dogyeom Date: Thu, 13 Nov 2025 13:15:15 +0900 Subject: [PATCH 44/49] =?UTF-8?q?=EB=AF=B8=ED=98=B8=EC=B6=9C=20=EC=BF=BC?= =?UTF-8?q?=EB=A6=AC=20=EC=A3=BC=EC=84=9D=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tansaction/transactionWait/BapTransactionWaitService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionWait/BapTransactionWaitService.java b/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionWait/BapTransactionWaitService.java index 867ef98..3624b42 100644 --- a/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionWait/BapTransactionWaitService.java +++ b/src/main/java/com/eactive/eai/rms/bap/tansaction/transactionWait/BapTransactionWaitService.java @@ -60,7 +60,7 @@ public class BapTransactionWaitService extends BapBaseService { public void delete(HashMap paramMap) throws Exception { dao.updateBJ03(paramMap); - dao.updateBJ08(paramMap); + //dao.updateBJ08(paramMap); dao.delete(paramMap); } } \ No newline at end of file From fb5df1794f4a6e311c931d9564548e0bd3556a74 Mon Sep 17 00:00:00 2001 From: Rinjae Date: Thu, 13 Nov 2025 22:06:03 +0900 Subject: [PATCH 45/49] readme update --- readme.md | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 56 insertions(+), 2 deletions(-) diff --git a/readme.md b/readme.md index 0c70a31..2f3fb5a 100644 --- a/readme.md +++ b/readme.md @@ -37,6 +37,16 @@ eLink 모듈을 참조하여 구성되어있으며, 추후 필요 모듈외에 ## TOMCAT 기동 옵션 참조 +### 은행 개발 서버용 +``` +-Deai.datasource.type=DEV +-Dinst.Name=emsSvr11 +-Deai.tableowner=EMSADM +-Deai.systemmode=D +-Dfile.encoding=utf-8 +-DLOGBACK_LOG_LEVEL=info +``` + ### 로컬 개발용 ``` @@ -49,10 +59,12 @@ eLink 모듈을 참조하여 구성되어있으며, 추후 필요 모듈외에 -DLOGBACK_LOG_LEVEL=DEBUG -Dlogback.configurationFile=classpath:logback-dev.xml -Dhibernate.dialect=org.hibernate.dialect.Oracle12cDialect --Dkjb_safedb.mode=fake +-Dkjb_safedb.mode=none ``` -## Gradle 빌드 옵션 +## 광주은행 커스텀 관련 + +### Gradle 빌드 옵션 ```bash # Weblogic 배포용 (테스트 제외) gradle build -x test -Pprofile=weblogic @@ -72,3 +84,45 @@ gradle build -x test -Pprofile=weblogic - kjb.ums.eai_batch.send_dir : EAI 배치 서버 파일 송신 디렉토리 - Default : /Data/eapim/portal/sendmail + +- -Pprofile=weblogic 사용시 weblogic-web.xml 을 web.xml 로 사용 (DefaultServlet 이슈) + +### 추가 파라미터 +```sql +-- 은행 개발 서버용 +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.eai_batch.url', 'http://172.31.32.111:10230/BATAppWeb/EaiBatCall'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.eai.batch.connection_timeout', '5'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.eai.batch.response_timeout', '5'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.eai.batch.timeout', '10'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.eai.batch.charset', 'euc-kr'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.eai_batch.send_dir', '/Data/eapim/portal/sendmail/snd'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.eai_batch.backup_dir', '/Data/eapim/portal/sendmail/bak'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.eai_batch.error_dir', '/Data/eapim/portal/sendmail/bak'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.eai_batch.retention_date', '60'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.eai_batch.interface_id', 'UAGFF00001UIE'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.host_url', 'http://172.31.35.144:9021'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.api_key', '7cca6d58-e4f7-474d-9edd-525806bc99ff'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.connection_timeout', '5'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.response_timeout', '5'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.timeout', '10'); +commit; + + +-- 로컬 개발용 (외부) +--insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.eai_batch.url', ''); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.eai.batch.connection_timeout', '5'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.eai.batch.response_timeout', '5'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.eai.batch.timeout', '10'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.eai.batch.charset', 'euc-kr'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.eai_batch.send_dir', '/Data/eapim/portal/sendmail/snd'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.eai_batch.backup_dir', '/Data/eapim/portal/sendmail/bak'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.eai_batch.error_dir', '/Data/eapim/portal/sendmail/bak'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.eai_batch.retention_date', '60'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.eai_batch.interface_id', 'UAGFF00001UIE'); +-- insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.host_url', ''); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.api_key', '7cca6d58-e4f7-474d-9edd-525806bc99ff'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.connection_timeout', '5'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.response_timeout', '5'); +insert into EMSADM.TSEAIRM24 (PRPTYGROUPNAME, PRPTYNAME, PRPTY2VAL) values ('Monitoring', 'kjb.ums.timeout', '10'); +commit; +``` \ No newline at end of file From c06bbb3168a8b97c1bbb308a2db675d817f0b9d5 Mon Sep 17 00:00:00 2001 From: Rinjae Date: Fri, 14 Nov 2025 15:01:12 +0900 Subject: [PATCH 46/49] =?UTF-8?q?EMSADM=20DDL=20identity=20to=20sequence?= =?UTF-8?q?=20=EB=8C=80=EC=9D=91=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CLAUDE.md | 180 +++++++++++++++ .../eai/custom/CustomizingAppInitializer.java | 5 + .../CustomBeanFactoryPostProcessor.java | 10 +- .../rms/common/startup/AppInitializer.java | 209 +++++++++--------- .../man/user/UserAthrRoleChgHistory.java | 16 +- .../entity/man/user/UserLoginHistory.java | 16 +- .../onl/audit/CustomRevisionEntity.java | 1 - 7 files changed, 328 insertions(+), 109 deletions(-) create mode 100644 CLAUDE.md diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..3fd2381 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,180 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Project Overview + +eLink EMS (eLink Management System) is a web-based management service for eLink that provides configuration, monitoring, and statistics features. This is a Spring-based Java web application deployed on Tomcat or WebLogic. + +### Key Features +- User and permission management +- Transaction log viewing (online/batch/bulk) +- Statistics and dashboard monitoring +- Interface, layout, adapter, and routing management +- Integration with external systems (UMS, EAI batch) + +## Build and Development Commands + +### Build Commands +```bash +# Standard build +gradle build + +# Build for Weblogic deployment (excludes tests) +gradle build -x test -Pprofile=weblogic + +# Build WAR file +gradle war + +# Clean build +gradle clean build +``` + +### Running Tests +```bash +# Run all tests +gradle test + +# Run specific test (use JUnit platform) +gradle test --tests "com.eactive.eai.rms.*" +``` + +### Development Setup +The application is configured via environment-specific properties files in `WebContent/WEB-INF/properties/`: +- `env.D.properties` - Development +- `env.T.properties` - Test/Staging +- `env.P.properties` - Production + +**Local Development (Tomcat)** +Set the following JVM options: +``` +-Deai.datasource.type=DEV +-Dinst.Name=emsSvr99 +-Deai.tableowner=EMSADM +-Deai.systemmode=D +-Dfile.encoding=utf-8 +-Dlogin.mode=db +-DLOGBACK_LOG_LEVEL=DEBUG +-Dlogback.configurationFile=classpath:logback-dev.xml +-Dhibernate.dialect=org.hibernate.dialect.Oracle12cDialect +-Dkjb_safedb.mode=fake +``` + +**Profile Configuration** +- `-Pprofile=weblogic`: Uses `weblogic-web.xml` instead of `web.xml` (resolves DefaultServlet issues) + +## Architecture and Code Structure + +### Multi-Module Project +This project references several external eLink modules defined in `settings.gradle`: +- `elink-online-core` - Core interfaces and classes +- `elink-online-transformer` - Message transformation logic +- `elink-online-adapter` - Communication adapters +- `elink-online-common` - Common utilities +- `elink-online-emsclient` - EMS communication client +- `elink-portal-common` - Portal shared components +- `kjb-safedb` - KJB bank-specific database encryption +- `eapim-admin-kjb` - KJB bank-specific customizations + +These modules are located in sibling directories (`../eapim-online/`, `../elink-portal-common/`, etc.) + +### Package Structure +``` +com.eactive.eai +├── agent/command - Command pattern implementations +├── common - Common utilities, iBatis, JSON serialization +├── custom - Customer-specific customizations +├── rms - Main application code +│ ├── bap - Batch processing (BAP) +│ │ ├── adaptor - Batch adapters +│ │ ├── manage - Batch management (messages, servers, properties) +│ │ └── tansaction - Batch transaction tracking +│ ├── bat - Additional batch functionality +│ ├── common - RMS common (filters, startup, services) +│ ├── data - Data entities, repositories +│ ├── env - Environment configuration +│ ├── kakao - Kakao integration +│ ├── onl - Online transaction management +│ │ ├── apim - API management (portal org, users, approvals) +│ │ ├── manage - Resource management +│ │ └── transaction - Transaction handling +│ └── service - Business services +└── ext.kjb - Kwangju Bank (KJB) extensions +``` + +### Technology Stack +- **Framework**: Spring 5.3.27 (MVC, Data JPA) +- **Persistence**: + - Hibernate 5.6.15 (JPA/ORM) + - iBatis 2.3.4 (legacy SQL mapping) + - QueryDSL 5.0.0 (type-safe queries) +- **Database**: Oracle 12c (primary), with support for MariaDB/PostgreSQL +- **Logging**: Logback 1.2.10 (with SLF4J) +- **Build**: Gradle 8.x with Java 8 +- **View**: JSP with JSTL +- **Other**: Quartz scheduler, EhCache, Jackson, Lombok, MapStruct + +### Spring Configuration +- Root context: `WebContent/WEB-INF/applicationContext.xml` +- Servlet context: `WebContent/WEB-INF/springapp-servlet.xml` +- Environment-specific configs loaded based on `${eai.systemmode}` system property +- Component scanning enabled with annotation-based configuration + +### Data Access Patterns +The application uses **dual persistence**: +1. **JPA/Hibernate** - For newer entity-based code in `com.eactive.eai.rms.data.entity` +2. **iBatis** - For legacy SQL mappings in `src/main/resources/com/eactive/eai/**/*.xml` + +Repositories use Spring Data JPA conventions, Services use `@Service`, Controllers use `@RestController`/`@Controller`. + +### Key Initialization +- `AppInitializer` - Main application startup bean that sets system properties +- `CustomizingAppInitializer` - Customer-specific initialization +- System properties: `inst.Name`, `eai.tableowner`, `eai.systemmode`, `theme.color` + +## KJB (Kwangju Bank) Specific Configuration + +### Property Management +KJB-specific properties are stored in database table `TSEAIRM24` with group name `'Monitoring'`. Key properties handled by `com.eactive.ext.kjb.common.KjbProperty`: + +**Email Notification (via EAI Batch)** +- `kjb.eai_batch.url` - EAI batch server URL for email sending + - Dev: http://172.31.32.111:10230/BATAppWeb/EaiBatCall + - QA: http://172.31.33.111:10430/BATAppWeb/EaiBatCall + - Prod: http://172.21.1.40:10860/BATAppWeb/EaiBatCall +- `kjb.ums.eai_batch.send_dir` - Email file send directory (default: `/Data/eapim/portal/sendmail/snd`) +- `kjb.ums.eai_batch.backup_dir` - Email backup directory (default: `/Data/eapim/portal/sendmail/bak`) +- `kjb.ums.eai_batch.interface_id` - Interface ID for customer email (e.g., `UAGFF00001UIE`) + +**UMS (SMS/LMS/KakaoTalk) Integration** +- `kjb.ums.host_url` - UMS API endpoint +- `kjb.ums.api_key` - UMS API authentication key +- `kjb.ums.connection_timeout` - Connection timeout in seconds +- `kjb.ums.response_timeout` - Response timeout in seconds + +### Security +- Custom password encoder: `KjbSafedbPasswordEncoder` for SafeDB integration +- Set `-Dkjb_safedb.mode=fake` for local development without SafeDB + +## Database Vendor Support + +The application supports multiple databases via vendor-specific SQL mapping files: +- Oracle: `*-oracle.xml` +- MariaDB: `*-mariadb.xml` +- PostgreSQL: `*-postgresql.xml` + +Database vendor is configured in properties files via `db.vendor` and `hibernate.dialect`. + +## WAR Deployment + +The WAR file is built as `eapim-admin.war` with context path `/monitoring`. + +**Weblogic Deployment**: Use `-Pprofile=weblogic` to include `weblogic-web.xml` configuration. + +## Important Notes + +- **Encoding**: System uses UTF-8. CharacterEncodingFilter applies UTF-8 to all requests except `*.excel` patterns. +- **XSS Protection**: CrossScriptingFilter applied to all requests via `com.eactive.eai.rms.common.filter.CrossScriptingFilter` +- **Real-time Updates**: All management changes are reflected immediately in both DB and memory +- **Instance Name**: Each deployment must have unique `inst.Name` for clustering +- **Table Owner**: Oracle schema owner specified via `eai.tableowner` property diff --git a/src/main/java/com/eactive/eai/custom/CustomizingAppInitializer.java b/src/main/java/com/eactive/eai/custom/CustomizingAppInitializer.java index 8f60bb0..88d14d5 100644 --- a/src/main/java/com/eactive/eai/custom/CustomizingAppInitializer.java +++ b/src/main/java/com/eactive/eai/custom/CustomizingAppInitializer.java @@ -3,6 +3,8 @@ package com.eactive.eai.custom; import org.apache.log4j.Logger; import org.springframework.beans.factory.InitializingBean; +import com.eactive.eai.rms.data.PortalSchemaProviderHolder; +import com.eactive.eai.rms.env.EmsConfig; import com.eactive.eai.transformer.message.ISO8583MessageFactory; /** @@ -36,5 +38,8 @@ public class CustomizingAppInitializer implements InitializingBean { logger.info(String.format("ISO8583MessageFactory registered - %s = %s", MESSAGE_TYPE_SVL, ISO8583_SVL_CLASS_NAME)); logger.info(String.format("ISO8583MessageFactory registered - %s = %s", LAYOUT_TYPE_H2H, ISO8583_H2H_CLASS_NAME)); logger.info(String.format("ISO8583MessageFactory registered - %s = %s", LAYOUT_TYPE_SVL, ISO8583_SVL_CLASS_NAME)); + + // PortalSchemaProviderHolder 초기화 (eai.tableowner 주입) + PortalSchemaProviderHolder.setProvider(() -> System.getProperty(EmsConfig.TABLE_OWNER)); } } diff --git a/src/main/java/com/eactive/eai/rms/common/spring/CustomBeanFactoryPostProcessor.java b/src/main/java/com/eactive/eai/rms/common/spring/CustomBeanFactoryPostProcessor.java index ca4a988..738b73d 100644 --- a/src/main/java/com/eactive/eai/rms/common/spring/CustomBeanFactoryPostProcessor.java +++ b/src/main/java/com/eactive/eai/rms/common/spring/CustomBeanFactoryPostProcessor.java @@ -12,6 +12,8 @@ import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import com.eactive.eai.rms.common.datasource.DataSourceType; import com.eactive.eai.rms.common.datasource.DataSourceTypeManager; +import com.eactive.eai.rms.data.PortalSchemaProviderHolder; +import com.eactive.eai.rms.env.EmsConfig; public class CustomBeanFactoryPostProcessor implements BeanFactoryPostProcessor { @@ -22,7 +24,13 @@ public class CustomBeanFactoryPostProcessor implements BeanFactoryPostProcessor public void postProcessBeanFactory(ConfigurableListableBeanFactory factory) throws BeansException { - + + // PortalSchemaProviderHolder 초기화 (Hibernate EntityManagerFactory 생성 전에 필요) + PortalSchemaProviderHolder.setProvider(() -> System.getProperty(EmsConfig.TABLE_OWNER)); + if (logger.isDebugEnabled()) { + logger.debug("PortalSchemaProviderHolder initialized with tableOwner: " + System.getProperty(EmsConfig.TABLE_OWNER)); + } + List dataSourceTypes = new ArrayList(); Map maps = factory.getBeansOfType(DataSourceType.class); diff --git a/src/main/java/com/eactive/eai/rms/common/startup/AppInitializer.java b/src/main/java/com/eactive/eai/rms/common/startup/AppInitializer.java index 6c02401..d410e5b 100644 --- a/src/main/java/com/eactive/eai/rms/common/startup/AppInitializer.java +++ b/src/main/java/com/eactive/eai/rms/common/startup/AppInitializer.java @@ -1,8 +1,5 @@ package com.eactive.eai.rms.common.startup; -import java.lang.reflect.Field; -import java.nio.charset.Charset; - import org.apache.log4j.Logger; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; @@ -11,115 +8,117 @@ import com.eactive.eai.rms.common.util.CommonConstants; import com.eactive.eai.rms.env.EmsConfig; import com.eactive.eai.rms.onl.common.service.AdapterStatusSendThreadPool; -public class AppInitializer implements InitializingBean, DisposableBean { - +public class AppInitializer implements InitializingBean, DisposableBean { + final Logger logger = Logger.getLogger(AppInitializer.class); - + boolean debug = true; - + private String instName; - + private String tableOwner; - private String systemMode = "D"; //EAI System Mode : [P/T/D/S] - - private String themeColor = "black"; - - private String drMode = ""; - - private String eaiDatasourceType = "DEV"; // 데이터 소스 타입 :[DEV:개발/STG:스테이징/PRD:운영] ...NSG:내부서버 - - public void setInstName(String instName) { - this.instName = instName; - } - - public void setTableOwner(String tableOwner) { - this.tableOwner = tableOwner; - } - - public void setSystemMode(String systemMode) { - this.systemMode = systemMode; - } - - public void setThemeColor(String themeColor) { - this.themeColor = themeColor; - } - - public void setDrMode(String drMode) { - this.drMode = drMode; - } - public void setEaiDatasourceType(String eaiDatasourceType) { - this.eaiDatasourceType = eaiDatasourceType; - } - - private void init() - { - if (debug) { - logger.debug("applicationInitialized"); - } - //MS949로 default encoding 고정 -// System.setProperty("file.encoding","MS949"); -// Field charset = null; -// try { -// charset = Charset.class.getDeclaredField("defaultCharset"); -// charset.setAccessible(true); -// charset.set(null, null); -// } catch (Exception e) { -// e.printStackTrace(); -// } - - // set default value - String serverName = System.getProperty(EmsConfig.INST_NAME); - if(serverName == null) { - System.setProperty(EmsConfig.INST_NAME, instName); - } - - String tOwner = System.getProperty(EmsConfig.TABLE_OWNER); - if(tOwner == null) { - System.setProperty(EmsConfig.TABLE_OWNER, tableOwner); - } - - // 서버 구분 설정(개발:D, 테스트:T, 온라인:P) - CommonConstants.SERVER_TYPE = systemMode; - - //모니터링 테마 적용 - String tColor = System.getProperty(EmsConfig.THEME_COLOR); - if(tColor == null || "".equals(tColor)) { - System.setProperty(EmsConfig.THEME_COLOR, themeColor); - } - - if (debug) { - logger.debug(EmsConfig.DR_MODE + " = " + drMode); - } - //env 프라퍼티 파일만 있음 dr 여부 셋팅 - System.setProperty(EmsConfig.DR_MODE, drMode); + private String systemMode = "D"; // EAI System Mode : [P/T/D/S] - //데이터 소스타입(DEV:개발 / STG:스테이징 / PRD:운영 ... ) - String eDatasourceType = System.getProperty(EmsConfig.DATASOURCE_TYPE); - if(eDatasourceType == null || "".equals(eDatasourceType)) { - System.setProperty(EmsConfig.DATASOURCE_TYPE, eaiDatasourceType); - } - - if (debug) { - logger.debug(EmsConfig.DATASOURCE_TYPE + " =" + eaiDatasourceType); //env 프라퍼티 - } - - if(debug) { - logger.debug("SERVER_TYPE ="+CommonConstants.SERVER_TYPE); - } - } - - public void destroy() - { - AdapterStatusSendThreadPool.destroy(); - if(debug) { - logger.debug("############ e-link WebApplication stopping... preStop ############"); - } - } + private String themeColor = "black"; + + private String drMode = ""; + + private String eaiDatasourceType = "DEV"; // 데이터 소스 타입 :[DEV:개발/STG:스테이징/PRD:운영] ...NSG:내부서버 + + public void setInstName(String instName) { + this.instName = instName; + } + + public void setTableOwner(String tableOwner) { + this.tableOwner = tableOwner; + } + + public void setSystemMode(String systemMode) { + this.systemMode = systemMode; + } + + public void setThemeColor(String themeColor) { + this.themeColor = themeColor; + } + + public void setDrMode(String drMode) { + this.drMode = drMode; + } + + public void setEaiDatasourceType(String eaiDatasourceType) { + this.eaiDatasourceType = eaiDatasourceType; + } + + private void init() { + if (debug) { + logger.debug("applicationInitialized"); + } + // MS949로 default encoding 고정 + // System.setProperty("file.encoding","MS949"); + // Field charset = null; + // try { + // charset = Charset.class.getDeclaredField("defaultCharset"); + // charset.setAccessible(true); + // charset.set(null, null); + // } catch (Exception e) { + // e.printStackTrace(); + // } + + // set default value + String serverName = System.getProperty(EmsConfig.INST_NAME); + if (serverName == null) { + System.setProperty(EmsConfig.INST_NAME, instName); + } + + String tOwner = System.getProperty(EmsConfig.TABLE_OWNER); + if (tOwner == null) { + System.setProperty(EmsConfig.TABLE_OWNER, tableOwner); + } + + // 서버 구분 설정(개발:D, 테스트:T, 온라인:P) + CommonConstants.SERVER_TYPE = systemMode; + + // 모니터링 테마 적용 + String tColor = System.getProperty(EmsConfig.THEME_COLOR); + if (tColor == null || "".equals(tColor)) { + System.setProperty(EmsConfig.THEME_COLOR, themeColor); + } + + if (debug) { + logger.debug(EmsConfig.DR_MODE + " = " + drMode); + } + // env 프라퍼티 파일만 있음 dr 여부 셋팅 + System.setProperty(EmsConfig.DR_MODE, drMode); + + // 데이터 소스타입(DEV:개발 / STG:스테이징 / PRD:운영 ... ) + String eDatasourceType = System.getProperty(EmsConfig.DATASOURCE_TYPE); + if (eDatasourceType == null || "".equals(eDatasourceType)) { + System.setProperty(EmsConfig.DATASOURCE_TYPE, eaiDatasourceType); + } + + if (debug) { + logger.debug(EmsConfig.DATASOURCE_TYPE + " =" + eaiDatasourceType); // env 프라퍼티 + } + + if (debug) { + logger.debug("SERVER_TYPE =" + CommonConstants.SERVER_TYPE); + } + + if (debug) { + logger.debug("PortalSchemaProviderHolder initialized with tableOwner: " + tableOwner); + } + } + + public void destroy() { + AdapterStatusSendThreadPool.destroy(); + if (debug) { + logger.debug("############ e-link WebApplication stopping... preStop ############"); + } + } @Override public void afterPropertiesSet() throws Exception { - init(); + init(); } -} - +} diff --git a/src/main/java/com/eactive/eai/rms/data/entity/man/user/UserAthrRoleChgHistory.java b/src/main/java/com/eactive/eai/rms/data/entity/man/user/UserAthrRoleChgHistory.java index e1e7590..910801e 100644 --- a/src/main/java/com/eactive/eai/rms/data/entity/man/user/UserAthrRoleChgHistory.java +++ b/src/main/java/com/eactive/eai/rms/data/entity/man/user/UserAthrRoleChgHistory.java @@ -11,6 +11,7 @@ import javax.persistence.Id; import javax.persistence.Table; import org.hibernate.annotations.Comment; +import org.hibernate.annotations.GenericGenerator; import org.springframework.data.annotation.CreatedBy; import org.springframework.data.annotation.CreatedDate; @@ -30,7 +31,20 @@ public class UserAthrRoleChgHistory extends AbstractEntity implements Se private static final long serialVersionUID = 1L; @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) +// @GeneratedValue(strategy = GenerationType.IDENTITY) + @GenericGenerator( + name = "TB_APIMS_USER_ATHR_ROLE_CHG_H_GEN", + strategy = "com.eactive.eai.rms.data.jpa.SchemaPrefixedSequenceGenerator", + parameters = { + @org.hibernate.annotations.Parameter(name = "sequence_name", value = "TB_APIMS_USER_ATHR_ROLE_CHG_H_SEQ"), + @org.hibernate.annotations.Parameter(name = "initial_value", value = "1"), + @org.hibernate.annotations.Parameter(name = "increment_size", value = "1") + } + ) + @GeneratedValue( + strategy = GenerationType.SEQUENCE, + generator = "TB_APIMS_USER_ATHR_ROLE_CHG_H_GEN" + ) @Column(name = "CHG_LOG_ID", unique = true, nullable = false) @Comment("사용자 정보 변경 로그 식별 ID") private int chgLogId; diff --git a/src/main/java/com/eactive/eai/rms/data/entity/man/user/UserLoginHistory.java b/src/main/java/com/eactive/eai/rms/data/entity/man/user/UserLoginHistory.java index dff77ca..44db541 100644 --- a/src/main/java/com/eactive/eai/rms/data/entity/man/user/UserLoginHistory.java +++ b/src/main/java/com/eactive/eai/rms/data/entity/man/user/UserLoginHistory.java @@ -11,6 +11,7 @@ import javax.persistence.Id; import javax.persistence.Table; import org.hibernate.annotations.Comment; +import org.hibernate.annotations.GenericGenerator; import org.springframework.data.annotation.CreatedDate; import com.eactive.eai.data.entity.AbstractEntity; @@ -30,7 +31,20 @@ public class UserLoginHistory extends AbstractEntity implements Serializ private static final long serialVersionUID = 1L; @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) +// @GeneratedValue(strategy = GenerationType.IDENTITY) + @GenericGenerator( + name = "TB_APIMS_LOIN_L_GEN", + strategy = "com.eactive.eai.rms.data.jpa.SchemaPrefixedSequenceGenerator", + parameters = { + @org.hibernate.annotations.Parameter(name = "sequence_name", value = "TB_APIMS_LOIN_L_GEN_SEQ"), + @org.hibernate.annotations.Parameter(name = "initial_value", value = "1"), + @org.hibernate.annotations.Parameter(name = "increment_size", value = "1") + } + ) + @GeneratedValue( + strategy = GenerationType.SEQUENCE, + generator = "TB_APIMS_LOIN_L_GEN" + ) @Column(name="LOIN_LOG_ID", unique = true, nullable = false) @Comment("로그인 로그 식별자") private int loginLogId; diff --git a/src/main/java/com/eactive/eai/rms/data/entity/onl/audit/CustomRevisionEntity.java b/src/main/java/com/eactive/eai/rms/data/entity/onl/audit/CustomRevisionEntity.java index dd2bc9c..85fb19f 100644 --- a/src/main/java/com/eactive/eai/rms/data/entity/onl/audit/CustomRevisionEntity.java +++ b/src/main/java/com/eactive/eai/rms/data/entity/onl/audit/CustomRevisionEntity.java @@ -37,5 +37,4 @@ public class CustomRevisionEntity { @Column(name = "USERID") @Comment("변경자ID") private String userId; - } \ No newline at end of file From e6145f52590d6e4ee97d4482d4e23c55fcb021d6 Mon Sep 17 00:00:00 2001 From: Rinjae Date: Fri, 14 Nov 2025 15:16:39 +0900 Subject: [PATCH 47/49] =?UTF-8?q?sequence=20=EC=98=A4=ED=83=80=20=EB=8C=80?= =?UTF-8?q?=EC=9D=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eactive/eai/rms/data/entity/man/user/UserLoginHistory.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/eactive/eai/rms/data/entity/man/user/UserLoginHistory.java b/src/main/java/com/eactive/eai/rms/data/entity/man/user/UserLoginHistory.java index 44db541..9990b23 100644 --- a/src/main/java/com/eactive/eai/rms/data/entity/man/user/UserLoginHistory.java +++ b/src/main/java/com/eactive/eai/rms/data/entity/man/user/UserLoginHistory.java @@ -36,7 +36,7 @@ public class UserLoginHistory extends AbstractEntity implements Serializ name = "TB_APIMS_LOIN_L_GEN", strategy = "com.eactive.eai.rms.data.jpa.SchemaPrefixedSequenceGenerator", parameters = { - @org.hibernate.annotations.Parameter(name = "sequence_name", value = "TB_APIMS_LOIN_L_GEN_SEQ"), + @org.hibernate.annotations.Parameter(name = "sequence_name", value = "TB_APIMS_LOIN_L_SEQ"), @org.hibernate.annotations.Parameter(name = "initial_value", value = "1"), @org.hibernate.annotations.Parameter(name = "increment_size", value = "1") } From 435b60ed0ca5d35da9d1d8f5611b3772832c66f7 Mon Sep 17 00:00:00 2001 From: Rinjae Date: Fri, 14 Nov 2025 15:28:30 +0900 Subject: [PATCH 48/49] =?UTF-8?q?sequence=20=EC=98=A4=ED=83=80=20=EB=8C=80?= =?UTF-8?q?=EC=9D=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eai/rms/data/entity/onl/audit/CustomRevisionEntity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/eactive/eai/rms/data/entity/onl/audit/CustomRevisionEntity.java b/src/main/java/com/eactive/eai/rms/data/entity/onl/audit/CustomRevisionEntity.java index 85fb19f..7c0a40c 100644 --- a/src/main/java/com/eactive/eai/rms/data/entity/onl/audit/CustomRevisionEntity.java +++ b/src/main/java/com/eactive/eai/rms/data/entity/onl/audit/CustomRevisionEntity.java @@ -23,7 +23,7 @@ import lombok.Data; @SequenceGenerator(name = "revision_seq", sequenceName = "revision_info_seq", allocationSize = 1) public class CustomRevisionEntity { - @Id + @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "revision_seq") @RevisionNumber @Column(name = "REV") From 6e1bbd7feba4c6e6c03ca25293850c75c11bd735 Mon Sep 17 00:00:00 2001 From: Rinjae Date: Fri, 14 Nov 2025 15:30:04 +0900 Subject: [PATCH 49/49] =?UTF-8?q?revision=20info=20=EB=8C=80=EC=9D=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/entity/onl/audit/CustomRevisionEntity.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/eactive/eai/rms/data/entity/onl/audit/CustomRevisionEntity.java b/src/main/java/com/eactive/eai/rms/data/entity/onl/audit/CustomRevisionEntity.java index 7c0a40c..d6617ef 100644 --- a/src/main/java/com/eactive/eai/rms/data/entity/onl/audit/CustomRevisionEntity.java +++ b/src/main/java/com/eactive/eai/rms/data/entity/onl/audit/CustomRevisionEntity.java @@ -9,6 +9,7 @@ import javax.persistence.SequenceGenerator; import javax.persistence.Table; import org.hibernate.annotations.Comment; +import org.hibernate.annotations.GenericGenerator; import org.hibernate.envers.RevisionEntity; import org.hibernate.envers.RevisionNumber; import org.hibernate.envers.RevisionTimestamp; @@ -24,7 +25,17 @@ import lombok.Data; public class CustomRevisionEntity { @Id - @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "revision_seq") +// @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "revision_seq") + @GenericGenerator( + name = "revision_seq_gen", + strategy = "com.eactive.eai.rms.data.jpa.SchemaPrefixedSequenceGenerator", + parameters = { + @org.hibernate.annotations.Parameter(name = "sequence_name", value = "REVISION_INFO_SEQ"), + @org.hibernate.annotations.Parameter(name = "initial_value", value = "1"), + @org.hibernate.annotations.Parameter(name = "increment_size", value = "1") + } + ) + @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "revision_seq_gen") @RevisionNumber @Column(name = "REV") private long rev;