/*******************************************************************************
*	 All Rights reserved,Copyright (c) K-Opticom 
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JSYejbEKK0351B006TPDA
*	ソースファイル名：JSYejbEKK0351B006TPDA.java
*	作成者			：EK103139
*	日付			：2012年06月25日
*＜機能概要＞
*	オプションチャンネル受付履歴一覧照会テンプレートDBアクセス部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	ｖ1.00.00
*	 ｖ1.00.01	2013/05/27	FJ)古田		【IT2-2013-0000463】
*	 v6.00.00   2014/01/10  FJ）中井    【OM-2013-0000451】対応(全面書換)
*	 v8.00.00   2014/04/15  FJ）石橋    【OM-2014-0001502】対応
********************************************************************************/

package eo.ejb.cbs.sqlf;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.fujitsu.futurity.model.base.CAANJDBCUtil;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.base.CAANRuntimeException;
import com.fujitsu.futurity.model.base.CAANSQLFacility;
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.AgentDispatchContext;
import com.fujitsu.futurity.model.ejb.common.fw.TemplateDBAccessHandler;

import eo.common.constant.JPCModelConstant;
import eo.ejb.cbm.entity.KK0351ETMsg;
import eo.ejb.cbs.cbsmsg.EKK0351B006CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0351B006CBSMsg1List;
import eo.ejb.common.JKKModelCommon;
import eo.ejb.common.JKKejbPagingUtil;

/**
*
*  テンプレートDBアクセス部品　EKK0351B006_SQLF<br>
*  入力された項目からSQL文を動的に組み立て、<br>
*  検索結果をCBSMsgにセットします。<br>
*/
public class JSYejbEKK0351B006TPDA extends CAANSQLFacility implements TemplateDBAccessHandler{
	
//	/**
//	 * ＫＥＹ＿反映区分：1:未反映
//	 */
//	private static final String HANEI_KBN_MIHANEI = "1";
//	
//	/**
//	 * ＫＥＹ＿反映区分：2:反映済
//	 */
//	private static final String HANEI_KBN_HANEIZUMI = "2";
//	
//	/**
//	 * ＫＥＹ＿反映区分：3:取消済
//	 */
//	private static final String HANEI_KBN_TORIKESHIZUMI = "3";
//	
//	/**
//	 * ＫＥＹ＿オプションチャンネルオペレーション方法コード：1:自動
//	 */
//	private static final String OP_CHANNEL_OPRTN_WAY_CD_AUTO = "1";
//	
//	/**
//	 * ＫＥＹ＿オプションチャンネルオペレーション方法コード：2:手動
//	 */
//	private static final String OP_CHANNEL_OPRTN_WAY_CD_MANUAL = "2";
//	
	/**
	 * コンストラクタ
	 */
	public JSYejbEKK0351B006TPDA()	{
	}
	
