/*********************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：KKSV1038_KKSV1038OPDBMapper
 *	ソースファイル名：KKSV1038_KKSV1038OPDBMapper.java
 *	作成者			：FJ
 *	日付			：2024年10月07日
 *＜機能概要＞
 *	BP（NTT卸ネット電話情報更新）へのＤ−Ｂマッピングクラスです。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v73.00.00	2024/10/07	FJ			新規作成
 *	v75.00.00   2025/03/04    GDC)J.Tagongtong   「ANK-4640-00-00」typeN：追加要件対応
 **********************************************************************/
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.JKKStrConst;
import eo.common.util.JKKStringUtil;
import eo.web.webview.KKW00858SF.KKW00858SFConst;
import eo.web.webview.common.JKKCommonConst;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class KKSV1038_KKSV1038OPDBMapper {

	/**
	 * コンストラクタ
	 */
	public KKSV1038_KKSV1038OPDBMapper(){
	}
	
	/** サブオプションサービス判定用 */
	private static final String TELNO_TCHI = "1";
	private static final String HASINSHA_NO_DSP = "2";
	private static final String HITCHI_INCMHI = "3";
	private static final String KOKUSAI_TEL_STP = "4";
	
	/** 処理区分 登録 */
	private static final String SHORI_DIV_ADD = "1";
	/** 処理区分 変更 */
	private static final String SHORI_DIV_CHG = "3";
	/** 処理区分 解約 */
	private static final String SHORI_DIV_DSL = "4";
	/** 処理区分 オプション予約取消 */
	private static final String SHORI_DIV_OP_RSV_CL = "5";
	/** 処理区分 サブオプション予約取消 */
	private static final String SHORI_DIV_SBOP_RSV_CL = "6";


	/**
	 * 上りマッピング
	 * @param bean　[0]：
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV103801CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String tran_div, String clSbop) {

		if(bean == null){
			return null;
		}

		if(bean.length != 1){
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_cd", func_code);

		// 処理区分 → NTT卸ネット電話情報操作CCマップ.処理区分
		parentMap.put("shori_div", tran_div);

		// SYSID → NTT卸ネット電話情報操作CCマップ.SYSID
		parentMap.put("sysid", bean[0].sendMessageString(KKW00858SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE));

		// サービス契約番号 → NTT卸ネット電話情報操作CCマップ.サービス契約番号
		parentMap.put("svc_kei_no", bean[0].sendMessageString(KKW00858SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

		// 異動区分 → NTT卸ネット電話情報操作CCマップ.異動区分
		parentMap.put("ido_div", bean[0].sendMessageString(KKW00858SFConst.IDO_DIV, X31CWebConst.DATABEAN_GET_VALUE));

		// 最終更新年月日時分秒 → NTT卸ネット電話情報操作CCマップ.更新年月日時分秒(更新前)
		parentMap.put("upd_dtm_bf", bean[0].sendMessageString(KKW00858SFConst.LAST_UPD_DTM, X31CWebConst.DATABEAN_GET_VALUE));

		if(!SHORI_DIV_ADD.equals(tran_div))
		{
			// オプションサービス契約番号 → NTT卸ネット電話情報操作CCマップ.オプションサービス契約番号
			parentMap.put("op_svc_kei_no", bean[0].sendMessageString(KKW00858SFConst.OP_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		}

		if(SHORI_DIV_DSL.equals(tran_div))
		{
			// サービス終了年月日 → NTT卸ネット電話情報操作CCマップ.利用終了日
			parentMap.put("use_endymd", bean[0].sendMessageString(KKW00858SFConst.SVC_ENDYMD, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 進捗特記事項1 → NTT卸ネット電話情報操作CCマップ.進捗特記事項1
		parentMap.put("prg_tkjk_1", bean[0].sendMessageString(KKW00858SFConst.PRG_TKJK_1, X31CWebConst.DATABEAN_GET_VALUE));

		// 異動理由明細
		X31SDataBeanAccessArray arraybean = bean[0].getDataBeanArray(KKW00858SFConst.IDO_RSN_CD_LIST);
		ArrayList list = new ArrayList();
		if (parentMap.containsKey("EKK1091D010CBSMsg1List"))
		{
			list = (ArrayList)parentMap.get("EKK1091D010CBSMsg1List");
		}
		if (arraybean != null && arraybean.getCount() > 0)
		{
			for (int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				HashMap childMap = new HashMap();
				if (list.size() -1 >= i)
				{
					childMap = (HashMap)list.get(i);
				}

				// 異動理由明細.異動理由コード → NTT卸ネット電話情報操作CCマップ.異動理由明細.異動理由コード
				if (subbean != null)
				{
					childMap.put("ido_rsn_cd", subbean.sendMessageString(KKW00858SFConst.IDO_RSN_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
				}

				// 異動理由明細.異動理由メモ → NTT卸ネット電話情報操作CCマップ.異動理由明細.異動理由メモ
				if (subbean != null)
				{
					childMap.put("ido_rsn_memo", subbean.sendMessageString(KKW00858SFConst.IDO_RSN_MEMO_02, X31CWebConst.DATABEAN_GET_VALUE));
				}

				list.add(childMap);
			}
		}
		parentMap.put("EKK1091D010CBSMsg1List", list);

		// 登録用情報リスト
		if(SHORI_DIV_ADD.equals(tran_div))
		{
			ArrayList<HashMap<String, Object>> addInfoList = new ArrayList<HashMap<String, Object>>();
			HashMap<String, Object> addInfoMap = new HashMap<String, Object>();

			// typeN電話番号 → NTT卸ネット電話情報操作CCマップ.登録用情報リスト.typeN電話番号
			addInfoMap.put("typen_telno", bean[0].sendMessageString(KKW00858SFConst.TYPEN_TELNO, X31CWebConst.DATABEAN_GET_VALUE));

			// 番ポ種別 → NTT卸ネット電話情報操作CCマップ.登録用情報リスト.typeN番ポ種別
			addInfoMap.put("typen_bmp_sbt", bean[0].sendMessageString(KKW00858SFConst.BMP_SBT, X31CWebConst.DATABEAN_GET_VALUE));

			// typeN契約者名 → NTT卸ネット電話情報操作CCマップ.登録用情報リスト.typeN契約者名
			addInfoMap.put("typen_keisha_nm", bean[0].sendMessageString(KKW00858SFConst.TYPEN_KEISHA_NM, X31CWebConst.DATABEAN_GET_VALUE));

			// typeN住所コード → NTT卸ネット電話情報操作CCマップ.登録用情報リスト.typeN住所コード
			addInfoMap.put("typen_ad_cd", bean[0].sendMessageString(KKW00858SFConst.TYPEN_AD_CD1, X31CWebConst.DATABEAN_GET_VALUE)
											+ bean[0].sendMessageString(KKW00858SFConst.TYPEN_AD_CD2, X31CWebConst.DATABEAN_GET_VALUE)
											+ bean[0].sendMessageString(KKW00858SFConst.TYPEN_AD_CD3, X31CWebConst.DATABEAN_GET_VALUE)
											+ bean[0].sendMessageString(KKW00858SFConst.TYPEN_AD_CD4, X31CWebConst.DATABEAN_GET_VALUE));

			// typeN郵便番号 → NTT卸ネット電話情報操作CCマップ.登録用情報リスト.typeN郵便番号
			addInfoMap.put("typen_pcd", bean[0].sendMessageString(KKW00858SFConst.TYPEN_PCD_BF, X31CWebConst.DATABEAN_GET_VALUE)
				+ bean[0].sendMessageString(KKW00858SFConst.TYPEN_PCD_AF, X31CWebConst.DATABEAN_GET_VALUE));

			// typeN都道府県名 → NTT卸ネット電話情報操作CCマップ.登録用情報リスト.typeN都道府県名
			addInfoMap.put("typen_state_nm", bean[0].sendMessageString(KKW00858SFConst.TYPEN_STATE_NM, X31CWebConst.DATABEAN_GET_VALUE));

			// typeN市区町村名 → NTT卸ネット電話情報操作CCマップ.登録用情報リスト.typeN市区町村名
			addInfoMap.put("typen_city_nm", bean[0].sendMessageString(KKW00858SFConst.TYPEN_CITY_NM, X31CWebConst.DATABEAN_GET_VALUE));

			// typeN大字通称名 → NTT卸ネット電話情報操作CCマップ.登録用情報リスト.typeN大字通称名
			addInfoMap.put("typen_oaztsu_nm", bean[0].sendMessageString(KKW00858SFConst.TYPEN_OAZTSU_NM, X31CWebConst.DATABEAN_GET_VALUE));

			// typeN字丁目名 → NTT卸ネット電話情報操作CCマップ.登録用情報リスト.typeN字丁目名
			addInfoMap.put("typen_azcho_nm", bean[0].sendMessageString(KKW00858SFConst.TYPEN_AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE));

			// typeN番地号 → NTT卸ネット電話情報操作CCマップ.登録用情報リスト.typeN番地号
			addInfoMap.put("typen_bnchigo", bean[0].sendMessageString(KKW00858SFConst.TYPEN_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE));

			// typeN住所補記・建物名 → NTT卸ネット電話情報操作CCマップ.登録用情報リスト.typeN住所補記・建物名
			addInfoMap.put("typen_adrttm", bean[0].sendMessageString(KKW00858SFConst.TYPEN_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE));

			// typeN住所補記・部屋番号 → NTT卸ネット電話情報操作CCマップ.登録用情報リスト.typeN住所補記・部屋番号
			addInfoMap.put("typen_adrrm", bean[0].sendMessageString(KKW00858SFConst.TYPEN_ADRRM, X31CWebConst.DATABEAN_GET_VALUE));

			// typeN住所手動入力フラグ → NTT卸ネット電話情報操作CCマップ.登録用情報リスト.typeN住所手動入力フラグ
			Boolean typenAdManInputFlg = bean[0].sendMessageBoolean(KKW00858SFConst.TYPEN_AD_MAN_INPUT_FLG, X31CWebConst.DATABEAN_GET_VALUE);
			if(typenAdManInputFlg == true)
			{
				addInfoMap.put("typen_ad_man_input_flg", JKKCommonConst.FLG_ON);
			}
			else if(typenAdManInputFlg == false)
			{
				addInfoMap.put("typen_ad_man_input_flg", JKKCommonConst.FLG_OFF);
			}

			// 電話加入権取扱コード → NTT卸ネット電話情報操作CCマップ.登録用情報リスト.typeN電話加入権取扱コード
			addInfoMap.put("typen_tel_knkn_trat_cd", bean[0].sendMessageString(KKW00858SFConst.TEL_KNKN_TRAT_CD, X31CWebConst.DATABEAN_GET_VALUE));

			// typeN電話番号種別コード → NTT卸ネット電話情報操作CCマップ.登録用情報リスト.typeN電話番号種別コード
			addInfoMap.put("typen_telno_sbt_cd", "");
			
			// ANK-4640-00-00 ADD START
			// 通信事業者コード → NTT卸ネット電話情報操作CCマップ.登録用情報リスト.通信事業者コード
			addInfoMap.put("typen_tsjgs_cd", bean[0].sendMessageString(KKW00858SFConst.TSJGS_CD, X31CWebConst.DATABEAN_GET_VALUE));
			// ANK-4640-00-00 ADD END

			// 利用開始日 → NTT卸ネット電話情報操作CCマップ.登録用情報リスト.利用開始日
			addInfoMap.put("use_staymd", bean[0].sendMessageString(KKW00858SFConst.SVC_STAYMD, X31CWebConst.DATABEAN_GET_VALUE));

			// 電話番号通知申込有無 → NTT卸ネット電話情報操作CCマップ.登録用情報リスト.電話番号通知申込有無
			Boolean telnoTchiMskmUm = bean[0].sendMessageBoolean(KKW00858SFConst.TELNO_TCHI_MSKM_UM, X31CWebConst.DATABEAN_GET_VALUE);
			if(telnoTchiMskmUm == true)
			{
				addInfoMap.put("telno_tchi_mskm_um", JKKCommonConst.UM_U);
			}
			else if(telnoTchiMskmUm == false)
			{
				addInfoMap.put("telno_tchi_mskm_um", JKKCommonConst.UM_M);
			}

			// 発信者番号表示申込有無 → NTT卸ネット電話情報操作CCマップ.登録用情報リスト.発信者番号表示申込有無
			Boolean hasinshaNoDspMskmUm = bean[0].sendMessageBoolean(KKW00858SFConst.HASINSHA_NO_DSP_MSKM_UM, X31CWebConst.DATABEAN_GET_VALUE);
			if(hasinshaNoDspMskmUm == true)
			{
				addInfoMap.put("hasinsha_no_dsp_mskm_um", JKKCommonConst.UM_U);
			}
			else if(hasinshaNoDspMskmUm == false)
			{
				addInfoMap.put("hasinsha_no_dsp_mskm_um", JKKCommonConst.UM_M);
			}

			// 非通知着信拒否申込有無 → NTT卸ネット電話情報操作CCマップ.登録用情報リスト.非通知着信拒否申込有無
			Boolean hitchiIncmhiMskmUm = bean[0].sendMessageBoolean(KKW00858SFConst.HITCHI_INCMHI_MSKM_UM, X31CWebConst.DATABEAN_GET_VALUE);
			if(hitchiIncmhiMskmUm == true)
			{
				addInfoMap.put("hitchi_incmhi_mskm_um", JKKCommonConst.UM_U);
			}
			else if(hitchiIncmhiMskmUm == false)
			{
				addInfoMap.put("hitchi_incmhi_mskm_um", JKKCommonConst.UM_M);
			}

			// 国際電話利用抑止申込有無 → NTT卸ネット電話情報操作CCマップ.登録用情報リスト.国際電話利用抑止申込有無
			Boolean kokusaiTelStpMskmUm = bean[0].sendMessageBoolean(KKW00858SFConst.KOKUSAI_TEL_STP_MSKM_UM, X31CWebConst.DATABEAN_GET_VALUE);
			if(kokusaiTelStpMskmUm == true)
			{
				addInfoMap.put("kokusai_tel_stp_mskm_um", JKKCommonConst.UM_U);
			}
			else if(kokusaiTelStpMskmUm == false)
			{
				addInfoMap.put("kokusai_tel_stp_mskm_um", JKKCommonConst.UM_M);
			}
			
			// ANK-4640-00-00 ADD START
			// 事務手数料有無 → NTT卸ネット電話情報操作CCマップ.登録用情報リスト.事務手数料有無
			addInfoMap.put("jmte_um", bean[0].sendMessageString(KKW00858SFConst.JMTE_UM, X31CWebConst.DATABEAN_GET_VALUE));
			// ANK-4640-00-00 ADD END

			addInfoList.add(addInfoMap);

			parentMap.put("add_info_list", addInfoList);
		}

		// 変更用情報リスト
		if(SHORI_DIV_CHG.equals(tran_div))
		{
			ArrayList<HashMap<String, Object>> chgInfoList = new ArrayList<HashMap<String, Object>>();
			HashMap<String, Object> chgInfoMap = new HashMap<String, Object>();

			// typeN電話番号 → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.typeN電話番号
			chgInfoMap.put("typen_telno", bean[0].sendMessageString(KKW00858SFConst.TYPEN_TELNO, X31CWebConst.DATABEAN_GET_VALUE));

			// 番ポ種別 → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.typeN番ポ種別
			chgInfoMap.put("typen_bmp_sbt", bean[0].sendMessageString(KKW00858SFConst.BMP_SBT, X31CWebConst.DATABEAN_GET_VALUE));

			// typeN契約者名 → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.typeN契約者名
			chgInfoMap.put("typen_keisha_nm", bean[0].sendMessageString(KKW00858SFConst.TYPEN_KEISHA_NM, X31CWebConst.DATABEAN_GET_VALUE));

			// typeN住所コード → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.typeN住所コード
			chgInfoMap.put("typen_ad_cd", bean[0].sendMessageString(KKW00858SFConst.TYPEN_AD_CD1, X31CWebConst.DATABEAN_GET_VALUE)
											+ bean[0].sendMessageString(KKW00858SFConst.TYPEN_AD_CD2, X31CWebConst.DATABEAN_GET_VALUE)
											+ bean[0].sendMessageString(KKW00858SFConst.TYPEN_AD_CD3, X31CWebConst.DATABEAN_GET_VALUE)
											+ bean[0].sendMessageString(KKW00858SFConst.TYPEN_AD_CD4, X31CWebConst.DATABEAN_GET_VALUE));

			// typeN郵便番号 → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.typeN郵便番号
			chgInfoMap.put("typen_pcd", bean[0].sendMessageString(KKW00858SFConst.TYPEN_PCD_BF, X31CWebConst.DATABEAN_GET_VALUE)
				+ bean[0].sendMessageString(KKW00858SFConst.TYPEN_PCD_AF, X31CWebConst.DATABEAN_GET_VALUE));

			// typeN都道府県名 → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.typeN都道府県名
			chgInfoMap.put("typen_state_nm", bean[0].sendMessageString(KKW00858SFConst.TYPEN_STATE_NM, X31CWebConst.DATABEAN_GET_VALUE));

			// typeN市区町村名 → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.typeN市区町村名
			chgInfoMap.put("typen_city_nm", bean[0].sendMessageString(KKW00858SFConst.TYPEN_CITY_NM, X31CWebConst.DATABEAN_GET_VALUE));

			// typeN大字通称名 → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.typeN大字通称名
			chgInfoMap.put("typen_oaztsu_nm", bean[0].sendMessageString(KKW00858SFConst.TYPEN_OAZTSU_NM, X31CWebConst.DATABEAN_GET_VALUE));

			// typeN字丁目名 → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.typeN字丁目名
			chgInfoMap.put("typen_azcho_nm", bean[0].sendMessageString(KKW00858SFConst.TYPEN_AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE));

			// typeN番地号 → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.typeN番地号
			chgInfoMap.put("typen_bnchigo", bean[0].sendMessageString(KKW00858SFConst.TYPEN_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE));

			// typeN住所補記・建物名 → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.typeN住所補記・建物名
			chgInfoMap.put("typen_adrttm", bean[0].sendMessageString(KKW00858SFConst.TYPEN_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE));

			// typeN住所補記・部屋番号 → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.typeN住所補記・部屋番号
			chgInfoMap.put("typen_adrrm", bean[0].sendMessageString(KKW00858SFConst.TYPEN_ADRRM, X31CWebConst.DATABEAN_GET_VALUE));

			// typeN住所手動入力フラグ → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.typeN住所手動入力フラグ
			Boolean typenAdManInputFlg = bean[0].sendMessageBoolean(KKW00858SFConst.TYPEN_AD_MAN_INPUT_FLG, X31CWebConst.DATABEAN_GET_VALUE);
			if(typenAdManInputFlg == true)
			{
				chgInfoMap.put("typen_ad_man_input_flg", JKKCommonConst.FLG_ON);
			}
			else if(typenAdManInputFlg == false)
			{
				chgInfoMap.put("typen_ad_man_input_flg", JKKCommonConst.FLG_OFF);
			}

			// 電話加入権取扱コード → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.typeN電話加入権取扱コード
			chgInfoMap.put("typen_tel_knkn_trat_cd", bean[0].sendMessageString(KKW00858SFConst.TEL_KNKN_TRAT_CD, X31CWebConst.DATABEAN_GET_VALUE));

			// typeN電話番号種別コード → NTT卸ネット電話情報操作CCマップ.登録用情報リスト.typeN電話番号種別コード
			chgInfoMap.put("typen_telno_sbt_cd", bean[0].sendMessageString(KKW00858SFConst.TYPEN_TELNO_SBT_CD, X31CWebConst.DATABEAN_GET_VALUE));
			
			// ANK-4640-00-00 ADD START
			// 通信事業者コード → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.通信事業者コード
			chgInfoMap.put("typen_tsjgs_cd", bean[0].sendMessageString(KKW00858SFConst.TSJGS_CD, X31CWebConst.DATABEAN_GET_VALUE));
			// ANK-4640-00-00 ADD END

			// 利用開始日 → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.利用開始日
			chgInfoMap.put("use_staymd", bean[0].sendMessageString(KKW00858SFConst.SVC_STAYMD, X31CWebConst.DATABEAN_GET_VALUE));

			// 電話番号通知契約番号 → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.電話番号通知契約番号
			chgInfoMap.put("telno_tchi_kei_no", bean[0].sendMessageString(KKW00858SFConst.TELNO_TCHI_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

			// 電話番号通知申込有無 → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.電話番号通知申込有無
			Boolean telnoTchiMskmUm = bean[0].sendMessageBoolean(KKW00858SFConst.TELNO_TCHI_MSKM_UM, X31CWebConst.DATABEAN_GET_VALUE);
			if(telnoTchiMskmUm == true)
			{
				chgInfoMap.put("telno_tchi_mskm_um", JKKCommonConst.UM_U);
			}
			else if(telnoTchiMskmUm == false)
			{
				chgInfoMap.put("telno_tchi_mskm_um", JKKCommonConst.UM_M);
			}

			// 電話番号通知利用終了日 → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.電話番号通知利用終了日
			chgInfoMap.put("telno_tchi_use_endymd", bean[0].sendMessageString(KKW00858SFConst.TELNO_TCHI_USE_ENDRSVYMD, X31CWebConst.DATABEAN_GET_VALUE));

			// 発信者番号表示契約番号 → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.発信者番号表示契約番号
			chgInfoMap.put("hasinsha_no_dsp_kei_no", bean[0].sendMessageString(KKW00858SFConst.HASINSHA_NO_DSP_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

			// 発信者番号表示申込有無 → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.発信者番号表示申込有無
			Boolean hasinshaNoDspMskmUm = bean[0].sendMessageBoolean(KKW00858SFConst.HASINSHA_NO_DSP_MSKM_UM, X31CWebConst.DATABEAN_GET_VALUE);
			if(hasinshaNoDspMskmUm == true)
			{
				chgInfoMap.put("hasinsha_no_dsp_mskm_um", JKKCommonConst.UM_U);
			}
			else if(hasinshaNoDspMskmUm == false)
			{
				chgInfoMap.put("hasinsha_no_dsp_mskm_um", JKKCommonConst.UM_M);
			}

			// 発信者番号表示利用終了日 → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.発信者番号表示利用終了日
			chgInfoMap.put("hasinsha_no_dsp_use_endymd", bean[0].sendMessageString(KKW00858SFConst.HASINSHA_NO_DSP_USE_ENDRSVYMD, X31CWebConst.DATABEAN_GET_VALUE));

			// 非通知着信拒否契約番号 → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.非通知着信拒否契約番号
			chgInfoMap.put("hitchi_incmhi_kei_no", bean[0].sendMessageString(KKW00858SFConst.HITCHI_INCMHI_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

			// 非通知着信拒否申込有無 → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.非通知着信拒否申込有無
			Boolean hitchiIncmhiMskmUm = bean[0].sendMessageBoolean(KKW00858SFConst.HITCHI_INCMHI_MSKM_UM, X31CWebConst.DATABEAN_GET_VALUE);
			if(hitchiIncmhiMskmUm == true)
			{
				chgInfoMap.put("hitchi_incmhi_mskm_um", JKKCommonConst.UM_U);
			}
			else if(hitchiIncmhiMskmUm == false)
			{
				chgInfoMap.put("hitchi_incmhi_mskm_um", JKKCommonConst.UM_M);
			}

			// 非通知着信拒否利用終了日 → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.非通知着信拒否利用終了日
			chgInfoMap.put("hitchi_incmhi_use_endymd", bean[0].sendMessageString(KKW00858SFConst.HITCHI_INCMHI_USE_ENDRSVYMD, X31CWebConst.DATABEAN_GET_VALUE));

			// 国際電話利用抑止契約番号 → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.国際電話利用抑止契約番号
			chgInfoMap.put("kokusai_tel_stp_kei_no", bean[0].sendMessageString(KKW00858SFConst.KOKUSAI_TEL_STP_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

			// 国際電話利用抑止申込有無 → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.国際電話利用抑止申込有無
			Boolean kokusaiTelStpMskmUm = bean[0].sendMessageBoolean(KKW00858SFConst.KOKUSAI_TEL_STP_MSKM_UM, X31CWebConst.DATABEAN_GET_VALUE);
			if(kokusaiTelStpMskmUm == true)
			{
				chgInfoMap.put("kokusai_tel_stp_mskm_um", JKKCommonConst.UM_U);
			}
			else if(kokusaiTelStpMskmUm == false)
			{
				chgInfoMap.put("kokusai_tel_stp_mskm_um", JKKCommonConst.UM_M);
			}

			// 国際電話利用抑止利用終了日 → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.国際電話利用抑止利用終了日
			chgInfoMap.put("kokusai_tel_stp_use_endymd", bean[0].sendMessageString(KKW00858SFConst.KOKUSAI_TEL_STP_USE_ENDRSVYMD, X31CWebConst.DATABEAN_GET_VALUE));
			
			// ANK-4640-00-00 ADD START
			// 事務手数料有無 → NTT卸ネット電話情報操作CCマップ.変更用情報リスト.事務手数料有無
			chgInfoMap.put("jmte_um", bean[0].sendMessageString(KKW00858SFConst.JMTE_UM, X31CWebConst.DATABEAN_GET_VALUE));
			// ANK-4640-00-00 ADD END

			chgInfoList.add(chgInfoMap);

			parentMap.put("chg_info_list", chgInfoList);
		}

		// サブオプション予約取消用リスト
		if(SHORI_DIV_SBOP_RSV_CL.equals(tran_div))
		{
			ArrayList<HashMap<String, Object>> sbopRsvClList = new ArrayList<HashMap<String, Object>>();
			HashMap<String, Object> sbopRsvClMap = new HashMap<String, Object>();
			if(TELNO_TCHI.equals(clSbop))
			{
				// 電話番号通知契約番号 → NTT卸ネット電話情報操作CCマップ.サブオプション予約取消用リスト.サブオプションサービス契約番号
				sbopRsvClMap.put("sbop_svc_kei_no", bean[0].sendMessageString(KKW00858SFConst.TELNO_TCHI_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
				sbopRsvClList.add(sbopRsvClMap);
			}
			else if(HASINSHA_NO_DSP.equals(clSbop))
			{
				// 発信者番号表示契約番号 → NTT卸ネット電話情報操作CCマップ.サブオプション予約取消用リスト.サブオプションサービス契約番号
				sbopRsvClMap.put("sbop_svc_kei_no", bean[0].sendMessageString(KKW00858SFConst.HASINSHA_NO_DSP_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
				sbopRsvClList.add(sbopRsvClMap);
				
				// 非通知着信拒否が予約中の場合、非通知着信拒否の予約取消を行う。
				String hitchiIncmhiKeiNo = bean[0].sendMessageString(KKW00858SFConst.HITCHI_INCMHI_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
				String hitchiEndrsvymd = bean[0].sendMessageString(KKW00858SFConst.HITCHI_INCMHI_USE_ENDRSVYMD, X31CWebConst.DATABEAN_GET_VALUE);
				String hitchiIncmhiStat = bean[0].sendMessageString(KKW00858SFConst.HITCHI_INCMHI_STAT, X31CWebConst.DATABEAN_GET_VALUE);
				if(!JKKStringUtil.isNullBlank(hitchiIncmhiKeiNo) && 
					(JKKStrConst.OP_SVC_STAT_UKETSUKEZUMI.equals(hitchiIncmhiStat) || JKKStrConst.OP_SVC_STAT_SHOSAZUMI.equals(hitchiIncmhiStat) || !JKKStringUtil.isNullBlank(hitchiEndrsvymd)))
				{
					// 非通知着信拒否契約番号 → NTT卸ネット電話情報操作CCマップ.サブオプション予約取消用リスト.サブオプションサービス契約番号
					HashMap<String, Object> sbopRsvClMap2 = new HashMap<String, Object>();
					sbopRsvClMap2.put("sbop_svc_kei_no", bean[0].sendMessageString(KKW00858SFConst.HITCHI_INCMHI_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
					sbopRsvClList.add(sbopRsvClMap2);
				}
			}
			else if(HITCHI_INCMHI.equals(clSbop))
			{
				// 非通知着信拒否契約番号 → NTT卸ネット電話情報操作CCマップ.サブオプション予約取消用リスト.サブオプションサービス契約番号
				sbopRsvClMap.put("sbop_svc_kei_no", bean[0].sendMessageString(KKW00858SFConst.HITCHI_INCMHI_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
				sbopRsvClList.add(sbopRsvClMap);
			}
			else if(KOKUSAI_TEL_STP.equals(clSbop))
			{
				// 国際電話利用抑止契約番号 → NTT卸ネット電話情報操作CCマップ.サブオプション予約取消用リスト.サブオプションサービス契約番号
				sbopRsvClMap.put("sbop_svc_kei_no", bean[0].sendMessageString(KKW00858SFConst.KOKUSAI_TEL_STP_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
				sbopRsvClList.add(sbopRsvClMap);
			}
			
			parentMap.put("sbop_rsv_cl_list", sbopRsvClList);
		}

		outputMap.put("KKSV103801CC", parentMap);

		return outputMap;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV103801CC(X31SDataBeanAccess[] bean, HashMap outputMap, String tran_div){
		
		HashMap parentMap = null;
		
		if(outputMap.containsKey("KKSV103801CC")){
			parentMap = (HashMap)outputMap.get("KKSV103801CC");
		}
		
		// 返却メッセージID ← NTT卸ネット電話情報操作CCマップ.返却メッセージID
		if (parentMap != null && parentMap.containsKey("rtn_msg_id")) {
			bean[0].sendMessageString(KKW00858SFConst.RTN_MSG_ID, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("rtn_msg_id"));
		} else {
			bean[0].sendMessageString(KKW00858SFConst.RTN_MSG_ID, X31CWebConst.DATABEAN_SET_VALUE, new String());
		}
		
		return bean;
	}
}