/*******************************************************************************
*	 All Rights reserved,Copyright (c) K-Opticom 
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JSYejbEKK0191B001TPDA
*	ソースファイル名：JSYejbEKK0191B001TPDA.java
*	作成者			：EK912022
*	日付			：2013年01月28日
*＜機能概要＞
*	サービス契約内訳<eo光電話>一覧照会テンプレートDBアクセス部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	ｖ4.00.00   2013/01/15  FJ）藤本    ST3-2013-0000023
*	ｖ4.00.01   2013/01/28  FJ）坂本    IT1-2013-0000099
*	ｖ4.00.02   2013/03/04  FJ）福井    IT1-2013-0000321
*	ｖ4.00.03   2013/03/22  FJ）沖田    OT-2013-0000311
*	ｖ4.00.04   2013/03/22  FJ）福井    OT-2013-0000311
*	ｖ4.00.05   2013/04/09  FJ）沖田    IT1-2013-0000762,IT1-2013-0000816
*	ｖ4.00.06   2013/04/09  FJ）福井    IT1-2013-0000940
*   ｖ5.00.00   2013/10/10  FJ）寺本    OM-2013-0002709
*   ｖ7.00.00   2013/11/22  FJ）寺園    ANK-1578-00-00
*   ｖ7.00.01   2013/12/09  FJ）寺園    ANK-1578-00-00
*   ｖ7.00.02   2014/04/16  FJ）河井    OM-2014-0001452
*   ｖ72.00.00  2024/08/26  FJ）森      ANK-4494-00-00_【eo定期】 双方向番ポ対応
********************************************************************************/

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.KK0191ETMsg;
import eo.ejb.cbs.cbsmsg.EKK0191B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0191B001CBSMsg1List;
import eo.ejb.common.JKKModelCommon;

/**
*
*  テンプレートDBアクセス部品　EKK0191B001_SQLF<br>
*  入力された項目からSQL文を動的に組み立て、<br>
*  検索結果をCBSMsgにセットします。<br>
*/
public class JSYejbEKK0191B001TPDA extends CAANSQLFacility implements TemplateDBAccessHandler{
	
	/**
	 * コンストラクタ
	 */
	public JSYejbEKK0191B001TPDA()	{
	}
	
