/*******************************************************************************
*	 All Rights reserved,Copyright (c) K-Opticom 
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JSYejbEKK0081B022TPDA
*	ソースファイル名：JSYejbEKK0081B022TPDA.java
*	作成者			：EK911015
*	日付			：2012年05月10日
*＜機能概要＞
*	初期設定サポート手配情報一覧照会テンプレートDBアクセス部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	ｖ1.00.00
*	 v4.00.00	2013/01/23	FJ)沖田		ST1-2012-0000846
*	ｖ4.00.01	2013/02/01	FJ）沖田 	IT1-2013-0000186
*	ｖ4.00.02	2013/02/06	FJ)坂本		ST1-2012-0000846
*
********************************************************************************/

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.EKK0081B022CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081B022CBSMsg1List;
import eo.ejb.cbm.entity.KK0081ETMsg;
import eo.ejb.common.JKKModelCommon;

/**
*
*  テンプレートDBアクセス部品　EKK0081B022_SQLF<br>
*  入力された項目からSQL文を動的に組み立て、<br>
*  検索結果をCBSMsgにセットします。<br>
*/
public class JSYejbEKK0081B022TPDA extends CAANSQLFacility implements TemplateDBAccessHandler{
	
	/**
	 * コンストラクタ
	 */
	public JSYejbEKK0081B022TPDA()	{
	}
	
