/*******************************************************************************
*	 All Rights reserved,Copyright (c) K-Opticom 
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：CNW01901SFLogic
*	ソースファイル名：CNW01901SFLogic.java
*	作成者			：EK957783
*	日付			：2021年07月14日
*＜機能概要＞
*	コンテンツ一時申込登録のViewロジックです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	ｖ54.00.00  2021/07/14  FJ)上村		新規作成
*
********************************************************************************/

package eo.web.webview.CNW01901SF;

import java.util.ArrayList;
import java.util.EventObject;
import java.util.HashMap;
import java.util.Map;

import com.fujitsu.futurity.web.x00.JCCBusinessException;
import com.fujitsu.futurity.web.x00.JCCWebServiceException;
import com.fujitsu.futurity.web.x31.X31CID;
import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;
import com.fujitsu.futurity.web.x31.X31SRuntimeException;
import com.fujitsu.futurity.web.x33.X33SException;

import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.ACW00101SF.ACW00101SFConst;
import eo.web.webview.CNW00101SF.CNW00101SFConst;
import eo.web.webview.CNW00201SF.CNW00201SFConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.KKW00101SF.KKW00101SFConst;
import eo.web.webview.KKW21501SF.KKW21501SFConst;
import eo.web.webview.common.JACScreenConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JCHPulldownUtil;
import eo.web.webview.common.JCNScreenConst;
import eo.web.webview.common.JCNWebConst;
import eo.web.webview.mapping.CNSV0055_CNSV0055OPDBMapper;
import eo.web.webview.mapping.CNSV0056_CNSV0056OPDBMapper;
import eo.web.webview.mapping.CNSV0057_CNSV0057OPDBMapper;
import eo.common.constant.JPCModelConstant;
import eo.common.util.JZMAdOutputEdit;

