/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0419_KKSV0419OPDBMapper
*	ソースファイル名：KKSV0419_KKSV0419OPDBMapper.java
*	作成者			：Fujitsu
*	日付			：2011年11月18日
*＜機能概要＞
*	BP（機器引継登録OP）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/11/18	Fujitsu		新規作成
*   v4.00.00    2012/12/20  FJ)猪山     【IT1-2012-0002513】進捗特記事項1編集対応
*   v5.00.00    2013/07/02  FJ)馬場     【IT1-2013-0001328】異動年月日時分秒対応
*   v5.00.01    2013/07/04  FJ)鳩本     【IT1-2013-0001330】障害対応
*   v19.00.00   2015/09/25  FJ)余野木   【OM-2015-0001988】対応
*
**********************************************************************/
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.KKW03901SF.KKW03901SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKCommonConst;

/**
 * DataBean-BPマッピングをする。
 * @author 909488
 */
public class KKSV0419_KKSV0419OPDBMapper
{
	
	/**
	 * コンストラクタ
	 */
	public KKSV0419_KKSV0419OPDBMapper()
	{
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean 機器引継サービスフォームBean
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return HashMap
	 */
	public HashMap setKKSV041901SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}
		
		// 引継先＿サービス契約一覧
		X31SDataBeanAccessArray hktgiSakiSvcKeiList = bean[0].getDataBeanArray(KKW03901SFConst.HKTGI_SAKI_SVC_KEI_LIST);
		X31SDataBeanAccess subbean = hktgiSakiSvcKeiList.getDataBean(0);
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// 引継先＿料金コース → 料金コース一意照会マップ.ＫＥＹ＿料金コースコード
		parentMap.put("key_pcrs_cd", subbean.sendMessageString("引継先＿料金コース", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 料金コース一意照会マップ.ＫＥＹ＿世代登録年月日時分秒
		parentMap.put("key_gene_add_dtm", "");
		
		// 運用日 → 料金コース一意照会マップ.ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString("運用日", X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV041901SC", parentMap);
		
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean 機器引継サービスフォームBean
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return HashMap
	 */
	public HashMap setKKSV041902SC(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("KKSV041902SC", parentMap);
		
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean 機器引継サービスフォームBean
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return HashMap
	 */
	public HashMap setKKSV041903SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}
		
		// 引継先＿サービス契約一覧
		X31SDataBeanAccessArray hktgiSakiSvcKeiList = bean[0].getDataBeanArray(KKW03901SFConst.HKTGI_SAKI_SVC_KEI_LIST);
		X31SDataBeanAccess subbean = hktgiSakiSvcKeiList.getDataBean(0);
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// 引継先＿サービス契約番号 → 引継先サービス契約回線内訳一覧照会（現在利用中）マップ.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", subbean.sendMessageString("引継先＿サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV041903SC", parentMap);
		
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean 機器引継サービスフォームBean
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return HashMap
	 */
	public HashMap setKKSV041904SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}
		
		// 引継先＿サービス契約一覧
		X31SDataBeanAccessArray hktgiSakiSvcKeiList = bean[0].getDataBeanArray(KKW03901SFConst.HKTGI_SAKI_SVC_KEI_LIST);
		X31SDataBeanAccess subbean = hktgiSakiSvcKeiList.getDataBean(0);
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// 引継先＿ＳＹＳＩＤ → 申込内容承認登録マップ.SYSID
		parentMap.put("sysid", subbean.sendMessageString("引継先＿ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 申込内容承認登録マップ.申込種別コード("00025":機器引継申込)
		parentMap.put("mskm_sbt_cd", "00025");
		
		// 申込内容承認登録マップ.申込書到着年月日
		parentMap.put("mskmsho_ariv_ymd", "");
		
		// 運用年月日時分秒 → 申込内容承認登録マップ.申込受付年月日時分秒
		parentMap.put("mskm_uk_dtm", bean[0].sendMessageString("運用年月日時分秒", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 申込内容承認登録マップ.申込受付担当ユーザーID
		parentMap.put("mskm_uk_tnt_user_id", "");
		
		// 運用日 → 申込内容承認登録マップ.申込年月日
		parentMap.put("mskm_ymd", bean[0].sendMessageString("運用日", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 申込内容承認登録マップ.総合営業センター受付番号
		parentMap.put("ttl_business_center_uk_no", "");
		// 申込内容承認登録マップ.総合営業申込契機コード
		parentMap.put("ttl_business_mskm_opt_cd", "");
		// 申込内容承認登録マップ.申込連絡先電話番号
		parentMap.put("mskm_rrks_telno", "");
		// 申込内容承認登録マップ.申込実施者種別コード
		parentMap.put("mskm_jssis_sbt_cd", "");
		// 申込内容承認登録マップ.お客様ご要望事項
		parentMap.put("cust_yobo_jiko", "");
		// 申込内容承認登録マップ.本人確認書類名
		parentMap.put("hnin_cfm_bunsho_kind_nm", "");
		// 申込内容承認登録マップ.電話連絡希望時間帯コード
		parentMap.put("tel_rrk_kibo_time_cd", "");
		// 申込内容承認登録マップ.宅内調査希望時間帯コード
		parentMap.put("takcho_kibo_time_cd", "");
		// 申込内容承認登録マップ.仮申込フラグ
		parentMap.put("kari_mskm_flg", "");
		// 申込内容承認登録マップ.リファラー
		parentMap.put("referer", "");
		// 申込内容承認登録マップ.関西電力お客様情報授受同意有無
		parentMap.put("kepco_custinfo_juju_doi_um", "");
		
		// 申込内容承認登録マップ.コンシューマ営業用申込状態識別コード("04":承認済)
		parentMap.put("consmbsn_mskm_stat_skbt_cd", "04");
		
		ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
		HashMap<String, Object> childMap = new HashMap<String, Object>();
		list.add(childMap);
		parentMap.put("EKK0011D020CBSMsg1List", list);
		
		// 申込内容承認登録マップ.申込書番号
		childMap.put("mskmsho_no", "");
		// 申込内容承認登録マップ.WEB受付番号
		childMap.put("web_uk_no", "");
		// 申込内容承認登録マップ.申込形態コード
		childMap.put("mskm_form_cd", "");
		// 申込内容承認登録マップ.申込明細種別コード
		childMap.put("mskm_dtl_sbt_cd", "");
		// 申込内容承認登録マップ.連絡先携帯電話番号
		childMap.put("rrks_ktai_telno", "");
		// 申込内容承認登録マップ.連絡先勤務先名
		childMap.put("rrks_offc_nm", "");
		// 申込内容承認登録マップ.昼間連絡先電話番号
		childMap.put("dt_rrks_telno", "");
		// 申込内容承認登録マップ.新規申込種別コード
		childMap.put("new_mskm_sbt_cd", "");
		// 申込内容承認登録マップ.申込契機コード
		childMap.put("mskm_optnty_cd", "");
		// 申込内容承認登録マップ.申込経路コード
		childMap.put("mskm_route_cd", "");
		// 申込内容承認登録マップ.宅内調査希望アポ期限年月日
		childMap.put("takcho_kibo_apo_kigen_ymd", "");
		// 申込内容承認登録マップ.工事アポ連絡先指定コード
		childMap.put("koji_apo_rrks_shitei_cd", "");
		// 申込内容承認登録マップ.工事アポ連絡先電話番号
		childMap.put("koji_apo_rrks_telno", "");
		// 申込内容承認登録マップ.連絡事項登録年月日時分秒
		childMap.put("rrk_jiko_add_dtm", "");
		// 申込内容承認登録マップ.申込連絡先メールアドレス
		childMap.put("mskm_rrks_mlad", "");
		// 申込内容承認登録マップ.工事進捗通知メールアドレス
		childMap.put("koji_prg_tchi_mlad", "");
		// 申込内容承認登録マップ.連絡事項
		childMap.put("rrk_jiko", "");
		// 申込内容承認登録マップ.工事進捗通知携帯メールアドレス
		childMap.put("kjsc_tch_ktai_mlad", "");
		// 申込内容承認登録マップ.メール送信除外フラグ
		childMap.put("ml_send_jgi_flg", "");
		// 申込内容承認登録マップ.メール送信除外理由メモ
		childMap.put("ml_send_jgi_rsn_memo", "");
		// 申込内容承認登録マップ.番ポ申込連絡先電話番号
		childMap.put("bmp_mskm_rrks_tln", "");
		// 申込内容承認登録マップ.連絡手段補記
		childMap.put("rrk_way_hoki", "");
		// 申込内容承認登録マップ.新築物件コード
		childMap.put("newconst_bukken_cd", "");
		// 申込内容承認登録マップ.復活案件フラグ
		childMap.put("hukkat_anken_flg", "");
		// 申込内容承認登録マップ.同一設備再申込コード
		childMap.put("same_equip_re_mskm_cd", "");
		
		outputMap.put("KKSV041904SC", parentMap);
		
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean 機器引継サービスフォームBean
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return HashMap
	 */
	public HashMap setKKSV041905CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}
		
		// 顧客契約引継リスト
		X31SDataBeanAccessArray custKeiHktgiList = bean[0].getDataBeanArray(KKW03901SFConst.HKTGI_CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess custKeiHktgiSubBean = custKeiHktgiList.getDataBean(0);
		String hktgi_ido_div = custKeiHktgiSubBean.sendMessageString("異動区分", X31CWebConst.DATABEAN_GET_VALUE);
		
		// 引継先＿サービス契約一覧
		X31SDataBeanAccessArray hktgiSakiSvcKeiList = bean[0].getDataBeanArray(KKW03901SFConst.HKTGI_SAKI_SVC_KEI_LIST);
		X31SDataBeanAccess hktgiSakiSvcKeiSubBean = hktgiSakiSvcKeiList.getDataBean(0);
		// 引継先＿サービス契約番号の取得
		String hktgi_saki_svc_kei_no = hktgiSakiSvcKeiSubBean.sendMessageString("引継先＿サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE);
		// 引継先＿サービス契約ステータス
		String hktgi_saki_svc_kei_stat = hktgiSakiSvcKeiSubBean.sendMessageString("引継先＿契約状態", X31CWebConst.DATABEAN_GET_VALUE);
		// 引継先＿更新年月日時分秒
		String hktgi_saki_upd_dtm = hktgiSakiSvcKeiSubBean.sendMessageString("引継先＿更新年月日時分秒",  X31CWebConst.DATABEAN_GET_VALUE);
		
		// 引継元＿選択＿サービス契約番号
		String hktgi_moto_svc_kei_no = bean[0].sendMessageString(KKW03901SFConst.HKTGI_MOTO_SELECT_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
		
		ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 引継元＿接続機器一覧
		X31SDataBeanAccessArray hktgiMotoKikiList = bean[0].getDataBeanArray(KKW03901SFConst.HKTGI_MOTO_KIKI_LIST);
		
		// 引継元＿接続機器一覧＿有効データ件数
		int hktgi_moto_kiki_list_data_cnt =
				Integer.parseInt(bean[0].sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_LIST_DATA_CNT, X31CWebConst.DATABEAN_GET_VALUE));
		
		/* ++++++++++ v5.00.01 追加開始 ++++++++++ */
		// 引継先SYSIDの取得
		X31SDataBeanAccessArray hktgiSakiSvcList = bean[0].getDataBeanArray(KKW03901SFConst.HKTGI_SAKI_SVC_KEI_LIST);
		X31SDataBeanAccess hktgiSakiSvcInfo  = hktgiSakiSvcList.getDataBean(0);
		
		String hktgi_saki_sysid = hktgiSakiSvcInfo.sendMessageString(KKW03901SFConst.HKTGI_SAKI_SYSID_03, X31CWebConst.DATABEAN_GET_VALUE);
		/* ++++++++++ v5.00.01 追加完了 ++++++++++ */
		
		for(int i = 0; i < hktgi_moto_kiki_list_data_cnt; i++)
		{
			X31SDataBeanAccess subbean = hktgiMotoKikiList.getDataBean(i);
			
			boolean hktgi_moto_kiki_choice = subbean.sendMessageBoolean(KKW03901SFConst.HKTGI_MOTO_KIKI_CHOICE_02, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 引継元機器の選択チェックボックスが選択されている場合
			if(hktgi_moto_kiki_choice)
			{
				HashMap<String, Object> childMap = new HashMap<String, Object>();
				
				// 共通情報のマッピング
				childMap.put("func_code", func_code);
				
				// 引継元＿親契約識別コード → 機器引継登録マップ.親契約識別コード
				childMap.put("oya_kei_skbt_cd",
						subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_OYA_KEI_SKBT_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 引継元＿機器提供サービス契約番号 → 機器引継登録マップ.機器提供サービス契約番号
				childMap.put("kktk_svc_kei_no",
						subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KKTK_SVC_KEI_NO_02, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 引継先＿サービス契約番号 → 機器引継登録マップ.サービス契約番号
				childMap.put("svc_kei_no", hktgi_saki_svc_kei_no);
				
				/* ++++++++++ v5.00.01 追加開始 ++++++++++ */
				// 引継先＿ＳＹＳＩＤ
				childMap.put("hktgi_saki_sysid", hktgi_saki_sysid);
				/* ++++++++++ v5.00.01 追加完了 ++++++++++ */
				
				// 運用日 → 機器引継登録マップ.機器提供サービス契約引継発生年月日
				childMap.put("kktk_svc_kei_hkhasymd", bean[0].sendMessageString(KKW03901SFConst.OPE_DATE, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 運用日 → 機器引継登録マップ.予約適用年月日
				childMap.put("rsv_aply_ymd", bean[0].sendMessageString(KKW03901SFConst.OPE_DATE, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 異動区分 → 機器引継登録マップ.異動区分
				childMap.put("ido_div", hktgi_ido_div);
				
				// 2012.05.14 更新日付はサービス契約、機器提供サービス契約両方を渡す
				// 引継先＿更新年月日時分秒 → 機器引継登録マップ.更新年月日時分秒(更新前)(サービス契約)
				childMap.put("upd_dtm_bf_svc", hktgi_saki_upd_dtm);
				// 引継元＿更新年月日時分秒（機器提供サービス契約） → 機器引継登録マップ.更新年月日時分秒(更新前)(機器提供サービス契約)
				childMap.put("upd_dtm_bf_kktk",
						subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KK0341_UPD_DTM_02, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 2012.04.24 巻取りのため追加
				// ◇ 処理追加分
				
				// 引継元＿機器提供サービスコード → 機器引継登録マップ.機器提供サービスコード
				childMap.put("kktk_svc_cd",
						subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KKTK_SVC_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 運用日付 → 機器引継登録マップ.回復年月日
				childMap.put("kaihk_ymd",
						bean[0].sendMessageString(KKW03901SFConst.OPE_DATE, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 引継元＿返品機器番号 → 機器引継登録マップ.ＫＥＹ＿返品機器番号
				childMap.put("key_hmpin_kiki_no",
						subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_HMPIN_KIKI_NO_02, X31CWebConst.DATABEAN_GET_VALUE));
								
				// 運用日付 → 機器引継登録マップ.ＫＥＹ＿運用日付	
				childMap.put("key_unyo_ymd",
						bean[0].sendMessageString(KKW03901SFConst.OPE_DATE, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 引継元サービス契約ステータス → 機器引継登録マップ.引継元機器提供サービス契約ステータス
				childMap.put("kktk_svc_kei_stat_moto",
						subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_KEI_STAT_02, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 更新年月日時分秒（返品機器） → 機器引継登録マップ.更新年月日時分秒（返品機器）	
				childMap.put("hktgi_moto_hmpin_upd_dtm_bf",
						subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_HMPIN_UPD_DTM_BF_02, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 引継先サービス契約ステータス → 機器引継登録マップ.引継先サービス契約ステータス	kktk_svc_kei_stat_saki
				childMap.put("svc_kei_stat_saki", hktgi_saki_svc_kei_stat);
				
				// ◇ 宅内機器連携用追加分
				// 引継元＿選択＿サービス契約番号 → 機器引継登録マップ.引継元＿サービス契約番号
				childMap.put("svc_kei_no_moto", hktgi_moto_svc_kei_no);
				
				// 引継元＿型式 → 機器引継登録マップ.引継元＿宅内機器型式コード
				childMap.put("taknkiki_model_cd_moto", subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_MDL_02, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 引継元＿機器製造番号
				childMap.put("seizo_no_moto", subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SEIZO_NO_02, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 引継元＿宅内機器基本Ｔ更新日付
				childMap.put("btry_upd_dtm", subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIHONT_UPD_DTTM_02, X31CWebConst.DATABEAN_GET_VALUE));
				
				list.add(childMap);
			}
		}
		
		// 引継先＿接続機器一覧
		X31SDataBeanAccessArray hktgiSakiKikiList = bean[0].getDataBeanArray(KKW03901SFConst.HKTGI_SAKI_KIKI_LIST);
		// 引継先＿接続機器一覧＿有効データ件数
		int hktgi_saki_kiki_list_data_cnt =
				Integer.parseInt(bean[0].sendMessageString(KKW03901SFConst.HKTGI_SAKI_KIKI_LIST_DATA_CNT, X31CWebConst.DATABEAN_GET_VALUE));
		// 引継先機器一覧格納
		ArrayList<HashMap<String, Object>> list2 = new ArrayList<HashMap<String, Object>>();
		
		for(int i = 0; i < hktgi_saki_kiki_list_data_cnt; i++)
		{
			X31SDataBeanAccess subbean = hktgiSakiKikiList.getDataBean(i);
		
			HashMap<String, Object> childMap = new HashMap<String, Object>();
			
			if("".equals(subbean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_KKTK_SVC_KEI_NO_04, X31CWebConst.DATABEAN_GET_VALUE))
					|| subbean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_KKTK_SVC_KEI_NO_04, X31CWebConst.DATABEAN_GET_VALUE) == null)
			{
				continue;
			}
			else
			{
				
				// 引継先＿機器提供サービス契約番号 → 機器引継登録マップ.機器提供サービス契約番号
				childMap.put("kktk_svc_kei_no",
						subbean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_KKTK_SVC_KEI_NO_04, X31CWebConst.DATABEAN_GET_VALUE));
				// 運用日 → 機器引継登録マップ.予約適用年月日
				childMap.put("key_rsv_aply_ymd",
						bean[0].sendMessageString(KKW03901SFConst.OPE_DATE, X31CWebConst.DATABEAN_GET_VALUE));
				// 引継先＿機器提供サービス契約ステータス → 機器引継登録マップ.引継元機器提供サービス契約ステータス
				childMap.put("kktk_svc_kei_stat",
						subbean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_KIKI_KEI_STAT_04, X31CWebConst.DATABEAN_GET_VALUE));
				// 機器引継登録マップ..ＫＥＹ＿世代登録年月日時分秒
				childMap.put("key_gene_add_dtm", "");
				
				// 2012.06.05 add start
				// 引継先＿更新年月日時分秒 →  機器引継登録マップ.最終更新年月日時分秒
				childMap.put("last_upd_dtm", 
						subbean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_KIKI_UPD_DTM_04, X31CWebConst.DATABEAN_GET_VALUE));
				
				list2.add(childMap);
			}
		}

		// ++++++++++ v19.00.00 追加開始 ++++++++++
		// 引継先＿請求契約番号→機器引継登録マップ.引継先請求契約番号
		parentMap.put("hktgi_saki_seiky_kei_no",
				hktgiSakiSvcKeiSubBean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_SEIKY_KEI_NO_03, X31CWebConst.DATABEAN_GET_VALUE));
		// ++++++++++ v19.00.00 追加終了 ++++++++++

		// 引継元リスト
		parentMap.put("kiki_hktgi_select_list", list);
		// 引継先リスト
		parentMap.put("kiki_hktgi_select_saki_list", list2);
		
		outputMap.put("KKSV041905CC", parentMap);
		
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean 機器引継サービスフォームBean
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return HashMap
	 */
	public HashMap setKKSV041906SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}
		
		// 顧客契約引継リスト
		X31SDataBeanAccessArray custKeiHktgiList = bean[0].getDataBeanArray(KKW03901SFConst.HKTGI_CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess custKeiHktgiSubBean = custKeiHktgiList.getDataBean(0);
		
		// 引継先＿サービス契約一覧
		X31SDataBeanAccessArray hktgiSakiSvcKeiList = bean[0].getDataBeanArray(KKW03901SFConst.HKTGI_SAKI_SVC_KEI_LIST);
		X31SDataBeanAccess hktgiSakiSvcKeiBean = hktgiSakiSvcKeiList.getDataBean(0);
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// 進捗登録マップ.申込明細番号
		parentMap.put("mskm_dtl_no", "");
		// 進捗登録マップ.請求契約番号
		parentMap.put("seiky_kei_no", "");
		// 進捗登録マップ.請求方法番号(口座)
		parentMap.put("seiky_way_no_koza", "");
		// 進捗登録マップ.請求方法番号(クレジットカード)
		parentMap.put("seiky_way_no_crecard", "");
		
		// 引継先＿サービス契約番号 → 進捗登録マップ.サービス契約番号
		parentMap.put("svc_kei_no", hktgiSakiSvcKeiBean.sendMessageString("引継先＿サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 進捗登録マップ.サービス契約内訳番号
		parentMap.put("svc_kei_ucwk_no", "");
		// 進捗登録マップ.サービス契約回線内訳番号
		parentMap.put("svc_kei_kaisen_ucwk_no", "");
		// 進捗登録マップ.機器提供サービス契約番号
		parentMap.put("kktk_svc_kei_no", "");
		// 進捗登録マップ.オプションサービス契約番号
		parentMap.put("op_svc_kei_no", "");
		// 進捗登録マップ.請求オプションサービス契約番号
		parentMap.put("seiopsvc_kei_no", "");
		// 進捗登録マップ.サブオプションサービス契約番号
		parentMap.put("sbop_svc_kei_no", "");
		// 進捗登録マップ.割引サービス契約番号
		parentMap.put("wrib_svc_kei_no", "");
		
		// 異動区分 → 進捗登録マップ.異動区分
		parentMap.put("ido_div", custKeiHktgiSubBean.sendMessageString("異動区分", X31CWebConst.DATABEAN_GET_VALUE));
		// システム年月日時分秒 → 進捗登録マップ.異動年月日時分秒
		parentMap.put("ido_dtm", JCCWebCommon.getSysDateTimeStamp());
		// 進捗登録マップ.進捗ステータス("B811":接続機器引継完了)
		parentMap.put("prg_stat", "B811");
		
		// 進捗登録マップ.進捗メモ
		parentMap.put("prg_memo", "");
		// 進捗登録マップ.進捗特記事項1
		/* ++++++++++ v4.00.00 修正開始 ++++++++++ */
		if ("00029".equals(custKeiHktgiSubBean.sendMessageString("異動区分", X31CWebConst.DATABEAN_GET_VALUE))){
			parentMap.put("prg_tkjk_1", "接続機器引継[引継元お客様ID：" + bean[0].sendMessageString("引継元＿選択＿サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE) + "]");
		} else {
			parentMap.put("prg_tkjk_1", "");
		}
		/* ++++++++++ v4.00.00 修正終了 ++++++++++ */
		// 進捗登録マップ.進捗特記事項2
		parentMap.put("prg_tkjk_2", "");
		
		ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
		Integer count = (Integer)custKeiHktgiSubBean.sendMessage("異動理由コード", X31CWebConst.DATABEAN_GET_COUNT);
		for(int i = 0; i < count.intValue(); i++)
		{
			HashMap<String, Object> childMap = new HashMap<String, Object>();
			
			// 進捗登録マップ.異動理由コード
			childMap.put("ido_rsn_cd", custKeiHktgiSubBean.sendMessageString("異動理由コード", X31CWebConst.DATABEAN_GET_VALUE, i));
			// 進捗登録マップ.異動理由メモ
			childMap.put("ido_rsn_memo", "");
			
			list.add(childMap);
		}
		
		parentMap.put("EKK1091D010CBSMsg1List", list);
		outputMap.put("KKSV041906SC", parentMap);
		
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean 機器引継サービスフォームBean
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return HashMap
	 */
	public HashMap setKKSV041907SC(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("mskm_dtl_no", "");
		// 申込明細照査・後続業務依頼マップ.連絡事項登録年月日時分秒
		parentMap.put("rrk_jiko_add_dtm", "");
		
		// 運用日 → 申込明細照査・後続業務依頼マップ.後続業務依頼年月日
		parentMap.put("kzkwrk_reqymd", bean[0].sendMessageString("運用日", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 申込明細照査・後続業務依頼マップ.更新年月日時分秒(更新前)
		parentMap.put("upd_dtm_bf", "");
		// 申込明細照査・後続業務依頼マップ.異動区分
		parentMap.put("ido_div", "");
		// 申込明細照査・後続業務依頼マップ.電話番号
		parentMap.put("telno", "");
		// 申込明細照査・後続業務依頼マップ.代表電話番号
		parentMap.put("daihyo_telno", "");
		// 申込明細照査・後続業務依頼マップ.電話番号使用場所番号
		parentMap.put("telno_use_place_no", "");
		// 申込明細照査・後続業務依頼マップ.SIPユーザーID消去済フラグ
		parentMap.put("sip_user_id_del_zumi_flg", "");
		// 申込明細照査・後続業務依頼マップ.電話BASホストID
		parentMap.put("tel_bas_host_id", "");
		// 申込明細照査・後続業務依頼マップ.050オプション電話番号
		parentMap.put("n_050_op_telno", "");
		// 申込明細照査・後続業務依頼マップ.機器認証ID
		parentMap.put("kiki_ninsho_id", "");
		// 申込明細照査・後続業務依頼マップ.機器認証IDパスワード
		parentMap.put("kiki_ninsho_id_pwd", "");
		
		outputMap.put("KKSV041907SC", parentMap);
		
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean 機器引継サービスフォームBean
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return HashMap
	 */
	public HashMap setKKSV041908SC(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);
		
		String hktgi_moto_select_svc_kei_no = bean[0].sendMessageString("引継元＿選択＿サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE);
		
		// 引継元情報サービス契約一覧照会マップ.ＫＥＹ＿SYSID
		parentMap.put("key_sysid", "");
		
		// 引継元＿選択＿サービス契約番号 → 引継元情報サービス契約一覧照会マップ.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", hktgi_moto_select_svc_kei_no);
		
		outputMap.put("KKSV041908SC", parentMap);
		
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean 機器引継サービスフォームBean
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return HashMap
	 */
	public HashMap setKKSV041909SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}
		
		// 顧客契約引継リスト
		X31SDataBeanAccessArray custKeiHktgiList = bean[0].getDataBeanArray(KKW03901SFConst.HKTGI_CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess custKeiHktgiSubBean = custKeiHktgiList.getDataBean(0);
		
		// 異動区分
		String idoDiv = custKeiHktgiSubBean.sendMessageString("異動区分", X31CWebConst.DATABEAN_GET_VALUE);
		
		// 引継先＿サービス契約一覧
		X31SDataBeanAccessArray hktgiSakiSvcKeiList = bean[0].getDataBeanArray(KKW03901SFConst.HKTGI_SAKI_SVC_KEI_LIST);
		X31SDataBeanAccess hktgiSakiSvcKeiBean = hktgiSakiSvcKeiList.getDataBean(0);
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
			
		// 引継先＿サービス契約番号 → 進捗一覧照会（異動区分）マップ.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", hktgiSakiSvcKeiBean.sendMessageString("引継先＿サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 異動区分 → 進捗一覧照会（異動区分）マップ.ＫＥＹ＿異動区分
		parentMap.put("key_ido_div", idoDiv);
		// "2"（異動年月日時分秒でソート） → 進捗一覧照会（異動区分）マップ.ＫＥＹ＿ソート項目
		parentMap.put("key_sort_item_no", "2");
			
		outputMap.put("KKSV041909SC", parentMap);
		
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean 機器引継サービスフォームBean
	 * @param outputMap
	 * @return HashMap
	 */
	public HashMap setKKSV0419WORK01(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}
		
		ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 引継元＿接続機器一覧
		X31SDataBeanAccessArray hktgiMotoKikiList = bean[0].getDataBeanArray(KKW03901SFConst.HKTGI_MOTO_KIKI_LIST);
		
		// 引継元＿接続機器一覧＿有効データ件数
		int hktgi_moto_kiki_list_data_cnt =
				Integer.parseInt(bean[0].sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_LIST_DATA_CNT, X31CWebConst.DATABEAN_GET_VALUE));
		
		for(int i = 0; i < hktgi_moto_kiki_list_data_cnt; i++)
		{
			X31SDataBeanAccess subbean = hktgiMotoKikiList.getDataBean(i);
			
			boolean hktgi_moto_kiki_choice = subbean.sendMessageBoolean(KKW03901SFConst.HKTGI_MOTO_KIKI_CHOICE_02, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 引継元機器の選択チェックボックスが選択されている場合
			if(hktgi_moto_kiki_choice)
			{
				HashMap<String, Object> childMap = new HashMap<String, Object>();
				
				// 引継元＿親契約識別コード → 機器引継登録サービス作業項目マップ01.親契約識別コード
				childMap.put("oya_kei_skbt_cd",
						subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_OYA_KEI_SKBT_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 引継元＿機器提供サービスコード → 機器引継登録サービス作業項目マップ01.機器提供サービスコード
				childMap.put("kktk_svc_cd",
						subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KKTK_SVC_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 引継元＿機器契約区分 → 機器引継登録サービス作業項目マップ01.機器提供種別コード
				childMap.put("kktk_sbt_cd",
						subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_KEI_DIV_02, X31CWebConst.DATABEAN_GET_VALUE));
				
				list.add(childMap);
			}
		}
		
		parentMap.put("kiki_hktgi_select_list", list);
		outputMap.put("KKSV0419WORK01", parentMap);
		
		return outputMap;
	}

	/**
	 * 下りマッピング
	 * @param bean 機器引継サービスフォームBean
	 * @param outputMap
	 * @return X31SDataBeanAccess[]
	 */
	public X31SDataBeanAccess[] getKKSV041901SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV041901SC"))
		{
			parentMap = (HashMap)outputMap.get("KKSV041901SC");
		}
		
		// 引継先＿サービス契約一覧
		X31SDataBeanAccessArray hktgiSakiSvcKeiList = bean[0].getDataBeanArray(KKW03901SFConst.HKTGI_SAKI_SVC_KEI_LIST);
		X31SDataBeanAccess subbean = hktgiSakiSvcKeiList.getDataBean(0);
		
		if(parentMap.containsKey("EKK0791A010CBSMsg1List"))
		{
			ArrayList childList = (ArrayList)parentMap.get("EKK0791A010CBSMsg1List");
			
			if(0 != childList.size())
			{
				HashMap childMap = (HashMap)childList.get(0);
				
				// 引継先＿料金コースＰＯＮ条件コード ← 料金コース一意照会マップ..料金コースPON条件コード
				subbean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_PCRS_PON_JOKEN_CD_03, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pcrs_pon_joken_cd"));
				
				// 引継先＿ＴＶコースグループコード ← 料金コース一意照会マップ..TVコースグループコード
				subbean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_TV_COURSE_GRP_CD_03, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("tv_course_grp_cd"));
				
			}
		}
		
		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean 機器引継サービスフォームBean
	 * @param outputMap
	 * @return X31SDataBeanAccess[]
	 */
	public X31SDataBeanAccess[] getKKSV041902SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV041902SC"))
		{
			parentMap = (HashMap)outputMap.get("KKSV041902SC");
		}
		
		// 引継元＿サービス契約一覧から選択されたサービス契約のBeanを取得
		X31SDataBeanAccessArray hktgiMotoSvcKeiList = bean[0].getDataBeanArray(KKW03901SFConst.HKTGI_MOTO_SVC_KEI_LIST);
		String index = bean[0].sendMessageString(KKW03901SFConst.HKTGI_MOTO_SELECT_SVC_KEI_INDEX, X31CWebConst.DATABEAN_GET_VALUE);
		X31SDataBeanAccess subbean = hktgiMotoSvcKeiList.getDataBean(Integer.parseInt(index));
		
		if(parentMap.containsKey("EKK0251B003CBSMsg1List"))
		{
			ArrayList childList = (ArrayList)parentMap.get("EKK0251B003CBSMsg1List");
			
			if(0 != childList.size())
			{
				HashMap childMap = (HashMap)childList.get(0);
				
				// 引継元＿ＰＯＮ種別コード ← 引継元サービス契約回線内訳一覧照会（現在利用中）マップ..PON種別コード
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_PON_SBT_CD_01, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pon_sbt_cd"));
			}
		}
		
		return bean;
	}

}
