/*******************************************************************************
*	 All Rights reserved,Copyright (c) K-Opticom 
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JSYejbEKK0341B007TPDA
*	ソースファイル名：JSYejbEKK0341B007TPDA.java
*	作成者			：EKek0058
*	日付			：2011年07月22日
*＜機能概要＞
*	SQLFacility
*	テンプレートDBアクセス部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00
*	v7.00.00	2013/11/18	FJ)山口		ANK-1578-00-00(多機能ルータ対応)
*   v8.00.00    2014/05/02  FJ)窪田     OM-2014-0001719
********************************************************************************/

package eo.ejb.cbs.sqlf;

import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.base.CAANSQLFacility;
import com.fujitsu.futurity.model.base.CAANRuntimeException;
import com.fujitsu.futurity.model.base.CAANJDBCUtil;
import com.fujitsu.futurity.model.ejb.common.JSYejbConnection;
import com.fujitsu.futurity.model.ejb.common.JSYejbLog;
import com.fujitsu.futurity.model.ejb.common.StatusCodes;
import com.fujitsu.futurity.model.ejb.common.fw.TemplateDBAccessHandler;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import eo.common.constant.JPCModelConstant;
import eo.ejb.cbs.cbsmsg.EDK0011B060CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341B007CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341B007CBSMsg1List;
import eo.ejb.cbm.entity.KK0341ETMsg;
import eo.ejb.common.JKKModelCommon;
import eo.ejb.common.JKKejbPagingUtil;
import eo.ejb.common.JDKModelCommon.COMMA;
import static eo.common.util.JDKCommonUtil.appendParamIfAnyInput;
import static eo.ejb.common.JDKModelCommon.*;

/**
*
*  テンプレートDBアクセス部品　EKK0341B007_SQLF<br>
*  入力された項目からSQL文を動的に組み立て、<br>
*  検索結果をCBSMsgにセットします。<br>
*/
public class JSYejbEKK0341B007TPDA extends CAANSQLFacility implements TemplateDBAccessHandler{
	
	/**
	 * コンストラクタ
	 */
	public JSYejbEKK0341B007TPDA()	{
	}
	
