/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：FUSV0266_FUSV0266OPDBMapper
*	ソースファイル名：FUSV0266_FUSV0266OPDBMapper.java
*	作成者			：富士通
*	日付			：2013年02月15日
*＜機能概要＞
*	BP（eoモバイルWiMAX申込入力チェック）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v5.00		2013/02/15	FJ)岡井 	【AKN-1467-00-00】UQWiMAX白ロム申込における画面容量制限への対応
*	v5.01		2013/03/08	FJ)楠本 	支払方法引き継ぎ対応
*   v5.02	    2013/05/28  FJ)大村    【No.773】白ロムエラー文言
*   v8.00       2014/03/14  FJ）西山   【ANK-1962-00-00】関電CRMに向けた取り組み対応
*   
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.constant.JFUStrConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.FUW00161SF.FUW00161SFConst;
import eo.web.webview.common.JFUWebCommon;

/**
 * DataBean-BPマッピングをします。
 *
 * <br>
 * @author 富士通
 */
public class FUSV0266_FUSV0266OPDBMapper
{
	// ■CC・SC名
	/** FUSV026601CC */
	private static final String FUSV026601CC = "FUSV026601CC";
	/** FUSV026601SC */
	private static final String FUSV026601SC = "FUSV026601SC";
	/** FUSV026602SC */
	private static final String FUSV026602SC = "FUSV026602SC";
	/** FUSV026603SC */
	private static final String FUSV026603SC = "FUSV026603SC";
	/** FUSV026604SC */
	private static final String FUSV026604SC = "FUSV026604SC";
	/** FUSV026606SC */
	private static final String FUSV026606SC = "FUSV026606SC";
	/** FUSV026602CC */
	private static final String FUSV026602CC = "FUSV026602CC";
	/** FUSV026608SC */
	private static final String FUSV026608SC = "FUSV026608SC";
	/** 作業マップ */
	private static final String WORK_MAP = "WORK_MAP";

	// ■明細リスト名
	/** 法人連絡先明細 */
	private static final String ECK0031D010CBSMSG1LIST = "ECK0031D010CBSMsg1List";
	/** 現督促ステータス一覧照会明細 */
	private static final String EKK0521A010CBSMSG1LIST = "EKK0521A010CBSMsg1List";

	// ■項目ID
	/** 機能コード */
	private static final String FUNC_CODE = "func_code";
	/** crecard_comp_cd */
	private static final String CRECARD_COMP_CD = "crecard_comp_cd";
	/** crecard_comp_cd_nm */
	private static final String CRECARD_COMP_CD_NM = "crecard_comp_cd_nm";
	/** mlad */
	private static final String MLAD = "mlad";
	/** 申込区分 */
	private static final String MSKM_DIV = "mskm_div";
	/** 契約種別 */
	private static final String KEI_SBT = "kei_sbt";
	/** 支払い方法継続 */
	private static final String PAY_WAY_CONTINUE = "pay_way_continue";
	/** お客様名 */
	private static final String CUST_NM = "cust_nm";
	/** お客様カナ名 */
	private static final String CUST_KANA = "cust_kana";
	/** 生年月日 */
	private static final String CUST_BIRTHD = "cust_birthd";
	/** 性別コード */
	private static final String CUST_SEX_CD = "cust_sex_cd";
	/** 郵便番号 */
	private static final String KEISHA_PCD = "keisha_pcd";
	/** 都道府県・市区町村 */
	private static final String STATE_CITY = "state_city";
	/** 大字 */
	private static final String KEISHA_OAZTSU_NM = "keisha_oaztsu_nm";
	/** 番地 */
	private static final String KEISHA_BNCHIGO = "keisha_bnchigo";
	/** 建物名 */
	private static final String KEISHA_ADRTTM = "keisha_adrttm";
	/** 部屋番号 */
	private static final String KEISHA_ADRRM = "keisha_adrrm";
	/** 電話番号 */
	private static final String KEISHA_TELNO = "keisha_telno";
	/** 契約者住所手動入力フラグ */
	private static final String KEISHA_AD_MAN_INPUT_FLG = "keisha_ad_man_input_flg";
	/** 会社名 */
	private static final String COMP_NM = "comp_nm";
	/** 会社カナ名 */
	private static final String COMP_KANA = "comp_kana";
	/** 申込連絡先メールアドレス */
	private static final String MSKM_RRKS_MLAD = "mskm_rrks_mlad";
	/** クレジットカード番号 */
	private static final String CRECARD_NO = "crecard_no";
	/** クレジットカード有効期限 */
	private static final String CRECARD_YK_KIGEN = "crecard_yk_kigen";
	/** クレジットカード名義カナ名 */
	private static final String CRECARD_NM_KANA = "crecard_nm_kana";
	/** クレジットカード名義カナ名 */
	private static final String KEY_SEIKY_WAY_NO_CRECARD = "key_seiky_way_no_crecard";
	/** クレジットカード名義カナ名 */
	private static final String UPD_DTM = "upd_dtm";
	/** 代表者名 */
	private static final String DIHYSHA_NM = "dihysha_nm";
	/** 代表者カナ名 */
	private static final String DIHYSHA_KANA = "dihysha_kana";
	//2013/03/08 支払方法引き継ぎ対応 start
	/** 請求方法コード */
	private static final String SEIKY_WAY_CD = "seiky_way_cd";
	//2013/03/08 支払方法引き継ぎ対応 end
	/** SYSID */
	private static final String SYSID = "sysid";
	/** 請求契約番号 */
	private static final String SEIKY_KEI_NO = "seiky_kei_no";
	/** マップキー 関電G個人情報取扱同意有無 */
	private static final String MAPKEY_KEY_KEPG_KJNIF_TRAT_DOI_UM = "kepg_kjnif_trat_doi_um";
	/** マップキー 関電G個人情報提供不可フラグ */
	private static final String MAPKEY_KEY_KEPG_KJNIFT_FFG = "kepg_kjnift_ffg";

