/*******************************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JCCejbGetOperationDateUtil
*	ソースファイル名：JCCejbGetOperationDateUtil.java
*	作成者			：富士通
*	日付			：2011年04月12日
*＜機能概要＞
*	サービス層運用日付取得部品
*   キーに対応するオンライン運用日付またはバッチ運用日付を返却します。
*   キーとしてnullを指定した場合、共通のオンライン運用日付または
*   共通のバッチ運用日付を返却します。
*   キーに対応する運用日付が定義されていない場合、nullを返却します。
*   運用日付はアプリケーションプロパティファイルの定義に基づいて、
*   アプリケーションプロパティファイルまたはデータベースから取得します。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/04/12	富士通		新規作成
*   v1.01.00    2011/08/05  FJ)藤田     運用日付取得部品対応
*
**********************************************************************/
package eo.ejb.common;

import java.util.HashMap;

import eo.common.util.JCCFrameworkException;

import com.fujitsu.futurity.common.JCCWebAddTrnId;
import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.model.common.JCMAPLConstMgr;
import com.fujitsu.futurity.model.base.CAANMsg;

public class JCCejbGetOperationDateUtil {
	/**
	 * アプリ定義の取得キー
	 */
	private static final String KEY_APL_OPEDATE_ENV = "OPEDATE_ENV";
	/**
	 *  コード区分（共通のオンライン運用日付）
	 */
	private static final String CD_DIV_ONLINE = "ODATE";
	/**
	 *  コード区分（共通のバッチ運用日付）
	 */
	private static final String CD_DIV_BAT    = "BDATE";
	/**
	 *  コード区分（個別のオンライン運用日付）
	 */
	private static final String CD_DIV_HEAD_ONLINE = "ODATE.";
	/**
	 *  コード区分（個別のオンライン運用日付）
	 */
	private static final String CD_DIV_HEAD_BAT    = "BDATE.";
//	/**
//	 *  SQL文
//	 */
//	private static final String SQL_SYS_PARAM_KNRI    = "SELECT SYS_PARAM_SETTE_VALUE_1 FROM ZM_M_SYS_PARAM_KNRI WHERE SYS_PARAM_BUNRUI_CD = ? AND SYS_PARAM_ID = ? AND MK_FLG = '0'";
//	/**
//	 *  テーブル名
//	 */
//	private static final String SQL_TABLE_NAME = "ZM_M_SYS_PARAM_KNRI";
//	/**
//	 *  抽出対象カラム名
//	 */
//	private static final String SQL_COLNAME_SELECT = "SYS_PARAM_SETTE_VALUE_1";
//	/**
//	 *  システムパラメータ分類コード（DB検索用）
//	 */
//	private static final String VALUE_SYS_PARAM_BUNRUI_CD = "CD99992";
    /**
     * テンプレート共通部の運用日付へのアクセスキー
     */
    public static final String OPERATEDATE = "operateDate";
    /**
     * テンプレート共通部の運用日時へのアクセスキー
     */
    public static final String OPERATEDATETIME = "operateDatetime";

