/*******************************************************************************
*	 All Rights reserved,Copyright (c) K-Opticom 
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JSYejbECK0281B001TPDA
*	ソースファイル名：JSYejbECK0281B001TPDA.java
*	作成者			：EK953219
*	日付			：2020年01月21日
*＜機能概要＞
*	見込顧客一覧照会テンプレートDBアクセス部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*   v48.00.00   2020/01/21  FJ)谷川     【ANK-3795-00-00】見込顧客システム構築対応
*   v48.00.01   2020/02/25  FJ)谷川     【ANK-3795-06-00】見込顧客検索返却項目変更
*   v49.00.00   2020/06/22  FJ)坂本     【ANK-3867-00-00】eフロント向けAPIの機能変更
********************************************************************************/

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.ejb.cbs.cbsmsg.ECK0281B001CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0281B001CBSMsg1List;
import eo.ejb.cbm.entity.AC0091ETMsg;

/**
*
*  テンプレートDBアクセス部品　ECK0281B001_SQLF<br>
*  入力された項目からSQL文を動的に組み立て、<br>
*  検索結果をCBSMsgにセットします。<br>
*/
public class JSYejbECK0281B001TPDA extends CAANSQLFacility implements TemplateDBAccessHandler{

	/**
	 * 検索条件等号
	 */
	private static final String SELECT_JOKEN_EQUAL = "1";

	/**
	 * 検索条件前方一致
	 */
	private static final String SELECT_JOKEN_LIKE = "2";

	/**
	 * コンストラクタ
	 */
	public JSYejbECK0281B001TPDA()	{
	}
	