	// ■その他
	/** GET */
	private static final String GET = X31CWebConst.DATABEAN_GET_VALUE;
	/** SET */
	private static final String SET = X31CWebConst.DATABEAN_SET_VALUE;
	/** 汎用コード：1 */
	private static final String CODE_1 = "1";
	/** 申込区分：追加申込 */
	private static final String MSKM_DIV_1 = "1";
	/** 請求方法コード：クレジット */
	private static final String SEIKY_WAY_CRECARD = "4";

	// ■ダミー値
	/** ダミーSYSID */
	private static final String DUMMY_SYSID = "0000000000";
	/** ダミーお客様名 */
	private static final String DUMMY_CUST_NM = "だみーお客様名";
	/** ダミーお客様カナ名 */
	private static final String DUMMY_CUST_NM_KANA= "ダミーオキャクサマメイ";
	/** ダミー会社名 */
	private static final String DUMMY_COMP_NM = "ダミー会社名";
	/** ダミー会社カナ名 */
	private static final String DUMMY_COMP_NM_KANA= "ダミーカイシャメイ";
	/** ダミークレジットカード番号 */
	private static final String DUMMY_CRE_CARD_NO = "0000000000000000";
	/** ダミークレジットカード会社コード */
	private static final String DUMMY_CRE_COMP_CD = "00000";
	/** ダミー代理店コード */
	private static final String DUMMY_KEI_NO = "000000000000";

