/*******************************************************************************
*	 All Rights reserved,Copyright (c) K-Opticom 
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JSYejbEKK0341B033TPDA
*	ソースファイル名：JSYejbEKK0341B033TPDA.java
*	作成者			：EK915140
*	日付			：2013年10月26日
*＜機能概要＞
*	機器提供サービス契約一覧照会(サービス契約番号配送)テンプレートDBアクセス部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	ｖ1.00.00
*   v11.00.00   2014/11/14  FJ)米谷     OM-2014-0003315
********************************************************************************/

package eo.ejb.cbs.sqlf;

import com.fujitsu.futurity.model.base.CAANConnectionMgr;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.base.CAANSQLFacility;
import com.fujitsu.futurity.model.base.CAANRuntimeException;
import com.fujitsu.futurity.model.base.CAANJDBCUtil;
import com.fujitsu.futurity.model.ejb.common.JSYejbConnection;
import com.fujitsu.futurity.model.ejb.common.JSYejbLog;
import com.fujitsu.futurity.model.ejb.common.StatusCodes;
import com.fujitsu.futurity.model.ejb.common.fw.TemplateDBAccessHandler;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import eo.ejb.cbs.cbsmsg.EKK0341B033CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341B033CBSMsg1List;
import eo.ejb.cbm.entity.KK0341ETMsg;
import eo.ejb.common.JKKModelCommon;

/**
*
*  テンプレートDBアクセス部品　EKK0341B033_SQLF<br>
*  入力された項目からSQL文を動的に組み立て、<br>
*  検索結果をCBSMsgにセットします。<br>
*/
public class JSYejbEKK0341B033TPDA extends CAANSQLFacility implements TemplateDBAccessHandler{
	
	/**
	 * コンストラクタ
	 */
	public JSYejbEKK0341B033TPDA()	{
	}
	
	
	/**
	*   EKK0341B033_SQLF<br>
	*   @param inMsg    入力値の格納されたCBSMsg <br>
	*   @return void
	*/
	public void invoke(CAANMsg inMsg,AgentDispatchContext inContext){
		
		// 出力結果
		ArrayList<CAANMsg> outEKK0341B033List = new ArrayList<CAANMsg>();

		// サービス契約番号に紐づく機器提供サービス契約を取得
		CAANMsg[] retMsgKK0341List = getKK0341List(inMsg, inContext);

		for (CAANMsg retMsgKK0341: retMsgKK0341List)
		{
			// 機器提供サービス契約一覧照会(サービス契約番号配送)を取得
			CAANMsg[] retEKK0341B033List = getEKK0341B033List(inMsg, inContext, retMsgKK0341.getString(KK0341ETMsg.KKTK_SVC_KEI_NO),
					retMsgKK0341.getString(KK0341ETMsg.GENE_ADD_DTM));
			for(int i = 0; i < retEKK0341B033List.length; i ++ )
			{
				outEKK0341B033List.add(retEKK0341B033List[i]);
			}
		}
		if (!outEKK0341B033List.isEmpty())
		{
			// inMsg(CBSMsg)に明細をセット
			inMsg.set("EKK0341B033CBSMsg1List", outEKK0341B033List.toArray(new CAANMsg[0]));
		}
	}
	