	/**
	*   ECK0281B001_SQLF<br>
	*   @param inMsg    入力値の格納されたCBSMsg <br>
	*   @return void
	*/
	public void invoke(CAANMsg inMsg,AgentDispatchContext inContext){
		
		// コネクション
		Connection con1 = null;
		
		// プリペアステートメント
		PreparedStatement pstmt = null;
		
		// リザルトセット
		ResultSet rsltQuery = null;
		
		/******************** 
		 * SQL文の作成
		 ********************/

		try{
			
			//コネクション取得
			con1 = JSYejbConnection.getConnection(AC0091ETMsg.getTableName());
			
			
			// SQL文_基本部1
			StringBuffer sql_Buff = new StringBuffer();
			sql_Buff.append(" SELECT ")
					.append(" 		CK0281.MIKMCST_NO ")
					.append(" 		,CK0281.MIKMCST_ADD_DTM ")
					.append(" 		,SUBSTRB(CK0281.UPD_DTM, 1, 14) AS MIKMCST_UPD_DTM ")
					.append(" 		,CK0281.NM_KANA ")
					.append(" 		,CK0281.NM_KANJI ")
					.append(" 		,CK0281.BIRTHD ")
					.append(" 		,CK0281.MLAD ")
					.append(" 		,CK0281.TELNO ")
					.append(" 		,CK0281.PCD ")
					.append(" 		,CK0281.AD ")
// ANK-3795-06-00 ADD START
					.append(" 		,CK0281.CHANNEL_1 ")
					.append(" 		,CK0281.CHANNEL_2 ")
					.append(" 		,CK0281.CHANNEL_3 ")
					.append(" 		,CK0281.TRACD_LMT_CD ")
					.append(" 		,CK0281.HANRO_LMT_RLS_YM ")
// ANK-3795-06-00 ADD END
					.append(" FROM ")
					.append(" 		CK_T_MIKMCST CK0281 ");
			// SQL文_個別部1
			if ( "1".equals( inMsg.getObject(ECK0281B001CBSMsg.FUNC_CODE).toString() ) ) {
				sql_Buff.append(" WHERE ")
						.append(" 		1 = 1");
				// ＫＥＹ＿登録日時（から）がNULL または 空文字の場合
				if (inMsg.getObject(ECK0281B001CBSMsg.KEY_ENTRYTIMEFROM) == null
						|| "".equals(inMsg.getObject(ECK0281B001CBSMsg.KEY_ENTRYTIMEFROM)))
				{
					// なにもしない
				}
				// ＫＥＹ＿登録日時（から）が設定ありの場合
				else
				{
					sql_Buff.append(" AND		CK0281.MIKMCST_ADD_DTM > ? ");
				}
				// ＫＥＹ＿登録日時（まで）がNULL または 空文字の場合
				if (inMsg.getObject(ECK0281B001CBSMsg.KEY_ENTRYTIMETO) == null
						|| "".equals(inMsg.getObject(ECK0281B001CBSMsg.KEY_ENTRYTIMETO)))
				{
					// なにもしない
				}
				// ＫＥＹ＿登録日時（まで）が設定ありの場合
				else
				{
					sql_Buff.append(" AND		CK0281.MIKMCST_ADD_DTM < ? ");
				}
				// 従業員番号が設定されている場合
				if (inMsg.containsKeyOfMsgData(ECK0281B001CBSMsg.KEY_ID))
				{
					sql_Buff.append(" AND		EXISTS	( ")
							.append(" 					SELECT ")
							.append(" 							1 ")
							.append(" 					FROM ")
							.append(" 							CK_T_MIKMCST_UPD_RK CK0291 ")
							.append(" 					WHERE ")
							.append(" 							CK0281.MIKMCST_NO = CK0291.MIKMCST_NO ")
							.append(" 					AND		CK0291.MK_FLG = '0' ")
							// 従業員番号
							.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ID, SELECT_JOKEN_EQUAL, " 					AND		CK0291.WORKER_NO "))
							.append(" 				) ");
				}
						// 氏名（カナ）
				sql_Buff.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_NAMEKANA, SELECT_JOKEN_LIKE, " AND		CK0281.NM_KANA "))
						// 氏名（漢字）
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_NAME, SELECT_JOKEN_LIKE, " AND		CK0281.NM_KANJI "))
						// 生年月日
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_BIRTHDATE, SELECT_JOKEN_EQUAL, " AND		CK0281.BIRTHD "))
						// メールアドレス
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_MAILADDRESS, SELECT_JOKEN_EQUAL, " AND		CK0281.MLAD "))
						// 電話番号
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_TELEPHONENUMBER, SELECT_JOKEN_EQUAL, " AND		CK0281.TELNO "))
						// 郵便番号
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ZIPCODE, SELECT_JOKEN_EQUAL, " AND		CK0281.PCD "))
						// 住所
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ADDRESS, SELECT_JOKEN_LIKE, " AND		CK0281.AD "))
						// チャネル1
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_CHANNEL1, SELECT_JOKEN_EQUAL, " AND		CK0281.CHANNEL_1 "))
						// チャネル2
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_CHANNEL2, SELECT_JOKEN_EQUAL, " AND		CK0281.CHANNEL_2 "))
						// チャネル3
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_CHANNEL3, SELECT_JOKEN_EQUAL, " AND		CK0281.CHANNEL_3 "))
						// 取扱コード制限コード
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_AGENCYCODELIM, SELECT_JOKEN_EQUAL, " AND		CK0281.TRACD_LMT_CD "))
						// 商談ステータス
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_NEGOTIATIONSTATUS, SELECT_JOKEN_EQUAL, " AND		CK0281.SHODAN_STAT_CD "))
						// 成約見込コード
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_REALIZATIONPOSSIBILITY, SELECT_JOKEN_EQUAL, " AND		CK0281.SEIYK_MIKOMI_CD "))
						// ご利用場所形態コード
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_USEADDRESSFORM, SELECT_JOKEN_EQUAL, " AND		CK0281.USE_PLACE_FORM_CD "))
						// 項目1
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM001, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_1 "))
						// 項目2
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM002, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_2 "))
						// 項目3
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM003, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_3 "))
						// 項目4
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM004, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_4 "))
						// 項目5
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM005, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_5 "))
						// 項目6
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM006, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_6 "))
						// 項目7
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM007, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_7 "))
						// 項目8
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM008, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_8 "))
						// 項目9
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM009, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_9 "))
						// 項目10
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM010, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_10 "))
						// 項目11
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM011, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_11 "))
						// 項目12
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM012, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_12 "))
						// 項目13
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM013, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_13 "))
						// 項目14
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM014, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_14 "))
						// 項目15
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM015, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_15 "))
						// 項目16
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM016, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_16 "))
						// 項目17
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM017, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_17 "))
						// 項目18
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM018, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_18 "))
						// 項目19
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM019, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_19 "))
						// 項目20
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM020, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_20 "))
						// 項目21
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM021, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_21 "))
						// 項目22
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM022, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_22 "))
						// 項目23
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM023, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_23 "))
						// 項目24
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM024, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_24 "))
						// 項目25
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM025, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_25 "))
						// 項目26
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM026, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_26 "))
						// 項目27
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM027, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_27 "))
						// 項目28
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM028, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_28 "))
						// 項目29
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM029, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_29 "))
						// 項目30
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM030, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_30 "))
						// 項目31
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM031, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_31 "))
						// 項目32
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM032, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_32 "))
						// 項目33
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM033, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_33 "))
						// 項目34
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM034, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_34 "))
						// 項目35
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM035, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_35 "))
						// 項目36
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM036, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_36 "))
						// 項目37
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM037, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_37 "))
						// 項目38
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM038, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_38 "))
						// 項目39
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM039, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_39 "))
						// 項目40
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM040, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_40 "))
						// 項目41
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM041, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_41 "))
						// 項目42
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM042, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_42 "))
						// 項目43
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM043, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_43 "))
						// 項目44
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM044, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_44 "))
						// 項目45
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM045, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_45 "))
						// 項目46
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM046, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_46 "))
						// 項目47
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM047, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_47 "))
						// 項目48
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM048, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_48 "))
						// 項目49
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM049, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_49 "))
						// 項目50
						.append(setWhereJoken(inMsg, ECK0281B001CBSMsg.KEY_ITEM050, SELECT_JOKEN_EQUAL, " AND		CK0281.KMK_50 "))
						.append(" AND		CK0281.MK_FLG = '0' ");