	/**
	 * 引数としてキーを指定し、キーに対応するオンライン運用日付を返却します。<br>
	 * キーとしてnullを指定した場合、共通のオンライン運用日付を返却します。<br>
	 * オンライン運用日付はアプリケーションプロパティファイルの定義に基づいて取得します。<br>
	 * コード区分に対応する運用日付が定義されていない場合、nullを返却します。
	 * @param msg CBSメッセージ
	 * @param cdDiv コード区分
	 * @return 運用日付（YYYYMMDD形式）
	 * @throws JCCFrameworkException
	 *      <ul>
	 *         <li>アプリケーションプロパティファイルの定義誤り</li>
	 *         <li>データベースの内容誤り</li>
	 *      </ul>
	 * @author FST）伊藤
	 */
	public static String getOpeDate(CAANMsg msg, String key) throws Exception
	{
		String cdDiv;
		// CBSメッセージがnullの場合
		if ( msg == null)
		{
			// 本来は通過し得ないルート
			throw new JCCFrameworkException("パラメータ異常：CBSメッセージが設定されていません");
		}
		// キーがnullの場合、"ODATE"をコード区分とする。
		// 2011/11/04 運用日付取得の強制本番モード対応 FST start
		if ( key == null || "3".equals(JCMAPLConstMgr.getString(KEY_APL_OPEDATE_ENV)) )
		{
			cdDiv = CD_DIV_ONLINE;
		}
		// 2011/11/04 運用日付取得の強制本番モード対応 FST end
		// 上記以外の場合、"ODATE."とキーを組み合わせたコード区分を生成する。
		else
		{
			cdDiv = CD_DIV_HEAD_ONLINE + key;
		}
		// コード区分に対応する運用日付を返却する。
//運用日付対応　2011/08/05 FST)fujita　start
		// スレッドローカルより運用日付を取得
		HashMap<String, Object> unyoDateMap = JCCWebAddTrnId.get(JCMConstants.ADD_TRN_ID_UNYO_DATE_MAP);

		// 20130328 FST_mukuo)スレッドローカルに格納された呼び出し区分がバッチの場合はバッチ運用日付を返却する start
		HashMap<String, Object> callTypeMap = JCCWebAddTrnId.get(JCMConstants.CALL_TYPE_KEY);
		if(null != callTypeMap)
		{
			String callType = (String)callTypeMap.get(JCMConstants.CALL_TYPE_KEY);
			if("4".equals(callType))	// バッチ判定
			{
				return getBatOpeDate(msg, key);
			}
		}		
		// 20130328 FST_mukuo)スレッドローカルに格納された呼び出し区分がバッチの場合はバッチ運用日付を返却する end
		
		return (String)unyoDateMap.get(cdDiv);
		//return getOperationDate(msg, cdDiv);
//運用日付対応　2011/08/05 FST)fujita　end
	}

// 2013/03/28 FST_mukuo)オンライン運用日付取得専用処理追加 start
	/**
	 * 引数としてキーを指定し、キーに対応するオンライン運用日付を返却します。<br>
	 * キーとしてnullを指定した場合、共通のオンライン運用日付を返却します。<br>
	 * オンライン運用日付はアプリケーションプロパティファイルの定義に基づいて取得します。<br>
	 * コード区分に対応する運用日付が定義されていない場合、nullを返却します。
	 * @param msg CBSメッセージ
	 * @param cdDiv コード区分
	 * @return 運用日付（YYYYMMDD形式）
	 * @throws JCCFrameworkException
	 *      <ul>
	 *         <li>アプリケーションプロパティファイルの定義誤り</li>
	 *         <li>データベースの内容誤り</li>
	 *      </ul>
	 * @author FST）伊藤
	 */
	public static String getOnlineOpeDate(CAANMsg msg, String key) throws Exception
	{
		String cdDiv;
		// CBSメッセージがnullの場合
		if ( msg == null)
		{
			// 本来は通過し得ないルート
			throw new JCCFrameworkException("パラメータ異常：CBSメッセージが設定されていません");
		}
		// キーがnullの場合、"ODATE"をコード区分とする。
		// 2011/11/04 運用日付取得の強制本番モード対応 FST start
		if ( key == null || "3".equals(JCMAPLConstMgr.getString(KEY_APL_OPEDATE_ENV)) )
		{
			cdDiv = CD_DIV_ONLINE;
		}
		// 2011/11/04 運用日付取得の強制本番モード対応 FST end
		// 上記以外の場合、"ODATE."とキーを組み合わせたコード区分を生成する。
		else
		{
			cdDiv = CD_DIV_HEAD_ONLINE + key;
		}
		// コード区分に対応する運用日付を返却する。
//運用日付対応　2011/08/05 FST)fujita　start
		// スレッドローカルより運用日付を取得
		HashMap<String, Object> unyoDateMap = JCCWebAddTrnId.get(JCMConstants.ADD_TRN_ID_UNYO_DATE_MAP);
		return (String)unyoDateMap.get(cdDiv);
		//return getOperationDate(msg, cdDiv);
//運用日付対応　2011/08/05 FST)fujita　end
	}	
	
// 2013/03/28 FST_mukuo)オンライン運用日付取得専用処理追加 end	
	/**
	 * 引数としてキーを指定し、キーに対応するバッチ運用日付を返却します。<br>
	 * キーとしてnullを指定した場合、共通のバッチ運用日付を返却します。<br>
	 * バッチ運用日付はアプリケーションプロパティファイルの定義に基づいて取得します。<br>
	 * コード区分に対応する運用日付が定義されていない場合、nullを返却します。
	 * @param msg CBSメッセージ
	 * @param cdDiv コード区分
	 * @return 運用日付（YYYYMMDD形式）
	 * @throws JCCFrameworkException
	 *      <ul>
	 *         <li>アプリケーションプロパティファイルの定義誤り</li>
	 *         <li>データベースの内容誤り</li>
	 *      </ul>
	 * @author FST）伊藤
	 */
	public static String getBatOpeDate(CAANMsg msg, String key) throws Exception
	{
// 20130422 バッチ呼び出しの場合はスレッドローカルより運用日付を取得 FST)Yanagihara start
		HashMap<String, Object> callTypeMap = JCCWebAddTrnId.get(JCMConstants.CALL_TYPE_KEY);
		if(null != callTypeMap)
		{
			String callType = (String)callTypeMap.get(JCMConstants.CALL_TYPE_KEY);
			if("4".equals(callType))	// バッチ判定
			{
				HashMap map = JCCWebAddTrnId.get(JCMConstants.CC_BATCH_OPERATE_DATE);
				if(map != null)
				{
					// 20130529 空メール送信ルートでは運用日付が設定されないためnullチェックを実施 fst)yanagihara start
					String opedate = (String) map.get(JCMConstants.BATCH_OPEDATE);
					if(opedate != null && !"".equals(opedate))
					{
						return opedate;
					}
					// 20130529 空メール送信ルートでは運用日付が設定されないためnullチェックを実施 fst)yanagihara end
				}
			}
		}		
// 20130422 バッチ呼び出しの場合はスレッドローカルより運用日付を取得 FST)Yanagihara end

		String cdDiv;
		// CBSメッセージがnullの場合
		if ( msg == null)
		{
			// 本来は通過し得ないルート
			throw new JCCFrameworkException("パラメータ異常：CBSメッセージが設定されていません");
		}
		// キーがnullの場合、"BDATE"をコード区分とする。
		// 2011/11/04 運用日付取得の強制本番モード対応 FST start
		if ( key == null || "3".equals(JCMAPLConstMgr.getString(KEY_APL_OPEDATE_ENV)))
		{
			cdDiv = CD_DIV_BAT;
		}
		// 2011/11/04 運用日付取得の強制本番モード対応 FST start
		// 上記以外の場合、"BDATE."とキーを組み合わせたコード区分を生成する。
		else
		{
			cdDiv = CD_DIV_HEAD_BAT + key;
		}
		// コード区分に対応する運用日付を返却する。
//運用日付対応　2011/08/05 FST)fujita　start
		// スレッドローカルより運用日付を取得
		HashMap<String, Object> unyoDateMap = JCCWebAddTrnId.get(JCMConstants.ADD_TRN_ID_UNYO_DATE_MAP);
		return (String)unyoDateMap.get(cdDiv);
		//return getOperationDate(msg, cdDiv);
//運用日付対応　2011/08/05 FST)fujita　end
	}
	
	
//	/**
//	 * 引数としてコード区分を受け取り、オンライン運用日付またはバッチ運用日付を返却します。<br>
//	 * 運用日付はアプリケーションプロパティファイルの定義に基いて取得します。<br>
//	 * コード区分に対応する運用日付が定義されていない場合、nullを返却します。
//	 * @param msg CBSメッセージ
//	 * @param cdDiv コード区分
//	 * @return 運用日付（YYYYMMDD形式）
//	 * @throws JCCFrameworkException
//	 *      <ul>
//	 *         <li>起動時パラメータの誤り</li>
//	 *         <li>アプリケーションプロパティファイルの定義誤り</li>
//	 *         <li>データベースの内容誤り</li>
//	 *      </ul>
//	 * @author FST）伊藤
//	 */
// 	private static String getOperationDate(CAANMsg msg, String cdDiv)
// 			throws Exception
//	{
//		String sSchOpeDate;			// テンプレート共通部より取得した全運用日付の定義情報
//		String asAllOpeDateDef[];	// 運用日付の定義情報の配列
//									// （「コード区分=YYYYMMDD」の形式）
//		String asOpeDateDef[];		// 運用日付の定義情報
//		int iCounter;				// ループカウンタ
//		String asKey[];				// 全アプリ定義のキー
//		StringBuffer sb;			// 共通メッセージ領域の更新内容バッファ
//		StringBuffer sbTime;		// 共通メッセージ領域の更新内容バッファ
//		String sOpeDate;			// アプリ定義に基づいて取得した運用日付
//		String sReturn;				// 引数のコード区分に対応する運用日付
//		
//		//------------------------------------------------
//		// (1) パラメータチェック処理
//		//------------------------------------------------
//		// CBSメッセージがnullの場合
//		if ( msg == null)
//		{
//			// 本来は通過し得ないルート
//			throw new JCCFrameworkException("パラメータ異常：CBSメッセージが設定されていません");
//		}
//		// コード区分がnullの場合
//		if ( cdDiv == null)
//		{
//			// 本来は通過し得ないルート
//			throw new JCCFrameworkException(
//					"パラメータ異常：コード区分が設定されていません");
//		}
//		
//		//------------------------------------------------
//		// (2) 共通メッセージ領域参照処理
//		//------------------------------------------------
//		// システム日付クリア対応
//		// システム日付が設定されていると(2)-5 内の処理でnull返却になるため。
//		msg.set(OPERATEDATE, "");
//		
//		// (2)-1 テンプレート共通部より運用日付の定義情報を取得する。
//		sSchOpeDate = msg.getString(OPERATEDATE);
//		// (2)-2 テンプレート共通に運用日付を格納済みである場合
//		// システム日付クリア対応でコメントアウト
//		// if (sSchOpeDate != null)
//		if (!"".equals(sSchOpeDate))
//		{
//			// システム日付クリア対応:ここには""のデータはこないようになったためコメントアウト
//			// (2)-3 運用日付の定義情報に空白""が格納されている場合
//			//   （運用日付の定義が1つも存在しない場合）、nullを返却する。
//			//if ("".equals(sSchOpeDate))
//			//{
//			//	return null;
//			//}
//			
//			// (2)-4 運用日付の定義情報を":"で分割する。
//			asAllOpeDateDef = sSchOpeDate.split(":");
//			// (2)-5 運用日付の定義情報の全要素に対して以下を実施する。
//			for( iCounter=0; iCounter<asAllOpeDateDef.length; iCounter++ )
//			{
//				// (2)-5-1 該当要素を"="で分割する。
//				asOpeDateDef = asAllOpeDateDef[iCounter].split("=",2);
//				// (2)-5-2 分割結果の第一要素（コード区分）がメソッド引数と
//				//         一致しない場合、次の要素の処理に移る。
//				if( ! cdDiv.equals(asOpeDateDef[0]) )
//				{
//					continue;
//				}
//				// (2)-5-3 分割結果の配列サイズが2以外の場合
//				//     （「コード区分=〜」の形式ではない場合）
//				if (asOpeDateDef.length != 2)
//				{
//					// nullを返却する。
//					return null;
//				}
//				// (2)-5-4 分割結果の配列サイズが2の場合
//				//     （「コード区分=〜」の形式である場合）
//				else
//				{
//					// 分割結果の第二要素（運用日付）を返却する。
//					return asOpeDateDef[1];
//				}
//			}
//			// (2)-6 該当コード区分の情報がない場合、nullを返却する。
//			return null;
//		}
//		//------------------------------------------------
//		// (3) 全アプリ定義取得処理
//		//------------------------------------------------
//		// (3)-1 共通メッセージ領域の更新内容を組み立てるための文字列バッファを作成する。
//		sb = new StringBuffer("");
//		sbTime = new StringBuffer("");
//		String time = JCCModelCommon.getSysDateTimeStamp().substring(8, 17);
//
//		// (3)-2 アプリ定義の全キーを取得する。
//		asKey = JCMAPLConstMgr.getAllKeys();
//		// (3)-3 アプリ定義の全キーに対して、以下を実施する。
//		sReturn = null;
//		for( iCounter=0; iCounter<asKey.length; iCounter++ )
//		{
//			// (3)-3-1 キーが以下の何れにも該当しない場合、
//			//       （コード区分ではない場合）、次の要素の処理に移る。
//			//         "ODATE"と一致する
//			//         "BDATE"と一致する
//			//         "ODATE."で始まる
//			//         "BDATE."で始まる
//			if ( ! CD_DIV_ONLINE.equals( asKey[iCounter] )        &&
//			     ! CD_DIV_BAT.equals( asKey[iCounter] )           &&
//			     ! asKey[iCounter].startsWith(CD_DIV_HEAD_ONLINE) &&
//			     ! asKey[iCounter].startsWith(CD_DIV_HEAD_BAT)     )
//			{
//				continue;
//			}
//			
//			// (3)-3-2 内部メソッドを呼び出し、コード区分に対応する
//			//         運用日付を取得する。
//			sOpeDate = getOperationDate(asKey[iCounter]);
//			// (3)-3-3 取得した運用日付がnullである場合、次の要素の処理に移る。
//			if ( sOpeDate == null )
//			{
//				continue;
//			}
//			
//			// (3)-3-4 格納する運用日付の情報が２個目以降の場合、
//			//     文字列バッファに区切り文字 ":" を追記する。
//			if ( sb.length() != 0 )
//			{
//				sb.append(":");
//				sbTime.append(":");
//			}
//			// (3)-3-5 文字列バッファに以下を追記する。
//			//    コード区分（アプリ定義のキー）=運用日付
//			sb.append(asKey[iCounter]);
//			sb.append("=");
//			sb.append(sOpeDate);
//
//			sbTime.append(asKey[iCounter]);
//			sbTime.append("=");
//			sbTime.append(sOpeDate);
//			sbTime.append(time);
//			
//			// (3)-3-6 コード区分（アプリ定義のキー）が
//			//    メソッド引数と一致する場合、取得した定義値を
//			//    返却値として保持し、次の要素の処理に移る。
//			if (cdDiv.equals(asKey[iCounter]))
//			{
//				sReturn = sOpeDate;
//			}
//		}
//		// システムID単位の設定をする場合は以下の設定
//		// msg.set(OPERATEDATE, sb.toString());
//		// msg.set(OPERATEDATE, sbTime.toString());
//		// 運用日付、運用日時を1つだけ設定する場合は以下の設定
//		msg.set(OPERATEDATE, sReturn);
//		msg.set(OPERATEDATETIME, sReturn + time);
//		
//		//------------------------------------------------
//		// (4) 復帰処理
//		//------------------------------------------------
//		return sReturn;
//	}
//
//	/**
//	 * 引数としてコード区分を受け取り、オンライン運用日付またはバッチ運用日付を返却します。<br>
//	 * 運用日付はアプリケーションプロパティファイルの定義に基いて取得します。<br>
//	 * コード区分に対応する運用日付が定義されていない場合、nullを返却します。
//	 * @param cdDiv コード区分
//	 * @return 運用日付（YYYYMMDD形式）
//	 * @throws JCCFrameworkException
//	 *      <ul>
//	 *         <li>起動時パラメータの誤り</li>
//	 *         <li>アプリケーションプロパティファイルの定義誤り</li>
//	 *         <li>データベースの内容誤り</li>
//	 *      </ul>
//	 * @author FST）伊藤
//	 */
// 	private static String getOperationDate(String cdDiv)
// 			throws Exception
//	{
// 		SimpleDateFormat formatYMD = new SimpleDateFormat("yyyyMMdd"); // 日付の正当性確認用オブジェクト
//		String sProductionDateEnv;				// アプリ定義の運用日付取得元
//		int iProductionDateEnv;					// アプリ定義の運用日付取得元
//		String sOpeDate;						// 運用日付（String型）
//		Date dateOpeDate;						// 運用日付（Date型）
//		String sFrom;							// 例外メッセージに埋め込む取得元
//		Connection cnct = null;					// データベースコネクション
//		PreparedStatement	pstmtQuery = null;	// プリペアドステートメント
//		ResultSet			rsltQuery = null;	// SQL実行結果
//		String				sLogicalDBName;		// DB論理名
//		//------------------------------------------------
//		// (1) パラメータチェック処理
//		//------------------------------------------------
//		if ( cdDiv == null)
//		{
//			// 本来は通過し得ないルート
//			throw new JCCFrameworkException(
//					"パラメータ異常：コード区分が設定されていません");
//		}
//		
//		//------------------------------------------------
//		// (2) 定義取得処理
//		//------------------------------------------------
//		// アプリ定義の「運用日付取得元」を取得する。
//		sProductionDateEnv = JCMAPLConstMgr.getString(KEY_APL_OPEDATE_ENV);
//		// アプリ定義の「運用日付取得元」がnull以外の場合
//		if ( sProductionDateEnv == null )
//		{
//			throw new JCCFrameworkException(
//					 "APLConstの["+KEY_APL_OPEDATE_ENV+"]は省略できません");
//		}
//		// アプリ定義値の前後の空白を除去する。
//		sProductionDateEnv = sProductionDateEnv.trim();
//		// 「運用日付取得元」が「1:アプリケーションプロパティファイルから取得」の場合
//		if      ( "1".equals(sProductionDateEnv) )
//		{
//			iProductionDateEnv = 1;
//		}
//		// 「運用日付取得元」が「2:データベースから取得」の場合
//		else if ( "2".equals(sProductionDateEnv) )
//		{
//			iProductionDateEnv = 2;
//		}
//		// 「運用日付取得元」が上記以外の場合
//		else
//		{
//			throw new JCCFrameworkException(
//				      "APLConstで設定された["+KEY_APL_OPEDATE_ENV+"]は無効な値です（" + sProductionDateEnv + "）");
//		}
//		
//		//------------------------------------------------
//		// (3) 運用日付取得処理
//		//------------------------------------------------
//		// (3)-1 「運用日付取得元」が「1:アプリケーションプロパティファイルから取得」の場合
//		if ( 1 == iProductionDateEnv )
//		{
//			// コード区分を指定して、アプリ定義の運用日付を取得する。
//			sOpeDate = JCMAPLConstMgr.getString( cdDiv );
//		}
//		// (3)-2 「運用日付取得元」が「2:データベースから取得」の場合
//		else
//		{
//			// SQLを実行する。
//			try
//			{
//				// テーブル名からDB論理名への変換を行う。
//				sLogicalDBName = JSYejbConnection.getDBName(SQL_TABLE_NAME);
//				// DB論理名を指定してコネクションを取得する。
//				cnct = CAANConnectionMgr.getInstance().getConnection(sLogicalDBName);
//				// SQLを実行する。
//				pstmtQuery = cnct.prepareStatement(SQL_SYS_PARAM_KNRI);
//				pstmtQuery.setString(1, VALUE_SYS_PARAM_BUNRUI_CD);
//				pstmtQuery.setString(2, cdDiv);
//				rsltQuery = pstmtQuery.executeQuery();
//				// 検索結果が0件の場合
//				if ( false == rsltQuery.next())
//				{
//					sOpeDate = null;
//				}
//				else
//				{
//					sOpeDate = rsltQuery.getString(SQL_COLNAME_SELECT);
//				}
//			}
//			finally
//			{
//				if(rsltQuery != null)
//				{
//					rsltQuery.close();
//				}
//				if(pstmtQuery != null)
//				{
//					pstmtQuery.close();
//				}
//				if(cnct != null)
//				{
//					CAANConnectionMgr.getInstance().close(cnct);
//				}
//			}
//			
//		}
//		// (3)-3 取得した運用日付がnull以外の場合
//		if ( sOpeDate != null)
//		{
//			// 前後の空白を除去する。
//			sOpeDate = sOpeDate.trim();
//			//  String→Date→Stringと再変換することによって、
//			// 変換結果がYYYYMMDD形式の実在する日時であることを確認する。
//			try
//			{
//				dateOpeDate = formatYMD.parse(sOpeDate);
//			}
//			catch (ParseException pe)
//			{
//				// 取得元によって例外通知のメッセージを切替
//				if ( 1 == iProductionDateEnv )
//				{
//					sFrom = "APLConstで設定された[";
//				}
//				else
//				{
//					sFrom = "システムパラメータで設定された[";
//				}
//				throw new JCCFrameworkException(
//					      sFrom + cdDiv
//					      + "]はyyyyMMdd形式または実在する日付ではありません（"
//					      + sOpeDate + "）");
//			}
//			// 変換結果が変換前と一致しない場合
//			if ( ! sOpeDate.equals(formatYMD.format(dateOpeDate)) )
//			{
//				// 取得元によって例外通知のメッセージを切替
//				if ( 1 == iProductionDateEnv )
//				{
//					sFrom = "APLConstで設定された[";
//				}
//				else
//				{
//					sFrom = "システムパラメータで設定された[";
//				}
//				throw new JCCFrameworkException(
//					      sFrom + cdDiv
//					      + "]はyyyyMMdd形式または実在する日付ではありません（"
//					      + sOpeDate + "）");
//			}
//		}
//		
//		//------------------------------------------------
//		// (4) 復帰処理
//		//------------------------------------------------
//		return sOpeDate;
//	}
}
