/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：FUSV0168_FUSV0168OPDBMapper
*	ソースファイル名：FUSV0168_FUSV0168OPDBMapper.java
*	作成者			：FJ
*	日付			：2012年04月19日
*＜機能概要＞
*	BP（マンション検索(検索結果)）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/04/19	FJ			新規作成
*   v5.00.00    2013/08/07	FJ)文元		【IT1-2013-001522】「EKK0861B501_マンション検索一覧照会」OUT項目追加による下りマップ対応 
*   v40.00      2018/09/07  FJ）張本    【ANK-3412-00-00】５ギガ・１０ギガコース導入対応
*   v40.00.00   2019/01/09  FJ) 西川    【ANK-3412-03-00】５ギガ・１０ギガコース導入対応(特約プログラム対応)
*   v40.01      2019/01/29  FJ）張本    【ANK-3412-07-00】メゾン向け5G・10G提供情報表示対応
*   v46.00.00   2019/10/04  FJ）西川    【ANK-3731-00-00】マンション光配線切替対応
*   v48.00.00   2020/02/04  FJ）岡井    【ANK-3757-00-00】マンション工事種別イーサ他社併行時のサービス開始希望日の入力欄制御
*   v50.00      2020/08/26  FJ) 大島    【ANK-3805-00-00】無線ルーター機能無料マンション対応
*   v51.00      2020/08/31  FJ) 岡井    【ANK-3885-00-00】光化マンションの自動設計対応
*   v56.00      2021/12/06  FJ）美濃原  【ANK-4103-00-00】マンション光コンセントタイプのWeb受付対応
*   v57.00      2022/02/09	FJ) 張本    【ANK-4173-00-00】【eo顧客】解約後の契約情報表示、再申込対応
*   v67.00      2023/05/21  FJ) 張本    【ANK-4467-00-00】FRONTIERのマンション導線巻き取りに伴うAPI変更
*   v73.00      2024/11/15  FJ) 張本    【ANK-4493-00-00】【eo定期】光配線マンションのコースアップ対応
*
**********************************************************************/
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.common.constant.JFUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class FUSV0168_FUSV0168OPDBMapper {
	
	/**
	 * コンストラクタ
	 */
	public FUSV0168_FUSV0168OPDBMapper(){
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：マンション検索４（検索結果）（量販・訪販）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV016801SC(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_pcd", bean[0].sendMessageString("マンション物件郵便番号", X31CWebConst.DATABEAN_GET_VALUE));
		// マンション物件都道府県名 → マンション検索住所一覧マップ.ＫＥＹ＿都道府県名
		parentMap.put("key_state_nm", bean[0].sendMessageString("マンション物件都道府県名", X31CWebConst.DATABEAN_GET_VALUE));
		// マンション物件市区町村名 → マンション検索住所一覧マップ.ＫＥＹ＿市区町村名
		parentMap.put("key_city_nm", bean[0].sendMessageString("マンション物件市区町村名", X31CWebConst.DATABEAN_GET_VALUE));
		// マンション物件大字通称名 → マンション検索住所一覧マップ.ＫＥＹ＿大字通称名
		parentMap.put("key_oaztsu_nm", bean[0].sendMessageString("マンション物件大字通称名", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV016801CC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：マンション検索４（検索結果）（量販・訪販）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV016802SC(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_agnt_cd", bean[0].sendMessageString("代理店コード", X31CWebConst.DATABEAN_GET_VALUE));
		// 運用年月日 → 代理店申込制限一覧マップ.ＫＥＹ＿運用年月日
		parentMap.put("key_unyo_ymd", bean[0].sendMessageString("運用年月日", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV016802SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：マンション検索４（検索結果）（量販・訪販）
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV016801SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("FUSV016801CC")){
			parentMap = (HashMap)outputMap.get("FUSV016801CC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listFUSV016801SC_ekk0861b501cbsmsg1list_EKK0861B501CBSMsg1List = bean[0].getDataBeanArray("マンション一覧");
		childList = null;
		if(listFUSV016801SC_ekk0861b501cbsmsg1list_EKK0861B501CBSMsg1List != null && parentMap != null && parentMap.containsKey("mansion_search_b_list")){
			childList = (ArrayList)parentMap.get("mansion_search_b_list");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listFUSV016801SC_ekk0861b501cbsmsg1list_EKK0861B501CBSMsg1List.getCount() -1 >= i){
					subbean = listFUSV016801SC_ekk0861b501cbsmsg1list_EKK0861B501CBSMsg1List.getDataBean(i);
				}else{
					subbean = listFUSV016801SC_ekk0861b501cbsmsg1list_EKK0861B501CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// マンション一覧.マンション物件番号 ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.マンション物件番号
				if (childMap != null) {
					subbean.sendMessageString("マンション物件番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mansion_bukken_no"));
				} else {
					subbean.sendMessageString("マンション物件番号", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.マンション物件コード ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.マンション物件コード
				if (childMap != null) {
					subbean.sendMessageString("マンション物件コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mansion_bukken_cd"));
				} else {
					subbean.sendMessageString("マンション物件コード", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.物件管理番号 ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.物件管理番号
				if (childMap != null) {
					subbean.sendMessageString("物件管理番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("bkn_knri_no"));
				} else {
					subbean.sendMessageString("物件管理番号", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.回線使用契約物件名 ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.回線使用契約物件名
				if (childMap != null) {
					subbean.sendMessageString("回線使用契約物件名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kisnusekei_bkn_nm"));
				} else {
					subbean.sendMessageString("回線使用契約物件名", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.回線使用契約物件住所コード ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.回線使用契約物件住所コード
				if (childMap != null) {
					subbean.sendMessageString("回線使用契約物件住所コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kisnusekei_bkn_ad_cd"));
				} else {
					subbean.sendMessageString("回線使用契約物件住所コード", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.回線使用契約物件郵便番号 ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.回線使用契約物件郵便番号
				if (childMap != null) {
					subbean.sendMessageString("回線使用契約物件郵便番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kisnusekei_bkn_pcd"));
				} else {
					subbean.sendMessageString("回線使用契約物件郵便番号", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.回線使用契約物件都道府県名 ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.回線使用契約物件都道府県名
				if (childMap != null) {
					subbean.sendMessageString("回線使用契約物件都道府県名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kisnusekei_bkn_state_nm"));
				} else {
					subbean.sendMessageString("回線使用契約物件都道府県名", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.回線使用契約物件市区町村名 ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.回線使用契約物件市区町村名
				if (childMap != null) {
					subbean.sendMessageString("回線使用契約物件市区町村名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kisnusekei_bkn_city_nm"));
				} else {
					subbean.sendMessageString("回線使用契約物件市区町村名", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.回線使用契約物件大字通称名 ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.回線使用契約物件大字通称名
				if (childMap != null) {
					subbean.sendMessageString("回線使用契約物件大字通称名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kisnusekei_bkn_oaztsu_nm"));
				} else {
					subbean.sendMessageString("回線使用契約物件大字通称名", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.回線使用物件字丁名 ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.回線使用物件字丁名
				if (childMap != null) {
					subbean.sendMessageString("回線使用物件字丁名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kisnusekei_bkn_azcho_nm"));
				} else {
					subbean.sendMessageString("回線使用物件字丁名", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.回線使用契約番号 ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.回線使用契約番号
				if (childMap != null) {
					subbean.sendMessageString("回線使用契約番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("net_kaisen_use_kei_no"));
				} else {
					subbean.sendMessageString("回線使用契約番号", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.回線使用契約番号（ＴＶ） ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.回線使用契約番号（ＴＶ）
				if (childMap != null) {
					subbean.sendMessageString("回線使用契約番号（ＴＶ）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("tv_kaisen_use_kei_no"));
				} else {
					subbean.sendMessageString("回線使用契約番号（ＴＶ）", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.マンションＩＤ ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.マンションＩＤ
				if (childMap != null) {
					subbean.sendMessageString("マンションＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mansion_id"));
				} else {
					subbean.sendMessageString("マンションＩＤ", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.ペアＩＤ ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.ペアＩＤ
				if (childMap != null) {
					subbean.sendMessageString("ペアＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pairid"));
				} else {
					subbean.sendMessageString("ペアＩＤ", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.ＣＡＴ−ＩＤ ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.ＣＡＴ−ＩＤ
				if (childMap != null) {
					subbean.sendMessageString("ＣＡＴ−ＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("catid"));
				} else {
					subbean.sendMessageString("ＣＡＴ−ＩＤ", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.宅内特殊配線有料工事コード ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.宅内特殊配線有料工事コード
				if (childMap != null) {
					subbean.sendMessageString("宅内特殊配線有料工事コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("takni_tokuhsen_yrkoji_cd"));
				} else {
					subbean.sendMessageString("宅内特殊配線有料工事コード", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.マンション価格帯コード ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.マンション価格帯コード
				if (childMap != null) {
					subbean.sendMessageString("マンション価格帯コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mansion_kakakutai_cd"));
				} else {
					subbean.sendMessageString("マンション価格帯コード", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.加入契約申込条件コード ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.加入契約申込条件コード
				if (childMap != null) {
					subbean.sendMessageString("加入契約申込条件コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("knykei_mskm_joken_cd"));
				} else {
					subbean.sendMessageString("加入契約申込条件コード", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.ネット加入契約申込条件コード ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.ネット加入契約申込条件コード
				if (childMap != null) {
					subbean.sendMessageString("ネット加入契約申込条件コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("net_knykei_mskm_joken_cd"));
				} else {
					subbean.sendMessageString("ネット加入契約申込条件コード", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.テレビ加入契約申込条件コード ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.テレビ加入契約申込条件コード
				if (childMap != null) {
					subbean.sendMessageString("テレビ加入契約申込条件コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("tv_knykei_mskm_joken_cd"));
				} else {
					subbean.sendMessageString("テレビ加入契約申込条件コード", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.加入契約ネット１０Ｇ申込可否 ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.加入契約ネット10G申込可否
				if (childMap != null) {
					subbean.sendMessageString("加入契約ネット１０Ｇ申込可否", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("knykei_net_10g_mskm_kh"));
				} else {
					subbean.sendMessageString("加入契約ネット１０Ｇ申込可否", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.加入契約ネット１Ｇ申込可否 ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.加入契約ネット1G申込可否
				if (childMap != null) {
					subbean.sendMessageString("加入契約ネット１Ｇ申込可否", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("knykei_net_1g_mskm_kh"));
				} else {
					subbean.sendMessageString("加入契約ネット１Ｇ申込可否", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.加入契約ネット２００Ｍ申込可否 ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.加入契約ネット200M申込可否
				if (childMap != null) {
					subbean.sendMessageString("加入契約ネット２００Ｍ申込可否", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("knykei_net_200m_mskm_kh"));
				} else {
					subbean.sendMessageString("加入契約ネット２００Ｍ申込可否", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.加入契約ネット１００Ｍ申込可否 ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.加入契約ネット100M申込可否
				if (childMap != null) {
					subbean.sendMessageString("加入契約ネット１００Ｍ申込可否", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("knykei_net_100m_mskm_kh"));
				} else {
					subbean.sendMessageString("加入契約ネット１００Ｍ申込可否", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.メゾン光テレビ提供コード ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.メゾン光テレビ提供コード
				if (childMap != null) {
					subbean.sendMessageString("メゾン光テレビ提供コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("maison_hikari_tv_tk_cd"));
				} else {
					subbean.sendMessageString("メゾン光テレビ提供コード", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.光テレビ提供状況コード ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.光テレビ提供状況コード
				if (childMap != null) {
					subbean.sendMessageString("光テレビ提供状況コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hikari_tv_tk_jokyo_cd"));
				} else {
					subbean.sendMessageString("光テレビ提供状況コード", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.光電話提供コード ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.光電話提供コード
				if (childMap != null) {
					subbean.sendMessageString("光電話提供コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hikari_tel_tk_cd"));
				} else {
					subbean.sendMessageString("光電話提供コード", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.標準サービス開始日数 ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.標準サービス開始日数
				if (childMap != null) {
					subbean.sendMessageString("標準サービス開始日数", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("stdard_svc_sta_nisu"));
				} else {
					subbean.sendMessageString("標準サービス開始日数", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.提供方式コード ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.提供方式コード
				if (childMap != null) {
					subbean.sendMessageString("提供方式コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("tk_hoshiki_cd"));
				} else {
					subbean.sendMessageString("提供方式コード", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.提供料金種別コード ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.提供料金種別コード
				if (childMap != null) {
					subbean.sendMessageString("提供料金種別コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("tk_prc_sbt_cd"));
				} else {
					subbean.sendMessageString("提供料金種別コード", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.棟内速度コード ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.棟内速度コード
				if (childMap != null) {
					subbean.sendMessageString("棟内速度コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("tonai_speed_cd"));
				} else {
					subbean.sendMessageString("棟内速度コード", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.提供方式契約番号 ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.提供方式契約番号
				if (childMap != null) {
					subbean.sendMessageString("提供方式契約番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("net_tk_hoshiki_kei_no"));
				} else {
					subbean.sendMessageString("提供方式契約番号", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.提供方式契約番号（ＴＶ） ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.提供方式契約番号（ＴＶ）
				if (childMap != null) {
					subbean.sendMessageString("提供方式契約番号（ＴＶ）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("tv_tk_hoshiki_kei_no"));
				} else {
					subbean.sendMessageString("提供方式契約番号（ＴＶ）", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.Ｐ−ＩＤ ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.Ｐ−ＩＤ
				if (childMap != null) {
					subbean.sendMessageString("Ｐ−ＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pid"));
				} else {
					subbean.sendMessageString("Ｐ−ＩＤ", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.オーナー契約番号 ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.オーナー契約番号
				if (childMap != null) {
					subbean.sendMessageString("オーナー契約番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("ownr_kei_no"));
				} else {
					subbean.sendMessageString("オーナー契約番号", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.マンションオーナーＩＤ ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.マンションオーナーＩＤ
				if (childMap != null) {
					subbean.sendMessageString("マンションオーナーＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mansion_ownr_id"));
				} else {
					subbean.sendMessageString("マンションオーナーＩＤ", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.支払方式コード ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.支払方式コード
				if (childMap != null) {
					subbean.sendMessageString("支払方式コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pay_hoshiki_cd"));
				} else {
					subbean.sendMessageString("支払方式コード", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.起点変電所コード ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.起点変電所コード
				if (childMap != null) {
					subbean.sendMessageString("起点変電所コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kiten_hdsho_cd"));
				} else {
					subbean.sendMessageString("起点変電所コード", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.集約局コード ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.集約局コード
				if (childMap != null) {
					subbean.sendMessageString("集約局コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("shyakk_cd"));
				} else {
					subbean.sendMessageString("集約局コード", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.マンション割引サービス契約番号（ＮＥＴ） ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.ネット用マンション割引サービス契約番号
				if (childMap != null) {
					subbean.sendMessageString("マンション割引サービス契約番号（ＮＥＴ）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("net_mansion_wrib_svc_kei_no"));
				} else {
					subbean.sendMessageString("マンション割引サービス契約番号（ＮＥＴ）", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.マンションキャンペーンコード（ＮＥＴ） ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.ネット用マンションキャンペーンコード
				if (childMap != null) {
					subbean.sendMessageString("マンションキャンペーンコード（ＮＥＴ）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("net_mans_campaign_cd"));
				} else {
					subbean.sendMessageString("マンションキャンペーンコード（ＮＥＴ）", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.マンション割引サービス契約番号（ＴＶ） ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.テレビ用マンション割引サービス契約番号
				if (childMap != null) {
					subbean.sendMessageString("マンション割引サービス契約番号（ＴＶ）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("tv_mansion_wrib_svc_kei_no"));
				} else {
					subbean.sendMessageString("マンション割引サービス契約番号（ＴＶ）", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.マンションキャンペーンコード（ＴＶ） ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.テレビ用マンションキャンペーンコード
				if (childMap != null) {
					subbean.sendMessageString("マンションキャンペーンコード（ＴＶ）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("tv_mans_campaign_cd"));
				} else {
					subbean.sendMessageString("マンションキャンペーンコード（ＴＶ）", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				
				// ANK-0363-00-00 2012/09/26 h.iwamoto START
				// マンション一覧.ｅｏ光ネット従量プラン申込可否 ← マンション検索住所一覧マップ.ｅｏ光ネット従量プラン申込可否
				if (childMap != null) {
					subbean.sendMessageString("ｅｏ光ネット従量プラン申込可否", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("eohnt_juryo_plan_mkm_kh"));
				} else {
					subbean.sendMessageString("ｅｏ光ネット従量プラン申込可否", JFUStrConst.EMPTY);
				}
				// ANK-0363-00-00 2012/09/26 h.iwamoto END
				
				// ANK-1190-00-00 2012/10/25 Otsuka START
				// マンション一覧.サービス開始予定年月日 ← マンション検索住所一覧マップ.サービス開始予定年月日
				if (childMap != null) {
					subbean.sendMessageString("サービス開始予定年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_sta_rsv_ymd"));
				} else {
					subbean.sendMessageString("サービス開始予定年月日", JFUStrConst.EMPTY);
				}
				// マンション一覧.サービス開始年月日 ← マンション検索住所一覧マップ.サービス開始年月日
				if (childMap != null) {
					subbean.sendMessageString("サービス開始年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_sta_ymd"));
				} else {
					subbean.sendMessageString("サービス開始年月日", JFUStrConst.EMPTY);
				}
				// ANK-1190-00-00 2012/10/25 Otsuka END
				
				// ANK-1220-00-00 2012/09/26 h.iwamoto START
				// マンション一覧.資料請求フラグ ← マンション検索住所一覧マップ.資料請求フラグ
				if (childMap != null) {
					subbean.sendMessageString("資料請求フラグ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("siryo_seiky_flg"));
				} else {
					subbean.sendMessageString("資料請求フラグ", JFUStrConst.EMPTY);
				}
				// ANK-1220-00-00 2012/09/26 h.iwamoto END
				
				// ANK-1435-00-00 2013/02/08 kusumoto START
				// マンション一覧.アクセス回線速度コード ← マンション検索住所一覧マップ.アクセス回線速度コード
				if (childMap != null) {
					subbean.sendMessageString("アクセス回線速度コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("accss_kisn_speed_cd"));
				} else {
					subbean.sendMessageString("アクセス回線速度コード", JFUStrConst.EMPTY);
				}
				// ANK-1435-00-00 2013/02/08 kusumoto END
				if (childMap != null) {
					subbean.sendMessageString("契約付加（レンタル）コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kei_huka_rent_cd"));
				} else {
					subbean.sendMessageString("契約付加（レンタル）コード", JFUStrConst.EMPTY);
				}
				if (childMap != null) {
					subbean.sendMessageString("契約付加（買取）コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kei_huka_kaitori_cd"));
				} else {
					subbean.sendMessageString("契約付加（買取）コード", JFUStrConst.EMPTY);
				}
				if (childMap != null) {
					subbean.sendMessageString("マンション接続機器コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mcntkk_cd"));
				} else {
					subbean.sendMessageString("マンション接続機器コード", JFUStrConst.EMPTY);
				}
				if (childMap != null) {
					subbean.sendMessageString("マンション接続機器型式コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mcntkk_model_cd"));
				} else {
					subbean.sendMessageString("マンション接続機器型式コード", JFUStrConst.EMPTY);
				}
				if (childMap != null) {
					subbean.sendMessageString("メゾン開通実績", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mz_opjsk_pon_sbt_cd"));
				} else {
					subbean.sendMessageString("メゾン開通実績", JFUStrConst.EMPTY);
				}
				if (childMap != null) {
					subbean.sendMessageString("ＢＳパススルー可否", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("bspt_kh"));
				} else {
					subbean.sendMessageString("ＢＳパススルー可否", JFUStrConst.EMPTY);
				}
				if (childMap != null) {
					subbean.sendMessageString("光配線１Ｇのみフラグ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hhs_1gonly_flg"));
				} else {
					subbean.sendMessageString("光配線１Ｇのみフラグ", JFUStrConst.EMPTY);
				}
				if (childMap != null) {
					subbean.sendMessageString("イーサ他社併行フラグ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("ether_tashaheiko_flg"));
				} else {
					subbean.sendMessageString("イーサ他社併行フラグ", JFUStrConst.EMPTY);
				}
// ANK-3805-00-00 ADD START
				if (childMap != null) {
					subbean.sendMessageString("工事種別", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("koji_sbt"));
				} else {
					subbean.sendMessageString("工事種別", JFUStrConst.EMPTY);
				}
// ANK-3805-00-00 ADD END
				// ANK-3885-00-00 ADD START
				if (childMap != null) {
					subbean.sendMessageString("提供方式パターンコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("tk_hoshiki_pattern_cd"));
				} else {
					subbean.sendMessageString("提供方式パターンコード", JFUStrConst.EMPTY);
				}
				if (childMap != null) {
					subbean.sendMessageString("棟情報", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("tou_info"));
				} else {
					subbean.sendMessageString("棟情報", JFUStrConst.EMPTY);
				}
				if (childMap != null) {
					subbean.sendMessageString("部屋番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("rm_no"));
				} else {
					subbean.sendMessageString("部屋番号", JFUStrConst.EMPTY);
				}
				// ANK-3885-00-00 ADD END
				if (childMap != null) {
					subbean.sendMessageString("提供方式変更種別", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("tk_hoshiki_chg_sbt_cd"));
				} else {
					subbean.sendMessageString("提供方式変更種別", JFUStrConst.EMPTY);
				}
				// マンション一覧.加入契約ネット１０Ｇ申込可否＿マンション ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.加入契約ネット10G申込可否＿マンション
				if (childMap != null) {
					subbean.sendMessageString("加入契約ネット１０Ｇ申込可否＿マンション", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("knykei_net_10g_mkm_kh_mans"));
				} else {
					subbean.sendMessageString("加入契約ネット１０Ｇ申込可否＿マンション", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				// マンション一覧.加入契約ネット１Ｇ申込可否＿マンション ← マンション検索住所一覧マップ.マンション物件一覧照会（複合検索）明細.加入契約ネット1G申込可否＿マンション
				if (childMap != null) {
					subbean.sendMessageString("加入契約ネット１Ｇ申込可否＿マンション", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("knykei_net_1g_mkm_kh_mans"));
				} else {
					subbean.sendMessageString("加入契約ネット１Ｇ申込可否＿マンション", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
			}
		}


		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：マンション検索４（検索結果）（量販・訪販）
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV016802SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("FUSV016802SC")){
			parentMap = (HashMap)outputMap.get("FUSV016802SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listFUSV016802SC_ekk2301b501cbsmsg1list_EKK2301B501CBSMsg1List = bean[0].getDataBeanArray("代理店申込制限一覧");
		childList = null;
		if(listFUSV016802SC_ekk2301b501cbsmsg1list_EKK2301B501CBSMsg1List != null && parentMap != null && parentMap.containsKey("EKK2301B501CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EKK2301B501CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listFUSV016802SC_ekk2301b501cbsmsg1list_EKK2301B501CBSMsg1List.getCount() -1 >= i){
					subbean = listFUSV016802SC_ekk2301b501cbsmsg1list_EKK2301B501CBSMsg1List.getDataBean(i);
				}else{
					subbean = listFUSV016802SC_ekk2301b501cbsmsg1list_EKK2301B501CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// 代理店申込制限一覧.サービスタイプ識別コード ← 代理店申込制限一覧マップ.代理店申込制限一覧照会明細.サービスタイプ識別コード
				if (childMap != null) {
					subbean.sendMessageString("サービスタイプ識別コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_type_skbt_cd"));
				} else {
					subbean.sendMessageString("サービスタイプ識別コード", X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
			}
		}


		return bean;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：マンション検索４（検索結果）（量販・訪販）　[1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV016803SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 2){
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// サービス契約回線内訳番号 → ービス契約回線内訳一意照会マップ.ＫＥＹ＿サービス契約回線内訳番号
		parentMap.put("key_svc_kei_kaisen_ucwk_no", getWebAccInfo(bean[1]).sendMessageString(CommonInfoCFConst.SVC_KEI_KAISEN_UCWK_NO_69,
				X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV016803SC", parentMap);

		setJFUMansionSearchCC(outputMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	private void setJFUMansionSearchCC(HashMap outputMap) {

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", JPCModelConstant.FUNC_CD_4);

		// マッピング対象マップキー
		parentMap.put("mapping_tg_map_key", "FUSV016803SC");
		// マッピング対象リストキー
		parentMap.put("mapping_tg_list_key", "EKK0251A010CBSMsg1List");
		// マッピング対象項目キー
		parentMap.put("mapping_tg_key", "mansion_bukken_no");

		outputMap.put("FUSV016801CC", parentMap);

	}

	/**
	 * ＷＥＢアクセス情報
	 * 
	 * @param webNewInfoBean
	 * @return elseInfoBean
	 */
	private X31SDataBeanAccess getWebAccInfo(X31SDataBeanAccess commonInfoBean)
	{

		// ＷＥＢ新規情報取得
		X31SDataBeanAccess webNewBean = commonInfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO).getDataBean(0);

		// ＷＥＢアクセス情報
		X31SDataBeanAccessArray array = webNewBean.getDataBeanArray(CommonInfoCFConst.WEB_ACCESS_INFO);
		if (array.getCount() == 0)
		{
			array.addDataBean();
		}
		X31SDataBeanAccess bean = array.getDataBean(0);

		return bean;
	}

	/**
	 * 上りマッピングをする
	 * @param mansionInfoBean　マンション情報
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV016801CC(X31SDataBeanAccess mansionInfoBean, HashMap outputMap, String func_code) {
		
		if (mansionInfoBean == null)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		if(outputMap.containsKey("FUSV016801CC")){
			parentMap = (HashMap)outputMap.get("FUSV016801CC");
		}

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 検索・物件管理番号 → マンション検索住所一覧マップ.ＫＥＹ＿物件管理番号
		parentMap.put("key_bkn_knri_no", mansionInfoBean.sendMessageString(CommonInfoCFConst.SEARCH_BKN_KNRI_NO_16, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("FUSV016801CC", parentMap);
						
		return outputMap;
	}
}