/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：CKSV0008_CKSV0008OPDBMapper
*	ソースファイル名：CKSV0008_CKSV0008OPDBMapper.java
*	作成者			：Fujitsu
*	日付			：2011年08月21日
*＜機能概要＞
*	BP（お客様情報変更_更新確認OP）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/08/21	Fujitsu		新規作成
*	v4.00.00	2012/07/03	FJ)庭山		【ANK-0398-00-00】対応
*	v4.00.01	2012/07/04	FJ)庭山		【ANK-0382-00-00】対応
*	v4.00.02	2012/07/10	FJ)庭山		【ANK-0384-00-00】対応
*	v4.00.03	2012/10/05	FJ)庭山		【ANK-1223-00-00】対応
*	v4.00.04	2012/12/18	FJ)庭山		【IT1-2012-0002483】対応
*	v4.00.05	2013/02/17	FJ)野口		【ST3-2013-0000040】対応
*	v4.00.06	2013/04/10	FJ）庭山	【ANK-1499-00-00】対応
*	v5.00.00	2013/07/24	FJ）庭山	【IT1-2013-0001436】対応
*	v5.00.01	2013/11/12	FJ)稲岡		【OM-2013-0004232】対応
*	v8.00.00	2014/03/05	FJ）石橋	【ANK-1962-00-00】対応
*	v9.00.00	2014/07/02	FJ) 舩橋	【ANK-2189-00-00】対応
*	v9.00.01	2014/08/09	FJ)宇野		【OM-2014-0002399】対応
*	v13.00.00	2015/03/16	FJ)川島		【OM-2014-0003841】対応
*   v18.00.00   2015/08/11  FJ) 寺園    【ANK-2631-00-00】ワンストップ案件（ＳＴＥＰ１）※koptWebBからkoptWebAへコピー
*   v18.00.01   2015/08/27  FJ) 寺園    【ANK-2631-00-00】ワンストップ案件（ＳＴＥＰ１）再　import文変更（common⇒commonOneStop）
*	v20.00.00	2015/10/06	FJ) 李		【ANK-2553-00-00】料金未収対応
*	v37.00.00	2018/05/01	FJ) 永井	【ANK-3375-00-00】【CMP】クレカ有効期限切れに対する対応施策
*	v37.00.00	2018/05/16	FJ) 永井	【ANK-3375-00-00】【CMP】クレカ有効期限切れに対する対応施策※koptWebBとの資産同期
* 	v57.00.00   2022/01/27  FJ) 藤本涼  【ANK-4075-00-00】マンション卸回線(WI-FIスキーム)の不備対応
**********************************************************************/
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.JCKStrConst;
import eo.common.constant.JKKStrConst;
import eo.common.constant.JZM0171Constant;
import eo.common.util.JPCUtilCommon;
import eo.web.webview.CKA90701SF.CKW00401SFConst;
import eo.web.webview.commonOneStop.JCKCommonConst;

/**
 * DataBean-BPマッピングをする。
 * 
 * <BR>
 * @author 富士通
 */
