/*******************************************************************************
*	 All Rights reserved,Copyright (c) K-Opticom
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JSYejbEKK0341B509TPDA
*	ソースファイル名：JSYejbEKK0341B509TPDA.java
*	作成者			：EK909146
*	日付			：2012年02月22日
*＜機能概要＞
*	機器提供サービス契約一覧照会（eo光テレビ情報取得）テンプレートDBアクセス部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	ｖ1.00.00
*   ｖ8.00.00    2014/05/10   FJ)西川  【OM-2014-0001774】eo光テレビのSTB情報取得不具合
*	ｖ10.00      2014/08/02   FJ)西川  【OM-2014-0002441】水平展開　適用開始日を参照するように修正
*
********************************************************************************/

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.ejb.cbm.entity.KK0341ETMsg;
import eo.ejb.cbs.cbsmsg.EKK0341B509CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341B509CBSMsg1List;
import eo.ejb.common.JCCModelCommon;

/**
*
*  テンプレートDBアクセス部品　EKK0341B509_SQLF<br>
*  入力された項目からSQL文を動的に組み立て、<br>
*  検索結果をCBSMsgにセットします。<br>
*/
public class JSYejbEKK0341B509TPDA extends CAANSQLFacility implements TemplateDBAccessHandler{

	/**
	 * コンストラクタ
	 */
	public JSYejbEKK0341B509TPDA()	{
	}

