/*********************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：KKSV0325_KKSV0325OPDBMapper
 *	ソースファイル名：KKSV0325_KKSV0325OPDBMapper.java
 *	作成者			：FJ
 *	日付			：2011年09月26日
 *＜機能概要＞
 *	BP（住所変更完了登録実行呼出）へのＤ−Ｂマッピングクラスです。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v1.00.00	2011/09/26	FJ			新規作成
 *	v7.00.00	2014/02/25	FJ) 星野	OM-2014-0000622対応
 *	v8.00.00	2014/04/20	FJ) 星野	OM-2014-0000041対応
 *	v8.01.00	2014/04/28	FJ) 星野	OM-2014-0001642対応
 *	v8.02.00	2014/06/11	FJ) 星野	IT2-2014-0000238対応
 *	v9.00.00	2014/04/30  FJ) 北谷    ANK-2056-00-00対応
 * v10.00.00	2014/08/15  FJ) 北谷    ANK-2199-00-00対応
 * v10.01.00	2014/09/02  FJ) 田中	OM-2014-0002783対応
 * v10.02.00	2014/09/25  FJ) 田中	OM-2014-0002802対応
 * v14.00.00	2015/05/14  FJ) 藤田	OM-2015-0000891対応
 * v19.00.00	2015/08/20  FJ) 真崎	ANK-2062-00-00対応
 * v25.00.00    2016/06/02  FJ)江藤    【OM-2016-0001249】住変確定時に番号解約する
 * v32.00.00    2017/06/15  FJ)江藤    【OM-2017-0000234】「番ポ工事未完了の為、住所変更確定できません」のメッセージ表示し住所変更確定できない不具合対応
 * v39.00.00	2018/10/25	FJ)舘山    【IT1-2018-0000185】4-STBを含んだ住所変更確定で「機器サービス契約番号は必ず入力してください。」が出力される
 * v50.00.00	2020/06/29	FK) 三原	【ANK-3754-00-00】トビラフォン対応
 * v61.00.00	2023/01/04	FJ)澤田		【ANK-4315-00-00】【eo定期】 eoホームゲートウェイ導入対応
 * v72.00.00    2024/07/03  FJ)藤井    【ANK-4494-00-00】【eo定期】 双方向番ポ対応
 * v71.00.00	2024/08/20	FJ)舘山		IT1-2024-0000030_HGW交換不可フラグがリセットされない
 * v72.00.00	2024/12/06	FJ)舘山		#85705_HGW瑕疵内障害
 * v72.01.00	2025/01/20	FJ)星野		#86310水平展開対応
 **********************************************************************/
package eo.web.webview.mapping;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;
import com.sun.enterprise.tools.common.util.StringUtils;

