/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0084_KKSV0084OPDBMapper
*	ソースファイル名：KKSV0084_KKSV0084OPDBMapper.java
*	作成者			：FJ
*	日付			：2011年05月09日
*＜機能概要＞
*	BP（契約者情報登録）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/05/09	FJ		新規作成
*   v4.00.00    2012/07/13  FJ）谷口   【ANK-0398-00-00】住所管理に伴う「例外登録」の管理追加対応
*   v4.00.00    2012/09/10  FJ）岡野    【ANK-0384-00-00】契約者住所を利用場所住所で上書きを行う機能の作成対応
*   v4.01.00    2012/10/31  FJ）多田    【IT1-2012-0001640】住所手動入力対応
*   v5.00.00    2013/02/22  FJ）谷口    【ANK-1402-00-00】法人のお客様名設定見直し対応
*   v5.01.00    2013/03/12  FJ) 松田    【IT1-2013-0000425】個人の優先連絡先の連絡先種別を「携帯」にする対応
*   v5.02.00    2013/04/02  FJ) 中山    【IT1-2013-0000575】お客様スキーマの「入会年月日」の値の設定をやめる
*   v5.03.00    2013/06/06  FJ) 中山    【ANK-1528-00-00】お客様機種依存文字対応
*   v8.00.00    2014/03/06  FJ) 松田    【ANK-1962-00-00】関電グループCRMに向けた取り組み対応
*   v57.00.00	2022/01/13	FJ) 平野	【ANK-4075-00-00】マンション卸回線(WI-FIスキーム)の不備対応
*   v62.00.00	2022/09/29	FJ) 原 		【ANK-4318-00-00】申込新規登録画面の成人年齢チェック条件変更対応
**********************************************************************/
package eo.web.webview.mapping;

import static eo.web.webview.common.JKKKeiNewCmnLogicUtil.*;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.model.base.jcc.util.JCCChecker;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;

import eo.common.constant.JKKStrConst;
import eo.common.constant.JPCModelConstant;
import eo.web.webview.KKW00101SF.KKW00101SFConst;
import eo.web.webview.common.JKKGetDataUtil;
import eo.web.webview.common.JKKKeiNewCmnLogicUtil;
import eo.web.webview.common.JKKWebCommon;

/**
 * DataBean-BPマッピングをする。
 * @author 富士通
 */
public class KKSV0084_KKSV0084OPDBMapper
{
	
	/**
	 * コンストラクタ
	 */
	public KKSV0084_KKSV0084OPDBMapper()
	{
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean [0]：申込新規登録画面
	 * @param outputMap
	 * @param func_code 機能コード
	 * @param opeDate オンライン運用日付
	 * @return 出力先マップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008401CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String opeDate)
	{

		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}

		String wareki = "";
		String year = "";
		String month = "";
		String day = "";
		String ymd = "";
		String sWareki = "";
		String sYear = "";
		String sMonth = "";
		String sDay = "";
		String sYmd = "";
		
		ArrayList list = null;
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		parentMap.put("func_code", func_code);

		// 契約種別 → お客様＜個人＞登録、お客様＜法人＞の判定に使用
		String keishaTypeCd = bean[0].sendMessageString(KKW00101SFConst.KEISHA_TYPE_CD, X31CWebConst.DATABEAN_GET_VALUE);
		parentMap.put("keisha_type_cd", keishaTypeCd);
		
