/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0408_KKSV0408OPDBMapper
*	ソースファイル名：KKSV0408_KKSV0408OPDBMapper.java
*	作成者			：FJ
*	日付			：2011年10月28日
*＜機能概要＞
*	BP（照査取消_更新）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/10/28	FJ			新規作成
*	v8.00.00	2014/03/27	FJ）藤本	【OM-2013-0002656】対応履歴情報に「テスト用全機能利用権限者」と登録される
*
**********************************************************************/
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;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class KKSV0408_KKSV0408OPDBMapper {
	
	/**
	 * コンストラクタ
	 */
	public KKSV0408_KKSV0408OPDBMapper(){
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：照査取消完了
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV040802SC(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);

		// ＳＹＳＩＤ → お客様一意照会マップ.ＫＥＹ＿SYSID
		parentMap.put("key_sysid", 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("KKSV040802SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：照査取消完了
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV040803SC(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("KKSV040803SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：照査取消完了
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV040805SC(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("KKSV040805SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：照査取消データ
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param orgCd 組織コード
	 * @param orgNm 組織名
	 * @return 
	 */
	@SuppressWarnings("unchecked")
	// OM-2013-0002656 対応履歴情報に「テスト用全機能利用権限者」と登録される 2014/03/27 START
//	public HashMap setJKKSvkeiShosaClCC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) 
	public HashMap setJKKSvkeiShosaClCC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code,
			String orgCd, String orgNm) 
	// OM-2013-0002656 対応履歴情報に「テスト用全機能利用権限者」と登録される 2014/03/27 END
	{
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		HashMap<String, Object> trgt_data = new HashMap<String, Object>();
		ArrayList<HashMap<String, Object>> trgt_data_list = new ArrayList<HashMap<String,Object>>();
		HashMap<String, Object> trgt_data_list_element = new HashMap<String, Object>();
		// OM-2013-0002656 対応履歴情報に「テスト用全機能利用権限者」と登録される 2014/03/27 START
		// 組織コード、組織名を設定　※その他項目は、KKSV0408OPOperation.setJKKSvkeiShosaClCCParamで設定している
		trgt_data_list_element.put("org_cd", orgCd);
		trgt_data_list_element.put("org_nm", orgNm);
		// OM-2013-0002656 対応履歴情報に「テスト用全機能利用権限者」と登録される 2014/03/27 END

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		//--照査取消データの生成
		//照査取消データ
		outputMap.put("JKKSvkeiShosaClCC", parentMap);

		//対象データマップ
		parentMap.put("trgt_data", trgt_data);
		
		//照査取消リスト
		trgt_data.put("trgt_data_list", trgt_data_list);
		
		//照査取消リスト要素
		trgt_data_list.add(trgt_data_list_element);

		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：物流制御データ
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setJKKButuryuCtrlCC(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>();
		HashMap<String, Object> trgt_data = new HashMap<String, Object>();
		ArrayList<HashMap<String, Object>> trgt_data_list = new ArrayList<HashMap<String,Object>>();
		HashMap<String, Object> trgt_data_list_element = new HashMap<String, Object>();
		ArrayList<HashMap<String, Object>> haiso_info_list = new ArrayList<HashMap<String, Object>>();
		ArrayList<HashMap<String, Object>> hempin_info_list = new ArrayList<HashMap<String, Object>>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		//--物流制御データの生成
		outputMap.put("JKKButuryuCtrlCC", parentMap);

		//対象データマップ
		parentMap.put("trgt_data", trgt_data);
		
		//対象データリスト
		trgt_data.put("trgt_data_list", trgt_data_list);
		
		//物流マップ
		trgt_data_list.add(trgt_data_list_element);
		
		//配送情報リスト
		trgt_data_list_element.put("haiso_info_list", haiso_info_list);
		
		//配送情報
		haiso_info_list.add(new HashMap<String, Object>());
		
		//返品情報リスト
		trgt_data_list_element.put("hempin_info_list", hempin_info_list);
		
		//返品情報
		hempin_info_list.add(new HashMap<String, Object>());
		
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービスオーダ発行データ
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setJKKHakkoSODCC(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>();
		HashMap<String, Object> trgt_data = new HashMap<String, Object>();
		ArrayList<HashMap<String, Object>> trgt_data_list = new ArrayList<HashMap<String,Object>>();
		HashMap<String, Object> trgt_data_list_element = new HashMap<String, Object>();
		HashMap<String, Object> sod_kihon_info = new HashMap<String, Object>();
		HashMap<String, Object> svc_kei_info = new HashMap<String, Object>();
		HashMap<String, Object> svc_kei_ucwk_info = new HashMap<String, Object>();
		HashMap<String, Object> opsvkei_info = new HashMap<String, Object>();
		HashMap<String, Object> kktsvkei_info = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		//--サービスオーダ発行データの生成
		//サービスオーダ発行データ
		outputMap.put("JKKHakkoSODCC", parentMap);
		
		//対象データマップ
		parentMap.put("trgt_data", trgt_data);
		
		//対象データリスト
		trgt_data.put("trgt_data_list", trgt_data_list);
		
		//SODマップ
		trgt_data_list.add(trgt_data_list_element);
		
		//SOD基本情報
		trgt_data_list_element.put("sod_kihon_info", sod_kihon_info);
		
		//サービス契約情報
		trgt_data_list_element.put("svc_kei_info", svc_kei_info);
		
		//サービス契約内訳情報
		trgt_data_list_element.put("svc_kei_ucwk_info", svc_kei_ucwk_info);
		
		//オプションサービス契約情報
		trgt_data_list_element.put("opsvkei_info", opsvkei_info);
		
		//機器提供サービス契約情報
		trgt_data_list_element.put("kktsvkei_info", kktsvkei_info);
		
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：通知書登録データ
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setJKKTchishoAddCC(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>();
		HashMap<String, Object> trgt_data = new HashMap<String, Object>();
		ArrayList<HashMap<String, Object>> trgt_data_list = new ArrayList<HashMap<String,Object>>();
		HashMap<String, Object> trgt_data_list_element = new HashMap<String, Object>();
		ArrayList<HashMap<String, Object>> EKK0561D010CBSMsg1List = new ArrayList<HashMap<String,Object>>();
		ArrayList<HashMap<String, Object>> EKK0561D010CBSMsg2List = new ArrayList<HashMap<String,Object>>();
		
		//--通知書登録データの生成
		//通知書登録データ
		outputMap.put("JKKTchishoAddCC", parentMap);
		
		//共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		//対象データマップ
		parentMap.put("trgt_data", trgt_data);
		
		//対象データリスト
		trgt_data.put("trgt_data_list", trgt_data_list);
		
		//対象データリスト要素
		trgt_data_list.add(trgt_data_list_element);
		
		//通知対象物明細
		trgt_data_list_element.put("EKK0561D010CBSMsg1List", EKK0561D010CBSMsg1List);
		
		//通知書内訳明細
		trgt_data_list_element.put("EKK0561D010CBSMsg2List", EKK0561D010CBSMsg2List);
								
		return outputMap;
	}
	
	/**
	 * 下りマッピング
	 * @param bean　[0]：照査取消完了
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV040803SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV040803SC")){
			parentMap = (HashMap)outputMap.get("KKSV040803SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listKKSV040803SC_svc_kei_list_EKK0081A010CBSMsg1List = bean[0].getDataBeanArray("サービス契約一意照会明細");
		childList = null;
		if(listKKSV040803SC_svc_kei_list_EKK0081A010CBSMsg1List != null && parentMap != null && parentMap.containsKey("EKK0081A010CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EKK0081A010CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listKKSV040803SC_svc_kei_list_EKK0081A010CBSMsg1List.getCount() -1 >= i){
					subbean = listKKSV040803SC_svc_kei_list_EKK0081A010CBSMsg1List.getDataBean(i);
				}else{
					subbean = listKKSV040803SC_svc_kei_list_EKK0081A010CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// サービス契約一意照会明細.サービス契約番号 ← サービス契約一意照会マップ.サービス契約一意照会明細.サービス契約番号
				if (childMap != null) {
					subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_no"));
				} else {
					subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// サービス契約一意照会明細.サービスコード ← サービス契約一意照会マップ.サービス契約一意照会明細.サービスコード
				if (childMap != null) {
					subbean.sendMessageString("サービスコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_cd"));
				} else {
					subbean.sendMessageString("サービスコード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// サービス契約一意照会明細.サービスコード名称 ← サービス契約一意照会マップ.サービス契約一意照会明細.サービスコード名称
				if (childMap != null) {
					subbean.sendMessageString("サービスコード名称", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_cd_nm"));
				} else {
					subbean.sendMessageString("サービスコード名称", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// サービス契約一意照会明細.申込明細番号 ← サービス契約一意照会マップ.サービス契約一意照会明細.申込明細番号
				if (childMap != null) {
					subbean.sendMessageString("申込明細番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mskm_dtl_no"));
				} else {
					subbean.sendMessageString("申込明細番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// サービス契約一意照会明細.料金プランコード ← サービス契約一意照会マップ.サービス契約一意照会明細.料金プランコード
				if (childMap != null) {
					subbean.sendMessageString("料金プランコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pplan_cd"));
				} else {
					subbean.sendMessageString("料金プランコード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// サービス契約一意照会明細.料金プランコード名称 ← サービス契約一意照会マップ.サービス契約一意照会明細.料金プランコード名称
				if (childMap != null) {
					subbean.sendMessageString("料金プランコード名称", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pplan_cd_nm"));
				} else {
					subbean.sendMessageString("料金プランコード名称", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// サービス契約一意照会明細.照査年月日 ← サービス契約一意照会マップ.サービス契約一意照会明細.照査年月日
				if (childMap != null) {
					subbean.sendMessageString("照査年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("shosa_ymd"));
				} else {
					subbean.sendMessageString("照査年月日", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：照査取消完了
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV040804SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV040804SC")){
			parentMap = (HashMap)outputMap.get("KKSV040804SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listKKSV040804SC_mskm_dtl_list_EKK0021A010CBSMsg1List = bean[0].getDataBeanArray("申込明細一意照会明細");
		childList = null;
		if(listKKSV040804SC_mskm_dtl_list_EKK0021A010CBSMsg1List != null && parentMap != null && parentMap.containsKey("EKK0021A010CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EKK0021A010CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listKKSV040804SC_mskm_dtl_list_EKK0021A010CBSMsg1List.getCount() -1 >= i){
					subbean = listKKSV040804SC_mskm_dtl_list_EKK0021A010CBSMsg1List.getDataBean(i);
				}else{
					subbean = listKKSV040804SC_mskm_dtl_list_EKK0021A010CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// 申込明細一意照会明細.申込書番号 ← 申込明細一意照会マップ.申込明細一意照会明細.申込書番号
				if (childMap != null) {
					subbean.sendMessageString("申込書番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mskmsho_no"));
				} else {
					subbean.sendMessageString("申込書番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 申込明細一意照会明細.申込年月日 ← 申込明細一意照会マップ.申込明細一意照会明細.申込年月日
				if (childMap != null) {
					subbean.sendMessageString("申込年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mskm_ymd"));
				} else {
					subbean.sendMessageString("申込年月日", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：照査取消完了
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV040805SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV040805SC")){
			parentMap = (HashMap)outputMap.get("KKSV040805SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listKKSV040805SC_svc_kei_com_list_EKK0081B010CBSMsg1List = bean[0].getDataBeanArray("サービス契約共通情報一覧照会明細");
		childList = null;
		if(listKKSV040805SC_svc_kei_com_list_EKK0081B010CBSMsg1List != null && parentMap != null && parentMap.containsKey("EKK0081B010CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EKK0081B010CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listKKSV040805SC_svc_kei_com_list_EKK0081B010CBSMsg1List.getCount() -1 >= i){
					subbean = listKKSV040805SC_svc_kei_com_list_EKK0081B010CBSMsg1List.getDataBean(i);
				}else{
					subbean = listKKSV040805SC_svc_kei_com_list_EKK0081B010CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// サービス契約共通情報一覧照会明細.マンションＩＤ ← サービス契約共通情報一覧照会マップ.サービス契約共通情報一覧照会明細.マンションID
				if (childMap != null) {
					subbean.sendMessageString("マンションＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mansion_id"));
				} else {
					subbean.sendMessageString("マンションＩＤ", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// サービス契約共通情報一覧照会明細.マンション名 ← サービス契約共通情報一覧照会マップ.サービス契約共通情報一覧照会明細.マンション名
				if (childMap != null) {
					subbean.sendMessageString("マンション名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mansion_nm"));
				} else {
					subbean.sendMessageString("マンション名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


		return bean;
	}


}