	/**
	*   EKK0191B001_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(KK0191ETMsg.getTableName());
			
			
			// SQL文_基本部1
			StringBuffer sql_Buff = new StringBuffer();
			sql_Buff.append(" SELECT KK0161.SVC_KEI_UCWK_NO ")
					.append("      , KK0161.MSKM_DTL_NO ")
					.append("      , KK0161.PCRS_CD ")
					.append("      , KK0161.PPLAN_CD ")
					.append("      , KK0161.SVC_KEI_UCWK_STAT ")
					.append("      , ( SELECT ZM0171.CD_DIV_NM ")
					.append("          FROM   ZM_M_CD_NM_KANRI ZM0171 ")
					.append("          WHERE  ZM0171.CD_SBT_CD = 'CD00037' ")
					.append("          AND    ZM0171.CD_DIV = KK0161.SVC_KEI_UCWK_STAT ")
					.append("          AND    ZM0171.MK_FLG = '0' ")
					.append("        ) AS SVC_KEI_UCWK_STAT_NM ")
					.append("      , KK0161.SVC_STA_YMD ")
					.append("      , KK0161.SVC_ENDYMD ")
					.append("      , KK0191.TELNO ")
					.append("      , KK0191.BMP_UM ")
					.append("      , KK0191.VA_TAKNKIKI_MODEL_CD ")
					.append("      , KK0191.VA_PORT_NO ")
					.append("      , KK0191.DSL_PAUSE_TOKI_STA_YMD ")
					.append("      , KK0191.DSL_PAUSE_TOKI_END_YMD ")
					.append("      , KK0191.NTT_NO_GUIDE_UM ")
					.append("      , KK0191.VA_KIKI_SEIZO_NO ")
					.append("      , KK0191.SHK_TEL_OP_SETTE_RMTS_PWD ")
					.append("      , KK0191.TEL_OP_SETTE_RMTS_PWD ")
					.append("      , KK0191.PAUSE_TOKI_END_SBT_CD  ")
					.append("      , KK0191.TELNO_JUN ")
					.append("      , KK0191.HELLOPAGE_KEISAI_UM ")
					.append("      , KK0191.VA_KIKI_CHG_NO ")
					.append("      , KK0191.DSL_PAUSE_TOKI_SBT_CD ")
					.append("      , KK0191.ITENS_OPAF_TOKI_SBT_CD ")
					.append("      , KK0191.ITENS_OPAF_TOKI_STA_YMD ")
					.append("      , KK0191.ITENS_OPAF_TOKI_END_YMD ")
					.append("      , KK0161.KEIZK_MT_SVC_KEI_UCWK_NO  ")
					.append("      , KK0161.KEIZK_AF_KEI_CHGECHU_FLG  ")
					.append("      , KK0191.DSL_PAUSE_TOKI_ADD_CD ")
					.append("      , KK0191.DSL_PAUSE_TOKI_KIBO_UM ")
					.append("      , KK0191.DSL_PAUSE_TOKI_STA_RSYMD ")
					.append("      , KK0191.DSL_PAUSE_TOKI_END_RSYMD ")
					.append("      , KK0191.DSL_PAUSE_TOKI_TSS_TLN ")
					.append("      , KK0191.DSL_PAUSE_TOKI_TSS_SVKUWNO ")
					.append("      , KK0191.ITENS_OPAF_TOKI_ADD_CD ")
					.append("      , KK0191.ITENS_OPAF_TOKI_KIBO_UM ")
					.append("      , KK0191.ITENS_OPAF_TOKI_STA_RSYMD ")
					.append("      , KK0191.ITENS_OPAF_TOKI_END_RSYMD ")
					.append("      , KK0191.ITNS_OPAF_TOKI_TSS_SVKUWNO ")
					.append("      , KK0161.DSP_SVC_KEI_UCWK_STAT ")
					.append("      , ( SELECT ZM0171.CD_DIV_NM ")
					.append("          FROM   ZM_M_CD_NM_KANRI ZM0171 ")
					.append("          WHERE  ZM0171.CD_SBT_CD = 'CD01586' ")
					.append("          AND    ZM0171.CD_DIV = KK0161.DSP_SVC_KEI_UCWK_STAT ")
					.append("          AND    ZM0171.MK_FLG = '0' ")
					.append("        ) AS DSP_SVC_KEI_UCWK_STAT_NM ")
					// v72.00.00 ANK-4994-00-00 MOD START
					//.append("      , KK0191.DOBANITEN_MSKM_UM ");
					.append("      , KK0191.DOBANITEN_MSKM_UM ")
					// v72.00.00 ANK-4994-00-00 MOD END
					// v72.00.00 ANK-4994-00-00 ADD START
					.append("      , KK0191.KOJI_JSSI_WAY ")
					.append("      , ( SELECT ZM0171.CD_DIV_NM ")
					.append("          FROM   ZM_M_CD_NM_KANRI ZM0171 ")
					.append("          WHERE  ZM0171.CD_SBT_CD = 'CD01832' ")
					.append("          AND    ZM0171.CD_DIV = KK0191.KOJI_JSSI_WAY ")
					.append("          AND    ZM0171.MK_FLG = '0' ")
					.append("        ) AS KOJI_JSSI_WAY_NM ")
					.append("      , KK0191.SOTEI_SWITCH_TIMEZ ")
					.append("      , ( SELECT ZM0171.CD_DIV_NM ")
					.append("          FROM   ZM_M_CD_NM_KANRI ZM0171 ")
					.append("          WHERE  ZM0171.CD_SBT_CD IN ('CD01833','CD01837') ")
					.append("          AND    ZM0171.CD_DIV = KK0191.SOTEI_SWITCH_TIMEZ ")
					.append("          AND    ZM0171.MK_FLG = '0' ")
					.append("        ) AS SOTEI_SWITCH_TIMEZ_NM ");
			// v72.00.00 ANK-4994-00-00 ADD END
			if ("7".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString()))
			{
				sql_Buff.append("      , KK0341_01.TAKNKIKI_SBT_CD ")
						.append("      , KK0341_01.KKTK_SVC_NM ");
			}
			else 
			{
				sql_Buff.append("      , NULL AS TAKNKIKI_SBT_CD ")
						.append("      , NULL AS KKTK_SVC_NM ");
			}
			sql_Buff.append(" FROM (")
					.append("       SELECT KK0161_TMP.*, ")
					.append("           CASE WHEN  KK0161_TMP.KEIZK_AF_KEI_CHGECHU_FLG = '1' ")
					.append("                      AND KK0081_TMP.SVC_KEI_STAT = '100'  ")
					.append("                THEN  '121'  ")
					.append("                WHEN  EXISTS ")
					.append("                      (SELECT 1  ")
					.append("                       FROM KK_T_SVC_KEI_UCWK KK0161_01 ")
					.append("                       WHERE KK0161_TMP.SVC_KEI_UCWK_NO = KK0161_01.KEIZK_MT_SVC_KEI_UCWK_NO ")
					.append("                       AND   KK0161_01.KEIZK_AF_KEI_CHGECHU_FLG = '1' ")
					.append("                       AND   KK0081_TMP.SVC_KEI_STAT = '100' ")
					.append("                       AND   (KK0161_01.SVC_KEI_UCWK_NO, KK0161_01.RSV_APLY_YMD || KK0161_01.GENE_ADD_DTM) =  ")
					.append("                             (SELECT KK0161_GENE.SVC_KEI_UCWK_NO, MAX(KK0161_GENE.RSV_APLY_YMD || KK0161_GENE.GENE_ADD_DTM) AS KK0161_MAX  ")
					.append("                              FROM   KK_T_SVC_KEI_UCWK KK0161_GENE  ")
					.append("                              WHERE  KK0161_GENE.SVC_KEI_UCWK_NO = KK0161_01.SVC_KEI_UCWK_NO  ")
					.append("                              AND    KK0161_GENE.RSV_APLY_YMD <= ?  ")
					.append("                              AND    KK0161_GENE.RSV_APLY_CD = '2'  ")
					.append("                              AND    KK0161_GENE.MK_FLG = '0'  ")
					.append("                              GROUP BY KK0161_GENE.SVC_KEI_UCWK_NO) ")
					.append("                       ) ")
					.append("                THEN  '120'  ")
					.append("                WHEN  KK0161_TMP.SVC_KEI_UCWK_STAT = '210'  ")
					.append("                       AND  KK0161_TMP.PAUSE_STP_CD = '02' ")
					.append("                THEN  '211'  ")
					.append("                WHEN  KK0161_TMP.SVC_KEI_UCWK_STAT = '910' ")
					.append("                       AND  KK0161_TMP.SVC_DLRE_CD  = '02' ")
					.append("                THEN  '911'  ")
					.append("                ELSE  KK0161_TMP.SVC_KEI_UCWK_STAT  ")
					.append("             END AS DSP_SVC_KEI_UCWK_STAT")
					.append("       FROM KK_T_SVC_KEI_UCWK KK0161_TMP")
					.append("            INNER JOIN KK_T_SVC_KEI KK0081_TMP ")
					.append("            ON KK0161_TMP.SVC_KEI_NO = KK0081_TMP.SVC_KEI_NO ")
					.append("       WHERE  ")
					.append("            KK0161_TMP.SVC_KEI_NO = ? ")
					.append("            AND (KK0081_TMP.SVC_KEI_NO, KK0081_TMP.RSV_APLY_YMD || KK0081_TMP.GENE_ADD_DTM) = ") 
					.append("                  (SELECT KK0081_TMP_GENE.SVC_KEI_NO, MAX(KK0081_TMP_GENE.RSV_APLY_YMD || KK0081_TMP_GENE.GENE_ADD_DTM) AS KK0081_TMP_MAX ") 
        			.append("                   FROM KK_T_SVC_KEI KK0081_TMP_GENE  ")
        			.append("                   WHERE KK0081_TMP_GENE.SVC_KEI_NO = KK0081_TMP.SVC_KEI_NO ") 
        			.append("                   AND KK0081_TMP_GENE.RSV_APLY_YMD <= ?  ")
        			.append("                   AND KK0081_TMP_GENE.RSV_APLY_CD = '2' ")
        			.append("                   AND KK0081_TMP_GENE.MK_FLG = '0' ")
        			.append("                   GROUP BY KK0081_TMP_GENE.SVC_KEI_NO) ")
					.append(" ) KK0161 ")
					.append(" INNER JOIN ")
					.append("        KK_T_SVKEIUW_EOH_TEL KK0191 ")
					.append(" ON     KK0161.SVC_KEI_UCWK_NO = KK0191.SVC_KEI_UCWK_NO ")
					.append(" AND    KK0161.GENE_ADD_DTM = KK0191.GENE_ADD_DTM ");
			if ("2".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString())
					|| "6".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString()))
			{
				sql_Buff.append(" INNER JOIN ")
						.append("        KK_T_SVC_KEI KK0081 ")
						.append(" ON     KK0081.SVC_KEI_NO = KK0161.SVC_KEI_NO ")
						.append(" INNER JOIN ")
						.append("        KK_M_PRC_GRP KK0781 ")
						.append(" ON     KK0781.PRC_GRP_CD = KK0081.PRC_GRP_CD ");
			}
			if ("7".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString()))
			{
				sql_Buff.append(" LEFT OUTER JOIN ")
						.append("       (SELECT  KK0341.TAKNKIKI_SBT_CD ")
						.append("               ,KK0341.KIKI_CHG_NO ")
						.append("               ,KK0771.KKTK_SVC_NM ")
						.append("        FROM    KK_T_KKTK_SVC_KEI KK0341 ")
						.append("        INNER JOIN ")
						.append("               KK_M_KKTK_SVC KK0771 ")
						.append("        ON     KK0771.KKTK_SVC_CD = KK0341.KKTK_SVC_CD ")
						.append("        AND    (KK0341.KKTK_SVC_KEI_NO, KK0341.RSV_APLY_YMD || KK0341.GENE_ADD_DTM) = ")
						.append("               (SELECT KK0341_GENE.KKTK_SVC_KEI_NO, MAX(KK0341_GENE.RSV_APLY_YMD || KK0341_GENE.GENE_ADD_DTM) AS KK0341_MAX ")
						.append("                FROM   KK_T_KKTK_SVC_KEI KK0341_GENE ")
						.append("                WHERE  KK0341_GENE.KKTK_SVC_KEI_NO = KK0341.KKTK_SVC_KEI_NO ")
						.append("                AND    KK0341_GENE.RSV_APLY_YMD <= ? ")
						.append("                AND    KK0341_GENE.RSV_APLY_CD = '2' ")
						.append("                AND    KK0341_GENE.MK_FLG = '0' ")
						.append("                GROUP BY KK0341_GENE.KKTK_SVC_KEI_NO) ")
						.append("        AND    KK0771.KKTK_SVC_TSTAYMD <= ?  ")
						.append("        AND    KK0771.KKTK_SVC_TENDYMD >= ?  ")
						.append("        AND    KK0771.MK_FLG = '0' ")
						.append("       ) KK0341_01 ")
						.append(" ON     KK0341_01.KIKI_CHG_NO = KK0191.VA_KIKI_CHG_NO ");
			}
			// SQL文_個別部1
			if ("1".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString())
					|| "2".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString())
					|| "3".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString())
					|| "4".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString())
					|| "5".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString())
					|| "6".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString())
					|| "7".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString())
					|| "8".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString()))
			{
				sql_Buff.append(" WHERE  KK0161.SVC_KEI_NO = ? ")
						.append(" AND    (KK0161.SVC_KEI_UCWK_NO, KK0161.RSV_APLY_YMD || KK0161.GENE_ADD_DTM) =  ")
						.append("        ( SELECT KK0161_GENE.SVC_KEI_UCWK_NO, MAX(KK0161_GENE.RSV_APLY_YMD || KK0161_GENE.GENE_ADD_DTM) AS KK0161_MAX  ")
						.append("          FROM   KK_T_SVC_KEI_UCWK KK0161_GENE  ")
						.append("          WHERE  KK0161_GENE.SVC_KEI_UCWK_NO = KK0161.SVC_KEI_UCWK_NO  ")
						.append("          AND    KK0161_GENE.RSV_APLY_CD = '2'  ")
						.append("          AND    KK0161_GENE.RSV_APLY_YMD <= ?  ")
						.append("          AND    KK0161_GENE.MK_FLG = '0'  ")
						.append("         GROUP BY KK0161_GENE.SVC_KEI_UCWK_NO  ")
						.append("        )  ")
						.append(" AND    KK0191.MK_FLG = '0' ");
			}
			if ("2".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString())
					|| "6".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString()))
			{
				sql_Buff.append(" AND    (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) AS KK0081_MAX  ")
						.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_CD = '2'  ")
						.append("          AND    KK0081_GENE.RSV_APLY_YMD <= ?  ")
						.append("          AND    KK0081_GENE.MK_FLG = '0'  ")
						.append("          GROUP BY KK0081_GENE.SVC_KEI_NO  ")
						.append("        )  ")
						.append(" AND    (KK0781.PRC_GRP_CD, KK0781.RSV_APLY_YMD || KK0781.GENE_ADD_DTM) =  ")
						.append("        ( SELECT KK0781_GENE.PRC_GRP_CD,MAX(KK0781_GENE.RSV_APLY_YMD || KK0781_GENE.GENE_ADD_DTM) AS KK0781_MAX  ")
						.append("          FROM   KK_M_PRC_GRP KK0781_GENE  ")
						.append("          WHERE  KK0781_GENE.PRC_GRP_CD = KK0781.PRC_GRP_CD  ")
						.append("          AND    KK0781_GENE.RSV_APLY_YMD <= ?  ")
						.append("          AND    KK0781_GENE.MK_FLG = '0'  ")
						.append("          GROUP BY KK0781_GENE.PRC_GRP_CD ")
						.append("        ) ")
						.append(" AND    (KK0161.SVC_KEI_UCWK_STAT IN ('010','020','030','100','210','220')  ")
						.append("         OR (KK0161.SVC_KEI_UCWK_STAT = '910'  ")
						.append("             AND TO_DATE(KK0161.SVC_DSL_YMD) + KK0781.KAIHK_PSB_PRD >= ?  ")
						.append("            ) ")
						.append("         OR (KK0161.SVC_KEI_UCWK_STAT = '920'  ")
						.append("             AND TO_DATE(KK0161.SVC_CANCEL_YMD) + KK0781.CANCEL_CL_PSB_PRD >= ?  ")
						.append("            )  ")
						.append("        ) ");
			}
			if ("1".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString())
					|| "2".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString())
					|| "6".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString())
					|| "8".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString()))
			{
				// 継続後契約変更手続中フラグ 0(変更手続中でない)
			 	sql_Buff.append(" AND    KK0161.KEIZK_AF_KEI_CHGECHU_FLG = '0' ");
			}
			if ("3".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString()))
			{
				// 継続後契約変更手続中フラグ 1(変更手続中)
				sql_Buff.append(" AND    KK0161.KEIZK_AF_KEI_CHGECHU_FLG = '1' ");
			}
			if ("4".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString()))
			{
				// 機能コード4は継続後契約変更手続中フラグを条件に含めない
			}
			if ("6".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString()))
			{
				// 継続後契約変更手続中フラグを条件に含めない
				// 電話番号変更により、解約・新規された「サービス契約内訳」のうち、旧電話番号の「サービス契約内訳」(解約済)は抽出対象外とする。
				// 抽出対象外条件：「サービス契約内訳」が解約済で、かつ番号変更前の電話番号として指定されている(※)場合
				//   ※サービス契約内訳(新電話番号).継続元サービス契約内訳番号 ＝ サービス契約内訳(旧電話番号).サービス契約内訳番号
				sql_Buff.append(" AND NOT ")
						.append("    (KK0161.SVC_KEI_UCWK_STAT = '910' ")
						.append("     AND EXISTS ")
						.append("        (SELECT 1 ")
						.append("         FROM   KK_T_SVC_KEI_UCWK KK0161_01 ")
						.append("         WHERE  KK0161_01.KEIZK_MT_SVC_KEI_UCWK_NO = KK0161.SVC_KEI_UCWK_NO ")
						.append("         AND    KK0161_01.KEIZK_AF_KEI_CHGECHU_FLG = '0' ")
						.append("         AND    (KK0161_01.SVC_KEI_UCWK_NO, KK0161_01.RSV_APLY_YMD || KK0161_01.GENE_ADD_DTM) =  ")
						.append("                (SELECT KK0161_01_GENE.SVC_KEI_UCWK_NO, MAX(KK0161_01_GENE.RSV_APLY_YMD || KK0161_01_GENE.GENE_ADD_DTM) AS KK0161_MAX  ")
						.append("                 FROM   KK_T_SVC_KEI_UCWK KK0161_01_GENE  ")
						.append("                 WHERE  KK0161_01_GENE.SVC_KEI_UCWK_NO = KK0161_01.SVC_KEI_UCWK_NO  ")
						.append("                 AND    KK0161_01_GENE.RSV_APLY_CD = '2'  ")
						.append("                 AND    KK0161_01_GENE.RSV_APLY_YMD <= ?  ")
						.append("                 AND    KK0161_01_GENE.MK_FLG = '0'  ")
						.append("                 GROUP BY KK0161_01_GENE.SVC_KEI_UCWK_NO  ")
						.append("                ) ")
						.append("        ) ")
						.append("    ) ");
			}

			if ("1".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString())
					|| "2".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString())
					|| "3".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString())
					|| "4".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString())
					|| "6".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString()))
			{
				sql_Buff.append(" ORDER BY KK0161.SVC_KEI_UCWK_STAT ASC ")
						.append("        , KK0161.SVC_STA_YMD ASC ")
						.append("        , KK0191.VA_PORT_NO ASC ");
			}
			if ("5".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString())
					|| "7".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString()))
			{
				sql_Buff.append(" ORDER BY KK0191.VA_PORT_NO ASC ")
						.append("        , KK0161.SVC_KEI_UCWK_STAT DESC ")
						.append("        , KK0161.SVC_KEI_UCWK_NO ASC ");
			}
			if ("8".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString()))
			{
				sql_Buff.append(" ORDER BY KK0191.TELNO_JUN ASC ");
			}
			//prepareStatementにSQL文をセット
			pstmt = con1.prepareStatement(sql_Buff.toString());
			
			//ログ出力(SQL文の出力)
			JSYejbLog.outlog(inContext, JSYejbLog.DBACCESS, this.getClass(), sql_Buff);
			
			int pCnt = 1;
			// PreparedStatementの指定されたパラメータカラムに 指定された値を設定
			if ("1".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString())
					|| "2".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString())
					|| "3".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString())
					|| "4".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString())
					|| "5".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString())
					|| "6".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString())
					|| "8".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString()))
			{
				// パラメータの設定(運用日付を指定)
				CAANJDBCUtil.setParam(pstmt, pCnt++, JKKModelCommon.getOpeDate(inMsg));
				// パラメータの設定(ＫＥＹ＿サービス契約番号を指定)
				CAANJDBCUtil.setParam(pstmt, pCnt++, inMsg.getObject(EKK0191B001CBSMsg.KEY_SVC_KEI_NO));
				// パラメータの設定(運用日付を指定)
				CAANJDBCUtil.setParam(pstmt, pCnt++, JKKModelCommon.getOpeDate(inMsg));
				// パラメータの設定(ＫＥＹ＿サービス契約番号を指定)
				CAANJDBCUtil.setParam(pstmt, pCnt++, inMsg.getObject(EKK0191B001CBSMsg.KEY_SVC_KEI_NO));
				// パラメータの設定(運用日付を指定)
				CAANJDBCUtil.setParam(pstmt, pCnt++, JKKModelCommon.getOpeDate(inMsg));
			}
			if ("2".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString())
					|| "6".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString()))
			{
				// パラメータの設定(運用日付を指定)
				CAANJDBCUtil.setParam(pstmt, pCnt++, JKKModelCommon.getOpeDate(inMsg));
				// パラメータの設定(運用日付を指定)
				CAANJDBCUtil.setParam(pstmt, pCnt++, JKKModelCommon.getOpeDate(inMsg));
				// パラメータの設定(運用日付を指定)
				CAANJDBCUtil.setParam(pstmt, pCnt++, JKKModelCommon.getOpeDate(inMsg));
				// パラメータの設定(運用日付を指定)
				CAANJDBCUtil.setParam(pstmt, pCnt++, JKKModelCommon.getOpeDate(inMsg));
			}

			if ("6".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString()))
			{
				// パラメータの設定(運用日付を指定)
				CAANJDBCUtil.setParam(pstmt, pCnt++, JKKModelCommon.getOpeDate(inMsg));
			}
			if ("7".equals(inMsg.getObject(EKK0191B001CBSMsg.FUNC_CODE).toString()))
			{
				// パラメータの設定(運用日付を指定)
				CAANJDBCUtil.setParam(pstmt, pCnt++, JKKModelCommon.getOpeDate(inMsg));
				// パラメータの設定(ＫＥＹ＿サービス契約番号を指定)
				CAANJDBCUtil.setParam(pstmt, pCnt++, inMsg.getObject(EKK0191B001CBSMsg.KEY_SVC_KEI_NO));
				// パラメータの設定(運用日付を指定)
				CAANJDBCUtil.setParam(pstmt, pCnt++, JKKModelCommon.getOpeDate(inMsg));
				// パラメータの設定(運用日付を指定)
				CAANJDBCUtil.setParam(pstmt, pCnt++, JKKModelCommon.getOpeDate(inMsg));
				// パラメータの設定(運用日付を指定)
				CAANJDBCUtil.setParam(pstmt, pCnt++, JKKModelCommon.getOpeDate(inMsg));
				// パラメータの設定(運用日付を指定)
				CAANJDBCUtil.setParam(pstmt, pCnt++, JKKModelCommon.getOpeDate(inMsg));
				// パラメータの設定(ＫＥＹ＿サービス契約番号を指定)
				CAANJDBCUtil.setParam(pstmt, pCnt++, inMsg.getObject(EKK0191B001CBSMsg.KEY_SVC_KEI_NO));
				// パラメータの設定(運用日付を指定)
				CAANJDBCUtil.setParam(pstmt, pCnt++, JKKModelCommon.getOpeDate(inMsg));
			}
			
			// ResultSetの取得
			rsltQuery = pstmt.executeQuery();
			
			// EKK0191B001CBSMsgの明細にセットする項目
			String[] msgKeyList1 = {
					  EKK0191B001CBSMsg1List.SVC_KEI_UCWK_NO
					, EKK0191B001CBSMsg1List.MSKM_DTL_NO
					, EKK0191B001CBSMsg1List.PCRS_CD
					, EKK0191B001CBSMsg1List.PPLAN_CD
					, EKK0191B001CBSMsg1List.SVC_KEI_UCWK_STAT
					, EKK0191B001CBSMsg1List.SVC_KEI_UCWK_STAT_NM
					, EKK0191B001CBSMsg1List.SVC_STA_YMD
					, EKK0191B001CBSMsg1List.SVC_ENDYMD
					, EKK0191B001CBSMsg1List.TELNO
					, EKK0191B001CBSMsg1List.BMP_UM
					, EKK0191B001CBSMsg1List.VA_TAKNKIKI_MODEL_CD
					, EKK0191B001CBSMsg1List.VA_PORT_NO
					, EKK0191B001CBSMsg1List.DSL_PAUSE_TOKI_STA_YMD
					, EKK0191B001CBSMsg1List.DSL_PAUSE_TOKI_END_YMD
					, EKK0191B001CBSMsg1List.NTT_NO_GUIDE_UM
					, EKK0191B001CBSMsg1List.VA_KIKI_SEIZO_NO
					, EKK0191B001CBSMsg1List.SHK_TEL_OP_SETTE_RMTS_PWD
					, EKK0191B001CBSMsg1List.TEL_OP_SETTE_RMTS_PWD
					, EKK0191B001CBSMsg1List.PAUSE_TOKI_END_SBT_CD
					, EKK0191B001CBSMsg1List.TELNO_JUN
					, EKK0191B001CBSMsg1List.HELLOPAGE_KEISAI_UM
					, EKK0191B001CBSMsg1List.VA_KIKI_CHG_NO
					, EKK0191B001CBSMsg1List.DSL_PAUSE_TOKI_SBT_CD
					, EKK0191B001CBSMsg1List.ITENS_OPAF_TOKI_SBT_CD
					, EKK0191B001CBSMsg1List.ITENS_OPAF_TOKI_STA_YMD
					, EKK0191B001CBSMsg1List.ITENS_OPAF_TOKI_END_YMD
					, EKK0191B001CBSMsg1List.KEIZK_MT_SVC_KEI_UCWK_NO
					, EKK0191B001CBSMsg1List.KEIZK_AF_KEI_CHGECHU_FLG
					, EKK0191B001CBSMsg1List.DSL_PAUSE_TOKI_ADD_CD
					, EKK0191B001CBSMsg1List.DSL_PAUSE_TOKI_KIBO_UM
					, EKK0191B001CBSMsg1List.DSL_PAUSE_TOKI_STA_RSYMD
					, EKK0191B001CBSMsg1List.DSL_PAUSE_TOKI_END_RSYMD
					, EKK0191B001CBSMsg1List.DSL_PAUSE_TOKI_TSS_TLN
					, EKK0191B001CBSMsg1List.DSL_PAUSE_TOKI_TSS_SVKUWNO
					, EKK0191B001CBSMsg1List.ITENS_OPAF_TOKI_ADD_CD
					, EKK0191B001CBSMsg1List.ITENS_OPAF_TOKI_KIBO_UM
					, EKK0191B001CBSMsg1List.ITENS_OPAF_TOKI_STA_RSYMD
					, EKK0191B001CBSMsg1List.ITENS_OPAF_TOKI_END_RSYMD
					, EKK0191B001CBSMsg1List.ITNS_OPAF_TOKI_TSS_SVKUWNO
					, EKK0191B001CBSMsg1List.DSP_SVC_KEI_UCWK_STAT
					, EKK0191B001CBSMsg1List.DSP_SVC_KEI_UCWK_STAT_NM
					, EKK0191B001CBSMsg1List.DOBANITEN_MSKM_UM
					// v72.00.00 ANK-4994-00-00 ADD START
					, EKK0191B001CBSMsg1List.KOJI_JSSI_WAY
					, EKK0191B001CBSMsg1List.KOJI_JSSI_WAY_NM
					, EKK0191B001CBSMsg1List.SOTEI_SWITCH_TIMEZ
					, EKK0191B001CBSMsg1List.SOTEI_SWITCH_TIMEZ_NM
					// v72.00.00 ANK-4994-00-00 ADD END
					, EKK0191B001CBSMsg1List.TAKNKIKI_SBT_CD
					, EKK0191B001CBSMsg1List.KKTK_SVC_NM
			};
			
			// 明細に処理結果(ResultSet)をマッピング
			CAANMsg[] outMsg1 = mapMessageList(rsltQuery,msgKeyList1,"eo.ejb.cbs.cbsmsg.EKK0191B001CBSMsg1List",0);
			// inMsg(CBSMsg)に明細をセット
			inMsg.set("EKK0191B001CBSMsg1List", outMsg1);
			

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