/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0651_KKSV0651OPDBMapper
*	ソースファイル名：KKSV0651_KKSV0651OPDBMapper.java
*	作成者			：富士通
*	日付			：2012年10月11日
*＜機能概要＞
*	BP（スマートバリュー用参照OP）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v4.00.00	2012/10/11	FJ)強矢		新規作成 【ANK-0534-00-00】WDAスマートバリュー対応
*
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.HashMap;

/**
 * DataBean-BPマッピングをする。
 * @author FJ
 * 
 */
public class KKSV0651_KKSV0651OPDBMapper
{
	
	/**
	 * コンストラクタ
	 */
	public KKSV0651_KKSV0651OPDBMapper()
	{
	}
	

	/**
	 * 上りマッピングをする
	 * @param reqMap 処理要求電文
	 * @param outputMap
	 * @return HashMap
	 */
	public HashMap<String, HashMap<String, Object>> setKKSV065101CC(HashMap<?, ?> reqMap, HashMap<String, HashMap<String, Object>> outputMap)
	{
		
		if(reqMap == null)
		{
			return null;
		}
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// サービス契約番号 → KKSV065101CC.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", reqMap.get("SQL_SETTING"));
		
		outputMap.put("KKSV065101CC", parentMap);
		
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param reqMap 処理要求電文
	 * @param outputMap
	 * @return HashMap
	 */
	public HashMap<String, HashMap<String, Object>> setKKSV065102CC(HashMap<?, ?> reqMap, HashMap<String, HashMap<String, Object>> outputMap)
	{
		
		if(reqMap == null)
		{
			return null;
		}
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// サービス契約番号 → KKSV065102CC.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", reqMap.get("SQL_SETTING"));
		
		outputMap.put("KKSV065102CC", parentMap);
		
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param reqMap 処理要求電文
	 * @param outputMap
	 * @return HashMap
	 */
	public HashMap<String, HashMap<String, Object>> setKKSV0651WORK01(HashMap<?, ?> reqMap, HashMap<String, HashMap<String, Object>> outputMap)
	{
		
		if(reqMap == null)
		{
			return null;
		}
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// ＳＱＬ名 → KKSV0651WORK01.ＳＱＬ名
		parentMap.put("sql_name", reqMap.get("SQL_NAME"));
		
		outputMap.put("KKSV0651WORK01", parentMap);
		
		return outputMap;
	}

	/**
	 * 下りマッピング
	 * @param outputMap
	 * @param sectorData セクタデータ
	 */
	@SuppressWarnings("unchecked")
	public void getKKSV065101CC(HashMap<String, HashMap<String, Object>> outputMap, HashMap<String, Object> sectorData)
	{
		HashMap<String, Object> parentMap = null;
		if(outputMap.containsKey("KKSV065101CC"))
		{
			parentMap = outputMap.get("KKSV065101CC");
		}
		else
		{
			return;
		}
		
		int db_count = 0;
		
		if (parentMap.containsKey("kei_inf_list"))
		{
			ArrayList<HashMap<String, Object>> childList = (ArrayList<HashMap<String, Object>>)parentMap.get("kei_inf_list");
			
			// 契約情報リストのデータ件数
			db_count = childList.size();
			
			HashMap childMap = (HashMap)childList.get(0);
			
			// *** MultipartSector1 の生成 ***
			ArrayList<HashMap<String, Object>> m1 = (ArrayList<HashMap<String, Object>>)sectorData.get("M1");
			HashMap<String, Object> m1Map = new HashMap<String, Object>();
			
			// 契約サービス ← KKSV065101CC.契約サービス
			m1Map.put("KIYK_SBS", childMap.get("kiyk_sbs"));
			// 勤務先電話番号 ← KKSV065101CC.勤務先電話番号
			m1Map.put("KNMSK_DNW_BNGU", childMap.get("knmsk_dnw_bngu"));
			// 携帯・ＰＨＳ番号 ← KKSV065101CC.携帯・ＰＨＳ番号
			m1Map.put("KITI_PHS_BNGU", childMap.get("kiti_phs_bngu"));
			// 契約者名カナ ← KKSV065101CC.契約者名カナ
			m1Map.put("KIYKSHA_MI_KN", childMap.get("kiyksha_mi_kn"));
			// 契約者名 ← KKSV065101CC.契約者名
			m1Map.put("KIYKSHA_MI", childMap.get("kiyksha_mi"));
			// 端末設置場所郵便番号 ← KKSV065101CC.端末設置場所郵便番号
			m1Map.put("TNMT_STBSHO_YUBN_BNGU", childMap.get("tnmt_stbsho_yubn_bngu"));
			// 端末設置場所先住所１ ← KKSV065101CC.端末設置場所先住所１
			m1Map.put("TNMT_STBSHO_TDUHKN_SKCHOUSN_MI", childMap.get("tnmt_stbsho_tduhkn_skchousn_mi"));
			// 端末設置場所先住所２ ← KKSV065101CC.端末設置場所先住所２
			m1Map.put("TNMT_STBSHO_JOUK_IGIN_MI", childMap.get("tnmt_stbsho_jouk_igin_mi"));
			// 端末設置場所先住所３ ← KKSV065101CC.端末設置場所先住所３
			m1Map.put("TNMT_STBSHO_JUSHO_ETC", childMap.get("tnmt_stbsho_jusho_etc"));
			// ｅｏ電話のみ表示 ← KKSV065101CC.ｅｏ電話のみ表示
			m1Map.put("EODNW_NM_HYOUZ", childMap.get("eodnw_nm_hyouz"));
			// 契約状態 ← KKSV065101CC.契約状態
			m1Map.put("KIYK_JOTI", childMap.get("kiyk_joti"));
			// 申込書番号 ← KKSV065101CC.申込書番号
			m1Map.put("MUSKM_BNGU", childMap.get("muskm_bngu"));
			// 料金プラン ← KKSV065101CC.料金プラン
			m1Map.put("RYOUKN_PRN", childMap.get("ryoukn_prn"));
			// 照査済みフラグ ← KKSV065101CC.照査済みフラグ
			m1Map.put("SHOUS_ZUMI_FLG", childMap.get("shous_zumi_flg"));
			
			m1.add(m1Map);
		}
		
		// *** SimpleSector1 の生成 ***
		HashMap<String, Object> s1 = (HashMap<String, Object>)sectorData.get("S1");
		
		// データ取得件数 ← 契約情報リストのデータ件数
		s1.put("DB_COUNT", String.valueOf(db_count));
		
	}

	/**
	 * 下りマッピング
	 * @param outputMap
	 * @param sectorData セクタデータ
	 */
	@SuppressWarnings("unchecked")
	public void getKKSV065102CC(HashMap<String, HashMap<String, Object>> outputMap, HashMap<String, Object> sectorData)
	{
		HashMap<String, Object> parentMap = null;
		if(outputMap.containsKey("KKSV065102CC"))
		{
			parentMap = outputMap.get("KKSV065102CC");
		}
		else
		{
			return;
		}
		
		int db_count = 0;
		
		if (parentMap.containsKey("fuka_inf_list"))
		{
			ArrayList<HashMap<String, Object>> childList = (ArrayList<HashMap<String, Object>>)parentMap.get("fuka_inf_list");
			
			// 付加サービス情報リストのデータ件数
			db_count = childList.size();
			
			// *** MultipartSector1 の生成 ***
			ArrayList<HashMap<String, Object>> m1 = (ArrayList<HashMap<String, Object>>)sectorData.get("M1");
			
			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);
				HashMap<String, Object> m1Map = new HashMap<String, Object>();
				
				// 代表電話番号 ← KKSV065102CC.代表電話番号
				m1Map.put("DIHYO_DNW_BNGU", childMap.get("dihyo_dnw_bngu"));
				// 契約状態 ← KKSV065102CC.契約状態
				m1Map.put("KIYK_JOTI", childMap.get("kiyk_joti"));
				// 照査日 ← KKSV065102CC.照査日
				m1Map.put("SHOUS_B", childMap.get("shous_b"));
				
				m1.add(m1Map);
			}
		}
		
		// *** SimpleSector1 の生成 ***
		HashMap<String, Object> s1 = (HashMap<String, Object>)sectorData.get("S1");
		
		// データ取得件数 ← 付加サービス情報リストのデータ件数
		s1.put("DB_COUNT", String.valueOf(db_count));
		
	}

	/**
	 * 下りマッピング
	 * @param resMap 処理応答電文
	 * @param outputMap
	 * @return HashMap
	 */
	public HashMap<String, Object> getKKSV0651WORK02(HashMap<String, Object> resMap, HashMap<String, HashMap<String, Object>> outputMap)
	{
		HashMap<String, Object> parentMap = null;
		if(outputMap.containsKey("KKSV0651WORK02"))
		{
			parentMap = outputMap.get("KKSV0651WORK02");
		}
		else
		{
			return resMap;
		}
		
		// 返却結果コード ← KKSV0651WORK02.返却結果コード
		resMap.put("WDA_COM_RESULT", (String)parentMap.get("return_result_cd"));
		
		return resMap;
	}

}