	/**
	*   EKK0351B006_SQLF<br>
	*   @param inMsg    入力値の格納されたCBSMsg <br>
	*   @return void
	*/
	public void invoke(CAANMsg inMsg,AgentDispatchContext inContext){
		// コネクション
		Connection con1 = null;

		// プリペアステートメント
		PreparedStatement pstmt_Count = null;
		PreparedStatement pstmt_Page = null;

		// リザルトセット
		ResultSet rsltQuery_Count = null;
		ResultSet rsltQuery_Page = null;

		/******************** 
		 * SQL文の作成
		 ********************/
		//無効な検索パターンの場合、検索結果なしで処理を終了する。
		boolean[] chkRst = srchPtnChk(inMsg);
		if(!chkRst[0] && !chkRst[1])
		{
			inMsg.set(EKK0351B006CBSMsg.TOTAL_SEARCH_NUM, "0");   // 総検索件数
			inMsg.set(EKK0351B006CBSMsg.TOTAL_PAGE_NUM, "0");   // 総ページ数
			inMsg.set(EKK0351B006CBSMsg.SEARCH_ERR_FLG, JPCModelConstant.SEARCH_ERR_FLG_NODATA);
			return;
		}
		String mskmFormCd = inMsg.getString(EKK0351B006CBSMsg.KEY_MSKM_FORM_CD);
		String mskmSBtCd = inMsg.getString(EKK0351B006CBSMsg.KEY_MSKM_SBT_CD);

		try{
			
			//コネクション取得
			con1 = JSYejbConnection.getConnection(KK0351ETMsg.getTableName());
			
			// SQL文の作成(ページングヘッダ)
			// (1)
			StringBuffer sql_Buff1 = new StringBuffer();
			sql_Buff1
			.append(" SELECT * ")
			.append(" FROM ( SELECT ALL_SELECT.*, ROWNUM AS LINE ")
			.append("        FROM ( ");

			// SQL文の作成(COUNT用)
			// (2)
			StringBuffer sql_Buff2 = new StringBuffer();
			sql_Buff2
			.append(" SELECT COUNT(*) AS CNT ")
			.append(" FROM ( ");

			// SQL文の作成(項目取得用)
			// (3)
			StringBuffer sql_Buff3 = new StringBuffer();
			sql_Buff3
			.append(" SELECT EKK0351B006.MSKM_UK_DTM ")
			.append("      , EKK0351B006.OP_SVC_NM ")
			.append("      , EKK0351B006.MSKM_SBT_CD ")
			.append("      , EKK0351B006.OP_CHANNEL_OPRTN_WAY_CD ")
			.append("      , EKK0351B006.OP_SVC_KEI_STAT ")
			.append("      , EKK0351B006.SVC_STAYMD ")
			.append("      , EKK0351B006.SVC_STA_HMS ")
			.append("      , EKK0351B006.RSV_APLY_YMD ")
			.append("      , EKK0351B006.IDO_RSV_HANEI_YMD ")
			.append("      , CASE EKK0351B006.SVC_ENDYMD WHEN '20991231' THEN '' ELSE EKK0351B006.SVC_ENDYMD END AS SVC_ENDYMD")
			.append("      , EKK0351B006.SVC_END_HMS ")
			.append("      , EKK0351B006.IDO_RSV_STAT_CD ")
			.append("      , EKK0351B006.SYSID ")
			.append("      , EKK0351B006.SVC_KEI_NO ")
			.append("      , EKK0351B006.CUST_NM ")
			.append("      , EKK0351B006.KEISHA_TELNO ")
			.append("      , EKK0351B006.KIKI_SEIZO_NO_STB ")
			.append("      , EKK0351B006.TAKNKIKI_SBT_CD_STB ")
			.append("      , EKK0351B006.KIKI_SEIZO_NO_BCAS ")
			.append("      , EKK0351B006.KIKI_SEIZO_NO_CCAS ")
			.append("      , EKK0351B006.OP_SVC_KEI_NO ")
			.append("      , EKK0351B006.TAKNKIKI_MODEL_CD_STB ")
			.append(" FROM ( ");

			// SQL文の作成(FROM句、WHERE句)
			StringBuffer sql_Buff4 = new StringBuffer();

			if(chkRst[0])
			{
				// (4)
				sql_Buff4
				.append(" SELECT KK0351.ADD_DTM AS MSKM_UK_DTM")
				.append("      , KK0821.OP_SVC_NM ")
				.append("      , NULL AS MSKM_SBT_CD ")
				.append("      , KK0821.OP_CHANNEL_OPRTN_WAY_CD ")
				.append("      , KK0351.OP_SVC_KEI_STAT ");
				if("1".equals(mskmSBtCd))
				{
					sql_Buff4.append("      , NVL(KK0351.SVC_STAYMD, KK1681.RSV_APLY_YMD) AS SVC_STAYMD ");
				}
				else
				{
					sql_Buff4.append("      , NVL(NVL(KK0351.SVC_STAYMD, KK0351.SVC_STAYMD_BF), KK1681_ST.RSV_APLY_YMD) AS SVC_STAYMD ");
				}
				sql_Buff4.append("      , KK0351.SVC_STA_HMS ")
				.append("      , KK1681.RSV_APLY_YMD ")
				.append("      , KK1681.IDO_RSV_HANEI_YMD ");
				if(!"1".equals(mskmSBtCd))
				{
					sql_Buff4.append("      ,CASE  WHEN KK0351.SVC_ENDYMD IN('20991231', '') THEN  NVL(NVL( KK1681.IDO_RSV_HANEI_YMD, KK1681.RSV_APLY_YMD ),  KK0351.RSV_APLY_YMD) ELSE KK0351.SVC_ENDYMD END AS SVC_ENDYMD  ");
				}
				else
				{
					sql_Buff4.append("      , KK0351.SVC_ENDYMD ");
				}
				sql_Buff4.append("      , KK0351.SVC_END_HMS ")
				.append("      , KK0351.SYSID ")
				.append("      , KK0351.SVC_KEI_NO ")
				.append("      , CK0011.CUST_NM ")
				.append("      , CK0011.KEISHA_TELNO ")
				.append("      , KK0341_01.KIKI_SEIZO_NO AS KIKI_SEIZO_NO_STB ")
				.append("      , KK0341_01.TAKNKIKI_SBT_CD AS TAKNKIKI_SBT_CD_STB ")
				.append("      , NVL(( SELECT KK0341_02.KIKI_SEIZO_NO ")
				.append("          FROM   KK_T_KKTK_SVC_KEI KK0341_02 ")
				.append("          WHERE  KK0341_02.SVC_KEI_UCWK_NO = KK0351.SVC_KEI_UCWK_NO ")
				.append("          AND    KK0341_02.SVC_KEI_NO = KK0351.SVC_KEI_NO ")
				.append("          AND    KK0341_02.TAKNKIKI_SBT_CD = 'B0' ")
				/* ++++++++++ v8.00.00 追加開始 ++++++++++ */
				.append("          AND    KK0341_02.KKTK_SVC_KEI_STAT IN ( '030', '100' ) ")
				/* ++++++++++ v8.00.00 追加終了 ++++++++++ */
				.append("          AND    (KK0341_02.KKTK_SVC_KEI_NO, KK0341_02.RSV_APLY_YMD || KK0341_02.GENE_ADD_DTM) = ")
				.append("                 ( SELECT KK0341_02_GENE.KKTK_SVC_KEI_NO, MAX(KK0341_02_GENE.RSV_APLY_YMD || KK0341_02_GENE.GENE_ADD_DTM) ")
				.append("                   FROM   KK_T_KKTK_SVC_KEI KK0341_02_GENE ")
				.append("                   WHERE  KK0341_02_GENE.KKTK_SVC_KEI_NO = KK0341_02.KKTK_SVC_KEI_NO ")
				.append("                   AND    KK0341_02_GENE.RSV_APLY_YMD <= ? ")
				.append("                   AND    KK0341_02_GENE.RSV_APLY_CD = '2' ")
				.append("                   AND    KK0341_02_GENE.MK_FLG = '0' ")
				.append("                    GROUP BY KK0341_02_GENE.KKTK_SVC_KEI_NO ")
				.append("                 )), ")
				.append("      ( SELECT KK0381.RED_BCAS_NO ")
				.append("          FROM   KK_T_OPSVKEI_TV KK0381 ")
				.append("          WHERE  KK0381.OP_SVC_KEI_NO = KK0351.OP_SVC_KEI_NO ")
				.append("          AND    KK0381.GENE_ADD_DTM = ")
				.append("                 (SELECT MAX(KK0381_GENE.GENE_ADD_DTM) ")
				.append("                   FROM   KK_T_OPSVKEI_TV KK0381_GENE ")
				.append("                   WHERE  KK0381_GENE.OP_SVC_KEI_NO = KK0381.OP_SVC_KEI_NO ")
				.append("                   AND    KK0381_GENE.RSV_APLY_CD = '2' ")
				.append("                   AND    KK0381_GENE.MK_FLG = '0' ")
				.append("                    GROUP BY KK0381_GENE.OP_SVC_KEI_NO ")
				.append("                 ) )")
				.append("        ) AS KIKI_SEIZO_NO_BCAS ")
				.append("      , ( SELECT KK0341_03.KIKI_SEIZO_NO ")
				.append("          FROM   KK_T_KKTK_SVC_KEI KK0341_03 ")
				.append("          WHERE  KK0341_03.SVC_KEI_UCWK_NO = KK0351.SVC_KEI_UCWK_NO ")
				.append("          AND    KK0341_03.TAKNKIKI_SBT_CD = 'C0' ")
				.append("          AND    (KK0341_03.KKTK_SVC_KEI_NO, KK0341_03.RSV_APLY_YMD || KK0341_03.GENE_ADD_DTM) = ")
				.append("                 ( SELECT KK0341_03_GENE.KKTK_SVC_KEI_NO, MAX(KK0341_03_GENE.RSV_APLY_YMD || KK0341_03_GENE.GENE_ADD_DTM) ")
				.append("                   FROM   KK_T_KKTK_SVC_KEI KK0341_03_GENE ")
				.append("                   WHERE  KK0341_03_GENE.KKTK_SVC_KEI_NO = KK0341_03.KKTK_SVC_KEI_NO ")
				.append("                   AND    KK0341_03_GENE.RSV_APLY_YMD <= ? ")
				.append("                   AND    KK0341_03_GENE.RSV_APLY_CD = '2' ")
				.append("                   AND    KK0341_03_GENE.MK_FLG = '0' ")
				.append("                    GROUP BY KK0341_03_GENE.KKTK_SVC_KEI_NO ")
				.append("                 ) ")
				/* ++++++++++ v8.00.00 追加開始 ++++++++++ */
				.append("          AND KK0341_03.KKTK_SVC_KEI_STAT IN ( '030', '100' )")
				/* ++++++++++ v8.00.00 追加終了 ++++++++++ */
				.append("        ) AS KIKI_SEIZO_NO_CCAS ")
				.append("      , KK0351.OP_SVC_KEI_NO  ")
				.append("      , KK0341_01.TAKNKIKI_MODEL_CD AS TAKNKIKI_MODEL_CD_STB ")
				.append("      , KK1681.IDO_DIV AS IDO_DIV ")
				.append("      , KK1681.IDO_RSV_DTL_CD AS IDO_RSV_DTL_CD ")
				.append("      , KK1681.IDO_RSV_STAT_CD AS IDO_RSV_STAT_CD ")
				.append("      , KK0351.IDO_DIV AS IDO_DIV_OP ")
				.append(" FROM  (SELECT KK0351_B.* FROM (SELECT ")
				.append("        LAST_VALUE (ADD_UNYO_YMD IGNORE NULLS) OVER (PARTITION BY KK0351_A.OP_SVC_KEI_NO ORDER BY KK0351_A.GENE_ADD_DTM DESC, KK0351_A.ADD_DTM DESC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) AS ADD_UNYO_YMD")
				.append("       ,LAST_VALUE (ADD_DTM IGNORE NULLS) OVER (PARTITION BY KK0351_A.OP_SVC_KEI_NO ORDER BY KK0351_A.GENE_ADD_DTM DESC, KK0351_A.ADD_DTM DESC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) AS ADD_DTM")
				.append("       ,LAST_VALUE (ADD_TRN_ID IGNORE NULLS) OVER (PARTITION BY KK0351_A.OP_SVC_KEI_NO ORDER BY KK0351_A.GENE_ADD_DTM DESC, KK0351_A.ADD_DTM DESC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) AS ADD_TRN_ID")
				.append("       ,LEAD (SVC_STAYMD) OVER (PARTITION BY KK0351_A.OP_SVC_KEI_NO ORDER BY KK0351_A.GENE_ADD_DTM DESC, KK0351_A.ADD_DTM DESC) AS SVC_STAYMD_BF")
				.append("       ,KK0351_A.OP_SVC_CD ")
				.append("       ,KK0351_A.SYSID ")
				.append("       ,KK0351_A.IDO_DIV ")
				.append("       ,KK0351_A.SVC_KEI_NO ")
				.append("       ,KK0351_A.OP_SVC_KEI_NO ")
				.append("       ,KK0351_A.OP_SVC_KEI_STAT ")
				.append("       ,KK0351_A.SVC_STAYMD ")
				.append("       ,KK0351_A.SVC_STA_HMS ")
				.append("       ,KK0351_A.SVC_ENDYMD ")
				.append("       ,KK0351_A.SVC_END_HMS ")
				.append("       ,KK0351_A.SVC_KEI_UCWK_NO ")
				.append("       ,KK0351_A.RSV_APLY_YMD ")
				.append("       ,KK0351_A.RSV_APLY_CD ")
				.append("       ,KK0351_A.MK_FLG ")
				.append("       ,ROW_NUMBER() OVER (PARTITION BY OP_SVC_KEI_NO ORDER BY KK0351_A.GENE_ADD_DTM DESC, KK0351_A.ADD_DTM DESC) AS RNUM ")
				.append("       FROM (SELECT  ")
				.append("       KK0351_01.* FROM ")
				.append("       (SELECT KK0351_C.OP_SVC_KEI_NO  FROM  KK_T_OP_SVC_KEI KK0351_C  WHERE ");
				// 任意入力項目の条件文設定
				// 「ＫＥＹ＿申込形態コード」が設定されている場合のみ、検索条件を追加
				// 「ＫＥＹ＿申込受付年月日（ＦＲＯＭ）」が設定されている場合のみ、検索条件を追加
				if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_FROM))
				{
					sql_Buff4.append(" KK0351_C.ADD_UNYO_YMD >= ? AND ");
				}
				// 「ＫＥＹ＿申込受付年月日（ＴＯ）」が設定されている場合のみ、検索条件を追加
				if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_TO))
				{
					sql_Buff4.append(" KK0351_C.ADD_UNYO_YMD <= ? AND ");
				}
				if("01".equals(mskmFormCd))
				//Web
				{
					if("1".equals(mskmSBtCd))
					{
						sql_Buff4.append(" KK0351_C.ADD_TRN_ID = 'FUW06302' AND ");
					}
					else
					{
						sql_Buff4.append(" KK0351_C.ADD_TRN_ID = 'FUW06402' AND ");
					}
				}
				else if("02".equals(mskmFormCd))
				//Web以外
				{
					sql_Buff4.append(" KK0351_C.ADD_TRN_ID IN ('KKW00832','KKW02526') AND ");
				}
				
				// 「ＫＥＹ＿オプションサービスコード」が設定されている場合のみ、検索条件を追加
				if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_OP_SVC_CD))
				{
					sql_Buff4.append(" KK0351_C.OP_SVC_CD = ? AND ");
				}
				// 「ＫＥＹ＿SYSID」が設定されている場合のみ、検索条件を追加
				if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_SYSID))
				{
					sql_Buff4.append(" KK0351_C.SYSID = ? AND ");
				}
				sql_Buff4.append(strWhereBuilder1(inMsg,"3"));
				sql_Buff4.append("   KK0351_C.MK_FLG = '0' GROUP BY KK0351_C.OP_SVC_KEI_NO)")
				.append("   KK0351_00 INNER JOIN KK_T_OP_SVC_KEI KK0351_01 ON KK0351_01.OP_SVC_KEI_NO = KK0351_00.OP_SVC_KEI_NO ")
				.append("   ) KK0351_A WHERE KK0351_A.MK_FLG = '0') KK0351_B ")
				.append(" WHERE  ");
				//受付区分、処理方法、反映区分の設定を反映させる
				sql_Buff4.append(" KK0351_B.RNUM =1 AND");
				// 「ＫＥＹ＿申込受付年月日（ＦＲＯＭ）」が設定されている場合のみ、検索条件を追加
				if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_FROM))
				{
					sql_Buff4.append(" KK0351_B.ADD_UNYO_YMD >= ? AND ");
				}
				// 「ＫＥＹ＿申込受付年月日（ＴＯ）」が設定されている場合のみ、検索条件を追加
				if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_TO))
				{
					sql_Buff4.append(" KK0351_B.ADD_UNYO_YMD <= ? AND ");
				}
				sql_Buff4.append(strWhereBuilder1(inMsg,"0"));
				sql_Buff4.append(" KK0351_B.RSV_APLY_YMD <= ? AND ")
				.append("         KK0351_B.RSV_APLY_CD = '2' AND");
				// 「ＫＥＹ＿オプションサービスコード」が設定されている場合のみ、検索条件を追加
				if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_OP_SVC_CD))
				{
					sql_Buff4.append(" KK0351_B.OP_SVC_CD = ? AND ");
				}
				// 「ＫＥＹ＿SYSID」が設定されている場合のみ、検索条件を追加
				if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_SYSID))
				{
					sql_Buff4.append(" KK0351_B.SYSID = ? AND ");
				}
				if("01".equals(mskmFormCd))
				//Web
				{
					if("1".equals(mskmSBtCd))
					{
						sql_Buff4.append(" KK0351_B.ADD_TRN_ID = 'FUW06302' AND ");
					}
					else
					{
						sql_Buff4.append(" KK0351_B.ADD_TRN_ID = 'FUW06402' AND ");
					}
				}
				else if("02".equals(mskmFormCd))
				//Web以外
				{
					sql_Buff4.append(" KK0351_B.ADD_TRN_ID IN ('KKW00832','KKW02526') AND ");
				}
				sql_Buff4.append(" KK0351_B.MK_FLG = '0' ")
				.append("       ) KK0351 ")
				.append(" INNER JOIN KK_M_OP_SVC KK0821 ON KK0351.OP_SVC_CD = KK0821.OP_SVC_CD ")
				.append(" LEFT OUTER JOIN ")
				.append("        ( SELECT KK1681_01.IDO_DIV ")
				.append("               , KK1681_01.IDO_RSV_DTL_CD ")
				.append("               , KK1681_01.IDO_RSV_STAT_CD ")
				.append("               , KK1681_01.IDO_RSV_HANEI_YMD ")
				.append("               , KK1681_01.RSV_APLY_YMD ")
				.append("               , KK1681_01.OP_SVC_KEI_NO ")
				.append("          FROM   KK_T_IDO_RSV KK1681_01 ")
				.append("          WHERE  KK1681_01.IDO_RSV_STAT_CD IN ('00','01','03') AND ");
				//受付区分、処理方法、反映区分の設定を反映させる
				sql_Buff4.append( strWhereBuilder1(inMsg,"1"))