	/**
	 * <p>
	 * サービス契約番号に紐づく機器提供サービス契約を取得します。
	 * </p>
	 * @param  inMsg       処理対象のメッセージキャリア
	 * @param  inContext   Agentから渡されたAgentDispatchContext
	 * @param  svcKeiNo    サービス契約番号
	 * @return 実行結果を保持したリスト
	 */
	private CAANMsg[] getKK0341List(CAANMsg inMsg, AgentDispatchContext inContext)
	{
		// コネクション
		Connection con1 = null;
		// プリペアステートメント
		PreparedStatement pstmt = null;
		// リザルトセット
		ResultSet rsltQuery = null;
		
		// パラメータのカウント
		int iPCnt = 0;
		
		// 運用日付
		String opeDate = JKKModelCommon.getOpeDate(inMsg);

		try
		{
			// 対象テーブルのコネクション取得
			con1 = JSYejbConnection.getConnection(KK0341ETMsg.getTableName());
			// SQL文_基本部1
			StringBuffer sql_Buff = new StringBuffer();
			sql_Buff.append(" SELECT KK0341.KKTK_SVC_KEI_NO ")
					.append("      , KK0341.GENE_ADD_DTM ")
					.append(" FROM   KK_T_KKTK_SVC_KEI KK0341 ");
			// SQL文_個別部1
			if ("1".equals(inMsg.getObject(EKK0341B033CBSMsg.FUNC_CODE).toString()))
			{
				sql_Buff.append(" INNER JOIN ( ")
						.append("     SELECT KK0341_TMP_01.KKTK_SVC_KEI_NO, ")
						.append("            KK0341_TMP_01.GENE_ADD_DTM, ")
						.append("            NULL, ")
						.append("            NULL ")
						.append("     FROM   KK_T_KKTK_SVC_KEI KK0341_TMP_01 ")
						.append("     WHERE  KK0341_TMP_01.SVC_KEI_NO = ? ")
						.append("     AND   (KK0341_TMP_01.KKTK_SVC_KEI_NO, KK0341_TMP_01.RSV_APLY_YMD || KK0341_TMP_01.GENE_ADD_DTM) = ")
						.append("        (SELECT KK0341_GENE_01.KKTK_SVC_KEI_NO, MAX(KK0341_GENE_01.RSV_APLY_YMD || KK0341_GENE_01.GENE_ADD_DTM) AS KK0341_01_MAX ")
						.append("         FROM   KK_T_KKTK_SVC_KEI KK0341_GENE_01 ")
						.append("         WHERE  KK0341_GENE_01.RSV_APLY_CD = '2' ")
						.append("         AND    KK0341_GENE_01.RSV_APLY_YMD <= ? ")
						.append("         AND    KK0341_GENE_01.MK_FLG = '0' ")
						.append("         AND    KK0341_GENE_01.KKTK_SVC_KEI_NO = KK0341_TMP_01.KKTK_SVC_KEI_NO ")
						.append("         GROUP BY KK0341_GENE_01.KKTK_SVC_KEI_NO) ");
			}
			// SQL文_個別部2
			if ("2".equals(inMsg.getObject(EKK0341B033CBSMsg.FUNC_CODE).toString()))
			{
				sql_Buff.append(" INNER JOIN ( ")
						.append("     SELECT KK0341_TMP_01.KKTK_SVC_KEI_NO, ")
						.append("            KK0341_TMP_01.GENE_ADD_DTM, ")
						.append("            NULL, ")
						.append("            NULL ")
						.append("     FROM   KK_T_KKTK_SVC_KEI KK0341_TMP_01 ")
						.append("     WHERE  KK0341_TMP_01.SVC_KEI_NO = ? ")
						.append("     AND   (KK0341_TMP_01.KKTK_SVC_KEI_NO, KK0341_TMP_01.KIKI_CHG_NO, KK0341_TMP_01.GENE_ADD_DTM) = ")
						.append("        (SELECT KK0341_GENE_01.KKTK_SVC_KEI_NO, KK0341_GENE_01.KIKI_CHG_NO, MAX(KK0341_GENE_01.GENE_ADD_DTM) AS KK0341_01_MAX ")
						.append("         FROM   KK_T_KKTK_SVC_KEI KK0341_GENE_01 ")
						.append("         WHERE  KK0341_GENE_01.MK_FLG = '0' ")
						.append("         AND    KK0341_GENE_01.KKTK_SVC_KEI_NO = KK0341_TMP_01.KKTK_SVC_KEI_NO ")
						.append("         AND    KK0341_GENE_01.KIKI_CHG_NO = KK0341_TMP_01.KIKI_CHG_NO ")
						.append("         GROUP BY KK0341_GENE_01.KKTK_SVC_KEI_NO, KK0341_GENE_01.KIKI_CHG_NO) ");
			}

			// 共通部
			sql_Buff.append(" ) KK0341_PK ")
					.append(" ON     KK0341_PK.KKTK_SVC_KEI_NO = KK0341.KKTK_SVC_KEI_NO ")
					.append(" AND    KK0341_PK.GENE_ADD_DTM = KK0341.GENE_ADD_DTM ")
					.append(" ORDER BY KK0341.KKTK_SVC_KEI_NO ASC, ")
					.append("          KK0341.KIKI_CHG_NO ASC ");
			
			//prepareStatementにSQL文をセット
			pstmt = con1.prepareStatement(sql_Buff.toString());
			
			//ログ出力(SQL文の出力)
			JSYejbLog.outlog(inContext, JSYejbLog.DBACCESS, this.getClass(), sql_Buff);
			
			// PreparedStatementの指定されたパラメータカラムに 指定された値を設定

			//機能コード1のパラメータ設定
			if ("1".equals(inMsg.getString(EKK0341B033CBSMsg.FUNC_CODE)))
			{
				// パラメータの設定(ＫＥＹ＿サービス契約番号を指定)
				CAANJDBCUtil.setParam(pstmt, ++iPCnt, inMsg.getObject(EKK0341B033CBSMsg.KEY_SVC_KEI_NO));
				// パラメータの設定(運用日付を設定)
				CAANJDBCUtil.setParam(pstmt, ++iPCnt, opeDate);
			}
			
			//機能コード２のパラメータ設定
			if ("2".equals(inMsg.getString(EKK0341B033CBSMsg.FUNC_CODE)))
			{
				// パラメータの設定(ＫＥＹ＿サービス契約番号を指定)
				CAANJDBCUtil.setParam(pstmt, ++iPCnt, inMsg.getObject(EKK0341B033CBSMsg.KEY_SVC_KEI_NO));
			}
			
			// ResultSetの取得
			rsltQuery = pstmt.executeQuery();

			// 返却用リスト
			ArrayList<CAANMsg> retArray = new ArrayList<CAANMsg>();

			// 取得データの設定
			while (rsltQuery.next())
			{
				CAANMsg retMsg = new CAANMsg(KK0341ETMsg.class.getName());
				retMsg.set(KK0341ETMsg.KKTK_SVC_KEI_NO, rsltQuery.getString(KK0341ETMsg.KKTK_SVC_KEI_NO));
				retMsg.set(KK0341ETMsg.GENE_ADD_DTM, rsltQuery.getString(KK0341ETMsg.GENE_ADD_DTM));
				retArray.add(retMsg);
			}

			return retArray.toArray(new CAANMsg[0]);
		}
		catch(SQLException se)
		{
			throw new CAANRuntimeException(se);
		}
		finally
		{
			// 資源の解放
			try
			{
				if(rsltQuery != null)
				{
					rsltQuery.close();
				}
				if(pstmt != null)
				{
					pstmt.close();
				}
				if(con1 != null)
				{
					CAANConnectionMgr.getInstance().close(con1);
				}
			}
			catch(SQLException se)
			{
				throw new CAANRuntimeException(se);
			}
		}
	}


