/*******************************************************************************
*	 All Rights reserved,Copyright (c) K-Opticom 
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JSYejbEDK0111B027TPDA
*	ソースファイル名：JSYejbEDK0111B027TPDA.java
*	作成者			：EK909134
*	日付			：2011年09月09日
*＜機能概要＞
*	数量指定詳細一覧照会テンプレートDBアクセス部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	ｖ1.00.00
*
********************************************************************************/

package eo.ejb.cbs.sqlf;

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 eo.common.constant.JPCModelConstant;
import eo.ejb.cbs.cbsmsg.EDK0111B027CBSMsg;
import eo.ejb.cbs.cbsmsg.EDK0111B027CBSMsg1List;
import eo.ejb.cbm.entity.DK0111ETMsg;
import eo.ejb.common.JDKModelCommon;
import static eo.ejb.common.JDKModelCommon.*;
import static eo.common.constant.JZM0171Constant.*; 

/**
*
*  テンプレートDBアクセス部品　EDK0111B027_SQLF<br>
*  入力された項目からSQL文を動的に組み立て、<br>
*  検索結果をCBSMsgにセットします。<br>
*/
public class JSYejbEDK0111B027TPDA extends CAANSQLFacility implements TemplateDBAccessHandler{
	
	/**
	 * コンストラクタ
	 */
	public JSYejbEDK0111B027TPDA()	{
	}
	