	/**
	 * 作業マップに情報を格納します。
	 * 
	 * <br>
	 * @param bean データBean配列
	 * @param outputMap アウトマップ
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setWorkMap(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = new HashMap();

		// 申込区分
		String mskmDiv = bean[0].sendMessageString(FUW00161SFConst.MSKM_DIV, GET);
		parentMap.put(MSKM_DIV, mskmDiv);

		// 契約種別
		String kiinSbt = bean[0].sendMessageString(FUW00161SFConst.KEI_SBT, GET);
		parentMap.put(KEI_SBT, kiinSbt);

		// 支払い方法継続 
		String payWayContinue = bean[0].sendMessageString(FUW00161SFConst.PAY_WAY_CONTINUE, GET);
		parentMap.put(PAY_WAY_CONTINUE, payWayContinue);

		//2013/03/08 支払方法引き継ぎ対応 start
		X31SDataBeanAccessArray seikyuArray = bean[0].getDataBeanArray(FUW00161SFConst.KEI_PAY_WAY_LIST);
		X31SDataBeanAccess seikyBean = seikyuArray.getDataBean(0);

		//請求方法コード
		String seikyWayCd = "";

		if(MSKM_DIV_1.equals(mskmDiv) && CODE_1.equals(payWayContinue))
		{
			int paywayIdx = Integer.parseInt(bean[0].sendMessageString(FUW00161SFConst.PAY_WAY_SEL, GET));

			//請求方法コード
			seikyWayCd = seikyBean.sendMessageString(FUW00161SFConst.SEIKY_WAY_CD_07, GET, paywayIdx);
		}
		
		
		parentMap.put(SEIKY_WAY_CD, seikyWayCd);
		//2013/03/08 支払方法引き継ぎ対応 end

		outputMap.put(WORK_MAP, parentMap);
		return outputMap;
	}

	/**
	 * 住所情報分割CCの上りマッピング処理です。
	 * 
	 * <br>
	 * @param bean データBean配列
	 * @param outputMap アウトマップ
	 * @param func_code 機能コード
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV026601CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = new HashMap();

		// 都道府県・市区町村
		parentMap.put(STATE_CITY, bean[0].sendMessageString(FUW00161SFConst.STATE, GET));

		outputMap.put(FUSV026601CC, parentMap);
		return outputMap;
	}

	/**
	 * お客様＜個人＞登録SCの上りマッピング処理です。
	 * 
	 * <br>
	 * @param bean データBean配列
	 * @param outputMap アウトマップ
	 * @param func_code 機能コード
	 * @param kepgKjnifTratDoiUm 関電G個人情報取扱同意有無
	 * @param kepgKjnifFfg 関電G個人情報提供不可フラグ
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV026601SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String kepgKjnifTratDoiUm, String kepgKjnifFfg)
	{
		HashMap parentMap = new HashMap();

		// 機能コード
		parentMap.put(FUNC_CODE, func_code);
		// お客様名
		parentMap.put(CUST_NM, bean[0].sendMessageString(
				FUW00161SFConst.KOJIN_SEI, GET) + JFUStrConst.SPACE + bean[0].sendMessageString(FUW00161SFConst.KOJIN_MEI, GET));
		// お客様名かな
		String kanaSei = JFUWebCommon.convFullHiraToFullKataV(bean[0].sendMessageString(FUW00161SFConst.KOJIN_KANA_SEI, GET));
		String kanaMei = JFUWebCommon.convFullHiraToFullKataV(bean[0].sendMessageString(FUW00161SFConst.KOJIN_KANA_MEI, GET));
		parentMap.put(CUST_KANA, kanaSei + JFUStrConst.SPACE + kanaMei);
		// お客様性別コード
		parentMap.put(CUST_SEX_CD, bean[0].sendMessageString(FUW00161SFConst.KOJIN_SEX, GET));
		// お客様生年月日
		String year = bean[0].sendMessageString(FUW00161SFConst.KOJIN_BIRTH_YEAR, GET);
		String month = bean[0].sendMessageString(FUW00161SFConst.KOJIN_BIRTH_MONTH, GET);
		String day = bean[0].sendMessageString(FUW00161SFConst.KOJIN_BIRTH_DAY, GET);
		parentMap.put(CUST_BIRTHD, year + month + day);

		// 契約者郵便番号
		String pcd1 = bean[0].sendMessageString(FUW00161SFConst.PCD_1, GET);
		String pcd2 = bean[0].sendMessageString(FUW00161SFConst.PCD_2, GET);
		parentMap.put(KEISHA_PCD, pcd1 + pcd2);
		// 契約者大字通称名
		parentMap.put(KEISHA_OAZTSU_NM, bean[0].sendMessageString(FUW00161SFConst.AZA, GET));
		// 契約者番地号
		parentMap.put(KEISHA_BNCHIGO, bean[0].sendMessageString(FUW00161SFConst.CHO_BANCHI, GET));
		// 契約者住所補記・建物名
		parentMap.put(KEISHA_ADRTTM, bean[0].sendMessageString(FUW00161SFConst.BUILDING, GET));
		// 契約者住所補記・部屋番号
		parentMap.put(KEISHA_ADRRM, bean[0].sendMessageString(FUW00161SFConst.ROOM_NUM, GET));
		// 契約者電話番号
		String tln1 = bean[0].sendMessageString(FUW00161SFConst.TLN_1, GET);
		String tln2 = bean[0].sendMessageString(FUW00161SFConst.TLN_2, GET);
		String tln3 = bean[0].sendMessageString(FUW00161SFConst.TLN_3, GET);
		parentMap.put(KEISHA_TELNO, tln1 + tln2 + tln3);

		// 契約者住所手動入力フラグ
		parentMap.put(KEISHA_AD_MAN_INPUT_FLG, CODE_1);
		// 関電G個人情報取扱同意有無
		parentMap.put(MAPKEY_KEY_KEPG_KJNIF_TRAT_DOI_UM, kepgKjnifTratDoiUm);
		// 関電G個人情報提供不可フラグ
		parentMap.put(MAPKEY_KEY_KEPG_KJNIFT_FFG, kepgKjnifFfg);
		
		outputMap.put(FUSV026601SC, parentMap);
		return outputMap;
	}

	/**
	 * お客様＜法人＞登録SCの上りマッピング処理です。
	 * 
	 * <br>
	 * @param bean データBean配列
	 * @param outputMap アウトマップ
	 * @param func_code 機能コード
	 * @param kepgKjnifTratDoiUm 関電G個人情報取扱同意有無
	 * @param kepgKjnifFfg 関電G個人情報提供不可フラグ
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV026602SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String kepgKjnifTratDoiUm, String kepgKjnifFfg)
	{
		HashMap parentMap = new HashMap();

		// 契約種別
		String keiSbt = bean[0].sendMessageString(FUW00161SFConst.KEI_SBT, GET);

		// 機能コード
		parentMap.put(FUNC_CODE, func_code);

		if(JFUStrConst.KEI_SBT_KOJINCD.equals(keiSbt))
		{
			// ■個人の場合
			// ダミーお客様名・お客様カナ名
			parentMap.put(CUST_NM, DUMMY_CUST_NM);
			parentMap.put(CUST_KANA, DUMMY_CUST_NM_KANA);
			// ダミー会社名・会社カナ名
			parentMap.put(COMP_NM, DUMMY_COMP_NM);
			parentMap.put(COMP_KANA, DUMMY_COMP_NM_KANA);
			// ダミー
			parentMap.put(DIHYSHA_NM, DUMMY_CUST_NM);
			parentMap.put(DIHYSHA_KANA, DUMMY_CUST_NM_KANA);
		}
		else
		{
			// ■法人の場合
			// お客様名
			String sei = bean[0].sendMessageString(FUW00161SFConst.HOJIN_DHS_SEI, GET);
			String mei = bean[0].sendMessageString(FUW00161SFConst.HOJIN_DHS_MEI, GET);
			parentMap.put(DIHYSHA_NM, sei + JFUStrConst.SPACE + mei);
			// お客様名かな
			String kanaSei = JFUWebCommon.convFullHiraToFullKataV(bean[0].sendMessageString(FUW00161SFConst.HOJIN_DHS_KANA_SEI, GET));
			String kanaMei = JFUWebCommon.convFullHiraToFullKataV(bean[0].sendMessageString(FUW00161SFConst.HOJIN_DHS_KANA_MEI, GET));
			parentMap.put(DIHYSHA_KANA, kanaSei + JFUStrConst.SPACE + kanaMei);

			// 会社名
			parentMap.put(COMP_NM, bean[0].sendMessageString(FUW00161SFConst.HOJIN_NM, GET));
			// 会社カナ名
			String hojinKana = JFUWebCommon.convFullHiraToFullKataV(bean[0].sendMessageString(FUW00161SFConst.HOJIN_KANA_NM, GET));
			parentMap.put(COMP_KANA, hojinKana);
		}

		// 契約者郵便番号
		String pcd1 = bean[0].sendMessageString(FUW00161SFConst.PCD_1, GET);
		String pcd2 = bean[0].sendMessageString(FUW00161SFConst.PCD_2, GET);
		parentMap.put(KEISHA_PCD, pcd1 + pcd2);
		// 契約者大字通称名
		parentMap.put(KEISHA_OAZTSU_NM, bean[0].sendMessageString(FUW00161SFConst.AZA, GET));
		// 契約者番地号
		parentMap.put(KEISHA_BNCHIGO, bean[0].sendMessageString(FUW00161SFConst.CHO_BANCHI, GET));
		// 契約者住所補記・建物名
		parentMap.put(KEISHA_ADRTTM, bean[0].sendMessageString(FUW00161SFConst.BUILDING, GET));
		// 契約者住所補記・部屋番号
		parentMap.put(KEISHA_ADRRM, bean[0].sendMessageString(FUW00161SFConst.ROOM_NUM, GET));
		// 契約者電話番号
		String tln1 = bean[0].sendMessageString(FUW00161SFConst.TLN_1, GET);
		String tln2 = bean[0].sendMessageString(FUW00161SFConst.TLN_2, GET);
		String tln3 = bean[0].sendMessageString(FUW00161SFConst.TLN_3, GET);
		parentMap.put(KEISHA_TELNO, tln1 + tln2 + tln3);

		// 関電G個人情報取扱同意有無
		parentMap.put(MAPKEY_KEY_KEPG_KJNIF_TRAT_DOI_UM, kepgKjnifTratDoiUm);
		// 関電G個人情報提供不可フラグ
		parentMap.put(MAPKEY_KEY_KEPG_KJNIFT_FFG, kepgKjnifFfg);
		
		// 明細
		ArrayList arrayList = new ArrayList<HashMap>();
		HashMap detailMap = new HashMap();
		arrayList.add(detailMap);
		parentMap.put(ECK0031D010CBSMSG1LIST, arrayList);

		outputMap.put(FUSV026602SC, parentMap);
		return outputMap;
	}

	/**
	 * 連絡先登録SCの上りマッピング処理です。
	 * 
	 * <br>
	 * @param bean データBean配列
	 * @param outputMap アウトマップ
	 * @param func_code 機能コード
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV026603SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		HashMap parentMap = new HashMap();

		// 契約種別
		String keiSbt = bean[0].sendMessageString(FUW00161SFConst.KEI_SBT, GET);

		// 機能コード
		parentMap.put(FUNC_CODE, func_code);

		// メールアドレス
		if(JFUStrConst.KEI_SBT_KOJINCD.equals(keiSbt))
		{
			// 個人
			parentMap.put(MLAD, bean[0].sendMessageString(FUW00161SFConst.KOJIN_EMAIL_INPUT, GET));
		}
		else
		{
			// 法人
			parentMap.put(MLAD, bean[0].sendMessageString(FUW00161SFConst.HOJIN_EMAIL_INPUT, GET));
		}

		outputMap.put(FUSV026603SC, parentMap);
		return outputMap;
	}

	/**
	 * 申込明細登録SCの上りマッピング処理です。
	 * 
	 * <br>
	 * @param bean データBean配列
	 * @param outputMap アウトマップ
	 * @param func_code 機能コード
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV026604SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		HashMap parentMap = new HashMap();

		// 契約種別
		String keiSbt = bean[0].sendMessageString(FUW00161SFConst.KEI_SBT, GET);

		// 機能コード
		parentMap.put(FUNC_CODE, func_code);

		// 申込連絡先メールアドレス
		if(JFUStrConst.KEI_SBT_KOJINCD.equals(keiSbt))
		{
			// 個人
			parentMap.put(MSKM_RRKS_MLAD, bean[0].sendMessageString(FUW00161SFConst.KOJIN_EMAIL_INPUT, GET));
		}
		else
		{
			// 法人
			parentMap.put(MSKM_RRKS_MLAD, bean[0].sendMessageString(FUW00161SFConst.HOJIN_EMAIL_INPUT, GET));
		}

		outputMap.put(FUSV026604SC, parentMap);
		return outputMap;
	}

	/**
	 * クレジット請求手続きSCの上りマッピング処理です。
	 * 
	 * <br>
	 * @param bean データBean配列
	 * @param outputMap アウトマップ
	 * @param func_code 機能コード
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV026606SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		HashMap parentMap = new HashMap();

		// 機能コード
		parentMap.put(FUNC_CODE, func_code);

		// 支払方法継続選択
		String payway = bean[0].sendMessageString(FUW00161SFConst.PAY_WAY_CONTINUE, GET);

		if(!JFUStrConst.PAYWAY_CONTINUE_CONTINUE.equals(payway))
		{
			// クレジットカード会社コード
			int idxCreComp = Integer.parseInt(bean[0].sendMessageString(FUW00161SFConst.CRE_COMP, GET));
			X31SDataBeanAccessArray creCompBeanArray = bean[0].getDataBeanArray(FUW00161SFConst.CRE_COMP_LIST);
			X31SDataBeanAccess creCompBean = creCompBeanArray.getDataBean(0);
			String creCompCd = creCompBean.sendMessageString(FUW00161SFConst.CRE_COMP_CD_02, GET, idxCreComp);
			// マップに設定
			parentMap.put(CRECARD_COMP_CD, creCompCd);

			// クレジットカード番号
			parentMap.put(CRECARD_NO, 
					bean[0].sendMessageString(FUW00161SFConst.CRE_NUM_1, GET)
					+ bean[0].sendMessageString(FUW00161SFConst.CRE_NUM_2, GET)
					+ bean[0].sendMessageString(FUW00161SFConst.CRE_NUM_3, GET)
					+ bean[0].sendMessageString(FUW00161SFConst.CRE_NUM_4, GET));

			// クレジットカード有効期限
			// 有効期限(年)
			int idxYear = Integer.parseInt(bean[0].sendMessageString(FUW00161SFConst.CRE_YK_KIGEN_YEAR, GET));
			X31SDataBeanAccessArray creYearBeanArray = bean[0].getDataBeanArray(FUW00161SFConst.CRE_YK_KIGEN_YEAR_LIST);
			X31SDataBeanAccess creYearBean = creYearBeanArray.getDataBean(0);
			String creYear = creYearBean.sendMessageString(FUW00161SFConst.VALUE_03, GET, idxYear);
			// 有効期限(月)
			int idxMonth = Integer.parseInt(bean[0].sendMessageString(FUW00161SFConst.CRE_YK_KIGEN_MONTH, GET));
			X31SDataBeanAccessArray creMonthBeanArray = bean[0].getDataBeanArray(FUW00161SFConst.CRE_YK_KIGEN_MONTH_LIST);
			X31SDataBeanAccess creMonthBean = creMonthBeanArray.getDataBean(0);
			String creMonth = creMonthBean.sendMessageString(FUW00161SFConst.VALUE_03, GET, idxMonth);
			// マップに設定
			parentMap.put(CRECARD_YK_KIGEN, creYear + creMonth);

			// クレジットカード名義カナ名
			if(CODE_1.equals(bean[0].sendMessageString(FUW00161SFConst.SEL_CRE_MEIGI, GET)))
			{
				// 契約者と異なる
				// 白ロム引継対応 >>>
				// 法人対応
				if(JFUStrConst.KEI_SBT_KOJINCD.equals(bean[0].sendMessageString(FUW00161SFConst.KEI_SBT, GET)))
				{
				parentMap.put(CRECARD_NM_KANA,
						bean[0].sendMessageString(FUW00161SFConst.CRE_KANA_SEI, GET)
						+ JFUStrConst.SPACE
						+ bean[0].sendMessageString(FUW00161SFConst.CRE_KANA_MEI, GET));
				}
				else
				{
					//※元々カナ項目のため、変換不要
					parentMap.put(CRECARD_NM_KANA,
							bean[0].sendMessageString(FUW00161SFConst.CRE_KANA, GET));
				}
				// 白ロム引継対応 <<<E
			}
			else
			{
				// 契約者と一緒
				if(JFUStrConst.KEI_SBT_KOJINCD.equals(bean[0].sendMessageString(FUW00161SFConst.KEI_SBT, GET)))
				{
					// 個人契約
					String kanaSei = JFUWebCommon.convFullHiraToFullKataV(bean[0].sendMessageString(FUW00161SFConst.KOJIN_KANA_SEI, GET));
					String kanaMei = JFUWebCommon.convFullHiraToFullKataV(bean[0].sendMessageString(FUW00161SFConst.KOJIN_KANA_MEI, GET));
					parentMap.put(CRECARD_NM_KANA, kanaSei + JFUStrConst.SPACE + kanaMei);
				}
				else
				{
					// 白ロム引継対応 >>>
					//※元々カナ項目のため、変換不要
					parentMap.put(CRECARD_NM_KANA,
							bean[0].sendMessageString(FUW00161SFConst.CRE_KANA, GET));
					// 白ロム引継対応 <<<E
				}
			}
		}
		else
		{
			// 引き継ぐ場合ダミー値を設定
			parentMap.put(CRECARD_NO, DUMMY_CRE_CARD_NO);
			parentMap.put(CRECARD_COMP_CD, DUMMY_CRE_COMP_CD);
		}

		outputMap.put(FUSV026606SC, parentMap);
		return outputMap;
	}

	/**
	 * 督促情報取得CCの上りマッピング処理です。
	 * 
	 * <br>
	 * @param bean データBean配列
	 * @param outputMap アウトマップ
	 * @param func_code 機能コード
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV026602CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		HashMap parentMap = new HashMap();

		// 申込区分
		String mskmDiv = bean[0].sendMessageString(FUW00161SFConst.MSKM_DIV, GET);
		// 支払い方法引き継ぎ
		String payWayCont = bean[0].sendMessageString(FUW00161SFConst.PAY_WAY_CONTINUE, GET);

		X31SDataBeanAccessArray seikyuArray = bean[0].getDataBeanArray(FUW00161SFConst.KEI_PAY_WAY_LIST);
		X31SDataBeanAccess seikyBean = seikyuArray.getDataBean(0);

		String seikyKeiNo = JFUStrConst.EMPTY;
		if(MSKM_DIV_1.equals(mskmDiv) && CODE_1.equals(payWayCont))
		{
			int paywayIdx = Integer.parseInt(bean[0].sendMessageString(FUW00161SFConst.PAY_WAY_SEL, GET));
			seikyKeiNo = seikyBean.sendMessageString(FUW00161SFConst.SEIKY_KEI_NO_07, GET, paywayIdx);
		}

		// 機能コード
		parentMap.put(FUNC_CODE, func_code);

		// ＫＥＹ＿ＳＹＳＩＤ
		if(MSKM_DIV_1.equals(mskmDiv))
		{
			// 追加申込
			parentMap.put(SYSID, bean[1].sendMessageString(CommonInfoCFConst.SYSID_06, GET));
		}
		else
		{
			// 新規申込(ダミー値)
			parentMap.put(SYSID, DUMMY_SYSID);
		}

		// ＫＥＹ＿請求契約番号
		parentMap.put(SEIKY_KEI_NO, seikyKeiNo);

		outputMap.put(FUSV026602CC, parentMap);
		return outputMap;
	}

	/**
	 * クレジットカード一意照会SCの上りマッピング処理です。
	 * 
	 * <br>
	 * @param bean データBean配列
	 * @param outputMap アウトマップ
	 * @param func_code 機能コード
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV026608SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		HashMap parentMap = new HashMap();

		// 機能コード
		parentMap.put(FUNC_CODE, func_code);

		// 申込区分
		String mskmDiv = bean[0].sendMessageString(FUW00161SFConst.MSKM_DIV, GET);
		// 支払い方法引き継ぎ
		String payWayCont = bean[0].sendMessageString(FUW00161SFConst.PAY_WAY_CONTINUE, GET);

		X31SDataBeanAccessArray seikyuArray = bean[0].getDataBeanArray(FUW00161SFConst.KEI_PAY_WAY_LIST);
		X31SDataBeanAccess seikyBean = seikyuArray.getDataBean(0);

		String seikyWayNo = JFUStrConst.EMPTY;

		//2013/03/08 支払方法引き継ぎ対応 start
		//請求方法コード
		String seikyWayCd = "";
		int paywayIdx = 0;

		if(MSKM_DIV_1.equals(mskmDiv) && CODE_1.equals(payWayCont))
		{
			paywayIdx = Integer.parseInt(bean[0].sendMessageString(FUW00161SFConst.PAY_WAY_SEL, GET));
			//請求方法コード
			seikyWayCd = seikyBean.sendMessageString(FUW00161SFConst.SEIKY_WAY_CD_07, GET, paywayIdx);
		}

		if(MSKM_DIV_1.equals(mskmDiv) && CODE_1.equals(payWayCont) && SEIKY_WAY_CRECARD.equals(seikyWayCd))
		{
			seikyWayNo = seikyBean.sendMessageString(FUW00161SFConst.CRE_CARD_INFO_07, GET, paywayIdx);
			seikyWayNo = seikyWayNo.split(JFUStrConst.COMMA)[0];
		}
		//2013/03/08 支払方法引き継ぎ対応 end

		if(JFUWebCommon.isNull(seikyWayNo))
		{
			// ダミー値を設定
			parentMap.put(KEY_SEIKY_WAY_NO_CRECARD, DUMMY_KEI_NO);
		}
		else
		{
			parentMap.put(KEY_SEIKY_WAY_NO_CRECARD, seikyWayNo);
		}

		// 明細
		ArrayList arrayList = new ArrayList<HashMap>();
		HashMap detailMap = new HashMap();
		arrayList.add(detailMap);
		parentMap.put(EKK0521A010CBSMSG1LIST, arrayList);

		outputMap.put(FUSV026608SC, parentMap);
		return outputMap;
	}

	/**
	 * クレジットカード一意照会SCの下りマッピング処理です。
	 * 
	 * <br>
	 * @param bean データBean配列
	 * @param outputMap アウトマップ
	 * @param func_code 機能コード
	 * @return アウトマップ
	 */
	@SuppressWarnings("unchecked")
	public void getFUSV026608SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if(outputMap.containsKey(FUSV026608SC))
		{
			parentMap = (HashMap)outputMap.get(FUSV026608SC);
		}