import eo.common.constant.JKKStrConst;
import eo.common.util.JKKStringUtil;
import eo.web.webview.KKW04202SF.KKW04202SFConst;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKKeiNewCmnLogicUtil;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class KKSV0325_KKSV0325OPDBMapper {

// OT-2013-0000311 2013.03.31 T.TORIKAI ADD START
	/**
	 * 運用日付
	 * 
	 */
	private String opeDate = new String("");
// OT-2013-0000311 2013.03.31 T.TORIKAI ADD END

	/**
	 * コンストラクタ
	 */
	public KKSV0325_KKSV0325OPDBMapper() {
	}

// OT-2013-0000311 2013.03.31 T.TORIKAI ADD START
	/**
	 * 運用日付を設定する.
	 * @param opeDate 運用日付
	 * 
	 */
	public void setOpeDate(String opeDate) {
		this.opeDate = opeDate;
	}
// OT-2013-0000311 2013.03.31 T.TORIKAI ADD END

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：住所変更登録画面（共通）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV032501SC(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("req_job_id", "EO23I0320J0");
		// ディレイド処理依頼登録ＳＣ.ディレイド処理依頼種別コード
		parentMap.put("dlyd_trn_req_sbt_cd", "00000");
		// ディレイド処理依頼登録ＳＣ.ファイルコード
		parentMap.put("file_cd", "0000");
		// ディレイド処理依頼登録ＳＣ.ファイル削除年月日
		parentMap.put("file_del_ymd", "20991231");

		outputMap.put("KKSV032501SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean 住所変更登録確認画面
	 * @param outputMap CC呼出用Map
	 * @param func_code 機能コード
	 * @param orgCd 組織コード
	 * @param orgNm 組織コード名
	 * @param kKSV0698Map 住所変更登録チェックサービス結果
	 */
// OM-2013-0002656対応 20140328 星野 MOD START
//	public HashMap setKKSV032501CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	// OM-2017-0000234 2017/06/15 MOD START
//	public HashMap setKKSV032501CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String orgCd, String orgNm)
	public HashMap setKKSV032501CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String orgCd, String orgNm, HashMap<String, Object> kKSV0698Map)
	// OM-2017-0000234 2017/06/15 MOD END
// OM-2013-0002656対応 20140328 星野 MOD END
	{
		
		// OM-2017-0000234 2017/06/15 ADD START
		// ■電話のサービス契約ステータスチェック
		// ※現状は住変確定時のみチェックしている。
		// 住所変更登録チェックサービスで取得した転居先電話サービス契約ステータスを取得
		String svcKeiStatTelAf = "";
		if (null != kKSV0698Map)
		{
			HashMap<String, Object> kKSV069823CCMap = (HashMap<String, Object>)kKSV0698Map.get("KKSV069823CC");
			if (null != kKSV069823CCMap)
			{
				svcKeiStatTelAf = (String)kKSV069823CCMap.get("svc_kei_stat_tel_af");
			}
		}
		// 転居先に電話サービス契約が存在しない、または存在するが解約／キャンセルされている場合、実行対象外
		if(JKKStringUtil.isNullBlank(svcKeiStatTelAf) || JKKStrConst.CD00037_DSL_ZM.compareTo(svcKeiStatTelAf) <= 0)
		{
			outputMap.put("KKSV032501CC", null);
			return null;
		}
		// OM-2017-0000234 2017/06/15 ADD END

//  ANK-1664-00-00対応 20131231 星野 ADD START
// OM-2013-0002656対応 20140328 星野 MOD START
//		return setKKSV032501CC(bean, outputMap, func_code, 2);
		return setKKSV032501CC(bean, outputMap, func_code, orgCd, orgNm, 2);
// OM-2013-0002656対応 20140328 星野 MOD END
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：住所変更登録確認画面
	 * @param outputMap
	 * @param func_code　機能コード
	 */
// OM-2013-0002656対応 20140328 星野 MOD START
//	public HashMap setKKSV032501CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, int targetTel)
	public HashMap setKKSV032501CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String orgCd, String orgNm, int targetTel)
// OM-2013-0002656対応 20140328 星野 MOD END
	{
	
//  ANK-1664-00-00対応 20131231 星野 ADD END
		if(bean == null)
		{
			return null;
		}
	
		if(bean.length != 1)
		{
			return null;
		}
		
		
		// eo光電話.サービス契約内訳情報マップリスト
		ArrayList<HashMap> tl_svc_kei_ucwk_map_list = new ArrayList<HashMap>();
		X31SDataBeanAccess bean_tl_svc_kei_ucwk_map = null;
		X31SDataBeanAccessArray bean_tl_svc_kei_ucwk_map_list = bean[0].getDataBeanArray("ｅｏ光電話＿電番情報一覧");
		// 2電番目が存在しない場合はnullセットしてreturn
//  ANK-1664-00-00対応 20131231 星野 MOD START
//		if( bean_tl_svc_kei_ucwk_map_list.getCount() < 2 ){
		if( bean_tl_svc_kei_ucwk_map_list.getCount() < targetTel ){
//  ANK-1664-00-00対応 20131231 星野 MOD END
			outputMap.put("KKSV032501CC", null);
			return outputMap;
		}
//  ANK-1664-00-00対応 20131231 星野 MOD START
//		bean_tl_svc_kei_ucwk_map = bean_tl_svc_kei_ucwk_map_list.getDataBean(1);
		bean_tl_svc_kei_ucwk_map = bean_tl_svc_kei_ucwk_map_list.getDataBean(targetTel - 1);
//  ANK-1664-00-00対応 20131231 星野 MOD END
		
		/** 判定実施 */
		String telChgDiv = bean[0].sendMessageString("ｅｏ光電話＿利用サービス変更区分", X31CWebConst.DATABEAN_GET_VALUE);
		String ucwk_no_bef = bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿変更前＿サービス契約内訳番号", X31CWebConst.DATABEAN_GET_VALUE);
		String ucwk_no_aft = bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿変更後＿サービス契約内訳番号", X31CWebConst.DATABEAN_GET_VALUE);

		/** 電話の利用サービス変更区分が変更・継続以外の場合 */
		if(!"1".equals(telChgDiv)
// 20130711 ADD START
				&& !"0".equals(telChgDiv)
// 20130711 ADD END
		){
			// nullセットしてreturn
			outputMap.put("KKSV032501CC", null);
			return outputMap;
		}
		
		/** 旧内訳番号がEmpty かつ 新内訳番号がNot Emptyの場合 */
		if( StringUtils.isEmpty( ucwk_no_bef ) &&
			!StringUtils.isEmpty( ucwk_no_aft ) ){

			// 新電番追加の為、マッピング実施
		
		/** 上記以外の場合 */
		}else{
			// 新電番追加以外の場合、nullセットしてreturn
			outputMap.put("KKSV032501CC", null);
			return outputMap;
		}


	
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
	
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
	
		// 共通＿ＳＹＳＩＤ → [２電番目]電話番号情報登録ＣＣ.SYSID
		parentMap.put("sysid", bean[0].sendMessageString("共通＿ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// 共通＿異動区分 → [２電番目]電話番号情報登録ＣＣ.異動区分
// 20130413 星野 MOD START
//		// TODO 暫定 異動区分は「光電話・番号追加」とする
//		parentMap.put("ido_div", "00041");
		parentMap.put("ido_div", "00020");
// 20130413 星野 MOD START
		// "04"（eo光電話・番号追加） → [１電番目]電話番号情報登録ＣＣ.住所変更内異動区分
		parentMap.put("adchg_ido_div", "04");
		
		// ○ 異動理由明細
		ArrayList<HashMap> ido_rsn_map_list = new ArrayList<HashMap>();
		int count = (Integer)( bean[0].sendMessage(KKW04202SFConst.CTRL_IDO_RSN, X31CWebConst.DATABEAN_GET_COUNT) );
		for ( int i = 0; i < count; i ++ ) {
			HashMap<String, Object> ido_rsn_map = new HashMap<String, Object>();

			// ○ 異動理由明細.異動理由コード
			ido_rsn_map.put( "ido_rsn_cd", bean[0].sendMessageString("制御＿異動理由", X31CWebConst.DATABEAN_GET_VALUE, i) );
			// − 異動理由明細.異動理由メモ
			ido_rsn_map.put( "ido_rsn_memo", bean[0].sendMessageString("制御＿異動理由メモ", X31CWebConst.DATABEAN_GET_VALUE) );

			ido_rsn_map_list.add( ido_rsn_map );
		}
		parentMap.put("ido_rsn_list", ido_rsn_map_list);
		
		// ｅｏ光電話＿変更前＿サービス契約番号 → befTlSvcKeiNo
		String befTlSvcKeiNo = bean[0].sendMessageString("ｅｏ光電話＿変更前＿サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE);
		// ｅｏ光電話＿変更後＿サービス契約番号 → aftTlSvcKeiNo
		String aftTlSvcKeiNo = bean[0].sendMessageString("ｅｏ光電話＿変更後＿サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE);
		// ｅｏ光電話＿変更後＿サービス契約番号が空でない場合
		if(aftTlSvcKeiNo != null && !StringUtils.isEmpty(aftTlSvcKeiNo) && !aftTlSvcKeiNo.equals(befTlSvcKeiNo)) {
			// ｅｏ光電話＿変更後＿サービス契約番号 → [２電番目]電話番号情報登録ＣＣ.サービス契約番号
			parentMap.put( "svc_kei_no", aftTlSvcKeiNo );
		} else {
			// ｅｏ光電話＿変更前＿サービス契約番号 → [２電番目]電話番号情報登録ＣＣ.サービス契約番号
			parentMap.put( "svc_kei_no", befTlSvcKeiNo );
		}
		// 電番＿電話番号 → [２電番目]電話番号情報登録ＣＣ.電話番号
		parentMap.put("telno", bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿電話番号", X31CWebConst.DATABEAN_GET_VALUE));
		// ｅｏ光ネット＿変更前＿サービス契約内訳番号 → [２電番目]電話番号情報登録ＣＣ.サービス契約内訳番号
		String svcKeiUcwkNoAf = bean_tl_svc_kei_ucwk_map.sendMessageString(KKW04202SFConst.TLN_AF_SVKEI_UW_NO_07, X31CWebConst.DATABEAN_GET_VALUE);
		if(svcKeiUcwkNoAf == null || "".equals( svcKeiUcwkNoAf ) ) {
			parentMap.put( "svc_kei_ucwk_no", bean_tl_svc_kei_ucwk_map.sendMessageString(KKW04202SFConst.TLN_SVKEI_UW_NO_BF_07, X31CWebConst.DATABEAN_GET_VALUE) );
		} else {
			parentMap.put( "svc_kei_ucwk_no", bean_tl_svc_kei_ucwk_map.sendMessageString(KKW04202SFConst.TLN_AF_SVKEI_UW_NO_07, X31CWebConst.DATABEAN_GET_VALUE) );
		}
		parentMap.put("nkys_ad_man_input_flg", bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿番ポ住所＿手動入力区分コード", X31CWebConst.DATABEAN_GET_VALUE));
		// 電番＿番ポ住所＿住所コード → [２電番目]電話番号情報登録ＣＣ.NTT契約者住所コード
		parentMap.put("ntt_keisha_ad_cd", bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿番ポ住所＿住所コード", X31CWebConst.DATABEAN_GET_VALUE));
		// 電番＿番ポ住所＿郵便番号 → [２電番目]電話番号情報登録ＣＣ.NTT契約者郵便番号
		parentMap.put("ntt_keisha_pcd", bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿番ポ住所＿郵便番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 電番＿番ポ住所＿都道府県 → [２電番目]電話番号情報登録ＣＣ.NTT契約者都道府県名
		parentMap.put("ntt_keisha_state_nm", bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿番ポ住所＿都道府県", X31CWebConst.DATABEAN_GET_VALUE));
		// 電番＿番ポ住所＿市区町村 → [２電番目]電話番号情報登録ＣＣ.NTT契約者市区町村名
		parentMap.put("ntt_keisha_city_nm", bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿番ポ住所＿市区町村", X31CWebConst.DATABEAN_GET_VALUE));
		// 電番＿番ポ住所＿大字通称名 → [２電番目]電話番号情報登録ＣＣ.NTT契約者大字通称名
		parentMap.put("ntt_keisha_oaztsu_nm", bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿番ポ住所＿大字通称名", X31CWebConst.DATABEAN_GET_VALUE));
		// 電番＿番ポ住所＿字丁目 → [２電番目]電話番号情報登録ＣＣ.NTT契約者字丁目名
		parentMap.put("ntt_keisha_azcho_nm", bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿番ポ住所＿字丁目", X31CWebConst.DATABEAN_GET_VALUE));
		// 電番＿番ポ住所＿番地・号 → [２電番目]電話番号情報登録ＣＣ.NTT契約者番地号
		parentMap.put("ntt_keisha_bnchigo", bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿番ポ住所＿番地・号", X31CWebConst.DATABEAN_GET_VALUE));
		// 電番＿番ポ住所＿建物名 → [２電番目]電話番号情報登録ＣＣ.NTT契約者住所補記・建物名
		parentMap.put("ntt_keisha_adrttm", bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿番ポ住所＿建物名", X31CWebConst.DATABEAN_GET_VALUE));
		// 電番＿番ポ住所＿部屋番号 → [２電番目]電話番号情報登録ＣＣ.NTT契約者住所補記・部屋番号
		parentMap.put("ntt_keisha_adrrm", bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿番ポ住所＿部屋番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 電番＿番ポ＿契約者カナ名 → [２電番目]電話番号情報登録ＣＣ.NTT契約者カナ名
		parentMap.put("ntt_ksh_kana", bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿番ポ＿契約者カナ名", X31CWebConst.DATABEAN_GET_VALUE));
		// 電番＿番ポ＿契約者名 → [２電番目]電話番号情報登録ＣＣ.NTT契約者名
		parentMap.put("ntt_keisha_nm", bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿番ポ＿契約者名", X31CWebConst.DATABEAN_GET_VALUE));
		// 電番＿緊急通報先住所＿住所コード → [２電番目]電話番号情報登録ＣＣ.緊急通報用住所コード
		parentMap.put("emg_ad_cd", bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿緊急通報先住所＿住所コード", X31CWebConst.DATABEAN_GET_VALUE));
		// 電番＿緊急通報先住所＿郵便番号 → [２電番目]電話番号情報登録ＣＣ.緊急通報用補正郵便番号
		parentMap.put("emg_hosei_pcd", bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿緊急通報先住所＿郵便番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 電番＿緊急通報先住所＿都道府県 → [２電番目]電話番号情報登録ＣＣ.緊急通報用都道府県名
		parentMap.put("emg_state_nm", bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿緊急通報先住所＿都道府県", X31CWebConst.DATABEAN_GET_VALUE));
		// 電番＿緊急通報先住所＿市区町村 → [２電番目]電話番号情報登録ＣＣ.緊急通報用市区町村名
		parentMap.put("emg_city_nm", bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿緊急通報先住所＿市区町村", X31CWebConst.DATABEAN_GET_VALUE));
		// 電番＿緊急通報先住所＿大字通称名 → [２電番目]電話番号情報登録ＣＣ.緊急通報用大字通称名
		parentMap.put("emg_oaztsu_nm", bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿緊急通報先住所＿大字通称名", X31CWebConst.DATABEAN_GET_VALUE));
		// 電番＿緊急通報先住所＿字丁目 → [２電番目]電話番号情報登録ＣＣ.緊急通報用字丁目名
		parentMap.put("emg_azcho_nm", bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿緊急通報先住所＿字丁目", X31CWebConst.DATABEAN_GET_VALUE));
		// 電番＿緊急通報先住所＿番地・号 → [２電番目]電話番号情報登録ＣＣ.緊急通報用番地号
		parentMap.put("emg_bnchigo", bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿緊急通報先住所＿番地・号", X31CWebConst.DATABEAN_GET_VALUE));
		// 電番＿緊急通報先住所＿肩書（建物名） → [２電番目]電話番号情報登録ＣＣ.緊急通報用住所補記・建物名
		parentMap.put("emg_adrttm", bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿緊急通報先住所＿肩書（建物名）", X31CWebConst.DATABEAN_GET_VALUE));
		// 電番＿緊急通報先住所＿肩書（部屋番号） → [２電番目]電話番号情報登録ＣＣ.緊急通報用住所補記・部屋番号
		parentMap.put("emg_adrrm", bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿緊急通報先住所＿肩書（部屋番号）", X31CWebConst.DATABEAN_GET_VALUE));
		// 電番＿緊急通報先＿利用者カナ名 → [２電番目]電話番号情報登録ＣＣ.緊急通報用契約者カナ名
		parentMap.put("emg_ksh_kana", bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿緊急通報先＿利用者カナ名", X31CWebConst.DATABEAN_GET_VALUE));
		// 電番＿緊急通報先＿利用者名 → [２電番目]電話番号情報登録ＣＣ.緊急通報用契約者名
		parentMap.put("emg_ksh_nm", bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿緊急通報先＿利用者名", X31CWebConst.DATABEAN_GET_VALUE));
		// 電番＿ポート番号プルダウン → [２電番目]電話番号情報登録ＣＣ.VAポート番号
		parentMap.put("va_port_no", getPdnSelectedCd(bean_tl_svc_kei_ucwk_map, "電番＿ポート番号プルダウン") );
		// ＶＡ選択＿機器製造型番コードリスト → [２電番目]電話番号情報登録ＣＣ.VA機器製造番号
		parentMap.put("va_kiki_seizo_no", null);
		// ＶＡ選択＿宅内機器種別コードリスト → [２電番目]電話番号情報登録ＣＣ.VA宅内機器型式コード
		parentMap.put("va_taknkiki_model_cd", null);
		// 固定値："1" → [２電番目]電話番号情報登録ＣＣ.NTT番号案内有無
		parentMap.put("ntt_no_guide_um", "0");
		// 固定値："1" → [２電番目]電話番号情報登録ＣＣ.ハローページ掲載有無
		parentMap.put("hellopage_keisai_um", "0");
		// EMPTY値 → [２電番目]電話番号情報登録ＣＣ.移転元通信事業者拠点コード
		parentMap.put("itnm_tsjgs_ktn_cd", new String());
		// 固定値："0" → [２電番目]電話番号情報登録ＣＣ.違約金発生コード
		parentMap.put("pnlty_hassei_cd", "0");
		// 固定値："IA102SC1" → [２電番目]電話番号情報登録ＣＣ.指定宅内機器モデルコード
		parentMap.put("taknkiki_Model_cd", "IA102SC1");
		// eo光電話.機器提供サービス契約情報リスト
		X31SDataBeanAccess bean_eoh_tl_kktk_svc_map = null;
		String tknkiki_sbt_cd = null;
		String kktk_svc_kei_no = null;
		X31SDataBeanAccessArray bean_eoh_tl_kktk_svc_map_list = bean[0].getDataBeanArray(KKW04202SFConst.TEKKYO_AD_USE_KIKI_LIST);
		// 宅内機器種別コードでVAを判定して設定
		for (int i = 0; i < bean_eoh_tl_kktk_svc_map_list.getCount(); i++ ) {
			bean_eoh_tl_kktk_svc_map = bean_eoh_tl_kktk_svc_map_list.getDataBean(i);
			
			tknkiki_sbt_cd = bean_eoh_tl_kktk_svc_map.sendMessageString("利用中機器＿機器区分", X31CWebConst.DATABEAN_GET_VALUE);
// ANK-1578-00-00 2013.12.10 Y.Kanata MOD START
//			if ("50".equals(tknkiki_sbt_cd)) {
// #85705 Modifiy START
//			if ("50".equals(tknkiki_sbt_cd) || "R0".equals(tknkiki_sbt_cd)) {
			if ("50".equals(tknkiki_sbt_cd) || "R0".equals(tknkiki_sbt_cd) || "S0".equals(tknkiki_sbt_cd)) {
// #85705 Modifiy END
// ANK-1578-00-00 2013.12.10 Y.Kanata MOD END
				kktk_svc_kei_no =  bean_eoh_tl_kktk_svc_map.sendMessageString("利用中機器＿変更前＿機器提供サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE);
			}	
		}
		// 利用中機器＿変更前＿機器提供サービス契約番号 → [２電番目]電話番号情報登録ＣＣ.機器提供サービス契約番号
		parentMap.put( "kktk_svc_kei_no", kktk_svc_kei_no);
		
		// EMPTY値 → [２電番目]電話番号情報登録ＣＣ.通信事業者コード
		parentMap.put("tsjgs_cd", new String());
		// ｅｏ光電話＿提供方式契約番号 → [２電番目]電話番号情報登録ＣＣ.提供方式契約番号
		parentMap.put("tk_hoshiki_kei_no", bean[0].sendMessageString("ｅｏ光電話＿提供方式契約番号", X31CWebConst.DATABEAN_GET_VALUE));
// IT1-2013-000XXXX対応 20130427 星野 ADD START
		parentMap.put("pplan_cd", bean[0].sendMessageString("ｅｏ光電話＿料金プラン", X31CWebConst.DATABEAN_GET_VALUE));
// IT1-2013-000XXXX対応 20130427 星野 ADD END
// IT2障害対応 20121216 星野 MOD START
//		// EMPTY値 → [２電番目]電話番号情報登録ＣＣ（仮登録）.同番移転有無
//		parentMap.put("dobaniten_um", new String());
		// 同番移転申込有無
		if( !StringUtils.isEmpty( bean_tl_svc_kei_ucwk_map.sendMessageString(KKW04202SFConst.TLN_DOBANITEN_TLN_07, X31CWebConst.DATABEAN_GET_VALUE) ) ){
			parentMap.put("dobaniten_um", "1");
// OM-2014-0000622対応 20140225 星野 DEL START
//// IT1-2013-0000893対応 20130413 星野 ADD START
//			// 同番移転依頼制御コード
//			parentMap.put("dobaniten_req_ctrl_cd", bean_tl_svc_kei_ucwk_map.sendMessageString(KKW04202SFConst.TLN_DOBANITEN_CHOSA_NTT_KAHI_CHOSA_07, X31CWebConst.DATABEAN_GET_VALUE) );
//			// 同番移転判定コード
//			parentMap.put("dobaniten_jdg_cd", bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿同番移転調査＿ＮＴＴ可否調査結果登録", X31CWebConst.DATABEAN_GET_VALUE));
//// IT1-2013-0000893対応 20130413 星野 ADD END
// OM-2014-0000622対応 20140225 星野 DEL END
		}else{
			parentMap.put("dobaniten_um", "0");
		}
// IT1-2013-0000893対応 20130413 星野 DEL START
//		// 同番移転依頼制御コード
//		parentMap.put("dobaniten_req_ctrl_cd", bean_tl_svc_kei_ucwk_map.sendMessageString(KKW04202SFConst.TLN_DOBANITEN_CHOSA_NTT_KAHI_CHOSA_07, X31CWebConst.DATABEAN_GET_VALUE) );
//		// 同番移転判定コード
//		parentMap.put("dobaniten_jdg_cd", bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿同番移転調査＿ＮＴＴ可否調査結果登録", X31CWebConst.DATABEAN_GET_VALUE));
// IT1-2013-0000893対応 20130413 星野 DEL END
// OM-2014-0000622対応 20140225 星野 DEL START
		// 同番移転依頼制御コード
		parentMap.put("dobaniten_req_ctrl_cd", bean_tl_svc_kei_ucwk_map.sendMessageString(KKW04202SFConst.TLN_DOBANITEN_CHOSA_NTT_KAHI_CHOSA_07, X31CWebConst.DATABEAN_GET_VALUE) );
		// 同番移転判定コード
		// ANK-4494-00-00 MOD START
//		parentMap.put("dobaniten_jdg_cd", bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿同番移転調査＿ＮＴＴ可否調査結果登録", X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("dobaniten_jdg_cd", JKKKeiNewCmnLogicUtil.KH_CHOSAKEKKA_ADD_MISETTE);
		// ANK-4494-00-00 MOD END
// OM-2014-0000622対応 20140225 星野 DEL END
// IT2障害対応 20121216 星野 MOD END
		// 電番＿番ポ＿有無 → [２電番目]電話番号情報登録ＣＣ.番ポ有無
		parentMap.put("bmp_um", bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿番ポ＿有無", X31CWebConst.DATABEAN_GET_VALUE));
		// EMPTY値 → [２電番目]電話番号情報登録ＣＣ.番ポ工事希望年月日時
		parentMap.put("bmp_koji_kibo_ymdh", new String());
		// EMPTY値 → [２電番目]電話番号情報登録ＣＣ.番ポ工事希望年月日保留フラグ
		parentMap.put("bmpkj_kibo_ymd_pding_flg", new String());
		// "0"（オフ） → 仮登録フラグ
		parentMap.put("kari_touroku_flg", "0");
		
		//申込明細番号
		parentMap.put("mskm_dtl_no",  bean[0].sendMessageString("申込＿変更前＿申込明細番号", X31CWebConst.DATABEAN_GET_VALUE, 1));
		//更新年月日時分秒
		parentMap.put("kk0081_upd_dtm", bean[0].sendMessageString("ｅｏ光電話＿変更前＿サービス契約番号＿更新年月日時分秒", X31CWebConst.DATABEAN_GET_VALUE));
// IT1-2013-0000099対応 20130204 星野 ADD START
		X31SDataBeanAccessArray bean_adchg_dtl_list_kktk_svc_kei = bean[0].getDataBeanArray("撤去住所＿利用中機器一覧");
		int adchg_dtl_cnt_kktk_svc_kei = bean_adchg_dtl_list_kktk_svc_kei.getCount();
		for (int i = 0; i < adchg_dtl_cnt_kktk_svc_kei; i ++) {
			X31SDataBeanAccess bean_adchg_dtl_map_kktk_svc_kei = bean_adchg_dtl_list_kktk_svc_kei.getDataBean(i);
			
			// VA以外の場合
			String kiki_sbt_cd = bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("利用中機器＿機器区分", X31CWebConst.DATABEAN_GET_VALUE);
// ANK-1578-00-00 2013.12.10 Y.Kanata MOD START
//			if(!"50".equals(kiki_sbt_cd)){
// #85705 Modify START
//			if(!"50".equals(kiki_sbt_cd) && !"R0".equals(kiki_sbt_cd)){
			if(!"50".equals(kiki_sbt_cd) && !"R0".equals(kiki_sbt_cd) && !"S0".equals(kiki_sbt_cd)){
// #85705 Modify END
// ANK-1578-00-00 2013.12.10 Y.Kanata MOD END
				// 処理対象外（電話の機器ではない）
				continue;
			}
			
			// VA機器変更番号
			parentMap.put("va_kiki_chg_no", bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("利用中機器＿変更前＿機器変換番号", X31CWebConst.DATABEAN_GET_VALUE));
			// 設定したらループを抜ける
			break;
		}
// IT1-2013-0000099対応 20130204 星野 ADD END
// 20130413 星野 ADD START
		X31SDataBeanAccessArray bean_adchg_dtl_map_sei_kei_list = bean[0].getDataBeanArray("移転先同時住所変更＿請求書送付先一覧");
		// OM-2015-0000891対応 20150514 藤田 DEL START
//		for ( int i = 0; i < bean_adchg_dtl_map_sei_kei_list.getCount(); i ++ ) {
//			if ( i >= 1 ) {
//				break;
//			}
//			X31SDataBeanAccess bean_adchg_dtl_map_sei_kei = bean_adchg_dtl_map_sei_kei_list.getDataBean(i);
//			parentMap.put("seiky_kei_no", bean_adchg_dtl_map_sei_kei.sendMessageString("送付先住所＿更新前＿請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));
//		}
		// OM-2015-0000891対応 20150514 藤田 DEL END
		// OM-2015-0000891対応 20150514 藤田 ADD START
		for ( int i = 0; i < bean_adchg_dtl_map_sei_kei_list.getCount(); i ++ ) {
			X31SDataBeanAccess bean_adchg_dtl_map_sei_kei = bean_adchg_dtl_map_sei_kei_list.getDataBean(i);
			// 電話サービスがある請求先の情報を取得する
			String shsAdTel = bean_adchg_dtl_map_sei_kei.sendMessageString("送付先住所＿電話", X31CWebConst.DATABEAN_GET_VALUE);
			if ("1".equals(shsAdTel)) {
				parentMap.put("seiky_kei_no", bean_adchg_dtl_map_sei_kei.sendMessageString("送付先住所＿更新前＿請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));
				break;
			}
		}
		// OM-2015-0000891対応 20150514 藤田 ADD END
// 20130413 星野 ADD END
// OM-2013-0003573対応 20131029 星野 ADD START
		// 一時金設定コード（CD00748⇒CD00346へ変換）
		String icjknSetteCd = convJmteCd( getPdnSelectedCd(bean[0], "ｅｏ光電話＿事務手数料プルダウン") );
		parentMap.put("icjkn_sette_cd", icjknSetteCd);
		// 一時金指定額
		parentMap.put("icjkn_shitei_amnt", bean[0].sendMessageString("ｅｏ光電話＿事務手数料（指定）", X31CWebConst.DATABEAN_GET_VALUE));
		// 一時金指定率
		parentMap.put("icjkn_shitei_rt", getIcjknShiteiRt(icjknSetteCd));
		
		// 一時金設定コード(番ポ) （番ポ画面は一時金設定コードを返却するのでコード変換不要）
		String bmpIcjknSetteCd = bean_tl_svc_kei_ucwk_map.sendMessageString(KKW04202SFConst.TLN_BMP_JMTE_CD_07, X31CWebConst.DATABEAN_GET_VALUE);
// OM-2013-0003954対応 20131106 星野 ADD START
		if( StringUtils.isEmpty(bmpIcjknSetteCd) ){
			// 番ポ事務手数料未設定時は「有り」に倒す
			bmpIcjknSetteCd = "02";
		}
// OM-2013-0003954対応 20131106 星野 ADD END
		parentMap.put("bmp_icjkn_sette_cd", bmpIcjknSetteCd);
		// 一時金指定額(番ポ)
		parentMap.put("bmp_icjkn_shitei_amnt", bean_tl_svc_kei_ucwk_map.sendMessageString(KKW04202SFConst.TLN_BMP_JMTE_AMNT_07, X31CWebConst.DATABEAN_GET_VALUE));
		// 一時金指定率(番ポ)
		parentMap.put("bmp_icjkn_shitei_rt",  getIcjknShiteiRt(bmpIcjknSetteCd));
// OM-2013-0003573対応 20131029 星野 ADD END
		
// IT2-2014-0000089対応 20140127 星野 ADD START
		// 移転元サービス契約回線内訳番号
		parentMap.put("itnm_svkei_kisuw_no", bean[0].sendMessageString("制御＿変更前サービス契約回線内訳番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 移転先サービス契約回線内訳番号
		parentMap.put("itns_svkei_kisuw_no", bean[0].sendMessageString("共通＿利用場所＿変更後＿サービス契約回線内訳番号", X31CWebConst.DATABEAN_GET_VALUE));
// IT2-2014-0000089対応 20140127 星野 ADD END
// OM-2013-0002656対応 20140328 星野 ADD START
		// 組織コード
		parentMap.put("org_cd", orgCd);
		// 組織名
		parentMap.put("org_nm", orgNm);
// OM-2013-0002656対応 20140328 星野 ADD END

		// ANK-2056-00-00 2014/04/28 start
		//電話番号情報から電話オプション識別コードを取り出す　→　割引サービスコード
		X31SDataBeanAccessArray pac_3_div_ary = bean_tl_svc_kei_ucwk_map.getDataBeanArray( KKW04202SFConst.TLN_PAC_3_DIV_07 );
		X31SDataBeanAccess pac_3_div = pac_3_div_ary.getDataBean(0);
		boolean pac3 = pac_3_div.sendMessageBoolean(KKW04202SFConst.CHECK_STA_02, X31CWebConst.DATABEAN_GET_VALUE);
		X31SDataBeanAccessArray pac_7_div_ary = bean_tl_svc_kei_ucwk_map.getDataBeanArray( KKW04202SFConst.TLN_PAC_7_DIV_07 );
		X31SDataBeanAccess pac_7_div = pac_7_div_ary.getDataBean(0);
		boolean pac7 = pac_7_div.sendMessageBoolean(KKW04202SFConst.CHECK_STA_02, X31CWebConst.DATABEAN_GET_VALUE);
		// ANK-3754-00-00 ADD START
		X31SDataBeanAccessArray ansn_tel_pac_div_ary = bean_tl_svc_kei_ucwk_map.getDataBeanArray( KKW04202SFConst.TLN_ANSN_TEL_PAC_DIV_07 );
		X31SDataBeanAccess ansn_tel_pac_div = ansn_tel_pac_div_ary.getDataBean(0);
		boolean ansnTelPac = ansn_tel_pac_div.sendMessageBoolean(KKW04202SFConst.CHECK_STA_02, X31CWebConst.DATABEAN_GET_VALUE);
		// ANK-3754-00-00 ADD END
		
		String wri_svc_cd = "";
		if(pac3){
			wri_svc_cd = "W00000007"; //W00000007:パック３
		}else if(pac7){
			wri_svc_cd = "W00000008"; //W00000008:パック７
		}
		// ANK-3754-00-00 ADD START
		else if (ansnTelPac)
		{
			wri_svc_cd = "W00000023"; // W00000023:あんしん電話パック
		}
		// ANK-3754-00-00 ADD END
		
		// 割引サービスコード
		parentMap.put( "wri_svc_cd", wri_svc_cd);
		// 変更前割引サービスコード
		String bf_wri_svc_cd = "";
		String pac_skcd = bean_tl_svc_kei_ucwk_map.sendMessageString("電番＿変更前電話オプションパック識別コード", X31CWebConst.DATABEAN_GET_VALUE);
		if("1".equals(pac_skcd)){
			bf_wri_svc_cd = "W00000007"; //W00000007:パック３
		}else if("2".equals(pac_skcd)){
			bf_wri_svc_cd = "W00000008"; //W00000008:パック７
		}
		// ANK-3754-00-00 ADD START
		else if("3".equals(pac_skcd))
		{
			bf_wri_svc_cd = "W00000023"; // W00000023:あんしん電話パック
		}
		// ANK-3754-00-00 ADD END
		
		parentMap.put( "bf_wri_svc_cd", bf_wri_svc_cd);
		// ANK-2056-00-00 2014/04/28 end
		
// #86310水平展開対応 20250120 星野 MOD START
		// 工事実施方法
		parentMap.put("koji_jssi_way", bean_tl_svc_kei_ucwk_map.sendMessageString(KKW04202SFConst.TLN_BMP_KOJI_JSSI_WAY_07, X31CWebConst.DATABEAN_GET_VALUE));
		// 想定切替時間帯
		parentMap.put("sotei_switch_timez", bean_tl_svc_kei_ucwk_map.sendMessageString(KKW04202SFConst.TLN_BMP_SOTEI_SWITCH_TIMEZ_07, X31CWebConst.DATABEAN_GET_VALUE));
		// 同番移転申込有無 番ポ工事ＣＣ（KKSV0674201CC/KKSV0674202CC への設定値と同値を渡す）
		parentMap.put("dobaniten_mskm_um", JKKStrConst.CD_DIV_UM_ARI);
		// 電話番号＿更新年月日時分秒
		parentMap.put("zm0121_upd_dtm", bean_tl_svc_kei_ucwk_map.sendMessageString(KKW04202SFConst.TLN_BMP_ZM0121_UPD_DTM_07, X31CWebConst.DATABEAN_GET_VALUE));
// #86310水平展開対応 20250120 星野 MOD END
	
		outputMap.put("KKSV032501CC", parentMap);
		return outputMap;
	}

// OM-2013-0003573対応 20131029 星野 ADD START
	private String getIcjknShiteiRt(String icjknSetteCd) {
		String rt = null;

		if ("02".equals(icjknSetteCd))		//一時金設定コード：有り
		{
			rt = "100.0";
		}
		else if ("03".equals(icjknSetteCd))	//一時金設定コード：半額
		{
			rt = "50.0";
		}
		else if ("04".equals(icjknSetteCd))	//一時金設定コード：指定額
		{
			rt = "100.0";
		}
		return rt;
	}
	
	/**
	 * CD00748⇒CD00346への変換を行う
	 * */
	private String convJmteCd(String kanyukin)
	{
		if ("0".equals(kanyukin)) {
			kanyukin = "01";
		} else if ("1".equals(kanyukin)) {
			kanyukin = "02";
		} else if ("2".equals(kanyukin)) {
			kanyukin = "03";
		} else if ("3".equals(kanyukin)) {
			kanyukin = "04";
		}

		return kanyukin;
	}

// OM-2013-0003573対応 20131029 星野 ADD END

// OT-2013-0000311 2013.03.31 T.TORIKAI ADD START
	/**
	 * サービス契約内訳（電話）解約 SC用（電話１）の上りマッピングをする
	 * 
	 * @param bean　[0]：住所変更登録画面（共通）
	 * @param outputMap サービスへのパラメータマップ
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV032502SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		return setTelNoChgSvcKeiUcwkSurrenderParam(bean, outputMap, func_code, true);
	}
// OT-2013-0000311 2013.03.31 T.TORIKAI ADD END

// OT-2013-0000311 2013.03.31 T.TORIKAI ADD START
	/**
	 * サービス契約内訳（電話）解約 SC用（電話２）の上りマッピングをする
	 * 
	 * @param bean　[0]：住所変更登録画面（共通）
	 * @param outputMap サービスへのパラメータマップ
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV032503SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		return setTelNoChgSvcKeiUcwkSurrenderParam(bean, outputMap, func_code, false);
	}
// OT-2013-0000311 2013.03.31 T.TORIKAI ADD END

// OT-2013-0000311 2013.03.31 T.TORIKAI ADD START
	/**
	 * サービス契約内訳（電話）解約の上りマッピングをする
	 * 
	 * @param bean　[0]：住所変更登録画面（共通）
	 * @param outputMap サービスへのパラメータマップ
	 * @param func_code 機能コード
	 * @param isFirstTelNo 対象は１番号かどうか
	 */
	private HashMap<String, Object> setTelNoChgSvcKeiUcwkSurrenderParam(X31SDataBeanAccess[] bean
			, HashMap<String, Object> outputMap, String func_code, boolean isFirstTelNo) {
		
		if (bean == null || bean.length != 1) {
			return null;
		}
		
		// 電話番号情報を取得
		X31SDataBeanAccessArray telInfoList = bean[0].getDataBeanArray(KKW04202SFConst.EOH_TEL_TLN_LIST);
		if (telInfoList == null || telInfoList.getCount() == 0) {
			return outputMap;	// 電話の情報はないので設定しない
		}
		if (!isFirstTelNo && telInfoList.getCount() < 2) {
			return outputMap;	// 電話２の処理だが２番号目の情報はないので設定しない
		}
		
		X31SDataBeanAccess telInfo = null;
		if (isFirstTelNo) {
			telInfo = telInfoList.getDataBean(0);
		} else {
			telInfo = telInfoList.getDataBean(1);
		}
		// 電話番号変更がある場合のみ設定する
		String bfSvcUwNo = (String)telInfo.sendMessageString(KKW04202SFConst.TLN_SVKEI_UW_NO_BF_07, X31CWebConst.DATABEAN_GET_VALUE);
		String afSvcUwNo = (String)telInfo.sendMessageString(KKW04202SFConst.TLN_AF_SVKEI_UW_NO_07, X31CWebConst.DATABEAN_GET_VALUE);
		if (JKKStringUtil.isNullBlank(bfSvcUwNo) || JKKStringUtil.isNullBlank(afSvcUwNo) || bfSvcUwNo.equals(afSvcUwNo)) {
			return outputMap;	// 電番変更ではないので設定しない
		}
		
		// サービス契約内訳（電話）解約ＳＣのパラメータ
		HashMap<String, String> paramMap = new HashMap<String, String>();
		
		// 共通情報のマッピング
		paramMap.put("func_code", func_code);
		
		// 異動区分
		paramMap.put("ido_div", JKKCommonConst.IDO_DIV_VALUE_00020);
		
		// サービス契約内訳番号 ← 移転元電話番号のサービス契約内訳番号
		paramMap.put("svc_kei_ucwk_no", bfSvcUwNo);
		
		// 予約適用開始希望年月日 ← 運用日
		paramMap.put("rsv_tsts_kibo_ymd", this.opeDate);
		
		// 更新年月日時分秒（更新前）
		paramMap.put("upd_dtm_bf", telInfo.sendMessageString(KKW04202SFConst.TLN_SVKEI_UW_NO_BF_UPD_DTM_07, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 申込明細番号（電話サービス）を取得
		String mskmDtlNo = bean[0].sendMessageString(KKW04202SFConst.MSKM_DTL_NO_BF, X31CWebConst.DATABEAN_GET_VALUE, 1);
		
		// 申込明細番号
		paramMap.put("mskm_dtl_no", mskmDtlNo);
		
		// サービス終了年月日 ← 運用日
		paramMap.put("svc_endymd", this.opeDate);
		
		// サービス課金終了年月日 ← 運用日 -1
		paramMap.put("rsv_chrg_endymd", addDay(this.opeDate, -1));
		
		// 違約金発生コード → 違約金発生コード：0 固定
		paramMap.put("pnlty_hassei_cd", "0");

		if (isFirstTelNo) {
			outputMap.put("KKSV032502SC", paramMap);
		} else {
			outputMap.put("KKSV032503SC", paramMap);
		}
		
		return outputMap;
	}
// OT-2013-0000311 2013.03.31 T.TORIKAI ADD END
	
// IT1-2013-0000852対応 20130410 星野 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：住所変更登録確認画面
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	public HashMap setKKSV032504SC(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);

		// 固定値："2" → サービス契約一意照会（電話）.機能コード
		parentMap.put("func_code", "2");
		
		// ｅｏ光電話＿変更前＿サービス契約番号 → befTlSvcKeiNo
		String befTlSvcKeiNo = bean[0].sendMessageString("ｅｏ光電話＿変更前＿サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE);
		// ｅｏ光電話＿変更後＿サービス契約番号 → aftTlSvcKeiNo
		String aftTlSvcKeiNo = bean[0].sendMessageString("ｅｏ光電話＿変更後＿サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE);
		// ｅｏ光電話＿変更後＿サービス契約番号が空でない場合
		if(aftTlSvcKeiNo != null && !StringUtils.isEmpty(aftTlSvcKeiNo) && !aftTlSvcKeiNo.equals(befTlSvcKeiNo)) {
			// ｅｏ光電話＿変更後＿サービス契約番号 →  サービス契約一意照会（電話）.ＫＥＹ＿サービス契約番号
			parentMap.put( "key_svc_kei_no", aftTlSvcKeiNo );
		} else {
			// ｅｏ光電話＿変更前＿サービス契約番号 →  サービス契約一意照会（電話）.ＫＥＹ＿サービス契約番号
			parentMap.put( "key_svc_kei_no", befTlSvcKeiNo );
		}

		// "20991231" → サービス契約一意照会（電話）.ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", "20991231");

		outputMap.put("KKSV032504SC", parentMap);
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：住所変更登録確認画面
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	public HashMap setKKSV032505SC(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);

		// 固定値："2" → サービス契約一意照会（電話）.機能コード
		parentMap.put("func_code", "2");
		
		// ｅｏ光電話＿変更前＿サービス契約番号 → befTlSvcKeiNo
		String befTlSvcKeiNo = bean[0].sendMessageString("ｅｏ光電話＿変更前＿サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE);
		// ｅｏ光電話＿変更後＿サービス契約番号 → aftTlSvcKeiNo
		String aftTlSvcKeiNo = bean[0].sendMessageString("ｅｏ光電話＿変更後＿サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE);
		// ｅｏ光電話＿変更後＿サービス契約番号が空でない場合
		if(aftTlSvcKeiNo != null && !StringUtils.isEmpty(aftTlSvcKeiNo) && !aftTlSvcKeiNo.equals(befTlSvcKeiNo)) {
			// ｅｏ光電話＿変更後＿サービス契約番号 →  サービス契約一意照会（電話）.ＫＥＹ＿サービス契約番号
			parentMap.put( "key_svc_kei_no", aftTlSvcKeiNo );
		} else {
			// ｅｏ光電話＿変更前＿サービス契約番号 →  サービス契約一意照会（電話）.ＫＥＹ＿サービス契約番号
			parentMap.put( "key_svc_kei_no", befTlSvcKeiNo );
		}

		// "20991231" → サービス契約一意照会（電話）.ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", "20991231");

		outputMap.put("KKSV032505SC", parentMap);
		return outputMap;
	}
// IT1-2013-0000852対応 20130410 星野 ADD END

// OT-2013-0000311 2013.03.29 T.TORIKAI ADD START
	/**
	 * 電話番号変更確定ＣＣ用（電話１）の上りマッピングをする
	 * 
	 * @param bean　[0]：住所変更登録画面（共通）
	 * @param outputMap サービスへのパラメータマップ
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV032502CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		return setJKKTelSvcChgCCParam(bean, outputMap, func_code, true);
	}
// OT-2013-0000311 2013.03.29 T.TORIKAI ADD END

// OT-2013-0000311 2013.03.29 T.TORIKAI ADD START
	/**
	 * 電話番号変更確定ＣＣ用（電話２）の上りマッピングをする
	 * 
	 * @param bean　[0]：住所変更登録画面（共通）
	 * @param outputMap サービスへのパラメータマップ
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV032503CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		return setJKKTelSvcChgCCParam(bean, outputMap, func_code, false);
	}
// OT-2013-0000311 2013.03.29 T.TORIKAI ADD END

// IT1-2013-0000935対応 20130417 鈴木 ADD START
	/**
	 * 電話１（移転先トーキ開始予定日を設定）の上りマッピングをする
	 * 
	 * @param bean　[0]：住所変更登録画面（共通）
	 * @param outputMap サービスへのパラメータマップ
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV032504CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {

		return setKKSV032504_05CCParam(bean, outputMap, func_code, true);
	}

	/**
	 * 電話２（移転先トーキ開始予定日を設定）の上りマッピングをする
	 * 
	 * @param bean　[0]：住所変更登録画面（共通）
	 * @param outputMap サービスへのパラメータマップ
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV032505CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {

		return setKKSV032504_05CCParam(bean, outputMap, func_code, false);
	}
	
	/**
	 * 移転先トーキ開始予定日の設定ＣＣ用の上りマッピングをする
	 * 
	 * @param bean　[0]：住所変更登録画面（共通）
	 * @param outputMap サービスへのパラメータマップ
	 * @param func_code 機能コード
	 * @param isFirstTelNo 対象は１番号かどうか
	 */
	private HashMap<String, Object> setKKSV032504_05CCParam(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code, boolean isFirstTelNo) {
		
		if (bean == null || bean.length != 1) {
			return null;
		}
		
		// 電話番号情報を取得
		X31SDataBeanAccessArray telInfoList = bean[0].getDataBeanArray(KKW04202SFConst.EOH_TEL_TLN_LIST);
		if (telInfoList == null || telInfoList.getCount() == 0) {
			return outputMap;	// 電話の情報はないので設定しない
		}
		if (!isFirstTelNo && telInfoList.getCount() < 2) {
			return outputMap;	// 電話２の処理だが２番号目の情報はないので設定しない
		}

		X31SDataBeanAccess telInfo = null;
		if (isFirstTelNo) {
			telInfo = telInfoList.getDataBean(0);
		} else {
			telInfo = telInfoList.getDataBean(1);
		}
		
		// ここで、トーキ希望有無やトーキ登録区分などによる実施可否の判断はやらない。
		// CC側でＤＢ値を見て判断する。
		
		// 変更前のサービス契約内訳番号
		String bfSvcUwNo = (String)telInfo.sendMessageString(KKW04202SFConst.TLN_SVKEI_UW_NO_BF_07, X31CWebConst.DATABEAN_GET_VALUE);
		String afSvcUwNo = (String)telInfo.sendMessageString(KKW04202SFConst.TLN_AF_SVKEI_UW_NO_07, X31CWebConst.DATABEAN_GET_VALUE);

		String svcUwNo = bfSvcUwNo;
		
		/** 旧内訳番号がEmpty かつ 新内訳番号がNot Emptyの場合 */
		if( StringUtils.isEmpty( bfSvcUwNo ) &&
			!StringUtils.isEmpty( afSvcUwNo ) ){

			// 新電番追加
			svcUwNo = afSvcUwNo;
		}
		
		// ＣＣのパラメータ
		HashMap<String, String> paramMap = new HashMap<String, String>();
		
		// 共通情報のマッピング
		paramMap.put("func_code", func_code);
		
		// サービス契約内訳番号
		paramMap.put("chbf_svc_kei_ucwk_no", svcUwNo);
		
		// 運用日付 → 移転トーキ情報設定ＣＣ(n番号目).予約適用年月日
		paramMap.put("rsv_aply_ymd", this.opeDate);
		
		// 異動区分
		paramMap.put("ido_div", JKKCommonConst.IDO_DIV_VALUE_00020);
		
		// 運用日付 → 移転トーキ情報設定ＣＣ(n番号目).移転先開通後トーキ開始予定年月日
		paramMap.put("itens_opaf_toki_sta_rsymd", this.opeDate);
		
		// 「電話」の申込明細番号を取得する。添え字＝１が電話になる。
		String mskmDtlNo = bean[0].sendMessageString("申込＿変更前＿申込明細番号", X31CWebConst.DATABEAN_GET_VALUE, 1);
		
		// 申込明細番号 → 移転トーキ情報設定ＣＣ(n番号目).申込明細番号
		paramMap.put("mskm_dtl_no", mskmDtlNo);
		
		if (isFirstTelNo) {
			outputMap.put("KKSV032504CC", paramMap);
		} else {
			outputMap.put("KKSV032505CC", paramMap);
		}
		
		return outputMap;
	}
// IT1-2013-0000935対応 20130417 鈴木 ADD END
	
// OT-2013-0000311 2013.03.29 T.TORIKAI ADD START
	/**
	 * 電話番号変更確定ＣＣ用の上りマッピングをする
	 * 
	 * @param bean　[0]：住所変更登録画面（共通）
	 * @param outputMap サービスへのパラメータマップ
	 * @param func_code 機能コード
	 * @param isFirstTelNo 対象は１番号かどうか
	 */
	private HashMap<String, Object> setJKKTelSvcChgCCParam(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code, boolean isFirstTelNo) {
		
		if (bean == null || bean.length != 1) {
			return null;
		}
		
		// 電話番号情報を取得
		X31SDataBeanAccessArray telInfoList = bean[0].getDataBeanArray(KKW04202SFConst.EOH_TEL_TLN_LIST);
		if (telInfoList == null || telInfoList.getCount() == 0) {
			return outputMap;	// 電話の情報はないので設定しない
		}
		if (!isFirstTelNo && telInfoList.getCount() < 2) {
			return outputMap;	// 電話２の処理だが２番号目の情報はないので設定しない
		}
		
		X31SDataBeanAccess telInfo = null;
		if (isFirstTelNo) {
			telInfo = telInfoList.getDataBean(0);
		} else {
			telInfo = telInfoList.getDataBean(1);
		}
		// 電話番号変更がある場合のみ設定する
		String bfSvcUwNo = (String)telInfo.sendMessageString(KKW04202SFConst.TLN_SVKEI_UW_NO_BF_07, X31CWebConst.DATABEAN_GET_VALUE);
		String afSvcUwNo = (String)telInfo.sendMessageString(KKW04202SFConst.TLN_AF_SVKEI_UW_NO_07, X31CWebConst.DATABEAN_GET_VALUE);
		if (JKKStringUtil.isNullBlank(bfSvcUwNo) || JKKStringUtil.isNullBlank(afSvcUwNo) || bfSvcUwNo.equals(afSvcUwNo)) {
			return outputMap;	// 電番変更ではないので設定しない
		}
		
		// 電話番号変更確定ＣＣのパラメータ
		HashMap<String, String> paramMap = new HashMap<String, String>();
		
		// 共通情報のマッピング
		paramMap.put("func_code", func_code);
		
		// 変更前サービス契約内訳番号
		paramMap.put("chbf_svc_kei_ucwk_no", bfSvcUwNo);
		// 変更後サービス契約内訳番号
		paramMap.put("chaf_svc_kei_ucwk_no", afSvcUwNo);
		// 異動区分
		paramMap.put("ido_div", JKKCommonConst.IDO_DIV_VALUE_00020);
		// 番ポ工事完了年月日
		String bmpKojiFinYmd = null;
		if (JKKCommonConst.UM_U.equals(telInfo.sendMessageString(KKW04202SFConst.TLN_BMP_UM_07, X31CWebConst.DATABEAN_GET_VALUE))) {
			try {
				bmpKojiFinYmd = (String)telInfo.sendMessageString(KKW04202SFConst.TLN_BMP_KJ_FIN_YMD_07, X31CWebConst.DATABEAN_GET_VALUE);
			} catch (Exception e) {	}
		}
		paramMap.put("bmp_koji_fin_ymd", bmpKojiFinYmd);
		// サービス解約理由コード
		paramMap.put("svc_dsl_cd", null);
		// サービス解約理由メモ
		paramMap.put("svc_dsl_memo", null);
		// 機器出荷有無
		paramMap.put("kkshka_um", JKKCommonConst.UM_M);	// 住変では常に無し
		
		if (isFirstTelNo) {
			outputMap.put("KKSV032502CC", paramMap);
		} else {
			outputMap.put("KKSV032503CC", paramMap);
		}
		
		return outputMap;
	}
// OT-2013-0000311 2013.03.29 T.TORIKAI ADD END

	/**
	 * プルダウンより選択されているコード値を取得する。
	 * <br>
	 * @param		svcFormBean	対象のフォーム
	 * @param		target		対象のプルダウン名
	 * @return		selectedCd	プルダウンで選択されているコード値
	 * @exception	Exception	例外が発生した場合
	 */
	private String getPdnSelectedCd(X31SDataBeanAccess svcFormBean, String target) {
	
		X31SDataBeanAccessArray tmpBeanArray = svcFormBean.getDataBeanArray(target);
		if ( (tmpBeanArray == null) || (tmpBeanArray.getCount() <= 0) ) {
			return "";
		}
		X31SDataBeanAccess tmpBean = tmpBeanArray.getDataBean(0);
	
		String strIndex = tmpBean.sendMessageString(KKW04202SFConst.INDEX_01, X31CWebConst.DATABEAN_GET_VALUE);
		if ( strIndex == null ) {
			return "";
		} else if ( "".equals(strIndex) ) {
			strIndex = "0";
		}
	
		int selectIndex = Integer.parseInt(strIndex);
	
		return tmpBean.sendMessageString(KKW04202SFConst.CD_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, selectIndex);
	}

// OT-2013-0000311 2013.03.31 T.TORIKAI ADD START
	/**
	 * 日付計算
	 * @param trgtYmd
	 * @param addDay
	 * @return
	 * @throws Throwable
	 */
	public static String addDay(String trgtYmd, int addDay)
	{
		try {
			// 年月日　フォーマット
			SimpleDateFormat sdfYmd = new SimpleDateFormat("yyyyMMdd");

			// 対象年月日＋指定日（マイナスも可）
			Calendar calPauseYmd = Calendar.getInstance();
			calPauseYmd.setTime(sdfYmd.parse(trgtYmd));
			calPauseYmd.add(Calendar.DAY_OF_MONTH, addDay);

			return sdfYmd.format(calPauseYmd.getTime());
		} catch (Exception ex) {
			return null;
		}
	}
// OT-2013-0000311 2013.03.31 T.TORIKAI ADD END
	
// ANK-1578-00-00 2014.01.24 T.TORIKAI メソッド削除（IT1-2014-0000040）
// 対象機器をリストで複数処理できるよう大幅変更
//	/**
//	 * 上りマッピングをする
//	 * @param bean　[0]：住所変更登録確認画面
//	 * @param outputMap
//	 * @param func_code　機能コード
//	 */
//	public HashMap setKKSV032506CC(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>();
//		
//		/** 判定実施 */
//		String telChgDiv = bean[0].sendMessageString("ｅｏ光電話＿利用サービス変更区分", X31CWebConst.DATABEAN_GET_VALUE);
//
//		/** 電話の利用サービス変更区分が変更以外の場合 */
//		if(!"1".equals(telChgDiv)){
//			
//			// nullセットしてreturn
//			parentMap.put( "kktk_svc_kei_no", null);
//			
//			outputMap.put("KKSV032506CC", parentMap);
//			return outputMap;
//		}
//		
//		// eo光電話.機器提供サービス契約情報リスト
//		X31SDataBeanAccess bean_eoh_tl_kktk_svc_map = null;
//		String tknkiki_sbt_cd = null;
//		String kktk_svc_kei_no = null;
//		X31SDataBeanAccessArray bean_eoh_tl_kktk_svc_map_list = bean[0].getDataBeanArray(KKW04202SFConst.TEKKYO_AD_USE_KIKI_LIST);
//		// 宅内機器種別コードでVAを判定して設定
//		for (int i = 0; i < bean_eoh_tl_kktk_svc_map_list.getCount(); i++ ) {
//			bean_eoh_tl_kktk_svc_map = bean_eoh_tl_kktk_svc_map_list.getDataBean(i);
//			
//			tknkiki_sbt_cd = bean_eoh_tl_kktk_svc_map.sendMessageString("利用中機器＿機器区分", X31CWebConst.DATABEAN_GET_VALUE);
//			if ("50".equals(tknkiki_sbt_cd)) {
//				kktk_svc_kei_no =  bean_eoh_tl_kktk_svc_map.sendMessageString("利用中機器＿変更前＿機器提供サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE);
//			}	
//		}
//		// 利用中機器＿変更前＿機器提供サービス契約番号 → [２電番目]電話番号情報登録ＣＣ.機器提供サービス契約番号
//		parentMap.put( "kktk_svc_kei_no", kktk_svc_kei_no);
//		
//		// 移転先＿回線コード
//		String s_itens_kaisen_cd = bean[0].sendMessageString("制御＿変更後＿回線コード", X31CWebConst.DATABEAN_GET_VALUE);
//		// 移転先＿マンション物件コード
//		String s_itens_mansion_bukken_cd = bean[0].sendMessageString("変更後＿マンション物件コード", X31CWebConst.DATABEAN_GET_VALUE);
//		// 転居先がマンション（グローバル・プライベート）の場合 true
//		boolean isNothingKojiMansion4Itens = false;
//		if ("001".equals(s_itens_mansion_bukken_cd)) {
//			if (!"1004".equals(s_itens_kaisen_cd)) {
//				isNothingKojiMansion4Itens = true;
//			}
//		}
//		
//		// 工事ありの場合は処理対象
//		if(!isNothingKojiMansion4Itens){
//			parentMap.put("fixFlg", "1");
//		} else {
//			parentMap.put("fixFlg", "0");
//		}
//		
//		outputMap.put("KKSV032506CC", parentMap);
//		return outputMap;
//	}

// ANK-1578-00-00 2014.01.24 T.TORIKAI メソッド追加（IT1-2014-0000040）
	/**
	 * 上りマッピングをする（機器変更確定CC）
	 * @param bean　[0]：住所変更登録確認画面
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV032506CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null || bean.length != 1) {
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 工事の有無
		KKSV0674_KKSV0674OPDBMapper mapperKKSV0674 = new KKSV0674_KKSV0674OPDBMapper();
		if (mapperKKSV0674.isKojiNothing(bean)) {
			// 工事無しの場合は処理対象外
			parentMap.put( "kktk_svc_kei_no_list", null);
			outputMap.put("KKSV032506CC", parentMap);
			return outputMap;
		}

		// 処理対象の機器一覧
		List<Map<String, String>> kikiList = new ArrayList<Map<String, String>>();

		// 利用中機器一覧より処理対象を取得
		X31SDataBeanAccessArray kikiBeanList = bean[0].getDataBeanArray(KKW04202SFConst.TEKKYO_AD_USE_KIKI_LIST);
		for (int i = 0; i < kikiBeanList.getCount(); i++) {
			X31SDataBeanAccess kikiBean = kikiBeanList.getDataBean(i);

			// 宅内機器種別コード
			String tknkiki_sbt_cd = kikiBean.sendMessageString(KKW04202SFConst.USE_KIKI_DIV_05, X31CWebConst.DATABEAN_GET_VALUE);
			if (!JKKCommonConst.TAKNKIKI_SBT_50.equals(tknkiki_sbt_cd) && !JKKCommonConst.TAKNKIKI_SBT_R0.equals(tknkiki_sbt_cd)) {
				continue;	// VA、多機能ルータではないので対象外
			}

			// 撤去区分
			String tekkyoDiv = kikiBean.sendMessageString(KKW04202SFConst.USE_KIKI_TEKKYO_DIV_05, X31CWebConst.DATABEAN_GET_VALUE);
			if (!"4".equals(tekkyoDiv)) {
				continue;	// 4:交換 ではないので対象外
			}

			// 機器提供サービス契約番号
			String kktkSvcKeiNo = kikiBean.sendMessageString(KKW04202SFConst.USE_KIKI_KKTK_SVKEI_NO_BF_05, X31CWebConst.DATABEAN_GET_VALUE);
			Map<String, String> kikiMap = new HashMap<String, String>();
			kikiMap.put("kktk_svc_kei_no", kktkSvcKeiNo);
			kikiList.add(kikiMap);
		}
		parentMap.put( "kktk_svc_kei_no_list", kikiList);

		outputMap.put("KKSV032506CC", parentMap);
		return outputMap;
	}

// LT-2013-0000349対応 20130711 星野 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：住所変更登録確認画面
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	public HashMap setKKSV032507CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if(bean == null)
		{
			return null;
		}
	
		if(bean.length != 1)
		{
			return null;
		}
		
		// 入居予定日取得
		String nyukyoRsvYmd = bean[0].sendMessageString("移転先住所＿入居予定年月日", X31CWebConst.DATABEAN_GET_VALUE);
		/***********************************************************/
		/** 運用日付 ＜ 入居予定日の場合は入居予定日を運用日に補正 */
		/***********************************************************/
		if(this.opeDate.compareTo(nyukyoRsvYmd) < 0){
			bean[0].sendMessageString("移転先住所＿入居予定年月日", X31CWebConst.DATABEAN_SET_VALUE, this.opeDate);
			
// OM-2014-0000041対応 20140420 星野 DEL START
//		// 以外はnullセットしてreturn
//		}else{
//			outputMap.put("KKSV032507CC", null);
//			return outputMap;
// OM-2014-0000041対応 20140420 星野 DEL END
		}
	
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
	
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		parentMap.put("func_cd", func_code);
		
		// 住所変更番号
		parentMap.put("adchg_adchg_no", bean[0].sendMessageString("制御＿住所変更申込＿本登録番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 移転元サービス契約回線内訳番号
		parentMap.put("svc_kei_kaisen_ucwk_no", bean[0].sendMessageString("制御＿変更前サービス契約回線内訳番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 移転先_入居予定年月日
		parentMap.put("itens_nyukyo_rsv_ymd", bean[0].sendMessageString("移転先住所＿入居予定年月日", X31CWebConst.DATABEAN_GET_VALUE));
		// 撤去工事解約希望年月日
		parentMap.put("tppv_tkkj_dsl_kibo_ymd", getDslKiboYmd(bean[0]));
		// SYSID
		parentMap.put("sysid", bean[0].sendMessageString("共通＿ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// 異動区分（住所変更・登録とする）
		parentMap.put("ido_div", "00019");
		
// OM-2013-0004475対応 20131124 星野 ADD START
		parentMap.put("mskm_dtl_no_net", bean[0].sendMessageString("申込＿変更前＿申込明細番号", X31CWebConst.DATABEAN_GET_VALUE, 0));
		parentMap.put("mskm_dtl_no_tel", bean[0].sendMessageString("申込＿変更前＿申込明細番号", X31CWebConst.DATABEAN_GET_VALUE, 1));
		parentMap.put("mskm_dtl_no_tv",  bean[0].sendMessageString("申込＿変更前＿申込明細番号", X31CWebConst.DATABEAN_GET_VALUE, 2));
// OM-2013-0004475対応 20131124 星野 ADD END
		
// OM-2014-0000041対応 20140420 星野 ADD START
		parentMap.put("isAdchgFixFlg", "1");
		parentMap.put("adchgFixYmd", opeDate);
// OM-2014-0000041対応 20140420 星野 ADD END
		
		outputMap.put("KKSV032507CC", parentMap);
		return outputMap;
	}
	
	/**
	 * 解約希望年月日取得.
	 * <br>
	 * @param  kksv_9800_map  住所変更BPパラメータ
	 * @return 解約希望年月日p
	 */
	private String getDslKiboYmd(X31SDataBeanAccess bean) {

// OM-2013-0003803対応 20131106 星野 DEL START
//		// 移転元＿マンション物件コード
//		String itenmMansionBukkenCd = bean.sendMessageString(KKW04202SFConst.MANSION_BUKKEN_CD_BF, X31CWebConst.DATABEAN_GET_VALUE);
//		// 移転元のマンション物件コードがマンションの場合
//		if("001".equals(itenmMansionBukkenCd)) {
// OM-2013-0003803対応 20131106 星野 DEL END
		// 解約希望年月日
		return bean.sendMessageString("撤去住所＿解約年月日", X31CWebConst.DATABEAN_GET_VALUE);
// OM-2013-0003803対応 20131106 星野 DEL START
//		} else {
//			// 工事希望年月日
//			return bean.sendMessageString("撤去住所＿工事希望年月日", X31CWebConst.DATABEAN_GET_VALUE);
//		}
// OM-2013-0003803対応 20131106 星野 DEL END
	}
// LT-2013-0000349対応 20130711 星野 ADD END

// OM-2013-0001395 2013.09.04 T.TORIKAI メソッド追加	
	/**
	 * 上りマッピングをする（KKSV0325 JKKAdchgVLanGetCC 用）
	 * @param bean　[0]：住所変更登録確認画面
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	public HashMap setKKSV032508CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {

		if(bean == null && bean.length != 1) {
			return null;
		}

		// 電話サービスが継続・変更・追加の場合のみマッピングを行う
		String telChgDiv = bean[0].sendMessageString(KKW04202SFConst.EOH_TEL_USE_SVC_CHG_DIV, X31CWebConst.DATABEAN_GET_VALUE);
		if (!"0".equals(telChgDiv) && !"1".equals(telChgDiv)
// OM-2013-000XXXX対応 20130907 星野 ADD START
				&& !"3".equals(telChgDiv)
// OM-2013-000XXXX対応 20130907 星野 ADD END
		) {
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// サービス契約回線内訳番号
		parentMap.put("svc_kei_kaisen_ucwk_no", bean[0].sendMessageString(KKW04202SFConst.CTRL_AF_SVKEI_KSN_UW_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 工事案件番号
		parentMap.put("kojiak_no", bean[0].sendMessageString(KKW04202SFConst.NEWESTA_KOJIAK_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約番号
		parentMap.put("svc_kei_no", bean[0].sendMessageString(KKW04202SFConst.EOH_TEL_SVKEI_NO_AF, X31CWebConst.DATABEAN_GET_VALUE));
		// 申込書番号
		parentMap.put("mskm_mmsho_no", bean[0].sendMessageString(KKW04202SFConst.MSKM_MSKMSHO_NO, X31CWebConst.DATABEAN_GET_VALUE));
		
		// ANK-3652-00-00 ADD START
		// 制御＿提供方式パターンコード（ネット）先
		parentMap.put("tk_hoshiki_ptn_cd_net_saki", bean[0].sendMessageString(KKW04202SFConst.TK_HOSHIKI_PTN_CD_NET_SAKI, X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-3652-00-00 ADD END

		outputMap.put("KKSV032508CC", parentMap);
		return outputMap;
	}

// OM-2013-0005170対応 20140114 星野 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：住所変更登録確認画面
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	public HashMap setKKSV032510CC(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("func_cd", func_code);
		// ｅｏ光ネット＿変更後＿サービス契約番号 → 機器提供サービス送付先・設置場所住所変更ＣＣ(ネット).KEY_サービス契約番号
		String befNtSvcKeiNo = bean[0].sendMessageString("ｅｏ光ネット＿変更前＿サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE);
		String aftNtSvcKeiNo = bean[0].sendMessageString("ｅｏ光ネット＿変更後＿サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE);
		if(aftNtSvcKeiNo != null && !StringUtils.isEmpty(aftNtSvcKeiNo) && !aftNtSvcKeiNo.equals(befNtSvcKeiNo)) {
			parentMap.put( "svc_kei_no", aftNtSvcKeiNo );
		} else {
			parentMap.put( "svc_kei_no", befNtSvcKeiNo );
		}
		// 運用日付 → 運用日付
		parentMap.put("ope_date", opeDate);
		
		// 異動区分
		parentMap.put( "ido_div", bean[0].sendMessageString("共通＿異動区分", X31CWebConst.DATABEAN_GET_VALUE) );
		// 申込明細番号
		// OP層で設定
		// 移転先住所＿住所コード
		parentMap.put( "itens_ad_cd", bean[0].sendMessageString("移転先住所＿住所コード", X31CWebConst.DATABEAN_GET_VALUE) );
		// 移転先住所＿郵便番号
		parentMap.put( "itens_ad_pcd", bean[0].sendMessageString("移転先住所＿郵便番号", X31CWebConst.DATABEAN_GET_VALUE) );
		// 移転先住所＿都道府県名
		parentMap.put( "itens_ad_state", bean[0].sendMessageString("移転先住所＿都道府県", X31CWebConst.DATABEAN_GET_VALUE) );
		// 移転先住所＿市区町村名
		parentMap.put( "itens_ad_city", bean[0].sendMessageString("移転先住所＿市区町村", X31CWebConst.DATABEAN_GET_VALUE) );
		// 移転先住所＿大字通称名
		parentMap.put( "itens_ad_oaztsu", bean[0].sendMessageString("移転先住所＿大字通称名", X31CWebConst.DATABEAN_GET_VALUE) );
		// 移転先住所＿字丁目名
		parentMap.put( "itens_ad_azcho", bean[0].sendMessageString("移転先住所＿字丁目", X31CWebConst.DATABEAN_GET_VALUE) );
		// 移転先住所＿番地号
		parentMap.put( "itens_ad_bnchigo", bean[0].sendMessageString("移転先住所＿番地・号", X31CWebConst.DATABEAN_GET_VALUE) );
		// 移転先住所＿住所補記・建物名
		parentMap.put( "itens_ad_adrttm", bean[0].sendMessageString("移転先住所＿建物名", X31CWebConst.DATABEAN_GET_VALUE) );
		// 移転先住所＿住所補記・部屋番号
		parentMap.put( "itens_ad_adrrm", bean[0].sendMessageString("移転先住所＿部屋番号", X31CWebConst.DATABEAN_GET_VALUE) );
		// 移転先住所＿電話番号
		parentMap.put( "itens_tln", bean[0].sendMessageString("移転先住所＿電話番号", X31CWebConst.DATABEAN_GET_VALUE) );
		// 機器送付先郵便番号
		String kikiSohusPcd = bean[0].sendMessageString("移転先住所＿郵便番号", X31CWebConst.DATABEAN_GET_VALUE);
		// 機器送付先都道府県名
		String kikiSohusStateNm = bean[0].sendMessageString("移転先住所＿都道府県", X31CWebConst.DATABEAN_GET_VALUE);
		// 機器送付先市区町村名
		String kikiSohusCityNm = bean[0].sendMessageString("移転先住所＿市区町村", X31CWebConst.DATABEAN_GET_VALUE);
		// 機器送付先大字通称名
		String kikiSohusOaztsuNm = bean[0].sendMessageString("移転先住所＿大字通称名", X31CWebConst.DATABEAN_GET_VALUE);
		// 機器送付先字丁目名
		String kikiSohusAzchoNm = bean[0].sendMessageString("移転先住所＿字丁目", X31CWebConst.DATABEAN_GET_VALUE);
		// 機器送付先番地号
		String kikiSohusBnchigo = bean[0].sendMessageString("移転先住所＿番地・号", X31CWebConst.DATABEAN_GET_VALUE);
		// 機器送付先住所補記・建物名
		String kikiSohusAdrttm = bean[0].sendMessageString("移転先住所＿建物名", X31CWebConst.DATABEAN_GET_VALUE);
		// 機器送付先住所補記・部屋番号
		String kikiSohusAdrrm = bean[0].sendMessageString("移転先住所＿部屋番号", X31CWebConst.DATABEAN_GET_VALUE);
		
		// 送付先住所表示有の場合
		if( JKKCommonConst.UM_U.equals(bean[0].sendMessageString("制御＿機器送付先住所有無", X31CWebConst.DATABEAN_GET_VALUE)) ){
			// 機器送付先郵便番号
			kikiSohusPcd = bean[0].sendMessageString("機器送付先住所＿郵便番号", X31CWebConst.DATABEAN_GET_VALUE);
			// 機器送付先都道府県名
			kikiSohusStateNm = bean[0].sendMessageString("機器送付先住所＿都道府県", X31CWebConst.DATABEAN_GET_VALUE);
			// 機器送付先市区町村名
			kikiSohusCityNm = bean[0].sendMessageString("機器送付先住所＿市区町村", X31CWebConst.DATABEAN_GET_VALUE);
			// 機器送付先大字通称名
			kikiSohusOaztsuNm = bean[0].sendMessageString("機器送付先住所＿大字通称名", X31CWebConst.DATABEAN_GET_VALUE);
			// 機器送付先字丁目名
			kikiSohusAzchoNm = bean[0].sendMessageString("機器送付先住所＿字丁目", X31CWebConst.DATABEAN_GET_VALUE);
			// 機器送付先番地号
			kikiSohusBnchigo = bean[0].sendMessageString("機器送付先住所＿番地・号", X31CWebConst.DATABEAN_GET_VALUE);
			// 機器送付先住所補記・建物名
			kikiSohusAdrttm = bean[0].sendMessageString("機器送付先住所＿建物名", X31CWebConst.DATABEAN_GET_VALUE);
			// 機器送付先住所補記・部屋番号
			kikiSohusAdrrm = bean[0].sendMessageString("機器送付先住所＿部屋番号", X31CWebConst.DATABEAN_GET_VALUE);
		}


		// 機器送付先項目リスト
		String[] kikiSohuAdItemList = {
				kikiSohusPcd,
				kikiSohusStateNm,
				kikiSohusCityNm,
				kikiSohusOaztsuNm,
				kikiSohusAzchoNm,
				kikiSohusBnchigo,
				kikiSohusAdrttm,
				kikiSohusAdrrm
		};

		// 機器送付先_契約者住所差異フラグ
		parentMap.put("kiki_sohus_ksh_ad_sai_flg", getKeishaAdSaiFlg(bean[0], kikiSohuAdItemList));
		
		// 送付先住所表示有の場合
		if( JKKCommonConst.UM_U.equals(bean[0].sendMessageString("制御＿機器送付先住所有無", X31CWebConst.DATABEAN_GET_VALUE)) ){
			// 機器送付先手動入力フラグ … チェックボックス
			if( getCheckBoxBoolean(bean[0], "機器送付先住所＿手動入力区分") ){
				parentMap.put( "kiki_sohus_man_input_flg", "1" );
			} else {
				parentMap.put( "kiki_sohus_man_input_flg", "0" );
			}
			
			// 機器送付先住所コード
			parentMap.put("kiki_sohus_ad_cd", bean[0].sendMessageString("機器送付先住所＿住所コード", X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先郵便番号
			parentMap.put("kiki_sohus_pcd", bean[0].sendMessageString("機器送付先住所＿郵便番号", X31CWebConst.DATABEAN_GET_VALUE));
			//機器送付先都道府県名
			parentMap.put("kiki_sohus_state_nm", bean[0].sendMessageString("機器送付先住所＿都道府県", X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先市区町村名
			parentMap.put("kiki_sohus_city_nm", bean[0].sendMessageString("機器送付先住所＿市区町村", X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先大字通称名
			parentMap.put("kiki_sohus_oaztsu_nm", bean[0].sendMessageString("機器送付先住所＿大字通称名", X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先字丁目名
			parentMap.put("kiki_sohus_azcho_nm", bean[0].sendMessageString("機器送付先住所＿字丁目", X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先番地号
			parentMap.put("kiki_sohus_bnchigo", bean[0].sendMessageString("機器送付先住所＿番地・号", X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先住所補記・建物名
			parentMap.put("kiki_sohus_adrttm", bean[0].sendMessageString("機器送付先住所＿建物名", X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先住所補記・部屋番号
			parentMap.put("kiki_sohus_adrrm", bean[0].sendMessageString("機器送付先住所＿部屋番号", X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先名
			parentMap.put("kiki_sohus_nm", bean[0].sendMessageString("機器送付先住所＿名称", X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先カナ名
			parentMap.put("kiki_sohus_kana", bean[0].sendMessageString("機器送付先住所＿カナ名称", X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先電話番号
			parentMap.put("kiki_shs_tln", bean[0].sendMessageString("機器送付先住所＿電話番号", X31CWebConst.DATABEAN_GET_VALUE));
		}
		
		// 機器設置先郵便番号
		String kikiStcSkPcd = bean[0].sendMessageString("移転先住所＿郵便番号", X31CWebConst.DATABEAN_GET_VALUE);
		// 機器設置先都道府県名
		String kikiStcSkStateNm = bean[0].sendMessageString("移転先住所＿都道府県", X31CWebConst.DATABEAN_GET_VALUE);
		// 機器設置先市区町村名
		String kikiStcSkCityNm = bean[0].sendMessageString("移転先住所＿市区町村", X31CWebConst.DATABEAN_GET_VALUE);
		// 機器設置先大字通称名
		String kikiStcSkOaztsuNm = bean[0].sendMessageString("移転先住所＿大字通称名", X31CWebConst.DATABEAN_GET_VALUE);
		// 機器設置先字丁目名
		String kikiStcSkAzchoNm = bean[0].sendMessageString("移転先住所＿字丁目", X31CWebConst.DATABEAN_GET_VALUE);
		// 機器設置先番地号
		String kikiStcSkBnchigo = bean[0].sendMessageString("移転先住所＿番地・号", X31CWebConst.DATABEAN_GET_VALUE);
		// 機器設置先住所補記・建物名
		String kikiStcSkAdrttm = bean[0].sendMessageString("移転先住所＿建物名", X31CWebConst.DATABEAN_GET_VALUE);
		// 機器設置先住所補記・部屋番号
		String kikiStcSkAdrrm = bean[0].sendMessageString("移転先住所＿部屋番号", X31CWebConst.DATABEAN_GET_VALUE);


		// 機器設置先項目リスト
		String[] kikiStcAdItemList = {
				kikiStcSkPcd,
				kikiStcSkStateNm,
				kikiStcSkCityNm,
				kikiStcSkOaztsuNm,
				kikiStcSkAzchoNm,
				kikiStcSkBnchigo,
				kikiStcSkAdrttm,
				kikiStcSkAdrrm
		};

		// 機器設置先_契約者住所差異フラグ
		parentMap.put("kiki_stc_sk_ksh_ad_sai_flg", getKeishaAdSaiFlg(bean[0], kikiStcAdItemList));
		// マンション物件番号 → 機器提供サービス（回線）登録・引継ＣＣ.マンション物件番号
		parentMap.put("itens_mansion_bukken_no", bean[0].sendMessageString("マンション物件番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 機器設置先場所番号
		// OP層で設定
		// 予約適用年月日
		// OM-2014-0002783対応 20140902 田中 MOD START
//		parentMap.put("rsv_aply_ymd", (String)bean[0].sendMessageString("移転先住所＿入居予定年月日", X31CWebConst.DATABEAN_GET_VALUE) );
		parentMap.put("rsv_aply_ymd", this.opeDate);
		// OM-2014-0002783対応 20140902 田中 MOD END
		
		/** 機器提供サービス送付先・設置場所住所変更ＣＣ(ネット).住所変更明細情報リスト（機器提供サービス契約） */
		// 住所変更明細情報リスト(機器提供サービス契約)
		ArrayList<HashMap<String, Object>> adchg_dtl_list_kktk_svc_kei = new ArrayList<HashMap<String, Object>>();
		// 住所変更明細情報マップ(機器提供サービス契約)
		HashMap<String, Object> adchg_dtl_map_kktk_svc_kei = null;
		X31SDataBeanAccess bean_adchg_dtl_map_kktk_svc_kei = null;
		X31SDataBeanAccessArray bean_adchg_dtl_list_kktk_svc_kei = bean[0].getDataBeanArray("撤去住所＿利用中機器一覧");
		Integer kiki_rec_cnt = 0;
	
		int adchg_dtl_cnt_kktk_svc_kei = bean_adchg_dtl_list_kktk_svc_kei.getCount();
		for (int i = 0; i < adchg_dtl_cnt_kktk_svc_kei; i ++) {
			bean_adchg_dtl_map_kktk_svc_kei = bean_adchg_dtl_list_kktk_svc_kei.getDataBean(i);
			
			// ONU/V-ONUの場合
			String kiki_sbt_cd = bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("利用中機器＿機器区分", X31CWebConst.DATABEAN_GET_VALUE);
// OM-2014-0000598対応 20140210 星野 MOD START
//			if("D0".equals(kiki_sbt_cd) || "E0".equals(kiki_sbt_cd) || "60".equals(kiki_sbt_cd) || "70".equals(kiki_sbt_cd) || "90".equals(kiki_sbt_cd) || "R0".equals(kiki_sbt_cd)){
			if("D0".equals(kiki_sbt_cd) || "E0".equals(kiki_sbt_cd) || "60".equals(kiki_sbt_cd) || "70".equals(kiki_sbt_cd) || "90".equals(kiki_sbt_cd) ){
// OM-2014-0000598対応 20140210 星野 MOD END
				// STB/B-CAS/C-CASは利用中機器一覧には載っていないので考慮不要
				continue;
			}
			
			
			String tk_sbt_div = bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("利用中機器＿撤去区分", X31CWebConst.DATABEAN_GET_VALUE);
			// 「引継」以外
// OM-2014-0000598対応 20140210 星野 MOD START
//			if(!"0".equals(tk_sbt_div) && !"4".equals(tk_sbt_div)){
			if(!"0".equals(tk_sbt_div)){
// OM-2014-0000598対応 20140210 星野 MOD END
				// 処理対象外
				continue;
			}
			
			
			
			adchg_dtl_map_kktk_svc_kei = new HashMap<String, Object>();
	
			if (StringUtils.isEmpty(bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("利用中機器＿住所変更明細番号", X31CWebConst.DATABEAN_GET_VALUE))) {
				// 住所変更明細番号
				adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_adchg_dtl_no", "");
				// 変更対象契約番号 … 機器提供サービス契約番号
				adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_chg_tg_kei_no", bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("利用中機器＿変更前＿機器提供サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
				// 変更前識別番号
				adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_chbf_skbt_no", bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("利用中機器＿変更前＿機器提供サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
				// 変更後識別番号
				if("0".equals(bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("利用中機器＿撤去区分", X31CWebConst.DATABEAN_GET_VALUE))){
					adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_chaf_skbt_no", bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("利用中機器＿変更前＿機器提供サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
				} else {
				adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_chaf_skbt_no", bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("利用中機器＿変更後＿機器提供サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
				}
			} else {
				// 住所変更明細番号
				adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_adchg_dtl_no", bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("利用中機器＿住所変更明細番号", X31CWebConst.DATABEAN_GET_VALUE));
				// 変更対象契約番号 … 機器提供サービス契約番号
				adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_chg_tg_kei_no", bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("利用中機器＿変更前＿機器提供サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
				// 変更前識別番号
				adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_chbf_skbt_no", bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("利用中機器＿変更前＿機器変換番号", X31CWebConst.DATABEAN_GET_VALUE));
				// 変更後識別番号
				adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_chaf_skbt_no", bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("利用中機器＿変更後＿機器変換番号", X31CWebConst.DATABEAN_GET_VALUE));
				}
			// 宅内機器撤去種別
			adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_tkkiki_tekkyo_sbt_cd", bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("利用中機器＿撤去区分", X31CWebConst.DATABEAN_GET_VALUE));
			// 機器明細番号
			adchg_dtl_map_kktk_svc_kei.put("kiki_rec_cnt", kiki_rec_cnt.toString());
			kiki_rec_cnt ++;
			
			
			if("50".equals(kiki_sbt_cd)){
				adchg_dtl_map_kktk_svc_kei.put("mskm_dtl_no", bean[0].sendMessageString("申込＿変更前＿申込明細番号", X31CWebConst.DATABEAN_GET_VALUE, 1));
// OM-2014-0001642対応 20140428 星野 ADD START
// #85705 Modify START
//			}else if("R0".equals(kiki_sbt_cd)){
			}else if("R0".equals(kiki_sbt_cd) || "S0".equals(kiki_sbt_cd)){
// #85705 Modify END
				String mskmDtlNoNet = bean[0].sendMessageString("申込＿変更前＿申込明細番号", X31CWebConst.DATABEAN_GET_VALUE, 0);
				String netChgDiv = bean[0].sendMessageString("ｅｏ光ネット＿利用サービス変更区分", X31CWebConst.DATABEAN_GET_VALUE);
				// ネット解約以外はネットの申込明細番号を採用
				if(!StringUtils.isEmpty(mskmDtlNoNet) && !"4".equals(netChgDiv)){
					adchg_dtl_map_kktk_svc_kei.put("mskm_dtl_no", mskmDtlNoNet);
				}else{
					adchg_dtl_map_kktk_svc_kei.put("mskm_dtl_no", bean[0].sendMessageString("申込＿変更前＿申込明細番号", X31CWebConst.DATABEAN_GET_VALUE, 1));
				}
// OM-2014-0001642対応 20140428 星野 ADD END
			}else{
				adchg_dtl_map_kktk_svc_kei.put("mskm_dtl_no", bean[0].sendMessageString("申込＿変更前＿申込明細番号", X31CWebConst.DATABEAN_GET_VALUE, 0));
			}
			adchg_dtl_list_kktk_svc_kei.add(adchg_dtl_map_kktk_svc_kei);
		}
		
		/** 機器提供サービス送付先・設置場所住所変更ＣＣ(テレビ).住所変更明細情報リスト（機器提供サービス契約） */
	
		// 住所変更明細情報リスト(機器提供サービス契約) ← ＳＴＢ・テレビコース一覧
		bean_adchg_dtl_list_kktk_svc_kei = bean[0].getDataBeanArray("ｅｏ光テレビ＿ＳＴＢ／テレビコース一覧");
	
		X31SDataBeanAccessArray bean_adchg_dtl_list_kktk_svc_kei_kokan_sk = bean[0].getDataBeanArray("ｅｏ光テレビ＿ＳＴＢ／テレビコース一覧（交換先）");
	
		adchg_dtl_cnt_kktk_svc_kei = bean_adchg_dtl_list_kktk_svc_kei.getCount();
	
		for (int i = 0; i < adchg_dtl_cnt_kktk_svc_kei; i ++) {
			bean_adchg_dtl_map_kktk_svc_kei = bean_adchg_dtl_list_kktk_svc_kei.getDataBean(i);
			
			// ＳＴＢ異動区分「移動」以外は処理対象外
			String stb_ido_div = bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("ＳＴＢ／テレビ＿ＳＴＢ異動区分", X31CWebConst.DATABEAN_GET_VALUE);
// OM-2014-0000598対応 20140210 星野 MOD START
//			if("01".equals(stb_ido_div) || "03".equals(stb_ido_div) || StringUtils.isEmpty(stb_ido_div)){
			if(!"04".equals(stb_ido_div)){
// OM-2014-0000598対応 20140210 星野 MOD END
				continue;
			}
			
			adchg_dtl_map_kktk_svc_kei = new HashMap<String, Object>();
	
			// 宅内機器撤去種別 … ＳＴＢ異動区分(一部撤去 ⇒ 撤去)
			String tekkyo_sbt = "";
			if ("03".equals(bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("ＳＴＢ／テレビ＿ＳＴＢ異動区分", X31CWebConst.DATABEAN_GET_VALUE))) {
				tekkyo_sbt = "1";
			} else {
				tekkyo_sbt = "0";
			}
			// STB
			adchg_dtl_map_kktk_svc_kei = new HashMap<String, Object>();
			adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_adchg_dtl_no", "");
			adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_tkkiki_tekkyo_sbt_cd", tekkyo_sbt);
			adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_chg_tg_kei_no", bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("ＳＴＢ／テレビ＿変更前＿機器提供サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
			adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_chbf_skbt_no", bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("ＳＴＢ／テレビ＿変更前＿機器提供サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
			adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_chaf_skbt_no", bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("ＳＴＢ／テレビ＿変更前＿機器提供サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
			adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_svkei_uw_no", bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("ＳＴＢ／テレビ＿変更前＿サービス契約内訳番号", X31CWebConst.DATABEAN_GET_VALUE));
			adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_stb_ido_div", bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("ＳＴＢ／テレビ＿ＳＴＢ異動区分", X31CWebConst.DATABEAN_GET_VALUE));
			adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_taknkiki_sbt_cd", "A0");
			adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_taknkiki_hdd_capa", bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("ＳＴＢ／テレビ＿ＨＤＤ容量区分", X31CWebConst.DATABEAN_GET_VALUE));
			// 機器明細番号
			adchg_dtl_map_kktk_svc_kei.put("kiki_rec_cnt", kiki_rec_cnt.toString());
			kiki_rec_cnt ++;

			X31SDataBeanAccess bean_adchg_dtl_map_kktk_svc_kei_kokan_sk = bean_adchg_dtl_list_kktk_svc_kei_kokan_sk.getDataBean(i);
			adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_taknkiki_hdd_capa_kokan_sk", bean_adchg_dtl_map_kktk_svc_kei_kokan_sk.sendMessageString("ＳＴＢ／テレビ＿ＨＤＤ容量区分", X31CWebConst.DATABEAN_GET_VALUE));

			adchg_dtl_map_kktk_svc_kei.put("mskm_dtl_no", bean[0].sendMessageString("申込＿変更前＿申込明細番号", X31CWebConst.DATABEAN_GET_VALUE, 2));

			adchg_dtl_list_kktk_svc_kei.add(adchg_dtl_map_kktk_svc_kei);

// ▽▽▽ IT1-2018-0000185 ADD START
			// B-CASが存在する場合だけ登録する
			if (!JKKStringUtil.isNullBlank(bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("ＳＴＢ／テレビ＿変更前＿機器提供サービス契約番号＿ＢＣＡＳ", X31CWebConst.DATABEAN_GET_VALUE)))
			{
// ▲▲▲ IT1-2018-0000185 ADD START
				// B-CAS
				adchg_dtl_map_kktk_svc_kei = new HashMap<String, Object>();
				adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_adchg_dtl_no", "");
				adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_tkkiki_tekkyo_sbt_cd", tekkyo_sbt);
				adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_chg_tg_kei_no", bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("ＳＴＢ／テレビ＿変更前＿機器提供サービス契約番号＿ＢＣＡＳ", X31CWebConst.DATABEAN_GET_VALUE));
				adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_chbf_skbt_no", bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("ＳＴＢ／テレビ＿変更前＿機器提供サービス契約番号＿ＢＣＡＳ", X31CWebConst.DATABEAN_GET_VALUE));
				adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_chaf_skbt_no", bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("ＳＴＢ／テレビ＿変更前＿機器提供サービス契約番号＿ＢＣＡＳ", X31CWebConst.DATABEAN_GET_VALUE));
				adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_svkei_uw_no", bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("ＳＴＢ／テレビ＿変更前＿サービス契約内訳番号", X31CWebConst.DATABEAN_GET_VALUE));
				adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_stb_ido_div", bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("ＳＴＢ／テレビ＿ＳＴＢ異動区分", X31CWebConst.DATABEAN_GET_VALUE));
				adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_taknkiki_sbt_cd", "B0");
				adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_taknkiki_hdd_capa", bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("ＳＴＢ／テレビ＿ＨＤＤ容量区分", X31CWebConst.DATABEAN_GET_VALUE));
				// 機器明細番号
				adchg_dtl_map_kktk_svc_kei.put("kiki_rec_cnt", kiki_rec_cnt.toString());
				kiki_rec_cnt ++;
				
				adchg_dtl_map_kktk_svc_kei.put("mskm_dtl_no", bean[0].sendMessageString("申込＿変更前＿申込明細番号", X31CWebConst.DATABEAN_GET_VALUE, 2));
	
				adchg_dtl_list_kktk_svc_kei.add(adchg_dtl_map_kktk_svc_kei);
// ▽▽▽ IT1-2018-0000185 ADD START
			}
// ▲▲▲ IT1-2018-0000185 ADD START

			// C-CAS
			adchg_dtl_map_kktk_svc_kei = new HashMap<String, Object>();
			adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_adchg_dtl_no", "");
			adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_tkkiki_tekkyo_sbt_cd", tekkyo_sbt);
			adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_chg_tg_kei_no", bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("ＳＴＢ／テレビ＿変更前＿機器提供サービス契約番号＿ＣＣＡＳ", X31CWebConst.DATABEAN_GET_VALUE));
			adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_chbf_skbt_no", bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("ＳＴＢ／テレビ＿変更前＿機器提供サービス契約番号＿ＣＣＡＳ", X31CWebConst.DATABEAN_GET_VALUE));
			adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_chaf_skbt_no", bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("ＳＴＢ／テレビ＿変更前＿機器提供サービス契約番号＿ＣＣＡＳ", X31CWebConst.DATABEAN_GET_VALUE));
			adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_svkei_uw_no", bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("ＳＴＢ／テレビ＿変更前＿サービス契約内訳番号", X31CWebConst.DATABEAN_GET_VALUE));
			adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_stb_ido_div", bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("ＳＴＢ／テレビ＿ＳＴＢ異動区分", X31CWebConst.DATABEAN_GET_VALUE));
			adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_taknkiki_sbt_cd", "C0");
			adchg_dtl_map_kktk_svc_kei.put("adchg_dtl_taknkiki_hdd_capa", bean_adchg_dtl_map_kktk_svc_kei.sendMessageString("ＳＴＢ／テレビ＿ＳＴＢ異動区分", X31CWebConst.DATABEAN_GET_VALUE));
			// 機器明細番号
			adchg_dtl_map_kktk_svc_kei.put("kiki_rec_cnt", kiki_rec_cnt.toString());
			kiki_rec_cnt ++;
			
			adchg_dtl_map_kktk_svc_kei.put("mskm_dtl_no", bean[0].sendMessageString("申込＿変更前＿申込明細番号", X31CWebConst.DATABEAN_GET_VALUE, 2));

			adchg_dtl_list_kktk_svc_kei.add(adchg_dtl_map_kktk_svc_kei);
		}

		
		parentMap.put("adchg_dtl_list_kktk_svc_kei", adchg_dtl_list_kktk_svc_kei);
		
		parentMap.put("sysid", bean[0].sendMessageString("共通＿ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("svc_kei_kaisen_ucwk_no", bean[0].sendMessageString(KKW04202SFConst.CTRL_AF_SVKEI_KSN_UW_NO, X31CWebConst.DATABEAN_GET_VALUE));
// IT2-2014-0000238対応 20140611 星野 ADD START
		// ｅｏ光ネット＿利用サービス変更区分 → 通知書登録前処理ＣＣ.ｅｏ光ネット＿利用サービス変更区分
		parentMap.put("eoh_net_use_svc_chg_div", bean[0].sendMessageString("ｅｏ光ネット＿利用サービス変更区分", X31CWebConst.DATABEAN_GET_VALUE));
		// ｅｏ光ネット＿変更前＿サービス契約番号 → 通知書登録前処理ＣＣ.サービス契約番号＿ネット
		parentMap.put("svc_kei_no_net_bf", bean[0].sendMessageString("ｅｏ光ネット＿変更前＿サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("svc_kei_no_net_af", bean[0].sendMessageString("ｅｏ光ネット＿変更後＿サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
// IT2-2014-0000238対応 20140611 星野 ADD END
// OM-2014-0001642対応 20140428 星野 ADD START
		parentMap.put("new_kei_kais_ucwk_no", bean[0].sendMessageString(KKW04202SFConst.CTRL_AF_SVKEI_KSN_UW_NO, X31CWebConst.DATABEAN_GET_VALUE));
		String telChgDiv = bean[0].sendMessageString("ｅｏ光電話＿利用サービス変更区分", X31CWebConst.DATABEAN_GET_VALUE);
		/** 電話の利用サービス変更区分が変更・継続の場合 */
		if( "1".equals(telChgDiv) || "0".equals(telChgDiv) ){
			parentMap.put("tel_svc_kei_no", bean[0].sendMessageString("ｅｏ光電話＿変更前＿サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		}
// OM-2014-0001642対応 20140428 星野 ADD END
		
// ANK-2062-00-00 ADD START
		// 転居元に直送された多機能ルータが存在する場合の、転居先へのルータ切替処理に必要なパラメータをセット
		// ※ｅｏ光ネットのサービス契約番号は上記ステップで既に設定済のためセットしない
		// 移転先サービス契約番号（ｅｏ光電話）
		parentMap.put("svc_kei_no_tel_af",       bean[0].sendMessageString(KKW04202SFConst.EOH_TEL_SVKEI_NO_AF,             X31CWebConst.DATABEAN_GET_VALUE));
		// 移転先サービス契約回線内訳番号
		parentMap.put("itns_svkei_kisuw_no",     bean[0].sendMessageString(KKW04202SFConst.CMN_USE_PLC_SVKEI_KISN_UW_NO_AF, X31CWebConst.DATABEAN_GET_VALUE));
		// 移転元サービス契約回線内訳番号
		parentMap.put("itnm_svkei_kisuw_no",     bean[0].sendMessageString(KKW04202SFConst.CTRL_BF_SVKEI_KSN_UW_NO,         X31CWebConst.DATABEAN_GET_VALUE));
		// 住所変更番号
		parentMap.put("adchg_no",                bean[0].sendMessageString(KKW04202SFConst.CTRL_AD_CHG_MSKM_HON_ADD_NO,     X31CWebConst.DATABEAN_GET_VALUE));
		// ※eo光ネット＿利用サービス変更区分は上記ステップで既に設定済のためセットしない
		// ｅｏ光電話＿利用サービス変更区分
		parentMap.put("eoh_tel_use_svc_chg_div", bean[0].sendMessageString(KKW04202SFConst.EOH_TEL_USE_SVC_CHG_DIV,         X31CWebConst.DATABEAN_GET_VALUE));
		
		// 変更前_申込明細番号（ネット）
		parentMap.put("net_mskm_dtl_no",         bean[0].sendMessageString(KKW04202SFConst.MSKM_DTL_NO_BF, X31CWebConst.DATABEAN_GET_VALUE, 0));
		// 変更前_申込明細番号（電話）
		parentMap.put("tel_mskm_dtl_no",         bean[0].sendMessageString(KKW04202SFConst.MSKM_DTL_NO_BF, X31CWebConst.DATABEAN_GET_VALUE, 1));
// ANK-2062-00-00 ADD END

		outputMap.put("KKSV032510CC", parentMap);
		return outputMap;

	}

	/**
	 * 契約者情報の住所と比較します。
	 * <br>
	 */
	public String getKeishaAdSaiFlg(X31SDataBeanAccess bean, String[] kikiSohuAdItemList){

		
		// 契約者住所
		String[] contractorAdrArray = new String[]{
				bean.sendMessageString("共通＿契約者住所＿郵便番号", X31CWebConst.DATABEAN_GET_VALUE),
				bean.sendMessageString("共通＿契約者住所＿都道府県", X31CWebConst.DATABEAN_GET_VALUE),
				bean.sendMessageString("共通＿契約者住所＿市区町村", X31CWebConst.DATABEAN_GET_VALUE),
				bean.sendMessageString("共通＿契約者住所＿大字通称名", X31CWebConst.DATABEAN_GET_VALUE),
				bean.sendMessageString("共通＿契約者住所＿字丁目", X31CWebConst.DATABEAN_GET_VALUE),
				bean.sendMessageString("共通＿契約者住所＿番地・号", X31CWebConst.DATABEAN_GET_VALUE),
				bean.sendMessageString("共通＿契約者住所＿建物名", X31CWebConst.DATABEAN_GET_VALUE),
				bean.sendMessageString("共通＿契約者住所＿部屋番号", X31CWebConst.DATABEAN_GET_VALUE)
		};
		
		// 転居先住所
		String[] sakiAdrArray = new String[]{
			bean.sendMessageString("移転先住所＿郵便番号", X31CWebConst.DATABEAN_GET_VALUE),
			bean.sendMessageString("移転先住所＿都道府県", X31CWebConst.DATABEAN_GET_VALUE),
			bean.sendMessageString("移転先住所＿市区町村", X31CWebConst.DATABEAN_GET_VALUE),
			bean.sendMessageString("移転先住所＿大字通称名", X31CWebConst.DATABEAN_GET_VALUE),
			bean.sendMessageString("移転先住所＿字丁目", X31CWebConst.DATABEAN_GET_VALUE),
			bean.sendMessageString("移転先住所＿番地・号", X31CWebConst.DATABEAN_GET_VALUE),
			bean.sendMessageString("移転先住所＿建物名", X31CWebConst.DATABEAN_GET_VALUE),
			bean.sendMessageString("移転先住所＿部屋番号", X31CWebConst.DATABEAN_GET_VALUE)
		};
		
		// 契約者住所変更がある場合
		if( getCheckBoxBoolean( bean, "移転先同時住所変更＿契約者選択区分") ){
			// 契約者住所の変わりに転居先住所を使う
			contractorAdrArray = sakiAdrArray;
		}
		
		
		for(int i=0; i<kikiSohuAdItemList.length; i++){
			if(!kikiSohuAdItemList[i].equals(contractorAdrArray[i])){
				// 差異あり
				return "1";
			}
		}
		
		// 差異なし
		return "0";
	}

	/**
	 * チェックボックスの状態を取得する。
	 * <br>
	 * @param		svcFormBean	対象のフォーム
	 * @param		target		対象のチェックボックス名
	 * @return		checked		チェック状態
	 * @exception	Exception	例外が発生した場合
	 */
	private boolean getCheckBoxBoolean(X31SDataBeanAccess svcFormBean, String target){
	
		X31SDataBeanAccessArray tmpBeanArray = svcFormBean.getDataBeanArray(target);
		if ( (tmpBeanArray == null) || (tmpBeanArray.getCount() <= 0) ) {
			return false;
		}
		X31SDataBeanAccess tmpBean = tmpBeanArray.getDataBean(0);
	
		return tmpBean.sendMessageBoolean(KKW04202SFConst.CHECK_STA_02, X31CWebConst.DATABEAN_GET_VALUE);
	}


// OM-2013-0005170対応 20140114 星野 ADD END
	
// ANK-1578-00-00 2014.01.20 T.TORIKAI メソッド追加（IT2-2-14-0000046）
	/**
	 * 上りマッピングをする（機器オプション情報変更CC（サービス提供中へ変更））
	 * @param bean　[0]：住所変更登録確認画面
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV032511CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {

		if (bean == null || bean.length != 1) {
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
// IT2-2014-0000089対応 20140127 星野 ADD START
		parentMap.put("func_cd", func_code);
// IT2-2014-0000089対応 20140127 星野 ADD END

		// 住所変更番号
		parentMap.put("adchg_no", bean[0].sendMessageString(KKW04202SFConst.CTRL_AD_CHG_MSKM_HON_ADD_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約番号（ネット）
		parentMap.put("net_svc_kei_no", bean[0].sendMessageString(KKW04202SFConst.EOH_NET_SVKEI_NO_AF, X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約番号（電話）
		parentMap.put("tel_svc_kei_no", bean[0].sendMessageString(KKW04202SFConst.EOH_TEL_SVKEI_NO_AF, X31CWebConst.DATABEAN_GET_VALUE));
		// 異動区分
		parentMap.put("ido_div", JKKCommonConst.IDO_DIV_VALUE_00020);
		
// IT2-2014-0000089対応 20140127 星野 ADD START
		parentMap.put("net_mskm_dtl_no", bean[0].sendMessageString("申込＿変更前＿申込明細番号", X31CWebConst.DATABEAN_GET_VALUE, 0));
		parentMap.put("tel_mskm_dtl_no", bean[0].sendMessageString("申込＿変更前＿申込明細番号", X31CWebConst.DATABEAN_GET_VALUE, 1));
// IT2-2014-0000089対応 20140127 星野 ADD END

		outputMap.put("KKSV032511CC", parentMap);
		return outputMap;
	}
	
	// ANK-2199-00-00 2014/08/15 add start
	/**
	 * 上りマッピングをする（解約実行CC）
	 * @param bean　[0]：住所変更登録確認画面
	 * @param outputMap
	 * @param func_code　機能コード
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV032512CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String orgCd, String orgNm) throws Exception
	{
		if(bean == null)
		{
			return null;
		}
	
		if(bean.length != 1)
		{
			return null;
		}
		
		String kojiAkStatTv = bean[0].sendMessageString( KKW04202SFConst.NEW_KOJIAK_NO_TV_STATE, X31CWebConst.DATABEAN_GET_VALUE );
		//TV解約の必要がなければ解約実行CCのパラメータはnull
		if( StringUtils.isEmpty(kojiAkStatTv) || !JKKCommonConst.KOJIAK_STAT_900.equals(kojiAkStatTv) ){
			outputMap.put("KKSV032512CC", null);
			return outputMap;
		}
	
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
	
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
	
		// "01" → 解約実行CC（eoテレビ解約）.起動元コード
		parentMap.put("kido_cd", "01");
		// 共通＿ＳＹＳＩＤ → 解約実行CC（eoテレビ解約）.SYSID
		parentMap.put("sysid", bean[0].sendMessageString("共通＿ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// ｅｏ光テレビ＿変更前＿サービス契約番号 → 解約実行CC（eoテレビ解約）.サービス契約番号
		parentMap.put( "svc_kei_no", bean[0].sendMessageString(KKW04202SFConst.EOH_TV_SVKEI_NO_BF, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 解約実行CC（eoテレビ解約）.サービス終了年月日
		parentMap.put("svc_endymd",opeDate);
		// 共通＿異動区分 → 解約実行CC（eoテレビ解約）.異動区分
		parentMap.put("ido_div", bean[0].sendMessageString("共通＿異動区分", X31CWebConst.DATABEAN_GET_VALUE));
		// 申込明細番号
		parentMap.put("mskm_dtl_no",  bean[0].sendMessageString("申込＿変更前＿申込明細番号", X31CWebConst.DATABEAN_GET_VALUE, 2));
		
		// "01"（解約） → 解約実行CC（eoテレビ解約）.住所変更内異動区分
		parentMap.put("adchg_ido_div", "01");
		
		// null → 解約実行CC（eoテレビ解約）.業務連絡備考
		parentMap.put("work_rrk_biko", null);
		// 解約実行CC（eoテレビ解約）.サービス課金終了年月日
		// 工事案件番号からMappingCCで設定
		parentMap.put("tekkyo_kojiak_no_tv", bean[0].sendMessageString("撤去住所＿テレビ＿工事案件番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		// null → 解約実行CC（eo光テレビ解約）.標準工事費コード
		parentMap.put("stdard_kojihi_cd", null);
		// ｅｏ光テレビ＿違約金発生区分プルダウン → 解約実行CC（eoテレビ解約）.違約金発生コード
		parentMap.put("pnlty_hassei_cd", getPdnSelectedCd(bean[0], "ｅｏ光テレビ＿違約金発生区分プルダウン") );
		//  → 解約実行CC（eoテレビ解約）.異動理由明細リスト
		parentMap.put("ido_list", getIdoRdnList( bean ));
		
		// 組織コード
		parentMap.put("org_cd", orgCd);
		// 組織名
		parentMap.put("org_nm", orgNm);
		
		outputMap.put("KKSV032512CC", parentMap);
		return outputMap;
	}
	
	/**
	 * 異動理由明細リストを生成する。
	 * <br>
	 * @param		bean		対象のフォーム
	 * @return		dsl_run_trgt_map_list_ido_list	異動理由明細リスト
	 * @exception	Exception	例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private ArrayList getIdoRdnList(X31SDataBeanAccess[] bean) throws Exception {
	
		// 解約実行対象データリスト.異動理由明細リスト
		HashMap<String, Object> dsl_run_trgt_map_list_ido_map = new HashMap<String, Object>();
		ArrayList<HashMap> dsl_run_trgt_map_list_ido_list = new ArrayList<HashMap>();
		int count = 0;
		count = (Integer)bean[0].sendMessage(KKW04202SFConst.CTRL_IDO_RSN, X31CWebConst.DATABEAN_GET_COUNT);
		for ( int i = 0; i < count; i ++ ) {
			dsl_run_trgt_map_list_ido_map = new HashMap<String, Object>();
	
			// ○ 解約実行対象データリスト.異動理由明細リスト.異動理由コード
			dsl_run_trgt_map_list_ido_map.put( "ido_rsn_cd", bean[0].sendMessageString(KKW04202SFConst.CTRL_IDO_RSN, X31CWebConst.DATABEAN_GET_VALUE, i) );
	
			dsl_run_trgt_map_list_ido_list.add( dsl_run_trgt_map_list_ido_map );
		}
	
		return dsl_run_trgt_map_list_ido_list;
	}
	
	/**
	 * 工事希望年月日取得.
	 * <br>
	 * @param  kksv_9800_map  住所変更BPパラメータ
	 * @return 工事希望年月日p
	 */
	private String getKojiKiboYmd(X31SDataBeanAccess bean){
		
		if( StringUtils.isEmpty(bean.sendMessageString("撤去住所＿工事希望年月日", X31CWebConst.DATABEAN_GET_VALUE)) ){
			
			// 工事希望年月日が未入力の場合は解約年月日を返却
			return bean.sendMessageString("撤去住所＿解約年月日", X31CWebConst.DATABEAN_GET_VALUE);
			
		} else {
			
			// 工事希望年月日
			return bean.sendMessageString("撤去住所＿工事希望年月日", X31CWebConst.DATABEAN_GET_VALUE);
			
		}
		
	}
	// ANK-2199-00-00 2014/08/15 add end
	
	// OM-2014-0002802対応 20140925 田中 ADD START
	/**
	 * 上りマッピングをする（機器提供サービス契約解約（住所変更）CC）
	 * @param bean　[0]：住所変更登録確認画面
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV032513CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {

		if (bean == null || bean.length != 1) {
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		parentMap.put("func_cd", func_code);

		// 住所変更番号
		parentMap.put("adchg_no", bean[0].sendMessageString(KKW04202SFConst.CTRL_AD_CHG_MSKM_HON_ADD_NO, X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("mskmDtlNoNet", bean[0].sendMessageString("申込＿変更前＿申込明細番号", X31CWebConst.DATABEAN_GET_VALUE, 0));
		parentMap.put("mskmDtlNoTel", bean[0].sendMessageString("申込＿変更前＿申込明細番号", X31CWebConst.DATABEAN_GET_VALUE, 1));
		parentMap.put("mskmDtlNoTv", bean[0].sendMessageString("申込＿変更前＿申込明細番号", X31CWebConst.DATABEAN_GET_VALUE, 2));
		parentMap.put("sysid", bean[0].sendMessageString("共通＿ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-4315-00-00 ADD START
		// 撤去工事解約希望年月日
		parentMap.put("tppv_tkkj_dsl_kibo_ymd", getDslKiboYmd(bean[0]));
		// ANK-4315-00-00 ADD END
		outputMap.put("KKSV032513CC", parentMap);
		return outputMap;
	}
	// OM-2014-0002802対応 20140925 田中 ADD END
	
	// OM-2016-0001249 2016/06/02 ADD START
	/**
	 * 上りマッピングをする（住所変更異動予約反映CC）
	 * @param bean　[0]：住所変更登録確認画面
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV032514CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {

		if (bean == null || bean.length != 1) {
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 住所変更番号 ← 制御＿住所変更申込＿本登録番号
		parentMap.put("adchg_no", bean[0].sendMessageString(KKW04202SFConst.CTRL_AD_CHG_MSKM_HON_ADD_NO, X31CWebConst.DATABEAN_GET_VALUE));
		
		// SYSID ← 共通＿ＳＹＳＩＤ
		parentMap.put("sysid", bean[0].sendMessageString(KKW04202SFConst.CMN_SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		
		// サービス契約回線内訳番号 ← 制御＿変更前サービス契約回線内訳番号
		parentMap.put("svc_kei_kaisen_ucwk_no", bean[0].sendMessageString(KKW04202SFConst.CTRL_BF_SVKEI_KSN_UW_NO, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV032514CC", parentMap);
		
		return outputMap;
	}
	// OM-2016-0001249 2016/06/02 ADD END

	// ANK-3754-00-00 ADD START
	/**
	 * 上りマッピングをする（住所変更確定他事業者契約異動通知CC_旧電話番号の解約依頼）
	 * @param bean　[0]：住所変更登録確認画面
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV032515CC(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);
		
		// 実行判定フラグ("1"(実行する)：番号変更)をせ取得する。
		String execJdgFlg = jdgeTelNoChg(bean);
		
		// 番号変更フラグ
		parentMap.put("exec_jdg_flg", execJdgFlg);
		
		// 処理区分（1：番号変更の旧電話番号の解約依頼）
		parentMap.put("trn_div", "1");
		
		// 住所変更番号を取得する
		String adchgNo = bean[0].sendMessageString(KKW04202SFConst.CTRL_AD_CHG_MSKM_HON_ADD_NO, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 住所変更番号
		parentMap.put("adchg_no", adchgNo);
		
		// KKSV032515CCの上りマッピング
		outputMap.put("KKSV032515CC", parentMap);
		
		// KKSV032516CC用の上りマッピング(住所変更確定他事業者契約異動通知CC_新電話番号の登録依頼)
		HashMap<String, Object> parentMap2 = new HashMap<String, Object>(parentMap);
		
		// 処理区分を"0"(番号変更の新電話番号の開始依頼）で上書きする。
		parentMap2.put("trn_div", "0");
		
		// KKSV032516CCの上りマッピング
		outputMap.put("KKSV032516CC", parentMap2);
		
		return outputMap;
	}

	/**
	 * 電話番号変更判定処理
	 * @param bean　[0]：住所変更登録確認画面
	 * @return string 0/1：番号変更ではない/番号変更である
	 */
	private String jdgeTelNoChg(X31SDataBeanAccess[] bean)
	{
		// 電話番号情報を取得
		X31SDataBeanAccessArray telInfoList = bean[0].getDataBeanArray(KKW04202SFConst.EOH_TEL_TLN_LIST);
		if (telInfoList == null || telInfoList.getCount() == 0)
		{
			// 電話の情報がないのでfalseを返す
			return "0";
		}
		
		X31SDataBeanAccess telInfo1 = null;
		X31SDataBeanAccess telInfo2 = null;
		
		if (telInfoList != null && telInfoList.getCount() > 0)
		{
			// 1番号の情報
			telInfo1 = telInfoList.getDataBean(0);
			// 2番号の情報
			telInfo2 = telInfoList.getDataBean(1);
		}
		
		// 1番号の番号変更の判定
		if (telInfo1 != null)
		{
			
			String bfSvcUwNo = (String)telInfo1.sendMessageString(KKW04202SFConst.TLN_SVKEI_UW_NO_BF_07, X31CWebConst.DATABEAN_GET_VALUE);
			String afSvcUwNo = (String)telInfo1.sendMessageString(KKW04202SFConst.TLN_AF_SVKEI_UW_NO_07, X31CWebConst.DATABEAN_GET_VALUE);
			
			if (bfSvcUwNo != null && afSvcUwNo != null && !"".equals(bfSvcUwNo) && !"".equals(afSvcUwNo) && !bfSvcUwNo.equals(afSvcUwNo))
			{
				// 電話番号変更の場合"1"を返す
				return "1";
			}
		}
		
		// 2番号の番号変更の判定
		if (telInfo2 != null)
		{
			
			String bfSvcUwNo = (String)telInfo2.sendMessageString(KKW04202SFConst.TLN_SVKEI_UW_NO_BF_07, X31CWebConst.DATABEAN_GET_VALUE);
			String afSvcUwNo = (String)telInfo2.sendMessageString(KKW04202SFConst.TLN_AF_SVKEI_UW_NO_07, X31CWebConst.DATABEAN_GET_VALUE);
			
			if (bfSvcUwNo != null && afSvcUwNo != null && !"".equals(bfSvcUwNo) && !"".equals(afSvcUwNo) && !bfSvcUwNo.equals(afSvcUwNo))
			{
				// 電話番号変更の場合"1"を返す
				return "1";
			}
		}
		return "0";
	}
	// ANK-3754-00-00 ADD END
// ▽▽▽ IT1-2024-0000030 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：住所変更登録確認画面
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV032517CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null || bean.length != 1)
		{
			return null;
		}
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 機能コード
		parentMap.put("func_code", func_code);
		
		// 住所変更番号
		parentMap.put("adchg_no", bean[0].sendMessageString(KKW04202SFConst.CTRL_AD_CHG_MSKM_HON_ADD_NO, X31CWebConst.DATABEAN_GET_VALUE));
		
		// KKSV032516CCの上りマッピング
		outputMap.put("KKSV032517CC", parentMap);
		
		return outputMap;
	}
// △△△ IT1-2024-0000030 ADD END

}