public class CKSV0008_CKSV0008OPDBMapper
{
	/**
	 * コンストラクタ
	 */
	public CKSV0008_CKSV0008OPDBMapper()
	{
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：お客様情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCKSV000802CC(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>();
		HashMap hojinMap = new HashMap();
		ArrayList list = new ArrayList();
		boolean kojinFlg = false;
		boolean hojinFlg = false;

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		X31SDataBeanAccess subbean = bean[0].getDataBeanArray(CKW00401SFConst.CUST_KEI_HKTGI_LIST).getDataBean(0);
		String mmbSbt = getCodeValueForComboBox(bean[0], "会員種別");
		String type = getCodeValueForComboBox(bean[0], "契約者タイプ");
		
		// SYSID
		parentMap.put("sysid", subbean.sendMessageString(CKW00401SFConst.SYSID_05, X31CWebConst.DATABEAN_GET_VALUE));
		// 会員種別コード
		parentMap.put("member_sbt_cd", mmbSbt);
		// 契約者タイプコード
		parentMap.put("keisha_type_cd", type);
		
		// 法人スキーマの場合
		if (isHojinCheck(mmbSbt, type, bean[0]))
		{
			// お客様名
			parentMap.put("cust_nm", bean[0].sendMessageString("代表者名", X31CWebConst.DATABEAN_GET_VALUE));
			// お客様カナ名
			parentMap.put("cust_kana", bean[0].sendMessageString("代表者名（カナ）", X31CWebConst.DATABEAN_GET_VALUE));
			// 法人格種別（前後指定）選択値
			String selHojinZengoSti = getCodeValueForComboBox(bean[0], CKW00401SFConst.HOJIN_ZENGO_STI);
			// 法人格種別（前後指定）選択値 → 法人格前後指定コード
			parentMap.put("hojin_zengo_shitei_cd", selHojinZengoSti);
			// 法人格種別（前後指定）選択値 = "2":なし
			if(JKKStrConst.HOJIN_ZENGO_SHITEI_CD_NON.equals(selHojinZengoSti))
			{
				// "00" → 法人格種別コード
				parentMap.put("hojin_sbt_cd", JKKStrConst.HOJIN_SBT_CD_BLANK);
			}
			else
			{
				// 法人格種別選択値 → 法人格種別コード
				parentMap.put("hojin_sbt_cd", getCodeValueForComboBox(bean[0], CKW00401SFConst.HOJIN_SBT));
			}
			// 会社名
			parentMap.put("comp_nm", bean[0].sendMessageString("契約者名", X31CWebConst.DATABEAN_GET_VALUE));
			// 会社カナ名
			parentMap.put("comp_kana", bean[0].sendMessageString("契約者名（カナ）", X31CWebConst.DATABEAN_GET_VALUE));
			// 代表者役職名
			parentMap.put("dihysha_post_nm", bean[0].sendMessageString("代表者役職", X31CWebConst.DATABEAN_GET_VALUE));
			// 業種コード
			parentMap.put("gshu_cd", getCodeValueForComboBox(bean[0], "職業＿業種"));
			
			// 連絡先コード
			hojinMap.put("rrks_cd", "01");
			// 法人連絡先住所コード、法人連絡先郵便番号、法人連絡先都道府県名、法人連絡先市区町村名、法人連絡先大字通称名
			// 法人連絡先字丁目名、法人連絡先番地号、法人連絡先住所補記・建物名、法人連絡先住所補記・部屋番号
			hojinMap = setAdInf(bean[0], hojinMap, "2");
			// 法人連絡先担当者名
			hojinMap.put("hjrrks_tntsha_nm", bean[0].sendMessageString("担当者名", X31CWebConst.DATABEAN_GET_VALUE));
			// 法人連絡先担当者カナ名
			hojinMap.put("hjrrks_tntsha_kana", bean[0].sendMessageString("担当者名（カナ）", X31CWebConst.DATABEAN_GET_VALUE));
			// 法人連絡先担当者所属部署名
			hojinMap.put("hjrrks_tntsha_shozkbsho_nm", bean[0].sendMessageString("担当者所属部署", X31CWebConst.DATABEAN_GET_VALUE));
			list.add(hojinMap);
			parentMap.put("ECK0011C130CBSMsg1List", list);
			
			hojinFlg = isUpdValueCheck(bean[0], "2");
			
			// OM-2014-0002399 ADD START
			// "01"(契約者)→法人連絡先コード
			parentMap.put("hjrrks_cd", "01");
			// 勤務先名 → 法人連絡先変更マップ.法人連絡先名
			parentMap.put("hjrrks_nm", bean[0].sendMessageString("勤務先名", X31CWebConst.DATABEAN_GET_VALUE));
			// 住所コード → 法人連絡先変更マップ.法人連絡先住所コード
			// 郵便番号 → 法人連絡先変更マップ.法人連絡先郵便番号
			// 都道府県 → 法人連絡先変更マップ.法人連絡先都道府県名
			// 市区町村 → 法人連絡先変更マップ.法人連絡先市区町村名
			// 大字通称 → 法人連絡先変更マップ.法人連絡先大字通称名
			// 字丁目 → 法人連絡先変更マップ.法人連絡先字丁目名
			// 番地・号 → 法人連絡先変更マップ.法人連絡先番地号
			// 建物名 → 法人連絡先変更マップ.法人連絡先住所補記・建物名
			// 部屋番号 → 法人連絡先変更マップ.法人連絡先住所補記・部屋番号
			parentMap = setAdInf(bean[0], parentMap, "2");
			// 担当者名 → 法人連絡先変更マップ.法人連絡先担当者名
			parentMap.put("hjrrks_tntsha_nm", bean[0].sendMessageString("担当者名", X31CWebConst.DATABEAN_GET_VALUE));
			// 担当者名（カナ） → 法人連絡先変更マップ.法人連絡先担当者カナ名
			parentMap.put("hjrrks_tntsha_kana", bean[0].sendMessageString("担当者名（カナ）", X31CWebConst.DATABEAN_GET_VALUE));
			// 担当者所属部署 → 法人連絡先変更マップ.法人連絡先担当者所属部署名
			parentMap.put("hjrrks_tntsha_shozkbsho_nm", bean[0].sendMessageString("担当者所属部署", X31CWebConst.DATABEAN_GET_VALUE));
			// 変更有無フラグ
			parentMap.put("chg_um_flg", isUpdValueCheck(bean[0], "3"));
			
			// "01"(契約者)→連絡先コード
			parentMap.put("rrks_cd", JCKStrConst.CD00268_KEISHA);
			// OM-2014-0002399 ADD END
		}
		else
		{
			// お客様名
			parentMap.put("cust_nm", bean[0].sendMessageString("契約者名", X31CWebConst.DATABEAN_GET_VALUE));
			// お客様カナ名
			parentMap.put("cust_kana", bean[0].sendMessageString("契約者名（カナ）", X31CWebConst.DATABEAN_GET_VALUE));
			// 職業コード
			parentMap.put("shokugyo_cd", getCodeValueForComboBox(bean[0], "職業＿業種"));
			// 職業その他
			parentMap.put("shokugyo_other", bean[0].sendMessageString("職業その他", X31CWebConst.DATABEAN_GET_VALUE));
			// 勤務先名
			parentMap.put("offc_nm", bean[0].sendMessageString("勤務先名", X31CWebConst.DATABEAN_GET_VALUE));
			// 学校名
			parentMap.put("school_nm", bean[0].sendMessageString("学校名", X31CWebConst.DATABEAN_GET_VALUE));
			// 勤務先業種コード
			parentMap.put("offc_gshu_cd", bean[0].sendMessageString("勤務先業種コード", X31CWebConst.DATABEAN_GET_VALUE));
			// 勤務先部署名
			parentMap.put("offc_busho_nm", bean[0].sendMessageString("勤務先部署名", X31CWebConst.DATABEAN_GET_VALUE));
			// 勤務先住所コード
			parentMap.put("offc_ad_cd", bean[0].sendMessageString("勤務先住所コード", X31CWebConst.DATABEAN_GET_VALUE));
			// 勤務先郵便番号
			parentMap.put("offc_pcd", bean[0].sendMessageString("勤務先郵便番号", X31CWebConst.DATABEAN_GET_VALUE));
			// 勤務先都道府県名
			parentMap.put("offc_state_nm", bean[0].sendMessageString("勤務先都道府県名", X31CWebConst.DATABEAN_GET_VALUE));
			// 勤務先市区町村名
			parentMap.put("offc_city_nm", bean[0].sendMessageString("勤務先市区町村名", X31CWebConst.DATABEAN_GET_VALUE));
			// 勤務先大字通称名
			parentMap.put("offc_oaztsu_nm", bean[0].sendMessageString("勤務先大字通称名", X31CWebConst.DATABEAN_GET_VALUE));
			// 勤務先字丁目名
			parentMap.put("offc_azcho_nm", bean[0].sendMessageString("勤務先字丁目名", X31CWebConst.DATABEAN_GET_VALUE));
			// 勤務先番地号
			parentMap.put("offc_bnchigo", bean[0].sendMessageString("勤務先番地号", X31CWebConst.DATABEAN_GET_VALUE));
			// 勤務先住所補記・建物名
			parentMap.put("offc_adrttm", bean[0].sendMessageString("勤務先住所補記・建物名", X31CWebConst.DATABEAN_GET_VALUE));
			// 勤務先住所補記・部屋番号
			parentMap.put("offc_adrrm", bean[0].sendMessageString("勤務先住所補記・部屋番号", X31CWebConst.DATABEAN_GET_VALUE));
			// 勤務先電話番号
			parentMap.put("offc_telno", bean[0].sendMessageString("勤務先電話番号", X31CWebConst.DATABEAN_GET_VALUE));
			// 内線番号
			parentMap.put("offc_nisnno", bean[0].sendMessageString("内線番号", X31CWebConst.DATABEAN_GET_VALUE));
			// 勤務先従業員数(規模)
			parentMap.put("offc_worker_cnt_scale", bean[0].sendMessageString("勤務先従業員数（規模）", X31CWebConst.DATABEAN_GET_VALUE));
			// お客様年収
			parentMap.put("cust_salary", bean[0].sendMessageString("お客様年収", X31CWebConst.DATABEAN_GET_VALUE));
			// 親権者名
			parentMap.put("sksha_nm", bean[0].sendMessageString("親権者名", X31CWebConst.DATABEAN_GET_VALUE));
			// 親権者カナ名
			parentMap.put("sksha_kana", bean[0].sendMessageString("親権者名（カナ）", X31CWebConst.DATABEAN_GET_VALUE));
			// 親権者生年月日
			parentMap.put("sksha_birthd", bean[0].sendMessageString("親権者生年月日", X31CWebConst.DATABEAN_GET_VALUE));
			// 親権者続柄コード
			parentMap.put("sksha_zokugara_cd", getCodeValueForComboBox(bean[0], "続柄"));
			// 続柄その他
			parentMap.put("zokugara_other", bean[0].sendMessageString("続柄（その他欄）", X31CWebConst.DATABEAN_GET_VALUE));
			// 親権者住所コード
			parentMap.put("sksha_ad_cd", bean[0].sendMessageString("親権者住所コード", X31CWebConst.DATABEAN_GET_VALUE));
			// 親権者郵便番号
			parentMap.put("sksha_pcd", bean[0].sendMessageString("親権者郵便番号", X31CWebConst.DATABEAN_GET_VALUE));
			// 親権者都道府県
			parentMap.put("sksha_state_nm", bean[0].sendMessageString("親権者都道府県", X31CWebConst.DATABEAN_GET_VALUE));
			// 親権者市区町村
			parentMap.put("sksha_city_nm", bean[0].sendMessageString("親権者市区町村", X31CWebConst.DATABEAN_GET_VALUE));
			// 親権者大字通称名
			parentMap.put("sksha_oaztsu_nm", bean[0].sendMessageString("親権者大字通称", X31CWebConst.DATABEAN_GET_VALUE));
			// 親権者字丁目名
			parentMap.put("sksha_azcho_nm", bean[0].sendMessageString("親権者字丁目", X31CWebConst.DATABEAN_GET_VALUE));
			// 親権者番地・号
			parentMap.put("sksha_ad_bnchigo", bean[0].sendMessageString("親権者番地・号", X31CWebConst.DATABEAN_GET_VALUE));
			// 親権者住所補記・建物名
			parentMap.put("sksha_adrttm", bean[0].sendMessageString("親権者建物名", X31CWebConst.DATABEAN_GET_VALUE));
			// 親権者住所補記・部屋番号
			parentMap.put("sksha_adrrm", bean[0].sendMessageString("親権者部屋番号", X31CWebConst.DATABEAN_GET_VALUE));
			// 親権者電話番号
			parentMap.put("sksha_telno", bean[0].sendMessageString("親権者電話番号", X31CWebConst.DATABEAN_GET_VALUE));
/* ++++++++++ v4.00.00 追加開始 ++++++++++ */
			// 親権者住所手動入力フラグ
			parentMap.put("sksha_ad_man_input_flg", getManInputFlg(bean[0].sendMessageBoolean("親権者手動入力", X31CWebConst.DATABEAN_GET_VALUE)));
/* ++++++++++ v4.00.00 追加終了 ++++++++++ */
			
			kojinFlg = isUpdValueCheck(bean[0], "1");
		}
		// お客様性別コード
		parentMap.put("cust_sex_cd", bean[0].sendMessageString("性別", X31CWebConst.DATABEAN_GET_VALUE));
		// 生年月日
		parentMap.put("cust_birthd", bean[0].sendMessageString("生年月日", X31CWebConst.DATABEAN_GET_VALUE));
		// 氏名敬称
		parentMap.put("nm_kisho", bean[0].sendMessageString("氏名敬称", X31CWebConst.DATABEAN_GET_VALUE));
		// お客様確認備考
		parentMap.put("cust_cfm_biko", bean[0].sendMessageString("記事欄", X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者住所コード、契約者郵便番号、契約者都道府県名、契約者市区町村名、契約者大字通称名
		// 契約者字丁目名、契約者番地号、契約者住所補記・建物名、契約者住所補記・部屋番号、契約者住所手動入力フラグ
		parentMap = setAdInf(bean[0], parentMap, "1");
		// 契約者電話番号
		parentMap.put("keisha_telno", bean[0].sendMessageString("電話番号", X31CWebConst.DATABEAN_GET_VALUE));
/* ++++++++++ v4.01.00 追加開始 ++++++++++ */
		// お客様指定送付先住所コード
		parentMap.put("cssti_shs_ad_cd", bean[0].sendMessageString("送付先住所コード", X31CWebConst.DATABEAN_GET_VALUE));
		// お客様指定送付先郵便番号
		parentMap.put("cssti_shs_pcd", bean[0].sendMessageString("送付先郵便番号", X31CWebConst.DATABEAN_GET_VALUE));
		// お客様指定送付先都道府県名
		parentMap.put("cssti_shs_state_nm", bean[0].sendMessageString("送付先都道府県", X31CWebConst.DATABEAN_GET_VALUE));
		// お客様指定送付先市区町村名
		parentMap.put("cssti_shs_city_nm", bean[0].sendMessageString("送付先市区町村", X31CWebConst.DATABEAN_GET_VALUE));
		// お客様指定送付先大字通称名
		parentMap.put("cssti_shs_oaztsu_nm", bean[0].sendMessageString("送付先大字通称", X31CWebConst.DATABEAN_GET_VALUE));
		// お客様指定送付先字丁目名
		parentMap.put("cssti_shs_azcho_nm", bean[0].sendMessageString("送付先字丁目", X31CWebConst.DATABEAN_GET_VALUE));
		// お客様指定送付先番地号
		parentMap.put("cssti_shs_bnchigo", bean[0].sendMessageString("送付先番地・号", X31CWebConst.DATABEAN_GET_VALUE));
		// お客様指定送付先住所補記・建物名
		parentMap.put("cssti_shs_adrttm", bean[0].sendMessageString("送付先建物名", X31CWebConst.DATABEAN_GET_VALUE));
		// お客様指定送付先住所補記・部屋番号
		parentMap.put("cssti_shs_adrrm", bean[0].sendMessageString("送付先部屋番号", X31CWebConst.DATABEAN_GET_VALUE));
		// お客様指定送付先住所手動入力フラグ
		parentMap.put("cssti_shs_ad_man_input_flg", getManInputFlg(bean[0].sendMessageBoolean("送付先手動入力", X31CWebConst.DATABEAN_GET_VALUE)));
/* ++++++++++ v4.01.00 追加終了 ++++++++++ */
		// お客様ランクコード
		parentMap.put("cust_rank_cd", bean[0].sendMessageString("お客様ランクコード", X31CWebConst.DATABEAN_GET_VALUE));
		// 連絡手段コード
		parentMap.put("rrk_way_cd", getCodeValueForComboBox(bean[0], CKW00401SFConst.RRK_JOKEN));
		// 連絡手段補記
		parentMap.put("rrk_way_hoki", bean[0].sendMessageString("連絡情報", X31CWebConst.DATABEAN_GET_VALUE));
		// コンテンツお客様名
		parentMap.put("cont_cust_nm", bean[0].sendMessageString("コンテンツお客様名", X31CWebConst.DATABEAN_GET_VALUE));
		// コンテンツお客様カナ名
		parentMap.put("cont_cust_kana", bean[0].sendMessageString("コンテンツお客様カナ名", X31CWebConst.DATABEAN_GET_VALUE));
		// コンテンツお客様性別コード
		parentMap.put("cont_cust_sex_cd", bean[0].sendMessageString("コンテンツお客様性別コード", X31CWebConst.DATABEAN_GET_VALUE));
		// コンテンツお客様生年月日
		parentMap.put("cont_cust_birthd", bean[0].sendMessageString("コンテンツお客様生年月日", X31CWebConst.DATABEAN_GET_VALUE));
		// コンテンツ住所コード
		parentMap.put("cont_ad_cd", bean[0].sendMessageString("コンテンツ住所コード", X31CWebConst.DATABEAN_GET_VALUE));
		// コンテンツ郵便番号
		parentMap.put("cont_pcd", bean[0].sendMessageString("コンテンツ郵便番号", X31CWebConst.DATABEAN_GET_VALUE));
		// コンテンツ都道府県名
		parentMap.put("cont_state_nm", bean[0].sendMessageString("コンテンツ都道府県名", X31CWebConst.DATABEAN_GET_VALUE));
		// コンテンツ市区町村名
		parentMap.put("cont_city_nm", bean[0].sendMessageString("コンテンツ市区町村名", X31CWebConst.DATABEAN_GET_VALUE));
		// コンテンツ大字通称名
		parentMap.put("cont_oaztsu_nm", bean[0].sendMessageString("コンテンツ大字通称名", X31CWebConst.DATABEAN_GET_VALUE));
		// コンテンツ字丁目名
		parentMap.put("cont_azcho_nm", bean[0].sendMessageString("コンテンツ字丁目名", X31CWebConst.DATABEAN_GET_VALUE));
		
		StringBuilder contAd = new StringBuilder();
		int contPst = 0;
		contAd.append(bean[0].sendMessageString(CKW00401SFConst.CONT_AD_1, X31CWebConst.DATABEAN_GET_VALUE));
		if (contAd.length() > 0)
		{
			contPst = contAd.length() + 1;
		}
		contAd.append(bean[0].sendMessageString(CKW00401SFConst.CONT_AD_2, X31CWebConst.DATABEAN_GET_VALUE));
		// コンテンツ住所１ + コンテンツ住所２ → コンテンツ番地号
		parentMap.put("cont_bnchigo", contAd.toString());
		// コンテンツ住所３ → コンテンツ住所補記・建物名
		parentMap.put("cont_adrttm", bean[0].sendMessageString(CKW00401SFConst.CONT_AD_3, X31CWebConst.DATABEAN_GET_VALUE));
		// コンテンツ住所補記・部屋番号
		parentMap.put("cont_adrrm", bean[0].sendMessageString("コンテンツ住所補記・部屋番号", X31CWebConst.DATABEAN_GET_VALUE));
		// コンテンツ住所分割開始位置 → お客様＜個人＞内容変更マップ.コンテンツ住所分割開始位置
		parentMap.put("cont_ad_bnkt_sta_pst", String.valueOf(contPst));
		
		StringBuilder sb = new StringBuilder();
		sb.append(bean[0].sendMessageString(CKW00401SFConst.TSTA_YEAR, X31CWebConst.DATABEAN_GET_VALUE));
		sb.append(bean[0].sendMessageString(CKW00401SFConst.TSTA_MON, X31CWebConst.DATABEAN_GET_VALUE));
		sb.append(bean[0].sendMessageString(CKW00401SFConst.TSTA_DAY, X31CWebConst.DATABEAN_GET_VALUE));
		// 予約適用年月日
		parentMap.put("rsv_aply_ymd", sb.toString());
		
		// 内販外販コード
		parentMap.put("naihan_gaihan_cd", getCodeValueForComboBox(bean[0], CKW00401SFConst.NAIHAN_GAIHAN_INF));
		
		String compCd = bean[0].sendMessageString("企業識別コード", X31CWebConst.DATABEAN_GET_VALUE);
		if (compCd != null && compCd.length() > 0)
		{
			compCd = "001" + compCd;
		}
		// 内販企業識別コード
		parentMap.put("naihan_comp_skbt_cd", compCd);
		// 要補助コード
		parentMap.put("necessary_hojo_cd", bean[0].sendMessageString("要補助コード", X31CWebConst.DATABEAN_GET_VALUE));
		// ｅｏｎｅｔＩＤ未移行フラグ
		parentMap.put("eonetid_mi_iko_flg", bean[0].sendMessageString("ｅｏｎｅｔＩＤ未移行フラグ", X31CWebConst.DATABEAN_GET_VALUE));
		// ログイン認証可否
		parentMap.put("login_ninsho_kh", bean[0].sendMessageString("ログイン認証", X31CWebConst.DATABEAN_GET_VALUE));
		// お客様特記事項コード
		parentMap.put("cust_tkjk_cd", bean[0].sendMessageString("お客様特記事項コード", X31CWebConst.DATABEAN_GET_VALUE));
		
		String loginKh = bean[0].sendMessageString("ログイン認証", X31CWebConst.DATABEAN_GET_VALUE);
		String ninshoYmd = bean[0].sendMessageString("認証停止年月日", X31CWebConst.DATABEAN_GET_VALUE);
		if (isCgbfToCgaf(bean[0], CKW00401SFConst.BEFORE_LOGIN_NINSHO, CKW00401SFConst.LOGIN_NINSHO) && "0".equals(loginKh))
		{
			ninshoYmd = bean[0].sendMessageString(CKW00401SFConst.STDARDYMD, X31CWebConst.DATABEAN_GET_VALUE);
		}
		// ログイン認証停止年月日
		parentMap.put("login_ninsho_stp_ymd", ninshoYmd);
		// 会員種別特定フラグ
		parentMap.put("mmb_sbt_tokut_flg", bean[0].sendMessageString("会員種別特定フラグ", X31CWebConst.DATABEAN_GET_VALUE));
		// 旧eonet会員認証用ID
		parentMap.put("old_eonetmb_ninsho_id", bean[0].sendMessageString("旧ｅｏｎｅｔ会員認証用ＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// 会員ISP決済状態コード
		parentMap.put("mmb_isp_kssai_stat_cd", bean[0].sendMessageString("会員ＩＳＰ決済状態コード", X31CWebConst.DATABEAN_GET_VALUE));
// ANK-3375-00-00 ADD START
		if (bean[0].sendMessageBoolean("支払方法変更督促メッセージ抑止有無", X31CWebConst.DATABEAN_GET_VALUE))
		{
			// 支払方法変更督促メッセージ抑止有無
			parentMap.put("payway_chg_ts_msg_yoksi_um", JCKCommonConst.UM_U);
		}
		else
		{
			// 支払方法変更督促メッセージ抑止有無
			parentMap.put("payway_chg_ts_msg_yoksi_um", JCKCommonConst.UM_M);
		}
// ANK-3375-00-00 ADD END
		// 削除対象外フラグ
		parentMap.put("del_trgt_gai_flg", bean[0].sendMessageString("削除対象外フラグ", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 会員種別変更フラグ
		parentMap.put("member_sbt_chg_flg", false);
		// 契約者タイプ変更フラグ
		parentMap.put("keisha_type_chg_flg", false);

		// ANK-2189-00-00 ADD START
		if (isUpdValueCheck_Kanden(bean[0])){
			// 法人スキーマの場合
			if (isHojinCheck(mmbSbt, type, bean[0]))
			{
				hojinFlg=true;
			}else{
				kojinFlg=true;
			}
		}
		// ANK-2189-00-00 ADD END

		// 個人変更フラグ
		parentMap.put("kojin_chg_flg", kojinFlg);
		// 法人変更フラグ
		parentMap.put("hojin_chg_flg", hojinFlg);
		// 秘密の質問変更フラグ
		parentMap.put("secret_question_chg_flg", false);
		// ISP決済利用変更フラグ
		parentMap.put("isp_kssai_use_chg_flg", false);
		// 異動区分遷移フラグ
		parentMap.put("ido_div_seni_flg", bean[0].sendMessageBoolean("異動区分遷移フラグ", X31CWebConst.DATABEAN_GET_VALUE));
		// 照査遷移フラグ
		parentMap.put("shosa_seni_flg", bean[0].sendMessageBoolean("照査遷移フラグ", X31CWebConst.DATABEAN_GET_VALUE));
		// 更新年月日時分秒（更新前）
		parentMap.put("upd_dtm_bf", bean[0].sendMessageString("お客様最終更新年月日時分秒", X31CWebConst.DATABEAN_GET_VALUE));
		
/* ++++++++++ v4.00.05 追加開始 ++++++++++ */
		//画面側でワーニングのフラグを受け取るため空でマップキーを作成
		parentMap.put("keisha_ad_chk_lv", "");
		parentMap.put("sksha_ad_chk_lv", "");
		parentMap.put("cssti_shs_ad_chk_lv", "");
/* ++++++++++ v4.00.05 追加終了 ++++++++++ */
		
		/* ++++++++++ v8.00.00 追加開始 ++++++++++ */
		// 関電Ｇ個人情報取扱同意有無
		// ANK-2189-00-00 MOD START
//		parentMap.put("kepg_kjnif_trat_doi_um", bean[0].sendMessageString(CKW00401SFConst.REFERENCE_KEPG_KJNIF_TRAT_DOI_UM, X31CWebConst.DATABEAN_GET_VALUE));
		String doi_um = getCodeValueForComboBox(bean[0], CKW00401SFConst.KEPG_KJNIF_TRAT_DOI_UM);
		parentMap.put("kepg_kjnif_trat_doi_um", doi_um);
		// ANK-2189-00-00 MOD END

		// 関電Ｇ個人情報取扱同意有無名称
		parentMap.put("kepg_kjnif_trat_doi_um_nm", bean[0].sendMessageString(CKW00401SFConst.REFERENCE_KEPG_KJNIF_TRAT_DOI_UM_NM, X31CWebConst.DATABEAN_GET_VALUE));

		// ANK-2189-00-00 MOD START
		// 関電Ｇ個人情報取扱同意年月日
//		parentMap.put("kepg_kjnif_trat_doi_ymd", bean[0].sendMessageString(CKW00401SFConst.REFERENCE_KEPG_KJNIF_TRAT_DOI_YMD, X31CWebConst.DATABEAN_GET_VALUE));

		String doiY = bean[0].sendMessageString(CKW00401SFConst.KEPG_KJNIF_TRAT_DOI_Y, X31CWebConst.DATABEAN_GET_VALUE);
		String doiYmd = null;
		
		if (doiY != null && doiY.length() > 0)
		{
			doiYmd = JPCUtilCommon.concatYmd(doiY, bean[0].sendMessageString(CKW00401SFConst.KEPG_KJNIF_TRAT_DOI_M, X31CWebConst.DATABEAN_GET_VALUE),
												   bean[0].sendMessageString(CKW00401SFConst.KEPG_KJNIF_TRAT_DOI_D, X31CWebConst.DATABEAN_GET_VALUE));
		}
		parentMap.put("kepg_kjnif_trat_doi_ymd", doiYmd);
		// ANK-2189-00-00 MOD END
		
		// ANK-2189-00-00 MOD START
		// 関電Ｇ個人情報提供不可フラグ
//		parentMap.put("kepg_kjnift_ffg", bean[0].sendMessageString(CKW00401SFConst.REFERENCE_KEPG_KJNIFT_FFG, X31CWebConst.DATABEAN_GET_VALUE));
		String kjnift_ffg = getCodeValueForComboBox(bean[0], CKW00401SFConst.KEPG_KJNIFT_FFG);
		parentMap.put("kepg_kjnift_ffg", kjnift_ffg);
		// ANK-2189-00-00 MOD END

		// 関電Ｇ個人情報提供不可フラグ名称
		parentMap.put("kepg_kjnift_ffg_nm", bean[0].sendMessageString(CKW00401SFConst.REFERENCE_KEPG_KJNIFT_FFG_NM, X31CWebConst.DATABEAN_GET_VALUE));

		// ANK-2189-00-00 MOD START
		// 関電Ｇ個人情報提供不可フラグ変更年月日
//		parentMap.put("kepg_kjnift_ffg_chg_ymd", bean[0].sendMessageString(CKW00401SFConst.REFERENCE_KEPG_KJNIFT_FFG_CHG_YMD, X31CWebConst.DATABEAN_GET_VALUE));

		String ffgY = bean[0].sendMessageString(CKW00401SFConst.KEPG_KJNIFT_FFG_CHG_Y, X31CWebConst.DATABEAN_GET_VALUE);
		String ffgYmd = null;
		
		if (ffgY != null && ffgY.length() > 0)
		{
			ffgYmd = JPCUtilCommon.concatYmd(ffgY, bean[0].sendMessageString(CKW00401SFConst.KEPG_KJNIFT_FFG_CHG_M, X31CWebConst.DATABEAN_GET_VALUE), 
												   bean[0].sendMessageString(CKW00401SFConst.KEPG_KJNIFT_FFG_CHG_D, X31CWebConst.DATABEAN_GET_VALUE));
		}
		parentMap.put("kepg_kjnift_ffg_chg_ymd", ffgYmd);
		// ANK-2189-00-00 MOD END

		// ANK-2189-00-00 MOD START
		// 関電Ｇ個人情報提供不可フラグ変更受付方法コード
//		parentMap.put("kepg_kjnift_ffg_chg_uwy_cd", bean[0].sendMessageString(CKW00401SFConst.REFERENCE_KEPG_KJNIFT_FFG_CHG_UWY_CD, X31CWebConst.DATABEAN_GET_VALUE));
		String uwy_cd = getCodeValueForComboBox(bean[0], CKW00401SFConst.KEPG_KJNIFT_FFG_CHG_UWY_CD);
		parentMap.put("kepg_kjnift_ffg_chg_uwy_cd", uwy_cd);
		// ANK-2189-00-00 MOD END

		// 関電Ｇ個人情報提供不可フラグ変更受付方法コード名称
		parentMap.put("kepg_kjnift_ffg_chg_uwy_cd_nm", bean[0].sendMessageString(CKW00401SFConst.REFERENCE_KEPG_KJNIFT_FFG_CHG_UWY_CD_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// 関電Ｇ個人情報提供状況コード
		parentMap.put("kepg_kjnift_jokyo_cd", bean[0].sendMessageString(CKW00401SFConst.REFERENCE_KEPG_KJNIFT_JOKYO_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// 関電Ｇ個人情報提供状況コード名称
		parentMap.put("kepg_kjnift_jokyo_cd_nm", bean[0].sendMessageString(CKW00401SFConst.REFERENCE_KEPG_KJNIFT_JOKYO_CD_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// 関電Ｇ個人情報提供開始年月日
		parentMap.put("kepg_kjnift_staymd", bean[0].sendMessageString(CKW00401SFConst.REFERENCE_KEPG_KJNIFT_STAYMD, X31CWebConst.DATABEAN_GET_VALUE));
		// 関電Ｇ個人情報提供停止連携状態コード
		parentMap.put("kepg_kjnift_rscd", bean[0].sendMessageString(CKW00401SFConst.REFERENCE_KEPG_KJNIFT_RSCD, X31CWebConst.DATABEAN_GET_VALUE));
		// 関電Ｇ個人情報提供停止連携状態コード名称
		parentMap.put("kepg_kjnift_rscd_nm", bean[0].sendMessageString(CKW00401SFConst.REFERENCE_KEPG_KJNIFT_RSCD_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// 関電Ｇ個人情報提供停止連携状態コード変更年月日
		parentMap.put("kepg_kjnift_rscd_chg_ymd", bean[0].sendMessageString(CKW00401SFConst.REFERENCE_KEPG_KJNIFT_RSCD_CHG_YMD, X31CWebConst.DATABEAN_GET_VALUE));
		/* ++++++++++ v8.00.00 追加終了 ++++++++++ */

		// ANK-2553-00-00 ADD START
		// 購入可否フラグコード
		parentMap.put("konyu_kahi_flg_cd", bean[0].sendMessageString(CKW00401SFConst.HOJI_KONYU_KAHI_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-2553-00-00 ADD END
		
		// ANK-4075-00-00 ADD START
		String scmType = getCodeValueForComboBox(bean[0], "スキームタイプ");
		String scmJgs = getCodeValueForComboBox(bean[0], "スキーム事業者");
		
		// スキームタイプコード
		parentMap.put("scm_type_cd", scmType);
		// スキーム事業者コード
		parentMap.put("scm_jgs_cd", scmJgs);
		// ANK-4075-00-00 ADD END
		
		outputMap.put("CKSV000802CC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：お客様情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCKSV000802SC(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);
		
		X31SDataBeanAccess custBean = bean[0].getDataBeanArray(JCKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST).getDataBean(0);

		// SYSID → ファミリー会員グループ一覧照会（SYSID）マップ.SYSID
		parentMap.put("key_sysid", custBean.sendMessageString(JCKCommonConst.HKTGI_SYSID, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CKSV000802SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：お客様情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCKSV000803SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}
		
		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 基準日 → お客様一意照会マップ.予約適用年月日
		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString(CKW00401SFConst.STDARDYMD, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CKSV000803SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：お客様情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCKSV000804SC(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);

		// "004"(eoID) → エイジング一覧照会（ユニーク）（ニックネーム）マップ.ＫＥＹ＿エイジング種別コード
		parentMap.put("key_aging_sbt_cd", "004");
		// eoID → エイジング一覧照会（ユニーク）（ニックネーム）マップ.ＫＥＹ＿エイジング対象値
		parentMap.put("key_aging_tg_value", bean[0].sendMessageString("ｅｏＩＤ", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CKSV000804SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：お客様情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCKSV000805SC(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);
		
		// "003"(ニックネーム) → エイジング一覧照会（ユニーク）（ニックネーム）マップ.ＫＥＹ＿エイジング種別コード
		parentMap.put("key_aging_sbt_cd", "003");
		// ニックネーム → エイジング一覧照会（ユニーク）（ニックネーム）マップ.ＫＥＹ＿エイジング対象値
		parentMap.put("key_aging_tg_value", bean[0].sendMessageString("ニックネーム", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CKSV000805SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：お客様情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCKSV000807SC(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);
		
		X31SDataBeanAccess custBean = bean[0].getDataBeanArray(JCKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST).getDataBean(0);

		// SYSID → 引継元情報サービス契約一覧照会マップ.SYSID
		parentMap.put("key_sysid", custBean.sendMessageString(JCKCommonConst.HKTGI_SYSID, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CKSV000807SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：お客様情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCKSV000808SC(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);
		
		outputMap.put("CKSV000808SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：お客様情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCKSV000809SC(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);
		
		outputMap.put("CKSV000809SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：お客様情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCKSV000810SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}
		
		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// コード種別コード → コード名称管理一意照会マップ.ＫＥＹ＿コード種別コード
		parentMap.put("key_cd_sbt_cd", JZM0171Constant.CD00669);
		// 企業識別コード → コード名称管理一意照会マップ.ＫＥＹ＿コード区分
		parentMap.put("key_cd_div", bean[0].sendMessageString(CKW00401SFConst.COMP_SKBT_CD, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CKSV000810SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：お客様情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCKSV000811SC(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);

		// "20"：メールドメイン → NGワード一覧照会マップ.ＫＥＹ＿NGワードコード
		parentMap.put("key_ng_word_cd", "20");
		// 基準日 → NGワード一覧照会マップ.ＫＥＹ＿NGワード適用期間開始
		parentMap.put("key_ng_word_aply_prd_sta", bean[0].sendMessageString(CKW00401SFConst.STDARDYMD, X31CWebConst.DATABEAN_GET_VALUE));
		// 基準日 → NGワード一覧照会マップ.ＫＥＹ＿NGワード適用期間終了
		parentMap.put("key_ng_word_aply_prd_end", bean[0].sendMessageString(CKW00401SFConst.STDARDYMD, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CKSV000811SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：お客様情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCKSV000812SC(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);

		// "CK_COPY_RSV_YMD_CHK" → 業務パラメータ管理一意照会マップ.ＫＥＹ＿業務パラメータＩＤ
		parentMap.put("key_work_param_id", "CK_COPY_RSV_YMD_CHK");

		outputMap.put("CKSV000812SC", parentMap);
						
		return outputMap;
	}
/* ++++++++++ v4.02.00 追加開始 ++++++++++ */
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：お客様情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCKSV000801CC(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);

		// 回線場所情報が活性の場合
		if ("0".equals(bean[0].sendMessageString(CKW00401SFConst.CTL_KAISEN_PLACE, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			boolean screen = bean[0].sendMessageBoolean(CKW00401SFConst.ONSCREEN_COPY_BTN, X31CWebConst.DATABEAN_GET_VALUE);
			String copyYmd = bean[0].sendMessageString(CKW00401SFConst.COPY_RSVD, X31CWebConst.DATABEAN_GET_VALUE);
			String copyBtn = "0";
			
			if (bean[0].sendMessageBoolean(CKW00401SFConst.UEPCAD_COPY_BTN, X31CWebConst.DATABEAN_GET_VALUE))
			{
				copyBtn = "1";
			}
			
			// 画面反映がON又は変更があった場合
			if (screen || isSvcKeiKaisenUcwkCheck(bean[0], copyBtn, copyYmd))
			{
				// ＫＥＹ＿サービス契約回線内訳番号
				parentMap.put("key_svc_kei_kaisen_ucwk_no", bean[0].sendMessageString(CKW00401SFConst.SVC_KEI_KAISEN_UCWK_NO, X31CWebConst.DATABEAN_GET_VALUE));
				// 更新年月日時分秒(更新前)
				parentMap.put("upd_dtm_bf", bean[0].sendMessageString(CKW00401SFConst.LAST_UPD_DTM, X31CWebConst.DATABEAN_GET_VALUE));
				
				if (screen)
				{
					// 契約者住所変更有無
					parentMap.put("kshad_chg_um", "0");
					// 契約者住所変更希望年月日
					parentMap.put("kshad_chg_kibo_ymd", null);
				}
				else
				{
					// 契約者住所変更有無
					parentMap.put("kshad_chg_um", copyBtn);
					// 契約者住所変更希望年月日
					parentMap.put("kshad_chg_kibo_ymd", bean[0].sendMessageString(CKW00401SFConst.COPY_RSVD, X31CWebConst.DATABEAN_GET_VALUE));
				}
			}
		}

		outputMap.put("CKSV000801CC", parentMap);
						
		return outputMap;
	}
/* ++++++++++ v4.02.00 追加終了 ++++++++++ */

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：お客様情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCKSV0008WORK01(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		if (bean == null)
		{
			return null;
		}
		
		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// コードタイプコード → お客様情報変更_更新確認サービス作業項目マップ01.契約者タイプコード
		parentMap.put("keisha_type_cd", getCodeValueForComboBox(bean[0], CKW00401SFConst.KEISHA_TYPE));
		// コードタイプコード → お客様情報変更_更新確認サービス作業項目マップ01.会員種別コード
		parentMap.put("member_sbt_cd", getCodeValueForComboBox(bean[0], CKW00401SFConst.MEMBER_SBT));
		// 変更前ニックネーム → お客様情報変更_更新確認サービス作業項目マップ01.変更前ニックネーム
		parentMap.put("before_nkname", bean[0].sendMessageString("変更前ニックネーム", X31CWebConst.DATABEAN_GET_VALUE));
		// ニックネーム → お客様情報変更_更新確認サービス作業項目マップ01.ニックネーム
		parentMap.put("nkname", bean[0].sendMessageString("ニックネーム", X31CWebConst.DATABEAN_GET_VALUE));
		// 変更前eoID → お客様情報変更_更新確認サービス作業項目マップ01.変更前eoID
		parentMap.put("before_eoid", bean[0].sendMessageString("変更前ｅｏＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// eoID → お客様情報変更_更新確認サービス作業項目マップ01.eoID
		parentMap.put("eoid", bean[0].sendMessageString("ｅｏＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// 変更前企業識別コード → お客様情報変更_更新確認サービス作業項目マップ01.変更前企業識別コード
		parentMap.put("before_comp_skbt_cd", bean[0].sendMessageString("変更前企業識別コード", X31CWebConst.DATABEAN_GET_VALUE));
		
		String compCd = bean[0].sendMessageString("企業識別コード", X31CWebConst.DATABEAN_GET_VALUE);
		if (compCd != null && compCd.length() == 3)
		{
			compCd = "001" + compCd;
		}
		// 企業識別コード → お客様情報変更_更新確認サービス作業項目マップ01.企業識別コード
		parentMap.put("comp_skbt_cd", compCd);
		// お客様ステータス → お客様情報変更_更新確認サービス作業項目マップ01.お客様ステータス
		parentMap.put("cust_stat", bean[0].sendMessageString("お客様ステータス", X31CWebConst.DATABEAN_GET_VALUE));

		// 請求検索パターン
		parentMap.put("siky_search_ptn", getSearchPtn(bean[0]));
		
		outputMap.put("CKSV0008WORK01", parentMap);
						
		return outputMap;
	}
	
	/**
	 * 下りマッピング
	 * @param outputMap
	 * @return String
	 */
	@SuppressWarnings("unchecked")
	public String getCKSV000803SC(HashMap outputMap)
	{
		HashMap parentMap = null;
		String rtnVal = "";
		
		if (outputMap.containsKey("CKSV000803SC"))
		{
			parentMap = (HashMap)outputMap.get("CKSV000803SC");
		}
		
		ArrayList childList = null;
		if (parentMap.containsKey("ECK0011A010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("ECK0011A010CBSMsg1List");
			
			if (childList != null && childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				
				rtnVal = (String)childMap.get("member_sbt_cd");
			}
		}

		return rtnVal;
	}
	
	/**
	 * 下りマッピング
	 * @param outputMap
	 * @return String
	 */
	@SuppressWarnings("unchecked")
	public String getCKSV000804SC(HashMap outputMap)
	{
		HashMap parentMap = null;
		String rtnVal = null;
		
		if (outputMap.containsKey("CKSV000804SC"))
		{
			parentMap = (HashMap)outputMap.get("CKSV000804SC");
		}
		
		ArrayList childList = null;
		if (parentMap.containsKey("EZM0111B040CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EZM0111B040CBSMsg1List");
			
			if (childList != null && childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				
				// エイジング一覧照会（ユニーク）（ｅｏＩＤ）マップ.エイジング一覧照会明細.エイジングステータス
				rtnVal = (String)childMap.get("aging_stat");
			}
		}

		return rtnVal;
	}
	
	/**
	 * 下りマッピング
	 * @param outputMap
	 * @return String
	 */
	@SuppressWarnings("unchecked")
	public String getCKSV000805SC(HashMap outputMap)
	{
		HashMap parentMap = null;
		String rtnVal = null;
		
		if (outputMap.containsKey("CKSV000805SC"))
		{
			parentMap = (HashMap)outputMap.get("CKSV000805SC");
		}
		
		ArrayList childList = null;
		if (parentMap.containsKey("EZM0111B040CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EZM0111B040CBSMsg1List");
			
			if (childList != null && childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				
				// エイジング一覧照会（ユニーク）（ｅｏＩＤ）マップ.エイジング一覧照会明細.エイジングステータス
				rtnVal = (String)childMap.get("aging_stat");
			}
		}

		return rtnVal;
	}
	
	/**
	 * 下りマッピング
	 * @param outputMap
	 * @return String
	 */
	@SuppressWarnings("unchecked")
	public String getCKSV000810SC(HashMap outputMap)
	{
		HashMap parentMap = null;
		String rtnVal = null;
		
		if (outputMap.containsKey("CKSV000810SC"))
		{
			parentMap = (HashMap)outputMap.get("CKSV000810SC");
		}
		
		ArrayList childList = null;
		if (parentMap.containsKey("EZM0171A010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EZM0171A010CBSMsg1List");
			
			if (childList != null && childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				
				rtnVal = (String)childMap.get("cd_div_nm");
			}
		}

		return rtnVal;
	}
	
	/**
	 * 下りマッピング
	 * @param outputMap
	 * @param mlad
	 * @return boolean
	 */
	@SuppressWarnings("unchecked")
	public boolean getCKSV000811SC(HashMap outputMap, String mlad)
	{
		HashMap parentMap = null;
		boolean rtnVal = false;
		
		if (outputMap.containsKey("CKSV000811SC"))
		{
			parentMap = (HashMap)outputMap.get("CKSV000811SC");
		}
		
		ArrayList childList = null;
		if (parentMap.containsKey("EZM0161B010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EZM0161B010CBSMsg1List");
			
			if (childList != null && childList.size() > 0)
			{
				String domain = mlad.substring(mlad.indexOf("@"));
				
				for (int i = 0; i < childList.size(); i++)
				{
					HashMap childMap = (HashMap)childList.get(i);
					String ngWord = (String)childMap.get("ng_word");
					
					if (domain.equals(ngWord))
					{
						rtnVal = true;
					}
				}
			}
		}

		return rtnVal;
	}
	
	/**
	 * 下りマッピング
	 * @param outputMap
	 * @return String
	 */
	@SuppressWarnings("unchecked")
	public String getCKSV000812SC(HashMap outputMap)
	{
		HashMap parentMap = null;
		String rtnVal = null;
		
		if (outputMap.containsKey("CKSV000812SC"))
		{
			parentMap = (HashMap)outputMap.get("CKSV000812SC");
		}
		
		if (parentMap.containsKey("EZM0321A010CBSMsg1List"))
		{
			ArrayList childList = (ArrayList)parentMap.get("EZM0321A010CBSMsg1List");
			
			if (childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				
				// 業務パラメータ管理一意照会マップ.業務パラメータ設定値
				rtnVal = (String)childMap.get("work_param_sette_value");
			}
		}

		return rtnVal;
	}
	
	/**
	 * 変更前後の会員種別・契約者タイプから検索パターンを返却します。
	 * <br>
	 * @param bean 画面情報
	 * 
	 * @return String 検索パターン
	 * <br>
	 */
	private String getSearchPtn(X31SDataBeanAccess bean)
	{
		// 変更前
		String memberSbtBF = bean.sendMessageString(CKW00401SFConst.BEFORE_MEMBER_SBT, X31CWebConst.DATABEAN_GET_VALUE);
		String keishaTypeBF = bean.sendMessageString(CKW00401SFConst.BEFORE_KEISHA_TYPE, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 変更後
		String memberSbt = getCodeValueForComboBox(bean, CKW00401SFConst.MEMBER_SBT);
		String keishaType = getCodeValueForComboBox(bean, CKW00401SFConst.KEISHA_TYPE);

		// 会員種別変更なしの場合
		if (memberSbtBF.equals(memberSbt))
		{
			// 契約者タイプ変更ありの場合
			if (!keishaTypeBF.equals(keishaType))
			{
				// マスター会員（個人）の場合
				if (JCKCommonConst.CD00039_MASTER_KOJIN.equals(memberSbtBF))
				{
					return "1";
				}
				// マスター会員（法人）、非eo会員の場合
				else if (JCKCommonConst.CD00039_MASTER_HOJIN.equals(memberSbtBF) || JCKCommonConst.CD00039_NOT_EO_MMB.equals(memberSbtBF))
				{
					// 自社利用に変えた場合
					if (JCKCommonConst.CD00036_JISHA_USE.equals(keishaType))
					{
						return "2";
					}
					else
					{
						return "1";
					}
				}
			}
		}
		// 会員種別変更ありの場合
		else
		{
			// 変更前：マスター会員（個人）の場合
			if (JCKCommonConst.CD00039_MASTER_KOJIN.equals(memberSbtBF))
			{
				// 自社利用に変えた場合
				if (JCKCommonConst.CD00036_JISHA_USE.equals(keishaType))
				{
					return "2";
				}
				// 変更前：個人、法人に変えた場合
				else if (JCKCommonConst.CD00036_KOJIN.equals(keishaTypeBF) || JCKCommonConst.CD00036_HOJIN.equals(keishaType))
				{
					return "1";
				}
			}
			// 変更前：マスター会員（法人）の場合
			else if (JCKCommonConst.CD00039_MASTER_HOJIN.equals(memberSbtBF))
			{
				// 変更前：法人、自社利用の場合
				if (JCKCommonConst.CD00036_HOJIN.equals(keishaTypeBF) || JCKCommonConst.CD00036_JISHA_USE.equals(keishaTypeBF))
				{
					return "1";
				}
				// 個人に変えた場合
				else if (JCKCommonConst.CD00036_KOJIN.equals(keishaType))
				{
					return "1";
				}
			}
		}
		
		return "0";
	}
	
	/**
	 * ゴンボボックスから選択された名称のコード値を取得します。
	 * <br>
	 * @param bean 画面情報
	 * @param comboName コンボボックス名称
	 * 
	 * @return String 選択されているコード値
	 * <br>
	 */
	private String getCodeValueForComboBox(X31SDataBeanAccess bean, String comboName)
	{
		X31SDataBeanAccessArray list = bean.getDataBeanArray(comboName);
		X31SDataBeanAccess subBean = list.getDataBean(0);
		String selectIndex = subBean.sendMessageString(CKW00401SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_GET_VALUE);
		
		if (selectIndex == null || "".equals(selectIndex))
		{
			return "";
		}
		
		return subBean.sendMessageString(CKW00401SFConst.CD_DIV_CD_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(selectIndex));
	}
	
	/**
	 * 手動入力有無の値を取得します。
	 * <br>
	 * @param inputFlg 手動入力フラグ
	 * 
	 * @return String
	 * <br>
	 */
	private String getManInputFlg(boolean inputFlg)
	{
		if (inputFlg)
		{
			return "1";
		}
		
		return "0";
	}
	
	/**
	 * サービス契約回線内訳の更新有無をチェックします。
	 * <br>
	 * @param bean
	 * @param flg
	 * @param ymd
	 * 
	 * @return boolean チェック結果
	 */
	private boolean isSvcKeiKaisenUcwkCheck(X31SDataBeanAccess bean, String flg, String ymd)
	{
		boolean chgUmFlg = true;
		boolean kiboYmdFlg = true;
		String kiboYmd = bean.sendMessageString(CKW00401SFConst.BEFORE_KSHAD_CHG_KIBO_YMD, X31CWebConst.DATABEAN_GET_VALUE);
		
		if (flg.equals(bean.sendMessageString(CKW00401SFConst.BEFORE_KSHAD_CHG_UM, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			chgUmFlg = false;
		}
		
		if (kiboYmd == null)
		{
			if (ymd == null)
			{
				kiboYmdFlg = false;
			}
		}
		else
		{
			if (kiboYmd.equals(ymd))
			{
				kiboYmdFlg = false;
			}
		}
		
		if (chgUmFlg || kiboYmdFlg)
		{
			return true;
		}
		return false;
	}
	
	/**
	 * 会員種別、契約者タイプで法人扱いかチェックします。
	 * <br>
	 * @param mmbSbt 会員種別
	 * @param keishaType 契約者タイプ
	 * @param bean
	 * @return boolean チェック結果
	 */
	private boolean isHojinCheck(String mmbSbt, String keishaType, X31SDataBeanAccess bean)
	{
		// マスター会員（法人）の場合
		if ("20".equals(mmbSbt))
		{
			return true;
		}
		// 非eo会員で個人以外の場合
		else if (JCKCommonConst.CD00039_NOT_EO_MMB.equals(mmbSbt) && !JCKCommonConst.CD00036_KOJIN.equals(keishaType))
		{
			return true;
		}
		// オープン会員で法人又は、自社利用の場合
		else if (JCKCommonConst.CD00039_OPEN.equals(mmbSbt)
					&& (JCKCommonConst.CD00036_HOJIN.equals(keishaType) || JCKCommonConst.CD00036_JISHA_USE.equals(keishaType)))
		{
			return true;
		}
		// オープン会員で保守の場合
		else if (JCKCommonConst.CD00039_OPEN.equals(mmbSbt) && JCKCommonConst.CD00036_MNT.equals(keishaType))
		{
			if (bean.sendMessageBoolean("異動区分遷移フラグ", X31CWebConst.DATABEAN_GET_VALUE)
					|| bean.sendMessageBoolean("照査遷移フラグ", X31CWebConst.DATABEAN_GET_VALUE))
			{
				return true;
			}
		}
		return false;
	}
	
	/**
	 * 住所情報を設定します。
	 * <br>
	 * @param bean
	 * @param map
	 * @param flg
	 * 
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	private HashMap setAdInf(X31SDataBeanAccess bean, HashMap map, String flg)
	{
		String[] adInf = getAdInf(bean);
		String[] key = null;
		
		if ("1".equals(flg))
		{
			key = new String[]{"keisha_ad_cd",
								"keisha_pcd",
								"keisha_state_nm",
								"keisha_city_nm",
								"keisha_oaztsu_nm",
								"keisha_azcho_nm",
								"keisha_bnchigo",
								"keisha_adrttm",
								"keisha_adrrm"};
			map.put("keisha_ad_man_input_flg", adInf[9]);
		}
		else if ("2".equals(flg))
		{
			key = new String[]{"hjrrks_ad_cd",
								"hjrrks_pcd",
								"hjrrks_state_nm",
								"hjrrks_city_nm",
								"hjrrks_oaztsu_nm",
								"hjrrks_azcho_nm",
								"hjrrks_bnchigo",
								"hjrrks_adrttm",
								"hjrrks_adrrm"};
		}
		else if ("3".equals(flg))
		{
			key = new String[]{"ad_cd", "pcd", "state_nm", "city_nm", "oaztsu_nm", "azcho_nm", "bnchigo", "adrttm", "adrrm"};
		}
		
		map.put(key[0], adInf[0]);
		map.put(key[1], adInf[1]);
		map.put(key[2], adInf[2]);
		map.put(key[3], adInf[3]);
		map.put(key[4], adInf[4]);
		map.put(key[5], adInf[5]);
		map.put(key[6], adInf[6]);
		map.put(key[7], adInf[7]);
		map.put(key[8], adInf[8]);
		
		return map;
	}
	
	/**
	 * 住所情報を取得します。
	 * <br>
	 * @param bean
	 * 
	 * @return String[]
	 */
	private String[] getAdInf(X31SDataBeanAccess bean)
	{
		String[] adInf = new String[10];
		boolean screen = bean.sendMessageBoolean(CKW00401SFConst.ONSCREEN_COPY_BTN, X31CWebConst.DATABEAN_GET_VALUE);
		
		if (screen)
		{
			// 利用場所住所を転記
			adInf[0] = bean.sendMessageString("回線場所住所コード", X31CWebConst.DATABEAN_GET_VALUE);
			adInf[1] = bean.sendMessageString("回線場所郵便番号", X31CWebConst.DATABEAN_GET_VALUE);
			adInf[2] = bean.sendMessageString("回線場所都道府県名", X31CWebConst.DATABEAN_GET_VALUE);
			adInf[3] = bean.sendMessageString("回線場所市区町村名", X31CWebConst.DATABEAN_GET_VALUE);
			adInf[4] = bean.sendMessageString("回線場所大字通称名", X31CWebConst.DATABEAN_GET_VALUE);
			adInf[5] = bean.sendMessageString("回線場所字丁目名", X31CWebConst.DATABEAN_GET_VALUE);
			adInf[6] = bean.sendMessageString("回線場所番地号", X31CWebConst.DATABEAN_GET_VALUE);
			adInf[7] = bean.sendMessageString("回線場所住所補記・建物名", X31CWebConst.DATABEAN_GET_VALUE);
			adInf[8] = bean.sendMessageString("回線場所住所補記・部屋番号", X31CWebConst.DATABEAN_GET_VALUE);
			adInf[9] = "0";
		}
		else
		{
			// 契約者住所を転記
			adInf[0] = bean.sendMessageString("住所コード", X31CWebConst.DATABEAN_GET_VALUE);
			adInf[1] = bean.sendMessageString("郵便番号", X31CWebConst.DATABEAN_GET_VALUE);
			adInf[2] = bean.sendMessageString("都道府県", X31CWebConst.DATABEAN_GET_VALUE);
			adInf[3] = bean.sendMessageString("市区町村", X31CWebConst.DATABEAN_GET_VALUE);
			adInf[4] = bean.sendMessageString("大字通称", X31CWebConst.DATABEAN_GET_VALUE);
			adInf[5] = bean.sendMessageString("字丁目", X31CWebConst.DATABEAN_GET_VALUE);
			adInf[6] = bean.sendMessageString("番地・号", X31CWebConst.DATABEAN_GET_VALUE);
			adInf[7] = bean.sendMessageString("建物名", X31CWebConst.DATABEAN_GET_VALUE);
			adInf[8] = bean.sendMessageString("部屋番号", X31CWebConst.DATABEAN_GET_VALUE);
			adInf[9] = getManInputFlg(bean.sendMessageBoolean("手動入力", X31CWebConst.DATABEAN_GET_VALUE));
		}
		
		return adInf;
	}
	
	/**
	 * 変更前情報との差異チェックをします。
	 * <br>
	 * @param bean 画面情報
	 * @param cgbfKey 変更前項目キー
	 * @param cgafKey 変更後項目キー
	 * @return boolean チェック結果
	 */
	private boolean isCgbfToCgaf(X31SDataBeanAccess bean, String cgbfKey, String cgafKey)
	{
		String before = bean.sendMessageString(cgbfKey, X31CWebConst.DATABEAN_GET_VALUE);	// 変更前
		String after = bean.sendMessageString(cgafKey, X31CWebConst.DATABEAN_GET_VALUE);		// 変更後
		
		return isCgbfToCgaf(before, after);
	}
	
	/**
	 * 変更前情報との差異チェックをします。
	 * <br>
	 * @param strBf 変更前
	 * @param strAf 変更後
	 * @return boolean チェック結果
	 */
	private boolean isCgbfToCgaf(String strBf, String strAf)
	{
		if (strBf.equals(strAf))
		{
			return false;
		}
		
		return true;
	}
	
	/**
	 * 更新項目の変更有無をチェックします。
	 * <br>
	 * @param bean 画面情報
	 * @param ptnFlg チェックパターン（1:個人、2:法人）
	 * @return boolean チェック結果
	 */
	private boolean isUpdValueCheck(X31SDataBeanAccess bean, String ptnFlg)
	{
		ArrayList<String[]> valueLst = new ArrayList<String[]>();
		ArrayList<String[]> comboLst = new ArrayList<String[]>();
		
		// 受付済の場合
		if (JCKCommonConst.CUST_STAT_02.equals(bean.sendMessageString(CKW00401SFConst.CUST_STAT, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			return false;
		}
		
		// 住所コード、郵便番号、都道府県、市区町村、大字通称、字丁目、番地・号、建物名、部屋番号
		String[] adKey = {CKW00401SFConst.BEFORE_GEN_AD_CD,
							CKW00401SFConst.BEFORE_GEN_AD_PCD,
							CKW00401SFConst.BEFORE_GEN_ADRTTM,
							CKW00401SFConst.BEFORE_GEN_ADRRM,
							CKW00401SFConst.BEFORE_GEN_STATE_NM,
							CKW00401SFConst.BEFORE_GEN_CITY_NM,
							CKW00401SFConst.BEFORE_GEN_OAZTSU_NM,
							CKW00401SFConst.BEFORE_GEN_AZCHO_NM,
							CKW00401SFConst.BEFORE_GEN_BNCHIGO};
		String[] adInf = getAdInf(bean);
		
		for (int i = 0; i < adKey.length; i++)
		{
			String str = bean.sendMessageString(adKey[i], X31CWebConst.DATABEAN_GET_VALUE);
			
			if (!str.equals(adInf[i]))
			{
				return true;
			}
		}
		
		// 個人の場合
		if ("1".equals(ptnFlg))
		{
			// 親権者名、親権者名（カナ）、親権者生年月日、続柄（その他欄）、親権者住所コード、親権者郵便番号
			// 親権者都道府県、親権者市区町村、親権者大字通称、親権者字丁目、親権者番地・号、親権者建物名、親権者部屋番号、親権者電話番号
			valueLst.add(new String[]{CKW00401SFConst.BEFORE_SKSHA_NM, CKW00401SFConst.SKSHA_NM});
			valueLst.add(new String[]{CKW00401SFConst.BEFORE_SKSHA_KANA, CKW00401SFConst.SKSHA_KANA});
			valueLst.add(new String[]{CKW00401SFConst.BEFORE_SKSHA_BIRTHD, CKW00401SFConst.SKSHA_BIRTHD});
			valueLst.add(new String[]{CKW00401SFConst.BEFORE_SKSHA_ZOKUGARA_OTR, CKW00401SFConst.SKSHA_ZOKUGARA_OTR});
			valueLst.add(new String[]{CKW00401SFConst.BEFORE_SKSHA_AD_CD, CKW00401SFConst.SKSHA_AD_CD});
			valueLst.add(new String[]{CKW00401SFConst.BEFORE_SKSHA_AD_PCD, CKW00401SFConst.SKSHA_AD_PCD});
			valueLst.add(new String[]{CKW00401SFConst.BEFORE_SKSHA_ADRTTM, CKW00401SFConst.SKSHA_ADRTTM});
			valueLst.add(new String[]{CKW00401SFConst.BEFORE_SKSHA_ADRRM, CKW00401SFConst.SKSHA_ADRRM});
			valueLst.add(new String[]{CKW00401SFConst.BEFORE_SKSHA_TELNO, CKW00401SFConst.SKSHA_TELNO});
			valueLst.add(new String[]{CKW00401SFConst.BEFORE_SKSHA_STATE_NM, CKW00401SFConst.SKSHA_STATE_NM});
			valueLst.add(new String[]{CKW00401SFConst.BEFORE_SKSHA_CITY_NM, CKW00401SFConst.SKSHA_CITY_NM});
			valueLst.add(new String[]{CKW00401SFConst.BEFORE_SKSHA_OAZTSU_NM, CKW00401SFConst.SKSHA_OAZTSU_NM});
			valueLst.add(new String[]{CKW00401SFConst.BEFORE_SKSHA_AZCHO_NM, CKW00401SFConst.SKSHA_AZCHO_NM});
			valueLst.add(new String[]{CKW00401SFConst.BEFORE_SKSHA_BNCHIGO, CKW00401SFConst.SKSHA_BNCHIGO});
			// 勤務先名
			valueLst.add(new String[]{CKW00401SFConst.BEFORE_OFFC_NM, CKW00401SFConst.OFFC_NM});
			
			// 続柄
			comboLst.add(new String[]{CKW00401SFConst.BEFORE_SKSHA_ZOKUGARA_CD, CKW00401SFConst.SKSHA_ZOKUGARA_CD});
		}
		// 法人の場合
		else if ("2".equals(ptnFlg))
		{
			// 法人格種別（前後指定）、法人格種別
			comboLst.add(new String[]{CKW00401SFConst.BEFORE_HOJIN_ZENGO_STI, CKW00401SFConst.HOJIN_ZENGO_STI});
			comboLst.add(new String[]{CKW00401SFConst.BEFORE_HOJIN_SBT, CKW00401SFConst.HOJIN_SBT});
			
			// 代表者名、代表者名（カナ）、代表者役職
			valueLst.add(new String[]{CKW00401SFConst.BEFORE_DIHYSHA_NM, CKW00401SFConst.DIHYSHA_NM});
			valueLst.add(new String[]{CKW00401SFConst.BEFORE_DIHYSHA_KANA, CKW00401SFConst.DIHYSHA_KANA});
			valueLst.add(new String[]{CKW00401SFConst.BEFORE_DIHYSHA_POST, CKW00401SFConst.DIHYSHA_POST});
		}
		
		// 契約者名、契約者名（カナ）、性別、生年月日、電話番号、記事欄、ログイン認証、企業識別コード、連絡情報
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_KEISHA_NM, CKW00401SFConst.KEISHA_NM});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_KEISHA_NM_KANA, CKW00401SFConst.KEISHA_NM_KANA});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_CUST_SEX_CD, CKW00401SFConst.CUST_SEX_CD});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_CUST_BIRTHD, CKW00401SFConst.CUST_BIRTHD});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_GEN_TELNO, CKW00401SFConst.GEN_TELNO});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_COMP_SKBT_CD, CKW00401SFConst.COMP_SKBT_CD});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_RRK_INF, CKW00401SFConst.RRK_INF});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_KIJIRAN, CKW00401SFConst.KIJIRAN});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_LOGIN_NINSHO, CKW00401SFConst.LOGIN_NINSHO});
		
/* ++++++++++ v4.01.00 追加開始 ++++++++++ */
		// 送付先郵便番号、送付先都道府県、送付先市区町村、送付先大字通称、送付先字丁目、送付先番地・号、送付先建物名、送付先部屋番号
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_SEND_AD_PCD, CKW00401SFConst.SEND_AD_PCD});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_SEND_STATE_NM, CKW00401SFConst.SEND_STATE_NM});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_SEND_CITY_NM, CKW00401SFConst.SEND_CITY_NM});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_SEND_OAZTSU_NM, CKW00401SFConst.SEND_OAZTSU_NM});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_SEND_AZCHO_NM, CKW00401SFConst.SEND_AZCHO_NM});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_SEND_BNCHIGO, CKW00401SFConst.SEND_BNCHIGO});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_SEND_ADRTTM, CKW00401SFConst.SEND_ADRTTM});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_SEND_ADRRM, CKW00401SFConst.SEND_ADRRM});
/* ++++++++++ v4.01.00 追加終了 ++++++++++ */
		
		// 職業／業種、内販・外販情報、連絡条件
		comboLst.add(new String[]{CKW00401SFConst.BEFORE_JOB, CKW00401SFConst.JOB});
		comboLst.add(new String[]{CKW00401SFConst.BEFORE_NAIHAN_GAIHAN_INF, CKW00401SFConst.NAIHAN_GAIHAN_INF});
		comboLst.add(new String[]{CKW00401SFConst.BEFORE_RRK_JOKEN, CKW00401SFConst.RRK_JOKEN});
		
		// コンテンツお客様名、コンテンツお客様カナ名、コンテンツお客様性別コード、コンテンツお客様生年月日、コンテンツ住所コード
		// コンテンツ郵便番号、コンテンツ都道府県名、コンテンツ市区町村名、コンテンツ大字通称名、コンテンツ字丁目名、コンテンツ番地号
		// コンテンツ住所補記・建物名、コンテンツ住所補記・部屋番号
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_CONT_CUST_NM, CKW00401SFConst.CONT_CUST_NM});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_CONT_CUST_KANA, CKW00401SFConst.CONT_CUST_KANA});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_CONT_CUST_SEX_CD, CKW00401SFConst.CONT_CUST_SEX_CD});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_CONT_CUST_BIRTHD, CKW00401SFConst.CONT_CUST_BIRTHD});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_CONT_AD_CD, CKW00401SFConst.CONT_AD_CD});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_CONT_PCD, CKW00401SFConst.CONT_PCD});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_CONT_STATE_NM, CKW00401SFConst.CONT_STATE_NM});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_CONT_CITY_NM, CKW00401SFConst.CONT_CITY_NM});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_CONT_OAZTSU_NM, CKW00401SFConst.CONT_OAZTSU_NM});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_CONT_AZCHO_NM, CKW00401SFConst.CONT_AZCHO_NM});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_CONT_BNCHIGO, CKW00401SFConst.CONT_BNCHIGO});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_CONT_ADRTTM, CKW00401SFConst.CONT_ADRTTM});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_CONT_ADRRM, CKW00401SFConst.CONT_ADRRM});
		
		// 勤務先電話番号、内線番号、メールアドレス、携帯電話、コンテンツ電話番号、コンテンツメールアドレス
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_OFFC_TELNO, CKW00401SFConst.OFFC_TELNO});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_OFFC_NISNNO, CKW00401SFConst.OFFC_NISNNO});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_GEN_MLAD, CKW00401SFConst.GEN_MLAD});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_RRKS_KTAI_TELNO, CKW00401SFConst.RRKS_KTAI_TELNO});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_CONT_TELNO, CKW00401SFConst.CONT_TELNO});
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_CONT_MLAD, CKW00401SFConst.REFERENCE_CONT_MLAD});
		
		for (int i = 0; i < valueLst.size(); i++)
		{
			String[] keyList = valueLst.get(i);
			
			if (isCgbfToCgaf(bean, keyList[0], keyList[1]))
			{
				return true;
			}
		}
		
		for (int i = 0; i < comboLst.size(); i++)
		{
			String[] keyList = comboLst.get(i);
			String comboCd = getCodeValueForComboBox(bean, keyList[1]);
			String str = bean.sendMessageString(keyList[0], X31CWebConst.DATABEAN_GET_VALUE);
			
			if (!comboCd.equals(str))
			{
				return true;
			}
		}
		
		return false;
	}

	// ANK-2189-00-00 ADD START
	/**
	 * 関電個人情報提供の更新項目の変更有無をチェックします。
	 * <br>
	 * @param bean 画面情報
	 * @return boolean チェック結果
	 */
	private boolean isUpdValueCheck_Kanden(X31SDataBeanAccess bean)
	{
		ArrayList<String[]> valueLst = new ArrayList<String[]>();
		ArrayList<String[]> comboLst = new ArrayList<String[]>();
		
		// 関電G個人情報取扱同意有無
		comboLst.add(new String[]{CKW00401SFConst.BEFORE_KEPG_KJNIF_TRAT_DOI_UM, CKW00401SFConst.KEPG_KJNIF_TRAT_DOI_UM});

		// 関電G個人情報取扱同意年月日
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_KEPG_KJNIF_TRAT_DOI_YMD, CKW00401SFConst.REFERENCE_KEPG_KJNIF_TRAT_DOI_YMD});

		// 関電G個人情報提供不可フラグ
		comboLst.add(new String[]{CKW00401SFConst.BEFORE_KEPG_KJNIFT_FFG, CKW00401SFConst.KEPG_KJNIFT_FFG});

		// 関電G個人情報提供不可フラグ変更年月日
		valueLst.add(new String[]{CKW00401SFConst.BEFORE_KEPG_KJNIFT_FFG_CHG_YMD, CKW00401SFConst.REFERENCE_KEPG_KJNIFT_FFG_CHG_YMD});

		// 関電G個人情報提供不可フラグ変更受付方法コード
		comboLst.add(new String[]{CKW00401SFConst.BEFORE_KEPG_KJNIFT_FFG_CHG_UWY_CD, CKW00401SFConst.KEPG_KJNIFT_FFG_CHG_UWY_CD});
		
		for (int i = 0; i < valueLst.size(); i++)
		{
			String[] keyList = valueLst.get(i);
			
			if (isCgbfToCgaf(bean, keyList[0], keyList[1]))
			{
				return true;
			}
		}
		
		for (int i = 0; i < comboLst.size(); i++)
		{
			String[] keyList = comboLst.get(i);
			String comboCd = getCodeValueForComboBox(bean, keyList[1]);
			String str = bean.sendMessageString(keyList[0], X31CWebConst.DATABEAN_GET_VALUE);
			
			if (!comboCd.equals(str))
			{
				return true;
			}
		}
		
		return false;
	}
	// ANK-2189-00-00 ADD END
	
