/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JCHCommonServiceUtil
*	ソースファイル名：JCHCommonServiceUtil.java
*	作成者			：富士通
*	日付			：2011年08月06日
*＜機能概要＞
*	共通で使用するサービスを呼び出すユーティリティクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/08/06	富士通		新規作成
*	v5.00.00	2013/07/15	FJ)小野		【IT2-2013-0000613】契約S→料金S→契約Sへの画面遷移不備を対応
*	v5.01.00	2013/07/16	FJ)近藤		【IT1-2013-0001399】取得結果無の場合のマッピング対応
*	v5.02.00	2013/07/29	FJ)文元		【IT1-2013-0001464】サービス契約選択画面に同じお客さまIDの情報を複数行表示している不備対応
*	v5.03.00	2013/10/11	FJ)垣内		【OM-2013-0003185】請求処理日追加
*	v5.04.00	2013/10/30	FJ)鈴木		【OM-2013-0002865】入金経路が総合口座（パーフェクト口座）の場合、業務パラメータから取得した引落金融機関、支店を初期表示させる
*	v5.05.00	2013/10/30	FJ)江森		【OM-2013-0004460】「契約へ」ボタン押下時、請求契約番号に紐付く課金先情報が取得できない場合の遷移先をお客様一覧画面にする
*	v8.00.00	2014/02/07	FJ)伊藤		【IT2-2014-0000115】「契約へ」ボタン押下時、サービス契約情報照会（ｍｉｎｅｏ）への遷移を追加
*	v8.00.01    2014/02/14  FJ) 林      【OM-2013-0005255】料金調整画面、請求作成機能追加。請求作成ボタン非活性制御値/対象請求年月追加。
*	v9.00.00	2014/04/16	FJ)小野     【ANK-2054-00-00】eoスマートリンク改修(端末補償)。
*	v9.00.01	2014/05/29	FJ)江森     【IT1-2014-0000164】製造番号を取得する基準日を修正。
*
**********************************************************************/
package eo.web.webview.commonOneStop;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

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 eo.common.constant.JACStrConst;
import eo.common.constant.JKKStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.util.JCRUtilCommon;
import eo.web.webview.JCCWebBusinessLogic;
//ANK-2694-00-00 DEL START 【W07】ワンストップ案件(ＳＴＥＰ２)
//import eo.web.webview.mapping.CHSV0066_CHSV0066OPDBMapper;
//ANK-2694-00-00 DEL END 【W07】ワンストップ案件(ＳＴＥＰ２)

/**
 * <p>
 * 共通サービス呼出ユーティリティクラスです。
 * </p>
 * @author 富士通
 */
public class JCHCommonServiceUtil {

	/** ユースケースID(契約Ｓ遷移先判定用契約情報照会) */
	private static final String USECASE_ID_CHSV0008 = "CHSV0008";
	
	/** マップID(契約Ｓ遷移先判定マップ) */
	private static final String MAP_CC_ID = "CHSV000801CC";
	
	/** マップID(請求先情報取得マップ) */
	private static final String MAP_SEIKY_SAKI_INFO_STKU_CC_ID = "SEIKYSAKIINFOSTKUCC";
	
	/** マップID(業務パラメータ管理情報取得マップ) */
	private static final String MAP_GET_WORK_PARAM_LIST_CC_ID = "GETWORKPARAMLISTCC";
	
	/** マップID(料金対応記録一覧取得マップ) */
	private static final String MAP_PRC_TAIO_KIROK_ICRN_STKU_CC_ID = "PRCTAIOKIROKICRNSTKUCC";
	
	/** マップID(金融機関一覧情報取得マップ) */
	private static final String MAP_BANK_ICRN_INFO_STKU_CC_ID = "BANKICRNINFOSTKUCC";
	
	/** マップID(サービス契約一覧情報取得マップ) */
	private static final String MAP_SVC_KEI_INFO_CC_ID = "SVCKEIINFOCC";
	
	/** マップID(サービス契約一覧情報リストマップ) */
	private static final String MAP_SVC_KEI_INFO_LIST = "SVCKEIINFOLIST";
	
	/** 遷移先引継情報項目名(請求契約番号) */
	private static final String MOVE_TO_ITEM_SEIKY_KEI_NO = "請求契約番号";
	
	/** 遷移先引継情報項目名(SYSID) */
	private static final String MOVE_TO_ITEM_SYSID = "ＳＹＳＩＤ";
	
	/** 遷移先引継情報項目名(サービス契約番号) */
	private static final String MOVE_TO_ITEM_SVC_KEI_NO = "サービス契約番号";
	
	/** 契約Ｓ遷移先判定用契約情報照会サービス項目名(請求契約番号) */
	private static final String CHSV000801_ITEM_SEIKY_KEI_NO = "key_seiky_kei_no";
	
	/** 契約Ｓ遷移先判定用契約情報照会サービス項目名(SYSID) */
	private static final String CHSV000801_ITEM_SYSID = "sys_id";
	
	/** 契約Ｓ遷移先判定用契約情報照会サービス項目名(SYSIDカウント) */
	private static final String CHSV000801_ITEM_SYSID_COUNT = "sys_id_count";
	
	/** 契約Ｓ遷移先判定用契約情報照会サービス項目名(サービス契約番号) */
	private static final String CHSV000801_ITEM_SVC_KEI_NO = "svc_kei_no";
	
	/** 契約Ｓ遷移先判定用契約情報照会サービス項目名(サービス契約カウント) */
	private static final String CHSV000801_ITEM_SVC_KEI_COUNT = "svc_kei_count";
	
	/** 契約Ｓ遷移先判定用契約情報照会サービス項目名(マンションIDカウント) */
	private static final String CHSV000801_ITEM_MANSION_ID_COUNT = "mansion_id_count";
	
	/** 契約Ｓ遷移先判定用契約情報照会サービス項目名(料金グループコード) */
	private static final String CHSV000801_ITEM_PRC_GRP_CD = "prc_grp_cd";
	
	/** 契約Ｓ遷移先判定用契約情報照会サービス項目名(P-ID) */
	private static final String CHSV000801_ITEM_MAP_KEY_PID = "pid";
	
	/** 契約Ｓ遷移先判定用契約情報照会サービス項目名(マンションID) */
	private static final String CHSV000801_ITEM_MAP_KEY_PRC_MANS_ID = "mansion_id";
	
	/** 契約Ｓ遷移先判定用契約情報照会サービス項目名(CAT-ID) */
	private static final String CHSV000801_ITEM_MAP_KEY_PRC_CATID = "catid";
	
	/** 契約Ｓ遷移先判定用契約情報照会サービス項目名(請求契約番号（ネット）) */
	private static final String CHSV000801_ITEM_MAP_KEY_SEIKY_KEI_NO_NET = "seiky_kei_no_net";
	
	/** 契約Ｓ遷移先判定用契約情報照会サービス項目名(請求契約番号（ＴＶ）) */
	private static final String CHSV000801_ITEM_MAP_KEY_SEIKY_KEI_NO_TV = "seiky_kei_no_tv";
	
	/** 契約Ｓ遷移先判定用契約情報照会サービス項目名(課金先カウント) */
	private static final String CHSV000801_KAKINS_COUNT = "kakins_count";

	/** ユースケースID(サービス契約選択画面照会取得) */
	private static final String USECASE_ID_CHSV0066 = "CHSV0066";

	/** ユースケースID(機器提供サービス契約一覧照会（基準日指定）) */
	private static final String USECASE_ID_CHSV0079 = "CHSV0079";

	/** 料金対応記録ページング_検索処理パターン */
	private static final String PRC_TAIO_KIROK_PAGING_SEARCH_PATTERN = "1";

	/** 料金対応記録ページング_デフォルト最大検索件数 */
	private static final String PRC_TAIO_KIROK_DEF_PAGING_MAX_SHOW_CNT = "1000";

	/** 料金対応記録ページング_デフォルト表示件数 */
	private static final String PRC_TAIO_KIROK_DEF_PAGING_ROW_PER_PAGE = "100";

	/** マップキー(ＫＥＹ＿請求契約番号)*/
	private static final String MAP_KEY_SEIKY_KEI_NO = "key_seiky_kei_no";

	/**
	 * 割賦契約起動時サイズ取得用の業務パラメータIDリスト
	 */
	private static final String[] GET_WORK_PARAM_ID_LIST_KAP_KEI_SIZE = {
		JACStrConst.WKPAR_CH_KAP_KEI_WIDTH
		, JACStrConst.WKPAR_CH_KAP_KEI_HEIGHT
	};

/* TODO :  
 * ＜メイン＞
 * 他シス遷移用サービス契約番号一覧照会は、IT2向けの暫定措置として作成されたサービスです。
 * ＜サブ＞
 * その後、CRの対応履歴登録に指定するサービス契約番号の取得として流用しています。
 * 
 * ここから　〜
 */
	/** ユースケースID(他シス遷移用サービス契約番号一覧照会) */
	private static final String USECASE_ID_CHSV9001 = "CHSV9001";
/* TODO : 〜　ここまで　*/
	
	/** ユースケースID(サービス契約情報取得) */
	private static final String USECASE_ID_CHSV0030 = "CHSV0030";
	
