/*******************************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JSYejbETU0011B015TPDA
*	ソースファイル名：JSYejbETU0011B015TPDA.java
*	作成者			：EK909305
*	日付			：2011年06月29日
*＜機能概要＞
*	番ポ工事依頼一覧照会テンプレートDBアクセス部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v3.00.00	2012/03/17	FJ)楠神		新規作成
*	v3.00.00	2012/03/17	FJ)楠神		ANK-0024-00-00
*	v3.00.01	2012/06/13	FJ)宮本		TAI-2012-0000054
*	v4.00.00	2012/08/22	FJ)宮本		TODO:保留フラグ対応
*	v4.00.01	2012/11/28	FJ)楠神		ST4-2012-0000113
*	v5.00.00	2013/02/11	FJ)楠神		ANK-1175-00-00
*	v8.00.00	2014/04/28	FJ)高橋		ANK-2114-00-00
*
********************************************************************************/

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.common.constant.JTUStrConst;
import eo.ejb.cbs.cbsmsg.ETU0011B015CBSMsg;
import eo.ejb.cbs.cbsmsg.ETU0011B015CBSMsg1List;
import eo.ejb.cbm.entity.TU0011ETMsg;
import eo.ejb.common.JTUModelCommon;

/**
*
*  テンプレートDBアクセス部品　ETU0011B015_SQLF<br>
*  入力された項目からSQL文を動的に組み立て、<br>
*  検索結果をCBSMsgにセットします。<br>
*  @author FJ
*/
public class JSYejbETU0011B015TPDA extends CAANSQLFacility implements TemplateDBAccessHandler
{
	
	/**
	 * コンストラクタ
	 */
	public JSYejbETU0011B015TPDA()
	{
	}
	
