/*******************************************************************************
*	 All Rights reserved,Copyright (c) K-Opticom 
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JSYejbEDK0061B022TPDA
*	ソースファイル名：JSYejbEDK0061B022TPDA.java
*	作成者			：EK909134
*	日付			：2011年10月03日
*＜機能概要＞
*	SQLFacility
*	テンプレート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.EDK0061B022CBSMsg;
import eo.ejb.cbs.cbsmsg.EDK0061B022CBSMsg1List;
import eo.ejb.cbm.entity.DK0061ETMsg;
import eo.ejb.common.JDKModelCommon;
import static eo.ejb.common.JDKModelCommon.*;
import static eo.common.constant.JZM0171Constant.*;

/**
*
*  テンプレートDBアクセス部品　EDK0061B022_SQLF<br>
*  入力された項目からSQL文を動的に組み立て、<br>
*  検索結果をCBSMsgにセットします。<br>
*/
public class JSYejbEDK0061B022TPDA extends CAANSQLFacility implements TemplateDBAccessHandler{
	
	/**
	 * コンストラクタ
	 */
	public JSYejbEDK0061B022TPDA()	{
	}
	
	/**
	*   EDK0061B022_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 (JPCModelConstant.FUNC_CD_1.equals(inMsg.getObject(EDK0061B022CBSMsg.FUNC_CODE).toString()))
		{
			// 運用日付、最大検索件数、表示件数、表示ページ番号が未設定の場合
			// 例外をスローする
			if (inMsg.isNull(EDK0061B022CBSMsg.KEY_UNYO_YMD)
					|| inMsg.isNull(EDK0061B022CBSMsg.MAX_SEARCH_NUM)
					|| inMsg.isNull(EDK0061B022CBSMsg.DISPLAY_NUM)
					|| inMsg.isNull(EDK0061B022CBSMsg.DISPLAY_PAGE_NUM))
			{
				throw new IllegalArgumentException("運用日付、最大検索件数、表示件数、表示ページ番号は必須項目です。");
			}
		}
		/* ++++++++++ ｖ1.00.00 追加終了 ++++++++++ */

		/******************** 
		 * SQL文の作成
		 ********************/

