/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0340_KKSV0340OPDBMapper
*	ソースファイル名：KKSV0340_KKSV0340OPDBMapper.java
*	作成者			：Fujitsu
*	日付			：2012年1月10日
*＜機能概要＞
*	BP（現在接続機器件数照会OP）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/1/10	Fujitsu		新規作成
*	v3.00.00	2012/8/21	FJ)団		【ANK-0046-01-00】ＩＰｖ６対応
*	v5.00.00	2013/03/29  FJ)赤穂    【IKK-2013-0000699】対応
*	v7.00.00	2013/12/30  FJ)澁谷    【ANK-1578-00-00】多機能ルータ対応
*
**********************************************************************/

package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.HashMap;

/**
 * DataBean-BPマッピングをする。
 * @author FJ
 * 
 */
public class KKSV0340_KKSV0340OPDBMapper
{

	/**
	 * コンストラクタ
	 */
	public KKSV0340_KKSV0340OPDBMapper()
	{
	}

	/**
	 * 上りマッピングをする
	 * @param reqMap 処理要求電文
	 * @param outputMap
	 * @param func_code 機能コード
	 */
	public void setKKSV034001SC(HashMap<?, ?> reqMap, HashMap<String, HashMap<String, Object>> outputMap, String func_code)
	{

		if (reqMap == null)
		{
			return;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// サービス契約番号 → ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", reqMap.get("OKYAKSM_ID"));
		
		// 提供コード → ＫＥＹ＿機器提供種別コード
		parentMap.put("key_kktk_sbt_cd", reqMap.get("KK_KIYK_KBN"));
		
		// 機器グループ種別 → ＫＥＹ＿宅内機器種別コード
		parentMap.put("key_taknkiki_sbt_cd", reqMap.get("KK_GRP_SHUBT"));

		outputMap.put("KKSV034001SC", parentMap);

	}

	/**
	 * 上りマッピングをする
	 * @param reqMap 処理要求電文
	 * @param outputMap
	 */
	public void setKKSV034002CC(HashMap<?, ?> reqMap, HashMap<String, HashMap<String, Object>> outputMap)
	{
		if (reqMap == null)
		{
			return;
		}
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		outputMap.put("KKSV034002CC", parentMap);

	}
	
	/**
	 * 上りマッピングをする
	 * @param reqMap 処理要求電文
	 * @param outputMap
	 */
	public void setKKSV034003CC(HashMap<?, ?> reqMap, HashMap<String, HashMap<String, Object>> outputMap)
	{
		if (reqMap == null)
		{
			return;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// サービス契約番号 → ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", reqMap.get("OKYAKSM_ID"));
		
		// 提供コード → ＫＥＹ＿機器提供種別コード
		parentMap.put("key_kktk_sbt_cd", reqMap.get("KK_KIYK_KBN"));
		
		// 機器グループ種別 → ＫＥＹ＿宅内機器種別コード
		parentMap.put("key_taknkiki_sbt_cd", reqMap.get("KK_GRP_SHUBT"));

		outputMap.put("KKSV034003CC", parentMap);

	}

	/**
	 * 上りマッピングをする
	 * @param reqMap 処理要求電文
	 * @param outputMap
	 */
	public void setKKSV0340WORK01(HashMap<?, ?> reqMap, HashMap<String, HashMap<String, Object>> outputMap)
	{

		if (reqMap == null)
		{
			return;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 機器グループ種別 → 宅内機器種別コード
		parentMap.put("taknkiki_sbt_cd", reqMap.get("KK_GRP_SHUBT"));

		outputMap.put("KKSV0340WORK01", parentMap);

	}

	/**
	 * 下りマッピング
	 * @param outputMap
	 * @param sectorData
	 */
	@SuppressWarnings("unchecked")
	public void getKKSV034002CC(HashMap<String, HashMap<String, Object>> outputMap, HashMap<String, Object> sectorData)
	{
		HashMap<String, Object> parentMap = null;
		if (outputMap.containsKey("KKSV034002CC"))
		{
			parentMap = outputMap.get("KKSV034002CC");
		}
		else
		{
			return;
		}
		
		// 無料ルーター表示文言
		String mryo_router_dsp_mongon = "";
		
		int db_count = 0;
		
		if (parentMap.containsKey("now_connect_kiki_list"))
		{
			ArrayList<HashMap<String, Object>> childList = (ArrayList<HashMap<String, Object>>)parentMap.get("now_connect_kiki_list");
			
			// *** MultipartSector1 の生成 ***
			ArrayList<HashMap<String, Object>> m1 = (ArrayList<HashMap<String, Object>>)sectorData.get("M1");
			
			// データ取得件数
			db_count = childList.size();
			
			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);
				HashMap<String, Object> m1Map = new HashMap<String, Object>();
				
				// 複数件取得できる場合は、１件目を設定する。
				if (i == 0)
				{
					// 無料ルータ表示文言 ← KKSV034002CC.無料ルータ表示文言
					mryo_router_dsp_mongon = (String)childMap.get("mryo_router_dsp_mongon");
				}
				
				// 保有ルーターコード ← KKSV034002CC.保有ルーターコード
				m1Map.put("ROUTER_KBN", childMap.get("hoyu_router_cd"));
				// 機器提供サービス契約番号 ← KKSV034002CC.機器提供サービス契約番号
				m1Map.put("ROUTER_KK_TUBN", childMap.get("kktk_svc_kei_no"));
				// 契約締結年月日 ← KKSV034002CC.契約締結年月日
				m1Map.put("ROUTER_KEIYK_B", childMap.get("kei_cnc_ymd"));
				// 型番号 ← KKSV034002CC.メーカー機器型番
				m1Map.put("KT_BNGU", childMap.get("maker_kk_mdl_no"));
				// 修理交換グループ ← KKSV034002CC.修理交換グループ種別コード
				m1Map.put("SHUR_KUKN_GRP", childMap.get("shuri_kokan_grp_sbt_cd"));
				// Ipv6対応ルータフラグ ← KKSV034002CC.IPv6対応フラグ
				m1Map.put("IPV6_ROUTER_FLG", childMap.get("ipv6_taio_flg"));
				
				m1.add(m1Map);
			}
		}
		
		HashMap<String, Object> s1 = (HashMap<String, Object>)sectorData.get("S1");
		
		// データ取得件数 ← 現在接続機器リストのサイズ
		s1.put("DB_COUNT", Integer.toString(db_count));
		
		// 無料ルータ表示文言
		s1.put("FREE_ROUTER_MESSAGE", mryo_router_dsp_mongon);
	}
	
	/**
	 * 下りマッピング
	 * @param outputMap
	 * @param sectorData
	 */
	@SuppressWarnings("unchecked")
	public void getKKSV034003CC(HashMap<String, HashMap<String, Object>> outputMap, HashMap<String, Object> sectorData)
	{
		HashMap<String, Object> parentMap = null;
		if (outputMap.containsKey("KKSV034003CC"))
		{
			parentMap = outputMap.get("KKSV034003CC");
		}
		else
		{
			return;
		}
		
		// 無料ルーター表示文言
		String mryo_router_dsp_mongon = "";
		
		int db_count = 0;
		
		if (parentMap.containsKey("now_connect_kiki_list"))
		{
			ArrayList<HashMap<String, Object>> childList = (ArrayList<HashMap<String, Object>>)parentMap.get("now_connect_kiki_list");
			
			// *** MultipartSector1 の生成 ***
			ArrayList<HashMap<String, Object>> m1 = (ArrayList<HashMap<String, Object>>)sectorData.get("M1");
			
			// データ取得件数
			db_count = childList.size();
			
			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);
				HashMap<String, Object> m1Map = new HashMap<String, Object>();
				
				// 複数件取得できる場合は、１件目を設定する。
				if (i == 0)
				{
					// 無料ルータ表示文言 ← KKSV034003CC.無料ルータ表示文言
					mryo_router_dsp_mongon = (String)childMap.get("mryo_router_dsp_mongon");
				}
				
				// 保有ルーターコード ← KKSV034003CC.保有ルーターコード
				m1Map.put("ROUTER_KBN", childMap.get("hoyu_router_cd"));
				// 機器提供サービス契約番号 ← KKSV034003CC.機器提供サービス契約番号
				m1Map.put("ROUTER_KK_TUBN", childMap.get("kktk_svc_kei_no"));
				// 契約締結年月日 ← KKSV034003CC.契約締結年月日
				m1Map.put("ROUTER_KEIYK_B", childMap.get("kei_cnc_ymd"));
				// 型番号 ← KKSV034003CC.メーカー機器型番
				m1Map.put("KT_BNGU", childMap.get("maker_kk_mdl_no"));
				// 修理交換グループ ← KKSV034003CC.修理交換グループ種別コード
				m1Map.put("SHUR_KUKN_GRP", childMap.get("shuri_kokan_grp_sbt_cd"));
				// Ipv6対応ルータフラグ ← KKSV034003CC.IPv6対応フラグ
				m1Map.put("IPV6_ROUTER_FLG", childMap.get("ipv6_taio_flg"));
				
				m1.add(m1Map);
			}
		}
		
		HashMap<String, Object> s1 = (HashMap<String, Object>)sectorData.get("S1");
		
		// データ取得件数 ← 現在接続機器リストのサイズ
		s1.put("DB_COUNT", Integer.toString(db_count));
		
		// 無料ルータ表示文言
		s1.put("FREE_ROUTER_MESSAGE", mryo_router_dsp_mongon);
	}

	/**
	 * 下りマッピング
	 * @param resMap 処理応答電文
	 * @param outputMap
	 */
	public void getKKSV0340WORK02(HashMap<String, Object> resMap, HashMap<String, HashMap<String, Object>> outputMap)
	{
		HashMap<String, Object> parentMap = null;
		if (outputMap.containsKey("KKSV0340WORK02"))
		{
			parentMap = outputMap.get("KKSV0340WORK02");
		}
		else
		{
			return;
		}
		
		// 返却結果コード ← 現在接続機器件数照会作業項目マップ02.返却結果コード
		resMap.put("WDA_COM_RESULT", (String)parentMap.get("return_result_cd"));
	}
}