	/**
	*   ETU0011B015_SQLF<br>
	*   @param inMsg    入力値の格納されたCBSMsg <br>
	*   @param inContext
	*   @return void
	*/
	public void invoke(CAANMsg inMsg, AgentDispatchContext inContext)
	{
		
		// コネクション
		Connection con1 = null;
		
		// プリペアステートメント
		PreparedStatement pstmt = null;
		
		// リザルトセット
		ResultSet rsltQuery = null;
		
		/**
		 * 最大検索件数が未設定の場合
		 */
		if (inMsg.isNull(ETU0011B015CBSMsg.MAX_SEARCH_NUM))
		{
			throw new IllegalArgumentException(JTUStrConst.ICRN_ERR_MSG_IKT);
		}
		
		/******************** 
		 * SQL文の作成
		 ********************/

		try
		{
			
			//コネクション取得
			con1 = JSYejbConnection.getConnection(TU0011ETMsg.getTableName());

			
			// SQL文_基本部1
			StringBuffer sql_Select = new StringBuffer();
			StringBuffer sql_From = new StringBuffer();
			StringBuffer sql_Where = new StringBuffer();
			StringBuffer sql_Order = new StringBuffer();
			
			
			
			sql_Select.append("SELECT  ")
					.append(" BMP_UCWK_SVK.BMP_KOJI_STAT, ")
					.append(" BMP_UCWK_SVK.BMP_KOJI_FIX_YMDH, ")
					.append(" DECODE(BMP_UCWK_SVK.HOJIN_KOJIN_CD,1,BMP_UCWK_SVK.SVC_KEI_NO,BMP_UCWK_SVK.HJIN_EO_YKAE_SVKEI_NO) AS SVC_KEI_NO_DISP, ")
					.append(" BMP_UCWK_SVK.SVC_KEI_NO, ")
					.append(" BMP_UCWK_SVK.SVC_KEI_UCWK_NO, ")
					.append(" BMP_UCWK_SVK.HJIN_EO_YKAE_SVKEI_NO, ")
					.append(" BMP_UCWK_SVK.HOJIN_KOJIN_CD, ")
					.append(" BMP_UCWK_SVK.NTT_KEI_TEL_KAISEN_NO, ")
					.append(" BMP_UCWK_SVK.NTT_KEISHA_NM, ")
					.append(" BMP_UCWK_SVK.BMP_KOJI_MSKM_JIGSHO_NO, ")
					.append(" (SELECT MSKMJIGSHO.MSKM_JIGSHONM FROM TU_M_MSKM_JIGSHO MSKMJIGSHO")
					.append("  WHERE BMP_UCWK_SVK.BMP_KOJI_MSKM_JIGSHO_NO = MSKMJIGSHO.MSKM_JIGSHO_NO AND MSKMJIGSHO.MK_FLG= '0') AS MSKM_JIGSHONM,")
					.append(" BMP_UCWK_SVK.DOJI_KOJI_UM, ")
					.append(" BMP_UCWK_SVK.BMP_KOJI_NO, ")
					.append(" BMP_UCWK_SVK.GENE_ADD_DTM, ")
					.append(" BMP_UCWK_SVK.UPD_DTM, ")
					.append(" BMP_UCWK_SVK.DOJI_KOJI_JDG_CD, ")
					.append(" BMP_UCWK_SVK.BMP_KOJI_REQYMD, ")
			 		.append(" (SELECT TSJGS_NM FROM TU_M_TUSHIN_JGYOSHA TSJGSHA ")
					.append("  WHERE BMP_UCWK_SVK.ITNM_TSJGS_CD = TSJGSHA.TSJGS_CD AND TSJGSHA.MK_FLG= '0') AS ITNM_JIGS_NM ");
			
			// SQL文_個別部1
			if ("1".equals(inMsg.getObject(ETU0011B015CBSMsg.FUNC_CODE).toString()))
			{
				
				sql_From.append("FROM")
					.append(" (")
					.append("  SELECT")
					.append("   BMP_UCWK.*,")
					.append("   (SELECT")
					.append("     SVK.SEIRI_NO")
					.append("    FROM")
					.append("     KK_T_SVC_KEI SVK ")
					.append("    WHERE ")
					.append("     BMP_UCWK.SVC_KEI_NO = SVK.SVC_KEI_NO ")
					.append("     AND (SVK.SVC_KEI_NO, SVK.RSV_APLY_YMD || SVK.GENE_ADD_DTM) = ( ")
					.append("     SELECT ")
					.append("       KK0081_GENE.SVC_KEI_NO, MAX(KK0081_GENE.RSV_APLY_YMD || KK0081_GENE.GENE_ADD_DTM) ")
					.append("      FROM ")
					.append("       KK_T_SVC_KEI KK0081_GENE ")
					.append("      WHERE ")
					.append("       KK0081_GENE.SVC_KEI_NO = SVK.SVC_KEI_NO ")
					.append("       AND KK0081_GENE.RSV_APLY_YMD <= ? ")
					.append("       AND KK0081_GENE.RSV_APLY_CD = '2' ")
					.append("       AND KK0081_GENE.MK_FLG = '0' ")
					.append("      GROUP BY ")
					.append("       KK0081_GENE.SVC_KEI_NO ")
					.append("     ) ")
					.append("   ) AS SEIRI_NO")
					.append("  FROM")
					.append("   (")
					.append("    SELECT  ")
					.append("     BMP.BMP_KOJI_STAT, ")
					.append("     BMP.BMP_KOJI_FIX_YMDH, ")
					.append("     BMP.SVC_KEI_UCWK_NO, ")
					.append("     BMP.HJIN_EO_YKAE_SVKEI_NO, ")
					.append("     BMP.HOJIN_KOJIN_CD, ")
					.append("     BMP.NTT_KEI_TEL_KAISEN_NO, ")
					.append("     BMP.NTT_KEISHA_NM, ")
					.append("     BMP.BMP_KOJI_MSKM_JIGSHO_NO, ")
					.append("     BMP.DOJI_KOJI_UM, ")
					.append("     BMP.DOJI_KOJI_JDG_CD,  ")
					.append("     BMP.BMP_KOJI_NO, ")
					.append("     BMP.GENE_ADD_DTM, ")
					.append("     BMP.UPD_DTM, ")
					.append("     BMP.MK_FLG,")
					.append("     BMP.BMP_KOJI_REQYMD,")
					.append("     NVL(BMP.ITNM_TSJGS_CD, '0000') AS ITNM_TSJGS_CD,  ")
					.append("     (SELECT ")
					.append("       UCWK.SVC_KEI_NO")
					.append("      FROM")
					.append("       KK_T_SVC_KEI_UCWK UCWK ")
					.append("      WHERE ")
					.append("       BMP.SVC_KEI_UCWK_NO = UCWK.SVC_KEI_UCWK_NO ")
					.append("       AND (UCWK.SVC_KEI_UCWK_NO, UCWK.RSV_APLY_YMD || UCWK.GENE_ADD_DTM) = ( ")
					.append("        SELECT ")
					.append("         UCWK_GENE.SVC_KEI_UCWK_NO, MAX(UCWK_GENE.RSV_APLY_YMD || UCWK_GENE.GENE_ADD_DTM) ")
					.append("        FROM ")
					.append("         KK_T_SVC_KEI_UCWK UCWK_GENE ")
					.append("        WHERE ")
					.append("         UCWK_GENE.SVC_KEI_UCWK_NO = UCWK.SVC_KEI_UCWK_NO ")
					.append("         AND UCWK_GENE.RSV_APLY_YMD <= ? ")
					.append("         AND UCWK_GENE.RSV_APLY_CD = '2' ")
					.append("         AND UCWK_GENE.MK_FLG = '0' ")
					.append("        GROUP BY ")
					.append("         UCWK_GENE.SVC_KEI_UCWK_NO ")
					.append("       )")
					.append("     ) AS SVC_KEI_NO")
					.append("    FROM  ")
					.append("     TU_T_BMP_KOJI BMP ")
					.append("    WHERE")
					.append("     (BMP.BMP_KOJI_NO, BMP.GENE_ADD_DTM) = ( ")
					.append("      SELECT ")
					.append("       BMP_GENE.BMP_KOJI_NO, MAX(BMP_GENE.GENE_ADD_DTM) ")
					.append("      FROM ")
					.append("       TU_T_BMP_KOJI BMP_GENE  ")
					.append("      WHERE ")
					.append("       BMP_GENE.BMP_KOJI_NO = BMP.BMP_KOJI_NO  ")
					.append("       AND BMP_GENE.MK_FLG = '0' ")
					.append("      GROUP BY ")
					.append("       BMP_GENE.BMP_KOJI_NO")
					.append("     ) ")
					.append("     AND NVL(BMP.BMPKJ_KIBO_YMD_PDING_FLG, '0') = '0' ")
					.append("     AND BMP.BMP_MSKMSHO_TYPE_CD != '3' ");
				//検索Keyとして指定された場合
				if(inMsg.getObject(ETU0011B015CBSMsg.KEY_NTT_KEI_TEL_KAISEN_NO) != null)
				{
					sql_From.append("     AND BMP.NTT_KEI_TEL_KAISEN_NO = ? ");
				}
				//検索Keyとして指定された場合
				if(inMsg.getObject(ETU0011B015CBSMsg.KEY_MSKM_JIGSHO_NO) != null)
				{
					sql_From.append("     AND BMP.BMP_KOJI_MSKM_JIGSHO_NO = ? ");
				}
				//検索Keyとして指定された場合
				if(inMsg.getObject(ETU0011B015CBSMsg.KEY_BMP_KOJI_FIX_YMDH_FROM) != null)
				{
					sql_From.append("     AND BMP.BMP_KOJI_FIX_YMDH >= ? ");
				}
				//検索Keyとして指定された場合
				if(inMsg.getObject(ETU0011B015CBSMsg.KEY_BMP_KOJI_FIX_YMDH_TO) != null)
				{
					sql_From.append("     AND BMP.BMP_KOJI_FIX_YMDH <= ? ");
				}
				//検索Keyとして指定された場合
				if(inMsg.getObject(ETU0011B015CBSMsg.KEY_BMP_KOJI_STAT) != null)
				{
					if(inMsg.getObject(ETU0011B015CBSMsg.KEY_BMP_KOJI_STAT).equals("031"))
					{
						sql_From.append("     AND BMP.BMP_KOJI_STAT IN ('031','032','040', '041') ")
							.append("     AND REPLACE(NVL(BMP.BMP_KOJI_REQYMD, 'DUMMY'), '', 'DUMMY') = 'DUMMY' ");
					}
					else
					{
						sql_From.append("     AND BMP.BMP_KOJI_STAT IN ('031','032','040', '041') ")
							.append("     AND NOT EXISTS( ")
							.append("         SELECT ")
							.append("             1 ")
							.append("         FROM ")
							.append("             TU_T_BMP_KOJI KOJI_EXIS ")
							.append("         WHERE ")
							.append("            KOJI_EXIS.BMP_KOJI_STAT IN ('031','032','040', '041') ")
							.append("         AND REPLACE(NVL(KOJI_EXIS.BMP_KOJI_REQYMD, 'DUMMY'), '', 'DUMMY') = 'DUMMY' ")
							.append("         AND BMP.BMP_KOJI_NO = KOJI_EXIS.BMP_KOJI_NO ")
							.append("         AND BMP.GENE_ADD_DTM = KOJI_EXIS.GENE_ADD_DTM )");
					}
				}
				else
				{
					sql_From.append("     AND BMP.BMP_KOJI_STAT IN ('031', '032', '040', '041') ");
				}
				//検索Keyとして指定された場合
				if(inMsg.getObject(ETU0011B015CBSMsg.KEY_DOJI_KOJI_UM) != null)
				{
					//(事後工事分の場合)
					if ("1".equals(inMsg.getString(ETU0011B015CBSMsg.KEY_DOJI_KOJI_UM)))
					{
						sql_From.append("     AND BMP.DOJI_KOJI_JDG_CD = '0' ");
					}
					//(同時開通分の場合)
					else if ("2".equals(inMsg.getString(ETU0011B015CBSMsg.KEY_DOJI_KOJI_UM)))
					{
						sql_From.append("     AND BMP.DOJI_KOJI_JDG_CD = '1' ");
					}
				}
					sql_From.append("   ) BMP_UCWK ")
					.append(" ) BMP_UCWK_SVK ");
					sql_Where.append(" WHERE ")
					.append(" BMP_UCWK_SVK.MK_FLG = '0'");
				//検索Keyとして指定された場合
				if(inMsg.getObject(ETU0011B015CBSMsg.KEY_SVC_KEI_NO) != null)
				{
					sql_Where.append(" AND DECODE(BMP_UCWK_SVK.HOJIN_KOJIN_CD, 1, BMP_UCWK_SVK.SVC_KEI_NO, BMP_UCWK_SVK.HJIN_EO_YKAE_SVKEI_NO) = ? ");
				}
				//検索Keyとして指定された場合
				if(inMsg.getObject(ETU0011B015CBSMsg.KEY_SEIRI_NO) != null)
				{
					sql_Where.append(" AND BMP_UCWK_SVK.SEIRI_NO = ? ");
				}
					sql_Order.append("ORDER BY  ")
					.append(" BMP_UCWK_SVK.BMP_KOJI_MSKM_JIGSHO_NO ASC, ")
					.append(" BMP_UCWK_SVK.BMP_KOJI_FIX_YMDH ASC, ")
					.append(" SVC_KEI_NO_DISP ASC, ")
					.append(" BMP_UCWK_SVK.NTT_KEI_TEL_KAISEN_NO ASC ");
			}
			
			//件数取得SQL
			StringBuffer sql_cnt = new StringBuffer();
			sql_cnt.append(" SELECT ")
				.append("  COUNT(*) AS CNT ")
				.append(sql_From)
				.append(sql_Where);
			
			//prepareStatementにSQL文をセット
			pstmt = con1.prepareStatement(sql_cnt.toString());
			
			//ログ出力(SQL文の出力)
			JSYejbLog.outlog(inContext, JSYejbLog.DBACCESS, this.getClass(), sql_cnt);
			
			/**
			 * パラメータセット用
			 */
			int iIndex = 1;

			// 運用日付取得
			String opeDate = JTUModelCommon.getOpeDate(inMsg, null);
			
			// PreparedStatementの指定されたパラメータカラムに 指定された値を設定
			if("1".equals(inMsg.getString(ETU0011B015CBSMsg.FUNC_CODE)))
			{
				
				// パラメータの設定(運用日付を指定)
				CAANJDBCUtil.setParam(pstmt, iIndex++, opeDate);
				CAANJDBCUtil.setParam(pstmt, iIndex++, opeDate);
				
				// パラメータの設定(ＫＥＹ＿ＮＴＴ契約電話回線番号を指定)
				if(inMsg.getObject(ETU0011B015CBSMsg.KEY_NTT_KEI_TEL_KAISEN_NO) != null)
				{
					CAANJDBCUtil.setParam(pstmt, iIndex++, inMsg.getObject(ETU0011B015CBSMsg.KEY_NTT_KEI_TEL_KAISEN_NO));
				}
				// パラメータの設定(ＫＥＹ＿申込事業所番号を指定)
				if(inMsg.getObject(ETU0011B015CBSMsg.KEY_MSKM_JIGSHO_NO) != null)
				{
					CAANJDBCUtil.setParam(pstmt,  iIndex++, inMsg.getObject(ETU0011B015CBSMsg.KEY_MSKM_JIGSHO_NO));
				}
				// パラメータの設定(ＫＥＹ＿番ポ工事確定年月日時＿ＦＲＯＭを指定)
				if(inMsg.getObject(ETU0011B015CBSMsg.KEY_BMP_KOJI_FIX_YMDH_FROM) != null)
				{
				CAANJDBCUtil.setParam(pstmt,  iIndex++, inMsg.getObject(ETU0011B015CBSMsg.KEY_BMP_KOJI_FIX_YMDH_FROM));
				}
				// パラメータの設定(ＫＥＹ＿番ポ工事確定年月日時＿ＴＯを指定)
				if(inMsg.getObject(ETU0011B015CBSMsg.KEY_BMP_KOJI_FIX_YMDH_TO) != null)
				{
					CAANJDBCUtil.setParam(pstmt,  iIndex++, inMsg.getObject(ETU0011B015CBSMsg.KEY_BMP_KOJI_FIX_YMDH_TO));
				}
				// パラメータの設定(ＫＥＹ＿サービス契約番号を指定)
				if(inMsg.getObject(ETU0011B015CBSMsg.KEY_SVC_KEI_NO) != null)
				{
					CAANJDBCUtil.setParam(pstmt,  iIndex++, inMsg.getObject(ETU0011B015CBSMsg.KEY_SVC_KEI_NO));
				}
				// パラメータの設定(ＫＥＹ＿整理番号を指定)
				if(inMsg.getObject(ETU0011B015CBSMsg.KEY_SEIRI_NO) != null)
				{
					CAANJDBCUtil.setParam(pstmt,  iIndex++, inMsg.getObject(ETU0011B015CBSMsg.KEY_SEIRI_NO));
				}

			}
			
			// ResultSetの取得
			rsltQuery = pstmt.executeQuery();
			
			// 明細にセットする項目
			String[] msgKeyListCnt = {
					ETU0011B015CBSMsg.TOTAL_SEARCH_NUM
			};
			
			/**
			 * 結果取得
			 */
			rsltQuery.next();
			mapMessage(rsltQuery, msgKeyListCnt, inMsg);

			// 資源の解放
			if(rsltQuery != null)
			{
				rsltQuery.close();
			}
			if(pstmt != null)
			{
				pstmt.close();
			}
			
			// 検索件数が0件の場合、エラーフラグに"1"を設定して処理終了
			if (0 == (Integer.parseInt(inMsg.getString(ETU0011B015CBSMsg.TOTAL_SEARCH_NUM))))
			{
				inMsg.set(ETU0011B015CBSMsg.SEARCH_ERR_FLG, JPCModelConstant.SEARCH_ERR_FLG_ZERO);
				return;
			}
			// 検索件数が最大検索件数を超えた場合、エラーフラグに"2"を設定して処理終了
			if (Integer.parseInt(inMsg.getString(ETU0011B015CBSMsg.MAX_SEARCH_NUM))
				< (Integer.parseInt(inMsg.getString(ETU0011B015CBSMsg.TOTAL_SEARCH_NUM))))
			{
				inMsg.set(ETU0011B015CBSMsg.SEARCH_ERR_FLG, JPCModelConstant.SEARCH_ERR_FLG_OVERMAX);
				return;
			}

			/***********************************************************************************************
			 * データ取得
			 */
			StringBuffer sql_Buff = new StringBuffer();
			sql_Buff.append(sql_Select)
				.append(sql_From)
				.append(sql_Where)
				.append(sql_Order);
			
			//prepareStatementにSQL文をセット
			pstmt = con1.prepareStatement(sql_Buff.toString());
			
			//ログ出力(SQL文の出力)
			JSYejbLog.outlog(inContext, JSYejbLog.DBACCESS, this.getClass(), sql_Buff);
			
			/**
			 * パラメータセット用
			 */
			iIndex = 1;
			
			// PreparedStatementの指定されたパラメータカラムに 指定された値を設定
			if("1".equals(inMsg.getString(ETU0011B015CBSMsg.FUNC_CODE)))
			{
				
				// パラメータの設定(運用日付を指定)
				CAANJDBCUtil.setParam(pstmt, iIndex++, opeDate);
				CAANJDBCUtil.setParam(pstmt, iIndex++, opeDate);
				
				// パラメータの設定(ＫＥＹ＿ＮＴＴ契約電話回線番号を指定)
				if(inMsg.getObject(ETU0011B015CBSMsg.KEY_NTT_KEI_TEL_KAISEN_NO) != null)
				{
					CAANJDBCUtil.setParam(pstmt, iIndex++, inMsg.getObject(ETU0011B015CBSMsg.KEY_NTT_KEI_TEL_KAISEN_NO));
				}
				// パラメータの設定(ＫＥＹ＿申込事業所番号を指定)
				if(inMsg.getObject(ETU0011B015CBSMsg.KEY_MSKM_JIGSHO_NO) != null)
				{
					CAANJDBCUtil.setParam(pstmt,  iIndex++, inMsg.getObject(ETU0011B015CBSMsg.KEY_MSKM_JIGSHO_NO));
				}
				// パラメータの設定(ＫＥＹ＿番ポ工事確定年月日時＿ＦＲＯＭを指定)
				if(inMsg.getObject(ETU0011B015CBSMsg.KEY_BMP_KOJI_FIX_YMDH_FROM) != null)
				{
					CAANJDBCUtil.setParam(pstmt,  iIndex++, inMsg.getObject(ETU0011B015CBSMsg.KEY_BMP_KOJI_FIX_YMDH_FROM));
				}
				// パラメータの設定(ＫＥＹ＿番ポ工事確定年月日時＿ＴＯを指定)
				if(inMsg.getObject(ETU0011B015CBSMsg.KEY_BMP_KOJI_FIX_YMDH_TO) != null)
				{
					CAANJDBCUtil.setParam(pstmt,  iIndex++, inMsg.getObject(ETU0011B015CBSMsg.KEY_BMP_KOJI_FIX_YMDH_TO));
				}
				// パラメータの設定(ＫＥＹ＿サービス契約番号を指定)
				if(inMsg.getObject(ETU0011B015CBSMsg.KEY_SVC_KEI_NO) != null)
				{
					CAANJDBCUtil.setParam(pstmt,  iIndex++, inMsg.getObject(ETU0011B015CBSMsg.KEY_SVC_KEI_NO));
				}
				// パラメータの設定(ＫＥＹ＿整理番号を指定)
				if(inMsg.getObject(ETU0011B015CBSMsg.KEY_SEIRI_NO) != null)
				{
					CAANJDBCUtil.setParam(pstmt,  iIndex++, inMsg.getObject(ETU0011B015CBSMsg.KEY_SEIRI_NO));
				}

			}
			
			// ResultSetの取得
			rsltQuery = pstmt.executeQuery();
			
			// ETU0011B015CBSMsgの明細にセットする項目
			String[] msgKeyList1 = {
					ETU0011B015CBSMsg1List.BMP_KOJI_STAT
					, ETU0011B015CBSMsg1List.BMP_KOJI_FIX_YMDH
					, ETU0011B015CBSMsg1List.SVC_KEI_NO_DISP
					, ETU0011B015CBSMsg1List.SVC_KEI_NO
					, ETU0011B015CBSMsg1List.SVC_KEI_UCWK_NO
					, ETU0011B015CBSMsg1List.HJIN_EO_YKAE_SVKEI_NO
					, ETU0011B015CBSMsg1List.HOJIN_KOJIN_CD
					, ETU0011B015CBSMsg1List.NTT_KEI_TEL_KAISEN_NO
					, ETU0011B015CBSMsg1List.NTT_KEISHA_NM
					, ETU0011B015CBSMsg1List.BMP_KOJI_MSKM_JIGSHO_NO
					, ETU0011B015CBSMsg1List.MSKM_JIGSHONM
					, ETU0011B015CBSMsg1List.DOJI_KOJI_UM
					, ETU0011B015CBSMsg1List.BMP_KOJI_NO
					, ETU0011B015CBSMsg1List.GENE_ADD_DTM
					, ETU0011B015CBSMsg1List.UPD_DTM
					, ETU0011B015CBSMsg1List.DOJI_KOJI_JDG_CD
					, ETU0011B015CBSMsg1List.BMP_KOJI_REQYMD
					, ETU0011B015CBSMsg1List.TSJGS_NM
			};
			
			// 明細に処理結果(ResultSet)をマッピング
			CAANMsg[] outMsg1 = mapMessageList(rsltQuery, msgKeyList1, "eo.ejb.cbs.cbsmsg.ETU0011B015CBSMsg1List", 0);
			
			/**
			 *  検索エラーフラグの設定
			 */
			// 検索件数が0件の場合、エラーフラグに"1"を設定して処理終了
			if (0 == outMsg1.length)
			{
				inMsg.set(ETU0011B015CBSMsg.SEARCH_ERR_FLG, JPCModelConstant.SEARCH_ERR_FLG_ZERO);
				return;
			}
			// 検索件数が最大検索件数を超えた場合、エラーフラグに"2"を設定して処理終了
			if (Integer.parseInt(inMsg.getString(ETU0011B015CBSMsg.MAX_SEARCH_NUM))
				< outMsg1.length)
			{
				inMsg.set(ETU0011B015CBSMsg.SEARCH_ERR_FLG, JPCModelConstant.SEARCH_ERR_FLG_OVERMAX);
				return;
			}
			
			//総検索件数を再設定
			inMsg.set(ETU0011B015CBSMsg.TOTAL_SEARCH_NUM, Integer.toString(outMsg1.length));
			
			// inMsg(CBSMsg)に明細をセット
			inMsg.set("ETU0011B015CBSMsg1List", outMsg1);
			

		} 
		catch(SQLException e) 
		{
			inMsg.set(ETU0011B015CBSMsg.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(ETU0011B015CBSMsg.STATUS, StatusCodes.FIND_DB_ERR);
				throw new CAANRuntimeException(e);
			}
		}
	}
}