//				sql_Buff4.append("        KK1681_01.IDO_DIV IN ('00031','00055') AND ")
				.append("                 KK1681_01.MK_FLG = '0' ")
				.append("        ) KK1681 ON KK1681.OP_SVC_KEI_NO = KK0351.OP_SVC_KEI_NO ");
				if(!"1".equals(mskmSBtCd))
				{
					sql_Buff4.append(" LEFT OUTER JOIN ")
					.append("        ( SELECT  KK1681_02.OP_SVC_KEI_NO ")
					.append("          ,LAST_VALUE (KK1681_02.RSV_APLY_YMD IGNORE NULLS) OVER (PARTITION BY KK1681_02.OP_SVC_KEI_NO ORDER BY KK1681_02.ADD_DTM DESC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) AS RSV_APLY_YMD")
					.append("          ,ROW_NUMBER() OVER (PARTITION BY KK1681_02.OP_SVC_KEI_NO ORDER BY KK1681_02.ADD_DTM DESC) AS RNUM ")
					.append("          FROM   KK_T_IDO_RSV KK1681_02 ")
					.append("          WHERE  KK1681_02.IDO_RSV_STAT_CD = '02' AND ")
					.append("          KK1681_02.IDO_DIV IN ('00031','00055') AND ")
					.append("          KK1681_02.IDO_RSV_DTL_CD = '014' AND ")
					.append("          KK1681_02.MK_FLG = '0' ")
					.append("        ) KK1681_ST ON KK1681_ST.OP_SVC_KEI_NO = KK0351.OP_SVC_KEI_NO AND KK1681_ST.RNUM=1");
				}
				sql_Buff4.append(" LEFT OUTER JOIN ")
				.append("        ( SELECT KK0341_TMP.SVC_KEI_UCWK_NO ")
				.append("               , KK0341_TMP.SVC_KEI_NO ")
				.append("               , KK0341_TMP.KIKI_SEIZO_NO ")
				.append("               , KK0341_TMP.TAKNKIKI_SBT_CD ")
				.append("               , KK0341_TMP.TAKNKIKI_MODEL_CD ")
				.append("          FROM   KK_T_KKTK_SVC_KEI KK0341_TMP ")
				.append("          WHERE  KK0341_TMP.TAKNKIKI_SBT_CD = 'A0' ")
				/* ++++++++++ v8.00.00 追加開始 ++++++++++ */
				.append("          AND    KK0341_TMP.KKTK_SVC_KEI_STAT IN ( '030', '100' ) ")
				/* ++++++++++ v8.00.00 追加終了 ++++++++++ */
				.append("          AND    (KK0341_TMP.KKTK_SVC_KEI_NO, KK0341_TMP.RSV_APLY_YMD || KK0341_TMP.GENE_ADD_DTM) = ")
				.append("                 ( SELECT KK0341_TMP_GENE.KKTK_SVC_KEI_NO, MAX(KK0341_TMP_GENE.RSV_APLY_YMD || KK0341_TMP_GENE.GENE_ADD_DTM) ")
				.append("                   FROM   KK_T_KKTK_SVC_KEI KK0341_TMP_GENE ")
				.append("                   WHERE  KK0341_TMP_GENE.KKTK_SVC_KEI_NO = KK0341_TMP.KKTK_SVC_KEI_NO ")
				.append("                   AND    KK0341_TMP_GENE.RSV_APLY_YMD <= ? ")
				.append("                   AND    KK0341_TMP_GENE.RSV_APLY_CD = '2' ")
				.append("                   AND    KK0341_TMP_GENE.MK_FLG = '0' ")
				.append("                    GROUP BY KK0341_TMP_GENE.KKTK_SVC_KEI_NO ")
				.append("                 ) ")
				.append("        ) KK0341_01 ON KK0351.SVC_KEI_UCWK_NO = KK0341_01.SVC_KEI_UCWK_NO ")
				.append(" LEFT OUTER JOIN ")
				.append("        ( SELECT CK0011_TMP.SYSID ")
				.append("               , CK0011_TMP.CUST_NM ")
				.append("               , CK0011_TMP.CUST_KANA ")
				.append("               , CK0011_TMP.KEISHA_TELNO ")
				.append("          FROM   CK_T_CUST CK0011_TMP ")
				.append("          WHERE  (CK0011_TMP.SYSID, CK0011_TMP.RSV_APLY_YMD || CK0011_TMP.GENE_ADD_DTM) = ")
				.append("                 ( SELECT CK0011_TMP_GENE.SYSID, MAX(CK0011_TMP_GENE.RSV_APLY_YMD || CK0011_TMP_GENE.GENE_ADD_DTM) ")
				.append("                   FROM   CK_T_CUST CK0011_TMP_GENE ")
				.append("                   WHERE  CK0011_TMP_GENE.SYSID = CK0011_TMP.SYSID ")
				.append("                   AND    CK0011_TMP_GENE.RSV_APLY_YMD <= ? ")
				.append("                   AND    CK0011_TMP_GENE.RSV_APLY_CD = '2' ")
				.append("                   AND    CK0011_TMP_GENE.MK_FLG = '0' ")
				.append("                    GROUP BY CK0011_TMP_GENE.SYSID ")
				.append("                 ) ")
				.append("        ) CK0011 ON KK0351.SYSID = CK0011.SYSID ")
				.append(" WHERE ");
				// その他の条件文設定
				//受付区分、処理方法、反映区分の設定を反映させる
				sql_Buff4.append(strWhereBuilder1(inMsg,"2"));
				sql_Buff4.append("  (KK0821.OP_SVC_CD, KK0821.RSV_APLY_YMD || KK0821.GENE_ADD_DTM) = ")
				.append("     ( SELECT KK0821_GENE.OP_SVC_CD, MAX(KK0821_GENE.RSV_APLY_YMD || KK0821_GENE.GENE_ADD_DTM) ")
				.append("       FROM   KK_M_OP_SVC KK0821_GENE ")
				.append("       WHERE  KK0821_GENE.OP_SVC_CD = KK0821.OP_SVC_CD ")
				.append("       AND    KK0821_GENE.RSV_APLY_YMD <= ? ")
				.append("       AND    KK0821_GENE.MK_FLG = '0' ")
				.append("        GROUP BY KK0821_GENE.OP_SVC_CD ")
				.append("     ) ")
				.append(" AND KK0821.OP_CHANNEL_SBT_CD IN ('01','02')  ");
			}
			if(chkRst[1])
			{
				if(chkRst[0])
				{
					sql_Buff4
					.append(" UNION ALL ");
				}
				sql_Buff4
				.append(" SELECT KK1681.ADD_DTM AS MSKM_UK_DTM")
				.append("      , KK0821.OP_SVC_NM ")
				.append("      , NULL AS MSKM_SBT_CD ")
				.append("      , KK0821.OP_CHANNEL_OPRTN_WAY_CD ")
				.append("      , KK0351.OP_SVC_KEI_STAT ");
				if("1".equals(mskmSBtCd))
				{
					sql_Buff4.append("      , NVL(NVL(KK0351.SVC_STAYMD, KK1681.IDO_RSV_HANEI_YMD), KK1681.RSV_APLY_YMD) AS SVC_STAYMD ");
				}
				else
				{
					sql_Buff4.append("      , NVL(NVL(KK0351.SVC_STAYMD, KK0351.SVC_STAYMD_BF), KK1681_ST.RSV_APLY_YMD) AS SVC_STAYMD ");
				}
				sql_Buff4.append("      , KK0351.SVC_STA_HMS ")
				.append("      , KK1681.RSV_APLY_YMD ")
				.append("      , KK1681.IDO_RSV_HANEI_YMD ");
				if(!"1".equals(mskmSBtCd))
				{
					sql_Buff4.append("      ,CASE  WHEN KK0351.SVC_ENDYMD IN('20991231', '') THEN  NVL(NVL( KK1681.IDO_RSV_HANEI_YMD, KK1681.RSV_APLY_YMD ),  KK0351.RSV_APLY_YMD) ELSE KK0351.SVC_ENDYMD END AS SVC_ENDYMD  ");
				}
				else
				{
					sql_Buff4.append("      , KK0351.SVC_ENDYMD ");
				}
				sql_Buff4.append("      , KK0351.SVC_END_HMS ")
				.append("      , KK0351.SYSID ")
				.append("      , KK0351.SVC_KEI_NO ")
				.append("      , CK0011.CUST_NM ")
				.append("      , CK0011.KEISHA_TELNO ")
				.append("      , KK0341_01.KIKI_SEIZO_NO AS KIKI_SEIZO_NO_STB ")
				.append("      , KK0341_01.TAKNKIKI_SBT_CD AS TAKNKIKI_SBT_CD_STB ")
				.append("      , NVL(( SELECT KK0341_02.KIKI_SEIZO_NO ")
				.append("          FROM   KK_T_KKTK_SVC_KEI KK0341_02 ")
				.append("          WHERE  KK0341_02.SVC_KEI_UCWK_NO = KK0351.SVC_KEI_UCWK_NO ")
				.append("          AND    KK0341_02.TAKNKIKI_SBT_CD = 'B0' ")
				/* ++++++++++ v8.00.00 追加開始 ++++++++++ */
				.append("          AND    KK0341_02.KKTK_SVC_KEI_STAT IN ( '030', '100' ) ")
				/* ++++++++++ v8.00.00 追加終了 ++++++++++ */
				.append("          AND    (KK0341_02.KKTK_SVC_KEI_NO, KK0341_02.RSV_APLY_YMD || KK0341_02.GENE_ADD_DTM) = ")
				.append("                 ( SELECT KK0341_02_GENE.KKTK_SVC_KEI_NO, MAX(KK0341_02_GENE.RSV_APLY_YMD || KK0341_02_GENE.GENE_ADD_DTM) ")
				.append("                   FROM   KK_T_KKTK_SVC_KEI KK0341_02_GENE ")
				.append("                   WHERE  KK0341_02_GENE.KKTK_SVC_KEI_NO = KK0341_02.KKTK_SVC_KEI_NO ")
				.append("                   AND    KK0341_02_GENE.RSV_APLY_YMD <= ? ")
				.append("                   AND    KK0341_02_GENE.RSV_APLY_CD = '2' ")
				.append("                   AND    KK0341_02_GENE.MK_FLG = '0' ")
				.append("                    GROUP BY KK0341_02_GENE.KKTK_SVC_KEI_NO ")
				.append("                 )), ")
				.append("      ( SELECT KK0381.RED_BCAS_NO ")
				.append("          FROM   KK_T_OPSVKEI_TV KK0381 ")
				.append("          WHERE  KK0381.OP_SVC_KEI_NO = KK0351.OP_SVC_KEI_NO ")
				.append("          AND    KK0381.GENE_ADD_DTM = ")
				.append("                 (SELECT MAX(KK0381_GENE.GENE_ADD_DTM) ")
				.append("                   FROM   KK_T_OPSVKEI_TV KK0381_GENE ")
				.append("                   WHERE  KK0381_GENE.OP_SVC_KEI_NO = KK0381.OP_SVC_KEI_NO ")
				.append("                   AND    KK0381_GENE.RSV_APLY_CD = '2' ")
				.append("                   AND    KK0381_GENE.MK_FLG = '0' ")
				.append("                    GROUP BY KK0381_GENE.OP_SVC_KEI_NO ")
				.append("                 ) )")
				.append("        ) AS KIKI_SEIZO_NO_BCAS ")
				.append("      , ( SELECT KK0341_03.KIKI_SEIZO_NO ")
				.append("          FROM   KK_T_KKTK_SVC_KEI KK0341_03 ")
				.append("          WHERE  KK0341_03.SVC_KEI_UCWK_NO = KK0351.SVC_KEI_UCWK_NO ")
				.append("          AND    KK0341_03.TAKNKIKI_SBT_CD = 'C0' ")
				.append("          AND    (KK0341_03.KKTK_SVC_KEI_NO, KK0341_03.RSV_APLY_YMD || KK0341_03.GENE_ADD_DTM) = ")
				.append("                 ( SELECT KK0341_03_GENE.KKTK_SVC_KEI_NO, MAX(KK0341_03_GENE.RSV_APLY_YMD || KK0341_03_GENE.GENE_ADD_DTM) ")
				.append("                   FROM   KK_T_KKTK_SVC_KEI KK0341_03_GENE ")
				.append("                   WHERE  KK0341_03_GENE.KKTK_SVC_KEI_NO = KK0341_03.KKTK_SVC_KEI_NO ")
				.append("                   AND    KK0341_03_GENE.RSV_APLY_YMD <= ? ")
				.append("                   AND    KK0341_03_GENE.RSV_APLY_CD = '2' ")
				.append("                   AND    KK0341_03_GENE.MK_FLG = '0' ")
				.append("                    GROUP BY KK0341_03_GENE.KKTK_SVC_KEI_NO ")
				.append("                 ) ")
				/* ++++++++++ v8.00.00 追加開始 ++++++++++ */
				.append("          AND KK0341_03.KKTK_SVC_KEI_STAT IN ( '030', '100' )")
				/* ++++++++++ v8.00.00 追加終了 ++++++++++ */
				.append("        ) AS KIKI_SEIZO_NO_CCAS ")
				.append("      , KK0351.OP_SVC_KEI_NO  ")
				.append("      , KK0341_01.TAKNKIKI_MODEL_CD AS TAKNKIKI_MODEL_CD_STB ")
				.append("      , KK1681.IDO_DIV AS IDO_DIV ")
				.append("      , KK1681.IDO_RSV_DTL_CD AS IDO_RSV_DTL_CD ")
				.append("      , KK1681.IDO_RSV_STAT_CD AS IDO_RSV_STAT_CD ")
				.append("      , KK0351.IDO_DIV AS IDO_DIV_OP ")
				.append(" FROM  KK_T_IDO_RSV KK1681   ")
				.append(" INNER JOIN  (SELECT KK0351_B.* FROM (SELECT ")
				.append("        LAST_VALUE (ADD_DTM IGNORE NULLS) OVER (PARTITION BY KK0351_A.OP_SVC_KEI_NO ORDER BY KK0351_A.GENE_ADD_DTM DESC, KK0351_A.ADD_DTM DESC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) AS ADD_DTM")
				.append("       ,LAST_VALUE (ADD_TRN_ID IGNORE NULLS) OVER (PARTITION BY KK0351_A.OP_SVC_KEI_NO ORDER BY KK0351_A.GENE_ADD_DTM DESC, KK0351_A.ADD_DTM DESC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) AS ADD_TRN_ID")
				.append("       ,LEAD (SVC_STAYMD) OVER (PARTITION BY KK0351_A.OP_SVC_KEI_NO ORDER BY KK0351_A.GENE_ADD_DTM DESC, KK0351_A.ADD_DTM DESC ) AS SVC_STAYMD_BF")
				.append("       ,KK0351_A.OP_SVC_CD ")
				.append("       ,KK0351_A.SYSID ")
				.append("       ,KK0351_A.IDO_DIV ")
				.append("       ,KK0351_A.SVC_KEI_NO ")
				.append("       ,KK0351_A.OP_SVC_KEI_NO ")
				.append("       ,KK0351_A.OP_SVC_KEI_STAT ")
				.append("       ,KK0351_A.SVC_STAYMD ")
				.append("       ,KK0351_A.SVC_STA_HMS ")
				.append("       ,KK0351_A.SVC_ENDYMD ")
				.append("       ,KK0351_A.SVC_END_HMS ")
				.append("       ,KK0351_A.SVC_KEI_UCWK_NO ")
				.append("       ,KK0351_A.RSV_APLY_YMD ")
				.append("       ,KK0351_A.RSV_APLY_CD ")
				.append("       ,KK0351_A.MK_FLG ")
				.append("       ,ROW_NUMBER() OVER (PARTITION BY OP_SVC_KEI_NO ORDER BY KK0351_A.GENE_ADD_DTM DESC, KK0351_A.ADD_DTM DESC) AS RNUM ")
				.append("       FROM  KK_T_OP_SVC_KEI KK0351_A ")
				.append("       WHERE  ");
				sql_Buff4.append(strWhereBuilder2(inMsg,"2"));
				sql_Buff4.append(" KK0351_A.RSV_APLY_YMD <= ? AND ")
				.append("         KK0351_A.RSV_APLY_CD = '2' AND");
				// 「ＫＥＹ＿オプションサービスコード」が設定されている場合のみ、検索条件を追加
				if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_OP_SVC_CD))
				{
					sql_Buff4.append(" KK0351_A.OP_SVC_CD = ? AND ");
				}
				// 「ＫＥＹ＿SYSID」が設定されている場合のみ、検索条件を追加
				if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_SYSID))
				{
					sql_Buff4.append(" KK0351_A.SYSID = ? AND ");
				}
				sql_Buff4.append(" KK0351_A.MK_FLG = '0' ");
				sql_Buff4.append("   ) KK0351_B ")
				.append(" WHERE  ");
				//受付区分、処理方法、反映区分の設定を反映させる
				sql_Buff4.append(" KK0351_B.RNUM =1 AND");
				sql_Buff4.append(strWhereBuilder2(inMsg,"0"));
				sql_Buff4.append(" KK0351_B.RSV_APLY_YMD <= ? AND ")
				.append("         KK0351_B.RSV_APLY_CD = '2' AND");
				// 「ＫＥＹ＿オプションサービスコード」が設定されている場合のみ、検索条件を追加
				if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_OP_SVC_CD))
				{
					sql_Buff4.append(" KK0351_B.OP_SVC_CD = ? AND ");
				}
				// 「ＫＥＹ＿SYSID」が設定されている場合のみ、検索条件を追加
				if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_SYSID))
				{
					sql_Buff4.append(" KK0351_B.SYSID = ? AND ");
				}
				sql_Buff4.append(" KK0351_B.MK_FLG = '0' ")
				.append("       ) KK0351 ON KK0351.OP_SVC_KEI_NO = KK1681.OP_SVC_KEI_NO")
				.append(" INNER JOIN KK_M_OP_SVC KK0821 ON KK0351.OP_SVC_CD = KK0821.OP_SVC_CD ");
				if(!"1".equals(mskmSBtCd))
				{
					sql_Buff4.append(" LEFT OUTER JOIN ")
					.append("        ( SELECT  KK1681_02.OP_SVC_KEI_NO ")
					.append("          ,LAST_VALUE (KK1681_02.RSV_APLY_YMD IGNORE NULLS) OVER (PARTITION BY KK1681_02.OP_SVC_KEI_NO ORDER BY KK1681_02.ADD_DTM DESC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) AS RSV_APLY_YMD")
					.append("          ,ROW_NUMBER() OVER (PARTITION BY KK1681_02.OP_SVC_KEI_NO ORDER BY KK1681_02.ADD_DTM DESC) AS RNUM ")
					.append("          FROM   KK_T_IDO_RSV KK1681_02 ")
					.append("          WHERE  KK1681_02.IDO_RSV_STAT_CD = '02' AND ")
					.append("          KK1681_02.IDO_DIV IN ('00031','00055') AND ")
					.append("          KK1681_02.IDO_RSV_DTL_CD = '014' AND ")
					.append("          KK1681_02.MK_FLG = '0' ")
					.append("        ) KK1681_ST ON KK1681_ST.OP_SVC_KEI_NO = KK0351.OP_SVC_KEI_NO AND KK1681_ST.RNUM=1");
				}
				sql_Buff4.append(" LEFT OUTER JOIN ")
				.append("        ( SELECT KK0341_TMP.SVC_KEI_UCWK_NO ")
				.append("               , KK0341_TMP.KIKI_SEIZO_NO ")
				.append("               , KK0341_TMP.TAKNKIKI_SBT_CD ")
				.append("               , KK0341_TMP.TAKNKIKI_MODEL_CD ")
				.append("          FROM   KK_T_KKTK_SVC_KEI KK0341_TMP ")
				.append("          WHERE  KK0341_TMP.TAKNKIKI_SBT_CD = 'A0' ")
				/* ++++++++++ v8.00.00 追加開始 ++++++++++ */
				.append("          AND    KK0341_TMP.KKTK_SVC_KEI_STAT IN ( '030', '100' ) ")
				/* ++++++++++ v8.00.00 追加終了 ++++++++++ */
				.append("          AND    (KK0341_TMP.KKTK_SVC_KEI_NO, KK0341_TMP.RSV_APLY_YMD || KK0341_TMP.GENE_ADD_DTM) = ")
				.append("                 ( SELECT KK0341_TMP_GENE.KKTK_SVC_KEI_NO, MAX(KK0341_TMP_GENE.RSV_APLY_YMD || KK0341_TMP_GENE.GENE_ADD_DTM) ")
				.append("                   FROM   KK_T_KKTK_SVC_KEI KK0341_TMP_GENE ")
				.append("                   WHERE  KK0341_TMP_GENE.KKTK_SVC_KEI_NO = KK0341_TMP.KKTK_SVC_KEI_NO ")
				.append("                   AND    KK0341_TMP_GENE.RSV_APLY_YMD <= ? ")
				.append("                   AND    KK0341_TMP_GENE.RSV_APLY_CD = '2' ")
				.append("                   AND    KK0341_TMP_GENE.MK_FLG = '0' ")
				.append("                    GROUP BY KK0341_TMP_GENE.KKTK_SVC_KEI_NO ")
				.append("                 ) ")
				.append("        ) KK0341_01 ON KK0351.SVC_KEI_UCWK_NO = KK0341_01.SVC_KEI_UCWK_NO ")
				.append(" LEFT OUTER JOIN ")
				.append("        ( SELECT CK0011_TMP.SYSID ")
				.append("               , CK0011_TMP.CUST_NM ")
				.append("               , CK0011_TMP.CUST_KANA ")
				.append("               , CK0011_TMP.KEISHA_TELNO ")
				.append("          FROM   CK_T_CUST CK0011_TMP ")
				.append("          WHERE  (CK0011_TMP.SYSID, CK0011_TMP.RSV_APLY_YMD || CK0011_TMP.GENE_ADD_DTM) = ")
				.append("                 ( SELECT CK0011_TMP_GENE.SYSID, MAX(CK0011_TMP_GENE.RSV_APLY_YMD || CK0011_TMP_GENE.GENE_ADD_DTM) ")
				.append("                   FROM   CK_T_CUST CK0011_TMP_GENE ")
				.append("                   WHERE  CK0011_TMP_GENE.SYSID = CK0011_TMP.SYSID ")
				.append("                   AND    CK0011_TMP_GENE.RSV_APLY_YMD <= ? ")
				.append("                   AND    CK0011_TMP_GENE.RSV_APLY_CD = '2' ")
				.append("                   AND    CK0011_TMP_GENE.MK_FLG = '0' ")
				.append("                    GROUP BY CK0011_TMP_GENE.SYSID ")
				.append("                 ) ")
				.append("        ) CK0011 ON KK0351.SYSID = CK0011.SYSID ")
				.append(" WHERE ");
				// 任意入力項目の条件文設定
				//受付区分、処理方法、反映区分の設定を反映させる
				sql_Buff4.append(strWhereBuilder2(inMsg,"1"));
				// 「ＫＥＹ＿申込受付年月日（ＦＲＯＭ）」が設定されている場合のみ、検索条件を追加
				if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_FROM))
				{
					sql_Buff4.append(" KK1681.ADD_UNYO_YMD >= ? AND ");
				}
				// 「ＫＥＹ＿申込受付年月日（ＴＯ）」が設定されている場合のみ、検索条件を追加
				if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_TO))
				{
					sql_Buff4.append(" KK1681.ADD_UNYO_YMD <= ? AND ");
				}
				// 「ＫＥＹ＿申込形態コード」が設定されている場合のみ、検索条件を追加
				if("01".equals(mskmFormCd))
				//Web
				{
					if("1".equals(mskmSBtCd))
					{
						sql_Buff4.append(" KK1681.ADD_TRN_ID = 'FUW06302' AND ");
					}
					else
					{
						sql_Buff4.append(" KK1681.ADD_TRN_ID = 'FUW06402' AND ");
					}
				}
				else if("02".equals(mskmFormCd))
				//Web以外
				{
					sql_Buff4.append(" KK1681.ADD_TRN_ID IN ('KKW00832','KKW02526') AND ");
				}
				// その他の条件文設定
				sql_Buff4
				.append("  (KK0821.OP_SVC_CD, KK0821.RSV_APLY_YMD || KK0821.GENE_ADD_DTM) = ")
				.append("     ( SELECT KK0821_GENE.OP_SVC_CD, MAX(KK0821_GENE.RSV_APLY_YMD || KK0821_GENE.GENE_ADD_DTM) ")
				.append("       FROM   KK_M_OP_SVC KK0821_GENE ")
				.append("       WHERE  KK0821_GENE.OP_SVC_CD = KK0821.OP_SVC_CD ")
				.append("       AND    KK0821_GENE.RSV_APLY_YMD <= ? ")
				.append("       AND    KK0821_GENE.MK_FLG = '0' ")
				.append("        GROUP BY KK0821_GENE.OP_SVC_CD ")
				.append("     ) ")
				.append(" AND KK0821.OP_CHANNEL_SBT_CD IN ('01','02')  ");
			}
			
			sql_Buff4.append(" ) EKK0351B006 ");

			// SQL文の作成(ORDER BY句)
			// (5)
			StringBuffer sql_Buff5 = new StringBuffer();
			sql_Buff5
			.append(" ORDER BY EKK0351B006.MSKM_UK_DTM DESC ");

			// SQL文の作成(ページングフッタ)
			// (6)
			StringBuffer sql_Buff6 = new StringBuffer();
			sql_Buff6
			.append("             ) ALL_SELECT ")
			.append("      ) PAGE_SELECT ")
			.append("WHERE PAGE_SELECT.LINE BETWEEN ? AND ? ")
			.append("ORDER BY PAGE_SELECT.LINE ASC ");

			// SQL文の組立て(件数取得用)
			// (2) + (4)
			StringBuffer sql_Count = new StringBuffer();
			sql_Count
			.append(sql_Buff2)
			.append(sql_Buff4);

			//prepareStatementにSQL文をセット
			pstmt_Count = con1.prepareStatement(sql_Count.toString());

			//ログ出力(SQL文の出力)
			JSYejbLog.outlog(inContext, JSYejbLog.DBACCESS, this.getClass(), sql_Count);

			// PreparedStatementの指定されたパラメータカラムに 指定された値を設定
			if ( "1".equals( inMsg.getString(EKK0351B006CBSMsg.FUNC_CODE) ) ) {
				// パラメータのカウント
				int iPCnt1 = 0;
				// システム日付を取得
				String opeDate = JKKModelCommon.getOpeDate(inMsg);
				
				if(chkRst[0])
				{
					// システム日付をパラメータに設定
					CAANJDBCUtil.setParam(pstmt_Count, ++iPCnt1, opeDate);
					CAANJDBCUtil.setParam(pstmt_Count, ++iPCnt1, opeDate);
					// 任意入力項目をパラメータに設定
					// 「ＫＥＹ＿申込受付年月日（ＦＲＯＭ）」が設定されている場合のみ、パラメータに設定
					if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_FROM))
					{
						// 時分秒を付与して設定
						String mskmUkDtmFrom = inMsg.getObject(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_FROM) + "";
						CAANJDBCUtil.setParam(pstmt_Count, ++iPCnt1, mskmUkDtmFrom);
					}
					// 「ＫＥＹ＿申込受付年月日（ＴＯ）」が設定されている場合のみ、パラメータに設定
					if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_TO))
					{
						// 時分秒を付与して設定
						String mskmUkDtmTo = inMsg.getObject(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_TO) + "";
						CAANJDBCUtil.setParam(pstmt_Count, ++iPCnt1, mskmUkDtmTo);
					}
					// 「ＫＥＹ＿オプションサービスコード」が設定されている場合のみ、パラメータに設定
					if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_OP_SVC_CD))
					{
						CAANJDBCUtil.setParam(pstmt_Count, ++iPCnt1, inMsg.getObject(EKK0351B006CBSMsg.KEY_OP_SVC_CD));
					}
					// 「ＫＥＹ＿SYSID」が設定されている場合のみ、パラメータに設定
					if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_SYSID))
					{
						CAANJDBCUtil.setParam(pstmt_Count, ++iPCnt1, inMsg.getObject(EKK0351B006CBSMsg.KEY_SYSID));
					}
					// 「ＫＥＹ＿申込受付年月日（ＦＲＯＭ）」が設定されている場合のみ、パラメータに設定
					if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_FROM))
					{
						// 時分秒を付与して設定
						String mskmUkDtmFrom = inMsg.getObject(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_FROM) + "";
						CAANJDBCUtil.setParam(pstmt_Count, ++iPCnt1, mskmUkDtmFrom);
					}
					// 「ＫＥＹ＿申込受付年月日（ＴＯ）」が設定されている場合のみ、パラメータに設定
					if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_TO))
					{
						// 時分秒を付与して設定
						String mskmUkDtmTo = inMsg.getObject(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_TO) + "";
						CAANJDBCUtil.setParam(pstmt_Count, ++iPCnt1, mskmUkDtmTo);
					}
					CAANJDBCUtil.setParam(pstmt_Count, ++iPCnt1, opeDate);
					// 「ＫＥＹ＿オプションサービスコード」が設定されている場合のみ、パラメータに設定
					if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_OP_SVC_CD))
					{
						CAANJDBCUtil.setParam(pstmt_Count, ++iPCnt1, inMsg.getObject(EKK0351B006CBSMsg.KEY_OP_SVC_CD));
					}
					// 「ＫＥＹ＿SYSID」が設定されている場合のみ、パラメータに設定
					if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_SYSID))
					{
						CAANJDBCUtil.setParam(pstmt_Count, ++iPCnt1, inMsg.getObject(EKK0351B006CBSMsg.KEY_SYSID));
					}
					// システム日付をパラメータに設定
					CAANJDBCUtil.setParam(pstmt_Count, ++iPCnt1, opeDate);
					CAANJDBCUtil.setParam(pstmt_Count, ++iPCnt1, opeDate);
					CAANJDBCUtil.setParam(pstmt_Count, ++iPCnt1, opeDate);
				}
				if(chkRst[1])
				{
					CAANJDBCUtil.setParam(pstmt_Count, ++iPCnt1, opeDate);
					CAANJDBCUtil.setParam(pstmt_Count, ++iPCnt1, opeDate);
					CAANJDBCUtil.setParam(pstmt_Count, ++iPCnt1, opeDate);
					// 任意入力項目をパラメータに設定
					// 「ＫＥＹ＿オプションサービスコード」が設定されている場合のみ、パラメータに設定
					if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_OP_SVC_CD))
					{
						CAANJDBCUtil.setParam(pstmt_Count, ++iPCnt1, inMsg.getObject(EKK0351B006CBSMsg.KEY_OP_SVC_CD));
					}
					// 「ＫＥＹ＿SYSID」が設定されている場合のみ、パラメータに設定
					if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_SYSID))
					{
						CAANJDBCUtil.setParam(pstmt_Count, ++iPCnt1, inMsg.getObject(EKK0351B006CBSMsg.KEY_SYSID));
					}
					CAANJDBCUtil.setParam(pstmt_Count, ++iPCnt1, opeDate);
					if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_OP_SVC_CD))
					{
						CAANJDBCUtil.setParam(pstmt_Count, ++iPCnt1, inMsg.getObject(EKK0351B006CBSMsg.KEY_OP_SVC_CD));
					}
					// 「ＫＥＹ＿SYSID」が設定されている場合のみ、パラメータに設定
					if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_SYSID))
					{
						CAANJDBCUtil.setParam(pstmt_Count, ++iPCnt1, inMsg.getObject(EKK0351B006CBSMsg.KEY_SYSID));
					}
					CAANJDBCUtil.setParam(pstmt_Count, ++iPCnt1, opeDate);
					CAANJDBCUtil.setParam(pstmt_Count, ++iPCnt1, opeDate);
					// 「ＫＥＹ＿申込受付年月日（ＦＲＯＭ）」が設定されている場合のみ、パラメータに設定
					if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_FROM))
					{
						// 時分秒を付与して設定
						String mskmUkDtmFrom = inMsg.getObject(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_FROM) + "";
						CAANJDBCUtil.setParam(pstmt_Count, ++iPCnt1, mskmUkDtmFrom);
					}
					// 「ＫＥＹ＿申込受付年月日（ＴＯ）」が設定されている場合のみ、パラメータに設定
					if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_TO))
					{
						// 時分秒を付与して設定
						String mskmUkDtmTo = inMsg.getObject(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_TO) + "";
						CAANJDBCUtil.setParam(pstmt_Count, ++iPCnt1, mskmUkDtmTo);
					}
					// システム日付をパラメータに設定
					CAANJDBCUtil.setParam(pstmt_Count, ++iPCnt1, opeDate);
				}
			}

			// ResultSetの取得
			rsltQuery_Count = pstmt_Count.executeQuery();

			// 総検索件数を取得する
			long lDataCnt = 0L;
			if (rsltQuery_Count.next())
			{
				lDataCnt = rsltQuery_Count.getLong("CNT");
			}

			// 表示件数
			long lDispNum = inMsg.getStringAsLong(EKK0351B006CBSMsg.DISPLAY_NUM);
			// 表示ページ数
			long lDispPage = inMsg.getStringAsLong(EKK0351B006CBSMsg.DISPLAY_PAGE_NUM);
			// 総ページ数
			String strMaxPage = JKKejbPagingUtil.calcTotalPage(lDataCnt, lDispNum);

			// 共通部に値を設定する
			inMsg.set(EKK0351B006CBSMsg.TOTAL_SEARCH_NUM, String.valueOf(lDataCnt));   // 総検索件数
			inMsg.set(EKK0351B006CBSMsg.TOTAL_PAGE_NUM, strMaxPage);   // 総ページ数

			// SQL文の組立て(項目取得・ページング用)
			// (1) + (3) + (4) + (5) + (6)
			StringBuffer sql_Page = new StringBuffer();
			sql_Page
			.append(sql_Buff1)
			.append(sql_Buff3)
			.append(sql_Buff4)
			.append(sql_Buff5)
			.append(sql_Buff6);

			//prepareStatementにSQL文をセット
			pstmt_Page = con1.prepareStatement(sql_Page.toString());

			//ログ出力(SQL文の出力)
			JSYejbLog.outlog(inContext, JSYejbLog.DBACCESS, this.getClass(), sql_Page);

			// 検索対象行を算出する
			long[] lPages = JKKejbPagingUtil.calcSearchRows(lDispPage, lDispNum);
			long lRowSta = lPages[0];
			long lRowEnd = lPages[1];

			// PreparedStatementの指定されたパラメータカラムに 指定された値を設定
			if ( "1".equals( inMsg.getString(EKK0351B006CBSMsg.FUNC_CODE) ) ) {
				// パラメータのカウント
				int iPCnt2 = 0;
				// システム日付を取得
				String opeDate = JKKModelCommon.getOpeDate(inMsg);
				
				if(chkRst[0])
				{
					// システム日付をパラメータに設定
					CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, opeDate);
					CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, opeDate);
					// 任意入力項目をパラメータに設定
					// 「ＫＥＹ＿申込受付年月日（ＦＲＯＭ）」が設定されている場合のみ、パラメータに設定
					if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_FROM))
					{
						// 時分秒を付与して設定
						String mskmUkDtmFrom = inMsg.getObject(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_FROM) + "";
						CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, mskmUkDtmFrom);
					}
					// 「ＫＥＹ＿申込受付年月日（ＴＯ）」が設定されている場合のみ、パラメータに設定
					if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_TO))
					{
						// 時分秒を付与して設定
						String mskmUkDtmTo = inMsg.getObject(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_TO) + "";
						CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, mskmUkDtmTo);
					}
					// 「ＫＥＹ＿オプションサービスコード」が設定されている場合のみ、パラメータに設定
					if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_OP_SVC_CD))
					{
						CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, inMsg.getObject(EKK0351B006CBSMsg.KEY_OP_SVC_CD));
					}
					// 「ＫＥＹ＿SYSID」が設定されている場合のみ、パラメータに設定
					if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_SYSID))
					{
						CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, inMsg.getObject(EKK0351B006CBSMsg.KEY_SYSID));
					}
					// 「ＫＥＹ＿申込受付年月日（ＦＲＯＭ）」が設定されている場合のみ、パラメータに設定
					if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_FROM))
					{
						// 時分秒を付与して設定
						String mskmUkDtmFrom = inMsg.getObject(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_FROM) + "";
						CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, mskmUkDtmFrom);
					}
					// 「ＫＥＹ＿申込受付年月日（ＴＯ）」が設定されている場合のみ、パラメータに設定
					if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_TO))
					{
						// 時分秒を付与して設定
						String mskmUkDtmTo = inMsg.getObject(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_TO) + "";
						CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, mskmUkDtmTo);
					}
					CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, opeDate);
					// 「ＫＥＹ＿オプションサービスコード」が設定されている場合のみ、パラメータに設定
					if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_OP_SVC_CD))
					{
						CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, inMsg.getObject(EKK0351B006CBSMsg.KEY_OP_SVC_CD));
					}
					// 「ＫＥＹ＿SYSID」が設定されている場合のみ、パラメータに設定
					if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_SYSID))
					{
						CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, inMsg.getObject(EKK0351B006CBSMsg.KEY_SYSID));
					}
					// システム日付をパラメータに設定
					CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, opeDate);
					CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, opeDate);
					CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, opeDate);
				}
				if(chkRst[1])
				{
					CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, opeDate);
					CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, opeDate);
					CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, opeDate);
					// 任意入力項目をパラメータに設定
					// 「ＫＥＹ＿オプションサービスコード」が設定されている場合のみ、パラメータに設定
					if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_OP_SVC_CD))
					{
						CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, inMsg.getObject(EKK0351B006CBSMsg.KEY_OP_SVC_CD));
					}
					// 「ＫＥＹ＿SYSID」が設定されている場合のみ、パラメータに設定
					if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_SYSID))
					{
						CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, inMsg.getObject(EKK0351B006CBSMsg.KEY_SYSID));
					}
					CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, opeDate);
					if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_OP_SVC_CD))
					{
						CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, inMsg.getObject(EKK0351B006CBSMsg.KEY_OP_SVC_CD));
					}
					// 「ＫＥＹ＿SYSID」が設定されている場合のみ、パラメータに設定
					if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_SYSID))
					{
						CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, inMsg.getObject(EKK0351B006CBSMsg.KEY_SYSID));
					}
					CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, opeDate);
					CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, opeDate);
					// 「ＫＥＹ＿申込受付年月日（ＦＲＯＭ）」が設定されている場合のみ、パラメータに設定
					if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_FROM))
					{
						// 時分秒を付与して設定
						String mskmUkDtmFrom = inMsg.getObject(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_FROM) + "";
						CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, mskmUkDtmFrom);
					}
					// 「ＫＥＹ＿申込受付年月日（ＴＯ）」が設定されている場合のみ、パラメータに設定
					if (!inMsg.isNull(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_TO))
					{
						// 時分秒を付与して設定
						String mskmUkDtmTo = inMsg.getObject(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_TO) + "";
						CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, mskmUkDtmTo);
					}
					// システム日付をパラメータに設定
					CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, opeDate);
				}

				// 共通
				// パラメータの設定(検索開始行を指定)
				CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, lRowSta);
				// パラメータの設定(検索終了行を指定)
				CAANJDBCUtil.setParam(pstmt_Page, ++iPCnt2, lRowEnd);
			}

			// ResultSetの取得
			rsltQuery_Page = pstmt_Page.executeQuery();

			// EKK0351B006CBSMsgの明細にセットする項目
			String[] msgKeyList1 = {
					  EKK0351B006CBSMsg1List.MSKM_UK_DTM
					, EKK0351B006CBSMsg1List.OP_SVC_NM
					, EKK0351B006CBSMsg1List.MSKM_SBT_CD
					, EKK0351B006CBSMsg1List.OP_CHANNEL_OPRTN_WAY_CD
					, EKK0351B006CBSMsg1List.OP_SVC_KEI_STAT
					, EKK0351B006CBSMsg1List.SVC_STAYMD
					, EKK0351B006CBSMsg1List.SVC_STA_HMS
					, EKK0351B006CBSMsg1List.RSV_APLY_YMD
					, EKK0351B006CBSMsg1List.IDO_RSV_HANEI_YMD
					, EKK0351B006CBSMsg1List.SVC_ENDYMD
					, EKK0351B006CBSMsg1List.SVC_END_HMS
					, EKK0351B006CBSMsg1List.IDO_RSV_STAT_CD
					, EKK0351B006CBSMsg1List.SYSID
					, EKK0351B006CBSMsg1List.SVC_KEI_NO
					, EKK0351B006CBSMsg1List.CUST_NM
					, EKK0351B006CBSMsg1List.KEISHA_TELNO
					, EKK0351B006CBSMsg1List.KIKI_SEIZO_NO_STB
					, EKK0351B006CBSMsg1List.TAKNKIKI_SBT_CD_STB
					, EKK0351B006CBSMsg1List.KIKI_SEIZO_NO_BCAS
					, EKK0351B006CBSMsg1List.KIKI_SEIZO_NO_CCAS
					, EKK0351B006CBSMsg1List.OP_SVC_KEI_NO
					, EKK0351B006CBSMsg1List.TAKNKIKI_MODEL_CD_STB
			};

			// 明細に処理結果(ResultSet)をマッピング
			CAANMsg[] outMsg1 = mapMessageList(rsltQuery_Page,msgKeyList1,"eo.ejb.cbs.cbsmsg.EKK0351B006CBSMsg1List",0);

			// 取得結果が0件の場合は表示ページ該当なしエラー
			if (0 >= outMsg1.length)
			{
				inMsg.set(EKK0351B006CBSMsg.SEARCH_ERR_FLG, JPCModelConstant.SEARCH_ERR_FLG_NODATA);
				return;
			}

			// inMsg(CBSMsg)に明細をセット
			inMsg.set("EKK0351B006CBSMsg1List", outMsg1);

		} catch(SQLException e) {
			inMsg.set(EKK0351B006CBSMsg.STATUS, StatusCodes.FIND_DB_ERR);
			throw new CAANRuntimeException(e);
		} finally {
			// 資源の解放
			try{
				if(rsltQuery_Count != null)
				{
					rsltQuery_Count.close();
				}
				if(rsltQuery_Page != null)
				{
					rsltQuery_Page.close();
				}
				if(pstmt_Count != null)
				{
					pstmt_Count.close();
				}
				if(pstmt_Page != null)
				{
					pstmt_Page.close();
				}
				if(con1 != null)
				{
					closeConnection(con1);
				}
			}catch(SQLException e){
				inMsg.set(EKK0351B006CBSMsg.STATUS, StatusCodes.FIND_DB_ERR);
				throw new CAANRuntimeException(e);
			}
		}
	}

