/*******************************************************************************
*	 All Rights reserved,Copyright (c) K-Opticom 
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JSYejbEKK0491B505TPDA
*	ソースファイル名：JSYejbEKK0491B505TPDA.java
*	作成者			：EK910507
*	日付			：2013年01月31日
*＜機能概要＞
*	請求契約一覧照会(支払方法取得)テンプレートDBアクセス部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	ｖ1.00.00
*   ｖ4.00      2012/10/11  FJ)美濃原  【IT1-2012-0001273】システム日付をオンライン運用日付に修正
*   ｖ39.00.00  2018/11/02  FJ)黒田(耕)【ANK-3518-00-00】量販・訪販Webのサービス追加
*
********************************************************************************/

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.KK0491ETMsg;
import eo.ejb.cbs.cbsmsg.EKK0491B002CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0491B505CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0491B505CBSMsg1List;
import eo.ejb.common.JCCModelCommon;

/**
*
*  テンプレートDBアクセス部品　EKK0491B505_SQLF<br>
*  入力された項目からSQL文を動的に組み立て、<br>
*  検索結果をCBSMsgにセットします。<br>
*/
public class JSYejbEKK0491B505TPDA extends CAANSQLFacility implements TemplateDBAccessHandler{
	
	/**
	 * コンストラクタ
	 */
	public JSYejbEKK0491B505TPDA()	{
	}
	