	/**
	*   EKK0081B022_SQLF<br>
	*   @param inMsg    入力値の格納されたCBSMsg <br>
	*   @return void
	*/
	public void invoke(CAANMsg inMsg,AgentDispatchContext inContext){
		
		// コネクション
		Connection con1 = null;
		
		// プリペアステートメント
		PreparedStatement pstmt = null;
		
		// リザルトセット
		ResultSet rsltQuery = null;
		
		// パラメータのカウント
		int iPCnt = 1;

		/******************** 
		 * SQL文の作成
		 ********************/

		try{
			
			//コネクション取得
			con1 = JSYejbConnection.getConnection(KK0081ETMsg.getTableName());
			
			
			// SQL文_基本部1
			StringBuffer sql_Buff = new StringBuffer();
			sql_Buff.append(" SELECT ")
					.append("     KK0081.SVC_KEI_NO, ")
					.append("     KK0021.MSKMSHO_NO, ")
					.append("     CK0011.CUST_NM, ")
					.append("     KK0021.MSKM_YMD, ")
					.append("     KK0481_01.WRIB_SVC_KEI_NO, ")
					.append("     KK0481_01.SVC_DSL_YMD, ")
					.append("     KK0241_01.LOOPBACK_TEST_FIN_YMD, ")
					.append("     KK0081.SVC_STA_YMD, ")
					.append("     KK0631_01.SUPPORT_FIN_YMD, ")
					.append("     KK0631_01.SUPPORT_NO, ")
					.append("     KK0631_01.ADD_DTM, ")
					.append("     KK0631_01.UPD_DTM ")
					.append(" FROM  KK_T_SVC_KEI KK0081 ")
					.append(" INNER JOIN   ")
					.append("      (SELECT KK0241.SVC_KEI_NO, ")
					.append("              KK0251.LOOPBACK_TEST_FIN_YMD ")
					.append("       FROM   KK_T_KAISEN_TG_SVKEI KK0241  ")
					.append("       INNER JOIN KK_T_SVKEI_KAISEN_UW KK0251 ")
					.append("               ON KK0241.SVC_KEI_KAISEN_UCWK_NO = KK0251.SVC_KEI_KAISEN_UCWK_NO ")
					.append("       WHERE  KK0241.KAISEN_UCWK_USE_STAYMD <= ? ")
					.append("         AND  (KK0241.SVC_KEI_NO, KK0241.KAISEN_UCWK_USE_ENDYMD) =  ")
					.append("             (SELECT KK0241_TMP_01.SVC_KEI_NO, MAX(KK0241_TMP_01.KAISEN_UCWK_USE_ENDYMD) ")
					.append("              FROM   KK_T_KAISEN_TG_SVKEI KK0241_TMP_01 ")
					.append("              WHERE  KK0241_TMP_01.SVC_KEI_NO = KK0241.SVC_KEI_NO ")
					.append("              AND    KK0241_TMP_01.KAISEN_UCWK_USE_STAYMD <= ? ")
					.append("              AND    KK0241_TMP_01.MK_FLG = '0' ")
					.append("              GROUP BY KK0241_TMP_01.SVC_KEI_NO) ")
					.append("         AND  KK0241.KAISEN_UCWK_USE_STAYMD = ")
					.append("              (SELECT MAX(KK0241_GENE.KAISEN_UCWK_USE_STAYMD) ")
					.append("                 FROM KK_T_KAISEN_TG_SVKEI KK0241_GENE ")
					.append("                WHERE KK0241_GENE.SVC_KEI_NO = KK0241.SVC_KEI_NO ")
					.append("                  AND (KK0241_GENE.SVC_KEI_NO, KK0241_GENE.KAISEN_UCWK_USE_ENDYMD) =  ")
					.append("                      (SELECT KK0241_TMP_02.SVC_KEI_NO, MAX(KK0241_TMP_02.KAISEN_UCWK_USE_ENDYMD) ")
					.append("                       FROM   KK_T_KAISEN_TG_SVKEI KK0241_TMP_02 ")
					.append("                       WHERE  KK0241_TMP_02.SVC_KEI_NO = KK0241_GENE.SVC_KEI_NO ")
					.append("                       AND    KK0241_TMP_02.KAISEN_UCWK_USE_STAYMD <= ? ")
					.append("                       AND    KK0241_TMP_02.MK_FLG = '0' ")
					.append("                       GROUP BY KK0241_TMP_02.SVC_KEI_NO) ) ")
					.append("         AND  KK0251.SVC_KEI_KAISEN_UCWK_STAT IN ('010','100') ")
					.append("         AND  (KK0251.SVC_KEI_KAISEN_UCWK_NO, KK0251.GENE_ADD_DTM) = ")
					.append("              (SELECT KK0251_GENE.SVC_KEI_KAISEN_UCWK_NO, MAX(KK0251_GENE.GENE_ADD_DTM) ")
					.append("                 FROM KK_T_SVKEI_KAISEN_UW KK0251_GENE ")
					.append("                WHERE KK0251_GENE.SVC_KEI_KAISEN_UCWK_NO = KK0251.SVC_KEI_KAISEN_UCWK_NO ")
					.append("                  AND KK0251_GENE.MK_FLG = '0' ")
					.append("                GROUP BY KK0251_GENE.SVC_KEI_KAISEN_UCWK_NO) ")
					.append("      )  KK0241_01  ")
					.append("         ON  KK0241_01.SVC_KEI_NO = KK0081.SVC_KEI_NO ");
			if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_LOOP_TEST_FIN_YMD_FLG))
			{
				// ＫＥＹ＿ループバックテスト完了年月日フラグ＝"1"の場合、検索条件を追加
				if ("1".equals(inMsg.getObject(EKK0081B022CBSMsg.KEY_LOOP_TEST_FIN_YMD_FLG).toString()))
				{
					sql_Buff.append("         AND  (KK0241_01.LOOPBACK_TEST_FIN_YMD IS NULL ")
							.append("            OR KK0081.SVC_STA_YMD IS NULL) ");
				}
				// ＫＥＹ＿ループバックテスト完了年月日フラグ＝"2"の場合、検索条件を追加
				if ("2".equals(inMsg.getObject(EKK0081B022CBSMsg.KEY_LOOP_TEST_FIN_YMD_FLG).toString()))
				{
					// ＫＥＹ＿ループバックテスト完了年月日（自）（至）共に設定時、検索条件を追加
					if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_LOOP_TEST_FIN_YMD_FROM) && !inMsg.isNull(EKK0081B022CBSMsg.KEY_LOOP_TEST_FIN_YMD_TO))
					{
						sql_Buff.append("         AND  ((KK0241_01.LOOPBACK_TEST_FIN_YMD >= ?  AND  KK0241_01.LOOPBACK_TEST_FIN_YMD <= ?)      ")
								.append("            OR (KK0081.SVC_STA_YMD >= ?  AND  KK0081.SVC_STA_YMD  <= ?))                              ");
					}
					// ＫＥＹ＿ループバックテスト完了年月日（自）のみ設定時、検索条件を追加
					if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_LOOP_TEST_FIN_YMD_FROM) && inMsg.isNull(EKK0081B022CBSMsg.KEY_LOOP_TEST_FIN_YMD_TO))
					{
						sql_Buff.append("         AND  ((KK0241_01.LOOPBACK_TEST_FIN_YMD >= ?  ) ")
								.append("            OR (KK0081.SVC_STA_YMD >= ?)) ");
					}
					// ＫＥＹ＿ループバックテスト完了年月日（至）のみ設定時、検索条件を追加
					if (inMsg.isNull(EKK0081B022CBSMsg.KEY_LOOP_TEST_FIN_YMD_FROM) && !inMsg.isNull(EKK0081B022CBSMsg.KEY_LOOP_TEST_FIN_YMD_TO))
					{
						sql_Buff.append("         AND  ((KK0241_01.LOOPBACK_TEST_FIN_YMD <= ?) ")
								.append("            OR (KK0081.SVC_STA_YMD <= ?)) ");
					}
				}
			}
			sql_Buff.append(" INNER JOIN  KK_T_MSKM_DTL KK0021 ")
					.append("         ON  KK0021.MSKM_DTL_NO = KK0081.MSKM_DTL_NO ")
					.append(" INNER JOIN  CK_T_CUST CK0011 ")
					.append("         ON  CK0011.SYSID = KK0081.SYSID ")
					.append(" LEFT OUTER JOIN   ")
					.append("      (SELECT KK0631.SVC_KEI_NO, ")
					.append("              KK0631.SUPPORT_FIN_YMD, ")
					.append("              KK0631.SUPPORT_NO, ")
					.append("              KK0631.ADD_DTM, ")
					.append("              KK0631.UPD_DTM ")
					.append("       FROM   KK_T_SUPPORT KK0631  ")
					.append("       WHERE  KK0631.MK_FLG = '0' ")
					.append("         AND  KK0631.SUPPORT_CD = '04' ")
					.append("         AND  NVL(KK0631.SUPPORT_FIN_YMD,'20991231') || KK0631.SUPPORT_NO =  ")
					.append("             (SELECT  MAX(NVL(KK0631_GENE.SUPPORT_FIN_YMD,'20991231') || KK0631_GENE.SUPPORT_NO) AS KK0631_MAX ")
					.append("                FROM  KK_T_SUPPORT KK0631_GENE  ")
					.append("               WHERE  KK0631_GENE.SVC_KEI_NO = KK0631.SVC_KEI_NO  ");
					if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_FLG))
					{
						// ＫＥＹ＿サポート完了年月日フラグ＝"2"の場合、検索条件を追加
						if ("2".equals(inMsg.getObject(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_FLG).toString()))
						{
							// ＫＥＹ＿サポート完了年月日（自）設定時、検索条件を追加
							if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_FROM))
							{
								sql_Buff.append("   AND  KK0631_GENE.SUPPORT_FIN_YMD >= ? ");
							}
							// ＫＥＹ＿サポート完了年月日（至）設定時、検索条件を追加
							if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_TO))
							{
								sql_Buff.append("   AND  KK0631_GENE.SUPPORT_FIN_YMD <= ? ");
							}
						}
						// ＫＥＹ＿サポート完了年月日フラグ＝"3"の場合、検索条件を追加
						if ("3".equals(inMsg.getObject(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_FLG).toString()))
						{
							// ＫＥＹ＿サポート完了年月日（自）（至）共に設定時、検索条件を追加
							if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_FROM) && !inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_TO))
							{
								sql_Buff.append("   AND  (KK0631_GENE.SUPPORT_FIN_YMD IS NULL ")
										.append("      OR (KK0631_GENE.SUPPORT_FIN_YMD >= ?  AND  KK0631_GENE.SUPPORT_FIN_YMD <= ?)) ");
							}
							// ＫＥＹ＿サポート完了年月日（自）のみ設定時、検索条件を追加
							if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_FROM) && inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_TO))
							{
								sql_Buff.append("   AND  (KK0631_GENE.SUPPORT_FIN_YMD IS NULL ")
										.append("      OR (KK0631_GENE.SUPPORT_FIN_YMD >= ?)) ");
							}
							// ＫＥＹ＿サポート完了年月日（至）のみ設定時、検索条件を追加
							if (inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_FROM) && !inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_TO))
							{
								sql_Buff.append("   AND  (KK0631_GENE.SUPPORT_FIN_YMD IS NULL ")
										.append("      OR (KK0631_GENE.SUPPORT_FIN_YMD <= ?)) ");
							}
						}
					}
					if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_ADD_YMD_FLG))
					{
						// ＫＥＹ＿登録年月日フラグ（サポート）＝"2"または"3"の場合、検索条件を追加
						if ("2".equals(inMsg.getObject(EKK0081B022CBSMsg.KEY_SUPPORT_ADD_YMD_FLG).toString()) ||
								"3".equals(inMsg.getObject(EKK0081B022CBSMsg.KEY_SUPPORT_ADD_YMD_FLG).toString()))
						{
							// ＫＥＹ＿登録日年月日（サポート）（自）設定時、検索条件を追加
							if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_ADD_YMD_FROM))
							{
								sql_Buff.append("   AND  SUBSTR(KK0631_GENE.ADD_DTM,1,8) >= ? ");
							}
							// ＫＥＹ＿登録日年月日（サポート）（至）設定時、検索条件を追加
							if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_ADD_YMD_TO))
							{
								sql_Buff.append("   AND  SUBSTR(KK0631_GENE.ADD_DTM,1,8) <= ? ");
							}
						}
					}
			sql_Buff.append("         AND  KK0631.SUPPORT_CD = '04' ")
			        .append("                 AND  KK0631_GENE.MK_FLG = '0') ")
					.append("       ) KK0631_01  ")
					.append("              ON  KK0631_01.SVC_KEI_NO = KK0081.SVC_KEI_NO ")
					.append(" LEFT OUTER JOIN  ")
					.append("      (SELECT DECODE(KK0841_01.WRIB_TYPE_CD,'20',KK0481.WRIB_SVC_KEI_NO,NULL) AS WRIB_SVC_KEI_NO, ")
					.append("              KK0481.WRIB_SVC_TRGT_KEI_NO, ")
					.append("              KK0481.SVC_KEI_NO, ")
					.append("              KK0451.SVC_DSL_YMD ")
					.append("       FROM   KK_T_WRISVC_TG_KEI KK0481  ")
					.append("       INNER  JOIN KK_T_WRIB_SVC_KEI KK0451 ")
					.append("                ON KK0481.WRIB_SVC_KEI_NO = KK0451.WRIB_SVC_KEI_NO ")
					.append("       INNER  JOIN KK_M_WRIB_SVC KK0841_01 ")
					.append("                ON KK0841_01.WRIB_SVC_CD = KK0451.WRIB_SVC_CD ")
					.append("       WHERE  (KK0481.WRIB_SVC_KEI_NO, KK0481.WRIB_SVC_TRGT_KEI_NO, KK0481.GENE_ADD_DTM) =  ")
					.append("             (SELECT  KK0481_GENE.WRIB_SVC_KEI_NO, KK0481_GENE.WRIB_SVC_TRGT_KEI_NO, MAX(KK0481_GENE.GENE_ADD_DTM) ")
					.append("                FROM  KK_T_WRISVC_TG_KEI KK0481_GENE ")
					.append("               WHERE  KK0481_GENE.WRIB_SVC_KEI_NO = KK0481.WRIB_SVC_KEI_NO ")
					.append("                 AND  KK0481_GENE.WRIB_SVC_TRGT_KEI_NO = KK0481.WRIB_SVC_TRGT_KEI_NO ")
					.append("                 AND  KK0481_GENE.MK_FLG = '0' ")
					.append("               GROUP BY KK0481_GENE.WRIB_SVC_KEI_NO, KK0481_GENE.WRIB_SVC_TRGT_KEI_NO) ")
					.append("         AND  (KK0451.WRIB_SVC_KEI_NO, KK0451.RSV_APLY_YMD || KK0451.GENE_ADD_DTM) =  ")
					.append("             (SELECT  KK0451_GENE.WRIB_SVC_KEI_NO, MAX(KK0451_GENE.RSV_APLY_YMD || KK0451_GENE.GENE_ADD_DTM) AS KK0451_MAX ")
					.append("                FROM  KK_T_WRIB_SVC_KEI KK0451_GENE  ")
					.append("               WHERE  KK0451_GENE.WRIB_SVC_KEI_NO = KK0451.WRIB_SVC_KEI_NO  ")
					.append("                 AND  KK0451_GENE.RSV_APLY_YMD <= ?            ")
					.append("                 AND  KK0451_GENE.RSV_APLY_CD = '2'  ")
					.append("                 AND  KK0451_GENE.MK_FLG = '0' ")
					.append("               GROUP BY KK0451_GENE.WRIB_SVC_KEI_NO) ")
					.append("         AND  (KK0841_01.WRIB_SVC_CD, KK0841_01.RSV_APLY_YMD || KK0841_01.GENE_ADD_DTM) =  ")
					.append("             (SELECT  KK0841_GENE.WRIB_SVC_CD, MAX(KK0841_GENE.RSV_APLY_YMD || KK0841_GENE.GENE_ADD_DTM) AS KK0841_MAX ")
					.append("                FROM  KK_M_WRIB_SVC KK0841_GENE  ")
					.append("               WHERE  KK0841_GENE.WRIB_SVC_CD = KK0841_01.WRIB_SVC_CD  ")
					.append("                 AND  KK0841_GENE.RSV_APLY_YMD <= ? ")
					.append("                 AND  KK0841_GENE.MK_FLG = '0' ")
					.append("               GROUP BY KK0841_GENE.WRIB_SVC_CD) ")
					.append("         AND KK0451.SVC_DSL_YMD = ( ")
					.append("              SELECT  MAX(KK0451_01.SVC_DSL_YMD) ")
					.append("                FROM  KK_T_WRISVC_TG_KEI KK0481_02 ")
					.append("                INNER JOIN KK_T_WRIB_SVC_KEI KK0451_01 ")
					.append("                        ON KK0451_01.WRIB_SVC_KEI_NO = KK0481_02.WRIB_SVC_KEI_NO ")
					.append("               WHERE  KK0481_02.SVC_KEI_NO = KK0481.SVC_KEI_NO ")
					.append("                 AND  (KK0481_02.WRIB_SVC_KEI_NO, KK0481_02.WRIB_SVC_TRGT_KEI_NO, KK0481_02.GENE_ADD_DTM) =  ")
					.append("                      (SELECT  KK0481_GENE.WRIB_SVC_KEI_NO, KK0481_GENE.WRIB_SVC_TRGT_KEI_NO, MAX(KK0481_GENE.GENE_ADD_DTM) ")
					.append("                         FROM  KK_T_WRISVC_TG_KEI KK0481_GENE ")
					.append("                        WHERE  KK0481_GENE.WRIB_SVC_KEI_NO = KK0481_02.WRIB_SVC_KEI_NO ")
					.append("                          AND  KK0481_GENE.WRIB_SVC_TRGT_KEI_NO = KK0481_02.WRIB_SVC_TRGT_KEI_NO ")
					.append("                          AND  KK0481_GENE.MK_FLG = '0' ")
					.append("                        GROUP BY KK0481_GENE.WRIB_SVC_KEI_NO, KK0481_GENE.WRIB_SVC_TRGT_KEI_NO) ")
					.append("                 AND  (KK0451_01.WRIB_SVC_KEI_NO, KK0451_01.RSV_APLY_YMD || KK0451_01.GENE_ADD_DTM) = ")
					.append("                      (SELECT KK0451_02GENE.WRIB_SVC_KEI_NO, MAX(KK0451_02GENE.RSV_APLY_YMD || KK0451_02GENE.GENE_ADD_DTM) ")
					.append("                         FROM KK_T_WRIB_SVC_KEI KK0451_02GENE ")
					.append("                        WHERE KK0451_02GENE.WRIB_SVC_KEI_NO = KK0451_01.WRIB_SVC_KEI_NO ")
					.append("                          AND KK0451_02GENE.MK_FLG = '0' ")
					.append("                        GROUP BY KK0451_02GENE.WRIB_SVC_KEI_NO) ");
			if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_FAMIPA_UM_FLG))
			{
				// ＫＥＹ＿ファミリーパック有無フラグ＝"1"の場合、検索条件を追加
				if ("1".equals(inMsg.getObject(EKK0081B022CBSMsg.KEY_FAMIPA_UM_FLG).toString()))
				{
					sql_Buff.append("                  AND  EXISTS ( ")
					.append("                       SELECT 1 ")
					.append("                         FROM KK_M_WRIB_SVC KK0841 ")
					.append("                        WHERE KK0451_01.WRIB_SVC_CD = KK0841.WRIB_SVC_CD ")
					.append("                          AND  (KK0841.WRIB_SVC_CD, KK0841.RSV_APLY_YMD || KK0841.GENE_ADD_DTM) =  ")
					.append("                              (SELECT  KK0841_GENE.WRIB_SVC_CD, MAX(KK0841_GENE.RSV_APLY_YMD || KK0841_GENE.GENE_ADD_DTM) AS KK0841_MAX ")
					.append("                                 FROM  KK_M_WRIB_SVC KK0841_GENE  ")
					.append("                                WHERE  KK0841_GENE.WRIB_SVC_CD = KK0841.WRIB_SVC_CD  ")
					.append("                                  AND  KK0841_GENE.RSV_APLY_YMD <= ? ")
					.append("                                  AND  KK0841_GENE.MK_FLG = '0' ")
					.append("                                GROUP BY KK0841_GENE.WRIB_SVC_CD) ")
					.append("                          AND  KK0841.WRIB_TYPE_CD = '20'  ")
					.append("                       )       ");
					
				}
				// ＫＥＹ＿ファミリーパック有無フラグ＝"2"の場合、検索条件を追加
				if ("2".equals(inMsg.getObject(EKK0081B022CBSMsg.KEY_FAMIPA_UM_FLG).toString()))
				{
					sql_Buff.append("                  AND  NOT EXISTS ( ")
					.append("                       SELECT 1 ")
					.append("                         FROM KK_M_WRIB_SVC KK0841 ")
					.append("                        WHERE KK0451_01.WRIB_SVC_CD = KK0841.WRIB_SVC_CD ")
					.append("                          AND  (KK0841.WRIB_SVC_CD, KK0841.RSV_APLY_YMD || KK0841.GENE_ADD_DTM) =  ")
					.append("                              (SELECT  KK0841_GENE.WRIB_SVC_CD, MAX(KK0841_GENE.RSV_APLY_YMD || KK0841_GENE.GENE_ADD_DTM) AS KK0841_MAX ")
					.append("                                 FROM  KK_M_WRIB_SVC KK0841_GENE  ")
					.append("                                WHERE  KK0841_GENE.WRIB_SVC_CD = KK0841.WRIB_SVC_CD  ")
					.append("                                  AND  KK0841_GENE.RSV_APLY_YMD <= ? ")
					.append("                                  AND  KK0841_GENE.MK_FLG = '0' ")
					.append("                                GROUP BY KK0841_GENE.WRIB_SVC_CD) ")
					.append("                          AND  KK0841.WRIB_TYPE_CD = '20'  ")
					.append("                       )       ");
					
				}
			}
					sql_Buff.append("             ) ")
					.append("      ) KK0481_01  ")
					.append("               ON  KK0081.SVC_KEI_NO = KK0481_01.SVC_KEI_NO  ");
			// SQL文_個別部1
			if ("1".equals(inMsg.getObject(EKK0081B022CBSMsg.FUNC_CODE).toString()))
			{
 				sql_Buff.append(" WHERE  (KK0081.SVC_KEI_NO, KK0081.RSV_APLY_YMD || KK0081.GENE_ADD_DTM) =  ")
						.append("       (SELECT KK0081_GENE.SVC_KEI_NO, MAX(KK0081_GENE.RSV_APLY_YMD || KK0081_GENE.GENE_ADD_DTM)  ")
						.append("          FROM KK_T_SVC_KEI KK0081_GENE  ")
						.append("         WHERE KK0081_GENE.SVC_KEI_NO = KK0081.SVC_KEI_NO  ")
						.append("           AND KK0081_GENE.RSV_APLY_YMD <= ? ")
						.append("           AND KK0081_GENE.RSV_APLY_CD = '2'  ")
						.append("           AND KK0081_GENE.MK_FLG = '0'  ")
						.append("         GROUP BY KK0081_GENE.SVC_KEI_NO) ")
						.append("   AND  KK0081.SVC_KEI_STAT IN ('020','030','100','210') ")
						.append("   AND  (KK0021.MSKM_DTL_NO, KK0021.GENE_ADD_DTM) =  ")
						.append("       (SELECT  KK0021_GENE.MSKM_DTL_NO, MAX(KK0021_GENE.GENE_ADD_DTM)  ")
						.append("          FROM  KK_T_MSKM_DTL KK0021_GENE  ")
						.append("         WHERE  KK0021_GENE.MSKM_DTL_NO = KK0021.MSKM_DTL_NO  ")
						.append("           AND  KK0021_GENE.MK_FLG = '0'  ")
						.append("         GROUP BY KK0021_GENE.MSKM_DTL_NO) ")
						.append("   AND  (CK0011.SYSID, CK0011.RSV_APLY_YMD || CK0011.GENE_ADD_DTM) =  ")
						.append("       (SELECT  CK0011_GENE.SYSID, MAX(CK0011_GENE.RSV_APLY_YMD || CK0011_GENE.GENE_ADD_DTM)  ")
						.append("          FROM  CK_T_CUST CK0011_GENE  ")
						.append("         WHERE  CK0011_GENE.SYSID = CK0011.SYSID ")
						.append("           AND  CK0011_GENE.RSV_APLY_YMD <= ? ")
						.append("           AND  CK0011_GENE.RSV_APLY_CD = '2' ")
						.append("           AND  CK0011_GENE.MK_FLG = '0'  ")
						.append("         GROUP BY CK0011_GENE.SYSID)  ");
					// ＫＥＹ＿ファミリーパック有無フラグ＝設定時、検索条件を追加
					if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_FAMIPA_UM_FLG))
					{
						// ＫＥＹ＿ファミリーパック有無フラグ＝"1"の場合、検索条件を追加
						if ("1".equals(inMsg.getObject(EKK0081B022CBSMsg.KEY_FAMIPA_UM_FLG).toString()))
						{
							sql_Buff.append("   AND EXISTS ( ");
						}
						// ＫＥＹ＿ファミリーパック有無フラグ＝"2"の場合、検索条件を追加
						if ("2".equals(inMsg.getObject(EKK0081B022CBSMsg.KEY_FAMIPA_UM_FLG).toString()))
						{
							sql_Buff.append("   AND NOT EXISTS ( ");
						}
						sql_Buff.append("       SELECT 1 ")
								.append("         FROM  KK_T_WRIB_SVC_KEI KK0451 ")
								.append("        INNER  JOIN KK_T_WRISVC_TG_KEI KK0481  ")
								.append("                 ON KK0451.WRIB_SVC_KEI_NO = KK0481.WRIB_SVC_KEI_NO ")
								.append("        INNER  JOIN KK_M_WRIB_SVC KK0841 ")
								.append("                 ON KK0451.WRIB_SVC_CD = KK0841.WRIB_SVC_CD ")
								.append("                AND  (KK0841.WRIB_SVC_CD, KK0841.RSV_APLY_YMD || KK0841.GENE_ADD_DTM) =  ")
								.append("                    (SELECT  KK0841_GENE.WRIB_SVC_CD, MAX(KK0841_GENE.RSV_APLY_YMD || KK0841_GENE.GENE_ADD_DTM) AS KK0841_MAX ")
								.append("                       FROM  KK_M_WRIB_SVC KK0841_GENE  ")
								.append("                      WHERE  KK0841_GENE.WRIB_SVC_CD = KK0841.WRIB_SVC_CD  ")
								.append("                        AND  KK0841_GENE.RSV_APLY_YMD <= ? ")
								.append("                        AND  KK0841_GENE.MK_FLG = '0' ")
								.append("                      GROUP BY KK0841_GENE.WRIB_SVC_CD) ")
								.append("                AND  KK0841.WRIB_TYPE_CD = '20'  ")
								.append("        WHERE  (KK0481.WRIB_SVC_KEI_NO, KK0481.WRIB_SVC_TRGT_KEI_NO, KK0481.GENE_ADD_DTM) =  ")
								.append("              (SELECT  KK0481_GENE.WRIB_SVC_KEI_NO, KK0481_GENE.WRIB_SVC_TRGT_KEI_NO, MAX(KK0481_GENE.GENE_ADD_DTM) ")
								.append("                 FROM  KK_T_WRISVC_TG_KEI KK0481_GENE ")
								.append("                WHERE  KK0481_GENE.WRIB_SVC_KEI_NO = KK0481.WRIB_SVC_KEI_NO ")
								.append("                  AND  KK0481_GENE.WRIB_SVC_TRGT_KEI_NO = KK0481.WRIB_SVC_TRGT_KEI_NO ")
								.append("                  AND  KK0481_GENE.MK_FLG = '0' ")
								.append("                GROUP BY KK0481_GENE.WRIB_SVC_KEI_NO, KK0481_GENE.WRIB_SVC_TRGT_KEI_NO) ")
								.append("          AND  KK0481.SVC_KEI_NO = KK0481_01.SVC_KEI_NO ")
								.append("          AND  (KK0451.WRIB_SVC_KEI_NO, KK0451.RSV_APLY_YMD || KK0451.GENE_ADD_DTM) =  ")
								.append("              (SELECT  KK0451_GENE.WRIB_SVC_KEI_NO, MAX(KK0451_GENE.RSV_APLY_YMD || KK0451_GENE.GENE_ADD_DTM) AS KK0451_MAX ")
								.append("                 FROM  KK_T_WRIB_SVC_KEI KK0451_GENE  ")
								.append("                WHERE  KK0451_GENE.WRIB_SVC_KEI_NO = KK0451.WRIB_SVC_KEI_NO  ")
								.append("                  AND  KK0451_GENE.RSV_APLY_YMD <= ? ")
								.append("                  AND  KK0451_GENE.RSV_APLY_CD = '2'  ")
								.append("                  AND  KK0451_GENE.MK_FLG = '0' ")
								.append("                GROUP BY KK0451_GENE.WRIB_SVC_KEI_NO)  ")
								.append("       )       ");
					}
					// ＫＥＹ＿サービス契約番号設定時、検索条件を追加
					if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_SVC_KEI_NO))
					{
						sql_Buff.append("   AND  KK0081.SVC_KEI_NO = ? ");
					}
					// ＫＥＹ＿申込書番号設定時、検索条件を追加
					if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_MSKMSHO_NO))
					{
						sql_Buff.append("   AND  KK0021.MSKMSHO_NO = ? ");
					}
					if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_FLG))
					{
						// ＫＥＹ＿サポート完了年月日フラグ＝"1"の場合、検索条件を追加
						if ("1".equals(inMsg.getObject(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_FLG).toString()))
						{
							sql_Buff.append("   AND  KK0631_01.SUPPORT_FIN_YMD IS NULL ");
						}
						// ＫＥＹ＿サポート完了年月日フラグ＝"2"の場合、検索条件を追加
						if ("2".equals(inMsg.getObject(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_FLG).toString()))
						{
							// ＫＥＹ＿サポート完了年月日（自）設定時、検索条件を追加
							sql_Buff.append("   AND  KK0631_01.SUPPORT_NO IS NOT NULL ");
						}
						// ＫＥＹ＿サポート完了年月日フラグ＝"3"の場合、検索条件を追加
						if ("3".equals(inMsg.getObject(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_FLG).toString()))
						{
							sql_Buff.append("   AND NOT EXISTS ( ")
									.append("       SELECT 1 ")
									.append("         FROM  KK_T_SUPPORT KK0631 ")
									.append("        WHERE  KK0631.SVC_KEI_NO = KK0081.SVC_KEI_NO ")
									.append("          AND  KK0631.MK_FLG = '0' ")
									.append("          AND  KK0631_01.SUPPORT_NO IS NULL ");
									// ＫＥＹ＿サポート完了年月日（自）（至）共に設定時、検索条件を追加
							if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_FROM) && !inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_TO))
							{
								sql_Buff.append("      AND (KK0631.SUPPORT_FIN_YMD < ?  OR  KK0631.SUPPORT_FIN_YMD > ?)     ");
							}
							// ＫＥＹ＿サポート完了年月日（自）のみ設定時、検索条件を追加
							if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_FROM) && inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_TO))
							{
								sql_Buff.append("      AND (KK0631.SUPPORT_FIN_YMD < ?) ");
							}
							// ＫＥＹ＿サポート完了年月日（至）のみ設定時、検索条件を追加
							if (inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_FROM) && !inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_TO))
							{
								sql_Buff.append("      AND (KK0631.SUPPORT_FIN_YMD > ?) ");
							}
							sql_Buff.append("       )       ");
						}
					}
					if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_ADD_YMD_FLG))
					{
						// ＫＥＹ＿登録年月日フラグ（サポート）＝"1"の場合、検索条件を追加
						if ("1".equals(inMsg.getObject(EKK0081B022CBSMsg.KEY_SUPPORT_ADD_YMD_FLG).toString()))
						{
							sql_Buff.append("   AND  KK0631_01.ADD_DTM IS NULL ");
						}
						// ＫＥＹ＿登録年月日フラグ（サポート）＝"2"の場合、検索条件を追加
						if ("2".equals(inMsg.getObject(EKK0081B022CBSMsg.KEY_SUPPORT_ADD_YMD_FLG).toString()))
						{
							sql_Buff.append("   AND  KK0631_01.SUPPORT_NO IS NOT NULL ");
						}
						// ＫＥＹ＿登録年月日フラグ（サポート）＝"3"の場合、検索条件を追加
						if ("3".equals(inMsg.getObject(EKK0081B022CBSMsg.KEY_SUPPORT_ADD_YMD_FLG).toString()))
						{
							sql_Buff.append("   AND NOT EXISTS ( ")
									.append("       SELECT 1 ")
									.append("         FROM  KK_T_SUPPORT KK0631 ")
									.append("        WHERE  KK0631.SVC_KEI_NO = KK0081.SVC_KEI_NO ")
									.append("          AND  KK0631.MK_FLG = '0' ")
									.append("          AND  KK0631_01.SUPPORT_NO IS NULL ");
							// ＫＥＹ＿登録日年月日（サポート）（自）（至）共に設定時、検索条件を追加
							if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_ADD_YMD_FROM) && !inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_ADD_YMD_TO))
							{
								sql_Buff.append("      AND (SUBSTR(KK0631.ADD_DTM,1,8) < ?  OR  SUBSTR(KK0631.ADD_DTM,1,8) > ?)     ");
			}
							// ＫＥＹ＿登録日年月日（サポート）（自）のみ設定時、検索条件を追加
							if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_ADD_YMD_FROM) && inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_ADD_YMD_TO))
							{
								sql_Buff.append("      AND (SUBSTR(KK0631.ADD_DTM,1,8) < ?) ");
							}
							// ＫＥＹ＿登録日年月日（サポート）（至）のみ設定時、検索条件を追加
							if (inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_ADD_YMD_FROM) && !inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_ADD_YMD_TO))
							{
								sql_Buff.append("      AND (SUBSTR(KK0631.ADD_DTM,1,8) > ?) ");
							}
							sql_Buff.append("       )       ");
						}
					}
					sql_Buff.append(" ORDER BY KK0081.SVC_KEI_NO ASC ");
			}
			
			//prepareStatementにSQL文をセット
			pstmt = con1.prepareStatement(sql_Buff.toString());
			
			//ログ出力(SQL文の出力)
			JSYejbLog.outlog(inContext, JSYejbLog.DBACCESS, this.getClass(), sql_Buff);
			
			// PreparedStatementの指定されたパラメータカラムに 指定された値を設定
			if ("1".equals(inMsg.getString(EKK0081B022CBSMsg.FUNC_CODE)))
			{
				// パラメータの設定(運用日付を指定)
				CAANJDBCUtil.setParam(pstmt, iPCnt++, JKKModelCommon.getOpeDate(inMsg));
				// パラメータの設定(運用日付を指定)
				CAANJDBCUtil.setParam(pstmt, iPCnt++, JKKModelCommon.getOpeDate(inMsg));
				// パラメータの設定(運用日付を指定)
				CAANJDBCUtil.setParam(pstmt, iPCnt++, JKKModelCommon.getOpeDate(inMsg));
				if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_LOOP_TEST_FIN_YMD_FLG))
				{
					// ＫＥＹ＿ループバックテスト完了年月日フラグ＝"2"の場合、パラメータを追加
					if ("2".equals(inMsg.getObject(EKK0081B022CBSMsg.KEY_LOOP_TEST_FIN_YMD_FLG).toString()))
					{
						// ＫＥＹ＿ループバックテスト完了年月日（自）（至）共に設定時、パラメータを追加
						if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_LOOP_TEST_FIN_YMD_FROM) && !inMsg.isNull(EKK0081B022CBSMsg.KEY_LOOP_TEST_FIN_YMD_TO))
						{
				// パラメータの設定(ＫＥＹ＿ループバックテスト完了年月日（自）を指定)
							CAANJDBCUtil.setParam(pstmt, iPCnt++, inMsg.getObject(EKK0081B022CBSMsg.KEY_LOOP_TEST_FIN_YMD_FROM));
				// パラメータの設定(ＫＥＹ＿ループバックテスト完了年月日（至）を指定)
							CAANJDBCUtil.setParam(pstmt, iPCnt++, inMsg.getObject(EKK0081B022CBSMsg.KEY_LOOP_TEST_FIN_YMD_TO));
							// パラメータの設定(ＫＥＹ＿ループバックテスト完了年月日（自）を指定)
							CAANJDBCUtil.setParam(pstmt, iPCnt++, inMsg.getObject(EKK0081B022CBSMsg.KEY_LOOP_TEST_FIN_YMD_FROM));
							// パラメータの設定(ＫＥＹ＿ループバックテスト完了年月日（至）を指定)
							CAANJDBCUtil.setParam(pstmt, iPCnt++, inMsg.getObject(EKK0081B022CBSMsg.KEY_LOOP_TEST_FIN_YMD_TO));
						}
						// ＫＥＹ＿ループバックテスト完了年月日（自）のみ設定時、パラメータを追加
						if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_LOOP_TEST_FIN_YMD_FROM) && inMsg.isNull(EKK0081B022CBSMsg.KEY_LOOP_TEST_FIN_YMD_TO))
						{
							// パラメータの設定(ＫＥＹ＿ループバックテスト完了年月日（自）を指定)
							CAANJDBCUtil.setParam(pstmt, iPCnt++, inMsg.getObject(EKK0081B022CBSMsg.KEY_LOOP_TEST_FIN_YMD_FROM));
							// パラメータの設定(ＫＥＹ＿ループバックテスト完了年月日（自）を指定)
							CAANJDBCUtil.setParam(pstmt, iPCnt++, inMsg.getObject(EKK0081B022CBSMsg.KEY_LOOP_TEST_FIN_YMD_FROM));
						}
						// ＫＥＹ＿ループバックテスト完了年月日（至）のみ設定時、パラメータを追加
						if (inMsg.isNull(EKK0081B022CBSMsg.KEY_LOOP_TEST_FIN_YMD_FROM) && !inMsg.isNull(EKK0081B022CBSMsg.KEY_LOOP_TEST_FIN_YMD_TO))
						{
							// パラメータの設定(ＫＥＹ＿ループバックテスト完了年月日（至）を指定)
							CAANJDBCUtil.setParam(pstmt, iPCnt++, inMsg.getObject(EKK0081B022CBSMsg.KEY_LOOP_TEST_FIN_YMD_TO));
							// パラメータの設定(ＫＥＹ＿ループバックテスト完了年月日（至）を指定)
							CAANJDBCUtil.setParam(pstmt, iPCnt++, inMsg.getObject(EKK0081B022CBSMsg.KEY_LOOP_TEST_FIN_YMD_TO));
						}
					}
				}
				if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_FLG))
				{
					// ＫＥＹ＿サポート完了年月日フラグ＝"2"または"3"の場合、パラメータを追加
					if ("2".equals(inMsg.getObject(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_FLG).toString()) ||
							"3".equals(inMsg.getObject(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_FLG).toString()))
					{
						// ＫＥＹ＿サポート完了年月日（自）設定時、パラメータを追加
						if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_FROM))
						{
							CAANJDBCUtil.setParam(pstmt, iPCnt++, inMsg.getObject(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_FROM));
						}
						// ＫＥＹ＿サポート完了年月日（至）設定時、パラメータを追加
						if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_TO))
						{
							CAANJDBCUtil.setParam(pstmt, iPCnt++, inMsg.getObject(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_TO));
						}
					}
				}
				if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_ADD_YMD_FLG))
				{
					// ＫＥＹ＿登録年月日フラグ（サポート）＝"2"または"3"の場合、パラメータを追加
					if ("2".equals(inMsg.getObject(EKK0081B022CBSMsg.KEY_SUPPORT_ADD_YMD_FLG).toString()) ||
							"3".equals(inMsg.getObject(EKK0081B022CBSMsg.KEY_SUPPORT_ADD_YMD_FLG).toString()))
					{
						// ＫＥＹ＿登録日年月日（サポート）（自）設定時、パラメータを追加
						if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_ADD_YMD_FROM))
						{
							CAANJDBCUtil.setParam(pstmt, iPCnt++, inMsg.getObject(EKK0081B022CBSMsg.KEY_SUPPORT_ADD_YMD_FROM));
						}
						// ＫＥＹ＿登録日年月日（サポート）（至）設定時、パラメータを追加
						if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_ADD_YMD_TO))
						{
							CAANJDBCUtil.setParam(pstmt, iPCnt++, inMsg.getObject(EKK0081B022CBSMsg.KEY_SUPPORT_ADD_YMD_TO));
						}
					}
				}
				// パラメータの設定(運用日付を指定)
				CAANJDBCUtil.setParam(pstmt, iPCnt++, JKKModelCommon.getOpeDate(inMsg));
				// パラメータの設定(運用日付を指定)
				CAANJDBCUtil.setParam(pstmt, iPCnt++, JKKModelCommon.getOpeDate(inMsg));
				// ＫＥＹ＿ファミリーパック有無フラグ設定時、パラメータを追加
				if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_FAMIPA_UM_FLG))
				{
					// パラメータの設定(運用日付を指定)
					CAANJDBCUtil.setParam(pstmt, iPCnt++, JKKModelCommon.getOpeDate(inMsg));
				}
				// パラメータの設定(運用日付を指定)
				CAANJDBCUtil.setParam(pstmt, iPCnt++, JKKModelCommon.getOpeDate(inMsg));
				// パラメータの設定(運用日付を指定)
				CAANJDBCUtil.setParam(pstmt, iPCnt++, JKKModelCommon.getOpeDate(inMsg));
				// ＫＥＹ＿ファミリーパック有無フラグ設定時、パラメータを追加
				if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_FAMIPA_UM_FLG))
				{
					// パラメータの設定(運用日付を指定)
					CAANJDBCUtil.setParam(pstmt, iPCnt++, JKKModelCommon.getOpeDate(inMsg));
					// パラメータの設定(運用日付を指定)
					CAANJDBCUtil.setParam(pstmt, iPCnt++, JKKModelCommon.getOpeDate(inMsg));
				}
				// ＫＥＹ＿サービス契約番号設定時、パラメータを追加
				if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_SVC_KEI_NO))
				{
				// パラメータの設定(ＫＥＹ＿サービス契約番号を指定)
					CAANJDBCUtil.setParam(pstmt, iPCnt++, inMsg.getObject(EKK0081B022CBSMsg.KEY_SVC_KEI_NO));
				}
				// ＫＥＹ＿申込書番号設定時、パラメータを追加
				if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_MSKMSHO_NO))
				{
				// パラメータの設定(ＫＥＹ＿申込書番号を指定)
					CAANJDBCUtil.setParam(pstmt, iPCnt++, inMsg.getObject(EKK0081B022CBSMsg.KEY_MSKMSHO_NO));
				}
				if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_FLG))
				{
					// ＫＥＹ＿サポート完了年月日フラグ＝"3"の場合、パラメータを追加
					if ("3".equals(inMsg.getObject(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_FLG).toString()))
					{
						// ＫＥＹ＿サポート完了年月日（自）設定時、パラメータを追加
						if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_FROM))
						{
							CAANJDBCUtil.setParam(pstmt, iPCnt++, inMsg.getObject(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_FROM));
						}
						// ＫＥＹ＿サポート完了年月日（至）設定時、パラメータを追加
						if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_TO))
						{
							CAANJDBCUtil.setParam(pstmt, iPCnt++, inMsg.getObject(EKK0081B022CBSMsg.KEY_SUPPORT_FIN_YMD_TO));
						}
					}
				}
				if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_ADD_YMD_FLG))
				{
					// ＫＥＹ＿登録年月日フラグ（サポート）＝"3"の場合、パラメータを追加
					if ("3".equals(inMsg.getObject(EKK0081B022CBSMsg.KEY_SUPPORT_ADD_YMD_FLG).toString()))
					{
						// ＫＥＹ＿登録日年月日（サポート）（自）設定時、パラメータを追加
						if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_ADD_YMD_FROM))
						{
							CAANJDBCUtil.setParam(pstmt, iPCnt++, inMsg.getObject(EKK0081B022CBSMsg.KEY_SUPPORT_ADD_YMD_FROM));
						}
						// ＫＥＹ＿登録日年月日（サポート）（至）設定時、パラメータを追加
						if (!inMsg.isNull(EKK0081B022CBSMsg.KEY_SUPPORT_ADD_YMD_TO))
						{
							CAANJDBCUtil.setParam(pstmt, iPCnt++, inMsg.getObject(EKK0081B022CBSMsg.KEY_SUPPORT_ADD_YMD_TO));
						}
					}
				}
			}
			
			// ResultSetの取得
			rsltQuery = pstmt.executeQuery();
			
			// EKK0081B022CBSMsgの明細にセットする項目
			String[] msgKeyList1 = {
					  EKK0081B022CBSMsg1List.SVC_KEI_NO
					, EKK0081B022CBSMsg1List.MSKMSHO_NO
					, EKK0081B022CBSMsg1List.CUST_NM
					, EKK0081B022CBSMsg1List.MSKM_YMD
					, EKK0081B022CBSMsg1List.WRIB_SVC_KEI_NO
					, EKK0081B022CBSMsg1List.SVC_DSL_YMD
					, EKK0081B022CBSMsg1List.LOOPBACK_TEST_FIN_YMD
					, EKK0081B022CBSMsg1List.SVC_STA_YMD
					, EKK0081B022CBSMsg1List.SUPPORT_FIN_YMD
					, EKK0081B022CBSMsg1List.SUPPORT_NO
					, EKK0081B022CBSMsg1List.KK0631_ADD_DTM
					, EKK0081B022CBSMsg1List.KK0631_UPD_DTM
			};
			
			// 明細に処理結果(ResultSet)をマッピング
			CAANMsg[] outMsg1 = mapMessageList(rsltQuery,msgKeyList1,"eo.ejb.cbs.cbsmsg.EKK0081B022CBSMsg1List",0);
			// inMsg(CBSMsg)に明細をセット
			inMsg.set("EKK0081B022CBSMsg1List", outMsg1);
			

		} catch(SQLException e) {
			inMsg.set(EKK0081B022CBSMsg.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(EKK0081B022CBSMsg.STATUS, StatusCodes.FIND_DB_ERR);
				throw new CAANRuntimeException(e);
			}
		}
	}
}