//	/**
//	 * <p>
//	 * CBSMsgで渡された各入力値を元に、機能コード1のPreparedStatementのパラメータ設定を行います。
//	 * </p>
//	 * @param inCBSMsg 入力値の格納されたCBSMsg
//	 * @param pstmt プリペアステートメント
//	 * @param iPCnt パラメータのカウント
//	 * @return iPCnt パラメータのカウント
//	 * @exception SQLException
//	*/
//	private int setParam1(CAANMsg inCBSMsg, PreparedStatement pstmt, int iPCnt) throws SQLException
//	{
//		// 「ＫＥＹ＿申込受付年月日（ＦＲＯＭ）」が設定されている場合のみ、パラメータに設定
//		if (!inCBSMsg.isNull(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_FROM))
//		{
//			// 時分秒を付与して設定
//			String mskmUkDtmFrom = inCBSMsg.getObject(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_FROM) + "000000000";
//			CAANJDBCUtil.setParam(pstmt, ++iPCnt, mskmUkDtmFrom);
//		}
//		// 「ＫＥＹ＿申込受付年月日（ＴＯ）」が設定されている場合のみ、パラメータに設定
//		if (!inCBSMsg.isNull(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_TO))
//		{
//			// 時分秒を付与して設定
//			String mskmUkDtmTo = inCBSMsg.getObject(EKK0351B006CBSMsg.KEY_MSKM_UK_YMD_TO) + "235959999";
//			CAANJDBCUtil.setParam(pstmt, ++iPCnt, mskmUkDtmTo);
//		}
//		// 「ＫＥＹ＿オプションサービスコード」が設定されている場合のみ、パラメータに設定
//		if (!inCBSMsg.isNull(EKK0351B006CBSMsg.KEY_OP_SVC_CD))
//		{
//			CAANJDBCUtil.setParam(pstmt, ++iPCnt, inCBSMsg.getObject(EKK0351B006CBSMsg.KEY_OP_SVC_CD));
//		}
//		// 「ＫＥＹ＿SYSID」が設定されている場合のみ、パラメータに設定
//		if (!inCBSMsg.isNull(EKK0351B006CBSMsg.KEY_SYSID))
//		{
//			CAANJDBCUtil.setParam(pstmt, ++iPCnt, inCBSMsg.getObject(EKK0351B006CBSMsg.KEY_SYSID));
//		}
//
//		return iPCnt;
//	}
	/**
	 * <p>
	 * CBSMsgで渡された各入力値を元に、機能コード1のSQLの条件部分を組みたてます。
	 * </p>
	 * @param inCBSMsg 入力値の格納されたCBSMsg
	 * @return sbf inCBSMsgを元に組み立てられた検索条件
	 */
	private String strWhereBuilder1(CAANMsg inMsg, String sqlFlg)
	{
		StringBuffer sbf0 = new StringBuffer();
		StringBuffer sbf1 = new StringBuffer();
		StringBuffer sbf2 = new StringBuffer();
		StringBuffer sbf3 = new StringBuffer();
		StringBuffer sbf4 = new StringBuffer();
		// 「ＫＥＹ＿申込種別コード」が設定されている場合のみ、検索条件を追加
		String mskmSbtCd = inMsg.getString(EKK0351B006CBSMsg.KEY_MSKM_SBT_CD);
		String opChannelOprtnWayCd = inMsg.getString(EKK0351B006CBSMsg.KEY_OP_CHANNEL_OPRTN_WAY_CD);
		String haneiKbn = inMsg.getString(EKK0351B006CBSMsg.KEY_HANEI_KBN);
		String[] joken01 = new String[]{mskmSbtCd, opChannelOprtnWayCd, haneiKbn};
		if (jokenChk(joken01,"1","1","1"))
		{
			//申込、自動、未反映
			//パターン無
		}
		else if(jokenChk(joken01,"1","2","1"))
		{
			//申込、手動、未反映
			sbf0
			.append(" KK0351_B.OP_SVC_KEI_STAT = '010' AND ")
			.append(" KK0351_B.IDO_DIV = '00031' AND ");
			sbf2
			.append(" KK0821.OP_CHANNEL_OPRTN_WAY_CD IN('2','4')  ")
			.append(" AND ");
		}
		else if(jokenChk(joken01,"2","1","1"))
		{
			//パターン無
		}
		else if(jokenChk(joken01,"2","2","1"))
		{
			//解約、手動、未反映
			//パターン無
		}
		else if(jokenChk(joken01,"1","1","2"))
		{
			//申込、自動、反映済
			sbf0
			.append(" KK0351_B.OP_SVC_KEI_STAT  IN ('020','030','100') AND ");
			sbf1
			.append("  KK1681_01.IDO_DIV = '00031' AND ")
			.append("  KK1681_01.IDO_RSV_DTL_CD = '014' AND ")
			.append("  KK1681_01.IDO_RSV_STAT_CD IN ('00','01')  ")
			.append(" AND ");
			sbf2
			.append(" KK0821.OP_CHANNEL_OPRTN_WAY_CD IN('1','3')  ")
			.append(" AND ");
		}
		else if(jokenChk(joken01,"1","2","2"))
		{
			//申込、手動、反映済
			sbf0
			.append(" KK0351_B.OP_SVC_KEI_STAT IN ('020','030','100') AND ");
			sbf1
			.append("  KK1681_01.IDO_DIV = '00031' AND ")
			.append("  KK1681_01.IDO_RSV_DTL_CD = '014' AND ")
			.append("  KK1681_01.IDO_RSV_STAT_CD IN ('00','01') ")
			.append(" AND ");
			sbf2
			.append(" KK0821.OP_CHANNEL_OPRTN_WAY_CD IN('2','4')  ")
			.append(" AND ");
			}
		else if(jokenChk(joken01,"2","1","2"))
		{
			//解約、自動、反映済
			sbf0
			.append("  KK0351_B.OP_SVC_KEI_STAT IN ('910','920') AND");
			sbf3
			.append("  KK0351_C.OP_SVC_KEI_STAT IN ('910','920') AND");
			sbf1
			.append("  KK1681_01.IDO_DIV IN ('00031','00055') AND ")
			.append("  KK1681_01.IDO_RSV_DTL_CD = '016' AND ")
			.append("  KK1681_01.IDO_RSV_STAT_CD = '01' ")
			.append(" AND ");
			sbf2
			.append(" KK1681.IDO_DIV IS NULL  AND")
			.append(" KK0821.OP_CHANNEL_OPRTN_WAY_CD IN('1','2')  AND");
		}
		else if(jokenChk(joken01,"2","2","2"))
		{
			//解約、手動、反映済
			sbf0
			.append("  KK0351_B.OP_SVC_KEI_STAT IN ('910','920') AND");
			sbf3
			.append("  KK0351_C.OP_SVC_KEI_STAT IN ('910','920') AND");
			sbf1
			.append("  KK1681_01.IDO_DIV IN ('00031','00055') AND ")
			.append("  KK1681_01.IDO_RSV_DTL_CD = '016' AND ")
			.append("  KK1681_01.IDO_RSV_STAT_CD = '01'  ")
			.append(" AND ");
			sbf2
			.append(" KK1681.IDO_DIV IS NULL  AND")
			.append(" KK0821.OP_CHANNEL_OPRTN_WAY_CD IN ('3','4')  AND");
		}
		else if(jokenChk(joken01,"1","1","3"))
		{
			//申込、自動、取消済
			//パターン無
		}
		else if(jokenChk(joken01,"1","2","3"))
		{
			//申込、手動、取消済
			sbf0
			.append(" KK0351_B.OP_SVC_KEI_STAT = '920' AND")
			.append(" KK0351_B.IDO_DIV IN ('00031','00055') AND ");
			sbf2
			.append(" KK0821.OP_CHANNEL_OPRTN_WAY_CD IN('2','4') ")
			.append(" AND ");
		}
		else if(jokenChk(joken01,"2","1","3"))
		{
			//解約、自動、取消済
			//パターン無
		}
		else if(jokenChk(joken01,"2","2","3"))
		{
			//解約、手動、取消済
			//パターン無
		}
		if("0".equals(sqlFlg))
		{
			return sbf0.toString();
		}
		else if("1".equals(sqlFlg))
		{
			return sbf1.toString();
		}
		else if("2".equals(sqlFlg))
		{
			return sbf2.toString();
		}
		else if("3".equals(sqlFlg))
		{
			return sbf3.toString();
		}
		else
		{
			return sbf4.toString();
		}
	}
	/**
	 * <p>
	 * CBSMsgで渡された各入力値を元に、機能コード1のSQLの条件部分を組みたてます。
	 * </p>
	 * @param inCBSMsg 入力値の格納されたCBSMsg
	 * @return sbf inCBSMsgを元に組み立てられた検索条件
	 */
	private String strWhereBuilder2(CAANMsg inMsg, String sqlFlg)
	{
		StringBuffer sbf0 = new StringBuffer();
		StringBuffer sbf1 = new StringBuffer();
		StringBuffer sbf2 = new StringBuffer();
		// 「ＫＥＹ＿申込種別コード」が設定されている場合のみ、検索条件を追加
		String mskmSbtCd = inMsg.getString(EKK0351B006CBSMsg.KEY_MSKM_SBT_CD);
		String opChannelOprtnWayCd = inMsg.getString(EKK0351B006CBSMsg.KEY_OP_CHANNEL_OPRTN_WAY_CD);
		String haneiKbn = inMsg.getString(EKK0351B006CBSMsg.KEY_HANEI_KBN);
		String[] joken01 = new String[]{mskmSbtCd, opChannelOprtnWayCd, haneiKbn};
		if (jokenChk(joken01,"1","1","1"))
		{
			//申込、自動、未反映
			//パターン無
		}
		else if(jokenChk(joken01,"1","2","1"))
		{
			//申込、手動、未反映
			//パターン無
		}
		else if(jokenChk(joken01,"2","1","1"))
		{
			//解約、自動、未反映
			//パターン無
		}
		else if(jokenChk(joken01,"2","2","1"))
		{
			//解約、手動、未反映
			sbf0
			.append(" KK0351_B.OP_SVC_KEI_STAT = '100' AND ")
			.append(" KK0351_B.IDO_DIV = '00031' AND");
			sbf2
			.append(" KK0351_A.OP_SVC_KEI_STAT = '100' AND ")
			.append(" KK0351_A.IDO_DIV = '00031' AND");
			sbf1
			.append(" KK1681.IDO_DIV IN ('00031','00055') AND")
			.append(" KK1681.IDO_RSV_DTL_CD = '016' AND")
			.append(" KK1681.IDO_RSV_STAT_CD = '00' AND")
			.append(" KK0821.OP_CHANNEL_OPRTN_WAY_CD IN('3','4')  ")
			.append(" AND ");
		}
		else if(jokenChk(joken01,"1","1","2"))
		{
			//申込、自動、反映済
			//パターン無
		}
		else if(jokenChk(joken01,"1","2","2"))
		{
			//申込、手動、反映済
			//パターン無
		}
		else if(jokenChk(joken01,"2","1","2"))
		{
			//解約、自動、反映済
			sbf0
			.append(" KK0351_B.OP_SVC_KEI_STAT IN ('100','910') AND");
			sbf2
			.append(" KK0351_A.OP_SVC_KEI_STAT IN ('100','910') AND");
			sbf1
			.append(" KK1681.IDO_DIV IN ('00031','00055') AND ")
			.append(" KK1681.IDO_RSV_DTL_CD = '016' AND ")
			.append(" KK1681.IDO_RSV_STAT_CD IN ('00','01') AND ")
			.append(" KK0821.OP_CHANNEL_OPRTN_WAY_CD IN('1','2')  ")
			.append(" AND ");
		}
		else if(jokenChk(joken01,"2","2","2"))
		{
			//解約、手動、反映済
			sbf0
			.append(" KK0351_B.OP_SVC_KEI_STAT IN ('100','910') AND");
			sbf2
			.append(" KK0351_A.OP_SVC_KEI_STAT IN ('100','910') AND");
			sbf1
			.append(" KK1681.IDO_DIV IN ('00031','00055') AND ")
			.append(" KK1681.IDO_RSV_DTL_CD = '016' AND ")
			.append(" KK1681.IDO_RSV_STAT_CD IN ('00','01') AND ")
			.append(" KK0821.OP_CHANNEL_OPRTN_WAY_CD IN('3','4')  ")
			.append(" AND ");
		}
		else if(jokenChk(joken01,"1","1","3"))
		{
			//申込、自動、取消済
			//パターン無
		}
		else if(jokenChk(joken01,"1","2","3"))
		{
			//申込、手動、取消済
			//パターン無
		}
		else if(jokenChk(joken01,"2","1","3"))
		{
			//解約、自動、取消済
			//パターン無
		}
		else if(jokenChk(joken01,"2","2","3"))
		{
			//解約、手動、取消済
			//パターン無
		}
		if("0".equals(sqlFlg))
		{
			return sbf0.toString();
		}
		else if("1".equals(sqlFlg))
		{
			return sbf1.toString();
		}
		else
		{
			return sbf2.toString();
		}
	}
	/**
	 * <p>
	 * CBSMsgで渡された各入力値を元に、機能コード1のSQLの条件部分を組みたてます。
	 * </p>
	 * @param inCBSMsg 入力値の格納されたCBSMsg
	 * @return sbf inCBSMsgを元に組み立てられた検索条件
	 */
	private boolean[] srchPtnChk(CAANMsg inMsg)
	{
		boolean[] chkRst ={false, false};
		
		// 「ＫＥＹ＿申込種別コード」が設定されている場合のみ、検索条件を追加
		String mskmFormCd = inMsg.getString(EKK0351B006CBSMsg.KEY_MSKM_SBT_CD);
		String opChannelOprtnWayCd = inMsg.getString(EKK0351B006CBSMsg.KEY_OP_CHANNEL_OPRTN_WAY_CD);
		String haneiKbn = inMsg.getString(EKK0351B006CBSMsg.KEY_HANEI_KBN);
		String[] joken01 = new String[]{mskmFormCd, opChannelOprtnWayCd, haneiKbn};
		if (jokenChk(joken01,"1","1","1"))
		{
			//申込、自動、未反映
			//パターン無
		}
		else if(jokenChk(joken01,"1","2","1"))
		{
			//申込、手動、未反映
			chkRst[0] = true;
		}
		else if(jokenChk(joken01,"2","1","1"))
		{
			//解約、自動、未反映
			//パターン無
		}
		else if(jokenChk(joken01,"2","2","1"))
		{
			//解約、手動、未反映
			chkRst[1] = true;
		}
		else if(jokenChk(joken01,"1","1","2"))
		{
			//申込、自動、反映済
			chkRst[0] = true;
		}
		else if(jokenChk(joken01,"1","2","2"))
		{
			//申込、手動、反映済
			chkRst[0] = true;
		}
		else if(jokenChk(joken01,"2","1","2"))
		{
			//解約、自動、反映済
			chkRst[0] = true;
			chkRst[1] = true;
		}
		else if(jokenChk(joken01,"2","2","2"))
		{
			//解約、手動、反映済
			chkRst[0] = true;
			chkRst[1] = true;
		}
		else if(jokenChk(joken01,"1","1","3"))
		{
			//申込、自動、取消済
			//パターン無
		}
		else if(jokenChk(joken01,"1","2","3"))
		{
			//申込、手動、取消済
			chkRst[0] = true;
		}
		else if(jokenChk(joken01,"2","1","3"))
		{
			//解約、自動、取消済
			//パターン無
		}
		else if(jokenChk(joken01,"2","2","3"))
		{
			//解約、手動、取消済
			//パターン無
		}
		return chkRst;
	}

	/**
	 * <p>
	 * CBSMsgで渡された各入力値を元に、機能コード1のSQLの条件部分を組みたてます。
	 * </p>
	 * @param inCBSMsg 入力値の格納されたCBSMsg
	 * @return sbf inCBSMsgを元に組み立てられた検索条件
	 */
	private boolean jokenChk(String[] inMsg, String val1, String val2, String val3)
	{
		if(inMsg.length > 2 && val1.equals(inMsg[0]) && val2.equals(inMsg[1]) && val3.equals(inMsg[2]))
		{
			return true;
		}
		return false;
	}
	
}
