Merge branch 'jenkins_with_weblogic' into devs/gw-metrics

This commit is contained in:
Rinjae
2025-12-05 14:26:36 +09:00
15 changed files with 275 additions and 39 deletions
@@ -50,6 +50,8 @@
<!-- 8. 서브표준 메시지 관리 --> <!-- 8. 서브표준 메시지 관리 -->
<!-- 9. 비동기 큐 관리 --> <!-- 9. 비동기 큐 관리 -->
<!--10. 비동기 큐 모니터링 관리 --> <!--10. 비동기 큐 모니터링 관리 -->
<sqlMap
resource="com/eactive/eai/rms/onl/admin/jms/JmsQueueMonitor.xml" />
<!--11. 비동기 큐 수신자 관리 --> <!--11. 비동기 큐 수신자 관리 -->
<!--12. 업무별 계정계 인스턴스코드 --> <!--12. 업무별 계정계 인스턴스코드 -->
<!--13. 내부표준 Default값 관리 --> <!--13. 내부표준 Default값 관리 -->
+2 -1
View File
@@ -8,7 +8,8 @@
<session-descriptor> <session-descriptor>
<timeout-secs>1800</timeout-secs> <timeout-secs>1800</timeout-secs>
<cookie-name>JSESSIONID_EMS</cookie-name> <cookie-name>JSESSIONID_EMS</cookie-name>
<persistent-store-type>replicated_if_clustered</persistent-store-type> <persistent-store-type>memory</persistent-store-type>
<!-- <persistent-store-type>replicated_if_clustered</persistent-store-type> -->
</session-descriptor> </session-descriptor>
<container-descriptor> <container-descriptor>
@@ -84,7 +84,7 @@ function init(url,key){
success:function(json){ success:function(json){
new makeOptions("CODE","NAME").setObj($("select[name=bjobBzwkDstcd]")).setData(json.bjobBzwkDstcd).rendering(); new makeOptions("CODE","NAME").setObj($("select[name=bjobBzwkDstcd]")).setData(json.bjobBzwkDstcd).rendering();
new makeOptions("CODE","NAME").setObj($("select[name=sysCd]")).setNoValueInclude(true).setNoValue(' ','없음').setData(json.sysCd).rendering(); new makeOptions("CODE","NAME").setObj($("select[name=sysCd]")).setNoValueInclude(true).setNoValue(' ','없음').setData(json.sysCd).rendering();
new makeOptions("CODE","NAME").setObj($("select[name=sysCd2]")).setNoValueInclude(true).setNoValue('','없음').setData(json.sysCd).rendering(); //new makeOptions("CODE","NAME").setObj($("select[name=sysCd2]")).setNoValueInclude(true).setNoValue('','없음').setData(json.sysCd).rendering();
new makeOptions("CODE","NAME").setObj($("select[name=uapplCd]")).setNoValueInclude(true).setNoValue(' ','없음').setData(json.uapplCd).rendering(); new makeOptions("CODE","NAME").setObj($("select[name=uapplCd]")).setNoValueInclude(true).setNoValue(' ','없음').setData(json.uapplCd).rendering();
//new makeOptions("CODE","NAME").setObj($("select[name=bizlevel1]")).setNoValueInclude(true).setNoValue(' ','없음').setData(json.bizlevel1).rendering(); //new makeOptions("CODE","NAME").setObj($("select[name=bizlevel1]")).setNoValueInclude(true).setNoValue(' ','없음').setData(json.bizlevel1).rendering();
//new makeOptions("CODE","NAME").setObj($("select[name=bizlevel2]")).setNoValueInclude(true).setNoValue(' ','없음').setData(json.bizlevel2).rendering(); //new makeOptions("CODE","NAME").setObj($("select[name=bizlevel2]")).setNoValueInclude(true).setNoValue(' ','없음').setData(json.bizlevel2).rendering();
@@ -318,15 +318,15 @@ $(document).ready(function() {
<th>작업처리 우선순위</th><td><input type="text" name="msgPrcssPrity" /> </td> <th>작업처리 우선순위</th><td><input type="text" name="msgPrcssPrity" /> </td>
</tr> </tr>
<tr> <tr>
<th>연계시스템 CODE(송신)</th> <th>연계시스템 CODE(내부)</th>
<td><div class="select-style"><select name="sysCd"></select></div> <td><div class="select-style"><select name="sysCd"></select></div>
</td> </td>
</tr> </tr>
<tr> <!-- <tr>
<th>연계시스템 CODE(수신)</th> <th>연계시스템 CODE(수신)</th>
<td><div class="select-style"><select name="sysCd2"></select></div> <td><div class="select-style"><select name="sysCd2"></select></div>
</td> </td>
</tr> </tr> -->
<tr> <tr>
<th>APPLICATION CODE</th> <th>APPLICATION CODE</th>
<td> <td>
@@ -528,11 +528,11 @@
</div> </div>
</td> </td>
</tr> </tr>
<tr> <tr style="display: none;">
<th>토큰 발급 제한건수(24시간)</th> <th>토큰 발급 제한건수(24시간)</th>
<td> <td>
<div class="select-style"> <div class="select-style">
<input type="text" name="dailyTokenLimit"></input> <input type="text" name="dailyTokenLimit" value=0></input>
</div> </div>
</td> </td>
</tr> </tr>
@@ -85,8 +85,8 @@
url: url, url: url,
postData: gridPostData, postData: gridPostData,
colNames: ['업무구분', colNames: ['업무구분',
'API (*)', 'API ID(*)',
'API 명', 'API 명',
'요청', '요청',
'응답', '응답',
'작성자', '작성자',
@@ -387,11 +387,11 @@
<td> <td>
<select name="searchEaiBzwkDstcd" value="${param.searchEaiBzwkDstcd}"></select> <select name="searchEaiBzwkDstcd" value="${param.searchEaiBzwkDstcd}"></select>
</td> </td>
<th style="width:180px;">API </th> <th style="width:180px;">API ID</th>
<td> <td>
<input type="text" name="searchEaiSvcName" value="${param.searchEaiSvcName}"> <input type="text" name="searchEaiSvcName" value="${param.searchEaiSvcName}">
</td> </td>
<th style="width:180px;">API명</th> <th style="width:180px;">API 명</th>
<td> <td>
<input type="text" name="searchEaiSvcDesc" value="${param.searchEaiSvcDesc}"> <input type="text" name="searchEaiSvcDesc" value="${param.searchEaiSvcDesc}">
</td> </td>
@@ -61,7 +61,13 @@
.input-group { .input-group {
position: relative; position: relative;
} }
/* 어댑터, 메서드 라이브 서치 사용시 width 깨짐 방지 */
.select2-container {
width: 100% !important;
box-sizing: border-box;
}
</style> </style>
<script language="javascript" > <script language="javascript" >
var isDetail = false; var isDetail = false;
@@ -172,6 +178,25 @@
} }
$('#eaiBzwkDstcd').select2(); $('#eaiBzwkDstcd').select2();
$('#fromAdapter').select2();
$('#toAdapter').select2();
$('#fromResponseAdapter').select2();
$('#toResponseAdapter').select2();
$('#inboundHttpMethod').select2();
$('#outboundHttpMethod').select2();
$('#newBizCode').select2({
dropdownParent: $('#cloneInterfaceModal'),
width: '100%'
});
$('#newInboundHttpMethod').select2({
dropdownParent: $('#cloneInterfaceModal'),
width: '100%'
});
fromAdapterMessageKeyMap = json.fromAdapterMessageKeyMap; fromAdapterMessageKeyMap = json.fromAdapterMessageKeyMap;
stdCommonFieldDefinitions = json.stdCommonFieldDefinitions; stdCommonFieldDefinitions = json.stdCommonFieldDefinitions;
initStdCommonFieldDefinitions(stdCommonFieldDefinitions); initStdCommonFieldDefinitions(stdCommonFieldDefinitions);
@@ -1344,7 +1369,6 @@
<button type="button" class="cssbtn" id="btn_modify" level="R" status="DETAIL,NEW"><i class="material-icons">save</i> <%= localeMessage.getString("button.modify") %></button> <button type="button" class="cssbtn" id="btn_modify" level="R" status="DETAIL,NEW"><i class="material-icons">save</i> <%= localeMessage.getString("button.modify") %></button>
<button type="button" class="cssbtn" id="btn_api_spec" level="R" status="DETAIL,NEW"><i class="material-icons">description</i> API 스펙</button> <button type="button" class="cssbtn" id="btn_api_spec" level="R" status="DETAIL,NEW"><i class="material-icons">description</i> API 스펙</button>
<button type="button" class="cssbtn" id="btn_previous" level="R" status="DETAIL,NEW"><i class="material-icons">arrow_back</i> <%= localeMessage.getString("button.previous") %></button> <button type="button" class="cssbtn" id="btn_previous" level="R" status="DETAIL,NEW"><i class="material-icons">arrow_back</i> <%= localeMessage.getString("button.previous") %></button>
<%-- <button type="button" class="cssbtn" id="btn_excel_export" level="R" status="DETAIL"><i class="material-icons">table_view</i> <%= localeMessage.getString("button.excel") %></button> --%>
</div> </div>
<div class="title" id="title" style="font-size:1.4em">${rmsMenuName}</div> <div class="title" id="title" style="font-size:1.4em">${rmsMenuName}</div>
<form id="ajaxForm" <form id="ajaxForm"
@@ -1363,7 +1387,7 @@
<div class="form-group col-md-3"> <div class="form-group col-md-3">
<label for="eaiSvcName"> <label for="eaiSvcName">
<span class="material-icons-outlined">badge</span> API <span class="material-icons-outlined">badge</span> API ID
</label> </label>
<div class="input-group"> <div class="input-group">
<input type="text" <input type="text"
@@ -1389,7 +1413,7 @@
</div> </div>
<div class="form-group col-md-5"> <div class="form-group col-md-5">
<label for="eaiSvcDesc"><span class="material-icons-outlined">chat</span> 명</label> <label for="eaiSvcDesc"><span class="material-icons-outlined">chat</span> API 명</label>
<input type="text" class="form-control" id="eaiSvcDesc" name="eaiSvcDesc" required></input> <input type="text" class="form-control" id="eaiSvcDesc" name="eaiSvcDesc" required></input>
</div> </div>
<div class="form-group col-md-1"> <div class="form-group col-md-1">
@@ -1965,7 +1989,7 @@
</select> </select>
</div> </div>
<div class="form-group col-md-8"> <div class="form-group col-md-8">
<label for="newSvcName"><span class="material-icons-outlined">badge</span> API </label> <label for="newSvcName"><span class="material-icons-outlined">badge</span> API ID</label>
<div class="input-group"> <div class="input-group">
<input type="text" class="form-control" id="newSvcName" name="newSvcName" required> <input type="text" class="form-control" id="newSvcName" name="newSvcName" required>
<span class="input-group-text" style="padding: 0; border: none;"> <span class="input-group-text" style="padding: 0; border: none;">
@@ -1984,8 +2008,8 @@
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<label for="newInboundHttpMethod"><span class="material-icons">http</span> <%= localeMessage.getString("apiInterface.recvMethod") %></label> <label for="newInboundHttpMethod"><span class="material-icons">http</span> <%= localeMessage.getString("apiInterface.recvMethod") %></label>
<select id="newInboundHttpMethod" class="form-select" name="newInboundHttpMethod"></input> <select id="newInboundHttpMethod" class="form-select" name="newInboundHttpMethod"></input>
<option value="get">GET</option>
<option value="post">POST</option> <option value="post">POST</option>
<option value="get">GET</option>
<option value="put">PUT</option> <option value="put">PUT</option>
<option value="patch">PATCH</option> <option value="patch">PATCH</option>
<option value="delete">DELETE</option> <option value="delete">DELETE</option>
@@ -204,7 +204,7 @@
error: function (e) { error: function (e) {
alert(e.responseText); alert(e.responseText);
}, },
complate: function() { complete: function() {
$("[id^='btn_']").prop("disabled", false); $("[id^='btn_']").prop("disabled", false);
$("#btn_save").text("수정"); $("#btn_save").text("수정");
} }
@@ -277,7 +277,7 @@
error: function(e) { error: function(e) {
alert(e.responseText); alert(e.responseText);
}, },
complate: function() { complete: function() {
$("[id^='btn_']").prop("disabled", false); $("[id^='btn_']").prop("disabled", false);
$("#btn_delete").text("삭제"); $("#btn_delete").text("삭제");
} }
@@ -309,7 +309,7 @@
error: function(e) { error: function(e) {
alert("API 스펙 생성 중 오류가 발생했습니다: " + e.responseText); alert("API 스펙 생성 중 오류가 발생했습니다: " + e.responseText);
}, },
complate: function() { complete: function() {
$("[id^='btn_']").prop("disabled", false); $("[id^='btn_']").prop("disabled", false);
$("#btn_generate_spec").text("SPEC 자동 생성"); $("#btn_generate_spec").text("SPEC 자동 생성");
} }
@@ -146,12 +146,12 @@
defaultEditGrid($('#'+gridName), columns, '', 'level', layoutData, 93, ['value']); defaultEditGrid($('#'+gridName), columns, '', 'level', layoutData, 93, ['value']);
} }
function selectHttpLog(url, dayOfWeekNumber, guid, serviceProcessNumber){ function selectHttpLog(url, prcsDate, guid, serviceProcessNumber){
$.ajax({ $.ajax({
type : "GET", type : "GET",
url:url, url:url,
dataType:"json", dataType:"json",
data:{cmd: 'DETAIL_HTTP_LOG', dayOfWeekNumber, guid, serviceProcessNumber }, data:{cmd: 'DETAIL_HTTP_LOG', prcsDate, guid, serviceProcessNumber },
success:function(res){ success:function(res){
$('#labelHttpMethod').text(res.httpMethod); $('#labelHttpMethod').text(res.httpMethod);
$('#labelUrl').text(res.url); $('#labelUrl').text(res.url);
@@ -192,6 +192,7 @@
success:function(json){ success:function(json){
var data = json; var data = json;
const logDayOfWeek = extractDayOfWeek(json.MSGDPSTYMS); const logDayOfWeek = extractDayOfWeek(json.MSGDPSTYMS);
const prcsDate = json.MSGDPSTYMS.substring(0, 8);
const isInboundPart = json.LOGPRCSSSERNO === '100' || json.LOGPRCSSSERNO === '400'; const isInboundPart = json.LOGPRCSSSERNO === '100' || json.LOGPRCSSSERNO === '400';
const isOutboundPart = json.LOGPRCSSSERNO === '200' || json.LOGPRCSSSERNO === '300'; const isOutboundPart = json.LOGPRCSSSERNO === '200' || json.LOGPRCSSSERNO === '300';
const isInboundWithoutNet = !json.GSTATSYSADPTRBZWKGROUPNAME.includes('NET'); const isInboundWithoutNet = !json.GSTATSYSADPTRBZWKGROUPNAME.includes('NET');
@@ -199,7 +200,7 @@
fullMessageData = json.FULLMESSAGEDATA; fullMessageData = json.FULLMESSAGEDATA;
if((isInboundPart && isInboundWithoutNet) || (isOutboundPart && isOutboundWithoutNet)){ if((isInboundPart && isInboundWithoutNet) || (isOutboundPart && isOutboundWithoutNet)){
selectHttpLog(url, logDayOfWeek, json.EAISVCSERNO.trim(), logPrcssSerno); selectHttpLog(url, prcsDate, json.EAISVCSERNO.trim(), logPrcssSerno);
}else{ }else{
$("#tab4Button").hide(); $("#tab4Button").hide();
} }
+14
View File
@@ -6,6 +6,7 @@ plugins {
id 'war' id 'war'
id 'com.diffplug.eclipse.apt' version '3.41.1' id 'com.diffplug.eclipse.apt' version '3.41.1'
id 'project-report' id 'project-report'
id 'checkstyle'
} }
group 'com.eactive' group 'com.eactive'
@@ -35,6 +36,10 @@ java {
languageVersion = JavaLanguageVersion.of(8) languageVersion = JavaLanguageVersion.of(8)
} }
} }
checkstyle {
toolVersion = '8.45.1'
}
sourceSets { sourceSets {
main { main {
@@ -59,6 +64,7 @@ war {
if (profile == "weblogic") { if (profile == "weblogic") {
webXml = file("WebContent/WEB-INF/weblogic-web.xml") webXml = file("WebContent/WEB-INF/weblogic-web.xml")
exclude 'WEB-INF/web.xml'
} }
@@ -261,4 +267,12 @@ eclipse {
buildCommand 'org.eclipse.buildship.core.gradleprojectbuilder' buildCommand 'org.eclipse.buildship.core.gradleprojectbuilder'
} }
} }
}
tasks.withType(Checkstyle) {
reports {
xml.required = false
html.required = true
}
} }
+17
View File
@@ -0,0 +1,17 @@
<!DOCTYPE module PUBLIC
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
"https://checkstyle.org/dtds/configuration_1_3.dtd">
<module name="Checker">
<module name="TreeWalker">
<!-- System.out.print / println 금지 -->
<module name="Regexp">
<property name="format" value="System\.out\.print" />
<property name="message" value="Do not use System.out.print / println" />
<property name="ignoreComments" value="true"/>
<property name="illegalPattern" value="true"/>
</module>
</module>
</module>
@@ -43,8 +43,8 @@ public class UmsDispatchService {
private EntityManager entityManager; private EntityManager entityManager;
private final MessageRequestRepository messageRequestRepository; private final MessageRequestRepository messageRequestRepository;
private final KjbUmsService kjbUmsService; private KjbUmsService kjbUmsService;
private final KjbEmailSendModule kjbEmailSendModule; private KjbEmailSendModule kjbEmailSendModule;
private final KjbPropertyInjector kjbPropertyInjector; private final KjbPropertyInjector kjbPropertyInjector;
@@ -83,9 +83,13 @@ public class UmsDispatchService {
// prop.setUmsApiKey(monitoringPropertyService.getPrpty2ValById(PROP_GORUP_ID, "kjb.ums.api_key")); // prop.setUmsApiKey(monitoringPropertyService.getPrpty2ValById(PROP_GORUP_ID, "kjb.ums.api_key"));
prop = kjbPropertyInjector.inject(prop); prop = kjbPropertyInjector.inject(prop);
this.kjbUmsService = new KjbUmsService(prop); try {
this.kjbUmsService = new KjbUmsService(prop);
this.kjbEmailSendModule = KjbEmailSendModule.getInstance(prop, messageRequestRepository); this.kjbEmailSendModule = KjbEmailSendModule.getInstance(prop, messageRequestRepository);
} catch (Exception e) {
log.error("Failed to initialize KjbUmsService or KjbEmailSendModule: {}", e.getMessage(), e);
}
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@@ -420,6 +420,9 @@ public class ApiInterfaceService extends OnlBaseService {
case "NET": case "NET":
outbndRoutName = "SOCKETOUT"; outbndRoutName = "SOCKETOUT";
break; break;
case "APP":
outbndRoutName = "APPOUT";
break;
default: default:
outbndRoutName = "RESTOUT"; outbndRoutName = "RESTOUT";
break; break;
@@ -591,6 +594,7 @@ public class ApiInterfaceService extends OnlBaseService {
// 25.11.25 HS04 APIFULLPATH 추가. // 25.11.25 HS04 APIFULLPATH 추가.
List<AdapterUI> adapters = adapterGroup.getAdapters(); List<AdapterUI> adapters = adapterGroup.getAdapters();
String inboundHttpMethod = vo.getInboundHttpMethod().toUpperCase();
for (AdapterUI adapter : adapters) { for (AdapterUI adapter : adapters) {
@@ -603,7 +607,7 @@ public class ApiInterfaceService extends OnlBaseService {
for (AdapterPropUI prop : props) { for (AdapterPropUI prop : props) {
if("API_PATH".equals(prop.getPrptyname())) { if("API_PATH".equals(prop.getPrptyname())) {
String fullPath = prop.getPrpty2val() + "/" + vo.getInboundRestPath(); String fullPath = inboundHttpMethod + "|" + prop.getPrpty2val() + "/" + vo.getInboundRestPath();
vo.setApiFullPath(fullPath); vo.setApiFullPath(fullPath);
break; break;
@@ -454,11 +454,11 @@ public class DbTrackingController {
@RequestMapping(value = "/onl/transaction/tracking/trackingMan.json", params = "cmd=DETAIL_HTTP_LOG") @RequestMapping(value = "/onl/transaction/tracking/trackingMan.json", params = "cmd=DETAIL_HTTP_LOG")
public ResponseEntity<HttpAdapterExtraLogVo> selectHttpAdapterExtraLog( public ResponseEntity<HttpAdapterExtraLogVo> selectHttpAdapterExtraLog(
@RequestParam int dayOfWeekNumber, @RequestParam String prcsDate,
@RequestParam String guid, @RequestParam String guid,
@RequestParam int serviceProcessNumber) { @RequestParam int serviceProcessNumber) {
return ResponseEntity.ok(service.selectHttpAdapterExtraLog( return ResponseEntity.ok(service.selectHttpAdapterExtraLog(
dayOfWeekNumber, guid, serviceProcessNumber)); prcsDate, guid, serviceProcessNumber));
} }
@RequestMapping(value = "/onl/transaction/tracking/trackingMan.json", params = "cmd=DETAIL_8583") @RequestMapping(value = "/onl/transaction/tracking/trackingMan.json", params = "cmd=DETAIL_8583")
@@ -439,18 +439,23 @@ public class DbTrackingService extends BaseService {
return map; return map;
} }
public HttpAdapterExtraLogVo selectHttpAdapterExtraLog(int dayOfWeekNumber, public HttpAdapterExtraLogVo selectHttpAdapterExtraLog(String prcsDate,
String guid, int serviceProcessNumber) { String guid, int serviceProcessNumber) {
Optional<HttpAdapterExtraLog> optional = httpAdapterExtraLogService HttpAdapterExtraLogId httpAdapterExtraLogId = new HttpAdapterExtraLogId();
.findById(new HttpAdapterExtraLogId( httpAdapterExtraLogId.setPrcsDate(prcsDate);
dayOfWeekNumber, guid, httpAdapterExtraLogId.setGuid(guid);
serviceProcessNumber)); httpAdapterExtraLogId.setServiceProcessNumber(serviceProcessNumber);
if (optional.isPresent()) { HttpAdapterExtraLog httpAdapterExtraLog = httpAdapterExtraLogService.getById(httpAdapterExtraLogId);
return httpAdapterExtraLogMapper.toVo(optional.get()); // Optional<HttpAdapterExtraLog> optional = httpAdapterExtraLogService
} // .findById(new HttpAdapterExtraLogId(
// prcsDate, guid, serviceProcessNumber));
//
// if (optional.isPresent()) {
// return httpAdapterExtraLogMapper.toVo(optional.get());
// }
return null; return httpAdapterExtraLogMapper.toVo(httpAdapterExtraLog);
} }
public String resultByMessage(EAILogDetailSearch paramVo, public String resultByMessage(EAILogDetailSearch paramVo,
@@ -0,0 +1,164 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="JmsQueueMonitor">
<!-- #### JMS Queue Monitor ### -->
<!-- 목록 조회 -->
<statement id="selectListCount" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
SELECT
COUNT(*)
FROM $schemaId$.TSEAIQM01 Q1, $schemaId$.TSEAICM01 C1
WHERE Q1.EAIBZWKDSTCD = C1.EAIBZWKDSTCD
AND Q1.QUEUSEYN = '1'
<isNotEmpty prepend="AND" property="searchEaiBzwkdstcd">
Q1.EAIBZWKDSTCD LIKE '%' || #searchEaiBzwkdstcd# || '%'
</isNotEmpty>
<isNotEmpty prepend="AND" property="searchEaiQueBzwkCtnt">
Q1.EAIQUEBZWKCTNT LIKE '%' || #searchEaiQueBzwkCtnt# ||'%'
</isNotEmpty>
<isNotEmpty prepend="AND" property="searchInst">
Q1.EAISEVRINSTNCNAME LIKE '%'|| #searchInst#
</isNotEmpty>
<isNotEmpty prepend="AND" property="searchQueName">
Q1.NONSYNCZTRANQUENAME LIKE '%' || #searchQueName# || '%'
</isNotEmpty>
</statement>
<statement id="selectList" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
SELECT * FROM (
SELECT
ROW_NUMBER() OVER (ORDER BY Q1.EAIBZWKDSTCD, Q1.EAISEVRINSTNCNAME) AS "ROWNO",
Q1.EAIBZWKDSTCD "EAIBZWKDSTCD",
C1.BZWKDSTICNAME "BZWKDSTICNAME",
Q1.EAIQUEBZWKDTALSCTNT "EAIQUEBZWKCTNT",
Q1.EAISEVRINSTNCNAME "EAISEVRINSTNCNAME",
Q1.QUEUSAGDSTCD "QUEUSAGDSTCD",
Q1.NONSYNCZTRANQUENAME "NONSYNCZTRANQUENAME",
CASE WHEN QUEUSAGDSTCD = '1'
THEN 0
END AS "SENDQUEUECOUNT",
CASE WHEN QUEUSAGDSTCD = '2'
THEN 0
END AS "RECEIVEQUEUECOUNT",
CASE WHEN QUEUSAGDSTCD = '3'
THEN 0
END AS "SENDERRORQUEUECOUNT",
CASE WHEN QUEUSAGDSTCD = '4'
THEN 0
END AS "RECEIVEERRORCOUNT"
FROM $schemaId$.TSEAIQM01 Q1, $schemaId$.TSEAICM01 C1
WHERE Q1.EAIBZWKDSTCD = C1.EAIBZWKDSTCD
AND Q1.QUEUSEYN = '1'
<isNotEmpty prepend="AND" property="searchEaiBzwkdstcd">
Q1.EAIBZWKDSTCD LIKE '%' || #searchEaiBzwkdstcd# || '%'
</isNotEmpty>
<isNotEmpty prepend="AND" property="searchEaiQueBzwkCtnt">
Q1.EAIQUEBZWKCTNT LIKE '%' || #searchEaiQueBzwkCtnt# ||'%'
</isNotEmpty>
<isNotEmpty prepend="AND" property="searchInst">
Q1.EAISEVRINSTNCNAME LIKE '%'|| #searchInst#
</isNotEmpty>
<isNotEmpty prepend="AND" property="searchQueName">
Q1.NONSYNCZTRANQUENAME LIKE '%' || #searchQueName# || '%'
</isNotEmpty>
ORDER BY Q1.EAIBZWKDSTCD, Q1.EAIQUEBZWKCTNT, Q1.EAISEVRINSTNCNAME
) TMP WHERE "ROWNO" BETWEEN #startNum# AND #endNum#
</statement>
<statement id="selectListToExcel" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
SELECT $headersStr$ FROM (
SELECT
ROW_NUMBER() OVER (ORDER BY Q1.EAIBZWKDSTCD, Q1.EAISEVRINSTNCNAME) AS "ROWNO",
Q1.EAIBZWKDSTCD "EAIBZWKDSTCD",
C1.BZWKDSTICNAME "BZWKDSTICNAME",
Q1.EAIQUEBZWKCTNT "EAIQUEBZWKCTNT",
Q1.EAISEVRINSTNCNAME "EAISEVRINSTNCNAME",
Q1.QUEUSAGDSTCD "QUEUSAGDSTCD",
Q1.NONSYNCZTRANQUENAME "NONSYNCZTRANQUENAME",
CAST (CASE WHEN QUEUSAGDSTCD = '1'
THEN 0
END AS VARCHAR )AS "SENDQUEUECOUNT",
CAST (CASE WHEN QUEUSAGDSTCD = '2'
THEN 0
END AS VARCHAR )AS "RECEIVEQUEUECOUNT",
CAST (CASE WHEN QUEUSAGDSTCD = '3'
THEN 0
END AS VARCHAR )AS "SENDERRORQUEUECOUNT",
CAST (CASE WHEN QUEUSAGDSTCD = '4'
THEN 0
END AS VARCHAR ) "RECEIVEERRORCOUNT"
FROM $schemaId$.TSEAIQM01 Q1, $schemaId$.TSEAICM01 C1
WHERE Q1.EAIBZWKDSTCD = C1.EAIBZWKDSTCD
AND Q1.QUEUSEYN = '1'
<isNotEmpty prepend="AND" property="searchEaiBzwkdstcd">
Q1.EAIBZWKDSTCD LIKE '%' || #searchEaiBzwkdstcd# || '%'
</isNotEmpty>
<isNotEmpty prepend="AND" property="searchEaiQueBzwkCtnt">
Q1.EAIQUEBZWKCTNT LIKE '%' || #searchEaiQueBzwkCtnt# ||'%'
</isNotEmpty>
<isNotEmpty prepend="AND" property="searchInst">
Q1.EAISEVRINSTNCNAME LIKE '%'|| #searchInst#
</isNotEmpty>
<isNotEmpty prepend="AND" property="searchQueName">
Q1.NONSYNCZTRANQUENAME LIKE '%' || #searchQueName# || '%'
</isNotEmpty>
ORDER BY Q1.EAIBZWKDSTCD, Q1.EAIQUEBZWKCTNT, Q1.EAISEVRINSTNCNAME
) TMP
</statement>
<statement id="selectDetail" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
select
Q1.EAIBzwkDstcd,
C1.BzwkDsticName,
Q1.EAIQueBzwkCtnt,
Q1.EAISevrInstncName,
Q1.QueUsagDstcd,
Q1.NonSynczTranQueName
from $schemaId$.tseaiqm01 Q1, $schemaId$.tseaicm01 C1
where Q1.EAIBzwkDstcd = C1.EAIBzwkDstcd
and Q1.QueUseYn = '1'
<isNotEmpty prepend="AND" property="nonSynczTranQueName">
Q1.NonSynczTranQueName = #nonSynczTranQueName#
</isNotEmpty>
ORDER BY Q1.EAIBzwkDstcd, Q1.EAIQueBzwkCtnt, Q1.EAISevrInstncName
</statement>
<statement id="connectionInfo" resultClass="java.util.HashMap">
SELECT PrptyName, Prpty2Val
FROM $schemaId$.TSEAICM03
WHERE PrptyGroupName = #prptyGroupName#
</statement>
<statement id="serviceInfo" resultClass="java.util.HashMap">
SELECT EAISvcName, EAISvcDesc
FROM $schemaId$.TSEAIHE01
</statement>
<statement id="selectBoxCount" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
SELECT MAX(SUBSTR(EAISEVRINSTNCNAME,7,1))
FROM $schemaId$.TSEAISY02
WHERE EAISEVRIP != '*'
</statement>
<statement id="selectInstCount" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
SELECT MAX(SUBSTR(EAISEVRINSTNCNAME,8,1))
FROM $schemaId$.TSEAISY02
WHERE EAISEVRIP != '*'
</statement>
<statement id="selectQueueMonitoringList" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
SELECT
Q1.EAIBZWKDSTCD, C1.BZWKDSTICNAME, Q1.EAIQUEBZWKCTNT, Q1.EAISEVRINSTNCNAME, Q1.QUEUSAGDSTCD, Q1.NONSYNCZTRANQUENAME ,
CASE WHEN QUEUSAGDSTCD = '1'
THEN 0
END AS "SENDQUEUECOUNT",
CASE WHEN QUEUSAGDSTCD = '2'
THEN 0
END AS "RECEIVEQUEUECOUNT",
CASE WHEN QUEUSAGDSTCD = '3'
THEN 0
END AS "SENDERRORQUEUECOUNT",
CASE WHEN QUEUSAGDSTCD = '4'
THEN 0
END AS "RECEIVEERRORCOUNT"
FROM $schemaId$.TSEAIQM01 Q1
INNER JOIN $schemaId$.TSEAICM01 C1 ON Q1.EAIBZWKDSTCD = C1.EAIBZWKDSTCD
WHERE Q1.QUEUSEYN = '1'
ORDER BY Q1.EAIBZWKDSTCD, Q1.EAIQUEBZWKCTNT, Q1.EAISEVRINSTNCNAME
</statement>
</sqlMap>