/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0024_KKSV0024OPDBMapper
*	ソースファイル名：KKSV0024_KKSV0024OPDBMapper.java
*	作成者			：FJ
*	日付			：2011年10月04日
*＜機能概要＞
*	BP（メーリングリスト情報登録初期表示）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/10/04	FJ		新規作成
*
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.web.webview.KKW00807SF.KKW00807SFConst;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class KKSV0024_KKSV0024OPDBMapper {
	
	/**
	 * コンストラクタ
	 */
	public KKSV0024_KKSV0024OPDBMapper(){
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：メーリングリスト情報情報登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV002401SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 部品呼び出し → コード名称管理コード区分一覧照会マップ.ＫＥＹ＿コード種別コード
		parentMap.put("key_cd_sbt_cd", String.valueOf(KKW00807SFConst.CODE_SBT_OPEN));
		// 運用年月日 → コード名称管理コード区分一覧照会マップ.ＫＥＹ＿基準日
		parentMap.put("key_stdardymd", bean[0].sendMessageString("運用年月日", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV002401SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：メーリングリスト情報情報登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV002402SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// サービス契約番号 → サービス契約一意照会.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用世代登録年月日時分秒 → サービス契約一意照会.ＫＥＹ＿世代登録年月日時分秒
		parentMap.put("key_gene_add_dtm", bean[0].sendMessageString("検索用世代登録年月日時分秒", X31CWebConst.DATABEAN_GET_VALUE));
		// 検索用予約適用年月日 → サービス契約一意照会.ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString("検索用予約適用年月日", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV002402SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：メーリングリスト情報情報登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV002403SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 部品呼び出し → 業務パラメータ管理一意照会マップ.ＫＥＹ＿業務パラメータID
		parentMap.put("key_work_param_id", String.valueOf(KKW00807SFConst.GYOMU_PARA));

		outputMap.put("KKSV002403SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：メーリングリスト情報情報登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV002404SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// サービス契約番号 → 課金先一覧照会マップ.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV002404SC", parentMap);
						
		return outputMap;
	}


	/**
	 * 下りマッピング
	 * @param bean　[0]：メーリングリスト情報情報登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV002401SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV002401SC")){
			parentMap = (HashMap)outputMap.get("KKSV002401SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listKKSV002401SC_shk_mllist_kokai_yh_list_EZM0171B012CBSMsg1List = bean[0].getDataBeanArray("初期ＭＬ非公開／公開リスト");
		childList = null;
		if(listKKSV002401SC_shk_mllist_kokai_yh_list_EZM0171B012CBSMsg1List != null && parentMap != null && parentMap.containsKey("EZM0171B012CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EZM0171B012CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listKKSV002401SC_shk_mllist_kokai_yh_list_EZM0171B012CBSMsg1List.getCount() -1 >= i){
					subbean = listKKSV002401SC_shk_mllist_kokai_yh_list_EZM0171B012CBSMsg1List.getDataBean(i);
				}else{
					subbean = listKKSV002401SC_shk_mllist_kokai_yh_list_EZM0171B012CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// 初期ＭＬ非公開／公開リスト.コードリスト ← コード名称管理コード区分一覧照会マップ.コード名称管理コード区分一覧照会明細.コード区分
				if (childMap != null) {
					subbean.sendMessageString("コードリスト", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cd_div"));
				} else {
					subbean.sendMessageString("コードリスト", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 初期ＭＬ非公開／公開リスト.コード名リスト ← コード名称管理コード区分一覧照会マップ.コード名称管理コード区分一覧照会明細.コード区分名
				if (childMap != null) {
					subbean.sendMessageString("コード名リスト", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cd_div_nm"));
				} else {
					subbean.sendMessageString("コード名リスト", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：メーリングリスト情報情報登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV002402SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV002402SC")){
			parentMap = (HashMap)outputMap.get("KKSV002402SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listKKSV002402SC_EKK0081A010CBSMsg1List_EKK0081A010CBSMsg1List = bean[0].getDataBeanArray("サービス契約一意照会リスト");
		childList = null;
		if(listKKSV002402SC_EKK0081A010CBSMsg1List_EKK0081A010CBSMsg1List != null && parentMap != null && parentMap.containsKey("EKK0081A010CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EKK0081A010CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listKKSV002402SC_EKK0081A010CBSMsg1List_EKK0081A010CBSMsg1List.getCount() -1 >= i){
					subbean = listKKSV002402SC_EKK0081A010CBSMsg1List_EKK0081A010CBSMsg1List.getDataBean(i);
				}else{
					subbean = listKKSV002402SC_EKK0081A010CBSMsg1List_EKK0081A010CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// サービス契約一意照会リスト.世代登録年月日時分秒 ← サービス契約一意照会.サービス契約一意照会明細.世代登録年月日時分秒
				if (childMap != null) {
					subbean.sendMessageString("世代登録年月日時分秒", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("gene_add_dtm"));
				} else {
					subbean.sendMessageString("世代登録年月日時分秒", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// サービス契約一意照会リスト.サービス契約ステータス ← サービス契約一意照会.サービス契約一意照会明細.サービス契約ステータス
				if (childMap != null) {
					subbean.sendMessageString("サービス契約ステータス", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_stat"));
				} else {
					subbean.sendMessageString("サービス契約ステータス", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}

				if (childMap != null) {
					bean[0].sendMessageString("更新年月日時分秒（更新前）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("last_upd_dtm"));
				} else {
					bean[0].sendMessageString("更新年月日時分秒（更新前）", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				//↓↓↓2012-04-18追加　ST2-2012-0000482対応↓↓↓
				// サービス契約一意照会明細.申込明細番号
				String mskm_dtl_no = new String();
				if (childMap != null) {
					mskm_dtl_no = (String)childMap.get("mskm_dtl_no");
				}
				subbean.sendMessageString(KKW00807SFConst.MSKM_DTL_NO_04, X31CWebConst.DATABEAN_SET_VALUE, mskm_dtl_no);
				//↑↑↑2012-04-18追加　ST2-2012-0000482対応↑↑↑
			}
		}


		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：メーリングリスト情報情報登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV002403SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV002403SC")){
			parentMap = (HashMap)outputMap.get("KKSV002403SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listKKSV002403SC_EZM0321A010CBSMsg1List_EZM0321A010CBSMsg1List = bean[0].getDataBeanArray("業務パラメータ管理一意照会リスト");
		childList = null;
		if(listKKSV002403SC_EZM0321A010CBSMsg1List_EZM0321A010CBSMsg1List != null && parentMap != null && parentMap.containsKey("EZM0321A010CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EZM0321A010CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listKKSV002403SC_EZM0321A010CBSMsg1List_EZM0321A010CBSMsg1List.getCount() -1 >= i){
					subbean = listKKSV002403SC_EZM0321A010CBSMsg1List_EZM0321A010CBSMsg1List.getDataBean(i);
				}else{
					subbean = listKKSV002403SC_EZM0321A010CBSMsg1List_EZM0321A010CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// 業務パラメータ管理一意照会リスト.業務パラメータ設定値 ← 業務パラメータ管理一意照会マップ.業務パラメータ管理一意照会明細.業務パラメータ設定値
				if (childMap != null) {
					subbean.sendMessageString("業務パラメータ設定値", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("work_param_sette_value"));
				} else {
					subbean.sendMessageString("業務パラメータ設定値", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：メーリングリスト情報情報登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV002404SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV002404SC")){
			parentMap = (HashMap)outputMap.get("KKSV002404SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listKKSV002404SC_kakin_list_EKK0321B002CBSMsg1List = bean[0].getDataBeanArray("課金先リスト");
		childList = null;
		if(listKKSV002404SC_kakin_list_EKK0321B002CBSMsg1List != null && parentMap != null && parentMap.containsKey("EKK0321B002CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EKK0321B002CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listKKSV002404SC_kakin_list_EKK0321B002CBSMsg1List.getCount() -1 >= i){
					subbean = listKKSV002404SC_kakin_list_EKK0321B002CBSMsg1List.getDataBean(i);
				}else{
					subbean = listKKSV002404SC_kakin_list_EKK0321B002CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// 課金先リスト.請求契約番号 ← 課金先一覧照会マップ.課金先一覧照会明細.請求契約番号
				if (childMap != null) {
					subbean.sendMessageString("請求契約番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_kei_no"));
				} else {
					subbean.sendMessageString("請求契約番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


		return bean;
	}


	/**
	 * 進捗一覧照会SCマッピング
	 * 
	 * @param bean
	 * @param outputMap
	 * @param func_code
	 * @return
	 */
	public HashMap<String, Object> setKKSV002405SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		//ＫＥＹ＿サービス契約番号	key_svc_kei_no
		parentMap.put("key_svc_kei_no", bean[0].sendMessageString(KKW00807SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

		//ＫＥＹ＿異動区分	key_ido_div
		String ido_div =  bean[0].sendMessageString(KKW00807SFConst.IDO_DIV, X31CWebConst.DATABEAN_GET_VALUE);
		parentMap.put("key_ido_div", ido_div);

		outputMap.put("KKSV002405SC", parentMap);

		return outputMap;
	}


	/**
	 * 申込明細一意照会SCマッピング
	 * 
	 * @param bean
	 * @param outputMap
	 * @param func_code ‘2’カレント
	 * @return
	 */
	public HashMap<String, Object> setKKSV002406SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

//		//ＫＥＹ＿世代登録年月日時分秒	key_gene_add_dtm
//		parentMap.put("key_gene_add_dtm", bean[0].sendMessageString(KKW00807SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV002406SC", parentMap);

		return outputMap;
	}


	/**
	 * 進捗一覧照会SC出力マッピング
	 * 
	 * @param bean
	 * @param outputMap
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV002405SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap)
	{
		HashMap<String, Object> parentMap = null;
		if(outputMap.containsKey("KKSV002405SC")){
			parentMap = (HashMap<String, Object>)outputMap.get("KKSV002405SC");
		}

		ArrayList childList = null;


		childList = null;
		if(parentMap != null && parentMap.containsKey("EKK1091B001CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EKK1091B001CBSMsg1List");
			if (0 < childList.size())
			{
				HashMap<?, ?> childMap = (HashMap<?, ?>)childList.get(0);
			
				//異動日時
				bean[0].sendMessageString(KKW00807SFConst.UPD_DTM, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("ido_dtm"));
			}
		}

		return bean;
	}


	/**
	 * 申込明細一意照会SC出力マッピング
	 * 
	 * @param bean
	 * @param outputMap
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV002406SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap)
	{
		HashMap<String, Object> parentMap = null;
		if(outputMap.containsKey("KKSV002406SC")){
			parentMap = (HashMap<String, Object>)outputMap.get("KKSV002406SC");
		}

		ArrayList childList = null;


		childList = null;
		if(parentMap != null && parentMap.containsKey("EKK0021A010CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EKK0021A010CBSMsg1List");
			if (0 < childList.size())
			{
				HashMap<?, ?> childMap = (HashMap<?, ?>)childList.get(0);
			
				//申込番号
				bean[0].sendMessageString(KKW00807SFConst.MSKM_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mskm_no"));
				//申込書番号	mskmsho_no
				bean[0].sendMessageString(KKW00807SFConst.RSV_APLY_CD, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mskmsho_no"));
				//申込年月日	mskm_ymd
//				bean[0].sendMessageString(KKW00807SFConst.MSKM_YMD, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mskm_ymd"));
				//最終更新年月日時分秒	last_upd_dtm
				bean[0].sendMessageString(KKW00807SFConst.MSKM_UK_DTM, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("last_upd_dtm"));
			}
		}

		return bean;
	}


}