	/**
	*   EKK0341B509_SQLF<br>
	*   @param inMsg    入力値の格納されたCBSMsg <br>
	*   @return void
	*/
	public void invoke(CAANMsg inMsg,AgentDispatchContext inContext){

		// コネクション
		Connection con1 = null;

		// プリペアステートメント
		PreparedStatement pstmt = null;

		// リザルトセット
		ResultSet rsltQuery = null;

		/********************
		 * SQL文の作成
		 ********************/

		try{

			//コネクション取得
			con1 = JSYejbConnection.getConnection(KK0341ETMsg.getTableName());

			// 手修正 START
			boolean hasKeySvcKeiNo = !inMsg.isNull(EKK0341B509CBSMsg.KEY_SVC_KEI_NO);
			boolean hasKeyKktkSvcCd = !inMsg.isNull(EKK0341B509CBSMsg.KEY_KKTK_SVC_CD);
			boolean hasKeyKktkSvcKeiNo = !inMsg.isNull(EKK0341B509CBSMsg.KEY_KKTK_SVC_KEI_NO);
			// 手修正 END

			// SQL文_基本部1
			StringBuffer sql_Buff = new StringBuffer();
			sql_Buff.append(" SELECT ")
					.append("    KK0341.KKTK_SVC_KEI_NO ")
					.append("    , KK0341.GENE_ADD_DTM ")
					.append("    , KK0341.KKTK_SVC_CD ")
					.append("    , KK0341.KIKI_SEIZO_NO ")
					.append("    , KK0341.SVC_KEI_NO ")
					.append("    , KK0341.SVC_KEI_UCWK_NO ")
					.append("    , KK0341.KKTK_SVC_KEI_STAT ")
					.append("    , DECODE(KK1681.IDO_RSV_NO ")
					.append("        , NULL ")
					.append("        , DECODE( ")
					.append("            NVL(CHANNEL_COUNT, 0), 0 ")
					.append("            , DECODE(KK0341.KKTK_SVC_KEI_STAT,'100','1','0') ")
					.append("            , '014' ")
					.append("        ) ")
					.append("        , KK1681.IDO_RSV_DTL_CD ")
					.append("    ) AS STATUS_FLG ")
					.append("    , KK0341.PCRS_CD ")
					.append("    , ( ")
					.append("        SELECT ")
					.append("            KK0791.PCRS_NM ")
					.append("        FROM ")
					.append("            KK_M_PCRS KK0791 ")
					.append("        WHERE ")
					.append("            KK0791.PCRS_CD = KK0341.PCRS_CD ")
					.append("            AND (KK0791.PCRS_CD, KK0791.RSV_APLY_YMD || KK0791.GENE_ADD_DTM) = ( ")
					.append("                SELECT ")
					.append("                    T2.PCRS_CD, MAX(T2.RSV_APLY_YMD || T2.GENE_ADD_DTM) AS KK0791_MAX ")
					.append("                FROM ")
					.append("                    KK_M_PCRS T2 ")
					.append("                WHERE ")
					.append("                    T2.PCRS_CD = KK0791.PCRS_CD ")
					.append("                    AND T2.RSV_APLY_YMD <= ? ")
					.append("                    AND T2.MK_FLG= '0' ")
					.append("                GROUP BY T2.PCRS_CD ")
					.append("            ) ")
					.append("    ) AS PCRS_NM ")
					.append("    , KK0341.PPLAN_CD ")
					.append("    , KK0341.TAKNKIKI_MODEL_CD ")
					.append("    , KK0341.IDO_DIV ")
					.append("    , KK0341.TK_HOSHIKI_KEI_NO ")
					.append("    , KK0341.HDD_CAPA_CD ")
					.append("    , ( ")
					.append("        SELECT ")
					.append("            ZM0171_01.CD_DIV_NM ")
					.append("        FROM ")
					.append("            ZM_M_CD_NM_KANRI ZM0171_01 ")
					.append("        WHERE ")
					.append("            ZM0171_01.CD_SBT_CD = 'CD00557' ")
					.append("            AND ZM0171_01.CD_DIV = KK0341.HDD_CAPA_CD ")
					.append("            AND ? BETWEEN ZM0171_01.CD_TSTAYMD AND ZM0171_01.CD_TENDYMD ")
					.append("            AND ZM0171_01.MK_FLG = '0' ")
					.append("    ) AS HDD_CAPA_NM ")
					.append("    , KK0341.KKTK_SBT_CD ")
					.append("    , KK0341.TAKNKIKI_SBT_CD ")
					.append("    , KK0341.PNLTY_HASSEI_CD ")
					.append("    , KK0341.KIKI_CHG_NO ")
					.append("    , KK0341.KIKI_CHG_RSN_CD ")
					.append("    , RSV_KK0341.PCRS_CD AS RSV_PCRS_CD ")
					.append("    , ( ")
					.append("        SELECT ")
					.append("            KK0791.PCRS_NM ")
					.append("        FROM ")
					.append("            KK_M_PCRS KK0791 ")
					.append("        WHERE ")
					.append("            KK0791.PCRS_CD = RSV_KK0341.PCRS_CD ")
					.append("            AND (KK0791.PCRS_CD, KK0791.RSV_APLY_YMD || KK0791.GENE_ADD_DTM) = ( ")
					.append("                SELECT ")
					.append("                    T3.PCRS_CD, MAX(T3.RSV_APLY_YMD || T3.GENE_ADD_DTM) AS KK0791_MAX ")
					.append("                FROM ")
					.append("                    KK_M_PCRS T3 ")
					.append("                WHERE ")
					.append("                    T3.PCRS_CD = KK0791.PCRS_CD ")
					.append("                    AND T3.RSV_APLY_YMD <= ? ")
					.append("                    AND T3.MK_FLG= '0' ")
					.append("                GROUP BY T3.PCRS_CD ")
					.append("            ) ")
					.append("    ) AS RSV_PCRS_NM ")
					.append("    , RSV_KK0341.PPLAN_CD       AS RSV_PPLAN_CD ")
					.append("    , RSV_KK0341.HDD_CAPA_CD    AS RSV_HDD_CAPA_CD ")
					.append("    , ( ")
					.append("          SELECT ")
					.append("              ZM0171_02.CD_DIV_NM ")
					.append("          FROM ")
					.append("              ZM_M_CD_NM_KANRI ZM0171_02 ")
					.append("          WHERE ")
					.append("              ZM0171_02.CD_SBT_CD = 'CD00557' ")
					.append("              AND ZM0171_02.CD_DIV = RSV_KK0341.HDD_CAPA_CD ")
					.append("              AND ? BETWEEN ZM0171_02.CD_TSTAYMD AND ZM0171_02.CD_TENDYMD ")
					.append("              AND ZM0171_02.MK_FLG = '0' ")
					.append("    ) AS RSV_HDD_CAPA_NM ")
					.append("    , KK1681.IDO_RSV_NO ")
					.append("    , KK1681.IDO_RSV_DTL_CD ")
					.append("    , KK1681.RSV_APLY_YMD  AS IDO_RSV_APLY_YMD ")
					.append("    , ( ")
					.append("        SELECT  KK0021.MSKM_YMD ")
					.append("        FROM    KK_T_MSKM_DTL KK0021 ")
					.append("        WHERE   KK0021.MSKM_DTL_NO = KK0341.MSKM_DTL_NO ")
					.append("          AND   (KK0021.MSKM_DTL_NO, KK0021.GENE_ADD_DTM) = ( ")
					.append("                SELECT  T.MSKM_DTL_NO, MAX(T.GENE_ADD_DTM) AS KK0021_MAX ")
					.append("                FROM    KK_T_MSKM_DTL T ")
					.append("                WHERE   T.MSKM_DTL_NO = KK0021.MSKM_DTL_NO ")
					.append("                  AND   T.MK_FLG  = '0' ")
					.append("                GROUP BY T.MSKM_DTL_NO ")
					.append("            ) ")
					.append("    ) MSKM_YMD ")
					.append("    , ( ")
					.append("        SELECT  KK0021.MSKM_YMD ")
					.append("        FROM    KK_T_MSKM_DTL KK0021 ")
					.append("        WHERE   KK0021.MSKM_DTL_NO = RSV_KK0341.MSKM_DTL_NO ")
					.append("          AND   (KK0021.MSKM_DTL_NO, KK0021.GENE_ADD_DTM) = ( ")
					.append("                SELECT  T.MSKM_DTL_NO, MAX(T.GENE_ADD_DTM) AS KK0021_MAX ")
					.append("                FROM    KK_T_MSKM_DTL T ")
					.append("                WHERE   T.MSKM_DTL_NO = KK0021.MSKM_DTL_NO ")
					.append("                  AND   T.MK_FLG  = '0' ")
					.append("                GROUP BY T.MSKM_DTL_NO ")
					.append("            ) ")
					.append("    ) RSV_MSKM_YMD ")
					.append("    , NULL AS IDO_MSKM_YMD ")
					.append("    , KK0241.SVC_KEI_KAISEN_UCWK_NO ")
					// オプションチャンネル追加（次月開始予定）
					.append("    , DECODE(NVL(CHANNEL_COUNT, 0), 0, 0, 1) AS RSV_CHANNEL_NEXT ")
					// STB予約
					.append("    , DECODE(KK1681.IDO_RSV_DTL_CD, '011', '1', DECODE(KK1681.IDO_RSV_DTL_CD, '029', '1', '0')) AS RSV_STAT_STB ")
					// コース変更予約
					.append("    , CASE WHEN KK1681_CORSE_SVC.IDO_RSV_DTL_CD IS NULL THEN ")
					.append("          CASE WHEN KK1681_CORSE_MY.IDO_RSV_DTL_CD IS NULL THEN '0' ")
					.append("          ELSE '1' ")
					.append("          END ")
					.append("      ELSE '1' ")
					.append("      END AS RSV_STAT_CORSE ")
					// BSパススルーの予約（機器提供サービス契約＝V-ONUに予約が入っているか）
					.append("    , NVL(( ")
					.append("         SELECT DISTINCT 1 FROM  KK_T_KKTK_SVC_KEI KK0341_BS ")
					.append("           WHERE ")
					.append("               KK0341_BS.SVC_KEI_KAISEN_UCWK_NO = KK0241.SVC_KEI_KAISEN_UCWK_NO ")
					.append("           AND KK0241.MK_FLG = '0' ")
					.append("           AND KK0341_BS.KKTK_SVC_KEI_STAT = '110' ")
					.append("           AND KK0341_BS.RSV_APLY_CD = '1' ")
					.append("           AND (KK0341_BS.KKTK_SVC_KEI_NO, KK0341_BS.GENE_ADD_DTM) = ( ")
					.append("                         SELECT ")
					.append("                              KKTK_SVC_KEI_NO, MAX(T5.GENE_ADD_DTM) AS KK0341_MAX ")
					.append("                         FROM ")
					.append("                              KK_T_KKTK_SVC_KEI T5 ")
					.append("                         WHERE ")
					.append("                              T5.KKTK_SVC_KEI_NO = KK0341_BS.KKTK_SVC_KEI_NO ")
					.append("                              AND T5.SVC_KEI_KAISEN_UCWK_NO = KK0341_BS.SVC_KEI_KAISEN_UCWK_NO ")
					.append("                              AND T5.TAKNKIKI_SBT_CD = 'E0' ")
					.append("                              AND T5.MK_FLG = '0' ")
					.append("                         GROUP BY T5.KKTK_SVC_KEI_NO ")
					.append("                     ) ")
					.append("        ) , 0) AS TOTAL_RSV_STAT_BS ")
					// 全STB予約(サービスに紐づくＳＴＢが変更中orＳＴＢ追加中がある場合に"1"をセット)
					.append("    , DECODE ( ")
					.append("      (")
					.append("        NVL( ( ")
					.append("        SELECT ")
					.append("            COUNT(1) ")
					.append("        FROM ")
					.append("            KK_T_KKTK_SVC_KEI RSV_KK0341 ")
					.append("        WHERE ")
					.append("            RSV_KK0341.SVC_KEI_NO  = KK0341.SVC_KEI_NO ");
 				// 手修正 START
				if (hasKeySvcKeiNo)
				{
					sql_Buff.append("        AND RSV_KK0341.SVC_KEI_NO = ? ");
				}
				// 手修正 END
					sql_Buff.append("        AND ((RSV_KK0341.KKTK_SVC_KEI_STAT = '110' AND RSV_KK0341.RSV_APLY_CD = '1') ")
					.append("                  OR (RSV_KK0341.KKTK_SVC_KEI_STAT NOT IN ('100', '110', '910', '920')  AND RSV_KK0341.RSV_APLY_CD = '2')  ) ")
					.append("        AND (RSV_KK0341.KKTK_SVC_KEI_NO, RSV_KK0341.GENE_ADD_DTM) = ( ")
					.append("                SELECT ")
					.append("                    T4.KKTK_SVC_KEI_NO, MAX(T4.GENE_ADD_DTM) AS KK0341_MAX ")
					.append("                FROM ")
					.append("                    KK_T_KKTK_SVC_KEI T4 ")
					.append("                WHERE ")
					.append("                    T4.KKTK_SVC_KEI_NO = RSV_KK0341.KKTK_SVC_KEI_NO ")
					.append("                    AND T4.KKTK_SVC_CD = 'C009' ")
					.append("                    AND T4.MK_FLG = '0' ")
					.append("                GROUP BY T4.KKTK_SVC_KEI_NO ")
					.append("            )   ),0) ")
					.append("       ) , 0, 0, 1) AS TOTAL_RSV_STAT_STB ")
					// 全コース変更(サービス契約 又は サービス契約内訳でコース変更が１件でも存在するか)
					.append("    , CASE WHEN KK1681_CORSE_SVC.IDO_RSV_DTL_CD IS NOT NULL THEN '1' ")
					.append("      ELSE ")
					.append("          CASE WHEN KK1681_CORSE.IDO_RSV_DTL_CD IS NULL THEN '0' ")
					.append("          ELSE '1' ")
					.append("          END ")
					.append("      END AS TOTAL_RSV_STAT_CORSE ");

			// SQL文_個別部1
			if ( "1".equals( inMsg.getObject(EKK0341B509CBSMsg.FUNC_CODE).toString() ) ) {
				// ●(1)機器提供サービス契約
				sql_Buff.append(" FROM /*EKK0341B509*/ ")
						.append("     KK_T_KKTK_SVC_KEI KK0341 ")
						// ●(2)回線対象サービス契約
						.append("    LEFT OUTER JOIN  ")
						.append("    ( ")
						.append("      SELECT KK0241_1.SVC_KEI_KAISEN_UCWK_NO ")
						.append("             ,KK0241_1.SVC_KEI_NO ")
						.append("             ,KK0241_1.MK_FLG  ")
						.append("      FROM ")
						.append("          KK_T_KAISEN_TG_SVKEI KK0241_1 ")
						.append("      WHERE KK0241_1.MK_FLG = '0' ")
						.append("      AND KK0241_1.KAISEN_UCWK_USE_STAYMD <= ? ")
						.append("      AND KK0241_1.KAISEN_UCWK_USE_ENDYMD = ( ")
						.append("              SELECT MAX(KK0241_MAX.KAISEN_UCWK_USE_ENDYMD) ")
						.append("              FROM KK_T_KAISEN_TG_SVKEI KK0241_MAX ")
						.append("              WHERE ")
						.append("                  KK0241_MAX.SVC_KEI_NO = KK0241_1.SVC_KEI_NO ")
						.append("                  AND KK0241_MAX.KAISEN_UCWK_USE_STAYMD <= ? ")
						.append("                  AND KK0241_MAX.MK_FLG = '0' ")
						.append("              GROUP BY KK0241_MAX.SVC_KEI_NO ")
						.append("          ) ")
						.append("     ) KK0241 ")
						.append("      ON KK0341.SVC_KEI_NO = KK0241.SVC_KEI_NO ")
						// ●(3)機器提供サービス契約　契約変更中（機器提供サービス契約ステータス=110） 機器提供サービス契約番号
						.append("     LEFT OUTER JOIN ( ")
						.append("         SELECT ")
						.append("              RSV_KK0341.PCRS_CD ")
						.append("             ,RSV_KK0341.KKTK_SVC_KEI_NO ")
						.append("             ,RSV_KK0341.HDD_CAPA_CD ")
						.append("             ,RSV_KK0341.PPLAN_CD ")
						.append("             ,RSV_KK0341.MSKM_DTL_NO ")
						.append("         FROM ")
						.append("             KK_T_KKTK_SVC_KEI RSV_KK0341 ")
						.append("         WHERE ")
						.append("             RSV_KK0341.KKTK_SVC_KEI_STAT = '110' ")
						.append("         AND RSV_KK0341.RSV_APLY_CD = '1' ");

 				// 手修正 START
				if (hasKeySvcKeiNo)
				{
					sql_Buff.append("         AND RSV_KK0341.SVC_KEI_NO = ? ");
				}
				if (hasKeyKktkSvcCd)
				{
					sql_Buff.append("         AND RSV_KK0341.KKTK_SVC_CD = ? ");
				}
				if (hasKeyKktkSvcKeiNo)
				{
					sql_Buff.append("         AND RSV_KK0341.KKTK_SVC_KEI_NO = ? ");
				}
				// 手修正 END

				sql_Buff.append("            AND (RSV_KK0341.KKTK_SVC_KEI_NO, RSV_KK0341.GENE_ADD_DTM) = ( ")
						.append("                 SELECT ")
						.append("                     T4.KKTK_SVC_KEI_NO, MAX(T4.GENE_ADD_DTM) AS KK0341_MAX ")
						.append("                 FROM ")
						.append("                     KK_T_KKTK_SVC_KEI T4 ")
						.append("                 WHERE ")
						.append("                     T4.KKTK_SVC_KEI_NO = RSV_KK0341.KKTK_SVC_KEI_NO ")
						.append("                     AND T4.MK_FLG = '0' ")
						.append("                 GROUP BY T4.KKTK_SVC_KEI_NO ")
						.append("             ) ")
						.append("     ) RSV_KK0341 ")
						.append("         ON  RSV_KK0341.KKTK_SVC_KEI_NO = KK0341.KKTK_SVC_KEI_NO ")
						// ●(4)異動予約　機器の予約
						.append("     LEFT OUTER JOIN ( ")
						.append("         SELECT ")
						.append("             IDO_TBL.IDO_RSV_NO ")
						.append("             , IDO_TBL.IDO_RSV_DTL_CD ")
						.append("             , IDO_TBL.RSV_APLY_YMD ")
						.append("             , IDO_TBL.SVC_KEI_NO ")
						.append("             , IDO_TBL.KKTK_SVC_KEI_NO ")
						.append("         FROM ")
						.append("             KK_T_IDO_RSV IDO_TBL ")
						.append("             INNER JOIN ( ")
						.append("                 SELECT ")
						.append("                     KK0341_IDO.KKTK_SVC_KEI_NO ")
						.append("                 FROM ")
						.append("                     KK_T_KKTK_SVC_KEI KK0341_IDO ")
						.append("                 WHERE ")
						.append("                     KK0341_IDO.KKTK_SVC_KEI_STAT IN ('100','210','220') ");

				// 手修正 START
				if (hasKeySvcKeiNo)
				{
					sql_Buff.append("                 AND KK0341_IDO.SVC_KEI_NO = ? ");
				}
				if (hasKeyKktkSvcCd)
				{
					sql_Buff.append("                 AND KK0341_IDO.KKTK_SVC_CD = ? ");
				}
				if (hasKeyKktkSvcKeiNo)
				{
					sql_Buff.append("                 AND KK0341_IDO.KKTK_SVC_KEI_NO = ? ");
				}
				// 手修正 END

				sql_Buff.append("                     AND (KK0341_IDO.KKTK_SVC_KEI_NO, KK0341_IDO.RSV_APLY_YMD || KK0341_IDO.GENE_ADD_DTM) = ( ")
						.append("                         SELECT ")
						.append("                              T5.KKTK_SVC_KEI_NO, MAX(T5.RSV_APLY_YMD || T5.GENE_ADD_DTM) AS KK0341_MAX ")
						.append("                         FROM ")
						.append("                              KK_T_KKTK_SVC_KEI T5 ")
						.append("                         WHERE ")
						.append("                              T5.KKTK_SVC_KEI_NO = KK0341_IDO.KKTK_SVC_KEI_NO ")
						.append("                              AND T5.MK_FLG = '0' ")
						.append("                              AND T5.RSV_APLY_CD = '2' ")
						.append("                              AND T5.RSV_APLY_YMD <= ? ")
						.append("                         GROUP BY T5.KKTK_SVC_KEI_NO ")
						.append("                     ) ")
						.append("             ) KK0341_IDO ")
						.append("                 ON KK0341_IDO.KKTK_SVC_KEI_NO = IDO_TBL.KKTK_SVC_KEI_NO ")
						.append("         WHERE ")
						.append("             IDO_TBL.MK_FLG = '0' ")
											// 00 未反映、03 予約手続中、（04 異動予約対象外）
						.append("             AND ((IDO_TBL.IDO_RSV_STAT_CD IN ('00','03')) OR ")
						.append("                  (IDO_TBL.IDO_RSV_STAT_CD = '04' AND IDO_TBL.RSV_APLY_YMD > ?)) ")
											// 011 機器コース変更（STB) （012 機器変更手続（V-ONU）、013 機器解約、029 STB直送出荷）
						.append("             AND IDO_TBL.IDO_RSV_DTL_CD  IN ('011','012','013','029') ")
						.append("     ) KK1681 ")
						.append("         ON KK1681.KKTK_SVC_KEI_NO = KK0341.KKTK_SVC_KEI_NO ")
						// ●(5)オプションサービス契約　オプションチャンネルの次月開始予約中（サービス提供中以外）
						.append("     LEFT OUTER JOIN ( ")
						.append("         (SELECT KK0351.SVC_KEI_UCWK_NO, COUNT(1) AS CHANNEL_COUNT ")
						.append("          FROM KK_T_OP_SVC_KEI KK0351 ")
						.append("          INNER JOIN KK_T_IDO_RSV IDO_TBL ")
						.append("          ON    IDO_TBL.MK_FLG = '0' ")
						.append("                AND IDO_TBL.IDO_RSV_STAT_CD IN ('00','03') ")
						.append("                AND IDO_TBL.IDO_RSV_DTL_CD = '014' ")
						.append("                AND IDO_TBL.RSV_APLY_YMD >= LAST_DAY(?) + 1 ")
						.append("                AND IDO_TBL.OP_SVC_KEI_NO = KK0351.OP_SVC_KEI_NO ")
						.append("              WHERE ")
						.append("                  KK0351.OP_SVC_KEI_STAT IN ('010','020','030') ")
						.append("                  AND (KK0351.OP_SVC_KEI_NO, KK0351.RSV_APLY_YMD || KK0351.GENE_ADD_DTM) = ( ")
						.append("                      SELECT ")
						.append("                          T1.OP_SVC_KEI_NO, MAX(T1.RSV_APLY_YMD || T1.GENE_ADD_DTM) AS KK0351_MAX ")
						.append("                      FROM ")
						.append("                          KK_T_OP_SVC_KEI T1 ")
						.append("                      WHERE ")
						.append("                          T1.OP_SVC_KEI_NO = KK0351.OP_SVC_KEI_NO ")
						.append("                          AND T1.MK_FLG = '0' ")
						.append("                          AND T1.RSV_APLY_CD = '2' ")
						.append("                          AND T1.RSV_APLY_YMD <= ? ")
						.append("                      GROUP BY T1.OP_SVC_KEI_NO ")
						.append("                            ) ")
						.append("           GROUP BY KK0351.SVC_KEI_UCWK_NO ")
						.append("         ) ")
						.append("      ) KK1681_CHANNEL ")
						.append("         ON KK1681_CHANNEL.SVC_KEI_UCWK_NO = KK0341.SVC_KEI_UCWK_NO ")
						// ●(6)異動予約　コース変更（サービスに紐づくサービス契約内訳で変更があるか）
						.append("    LEFT OUTER JOIN ")
						.append("        (SELECT  KK0341_CUR.SVC_KEI_NO, ")
						.append("                 KK1681_SVC.IDO_RSV_DTL_CD ")
						.append("         FROM KK_T_IDO_RSV KK1681_SVC ")
						.append("         INNER JOIN ")
						.append("             (SELECT KK0341_CUR_T1.SVC_KEI_NO, ")
						.append("                     KK0341_CUR_T1.SVC_KEI_UCWK_NO ")
						.append("              FROM ")
						.append("                  KK_T_KKTK_SVC_KEI KK0341_CUR_T1 ")
						.append("                  INNER JOIN ")
						.append("                      ( ")
						.append("                          SELECT ")
						.append("                              KK0341_CUR_T1_SUB.KKTK_SVC_KEI_NO ")
						.append("                              ,KK0341_CUR_T1_SUB.GENE_ADD_DTM ")
						.append("                              ,KK0341_CUR_T1_SUB.RSV_APLY_YMD ")
						.append("                              ,KK0341_CUR_T1_SUB.SVC_KEI_UCWK_NO ")
						.append("                              ,MAX(KK0341_CUR_T1_SUB.RSV_APLY_YMD || KK0341_CUR_T1_SUB.GENE_ADD_DTM) OVER(PARTITION BY KK0341_CUR_T1_SUB.KKTK_SVC_KEI_NO) MAX_GENE_ADD_DTM ")
						.append("                          FROM ")
						.append("                              KK_T_KKTK_SVC_KEI KK0341_CUR_T1_SUB ")
						.append("                          WHERE ")
						.append("                              KK0341_CUR_T1_SUB.RSV_APLY_YMD <= ? ")
						.append("                              AND KK0341_CUR_T1_SUB.MK_FLG = '0'")
						.append("                      ) KK0341_CUR_T1_01 ")
						.append("                      ON KK0341_CUR_T1.KKTK_SVC_KEI_NO = KK0341_CUR_T1_01.KKTK_SVC_KEI_NO ")
						.append("                      AND KK0341_CUR_T1.GENE_ADD_DTM = KK0341_CUR_T1_01.GENE_ADD_DTM ")
						.append("                      AND KK0341_CUR_T1.SVC_KEI_UCWK_NO = KK0341_CUR_T1_01.SVC_KEI_UCWK_NO ")
						.append("                      AND KK0341_CUR_T1_01.RSV_APLY_YMD || KK0341_CUR_T1_01.GENE_ADD_DTM = KK0341_CUR_T1_01.MAX_GENE_ADD_DTM ");
				// 手修正 START
				if (hasKeySvcKeiNo)
				{
					sql_Buff.append("              AND KK0341_CUR_T1.SVC_KEI_NO = ? ");
				}
				sql_Buff.append("         ) KK0341_CUR ")
						.append("         ON  KK1681_SVC.SVC_KEI_UCWK_NO = KK0341_CUR.SVC_KEI_UCWK_NO ")
						.append("         AND KK1681_SVC.MK_FLG = '0' ")
						.append("         AND KK1681_SVC.IDO_RSV_STAT_CD IN ('00','03') ")
						.append("         AND KK1681_SVC.IDO_RSV_DTL_CD  = '003' ")
						.append("         AND KK1681_SVC.SVC_KEI_NO IS NULL ")
						.append("         AND ROWNUM = 1 ")
						.append("    ) KK1681_CORSE ")
						.append("         ON KK1681_CORSE.SVC_KEI_NO = KK0341.SVC_KEI_NO ")
						// ●(7)異動予約　コース変更（サービス契約内訳（該当レコード））
						.append("    LEFT OUTER JOIN KK_T_IDO_RSV KK1681_CORSE_MY ")
						.append("         ON  KK1681_CORSE_MY.SVC_KEI_UCWK_NO = KK0341.SVC_KEI_UCWK_NO ")
						.append("         AND KK1681_CORSE_MY.MK_FLG = '0' ")
						.append("         AND KK1681_CORSE_MY.IDO_RSV_STAT_CD IN ('00','03') ")
						.append("         AND KK1681_CORSE_MY.IDO_RSV_DTL_CD  = '003' ")
						.append("         AND KK1681_CORSE_MY.SVC_KEI_NO IS NULL ")
						// ●(8)異動予約　コース変更（サービス契約）
						.append("    LEFT OUTER JOIN KK_T_IDO_RSV KK1681_CORSE_SVC ")
						.append("         ON  KK1681_CORSE_SVC.SVC_KEI_NO = KK0341.SVC_KEI_NO ")
						.append("         AND KK1681_CORSE_SVC.MK_FLG = '0' ")
						.append("         AND KK1681_CORSE_SVC.IDO_RSV_STAT_CD IN ('00','03') ")
						.append("         AND KK1681_CORSE_SVC.IDO_RSV_DTL_CD  = '003' ")
						.append("         AND KK1681_CORSE_SVC.SVC_KEI_UCWK_NO IS NULL ")

				// WHERE条件
						.append(" WHERE ")
						.append("     KK0341.KKTK_SVC_KEI_STAT IN ('100','010','020','030') ");

				// 手修正 START
				if (hasKeySvcKeiNo)
				{
					sql_Buff.append(" AND KK0341.SVC_KEI_NO = ? ");
				}
				if (hasKeyKktkSvcCd)
				{
					sql_Buff.append(" AND KK0341.KKTK_SVC_CD = ? ");
				}
				if (hasKeyKktkSvcKeiNo)
				{
					sql_Buff.append(" AND KK0341.KKTK_SVC_KEI_NO = ? ");
				}
				// 手修正 END

				sql_Buff.append("     AND (KK0341.KKTK_SVC_KEI_NO, KK0341.RSV_APLY_YMD || KK0341.GENE_ADD_DTM) = ( ")
						.append("         SELECT ")
						.append("             T6.KKTK_SVC_KEI_NO, MAX(T6.RSV_APLY_YMD || T6.GENE_ADD_DTM) AS KK0341_MAX ")
						.append("         FROM ")
						.append("             KK_T_KKTK_SVC_KEI T6 ")
						.append("         WHERE ")
						.append("             T6.KKTK_SVC_KEI_NO = KK0341.KKTK_SVC_KEI_NO ")
						.append("             AND T6.MK_FLG = '0' ")
						.append("             AND T6.RSV_APLY_CD = '2' ")
						.append("             AND T6.RSV_APLY_YMD <= ? ")
						.append("         GROUP BY T6.KKTK_SVC_KEI_NO ")
						.append("     ) ")
						.append(" ORDER BY ")
						.append("     KK0341.KKTK_SVC_KEI_NO ")
						.append("     , KK0341.GENE_ADD_DTM ");
			}
			// SQL文_個別部1
			else if ( "2".equals( inMsg.getObject(EKK0341B509CBSMsg.FUNC_CODE).toString() ) ) {
				// ●(1)機器提供サービス契約
				sql_Buff.append(" FROM ")
						.append("     KK_T_KKTK_SVC_KEI KK0341 ")
						// ●(2)回線対象サービス契約
						.append("    LEFT OUTER JOIN  ")
						.append("    ( ")
						.append("      SELECT KK0241_1.SVC_KEI_KAISEN_UCWK_NO ")
						.append("             ,KK0241_1.SVC_KEI_NO ")
						.append("             ,KK0241_1.MK_FLG  ")
						.append("      FROM ")
						.append("          KK_T_KAISEN_TG_SVKEI KK0241_1 ")
						.append("      WHERE KK0241_1.MK_FLG = '0' ")
						.append("      AND KK0241_1.KAISEN_UCWK_USE_STAYMD <= ? ")
						.append("      AND KK0241_1.KAISEN_UCWK_USE_ENDYMD = ( ")
						.append("              SELECT MAX(KK0241_MAX.KAISEN_UCWK_USE_ENDYMD) ")
						.append("              FROM KK_T_KAISEN_TG_SVKEI KK0241_MAX ")
						.append("              WHERE ")
						.append("                  KK0241_MAX.SVC_KEI_NO = KK0241_1.SVC_KEI_NO ")
						.append("                  AND KK0241_MAX.KAISEN_UCWK_USE_STAYMD <= ? ")
						.append("                  AND KK0241_MAX.MK_FLG = '0' ")
						.append("              GROUP BY KK0241_MAX.SVC_KEI_NO ")
						.append("          ) ")
						.append("     ) KK0241 ")
						.append("      ON KK0341.SVC_KEI_NO = KK0241.SVC_KEI_NO ")
						// ●(3)機器提供サービス契約　契約変更中（機器提供サービス契約ステータス=110） 機器提供サービス契約番号
						.append("     LEFT OUTER JOIN ( ")
						.append("         SELECT ")
						.append("              RSV_KK0341.PCRS_CD ")
						.append("             ,RSV_KK0341.KKTK_SVC_KEI_NO ")
						.append("             ,RSV_KK0341.HDD_CAPA_CD ")
						.append("             ,RSV_KK0341.PPLAN_CD ")
						.append("             ,RSV_KK0341.MSKM_DTL_NO ")
						.append("         FROM ")
						.append("             KK_T_KKTK_SVC_KEI RSV_KK0341 ")
						.append("         WHERE ")
						.append("             RSV_KK0341.KKTK_SVC_KEI_STAT = '110' ")
						.append("         AND RSV_KK0341.RSV_APLY_CD = '1' ");

 				// 手修正 START
				if (hasKeySvcKeiNo)
				{
					sql_Buff.append("         AND RSV_KK0341.SVC_KEI_NO = ? ");
				}
				if (hasKeyKktkSvcCd)
				{
					sql_Buff.append("         AND RSV_KK0341.KKTK_SVC_CD = ? ");
				}
				if (hasKeyKktkSvcKeiNo)
				{
					sql_Buff.append("         AND RSV_KK0341.KKTK_SVC_KEI_NO = ? ");
				}
				// 手修正 END

				sql_Buff.append("            AND (RSV_KK0341.KKTK_SVC_KEI_NO, RSV_KK0341.GENE_ADD_DTM) = ( ")
						.append("                 SELECT ")
						.append("                     T4.KKTK_SVC_KEI_NO, MAX(T4.GENE_ADD_DTM) AS KK0341_MAX ")
						.append("                 FROM ")
						.append("                     KK_T_KKTK_SVC_KEI T4 ")
						.append("                 WHERE ")
						.append("                     T4.KKTK_SVC_KEI_NO = RSV_KK0341.KKTK_SVC_KEI_NO ")
						.append("                     AND T4.MK_FLG = '0' ")
						.append("                 GROUP BY T4.KKTK_SVC_KEI_NO ")
						.append("             ) ")
						.append("     ) RSV_KK0341 ")
						.append("         ON  RSV_KK0341.KKTK_SVC_KEI_NO = KK0341.KKTK_SVC_KEI_NO ")
						// ●(4)異動予約　機器の予約
						.append("     LEFT OUTER JOIN ( ")
						.append("         SELECT ")
						.append("             IDO_TBL.IDO_RSV_NO ")
						.append("             , IDO_TBL.IDO_RSV_DTL_CD ")
						.append("             , IDO_TBL.RSV_APLY_YMD ")
						.append("             , IDO_TBL.SVC_KEI_NO ")
						.append("             , IDO_TBL.KKTK_SVC_KEI_NO ")
						.append("         FROM ")
						.append("             KK_T_IDO_RSV IDO_TBL ")
						.append("             INNER JOIN ( ")
						.append("                 SELECT ")
						.append("                     KK0341_IDO.KKTK_SVC_KEI_NO ")
						.append("                 FROM ")
						.append("                     KK_T_KKTK_SVC_KEI KK0341_IDO ")
						.append("                 WHERE ")
						.append("                     KK0341_IDO.KKTK_SVC_KEI_STAT IN ('100','210','220') ");

				// 手修正 START
				if (hasKeySvcKeiNo)
				{
					sql_Buff.append("                 AND KK0341_IDO.SVC_KEI_NO = ? ");
				}
				if (hasKeyKktkSvcCd)
				{
					sql_Buff.append("                 AND KK0341_IDO.KKTK_SVC_CD = ? ");
				}
				if (hasKeyKktkSvcKeiNo)
				{
					sql_Buff.append("                 AND KK0341_IDO.KKTK_SVC_KEI_NO = ? ");
				}
				// 手修正 END

				sql_Buff.append("                     AND (KK0341_IDO.KKTK_SVC_KEI_NO, KK0341_IDO.RSV_APLY_YMD || KK0341_IDO.GENE_ADD_DTM) = ( ")
						.append("                         SELECT ")
						.append("                              T5.KKTK_SVC_KEI_NO, MAX(T5.RSV_APLY_YMD || T5.GENE_ADD_DTM) AS KK0341_MAX ")
						.append("                         FROM ")
						.append("                              KK_T_KKTK_SVC_KEI T5 ")
						.append("                         WHERE ")
						.append("                              T5.KKTK_SVC_KEI_NO = KK0341_IDO.KKTK_SVC_KEI_NO ")
						.append("                              AND T5.MK_FLG = '0' ")
						.append("                              AND T5.RSV_APLY_CD = '2' ")
						.append("                              AND T5.RSV_APLY_YMD <= ? ")
						.append("                         GROUP BY T5.KKTK_SVC_KEI_NO ")
						.append("                     ) ")
						.append("             ) KK0341_IDO ")
						.append("                 ON KK0341_IDO.KKTK_SVC_KEI_NO = IDO_TBL.KKTK_SVC_KEI_NO ")
						.append("         WHERE ")
						.append("             IDO_TBL.MK_FLG = '0' ")
											// 00 未反映、03 予約手続中、（04 異動予約対象外）
						.append("             AND ((IDO_TBL.IDO_RSV_STAT_CD IN ('00','03')) OR ")
						.append("                  (IDO_TBL.IDO_RSV_STAT_CD = '04' AND IDO_TBL.RSV_APLY_YMD > ?)) ")
											// 011 機器コース変更（STB) （012 機器変更手続（V-ONU）、013 機器解約、029 STB直送出荷）
						.append("             AND IDO_TBL.IDO_RSV_DTL_CD  IN ('011','012','013','029') ")
						.append("     ) KK1681 ")
						.append("         ON KK1681.KKTK_SVC_KEI_NO = KK0341.KKTK_SVC_KEI_NO ")
						// ●(5)オプションサービス契約　オプションチャンネルの次月開始予約中（サービス提供中以外）
						.append("     LEFT OUTER JOIN ( ")
						.append("         (SELECT KK0351.SVC_KEI_UCWK_NO, COUNT(1) AS CHANNEL_COUNT ")
						.append("          FROM KK_T_OP_SVC_KEI KK0351 ")
						.append("          INNER JOIN KK_T_IDO_RSV IDO_TBL ")
						.append("          ON    IDO_TBL.MK_FLG = '0' ")
						.append("                AND IDO_TBL.IDO_RSV_STAT_CD IN ('00','03') ")
						.append("                AND IDO_TBL.IDO_RSV_DTL_CD = '014' ")
						.append("                AND IDO_TBL.RSV_APLY_YMD >= LAST_DAY(?) + 1 ")
						.append("                AND IDO_TBL.OP_SVC_KEI_NO = KK0351.OP_SVC_KEI_NO ")
						.append("              WHERE ")
						.append("                  KK0351.OP_SVC_KEI_STAT IN ('010','020','030') ")
						.append("                  AND (KK0351.OP_SVC_KEI_NO, KK0351.RSV_APLY_YMD || KK0351.GENE_ADD_DTM) = ( ")
						.append("                      SELECT ")
						.append("                          T1.OP_SVC_KEI_NO, MAX(T1.RSV_APLY_YMD || T1.GENE_ADD_DTM) AS KK0351_MAX ")
						.append("                      FROM ")
						.append("                          KK_T_OP_SVC_KEI T1 ")
						.append("                      WHERE ")
						.append("                          T1.OP_SVC_KEI_NO = KK0351.OP_SVC_KEI_NO ")
						.append("                          AND T1.MK_FLG = '0' ")
						.append("                          AND T1.RSV_APLY_CD = '2' ")
						.append("                          AND T1.RSV_APLY_YMD <= ? ")
						.append("                      GROUP BY T1.OP_SVC_KEI_NO ")
						.append("                            ) ")
						.append("           GROUP BY KK0351.SVC_KEI_UCWK_NO ")
						.append("         ) ")
						.append("      ) KK1681_CHANNEL ")
						.append("         ON KK1681_CHANNEL.SVC_KEI_UCWK_NO = KK0341.SVC_KEI_UCWK_NO ")
						// ●(6)異動予約　コース変更（サービスに紐づくサービス契約内訳で変更があるか）
						.append("    LEFT OUTER JOIN ")
						.append("        (SELECT  KK0341_CUR.SVC_KEI_NO, ")
						.append("                 KK1681_SVC.IDO_RSV_DTL_CD ")
						.append("         FROM KK_T_IDO_RSV KK1681_SVC ")
						.append("         INNER JOIN ")
						.append("             (SELECT KK0341_CUR_T1.SVC_KEI_NO, ")
						.append("                     KK0341_CUR_T1.SVC_KEI_UCWK_NO ")
						.append("              FROM ")
						.append("                  KK_T_KKTK_SVC_KEI KK0341_CUR_T1 ")
						.append("                  INNER JOIN ")
						.append("                      ( ")
						.append("                          SELECT ")
						.append("                              KK0341_CUR_T1_SUB.KKTK_SVC_KEI_NO ")
						.append("                              ,KK0341_CUR_T1_SUB.GENE_ADD_DTM ")
						.append("                              ,KK0341_CUR_T1_SUB.RSV_APLY_YMD ")
						.append("                              ,KK0341_CUR_T1_SUB.SVC_KEI_UCWK_NO ")
						.append("                              ,MAX(KK0341_CUR_T1_SUB.RSV_APLY_YMD || KK0341_CUR_T1_SUB.GENE_ADD_DTM) OVER(PARTITION BY KK0341_CUR_T1_SUB.KKTK_SVC_KEI_NO) MAX_GENE_ADD_DTM ")
						.append("                          FROM ")
						.append("                              KK_T_KKTK_SVC_KEI KK0341_CUR_T1_SUB ")
						.append("                          WHERE ")
						.append("                              KK0341_CUR_T1_SUB.RSV_APLY_YMD <= ? ")
						.append("                              AND KK0341_CUR_T1_SUB.MK_FLG = '0'")
						.append("                      ) KK0341_CUR_T1_01 ")
						.append("                      ON KK0341_CUR_T1.KKTK_SVC_KEI_NO = KK0341_CUR_T1_01.KKTK_SVC_KEI_NO ")
						.append("                      AND KK0341_CUR_T1.GENE_ADD_DTM = KK0341_CUR_T1_01.GENE_ADD_DTM ")
						.append("                      AND KK0341_CUR_T1.SVC_KEI_UCWK_NO = KK0341_CUR_T1_01.SVC_KEI_UCWK_NO ")
						.append("                      AND KK0341_CUR_T1_01.RSV_APLY_YMD || KK0341_CUR_T1_01.GENE_ADD_DTM = KK0341_CUR_T1_01.MAX_GENE_ADD_DTM ");
				// 手修正 START
				if (hasKeySvcKeiNo)
				{
					sql_Buff.append("              AND KK0341_CUR_T1.SVC_KEI_NO = ? ");
				}
				sql_Buff.append("         ) KK0341_CUR ")
						.append("         ON  KK1681_SVC.SVC_KEI_UCWK_NO = KK0341_CUR.SVC_KEI_UCWK_NO ")
						.append("         AND KK1681_SVC.MK_FLG = '0' ")
						.append("         AND KK1681_SVC.IDO_RSV_STAT_CD IN ('00','03') ")
						.append("         AND KK1681_SVC.IDO_RSV_DTL_CD  = '003' ")
						.append("         AND KK1681_SVC.SVC_KEI_NO IS NULL ")
						.append("         AND ROWNUM = 1 ")
						.append("    ) KK1681_CORSE ")
						.append("         ON KK1681_CORSE.SVC_KEI_NO = KK0341.SVC_KEI_NO ")
						// ●(7)異動予約　コース変更（サービス契約内訳（該当レコード））
						.append("    LEFT OUTER JOIN KK_T_IDO_RSV KK1681_CORSE_MY ")
						.append("         ON  KK1681_CORSE_MY.SVC_KEI_UCWK_NO = KK0341.SVC_KEI_UCWK_NO ")
						.append("         AND KK1681_CORSE_MY.MK_FLG = '0' ")
						.append("         AND KK1681_CORSE_MY.IDO_RSV_STAT_CD IN ('00','03') ")
						.append("         AND KK1681_CORSE_MY.IDO_RSV_DTL_CD  = '003' ")
						.append("         AND KK1681_CORSE_MY.SVC_KEI_NO IS NULL ")
						// ●(8)異動予約　コース変更（サービス契約）
						.append("    LEFT OUTER JOIN KK_T_IDO_RSV KK1681_CORSE_SVC ")
						.append("         ON  KK1681_CORSE_SVC.SVC_KEI_NO = KK0341.SVC_KEI_NO ")
						.append("         AND KK1681_CORSE_SVC.MK_FLG = '0' ")
						.append("         AND KK1681_CORSE_SVC.IDO_RSV_STAT_CD IN ('00','03') ")
						.append("         AND KK1681_CORSE_SVC.IDO_RSV_DTL_CD  = '003' ")
						.append("         AND KK1681_CORSE_SVC.SVC_KEI_UCWK_NO IS NULL ")

				// WHERE条件
						.append(" WHERE ")
						.append("     KK0341.KKTK_SVC_KEI_STAT IN ('220','210','100','010','020','030') ");

				// 手修正 START
				if (hasKeySvcKeiNo)
				{
					sql_Buff.append(" AND KK0341.SVC_KEI_NO = ? ");
				}
				if (hasKeyKktkSvcCd)
				{
					sql_Buff.append(" AND KK0341.KKTK_SVC_CD = ? ");
				}
				if (hasKeyKktkSvcKeiNo)
				{
					sql_Buff.append(" AND KK0341.KKTK_SVC_KEI_NO = ? ");
				}
				// 手修正 END

				sql_Buff.append("     AND (KK0341.KKTK_SVC_KEI_NO, KK0341.RSV_APLY_YMD || KK0341.GENE_ADD_DTM) = ( ")
						.append("         SELECT ")
						.append("             T6.KKTK_SVC_KEI_NO, MAX(T6.RSV_APLY_YMD || T6.GENE_ADD_DTM) AS KK0341_MAX ")
						.append("         FROM ")
						.append("             KK_T_KKTK_SVC_KEI T6 ")
						.append("         WHERE ")
						.append("             T6.KKTK_SVC_KEI_NO = KK0341.KKTK_SVC_KEI_NO ")
						.append("             AND T6.MK_FLG = '0' ")
						.append("             AND T6.RSV_APLY_CD = '2' ")
						.append("             AND T6.RSV_APLY_YMD <= ? ")
						.append("         GROUP BY T6.KKTK_SVC_KEI_NO ")
						.append("     ) ")
						.append(" ORDER BY ")
						.append("     KK0341.KKTK_SVC_KEI_NO ")
						.append("     , KK0341.GENE_ADD_DTM ");
			}

			//prepareStatementにSQL文をセット
			pstmt = con1.prepareStatement(sql_Buff.toString());

			//ログ出力(SQL文の出力)
			JSYejbLog.outlog(inContext, JSYejbLog.DBACCESS, this.getClass(), sql_Buff);

			// PreparedStatementの指定されたパラメータカラムに 指定された値を設定
			// 手修正 START
			if ( "1".equals( inMsg.getString(EKK0341B509CBSMsg.FUNC_CODE) ) || "2".equals( inMsg.getString(EKK0341B509CBSMsg.FUNC_CODE) ) ) {
				int i = 1;
				String opeDate = JCCModelCommon.getOpeDate(inMsg, null);
				Object keySvcKeiNo = inMsg.getObject(EKK0341B509CBSMsg.KEY_SVC_KEI_NO);
				Object keyKktkSvcCd = inMsg.getObject(EKK0341B509CBSMsg.KEY_KKTK_SVC_CD);
				Object keyKktkSvcKeiNo = inMsg.getObject(EKK0341B509CBSMsg.KEY_KKTK_SVC_KEI_NO);

				// パラメータの設定(運用日付を設定)
				CAANJDBCUtil.setParam(pstmt, i++, opeDate);
				// パラメータの設定(運用日付を設定)
				CAANJDBCUtil.setParam(pstmt, i++, opeDate);
				// パラメータの設定(運用日付を設定)
				CAANJDBCUtil.setParam(pstmt, i++, opeDate);
				// パラメータの設定(運用日付を設定)
				CAANJDBCUtil.setParam(pstmt, i++, opeDate);
				if (hasKeySvcKeiNo)
				{
				// パラメータの設定(ＫＥＹ＿サービス契約番号を指定)
					CAANJDBCUtil.setParam(pstmt, i++, keySvcKeiNo);
				}

				// パラメータの設定(運用日付を設定)
				CAANJDBCUtil.setParam(pstmt, i++, opeDate);
				// パラメータの設定(運用日付を設定)
				CAANJDBCUtil.setParam(pstmt, i++, opeDate);

				if (hasKeySvcKeiNo)
				{
				// パラメータの設定(ＫＥＹ＿サービス契約番号を指定)
					CAANJDBCUtil.setParam(pstmt, i++, keySvcKeiNo);
				}
				if (hasKeyKktkSvcCd)
				{
				// パラメータの設定(ＫＥＹ＿機器提供サービスコードを指定)
					CAANJDBCUtil.setParam(pstmt, i++, keyKktkSvcCd);
				}
				if (hasKeyKktkSvcKeiNo)
				{
				// パラメータの設定(ＫＥＹ＿機器提供サービス契約番号を指定)
					CAANJDBCUtil.setParam(pstmt, i++, keyKktkSvcKeiNo);
				}

				if (hasKeySvcKeiNo)
				{
					// パラメータの設定(ＫＥＹ＿サービス契約番号を指定)
					CAANJDBCUtil.setParam(pstmt, i++, keySvcKeiNo);
				}
				if (hasKeyKktkSvcCd)
				{
					// パラメータの設定(ＫＥＹ＿機器提供サービスコードを指定)
					CAANJDBCUtil.setParam(pstmt, i++, keyKktkSvcCd);
				}
				if (hasKeyKktkSvcKeiNo)
				{
					// パラメータの設定(ＫＥＹ＿機器提供サービス契約番号を指定)
					CAANJDBCUtil.setParam(pstmt, i++, keyKktkSvcKeiNo);
				}
				// パラメータの設定(運用日付を設定)
				CAANJDBCUtil.setParam(pstmt, i++, opeDate);
				// パラメータの設定(運用日付を設定)
				CAANJDBCUtil.setParam(pstmt, i++, opeDate);
				// パラメータの設定(運用日付を設定)
				CAANJDBCUtil.setParam(pstmt, i++, opeDate);
				// パラメータの設定(運用日付を設定)
				CAANJDBCUtil.setParam(pstmt, i++, opeDate);

				// パラメータの設定(運用日付を設定)
				CAANJDBCUtil.setParam(pstmt, i++, opeDate);
				if (hasKeySvcKeiNo)
				{
					// パラメータの設定(ＫＥＹ＿サービス契約番号を指定)
					CAANJDBCUtil.setParam(pstmt, i++, keySvcKeiNo);
				}

				if (hasKeySvcKeiNo)
				{
					// パラメータの設定(ＫＥＹ＿サービス契約番号を指定)
					CAANJDBCUtil.setParam(pstmt, i++, keySvcKeiNo);
				}
				if (hasKeyKktkSvcCd)
				{
					// パラメータの設定(ＫＥＹ＿機器提供サービスコードを指定)
					CAANJDBCUtil.setParam(pstmt, i++, keyKktkSvcCd);
				}
				if (hasKeyKktkSvcKeiNo)
				{
					// パラメータの設定(ＫＥＹ＿機器提供サービス契約番号を指定)
					CAANJDBCUtil.setParam(pstmt, i++, keyKktkSvcKeiNo);
				}
				// パラメータの設定(運用日付を設定)
				CAANJDBCUtil.setParam(pstmt, i++, opeDate);
			}
			// 手修正 END

			// ResultSetの取得
			rsltQuery = pstmt.executeQuery();

			// EKK0341B509CBSMsgの明細にセットする項目
			String[] msgKeyList1 = {
					  EKK0341B509CBSMsg1List.KKTK_SVC_KEI_NO
					, EKK0341B509CBSMsg1List.GENE_ADD_DTM
					, EKK0341B509CBSMsg1List.KKTK_SVC_CD
					, EKK0341B509CBSMsg1List.KIKI_SEIZO_NO
					, EKK0341B509CBSMsg1List.SVC_KEI_NO
					, EKK0341B509CBSMsg1List.SVC_KEI_UCWK_NO
					, EKK0341B509CBSMsg1List.KKTK_SVC_KEI_STAT
					, EKK0341B509CBSMsg1List.STATUS_FLG
					, EKK0341B509CBSMsg1List.PCRS_CD
					, EKK0341B509CBSMsg1List.PCRS_CD_NM
					, EKK0341B509CBSMsg1List.PPLAN_CD
					, EKK0341B509CBSMsg1List.TAKNKIKI_MODEL_CD
					, EKK0341B509CBSMsg1List.IDO_DIV
					, EKK0341B509CBSMsg1List.TK_HOSHIKI_KEI_NO
					, EKK0341B509CBSMsg1List.HDD_CAPA_CD
					, EKK0341B509CBSMsg1List.HDD_CAPA_CD_NM
					, EKK0341B509CBSMsg1List.KKTK_SBT_CD
					, EKK0341B509CBSMsg1List.TAKNKIKI_SBT_CD
					, EKK0341B509CBSMsg1List.PNLTY_HASSEI_CD
					, EKK0341B509CBSMsg1List.KIKI_CHG_NO
					, EKK0341B509CBSMsg1List.KIKI_CHG_RSN_CD
					, EKK0341B509CBSMsg1List.RSV_PCRS_CD
					, EKK0341B509CBSMsg1List.RSV_PCRS_CD_NM
					, EKK0341B509CBSMsg1List.RSV_PPLAN_CD
					, EKK0341B509CBSMsg1List.RSV_HDD_CAPA_CD
					, EKK0341B509CBSMsg1List.RSV_HDD_CAPA_CD_NM
					, EKK0341B509CBSMsg1List.IDO_RSV_NO
					, EKK0341B509CBSMsg1List.IDO_RSV_DTL_CD
					, EKK0341B509CBSMsg1List.IDO_RSV_APLY_YMD
					, EKK0341B509CBSMsg1List.MSKM_YMD
					, EKK0341B509CBSMsg1List.RSV_MSKM_YMD
					, EKK0341B509CBSMsg1List.IDO_MSKM_YMD
					, EKK0341B509CBSMsg1List.SVC_KEI_KAISEN_UCWK_NO
					, EKK0341B509CBSMsg1List.RSV_CHANNEL_NEXT
					, EKK0341B509CBSMsg1List.RSV_STAT_STB
					, EKK0341B509CBSMsg1List.RSV_STAT_CORSE
					, EKK0341B509CBSMsg1List.TOTAL_RSV_STAT_BS
					, EKK0341B509CBSMsg1List.TOTAL_RSV_STAT_STB
					, EKK0341B509CBSMsg1List.TOTAL_RSV_STAT_CORSE
			};

			// 明細に処理結果(ResultSet)をマッピング
			CAANMsg[] outMsg1 = mapMessageList(rsltQuery,msgKeyList1,"eo.ejb.cbs.cbsmsg.EKK0341B509CBSMsg1List",0);
			// inMsg(CBSMsg)に明細をセット
			inMsg.set("EKK0341B509CBSMsg1List", outMsg1);


		} catch(SQLException e) {
			inMsg.set(EKK0341B509CBSMsg.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(EKK0341B509CBSMsg.STATUS, StatusCodes.FIND_DB_ERR);
				throw new CAANRuntimeException(e);
			}
		}
	}
}