	/**
	 * <p>
	 * 機器提供サービス契約一覧照会(サービス契約番号配送)を取得します。
	 * </p>
	 * @param  inMsg       処理対象のメッセージキャリア
	 * @param  inContext   Agentから渡されたAgentDispatchContext
	 * @param  kktkSvcKeiNo  機器提供サービス契約番号
	 * @param  geneAddDtm    世代登録年月日時分秒
	 */
	private CAANMsg[]  getEKK0341B033List(CAANMsg inMsg, AgentDispatchContext inContext, String kktkSvcKeiNo, String geneAddDtm)
	{
		
		// コネクション
		Connection con1 = null;
		
		// プリペアステートメント
		PreparedStatement pstmt = null;
		
		// リザルトセット
		ResultSet rsltQuery = null;
		
		// パラメータのカウント
		int iPCnt = 0;

		// 運用日付
		String opeDate = JKKModelCommon.getOpeDate(inMsg);

		/******************** 
		 * SQL文の作成
		 ********************/

		try{
			
			//コネクション取得
			con1 = JSYejbConnection.getConnection(KK0341ETMsg.getTableName());
			
			
			// SQL文_基本部1
			StringBuffer sql_Buff = new StringBuffer();
			sql_Buff.append(" SELECT KK0341.KKTK_SVC_KEI_NO ")
					.append("       ,KK0341.GENE_ADD_DTM ")
					.append("       ,KK0341.KKTK_SVC_KEI_STAT ")
					.append("       ,KK0341.KKTK_SBT_CD ")
					.append("       ,KK0341.HAMBAI_SBT_CD ")
					.append("       ,KK0341.TAKNKIKI_SBT_CD ")
					.append("       ,KK0341.KIKI_SEIZO_NO ")
					.append("       ,KK0341.TAKNKIKI_MODEL_CD ")
					.append("       ,DK0011.HAISO_STAT ")
					.append("       ,DK0021.HAISO_NO ")
					.append("       ,DK0021.HAISO_TAIBPIN_NO ")
					.append("       ,KK0341.KKTK_SVC_CD ")
					.append("       ,KK0341.KIKI_CHG_NO ")
					.append("       ,KK0341.RSV_APLY_YMD ")
					.append("       ,KK0341_RSV.GENE_ADD_DTM AS GENE_ADD_DTM_RSV ")
					.append("       ,KK0341_RSV.KKTK_SVC_KEI_STAT AS KKTK_SVC_KEI_STAT_RSV ")
					.append("       ,KK0341_RSV.KIKI_CHG_NO AS KIKI_CHG_NO_RSV ")
					.append("       ,DK0011_02.HAISO_NO AS HAISO_NO_RSV ")
					.append("       ,DK0011_02.HAISO_STAT AS HAISO_STAT_RSV ")
					.append("       ,KK0341.RSV_CL_YMD ")
					.append("       ,KK1041.ODR_SET_NO ")
					.append("       ,KK1041.ADD_SOD_SEND_YMD ")
					.append("       ,KK1041.STP_SOD_SEND_YMD ")
					.append(" FROM KK_T_KKTK_SVC_KEI KK0341 ")
					.append(" LEFT OUTER JOIN (  ")
					.append("     SELECT DK0021_TMP.HAISO_TAIBPIN_NO,  ")
					.append("            DK0021_TMP.HAISO_NO,  ")
					.append("            DK0021_TMP.KKTK_SVC_KEI_NO,  ")
					.append("            DK0021_TMP.DENPYO_NO,  ")
					.append("            DK0021_TMP.KIKI_CHG_NO  ")
// ----- OM-2014-0003315 START -----
					.append("     FROM (SELECT DK0021_GEN.HAISO_TAIBPIN_NO,  ")
					.append("                  DK0021_GEN.HAISO_NO,  ")
					.append("                  DK0021_GEN.KKTK_SVC_KEI_NO,  ")
					.append("                  DK0021_GEN.DENPYO_NO,  ")
					.append("                  DK0021_GEN.KIKI_CHG_NO,  ")
					.append("                  DK0021_GEN.MK_FLG,  ")
					.append("                  DK0021_GEN.ADD_DTM,  ")
					.append("                  MAX(DK0021_GEN.ADD_DTM) OVER(PARTITION BY DK0021_GEN.KKTK_SVC_KEI_NO,DK0021_GEN.KIKI_CHG_NO) CUR  ")
					.append("           FROM DK_T_HAISO_TG_BPIN DK0021_GEN  ")
					.append("           WHERE DK0021_GEN.MK_FLG = '0') DK0021_TMP  ")
					.append("     WHERE DK0021_TMP.ADD_DTM = DK0021_TMP.CUR  ")
//					.append("     FROM   DK_T_HAISO_TG_BPIN DK0021_TMP  ")
//					.append("     WHERE  (DK0021_TMP.KKTK_SVC_KEI_NO, DK0021_TMP.HAISO_TAIBPIN_NO) =  ")
//					.append("        (SELECT DK0021_GENE.KKTK_SVC_KEI_NO, MAX(DK0021_GENE.HAISO_TAIBPIN_NO) AS HAISO_TAIBPIN_NO_MAX   ")
//					.append("         FROM   DK_T_HAISO_TG_BPIN DK0021_GENE   ")
//					.append("         WHERE  DK0021_GENE.KKTK_SVC_KEI_NO = DK0021_TMP.KKTK_SVC_KEI_NO   ")
//					.append("         AND    DK0021_GENE.KIKI_CHG_NO = DK0021_TMP.KIKI_CHG_NO   ")
//					.append("         AND    DK0021_GENE.MK_FLG = '0'   ")
//					.append("         GROUP BY DK0021_GENE.KKTK_SVC_KEI_NO) ")
// ----- OM-2014-0003315 END -----
					.append(" ) DK0021  ")
					.append(" ON     KK0341.KKTK_SVC_KEI_NO = DK0021.KKTK_SVC_KEI_NO  ")
					.append(" AND    DK0021.KIKI_CHG_NO = KK0341.KIKI_CHG_NO  ")
					.append(" LEFT OUTER JOIN DK_T_HAISO DK0011  ")
					.append(" ON     DK0021.HAISO_NO = DK0011.HAISO_NO  ")
					.append(" AND    DK0011.MK_FLG = '0'  ");
				sql_Buff.append(" LEFT OUTER JOIN (  ")
					.append("     SELECT KK0341_RSV.*  ")
					.append("     FROM   KK_T_KKTK_SVC_KEI KK0341_RSV  ")
					.append("     WHERE  KK0341_RSV.RSV_APLY_CD = '1'  ")
					.append("     AND    KK0341_RSV.MK_FLG = '0'  ")
					.append(" ) KK0341_RSV  ")
					.append(" ON     KK0341.KKTK_SVC_KEI_NO = KK0341_RSV.KKTK_SVC_KEI_NO  ")
					.append(" LEFT OUTER JOIN (  ")
					.append("     SELECT DK0021_TMP_02.HAISO_NO  ")
					.append("           ,DK0021_TMP_02.KIKI_CHG_NO  ")
					.append("           ,DK0021_TMP_02.KKTK_SVC_KEI_NO   ")
// ----- OM-2014-0003315 START -----
					.append("     FROM (SELECT DK0021_GEN.HAISO_TAIBPIN_NO,  ")
					.append("                  DK0021_GEN.HAISO_NO,  ")
					.append("                  DK0021_GEN.KKTK_SVC_KEI_NO,  ")
					.append("                  DK0021_GEN.DENPYO_NO,  ")
					.append("                  DK0021_GEN.KIKI_CHG_NO,  ")
					.append("                  DK0021_GEN.MK_FLG,  ")
					.append("                  DK0021_GEN.ADD_DTM,  ")
					.append("                  MAX(DK0021_GEN.ADD_DTM) OVER(PARTITION BY DK0021_GEN.KKTK_SVC_KEI_NO,DK0021_GEN.KIKI_CHG_NO) CUR  ")
					.append("           FROM DK_T_HAISO_TG_BPIN DK0021_GEN  ")
					.append("           WHERE DK0021_GEN.MK_FLG = '0') DK0021_TMP_02  ")
					.append("     WHERE DK0021_TMP_02.ADD_DTM = DK0021_TMP_02.CUR  ")
//					.append("     FROM   DK_T_HAISO_TG_BPIN DK0021_TMP_02  ")
//					.append("     WHERE  (DK0021_TMP_02.KKTK_SVC_KEI_NO, DK0021_TMP_02.HAISO_TAIBPIN_NO) =  ")
//					.append("        (SELECT DK0021_GENE_02.KKTK_SVC_KEI_NO, MAX(DK0021_GENE_02.HAISO_TAIBPIN_NO) AS HAISO_TAIBPIN_NO_MAX   ")
//					.append("         FROM   DK_T_HAISO_TG_BPIN DK0021_GENE_02   ")
//					.append("         WHERE  DK0021_GENE_02.KKTK_SVC_KEI_NO = DK0021_TMP_02.KKTK_SVC_KEI_NO   ")
//					.append("         AND    DK0021_GENE_02.KIKI_CHG_NO = DK0021_TMP_02.KIKI_CHG_NO   ")
//					.append("         AND    DK0021_GENE_02.MK_FLG = '0'   ")
//					.append("         GROUP BY DK0021_GENE_02.KKTK_SVC_KEI_NO) ")
// ----- OM-2014-0003315 END -----
					.append(" ) DK0021_02  ")
					.append(" ON     KK0341_RSV.KKTK_SVC_KEI_NO = DK0021_02.KKTK_SVC_KEI_NO  ")
					.append(" AND    DK0021_02.KIKI_CHG_NO = KK0341_RSV.KIKI_CHG_NO  ")
					.append(" LEFT OUTER JOIN DK_T_HAISO DK0011_02  ")
					.append(" ON     DK0021_02.HAISO_NO = DK0011_02.HAISO_NO  ")
					.append(" AND    DK0011_02.MK_FLG = '0'  ")
					.append(" LEFT OUTER JOIN ( ")
					.append("     SELECT KK1041_01.* ")
					.append("     FROM   KK_T_ODR_SET KK1041_01 ")
					.append("     WHERE  KK1041_01.ODR_SET_NO = ")
					.append("        (SELECT MAX (KK1041_GENE.ODR_SET_NO) AS KK1041_01_MAX ")
					.append("         FROM   KK_T_ODR_SET KK1041_GENE ")
					.append("         WHERE  KK1041_GENE.KKTK_SVC_KEI_NO = KK1041_01.KKTK_SVC_KEI_NO ")
					.append("         AND    KK1041_GENE.TAKNKIKI_MODEL_CD = KK1041_01.TAKNKIKI_MODEL_CD ")
					.append("         AND    KK1041_GENE.KIKI_SEIZO_NO = KK1041_01.KIKI_SEIZO_NO ")
					.append("         AND    KK1041_GENE.MK_FLG= '0') ")
					.append(" ) KK1041 ")
					.append(" ON     KK1041.KKTK_SVC_KEI_NO = KK0341.KKTK_SVC_KEI_NO ")
					.append(" AND    KK1041.TAKNKIKI_MODEL_CD = KK0341.TAKNKIKI_MODEL_CD ")
					.append(" AND    KK1041.KIKI_SEIZO_NO = KK0341.KIKI_SEIZO_NO ")
					.append(" WHERE  KK0341.KKTK_SVC_KEI_NO = ?  ")
					.append(" AND    KK0341.GENE_ADD_DTM = ?  ")
					.append(" ORDER BY KK0341.KKTK_SVC_KEI_NO ASC,  ")
					.append("          KK0341.KIKI_CHG_NO ASC  ");
			
			//prepareStatementにSQL文をセット
			pstmt = con1.prepareStatement(sql_Buff.toString());
			
			//ログ出力(SQL文の出力)
			JSYejbLog.outlog(inContext, JSYejbLog.DBACCESS, this.getClass(), sql_Buff);
			
			// PreparedStatementの指定されたパラメータカラムに 指定された値を設定
			// パラメータの設定(機器提供サービス契約番号)
			CAANJDBCUtil.setParam(pstmt, ++iPCnt, kktkSvcKeiNo);
			// パラメータの設定(世代登録年月日時分秒)
			CAANJDBCUtil.setParam(pstmt, ++iPCnt, geneAddDtm);
			
			// ResultSetの取得
			rsltQuery = pstmt.executeQuery();
			
			// EKK0341B033CBSMsgの明細にセットする項目
			String[] msgKeyList1 = {
					  EKK0341B033CBSMsg1List.KKTK_SVC_KEI_NO
					, EKK0341B033CBSMsg1List.GENE_ADD_DTM
					, EKK0341B033CBSMsg1List.KKTK_SVC_KEI_STAT
					, EKK0341B033CBSMsg1List.KKTK_SBT_CD
					, EKK0341B033CBSMsg1List.HAMBAI_SBT_CD
					, EKK0341B033CBSMsg1List.TAKNKIKI_SBT_CD
					, EKK0341B033CBSMsg1List.KIKI_SEIZO_NO
					, EKK0341B033CBSMsg1List.TAKNKIKI_MODEL_CD
					, EKK0341B033CBSMsg1List.HAISO_STAT
					, EKK0341B033CBSMsg1List.HAISO_NO
					, EKK0341B033CBSMsg1List.HAISO_TAIBPIN_NO
					, EKK0341B033CBSMsg1List.KKTK_SVC_CD
					, EKK0341B033CBSMsg1List.KIKI_CHG_NO
					, EKK0341B033CBSMsg1List.RSV_APLY_YMD
					, EKK0341B033CBSMsg1List.GENE_ADD_DTM_RSV
					, EKK0341B033CBSMsg1List.KKTK_SVC_KEI_STAT_RSV
					, EKK0341B033CBSMsg1List.KIKI_CHG_NO_RSV
					, EKK0341B033CBSMsg1List.HAISO_NO_RSV
					, EKK0341B033CBSMsg1List.HAISO_STAT_RSV
					, EKK0341B033CBSMsg1List.RSV_CL_YMD
					, EKK0341B033CBSMsg1List.ODR_SET_NO
					, EKK0341B033CBSMsg1List.ADD_SOD_SEND_YMD
					, EKK0341B033CBSMsg1List.STP_SOD_SEND_YMD
			};
			
			// 明細に処理結果(ResultSet)をマッピング
			CAANMsg[] outMsg1 = mapMessageList(rsltQuery,msgKeyList1,"eo.ejb.cbs.cbsmsg.EKK0341B033CBSMsg1List",0);
			
			return outMsg1;
			

		} catch(SQLException e) {
			inMsg.set(EKK0341B033CBSMsg.STATUS, StatusCodes.FIND_DB_ERR);
			throw new CAANRuntimeException(e);
		} finally {
			// 資源の解放
			try{
				if(rsltQuery != null){
					rsltQuery.close();
				}
				if(pstmt != null){
					pstmt.close();
				}
				if(con1 != null){
					closeConnection(con1);
				}
			}catch(SQLException e){
				inMsg.set(EKK0341B033CBSMsg.STATUS, StatusCodes.FIND_DB_ERR);
				throw new CAANRuntimeException(e);
			}
		}
	}
}