		ArrayList parentList = null;
		if(parentMap != null && parentMap.size() > 0)
		{
			parentList = (ArrayList)parentMap.get(EKK0521A010CBSMSG1LIST);
		}

		// 支払方法引継
		String paywayCont = bean[0].sendMessageString(FUW00161SFConst.PAY_WAY_CONTINUE, GET);

		// 引き継ぐ場合、各値を設定
		if(JFUStrConst.PAYWAY_CONTINUE_CONTINUE.equals(paywayCont) && parentList != null)
		{
			for (int i = 0; i < parentList.size(); i++)
			{
				HashMap childMap = (HashMap)parentList.get(i);
				if(childMap == null || childMap.size() == 0)
				{
					continue;
				}

				// クレジット会社コード
				String creCompCd = (String)childMap.get(CRECARD_COMP_CD);
				bean[3].sendMessageString(CommonInfoCFConst.CRECARD_COMP_CD_15, SET, creCompCd);
				// クレジット会社名
				String creCompNm = (String)childMap.get(CRECARD_COMP_CD_NM);
				bean[3].sendMessageString(CommonInfoCFConst.CRECARD_COMP_NM_15, SET, creCompNm);
				// クレジット番号(1)
				String creCardNo = (String)childMap.get(CRECARD_NO);
				bean[3].sendMessageString(CommonInfoCFConst.CRECARD_NO1_15, SET, creCardNo);
				// クレジット・有効期限(年月)
				String creYkKigen = (String)childMap.get(CRECARD_YK_KIGEN);
				bean[3].sendMessageString(CommonInfoCFConst.CRECARD_YK_KIGEN_YEAR_15, SET, creYkKigen.substring(0, 4));
				bean[3].sendMessageString(CommonInfoCFConst.CRECARD_YK_KIGEN_MONTH_15, SET, creYkKigen.substring(4, 6));
				// 
				String updDtm = (String)childMap.get(UPD_DTM);
				bean[3].sendMessageString(CommonInfoCFConst.UPD_DTM_SEIKY_KEI_15, SET, updDtm);
			}
		}
	}

	/**
	 * 督促情報取得CCの下りマッピングです。
	 * 
	 * @param bean　[0]：お支払い方法入力　[1]：共有フォームビーン
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV026602CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey(FUSV026602CC))
		{
			parentMap = (HashMap)outputMap.get(FUSV026602CC);
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listFUSV026607SC_gen_tokusoku_stat_list_EKK0491B506CBSMsg1List = bean[0].getDataBeanArray(FUW00161SFConst.GEN_TOKUSOKU_STAT_LIST);
		childList = null;
		if (listFUSV026607SC_gen_tokusoku_stat_list_EKK0491B506CBSMsg1List != null && parentMap != null
				&& parentMap.containsKey("JFUGetTokusokuInfoCCList"))
		{
			childList = (ArrayList)parentMap.get("JFUGetTokusokuInfoCCList");

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (listFUSV026607SC_gen_tokusoku_stat_list_EKK0491B506CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listFUSV026607SC_gen_tokusoku_stat_list_EKK0491B506CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listFUSV026607SC_gen_tokusoku_stat_list_EKK0491B506CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null)
				{
					continue;
				}
				
				// No.773_白ロムエラー文言 >>>
				// 督促データが取得できない場合に、値を初期化していない問題の解決
				if (childMap == null || childMap.get("seiky_kei_no") == null)
				{
					listFUSV026607SC_gen_tokusoku_stat_list_EKK0491B506CBSMsg1List.clearArray();
					continue;
				}
				// No.773_白ロムエラー文言 <<<E

				// 現督促ステータスリスト.請求契約番号 ← 現督促ステータス照会SCマップ.現督促ステータス一覧照会明細.請求契約番号
				if (childMap != null)
				{
					subbean.sendMessageString(FUW00161SFConst.SEIKY_KEI_NO_08, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_kei_no"));
				}
				else
				{
					subbean.sendMessageString(FUW00161SFConst.SEIKY_KEI_NO_08, X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 現督促ステータスリスト.督促ステータス ← 現督促ステータス照会SCマップ.現督促ステータス一覧照会明細.督促ステータス
				if (childMap != null)
				{
					subbean.sendMessageString(FUW00161SFConst.TOKUSOKU_STAT_08, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("tokusoku_stat"));
				}
				else
				{
					subbean.sendMessageString(FUW00161SFConst.TOKUSOKU_STAT_08, X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}
		return bean;
	}
}
