/************************************************************************
*  All Rights reserved,Copyright (c) K-Opticom							*
*************************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JCHBatNameStkuUtil
*	ソースファイル名	：JCHBatNameStkuUtil.java
*	作成者				：富士通　
*	作成日				：2017年04月24日
*＜機能概要＞
*	名称を取得部品。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v23.00.00	2017/04/21  FJ)貝本		新規作成
*********************************************************************/
package eo.business.common;

import java.util.HashMap;

import eo.business.util.table.JBSbatZM_M_CD_NM_KANRI;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.log.JBSbatLogPrintControl;

/**
* (クラスの機能概要) <p>
*<BR>
* <dd>クラス名		：名称取得部品
* <dd>クラス説明	：名称を取得する。
* @version  	32.00 2017/04/24
* @author 富士通
*/
public class JCHBatNameStkuUtil
{

	/** テーブル(コード名称管理)*/
	private final String D_TBL_NAME_ZM_M_CD_NM_KANRI = "ZM_M_CD_NM_KANRI";

	/** SQL定義キー(CH_SELECT_005)*/
	private final String ZM_M_CD_NM_KANRI_CH_SELECT_005 = "CH_SELECT_005";

	
	/**
	 * コード名称管理ＤＢアクセス処理
	 * コード種別コードを元に、コード名称管理よりコード区分、コード区分名を取得する。
	 * @param cmnItem 共通電文クラス
	 * @param cdSbtCd コード種別コード
	 * @return nmCdMap コード名称管理Map{KEY:コード区分,VALUE:コード区分名}
	 * @throws Exception
	 */
	public HashMap<String,String> getCdNmMap(JBSbatCommonItem cmnItem, String cdSbtCd) throws Exception 
	{
		// ログ部品の取得
		JBSbatLogPrintControl log = cmnItem.getLogPrint();
		
		// テーブルアクセスクラス(コード名称管理)
		JBSbatSQLAccess db_ZM_M_CD_NM_KANRI = null;
		
		// 取得レコード
		JBSbatCommonDBInterface selectMap = null;
		
		// return用コード名称マップ
		HashMap<String,String> cdNmMap = new HashMap<String,String>();
		
		// マップKEY:コード区分
		String cdDiv = null;
		
		// マップVALUE:コード区分名
		String cdDivNm = null;
		
		try
		{
			log.printDebugLog("コード名称管理ＤＢアクセス処理を行います。");

			// テーブルアクセスクラス(コード名称管理)を取得する
			db_ZM_M_CD_NM_KANRI = new JBSbatSQLAccess(cmnItem, D_TBL_NAME_ZM_M_CD_NM_KANRI);
			// バインド変数設定クラス
			JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
			// コード種別コードを設定する
			paramList.setValue(cdSbtCd);
			// 運用年月日を設定する
			paramList.setValue(cmnItem.getOpeDate());
			// 運用年月日を設定する
			paramList.setValue(cmnItem.getOpeDate());
			// DBアクセスを実行します
			db_ZM_M_CD_NM_KANRI.selectBySqlDefine(paramList, ZM_M_CD_NM_KANRI_CH_SELECT_005);
			
			log.printDebugLog("コード名称管理ＤＢアクセス処理が終了しました。");

			while((selectMap = db_ZM_M_CD_NM_KANRI.selectNext()) != null)
			{
				// コード区分
				cdDiv = selectMap.getString(JBSbatZM_M_CD_NM_KANRI.CD_DIV);
				// コード区分名
				cdDivNm = selectMap.getString(JBSbatZM_M_CD_NM_KANRI.CD_DIV_NM);
				// ログ出力
				log.printDebugLog("[cdDiv=" + cdDiv + "]"+"[cdDivNm=" + cdDivNm + "]");
				
				//コード区分名マップを作成
				cdNmMap.put(cdDiv, cdDivNm);
			}
			return cdNmMap;
		} 
		catch(Exception e) 
		{
			//例外メッセージの取得
			String message = e.getMessage();
			log.printDebugLog("システムエラーが発生しました。（" + message + "）");
			throw e;
		}
		finally
		{
			if(db_ZM_M_CD_NM_KANRI != null)
			{
				db_ZM_M_CD_NM_KANRI.close();
			}
		}
	}
}
