/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0417_KKSV0417OPDBMapper
*	ソースファイル名：KKSV0417_KKSV0417OPDBMapper.java
*	作成者			：Fujitsu
*	日付			：2011年11月17日
*＜機能概要＞
*	BP（機器引継検索OP）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/11/17	Fujitsu		新規作成
*
**********************************************************************/
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;

/**
 * DataBean-BPマッピングをする。
 * @author 909488
 */
public class KKSV0417_KKSV0417OPDBMapper
{
	
	/**
	 * コンストラクタ
	 */
	public KKSV0417_KKSV0417OPDBMapper()
	{
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean 機器引継サービスフォームBean
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return HashMap
	 */
	public HashMap setKKSV041701SC(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", "");
		
		// 運用日 → サービス契約一意照会マップ.ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString("運用日", X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV041701SC", parentMap);
		
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean 機器引継サービスフォームBean
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return HashMap
	 */
	public HashMap setKKSV041702SC(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", "");
		
		// 運用日 → お客様一意照会マップ.ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString("運用日", X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV041702SC", parentMap);
		
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean 機器引継サービスフォームBean
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return HashMap
	 */
	public HashMap setKKSV041703SC(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 input_sysid = bean[0].sendMessageString("入力＿サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE);
		
		// 入力＿サービス契約番号の値が""(空文字)の場合
		if("".equals(input_sysid))
		{
			// 入力＿ＳＹＳＩＤ → 引継元情報サービス契約一覧照会マップ.ＫＥＹ＿SYSID
			parentMap.put("key_sysid", bean[0].sendMessageString("入力＿ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		}
		
		// 入力＿サービス契約番号 → 引継元情報サービス契約一覧照会マップ.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", input_sysid);
		
		outputMap.put("KKSV041703SC", parentMap);
		
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean 機器引継サービスフォームBean
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return HashMap
	 */
	public HashMap setKKSV041704SC(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_tokusoku_no", "");
		
		// 運用日 → 督促一意照会マップ.ＫＥＹ＿督促管理年月日
		parentMap.put("key_tokusoku_kanri_ymd", bean[0].sendMessageString("運用日", X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV041704SC", parentMap);
		
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean 機器引継サービスフォームBean
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return HashMap
	 */
	public HashMap setKKSV041705SC(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", "");
		
		outputMap.put("KKSV041705SC", parentMap);
		
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean 機器引継サービスフォームBean
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return HashMap
	 */
	public HashMap setKKSV041706CC(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_gene_add_dtm", "");
		
		// 運用日 → 機器提供サービス契約一意照会マップ.ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString("運用日", X31CWebConst.DATABEAN_GET_VALUE));
		
		// ↓↓↓巻取１対応↓↓↓
		// 固定_異動予約状態コード → 機器提供サービス契約一意照会マップ.ＫＥＹ＿異動予約状態コード
		parentMap.put("key_ido_rsv_stat_cd", String.valueOf("03,00"));
		
		// 固定_運用日付 → 機器提供サービス契約一意照会マップ.運用日付
		parentMap.put("unyo_ymd", bean[0].sendMessageString("運用日", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 固定_業務パラメータＩＤ → 機器提供サービス契約一意照会マップ.ＫＥＹ＿業務パラメータＩＤ
		parentMap.put("key_work_param_id1", "KK_HKTGI_KH_GRP1");

		// 固定_業務パラメータＩＤ → 機器提供サービス契約一意照会マップ.ＫＥＹ＿業務パラメータＩＤ
		parentMap.put("key_work_param_id2", "KK_HKTGI_KH_GRP2");
		// ↑↑↑巻取１対応↑↑↑
		
		outputMap.put("KKSV041706CC", parentMap);
		
		return outputMap;
	}

	/**
	 * 下りマッピング
	 * @param bean 機器引継サービスフォームBean
	 * @param outputMap
	 * @return X31SDataBeanAccess[]
	 */
	public X31SDataBeanAccess[] getKKSV041701SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV041701SC"))
		{
			parentMap = (HashMap)outputMap.get("KKSV041701SC");
		}
		
		if(parentMap.containsKey("EKK0081A010CBSMsg1List"))
		{
			ArrayList childList = (ArrayList)parentMap.get("EKK0081A010CBSMsg1List");
			
			if(0 != childList.size())
			{
				HashMap childMap = (HashMap)childList.get(0);
				
				// 引継元＿ＳＹＳＩＤ ← サービス契約一意照会マップ..SYSID
				bean[0].sendMessageString(KKW03901SFConst.HKTGI_MOTO_SYSID, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sysid"));
				
				// 入力＿ＳＹＳＩＤ ← サービス契約一意照会マップ..SYSID
				bean[0].sendMessageString(KKW03901SFConst.INPUT_SYSID, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sysid"));
				
				// 引継元＿契約者名 ← サービス契約一意照会マップ..SYSID名称
				bean[0].sendMessageString(KKW03901SFConst.HKTGI_MOTO_CUST_NM, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sysid_nm"));
			}
		}
		
		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean 機器引継サービスフォームBean
	 * @param outputMap
	 * @return X31SDataBeanAccess[]
	 */
	public X31SDataBeanAccess[] getKKSV041702SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV041702SC"))
		{
			parentMap = (HashMap)outputMap.get("KKSV041702SC");
		}
		
		if(parentMap.containsKey("ECK0011A010CBSMsg1List"))
		{
			ArrayList childList = (ArrayList)parentMap.get("ECK0011A010CBSMsg1List");
			
			if(0 != childList.size())
			{
				HashMap childMap = (HashMap)childList.get(0);
				
				// 引継元＿ＳＹＳＩＤ ← お客様一意照会マップ..SYSID
				bean[0].sendMessageString(KKW03901SFConst.HKTGI_MOTO_SYSID, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sysid"));
				
				// 引継元＿契約者名 ← お客様一意照会マップ..お客様名
				bean[0].sendMessageString(KKW03901SFConst.HKTGI_MOTO_CUST_NM, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cust_nm"));
			}
		}
		
		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean 機器引継サービスフォームBean
	 * @param outputMap
	 * @return X31SDataBeanAccess[]
	 */
	public X31SDataBeanAccess[] getKKSV041703SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV041703SC"))
		{
			parentMap = (HashMap)outputMap.get("KKSV041703SC");
		}
		
		X31SDataBeanAccessArray hktgiMotoSvcKeiList = bean[0].getDataBeanArray(KKW03901SFConst.HKTGI_MOTO_SVC_KEI_LIST);
		
		// 引継元＿サービス契約一覧のクリア
		hktgiMotoSvcKeiList.clearArray();
		
		if(parentMap.containsKey("EKK0081B006CBSMsg1List"))
		{
			ArrayList childList = (ArrayList)parentMap.get("EKK0081B006CBSMsg1List");
			
			// 引継元情報サービス契約一覧照会明細が１件の場合
			if(childList.size() == 1)
			{
				HashMap childMap = (HashMap)childList.get(0);
				
				// 引継元＿選択＿サービス契約番号 ← 引継元情報サービス契約一覧照会マップ..サービス契約番号
				bean[0].sendMessageString(KKW03901SFConst.HKTGI_MOTO_SELECT_SVC_KEI_NO, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_no"));
			}
			
			for(int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = hktgiMotoSvcKeiList.addDataBean();
				HashMap childMap = (HashMap)childList.get(i);
				
				// 引継元＿サービス契約番号 ← 引継元情報サービス契約一覧照会マップ..サービス契約番号
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SVC_KEI_NO_01, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_no"));
				
				// 引継元＿契約状態 ← 引継元情報サービス契約一覧照会マップ..サービス契約ステータス
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SVC_KEI_STAT_01, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_stat"));
				
				// 引継元＿契約状態名 ← 引継元情報サービス契約一覧照会マップ..サービス契約ステータス名称
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SVC_KEI_STAT_NM_01, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_stat_nm"));
				
				// 引継元＿サービスコード ← 引継元情報サービス契約一覧照会マップ..サービスコード
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SVC_CD_01, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_cd"));
				
				// 引継元＿契約サービス ← 引継元情報サービス契約一覧照会マップ..料金グループコード
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KEI_SVC_01, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_grp_cd"));
				
				// 引継元＿契約サービス名 ← 引継元情報サービス契約一覧照会マップ..料金グループコード名称
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KEI_SVC_NM_01, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_grp_cd_nm"));
				
				// 引継元＿料金コース ← 引継元情報サービス契約一覧照会マップ..料金コースコード
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_PCRS_CD_01, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pcrs_cd"));
				
				// 引継元＿料金コース名 ← 引継元情報サービス契約一覧照会マップ..料金コースコード名称
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_PCRS_CD_NM_01, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pcrs_cd_nm"));
				
				// 引継元＿請求契約番号 ← 引継元情報サービス契約一覧照会マップ..請求契約番号
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SEIKY_KEI_NO_01, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_kei_no"));
				
				// 引継元＿契約＿スタイル
				if(i % 2 == 0)
				{
					subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SVC_STYLE_01, X31CWebConst.DATABEAN_SET_VALUE, "odd");
				}
				else
				{
					subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SVC_STYLE_01, X31CWebConst.DATABEAN_SET_VALUE, "even");
				}
			}
		}
		
		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean 機器引継サービスフォームBean
	 * @param outputMap
	 * @return X31SDataBeanAccess[]
	 */
	public X31SDataBeanAccess[] getKKSV041704SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV041704SC"))
		{
			parentMap = (HashMap)outputMap.get("KKSV041704SC");
		}
		
		X31SDataBeanAccessArray hktgiMotoSvcKeiList = bean[0].getDataBeanArray(KKW03901SFConst.HKTGI_MOTO_SVC_KEI_LIST);
		
		if(parentMap.containsKey("ECH0231A010CBSMsg1List"))
		{
			ArrayList childList = (ArrayList)parentMap.get("ECH0231A010CBSMsg1List");
			
			if(0 != childList.size())
			{
				X31SDataBeanAccess subbean = hktgiMotoSvcKeiList.getDataBean(0);
				HashMap childMap = (HashMap)childList.get(0);
				
				// 引継元＿督促ステータス ← 督促一意照会マップ..督促ステータス
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_TOKUSOKU_STAT_01, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("tokusoku_stat"));
			}
		}
		
		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean 機器引継サービスフォームBean
	 * @param outputMap
	 * @return X31SDataBeanAccess[]
	 */
	public X31SDataBeanAccess[] getKKSV041705SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV041705SC"))
		{
			parentMap = (HashMap)outputMap.get("KKSV041705SC");
		}
		
		// 引継元＿接続機器一覧
		X31SDataBeanAccessArray hktgiMotoKikiList = bean[0].getDataBeanArray(KKW03901SFConst.HKTGI_MOTO_KIKI_LIST);
		
		// 引継元＿接続機器一覧のクリア
		hktgiMotoKikiList.clearArray();
		
		
//		// 引継元＿サービス契約一覧が１件のみの場合
//		X31SDataBeanAccessArray hktgiMotoSvcKeiList = bean[0].getDataBeanArray(KKW03901SFConst.HKTGI_MOTO_SVC_KEI_LIST);
//		
//		if(hktgiMotoSvcKeiList.getCount() == 1)
//		{
//			X31SDataBeanAccess hktgiMotoSvcKeiBean = hktgiMotoSvcKeiList.getDataBean(0);
//			
//			// 引継先＿サービス契約一覧のBeanを取得
//			X31SDataBeanAccess sakiSvcKeiSubbean = bean[0].getDataBeanArray(KKW03901SFConst.HKTGI_SAKI_SVC_KEI_LIST).getDataBean(0);
//			
//			String hktgi_moto_svc_cd = hktgiMotoSvcKeiBean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SVC_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
//			String hktgi_saki_svc_cd = sakiSvcKeiSubbean.sendMessageString(KKW03901SFConst.HKTGI_SAKI_SVC_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
//			
//			// ■ 引継不可の機器は接続機器一覧に表示しない。（DataBean項目にマッピングをしない）
//			// 【引継先の契約サービス】引継元のサービスコードと引継先のサービスコードが、不一致の場合
//			if(!hktgi_saki_svc_cd.equals(hktgi_moto_svc_cd))
//			{
//				return bean;
//			}
//		}
		
		if(parentMap.containsKey("EKK0341B012CBSMsg1List"))
		{
			// 機器提供サービス契約一覧照会(接続機器情報)明細
			ArrayList childList = (ArrayList)parentMap.get("EKK0341B012CBSMsg1List");
			
			for(int i = 0; i < childList.size(); i++)
			{
				// 機器提供サービス契約一覧照会(接続機器情報)マップ
				HashMap childMap = (HashMap)childList.get(i);
				
//				// ■ 引継不可の機器は接続機器一覧に表示しない。（DataBean項目にマッピングをしない）
//				
//				// 【返却済】接続元の返品倉入年月日に、日付が設定されている場合
//				String hmpin_kuraire_ymd = (String)childMap.get("hmpin_kuraire_ymd");
//				if(hmpin_kuraire_ymd != null && !"".equals(hmpin_kuraire_ymd))
//				{
//					continue;
//				}
//				
//				// 【機器変更中】接続元の機器提供サービス契約ステータスが、"110":契約変更中の場合
//				String kktk_svc_kei_stat = (String)childMap.get("kktk_svc_kei_stat");
//				if("110".equals(kktk_svc_kei_stat))
//				{
//					continue;
//				}
//				
//				// 【修理中】物流保全テーブルの該当レコードにレコードがあり、状態が完了していない場合
//				
//				
//				// 【未出荷】接続元の配送ステータスが、"001:受付済"、または、"002:指示済"の場合
//				String haiso_stat = (String)childMap.get("haiso_stat");
//				if("001".equals(haiso_stat) || "002".equals(haiso_stat))
//				{
//					continue;
//				}
//				
//				// 【接続機器状態】接続元の機器提供サービス契約ステータスが、"920":キャンセル済の場合
//				if("920".equals(kktk_svc_kei_stat))
//				{
//					continue;
//				}
//				
//				// 【引継対象外機器（修理交換グループ）】機器引継可能な修理交換グループでない接続機器の場合
//				
//				
//				// 【引継対象外機器（マンションタイプの通信機器）】
//				// マンションタイプの場合に個別に指定される、引継可能な通信機器で無い場合
//				// 但し、ＯＮＵの場合は、可否のチェックはせず、引継可能とする
//				
				
				
				X31SDataBeanAccess subbean = hktgiMotoKikiList.addDataBean();
				
				// 引継元＿状態 ← 機器提供サービス契約一覧照会(接続機器情報)マップ..機器提供サービス契約ステータス
//				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_KEI_STAT_02, X31CWebConst.DATABEAN_SET_VALUE, kktk_svc_kei_stat);
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_KEI_STAT_02, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kktk_svc_kei_stat"));
				
				// 引継元＿状態名 ← 機器提供サービス契約一覧照会(接続機器情報)マップ..機器提供サービス契約ステータス名
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_KEI_STAT_NM_02, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kktk_svc_kei_stat_nm"));
				
				// 引継元＿機器契約区分 ← 機器提供サービス契約一覧照会(接続機器情報)マップ..機器提供種別コード
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_KEI_DIV_02, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kktk_sbt_cd"));
				
//				String kktk_sbt_cd = (String)childMap.get("kktk_sbt_cd");
//				String kktk_svc_kei_hkhasymd = (String)childMap.get("kktk_svc_kei_hkhasymd");
//				
//				// 機器提供種別コードが"03"(持込)の場合、かつ、
//				// 機器提供サービス契約引継発生年月日の値が""(空文字)でない場合、
//				if("03".equals(kktk_sbt_cd) && (!"".equals(kktk_svc_kei_hkhasymd)))
//				{
//					// 引継元＿機器契約区分名に、"引継"を設定する。
//					subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_KEI_DIV_NM_02, X31CWebConst.DATABEAN_SET_VALUE, "引継");
//				}
//				else
//				{
//					// 引継元＿機器契約区分名 ← 機器提供サービス契約一覧照会(接続機器情報)マップ..機器提供種別コード名
//					subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_KEI_DIV_NM_02, 
//							X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kktk_sbt_cd_nm"));
//				}
				
				// 引継元＿契約引継発生年月日 ← 機器提供サービス契約一覧照会(接続機器情報)マップ..機器提供サービス契約引継発生年月日
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_HKHASYMD_02, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kktk_svc_kei_hkhasymd"));
				
				// 引継元＿機器契約区分名 ← 機器提供サービス契約一覧照会(接続機器情報)マップ..機器提供種別コード名
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_KEI_DIV_NM_02, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kktk_sbt_cd_nm"));
				
				// 引継元＿販売種別 ← 機器提供サービス契約一覧照会(接続機器情報)マップ..販売種別コード
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_HAMBAI_SBT_CD_02, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hambai_sbt_cd"));
				
				// 引継元＿販売種別名 ← 機器提供サービス契約一覧照会(接続機器情報)マップ..販売種別コード名
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_HAMBAI_SBT_CD_NM_02, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hambai_sbt_cd_nm"));
				
				// 引継元＿製造番号 ← 機器提供サービス契約一覧照会(接続機器情報)マップ..機器製造番号
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SEIZO_NO_02, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kiki_seizo_no"));
				
				// 引継元＿型式 ← 機器提供サービス契約一覧照会(接続機器情報)マップ..宅内機器型式コード
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_MDL_02, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("taknkiki_model_cd"));
				
				// 引継元＿契約日 ← 機器提供サービス契約一覧照会(接続機器情報)マップ..サービス課金開始年月日
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KEI_YMD_02, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_chrg_staymd"));
				
				// 引継元＿解約日 ← 機器提供サービス契約一覧照会(接続機器情報)マップ..サービス解約年月日
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_DSL_YMD_02, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_dsl_ymd"));
				
// SUB障害対応 最終更新年月日を取得するため不要
//				// 引継元＿更新年月日時分秒（機器提供サービス契約） ← 機器提供サービス契約一覧照会(接続機器情報)マップ..更新年月日時分秒
//				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KK0341_UPD_DTM_02, 
//						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kk0341_upd_dtm"));
				
//				// 引継元＿返却日 ← 機器提供サービス契約一覧照会(接続機器情報)マップ..返品倉入年月日
//				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_RTN_YMD_02, X31CWebConst.DATABEAN_SET_VALUE, hmpin_kuraire_ymd);
//				
//				// 引継元＿機器契約区分 ← 機器提供サービス契約一覧照会(接続機器情報)マップ..配送ステータス
//				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_SYUKKA_DIV_02, haiso_stat);
				
				// 引継元＿返却日 ← 機器提供サービス契約一覧照会(接続機器情報)マップ..返品倉入年月日
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_RTN_YMD_02, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hmpin_kuraire_ymd"));
				
				// 引継元＿機器契約区分 ← 機器提供サービス契約一覧照会(接続機器情報)マップ..配送ステータス
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_SYUKKA_DIV_02, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("haiso_stat"));
				
				// 引継元＿機器契約区分名 ← 機器提供サービス契約一覧照会(接続機器情報)マップ..配送ステータス名
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_SYUKKA_DIV_NM_02, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("haiso_stat_nm"));
				
				// 2012.04.14 巻取１対応のため追加
				// 引継元＿物流保全番号 ← 機器提供サービス契約一覧照会(接続機器情報)マップ..物流保全番号
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_BTRYHOZN_NO_02, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("btryhozn_no"));
				
				// 引継元＿返品機器番号 ← 機器提供サービス契約一覧照会(接続機器情報)マップ..返品機器番号
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_HMPIN_KIKI_NO_02, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hmpin_kiki_no"));
				// 2012.04.14 巻取１対応のため追加
				
				
				// 機器提供サービス契約一意照会マップの下りマッピング
				getKKSV041706CC(subbean, outputMap, i);
				
//				// 引継元＿機器＿スタイル
//				if(i % 2 == 0)
//				{
//					subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_STYLE_02, X31CWebConst.DATABEAN_SET_VALUE, "odd");
//				}
//				else
//				{
//					subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIKI_STYLE_02, X31CWebConst.DATABEAN_SET_VALUE, "even");
//				}
			}
		}
		
		return bean;
	}

	/**
	 * 下りマッピング
	 * @param subbean 引継元_接続機器のsubean
	 * @param outputMap
	 * @param index
	 */
	private void getKKSV041706CC(X31SDataBeanAccess subbean, HashMap outputMap, int index)
	{
		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV041706CC"))
		{
			parentMap = (HashMap)outputMap.get("KKSV041706CC");
		}
		
		if(parentMap.containsKey("EKK0341A010CBSMsg1List"))
		{
			ArrayList childList = (ArrayList)parentMap.get("EKK0341A010CBSMsg1List");
			
			if(index < childList.size())
			{
				HashMap childMap = (HashMap)childList.get(index);
				
				// 引継元＿機器提供サービス契約番号 ← 機器提供サービス契約一意照会マップ..機器提供サービス契約番号
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KKTK_SVC_KEI_NO_02, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kktk_svc_kei_no"));
				
				// 引継元＿機器提供サービスコード ← 機器提供サービス契約一意照会マップ..機器提供サービスコード
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KKTK_SVC_CD_02, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kktk_svc_cd"));
				
				// 引継元＿親契約識別コード ← 機器提供サービス契約一意照会マップ..親契約識別コード
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_OYA_KEI_SKBT_CD_02, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("oya_kei_skbt_cd"));
				
				// 2012.04.26 追加
				// 引継元＿更新年月日時分秒（機器提供サービス契約） ← 機器提供サービス契約一覧照会(接続機器情報)マップ..更新年月日時分秒
				subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KK0341_UPD_DTM_02, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("last_upd_dtm"));
				
				// ↓↓↓2012.04.21 巻取り1で追加↓↓↓
				/**
				 * 宅内機器型式一意照会から取得
				 * */
				if(parentMap.containsKey("EZM0411A010CBSMsg1List"))
				{
					ArrayList childList_EZM0411A010 = (ArrayList)parentMap.get("EZM0411A010CBSMsg1List");
					
					// ＫＥＹ＿宅内機器型式コードの取得
					String taknkiki_model_cd_key = subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_MDL_02, X31CWebConst.DATABEAN_GET_VALUE);
					
					for ( int i=0; i < childList_EZM0411A010.size(); i++)
					{
						// １件取得
						HashMap childMap_EZM0411A010 = (HashMap)childList_EZM0411A010.get(i);
						
						// 一覧_宅内機器型式コードの取得
						String taknkiki_model_cd_target = (String)childMap_EZM0411A010.get("taknkiki_model_cd");
						
						// 一致した場合のみ値の設定
						if(taknkiki_model_cd_target.equals(taknkiki_model_cd_key))
						{
							
//							// 引継元＿商品 ← 機器提供サービス契約一意照会マップ..宅内機器型式コード
//							subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_GDS_02,
//									X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("taknkiki_model_cd"));
							
							// 引継元＿商品名 ← 機器提供サービス契約一意照会マップ..宅内機器型式名
							subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_GDS_NM_02,
									X31CWebConst.DATABEAN_SET_VALUE, (String)childMap_EZM0411A010.get("taknkiki_model_nm"));
							
							// 引継元＿修理交換グループ種別コード ← 機器提供サービス契約一意照会マップ..修理交換グループ種別コード
							subbean.sendMessageString(KKW03901SFConst.HKTGI_SHURI_KOKAN_GRP_SBT_CD_02,
									X31CWebConst.DATABEAN_SET_VALUE, (String)childMap_EZM0411A010.get("shuri_kokan_grp_sbt_cd"));
							
							// 引継元＿ＶＯＮＵＢＳパススルー可否 ← 機器提供サービス契約一意照会マップ..ＶＯＮＵＢＳパススルー可否
							subbean.sendMessageString(KKW03901SFConst.HKTGI_VONU_BSPT_KH_02,
									X31CWebConst.DATABEAN_SET_VALUE, (String)childMap_EZM0411A010.get("vonu_bspt_kh"));
						}
					}
				}
				
				/**
				 * 返品機器一意照会から取得
				 * */
				if(parentMap.containsKey("EDK0301A010CBSMsg1List"))
				{
					ArrayList childList_EDK0301A010 = (ArrayList)parentMap.get("EDK0301A010CBSMsg1List");
					
					// ＫＥＹ＿返品機器番号の取得
					String hmpin_kiki_no_key = subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_HMPIN_KIKI_NO_02, X31CWebConst.DATABEAN_GET_VALUE);
				
					for ( int i=0; i < childList_EDK0301A010.size(); i++)
					{
						// １件取得
						HashMap childMap_EDK0301A010 = (HashMap)childList_EDK0301A010.get(i);
						
						// 一覧_返品機器番号の取得
						String hmpin_kiki_no_target = (String)childMap_EDK0301A010.get("hmpin_kiki_no");
						
						if(hmpin_kiki_no_target.equals(hmpin_kiki_no_key))
						{
							// 引継元＿更新前年月日時分秒（返品機器）← 機器提供サービス契約一意照会マップ..引継元＿更新前年月日時分秒（返品機器）
							subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_HMPIN_UPD_DTM_BF_02,
									X31CWebConst.DATABEAN_SET_VALUE, (String)childMap_EDK0301A010.get("hktgi_moto_hmpin_upd_dtm_bf"));
						}
					}
				}
				
				/**
				 * 物流保全一意照会から取得
				 * */
				if(parentMap.containsKey("EDK0171A010CBSMsg1List"))
				{
					ArrayList childList_EDK0171A010 = (ArrayList)parentMap.get("EDK0171A010CBSMsg1List");
					
					// ＫＥＹ＿物流保全番号の取得
					String btryhozn_no_key = subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_BTRYHOZN_NO_02, X31CWebConst.DATABEAN_GET_VALUE);
					
					for ( int i=0; i < childList_EDK0171A010.size(); i++)
					{
						// １件取得
						HashMap childMap_EDK0171A010 = (HashMap)childList_EDK0171A010.get(i);
						
						// 一覧_物流保全番号の取得
						String btryhozn_no_target = (String)childMap_EDK0171A010.get("btryhozn_no");
						
						if(btryhozn_no_target.equals(btryhozn_no_key))
						{
							// 引継元＿物流保全ステータス ← 機器提供サービス契約一意照会マップ..物流保全ステータス
							subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_BTRYHOZN_STAT_02,
									X31CWebConst.DATABEAN_SET_VALUE, (String)childMap_EDK0171A010.get("btryhozn_stat"));
						}
					}
				}
				
				/**
				 * 宅内機器一意照会から取得
				 * */
				if(parentMap.containsKey("EKKA0020003CBSMsg2List"))
				{
					ArrayList childList_EKKA0020003 = (ArrayList)parentMap.get("EKKA0020003CBSMsg2List");
				
					// ＫＥＹ＿宅内機器型式コードの取得
					String taknkiki_model_cd_key = subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_MDL_02, X31CWebConst.DATABEAN_GET_VALUE);
					// ＫＥＹ＿機器製造番号の取得
					String kk_seizo_no_key = subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_SEIZO_NO_02, X31CWebConst.DATABEAN_GET_VALUE);
					
					
					for ( int i=0; i < childList_EKKA0020003.size(); i++)
					{
						// １件取得
						HashMap childMap_EKKA0020003 = (HashMap)childList_EKKA0020003.get(i);
						
						// 一覧_宅内機器型式コードの取得
						String taknkiki_model_cd_target = (String)childMap_EKKA0020003.get("key_tk_mdl_cd");
						// 一覧_機器製造番号の取得
						String kk_seizo_no_target = (String)childMap_EKKA0020003.get("key_kk_seizo_no");
						
						if(taknkiki_model_cd_target.equals(taknkiki_model_cd_key) && kk_seizo_no_target.equals(kk_seizo_no_key))
						{
							// 引継元＿更新前年月日時分秒（宅内機器基本Ｔ）← 機器提供サービス契約一意照会マップ..引継元＿更新前年月日時分秒（宅内機器基本Ｔ）
							subbean.sendMessageString(KKW03901SFConst.HKTGI_MOTO_KIHONT_UPD_DTTM_02,
									X31CWebConst.DATABEAN_SET_VALUE, (String)childMap_EKKA0020003.get("kihont_upd_dttm"));
						}
					
					}
				}
				// ↑↑↑2012.04.21 巻取り1で追加↑↑↑
				
			}
		}
	}
	
	/**
	 * 下りマッピング
	 * @param bean
	 * @param outputMap
	 */
	public X31SDataBeanAccess[] getKKSV041706CC_2(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV041706CC"))
		{
			parentMap = (HashMap)outputMap.get("KKSV041706CC");
		}
		
		/**
		* 異動予約一覧照会リスト
		*/
		
		// 異動予約一覧照会リストの取得
		X31SDataBeanAccessArray ido_rsv_list = bean[0].getDataBeanArray(KKW03901SFConst.EKK1681B001CBSMSG1LIST);
		
		// 異動予約一覧照会リストをクリア
		ido_rsv_list.clearArray();
		
		// 異動予約一覧
		if(parentMap.containsKey("EKK1681B001CBSMsg1List"))
		{
			// サービスインターフェースから一覧取得
			ArrayList childList = (ArrayList)parentMap.get("EKK1681B001CBSMsg1List");
			
			// 件数分繰り返し
			for(int i=0; i < childList.size(); i++)
			{
				// 異動予約一覧照会マップ
				HashMap childMap = (HashMap)childList.get(i);
				
				X31SDataBeanAccess subbean = ido_rsv_list.addDataBean();
				
				// 予約適用年月日
				subbean.sendMessageString(KKW03901SFConst.RSV_APLY_YMD_06, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("rsv_aply_ymd"));
				
				// 異動予約詳細コード
				subbean.sendMessageString(KKW03901SFConst.IDO_RSV_DTL_CD_06, 
						X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("ido_rsv_dtl_cd"));
			}
		}
		
		/**
		* 業務パラメータ管理一意照会
		*/
		
		// 項目結合
		String work_param_sette_value1 = (String)parentMap.get("work_param_sette_value1");
		String work_param_sette_value2 = (String)parentMap.get("work_param_sette_value2");
		String work_param_sette_value = "";
		
		
		boolean sette_value1 = (work_param_sette_value1 == null || "".equals(work_param_sette_value1));

		boolean sette_value2 = (work_param_sette_value2 == null || "".equals(work_param_sette_value2));
		
		if (!sette_value1 && !sette_value2)
		{
			work_param_sette_value = work_param_sette_value1 + "," + work_param_sette_value2;
		}
		else
		{
			if (sette_value1)
			{
				work_param_sette_value = work_param_sette_value2;
				
			}
			else if(sette_value2)
			{
				work_param_sette_value = work_param_sette_value1;
			}
		}
		
		// DataBean に業務パラメータ設定値をセットする。
		bean[0].sendMessageString(KKW03901SFConst.GYOMU_PARAM_VALUE, 
						X31CWebConst.DATABEAN_SET_VALUE, work_param_sette_value);
		
		return bean;
		
	}
	
	
	
}