	/**
	*   EKK0491B505_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(KK0491ETMsg.getTableName());
			
			
			// SQL文_基本部1
			StringBuffer sql_Buff = new StringBuffer();
			sql_Buff.append(" SELECT ")
					.append(" 	 KK0491.SEIKY_KEI_NO ")
					.append(" 	,KK0491.SEIKY_KEI_STAT ")
					.append(" 	,CD01.CD_DIV_NM AS SEIKY_KEI_STAT_NM ")
					.append(" 	,KK0491.SEIKY_WAY_CD ")
					.append(" 	,CD02.CD_DIV_NM AS SEIKY_WAY_CD_NM ")
					.append(" 	,KK0491.SEIKY_WAY_NO_KOZA ")
					.append(" 	,KK0491.SEIKY_WAY_NO_CRECARD ")
					.append(" 	,KK0501_01.BANK_NM ")
					.append(" 	,KK0501_01.BANK_SHITEN_NM ")
					.append(" 	,KK0501_01.KOZA_NO ")
					.append(" 	,kk0501_01.YOKIN_SHUMOKU_CD ")
					.append(" 	,CD03.CD_DIV_NM AS YOKIN_SHUMOKU_CD_NM ")
					.append(" 	,KK0521_01.CRECARD_COMP_NM ")
					.append(" 	,KK0521_01.CRECARD_NO ")
					.append(" 	,KK0501_01.TSUCHO_SYMBOL ")
					.append(" 	,KK0501_01.TSUCHO_NO ")
					.append(" 	,KK0491.SOHUS_NM ")
					.append(" 	,KK0491.SOHUS_CITY_NM ")
					.append(" 	,KK0491.SOHUS_OAZTSU_NM ")
					.append(" 	,KK0491.SOHUS_AZCHO_NM ")
					.append(" 	,KK0491.SOHUS_ADRTTM ")
					.append(" 	,KK0491.SOHUS_ADRRM ")
					.append(" 	,KK0491.SOHUS_BNCHIGO ")
					.append(" 	,KK0491.UPD_DTM ")
					.append(" 	,CASE  ")
					.append(" 		KK0491.SEIKY_WAY_CD ")
					.append(" 		WHEN '2' THEN 1 ")
					.append(" 		WHEN '3' THEN 2 ")
					.append(" 		WHEN '4' THEN 3 ")
					.append(" 		WHEN '1' THEN 4 ")
					.append(" 		ELSE  9 ")
					.append(" 	END DSP_ORDER ")
					.append(" FROM ")
					.append(" 	KK_T_SEIKY_KEI KK0491 ")
					.append(" 	LEFT OUTER JOIN ZM_M_CD_NM_KANRI CD01 ON ( ")
					.append(" 		KK0491.SEIKY_KEI_STAT  =  CD01.CD_DIV ")
					.append(" 		AND CD01.CD_SBT_CD     =  'CD00057'  ")
					.append(" 		AND CD01.CD_TSTAYMD    <= ? ")
					.append(" 		AND CD01.CD_TENDYMD    >= ? ")
					.append(" 		AND CD01.MK_FLG        = '0' ")
					.append(" 	) ")
					.append(" 	LEFT OUTER JOIN ZM_M_CD_NM_KANRI CD02 ON ( ")
					.append(" 		KK0491.SEIKY_WAY_CD    =  CD02.CD_DIV ")
					.append(" 		AND CD02.CD_SBT_CD     =  'CD00166'  ")
					.append(" 		AND CD02.CD_TSTAYMD    <= ? ")
					.append(" 		AND CD02.CD_TENDYMD    >= ? ")
					.append(" 		AND CD02.MK_FLG        = '0' ")
					.append(" 	) ")
					.append(" 	LEFT OUTER JOIN ( ")
					.append(" 		SELECT ")
					.append(" 			 KK0521.SEIKY_WAY_NO_CRECARD ")
					.append(" 			,KK0521.CRECARD_COMP_CD ")
					.append(" 			,KK0521.CRECARD_JIGYO_CD ")
					.append(" 			,KK0521.CRECARD_NO ")
					.append(" 			,KK0531.CRECARD_COMP_NM ")
					.append(" 			,KK0531.CRECARD_COMP_ALI ")
					.append(" 		FROM ")
					.append(" 			KK_T_CRECARD KK0521 ")
					.append(" 		INNER JOIN KK_M_CRECARD_COMP KK0531 ")
					.append(" 		ON		KK0531.CRECARD_COMP_CD = KK0521.CRECARD_COMP_CD ")
					.append(" 		AND		KK0531.CRECARD_JIGYO_CD = KK0521.CRECARD_JIGYO_CD ")
					.append(" 		WHERE	(KK0531.CRECARD_COMP_CD, KK0531.CRECARD_JIGYO_CD, KK0531.RSV_APLY_YMD || KK0531.GENE_ADD_DTM) = ")
					.append(" 				(SELECT KK0531_GENE.CRECARD_COMP_CD, KK0531_GENE.CRECARD_JIGYO_CD, MAX(KK0531_GENE.RSV_APLY_YMD || KK0531_GENE.GENE_ADD_DTM) AS KK0531_MAX ")
					.append(" 				 FROM KK_M_CRECARD_COMP KK0531_GENE ")
					.append(" 				 WHERE KK0531_GENE.CRECARD_COMP_CD = KK0531.CRECARD_COMP_CD ")
					.append(" 			     AND KK0531_GENE.CRECARD_JIGYO_CD = KK0531.CRECARD_JIGYO_CD ")
					.append(" 			     AND KK0531_GENE.CRECARD_COMP_TSTAYMD <= ? ")
					.append(" 			     AND KK0531_GENE.CRECARD_COMP_TENDYMD >= ? ")
					.append(" 			     AND KK0531_GENE.RSV_APLY_YMD <= ? ")
					.append(" 			     AND KK0531_GENE.MK_FLG = '0' ")
					.append(" 			     GROUP BY KK0531_GENE.CRECARD_COMP_CD, KK0531_GENE.CRECARD_JIGYO_CD) ")
					.append(" 		AND		(KK0521.SEIKY_WAY_NO_CRECARD, KK0521.GENE_ADD_DTM) = ")
					.append(" 				 (SELECT KK0521_GENE.SEIKY_WAY_NO_CRECARD, MAX(KK0521_GENE.GENE_ADD_DTM) AS KK0521_MAX ")
					.append(" 		     	  FROM KK_T_CRECARD KK0521_GENE ")
					.append(" 		     	  WHERE KK0521_GENE.SEIKY_WAY_NO_CRECARD = KK0521.SEIKY_WAY_NO_CRECARD ")
					.append(" 		     	  AND KK0521_GENE.MK_FLG = '0' ")
					.append(" 		     	  GROUP BY KK0521_GENE.SEIKY_WAY_NO_CRECARD ) ")
					.append(" 	) KK0521_01 ")
					.append(" 	ON KK0521_01.SEIKY_WAY_NO_CRECARD = KK0491.SEIKY_WAY_NO_CRECARD ")
					.append(" 	LEFT OUTER JOIN ( ")
					.append(" 		SELECT  ")
					.append("                           KK0501.SEIKY_WAY_NO_KOZA ")
					.append(" 		    ,KK0501.BANK_CD ")
					.append(" 		    ,KK0501.BANK_SHITEN_CD ")
					.append(" 		    ,KK0501.YOKIN_SHUMOKU_CD ")
					.append(" 		    ,KK0511.BANK_NM ")
					.append(" 		    ,KK0511.BANK_SHITEN_NM ")
					.append(" 		    ,KK0501.KOZA_NO ")
					.append("                          ,KK0501.TSUCHO_SYMBOL ")
					.append(" 		    ,KK0501.TSUCHO_NO ")
					.append(" 		FROM ")
					.append(" 			KK_T_KOZA KK0501 ")
					.append(" 		INNER JOIN KK_M_BANK KK0511 ")
					.append(" 		ON		KK0511.BANK_CD = KK0501.BANK_CD ")
					.append(" 		AND		KK0511.BANK_SHITEN_CD = KK0501.BANK_SHITEN_CD ")
					.append(" 		WHERE	(KK0511.BANK_CD, KK0511.BANK_SHITEN_CD, KK0511.RSV_APLY_YMD || KK0511.GENE_ADD_DTM) = ")
					.append(" 				(SELECT KK0511_GENE.BANK_CD, KK0511_GENE.BANK_SHITEN_CD, MAX(KK0511_GENE.RSV_APLY_YMD || KK0511_GENE.GENE_ADD_DTM) AS KK0511_MAX ")
					.append(" 				 FROM	KK_M_BANK KK0511_GENE ")
					.append(" 			     WHERE	KK0511_GENE.BANK_CD = KK0511.BANK_CD ")
					.append(" 			     AND	KK0511_GENE.BANK_SHITEN_CD = KK0511.BANK_SHITEN_CD ")
					.append("                                      AND KK0511_GENE.BANK_TSTAYMD <= ? ")
					.append(" 		                AND KK0511_GENE.BANK_TENDYMD >= ? ")
					.append(" 			     AND	KK0511_GENE.RSV_APLY_YMD <= ? ")
					.append(" 			     AND	KK0511_GENE.MK_FLG = '0' ")
					.append(" 			     GROUP BY KK0511_GENE.BANK_CD, KK0511_GENE.BANK_SHITEN_CD) ")
					.append(" 		AND     (KK0501.SEIKY_WAY_NO_KOZA, KK0501.GENE_ADD_DTM) = ")
					.append(" 		        (SELECT KK0501_GENE.SEIKY_WAY_NO_KOZA, MAX(KK0501_GENE.GENE_ADD_DTM) AS KK0501_MAX ")
					.append(" 		         FROM	KK_T_KOZA KK0501_GENE ")
					.append(" 		         WHERE	KK0501_GENE.SEIKY_WAY_NO_KOZA = KK0501.SEIKY_WAY_NO_KOZA ")
					.append(" 		         AND	KK0501_GENE.MK_FLG = '0' ")
					.append(" 		         GROUP BY KK0501_GENE.SEIKY_WAY_NO_KOZA ) ")
					.append(" 	 ) KK0501_01 ")
					.append(" 	 ON KK0501_01.SEIKY_WAY_NO_KOZA = KK0491.SEIKY_WAY_NO_KOZA ")
					.append(" 	LEFT OUTER JOIN ZM_M_CD_NM_KANRI CD03 ON ( ")
					.append(" 	    KK0501_01.YOKIN_SHUMOKU_CD =  CD03.CD_DIV ")
					.append(" 	    AND CD03.CD_SBT_CD         =  'CD00248'  ")
					.append(" 	    AND CD03.CD_TSTAYMD        <= ? ")
					.append(" 	    AND CD03.CD_TENDYMD        >= ? ")
					.append(" 	    AND CD03.MK_FLG            = '0' ")
					.append("     ) ");
			// SQL文_個別部1
			if ( "1".equals( inMsg.getObject(EKK0491B505CBSMsg.FUNC_CODE).toString() ) ) {
 				sql_Buff.append(" WHERE ")
						.append("      KK0491.MK_FLG  = '0' ")
						.append(" AND   ")
						.append("      KK0491.RSV_APLY_CD  = '2' ")
						.append(" AND   ")
						.append("      (KK0491.SEIKY_KEI_NO, KK0491.RSV_APLY_YMD || KK0491.GENE_ADD_DTM) = ( ")
						.append(" 	        SELECT ")
						.append("                         T.SEIKY_KEI_NO, MAX(T.RSV_APLY_YMD || T.GENE_ADD_DTM) AS MAX_RSV_GENE ")
						.append(" 	        FROM ")
						.append("                         KK_T_SEIKY_KEI T  ")
						.append(" 	        WHERE ")
						.append("                         T.SEIKY_KEI_NO  = KK0491.SEIKY_KEI_NO  ")
						.append(" 	        AND ")
						.append("                         T.MK_FLG  = '0' ")
						.append(" 	        AND ")
						.append("                         T.RSV_APLY_CD  = '2' ")
						.append(" 	        AND ")
						.append("                         T.RSV_APLY_YMD  <= ? ")
						.append("           GROUP BY T.SEIKY_KEI_NO ")
						.append(" 	        ) ")
						.append(" AND ")
						.append("      KK0491.SEIKY_KEI_NO IN ( ")
						.append("             SELECT DISTINCT ")
						.append("                         KK0321.SEIKY_KEI_NO ")
						.append("             FROM ")
						.append("                         KK_T_KAKINS KK0321 ")
						.append("             WHERE ")
						.append("                         KK0321.MK_FLG = 0 ")
						.append("             AND ")
						.append("                         KK0321.KAKINS_TSTAYMD <= ? ")
						.append("             AND ")
						.append("                         KK0321.KAKINS_TENDYMD >= ? ")
						.append("             AND ")
						.append("                         KK0321.SVC_KEI_NO IN ( ")
						.append("                                SELECT ")
						.append("                                            KK0081.SVC_KEI_NO ")
						.append("                                FROM ")
						.append("                                            KK_T_SVC_KEI KK0081 ")
						.append("                                WHERE ")
						.append("                                            KK0081.SYSID = ? ")
						.append("                                AND ")
						.append("                                            (KK0081.SVC_KEI_NO, KK0081.RSV_APLY_YMD || KK0081.GENE_ADD_DTM) = ( ")
						.append("                                                   SELECT ")
						.append("                                                               T2.SVC_KEI_NO, MAX(T2.RSV_APLY_YMD || T2.GENE_ADD_DTM) AS MAX_RSV_GENE ")
						.append("                                                   FROM ")
						.append("                                                               KK_T_SVC_KEI T2 ")
						.append("                                                   WHERE ")
						.append("                                                               T2.SVC_KEI_NO   = KK0081.SVC_KEI_NO ")
						.append("                                                   AND ")
						.append("                                                               T2.MK_FLG       = '0' ")
						.append("                                                   AND ")
						.append("                                                               T2.RSV_APLY_CD   = '2' ")
						.append("                                                   AND ")
						.append("                                                               T2.RSV_APLY_YMD  <= ? ")
						.append("                                                   GROUP BY T2.SVC_KEI_NO ")
						.append("                                            ) ")
						.append("                                AND ")
						.append("                                            KK0081.SVC_KEI_STAT NOT IN ('210' , '220' , '910' , '920') ")
						.append("                                AND ")
						.append("                                            KK0081.MK_FLG = '0' ")
						.append("                         ) ")
						.append("      ) ")
						.append(" ORDER BY ")
						.append("     DSP_ORDER ")
						.append("     ,SEIKY_KEI_NO ");
			}
			if ( "2".equals( inMsg.getObject(EKK0491B505CBSMsg.FUNC_CODE).toString() ) ) {
 				sql_Buff.append(" WHERE ")
						.append("   KK0491.SEIKY_KEI_NO IN ")
						.append("   ( ")
						.append("     SELECT DISTINCT ")
						.append("         KK0321.SEIKY_KEI_NO ")
						.append("       FROM ")
						.append("         KK_T_KAKINS KK0321 ")
						.append("       WHERE ")
						.append("         KK0321.KAKINS_TSTAYMD <= ? AND ")
						.append("         KK0321.KAKINS_TENDYMD >= ? AND ")
						.append("         KK0321.MK_FLG = 0 AND ")
						.append("         KK0321.SVC_KEI_NO IN ")
						.append("         ( ")
						.append("           SELECT ")
						.append("             KK0081.SVC_KEI_NO ")
						.append("           FROM ")
						.append("             KK_T_SVC_KEI KK0081 ")
						.append("           WHERE ")
						.append("             KK0081.SVC_KEI_NO IN ")
						.append("             ( ")
						.append("               SELECT ")
						.append("                 KK0241.SVC_KEI_NO ")
						.append("               FROM ")
						.append("               ( ")
						.append("                 SELECT ")
						.append("                   SVC_KEI_KAISEN_UCWK_NO ")
						.append("                 FROM ")
						.append("                   KK_T_SVKEI_KAISEN_UW T ")
						.append("                 WHERE ")
						.append("                   T.SVC_KEI_KAISEN_UCWK_NO =? ")
						.append("                   AND T.MK_FLG = 0 ")
						.append("               ) KK0251 ")
						.append("               INNER JOIN ")
						.append("               ( ")
						.append("                 SELECT ")
						.append("                   SVC_KEI_KAISEN_UCWK_NO, ")
						.append("                   SVC_KEI_NO ")
						.append("                 FROM ")
						.append("                   KK_T_KAISEN_TG_SVKEI T ")
						.append("                 WHERE ")
						.append("                   T.MK_FLG = 0 ")
						.append("                 AND ")
						.append("                   T.KAISEN_UCWK_USE_STAYMD <= ? ")
						.append("                 AND ")
						.append("                   T.KAISEN_UCWK_USE_ENDYMD = (  ")
						.append("                     SELECT  ")
						.append("                       MAX(KK0241_MAX.KAISEN_UCWK_USE_ENDYMD)  ")
						.append("                     FROM ")
						.append("                       KK_T_KAISEN_TG_SVKEI KK0241_MAX  ")
						.append("                     WHERE  ")
						.append("                       KK0241_MAX.SVC_KEI_NO = T.SVC_KEI_NO  ")
						.append("                     AND ")
						.append("                       KK0241_MAX.KAISEN_UCWK_USE_STAYMD <= ?  ")
						.append("                     AND ")
						.append("                       KK0241_MAX.MK_FLG = '0'  ")
						.append("                     GROUP BY  ")
						.append("                       KK0241_MAX.SVC_KEI_NO  ")
						.append("                   ) ")
						.append("               ) KK0241  ")
						.append("               ON KK0251.SVC_KEI_KAISEN_UCWK_NO = KK0241.SVC_KEI_KAISEN_UCWK_NO ")
						.append("             ) ")
						.append("             AND (KK0081.SVC_KEI_NO, KK0081.RSV_APLY_YMD || KK0081.GENE_ADD_DTM) = (SELECT ")
						.append("                                   T2.SVC_KEI_NO, MAX(T2.RSV_APLY_YMD || T2.GENE_ADD_DTM) AS MAX_RSV_GENE ")
						.append("                                 FROM ")
						.append("                                   KK_T_SVC_KEI T2 ")
						.append("                                 WHERE ")
						.append("                                   T2.SVC_KEI_NO   = KK0081.SVC_KEI_NO        AND ")
						.append("                                   T2.MK_FLG       = '0'      AND ")
						.append("                                   T2.RSV_APLY_CD   = '2'      AND ")
						.append("                                   T2.RSV_APLY_YMD  <= ? ")
						.append("                                 GROUP BY T2.SVC_KEI_NO ")
						.append("                                 ) ")
						.append("             AND KK0081.SVC_KEI_STAT NOT IN ('210' , '220' , '910' , '920') ")
						.append("             AND KK0081.MK_FLG=0 ")
						.append("           ) ")
						.append("        ) ")
						.append("  AND  KK0491.MK_FLG    = '0'  ")
						.append("  AND    KK0491.RSV_APLY_CD  = '2'  ")
						.append("  AND    (KK0491.SEIKY_KEI_NO, KK0491.RSV_APLY_YMD || KK0491.GENE_ADD_DTM) = (  ")
						.append("       SELECT  T.SEIKY_KEI_NO, MAX(T.RSV_APLY_YMD || T.GENE_ADD_DTM) AS MAX_RSV_GENE  ")
						.append("       FROM  KK_T_SEIKY_KEI T   ")
						.append("       WHERE  T.SEIKY_KEI_NO  = KK0491.SEIKY_KEI_NO   ")
						.append("       AND    T.MK_FLG    = '0'  ")
						.append("       AND    T.RSV_APLY_CD  = '2'  ")
						.append("       AND    T.RSV_APLY_YMD  <= ?  ")
						.append("       GROUP BY T.SEIKY_KEI_NO  ")
						.append("     )  ")
						.append(" ORDER BY  ")
						.append("   DSP_ORDER ")
						.append("   ,SEIKY_KEI_NO ");
			}
			if( "3".equals( inMsg.getObject(EKK0491B505CBSMsg.FUNC_CODE).toString() ) ){
				sql_Buff.append(" WHERE KK0491.SEIKY_KEI_NO = ? ")
						.append(" AND    (KK0491.SEIKY_KEI_NO, KK0491.UPD_DTM) =  ")
						.append("          (SELECT KK0491_01.SEIKY_KEI_NO, MAX(KK0491_01.UPD_DTM) AS KK0491_MAX ")
						.append("           FROM   KK_T_SEIKY_KEI KK0491_01 ")
						.append("           WHERE  KK0491_01.SEIKY_KEI_NO = KK0491.SEIKY_KEI_NO  ")
						.append("           GROUP BY KK0491_01.SEIKY_KEI_NO ) ");
			}
// ANK-3518-00-00 ADD START
			if ( "4".equals( inMsg.getObject(EKK0491B505CBSMsg.FUNC_CODE).toString() ) ) {
 				sql_Buff.append(" WHERE ")
				.append("      KK0491.MK_FLG  = '0' ")
				.append(" AND   ")
				.append("      KK0491.RSV_APLY_CD  = '2' ")
				.append(" AND   ")
				.append("      (KK0491.SEIKY_KEI_NO, KK0491.RSV_APLY_YMD || KK0491.GENE_ADD_DTM) = ( ")
				.append(" 	        SELECT ")
				.append("                         T.SEIKY_KEI_NO, MAX(T.RSV_APLY_YMD || T.GENE_ADD_DTM) AS MAX_RSV_GENE ")
				.append(" 	        FROM ")
				.append("                         KK_T_SEIKY_KEI T  ")
				.append(" 	        WHERE ")
				.append("                         T.SEIKY_KEI_NO  = KK0491.SEIKY_KEI_NO  ")
				.append(" 	        AND ")
				.append("                         T.MK_FLG  = '0' ")
				.append(" 	        AND ")
				.append("                         T.RSV_APLY_CD  = '2' ")
				.append(" 	        AND ")
				.append("                         T.RSV_APLY_YMD  <= ? ")
				.append("           GROUP BY T.SEIKY_KEI_NO ")
				.append(" 	        ) ")
				.append(" AND ")
				.append("      KK0491.SEIKY_KEI_NO IN ( ")
				.append("             SELECT DISTINCT ")
				.append("                         KK0321.SEIKY_KEI_NO ")
				.append("             FROM ")
				.append("                         KK_T_KAKINS KK0321 ")
				.append("             WHERE ")
				.append("                         KK0321.MK_FLG = '0' ")
				.append("             AND ")
				.append("                         KK0321.KAKINS_TSTAYMD <= ? ")
				.append("             AND ")
				.append("                         KK0321.KAKINS_TENDYMD >= ? ")
				.append("             AND ")
				.append("                         KK0321.SVC_KEI_NO IN ( ")
				.append("                                SELECT ")
				.append("                                            KK0081.SVC_KEI_NO ")
				.append("                                FROM ")
				.append("                                            KK_T_SVC_KEI KK0081 ")
				.append("                                WHERE ")
				.append("                                            KK0081.SYSID = ? ")
				.append("                                AND ")
				.append("                                            KK0081.SVC_KEI_NO = ? ")
				.append("                                AND ")
				.append("                                            (KK0081.SVC_KEI_NO, KK0081.RSV_APLY_YMD || KK0081.GENE_ADD_DTM) = ( ")
				.append("                                                   SELECT ")
				.append("                                                               T2.SVC_KEI_NO, MAX(T2.RSV_APLY_YMD || T2.GENE_ADD_DTM) AS MAX_RSV_GENE ")
				.append("                                                   FROM ")
				.append("                                                               KK_T_SVC_KEI T2 ")
				.append("                                                   WHERE ")
				.append("                                                               T2.SVC_KEI_NO   = KK0081.SVC_KEI_NO ")
				.append("                                                   AND ")
				.append("                                                               T2.MK_FLG       = '0' ")
				.append("                                                   AND ")
				.append("                                                               T2.RSV_APLY_CD   = '2' ")
				.append("                                                   AND ")
				.append("                                                               T2.RSV_APLY_YMD  <= ? ")
				.append("                                                   GROUP BY T2.SVC_KEI_NO ")
				.append("                                            ) ")
				.append("                                AND ")
				.append("                                            KK0081.SVC_KEI_STAT NOT IN ('210' , '220' , '910' , '920') ")
				.append("                                AND ")
				.append("                                            KK0081.MK_FLG = '0' ")
				.append("                         ) ")
				.append("      ) ")
				.append(" ORDER BY ")
				.append("     DSP_ORDER ")
				.append("     ,SEIKY_KEI_NO ");
			}
// ANK-3518-00-00 ADD END
			
			//prepareStatementにSQL文をセット
			pstmt = con1.prepareStatement(sql_Buff.toString());
			
			//ログ出力(SQL文の出力)
			JSYejbLog.outlog(inContext, JSYejbLog.DBACCESS, this.getClass(), sql_Buff);
			
			// ●運用日の取得
			String opedate = JCCModelCommon.getOpeDate(inMsg, null);
			
			// PreparedStatementの指定されたパラメータカラムに 指定された値を設定
			if ( "1".equals( inMsg.getString(EKK0491B505CBSMsg.FUNC_CODE) ) ) {
				// パラメータの設定(ＫＥＹ＿ＳＹＳＩＤを指定)
				CAANJDBCUtil.setParam(pstmt, 1, opedate);
				CAANJDBCUtil.setParam(pstmt, 2, opedate);
				CAANJDBCUtil.setParam(pstmt, 3, opedate);
				CAANJDBCUtil.setParam(pstmt, 4, opedate);
				CAANJDBCUtil.setParam(pstmt, 5, opedate);
				CAANJDBCUtil.setParam(pstmt, 6, opedate);
				CAANJDBCUtil.setParam(pstmt, 7, opedate);
				CAANJDBCUtil.setParam(pstmt, 8, opedate);
				CAANJDBCUtil.setParam(pstmt, 9, opedate);
				CAANJDBCUtil.setParam(pstmt, 10, opedate);
				CAANJDBCUtil.setParam(pstmt, 11, opedate);
				CAANJDBCUtil.setParam(pstmt, 12, opedate);
				CAANJDBCUtil.setParam(pstmt, 13, opedate);
				CAANJDBCUtil.setParam(pstmt, 14, opedate);
				CAANJDBCUtil.setParam(pstmt, 15, opedate);
				CAANJDBCUtil.setParam(pstmt, 16, inMsg.getObject(EKK0491B505CBSMsg.KEY_SYSID));
				CAANJDBCUtil.setParam(pstmt, 17, opedate);
			}
			if ( "2".equals( inMsg.getString(EKK0491B505CBSMsg.FUNC_CODE) ) ) {
				// パラメータの設定(ＫＥＹ＿サービス契約回線内訳番号を指定)
				CAANJDBCUtil.setParam(pstmt, 1, opedate);
				CAANJDBCUtil.setParam(pstmt, 2, opedate);
				CAANJDBCUtil.setParam(pstmt, 3, opedate);
				CAANJDBCUtil.setParam(pstmt, 4, opedate);
				CAANJDBCUtil.setParam(pstmt, 5, opedate);
				CAANJDBCUtil.setParam(pstmt, 6, opedate);
				CAANJDBCUtil.setParam(pstmt, 7, opedate);
				CAANJDBCUtil.setParam(pstmt, 8, opedate);
				CAANJDBCUtil.setParam(pstmt, 9, opedate);
				CAANJDBCUtil.setParam(pstmt, 10, opedate);
				CAANJDBCUtil.setParam(pstmt, 11, opedate);
				CAANJDBCUtil.setParam(pstmt, 12, opedate);
				CAANJDBCUtil.setParam(pstmt, 13, opedate);
				CAANJDBCUtil.setParam(pstmt, 14, opedate);
				CAANJDBCUtil.setParam(pstmt, 15, inMsg.getObject(EKK0491B505CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO));
				CAANJDBCUtil.setParam(pstmt, 16, opedate);
				CAANJDBCUtil.setParam(pstmt, 17, opedate);
				CAANJDBCUtil.setParam(pstmt, 18, opedate);
				CAANJDBCUtil.setParam(pstmt, 19, opedate);
			}
			if ( "3".equals( inMsg.getString(EKK0491B505CBSMsg.FUNC_CODE) ) ) {
				CAANJDBCUtil.setParam(pstmt, 1, opedate);
				CAANJDBCUtil.setParam(pstmt, 2, opedate);
				CAANJDBCUtil.setParam(pstmt, 3, opedate);
				CAANJDBCUtil.setParam(pstmt, 4, opedate);
				CAANJDBCUtil.setParam(pstmt, 5, opedate);
				CAANJDBCUtil.setParam(pstmt, 6, opedate);
				CAANJDBCUtil.setParam(pstmt, 7, opedate);
				CAANJDBCUtil.setParam(pstmt, 8, opedate);
				CAANJDBCUtil.setParam(pstmt, 9, opedate);
				CAANJDBCUtil.setParam(pstmt, 10, opedate);
				CAANJDBCUtil.setParam(pstmt, 11, opedate);
				CAANJDBCUtil.setParam(pstmt, 12, opedate);
				CAANJDBCUtil.setParam(pstmt, 13, inMsg.getObject(EKK0491B505CBSMsg.KEY_SEIKY_KEI_NO));
			}
// ANK-3518-00-00 ADD START
			if ( "4".equals( inMsg.getString(EKK0491B505CBSMsg.FUNC_CODE) ) ) {
				CAANJDBCUtil.setParam(pstmt, 1, opedate);
				CAANJDBCUtil.setParam(pstmt, 2, opedate);
				CAANJDBCUtil.setParam(pstmt, 3, opedate);
				CAANJDBCUtil.setParam(pstmt, 4, opedate);
				CAANJDBCUtil.setParam(pstmt, 5, opedate);
				CAANJDBCUtil.setParam(pstmt, 6, opedate);
				CAANJDBCUtil.setParam(pstmt, 7, opedate);
				CAANJDBCUtil.setParam(pstmt, 8, opedate);
				CAANJDBCUtil.setParam(pstmt, 9, opedate);
				CAANJDBCUtil.setParam(pstmt, 10, opedate);
				CAANJDBCUtil.setParam(pstmt, 11, opedate);
				CAANJDBCUtil.setParam(pstmt, 12, opedate);
				CAANJDBCUtil.setParam(pstmt, 13, opedate);
				CAANJDBCUtil.setParam(pstmt, 14, opedate);
				CAANJDBCUtil.setParam(pstmt, 15, opedate);
				// パラメータの設定(ＫＥＹ＿ＳＹＳＩＤを指定)
				CAANJDBCUtil.setParam(pstmt, 16, inMsg.getObject(EKK0491B505CBSMsg.KEY_SYSID));
				// パラメータの設定(ＫＥＹ＿サービス契約番号を指定)
				CAANJDBCUtil.setParam(pstmt, 17, inMsg.getObject(EKK0491B505CBSMsg.KEY_SVC_KEI_NO));
				CAANJDBCUtil.setParam(pstmt, 18, opedate);
			}
// ANK-3518-00-00 ADD END
			
			// ResultSetの取得
			rsltQuery = pstmt.executeQuery();
			
			// EKK0491B505CBSMsgの明細にセットする項目
			String[] msgKeyList1 = {
					  EKK0491B505CBSMsg1List.SEIKY_KEI_NO
					, EKK0491B505CBSMsg1List.SEIKY_KEI_STAT
					, EKK0491B505CBSMsg1List.SEIKY_KEI_STAT_NM
					, EKK0491B505CBSMsg1List.SEIKY_WAY_CD
					, EKK0491B505CBSMsg1List.SEIKY_WAY_CD_NM
					, EKK0491B505CBSMsg1List.SEIKY_WAY_NO_KOZA
					, EKK0491B505CBSMsg1List.SEIKY_WAY_NO_CRECARD
					, EKK0491B505CBSMsg1List.BANK_NM
					, EKK0491B505CBSMsg1List.BANK_SHITEN_NM
					, EKK0491B505CBSMsg1List.KOZA_NO
					, EKK0491B505CBSMsg1List.YOKIN_SHUMOKU_CD
					, EKK0491B505CBSMsg1List.YOKIN_SHUMOKU_CD_NM
					, EKK0491B505CBSMsg1List.CRECARD_COMP_NM
					, EKK0491B505CBSMsg1List.CRECARD_NO
					, EKK0491B505CBSMsg1List.TSUCHO_SYMBOL
					, EKK0491B505CBSMsg1List.TSUCHO_NO
					, EKK0491B505CBSMsg1List.SOHUS_NM
					, EKK0491B505CBSMsg1List.SOHUS_CITY_NM
					, EKK0491B505CBSMsg1List.SOHUS_OAZTSU_NM
					, EKK0491B505CBSMsg1List.SOHUS_AZCHO_NM
					, EKK0491B505CBSMsg1List.SOHUS_ADRTTM
					, EKK0491B505CBSMsg1List.SOHUS_ADRRM
					, EKK0491B505CBSMsg1List.SOHUS_BNCHIGO
					, EKK0491B505CBSMsg1List.UPD_DTM
			};
			
			// 明細に処理結果(ResultSet)をマッピング
			CAANMsg[] outMsg1 = mapMessageList(rsltQuery,msgKeyList1,"eo.ejb.cbs.cbsmsg.EKK0491B505CBSMsg1List",0);
						
			for(int i = 0; i < outMsg1.length; i ++ )
			{
				// クレジットカード番号が設定されている場合
				if (!outMsg1[i].isNull(EKK0491B002CBSMsg1List.CRECARD_NO))
				{
					// クレジットカード番号を復号化部品で復号化し、明細にマッピング
					outMsg1[i].set(EKK0491B002CBSMsg1List.CRECARD_NO, 
							JCCModelCommon.getDecryptResult(inMsg, inContext, outMsg1[i].getString(EKK0491B002CBSMsg1List.CRECARD_NO)));
				}
			}
	
			
			// inMsg(CBSMsg)に明細をセット
			inMsg.set("EKK0491B505CBSMsg1List", outMsg1);
			

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