/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0376_KKSV0376OPDBMapper
*	ソースファイル名：KKSV0376_KKSV0376OPDBMapper.java
*	作成者			：Fujitsu
*	日付			：2011年11月01日
*＜機能概要＞
*	BP（訪問対応依頼登録_初期表示サービス）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/11/01	Fujitsu		新規作成
*   v4.00.00    2013/03/27   FJ）辛      【OT-2013-0000527】対応
*   v4.01.00    2013/05/30   FJ）辛      【IT1-2013-0001246】対応
**********************************************************************/
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.KKW06301SF.KKW06301SFConst;
import eo.web.webview.common.JCCWebCommon;


/**
 * DataBean-BPマッピングをする。
 * 
 */
public class KKSV0376_KKSV0376OPDBMapper {
	
	/** サポートコード：訪問サポート */
	private static final String SUPPORT_CD_01 = "01";
	/** サポートステータス：受付済) */
	private static final String SUPPORT_STAT_010 = "010";
	/** サポートステータス：依頼済) */
	private static final String SUPPORT_STAT_020 = "020";
	/** 画面遷移フラグ：1(更新画面に遷移) */
	private static final String SCRN_CTRL_FLG_UPDATE = "1";
	
	/**
	 * コンストラクタ
	 */
	public KKSV0376_KKSV0376OPDBMapper(){
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：訪問対応依頼登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV037601SC(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_cd_sbt_cd", "CD00872");
		// 基準日 → 訪問対応依頼コードマップ.ＫＥＹ＿基準日
		parentMap.put("key_stdardymd", bean[0].sendMessageString("基準日", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV037601SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：訪問対応依頼登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV037602SC(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_chsht_trgt_ymd", bean[0].sendMessageString("基準日", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV037602SC", parentMap);
						
		return outputMap;
	}

	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：訪問対応依頼登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV037603SC(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_cd_sbt_cd", "CD00460");
		// 基準日 → 訪問サポート希望時間コードマップ.ＫＥＹ＿基準日
		parentMap.put("key_stdardymd", bean[0].sendMessageString("基準日", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV037603SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：訪問対応依頼登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV037604SC(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_rsv_aply_ymd", bean[0].sendMessageString("基準日", X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV037604SC", parentMap);
						
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：訪問対応依頼登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV037605SC(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("search_type", String.valueOf("1"));
		parentMap.put("display_num", JCCWebCommon.getSearchConst("KKW06304_ROW_PER_PAGE"));
		parentMap.put("max_search_num", JCCWebCommon.getSearchConst("KKW06304_MAX_SHOW_CNT"));
		parentMap.put("display_page_num", String.valueOf("1"));
		
		// ＫＥＹ＿サポートコード → サポート一意照会マップ.ＫＥＹ＿サポートコード
		parentMap.put("key_support_cd", SUPPORT_CD_01);
		// サービス契約番号 → サポート一意照会マップ.サービス契約番号
		parentMap.put("key_svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV037605SC", parentMap);
						
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：訪問対応依頼更新
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV037606SC(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_support_no", bean[0].sendMessageString("サポート番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV037606SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：訪問対応依頼登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV037601SC(X31SDataBeanAccess[] bean, HashMap outputMap){
		
		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV037601SC")){
			parentMap = (HashMap)outputMap.get("KKSV037601SC");
		}
		/*---v4.00.00 修正開始----------------------*/
		HashMap svcParentMaps = null;
		if(outputMap.containsKey("KKSV037604SC")){
			svcParentMaps = (HashMap)outputMap.get("KKSV037604SC");
		}
		
		HashMap supportParentMap = null;
		if(outputMap.containsKey("KKSV037605SC")){
			supportParentMap = (HashMap)outputMap.get("KKSV037605SC");
		}
		
		HashMap supportParentMap2 = null;
		if(outputMap.containsKey("KKSV037606SC")){
			supportParentMap2 = (HashMap)outputMap.get("KKSV037606SC");
		}

		// DataBeanの構造と合わないため、追記
		X31SDataBeanAccessArray listKKSV037601SC_vsit_taio_req_cd_type_EZM0171B012CBSMsg1List = bean[0].getDataBeanArray(KKW06301SFConst.VSIT_TAIO_REQ_CD_TYPE);
		listKKSV037601SC_vsit_taio_req_cd_type_EZM0171B012CBSMsg1List.clearArray();
		
		// DataBeanの構造と合わないため、追記
		X31SDataBeanAccess subbean = listKKSV037601SC_vsit_taio_req_cd_type_EZM0171B012CBSMsg1List.addDataBean();
		
		// 空白選択支の設定
		subbean.sendMessageString(KKW06301SFConst.CD_DIV_CD_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, "");
		subbean.sendMessageString(KKW06301SFConst.CD_DIV_NM_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, "");
		subbean.sendMessageString(KKW06301SFConst.DEFAULT_CD_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, "");
		
		boolean comboDisp = false;
		String support_stat = "";
		String vsit_support_sbt_cd = "";
		ArrayList childList = null;
		ArrayList svcChildList = null;
		ArrayList supportChildList = null;
		if(parentMap.containsKey("EZM0171B012CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EZM0171B012CBSMsg1List");
			
			if (supportParentMap.containsKey("EKK0631B001CBSMsg1List"))
			{
				ArrayList supportList = (ArrayList)supportParentMap.get("EKK0631B001CBSMsg1List");
				if(supportList != null && supportList.size() != 0)
				{
					if(supportParentMap2.containsKey("EKK0631A010CBSMsg1List")){
						
						supportChildList = (ArrayList)supportParentMap2.get("EKK0631A010CBSMsg1List");
						HashMap supportChildMap2 = (HashMap)supportChildList.get(0);
						//「サポートステータス」
						support_stat = (String) supportChildMap2.get("support_stat");
						//「サポート種別コード」
						vsit_support_sbt_cd = (String) supportChildMap2.get("vsit_support_sbt_cd");
						
						if(SUPPORT_STAT_010.equals(support_stat) || SUPPORT_STAT_020.equals(support_stat))
						{
							comboDisp = true;
						}
					}
				}
				
				//■==========================
				//「更新用のプルダウン作成」
				//■==========================
				if(comboDisp)
				{
					int index = 1;
					
					for(int j = 0; j < childList.size(); j++)
					{
						
						HashMap childMap = (HashMap)childList.get(j);
						
						// 有は表示しない
						String cd_div = (String)childMap.get("cd_div");
						if("1".equals(cd_div))
						{
							continue;
						}
						
						// サポートコードが受付済の場合、無を表示する
						if("010".equals(support_stat) && "0".equals(cd_div))
						{
							// 訪問対応依頼コード.コードタイプコードリスト値リスト ← 訪問対応依頼コードマップ.コード名称管理コード区分一覧照会明細.コード区分
							subbean.sendMessageString(KKW06301SFConst.CD_DIV_CD_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div"));
							// 訪問対応依頼コード.コードタイプ名称リスト ← 訪問対応依頼コードマップ.コード名称管理コード区分一覧照会明細.コード区分名
							subbean.sendMessageString(KKW06301SFConst.CD_DIV_NM_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, index + "." + (String)childMap.get("cd_div_nm"));
							index++;
						}
						
						// 訪問対応依頼申込種別コードが追加の場合、追加を表示する
						if("1".equals(vsit_support_sbt_cd) && "2".equals(cd_div))
						{
							// 訪問対応依頼コード.コードタイプコードリスト値リスト ← 訪問対応依頼コードマップ.コード名称管理コード区分一覧照会明細.コード区分
							subbean.sendMessageString(KKW06301SFConst.CD_DIV_CD_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div"));
							// 訪問対応依頼コード.コードタイプ名称リスト ← 訪問対応依頼コードマップ.コード名称管理コード区分一覧照会明細.コード区分名
							subbean.sendMessageString(KKW06301SFConst.CD_DIV_NM_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, index + "." + (String)childMap.get("cd_div_nm"));
							
							index++;
						}
						
						// 訪問対応依頼申込種別コードが新規同時の場合、新規同時を表示する
						if("0".equals(vsit_support_sbt_cd) && "3".equals(cd_div))
						{
							// 訪問対応依頼コード.コードタイプコードリスト値リスト ← 訪問対応依頼コードマップ.コード名称管理コード区分一覧照会明細.コード区分
							subbean.sendMessageString(KKW06301SFConst.CD_DIV_CD_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div"));
							// 訪問対応依頼コード.コードタイプ名称リスト ← 訪問対応依頼コードマップ.コード名称管理コード区分一覧照会明細.コード区分名
							subbean.sendMessageString(KKW06301SFConst.CD_DIV_NM_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, index + "." + (String)childMap.get("cd_div_nm"));
							
							index++;
						}
					}
				}
				//■==========================
				//「登録用のプルダウン作成」⇒ 対象のサービス契約番号に紐付くサポートのデータ有り
				//■==========================
				else
				{
					svcChildList = (ArrayList)svcParentMaps.get("EKK0081A010CBSMsg1List");
					HashMap svcChildMap = (HashMap)svcChildList.get(0);
					//「サービス契約ステータス」取得
					String svcStat = (String)svcChildMap.get("svc_kei_stat");
					
					for(int i = 0; i < childList.size(); i++)
					{
						
						HashMap childMap = (HashMap)childList.get(i);
						
						//対象のサービス契約のステータスが「サービス提供中」以降の場合、"追加"のみ表示する。
						if("100".compareTo(svcStat) <= 0)
						{
							if("2".equals((String)childMap.get("cd_div")))
							{
								// 訪問対応依頼コード.コードタイプコードリスト値リスト ← 訪問対応依頼コードマップ.コード名称管理コード区分一覧照会明細.コード区分
								subbean.sendMessageString(KKW06301SFConst.CD_DIV_CD_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div"));
								// 訪問対応依頼コード.コードタイプ名称リスト ← 訪問対応依頼コードマップ.コード名称管理コード区分一覧照会明細.コード区分名
								subbean.sendMessageString(KKW06301SFConst.CD_DIV_NM_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, 1 + "." + (String)childMap.get("cd_div_nm"));
							}
							
						}
						//対象のサービス契約のステータスが「締結済」までの場合、"追加"と"新規同時"をリスト表示
						else
						{
							if("1".compareTo((String)childMap.get("cd_div")) < 0)
							{
								// 訪問対応依頼コード.コードタイプコードリスト値リスト ← 訪問対応依頼コードマップ.コード名称管理コード区分一覧照会明細.コード区分
								subbean.sendMessageString(KKW06301SFConst.CD_DIV_CD_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div"));
								// 訪問対応依頼コード.コードタイプ名称リスト ← 訪問対応依頼コードマップ.コード名称管理コード区分一覧照会明細.コード区分名
								subbean.sendMessageString(KKW06301SFConst.CD_DIV_NM_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, i - 1 + "." + (String)childMap.get("cd_div_nm"));
							}
						}
					}
				}
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：訪問対応依頼登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV037602SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV037602SC")){
			parentMap = (HashMap)outputMap.get("KKSV037602SC");
		}
		
		// DataBeanの構造と合わないため、追記
		X31SDataBeanAccessArray listKKSV037602SC_vsit_sprt_comp_cd_type_EKK0651B001CBSMsg1List = bean[0].getDataBeanArray(KKW06301SFConst.VSIT_SPRT_COMP_CD_TYPE);
		listKKSV037602SC_vsit_sprt_comp_cd_type_EKK0651B001CBSMsg1List.clearArray();
		
		ArrayList childList = null;
		if(parentMap.containsKey("EKK0651B001CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EKK0651B001CBSMsg1List");
			
			X31SDataBeanAccess subbean = listKKSV037602SC_vsit_sprt_comp_cd_type_EKK0651B001CBSMsg1List.addDataBean();
			
			// 空白選択支の設定
			subbean.sendMessageString(KKW06301SFConst.CD_DIV_CD_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, "");
			subbean.sendMessageString(KKW06301SFConst.CD_DIV_NM_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, "");
			subbean.sendMessageString(KKW06301SFConst.DEFAULT_CD_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, "");
			
			for(int i = 0; i < childList.size(); i++)
			{
				
				HashMap childMap = (HashMap)childList.get(i);
				
				// 訪問サポート会社コード.コードタイプコード値リスト ← 訪問サポート会社一覧照会マップ.訪問サポート会社一覧照会明細.訪問サポート会社コード
				subbean.sendMessageString(KKW06301SFConst.CD_DIV_CD_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("vsit_support_comp_cd"));
				// 訪問サポート会社コード.コードタイプ名称リスト ← 訪問サポート会社一覧照会マップ.訪問サポート会社一覧照会明細.訪問サポート会社名
				subbean.sendMessageString(KKW06301SFConst.CD_DIV_NM_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, i + 1 + "." + (String)childMap.get("vsit_support_comp_nm"));
			}
		}
		
		return bean;
	}


	/**
	 * 下りマッピング
	 * @param bean　[0]：訪問対応依頼登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV037603SC(X31SDataBeanAccess[] bean, HashMap outputMap, String comboName){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV037603SC")){
			parentMap = (HashMap)outputMap.get("KKSV037603SC");
		}
		
		// DataBeanの構造と合わないため、追記
		X31SDataBeanAccessArray listKKSV037603SC_kibo_time_type_EZM0171B012CBSMsg1List = bean[0].getDataBeanArray(comboName);
		listKKSV037603SC_kibo_time_type_EZM0171B012CBSMsg1List.clearArray();
		
		ArrayList childList = null;
		if(parentMap.containsKey("EZM0171B012CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EZM0171B012CBSMsg1List");
			
			// DataBeanの構造と合わないため、追記
			X31SDataBeanAccess subbean = listKKSV037603SC_kibo_time_type_EZM0171B012CBSMsg1List.addDataBean();
			
			// 空白選択支の設定
			subbean.sendMessageString(KKW06301SFConst.CD_DIV_CD_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, "");
			subbean.sendMessageString(KKW06301SFConst.CD_DIV_NM_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, "");
			subbean.sendMessageString(KKW06301SFConst.DEFAULT_CD_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, "");
			
			for(int i = 0; i < childList.size(); i++)
			{
				
				HashMap childMap = (HashMap)childList.get(i);
				
				// 希望時間.コードタイプコードリスト値リスト ← 希望時間マップ.コード名称管理コード区分一覧照会明細.コード区分
				subbean.sendMessageString(KKW06301SFConst.CD_DIV_CD_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div"));
				// 希望時間.コードタイプ名称リスト ← 希望時間マップ.コード名称管理コード区分一覧照会明細.コード区分名
				subbean.sendMessageString(KKW06301SFConst.CD_DIV_NM_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, i + 1 + "." + (String)childMap.get("cd_div_nm"));
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：訪問対応依頼登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV037605SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV037605SC")){
			parentMap = (HashMap)outputMap.get("KKSV037605SC");
		}
		
		if (parentMap.containsKey("EKK0631B001CBSMsg1List"))
		{
			ArrayList supportList = (ArrayList)parentMap.get("EKK0631B001CBSMsg1List");
			//条件@：対象のサービス契約番号に紐付くサポートのデータ有り
			if(supportList != null && supportList.size() != 0)
			{
				for(int i=0; i < supportList.size(); i++)
				{
					HashMap supportMap = (HashMap)supportList.get(i);
					
					// "010"、"020"以外はスキップ
					if(isSupportStatCheck((String)supportMap.get("support_stat")))
					{
						// 「サポート番号」の設定
						bean[0].sendMessageString(KKW06301SFConst.SUPPORT_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)supportMap.get("support_no"));
						// 「画面遷移先フラグ」の設定
						bean[0].sendMessageString(KKW06301SFConst.SCRN_CTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, SCRN_CTRL_FLG_UPDATE);
						
						break;
					}
					else
					{
						continue;
					}
				}
			}
		}
		return bean;
	}
	
	/**
	 * 下りマッピング
	 * @param bean　[0]：訪問対応依頼更新
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV037606SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV037606SC")){
			parentMap = (HashMap)outputMap.get("KKSV037606SC");
		}
		
		ArrayList childList = null;
		if(parentMap.containsKey("EKK0631A010CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EKK0631A010CBSMsg1List");
			
			if(childList != null && childList.size() > 0 )
			{
				HashMap childMap = (HashMap)childList.get(0);
				
				// 依頼状態
				bean[0].sendMessageString(KKW06301SFConst.REQ_STAT, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("support_stat_nm"));
				
				// 対応記録番号
				bean[0].sendMessageString(KKW06301SFConst.TAIO_KIROK_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("taio_kirok_no"));
				
				// 場所番号
				bean[0].sendMessageString(KKW06301SFConst.PLACE_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("place_no"));
				
				// 訪問サポート会社コード
				String support_comp_cd = (String)childMap.get("vsit_support_comp_cd");
				String index = getSelectNameFromCode(bean, KKW06301SFConst.VSIT_SPRT_COMP_CD_TYPE, KKW06301SFConst.CD_DIV_CD_LIST_01, support_comp_cd);
				setComboIndex(bean, KKW06301SFConst.VSIT_SPRT_COMP_CD_TYPE, KKW06301SFConst.SELECT_INDEX_01, index);
				setSelectComboData(bean, KKW06301SFConst.VSIT_SPRT_COMP_CD_TYPE);
				
				// 訪問サポート予定年月日
				bean[0].sendMessageString(KKW06301SFConst.VSIT_SUPPORT_RSV_YMD, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("vsit_support_rsv_ymd"));
				
				// 訪問サポート第1希望年月日
				String kibo_ymd_1 = (String)childMap.get("vsit_support_kibo_ymd_1");
				setKiboYmd(bean, KKW06301SFConst.KIBO_YEAR_1, KKW06301SFConst.KIBO_MON_1, KKW06301SFConst.KIBO_DAY_1, kibo_ymd_1);
				
				// 訪問サポート第2希望年月日
				String kibo_ymd_2 = (String)childMap.get("vsit_support_kibo_ymd_2");
				setKiboYmd(bean, KKW06301SFConst.KIBO_YEAR_2, KKW06301SFConst.KIBO_MON_2, KKW06301SFConst.KIBO_DAY_2, kibo_ymd_2);
				
				// 訪問サポート第3希望年月日
				String kibo_ymd_3 = (String)childMap.get("vsit_support_kibo_ymd_3");
				setKiboYmd(bean, KKW06301SFConst.KIBO_YEAR_3, KKW06301SFConst.KIBO_MON_3, KKW06301SFConst.KIBO_DAY_3, kibo_ymd_3);
				
				// 訪問サポート第1希望時間コード
				String kibo_time_cd_1 = (String)childMap.get("vsit_sprt_kibo_time_cd_1");
				String index1 = getSelectNameFromCode(bean, KKW06301SFConst.KIBO_TIME_1_TYPE, KKW06301SFConst.CD_DIV_CD_LIST_01, kibo_time_cd_1);
				setComboIndex(bean, KKW06301SFConst.KIBO_TIME_1_TYPE, KKW06301SFConst.SELECT_INDEX_01, index1);
				setSelectComboData(bean, KKW06301SFConst.KIBO_TIME_1_TYPE);
				
				// 訪問サポート第2希望時間コード
				String kibo_time_cd_2 = (String)childMap.get("vsit_sprt_kibo_time_cd_2");
				String index2 = getSelectNameFromCode(bean, KKW06301SFConst.KIBO_TIME_2_TYPE, KKW06301SFConst.CD_DIV_CD_LIST_01, kibo_time_cd_2);
				setComboIndex(bean, KKW06301SFConst.KIBO_TIME_2_TYPE, KKW06301SFConst.SELECT_INDEX_01, index2);
				setSelectComboData(bean, KKW06301SFConst.KIBO_TIME_2_TYPE);
				
				// 訪問サポート第3希望時間コード
				String kibo_time_cd_3 = (String)childMap.get("vsit_sprt_kibo_time_cd_3");
				String index3 = getSelectNameFromCode(bean, KKW06301SFConst.KIBO_TIME_3_TYPE, KKW06301SFConst.CD_DIV_CD_LIST_01, kibo_time_cd_3);
				setComboIndex(bean, KKW06301SFConst.KIBO_TIME_3_TYPE, KKW06301SFConst.SELECT_INDEX_01, index3);
				setSelectComboData(bean, KKW06301SFConst.KIBO_TIME_3_TYPE);
				
				// サポート年月日
				bean[0].sendMessageString(KKW06301SFConst.SUPPORT_YMD, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("support_ymd"));
				
				// サポート結果コード
				bean[0].sendMessageString(KKW06301SFConst.SUPPORT_RSLT_CD, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("support_rslt_cd"));
				
				// サポート完了年月日
				bean[0].sendMessageString(KKW06301SFConst.SUPPORT_FIN_YMD, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("support_fin_ymd"));
				
				// 訪問サポートアポ完了年月日
				bean[0].sendMessageString(KKW06301SFConst.VSIT_SPRT_APO_FIN_YMD, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("vsit_sprt_apo_fin_ymd"));
				
				// 訪問サポートメモ
				bean[0].sendMessageString(KKW06301SFConst.VSIT_SPRT_MEMO, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("vsit_support_memo"));
				
				// 更新年月日時分秒
				bean[0].sendMessageString(KKW06301SFConst.UPD_DTM, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("upd_dtm"));
				
				// 依頼状態コード
				bean[0].sendMessageString(KKW06301SFConst.REQ_STAT_CD, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("support_stat"));
				
				//【IT1-2013-0001246】対応 START ==============
				// 訪問サポート種別コード
				bean[0].sendMessageString(KKW06301SFConst.VSIT_SUPPORT_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("vsit_support_sbt_cd"));
				// 更新用＿訪問サポート会社コード
				bean[0].sendMessageString(KKW06301SFConst.UPD_VSIT_SUPPORT_COMP_CD, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("vsit_support_comp_cd"));
				// 更新用＿訪問サポート会社コード名称
				bean[0].sendMessageString(KKW06301SFConst.UPD_VSIT_SUPPORT_COMP_CD_NM, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("vsit_support_comp_cd_nm"));
				// 更新用＿訪問サポート第1希望年月日
				bean[0].sendMessageString(KKW06301SFConst.UPD_VSIT_SUPPORT_KIBO_YMD_1, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("vsit_support_kibo_ymd_1"));
				// 更新用＿訪問サポート第2希望年月日
				bean[0].sendMessageString(KKW06301SFConst.UPD_VSIT_SUPPORT_KIBO_YMD_2, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("vsit_support_kibo_ymd_2"));
				// 更新用＿訪問サポート第3希望年月日
				bean[0].sendMessageString(KKW06301SFConst.UPD_VSIT_SUPPORT_KIBO_YMD_3, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("vsit_support_kibo_ymd_3"));
				// 更新用＿訪問サポート第1希望時間コード
				bean[0].sendMessageString(KKW06301SFConst.UPD_VSIT_SPRT_KIBO_TIME_CD_1, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("vsit_sprt_kibo_time_cd_1"));
				// 更新用＿訪問サポート第1希望時間コード名称
				bean[0].sendMessageString(KKW06301SFConst.UPD_VSIT_SPRT_KIBO_TIME_CD_1_NM, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("vsit_sprt_kibo_time_cd_1_nm"));
				// 更新用＿訪問サポート第2希望時間コード
				bean[0].sendMessageString(KKW06301SFConst.UPD_VSIT_SPRT_KIBO_TIME_CD_2, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("vsit_sprt_kibo_time_cd_2"));
				// 更新用＿訪問サポート第2希望時間コード名称
				bean[0].sendMessageString(KKW06301SFConst.UPD_VSIT_SPRT_KIBO_TIME_CD_2_NM, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("vsit_sprt_kibo_time_cd_2_nm"));
				// 更新用＿訪問サポート第3希望時間コード
				bean[0].sendMessageString(KKW06301SFConst.UPD_VSIT_SPRT_KIBO_TIME_CD_3, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("vsit_sprt_kibo_time_cd_3"));
				// 更新用＿訪問サポート第3希望時間コード名称
				bean[0].sendMessageString(KKW06301SFConst.UPD_VSIT_SPRT_KIBO_TIME_CD_3_NM, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("vsit_sprt_kibo_time_cd_3_nm"));
				// 更新用＿訪問サポートメモ
				bean[0].sendMessageString(KKW06301SFConst.UPD_VSIT_SUPPORT_MEMO, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("vsit_support_memo"));
				//【IT1-2013-0001246】対応 END ==============
			}
		}

		return bean;
	}
	
	/**
	 * サポートステータスが更新対象かチェックする。
	 * <br>
	 * @param support_stat
	 * @return true:更新対象、false:更新対象外
	 */
	private boolean isSupportStatCheck(String support_stat)
	{
		return (SUPPORT_STAT_010.equals(support_stat) || SUPPORT_STAT_020.equals(support_stat));
	}
	
	/**
	 * コード値からプルダウンに選択するインデックスを取得します。
	 * 
	 * @param bean [0]：訪問対応依頼更新
	 * @param comboItemId 対象とするコンボボックスの項目ID
	 * @param cdListId  コードの選択候補リストを格納している項目ID
	 * @param code 選択するコード値
	 * @return 取得したインデックス
	 */
	private String getSelectNameFromCode(X31SDataBeanAccess[] bean, String comboItemId, String cdListId, String code)
	{
		
		// コードリストを取得
		X31SDataBeanAccess subbean = null;
		// コンボボックスのデータタイプを取得する。
		subbean = bean[0].getDataBeanArray(comboItemId).getDataBean(0);
		
		int cdList = Integer.valueOf(subbean.sendMessage(cdListId, X31CWebConst.DATABEAN_GET_COUNT).toString());
		
		String retIndex = "";

		for (int i = 0; i < cdList; i++)
		{
			if (code.equals(subbean.sendMessageString(cdListId, X31CWebConst.DATABEAN_GET_VALUE, i)))
			{
				retIndex = Integer.toString(i);
				break;
			}
		}
		
		return retIndex;
	}
	
	/**
	 * コンボボックスの選択状態を設定します。
	 * 
	 * @param bean [0]：訪問対応依頼更新
	 * @param comboItemId 対象とするコンボボックスの項目ID
	 * @param selIdxId 選択行インデックスが格納されている項目ID
	 * @param selectIndex 選択位置
	 */
	private void setComboIndex(X31SDataBeanAccess[] bean, String comboItemId, String selIdxId, String selectIndex)
	{
		
		X31SDataBeanAccess subbean = null;
		// コンボボックスのデータタイプを取得する。
		subbean = bean[0].getDataBeanArray(comboItemId).getDataBean(0);
		
		// インデックスを設定
		subbean.sendMessageString(selIdxId, X31CWebConst.DATABEAN_SET_VALUE, selectIndex);
	}
	
	/**
	 * コード値からプルダウンに選択するインデックスを取得します。
	 * 
	 * @param bean [0]：訪問対応依頼更新
	 * @param yy 項目ID（年）
	 * @param mm 項目ID（月）
	 * @param dd 項目ID（日）
	 * @param yymmdd 希望年月日
	 */
	private void setKiboYmd(X31SDataBeanAccess[] bean, String yy, String mm, String dd, String ymd)
	{
		if(ymd != null && !"".equals(ymd))
		{
			// 希望日（年）
			bean[0].sendMessageString(yy, X31CWebConst.DATABEAN_SET_VALUE, ymd.substring(0, 4));
			// 希望日（月）
			bean[0].sendMessageString(mm, X31CWebConst.DATABEAN_SET_VALUE, ymd.substring(4, 6));
			// 希望日（日）
			bean[0].sendMessageString(dd, X31CWebConst.DATABEAN_SET_VALUE, ymd.substring(6, 8));
		}
		else
		{
			// 希望日（年）
			bean[0].sendMessageString(yy, X31CWebConst.DATABEAN_SET_VALUE, "");
			// 希望日（月）
			bean[0].sendMessageString(mm, X31CWebConst.DATABEAN_SET_VALUE, "");
			// 希望日（日）
			bean[0].sendMessageString(dd, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
	}
	
	/**
	 * 共通
	 * コードタイプ コンボボックスの選択情報を転記する。
	 * 
	 * @param comboItemId 対象とするコンボボックスの項目ID
	 */
	private void setSelectComboData(X31SDataBeanAccess[] bean, String comboItemId)
	{
		
		setSelectComboData(bean, comboItemId, 
				KKW06301SFConst.SELECT_INDEX_01, 
				KKW06301SFConst.CD_DIV_CD_01, 
				KKW06301SFConst.CD_DIV_NM_01, 
				KKW06301SFConst.CD_DIV_CD_LIST_01, 
				KKW06301SFConst.CD_DIV_NM_LIST_01);
	}
	
	/**
	 * コンボボックスの選択情報を転記する。
	 * 
	 * @param comboItemId 対象とするコンボボックスの項目ID
	 * @param selIdxId 選択行インデックスが格納されている項目ID
	 * @param selCodeId 選択されたコードを格納する項目ID
	 * @param selNameId 選択された名称を格納する項目ID
	 * @param cdListId  コードの選択候補リストを格納している項目ID
	 * @param nmListId  名称の選択候補リストを格納している項目ID
	 */
	private void setSelectComboData(X31SDataBeanAccess[] bean, String comboItemId, String selIdxId, String selCodeId, String selNameId, String cdListId, String nmListId)
	{
		X31SDataBeanAccess subbean = null;
		
		// コンボボックスのデータタイプを取得する。
		subbean = bean[0].getDataBeanArray(comboItemId).getDataBean(0);
		String selectedIndex = subbean.sendMessageString(selIdxId, X31CWebConst.DATABEAN_GET_VALUE);
		if (selectedIndex == null || "".equals(selectedIndex))
		{
			subbean.sendMessageString(selCodeId, X31CWebConst.DATABEAN_SET_VALUE, "");
			if(!"".equals(selNameId))
			{
				subbean.sendMessageString(selNameId, X31CWebConst.DATABEAN_SET_VALUE, "");
			}
			return;
		}
		int selIdx = Integer.valueOf(selectedIndex);
		subbean.sendMessageString(selCodeId, 
								X31CWebConst.DATABEAN_SET_VALUE, subbean.sendMessageString(cdListId, 
																							X31CWebConst.DATABEAN_GET_VALUE, selIdx));
		if(!"".equals(selNameId))
		{
			subbean.sendMessageString(selNameId, 
									X31CWebConst.DATABEAN_SET_VALUE, subbean.sendMessageString(nmListId, 
																								X31CWebConst.DATABEAN_GET_VALUE, selIdx));
		}
	}
}