	/** ユースケースID(通話明細再発行画面データチェック) */
/* TODO : NGワードチェックとして共用できるため使用 */
	private static final String USECASE_ID_ACSV0015 = "ACSV0015";
	
	
	/**
	 * 契約Ｓ遷移先判定用契約情報照会サービスを呼び出し、
	 * 取得した契約情報から契約Ｓの遷移先画面を判定して、
	 * その画面IDを返却します。
	 * また、遷移先に引き継ぐ情報を引継情報マップに設定します。
	 * @param bl　      ビューロジックインスタンス
	 * @param keyValues 引継情報マップ(遷移先画面に引き継ぐ情報を格納するマップ)
	 * @return 契約Ｓ遷移先画面ID
	 */
	public static final String getMoveToKeiSysScreen(JCCWebBusinessLogic bl, HashMap<String, Object> keyValues)
	{
		if (keyValues == null)
		{
			keyValues = new HashMap<String, Object>();
		}
		
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = bl.getServiceFormBean();
		
		// 請求契約番号
		String seikyKeiNo = bean.sendMessageString(MOVE_TO_ITEM_SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
		
		// ユースケースID格納用マップを生成。
		HashMap paramMap = new HashMap();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_CHSV0008);
		
		// サービスに渡すMapを生成する
		HashMap inDataMap = new HashMap();
		setCHSV000801CC(seikyKeiNo, inDataMap);
		
		// 検索結果格納用マップを生成。
		HashMap outputMap = new HashMap();
		
		// サービスの呼び出し
		X31CMessageResult msgResult = bl.invokeService(paramMap, inDataMap, outputMap);
		
		// 下りマッピング
		return getCHSV000801CC(bean, outputMap, keyValues);
	}
	
/* TODO : 
 * getSvcKeiNoMoveToOtherSys()は、IT2向けの暫定措置として作成したメソッドです
 *  
 * ここから　〜　
 */
	/**
	 * 他シス遷移用サービス契約番号一覧照会サービスを呼び出し、
	 * 取得したサービス契約番号一覧の先頭行にあるサービス契約版番号を
	 * 他シス遷移先に引き継ぐサービス契約番号として取得します。
	 * @param bl　      ビューロジックインスタンス
	 * @param keyValues 引継情報マップ(遷移先画面に引き継ぐ情報を格納するマップ)
	 * @return サービス契約番号
	 */
	public static ArrayList getSvcKeiNoMoveToOtherSys(JCCWebBusinessLogic bl, X31SDataBeanAccess[] paramBeans)
	{
		// サービスフォームBeanのアクセサを取得する
		X31SDataBeanAccess bean = bl.getServiceFormBean();
		
		// ユースケースID格納用マップを生成。
		HashMap paramMap = new HashMap();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_CHSV0066);

		// サービスに渡すMapを生成する
		HashMap<String, Object> inDataMap = new HashMap<String, Object>();

//ANK-2694-00-00 DEL START 【W07】ワンストップ案件(ＳＴＥＰ２)
//		CHSV0066_CHSV0066OPDBMapper mapper = new CHSV0066_CHSV0066OPDBMapper();
//ANK-2694-00-00 DEL END 【W07】ワンストップ案件(ＳＴＥＰ２)
		
		setMAPSVCKEIINFOCC(paramBeans, inDataMap,JPCModelConstant.FUNC_CD_1); // 出力種別

		// 検索結果格納用マップを生成。
		HashMap outputMap = new HashMap();
		
		// サービスの呼び出し
		X31CMessageResult msgResult = bl.invokeService(paramMap, inDataMap, outputMap);
		
		// 下りマッピング
		return getMAPSVCKEIINFOCC(paramBeans, outputMap);
	}
	
	/**
	 * 下りマッピング
	 * @param bean　[0]：サービス契約選択画面
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	private static ArrayList getCHSV006602SC(X31SDataBeanAccess[] bean,HashMap outputMap) {

		HashMap parentMap = null;
		if (outputMap.containsKey("CHSV006602SC")) {
			parentMap = (HashMap) outputMap.get("CHSV006602SC");
		}

		ArrayList childList = null;

		childList = null;

		if (parentMap.containsKey("EKK0081B014CBSMsg1List")) {
			childList = (ArrayList) parentMap.get("EKK0081B014CBSMsg1List");
		}

		return childList;
	}
	
	
/* TODO : 〜　ここまで　*/
	
/* TODO : 
 * getMinSvcKeiNo()は、CRの対応履歴登録に指定するサービス契約番号の取得として作成したメソッドです
 * その後、getSvcKeiNoList()が作成されてこちらを利用するため不要なメソッドとなりました。(サービス契約番号N件対応)
 * コメントアウトしていますが、最終的には削除してください。
 *  
 * ここから　〜　
 */
//	/**
//	 * 最小サービス契約番号取得.<br>
//	 * 他シス遷移用サービス契約番号一覧照会サービスを呼び出し、
//	 * 取得したサービス契約番号一覧の内、最小であるサービス契約番号を
//	 * 顧客対応履歴に登録するサービス契約番号として取得します。
//	 * @param bl　      ビューロジックインスタンス
//	 * @return サービス契約番号
//	 */
//	public static final String getMinSvcKeiNo(JCCWebBusinessLogic bl) 
//	{
//		// サービスフォームBeanのアクセサを取得する
//		X31SDataBeanAccess bean = bl.getServiceFormBean();
//		
//		// 請求契約番号
//		String seikyKeiNo = bean.sendMessageString(MOVE_TO_ITEM_SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
//		
//		// ユースケースID格納用マップを生成。
//		HashMap paramMap = new HashMap();
//		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_CHSV9001);
//		
//		// サービスに渡すMapを生成する
//		HashMap inDataMap = new HashMap();
//		setCHSV900101SC(seikyKeiNo, inDataMap);
//		
//		// 検索結果格納用マップを生成。
//		HashMap outputMap = new HashMap();
//		
//		// サービスの呼び出し
//		X31CMessageResult msgResult = bl.invokeService(paramMap, inDataMap, outputMap);
//		
//		// 下りマッピング
//		return getCHSV900101SC(bean, outputMap);
//	}
/* TODO : 〜　ここまで　*/
	
/* TODO : 
	 * getSvcKeiNoList()は、CRの対応履歴登録に指定するサービス契約番号(N件)の取得として作成したメソッドです
	 *  
	 * ここから　〜　
	 */
		/**
		 * サービス契約番号リスト取得.<br>
		 * 他シス遷移用サービス契約番号一覧照会サービスを呼び出し、
		 * 取得したサービス契約番号一覧を取得します。
		 * @param bl　      ビューロジックインスタンス
		 * @return サービス契約番号リスト
		 */
		public static final ArrayList<String> getSvcKeiNoList(JCCWebBusinessLogic bl) 
		{
			// サービスフォームBeanのアクセサを取得する
			X31SDataBeanAccess bean = bl.getServiceFormBean();
			
			// 請求契約番号
			String seikyKeiNo = bean.sendMessageString(MOVE_TO_ITEM_SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
			
			// ユースケースID格納用マップを生成。
			HashMap paramMap = new HashMap();
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_CHSV9001);
			
			// サービスに渡すMapを生成する
			HashMap inDataMap = new HashMap();
			setCHSV900101SC(seikyKeiNo, inDataMap);
			
			// 検索結果格納用マップを生成。
			HashMap outputMap = new HashMap();
			
			// サービスの呼び出し
			X31CMessageResult msgResult = bl.invokeService(paramMap, inDataMap, outputMap);
			
			// 下りマッピング
			return getCHSV900101SC(bean, outputMap);
		}
/* TODO : 〜　ここまで　*/
		
	/**
	 * 指定されたサービス契約番号でサービス契約が存在するか確認します。
	 * @param bl　      ビューロジックインスタンス
	 * @param svcKeiNo　サービス契約番号
	 * @return 確認結果
	 */
	public static boolean isExistSvcKeiInfo(JCCWebBusinessLogic bl, String svcKeiNo)
	{
		boolean isExist = false;
		
		// ユースケースID格納用マップを生成。
		HashMap paramMap = new HashMap();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_CHSV0030);
		
		// サービスに渡すMapを生成する
		HashMap inDataMap = new HashMap();
		setCHSV003001SC(svcKeiNo, inDataMap);
		
		// 検索結果格納用マップを生成。
		HashMap outputMap = new HashMap();
		
		// サービスの呼び出し
		X31CMessageResult msgResult = bl.invokeService(paramMap, inDataMap, outputMap);
		
		// 下りマッピング
		String svcKeiNoOut = getCHSV003001SC(outputMap);
		if (svcKeiNoOut != null && JACStrConst.KARA_MOJI.equals(svcKeiNoOut) == false)
		{
			isExist = true;
		}
		
		return isExist; 
	}
	
	/**
	 * 請求先情報取得CCの上りマッピングをします。
	 * @param bean       サービスフォームビーン
	 * @param outputMap  サービスに渡すMap
	 * @return マッピング後のMap
	 */
	public static HashMap setSeikySakiInfoStkuCC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		if(bean == null)
		{
			return null;
		}
		
