/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0454_KKSV0454OPDBMapper
*	ソースファイル名：KKSV0454_KKSV0454OPDBMapper.java
*	作成者			：FJ
*	日付			：2011年12月05日
*＜機能概要＞
*	BP（コード名称取得）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/11/22	FJ		新規作成
*   v18.00.00   2015/08/11  FJ) 松本    【ANK-2631-00-00】ワンストップ案件（ＳＴＥＰ１）※koptWebBからkoptWebAへコピー
*
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.sun.enterprise.tools.common.util.StringUtils;

import eo.web.webview.common.JKKCommonConst;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class KKSV0454_KKSV0454OPDBMapper {

	/** 抽出項目キー:コード種別コード */
	public static final String OUT_COLNM_CD_SBT_CD     =  "cd_sbt_cd";
	/** 抽出項目キー:コード種別名 */
	public static final String OUT_COLNM_CD_SBT_NM     =  "cd_sbt_nm";
	/** 抽出項目キー:コード種別説明 */
	public static final String OUT_COLNM_CD_SBT_SETMEI =  "cd_sbt_setmei";
	/** 抽出項目キー:コード区分 */
	public static final String OUT_COLNM_CD_DIV        =  "cd_div";
	/** 抽出項目キー:コード区分名 */
	public static final String OUT_COLNM_CD_DIV_NM     =  "cd_div_nm";
	/** 抽出項目キー:コード区分略称 */
	public static final String OUT_COLNM_CD_DIV_ALI    =  "cd_div_ali";
	/** 抽出項目キー:コード適用開始年月日 */
	public static final String OUT_COLNM_CD_TSTAYMD    =  "cd_tstaymd";
	/** 抽出項目キー:コード適用終了年月日 */
	public static final String OUT_COLNM_CD_TENDYMD    =  "cd_tendymd";
	/** 抽出項目キー:表示順序 */
	public static final String OUT_COLNM_DSP_JUN       =  "dsp_jun";
	/** 抽出項目キー:初期表示コード */
	public static final String OUT_COLNM_SHK_DSP_CD    =  "shk_dsp_cd";
	/** 抽出項目キー:初期表示コード名称 */
	public static final String OUT_COLNM_SHK_DSP_CD_NM =  "shk_dsp_cd_nm";
	/** 抽出項目キー:登録年月日時分秒 */
	public static final String OUT_COLNM_ADD_DTM       =  "add_dtm";
	/** 抽出項目キー:登録オペレータアカウント */
	public static final String OUT_COLNM_ADD_OPEACNT   =  "add_opeacnt";
	/** 抽出項目キー:更新年月日時分秒 */
	public static final String OUT_COLNM_UPD_DTM       =  "upd_dtm";
	/** 抽出項目キー:更新オペレータアカウント */
	public static final String OUT_COLNM_UPD_OPEACNT   =  "upd_opeacnt";
	/** 抽出項目キー:削除年月日時分秒 */
	public static final String OUT_COLNM_DEL_DTM       =  "del_dtm";
	/** 抽出項目キー:削除オペレータアカウント */
	public static final String OUT_COLNM_DEL_OPEACNT   =  "del_opeacnt";
	/** 抽出項目キー:無効フラグ */
	public static final String OUT_COLNM_MK_FLG        =  "mk_flg";
	/** 抽出項目キー:無効フラグ名称 */
	public static final String OUT_COLNM_MK_FLG_NM     =  "mk_flg_nm";
	
	/**
	 * コンストラクタ
	 */
	public KKSV0454_KKSV0454OPDBMapper(){
	}
	

	/**
	 * 上りマッピングをする
	 * @param cdSbtCd：コード種別コード　
	 * @param cdDiv  ：コード区分
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV045401SC(String cdSbtCd, String cdDiv, HashMap outputMap) {

		if (StringUtils.isEmpty(cdSbtCd) || StringUtils.isEmpty(cdDiv)) {
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", JKKCommonConst.FUNC_CODE_1);

		// コード種別コード → コード名称管理一意照会ＳＣSCマップ.ＫＥＹ＿コード種別コード
		parentMap.put("key_cd_sbt_cd", cdSbtCd);
		// コード区分 → コード名称管理一意照会ＳＣSCマップ.ＫＥＹ＿コード区分
		parentMap.put("key_cd_div", cdDiv);

		outputMap.put(getBpEntryKeyKKSV045401SC(), parentMap);
		
		return outputMap;
	}


	/**
	 * 下りマッピング
	 * @param bean　[0]：住所情報変更画面　
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	@Deprecated
	public X31SDataBeanAccess[] getKKSV045401SC(X31SDataBeanAccess[] bean, HashMap outputMap){
		return bean;
	}


	/**
	 * サービス契約一意照会SC 対BPマッピング エントリキー取得
	 * @return サービス契約一意照会SC 対BPマッピング時のエントリキー
	 */
	public String getBpEntryKeyKKSV045401SC(){
		return "KKSV045401SC";
	}


	/**
	 * サービス契約一意照会SC BPマップデータ取得
	 * @param outputMap　サービス契約一意照会SC 下りマップ
	 * @return 下りマップから取得したサービス契約一意照会明細
	 */
	@SuppressWarnings("unchecked")
	public HashMap getBPMapDt(HashMap outputMap){

		// サービス契約一意照会SC 下りマップチェック
		if(outputMap == null){
			return null;
		}

		// KKSV0454サービス 下りマップの展開
		HashMap KKSV0454OutMap = (HashMap)outputMap.get(getBpEntryKeyKKSV045401SC());
		if(KKSV0454OutMap != null){
			// コード名称管理一意照会明細を取得
			ArrayList<HashMap> KKSV0454DtlLst = (ArrayList<HashMap>)KKSV0454OutMap.get("EZM0171A010CBSMsg1List");
			if(KKSV0454DtlLst == null || KKSV0454DtlLst.size() == 0){
				// nullを返却
				KKSV0454OutMap = null;
			} else {
				// １件目のデータのみを取得
				HashMap newInsMap = new HashMap();
				newInsMap.putAll(KKSV0454DtlLst.get(0));
				KKSV0454OutMap = newInsMap;
			}
		}

		return KKSV0454OutMap;
	}


	/**
	 * サービス契約一意照会SC BPマップデータ存在チェック
	 * @param outputMap　サービス契約一意照会SC 下りマップ
	 * @return データ有の場合、trueを返却
	 */
	@SuppressWarnings("unchecked")
	public boolean existBPMapDt(HashMap outputMap){
		return (getBPMapDt(outputMap) != null) ? true : false;
	}


}