		// 契約種別が個人の場合設定する
		if (JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(keishaTypeCd))
		{
			/** お客様＜個人＞登録 **/
			// 契約者情報−氏名 → お客様＜個人＞登録マップ.お客様名
			parentMap.put("cust_nm", bean[0].sendMessageString(KKW00101SFConst.CUST_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者情報−氏名カナ → お客様＜個人＞登録マップ.お客様カナ名
			parentMap.put("cust_kana", bean[0].sendMessageString(KKW00101SFConst.CUST_KANA, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者情報−性別 → お客様＜個人＞登録マップ.お客様性別コード
			parentMap.put("cust_sex_cd", bean[0].sendMessageString(KKW00101SFConst.KEISHA_SEX_CD, X31CWebConst.DATABEAN_GET_VALUE));
	
			wareki = JKKWebCommon.convertCode(
					bean[0], KKW00101SFConst.KEISHA_BIRTHD_WAREKI, KKW00101SFConst.KEISHA_BIRTHD_WAREKI_CD_19, KKW00101SFConst.KEISHA_BIRTHD_WAREKI_CD_LIST_19);
			year = bean[0].sendMessageString(KKW00101SFConst.KEISHA_BIRTHD_Y, X31CWebConst.DATABEAN_GET_VALUE);
			month = bean[0].sendMessageString(KKW00101SFConst.KEISHA_BIRTHD_M, X31CWebConst.DATABEAN_GET_VALUE);
			day = bean[0].sendMessageString(KKW00101SFConst.KEISHA_BIRTHD_D, X31CWebConst.DATABEAN_GET_VALUE);
			
			boolean isWareki = (!"0".equals(wareki) && (0 < wareki.length() && 0 < year.length() && 0 < month.length() && 0 < day.length()));
			if (isWareki)
			{
				//**********↓メイン品質対策(TAI-2011-0000027)**********
//				ymd = eo.web.webview.common.JKKWebCommon.getAdCalendar(wareki, year, month, day);
				ymd = year + month + day;
				if (JCCChecker.isNumeric(ymd))
				{
					ymd = JKKWebCommon.getAdCalendar(wareki, year, month, day);
				}
				//**********↑メイン品質対策(TAI-2011-0000027)**********
			}
			else
			{
				ymd = year + month + day;
			}
			
			// 契約者情報−生年月日 → お客様＜個人＞登録マップ.お客様生年月日
			//**********↓メイン品質対策(TAI-2011-0000027)**********
//			parentMap.put("cust_birthd", ymd);
			if ("".equals(ymd))
			{
				parentMap.put("cust_birthd", year + month + day);
			}
			else
			{
				parentMap.put("cust_birthd", ymd);
			}
			//**********↑メイン品質対策(TAI-2011-0000027)**********
			// 契約者−郵便番号（前）+ 契約者−郵便番号（後） → お客様＜個人＞登録マップ.契約者郵便番号
			parentMap.put("keisha_pcd", bean[0].sendMessageString(KKW00101SFConst.KEISHA_PCD_BF, X31CWebConst.DATABEAN_GET_VALUE) + 
					bean[0].sendMessageString(KKW00101SFConst.KEISHA_PCD_AF, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−住所コード → お客様＜個人＞登録マップ.契約者住所コード
			parentMap.put("keisha_ad_cd", bean[0].sendMessageString(KKW00101SFConst.KEISHA_AD_CD, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−例外入力 → お客様＜個人＞登録マップ.契約者住所手動入力フラグ
			if (bean[0].sendMessageBoolean(KKW00101SFConst.KEISHA_EXCEPTION_INPUT, X31CWebConst.DATABEAN_GET_VALUE)) 
			{
				parentMap.put("keisha_ad_man_input_flg", JKKStrConst.AD_MAN_INPUT_YES);
			}
			else
			{
				parentMap.put("keisha_ad_man_input_flg", JKKStrConst.AD_MAN_INPUT_NO);
			}
			// 契約者−都道府県 → お客様＜個人＞登録マップ.契約者都道府県名
			parentMap.put("keisha_state_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_STATE_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−市区町村 → お客様＜個人＞登録マップ.契約者市区町村名
			parentMap.put("keisha_city_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_CITY_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−大字通称 → お客様＜個人＞登録マップ.契約者大字通称名
			parentMap.put("keisha_oaztsu_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_OAZTSU_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−字町名 → お客様＜個人＞登録マップ.契約者字丁目名
			parentMap.put("keisha_azcho_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−番地・号 → お客様＜個人＞登録マップ.契約者番地号
			parentMap.put("keisha_bnchigo", bean[0].sendMessageString(KKW00101SFConst.KEISHA_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−建物名等 → お客様＜個人＞登録マップ.契約者住所補記・建物名
			parentMap.put("keisha_adrttm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−部屋番号等 → お客様＜個人＞登録マップ.契約者住所補記・部屋番号
			parentMap.put("keisha_adrrm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_ADRRM, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−電話番号 → お客様＜個人＞登録マップ.契約者電話番号
			parentMap.put("keisha_telno", bean[0].sendMessageString(KKW00101SFConst.KEISHA_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
			// 会員種別コード(00:非eo会員(固定値)) → お客様＜個人＞登録マップ.会員種別コード
			parentMap.put("member_sbt_cd", JKKStrConst.CD00039_00);
			// 親権者情報−親権者名 → お客様＜個人＞登録マップ.親権者名
			parentMap.put("sksha_nm", bean[0].sendMessageString(KKW00101SFConst.SKSHA_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 親権者情報−親権者名（カナ） → お客様＜個人＞登録マップ.親権者カナ名
			parentMap.put("sksha_kana", bean[0].sendMessageString(KKW00101SFConst.SKSHA_KANA, X31CWebConst.DATABEAN_GET_VALUE));
			// 0:通常 固定 → お客様＜個人＞登録マップ.会員ISP決済状態コード
			parentMap.put("mmb_isp_kssai_stat_cd", JKKStrConst.CD00870_TUJYO);
			
			// ANK-4318-00-00 DEL START
//			// 申込形態コードが書面の場合
//			if (JKKStrConst.CD00591_05.equals(bean[0].sendMessageString(KKW00101SFConst.MSKM_FORM_CD, X31CWebConst.DATABEAN_GET_VALUE)))
//			{
			// ANK-4318-00-00 DEL END
				// 和暦の取得
				sWareki = JKKWebCommon.convertCode(
						bean[0], KKW00101SFConst.SKSHA_BIRTHD_WAREKI, KKW00101SFConst.SKSHA_BIRTHD_WAREKI_CD_20, KKW00101SFConst.SKSHA_BIRTHD_WAREKI_CD_LIST_20);
				sYear = bean[0].sendMessageString(KKW00101SFConst.SKSHA_BIRTHD_Y, X31CWebConst.DATABEAN_GET_VALUE);
				sMonth = bean[0].sendMessageString(KKW00101SFConst.SKSHA_BIRTHD_M, X31CWebConst.DATABEAN_GET_VALUE);
				sDay = bean[0].sendMessageString(KKW00101SFConst.SKSHA_BIRTHD_D, X31CWebConst.DATABEAN_GET_VALUE);
				
				boolean isSWareki = (!"0".equals(sWareki) && (0 < sWareki.length() && 0 < sYear.length() && 0 < sMonth.length() && 0 < sDay.length()));
				if (isSWareki)
				{
					//**********↓メイン品質対策(TAI-2011-0000027)**********
					sYmd = sYear + sMonth + sDay;
					if (JCCChecker.isNumeric(sYmd))
					{
						sYmd = JKKWebCommon.getAdCalendar(sWareki, sYear, sMonth, sDay);
					}
					//**********↑メイン品質対策(TAI-2011-0000027)**********
				}
				else
				{
					sYmd = sYear + sMonth + sDay;
				}
				// 親権者情報−生年月日 → お客様＜個人＞登録マップ.親権者生年月日
				//**********↓メイン品質対策(TAI-2011-0000027)**********
				if ("".equals(sYmd))
				{
					parentMap.put("sksha_birthd", sYear + sMonth + sDay);
				}
				else
				{
					parentMap.put("sksha_birthd", sYmd);
				}
				//**********↑メイン品質対策(TAI-2011-0000027)**********
				// 親権者情報−続柄 → お客様＜個人＞登録マップ.親権者続柄コード
				parentMap.put("sksha_zokugara_cd", JKKWebCommon.convertCode(
						bean[0], KKW00101SFConst.SKSHA_ZOKUGARA_CD, KKW00101SFConst.SKSHA_ZOKUGARA_CD_18, KKW00101SFConst.SKSHA_ZOKUGARA_CD_LIST_18));
				// 親権者情報−電話番号 → お客様＜個人＞登録マップ.親権者電話番号
				parentMap.put("sksha_telno", bean[0].sendMessageString(KKW00101SFConst.SKSHA_TELNO, X31CWebConst.DATABEAN_GET_VALUE));

				// 親権者情報−続柄その他 → お客様＜個人＞登録マップ.続柄その他
				parentMap.put("zokugara_other", bean[0].sendMessageString(KKW00101SFConst.SKSHA_ZOKUGARA_OTHER, X31CWebConst.DATABEAN_GET_VALUE));
			// ANK-4318-00-00 DEL START
//			}
			// ANK-4318-00-00 DEL END

				HashMap childMap = null;

				list = new ArrayList();
				
				// childMapの初期化
				childMap = new HashMap();
				
				// ダミー → サービス契約回線内訳登録マップ.回線対象サービス契約明細.サービス契約番号
				childMap.put("rrks_cd", "1");

				list.add(childMap);
				
				parentMap.put("ECK0031D010CBSMsg1List", list);
				
		// 契約種別が個人以外の場合設定する
		}
		else
		{
			/** お客様＜法人＞登録 **/
			// 法人格前後指定 → お客様＜法人＞登録マップ.法人格前後指定コード
			parentMap.put("hojin_zengo_shitei_cd", JKKWebCommon.convertCode(
					bean[0], KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD, KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD_15, KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD_LIST_15));
			// 法人名 → お客様＜法人＞登録マップ.会社名
			parentMap.put("comp_nm", bean[0].sendMessageString(KKW00101SFConst.HOJIN_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 法人名カナ → お客様＜法人＞登録マップ.会社カナ名
			parentMap.put("comp_kana", bean[0].sendMessageString(KKW00101SFConst.HOJIN_KANA, X31CWebConst.DATABEAN_GET_VALUE));

			// 法人格種別名リスト、法人名 → お客様＜法人＞登録マップ.お客様名
			// ご利用者名漢字格納変数の初期化
			String emg_ksh_nm = "";
			// 法人格前後の選択値を取得
			String hojin_zengo = JKKWebCommon.getPullDownCode(bean[0], KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD,
					KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD_15, KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD_LIST_15);
			// 法人格の選択値を取得
			String hojin_sbt = JKKWebCommon.getPullDownName(bean[0], KKW00101SFConst.HOJIN_SBT_CD, KKW00101SFConst.HOJIN_SBT_CD_16, 
					KKW00101SFConst.HOJIN_SBT_CD_LIST_16, KKW00101SFConst.HOJIN_SBT_NM_LIST_16);
			// 法人格の選択値を取得
			String hojin_sbt_cd = JKKWebCommon.getPullDownCode(bean[0], KKW00101SFConst.HOJIN_SBT_CD, KKW00101SFConst.HOJIN_SBT_CD_16, 
					KKW00101SFConst.HOJIN_SBT_CD_LIST_16);
			// 法人格前後指定が前 かつ 法人格「指定なし」以外の場合
			if (HOJIN_ZENGO_SHITEI_BF.equals(hojin_zengo) && !JKKStrConst.HOJIN_SBT_CD_BLANK.equals(hojin_sbt_cd))
			{
				// ご利用者名漢字(法人格種別＋法人名)
				emg_ksh_nm = hojin_sbt + ZENKAKU_SPACE + bean[0].sendMessageString(KKW00101SFConst.HOJIN_NM, X31CWebConst.DATABEAN_GET_VALUE);
			}
			// 法人格前後指定が後 かつ 法人格「指定なし」以外の場合
			else if (HOJIN_ZENGO_SHITEI_AF.equals(hojin_zengo) && !JKKStrConst.HOJIN_SBT_CD_BLANK.equals(hojin_sbt_cd))
			{
				// ご利用者名漢字(法人名＋法人格種別)
				emg_ksh_nm = bean[0].sendMessageString(KKW00101SFConst.HOJIN_NM, X31CWebConst.DATABEAN_GET_VALUE) + ZENKAKU_SPACE + hojin_sbt;
			}
			// 法人格「指定なし」の場合
			else if(JKKStrConst.HOJIN_SBT_CD_BLANK.equals(hojin_sbt_cd))
			{
				// ご利用者名漢字(法人名)
				emg_ksh_nm = bean[0].sendMessageString(KKW00101SFConst.HOJIN_NM, X31CWebConst.DATABEAN_GET_VALUE);
			}
			parentMap.put("cust_nm", emg_ksh_nm);
			// 法人名カナ → お客様＜法人＞登録マップ.お客様カナ名
			parentMap.put("cust_kana", bean[0].sendMessageString(KKW00101SFConst.HOJIN_KANA, X31CWebConst.DATABEAN_GET_VALUE));

			// 代表者名 → お客様＜法人＞登録マップ.代表者名
			parentMap.put("dihysha_nm", bean[0].sendMessageString(KKW00101SFConst.DIHYSHA_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 代表者カナ名 → お客様＜法人＞登録マップ.代表者カナ名
			parentMap.put("dihysha_kana", bean[0].sendMessageString(KKW00101SFConst.DIHYSHA_KANA, X31CWebConst.DATABEAN_GET_VALUE));

			// 契約者−住所コード → お客様＜法人＞登録マップ.契約者住所コード
			parentMap.put("keisha_ad_cd", bean[0].sendMessageString(KKW00101SFConst.KEISHA_AD_CD, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者-郵便番号(前) + 契約者-郵便番号(後)  → お客様＜法人＞登録マップ.契約者郵便番号
			parentMap.put("keisha_pcd", bean[0].sendMessageString(KKW00101SFConst.KEISHA_PCD_BF, X31CWebConst.DATABEAN_GET_VALUE) +
					bean[0].sendMessageString(KKW00101SFConst.KEISHA_PCD_AF, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−例外入力 → お客様＜法人＞登録マップ.契約者住所手動入力フラグ
			if (bean[0].sendMessageBoolean(KKW00101SFConst.KEISHA_EXCEPTION_INPUT, X31CWebConst.DATABEAN_GET_VALUE)) 
			{
				parentMap.put("hjrrks_ad_man_input_flg", JKKStrConst.AD_MAN_INPUT_YES);
			}
			else
			{
				parentMap.put("hjrrks_ad_man_input_flg", JKKStrConst.AD_MAN_INPUT_NO);
			}
			// 契約者−都道府県 → お客様＜法人＞登録マップ.契約者都道府県名
			parentMap.put("keisha_state_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_STATE_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−市区町村 → お客様＜法人＞登録マップ.契約者市区町村名
			parentMap.put("keisha_city_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_CITY_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−大字通称 → お客様＜法人＞登録マップ.契約者大字通称名
			parentMap.put("keisha_oaztsu_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_OAZTSU_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−字町名 → お客様＜法人＞登録マップ.契約者字丁目名
			parentMap.put("keisha_azcho_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−番地・号 → お客様＜法人＞登録マップ.契約者番地号
			parentMap.put("keisha_bnchigo", bean[0].sendMessageString(KKW00101SFConst.KEISHA_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−建物名等 → お客様＜法人＞登録マップ.契約者住所補記・建物名
			parentMap.put("keisha_adrttm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−部屋番号等 → お客様＜法人＞登録マップ.契約者住所補記・部屋番号
			parentMap.put("keisha_adrrm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_ADRRM, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−電話番号 → お客様＜法人＞登録マップ.契約者電話番号
			parentMap.put("keisha_telno", bean[0].sendMessageString(KKW00101SFConst.KEISHA_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
			// 法人格種別 → お客様＜法人＞登録マップ.法人格種別コード
			parentMap.put("hojin_sbt_cd", JKKWebCommon.convertCode(
					bean[0], KKW00101SFConst.HOJIN_SBT_CD, KKW00101SFConst.HOJIN_SBT_CD_16, KKW00101SFConst.HOJIN_SBT_CD_LIST_16));
			// 会員種別コード(00:非eo会員(固定値)) → お客様＜法人＞登録マップ.会員種別コード
			parentMap.put("member_sbt_cd", JKKStrConst.CD00039_00);
			// 0:通常 固定 → お客様＜法人＞登録マップ.会員ISP決済状態コード
			parentMap.put("mmb_isp_kssai_stat_cd", JKKStrConst.CD00870_TUJYO);

			// 業種 → お客様＜法人＞登録マップ.業種コード
			parentMap.put("gshu_cd", JKKWebCommon.convertCode(bean[0], KKW00101SFConst.GSHU_CD, KKW00101SFConst.GSHU_CD_27, KKW00101SFConst.GSHU_CD_LIST_27));

			if(parentMap.containsKey("ECK0031D010CBSMsg1List"))
			{
				list = (ArrayList)parentMap.get("ECK0031D010CBSMsg1List");
			}
			else
			{
				list = new ArrayList();
			}
	
			HashMap childMap = null;
	
			// childMapの初期化
			childMap = new HashMap();
			
			// 連絡先コード(01：契約者 固定) → お客様＜法人＞登録マップ.法人連絡先明細.連絡先コード
			childMap.put("rrks_cd", JKKStrConst.CD00268_KEISHA);
			// 昼間の連絡先−名称 → お客様＜法人＞登録マップ.法人連絡先明細.法人連絡先名
			childMap.put("hjrrks_nm", bean[0].sendMessageString(KKW00101SFConst.DAYTIME_RRSK_NM, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 昼間の連絡先−担当者名 → お客様＜法人＞登録マップ.法人連絡先明細.法人連絡先担当者名
			childMap.put("hjrrks_tntsha_nm", bean[0].sendMessageString(KKW00101SFConst.DAYTIME_RRSK_TNTSHA_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 昼間の連絡先−担当者名（カナ） → お客様＜法人＞登録マップ.法人連絡先明細.法人連絡先担当者カナ名
			childMap.put("hjrrks_tntsha_kana", bean[0].sendMessageString(KKW00101SFConst.DAYTIME_RRSK_TNTSHA_KANA, X31CWebConst.DATABEAN_GET_VALUE));
			// 昼間の連絡先−担当者所属部署 → お客様＜法人＞登録マップ.法人連絡先明細.法人連絡先担当者所属部署名
			childMap.put("hjrrks_tntsha_shozkbsho_nm"
					, bean[0].sendMessageString(KKW00101SFConst.DAYTIME_RRSK_TNTSHA_SHOZKBSHO_NM, X31CWebConst.DATABEAN_GET_VALUE));

			list.add(childMap);
	
			parentMap.put("ECK0031D010CBSMsg1List", list);
		}
		
		// 内販外販コード
		parentMap.put("naihan_gaihan_cd", bean[0].sendMessageString(KKW00101SFConst.NAIHAN_GAIHAN_CD, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 内販企業識別コード
		String naihanCompSkbtCd = bean[0].sendMessageString(KKW00101SFConst.NAIHAN_COMP_SKBT_CD, X31CWebConst.DATABEAN_GET_VALUE);;
		if (naihanCompSkbtCd != null && !"".equals(naihanCompSkbtCd))
		{
			naihanCompSkbtCd = NAIHAN_COMP_SKBT_HUKA_CD + naihanCompSkbtCd;
		}
		parentMap.put("naihan_comp_skbt_cd", naihanCompSkbtCd);

		// 契約者住所チェックレベル
		parentMap.put("keisha_ad_chk_lv", JKKStrConst.AD_CHK_LV2);

		// 契約種別が個人の場合
		if (JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(keishaTypeCd))
		{
			// 追加の場合、優先電話番号が表示されないため
			if ("1".equals(bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// 連絡方法コード → 連絡先登録マップ.連絡方法コード
				parentMap.put("rrk_way_cd", JKKStrConst.CD00790_TELNO);
				// 連絡先種別コード
				parentMap.put("rrks_sbt_cd", JKKStrConst.CD00254_KTAI);
				// 連絡先分類コード
				parentMap.put("rrks_bunrui_cd", JKKStrConst.CD00871_KAISEN_RRS);
				// 契約者情報−優先電話番号 → 連絡先登録マップ.電話番号
				parentMap.put("telno", bean[0].sendMessageString(KKW00101SFConst.KEISHA_YUSEN_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
			}
			else
			{
				// 連絡方法コード → 連絡先登録マップ.連絡方法コード
				parentMap.put("rrk_way_cd", JKKStrConst.CD00790_TELNO);
				// 契約者情報−優先連絡先名称 → 連絡先登録マップ.連絡先種別コード
				parentMap.put("rrks_sbt_cd", JKKStrConst.CD00254_KTAI);
				// 連絡先分類コード
				parentMap.put("rrks_bunrui_cd", JKKStrConst.CD00871_KAISEN_RRS);
			}
		}

		// 連絡先メールアドレスが設定されている
		// かつ、新規申込の場合（サービス追加で、画面入力できない場合はチェックを行わない。移行データ対応）
		String rrskMlad = bean[0].sendMessageString(KKW00101SFConst.RRSK_MLAD, X31CWebConst.DATABEAN_GET_VALUE);
		String mskmFlg = bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		if (!JKKGetDataUtil.isNull(rrskMlad) && MSKM_FLG_SHINKI.equals(mskmFlg))
		{
			// 契約種別が個人の場合
			if (JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(keishaTypeCd))
			{
				// 契約者情報−優先連絡先名称 → 連絡先登録マップ.連絡先種別コード
				parentMap.put("ck020101_rrks_sbt_cd", JKKStrConst.CD00254_OTHER);
			}
			// 契約種別が個人以外の場合
			else
			{
				// 1:契約者 → 連絡先登録マップ.連絡先コード
				parentMap.put("ck020101_rrks_cd", JKKStrConst.CD00268_KEISHA);
				// 5:その他 → 連絡先登録マップ.連絡先種別コード
				parentMap.put("ck020101_rrks_sbt_cd", JKKStrConst.CD00254_OTHER);
			}
			// 連絡方法コード → 連絡先登録マップ.連絡方法コード
			parentMap.put("ck020101_rrk_way_cd", JKKStrConst.CD00790_MLAD);
			// 連絡先分類コード
			parentMap.put("ck020101_rrks_bunrui_cd", JKKStrConst.CD00871_KAISEN_RRS);
			// 連絡先メールアドレス → メールアドレス
			parentMap.put("ck020101_mlad", rrskMlad);
			
		}

		// 契約種別が個人以外の場合
		if (!(JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(keishaTypeCd)))
		{
			//********** ck020102
			// 1:契約者 → 連絡先登録マップ.連絡先コード
			parentMap.put("ck020102_rrks_cd", JKKStrConst.CD00268_KEISHA);
			// 連絡方法コード → 連絡先登録マップ.連絡方法コード
			parentMap.put("ck020102_rrk_way_cd", JKKStrConst.CD00790_TELNO);
			// 5:その他 → 連絡先登録マップ.連絡先種別コード
			parentMap.put("ck020102_rrks_sbt_cd", JKKStrConst.CD00254_OTHER);
			// 連絡先分類コード
			parentMap.put("ck020102_rrks_bunrui_cd", JKKStrConst.CD00871_KAISEN_RRS);
			// 昼間の連絡先−電話番号 → 連絡先登録マップ.電話番号
			parentMap.put("ck020102_telno", bean[0].sendMessageString(KKW00101SFConst.DAYTIME_RRSK_TNTSHA_TEL, X31CWebConst.DATABEAN_GET_VALUE));

			//********** ck020103
			// 1:契約者 → 連絡先登録マップ.連絡先コード
			parentMap.put("ck020103_rrks_cd", JKKStrConst.CD00268_KEISHA);
			// 連絡方法コード → 連絡先登録マップ.連絡方法コード
			parentMap.put("ck020103_rrk_way_cd", JKKStrConst.CD00790_TELNO);
			// 2:携帯 → 連絡先登録マップ.連絡先種別コード
			parentMap.put("ck020103_rrks_sbt_cd", JKKStrConst.CD00254_KTAI);
			// 連絡先分類コード
			parentMap.put("ck020103_rrks_bunrui_cd", JKKStrConst.CD00871_KAISEN_RRS);
			// 昼間の連絡先−ＰＨＳ／携帯電話 → 連絡先登録マップ.電話番号
			parentMap.put("ck020103_telno", bean[0].sendMessageString(KKW00101SFConst.DAYTIME_RRSK_KTAITEL, X31CWebConst.DATABEAN_GET_VALUE));

			//********** ck020104
			// 1:契約者 → 連絡先登録マップ.連絡先コード
			parentMap.put("ck020104_rrks_cd", JKKStrConst.CD00268_KEISHA);
			// 連絡方法コード → 連絡先登録マップ.連絡方法コード
			parentMap.put("ck020104_rrk_way_cd", JKKStrConst.CD00790_NISNNO);
			// 3:勤務先 → 連絡先登録マップ.連絡先種別コード
			parentMap.put("ck020104_rrks_sbt_cd", JKKStrConst.CD00254_OFFC);
			// 連絡先分類コード
			parentMap.put("ck020104_rrks_bunrui_cd", JKKStrConst.CD00871_KAISEN_RRS);
			// 内線番号
			parentMap.put("ck020104_nisnno", bean[0].sendMessageString(KKW00101SFConst.NISNNO, X31CWebConst.DATABEAN_GET_VALUE));
		}
		
		// チェック処理で(ADSL or モバイル単独)以外の場合
		if ("2".equals(func_code) && JKKKeiNewCmnLogicUtil.isDspKeishaKikiSohusNew(bean[0])) 
		{
			// 機器提供チェックフラグ
			parentMap.put("kktk_chk_flg", false);
			// 機器送付先−住所コード → 機器提供サービス契約登録マップ.機器送付先住所コード
			parentMap.put("kiki_sohus_ad_cd", bean[0].sendMessageString(KKW00101SFConst.KEISHA_KIKI_AD_CD, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先−郵便番号(前) + 機器送付先−郵便番号(後) → 機器提供サービス契約登録マップ.機器送付先郵便番号
			parentMap.put("kiki_sohus_pcd", bean[0].sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_PCD_BF, X31CWebConst.DATABEAN_GET_VALUE) +
					bean[0].sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_PCD_AF, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先−例外入力 → 機器提供サービス契約登録マップ.機器送付先住所手動入力フラグ
			if (bean[0].sendMessageBoolean(KKW00101SFConst.KEISHA_KIKI_EXCEPTION_INPUT, X31CWebConst.DATABEAN_GET_VALUE)) 
			{
				parentMap.put("kiki_shs_ad_man_input_flg", JKKStrConst.AD_MAN_INPUT_YES);
			}
			else
			{
				parentMap.put("kiki_shs_ad_man_input_flg", JKKStrConst.AD_MAN_INPUT_NO);
			}
			// 機器提供サービス契約登録マップ.機器送付先住所チェックレベル
			parentMap.put("kiki_sohus_ad_chk_lv", JKKStrConst.AD_CHK_LV2);
			// 機器送付先−都道府県 → 機器提供サービス契約登録マップ.機器送付先都道府県名
			parentMap.put("kiki_sohus_state_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_STATE_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先−市区町村 → 機器提供サービス契約登録マップ.機器送付先市区町村名
			parentMap.put("kiki_sohus_city_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_CITY_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先−大字通称 → 機器提供サービス契約登録マップ.機器送付先大字通称名
			parentMap.put("kiki_sohus_oaztsu_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_OAZTSU_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先−字町名 → 機器提供サービス契約登録マップ.機器送付先字丁目名
			parentMap.put("kiki_sohus_azcho_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先−番地・号 → 機器提供サービス契約登録マップ.機器送付先番地号
			parentMap.put("kiki_sohus_bnchigo", bean[0].sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先−建物名等 → 機器提供サービス契約登録マップ.機器送付先住所補記・建物名
			parentMap.put("kiki_sohus_adrttm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先−部屋番号等 → 機器提供サービス契約登録マップ.機器送付先住所補記・部屋番号
			parentMap.put("kiki_sohus_adrrm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_ADRRM, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先−送付先名 → 機器提供サービス契約登録マップ.機器送付先−送付先名
			parentMap.put("kiki_sohus_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_SHS_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先−送付先名 → 機器提供サービス契約登録マップ.機器送付先−送付先名カナ
			parentMap.put("kiki_sohus_kana", bean[0].sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_SHS_NM_KANA, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先−電話番号 → 機器提供サービス契約登録マップ.機器送付先−電話番号
			parentMap.put("kiki_sohus_telno", bean[0].sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 特記
		//連絡条件コード
		String rrkJoken = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.RRKJOKEN,
				KKW00101SFConst.RRK_JOKEN_CHOICE_CD_36, KKW00101SFConst.RRK_JOKEN_CHOICE_CD_LIST_36);
		// 契約者タイプが 個人以外 の場合
		if (JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(keishaTypeCd))
		{
			// 連絡条件コード → 連絡手段コード
			parentMap.put("ck0021_rrk_way_cd", rrkJoken);
		}
		else
			
		{
			// 連絡条件コード → 連絡手段コード
			parentMap.put("ck0031_rrk_way_cd", rrkJoken);
		}
		
		// 連絡情報 → 連絡手段補記
		parentMap.put("rrk_way_hoki", bean[0].sendMessageString(KKW00101SFConst.RRKINFO, X31CWebConst.DATABEAN_GET_VALUE));
		

		// 新規申込かつ機能コードがチェックかつADSL以外かつモバイル以外の場合
		if (MSKM_FLG_SHINKI.equals(bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE)) 
				&& JPCModelConstant.FUNC_CD_2.equals(func_code) && JKKKeiNewCmnLogicUtil.isDspKeishaKikiSohusNew(bean[0])) 
		{
			// 申込形態コード
			String mskmFormCd = bean[0].sendMessageString(KKW00101SFConst.MSKM_FORM_CD, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 申込書の種類
			String mskmshoKind = null;
			if(MSKM_FORM_CD_TEL.equals(mskmFormCd))
			{	// 電話申込
				mskmshoKind = bean[0].sendMessageString(KKW00101SFConst.JYUKYO_TYPE, X31CWebConst.DATABEAN_GET_VALUE);
			}
			else if(MSKM_FORM_CD_SHOMEN.equals(mskmFormCd))
			{	// 書面申込
				mskmshoKind = bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_KIND, X31CWebConst.DATABEAN_GET_VALUE);
			}
			
			// 住居タイプがホームタイプの場合のみ、設置位置情報を取得する。
			if ((MSKM_FORM_CD_TEL.equals(mskmFormCd) && JYUKYO_TYPE_HOME.equals(mskmshoKind))
					|| (MSKM_FORM_CD_SHOMEN.equals(mskmFormCd) && MSKMSHO_KIND_HOME.equals(mskmshoKind)))
			{
				// 設置位置−形態 → サービス契約回線内訳登録マップ.住所形態コード
				parentMap.put("ad_form_cd", bean[0].sendMessageString(KKW00101SFConst.AD_FORM_CD, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 回線提供会社コード → サービス契約回線内訳登録マップ.回線提供会社コード
				parentMap.put("kaisen_tk_comp_cd", JKKStrConst.CD00092_KOPT);
			}
			else
			{	// マンション・メゾン
				
				// 02（アパート・マンション） → 住所形態コード
				parentMap.put("ad_form_cd", JKKStrConst.CD00627_02);
				
				// 回線提供会社コード → サービス契約回線内訳登録マップ.回線提供会社コード
				parentMap.put("kaisen_tk_comp_cd", JKKStrConst.CD00092_KOPT);
			}
			
			// 上書予定日 → サービス契約回線内訳登録マップ.請求書送付先住所変更希望年月日
			String kaisenAdChgRsvYmdY = bean[0].sendMessageString(KKW00101SFConst.KAISEN_AD_CHG_RSV_YMD_Y, X31CWebConst.DATABEAN_GET_VALUE);
			String kaisenAdChgRsvYmdM = bean[0].sendMessageString(KKW00101SFConst.KAISEN_AD_CHG_RSV_YMD_M, X31CWebConst.DATABEAN_GET_VALUE);
			String kaisenAdChgRsvYmdD = bean[0].sendMessageString(KKW00101SFConst.KAISEN_AD_CHG_RSV_YMD_D, X31CWebConst.DATABEAN_GET_VALUE);
			
			String kaisenAdChgRsvYmd = kaisenAdChgRsvYmdY + kaisenAdChgRsvYmdM + kaisenAdChgRsvYmdD;
			
			parentMap.put("sks_shs_ad_chg_kibo_ymd", kaisenAdChgRsvYmd);
			
			// 上書予定日 → サービス契約回線内訳登録マップ.契約者住所変更希望年月日
			parentMap.put("kshad_chg_kibo_ymd", kaisenAdChgRsvYmd);
			
			ArrayList ekk0251D010CBSMsg1List = null;
			HashMap childMap = null;
			ekk0251D010CBSMsg1List = new ArrayList();
			childMap = new HashMap();
			ekk0251D010CBSMsg1List.add(childMap);
			parentMap.put("EKK0251D010CBSMsg1List", ekk0251D010CBSMsg1List);
			
		}

		String kepgDoiUm = JKKWebCommon.convertCode(
				bean[0], KKW00101SFConst.KEPG_KJNIF_TRAT_DOI_LIST, KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
		if (JKKStrConst.DSP_KEPG_KJNIF_DOI_SURU.equals(kepgDoiUm))
		{
			// 関電G個人情報取扱同意有無
			parentMap.put("kepg_kjnif_trat_doi_um", JKKStrConst.CD_DIV_UM_ARI);
			
			String mskmY = bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_Y, X31CWebConst.DATABEAN_GET_VALUE);
			String mskmM = bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_M, X31CWebConst.DATABEAN_GET_VALUE);
			String mskmD = bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_D, X31CWebConst.DATABEAN_GET_VALUE);
			String mskmYmd = mskmY + mskmM + mskmD;
			// 関電G個人情報取扱同意年月日
			parentMap.put("kepg_kjnif_trat_doi_ymd", mskmYmd);
			
			if (bean[0].sendMessageBoolean(KKW00101SFConst.KEPCOG_KJNIFT, X31CWebConst.DATABEAN_GET_VALUE))
			{
				// 関電G個人情報提供不可フラグ
				parentMap.put("kepg_kjnift_ffg", JKKStrConst.KEPG_KJNIFT_FAIL);
			}
			else
			{
				// 関電G個人情報提供不可フラグ
				parentMap.put("kepg_kjnift_ffg", JKKStrConst.KEPG_KJNIFT_PSB);
			}
			
			// 関電G個人情報提供不可フラグ変更年月日
			parentMap.put("kepg_kjnift_ffg_chg_ymd", mskmYmd);
		}
		else
		{
			// 関電G個人情報取扱同意有無
			parentMap.put("kepg_kjnif_trat_doi_um", "");
			
			// 関電G個人情報取扱同意年月日
			parentMap.put("kepg_kjnif_trat_doi_ymd", "");
			
			// 関電G個人情報提供不可フラグ
			parentMap.put("kepg_kjnift_ffg", "");
			
			// 関電G個人情報提供不可フラグ変更年月日
			parentMap.put("kepg_kjnift_ffg_chg_ymd", "");
		}
		
		// ANK-4075-00-00 ADD START
		// スキームタイプコードの選択値
		String selectCdScmType = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.SCM_TYPE_LIST,
				KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
		// スキーム事業者コードの選択値
		String selectCdScmJgs = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.SCM_JGS_DISP_LIST,
				KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
		
		// スキームタイプ(コード値) → スキームタイプコード
		parentMap.put("scm_type_cd", selectCdScmType);

		// スキーム事業者(コード値) → スキーム事業者コード
		parentMap.put("scm_jgs_cd", selectCdScmJgs);
		// ANK-4075-00-00 END
		outputMap.put("KKSV008401CC", parentMap);
		
		return outputMap;
		
	}
}