//		if(bean.length != 1)
//		{
//			return null;
//		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", "1");

		// 請求契約番号 → 請求先情報取得マップ.ＫＥＹ＿請求契約番号
		parentMap.put("key_seiky_kei_no", bean[0].sendMessageString(JCHCommonConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(MAP_SEIKY_SAKI_INFO_STKU_CC_ID, parentMap);
						
		return outputMap;
	}
	
	/**
	 * 請求先情報取得CCの下りマッピングをします。
	 * @param bean       サービスフォームビーン
	 * @param outputMap  サービスから受け取ったMap
	 */
	public static void getSeikySakiInfoStkuCC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if(outputMap.containsKey(MAP_SEIKY_SAKI_INFO_STKU_CC_ID))
		{
			parentMap = (HashMap)outputMap.get(MAP_SEIKY_SAKI_INFO_STKU_CC_ID);
		}

		X31SDataBeanAccessArray seikySakiInfo = bean[0].getDataBeanArray(JCHCommonConst.SEIKY_INFO);
		if(seikySakiInfo != null && parentMap != null)
		{
			X31SDataBeanAccess subbean = null;
			if (seikySakiInfo.getCount() > 0)
			{
				subbean = seikySakiInfo.getDataBean(0);
			}
			else
			{
				subbean = seikySakiInfo.addDataBean();
			}
			String seikyKeiStatNm = (String)parentMap.get("seiky_kei_stat_nm");
			if (seikyKeiStatNm != null && !JACStrConst.KARA_MOJI.equals(seikyKeiStatNm))
			{
				subbean.sendMessageString(JCHCommonConst.SEIKY_KEI_STAT, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("seiky_kei_stat_nm"));
				subbean.sendMessageString(JCHCommonConst.SEIKY_WAY, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("seiky_way_cd_nm"));
				subbean.sendMessageString(JCHCommonConst.SEIKYUS_SAKSEI_YH, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("seikyus_hakko_yh_nm"));
				subbean.sendMessageString(JCHCommonConst.SHS_KANA, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("shs_kana"));
				subbean.sendMessageString(JCHCommonConst.SOHUS_NM, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sohus_nm"));
				subbean.sendMessageString(JCHCommonConst.SOHUS_PCD, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sohus_pcd"));
				subbean.sendMessageString(JCHCommonConst.SOHUS_STATE_NM, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sohus_state_nm"));
				subbean.sendMessageString(JCHCommonConst.SOHUS_CITY_NM, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sohus_city_nm"));
				subbean.sendMessageString(JCHCommonConst.SOHUS_OAZTSU_NM, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sohus_oaztsu_nm"));
				subbean.sendMessageString(JCHCommonConst.SOHUS_AZCHO_NM, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sohus_azcho_nm"));
				subbean.sendMessageString(JCHCommonConst.SOHUS_ADRTTM, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sohus_adrttm"));
				subbean.sendMessageString(JCHCommonConst.SOHUS_ADRRM, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sohus_adrrm"));
				subbean.sendMessageString(JCHCommonConst.SOHUS_BNCHIGO, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sohus_bnchigo"));
				subbean.sendMessageString(JCHCommonConst.TOKUSOKU_STAT, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("tokusoku_stat"));
				subbean.sendMessageString(JCHCommonConst.TOKUSOKU_STAT_NM, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("tokusoku_stat_nm"));
				subbean.sendMessageString(JCHCommonConst.KEI_STAT, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("kei_stat"));
				subbean.sendMessageString(JCHCommonConst.SVC_KEI_STAT, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("svc_kei_stat"));
				subbean.sendMessageString(JCHCommonConst.KEISHA_TYPE, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("keisha_type_cd_nm"));
				subbean.sendMessageString(JCHCommonConst.RRKS_MLAD, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("rrks_mlad"));
				subbean.sendMessageString(JCHCommonConst.RRKS_TELNO, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("rrks_telno"));
				subbean.sendMessageString(JCHCommonConst.NCHU_RRKS_TELNO, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("nchu_rrks_telno"));
// ANK-2694-00-00 DEL START 【W07】ワンストップ案件(ＳＴＥＰ２)
				/* ◇住所編集*/
				//subbean.sendMessageString(JCHCommonConst.SOHUS_ADR, X31CWebConst.DATABEAN_SET_VALUE, JCHDspEditUtil.buildSohusAd(bean));
// ANK-2694-00-00 DEL END 【W07】ワンストップ案件(ＳＴＥＰ２)
				/* ◇支払方法チェック結果　コード⇒名称変換*/
				subbean.sendMessageString(JCHCommonConst.SEIKY_WAY_CHK_RSLT, X31CWebConst.DATABEAN_SET_VALUE, 
						convSeikyWayChkRsltToDspName((String)parentMap.get("pay_skekka_cd")));
				subbean.sendMessageString(JCHCommonConst.SEIKY_TRN_DAY, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("seiky_trn_day"));
			}
			// v5.01.00 2013/07/16 IT1-2013-0001399 ADD START
			else
			{
				subbean.sendMessageString(JCHCommonConst.SEIKY_KEI_STAT, X31CWebConst.DATABEAN_SET_VALUE, new String());
				subbean.sendMessageString(JCHCommonConst.SEIKY_WAY, X31CWebConst.DATABEAN_SET_VALUE, new String());
				subbean.sendMessageString(JCHCommonConst.SEIKYUS_SAKSEI_YH, X31CWebConst.DATABEAN_SET_VALUE, new String());
				subbean.sendMessageString(JCHCommonConst.SHS_KANA, X31CWebConst.DATABEAN_SET_VALUE, new String());
				subbean.sendMessageString(JCHCommonConst.SOHUS_NM, X31CWebConst.DATABEAN_SET_VALUE, new String());
				subbean.sendMessageString(JCHCommonConst.SOHUS_PCD, X31CWebConst.DATABEAN_SET_VALUE, new String());
				subbean.sendMessageString(JCHCommonConst.SOHUS_STATE_NM, X31CWebConst.DATABEAN_SET_VALUE, new String());
				subbean.sendMessageString(JCHCommonConst.SOHUS_CITY_NM, X31CWebConst.DATABEAN_SET_VALUE, new String());
				subbean.sendMessageString(JCHCommonConst.SOHUS_OAZTSU_NM, X31CWebConst.DATABEAN_SET_VALUE, new String());
				subbean.sendMessageString(JCHCommonConst.SOHUS_AZCHO_NM, X31CWebConst.DATABEAN_SET_VALUE, new String());
				subbean.sendMessageString(JCHCommonConst.SOHUS_ADRTTM, X31CWebConst.DATABEAN_SET_VALUE, new String());
				subbean.sendMessageString(JCHCommonConst.SOHUS_ADRRM, X31CWebConst.DATABEAN_SET_VALUE, new String());
				subbean.sendMessageString(JCHCommonConst.SOHUS_BNCHIGO, X31CWebConst.DATABEAN_SET_VALUE, new String());
				subbean.sendMessageString(JCHCommonConst.TOKUSOKU_STAT, X31CWebConst.DATABEAN_SET_VALUE, new String());
				subbean.sendMessageString(JCHCommonConst.TOKUSOKU_STAT_NM, X31CWebConst.DATABEAN_SET_VALUE, new String());
				subbean.sendMessageString(JCHCommonConst.KEI_STAT, X31CWebConst.DATABEAN_SET_VALUE, new String());
				subbean.sendMessageString(JCHCommonConst.SVC_KEI_STAT, X31CWebConst.DATABEAN_SET_VALUE, new String());
				subbean.sendMessageString(JCHCommonConst.KEISHA_TYPE, X31CWebConst.DATABEAN_SET_VALUE, new String());
				subbean.sendMessageString(JCHCommonConst.RRKS_MLAD, X31CWebConst.DATABEAN_SET_VALUE, new String());
				subbean.sendMessageString(JCHCommonConst.RRKS_TELNO, X31CWebConst.DATABEAN_SET_VALUE, new String());
				subbean.sendMessageString(JCHCommonConst.NCHU_RRKS_TELNO, X31CWebConst.DATABEAN_SET_VALUE, new String());
				subbean.sendMessageString(JCHCommonConst.SOHUS_ADR, X31CWebConst.DATABEAN_SET_VALUE, new String());
				subbean.sendMessageString(JCHCommonConst.SEIKY_WAY_CHK_RSLT, X31CWebConst.DATABEAN_SET_VALUE, new String());
				subbean.sendMessageString(JCHCommonConst.SEIKY_TRN_DAY, X31CWebConst.DATABEAN_SET_VALUE, new String());
			}
			// v5.01.00 2013/07/16 IT1-2013-0001399 ADD END
			
			bean[0].sendMessageString(JCHCommonConst.DSBL_CTL_JSF_BTN_SEIKY_ADD, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("dsbl_ctl_jsf_btn_seiky_add"));
			bean[0].sendMessageString(JCHCommonConst.TARGET_SEIKY_YM, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("schdl_teigi_seiky_ym"));
			bean[0].sendMessageString(JCHCommonConst.KYOSEI_MADOGUCHI_YOKSI_FLG, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("kyosei_madoguchi_yoksi_flg"));
		}
	}

	/**
	 * 業務パラメータ管理情報取得（割賦契約起動時サイズ取得用）CCの上りマッピングをします。
	 * @param bean       サービスフォームビーン
	 * @param outputMap  サービスに渡すMap
	 * @return マッピング後のMap
	 */
	@SuppressWarnings("unchecked")
	public static HashMap<String, Object> setGetWorkParamListForKeiKapSizeCC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		if(bean == null)
		{
			return null;
		}

		if(bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 業務パラメータIDリスト
		ArrayList<HashMap<String, Object>> workParamList = new  ArrayList<HashMap<String, Object>>(); 

		// 引数の業務パラメータIDリストより生成
		for (int i = 0; i < GET_WORK_PARAM_ID_LIST_KAP_KEI_SIZE.length; i++)
		{
			HashMap<String, Object> workParamIdMap = new HashMap<String, Object>();
			workParamIdMap.put("in_work_param_id", GET_WORK_PARAM_ID_LIST_KAP_KEI_SIZE[i]);
			workParamList.add(workParamIdMap);
		}

		// 業務パラメータIDリストを設定
		parentMap.put("WORK_PARAM_ID_List", workParamList);

		// 共通情報のマッピング
		parentMap.put("func_code", "1");

		outputMap.put(MAP_GET_WORK_PARAM_LIST_CC_ID, parentMap);

		return outputMap;
	}

	/**
	 * 業務パラメータ管理情報取得（割賦契約起動時サイズ取得用）CCの下りマッピングをします。
	 * @param bean       サービスフォームビーン
	 * @param outputMap  サービスから受け取ったMap
	 */
	public static void getGetWorkParamListForKeiKapSizeCC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		if (!outputMap.containsKey(MAP_GET_WORK_PARAM_LIST_CC_ID))
		{
			return;
		}

		HashMap parentMap = (HashMap)outputMap.get(MAP_GET_WORK_PARAM_LIST_CC_ID);

		if (parentMap == null || !parentMap.containsKey("EZM0321A010CBSMsg1List"))
		{
			return;
		}
		
		ArrayList<HashMap<String, Object>> workParamList = (ArrayList<HashMap<String, Object>>)parentMap.get("EZM0321A010CBSMsg1List");
		
		for (int i = 0; i < workParamList.size(); i++)
		{
			HashMap<String, Object> workParamMap = workParamList.get(i);
			String workParamId = (String) workParamMap.get("work_param_id");
			String workParamSetteValue = (String) workParamMap.get("work_param_sette_value");
			if (GET_WORK_PARAM_ID_LIST_KAP_KEI_SIZE[0].equals(workParamId))
			{
				bean[0].sendMessageString(JCHCommonConst.KEI_KAP_WIDTH, X31CWebConst.DATABEAN_SET_VALUE, workParamSetteValue);
			}
			else if (GET_WORK_PARAM_ID_LIST_KAP_KEI_SIZE[1].equals(workParamId))
			{
				bean[0].sendMessageString(JCHCommonConst.KEI_KAP_HEIGHT, X31CWebConst.DATABEAN_SET_VALUE, workParamSetteValue);
			}
		}
	}

	/**
	 * 請求先情報取得CCの下りマッピングをします。
	 * @param bean       サービスフォームビーン
	 * @param outputMap  サービスから受け取ったMap
	 */
	public static void getSaikenKanriInfoStkuCC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if(outputMap.containsKey(MAP_SEIKY_SAKI_INFO_STKU_CC_ID))
		{
			parentMap = (HashMap)outputMap.get(MAP_SEIKY_SAKI_INFO_STKU_CC_ID);
		}

		X31SDataBeanAccessArray minoInfo = bean[0].getDataBeanArray(JCHCommonConst.MINO_INFO);
		if(minoInfo != null && parentMap != null)
		{
			X31SDataBeanAccess subbean = null;
			if (minoInfo.getCount() > 0)
			{
				subbean = minoInfo.getDataBean(0);
			}
			else
			{
				subbean = minoInfo.addDataBean();
			}

			subbean.sendMessageString(JCHCommonConst.MINO_AMNT_SUM, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("msu_amnt_sum"));
			subbean.sendMessageString(JCHCommonConst.PAY_YAKUSOKU_RIKO_YMD, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("pay_yakusoku_riko_ymd"));
		}
	}

	/**
	 * 料金対応記録一覧取得CCの上りマッピングをします。
	 * @param bean       サービスフォームビーン
	 * @param outputMap  サービスに渡すMap
	 * @return マッピング後のMap
	 */
	public static HashMap<String, Object> setPrcTaioKirokIcrnStkuCC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap)
	{
		return setPrcTaioKirokIcrnStkuCC(bean, outputMap, "0", PRC_TAIO_KIROK_DEF_PAGING_MAX_SHOW_CNT, PRC_TAIO_KIROK_DEF_PAGING_ROW_PER_PAGE);
	}

	/**
	 * 料金対応記録一覧取得CCの上りマッピングをします。
	 * @param bean       サービスフォームビーン
	 * @param outputMap  サービスに渡すMap
	 * @return マッピング後のMap
	 */
	public static HashMap<String, Object> setPrcTaioKirokIcrnStkuCC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String pagingKbn, String prcTaioKirokKeyPagingMaxShowCnt, String prcTaioKirokKeyPagingRowPerPage)
	{
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", "1");

		// 請求契約番号 → 料金対応記録一覧取得マップ.ＫＥＹ＿請求契約番号
		parentMap.put("key_seiky_kei_no", bean[0].sendMessageString(JCHCommonConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

		// ページング制御情報のマッピング
		parentMap.put("search_type", PRC_TAIO_KIROK_PAGING_SEARCH_PATTERN);
		parentMap.put("max_search_num", JCCWebCommon.getSearchConst(prcTaioKirokKeyPagingMaxShowCnt));
		parentMap.put("display_num", JCCWebCommon.getSearchConst(prcTaioKirokKeyPagingRowPerPage));

		// 実行判定の区分を設定
		if ("1".equals(pagingKbn))
		{
			// タブメイン情報：取得する
			parentMap.put(JACStrConst.TAB_DSP_MAIN, "1");
			// 料金対応記録情報：取得しない
			parentMap.put(JACStrConst.TAB_DSP_PRC_TAIO_KIROK, "0");
		}
		else if ("2".equals(pagingKbn))
		{
			// タブメイン情報：取得しない
			parentMap.put(JACStrConst.TAB_DSP_MAIN, "0");
			// 料金対応記録情報：取得する
			parentMap.put(JACStrConst.TAB_DSP_PRC_TAIO_KIROK, "1");
		}
		else
		{
			// タブメイン情報：取得する
			parentMap.put(JACStrConst.TAB_DSP_MAIN, "1");
			// 料金対応記録情報：取得する
			parentMap.put(JACStrConst.TAB_DSP_PRC_TAIO_KIROK, "1");
		}

		outputMap.put(MAP_PRC_TAIO_KIROK_ICRN_STKU_CC_ID, parentMap);

		return outputMap;
	}

	/**
	 * 料金対応記録一覧取得CCの下りマッピングをします。
	 * @param bean       サービスフォームビーン
	 * @param outputMap  サービスから受け取ったMap
	 */
	public static void getPrcTaioKirokIcrnStkuCC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if(outputMap.containsKey(MAP_PRC_TAIO_KIROK_ICRN_STKU_CC_ID))
		{
			parentMap = (HashMap)outputMap.get(MAP_PRC_TAIO_KIROK_ICRN_STKU_CC_ID);
		}

		ArrayList childList = null;
		X31SDataBeanAccessArray prcRirekiInfo = bean[0].getDataBeanArray(JCHCommonConst.PRC_RIREKI_INFO);
		if(prcRirekiInfo != null && parentMap != null && parentMap.containsKey("ECH0551B010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("ECH0551B010CBSMsg1List");

			for(int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if(prcRirekiInfo.getCount() -1 >= i)
				{
					subbean = prcRirekiInfo.getDataBean(i);
				}
				else
				{
					subbean = prcRirekiInfo.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// 料金履歴情報.操作者 ← 料金対応記録一覧取得マップ.料金対応記録一覧明細.料金対応ユーザID名称
				if (childMap != null) {
					subbean.sendMessageString(JCHCommonConst.OPRT, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_taio_user_id_nm"));
				} else {
					subbean.sendMessageString(JCHCommonConst.OPRT, X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 料金履歴情報.対応日時 ← 料金対応記録一覧取得マップ.料金対応記録一覧明細.料金対応記録年月日時分秒
				if (childMap != null) {
					subbean.sendMessageString(JCHCommonConst.TAIO_DATE, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_taio_kirok_dtm"));
				} else {
					subbean.sendMessageString(JCHCommonConst.TAIO_DATE, X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 料金履歴情報.分類 ← 料金対応記録一覧取得マップ.料金対応記録一覧明細.料金対応記録種別コード名称
				if (childMap != null) {
					subbean.sendMessageString(JCHCommonConst.BUNRUI, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_taio_kirok_sbt_cd_nm"));
				} else {
					subbean.sendMessageString(JCHCommonConst.BUNRUI, X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 料金履歴情報.詳細 ← 料金対応記録一覧取得マップ.料金対応記録一覧明細.料金対応記録種別詳細コード名称
				if (childMap != null) {
					subbean.sendMessageString(JCHCommonConst.SHOSAI, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_taio_kirok_sbt_dtl_cd_nm"));
				} else {
					subbean.sendMessageString(JCHCommonConst.SHOSAI, X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 料金履歴情報.記事 ← 料金対応記録一覧取得マップ.料金対応記録一覧明細.記事
				if (childMap != null) {
					subbean.sendMessageString(JCHCommonConst.KIJI, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kiji"));
				} else {
					subbean.sendMessageString(JCHCommonConst.KIJI, X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 料金履歴情報.履歴情報 ← 料金対応記録一覧取得マップ.料金対応記録一覧明細.履歴情報
				if (childMap != null) {
					subbean.sendMessageString(JCHCommonConst.RIREKI_INFO, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("rireki_info"));
				} else {
					subbean.sendMessageString(JCHCommonConst.RIREKI_INFO, X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 料金履歴情報.対象年月 ← 料金対応記録一覧取得マップ.料金対応記録一覧明細.記録対象年月
				if (childMap != null) {
					subbean.sendMessageString(JCHCommonConst.TRGT_YM, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kirok_tg_ym"));
				} else {
					subbean.sendMessageString(JCHCommonConst.TRGT_YM, X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 料金履歴情報.対応履歴 ← 料金対応記録一覧取得マップ.料金対応記録一覧明細.対応履歴連動対象フラグ名称
				if (childMap != null) {
					subbean.sendMessageString(JCHCommonConst.CUST_TAIO_RIREKI, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("taiorrki_rendo_tg_flg_nm"));
				} else {
					subbean.sendMessageString(JCHCommonConst.CUST_TAIO_RIREKI, X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}
	}

//ANK-2694-00-00 DEL START 【W07】ワンストップ案件(ＳＴＥＰ２)
//	/**
//	 * 金融機関一覧情報取得CCの上りマッピングをします。
//	 * @param bean       サービスフォームビーン
//	 * @param outputMap  サービスに渡すMap
//	 * @param isTtlKozaPfct 総合口座（パーフェクト口座）かどうかを表すフラグ（true:対象）
//	 * @return マッピング後のMap
//	 */
//	public static HashMap setBankIcrnInfoStkuCC(X31SDataBeanAccess[] bean, HashMap outputMap, boolean isTtlKozaPfct)
//	{
//		if(bean == null)
//		{
//			return null;
//		}
//		
//		if(bean.length != 1)
//		{
//			return null;
//		}
//
//		HashMap<String, Object> parentMap = new HashMap<String, Object>();
//
//		// 共通情報のマッピング
//		parentMap.put("func_code", "1");
//
//		// 金融機関コード
//		String bankCd = JCHPulldownUtil.getSelectedValue(bean, JCHCommonConst.BANK_INFO, JCHCommonConst.BANK_CD_LIST, JCHCommonConst.BANK_CD_SEL);
//		if (bankCd == null)
//		{
//			bankCd = JACStrConst.KARA_MOJI;
//		}
//		
//		// 金融機関コード → 金融機関一覧情報取得マップ.ＫＥＹ＿金融機関コード
//		parentMap.put("key_bank_cd", bankCd);
//
//		// 入金経路コードが総合口座かつ指定口座がパーフェクト口座の場合、サービスインタフェース（CC）で業務パラメータを取得する処理を行うためフラグを立て、指定口座コードを渡す
//		if (isTtlKozaPfct)
//		{
//			String shiteiKozaCd = JCHPulldownUtil.getSelectedValue(bean, JCHCommonConst.SHITEIKOZA_INFO, JCHCommonConst.SHITEIKOZA_CD_LIST_03, JCHCommonConst.SHITEIKOZA_CD_SEL_03);
//			parentMap.put("ttlkoza_pfct_flg", "1");
//			parentMap.put("shiteikoza_cd", shiteiKozaCd);
//		}
//		
//		outputMap.put(MAP_BANK_ICRN_INFO_STKU_CC_ID, parentMap);
//						
//		return outputMap;
//	}
//ANK-2694-00-00 DEL END 【W07】ワンストップ案件(ＳＴＥＰ２)

//ANK-2694-00-00 DEL START 【W07】ワンストップ案件(ＳＴＥＰ２)
//	/**
//	 * 金融機関一覧情報取得CCの下りマッピングをします。
//	 * @param bean       サービスフォームビーン
//	 * @param outputMap  サービスから受け取ったMap
//	 */
//	public static void getBankIcrnInfoStkuCC(X31SDataBeanAccess[] bean, HashMap outputMap)
//	{
//		HashMap parentMap = null;
//		if (outputMap.containsKey(MAP_BANK_ICRN_INFO_STKU_CC_ID))
//		{
//			parentMap = (HashMap)outputMap.get(MAP_BANK_ICRN_INFO_STKU_CC_ID);
//		}
//
//		String[] removeList = bean[0].sendMessageString(JCHCommonConst.BANK_CD_REMOVE, X31CWebConst.DATABEAN_GET_VALUE).split(",");
//		int removeListSize = removeList.length;
//
//		ArrayList childList = null;
//
//		X31SDataBeanAccessArray bankInfo = bean[0].getDataBeanArray(JCHCommonConst.BANK_INFO);
//		X31SDataBeanAccess subbeanBank = bankInfo.getDataBean(0);
//		
//		subbeanBank.sendMessage(JCHCommonConst.BANK_CD_LIST, X31CWebConst.DATABEAN_CLEAR);
//		subbeanBank.sendMessage(JCHCommonConst.BANK_NM_LIST, X31CWebConst.DATABEAN_CLEAR);
//		subbeanBank.sendMessage(JCHCommonConst.BANK_CD_NM_LIST, X31CWebConst.DATABEAN_CLEAR);
//
//		if(bankInfo != null && parentMap != null && parentMap.containsKey("EKK0511B003CBSMsg1List"))
//		{
//			childList = (ArrayList)parentMap.get("EKK0511B003CBSMsg1List");
//
//			for (int i = 0; i < childList.size(); i++)
//			{
//				HashMap childMap = (HashMap)childList.get(i);
//				
//				String cd = new String();
//				String nm = new String();
//				if (childMap != null) {
//					cd = (String)childMap.get("bank_cd");
//					nm = (String)childMap.get("bank_nm");
//				}
//
//				boolean removeFlg = false;
//				for (int j = 0; j < removeListSize; j++)
//				{
//					if (cd.equals(removeList[j])) {
//						removeFlg = true;
//						break;
//					}
//				}
//				
//				if (!removeFlg)
//				{
//					// 金融機関情報.金融機関コードリスト ← 金融機関一覧情報取得マップ.金融機関一覧照会明細.金融機関コード
//					subbeanBank.sendMessageString(JCHCommonConst.BANK_CD_LIST, X31CWebConst.DATABEAN_ADD_VALUE, cd);
//					// 金融機関情報.金融機関名称リスト ← 金融機関一覧情報取得マップ.金融機関一覧照会明細.金融機関名
//					subbeanBank.sendMessageString(JCHCommonConst.BANK_NM_LIST, X31CWebConst.DATABEAN_ADD_VALUE, nm);
//					// 金融機関情報.金融機関コード名称リスト
//					StringBuffer cdNmEditor = new StringBuffer();
//					cdNmEditor.append(cd).append(JACStrConst.COLON).append(nm);
//					subbeanBank.sendMessageString(JCHCommonConst.BANK_CD_NM_LIST, X31CWebConst.DATABEAN_ADD_VALUE, cdNmEditor.toString());
//				}
//			}
//		}
//
//
//		X31SDataBeanAccessArray bankShitenInfo = bean[0].getDataBeanArray(JCHCommonConst.BANK_SHITEN_INFO);
//		X31SDataBeanAccess subbeanShiten = bankShitenInfo.getDataBean(0);
//
//		subbeanShiten.sendMessage(JCHCommonConst.BANK_SHITEN_CD_LIST, X31CWebConst.DATABEAN_CLEAR);
//		subbeanShiten.sendMessage(JCHCommonConst.BANK_SHITEN_NM_LIST, X31CWebConst.DATABEAN_CLEAR);
//		subbeanShiten.sendMessage(JCHCommonConst.BANK_SHITEN_CD_NM_LIST, X31CWebConst.DATABEAN_CLEAR);
//
//		if(bankShitenInfo != null && parentMap != null && parentMap.containsKey("EKK0511B004CBSMsg1List"))
//		{
//			childList = (ArrayList)parentMap.get("EKK0511B004CBSMsg1List");
//
//			for (int i = 0; i < childList.size(); i++)
//			{
//				HashMap childMap = (HashMap)childList.get(i);
//
//				String cd = new String();
//				String nm = new String();
//				if (childMap != null) {
//					cd = (String)childMap.get("bank_shiten_cd");
//					nm = (String)childMap.get("bank_shiten_nm");
//				}
//				
//				// 金融機関支店情報.金融機関支店コードリスト ← 金融機関一覧情報取得マップ.金融機関支店一覧照会明細.金融機関支店コード
//				subbeanShiten.sendMessageString(JCHCommonConst.BANK_SHITEN_CD_LIST, X31CWebConst.DATABEAN_ADD_VALUE, cd);
//				// 金融機関支店情報.金融機関支店名称リスト ← 金融機関一覧情報取得マップ.金融機関支店一覧照会明細.金融機関支店名
//				subbeanShiten.sendMessageString(JCHCommonConst.BANK_SHITEN_NM_LIST, X31CWebConst.DATABEAN_ADD_VALUE, nm);
//				// 金融機関支店情報.金融機関支店コード名称リスト
//				StringBuffer cdNmEditor = new StringBuffer();
//				cdNmEditor.append(cd).append(JACStrConst.COLON).append(nm);
//				subbeanShiten.sendMessageString(JCHCommonConst.BANK_SHITEN_CD_NM_LIST, X31CWebConst.DATABEAN_ADD_VALUE, cdNmEditor.toString());
//			}
//		}
//		
//		String nyukinRouteCd = bean[0].sendMessageString(JCHCommonConst.NYUKIN_ROUTE_CD, X31CWebConst.DATABEAN_GET_VALUE); // 入金経路コード
//		// 入金経路コードが総合口座かつ指定口座がパーフェクト口座の場合
//		if (JACStrConst.NYKNKEIRCD_TTL_KOZA.equals(nyukinRouteCd))
//		{
//			String shiteiKozaCd = JCHPulldownUtil.getSelectedValue(bean, JCHCommonConst.SHITEIKOZA_INFO, JCHCommonConst.SHITEIKOZA_CD_LIST_03, JCHCommonConst.SHITEIKOZA_CD_SEL_03);
//			if (JACStrConst.PAYWAY_KOUZA_PFCT.equals(shiteiKozaCd))
//			{
//				if (parentMap != null && parentMap.containsKey("EZM0321A010CBSMsg1List"))
//				{
//					// 業務パラメータ（払込先金融機関、支店）を取得する
//					ArrayList dataList = (ArrayList)parentMap.get("EZM0321A010CBSMsg1List");
//					
//					for (int i = 0; i < dataList.size(); i++)
//					{
//						HashMap tmpMap = (HashMap)dataList.get(i);
//						String bankCd = (String)tmpMap.get("hrakmisaki_bank_cd");
//						
//						// bankCdには指定口座:払込先金融機関/払込先金融機関支店の形式で値が格納されている
//						String[] bankArray = bankCd.split(JACStrConst.COLON); // コロンで分割
//	
//						
//						// 対象の指定口座の場合
//						if (shiteiKozaCd.equals(bankArray[0]))
//						{
//							String bank = bankArray[1].split(JACStrConst.SLASH)[0]; // 払込先金融機関コード
//							String bankSub = bankArray[1].split(JACStrConst.SLASH)[1]; // 払込先金融機関支店コード
//	
//							// 金融機関コード、支店コードの格納位置を取得する
//							String bankIndex = JCHPulldownUtil.countSelIndex(subbeanBank, JCHCommonConst.BANK_CD_LIST, bank);
//							String bankSubIndex = JCHPulldownUtil.countSelIndex(subbeanShiten, JCHCommonConst.BANK_SHITEN_CD_LIST, bankSub);
//							
//							// リストのIndexを設定する
//							subbeanBank.sendMessageString(JCHCommonConst.BANK_CD_SEL, X31CWebConst.DATABEAN_SET_VALUE, bankIndex); // 金融機関コード選択
//							subbeanShiten.sendMessageString(JCHCommonConst.BANK_SHITEN_CD_SEL, X31CWebConst.DATABEAN_SET_VALUE, bankSubIndex); // 金融機関支店コード選択
//	
//							break;
//						}
//					}
//				}
//			}
//		}
//	}
//ANK-2694-00-00 DEL END 【W07】ワンストップ案件(ＳＴＥＰ２)

	/**
	 * 含有ＮＧワード取得処理.<br>
	 * @param bl　      ビューロジックインスタンス
	 * @param value     検査対象の文字列
	 * @return 含まれるＮＧワードのリスト
	 */
	public static ArrayList<String> getContainedNgWord(JCCWebBusinessLogic bl, String value)
	{
		// ユースケースID格納用マップを生成。
		HashMap paramMap = new HashMap();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_ACSV0015);
		
		// サービスに渡すMapを生成する
		HashMap inDataMap = new HashMap();
		
		setACSV0015SC(bl, value, inDataMap);
		
		// 検索結果格納用マップを生成。
		HashMap outputMap = new HashMap();
		
		// サービスの呼び出し
		X31CMessageResult msgResult = bl.invokeService(paramMap, inDataMap, outputMap);
		
		// 下りマッピング
		return getACSV0015SC(outputMap);
	}

	/**
	 * 料金対応記録登録CCのリターンMapより、NGワードリストが存在する場合、これを文字列のリストとして返します。
	 * @param outputMap 料金対応記録登録CCのリターンMap
	 * @return ＮＧワードリスト
	 */
	@SuppressWarnings("unchecked")
	public static ArrayList<String> getNgWordList(HashMap<String, Object> outputMap){

		ArrayList<String> ngWordList = new ArrayList<String>();

		HashMap<String, Object> parentMap = null;
		if (outputMap.containsKey(JACStrConst.PRCTAIOKIROKADDCC_MAP_ID))
		{
			parentMap = (HashMap<String, Object>)outputMap.get(JACStrConst.PRCTAIOKIROKADDCC_MAP_ID);
		}

		if (parentMap != null && parentMap.containsKey(JACStrConst.NGWORD_LIST))
		{
			List<Map<String, String>> childList = (ArrayList<Map<String, String>>) parentMap.get(JACStrConst.NGWORD_LIST);
			for (int i = 0; i < childList.size(); i++)
			{
				Map<String, String> childMap = (Map<String, String>)childList.get(i);
				if (childMap != null)
				{
					ngWordList.add((String)childList.get(i).get("keyword_nm"));
				}
			}
		}

		return ngWordList;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約選択画面
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public static HashMap setMAPSVCKEIINFOCC(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(MAP_KEY_SEIKY_KEI_NO, bean[0].sendMessageString(MOVE_TO_ITEM_SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(MAP_SVC_KEI_INFO_CC_ID, parentMap);
						
		return outputMap;
	}
	
	/**
	 * 下りマッピング
	 * @param bean　[0]：サービス契約選択画面
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	private static ArrayList<HashMap<String, Object>> getMAPSVCKEIINFOCC(X31SDataBeanAccess[] bean,HashMap outputMap) {

		ArrayList<HashMap<String, Object>> svcKeiList = new ArrayList<HashMap<String, Object>>();

		HashMap<String, Object> parentMap = null;
		if (outputMap.containsKey(MAP_SVC_KEI_INFO_CC_ID))
		{
			parentMap = (HashMap<String, Object>)outputMap.get(MAP_SVC_KEI_INFO_CC_ID);
		}

		if (parentMap != null && parentMap.containsKey(MAP_SVC_KEI_INFO_LIST))
		{
			svcKeiList = (ArrayList<HashMap<String, Object>>) parentMap.get(MAP_SVC_KEI_INFO_LIST);
		}

		return svcKeiList;
	}

	// ▼▼ BPマッピング処理 ▼▼
	/**
	 * 通話明細再発行画面データチェックサービスの上りマッピングをします
	 * @param bl　        ビューロジックインスタンス
	 * @param value　     チェック対象文字列
	 * @param outputMap   検索結果格納用マップ
	 */
	private static HashMap setACSV0015SC(JCCWebBusinessLogic bl, String value, HashMap outputMap)
	{
		if(value == null)
		{
			return null;
		}
		if("".equals(value))
		{
			return null;
		}
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		// 共通情報のマッピング
		parentMap.put("func_code", "1");
		// 検査対象の文字列 → NGワードチェックマップ.ＫＥＹ＿チェック対象文字
		parentMap.put("key_chk_tg_moji", value);
		// 運用日付 → NGワードチェックマップ.ＫＥＹ＿運用日付
		String opeYm = JCCWebCommon.getOpeDate(bl, JACStrConst.SYS_CD_CH).substring(0, 6);
		parentMap.put("key_unyo_ym", opeYm);
		
		outputMap.put("ACSV001501CC", parentMap);
		
		return outputMap;
	}
	
	/**
	 * 通話明細再発行画面データチェックサービスの下りマッピングをします
	 * @param outputMap   検索結果格納用マップ
	 * @return ＮＧワードリスト
	 */
	private static ArrayList<String> getACSV0015SC(HashMap outputMap){
		
		ArrayList<String> ngWordList = new ArrayList<String>();
		
		HashMap parentMap = null;
		if(outputMap.containsKey("ACSV001501CC"))
		{
			parentMap = (HashMap)outputMap.get("ACSV001501CC");
		}
		
		if(parentMap != null && parentMap.containsKey("ECR0061B010CBSMsg1List"))
		{			
			ArrayList<HashMap> childList = (ArrayList) parentMap.get("ECR0061B010CBSMsg1List");
			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = childList.get(i);
				if (childMap != null)
				{
					ngWordList.add((String)childList.get(i).get("keyword_nm"));	
				}
			}
		}
		
		return ngWordList;
	}
	
	/**
	 * 契約Ｓ遷移先判定用契約情報照会サービスの上りマッピングをします
	 * @param seikyKeiNo　請求契約番号
	 * @param outputMap   検索結果格納用マップ
	 */
	private static HashMap setCHSV000801CC(String seikyKeiNo, HashMap outputMap) {
		
		if(seikyKeiNo == null){
			return null;
		}
		if("".equals(seikyKeiNo)){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", "2");

		// 請求契約番号 → 契約Ｓ遷移先判定マップ.ＫＥＹ＿請求契約番号
		parentMap.put("key_seiky_kei_no", seikyKeiNo);

		outputMap.put("CHSV000801CC", parentMap);
						
		return outputMap;
	}

	/**
	 * 契約Ｓ遷移先判定用契約情報照会サービスの下りマッピングをします
	 * @param bean       サービスフォームBean
	 * @param outputMap  検索結果格納用マップ
	 * @param keyValues  引継情報マップ(遷移先画面に引き継ぐ情報を格納するマップ)
	 * @return 契約Ｓ遷移先画面ID
	 */
	@SuppressWarnings("unchecked")
	private static String getCHSV000801CC(X31SDataBeanAccess bean, HashMap outputMap, HashMap<String, Object> keyValues){

		HashMap parentMap = null;
		if(outputMap.containsKey(MAP_CC_ID)){
			parentMap = (HashMap)outputMap.get(MAP_CC_ID);
		}
		
		// 課金先取得件数０件の場合
		Integer kainsdCount = (Integer)parentMap.get(CHSV000801_KAKINS_COUNT);
		if (kainsdCount.intValue() == 0)
		{
			// 遷移先引継情報.請求契約番号 ← 契約Ｓ遷移先判定マップ.請求契約番号
			if (parentMap.containsKey(CHSV000801_ITEM_SEIKY_KEI_NO))
			{
				keyValues.put(JKKCommonConst.HKTGI_SEIKY_KEI_NO, (String)parentMap.get(CHSV000801_ITEM_SEIKY_KEI_NO));
			}
			
			// お客様一覧照会
			return JCKScreenConst.SCREEN_ID_CKW00101;
		}
		
		Integer mansionIdCount = (Integer)parentMap.get(CHSV000801_ITEM_MANSION_ID_COUNT);
		if (mansionIdCount.intValue() >= 1)
		{
			/** マンションオーナー契約の場合 **/
			if (mansionIdCount.intValue()  == 1)
			{
				// 遷移先引継情報.P-ID ← 契約Ｓ遷移先判定マップ.P-ID
				if (parentMap.containsKey(CHSV000801_ITEM_MAP_KEY_PID))
				{
					keyValues.put(JKKCommonConst.HKTGI_PID, (String)parentMap.get(CHSV000801_ITEM_MAP_KEY_PID));
				}
				// 遷移先引継情報.マンションID ← 契約Ｓ遷移先判定マップ.マンションID
				if (parentMap.containsKey(CHSV000801_ITEM_MAP_KEY_PRC_MANS_ID))
				{
					keyValues.put(JKKCommonConst.HKTGI_MANS_ID, (String)parentMap.get(CHSV000801_ITEM_MAP_KEY_PRC_MANS_ID));
				}
				// 遷移先引継情報.CAT-ID ← 契約Ｓ遷移先判定マップ.CAT-ID
				if (parentMap.containsKey(CHSV000801_ITEM_MAP_KEY_PRC_CATID))
				{
					keyValues.put(JKKCommonConst.HKTGI_CATID, (String)parentMap.get(CHSV000801_ITEM_MAP_KEY_PRC_CATID));
				}
				// 遷移先引継情報.請求契約番号（ネット） ← 契約Ｓ遷移先判定マップ.請求契約番号（ネット）
				if (parentMap.containsKey(CHSV000801_ITEM_MAP_KEY_SEIKY_KEI_NO_NET))
				{
					keyValues.put(JKKCommonConst.HKTGI_SEIKY_KEI_NO_NET, (String)parentMap.get(CHSV000801_ITEM_MAP_KEY_SEIKY_KEI_NO_NET));
				}
				// 遷移先引継情報.請求契約番号（ＴＶ） ← 契約Ｓ遷移先判定マップ.請求契約番号（ＴＶ）
				if (parentMap.containsKey(CHSV000801_ITEM_MAP_KEY_SEIKY_KEI_NO_TV))
				{
					keyValues.put(JKKCommonConst.HKTGI_SEIKY_KEI_NO_TV, (String)parentMap.get(CHSV000801_ITEM_MAP_KEY_SEIKY_KEI_NO_TV));
				}
				// マンション契約情報照会
				return JKKScreenConst.SCREEN_ID_KKW12504;
			}
			else if  (mansionIdCount.intValue() > 1)
			{
				// 遷移先引継情報.請求契約番号 ← 契約Ｓ遷移先判定マップ.請求契約番号
				if (parentMap.containsKey(CHSV000801_ITEM_SEIKY_KEI_NO))
				{
					keyValues.put(JKKCommonConst.HKTGI_SEIKY_KEI_NO, (String)parentMap.get(CHSV000801_ITEM_SEIKY_KEI_NO));
				}
				// マンション契約一覧照会
				return JKKScreenConst.SCREEN_ID_KKW12503;
			}
		}

		/** コンシューマ契約の場合 **/
		// ◇契約情報状況判定 
		Integer sysIdCount = (Integer)parentMap.get(CHSV000801_ITEM_SYSID_COUNT);
		Integer svcKeiCount = (Integer)parentMap.get(CHSV000801_ITEM_SVC_KEI_COUNT);
		if (sysIdCount.intValue() > 1)
		{
			// 遷移先引継情報.請求契約番号 ← 契約Ｓ遷移先判定マップ.請求契約番号
			if (parentMap.containsKey(CHSV000801_ITEM_SEIKY_KEI_NO))
			{
				keyValues.put(JKKCommonConst.HKTGI_SEIKY_KEI_NO, (String)parentMap.get(CHSV000801_ITEM_SEIKY_KEI_NO));
			}
			
			// お客様一覧照会
			return JCKScreenConst.SCREEN_ID_CKW00101;
		}
		else if (sysIdCount.intValue() == 1 && (svcKeiCount.intValue() > 1 || svcKeiCount.intValue() == 0))
		{
			// 遷移先引継情報.請求契約番号 ← 契約Ｓ遷移先判定マップ.請求契約番号
			if (parentMap.containsKey(CHSV000801_ITEM_SEIKY_KEI_NO))
			{
				keyValues.put(JKKCommonConst.HKTGI_SEIKY_KEI_NO, (String)parentMap.get(CHSV000801_ITEM_SEIKY_KEI_NO));
			}
			// 遷移先引継情報.SYSID ← 契約Ｓ遷移先判定マップ.SYSID
			if (parentMap.containsKey(CHSV000801_ITEM_SYSID))
			{
				keyValues.put(JKKCommonConst.HKTGI_SYSID, (String)parentMap.get(CHSV000801_ITEM_SYSID));
			}
			
			// サービス契約一覧照会
			return JKKScreenConst.SCREEN_ID_KKW01101;
		}
		else
		{
			// 遷移先引継情報.請求契約番号 ← 契約Ｓ遷移先判定マップ.請求契約番号
			if (parentMap.containsKey(CHSV000801_ITEM_SEIKY_KEI_NO))
			{
				keyValues.put(JKKCommonConst.HKTGI_SEIKY_KEI_NO, (String)parentMap.get(CHSV000801_ITEM_SEIKY_KEI_NO));
			}
			// 遷移先引継情報.SYSID ← 契約Ｓ遷移先判定マップ.SYSID
			if (parentMap.containsKey(CHSV000801_ITEM_SYSID))
			{
				keyValues.put(JKKCommonConst.HKTGI_SYSID, (String)parentMap.get(CHSV000801_ITEM_SYSID));
			}
			// 遷移先サービス契約番号 ← 契約Ｓ遷移先判定マップ.サービス契約番号
			if (parentMap.containsKey(CHSV000801_ITEM_SVC_KEI_NO))
			{
				keyValues.put(JKKCommonConst.HKTGI_SVC_KEI_NO, (String)parentMap.get(CHSV000801_ITEM_SVC_KEI_NO));
			}
			// 遷移区分 ← ""(空文字:画面遷移)
			keyValues.put(JKKCommonConst.HKTGI_POPUP_MODE, "");
			// 異動区分 ← ""(空文字)
			keyValues.put(JKKCommonConst.HKTGI_IDO_DIV, "");
			// 異動区分選択画面遷移パターン ← "01"(自画面遷移パターン)
			keyValues.put(JKKCommonConst.HKTGI_IDO_DIV_SENI_PTN, "01");
			
			String prcGrpCd = (String)parentMap.get(CHSV000801_ITEM_PRC_GRP_CD);
			
			if(JKKStrConst.CD00133_01.equals(prcGrpCd) || JKKStrConst.CD00133_15.equals(prcGrpCd) || JKKStrConst.CD00133_02.equals(prcGrpCd) || 
				JKKStrConst.CD00133_03.equals(prcGrpCd) || JKKStrConst.CD00133_04.equals(prcGrpCd))
			{
				// サービス契約情報更新（ｅｏ光ネット）
				return JKKScreenConst.SCREEN_ID_KKW00128;
			}
			else if(JKKStrConst.CD00133_05.equals(prcGrpCd) || JKKStrConst.CD00133_06.equals(prcGrpCd) )
			{
				// サービス契約情報更新（ｅｏADSL）
				return JKKScreenConst.SCREEN_ID_KKW00132;
			}
			else if (JKKStrConst.CD00133_07.equals(prcGrpCd) || JKKStrConst.CD00133_08.equals(prcGrpCd)
					|| JKKStrConst.CD00133_09.equals(prcGrpCd) || JKKStrConst.CD00133_16.equals(prcGrpCd))
			{
				// サービス契約情報更新（ｅｏモバイル）
				return JKKScreenConst.SCREEN_ID_KKW00131;
			}
			else if(JKKStrConst.CD00133_10.equals(prcGrpCd) )
			{
				//サービス契約情報更新（ｅｏ光電話）
				return JKKScreenConst.SCREEN_ID_KKW00130;
			}
			else if(JKKStrConst.CD00133_11.equals(prcGrpCd) || JKKStrConst.CD00133_12.equals(prcGrpCd) || JKKStrConst.CD00133_13.equals(prcGrpCd))
			{
				// サービス契約情報更新（ｅｏ光テレビ）
				return JKKScreenConst.SCREEN_ID_KKW00129;
			}
			else if(JKKStrConst.CD00133_51.equals(prcGrpCd) )
			{
				//サービス契約情報照会（ｍｉｎｅｏ）
				return JKKScreenConst.SCREEN_ID_KKW00194;
			}
			
			// サービス契約情報更新（ｅｏ光ネット）
			return JKKScreenConst.SCREEN_ID_KKW00128;
		}
	}
	
/* TODO : 
 * setCHSV900101SC()及びgetCHSV900101SC()は、IT2向けの暫定措置として作成したメソッドです 
 * 
 * ここから　〜　
 */
	/**
	 * 他シス遷移用サービス契約番号一覧照会サービスの上りマッピングをします
	 * @param seikyKeiNo　請求契約番号
	 * @param outputMap   検索結果格納用マップ
	 */
	private static HashMap setCHSV900101SC(String seikyKeiNo, HashMap outputMap) {
		
		if(seikyKeiNo == null){
			return null;
		}
		if("".equals(seikyKeiNo)){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", "1");

		// 請求契約番号 → サービス契約番号一覧照会マップ.ＫＥＹ＿請求契約番号
		parentMap.put("key_seiky_kei_no", seikyKeiNo);

		outputMap.put("CHSV900101SC", parentMap);
						
		return outputMap;
	}
	
	/* TODO : 
 * 当該のgetCHSV900101SC()は、CRの対応履歴登録に指定するサービス契約番号(N件)の取得として作成したメソッドです。
 * getSvcKeiNoList()の下りマッピングに対応しています。
 * 不要メソッド(getMinSvcKeiNo())を完全に削除した後、当TODOコメントを併せて削除してください。
 *  
 * ここから　〜　
 */
	/**
	 * CR対応履歴登録用サービス契約番号リスト取得.<br>
	 * 他シス遷移用サービス契約番号一覧照会サービスの下りマッピングをします
	 * @param bean       サービスフォームBean
	 * @param outputMap  検索結果格納用マップ
	 * @return サービス契約番号リスト
	 */
	private static ArrayList<String> getCHSV900101SC(X31SDataBeanAccess bean, HashMap outputMap)
	{
		ArrayList<String> svcKeiNoList = new ArrayList<String>();
		
		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV900101SC")){
			parentMap = (HashMap)outputMap.get("CHSV900101SC");
		}
		
		if (parentMap != null && parentMap.containsKey("EKK0321B011CBSMsg1List") && parentMap.get("EKK0321B011CBSMsg1List") != null)
		{
			ArrayList childList = (ArrayList)parentMap.get("EKK0321B011CBSMsg1List");
			for (int idx = 0; idx < childList.size(); idx++)
			{
				HashMap childMap = (HashMap)childList.get(idx);
				svcKeiNoList.add((String)childMap.get("svc_kei_no"));
			}
		}
		
		return svcKeiNoList;
	}
/* TODO : 〜　ここまで　*/
	
	/**
	 * サービス契約情報取得サービスの上りマッピングをします
	 * @param svcKeiNo　サービス契約番号
	 * @param outputMap   検索結果格納用マップ
	 */
	private static HashMap setCHSV003001SC(String svcKeiNo, HashMap outputMap) {

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", "2");

		// サービス契約番号 → 契約Ｓ遷移先判定マップ.ＫＥＹ＿請求契約番号
		parentMap.put("key_svc_kei_no", svcKeiNo);

		outputMap.put("CHSV003001SC", parentMap);
						
		return outputMap;
	}
	
	/**
	 * サービス契約情報取得サービスの下りマッピングをします
	 * @param outputMap  検索結果格納用マップ
	 * @return サービス契約番号
	 */
	@SuppressWarnings("unchecked")
	private static String getCHSV003001SC(HashMap outputMap){
		String svcKeiNo = "";
		
		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV003001SC")){
			parentMap = (HashMap)outputMap.get("CHSV003001SC");
		}
		
		if(parentMap.containsKey("EKK0081A010CBSMsg1List")){
			ArrayList childList = (ArrayList)parentMap.get("EKK0081A010CBSMsg1List");
			
			if (childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				svcKeiNo = (String)childMap.get("svc_kei_no");
			}
		}
		
		return svcKeiNo;
	}
	
	// ▲▲ BPマッピング処理 ▲▲
	
	/**
	 * 指定された支払方法審査結果コードを表示名称に変換します。
	 * <br>
	 * @param seikyWayChkRslt 支払方法審査結果コード
	 */
	private static String convSeikyWayChkRsltToDspName(String seikyWayChkRslt)
	{
		/** 口座振替審査結果表示コード(OK) */
		final String KHRI_SKEKKA_DSP_OK = "OK";
		/** 口座振替審査結果表示コード(NG) */
		final String KHRI_SKEKKA_DSP_NG = "NG";
		
		if (seikyWayChkRslt == null || JACStrConst.KARA_MOJI.equals(seikyWayChkRslt))
		{
			return JACStrConst.KARA_MOJI;
		}
		
		String seikyWayChkRsltVal = seikyWayChkRslt.trim();
		String seikyWayChkRsltDsp = null;
		if ("20".equals(seikyWayChkRsltVal)
				|| "30".equals(seikyWayChkRsltVal)
				|| "40".equals(seikyWayChkRsltVal)
				|| "29".equals(seikyWayChkRsltVal)
				|| "39".equals(seikyWayChkRsltVal)
				|| "49".equals(seikyWayChkRsltVal))
		{
			seikyWayChkRsltDsp = KHRI_SKEKKA_DSP_OK;
		}
		else if ("21".equals(seikyWayChkRsltVal)
				|| "31".equals(seikyWayChkRsltVal)
				|| "41".equals(seikyWayChkRsltVal))
		{
			seikyWayChkRsltDsp = KHRI_SKEKKA_DSP_NG;
		}
		else
		{
			seikyWayChkRsltDsp = JACStrConst.KARA_MOJI;
		}
		
		return seikyWayChkRsltDsp;
	}

	/**
	 * 機器提供サービス契約一覧照会（基準日指定）呼び出しの上りマッピングをする。
	 * ＫＥＹ＿機器製造番号を指定する呼び出し方法で機器提供サービス契約一覧照会（基準日指定）を呼び出し
	 * 機器提供サービス契約の一覧を取得する（取得できる場合、取得結果は1件となる）。
	 * 機能的にkoptModelのJCHSeikyUtil.isExistsKikiTkSvcKeiメソッドと同等の役割を担う。
	 * @param bean　[0]：サービスフォームBean
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param seizoNo　機器製造番号
	 * @param kijunDay　基準日
	 */
	@SuppressWarnings("unchecked")
	public static HashMap setGETKIKITKSVCKEILISTCC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String seizoNo, String kijunDay) {

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// サービス契約番号 → 機器提供サービス契約一覧照会（基準日指定）マップ.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", bean[0].sendMessageString(JCHCommonConst.KEY_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

		if (!JCRUtilCommon.isNull(seizoNo))
		{
			// サービス詳細識別番号入力 → 機器提供サービス契約一覧照会（基準日指定）マップ.ＫＥＹ＿機器製造番号
			parentMap.put("key_kiki_seizo_no", seizoNo);
		}

		if (!JCRUtilCommon.isNull(kijunDay))
		{
			// 基準日 → 機器提供サービス契約一覧照会（基準日指定）マップ.ＫＥＹ＿基準年月日
			parentMap.put("key_stdardymd", kijunDay);
		}
		else
		{
			// 請求年月 → 機器提供サービス契約一覧照会（基準日指定）マップ.ＫＥＹ＿請求年月
			parentMap.put("key_seiky_ym", bean[0].sendMessageString(JCHCommonConst.SEIKY_YM, X31CWebConst.DATABEAN_GET_VALUE));
		}

		outputMap.put(JACStrConst.KIKI_TK_SVC_KEI_CC, parentMap);

		return outputMap;
	}

	/**
	 * 下りマッピング
	 * 
	 * @param bean　[0]：サービスフォームBean
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public static X31SDataBeanAccess[] getGETKIKITKSVCKEILISTCC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if (outputMap.containsKey(JACStrConst.KIKI_TK_SVC_KEI_CC))
		{
			parentMap = (HashMap)outputMap.get(JACStrConst.KIKI_TK_SVC_KEI_CC);
		}

		ArrayList childList = null;
		if (parentMap.containsKey("EKK0341B518CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0341B518CBSMsg1List");

			// データが存在する場合、1件のみ取得できる
			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);

				String kkTkSvcKeiNo = (String)childMap.get("kktk_svc_kei_no");

				// 機器提供サービス契約番号 ← 機器提供サービス契約番号
				bean[0].sendMessageString(JCHCommonConst.KK_TK_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, kkTkSvcKeiNo);
				break;
			}
		}

		return bean;
	}

	/**
	 * 機器提供サービス契約取得サービス呼び出し処理。
	 * 機器提供サービス契約取得サービス呼び出し、データ取得できた場合、beanの機器提供サービス契約番号を設定し、trueを返す。
	 * データ取得できなかった場合、falseを返す。
	 * @param bl　      ビューロジックインスタンス
	 * @param paramBeans サービスフォームBean
	 * @param seizoNo 製造番号
	 * @return [true:正常、false:エラー]
	 */
	public static boolean getKkTkSvcKeiNo(JCCWebBusinessLogic bl, X31SDataBeanAccess[] paramBeans, String seizoNo, String kijunDay)
	{
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_CHSV0079);

		// サービスに渡すMapを生成する
		HashMap<String, Object> inDataMap = new HashMap<String, Object>();

		// 上りマッピング
		setGETKIKITKSVCKEILISTCC(paramBeans, inDataMap, JPCModelConstant.FUNC_CD_1, seizoNo, kijunDay);

		// 検索結果格納用マップを生成。
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// サービスの呼び出し
		bl.invokeService(paramMap, inDataMap, outputMap);

		// 検索エラーフラグの取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg(JACStrConst.KIKI_TK_SVC_KEI_CC, outputMap);

		// データが取得できない場合エラーとする。
		if ("1".equals(searchErrFlg))
		{
			return false;
		}

		// 下りマッピング
		// 機器提供サービス契約番号（ワーク）をセット。
		getGETKIKITKSVCKEILISTCC(paramBeans, outputMap);

		return true;
	}

}