// OM-2014-0003841 ADD START
	/**
	 * 通知書一覧照会（SYSID）の上りマッピング
	 * @param bean データBean
	 * @param outputMap 設定先マップ
	 * @param func_code 機能コード
	 */
	public void setCKSV000813SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// SYSID
		X31SDataBeanAccess subbean = bean[0].getDataBeanArray(CKW00401SFConst.CUST_KEI_HKTGI_LIST).getDataBean(0);
		parentMap.put("key_sysid", subbean.sendMessageString(CKW00401SFConst.SYSID_05, X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("CKSV000813SC", parentMap);
	}
	
	/**
	 * 通知書一覧照会（SYSID）の結果から未通知の通知書が存在するか判定する。
	 * @param bean データBean
	 * @param outputMap 通知書一覧照会（SYSID）明細が格納されたマップ
	 * @return true ：未通知が存在する場合<br>
	 *          false：未通知が存在しない場合
	 */
	@SuppressWarnings("unchecked")
	public boolean isMitch(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{
		// 契約者名と変更前契約者名に変更がない場合、falseを返却する。
		String keishaNm = bean.sendMessageString(CKW00401SFConst.KEISHA_NM, X31CWebConst.DATABEAN_GET_VALUE);
		String beforeKeishaNm = bean.sendMessageString(CKW00401SFConst.BEFORE_KEISHA_NM, X31CWebConst.DATABEAN_GET_VALUE);
		
		if(keishaNm.equals(beforeKeishaNm))
		{
			return false;
		}
		
		// 通知書一覧照会（SYSID）明細が取得できない場合、falseを返却する。
		HashMap<String, Object> parentMap = (HashMap<String, Object>)outputMap.get("CKSV000813SC");
		
		if(null == parentMap)
		{
			return false;
		}
		
		ArrayList<HashMap<String, String>> msg1List = (ArrayList<HashMap<String, String>>)parentMap.get("EKK0561B002CBSMsg1List");
		
		if(null == msg1List)
		{
			return false;
		}
		
		String tchishoHakkoCd = null;	// 通知書発行コード
		String tchishoStat = null;		// 通知書ステータス
		for(HashMap<String, String> mp : msg1List)
		{
			// 通知書発行コードが送信対象外の場合、次のレコードを処理する。
			tchishoHakkoCd = mp.get("tchisho_hakko_cd");
			if(JCKStrConst.CD00213_SND_TGG.equals(tchishoHakkoCd))
			{
				continue;
			}
			
			// 通知書ステータスが未通知の場合、trueを返却する。
			tchishoStat = mp.get("tchisho_stat");
			if(JCKStrConst.CD00064_UK_ZM.equals(tchishoStat))
			{
				return true;
			}
		}
		
		// 未通知なしの場合、falseを返却する。
		return false;
	}
// OM-2014-0003841 ADD END
}
