/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0434_KKSV0434OPDBMapper
*	ソースファイル名：KKSV0434_KKSV0434OPDBMapper.java
*	作成者			：FJ
*	日付			：2011年12月01日
*＜機能概要＞
*	BP（機器提供サービス契約情報変更初期表示サービス）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/12/01	FJ		新規作成
*	v3.00.00    2012/03/13	FJ) 古田   【ANK-0069-00-00】機器登録画面への商品名表示を修正。
*	v3.00.00    2012/03/13	FJ) 古田   【ANK-0116-00-00】ネット・オプションサービスの事務手数料および機器返送費用の変更対応。
*	v4.00.00	2012/10/11	FJ）緑川	【ANK-1188-00-00】宅内機器管理S：在庫更新処理の変更対応
*	v4.01.00	2012/12/08	FJ）鳩本	【IT1-2012-0002348】TVコース検索(eo光テレビ再送信)対応
*	v4.02.00	2012/12/27	FJ）野口	【IT1-2012-0002594】料金グループ判定対応
*	v4.03.00	2013/02/13	FJ）鳩本	【ST1-2013-0000273】障害対応
*	v4.04.00	2013/02/21	FJ）鳩本	【KT1-2013-0000162】障害対応
*	v5.00.00	2013/04/15	FJ）田原	【OT-2013-0000641】障害対応
*   v5.01.00    2013/09/18	FJ) 辛      【OM-2013-0001932】対応
*   v7.00.00    2013/10/21  FJ)田原     【ANK-1578-00-00】対応
*   v7.00.01    2014/01/15  FJ)古田     【IT1-2014-0000012】機器変更型番空白行対応
*   v33.00.00   2017/07/07  FJ)謝       【ANK-2979-00-00】(客B)多機能ルーターキャンセル後の元ルーター回復
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.util.JPCUtilCommon;
import eo.web.webview.KKW03301SF.KKW03301SFConst;
import eo.web.webview.common.JKKCommonConst;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class KKSV0434_KKSV0434OPDBMapper {
	

	
	/**
	 * 機器提供サービス契約ステータスが「解約済」
	 */
	private static final String KKTK_SVC_KEI_STAT_KAIYAKU = "910";
	/**
	 * 機器提供サービス契約ステータスが「キャンセル済」
	 */
	private static final String KKTK_SVC_KEI_STAT_CANCEL = "920";
	
	/** 不明機器型式区分"1":不明機器型式 */
	private static final String FUMEI_KIKI_MODEL_KBN_FUMEI = "1";
	
	/**
	 * コンストラクタ
	 */
	public KKSV0434_KKSV0434OPDBMapper(){
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器提供サービス契約情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV0434WORK01(X31SDataBeanAccess[] bean, HashMap outputMap) 
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 配送ステータス：haiso_stat
		parentMap.put("haiso_stat", bean[0].sendMessageString(KKW03301SFConst.HAISO_STAT, X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("SCRNDATA", parentMap);
		
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器提供サービス契約情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV043401SC(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_kktk_svc_kei_no", bean[0].sendMessageString(KKW03301SFConst.KKTK_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 基準日 → 機器提供サービス契約一意照会.ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString(KKW03301SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));
		
		// BCAS
		parentMap.put("bcas_kktk_svc_cd", bean[0].sendMessageString(KKW03301SFConst.BCAS_KKTK_SVC_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// CCAS
		parentMap.put("ccas_kktk_svc_cd", bean[0].sendMessageString(KKW03301SFConst.CCAS_KKTK_SVC_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// END 
		
		outputMap.put("KKSV043401SC", parentMap);
						
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器提供サービス契約情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV043424SC(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);
		
		// 提供種別コード（CD00212）取得
		parentMap.put("key_cd_sbt_cd", "CD00212");

		// 基準日 → 提供種別コード取得.ＫＥＹ＿基準年月日
		parentMap.put("key_stdardymd", bean[0].sendMessageString(KKW03301SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV043424SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器提供サービス契約情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV043404SC(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_std_ymd", bean[0].sendMessageString(KKW03301SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV043404SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器提供サービス契約情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV043405SC(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);

		// サービス契約番号 → サービス契約＜eoモバイル＞一意照会.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", bean[0].sendMessageString(KKW03301SFConst.KEY_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV043405SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器提供サービス契約情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV043406SC(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_rsv_aply_ymd", bean[0].sendMessageString(KKW03301SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV043406SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器提供サービス契約情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV043407SC(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);
		
		// 販売種別コード（CD00348）取得
		parentMap.put("key_cd_sbt_cd", "CD00348");

		// 基準日 → 販売種別コード取得.ＫＥＹ＿基準年月日
		parentMap.put("key_stdardymd", bean[0].sendMessageString(KKW03301SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV043407SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器提供サービス契約情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV043408SC(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);
		
		// 付加情報コード（CD00866）取得
		parentMap.put("key_cd_sbt_cd", "CD00866");

		// 基準日 → 付加情報コード取得.ＫＥＹ＿基準年月日
		parentMap.put("key_stdardymd", bean[0].sendMessageString(KKW03301SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV043408SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器提供サービス契約情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV043409SC(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);
		
		// 有無コード（CD00002）取得
		parentMap.put("key_cd_sbt_cd", "CD00002");

		// 基準日 → 有無コード取得.ＫＥＹ＿基準年月日
		parentMap.put("key_stdardymd", bean[0].sendMessageString(KKW03301SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV043409SC", parentMap);
						
		return outputMap;
	}

//	/**
//	 * 上りマッピングをする
//	 * @param bean　[0]：機器提供サービス契約情報変更
//	 * @param outputMap
//	 * @param func_code　機能コード
//	 */
//	@SuppressWarnings("unchecked")
//	public HashMap setKKSV043411SC(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_unyo_ymd", bean[0].sendMessageString(KKW03301SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));
//
//		outputMap.put("KKSV043411SC", parentMap);
//						
//		return outputMap;
//	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器提供サービス契約情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV043412SC(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);

		// サービス契約内訳（2） → 料金コース一覧照会（料金グループコード）.ＫＥＹ＿料金コース種別コード
		parentMap.put("key_pcrs_sbt_cd", "2");
		
		// サービス契約共通情報一覧照会明細
		X31SDataBeanAccess svcKeiCommon = bean[0].getDataBeanArray(KKW03301SFConst.EKK0081B010CBSMSG1LIST).getDataBean(0);
		/* ++++++++++ v4.01.00 変更開始 ++++++++++ */
//		parentMap.put("prc_grp_cd", svcKeiCommon.sendMessageString(KKW03301SFConst.PRC_GRP_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
		String prc_grp_cd = svcKeiCommon.sendMessageString(KKW03301SFConst.PRC_GRP_CD_02, X31CWebConst.DATABEAN_GET_VALUE);
		
		if(JKKCommonConst.PRC_GRP_CD_13.equals(prc_grp_cd))
		{
			prc_grp_cd = JKKCommonConst.PRC_GRP_CD_11;
		}
		
		parentMap.put("prc_grp_cd", prc_grp_cd);
		/* ++++++++++ v4.01.00 変更完了 ++++++++++ */
		
		/* ++++++++++ v4.02.00 追加開始 ++++++++++ */
		// ＴＶコース判別用グループコード
		String tv_prc_grp_cd = JKKCommonConst.PRC_GRP_CD_11 + "," 
							+ JKKCommonConst.PRC_GRP_CD_12 	+ ","
							+ JKKCommonConst.PRC_GRP_CD_13;
		
		parentMap.put("tv_prc_grp_cd", tv_prc_grp_cd);
		/* ++++++++++ v4.02.00 追加終了 ++++++++++ */
		
		// 運用日
		parentMap.put("key_base_ymd", bean[0].sendMessageString(KKW03301SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV043412SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器提供サービス契約情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV043413SC(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_haiso_no", bean[0].sendMessageString(KKW03301SFConst.HAISO_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 基準日 → 配送一意照会.ＫＥＹ＿運用日付
		parentMap.put("key_unyo_ymd", bean[0].sendMessageString(KKW03301SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV043413SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器提供サービス契約情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV043423SC(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);

//		【OM-2013-0001932】対応
		// サービス別宅内機器型式候補一覧照会.ＫＥＹ＿登録可否
//		parentMap.put("key_add_kh", "1");
//		【OM-2013-0001932】対応
		
		parentMap.put("key_base_ymd", bean[0].sendMessageString(KKW03301SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));
		
		// サービス契約の料金グループコード
		// サービス契約共通情報一覧照会明細
		X31SDataBeanAccess svcKeiCommon = bean[0].getDataBeanArray(KKW03301SFConst.EKK0081B010CBSMSG1LIST).getDataBean(0);
		parentMap.put("prc_grp_cd", svcKeiCommon.sendMessageString(KKW03301SFConst.PRC_GRP_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
		// 料金コースコード
		parentMap.put("pcrs_cd", svcKeiCommon.sendMessageString(KKW03301SFConst.PCRS_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 型式検索条件料金グループコードを設定
		parentMap.put("tkml_jk_prc_gp_cd", bean[0].sendMessageString(KKW03301SFConst.TKML_JK_PRC_GP_CD, X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV043423SC", parentMap);
						
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器提供サービス契約登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV043427SC(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(KKW03301SFConst.KEY_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV043427SC", parentMap);
						
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器提供サービス契約登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV043429CC(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);
		
		ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
		
		X31SDataBeanAccessArray kojiAnknList = bean[0].getDataBeanArray(KKW03301SFConst.KJ_ANKEN_NO_CHILD);
		X31SDataBeanAccess kojiAnknInf = kojiAnknList.getDataBean(0);

		
		int length = (Integer)kojiAnknInf.sendMessage(KKW03301SFConst.KJ_ANKEN_NO_LIST_07, X31CWebConst.DATABEAN_GET_COUNT);
		
		HashMap<String, Object> childMap = null;
		for(int i=0;i<length;i++)
		{
			childMap = new HashMap<String, Object>();
			
			childMap.put("kojiak_no", kojiAnknInf.sendMessageString(KKW03301SFConst.KJ_ANKEN_NO_LIST_07, X31CWebConst.DATABEAN_GET_VALUE, i));
			
			list.add(childMap);
		}
		
		
		parentMap.put("kojiak_info_list", list);
		
		outputMap.put("KKSV043429CC", parentMap);
						
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器提供サービス契約登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV043430SC(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_ope_date", bean[0].sendMessageString(KKW03301SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV043430SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器提供サービス契約登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV043431CC(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_unyo_ymd", bean[0].sendMessageString(KKW03301SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV043431CC", parentMap);
						
		return outputMap;
	}
	
	@SuppressWarnings("unchecked")
	public HashMap setKKSV043432CC(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("unyo_ymd", bean[0].sendMessageString(KKW03301SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約ステータス
		parentMap.put("svc_kei_stat",  bean[0].sendMessageString(KKW03301SFConst.SVC_KEI_STAT, X31CWebConst.DATABEAN_GET_VALUE));
		
		/* ++++++++++ v7.00.00 追加開始 ++++++++++ */
		// 機器提供サービス契約番号 → 機器提供サービス契約一意照会.ＫＥＹ＿機器提供サービス契約番号
		parentMap.put("taknkiki_model_cd", bean[0].sendMessageString(KKW03301SFConst.TAKNKIKI_MODEL_CD, X31CWebConst.DATABEAN_GET_VALUE));
		/* ++++++++++ v7.00.00 追加終了 ++++++++++ */
		
		// サービス契約共通情報一覧の取得
		X31SDataBeanAccessArray subArray = bean[0].getDataBeanArray(KKW03301SFConst.EKK0081B010CBSMSG1LIST);
		X31SDataBeanAccess subBean = subArray.getDataBean(0);
		
		// 料金グループコード
		parentMap.put("prc_grp_cd",  subBean.sendMessageString(KKW03301SFConst.PRC_GRP_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
		
		// コード区分（機器提供種別コード）
		// コード区分（販売種別）
		// コード区分（付加情報コード）
		// 料金コースコード
		// 機器指定時管理場所識別コード
		// 機器指定時工事会社コード
		// 機器引当指定倉庫コード
		// 機器指定時預託先オフィスコード
		
		outputMap.put("KKSV043432CC", parentMap);
		
		return outputMap;
	}

	
	/* ++++++++++ v7.00.00追加開始 ++++++++++ */
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器提供サービス契約登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKikiAddInfoCC(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_stdardymd", bean[0].sendMessageString(KKW03301SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));

		// ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", bean[0].sendMessageString(KKW03301SFConst.KEY_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		
		// サービスコード
		parentMap.put("svc_cd", bean[0].sendMessageString(KKW03301SFConst.SVC_CD, X31CWebConst.DATABEAN_GET_VALUE));
		
		// ベーシックルータ判別用ＯＰＭＳルータ種別コードを取得します。（業務パラメタから取得した値）
		parentMap.put("opms_rout_sbt_basic", bean[0].sendMessageString(KKW03301SFConst.OPMS_ROUT_SBT_BASIC, X31CWebConst.DATABEAN_GET_VALUE));
		
		// BBRの機器提供サービスコードを取得します。（業務パラメタから取得した値）
		parentMap.put("bbr_kktk_svc_cd", bean[0].sendMessageString(KKW03301SFConst.BBR_KKTK_SVC_CD, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 機器提供サービスコード（光電話用ＶＡ）を取得します。（業務パラメタから取得した値）
		parentMap.put("hkrtel_kk_svc_cd", bean[0].sendMessageString(KKW03301SFConst.HKRTEL_KK_SVC_CD, X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KikiAddInfoCC", parentMap);
						
		return outputMap;
	}
	/* ++++++++++ v7.00.00追加終了 ++++++++++ */
// ANK-2979-00-00 ADD START
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器提供サービス契約一覧
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param tknrtList　多機能ルーターリスト
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV043433CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code,
			ArrayList<HashMap<String, String>> tknrtList) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}
		
		// 多機能ルーターリストが無い場合は実行しない
		if (tknrtList == null || tknrtList.size() == 0)
		{
			return null;
		}
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// 多機能ルーターリストを格納
		parentMap.put("tknrtList", tknrtList);
		
		outputMap.put("KKSV043433CC", parentMap);
		
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器提供サービス契約一覧
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param tknrtList　多機能ルーターリスト
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV043434SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code,
			ArrayList<HashMap<String, String>> tknrtList) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}
		
		// 多機能ルーターリストが無い場合は実行しない
		if (tknrtList == null || tknrtList.size() == 0)
		{
			return null;
		}
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// 機器提供サービス契約番号 → 機器提供サービス契約一覧照会.ＫＥＹ＿機器提供サービス契約番号
		parentMap.put("key_kktk_svc_kei_no", bean[0].sendMessageString(KKW03301SFConst.KKTK_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV043434SC", parentMap);
						
		return outputMap;
	}
// ANK-2979-00-00 ADD END

	/**
	 * 下りマッピング
	 * @param bean　[0]：機器提供サービス契約情報変更
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV043424SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV043424SC")){
			parentMap = (HashMap)outputMap.get("KKSV043424SC");
		}
		
		Map<String, Object> tksbNameMap = new HashMap<String, Object>();

		if(parentMap.containsKey("EZM0171B012CBSMsg1List")){
			ArrayList childList = (ArrayList)parentMap.get("EZM0171B012CBSMsg1List");
			
			for(int i = 0; i < childList.size(); i++){

				HashMap childMap = (HashMap)childList.get(i);
				
				// コード区分をキーにし格納します。
				tksbNameMap.put((String)childMap.get("cd_div"), (String)childMap.get("cd_div_nm"));
			}
		}
		
		outputMap.put("tksbNameMap", tksbNameMap);

		return bean;
	}
	
	/* ++++++++++ v4.03.00 追加開始 ++++++++++ */
	/**
	 * 機器提供サービス契約一意照会結果を機器型式(旧)へ設定する。
	 * <br>
	 * @param bean
	 * @param outputMap
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV043401SC(X31SDataBeanAccess[] bean, HashMap outputMap){
	
		// 宅内機器型式コード取得結果を機器型番(旧)に設定する。
		// 宅内機器型式コードを宅内機器型式(旧)へ保持
		bean[0].sendMessageString(KKW03301SFConst.KIKI_MODEL_OLD, X31CWebConst.DATABEAN_SET_VALUE,
				getNullToStr(getKktkSvcKeiInfo(outputMap, "taknkiki_model_cd")));
		
		/* ++++++++++ v7.00.01 変更開始 ++++++++++ */
		// 機器提供サービスコードを格納
		// 更新確認時のパラメータで使用
		bean[0].sendMessageString(KKW03301SFConst.EDIT_KKTK_SVC_CD, X31CWebConst.DATABEAN_SET_VALUE, getKktkSvcKeiInfo(outputMap, "kktk_svc_cd"));
		/* ++++++++++ v7.00.01 変更完了 ++++++++++ */
		
		return bean;
	}
	/* ++++++++++ v4.03.00 追加完了 ++++++++++ */
	
	/**
	 * 下りマッピング
	 * @param bean　[0]：機器提供サービス契約情報変更
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV043404SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV043404SC")){
			parentMap = (HashMap)outputMap.get("KKSV043404SC");
		}
		
		// コードマスタの提供種別名称取得
		HashMap<String, Object> tksbNameMap = (HashMap<String, Object>)outputMap.get("tksbNameMap");

		ArrayList childList = null;
		
		X31SDataBeanAccessArray listKKSV043404SC_tk_sbt_model_list_EDK0461B020CBSMsg1List = bean[0].getDataBeanArray(KKW03301SFConst.TK_SBT_MODEL_LIST);
		listKKSV043404SC_tk_sbt_model_list_EDK0461B020CBSMsg1List.clearArray();
		
		if(parentMap.containsKey("EDK0461B020CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EDK0461B020CBSMsg1List");
			X31SDataBeanAccess subbean = listKKSV043404SC_tk_sbt_model_list_EDK0461B020CBSMsg1List.addDataBean();

			for(int i = 0; i < childList.size(); i++){
				
				HashMap childMap = (HashMap)childList.get(i);
			
				// 機器型式提供種別リスト.宅内機器型式コード ← 型式対象機器提供種別一覧照会.型式対象機器提供種別一覧照会明細.宅内機器型式コード
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.TAKNKIKI_MODEL_CD_09, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("taknkiki_model_cd"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.TAKNKIKI_MODEL_CD_09, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// 機器型式提供種別リスト.機器提供種別コード ← 型式対象機器提供種別一覧照会.型式対象機器提供種別一覧照会明細.機器提供種別コード
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.KKTK_SBT_CD_09, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("kktk_sbt_cd"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.KKTK_SBT_CD_09, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}

				// 機器型式提供種別リスト.機器提供種別コード名称 ← 型式対象機器提供種別一覧照会.型式対象機器提供種別一覧照会明細.機器提供種別コード名称
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.KKTK_SBT_NM_09, X31CWebConst.DATABEAN_ADD_VALUE, (String)tksbNameMap.get(childMap.get("kktk_sbt_cd")));
				} else {
					subbean.sendMessageString(KKW03301SFConst.KKTK_SBT_NM_09, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
			}
		}
		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：機器提供サービス契約情報変更
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV043407SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV043407SC")){
			parentMap = (HashMap)outputMap.get("KKSV043407SC");
		}

		ArrayList childList = null;
		
		/* ++++++++++ v5.00.01 変更開始 ++++++++++ */
		//X31SDataBeanAccessArray listKKSV043407SC_hambai_sbt_EZM0171B012CBSMsg1List = bean[0].getDataBeanArray(KKW03301SFConst.HAMBAI_SBT);
		X31SDataBeanAccessArray listKKSV043407SC_hambai_sbt_EZM0171B012CBSMsg1List = bean[0].getDataBeanArray(KKW03301SFConst.HAMBAI_SBT_HOJI);
		/* ++++++++++ v5.00.01 変更終了 ++++++++++ */
		listKKSV043407SC_hambai_sbt_EZM0171B012CBSMsg1List.clearArray();
		childList = null;
		if(parentMap.containsKey("EZM0171B012CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EZM0171B012CBSMsg1List");
			
			X31SDataBeanAccess subbean = listKKSV043407SC_hambai_sbt_EZM0171B012CBSMsg1List.addDataBean();
			
			// 空白行追加
			subbean.sendMessageString(KKW03301SFConst.CD_DIV_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, "");
			subbean.sendMessageString(KKW03301SFConst.CD_DIV_NM_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, "");
			subbean.sendMessageString(KKW03301SFConst.DEFAULT_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, "");
			
			int cnt = 1;

			// 添え字用桁数
			int count = String.valueOf(childList.size()).length();
			String index = "";

			for(int i = 0; i < childList.size(); i++){

				index = JPCUtilCommon.fillZero(Integer.toString(cnt), count, false);
				HashMap childMap = (HashMap)childList.get(i);

			
				// 販売種別.コードタイプコード値リスト ← 販売種別コード取得.コード名称管理コード区分一覧照会明細.コード区分
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// 販売種別.コードタイプ名称リスト ← 販売種別コード取得.コード名称管理コード区分一覧照会明細.コード区分名
				if (childMap != null) {
					/* ++++++++++ v5.00.01 変更開始 ++++++++++ */
					//subbean.sendMessageString(KKW03301SFConst.CD_DIV_NM_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, index + "．" + (String)childMap.get("cd_div_nm"));
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_NM_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div_nm"));
					/* ++++++++++ v5.00.01 変更終了 ++++++++++ */
				} else {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_NM_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// 販売種別.初期設定コードリスト ← 販売種別コード取得.コード名称管理コード区分一覧照会明細.初期表示コード
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.DEFAULT_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("shk_dsp_cd"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.DEFAULT_CD_LIST_06, X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				cnt++;
			}
		}
		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：機器提供サービス契約情報変更
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV043408SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV043408SC")){
			parentMap = (HashMap)outputMap.get("KKSV043408SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listKKSV043408SC_huka_info_EZM0171B012CBSMsg1List = bean[0].getDataBeanArray(KKW03301SFConst.HUKA_INFO);
		listKKSV043408SC_huka_info_EZM0171B012CBSMsg1List.clearArray();
		childList = null;
		if(parentMap.containsKey("EZM0171B012CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EZM0171B012CBSMsg1List");
			
			X31SDataBeanAccess subbean = listKKSV043408SC_huka_info_EZM0171B012CBSMsg1List.addDataBean();
			
			/* ++++++++++ v4.04.00 追加開始 ++++++++++ */
			// 空白行を追加する
			// 付加情報.コードタイプコード値リスト
			subbean.sendMessageString(KKW03301SFConst.CD_DIV_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, "");
			// 付加情報.コードタイプ名称リスト
			subbean.sendMessageString(KKW03301SFConst.CD_DIV_NM_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, "");
			// 付加情報.初期設定コードリスト
			subbean.sendMessageString(KKW03301SFConst.DEFAULT_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, "");
			/* ++++++++++ v4.04.00 追加完了 ++++++++++ */
			
			for(int i = 0; i < childList.size(); i++){

				HashMap childMap = (HashMap)childList.get(i);
			
				// 付加情報.コードタイプコード値リスト ← 付加情報コード取得.コード名称管理コード区分一覧照会明細.コード区分
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// 付加情報.コードタイプ名称リスト ← 付加情報コード取得.コード名称管理コード区分一覧照会明細.コード区分名
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_NM_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div_nm"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_NM_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// 付加情報.初期設定コードリスト ← 付加情報コード取得.コード名称管理コード区分一覧照会明細.初期表示コード
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.DEFAULT_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("shk_dsp_cd"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.DEFAULT_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
			}
		}


		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：機器提供サービス契約情報変更
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV043409SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV043409SC")){
			parentMap = (HashMap)outputMap.get("KKSV043409SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listKKSV043409SC_kiki_souryo_um_EZM0171B012CBSMsg1List = bean[0].getDataBeanArray(KKW03301SFConst.KIKI_SOURYO_UM);
		listKKSV043409SC_kiki_souryo_um_EZM0171B012CBSMsg1List.clearArray();
		childList = null;
		if(parentMap.containsKey("EZM0171B012CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EZM0171B012CBSMsg1List");
			
			X31SDataBeanAccess subbean = listKKSV043409SC_kiki_souryo_um_EZM0171B012CBSMsg1List.addDataBean();

			// 添え字用桁数
			int count = String.valueOf(childList.size()).length();
			String index = "";

			for(int i = 0; i < childList.size(); i++){
				
				index = JPCUtilCommon.fillZero(Integer.toString(i + 1), count, false);
				HashMap childMap = (HashMap)childList.get(i);
			
				// 機器送料有無.コードタイプコード値リスト ← 有無コード取得.コード名称管理コード区分一覧照会明細.コード区分
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// 機器送料有無.コードタイプ名称リスト ← 有無コード取得.コード名称管理コード区分一覧照会明細.コード区分名
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_NM_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, index + "．" + (String)childMap.get("cd_div_nm"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_NM_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// 機器送料有無.初期設定コードリスト ← 有無コード取得.コード名称管理コード区分一覧照会明細.初期表示コード
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.DEFAULT_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("shk_dsp_cd"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.DEFAULT_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
			}
		}


		return bean;
	}

//	/**
//	 * 下りマッピング
//	 * @param bean　[0]：機器提供サービス契約情報変更
//	 * @param outputMap
//	 */
//	@SuppressWarnings("unchecked")
//	public X31SDataBeanAccess[] getKKSV043411SC(X31SDataBeanAccess[] bean, HashMap outputMap){
//
//		HashMap parentMap = null;
//		if(outputMap.containsKey("KKSV043411SC")){
//			parentMap = (HashMap)outputMap.get("KKSV043411SC");
//		}
//
//		ArrayList childList = null;
//		
//
//		X31SDataBeanAccessArray listKKSV043411SC_soko_nm_EDK0091B010CBSMsg1List = bean[0].getDataBeanArray(KKW03301SFConst.SOKO_INFO);
//		listKKSV043411SC_soko_nm_EDK0091B010CBSMsg1List.clearArray();
//		childList = null;
//		if(parentMap.containsKey("EDK0091B010CBSMsg1List")){
//			childList = (ArrayList)parentMap.get("EDK0091B010CBSMsg1List");
//			
//			X31SDataBeanAccess subbean = listKKSV043411SC_soko_nm_EDK0091B010CBSMsg1List.addDataBean();
//
//			// 添え字用桁数
//			int count = String.valueOf(childList.size()).length();
//			String index = "";
//
//			for(int i = 0; i < childList.size(); i++){
//
//				index = JPCUtilCommon.fillZero(Integer.toString(i + 1), count, false);
//				HashMap childMap = (HashMap)childList.get(i);
//			
//				// 倉庫名.倉庫コードリスト ← 倉庫照会一覧.倉庫一覧照会明細.倉庫コード
//				if (childMap != null) {
//					subbean.sendMessageString(KKW03301SFConst.SOKO_CD_LIST_08, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("soko_cd"));
//				} else {
//					subbean.sendMessageString(KKW03301SFConst.SOKO_CD_LIST_08, X31CWebConst.DATABEAN_ADD_VALUE, new String());
//				}
//				// 倉庫名.倉庫名リスト ← 倉庫照会一覧.倉庫一覧照会明細.倉庫名
//				if (childMap != null) {
//					subbean.sendMessageString(KKW03301SFConst.SOKO_NM_LIST_08, X31CWebConst.DATABEAN_ADD_VALUE, index + "．" + (String)childMap.get("soko_nm"));
//				} else {
//					subbean.sendMessageString(KKW03301SFConst.SOKO_NM_LIST_08, X31CWebConst.DATABEAN_ADD_VALUE, new String());
//				}
//			}
//		}
//
//
//		return bean;
//	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：機器提供サービス契約情報変更
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV043412SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV043412SC")){
			parentMap = (HashMap)outputMap.get("KKSV043412SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listKKSV043412SC_tv_course_EKK0791B004CBSMsg1List = bean[0].getDataBeanArray(KKW03301SFConst.TV_COURSE);
		listKKSV043412SC_tv_course_EKK0791B004CBSMsg1List.clearArray();
		childList = null;
		if(parentMap.containsKey("EKK0791B004CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EKK0791B004CBSMsg1List");
			
			X31SDataBeanAccess subbean = listKKSV043412SC_tv_course_EKK0791B004CBSMsg1List.addDataBean();

			// 添え字用桁数
			int count = String.valueOf(childList.size()).length();
			String index = "";

			for(int i = 0; i < childList.size(); i++){

				index = JPCUtilCommon.fillZero(Integer.toString(i + 1), count, false);
				HashMap childMap = (HashMap)childList.get(i);
			
				// ＴＶコース.料金コースコード（料金コース） ← 料金コース一覧照会（料金グループコード）.料金コース一覧照会（料金グループコード）明細.料金コースコード（料金コース）
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("KK0791_pcrs_cd"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// ＴＶコース.料金コース名 ← 料金コース一覧照会（料金グループコード）.料金コース一覧照会（料金グループコード）明細.料金コース名
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_NM_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, index + "．" + (String)childMap.get("pcrs_nm"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_NM_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				
				subbean.sendMessageString(KKW03301SFConst.DEFAULT_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, "");
			}
		}
		
		/* ++++++++++ v4.02.00 追加開始 ++++++++++ */
		else {
			X31SDataBeanAccess subbean = listKKSV043412SC_tv_course_EKK0791B004CBSMsg1List.addDataBean();
		}
		/* ++++++++++ v4.02.00 追加終了 ++++++++++ */
		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：機器提供サービス契約情報変更
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV043423SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV043423SC")){
			parentMap = (HashMap)outputMap.get("KKSV043423SC");
		}

		X31SDataBeanAccessArray kiki = bean[0].getDataBeanArray(KKW03301SFConst.KIKI_MODEL_HOJI);
		kiki.clearArray();
		
		X31SDataBeanAccess subbean = kiki.addDataBean();

		ArrayList childList = null;
		
		if(parentMap.containsKey("EKK1861B001CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK1861B001CBSMsg1List");
			
			// 選択した型式が不明機器型式かで処理振分ける fumei_kiki_model_kbn
			String fumei_kiki_model_kbn =  bean[0].sendMessageString(KKW03301SFConst.FUMEI_KIKI_MODEL_KBN,  X31CWebConst.DATABEAN_GET_VALUE);
			
			if(FUMEI_KIKI_MODEL_KBN_FUMEI.equals(fumei_kiki_model_kbn))
			{
				// 不明機器型式の場合
				getTaknkikiModelList_Fumei(bean, subbean, outputMap, childList);
			}
			else
			{
				// 不明機器型式以外の場合
				getTaknkikiModelList_Normal(bean, subbean, outputMap, childList);
			}
		}
		
		return bean;
	}
	
	@SuppressWarnings("unchecked")
	private void getTaknkikiModelList_Fumei(X31SDataBeanAccess[] bean, X31SDataBeanAccess subbean, HashMap outputMap, ArrayList childList)
	{
		// 宅内機器種別コードを取得
		String tknKkSbtCd = getKktkSvcKeiInfo(outputMap, "taknkiki_sbt_cd");
		
		// 出力件数を求める
		int soejiKeta = 0;
		
		for(int i = 0; i < childList.size(); i++){

			HashMap childMap = (HashMap)childList.get(i);
			String taknKkSbtCd_list= (String)childMap.get("taknkiki_sbt_cd");
			
			// 宅内機器種別コードが同じレコード件数を求める。
			if(tknKkSbtCd.equals(taknKkSbtCd_list))
			{
				soejiKeta++;
			}
		}
		
		// 添え字用桁数
		int count = String.valueOf(soejiKeta).length();
		
		// 出力連番用
		int cnt = 1;
		
		// 機器型式プルダウンに空白行追加
		setEmptyList(subbean);
		
		// 機器型式プルダウンの作成
		for(int i = 0; i < childList.size(); i++)
		{
			HashMap childMap = (HashMap)childList.get(i);
			
			// 出力判定
			if(!(tknKkSbtCd.equals((String)childMap.get("taknkiki_sbt_cd"))))
			{
				continue;
			}
			
			// 出力行の設定
			setKikiModelList(subbean, childMap, cnt, count);
			cnt++;
		}
	}
	
	/**
	 * 機器型式プルダウン（不明機器型式以外の場合）を作成します。
	 * @param bean
	 * @param subbean
	 * @param outputMap
	 * @param childList
	 */
	@SuppressWarnings("unchecked")
	private void getTaknkikiModelList_Normal(X31SDataBeanAccess[] bean, X31SDataBeanAccess subbean, HashMap outputMap, ArrayList childList)
	{
		// 宅内機器種別コードを取得
		String tknKkSbtCd = getKktkSvcKeiInfo(outputMap, "taknkiki_sbt_cd");
		
		// 宅内機器種別コードＢ−ＣＡＳ判定
		String bcasTknKikiSbtCd = bean[0].sendMessageString(KKW03301SFConst.TKNKIKI_SBT_CD_BCAS,  X31CWebConst.DATABEAN_GET_VALUE);
		// 宅内機器種別コードＣ−ＣＡＳ判定
		String ccasTknKikiSbtCd = bean[0].sendMessageString(KKW03301SFConst.TKNKIKI_SBT_CD_CCAS,  X31CWebConst.DATABEAN_GET_VALUE);
		// 宅内機器種別コードSTB
		String kktkSbtCdStb = bean[0].sendMessageString(KKW03301SFConst.TKNKIKI_SBT_CD_STB,  X31CWebConst.DATABEAN_GET_VALUE);
		
		int soejiKeta = childList.size();
		
		// 対象データがSTBまたはＢ−ＣＡＳまたはＣ−ＣＡＳの場合、
		if(kktkSbtCdStb.equals(tknKkSbtCd) || bcasTknKikiSbtCd.equals(tknKkSbtCd) || ccasTknKikiSbtCd.equals(tknKkSbtCd))
		{
			// Ｂ−ＣＡＳまたはＣ−ＣＡＳの型式の件数
			soejiKeta = getSoejiKeta(childList, tknKkSbtCd);
		}
		else
		{
			// Ｂ−ＣＡＳ、Ｃ−ＣＡＳの型式を除去
			soejiKeta = getBcasCcasOtherKeta(childList, bcasTknKikiSbtCd, ccasTknKikiSbtCd);
		}
		
		// 添え字用桁数
		int count = String.valueOf(soejiKeta).length();
//		String index = "";
//		
//		String kikiMdlCd = "";
//		String kikiMdlNm = "";
		
		int cnt = 1;
		
//		// 空白行追加
//		subbean.sendMessageString(KKW03301SFConst.KIKI_MODEL_CD_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, "");
//		subbean.sendMessageString(KKW03301SFConst.KIKI_MODEL_NM_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, "");
//		subbean.sendMessageString(KKW03301SFConst.KIKI_SBT_05, X31CWebConst.DATABEAN_ADD_VALUE, "");
//		subbean.sendMessageString(KKW03301SFConst.KIKI_SEIZO_NO_UM_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, "");
//		subbean.sendMessageString(KKW03301SFConst.YRYO_MRYO_CD_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, "");
//		subbean.sendMessageString(KKW03301SFConst.HOYU_ROUTER_CD_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, "");
//		subbean.sendMessageString(KKW03301SFConst.MAC_INF_UM_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, "");
//		subbean.sendMessageString(KKW03301SFConst.KOJI_COMP_HAISO_UM_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, "");
//		subbean.sendMessageString(KKW03301SFConst.HAISO_YOKSI_UM_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, "");
//		subbean.sendMessageString(KKW03301SFConst.KOJI_AF_SHKA_UM_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, "");
//		subbean.sendMessageString(KKW03301SFConst.USIM_UM_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, "");
//		subbean.sendMessageString(KKW03301SFConst.OPMS_ROUTER_KIND_CD_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, "");
		// 機器型式プルダウンに空白行追加
		/* ++++++++++ v7.00.00 削除開始 ++++++++++ */
		setEmptyList(subbean);
		/* ++++++++++ v7.00.00 削除終了 ++++++++++ */
		for(int i = 0; i < childList.size(); i++)
		{
			HashMap childMap = (HashMap)childList.get(i);
			
			// 対象データがSTBまたはＢ−ＣＡＳまたはＣ−ＣＡＳの場合、同じ宅内機器種別以外は対象外とします。
			if(kktkSbtCdStb.equals(tknKkSbtCd) || bcasTknKikiSbtCd.equals(tknKkSbtCd) || ccasTknKikiSbtCd.equals(tknKkSbtCd))
			{
				// 宅内機器種別コードが同じもののみ設定します。
				if(!tknKkSbtCd.equals(childMap.get("taknkiki_sbt_cd")))
				{
					continue;
				}
			}
			else
			{
				// B-CAS、C-CASデータは除外します。
				if(bcasTknKikiSbtCd.equals(childMap.get("taknkiki_sbt_cd")) || ccasTknKikiSbtCd.equals(childMap.get("taknkiki_sbt_cd")))
				{
					continue;
				}
			}
			
			// 宅内機器型式が不明機器型式の場合、除外します。
			if(isFumeiKiki(bean[0], (String)childMap.get("taknkiki_model_cd")))
			{
				continue;
			}
			
			/* ++++++++++ v4.03.00 追加開始 ++++++++++ */
			
			// 画面選択した機器の型式が未設定かつ受付済みの場合、機器提供サービスコードによる絞り込みチェックを行う。
			if(isTaknkikiKktkSbtCheck(bean[0], outputMap, childMap))
			{
				continue;
			}
			
			/* ++++++++++ v4.03.00 追加完了 ++++++++++ */
			
			// 出力行の設定
			setKikiModelList(subbean, childMap, cnt, count);
			cnt++;
		}
	}
	
	/* ++++++++++ v4.03.00 追加開始 ++++++++++ */
	@SuppressWarnings("unchecked")
	private boolean isTaknkikiKktkSbtCheck(X31SDataBeanAccess bean, HashMap outputMap, HashMap childMap)
	{
		// true:処理読み飛ばす
		// false:処理読み飛ばさず続行
		
		// 機器提供サービス契約一意照会.宅内機器型式コード
		String taknkiki_model_cd = getNullToStr(getKktkSvcKeiInfo(outputMap, "taknkiki_model_cd"));
//		// 宅内機器型式コードを宅内機器型式(旧)へ保持
//		bean.sendMessageString(KKW03301SFConst.KIKI_MODEL_OLD, X31CWebConst.DATABEAN_SET_VALUE, taknkiki_model_cd);

		// 型式設定時は処理終了
		if(!"".equals(taknkiki_model_cd))
		{
			return false;
		}
		
		// 機器提供サービス契約一意照会.宅内機器種別コード
		String taknkiki_sbt_cd_KK0341 = getNullToStr(getKktkSvcKeiInfo(outputMap, "taknkiki_sbt_cd"));
		// 宅内機器一覧.宅内機器種別コード
		String taknkiki_sbt_cd_KK1861 = getNullToStr((String)childMap.get("taknkiki_sbt_cd"));
		
		if(taknkiki_sbt_cd_KK0341.equals(taknkiki_sbt_cd_KK1861))
		{
			// 宅内機器種別コードが一致する場合
			return false;
		}
		else
		{
			return true;
		}
	}
	/* ++++++++++ v4.03.00 追加完了 ++++++++++ */
	
	/**
	 * 下りマッピング
	 * @param bean　[0]：機器提供サービス契約変更
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV043427SC(X31SDataBeanAccess[] bean, HashMap outputMap){
		
		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV043427SC")){
			parentMap = (HashMap)outputMap.get("KKSV043427SC");
		}
	
		ArrayList childList = null;
		
	
		X31SDataBeanAccessArray listKKSV043427SC_kiki_seizo_no_pull_EKK0341B012CBSMsg1List = bean[0].getDataBeanArray(KKW03301SFConst.KIKI_SEIZO_NO_PULL);
		listKKSV043427SC_kiki_seizo_no_pull_EKK0341B012CBSMsg1List.clearArray();
		childList = null;
		if(parentMap.containsKey("EKK0341B012CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EKK0341B012CBSMsg1List");
			
			X31SDataBeanAccess subbean = listKKSV043427SC_kiki_seizo_no_pull_EKK0341B012CBSMsg1List.addDataBean();
			
			// 更新対象データの機器提供サービスコード
			String kktkSvcCdBf = getKktkSvcKeiInfo(outputMap, "kktk_svc_cd");
	
			// 添え字用桁数
			int count = 1;
	
			for(int i = 0; i < childList.size(); i++){
	
				HashMap childMap = (HashMap)childList.get(i);
				
				String kktkSvcCd = (String)childMap.get("kktk_svc_cd");
//				String kktk_svc_kei_no = (String)childMap.get("kktk_svc_kei_no");
				
				// 機器提供サービス契約ステータスが「解約済」「キャンセル済」以外でB-CAS、またはC-CASの場合、設定します。
				if(isAddKikiSeizoNo(bean[0], childMap, outputMap))
				{
					
					// 更新対象データと同じ機器提供サービスコードのデータをセットします。（B-CASのみ、またはC−CASのみ）
					if(kktkSvcCdBf.equals(kktkSvcCd))
					{
					
						// 機器製造番号
						if (childMap != null) {
							subbean.sendMessageString(KKW03301SFConst.KIKI_SEIZO_NO_PULL_LIST_13, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("kiki_seizo_no"));
						} else {
							subbean.sendMessageString(KKW03301SFConst.KIKI_SEIZO_NO_PULL_LIST_13, X31CWebConst.DATABEAN_ADD_VALUE, new String());
						}
						// 機器提供サービス契約ステータス
						if (childMap != null) {
							subbean.sendMessageString(KKW03301SFConst.KIKI_SEIZO_NO_PULL_NM_LIST_13, X31CWebConst.DATABEAN_ADD_VALUE, count + "．" + (String)childMap.get("kiki_seizo_no"));
						} else {
							subbean.sendMessageString(KKW03301SFConst.KIKI_SEIZO_NO_PULL_NM_LIST_13, X31CWebConst.DATABEAN_ADD_VALUE, new String());
						}
						// 機器提供サービス契約番号
						if (childMap != null) {
							subbean.sendMessageString(KKW03301SFConst.KKTK_SVC_KEI_NO_LIST_13, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("kktk_svc_kei_no"));
						} else {
							subbean.sendMessageString(KKW03301SFConst.KKTK_SVC_KEI_NO_LIST_13, X31CWebConst.DATABEAN_ADD_VALUE, new String());
						}
						
						count++;
					}
				}
			}
		}
	
	
		return bean;
	}
	
	/**
	 * 下りマッピング
	 * @param bean　[0]：機器提供サービス契約登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV043429CC(X31SDataBeanAccess[] bean, HashMap outputMap){

		
		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV043429CC")){
			parentMap = (HashMap)outputMap.get("KKSV043429CC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listKKSV043429SC_id_torokusho_um_List = bean[0].getDataBeanArray(KKW03301SFConst.KINKYU_MOTO_TOMSON_CD_HOJI);
		listKKSV043429SC_id_torokusho_um_List.clearArray();
		childList = null;
		if(parentMap.containsKey("tomson_case_list")){
			childList = (ArrayList)parentMap.get("tomson_case_list");
			
			X31SDataBeanAccess subbean = listKKSV043429SC_id_torokusho_um_List.addDataBean();

			for(int i = 0; i < childList.size(); i++){
				HashMap childMap = (HashMap)childList.get(i);
			
				// 工事案件番号
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.KOJIAK_NO_10, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("kojiak_no"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.KOJIAK_NO_10, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// トムソンケース番号
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.TCASE_NO_10, X31CWebConst.DATABEAN_ADD_VALUE, getNullToStr((String)childMap.get("tcase_no")));
				} else {
					subbean.sendMessageString(KKW03301SFConst.TCASE_NO_10, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// 配送番号
				subbean.sendMessageString(KKW03301SFConst.HAISO_NO_10, X31CWebConst.DATABEAN_ADD_VALUE, "");
			}
		}

		return bean;
	}
	
	/**
	 * 下りマッピング
	 * @param bean　[0]：機器提供サービス契約登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV043430SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV043430SC")){
			parentMap = (HashMap)outputMap.get("KKSV043430SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray hkat_shelf_List = bean[0].getDataBeanArray(KKW03301SFConst.HKAT_SHELF_LIST);
		hkat_shelf_List.clearArray();
		childList = null;
		if(parentMap.containsKey("EDK0451B030CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EDK0451B030CBSMsg1List");
			
			X31SDataBeanAccess subbean = hkat_shelf_List.addDataBean();

			for(int i = 0; i < childList.size(); i++){

				HashMap childMap = (HashMap)childList.get(i);
			
				// 引当棚リスト.販売種別コード ← 引当棚一覧照会（全件）.引当棚一覧照会（全件）明細.販売種別コード
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.HAMBAI_SBT_CD_16, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("hambai_sbt_cd"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.HAMBAI_SBT_CD_16, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// 引当棚リスト.棚コード ← 引当棚一覧照会（全件）.引当棚一覧照会（全件）明細.棚コード
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.SHELF_CD_16, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("shelf_cd"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.SHELF_CD_16, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// 引当棚リスト.引当棚適用開始年月日 ← 引当棚一覧照会（全件）.引当棚一覧照会（全件）明細.引当棚適用開始年月日
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.HKAT_SHELF_TSTAYMD_16, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("hkat_shelf_tstaymd"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.HKAT_SHELF_TSTAYMD_16, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// 引当棚リスト.引当棚適用終了年月日 ← 引当棚一覧照会（全件）.引当棚一覧照会（全件）明細.引当棚適用終了年月日
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.HKAT_SHELF_TENDYMD_16, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("hkat_shelf_tendymd"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.HKAT_SHELF_TENDYMD_16, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
			}
		}
		
		return bean;
	}
	
	/**
	 * 下りマッピング
	 * @param bean　[0]：機器提供サービス契約登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV043431CC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV043431CC")){
			parentMap = (HashMap)outputMap.get("KKSV043431CC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray soko_List = bean[0].getDataBeanArray(KKW03301SFConst.SOKO_LIST);
		soko_List.clearArray();
		childList = null;
		if(parentMap.containsKey("sokoList")){
			childList = (ArrayList)parentMap.get("sokoList");
			// 規定ソートで実施
			sortTtm(childList);
			
			X31SDataBeanAccess subbean = soko_List.addDataBean();

			for(int i = 0; i < childList.size(); i++){

				HashMap childMap = (HashMap)childList.get(i);
			
				// 倉庫リスト.管理場所識別コード ← 倉庫一覧取得.倉庫リスト.管理場所識別コード
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.KNRI_PLC_SKBT_CD_17, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("knri_plc_skbt_cd"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.KNRI_PLC_SKBT_CD_17, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// 倉庫リスト.管理場所棚コード ← 倉庫一覧取得.倉庫リスト.管理場所棚コード
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.KNRI_PLC_SLF_CD_17, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("knri_plc_slf_cd"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.KNRI_PLC_SLF_CD_17, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// 倉庫リスト.宅内機器型式コード ← 倉庫一覧取得.倉庫リスト.宅内機器型式コード
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.TK_MDL_CD_17, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("tk_mdl_cd"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.TK_MDL_CD_17, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// 倉庫リスト.管理場所コード ← 倉庫一覧取得.倉庫リスト.管理場所コード
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.KNRI_PLC_CD_17, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("knri_plc_cd"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.KNRI_PLC_CD_17, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// 倉庫リスト.倉庫名 ← 倉庫一覧取得.倉庫リスト.倉庫名
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.SOKO_NM_17, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("soko_nm"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.SOKO_NM_17, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
			}
		}
		
		return bean;
	}
	
	/* ++++++++++ v7.00.00追加開始 ++++++++++ */
	
	/**
	 * 下りマッピング
	 * @param bean　[0]：機器提供サービス契約登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV043432CC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV043432CC")){
			parentMap = (HashMap)outputMap.get("KKSV043432CC");
		}
		
		// 販売形態コンボボックスの設定
		X31SDataBeanAccessArray hanbaiList = bean[0].getDataBeanArray(KKW03301SFConst.KAP_PLAN_CD_LIST);
		hanbaiList.clearArray();
		
		X31SDataBeanAccess subbean2 = hanbaiList.addDataBean();

		ArrayList childList2 = null;	
		
		if(parentMap.containsKey("EKK2521B001CBSMsg1List")){
			childList2 = (ArrayList)parentMap.get("EKK2521B001CBSMsg1List");
			
			for(int i = 0; i < childList2.size(); i++){
				
				HashMap childMap = (HashMap)childList2.get(i);
				
				// 割賦プランコード
				subbean2.sendMessageString(KKW03301SFConst.KAP_PLAN_CD_LIST_18, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("kap_plan_cd"));
				// 販売形態名リスト
				subbean2.sendMessageString(KKW03301SFConst.KAP_PLAN_CD_NM_LIST_18, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("kap_hambai_form_cd_nm"));
				// 宅内機器型式コードリスト
				subbean2.sendMessageString(KKW03301SFConst.TAKNKIKI_MODEL_CD_LIST_18, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("taknkiki_model_cd"));
				// 割賦回数リスト
				subbean2.sendMessageString(KKW03301SFConst.KAP_PAY_ZAN_CNT_LIST_18, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("kap_pay_cnt"));
			}
		}
		else
		{
			// 割賦プランコード
			subbean2.sendMessageString(KKW03301SFConst.KAP_PLAN_CD_LIST_18, X31CWebConst.DATABEAN_ADD_VALUE, "");
			// 販売形態名リスト
			subbean2.sendMessageString(KKW03301SFConst.KAP_PLAN_CD_NM_LIST_18, X31CWebConst.DATABEAN_ADD_VALUE, "");
			// 宅内機器型式コードリスト
			subbean2.sendMessageString(KKW03301SFConst.TAKNKIKI_MODEL_CD_LIST_18, X31CWebConst.DATABEAN_ADD_VALUE, "");
			// 割賦回数リスト
			subbean2.sendMessageString(KKW03301SFConst.KAP_PAY_ZAN_CNT_LIST_18, X31CWebConst.DATABEAN_ADD_VALUE, "");
		}
		
		X31SDataBeanAccessArray kiki = bean[0].getDataBeanArray(KKW03301SFConst.KIKI_MODEL_HOJI);
		X31SDataBeanAccess subbean = kiki.getDataBean(0);
		
		int length = (Integer)subbean.sendMessage(KKW03301SFConst.KIKI_MODEL_CD_LIST_05, X31CWebConst.DATABEAN_GET_COUNT);
		for (int k = 0; k < length; k++)
		{
			// 機器型式保持リストから機種種別を1件取得
			String kikiModel = getNullToStr(subbean.sendMessageString(KKW03301SFConst.KIKI_MODEL_CD_LIST_05, X31CWebConst.DATABEAN_GET_VALUE, k));
			
			// 機種種別が一致するレコードを取得する。
			if(kikiModel.equals((String)parentMap.get("taknkiki_model_cd")))
			{
				subbean.sendMessageString(KKW03301SFConst.KAP_TAISYO_CD_05, X31CWebConst.DATABEAN_ADD_VALUE, (String)parentMap.get("kappu_taisyo_judge"));
			}
			else
			{
				subbean.sendMessageString(KKW03301SFConst.KAP_TAISYO_CD_05, X31CWebConst.DATABEAN_ADD_VALUE, "0");
			}
		}
		
		return bean;
	}
	
	/**
	 * 下りマッピング
	 * @param bean　[0]：機器提供サービス契約登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKikiAddInfoCC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KikiAddInfoCC")){
			parentMap = (HashMap)outputMap.get("KikiAddInfoCC");
		}

		ArrayList childList = null;
		
		X31SDataBeanAccessArray kikiSbtList = bean[0].getDataBeanArray("機器種別保持");
		kikiSbtList.clearArray();
		childList = null;
		if(parentMap.containsKey("CD01262")){
			childList = (ArrayList)parentMap.get("CD01262");
			
			X31SDataBeanAccess subbean = kikiSbtList.addDataBean();
			
			for(int i = 0; i < childList.size(); i++){

				HashMap childMap = (HashMap)childList.get(i);
			
				// コード名称管理コード区分一覧照会明細.コード区分
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// コード名称管理コード区分一覧照会明細.コード区分名
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_NM_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div_nm"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_NM_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// コード名称管理コード区分一覧照会明細.初期表示コード
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.DEFAULT_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("shk_dsp_cd"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.DEFAULT_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
			}
		}
		
		childList = null;
		
		X31SDataBeanAccessArray rutaKinolist = bean[0].getDataBeanArray("ルーター機能保持");
		rutaKinolist.clearArray();
		childList = null;
		if(parentMap.containsKey("CD01613")){
			childList = (ArrayList)parentMap.get("CD01613");
			
			X31SDataBeanAccess subbean = rutaKinolist.addDataBean();
			
			for(int i = 0; i < childList.size(); i++){

				HashMap childMap = (HashMap)childList.get(i);
			
				// コード名称管理コード区分一覧照会明細.コード区分
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// コード名称管理コード区分一覧照会明細.コード区分名
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_NM_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div_nm"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_NM_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// コード名称管理コード区分一覧照会明細.コード略称
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_ALI_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div_ali"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_ALI_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// コード名称管理コード区分一覧照会明細.初期表示コード
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.DEFAULT_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("shk_dsp_cd"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.DEFAULT_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
			}
		}
		
		X31SDataBeanAccessArray dnwAdpKinolist = bean[0].getDataBeanArray("電話アダプター機能");
		dnwAdpKinolist.clearArray();
		childList = null;
		if(parentMap.containsKey("CD01614")){
			childList = (ArrayList)parentMap.get("CD01614");
			
			X31SDataBeanAccess subbean = dnwAdpKinolist.addDataBean();
			subbean.sendMessageString(KKW03301SFConst.CD_DIV_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, new String());
			subbean.sendMessageString(KKW03301SFConst.CD_DIV_NM_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, new String());
			subbean.sendMessageString(KKW03301SFConst.CD_DIV_ALI_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, new String());
			subbean.sendMessageString(KKW03301SFConst.DEFAULT_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, new String());
			for(int i = 0; i < childList.size(); i++){

				HashMap childMap = (HashMap)childList.get(i);
			
				// コード名称管理コード区分一覧照会明細.コード区分
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// コード名称管理コード区分一覧照会明細.コード区分名
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_NM_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div_nm"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_NM_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// コード名称管理コード区分一覧照会明細.コード略称
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_ALI_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div_ali"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.CD_DIV_ALI_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// コード名称管理コード区分一覧照会明細.初期表示コード
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.DEFAULT_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("shk_dsp_cd"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.DEFAULT_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
			}
		}
		
		X31SDataBeanAccessArray kikiOptionInfolist = bean[0].getDataBeanArray("機器オプション情報");
		kikiOptionInfolist.clearArray();
		childList = null;
		if(parentMap.containsKey("kikiOption")){
			childList = (ArrayList)parentMap.get("kikiOption");
			
			X31SDataBeanAccess subbean = kikiOptionInfolist.addDataBean();
			
			for(int i = 0; i < childList.size(); i++){

				HashMap childMap = (HashMap)childList.get(i);
			
				// 機器オプションサービスコード
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.KKOP_SVC_CD_LIST_19, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("kkop_svc_cd"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.KKOP_SVC_CD_LIST_19, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				
				// 機器提供サービスコード
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.KKTK_SVC_CD_LIST_19, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("kktk_svc_cd"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.KKTK_SVC_CD_LIST_19, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// 宅内機器種別コード
				if (childMap != null) {
					subbean.sendMessageString(KKW03301SFConst.TAKNKIKI_SBT_CD_LIST_19, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("taknkiki_sbt_cd"));
				} else {
					subbean.sendMessageString(KKW03301SFConst.TAKNKIKI_SBT_CD_LIST_19, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
			}
		}
		
		bean[0].sendMessageString(KKW03301SFConst.RUTA_HENKOUTYU_FLG, X31CWebConst.DATABEAN_SET_VALUE, getNullToStr((String)parentMap.get("ruta_Henkoutyu_flg")));
		
		return bean;
	}
	
	/* ++++++++++ v7.00.00追加終了 ++++++++++ */
// ANK-2979-00-00 ADD START

	/**
	 * 下りマッピング
	 * @param bean　[0]：機器提供サービス契約一覧
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV043434SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV043434SC")){
			parentMap = (HashMap)outputMap.get("KKSV043434SC");
		}

		
		// 申込明細番号（ＢＢＲ） ← 機器提供サービス契約一覧照会.申込明細番号
		if (parentMap != null) {
			bean[0].sendMessageString("申込明細番号（ＢＢＲ）", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("mskm_dtl_no"));
		} else {
			bean[0].sendMessageString("申込明細番号（ＢＢＲ）", X31CWebConst.DATABEAN_SET_VALUE, new String());
		}

		return bean;
	}
// ANK-2979-00-00 ADD END
	
	/**
	 * <pre>
	 * 建物のソートを実施する 
	 * (1)管理場所識別コードを"1","3",・・・,"2"でソートを実施。("2"が最後尾にソートされる)
	 * (2)管理場所コードを昇順でソートを実施。 
	 * (3)管理場所棚コードを昇順でソートを実施。 
	 * (4)宅内機器型式コードを昇順でソートを実施。
	 * </pre>
	 * 
	 * @param arrData ソート対象のList
	 */
	@SuppressWarnings("unchecked")
	public static void sortTtm(ArrayList<HashMap<String, String>> arrData)
	{
		Collections.sort(arrData, new Comparator()
		{

			/**
			 * ソート対象１とソート対象２でソートを実施
			 * 
			 * @param o1 ソート対象１
			 * @param o2 ソート対象２
			 * @return ソート結果
			 */
			public int compare(Object o1, Object o2)
			{
				// 第1ソート：管理場所識別コード
				// "2"の場合、ソート順を一番最後に設定
				if("2".equals(((HashMap<String, String>)o1).get("knri_plc_skbt_cd"))
						&& "2".equals(((HashMap<String, String>)o2).get("knri_plc_skbt_cd")))
				{
					// Nothing
				}
				else if("2".equals(((HashMap<String, String>)o1).get("knri_plc_skbt_cd")))
				{
					return 1;
				}
				else if("2".equals(((HashMap<String, String>)o2).get("knri_plc_skbt_cd")))
				{
					return -1;
				}
				else
				{
					// "2"以外は、昇順に設定
					if(!((HashMap<String, String>)o1).get("knri_plc_skbt_cd").equals((((HashMap<String, String>)o2).get("knri_plc_skbt_cd"))))
					{
						return ((HashMap<String, String>)o1).get("knri_plc_skbt_cd").compareTo(((HashMap<String, String>)o2).get("knri_plc_skbt_cd"));
					}
				}

				// 第2ソート：管理場所コード(昇順)
				if(!((HashMap<String, String>)o1).get("knri_plc_cd").equals((((HashMap<String, String>)o2).get("knri_plc_cd"))))
				{
					return ((HashMap<String, String>)o1).get("knri_plc_cd").compareTo(((HashMap<String, String>)o2).get("knri_plc_cd"));
				}

				// 第3ソート：管理場所棚コード(昇順)
				if(!((HashMap<String, String>)o1).get("knri_plc_slf_cd").equals((((HashMap<String, String>)o2).get("knri_plc_slf_cd"))))
				{
					return ((HashMap<String, String>)o1).get("knri_plc_slf_cd").compareTo(((HashMap<String, String>)o2).get("knri_plc_slf_cd"));
				}

				// 第4ソート：宅内機器型式コード(昇順)
				return ((HashMap<String, String>)o1).get("tk_mdl_cd").compareTo(((HashMap<String, String>)o2).get("tk_mdl_cd"));
			}
		});
	}
	
//	/**
//	 * 処理対処のサービス契約がモバイルデータか判断します。
//	 * @param outputMap 検索データ
//	 * @return モバイルデータの場合：true それ以外：false
//	 */
//	private boolean isMobail(HashMap outputMap)
//	{
//		
//		// モバイルグループコードが格納されたMap
//		HashMap mobileGrpMap = null;
//		
//		if(outputMap.containsKey("KKSV043422SC"))
//		{
//			mobileGrpMap = (HashMap)outputMap.get("KKSV043422SC");
//		}
//		else
//		{
//			return false;
//		}
//		
//		// サービス契約データが格納されたMap
//		HashMap svcKeiMap = null;
//		ArrayList childList = null;
//		
//		if(outputMap.containsKey("KKSV043402SC"))
//		{
//			svcKeiMap = (HashMap)outputMap.get("KKSV043402SC");
//			childList = (ArrayList)svcKeiMap.get("EKK0081A010CBSMsg1List");
//		}
//		else
//		{
//			return false;
//		}
//		
//		
//		// モバイル料金グループコード
//		String[] prcGrpCdMobArray = ((String)mobileGrpMap.get("work_param_sette_value")).split(",");
//		
//		// サービス契約の料金グループコード
//		HashMap childMap = (HashMap)childList.get(0);
//		
//		String prcGrpCd = (String)childMap.get("prc_grp_cd");
//
//		
//		for(int i=0;i<prcGrpCdMobArray.length;i++)
//		{
//			if(prcGrpCd.equals(prcGrpCdMobArray[i]))
//			{
//				return true;
//			}
//			
//		}
//		
//		return false;
//	}
	
	/**
	 * 半角空白文字充填処理
	 * <BR>
	 * @param para 調整する文字列
	 * @param len 調整する長さ
	 * @param flg 空白埋め左右判断フラグ。（true：右埋め、false：左埋め）
	 * @return String 空白充填後の文字列。文字列がlenより長い場合はそのまま返却する。
	 */
	private String fillHalfSpace(String para, int len, boolean flg)
	{
		if (len <= 0)
		{
			return "";
		}

		if (para == null)
		{
			return "";
		}

		if (para.length() < len)
		{
			StringBuffer buf = new StringBuffer(para);

			if (flg)
			{
				for (int i = buf.length(); i < len; i++)
				{
					buf.append(" ");
				}
			}
			else
			{
				for (int i = buf.length(); i < len; i++)
				{
					buf.insert(0, " ");
				}
			}
			para = buf.toString();
			// JSP表示する際、半角空白を複数埋めても１つになるため全角空白に変換しています。
			para = para.replaceAll("  ", "　");
		}
		return para;
	}
	
	/**
	 * 文字列カット処理
	 * <BR>
	 * @param para 調整する文字列
	 * @param len 調整する長さ
	 * @return String 空白充填後の文字列。文字列がlenより短い場合はそのまま返却する。
	 */
	private String cut(String para, int len)
	{
		if (len <= 0)
		{
			return "";
		}

		if (para == null)
		{
			return "";
		}

		if (len < para.length())
		{
			return para.substring(0, len);
		}
		return para;
	}
	
	/**
	 * 対象データが機器製造番号プルダウンに設定するデータか判断します。
	 * <BR>
	 * 機器提供サービス契約ステータスが「解約済」「キャンセル済」以外でB-CAS、またはC-CASか判断します。
	 * @param bean 
	 * @param childMap 検索データ（EKK0341B012）
	 * @param outputMap 検索データ（全体の検索データ）
	 * @return 設定するデータ場合：true 設定しないデータの場合：false
	 */
	private boolean isAddKikiSeizoNo(X31SDataBeanAccess bean, HashMap<String, String> childMap, HashMap<String, Object> outputMap)
	{

		// 機器製造番号が未設定の場合対象外とします。
		if(!"".equals((String)childMap.get("kiki_seizo_no")))
		{
			// 検索した機器提供サービス契約情報の機器提供サービス契約ステータス
			String kktkSvcKeiStat = (String)childMap.get("kktk_svc_kei_stat");
	
			// B-CASの機器提供サービスステータス
			String bcasKktkSvcCd = bean.sendMessageString(KKW03301SFConst.BCAS_KKTK_SVC_CD, X31CWebConst.DATABEAN_GET_VALUE);
			// C-CASの機器提供サービスステータス
			String ccasKktkSvcCd = bean.sendMessageString(KKW03301SFConst.CCAS_KKTK_SVC_CD, X31CWebConst.DATABEAN_GET_VALUE);
			// 更新対象データの機器提供サービスコード
			String kktkSvcCdBf = getKktkSvcKeiInfo(outputMap, "kktk_svc_cd");
	
			// 機器提供サービス契約ステータスが「解約済」「キャンセル済」以外
			if(!(KKTK_SVC_KEI_STAT_KAIYAKU.equals(kktkSvcKeiStat) || KKTK_SVC_KEI_STAT_CANCEL.equals(kktkSvcKeiStat)))
			{
	
				// 更新対象データがB-CAS、またはC-CASの場合
				if(bcasKktkSvcCd.equals(kktkSvcCdBf) || ccasKktkSvcCd.equals(kktkSvcCdBf))
				{
					return true;
				}
	
			}
		}

		return false;
	}
	
	/**
	 * 添え字の桁数取得メソッド
	 * <BR>
	 * @param childList 検索データ
	 * @param kikiMap 機器Map
	 * @param 宅内機器種別コード
	 * @return int 検索データ件数の桁数
	 */
	private int getSoejiKeta(ArrayList childList, String tknKikiSbtCd)
	{
		String kikiMdlCd = "";
		int bcasCcasCnt = 0;
		
		for(int i = 0; i < childList.size(); i++){

			HashMap childMap = (HashMap)childList.get(i);
			kikiMdlCd = (String)childMap.get("taknkiki_sbt_cd");
			
			// B-CASまたはC-CASまたはSTBの件数。
			if(tknKikiSbtCd.equals(kikiMdlCd))
			{
				bcasCcasCnt++;
			}
		}
		
		return bcasCcasCnt;
	}
	
	/**
	 * B-CAS、C-CAS以外データの添え字桁数取得メソッド
	 * <BR>
	 * @param childList 検索データ
	 * @param kikiMap 機器Map
	 * @param bcasTknKikiSbtCd B-CASの宅内機器種別コード
	 * @param ccasTknKikiSbtCd C-CASの宅内機器種別コード
	 * @return int 検索データ件数の桁数
	 */
	private int getBcasCcasOtherKeta(ArrayList childList, String bcasTknKikiSbtCd, String ccasTknKikiSbtCd)
	{
		int bcasCcasCnt = 0;
		
		for(int i = 0; i < childList.size(); i++){

			HashMap childMap = (HashMap)childList.get(i);
			
			// B-CAS、C-CASデータは除外します。
			if(bcasTknKikiSbtCd.equals(childMap.get("taknkiki_sbt_cd")) || ccasTknKikiSbtCd.equals(childMap.get("taknkiki_sbt_cd")))
			{
				bcasCcasCnt++;
			}
		}
		
		return (childList.size() - bcasCcasCnt);
	}
	
	/**
	 * 機器型式プルダウンに空白行を設定します。
	 * @param subbean
	 */
	private void setEmptyList(X31SDataBeanAccess subbean)
	{
		subbean.sendMessageString(KKW03301SFConst.KIKI_MODEL_CD_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, "");
		subbean.sendMessageString(KKW03301SFConst.KIKI_MODEL_NM_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, "");
		subbean.sendMessageString(KKW03301SFConst.KIKI_SBT_05, X31CWebConst.DATABEAN_ADD_VALUE, "");
		subbean.sendMessageString(KKW03301SFConst.KIKI_SEIZO_NO_UM_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, "");
		subbean.sendMessageString(KKW03301SFConst.YRYO_MRYO_CD_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, "");
		subbean.sendMessageString(KKW03301SFConst.HOYU_ROUTER_CD_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, "");
		subbean.sendMessageString(KKW03301SFConst.MAC_INF_UM_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, "");
		subbean.sendMessageString(KKW03301SFConst.KOJI_COMP_HAISO_UM_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, "");
		subbean.sendMessageString(KKW03301SFConst.HAISO_YOKSI_UM_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, "");
		subbean.sendMessageString(KKW03301SFConst.KOJI_AF_SHKA_UM_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, "");
		subbean.sendMessageString(KKW03301SFConst.USIM_UM_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, "");
		subbean.sendMessageString(KKW03301SFConst.OPMS_ROUTER_KIND_CD_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, "");
		/* ++++++++++ v7.00.00 追加開始 ++++++++++ */
		//subbean.sendMessageString(KKW03301SFConst.KAP_TAISYO_CD_05, X31CWebConst.DATABEAN_ADD_VALUE, "");
		subbean.sendMessageString(KKW03301SFConst.KIKI_MODEL_NM_DUMMY_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, "");
		/* ++++++++++ v7.00.00 追加終了 ++++++++++ */
	}
	
	/**
	 * 機器型式プルダウンに出力行をセットします。
	 * @param subbean
	 * @param childMap
	 * @param cnt :連番
	 * @param count :連番の桁数
	 */
	private void setKikiModelList(X31SDataBeanAccess subbean, HashMap childMap, int cnt, int count)
	{
		// 連番の作成
		String index = JPCUtilCommon.fillZero(Integer.toString(cnt), count, false);
		
		// 機器型式コードの取得
		String kikiMdlCd = (String)childMap.get("taknkiki_model_cd");
		
		/* ++++++++++ v7.00.00 追加開始 ++++++++++ */
		// 機器型式名に連番を付与してセット
		//String kikiMdlNm = index + "．" + fillHalfSpace(kikiMdlCd, 22, true) + cut((String)childMap.get("taknkiki_model_nm"), 45);
		String kikiMdlNm = fillHalfSpace(kikiMdlCd, 22, true) + cut((String)childMap.get("taknkiki_model_nm"), 45);
		/* ++++++++++ v7.00.00 追加終了 ++++++++++ */

		
		subbean.sendMessageString(KKW03301SFConst.KIKI_MODEL_CD_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, kikiMdlCd);
		subbean.sendMessageString(KKW03301SFConst.KIKI_MODEL_NM_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, kikiMdlNm);
		subbean.sendMessageString(KKW03301SFConst.KIKI_SBT_05, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("taknkiki_sbt_cd"));
		subbean.sendMessageString(KKW03301SFConst.KIKI_SEIZO_NO_UM_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("seizo_no_um"));
		subbean.sendMessageString(KKW03301SFConst.YRYO_MRYO_CD_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("yryo_mryo_cd"));
		subbean.sendMessageString(KKW03301SFConst.HOYU_ROUTER_CD_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("hoyu_router_cd"));
		subbean.sendMessageString(KKW03301SFConst.MAC_INF_UM_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("mac_inf_um"));
		subbean.sendMessageString(KKW03301SFConst.KOJI_COMP_HAISO_UM_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("koji_comp_haiso_um"));
		subbean.sendMessageString(KKW03301SFConst.HAISO_YOKSI_UM_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("haiso_yoksi_um"));
		subbean.sendMessageString(KKW03301SFConst.KOJI_AF_SHKA_UM_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("koji_af_shka_um"));
		subbean.sendMessageString(KKW03301SFConst.USIM_UM_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("usim_um"));
		subbean.sendMessageString(KKW03301SFConst.OPMS_ROUTER_KIND_CD_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("opms_router_kind_cd"));
		/* ++++++++++ v7.00.00 追加開始 ++++++++++ */
		//subbean.sendMessageString(KKW03301SFConst.KAP_TAISYO_CD_05, X31CWebConst.DATABEAN_ADD_VALUE, "0");
		subbean.sendMessageString(KKW03301SFConst.KIKI_MODEL_NM_DUMMY_LIST_05, X31CWebConst.DATABEAN_ADD_VALUE, fillHalfSpace("", 22, true) + cut("", 45));
		/* ++++++++++ v7.00.00 追加終了 ++++++++++ */
	}
	
	/**
	 * 選択機器が不明機器型式か判定します。
	 * <br>
	 * @param bean
	 * @param taknkiki_model_cd
	 * @return true:不明機器型式, false:不明機器型式以外
	 */
	private boolean isFumeiKiki(X31SDataBeanAccess bean, String taknkiki_model_cd)
	{
		// 不明機器型式コード	
		String[] fumei_kiki_mdl_cd_list = bean.sendMessageString(KKW03301SFConst.FUMEI_KIKI_MDL_CD, X31CWebConst.DATABEAN_GET_VALUE).split(",");
		
		for(int i=0; i<fumei_kiki_mdl_cd_list.length; i++)
		{
			String fumei_kiki_mdl_cd = fumei_kiki_mdl_cd_list[i];
			
			if(taknkiki_model_cd.equals(fumei_kiki_mdl_cd))
			{
				return true;
			}
		}
		return false;
	}
	
	/**
	 * パラメタがNullの場合空白を返却します。
	 * @param str 文字列
	 * @return str
	 */
	private String getNullToStr(String str)
	{
		if (str == null || "".equals(str.trim()))
		{
			return "";
		}
		return str;
	}
	
	/**
	 * 機器提供サービス契約情報取得メソッド
	 * @param outputMap
	 * @param itemKey
	 * @return String
	 */
	@SuppressWarnings("unchecked")
	private String getKktkSvcKeiInfo(HashMap<String, Object> outputMap, String itemKey)
	{
		String retStr = "";
		
		HashMap<String, Object> parentMap = null;
		if(outputMap.containsKey("KKSV043401SC")){
			parentMap = (HashMap<String, Object>)outputMap.get("KKSV043401SC");
		}
		
		ArrayList<HashMap<String, Object>> dataList = (ArrayList<HashMap<String, Object>>)parentMap.get("EKK0341A010CBSMsg1List");
		
		if(dataList == null)
		{
			dataList = new ArrayList<HashMap<String, Object>>();
		}
		
		HashMap childMap = null;
		if(dataList.size() > 0)
		{
			childMap = (HashMap)dataList.get(0);
		}
		
		if(childMap != null)
		{
			retStr = (String)childMap.get(itemKey);
		}
		
		return retStr;
	}
}