	/**
	*   EKK0341B007_SQLF<br>
	*   @param inMsg    入力値の格納されたCBSMsg <br>
	*   @return void
	*/
	public void invoke(CAANMsg inMsg,AgentDispatchContext inContext){
		// コネクション
		Connection con1 = null;

		// プリペアステートメント
		PreparedStatement pstmt_Count = null;
		PreparedStatement pstmt_Page = null;

		// リザルトセット
		ResultSet rsltQuery_Count = null;
		ResultSet rsltQuery_Page = null;

		/* ++++++++++ ｖ1.00.00 追加開始 ++++++++++ */
		/***************************************************** 
		 * サービスインターフェイス共通部の必須チェック
		 *****************************************************/
		
		// 最大検索件数、表示件数が未設定の場合
		// 例外をスローする
		if (inMsg.isNull(EKK0341B007CBSMsg.MAX_SEARCH_NUM)
				|| inMsg.isNull(EKK0341B007CBSMsg.DISPLAY_NUM))
		{
			throw new IllegalArgumentException("サービスインターフェイス共通部の最大検索件数、表示件数は必須項目です。");
		}
		/* ++++++++++ ｖ1.00.00 追加終了 ++++++++++ */
		
		/******************** 
		 * SQL文の作成
		 ********************/

		try{
			//コネクション取得
			con1 = JSYejbConnection.getConnection(KK0341ETMsg.getTableName());

			// SQL文の作成(ページングヘッダ)
			// (1)
			StringBuffer sql_Buff1 = new StringBuffer();
			sql_Buff1
			.append(" SELECT * ")
			.append(" FROM ( SELECT ALL_SELECT.*, ROWNUM AS LINE ")
			.append("        FROM ( ");

			// SQL文の作成(COUNT用)
			// (2)
			StringBuffer sql_Buff2 = new StringBuffer();
			sql_Buff2
			.append(" SELECT COUNT(*) AS CNT ")
			.append(" FROM ( ");

			// SQL文の作成(項目取得用)
			// (3)
			StringBuffer sql_Buff3 = new StringBuffer();
			sql_Buff3
			.append(" SELECT EKK0341B007.SVC_KEI_NO ")
			.append("      , EKK0341B007.KKTK_SVC_KEI_NO ")
			.append("      , EKK0341B007.CUST_NM ")
			.append("      , EKK0341B007.PRC_GRP_NM ")
			.append("      , EKK0341B007.SVC_KEI_STAT_NM ")
			.append("      , EKK0341B007.TAKNKIKI_MODEL_CD ")
			.append("      , EKK0341B007.HUZOKUHIN_MODEL_CD ")
			.append("      , EKK0341B007.TAKNKIKI_SETHIN_MODEL_CD ")
			.append("      , EKK0341B007.KIKI_HKAT_SHITEI_SOKO_CD ")
			.append("      , EKK0341B007.KIKI_HKAT_SHITEI_SKDN_CD ")
			.append("      , EKK0341B007.SOKO_NM ")
			.append("      , EKK0341B007.SHELF_NM ")
			.append("      , EKK0341B007.KIKI_CHG_NO ")
			.append(" FROM ( ");

			// SQL文の作成(FROM句、WHERE句)
			// (4)
			StringBuffer sql_Buff4 = new StringBuffer();
			sql_Buff4
			.append("        SELECT  EKK0341B007_SUB.SVC_KEI_NO ")
			.append("              , EKK0341B007_SUB.KKTK_SVC_KEI_NO ")
			.append("              , CK0011.CUST_NM ")
			.append("              , (SELECT KK0781.PRC_GRP_NM ")
			.append("                 FROM   KK_M_PRC_GRP KK0781 ")
			.append("                 WHERE  KK0781.PRC_GRP_CD = KK0081.PRC_GRP_CD ")
			.append("                 AND    KK0781.RSV_APLY_YMD || KK0781.GENE_ADD_DTM =  ")
			.append("                                 (SELECT 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')) AS PRC_GRP_NM ")
			.append(                 cd("CD00037", "KK0081.SVC_KEI_STAT", "SVC_KEI_STAT_NM"))
			.append("              , EKK0341B007_SUB.TAKNKIKI_MODEL_CD ")
			.append("              , EKK0341B007_SUB.HUZOKUHIN_MODEL_CD ")
			.append("              , EKK0341B007_SUB.TAKNKIKI_SETHIN_MODEL_CD ")
			.append("              , EKK0341B007_SUB.KIKI_HKAT_SHITEI_SOKO_CD ")
			.append("              , EKK0341B007_SUB.KIKI_HKAT_SHITEI_SKDN_CD ")
			.append("              , EKK0341B007_SUB.SOKO_NM ")
			.append("              , EKK0341B007_SUB.SHELF_NM ")
			.append("              , EKK0341B007_SUB.KIKI_CHG_NO ")
			.append("        FROM   (SELECT ")
			.append("                        KK0341.KKTK_SVC_KEI_NO ")
			.append(                         svcKeiNoFor("KK0341", "SVC_KEI_NO", "?", COMMA.LEFT))
			.append("                      , KK0341.SYSID ")
			.append("                      , KK0341.TAKNKIKI_MODEL_CD ")
			.append("                      , KK0341.HUZOKUHIN_MODEL_CD ")
			.append("                      , KK0341.TAKNKIKI_SETHIN_MODEL_CD ")
			.append("                      , KK0341.KIKI_HKAT_SHITEI_SOKO_CD ")
			.append("                      , KK0341.KIKI_HKAT_SHITEI_SKDN_CD ")
			.append("                      , DK0091.SOKO_NM ")
			.append(                         cd("CD00544", "KK0341.KIKI_HKAT_SHITEI_SKDN_CD", "SHELF_NM"))
			.append("                      ,KK0341.KIKI_CHG_NO " );
	if (!inMsg.isNull(EKK0341B007CBSMsg.KEY_SVC_KEI_NO)) 
	{		
	sql_Buff4.append("                FROM ( SELECT KKTK_SVC_KEI_NO ")
	 		.append("                               , KIKI_CHG_NO ")
	 		.append("                             FROM (SELECT KK0341.KKTK_SVC_KEI_NO ")
	 		.append("                                         , KK0341.KIKI_CHG_NO ")
			 .append("                                     FROM KK_T_KAISEN_TG_SVKEI KK0241 ")
			 .append("                                     INNER JOIN KK_T_KKTK_SVC_KEI KK0341 ")
			 .append("                                       ON KK0341.SVC_KEI_KAISEN_UCWK_NO = KK0241.SVC_KEI_KAISEN_UCWK_NO ")
			 .append("                                      AND KK0341.MK_FLG = '0' ")
			 .append("                                    WHERE KK0241.SVC_KEI_NO = ? ")
			 .append("                                      AND KK0241.MK_FLG = '0' ")
			 .append("                                   UNION ALL ")
			 .append("                                    SELECT KK0341.KKTK_SVC_KEI_NO ")
		 		.append("                                         , KK0341.KIKI_CHG_NO ")
			 .append("                                      FROM KK_T_KKTK_SVC_KEI KK0341 ")
			 .append("                                     WHERE KK0341.SVC_KEI_NO = ?")
			 .append("                                       AND KK0341.OYA_KEI_SKBT_CD <> '02' ")
			 .append("                                       AND KK0341.MK_FLG = '0' ")
			 .append("                                  ) GROUP BY KKTK_SVC_KEI_NO, KIKI_CHG_NO ")
			 .append("                 ) KK0341_TARGETS")
			 .append("               INNER JOIN KK_T_KKTK_SVC_KEI KK0341 ")
			 .append("                 ON KK0341.KKTK_SVC_KEI_NO = KK0341_TARGETS.KKTK_SVC_KEI_NO ")
			 .append("                AND KK0341.KIKI_CHG_NO = KK0341_TARGETS.KIKI_CHG_NO ")
			 .append("                AND KK0341.MK_FLG = '0' ");
	}
	else
	{
		sql_Buff4.append("                FROM   KK_T_KKTK_SVC_KEI KK0341 ");
		
	}
	sql_Buff4.append("                    INNER JOIN DK_M_SOKO DK0091 ")
			.append("                       ON  KK0341.KIKI_HKAT_SHITEI_SOKO_CD = DK0091.SOKO_CD ")
			.append("                       AND DK0091.SOKO_TSTAYMD <= ? ")
			.append("                       AND DK0091.SOKO_TENDYMD >= ? ")
			.append("                       AND DK0091.MK_FLG = '0' ")
			.append("                    INNER JOIN ZM_M_TAKNKIKI_MODEL ZM0411 ")
			.append("                       ON  ZM0411.TAKNKIKI_MODEL_CD = KK0341.TAKNKIKI_MODEL_CD ")
			.append("                       AND ZM0411.KOJI_AF_SHKA_UM = '1' ")
			.append("                       AND ZM0411.MK_FLG = '0' ")

			.append(" 	                 INNER JOIN KU_T_KJAK_TG_TKKIKI KU0141 ")
			.append(" 	                    ON  KU0141.KKTK_SVC_KEI_NO = KK0341.KKTK_SVC_KEI_NO ")
			.append(" 	                    AND NVL(KU0141.CHGE_KIKI_CHG_NO, KU0141.RSV_KIKI_CHG_NO) = KK0341.KIKI_CHG_NO ")
			.append(" 	                    AND KU0141.MK_FLG = '0' ")
			.append(" 	                 INNER JOIN KU_T_KOJIAK KU0011 ")
			.append(" 	                    ON  KU0011.KOJIAK_NO = KU0141.KOJIAK_NO ")
			.append(" 	                    AND KU0011.KOJIAK_STAT <> '190' ")
			.append(" 	                    AND KU0011.KOJIAK_STAT <> '200' ")
			.append(" 	                    AND KU0011.KOJIAK_STAT <> '900' ")
			.append(" 	                    AND KU0011.MK_FLG = '0' ")

			.append("                WHERE  KK0341.GENE_ADD_DTM = (SELECT MAX(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.KIKI_CHG_NO = KK0341.KIKI_CHG_NO ")
			.append("                                              AND    KK0341_GENE.RSV_APLY_CD IN ('1','2') ")
			.append("                                              AND    KK0341_GENE.MK_FLG = '0') ")
			.append("                AND    KK0341.KKTK_SVC_KEI_STAT IN ('020', '030', '110') ")
			.append("                AND    NOT EXISTS(SELECT 1 ")
			.append("                                  FROM   DK_T_HAISO_TG_BPIN DK0021 ")
			.append("                                         INNER JOIN DK_T_HAISO DK0011 ")
			.append("                                         ON  DK0021.HAISO_NO = DK0011.HAISO_NO ")
			.append("                                         AND DK0011.HAISO_STAT <> '005' ")
			.append("                                         AND DK0011.MK_FLG = '0' ")
			.append("                                  WHERE  DK0021.KKTK_SVC_KEI_NO = KK0341.KKTK_SVC_KEI_NO ")
			.append("                                  AND    DK0021.KIKI_CHG_NO = KK0341.KIKI_CHG_NO ")
			.append("                                  AND    DK0021.MK_FLG = '0') ");
			// 値が設定されている場合のみ、検索条件を追加(ＫＥＹ＿型式コード)
			if (!inMsg.isNull(EKK0341B007CBSMsg.KEY_MODEL_CD))
			{
				sql_Buff4.append("   AND    NVL(KK0341.TAKNKIKI_MODEL_CD, KK0341.HUZOKUHIN_MODEL_CD) = ? ");
			}
			// 値が設定されている場合のみ、検索条件を追加(ＫＥＹ＿機器引当指定倉庫コード)
			if (!inMsg.isNull(EKK0341B007CBSMsg.KEY_KIKI_HKAT_SHITEI_SOKO_CD))
			{
				sql_Buff4.append("   AND    KK0341.KIKI_HKAT_SHITEI_SOKO_CD = ? ");
			}
			// 値が設定されている場合のみ、検索条件を追加(ＫＥＹ＿機器引当指定倉庫棚コード)
			if (!inMsg.isNull(EKK0341B007CBSMsg.KEY_KIKI_HKAT_SHITEI_SKDN_CD))
			{
				sql_Buff4.append("   AND    KK0341.KIKI_HKAT_SHITEI_SKDN_CD = ? ");
			}
			sql_Buff4
			.append("               ) EKK0341B007_SUB ")
			.append(                innerJoinToGen("CK_T_CUST", "CK0011", "EKK0341B007_SUB", "SYSID"))
			.append(                innerJoinToGen("KK_T_SVC_KEI", "KK0081", "EKK0341B007_SUB", "SVC_KEI_NO"));

			String rownumCnt = String.valueOf(Integer.parseInt(inMsg.getString(EKK0341B007CBSMsg.MAX_SEARCH_NUM)) + 1);
			// 値が設定されている場合のみ、検索条件を追加(ＫＥＹ＿サービス契約番号)
			if (!inMsg.isNull(EKK0341B007CBSMsg.KEY_SVC_KEI_NO))
			{
				sql_Buff4.append(" WHERE  EKK0341B007_SUB.SVC_KEI_NO = ? ")
						.append("  AND ROWNUM <= " + rownumCnt);
			}
			else
			{
				sql_Buff4.append(" WHERE ROWNUM <= " + rownumCnt);
			}
			
			sql_Buff4
			.append(" ) EKK0341B007 ");
			
			// SQL文の作成(ORDER BY句)
			// (5)
			StringBuffer sql_Buff5 = new StringBuffer();
			sql_Buff5
			.append(" ORDER BY EKK0341B007.SVC_KEI_NO ASC ")
			.append("        , EKK0341B007.TAKNKIKI_MODEL_CD ASC");

			// SQL文の作成(ページングフッタ)
			// (6)
			StringBuffer sql_Buff6 = new StringBuffer();
			sql_Buff6
			.append("             ) ALL_SELECT ")
			.append("      ) PAGE_SELECT ")
			.append("WHERE PAGE_SELECT.LINE BETWEEN ? AND ? ")
			.append("ORDER BY PAGE_SELECT.LINE ASC ");

			// SQL文の組立て(件数取得用)
			// (2) + (4)
			StringBuffer sql_Count = new StringBuffer();
			sql_Count
			.append(sql_Buff2)
			.append(sql_Buff4);
			//prepareStatementにSQL文をセット
			pstmt_Count = con1.prepareStatement(sql_Count.toString());

			//ログ出力(SQL文の出力)
			JSYejbLog.outlog(inContext, JSYejbLog.DBACCESS, this.getClass(), sql_Count);

			setParameters(pstmt_Count, inMsg);
			
			// ResultSetの取得
			rsltQuery_Count = pstmt_Count.executeQuery();
			

			// 総検索件数を取得する
			long lDataCnt = 0L;
			if (rsltQuery_Count.next())
			{
				lDataCnt = rsltQuery_Count.getLong("CNT");
			}

			// 表示件数
			long lDispNum = inMsg.getStringAsLong(EKK0341B007CBSMsg.DISPLAY_NUM);

			// 表示ページ数
			long lDispPage = inMsg.getStringAsLong(EKK0341B007CBSMsg.DISPLAY_PAGE_NUM);

			// 最大取得件数
			long lMaxNum = inMsg.getStringAsLong(EKK0341B007CBSMsg.MAX_SEARCH_NUM);

			// 総ページ数
			String strMaxPage = JKKejbPagingUtil.calcTotalPage(lDataCnt, lDispNum);

			// 共通部に値を設定する
			inMsg.set(EKK0341B007CBSMsg.TOTAL_SEARCH_NUM, String.valueOf(lDataCnt));   // 総検索件数
			inMsg.set(EKK0341B007CBSMsg.TOTAL_PAGE_NUM, strMaxPage);   // 総ページ数

			// データ取得件数が0件の場合エラー
			if (0L == lDataCnt)
			{
				inMsg.set(EKK0341B007CBSMsg.SEARCH_ERR_FLG, JPCModelConstant.SEARCH_ERR_FLG_ZERO);
				return;
			}

			// 最大取得件数を超えた場合エラー
			if (lDataCnt > lMaxNum)
			{
				inMsg.set(EKK0341B007CBSMsg.SEARCH_ERR_FLG, JPCModelConstant.SEARCH_ERR_FLG_OVERMAX);
				return;
			}

			// SQL文の組立て(項目取得・ページング用)
			// (1) + (3) + (4) + (5) + (6)
			StringBuffer sql_Page = new StringBuffer();
			sql_Page
			.append(sql_Buff1)
			.append(sql_Buff3)
			.append(sql_Buff4)
			.append(sql_Buff5)
			.append(sql_Buff6);

			//prepareStatementにSQL文をセット
			pstmt_Page = con1.prepareStatement(sql_Page.toString());

			//ログ出力(SQL文の出力)
			JSYejbLog.outlog(inContext, JSYejbLog.DBACCESS, this.getClass(), sql_Page);

			// 検索対象行を算出する
			long[] lPages = JKKejbPagingUtil.calcSearchRows(lDispPage, lDispNum);
			long lRowSta = lPages[0];
			long lRowEnd = lPages[1];

			int paramIndex = setParameters(pstmt_Page, inMsg);
			CAANJDBCUtil.setParam(pstmt_Page, paramIndex++, lRowSta);
			CAANJDBCUtil.setParam(pstmt_Page, paramIndex++, lRowEnd);
			
			// ResultSetの取得
			rsltQuery_Page = pstmt_Page.executeQuery();

			// EKK0341B007CBSMsgの明細にセットする項目
			String[] msgKeyList1 = {
					  EKK0341B007CBSMsg1List.SVC_KEI_NO
					, EKK0341B007CBSMsg1List.KKTK_SVC_KEI_NO
					, EKK0341B007CBSMsg1List.CUST_NM
					, EKK0341B007CBSMsg1List.PRC_GRP_NM
					, EKK0341B007CBSMsg1List.SVC_KEI_STAT_NM
					, EKK0341B007CBSMsg1List.TAKNKIKI_MODEL_CD
					, EKK0341B007CBSMsg1List.HUZOKUHIN_MODEL_CD
					, EKK0341B007CBSMsg1List.TAKNKIKI_SETHIN_MODEL_CD
					, EKK0341B007CBSMsg1List.KIKI_HKAT_SHITEI_SOKO_CD
					, EKK0341B007CBSMsg1List.KIKI_HKAT_SHITEI_SKDN_CD
					, EKK0341B007CBSMsg1List.SOKO_NM
					, EKK0341B007CBSMsg1List.SHELF_NM
					, EKK0341B007CBSMsg1List.KIKI_CHG_NO
			};

			// 明細に処理結果(ResultSet)をマッピング
			CAANMsg[] outMsg1 = mapMessageList(rsltQuery_Page,msgKeyList1,"eo.ejb.cbs.cbsmsg.EKK0341B007CBSMsg1List",0);

			// 取得結果が0件の場合は表示ページ該当なしエラー
			if (0 >= outMsg1.length)
			{
				inMsg.set(EKK0341B007CBSMsg.SEARCH_ERR_FLG, JPCModelConstant.SEARCH_ERR_FLG_NODATA);
				return;
			}

			// inMsg(CBSMsg)に明細をセット
			inMsg.set("EKK0341B007CBSMsg1List", outMsg1);
			

		} catch(SQLException e) {
			inMsg.set(EKK0341B007CBSMsg.STATUS, StatusCodes.FIND_DB_ERR);
			throw new CAANRuntimeException(e);
		} finally {
			// 資源の解放
			try{
				if(rsltQuery_Count != null)
				{
					rsltQuery_Count.close();
				}
				if(rsltQuery_Page != null)
				{
					rsltQuery_Page.close();
				}
				if(pstmt_Count != null)
				{
					pstmt_Count.close();
				}
				if(pstmt_Page != null)
				{
					pstmt_Page.close();
				}
				if(con1 != null)
				{
					closeConnection(con1);
				}
			}catch(SQLException e){
				inMsg.set(EKK0341B007CBSMsg.STATUS, StatusCodes.FIND_DB_ERR);
				throw new CAANRuntimeException(e);
			}
		}
	}
	
	
	private static int setParameters(PreparedStatement pstmt, CAANMsg inMsg) throws SQLException
	{
		int index = 1;
		// PreparedStatementの指定されたパラメータカラムに 指定された値を設定
		CAANJDBCUtil.setParam(pstmt, index++, JKKModelCommon.getOpeDate(inMsg));
		CAANJDBCUtil.setParam(pstmt, index++, JKKModelCommon.getOpeDate(inMsg));
		// 部品（svcKeiNoFor）に渡すバインド変数を設定
		CAANJDBCUtil.setParam(pstmt, index++, JKKModelCommon.getOpeDate(inMsg));
		CAANJDBCUtil.setParam(pstmt, index++, JKKModelCommon.getOpeDate(inMsg));
		CAANJDBCUtil.setParam(pstmt, index++, JKKModelCommon.getOpeDate(inMsg));
		CAANJDBCUtil.setParam(pstmt, index++, JKKModelCommon.getOpeDate(inMsg));
		CAANJDBCUtil.setParam(pstmt, index++, JKKModelCommon.getOpeDate(inMsg));
		CAANJDBCUtil.setParam(pstmt, index++, JKKModelCommon.getOpeDate(inMsg));
		CAANJDBCUtil.setParam(pstmt, index++, JKKModelCommon.getOpeDate(inMsg));
		CAANJDBCUtil.setParam(pstmt, index++, JKKModelCommon.getOpeDate(inMsg));
		CAANJDBCUtil.setParam(pstmt, index++, JKKModelCommon.getOpeDate(inMsg));
		CAANJDBCUtil.setParam(pstmt, index++, JKKModelCommon.getOpeDate(inMsg));

		CAANJDBCUtil.setParam(pstmt, index++, JKKModelCommon.getOpeDate(inMsg));
		if (!inMsg.isNull(EKK0341B007CBSMsg.KEY_SVC_KEI_NO))
		{
			CAANJDBCUtil.setParam(pstmt, index++, inMsg.getString(EKK0341B007CBSMsg.KEY_SVC_KEI_NO));
			CAANJDBCUtil.setParam(pstmt, index++, inMsg.getString(EKK0341B007CBSMsg.KEY_SVC_KEI_NO));
		}
		CAANJDBCUtil.setParam(pstmt, index++, JKKModelCommon.getOpeDate(inMsg));
		CAANJDBCUtil.setParam(pstmt, index++, JKKModelCommon.getOpeDate(inMsg));
		if (!inMsg.isNull(EKK0341B007CBSMsg.KEY_MODEL_CD))
		{
			CAANJDBCUtil.setParam(pstmt, index++, inMsg.getObject(EKK0341B007CBSMsg.KEY_MODEL_CD));
		}
		if (!inMsg.isNull(EKK0341B007CBSMsg.KEY_KIKI_HKAT_SHITEI_SOKO_CD))
		{
			CAANJDBCUtil.setParam(pstmt, index++, inMsg.getObject(EKK0341B007CBSMsg.KEY_KIKI_HKAT_SHITEI_SOKO_CD));
		}
		if (!inMsg.isNull(EKK0341B007CBSMsg.KEY_KIKI_HKAT_SHITEI_SKDN_CD))
		{
			CAANJDBCUtil.setParam(pstmt, index++, inMsg.getObject(EKK0341B007CBSMsg.KEY_KIKI_HKAT_SHITEI_SKDN_CD));
		}
		CAANJDBCUtil.setParam(pstmt, index++, JKKModelCommon.getOpeDate(inMsg));
		CAANJDBCUtil.setParam(pstmt, index++, JKKModelCommon.getOpeDate(inMsg));
		if (!inMsg.isNull(EKK0341B007CBSMsg.KEY_SVC_KEI_NO))
		{
			CAANJDBCUtil.setParam(pstmt, index++, inMsg.getObject(EKK0341B007CBSMsg.KEY_SVC_KEI_NO));
		}
		
		return index;
	}
}