	/**
	*   EDK0111B027_SQLF<br>
	*   @param inMsg    入力値の格納されたCBSMsg <br>
	*   @return void
	*/
	public void invoke(CAANMsg inMsg,AgentDispatchContext inContext){
		
		// コネクション
		Connection con1 = null;
		
		// プリペアステートメント
		PreparedStatement pstmtForCount = null;
		PreparedStatement pstmtForFetch = null;
		
		// リザルトセット
		ResultSet rsltQueryForCount = null;
		ResultSet rsltQueryForFetch = null;
		
		/* ++++++++++ ｖ1.00.00 追加開始 ++++++++++ */
		/***************************************************** 
		 * サービスインターフェイス共通部の必須チェック
		 *****************************************************/
		
		// 最大検索件数、表示件数、表示ページ番号が未設定の場合
		// 例外をスローする
		if (inMsg.isNull(EDK0111B027CBSMsg.MAX_SEARCH_NUM)
				|| inMsg.isNull(EDK0111B027CBSMsg.DISPLAY_NUM)
				|| inMsg.isNull(EDK0111B027CBSMsg.DISPLAY_PAGE_NUM))
		{
			throw new IllegalArgumentException("サービスインターフェイス共通部の最大検索件数、表示件数、表示ページ番号は必須項目です。");
		}
		/* ++++++++++ ｖ1.00.00 追加終了 ++++++++++ */

		/******************** 
		 * SQL文の作成
		 ********************/

		try{
			
			//コネクション取得
			con1 = JSYejbConnection.getConnection(DK0111ETMsg.getTableName());
			
			/* ++++++++++ ｖ1.00.00 追加開始 ++++++++++ */
			// カウント用SQL１
			StringBuffer sql_BuffSelectStart = new StringBuffer();
			sql_BuffSelectStart.append(" SELECT ")
								.append("   COUNT(*) AS CNT ")
								.append(" FROM ")
								.append(" ( ");
			// カウント用SQL２
			StringBuffer sql_BuffSelectEnd = new StringBuffer();
			sql_BuffSelectEnd.append(" ) ");

			StringBuffer sql_BuffCnt = new StringBuffer();
			StringBuffer sql_BuffData = new StringBuffer();

			// データ取得用SQL１
			StringBuffer sql_BuffDataStart = new StringBuffer();
			sql_BuffDataStart.append(" SELECT ")
							.append("     TBL2.MTSOKONM, ")
							.append("     TBL2.MTKOJINM, ")
							.append("     TBL2.MTOFCNM, ")
							.append("     TBL2.SKSOKONM, ")
							.append("     TBL2.SKKOJINM, ")
							.append("     TBL2.SKOFCNM, ")
							.append("     TBL2.MTTANANM, ")
							.append("     TBL2.SKTANANM, ")
							.append("     TBL2.SHKSAKI, ")
							.append("     TBL2.TAKMODELNO, ")
							.append("     TBL2.SETMODELNO, ")
							.append("     TBL2.FZKMODELNO, ")
							.append("     TBL2.TAKTYPENM, ")
							.append("     TBL2.SETTYPENM, ")
							.append("     TBL2.FZKTYPENM, ")
							.append("     TBL2.SEIZONO, ")
							.append("     TBL2.SETSEIZONO ")
							.append(" FROM ")
							.append(" ( ")
							.append(" SELECT ")
							.append("     ROWNUM AS ROW_NUM, ")
							.append("     TBL1.MTSOKONM, ")
							.append("     TBL1.MTKOJINM, ")
							.append("     TBL1.MTOFCNM, ")
							.append("     TBL1.SKSOKONM, ")
							.append("     TBL1.SKKOJINM, ")
							.append("     TBL1.SKOFCNM, ")
							.append("     TBL1.MTTANANM, ")
							.append("     TBL1.SKTANANM, ")
							.append("     TBL1.SHKSAKI, ")
							.append("     TBL1.TAKMODELNO, ")
							.append("     TBL1.SETMODELNO, ")
							.append("     TBL1.FZKMODELNO, ")
							.append("     TBL1.TAKTYPENM, ")
							.append("     TBL1.SETTYPENM, ")
							.append("     TBL1.FZKTYPENM, ")
							.append("     TBL1.SEIZONO, ")
							.append("     TBL1.SETSEIZONO ")
							.append(" FROM ")
							.append(" ( ");

			// データ取得用SQL２
			StringBuffer sql_BuffDataEnd = new StringBuffer();
			sql_BuffDataEnd.append(" ) TBL1 ")
							.append(" ) TBL2 ")
							.append(" WHERE ")
							.append(" TBL2.ROW_NUM BETWEEN ? AND ? ");
			/* ++++++++++ ｖ1.00.00 追加終了 ++++++++++ */

			// SQL文_基本部1
			StringBuffer sql_Buff = new StringBuffer();
			sql_Buff.append(" SELECT  ");
			// SQL文_個別部1
			if ( JPCModelConstant.FUNC_CD_1.equals( inMsg.getObject(EDK0111B027CBSMsg.FUNC_CODE).toString() ) ) {
 				sql_Buff.append("     SOKO.SOKO_NM AS MTSOKONM,  ")
						.append("     KOJI.KOJI_COMP_NM AS MTKOJINM,  ")
						.append("     OFC.YOTAKU_SAKI_OFFC_NM AS MTOFCNM,  ")
						.append("     SOKO.SOKO_NM AS SKSOKONM,  ")
						.append("     KOJI.KOJI_COMP_NM AS SKKOJINM,  ")
						.append("     OFC.YOTAKU_SAKI_OFFC_NM AS SKOFCNM,  ")
						.append(      cd(CD00544, "SOKODNA.MOVE_MOTO_SHELF_CD", COMMA.RIGHT, "MTTANANM"))
						.append(      cd(CD00544, "SOKODNA.MOVE_SAKI_SHELF_CD", COMMA.RIGHT, "SKTANANM"))
						.append("     SOKO.SOKO_NM AS SHKSAKI,  ")
						.append("     SOKODNA.TAKNKIKI_MODEL_CD AS TAKMODELNO,  ")
						.append("     SOKODNA.TAKNKIKI_SETHIN_MODEL_CD AS SETMODELNO,  ")
						.append("     SOKODNA.HUZOKUHIN_MODEL_CD AS FZKMODELNO,  ")
						.append("     TKKKMDL.TAKNKIKI_MODEL_NM AS TAKTYPENM,  ")
						.append("     '' AS SETTYPENM,  ")
						.append("     '' AS FZKTYPENM,  ")
						.append("     TAISYOKK.KIKI_SEIZO_NO AS SEIZONO,  ")
						.append("     TAISYOKK.TAKNKIKI_SETHIN_NO AS SETSEIZONO  ")
						.append(" FROM DK_T_SOKODNA_MOVE SOKODNA  ")
						.append("     LEFT OUTER JOIN DK_M_SOKO SOKO  ")
						.append("         ON (SOKO.SOKO_CD = SOKODNA.SOKO_CD  ")
						.append("             AND SOKO.SOKO_TSTAYMD <= ?  ")
						.append("             AND SOKO.MK_FLG = '0')  ")
						.append("     LEFT OUTER JOIN ZM_M_KOJI_COMP KOJI  ")
						.append("         ON (KOJI.KOJI_COMP_CD = SOKODNA.KOJI_COMP_CD  ")
						.append("             AND KOJI.MK_FLG = '0')  ")
						.append("     LEFT OUTER JOIN ZM_M_YTK_SK_OFFC OFC  ")
						.append("         ON (OFC.YOTAKU_SAKI_OFFC_CD = SOKODNA.YOTAKU_SAKI_OFFC_CD  ")
						.append("             AND OFC.MK_FLG = '0')  ")
						.append("     LEFT OUTER JOIN DK_T_SDNAMV_TG_KIKI TAISYOKK  ")
						.append("         ON (TAISYOKK.SOKODNA_MOVE_NO = SOKODNA.SOKODNA_MOVE_NO  ")
						.append("             AND TAISYOKK.MK_FLG = '0')  ")
						.append("     LEFT OUTER JOIN ZM_M_TAKNKIKI_MODEL TKKKMDL  ")
						.append("         ON (TKKKMDL.TAKNKIKI_MODEL_CD = SOKODNA.TAKNKIKI_MODEL_CD  ")
						.append("             AND TKKKMDL.MK_FLG = '0')  ")
						.append(" WHERE SOKODNA.SOKODNA_MOVE_NO = ? ")
						.append("     AND SOKODNA.MK_FLG='0'  ")
						.append(" ORDER BY NVL(TAISYOKK.KIKI_SEIZO_NO, TAISYOKK.TAKNKIKI_SETHIN_NO) ");
			}
			if ( JPCModelConstant.FUNC_CD_2.equals( inMsg.getObject(EDK0111B027CBSMsg.FUNC_CODE).toString() ) ) {
 				sql_Buff.append("     SOKOMT.SOKO_NM AS MTSOKONM,  ")
						.append("     KOJIMT.KOJI_COMP_NM AS MTKOJINM,  ")
						.append("     OFCMT.YOTAKU_SAKI_OFFC_NM AS MTOFCNM,  ")
						.append("     SOKOSK.SOKO_NM AS SKSOKONM,  ")
						.append("     KOJISK.KOJI_COMP_NM AS SKKOJINM,  ")
						.append("     OFCSK.YOTAKU_SAKI_OFFC_NM AS SKOFCNM,  ")
						.append(      cd(CD00544, "YBK.HISOM_SHELF_CD", COMMA.RIGHT, "MTTANANM"))
						.append(      cd(CD00544, "YBK.HISOS_SHELF_CD", COMMA.RIGHT, "SKTANANM"))
						.append("     YBK.YBKIKI_HISOS_NM_1 AS SHKSAKI,  ")
						.append("     YBK.TAKNKIKI_MODEL_CD AS TAKMODELNO,  ")
						.append("     YBK.TAKNKIKI_SETHIN_MODEL_CD AS SETMODELNO,  ")
						.append("     YBK.HUZOKUHIN_MODEL_CD AS FZKMODELNO,  ")
						.append("     TKKKMDL.TAKNKIKI_MODEL_NM AS TAKTYPENM,  ")
						.append("     '' AS SETTYPENM,  ")
						.append("     '' AS FZKTYPENM,  ")
						.append("     TAISYOBPN.KIKI_SEIZO_NO AS SEIZONO,  ")
						.append("     TAISYOBPN.TAKNKIKI_SETHIN_NO AS SETSEIZONO  ")
						.append(" FROM DK_T_YBKIKI_HAISO YBK  ")
						.append("     LEFT OUTER JOIN DK_M_SOKO SOKOMT  ")
						.append("         ON (SOKOMT.SOKO_CD = YBK.HAISO_MOTO_SOKO_CD  ")
						.append("             AND SOKOMT.SOKO_TSTAYMD <= ?  ")
						.append("             AND SOKOMT.MK_FLG = '0')  ")
						.append("     LEFT OUTER JOIN ZM_M_KOJI_COMP KOJIMT  ")
						.append("         ON (KOJIMT.KOJI_COMP_CD = YBK.HISOM_KOCOMP_CD  ")
						.append("             AND KOJIMT.MK_FLG = '0')  ")
						.append("     LEFT OUTER JOIN ZM_M_YTK_SK_OFFC OFCMT  ")
						.append("         ON (OFCMT.YOTAKU_SAKI_OFFC_CD = YBK.HISOM_YOTAKU_SK_OFFC_CD  ")
						.append("             AND OFCMT.MK_FLG = '0')  ")
						.append("     LEFT OUTER JOIN DK_M_SOKO SOKOSK  ")
						.append("         ON (SOKOSK.SOKO_CD = YBK.HISOS_SOKO_CD  ")
						.append("             AND SOKOSK.SOKO_TSTAYMD <= ?  ")
						.append("             AND SOKOSK.MK_FLG = '0')  ")
						.append("     LEFT OUTER JOIN ZM_M_KOJI_COMP KOJISK  ")
						.append("         ON (KOJISK.KOJI_COMP_CD = YBK.HISOS_KOCOMP_CD  ")
						.append("             AND KOJISK.MK_FLG = '0')  ")
						.append("     LEFT OUTER JOIN ZM_M_YTK_SK_OFFC OFCSK  ")
						.append("         ON (OFCSK.YOTAKU_SAKI_OFFC_CD = YBK.HISOS_YOTAKU_SK_OFFC_CD  ")
						.append("             AND OFCSK.MK_FLG = '0')  ")
						.append("     LEFT OUTER JOIN DK_T_YBKKHAI_TG_BPIN TAISYOBPN  ")
						.append("         ON (TAISYOBPN.YBKIKI_HAISO_NO = YBK.YBKIKI_HAISO_NO  ")
						.append("             AND TAISYOBPN.MK_FLG = '0')  ")
						.append("     LEFT OUTER JOIN ZM_M_TAKNKIKI_MODEL TKKKMDL  ")
						.append("         ON (TKKKMDL.TAKNKIKI_MODEL_CD = YBK.TAKNKIKI_MODEL_CD  ")
						.append("             AND TKKKMDL.MK_FLG = '0')  ")
						.append(" WHERE YBK.YBKIKI_HAISO_NO = ? ")
						.append("     AND YBK.MK_FLG='0'  ")
						.append(" ORDER BY NVL(TAISYOBPN.KIKI_SEIZO_NO, TAISYOBPN.TAKNKIKI_SETHIN_NO) ");
			}
			
			/* ++++++++++ ｖ1.00.00 追加開始 ++++++++++ */
			// カウントSQL組み立て
			sql_BuffCnt.append(sql_BuffSelectStart);
			sql_BuffCnt.append(sql_Buff);
			sql_BuffCnt.append(sql_BuffSelectEnd);

			// prepareStatementにSQL文をセット
			pstmtForCount = con1.prepareStatement(sql_BuffCnt.toString());

			// PreparedStatementの指定されたパラメータカラムに 指定された値を設定
			if (JPCModelConstant.FUNC_CD_1.equals(inMsg.getString(EDK0111B027CBSMsg.FUNC_CODE)))
			{
				// パラメータの設定(ＫＥＹ＿運用日付を指定) ※1まで設定
				Object unyoYmd = inMsg.getObject(EDK0111B027CBSMsg.KEY_UNYO_YMD);
				for (int i = 1; i < 4; i++)
				{
					CAANJDBCUtil.setParam(pstmtForCount, i, unyoYmd);
				}
				// パラメータの設定(ＫＥＹ＿棚移動番号を指定)
				CAANJDBCUtil.setParam(pstmtForCount, 4, inMsg.getObject(EDK0111B027CBSMsg.KEY_SHELF_MV_NO));
			}
			else if (JPCModelConstant.FUNC_CD_2.equals(inMsg.getString(EDK0111B027CBSMsg.FUNC_CODE)))
			{
				// パラメータの設定(ＫＥＹ＿運用日付を指定) ※1〜2まで設定
				Object unyoYmd = inMsg.getObject(EDK0111B027CBSMsg.KEY_UNYO_YMD);
				for (int j = 1; j < 5; j++)
				{
					CAANJDBCUtil.setParam(pstmtForCount, j, unyoYmd);
				}
				// パラメータの設定(ＫＥＹ＿棚移動番号を指定)
				CAANJDBCUtil.setParam(pstmtForCount, 5, inMsg.getObject(EDK0111B027CBSMsg.KEY_SHELF_MV_NO));
			}

			// ログ出力(SQL文の出力)
			JSYejbLog.outlog(inContext, JSYejbLog.DBACCESS, this.getClass(), sql_BuffCnt);

			// ResultSetの取得
			rsltQueryForCount = pstmtForCount.executeQuery();

			// EDK0111B027CBSMsgの明細にセットする項目
			String[] msgKeyList0 = {
					EDK0111B027CBSMsg.TOTAL_SEARCH_NUM
			};

			rsltQueryForCount.next();
			mapMessage(rsltQueryForCount, msgKeyList0, inMsg);

			int iStartNum = 0;
			int iEndNum = 0;
			// 総ページ数設定
			int iTotal = Integer.parseInt(inMsg.getString(EDK0111B027CBSMsg.TOTAL_SEARCH_NUM));
			int iDispNum = Integer.parseInt(inMsg.getString(EDK0111B027CBSMsg.DISPLAY_NUM));
			int iSearchDivDisp =  iTotal / iDispNum;
			int iRest =  iTotal % iDispNum;
			// 割り切れない場合は総ページ数を増やす
			if (0 != iRest)
			{
				iSearchDivDisp = iSearchDivDisp + 1;
			}
			inMsg.set(EDK0111B027CBSMsg.TOTAL_PAGE_NUM, Integer.toString(iSearchDivDisp));

			// 検索件数が0件の場合、エラーフラグに"1"を設定して処理終了
			if (0 == (Integer.parseInt(inMsg.getString(EDK0111B027CBSMsg.TOTAL_SEARCH_NUM))))
			{
				inMsg.set(EDK0111B027CBSMsg.SEARCH_ERR_FLG, JPCModelConstant.SEARCH_ERR_FLG_ZERO);
				return;
			}
			// 検索件数が最大検索件数を超えた場合、エラーフラグに"2"を設定して処理終了
			if (Integer.parseInt(inMsg.getString(EDK0111B027CBSMsg.MAX_SEARCH_NUM))
					< (Integer.parseInt(inMsg.getString(EDK0111B027CBSMsg.TOTAL_SEARCH_NUM))))
			{
				inMsg.set(EDK0111B027CBSMsg.TOTAL_SEARCH_NUM, inMsg.getString(EDK0111B027CBSMsg.MAX_SEARCH_NUM));
				iTotal = Integer.parseInt(inMsg.getString(EDK0111B027CBSMsg.MAX_SEARCH_NUM));
				iDispNum = Integer.parseInt(inMsg.getString(EDK0111B027CBSMsg.DISPLAY_NUM));
				iSearchDivDisp =  iTotal / iDispNum;
				iRest =  iTotal % iDispNum;
				// 割り切れない場合は総ページ数を増やす
				if (0 != iRest)
				{
					iSearchDivDisp = iSearchDivDisp + 1;
				}
				inMsg.set(EDK0111B027CBSMsg.TOTAL_PAGE_NUM, Integer.toString(iSearchDivDisp));
			}
			// 表示ページに該当するデータがない場合、エラーフラグに"3"を設定して処理終了
			int iDispPageNum = Integer.parseInt(inMsg.getString(EDK0111B027CBSMsg.DISPLAY_PAGE_NUM));
			iStartNum = iDispNum * (iDispPageNum - 1) + 1;
			iEndNum = iDispNum * iDispPageNum;
			if (iSearchDivDisp < iDispPageNum)
			{
				inMsg.set(EDK0111B027CBSMsg.SEARCH_ERR_FLG, JPCModelConstant.SEARCH_ERR_FLG_NODATA);
				return;
			}

			// データ取得SQL分の形成
			sql_BuffData.append(sql_BuffDataStart);
			sql_BuffData.append(sql_Buff);
			sql_BuffData.append(sql_BuffDataEnd);

			/* ++++++++++ ｖ1.00.00 追加終了 ++++++++++ */

			/* ++++++++++ ｖ1.00.00 変更開始 ++++++++++ */
			//prepareStatementにSQL文をセット
			pstmtForFetch = con1.prepareStatement(sql_BuffData.toString());
			
			//ログ出力(SQL文の出力)
			JSYejbLog.outlog(inContext, JSYejbLog.DBACCESS, this.getClass(), sql_BuffData);
			
			// PreparedStatementの指定されたパラメータカラムに 指定された値を設定
			if (JPCModelConstant.FUNC_CD_1.equals(inMsg.getString(EDK0111B027CBSMsg.FUNC_CODE)))
			{
				// パラメータの設定(ＫＥＹ＿運用日付を指定) ※1まで設定
				Object unyoYmd = inMsg.getObject(EDK0111B027CBSMsg.KEY_UNYO_YMD);
				for (int i = 1; i < 4; i++)
				{
					CAANJDBCUtil.setParam(pstmtForFetch, i, unyoYmd);
				}
				// パラメータの設定(ＫＥＹ＿棚移動番号を指定)
				CAANJDBCUtil.setParam(pstmtForFetch, 4, inMsg.getObject(EDK0111B027CBSMsg.KEY_SHELF_MV_NO));
				// パラメータの設定(画面表示データ開始レコード行を指定)
				CAANJDBCUtil.setParam(pstmtForFetch, 5, iStartNum);
				// パラメータの設定(画面表示データ終了レコード行を指定)
				CAANJDBCUtil.setParam(pstmtForFetch, 6, iEndNum);
			}
			else if (JPCModelConstant.FUNC_CD_2.equals(inMsg.getString(EDK0111B027CBSMsg.FUNC_CODE)))
			{
				// パラメータの設定(ＫＥＹ＿運用日付を指定) ※1〜2まで設定
				Object unyoYmd = inMsg.getObject(EDK0111B027CBSMsg.KEY_UNYO_YMD);
				for (int j = 1; j < 5; j++)
				{
					CAANJDBCUtil.setParam(pstmtForFetch, j, unyoYmd);
				}
				// パラメータの設定(ＫＥＹ＿棚移動番号を指定)
				CAANJDBCUtil.setParam(pstmtForFetch, 5, inMsg.getObject(EDK0111B027CBSMsg.KEY_SHELF_MV_NO));
				// パラメータの設定(画面表示データ開始レコード行を指定)
				CAANJDBCUtil.setParam(pstmtForFetch, 6, iStartNum);
				// パラメータの設定(画面表示データ終了レコード行を指定)
				CAANJDBCUtil.setParam(pstmtForFetch, 7, iEndNum);
			}
			/* ++++++++++ ｖ1.00.00 変更終了 ++++++++++ */
			
			// ResultSetの取得
			rsltQueryForFetch = pstmtForFetch.executeQuery();
			
			// EDK0111B027CBSMsgの明細にセットする項目
			String[] msgKeyList1 = {
					  EDK0111B027CBSMsg1List.MV_MT_SOKO_NM
					, EDK0111B027CBSMsg1List.MV_MT_KOJI_NM
					, EDK0111B027CBSMsg1List.MV_MT_OFFICE_NM
					, EDK0111B027CBSMsg1List.MV_SK_SOKO_NM
					, EDK0111B027CBSMsg1List.MV_SK_KOJI_NM
					, EDK0111B027CBSMsg1List.MV_SK_OFFICE_NM
					, EDK0111B027CBSMsg1List.MV_MT_SHELF_CD_NM
					, EDK0111B027CBSMsg1List.MV_SK_SHELF_CD_NM
					, EDK0111B027CBSMsg1List.SHKA_SK
					, EDK0111B027CBSMsg1List.TKKIKI_MDL_CD
					, EDK0111B027CBSMsg1List.TKKIKI_SETHIN_MDL_CD
					, EDK0111B027CBSMsg1List.HUZOKUHIN_MDL_CD
					, EDK0111B027CBSMsg1List.TKKIKI_MDL_NM
					, EDK0111B027CBSMsg1List.TKKIKI_SETHIN_MDL_NM
					, EDK0111B027CBSMsg1List.HUZOKUHIN_MDL_NM
					, EDK0111B027CBSMsg1List.KIKI_SEIZO_NO
					, EDK0111B027CBSMsg1List.TKKIKI_SETHIN_SEIZO_NO
			};
			
			// 明細に処理結果(ResultSet)をマッピング
			CAANMsg[] outMsg1 = mapMessageList(rsltQueryForFetch,msgKeyList1,"eo.ejb.cbs.cbsmsg.EDK0111B027CBSMsg1List",0);
			// inMsg(CBSMsg)に明細をセット
			inMsg.set("EDK0111B027CBSMsg1List", outMsg1);
			

		} catch(SQLException e) {
			inMsg.set(EDK0111B027CBSMsg.STATUS, StatusCodes.FIND_DB_ERR);
			throw new CAANRuntimeException(e);
		} finally {
			// 資源の解放
			try{
				SQLException e = JDKModelCommon.close(pstmtForCount, pstmtForFetch, rsltQueryForCount, rsltQueryForFetch);
				if(con1 != null){
					closeConnection(con1);
				}
				if (e != null)
				{
					throw e;
				}
			}catch(SQLException e){
				inMsg.set(EDK0111B027CBSMsg.STATUS, StatusCodes.FIND_DB_ERR);
				throw new CAANRuntimeException(e);
			}
		}
	}
}