// ANK-3867-00-00 ADD START
				// ＫＥＹ＿次回対応予定日時（から）がNULL または 空文字の場合
				if (inMsg.getObject(ECK0281B001CBSMsg.KEY_NEXTSUPPORTDATEFROM) == null
						|| "".equals(inMsg.getObject(ECK0281B001CBSMsg.KEY_NEXTSUPPORTDATEFROM)))
				{
					// なにもしない
				}
				// 次回対応予定日時（から）が設定ありの場合
				else
				{
					sql_Buff.append(" AND		SUBSTR(CK0281.KMK_13,0,8) >= ? ");
				}
				// 次回対応予定日時（まで）がNULL または 空文字の場合
				if (inMsg.getObject(ECK0281B001CBSMsg.KEY_NEXTSUPPORTDATETO) == null
						|| "".equals(inMsg.getObject(ECK0281B001CBSMsg.KEY_NEXTSUPPORTDATETO)))
				{
					// なにもしない
				}
				// 次回対応予定日時（まで）が設定ありの場合
				else
				{
					sql_Buff.append(" AND		SUBSTR(CK0281.KMK_13,0,8) <= ? ");
				}
// ANK-3867-00-00 ADD END
			}

			//prepareStatementにSQL文をセット
			pstmt = con1.prepareStatement(sql_Buff.toString());

			//ログ出力(SQL文の出力)
			JSYejbLog.outlog(inContext, JSYejbLog.DBACCESS, this.getClass(), sql_Buff);

			// PreparedStatementの指定されたパラメータカラムに 指定された値を設定
			if ( "1".equals( inMsg.getString(ECK0281B001CBSMsg.FUNC_CODE) ) ) {
				// パラメータカウント
				int paramCnt = 1;
				// パラメータの設定(ＫＥＹ＿登録日時（から）を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ENTRYTIMEFROM, paramCnt);
				// パラメータの設定(ＫＥＹ＿登録日時（まで）を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ENTRYTIMETO, paramCnt);
				// パラメータの設定(ＫＥＹ＿従業員番号を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ID, paramCnt);
				// パラメータの設定(ＫＥＹ＿氏名（カナ）を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_NAMEKANA, paramCnt);
				// パラメータの設定(ＫＥＹ＿氏名（漢字）を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_NAME, paramCnt);
				// パラメータの設定(ＫＥＹ＿生年月日を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_BIRTHDATE, paramCnt);
				// パラメータの設定(ＫＥＹ＿メールアドレスを指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_MAILADDRESS, paramCnt);
				// パラメータの設定(ＫＥＹ＿電話番号を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_TELEPHONENUMBER, paramCnt);
				// パラメータの設定(ＫＥＹ＿郵便番号を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ZIPCODE, paramCnt);
				// パラメータの設定(ＫＥＹ＿住所を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ADDRESS, paramCnt);
				// パラメータの設定(ＫＥＹ＿チャネル１を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_CHANNEL1, paramCnt);
				// パラメータの設定(ＫＥＹ＿チャネル２を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_CHANNEL2, paramCnt);
				// パラメータの設定(ＫＥＹ＿チャネル３を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_CHANNEL3, paramCnt);
				// パラメータの設定(ＫＥＹ＿取扱コード制限を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_AGENCYCODELIM, paramCnt);
				// パラメータの設定(ＫＥＹ＿商談ステータスを指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_NEGOTIATIONSTATUS, paramCnt);
				// パラメータの設定(ＫＥＹ＿成約見込みを指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_REALIZATIONPOSSIBILITY, paramCnt);
				// パラメータの設定(ＫＥＹ＿ご利用場所形態を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_USEADDRESSFORM, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目１を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM001, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目２を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM002, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目３を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM003, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目４を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM004, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目５を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM005, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目６を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM006, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目７を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM007, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目８を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM008, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目９を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM009, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目１０を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM010, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目１１を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM011, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目１２を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM012, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目１３を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM013, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目１４を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM014, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目１５を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM015, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目１６を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM016, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目１７を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM017, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目１８を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM018, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目１９を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM019, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目２０を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM020, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目２１を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM021, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目２２を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM022, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目２３を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM023, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目２４を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM024, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目２５を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM025, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目２６を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM026, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目２７を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM027, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目２８を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM028, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目２９を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM029, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目３０を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM030, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目３１を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM031, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目３２を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM032, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目３３を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM033, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目３４を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM034, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目３５を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM035, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目３６を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM036, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目３７を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM037, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目３８を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM038, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目３９を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM039, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目４０を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM040, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目４１を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM041, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目４２を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM042, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目４３を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM043, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目４４を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM044, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目４５を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM045, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目４６を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM046, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目４７を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM047, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目４８を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM048, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目４９を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM049, paramCnt);
				// パラメータの設定(ＫＥＹ＿項目５０を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_ITEM050, paramCnt);
// ANK-3867-00-00 ADD START
				// パラメータの設定(ＫＥＹ＿次回対応予定日時（から）を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_NEXTSUPPORTDATEFROM, paramCnt);
				// パラメータの設定(ＫＥＹ＿次回対応予定日時（まで）を指定)
				paramCnt = setWhereValue(inMsg, pstmt, ECK0281B001CBSMsg.KEY_NEXTSUPPORTDATETO, paramCnt);
// ANK-3867-00-00 ADD END
			}
			
			// ResultSetの取得
			rsltQuery = pstmt.executeQuery();
			
			// ECK0281B001CBSMsgの明細にセットする項目
			String[] msgKeyList1 = {
					  ECK0281B001CBSMsg1List.POSSIBILITYCUSTOMERNO
					, ECK0281B001CBSMsg1List.ENTRYTIME
					, ECK0281B001CBSMsg1List.RENEWALTIME
					, ECK0281B001CBSMsg1List.NAMEKANA
					, ECK0281B001CBSMsg1List.NAME
					, ECK0281B001CBSMsg1List.BIRTHDATE
					, ECK0281B001CBSMsg1List.MAILADDRESS
					, ECK0281B001CBSMsg1List.TELEPHONENUMBER
					, ECK0281B001CBSMsg1List.ZIPCODE
					, ECK0281B001CBSMsg1List.ADDRESS
// ANK-3795-06-00 ADD START
					, ECK0281B001CBSMsg1List.CHANNEL1
					, ECK0281B001CBSMsg1List.CHANNEL2
					, ECK0281B001CBSMsg1List.CHANNEL3
					, ECK0281B001CBSMsg1List.AGENCYCODELIM
					, ECK0281B001CBSMsg1List.MARKETLIMRELEASE
// ANK-3795-06-00 ADD END
			};
			
			// 明細に処理結果(ResultSet)をマッピング
			CAANMsg[] outMsg1 = mapMessageList(rsltQuery,msgKeyList1,"eo.ejb.cbs.cbsmsg.ECK0281B001CBSMsg1List",0);
			// inMsg(CBSMsg)に明細をセット
			inMsg.set("ECK0281B001CBSMsg1List", outMsg1);
			

		} catch(SQLException e) {
			inMsg.set(ECK0281B001CBSMsg.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(ECK0281B001CBSMsg.STATUS, StatusCodes.FIND_DB_ERR);
				throw new CAANRuntimeException(e);
			}
		}
	}

	/**
	 * <p>
	 * 検索条件を設定する。
	 * </p>
	 * @param inMsg 入力値の格納されたCBSMsg
	 * @param inColum 検索条件の項目
	 * @param inJoken 1:「=」 2:「LIKE」
	 * @param inSql 編集を行う検索条件
	 * @return "IS NULL" または 検索条件設定結果の文字列
	 */
	private String setWhereJoken(CAANMsg inMsg, String inColum, String inJoken, String inSql)
	{
		// 入力された項目値を取得
		String setValue = (String)inMsg.getObject(inColum); 
		// リターン用変数
		String retVal = new String();
		// 検索条件の項目値が未設定の場合条件なし
		if (!inMsg.containsKeyOfMsgData(inColum))
		{
			retVal = "";
		}
		// 引数の値がNULL または 空文字の場合「IS NULL」を設定
		else if (setValue == null || "".equals(setValue))
		{
			retVal = inSql + " IS NULL ";	
		}
		// 引数の値がNULL または 空文字でない場合検索条件を設定
		else
		{
			// LIKE条件の場合
			if (SELECT_JOKEN_LIKE.equals(inJoken))
			{
				retVal = inSql + " LIKE ? || '%' ";
			}
			// EQUAL条件
			else if (SELECT_JOKEN_EQUAL.equals(inJoken))
			{
				retVal = inSql + " = ? ";
			}
		}
		return retVal;
	}

	/**
	 * <p>
	 * パラメータの設定を行う。
	 * </p>
	 * @param inMsg 入力値の格納されたCBSMsg
	 * @param pstmt プリペアステートメント
	 * @param inColum 検索条件の項目
	 * @param paramCnt パラメータのカウント
	 * @return paramCnt パラメータのカウント
	 * @exception SQLException
	 */
	private int setWhereValue(CAANMsg inMsg, PreparedStatement pstmt, String inColum, int paramCnt) throws SQLException
	{
		Object setObject = inMsg.getObject(inColum);
		// 検索条件の項目値が未設定 または 引数の値がNULL または 引数の値が空文字の場合
		if (!inMsg.containsKeyOfMsgData(inColum) || (String)setObject == null || "".equals((String)setObject))
		{
			// なにもしない
		}
		// 引数の値がNULL または 空文字でない場合検索条件の値を設定
		else
		{
			// パラメータの設定
			CAANJDBCUtil.setParam(pstmt, paramCnt++, setObject);
		}
		return paramCnt;
	}
}