/**
 * コンテンツ一時申込登録のViewロジック<p>
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class CNW01901SFLogic extends JCCWebBusinessLogic
{

	/** サービス契約ステータス 100：サービス提供中*/
	private static final String SVC_KEI_STAT_100 = "100";
	
	/** サービス契約ステータス 910：解約済*/
	private static final String SVC_KEI_STAT_910 = "910";
	
	/** サービス契約ステータス 920：キャンセル済*/
	private static final String SVC_KEI_STAT_920 = "920";
	
	/** 対象申込情報なしメッセージ */
	private static final String TGT_MSKM_NONE = "対象の申込情報";
	/** メッセージＩＤ(対象申込情報なし) */
	private static final String MESSAGE_ID_TGT_MSKM_NONE = "EKB2190-KW";
	/** メッセージＩＤ(コンテンツ申込情報変更なし) */
	private static final String MESSAGE_ID_NO_CHG = "EKB1650-JW";
	/** 更新完了メッセージ１ */
	private static final String UPD_FIN_1 = "コンテンツ申込";
	/** 更新完了メッセージ２ */
	private static final String UPD_FIN_2 = "更新";
	/** メッセージＩＤ(コンテンツ申込更新完了) */
	private static final String MESSAGE_ID_UPD_FIN = "EKB2960--I";

	/**
	 * 親クラスX31BWebBusinessLogicのreceiveMessageWebを
	 * オーバーライドして自動生成されたメソッドです。
	 * @param arg0 (I) イベント情報
	 * @param arg1 (I) WebFWでは使用しません
	 * @param arg2 (I) WebFWでは使用しません
	 * @return 処理結果（true:正常終了、false:エラー）
	 * @throws X33SException X33SException
	 */
	@Override
	protected boolean receiveMessageWeb(X31CID arg0, Object arg1,
			EventObject arg2) throws X33SException
	{

		return false;
	}

	/**
	 * コンテンツ一時申込登録の初期表示を行います。<br>
	 * 
	 * @return 処理結果（true:正常終了、false:エラー）
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean action_init() throws Exception
	{

		// 共通Bean取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// 親画面のBean取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// パラメータ情報を取得する
		HashMap param = JCCWebCommon.getScreenInfo(this);
		bean.sendMessageString(CNW01901SFConst.SYSID, X31CWebConst.DATABEAN_SET_VALUE, (String)param.get(CNW01901SFConst.SYSID));
		
		// マッピングクラスに渡すため、配列に作り変える
		X31SDataBeanAccess[] paramBean = {bean};
		
		// ユースケースID格納用マップ生成
		HashMap paramMap = new HashMap();
		// ユースケースID設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CNSV0055");

		// 運用日付の取得
		String opeDate = JCCWebCommon.getOpeDate(this, null);
		
		// マッピングクラスのインスタンス作成

		HashMap inMap = new HashMap();
		CNSV0055_CNSV0055OPDBMapper mapper = new CNSV0055_CNSV0055OPDBMapper();
		
		// 上りマッピング
		// 開通前申込可能コンテンツサービス一覧
		mapper.setCNSV005501SC(inMap, opeDate, "1");
		// 開通前コンテンツ対象申込情報一覧照会(SYSID)
		mapper.setCNSV005502SC(paramBean, inMap, opeDate, "1");
		
		// 検索結果格納用マップ生成
		HashMap outputMap = new HashMap();
		
		// SQL呼出し
		X31CMessageResult msgResult = invokeService(paramMap, inMap,
				outputMap);
		
		// エラー処理
		if (msgResult != null) {
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		// 実行結果を申込番号単位に分割
		HashMap parentMapMskm = null;
		if(outputMap.containsKey("CNSV005502SC")){
			parentMapMskm = (HashMap)outputMap.get("CNSV005502SC");
		} 
		
		ArrayList childList = (ArrayList)parentMapMskm.get("EKK0011B509CBSMsg1List");
		ArrayList<HashMap<String, Object>> mskmMainList = null;
		
		if(childList.size() == 0)
		{
			mskmMainList = new ArrayList<HashMap<String, Object>>();
			// 確定ボタン制御フラグ 非表示を設定
			paramBean[0].sendMessageBoolean(CNW01901SFConst.FIX_CTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
			// コンテンツリスト（全体）非活性フラグ 非活性を設定
			paramBean[0].sendMessageBoolean(CNW01901SFConst.CONT_LIST_HIKASEI_CTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);
			
			// エラー処理 
			// 検索結果０件の場合
			JCCWebCommon.setMessageInfo(this, MESSAGE_ID_TGT_MSKM_NONE, new String[] { TGT_MSKM_NONE });
		}
		else
		{
			// 実行結果を申込番号単位に分割する処理を実行
			mskmMainList = mskmTaniBnk(childList);
		}
		
		// 下りマッピング
		// 開通前申込可能コンテンツサービス一覧照会
		mapper.getCNSV005501_3SC(paramBean, outputMap);
		// 開通前コンテンツ対象申込情報一覧照会(SYSID)
		mapper.getCNSV005502SC(paramBean, mskmMainList, outputMap);
		
		// 入力有無フラグクリア
		paramBean[0].sendMessageString(CNW01901SFConst.INFLG, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_ID_CNW01901);
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_NAME_CNW01901);

		return true;
	}

	/**
	 * 選択された申込番号に紐づく開通前コンテンツ申込情報の検索処理を行います。 <br>
	 * 
	 * @return 実行結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean ukNoChoice() throws Exception
	{
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBean = { bean };

		// 選択されたプルダウンに紐づく申込番号を取得
		String mskmNo = JCHPulldownUtil.getSelectedValue(paramBean, CNW01901SFConst.DISP_UKETUEKE_NO_LIST, CNW01901SFConst.MSKM_NO,
				CNW01901SFConst.SELECT_VALUE);

		
		// サービスフォームBeanの検索結果項目をクリア
		// 確定ボタン制御フラグをクリア
		// コンテンツリスト（全体）非活性フラグをクリア
		paramBean[0].getDataBeanArray(CNW01901SFConst.CONT_MSKM_LIST).clearArray();
		
		// ユースケースID格納用マップ生成
		HashMap paramMap = new HashMap();
		// ユースケースID設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CNSV0056");
		
		// 運用日付の取得
		String opeDate = JCCWebCommon.getOpeDate(this, null);
		
		// マッピングクラスのインスタンス作成

		HashMap inMap = new HashMap();
		CNSV0056_CNSV0056OPDBMapper mapper = new CNSV0056_CNSV0056OPDBMapper();
		
		// 上りマッピング
		// 開通前申込可能コンテンツサービス一覧照会
		mapper.setCNSV005601SC(inMap, opeDate, "1");
		// コンテンツ申込情報一覧照会
		mapper.setCNSV005602SC(paramBean, inMap, mskmNo, "1");
		
		// 検索結果格納用マップ生成
		HashMap outputMap = new HashMap();
		
		// SQL呼出し
		X31CMessageResult msgResult = invokeService(paramMap, inMap,
				outputMap);
		
		// 下りマッピング
		// 開通前申込可能コンテンツサービス一覧照会
		// コンテンツ申込情報一覧照会
		mapper.getCNSV005601_2SC(paramBean, outputMap);
		
		// beanよりサービス契約情報を取得
		X31SDataBeanAccessArray svc_kei_list = paramBean[0].getDataBeanArray(CNW01901SFConst.SVC_KEI_LIST);
		
		// 提供中サービス契約有無フラグ
		Boolean tkSvcKeiUmFlg = false;
		// 解約・キャンセル済みフラグ
		Boolean rsnCancelFlg = false;
		
		// サービス契約リスト分ループを実行
		for(int i = 0; i < svc_kei_list.getCount(); i++)
		{
			// サービス契約情報
			X31SDataBeanAccess subbeanSvcInfo = svc_kei_list.getDataBean(i);
			// 対象ループ申込番号を保持
			String roopMskmNo = (String) subbeanSvcInfo.sendMessageString(CNW01901SFConst.MSKM_NO, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 選択対象の申込番号とループ対象申込番号が同じ場合下記の処理を行う。
			if(mskmNo.equals(roopMskmNo))
			{
				// beanよりサービス契約個別情報を取得
				X31SDataBeanAccessArray svc_kei_kobetu_list = subbeanSvcInfo.getDataBeanArray(CNW01901SFConst.SVC_KEI_KOBETU_LIST);
				
				// 解約・キャンセル件数
				int rsnCancelCnt = 0;
				
				// サービス契約個別リスト分ループを実行
				for(int j = 0; j < svc_kei_kobetu_list.getCount(); j++)
				{
					// サービス契約個別情報
					X31SDataBeanAccess subbeanSvcKobetu = svc_kei_kobetu_list.getDataBean(j);
					
					// 対象ループサービス契約ステータスを保持
					String roopSvcKeiStat = (String) subbeanSvcKobetu.sendMessageString(CNW01901SFConst.SVC_KEI_STAT, X31CWebConst.DATABEAN_GET_VALUE);
					
					// 解約・キャンセルされたサービス契約の個数を保管
					if(roopSvcKeiStat.equals(SVC_KEI_STAT_910) ||
							roopSvcKeiStat.equals(SVC_KEI_STAT_920))
					{
						rsnCancelCnt++;
					}
					
					// 提供中のサービス契約が存在する場合、提供中サービス契約有無フラグに"true"を設定
					if(roopSvcKeiStat.equals(SVC_KEI_STAT_100) && !tkSvcKeiUmFlg)
					{
						tkSvcKeiUmFlg = true;
					}
				}
				
				// ループ完了後、対象サービス契約と解約・キャンセル済み契約の数が一致した場合、解約・キャンセル済みフラグに"true"を設定
				if(rsnCancelCnt == svc_kei_kobetu_list.getCount())
				{
					rsnCancelFlg = true;
				}
			}
		}
		
		// 提供中サービス契約有無フラグ判定
		// 解約・キャンセル済みフラグ判定
		if(tkSvcKeiUmFlg || rsnCancelFlg)
		{
			// 確定ボタン制御フラグ 非活性を設定
			paramBean[0].sendMessageBoolean(CNW01901SFConst.FIX_CTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
			// コンテンツリスト（全体）非活性フラグ 非活性を設定
			paramBean[0].sendMessageBoolean(CNW01901SFConst.CONT_LIST_HIKASEI_CTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);	
		}
		else
		{
			// 確定ボタン制御フラグ 活性を設定
			paramBean[0].sendMessageBoolean(CNW01901SFConst.FIX_CTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);
			// コンテンツリスト（全体）非活性フラグ 活性を設定
			paramBean[0].sendMessageBoolean(CNW01901SFConst.CONT_LIST_HIKASEI_CTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
		}
		
		// 入力有無フラグクリア
		paramBean[0].sendMessageString(CNW01901SFConst.INFLG, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		return true;
	}
	
	/**
	 * 戻るボタン押下時の処理を行います。<br>
	 * 
	 * @return 処理結果（true:正常終了、false:エラー）
	 * @throws Exception
	 */
	public boolean action_back() throws Exception
	{
		// 画面情報の取得
		JCCWebCommon.getScreenInfo(this);

		// 共通Bean取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// 親画面のBean取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 次画面移送用のマップ作成
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// 移送データ設定
		dataMap.put(CNW01901SFConst.SYSID, bean.sendMessageString(CNW01901SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE));

		// 遷移元の画面ID取得
		String nextScreenId = JCCWebCommon.getScreenId(this);
		String nextScreenNm = "";

		// 画面情報を設定
		JCCWebCommon.setScreenInfo(this, nextScreenId, dataMap);
		
		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, nextScreenId);
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, nextScreenNm);

		return true;
	}
	
	/**
	 * 確定ボタン押下時の処理を行います。<br>
	 * 
	 * @return 処理結果（true:正常終了、false:エラー）
	 * @throws Exception
	 */
	public boolean action_confirm() throws Exception
	{
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// サービスフォームBeanのアクセサを配列化する
		X31SDataBeanAccess[] paramBean = { bean };
		
		// beanよりサービス契約情報を取得
		X31SDataBeanAccessArray svc_kei_list = bean.getDataBeanArray(CNW01901SFConst.SVC_KEI_LIST);
		
		// beanよりコンテンツ申込情報を取得
		X31SDataBeanAccessArray cont_mskm_list = bean.getDataBeanArray(CNW01901SFConst.CONT_MSKM_LIST);
		
		// 選択されたプルダウンに紐づく申込番号を取得
		String mskmNo = JCHPulldownUtil.getSelectedValue(paramBean, CNW01901SFConst.DISP_UKETUEKE_NO_LIST, CNW01901SFConst.MSKM_NO,
				CNW01901SFConst.SELECT_VALUE);
		
		// コンテンツ申込変更有無フラグ
		Boolean contMskmFlg = false;
		
		//コンテンツ申込リストより申込状態の変更前後の比較を行う
		for(int i = 0; i < cont_mskm_list.getCount(); i++)
		{
			// コンテンツ申込情報
			X31SDataBeanAccess subbeanContMskmInfo = cont_mskm_list.getDataBean(i);
			// 変更前後コンテンツ申込状態フラグを取得
			Boolean bfContMskmStFlg = (Boolean) subbeanContMskmInfo.sendMessageBoolean(CNW01901SFConst.CHG_BF_CONT_MSKM_ST_FLG, X31CWebConst.DATABEAN_GET_VALUE);
			Boolean afContMskmStFlg = (Boolean) subbeanContMskmInfo.sendMessageBoolean(CNW01901SFConst.CHG_AF_CONT_MSKM_ST_FLG, X31CWebConst.DATABEAN_GET_VALUE);
			// 比較
			if(!(bfContMskmStFlg == afContMskmStFlg))
			{
				// 1件でも前後で変更がある場合、コンテンツ申込変更有無フラグにtrueを設定
				contMskmFlg = true;
				break;
			}
		}
		
		// コンテンツ申込変更有無フラグ判定
		// 変更が存在する場合
		if(contMskmFlg)
		{
			// ユースケースID格納用マップ生成
			HashMap paramMap = new HashMap();
			// ユースケースID設定
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CNSV0057");
			
			// マッピングクラスのインスタンス作成
			HashMap inMap = new HashMap();
			CNSV0057_CNSV0057OPDBMapper mapper = new CNSV0057_CNSV0057OPDBMapper();
			
			// 上りマッピング
			// コンテンツ一時申込更新CC
			mapper.setCNSV005701CC(inMap, mskmNo, svc_kei_list, cont_mskm_list);
			
			// 検索結果格納用マップ生成
			HashMap outputMap = new HashMap();
			
			// SQL呼出し
			X31CMessageResult msgResult = invokeService(paramMap, inMap,
					outputMap);
			
			// エラー処理 
			if(null != msgResult)
			{
				JCCWebCommon.setMessageInfo(this, msgResult);
				return true;
			}
		}
		else
		{
			// エラー処理 
			// 変更が存在しない場合
			JCCWebCommon.setMessageInfo(this, MESSAGE_ID_NO_CHG);
			return true;
		}
		
		JCCWebCommon.setMessageInfo(this, MESSAGE_ID_UPD_FIN, new String[] { UPD_FIN_1,UPD_FIN_2 });
		
		// 再描画用検索処理実行
		ukNoChoice();
	
		return true;
	}
	
	/**
	 * 申込単位分割処理<br>
	 * 
	 * @return 申込単位で分割されたサービスIF情報
	 * @throws Exception
	 */
	public ArrayList<HashMap<String, Object>> mskmTaniBnk(ArrayList<HashMap> childMapList) throws Exception
	{
		ArrayList<HashMap<String, Object>> mskmMainList = new ArrayList<HashMap<String, Object>>();
		HashMap<String, Object> mskmMap = new HashMap<String, Object>();
		HashMap<String, String> svcKeiMap = null;
		
		// 申込番号
		String mskmNo = null;
		
		for(int i = 0; i < childMapList.size(); i++)
		{
			HashMap childMap = (HashMap)childMapList.get(i);
			// 比較用に下記項目を保持
			
			if(i == 0)
			{
				// サービス契約情報以外の情報を設定
				// 申込番号
				mskmMap.put("mskm_no", (String) childMap.get("mskm_no"));
				// 表示用受付番号（利用場所情報）
				String uketukeNo = "受付番号　" + (String)childMap.get("mskmsho_no");
				String adWork = "　利用場所住所　" + 
						JZMAdOutputEdit.getPtn01(
						(String)childMap.get("kaisen_place_state_nm"),
						(String)childMap.get("kaisen_place_city_nm"),
						(String)childMap.get("kaisen_place_oaztsu_nm"),
						(String)childMap.get("kaisen_place_azcho_nm"),
						(String)childMap.get("kaisen_place_bnchigo"),
						(String)childMap.get("kaisen_place_adrtim"),
						(String)childMap.get("kaisen_place_adrrm"));
				mskmMap.put("disp_uketuke_no", uketukeNo + adWork);
				
				// 初回ループ時、
				// 申込番号
				mskmNo = (String) childMap.get("mskm_no");
				
				svcKeiMap = new HashMap<String, String>();
				
				// サービス契約情報をリストに格納
				svcKeiMap.put((String) childMap.get("svc_kei_no"), (String) childMap.get("svc_kei_stat"));

				// 最終レコードの場合、
				if((childMapList.size() - 1) == i)
				{
					// サービス契約情報を設定
					// サービス契約情報
					mskmMap.put("svc_kei_info", svcKeiMap);
					
					// 返却用の申込情報リストに格納
					mskmMainList.add(mskmMap);
				}
			}
			// 保持した申込番号と対象ループ申込番号が同じ場合、
			else if(mskmNo.equals((String) childMap.get("mskm_no")))
			{
				// サービス契約情報をmapに格納
				svcKeiMap.put((String) childMap.get("svc_kei_no"), (String) childMap.get("svc_kei_stat"));
				
				// 最終レコードの場合、
				if((childMapList.size() - 1) == i)
				{
					// サービス契約情報を設定
					// サービス契約情報
					mskmMap.put("svc_kei_info", svcKeiMap);
					
					// 返却用の申込情報リストに格納
					mskmMainList.add(mskmMap);
				}
			} 
			// 保持した申込番号と対象ループ申込番号が異なる場合、
			else
			{
				// サービス契約情報を申込情報mapに格納
				mskmMap.put("svc_kei_info", svcKeiMap);
				
				// 返却用の申込情報リストに格納
				mskmMainList.add(mskmMap);
				
				mskmMap = new HashMap<String, Object>();
				svcKeiMap = new HashMap<String, String>();
				
				// 次の申込情報よりサービス契約情報以外の情報を設定
				// 申込番号
				mskmMap.put("mskm_no", (String) childMap.get("mskm_no"));
				// 表示用受付番号（利用場所情報）
				String uketukeNo = "受付番号　" + (String)childMap.get("mskmsho_no");
				String adWork = "　利用場所住所　" + 
						JZMAdOutputEdit.getPtn01(
						(String)childMap.get("kaisen_place_state_nm"),
						(String)childMap.get("kaisen_place_city_nm"),
						(String)childMap.get("kaisen_place_oaztsu_nm"),
						(String)childMap.get("kaisen_place_azcho_nm"),
						(String)childMap.get("kaisen_place_bnchigo"),
						(String)childMap.get("kaisen_place_adrtim"),
						(String)childMap.get("kaisen_place_adrrm"));
				mskmMap.put("disp_uketuke_no", uketukeNo + adWork);
				
				// 比較用に下記項目を再取得
				// 申込番号
				mskmNo = (String) childMap.get("mskm_no");
				
				// サービス契約情報をリストに格納
				svcKeiMap.put((String) childMap.get("svc_kei_no"), (String) childMap.get("svc_kei_stat"));
				
				// 最終レコードの場合、
				if((childMapList.size() - 1) == i)
				{
					// サービス契約情報を設定
					// サービス契約情報
					mskmMap.put("svc_kei_info", svcKeiMap);
					
					// 返却用の申込情報リストに格納
					mskmMainList.add(mskmMap);
				}
			}
		}
		
		return mskmMainList;
	}
	
}