		try{
			
			//コネクション取得
			con1 = JSYejbConnection.getConnection(DK0061ETMsg.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.SEIZONO, ")
							.append("     TBL2.SETSEIZONO, ")
							.append("     TBL2.BIKOARI, ")
							.append("     TBL2.RIYUARI, ")
							.append("     TBL2.MVCNT, ")
							.append("     TBL2.HAISONO, ")
							.append("     TBL2.TAKMODELNO, ")
							.append("     TBL2.SETMODELNO, ")
							.append("     TBL2.FZKMODELNO, ")
							.append("     TBL2.TAKTYPENM, ")
							.append("     TBL2.SETTYPENM, ")
							.append("     TBL2.FZKTYPENM, ")
							.append("     TBL2.BIKONASI, ")
							.append("     TBL2.RIYUNASI, ")
							.append("     TBL2.SJICNT, ")
							.append("     TBL2.SHITEIWAYCD, ")
							.append("     TBL2.MOVESTAT, ")
							.append("     TBL2.UPDDTM, ")
							.append("     TBL2.UCWKNO, ")
							.append("     TBL2.UCWKUPDDTM ")
							.append(" FROM ")
							.append(" ( ")
							.append(" SELECT ")
							.append("     ROWNUM AS ROW_NUM, ")
							.append("     TBL1.SEIZONO, ")
							.append("     TBL1.SETSEIZONO, ")
							.append("     TBL1.BIKOARI, ")
							.append("     TBL1.RIYUARI, ")
							.append("     TBL1.MVCNT, ")
							.append("     TBL1.HAISONO, ")
							.append("     TBL1.TAKMODELNO, ")
							.append("     TBL1.SETMODELNO, ")
							.append("     TBL1.FZKMODELNO, ")
							.append("     TBL1.TAKTYPENM, ")
							.append("     TBL1.SETTYPENM, ")
							.append("     TBL1.FZKTYPENM, ")
							.append("     TBL1.BIKONASI, ")
							.append("     TBL1.RIYUNASI, ")
							.append("     TBL1.SJICNT, ")
							.append("     TBL1.SHITEIWAYCD, ")
							.append("     TBL1.MOVESTAT, ")
							.append("     TBL1.UPDDTM, ")
							.append("     TBL1.UCWKNO, ")
							.append("     TBL1.UCWKUPDDTM ")
							.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 DISTINCT  ");
			// SQL文_個別部1
			if ( JPCModelConstant.FUNC_CD_1.equals( inMsg.getObject(EDK0061B022CBSMsg.FUNC_CODE).toString() ) ) {

				// 数量指定時、型番号は取得しない
				String shiteiCd = inMsg.getObject(EDK0061B022CBSMsg.KEY_SHITEI_WAY_CD).toString();
				if ("1".equals(shiteiCd))
				{
					sql_Buff.append("     '' AS SEIZONO,  ")
							.append("     '' AS SETSEIZONO,  ")
							.append("     '' AS BIKOARI,  ")
							.append("     '' AS RIYUARI,  ")
							.append("     SUM(UCWK.SHUKKA_CNT) AS MVCNT,  ");
				}
				else
				{
					// 製番指定時、移動数は取得しない
					sql_Buff.append("     TAISYOBPN.KIKI_SEIZO_NO AS SEIZONO,  ")
							.append("     TAISYOBPN.TAKNKIKI_SETHIN_NO AS SETSEIZONO,  ")
							.append("     TAISYOBPN.YBKKHAI_TAIBPIN_BIKO AS BIKOARI,  ")
							.append(      cd(CD00338, "TAISYOBPN.YBKKHAI_RSN_CD", COMMA.RIGHT, "RIYUARI"))
							.append("     '' AS MVCNT,  ");
				}

				sql_Buff.append("     YBK.YBKIKI_HAISO_NO AS HAISONO,  ")
						.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("     YBK.YBKKHAI_BIKO AS BIKONASI,  ")
						.append(      cd(CD00338, "YBK.YBKKHAI_RSN_CD", COMMA.RIGHT, "RIYUNASI"))
						.append("     YBK.SJI_CNT AS SJICNT,  ")
						.append("     YBK.SHITEI_WAY_CD AS SHITEIWAYCD,  ")
						.append("     YBK.YBKIKI_HAISO_STAT AS MOVESTAT,  ")
						.append("     YBK.UPD_DTM AS UPDDTM,  ")
						.append("     '' AS UCWKNO,  ")
						.append("     '' AS UCWKUPDDTM  ")
						.append(" FROM DK_T_YBKIKI_HAISO YBK  ");

				// 数量指定時、内訳を取得する
				if ("1".equals(shiteiCd))
				{
					sql_Buff.append("     LEFT OUTER JOIN DK_T_YBKKHAI_UCWK UCWK  ")
							.append("         ON (UCWK.YBKIKI_HAISO_NO = YBK.YBKIKI_HAISO_NO  ")
							.append("             AND UCWK.MK_FLG = '0')  ");
				}
				else
				{
					sql_Buff.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')  ");
				}
				sql_Buff.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')  ");

				sql_Buff.append(" WHERE YBK.SHELF_MOVE_LOT_NO = ?  ")
						.append("     AND YBK.SHITEI_WAY_CD = ?  ")
						.append("     AND YBK.YBKIKI_HAISO_STAT IN ('004', '005')  ")
						.append("     AND YBK.MK_FLG = '0'  ");

				// 数量指定時
				if ("1".equals(shiteiCd))
				{
					sql_Buff.append(" GROUP BY YBK.YBKIKI_HAISO_NO, ")
							.append("  YBK.TAKNKIKI_MODEL_CD, ")
							.append("  YBK.TAKNKIKI_SETHIN_MODEL_CD, ")
							.append("  YBK.HUZOKUHIN_MODEL_CD, ")
							.append("  TKKKMDL.TAKNKIKI_MODEL_NM, ")
							.append("  YBK.YBKKHAI_BIKO, ")
							.append("  YBK.YBKKHAI_RSN_CD, ")
							.append("  YBK.SJI_CNT, ")
							.append("  YBK.SHITEI_WAY_CD, ")
							.append("  YBK.YBKIKI_HAISO_STAT, ")
							.append("  YBK.UPD_DTM  ");
				}

				sql_Buff.append(" ORDER BY YBK.YBKIKI_HAISO_NO  ");
				/* ++++++++++ ｖ1.00.00 変更終了 ++++++++++ */

			}
			if ( JPCModelConstant.FUNC_CD_2.equals( inMsg.getObject(EDK0061B022CBSMsg.FUNC_CODE).toString() ) ) {
				sql_Buff.append("     '' AS SEIZONO,  ")
						.append("     '' AS SETSEIZONO,  ")
						.append("     '' AS BIKOARI,  ")
						.append("     '' AS RIYUARI,  ")
						.append("     '' AS MVCNT,  ")
						.append("     YBK.YBKIKI_HAISO_NO AS HAIOSONO,  ")
						.append("     '' AS TAKMODELNO,  ")
						.append("     '' AS SETMODELNO,  ")
						.append("     '' AS FZKMODELNO,  ")
						.append("     '' AS TAKTYPENM,  ")
						.append("     '' AS SETTYPENM,  ")
						.append("     '' AS FZKTYPENM,  ")
						.append("     '' AS BIKONASI,  ")
						.append("     '' AS RIYUNASI,  ")
						.append("     '' AS SJICNT,  ")
						.append("     '' AS SHITEIWAYCD,  ")
						.append("     '' AS MOVESTAT,  ")
						.append("     YBK.UPD_DTM AS UPDDTM,  ")
						.append("     UCWK.YBKIKI_HAISO_UCWK_NO AS UCWKNO,  ")
						.append("     UCWK.UPD_DTM AS UCWKUPDDTM  ")
						.append(" FROM DK_T_YBKIKI_HAISO YBK  ")
						.append("     INNER JOIN DK_T_YBKKHAI_UCWK UCWK  ")
						.append("         ON (UCWK.YBKIKI_HAISO_NO = YBK.YBKIKI_HAISO_NO  ")
						.append("             AND UCWK.MK_FLG = '0')  ")
						.append(" WHERE YBK.SHELF_MOVE_LOT_NO = ?  ")
						.append("     AND YBK.SHITEI_WAY_CD = ?  ")
						.append("     AND YBK.YBKIKI_HAISO_STAT IN ('004', '005')  ")
						.append("     AND YBK.MK_FLG = '0'  ")
						.append(" ORDER BY YBK.YBKIKI_HAISO_NO, UCWK.YBKIKI_HAISO_UCWK_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());

			// 機能コードが１の場合
			if (JPCModelConstant.FUNC_CD_1.equals(inMsg.getObject(EDK0061B022CBSMsg.FUNC_CODE).toString()))
			{
				// パラメータの設定(ＫＥＹ＿運用日付を指定)
				CAANJDBCUtil.setParam(pstmtForCount, 1, inMsg.getObject(EDK0061B022CBSMsg.KEY_UNYO_YMD));

				// 製番指定の場合
				if ("2".equals(inMsg.getObject(EDK0061B022CBSMsg.KEY_SHITEI_WAY_CD).toString()))
				{
					// パラメータの設定(ＫＥＹ＿運用日付を指定)
					CAANJDBCUtil.setParam(pstmtForCount, 2, inMsg.getObject(EDK0061B022CBSMsg.KEY_UNYO_YMD));
					// パラメータの設定(ＫＥＹ＿棚移動ロット番号を指定)
					CAANJDBCUtil.setParam(pstmtForCount, 3, inMsg.getObject(EDK0061B022CBSMsg.KEY_SHELF_MV_LOT_NO));
					// パラメータの設定(ＫＥＹ＿指定方法コードを指定)
					CAANJDBCUtil.setParam(pstmtForCount, 4, inMsg.getObject(EDK0061B022CBSMsg.KEY_SHITEI_WAY_CD));
				}
				else
				{
					// 数量指定の場合
					// パラメータの設定(ＫＥＹ＿棚移動ロット番号を指定)
					CAANJDBCUtil.setParam(pstmtForCount, 2, inMsg.getObject(EDK0061B022CBSMsg.KEY_SHELF_MV_LOT_NO));
					// パラメータの設定(ＫＥＹ＿指定方法コードを指定)
					CAANJDBCUtil.setParam(pstmtForCount, 3, inMsg.getObject(EDK0061B022CBSMsg.KEY_SHITEI_WAY_CD));
				}
			}
			else
			{
				// パラメータの設定(ＫＥＹ＿棚移動ロット番号を指定)
				CAANJDBCUtil.setParam(pstmtForCount, 1, inMsg.getObject(EDK0061B022CBSMsg.KEY_SHELF_MV_LOT_NO));
				// パラメータの設定(ＫＥＹ＿指定方法コードを指定)
				CAANJDBCUtil.setParam(pstmtForCount, 2, inMsg.getObject(EDK0061B022CBSMsg.KEY_SHITEI_WAY_CD));
			}

			// ログ出力(SQL文の出力)
			JSYejbLog.outlog(inContext, JSYejbLog.DBACCESS, this.getClass(), sql_BuffCnt);

			// ResultSetの取得
			rsltQueryForCount = pstmtForCount.executeQuery();

			// EDK0061B022CBSMsgの明細にセットする項目
			String[] msgKeyList0 = {
				EDK0061B022CBSMsg.TOTAL_SEARCH_NUM
			};

			rsltQueryForCount.next();
			mapMessage(rsltQueryForCount, msgKeyList0, inMsg);

			// 機能コードが１の場合
			int iStartNum = 0;
			int iEndNum = 0;
			if (JPCModelConstant.FUNC_CD_1.equals(inMsg.getObject(EDK0061B022CBSMsg.FUNC_CODE).toString()))
			{
				// 総ページ数設定
				int iTotal = Integer.parseInt(inMsg.getString(EDK0061B022CBSMsg.TOTAL_SEARCH_NUM));
				int iDispNum = Integer.parseInt(inMsg.getString(EDK0061B022CBSMsg.DISPLAY_NUM));
				int iSearchDivDisp =  iTotal / iDispNum;
				int iRest =  iTotal % iDispNum;
				// 割り切れない場合は総ページ数を増やす
				if (0 != iRest)
				{
					iSearchDivDisp = iSearchDivDisp + 1;
				}
				inMsg.set(EDK0061B022CBSMsg.TOTAL_PAGE_NUM, Integer.toString(iSearchDivDisp));
	
				// 検索件数が0件の場合、エラーフラグに"1"を設定して処理終了
				if (0 == (Integer.parseInt(inMsg.getString(EDK0061B022CBSMsg.TOTAL_SEARCH_NUM))))
				{
					inMsg.set(EDK0061B022CBSMsg.SEARCH_ERR_FLG, JPCModelConstant.SEARCH_ERR_FLG_ZERO);
					return;
				}
				// 表示ページに該当するデータがない場合、エラーフラグに"3"を設定して処理終了
				int iDispPageNum = Integer.parseInt(inMsg.getString(EDK0061B022CBSMsg.DISPLAY_PAGE_NUM));
				iStartNum = iDispNum * (iDispPageNum - 1) + 1;
				iEndNum = iDispNum * iDispPageNum;
				if (iSearchDivDisp < iDispPageNum)
				{
					inMsg.set(EDK0061B022CBSMsg.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);
			}
			else
			{
				sql_BuffData.append(sql_Buff);
			}
			/* ++++++++++ ｖ1.00.00 追加終了 ++++++++++ */

			/* ++++++++++ ｖ1.00.00 変更開始 ++++++++++ */
			//prepareStatementにSQL文をセット
			pstmtForFetch = con1.prepareStatement(sql_BuffData.toString());
			
			//ログ出力(SQL文の出力)
			JSYejbLog.outlog(inContext, JSYejbLog.DBACCESS, this.getClass(), sql_BuffData);
			
			// 機能コードが１の場合
			if (JPCModelConstant.FUNC_CD_1.equals(inMsg.getObject(EDK0061B022CBSMsg.FUNC_CODE).toString()))
			{
				// パラメータの設定(ＫＥＹ＿運用日付を指定)
				CAANJDBCUtil.setParam(pstmtForFetch, 1, inMsg.getObject(EDK0061B022CBSMsg.KEY_UNYO_YMD));

				// 製番指定の場合
				if ("2".equals(inMsg.getObject(EDK0061B022CBSMsg.KEY_SHITEI_WAY_CD).toString()))
				{
					// パラメータの設定(ＫＥＹ＿運用日付を指定)
					CAANJDBCUtil.setParam(pstmtForFetch, 2, inMsg.getObject(EDK0061B022CBSMsg.KEY_UNYO_YMD));
					// パラメータの設定(ＫＥＹ＿棚移動ロット番号を指定)
					CAANJDBCUtil.setParam(pstmtForFetch, 3, inMsg.getObject(EDK0061B022CBSMsg.KEY_SHELF_MV_LOT_NO));
					// パラメータの設定(ＫＥＹ＿指定方法コードを指定)
					CAANJDBCUtil.setParam(pstmtForFetch, 4, inMsg.getObject(EDK0061B022CBSMsg.KEY_SHITEI_WAY_CD));
					// パラメータの設定(画面表示データ開始レコード行を指定)
					CAANJDBCUtil.setParam(pstmtForFetch, 5, iStartNum);
					// パラメータの設定(画面表示データ終了レコード行を指定)
					CAANJDBCUtil.setParam(pstmtForFetch, 6, iEndNum);
				}
				else
				{
					// 数量指定の場合
					// パラメータの設定(ＫＥＹ＿棚移動ロット番号を指定)
					CAANJDBCUtil.setParam(pstmtForFetch, 2, inMsg.getObject(EDK0061B022CBSMsg.KEY_SHELF_MV_LOT_NO));
					// パラメータの設定(ＫＥＹ＿指定方法コードを指定)
					CAANJDBCUtil.setParam(pstmtForFetch, 3, inMsg.getObject(EDK0061B022CBSMsg.KEY_SHITEI_WAY_CD));
					// パラメータの設定(画面表示データ開始レコード行を指定)
					CAANJDBCUtil.setParam(pstmtForFetch, 4, iStartNum);
					// パラメータの設定(画面表示データ終了レコード行を指定)
					CAANJDBCUtil.setParam(pstmtForFetch, 5, iEndNum);
				}
			}
			else
			{
				// 機能コードが２の場合
				// パラメータの設定(ＫＥＹ＿棚移動ロット番号を指定)
				CAANJDBCUtil.setParam(pstmtForFetch, 1, inMsg.getObject(EDK0061B022CBSMsg.KEY_SHELF_MV_LOT_NO));
				// パラメータの設定(ＫＥＹ＿指定方法コードを指定)
				CAANJDBCUtil.setParam(pstmtForFetch, 2, inMsg.getObject(EDK0061B022CBSMsg.KEY_SHITEI_WAY_CD));
			}
			/* ++++++++++ ｖ1.00.00 変更終了 ++++++++++ */
			
			// ResultSetの取得
			rsltQueryForFetch = pstmtForFetch.executeQuery();
			
			// EDK0061B022CBSMsgの明細にセットする項目
			String[] msgKeyList1 = {
					  EDK0061B022CBSMsg1List.KIKI_SEIZO_NO
					, EDK0061B022CBSMsg1List.TKKIKI_SETHIN_SEIZO_NO
					, EDK0061B022CBSMsg1List.U_ARI_BIKO
					, EDK0061B022CBSMsg1List.U_ARI_MV_RSN_CD_NM
					, EDK0061B022CBSMsg1List.MV_CNT
					, EDK0061B022CBSMsg1List.YBKIKI_HAISO_NO
					, EDK0061B022CBSMsg1List.TKKIKI_MDL_CD
					, EDK0061B022CBSMsg1List.TKKIKI_SETHIN_MDL_CD
					, EDK0061B022CBSMsg1List.HUZOKUHIN_MDL_CD
					, EDK0061B022CBSMsg1List.TKKIKI_MDL_NM
					, EDK0061B022CBSMsg1List.TKKIKI_SETHIN_MDL_NM
					, EDK0061B022CBSMsg1List.HUZOKUHIN_MDL_NM
					, EDK0061B022CBSMsg1List.U_NASI_BIKO
					, EDK0061B022CBSMsg1List.U_NASI_MV_RSN_CD_NM
					, EDK0061B022CBSMsg1List.SJI_CNT
					, EDK0061B022CBSMsg1List.SHITEI_WAY_CD
					, EDK0061B022CBSMsg1List.MOVE_STAT
					, EDK0061B022CBSMsg1List.UPD_DTM
					, EDK0061B022CBSMsg1List.YBKIKI_HAISO_UCWK_NO
					, EDK0061B022CBSMsg1List.UCWK_UPD_DTM
			};
			
			// 明細に処理結果(ResultSet)をマッピング
			CAANMsg[] outMsg1 = mapMessageList(rsltQueryForFetch,msgKeyList1,"eo.ejb.cbs.cbsmsg.EDK0061B022CBSMsg1List",0);
			// inMsg(CBSMsg)に明細をセット
			inMsg.set("EDK0061B022CBSMsg1List", outMsg1);
			

		} catch(SQLException e) {
			inMsg.set(EDK0061B022CBSMsg.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(EDK0061B022CBSMsg.STATUS, StatusCodes.FIND_DB_ERR);
				throw new CAANRuntimeException(e);
			}
		}
	}
}

