/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0202_KKSV0202OPDBMapper
*	ソースファイル名：KKSV0202_KKSV0202OPDBMapper.java
*	作成者			：FJ
*	日付			：2011年11月18日
*＜機能概要＞
*	BP（サービス契約更新＿コース変更）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/11/18	FJ		新規作成
*	v3.00.00	2012/05/02	FJ藤本		ANK-0326-00-00  マンション設備管理用記事欄について
*	                                    ANK-0025-00-00	ギガルータ対応
*	v5.00.00	2013/01/24	FJ)脇田		ANK-1270-00-00	1ギガコースその他価格改定対応
*  v13.00.00	2015/03/11  FJ) 松本    ANK-2394-00-00  進捗タブ処理内容改善
*  v14.00.00	2015/07/06  FJ) 三浦    OM-2015-0001645  モバイルのコース変更時エラー発生対応。判定用としてメソッドのパラメータ追加。
*  v18.00.00	2015/09/01	FJ) 松本	ANK-2631-00-00	ワンストップ案件（ＳＴＥＰ１）コース変更時メール送信対応
*  v23.00.00	2016/01/15	FJ) 原田	ANK-2737-00-00	消費者保護ルール見直し対応
*  v31.00.00	2017/12/07	FJ) 山地	ANK-3136-00-00	OPMSハードウエア保守切れ対応(STEP2-2)
*  v31.00.01	2018/08/08	FJ) 中原	IT1-2018-0000143	設計要否、宅内調査要否の要不要登録不正
*  v39.00.00	2018/10/31	FJ)舘山		ANK-3412-00-00_５ギガ・１０ギガコース導入対応
*  v40.00.00	2019/01/23	FJ)舘山		ANK-3412-15-00【５ギガ・１０ギガ】メゾン工事設計要否の初期値設定
*  v51.00.01	2020/11/02	FJ)西窪		ANK-3949-00-00 Netflix導入対応（STEP1）
*  v52.00.00	2021/01/25	FJ)吉村		ANK-3987-00-00	Netflix導入対応（STEP2）
*  v56.00.00    2021/10/19  FJ)西窪   【ANK-4038-00-00】【eo定期】光ローゼット化対応
*  v63.00.00	2022/11/18	FJ)北谷   【OM-2021-0000384】HT→MZ住変確定後、同日内にコース変更を登録した際、設備情報連携、通知書データに不整合が発生する
*  v61.00.00	2023/01/04	FJ)澤田	  【ANK-4315-00-00】【eo定期】 eoホームゲートウェイ導入対応
*  v61.00.01    2023/11/07	FJ)舘山    【IT1-2023-0000064】工事入力ボタンが活性化しない
*  v75.00.00	2025/03/25	FJ)張     【ANK-4640-00-00】NTT卸対応（STEP1.5）
**********************************************************************/
package eo.web.webview.mapping;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
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 eo.common.constant.JPCOnlineMessageConstant;
import eo.web.webview.KKW00128SF.KKW00128SFConst;
import eo.web.webview.KKW00131SF.KKW00131SFConst;
import eo.web.webview.KKW00132SF.KKW00132SFConst;
import eo.web.webview.common.JCCWebCommon;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class KKSV0202_KKSV0202OPDBMapper {

	/**
	 * コンストラクタ
	 */
	public KKSV0202_KKSV0202OPDBMapper(){
	}


	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏＡＤＳＬ）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020201SC132(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {

		if(bean == null){
			return null;
		}

		if(bean.length != 1){
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// ＳＹＳＩＤ → お客様一意照会マップ.ＫＥＹ＿ＳＹＳＩＤ
		parentMap.put("key_sysid", bean[0].sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// 運用年月日 → お客様一意照会マップ.ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString("運用年月日", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV020201SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏＡＤＳＬ）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020202SC132(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {

		if(bean == null){
			return null;
		}

		if(bean.length != 1){
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// サービス契約番号 → サービス契約一意照会マップ.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 運用年月日 → サービス契約一意照会マップ.ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString("運用年月日", X31CWebConst.DATABEAN_GET_VALUE));
		// 最終更新年月日時分秒（サービス契約） → サービス契約一意照会マップ.最終更新年月日時分秒
		parentMap.put("last_upd_dtm", bean[0].sendMessageString("最終更新年月日時分秒（サービス契約）", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV020202SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏＡＤＳＬ）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020204SC132(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {

		if(bean == null){
			return null;
		}

		if(bean.length != 1){
			return null;
		}

		X31SDataBeanAccessArray arraybean = null;
		X31SDataBeanAccess beanTemp = null;
		ArrayList list = null;

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 部品呼び出し → 申込内容承認登録マップ.申込種別コード
		parentMap.put("mskm_sbt_cd", String.valueOf("00007"));
		// 運用年月日時分秒 → 申込内容承認登録マップ.申込受付年月日時分秒
		parentMap.put("mskm_uk_dtm", bean[0].sendMessageString("運用年月日時分秒", X31CWebConst.DATABEAN_GET_VALUE));
		// 運用年月日 → 申込内容承認登録マップ.申込年月日
		parentMap.put("mskm_ymd", bean[0].sendMessageString("運用年月日", X31CWebConst.DATABEAN_GET_VALUE));
		// 部品呼び出し → 申込内容承認登録マップ.コンシューマ営業用申込状態識別コード
		parentMap.put("consmbsn_mskm_stat_skbt_cd", String.valueOf("04"));

		beanTemp = bean[0];
		arraybean = beanTemp.getDataBeanArray("申込明細リスト");
		if(parentMap.containsKey("EKK0011D020CBSMsg1List")){
			list = (ArrayList)parentMap.get("EKK0011D020CBSMsg1List");
		}else{
			list = new ArrayList();
		}
		if(arraybean != null && arraybean.getCount() > 0){
			for(int i = 0; i < arraybean.getCount(); i++){
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				HashMap childMap = null;
				if(list.size() -1 >= i){
					childMap = (HashMap)list.get(i);
				}else{
					childMap = new HashMap();
				}

				// ANK-0397-00-00 2012/09/20 ADD START
				// 申込書番号 → 申込内容承認登録マップ.申込内容承認登録明細.申込書番号
				if (subbean != null) {
					childMap.put("mskmsho_no", bean[0].sendMessageString("申込書番号", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 申込書明細番号 → 申込内容承認登録マップ.申込内容承認登録明細.申込書明細番号
				if (subbean != null) {
					childMap.put("mskmsho_dtl_no", bean[0].sendMessageString("申込書明細番号", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// ANK-0397-00-00 2012/09/20 ADD END
				// 申込明細リスト.申込明細・申込形態コード → 申込内容承認登録マップ.申込内容承認登録明細.申込形態コード
				if (subbean != null) {
					childMap.put("mskm_form_cd", subbean.sendMessageString("申込明細・申込形態コード", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 申込明細リスト.申込明細・申込明細種別コード → 申込内容承認登録マップ.申込内容承認登録明細.申込明細種別コード
				if (subbean != null) {
					childMap.put("mskm_dtl_sbt_cd", subbean.sendMessageString("申込明細・申込明細種別コード", X31CWebConst.DATABEAN_GET_VALUE));
				}

				list.add(childMap);
			}
		}
		parentMap.put("EKK0011D020CBSMsg1List", list);

		outputMap.put("KKSV020204SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏＡＤＳＬ）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020205SC132(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {

		if(bean == null){
			return null;
		}

		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 料金プランのセット（リストボックスからの選択値の取得）
		X31SDataBeanAccess pcrs_subbean = bean[0].getDataBeanArray(KKW00132SFConst.PCRS_LIST).getDataBean(0);
		String idx = pcrs_subbean.sendMessageString(KKW00132SFConst.INDEX_10, X31CWebConst.DATABEAN_GET_VALUE);
		String pcrsCd = pcrs_subbean.sendMessageString(KKW00132SFConst.CD_LIST_10, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(idx));

		// 料金プランコードを作成
		String pplanCd = "P" + pcrsCd + "01";

		// 料金グループコード → サービス契約手続中料金プラン変更マップ.料金グループコード
		parentMap.put("prc_grp_cd", bean[0].sendMessageString("料金グループコード", X31CWebConst.DATABEAN_GET_VALUE));
		// 料金コースコード → サービス契約手続中料金プラン変更マップ.料金コースコード
		parentMap.put("pcrs_cd", pcrsCd);
		// 料金プランコード → サービス契約手続中料金プラン変更マップ.料金プランコード
		parentMap.put("pplan_cd", pplanCd);
		// 違約金発生区分ラベル → サービス契約手続中料金プラン変更マップ.違約金発生コード
		parentMap.put("pnlty_hassei_cd", bean[0].sendMessageString("違約金発生区分ラベル", X31CWebConst.DATABEAN_GET_VALUE));

		// 運用年月日 → サービス契約手続中料金プラン変更マップ.ＫＥＹ＿予約適用年月日
		parentMap.put("rsv_aply_ymd", bean[0].sendMessageString("運用年月日", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV020205SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏＡＤＳＬ）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020206SC132(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {

		if(bean == null){
			return null;
		}

		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 料金プランのセット（リストボックスからの選択値の取得）
		X31SDataBeanAccess pcrs_subbean = bean[0].getDataBeanArray(KKW00132SFConst.PCRS_LIST).getDataBean(0);
		String idx = pcrs_subbean.sendMessageString(KKW00132SFConst.INDEX_10, X31CWebConst.DATABEAN_GET_VALUE);
		String pcrsCd = pcrs_subbean.sendMessageString(KKW00132SFConst.CD_LIST_10, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(idx));

		// 料金プランコードを作成
		String pplanCd = "P" + pcrsCd + "01";

		// 料金グループコード → サービス契約料金プラン変更マップ.料金グループコード
		parentMap.put("prc_grp_cd", bean[0].sendMessageString("料金グループコード", X31CWebConst.DATABEAN_GET_VALUE));
		// 料金コースコード → サービス契約料金プラン変更マップ.料金コースコード
		parentMap.put("pcrs_cd", pcrsCd);
		// 料金プランコード → サービス契約料金プラン変更マップ.料金プランコード
		parentMap.put("pplan_cd", pplanCd);
		// 違約金発生区分ラベル → サービス契約料金プラン変更マップ.違約金発生コード
		parentMap.put("pnlty_hassei_cd", bean[0].sendMessageString("違約金発生区分ラベル", X31CWebConst.DATABEAN_GET_VALUE));

		// 運用年月日 → サービス契約料金プラン変更マップ.ＫＥＹ＿予約適用年月日
		parentMap.put("rsv_aply_ymd", bean[0].sendMessageString("運用年月日", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV020206SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏＡＤＳＬ）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020224SC132(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {


		if(bean == null){
			return null;
		}

		if(bean.length != 1){
			return null;
		}

		// IT2-2012-0000291 2012/04/22 ADD START
		String jimuCommisionAmnt = bean[0].sendMessageString("事務手数料・指定額", X31CWebConst.DATABEAN_GET_VALUE);
		jimuCommisionAmnt = jimuCommisionAmnt.replaceAll(",", "");
		// IT2-2012-0000291 2012/04/22 ADD END

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 事務手数料ラベル → 一時金設定登録（事務手数料）マップ.一時金設定コード
		parentMap.put("icjkn_sette_cd", bean[0].sendMessageString("事務手数料ラベル", X31CWebConst.DATABEAN_GET_VALUE));
		// IT2-2012-0000291 2012/04/22 MOD START
		// 事務手数料・指定額 → 一時金設定登録（事務手数料）マップ.一時金指定額
		parentMap.put("icjkn_shitei_amnt", jimuCommisionAmnt);
		// IT2-2012-0000291 2012/04/22 MOD END

		outputMap.put("KKSV020224SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏＡＤＳＬ）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020227SC132(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("kzkwrk_reqymd", bean[0].sendMessageString("運用年月日", X31CWebConst.DATABEAN_GET_VALUE));
//		// 認証ＩＤ → 申込明細照査・後続業務依頼マップ.機器認証ＩＤ
//		parentMap.put("kiki_ninsho_id", bean[0].sendMessageString("認証ＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
//		// 認証ＩＤパスワード → 申込明細照査・後続業務依頼マップ.機器認証ＩＤパスワード
//		parentMap.put("kiki_ninsho_id_pwd", bean[0].sendMessageString("認証ＩＤパスワード", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV020227SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏＡＤＳＬ）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020234SC132(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("pnlty_hassei_cd", bean[0].sendMessageString("違約金発生区分ラベル", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV020234SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏＡＤＳＬ）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020239SC132(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("pnlty_hassei_cd", bean[0].sendMessageString("違約金発生区分ラベル", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV020239SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏＡＤＳＬ）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020241SC132(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("pnlty_hassei_cd", bean[0].sendMessageString("違約金発生区分ラベル", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV020241SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏＡＤＳＬ）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020245SC132(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {

		if(bean == null){
			return null;
		}

		if(bean.length != 1){
			return null;
		}

		X31SDataBeanAccessArray arraybean = null;
		X31SDataBeanAccess beanTemp = null;
		ArrayList list = null;

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 異動区分 → 進捗登録マップ.異動区分
		parentMap.put("ido_div", bean[0].sendMessageString("異動区分", X31CWebConst.DATABEAN_GET_VALUE));
		// 運用年月日時分秒 → 進捗登録マップ.異動年月日時分秒
		parentMap.put("ido_dtm", bean[0].sendMessageString("運用年月日時分秒", X31CWebConst.DATABEAN_GET_VALUE));
		// 部品呼び出し → 進捗登録マップ.進捗ステータス
		// 20121106 ANK-1223-00-00_進捗補足事項編集対応 ADSLのコース変更は予約ではないため、進捗ステータス1421→1422に修正「UIA28_KK_40_進捗について.xlsx」参照 MOD START
		parentMap.put("prg_stat", String.valueOf("1422"));  //IT1-2012-0001308 2012/10/16  1421：コース変更予約
		// 20121106 ANK-1223-00-00_進捗補足事項編集対応 ADSLのコース変更は予約ではないため、進捗ステータス1421→1422に修正「UIA28_KK_40_進捗について.xlsx」参照  MOD END
		beanTemp = bean[0];
		arraybean = beanTemp.getDataBeanArray("異動理由明細リスト");
		if(parentMap.containsKey("EKK1091D010CBSMsg1List")){
			list = (ArrayList)parentMap.get("EKK1091D010CBSMsg1List");
		}else{
			list = new ArrayList();
		}
		if(arraybean != null && arraybean.getCount() > 0){
			for(int i = 0; i < arraybean.getCount(); i++){
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				HashMap childMap = null;
				if(list.size() -1 >= i){
					childMap = (HashMap)list.get(i);
				}else{
					childMap = new HashMap();
				}

				// 異動理由明細リスト.異動理由コード → 進捗登録マップ.異動理由明細.異動理由コード
				if (subbean != null) {
					childMap.put("ido_rsn_cd", subbean.sendMessageString("異動理由コード", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 異動理由明細リスト.異動理由メモ → 進捗登録マップ.異動理由明細.異動理由メモ
				if (subbean != null) {
					childMap.put("ido_rsn_memo", subbean.sendMessageString("異動理由メモ", X31CWebConst.DATABEAN_GET_VALUE));
				}
				list.add(childMap);
			}
		}
		parentMap.put("EKK1091D010CBSMsg1List", list);

		outputMap.put("KKSV020245SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏＡＤＳＬ）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020202SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {

		if(bean == null){
			return null;
		}

		if(bean.length != 1){
			return null;
		}

		X31SDataBeanAccess svcKeiInfo = bean[0].getDataBeanArray(KKW00128SFConst.EKK0081A010CBSMSG1LIST).getDataBean(0);

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// サービス契約番号 → サービス契約一意照会マップ.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 運用年月日 → サービス契約一意照会マップ.ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString("運用年月日", X31CWebConst.DATABEAN_GET_VALUE));
		// 最終更新年月日時分秒（サービス契約） → サービス契約一意照会マップ.最終更新年月日時分秒
		parentMap.put("last_upd_dtm", svcKeiInfo.sendMessageString(KKW00128SFConst.LAST_UPD_DTM_03, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV020202SC", parentMap);

		return outputMap;
	}


	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約情報更新（ｅｏモバイル）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	//ANK-4640-00-00 20250325 張 MOD START
	//public HashMap setKKSV020204SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
	public HashMap setKKSV020204SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, boolean isWaornkiflg) {
	//ANK-4640-00-00 20250325 張 MOD END
		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("consmbsn_mskm_stat_skbt_cd", "04");
		// 部品呼び出し → 申込内容承認登録マップ.申込種別コード
		// OM-2014-0000020 サービス提供中のネットをコース変更するとネットスタート割が重複して適用される 2014/01/07 START
//		// OM-2013-0005259 2013/12/25 MOD START
////		parentMap.put("mskm_sbt_cd", String.valueOf("00007"));
//		parentMap.put("mskm_sbt_cd", String.valueOf("00001"));
//		// OM-2013-0005259 2013/12/25 MOD END
		// 00007：コース変更申込を設定（OM-2013-0005259対応前に戻す）
		parentMap.put("mskm_sbt_cd", String.valueOf("00007"));
		// OM-2014-0000020 サービス提供中のネットをコース変更するとネットスタート割が重複して適用される 2014/01/07 END
		// 運用年月日時分秒 → 申込内容承認登録マップ.申込受付年月日時分秒
		parentMap.put("mskm_uk_dtm", bean[0].sendMessageString("運用年月日時分秒", X31CWebConst.DATABEAN_GET_VALUE));
		// 運用年月日 → 申込内容承認登録マップ.申込年月日
		parentMap.put("mskm_ymd", bean[0].sendMessageString("運用年月日", X31CWebConst.DATABEAN_GET_VALUE));

		List<Map<String, Object>> list =  new ArrayList<Map<String, Object>>();
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("mskm_dtl_no", "");
		map.put("kk0021_gene_add_dtm", "");
		map.put("mskm_dtl_stat", "");
//		map.put("mskmsho_no", "");
		map.put("web_uk_no", "");
		map.put("mskm_form_cd", "");
		map.put("mskm_dtl_sbt_cd", "");
		map.put("rrks_ktai_telno", "");
		map.put("rrks_offc_nm", "");
		map.put("dt_rrks_telno", "");
		map.put("new_mskm_sbt_cd", "");
		map.put("mskm_optnty_cd", "");
		map.put("mskm_route_cd", "");
		map.put("takcho_kibo_apo_kigen_ymd", "");
		map.put("koji_apo_rrks_shitei_cd", "");
		map.put("koji_apo_rrks_telno", "");
		map.put("rrk_jiko_add_dtm", "");
		map.put("mskm_rrks_mlad", "");
		map.put("koji_prg_tchi_mlad", "");
		map.put("rrk_jiko", "");
		map.put("kjsc_tch_ktai_mlad", "");
		map.put("ml_send_jgi_flg", "");
		map.put("ml_send_jgi_rsn_memo", "");
		map.put("bmp_mskm_rrks_tln", "");
		map.put("rrk_way_hoki", "");
		map.put("newconst_bukken_cd", "");
		map.put("hukkat_anken_flg", "");
		map.put("same_equip_re_mskm_cd", "");
		// v3.00.00 ANK-0326-00-00 ADD START
		map.put("manssbsys_rnki_yo_kijiran", bean[0].sendMessageString("マンション設備管理用記事欄",  X31CWebConst.DATABEAN_GET_VALUE));
		// v3.00.00 ANK-0326-00-00 ADD END
		// ANK-0397-00-00 2012/09/22 start
		//申込書番号
		map.put("mskmsho_no", bean[0].sendMessageString("申込書番号", X31CWebConst.DATABEAN_GET_VALUE));
		//申込書明細番号
		map.put("mskmsho_dtl_no", bean[0].sendMessageString("申込書明細番号", X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-0397-00-00 2012/09/22 end
		// ANK-1270-00-00 20130130 start
		//割引自動適用対象外フラグ
		map.put("wrib_auto_aply_tg_gai_flg", bean[0].sendMessageString("割引自動適用対象外フラグ", X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-1270-00-00 20130130 end
		//ANK-4640-00-00 20250325 張 ADD START
		//WAO連携可否フラグ
		if (isWaornkiflg)
		{
			parentMap.put("wao_rnki_yks_flg", bean[0].sendMessageString(KKW00128SFConst.WAO_RNKI_YKS_FLG_CSCH, X31CWebConst.DATABEAN_GET_VALUE));
		}
		else{
			parentMap.put("wao_rnki_yks_flg","");
		}
		//ANK-4640-00-00 20250325 張 ADD END
		
		list.add(map);
		parentMap.put("EKK0011D020CBSMsg1List", list);
		outputMap.put("KKSV020204SC", parentMap);

		return outputMap;
	}

	// IT1-2012-0000674 2012-06-06 EDIT_START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏＡＤＳＬ）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020205SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, boolean iyakFlg) {

		if(bean == null){
			return null;
		}

		if(bean.length != 1){
			return null;
		}

		X31SDataBeanAccess svcKeiInfo = bean[0].getDataBeanArray(KKW00128SFConst.EKK0081A010CBSMSG1LIST).getDataBean(0);

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 料金プランのセット（リストボックスからの選択値の取得）
		X31SDataBeanAccess pcrs_subbean = bean[0].getDataBeanArray(KKW00128SFConst.PCRS_LIST).getDataBean(0);
		String idx = pcrs_subbean.sendMessageString(KKW00128SFConst.INDEX_12, X31CWebConst.DATABEAN_GET_VALUE);
		// v3.00.00 ANK-0050-00-00 MOD START
		String pcrsListValue = pcrs_subbean.sendMessageString(KKW00128SFConst.CD_DIV_LIST_12, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(idx));
		// 料金プランコードを作成
		String pcrsCd = pcrsListValue.split(":")[0];
		String pplanCd = pcrsListValue.split(":")[1];
		// v3.00.00 ANK-0050-00-00 MOD START

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 料金グループコード → サービス契約手続中料金プラン変更マップ.料金グループコード
		parentMap.put("prc_grp_cd", svcKeiInfo.sendMessageString(KKW00128SFConst.PRC_GRP_CD_03, X31CWebConst.DATABEAN_GET_VALUE));
		// 料金コースラベル → サービス契約手続中料金プラン変更マップ.料金コースコード
		parentMap.put("pcrs_cd", pcrsCd);
		// 料金プランコード → サービス契約手続中料金プラン変更マップ.料金プランコード
		parentMap.put("pplan_cd", pplanCd);

		// ST2-2012-0001685 2012/09/24 ADD START
		// 提供方式契約番号をマッピング
		// 提供方式契約番号 → サービス契約手続中料金プラン変更マップ.提供方式契約番号
		parentMap.put("tk_hoshiki_kei_no", svcKeiInfo.sendMessageString(KKW00128SFConst.TK_HOSHIKI_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// ST2-2012-0001685 2012/09/24 ADD END

		if (iyakFlg)
		{
			// 違約金発生区分ラベル → サービス契約手続中料金プラン変更マップ.違約金発生コード
			parentMap.put("pnlty_hassei_cd", bean[0].sendMessageString(KKW00128SFConst.PNLTY_HASSEI_CD, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 運用年月日 → サービス契約料金プラン変更マップ.ＫＥＹ＿予約適用年月日
		String unyoYmd = (String)bean[0].sendMessageString("運用年月日", X31CWebConst.DATABEAN_GET_VALUE);
		parentMap.put("rsv_aply_ymd", getNextMonthFirstDay(unyoYmd));

		outputMap.put("KKSV020205SC", parentMap);

		return outputMap;
	}
	// IT1-2012-0000674 2012-06-06 EDIT_END

	// IT1-2012-0000674 2012-06-06 EDIT_START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏＡＤＳＬ）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020206SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, boolean iyakFlg) {

		if(bean == null){
			return null;
		}

		if(bean.length != 1){
			return null;
		}

		X31SDataBeanAccess svcKeiInfo = bean[0].getDataBeanArray(KKW00128SFConst.EKK0081A010CBSMSG1LIST).getDataBean(0);

		// 料金プランのセット（リストボックスからの選択値の取得）
		X31SDataBeanAccess pcrs_subbean = bean[0].getDataBeanArray(KKW00128SFConst.PCRS_LIST).getDataBean(0);
		String idx = pcrs_subbean.sendMessageString(KKW00128SFConst.INDEX_12, X31CWebConst.DATABEAN_GET_VALUE);
		String pcrsListValue = pcrs_subbean.sendMessageString(KKW00128SFConst.CD_DIV_LIST_12, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(idx));

		// 料金プランコードを作成
		String pcrsCd = pcrsListValue.split(":")[0];
		String pplanCd = pcrsListValue.split(":")[1];

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 料金グループコード → サービス契約手続中料金プラン変更マップ.料金グループコード
		parentMap.put("prc_grp_cd", svcKeiInfo.sendMessageString(KKW00128SFConst.PRC_GRP_CD_03, X31CWebConst.DATABEAN_GET_VALUE));
		// 料金コースラベル → サービス契約手続中料金プラン変更マップ.料金コースコード
		parentMap.put("pcrs_cd", pcrsCd);
		// 料金プランコード → サービス契約手続中料金プラン変更マップ.料金プランコード
		parentMap.put("pplan_cd", pplanCd);

		// ST2-2012-0001685 2012/09/24 ADD START
		// 提供方式契約番号をマッピング
		// 提供方式契約番号 → サービス契約料金プラン変更マップ.提供方式契約番号
		parentMap.put("tk_hoshiki_kei_no", svcKeiInfo.sendMessageString(KKW00128SFConst.TK_HOSHIKI_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// ST2-2012-0001685 2012/09/24 ADD END

		if (iyakFlg)
		{
			// 違約金発生区分ラベル → サービス契約手続中料金プラン変更マップ.違約金発生コード
			parentMap.put("pnlty_hassei_cd", bean[0].sendMessageString(KKW00128SFConst.PNLTY_HASSEI_CD, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 運用年月日 → サービス契約料金プラン変更マップ.ＫＥＹ＿予約適用年月日
		String unyoYmd = (String)bean[0].sendMessageString("運用年月日", X31CWebConst.DATABEAN_GET_VALUE);
		parentMap.put("rsv_aply_ymd", getNextMonthFirstDay(unyoYmd));

		outputMap.put("KKSV020206SC", parentMap);

		return outputMap;
	}
	// IT1-2012-0000674 2012-06-06 EDIT_END

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏＡＤＳＬ）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020224SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {


		if(bean == null){
			return null;
		}

		if(bean.length != 1){
			return null;
		}

		// 事務手数料のセット（リストボックスからの選択値の取得）
		X31SDataBeanAccessArray jimuCommisionInfo = bean[0].getDataBeanArray(KKW00128SFConst.JIMU_COMMISION_LIST);
		X31SDataBeanAccess jimuCommisionSubbean = jimuCommisionInfo.getDataBean(0);
		String idx1 = jimuCommisionSubbean.sendMessageString(KKW00128SFConst.INDEX_12, X31CWebConst.DATABEAN_GET_VALUE);

		// 事務手数料が非活性の場合は「無」をセット
		if (idx1 == null || idx1.length() == 0)
		{
			// 20130425 IT1-2013-0000991 事務手数料が非活性の場合、一時金は作成しないよう修正 MOD START
			return null;
			// 20130425 IT1-2013-0000991 事務手数料が非活性の場合、一時金は作成しないよう修正 MOD END
		}

		String jimuCommision = jimuCommisionSubbean.sendMessageString(KKW00128SFConst.CD_DIV_LIST_12, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(idx1));

		// IT2-2012-0000291 2012/04/22 ADD START
		String jimuCommisionAmnt = bean[0].sendMessageString("事務手数料・指定額", X31CWebConst.DATABEAN_GET_VALUE);
		jimuCommisionAmnt = jimuCommisionAmnt.replaceAll(",", "");
		// IT2-2012-0000291 2012/04/22 ADD END
		
		//ANK-3987-00-00 ADD START
		if (chkSameSpeedCrsChg(bean[0]))
		{
			//事務手数料を「無」に設定
			jimuCommision = "01";
			jimuCommisionAmnt = "";
		}
		//ANK-3987-00-00 ADD END

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 事務手数料ラベル → 一時金設定登録（事務手数料）マップ.一時金設定コード
		parentMap.put("icjkn_sette_cd", jimuCommision);
		// IT2-2012-0000291 2012/04/22 MOD START
		// 事務手数料・指定額 → 一時金設定登録（事務手数料）マップ.一時金指定額
		parentMap.put("icjkn_shitei_amnt", jimuCommisionAmnt);
		// IT2-2012-0000291 2012/04/22 MOD END

		outputMap.put("KKSV020224SC", parentMap);

		return outputMap;
	}

	// IT1-2012-0000674 2012-06-06 EDIT_START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏＡＤＳＬ）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020234SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, boolean iyakFlg) {

		if(bean == null){
			return null;
		}

		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		if (iyakFlg)
		{
			// 違約金発生区分ラベル → オプションサービス契約解約マップ.違約金発生コード
			parentMap.put("pnlty_hassei_cd", bean[0].sendMessageString(KKW00128SFConst.PNLTY_HASSEI_CD, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 運用年月日 → オプションサービス契約解約マップ.ＫＥＹ＿予約適用年月日
		String unyoYmd = (String)bean[0].sendMessageString("運用年月日", X31CWebConst.DATABEAN_GET_VALUE);
		parentMap.put("rsv_aply_ymd", getNextMonthFirstDay(unyoYmd));

		outputMap.put("KKSV020234SC", parentMap);

		return outputMap;
	}
	// IT1-2012-0000674 2012-06-06 EDIT_END

	// IT1-2012-0000674 2012-06-06 EDIT_START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏＡＤＳＬ）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020239SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, boolean iyakFlg) {

		if(bean == null){
			return null;
		}

		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		if (iyakFlg)
		{
			// 違約金発生区分ラベル → サービス契約内訳解約マップ.違約金発生コード
			parentMap.put("pnlty_hassei_cd", bean[0].sendMessageString(KKW00128SFConst.PNLTY_HASSEI_CD, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 運用年月日 → サービス契約内訳解約マップ.ＫＥＹ＿予約適用年月日
		String unyoYmd = (String)bean[0].sendMessageString("運用年月日", X31CWebConst.DATABEAN_GET_VALUE);
		parentMap.put("rsv_aply_ymd", getNextMonthFirstDay(unyoYmd));

		outputMap.put("KKSV020239SC", parentMap);

		return outputMap;
	}
	// IT1-2012-0000674 2012-06-06 EDIT_END

	// IT1-2012-0000674 2012-06-06 EDIT_START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏＡＤＳＬ）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020241SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, boolean iyakFlg) {

		if(bean == null){
			return null;
		}

		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		if (iyakFlg)
		{
			// 違約金発生区分ラベル → 割引サービス契約解約マップ.違約金発生コード
			parentMap.put("pnlty_hassei_cd", bean[0].sendMessageString(KKW00128SFConst.PNLTY_HASSEI_CD, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 運用年月日 → 割引サービス契約解約マップ.ＫＥＹ＿予約適用年月日
		String unyoYmd = (String)bean[0].sendMessageString("運用年月日", X31CWebConst.DATABEAN_GET_VALUE);
		parentMap.put("rsv_aply_ymd", getNextMonthFirstDay(unyoYmd));

		outputMap.put("KKSV020241SC", parentMap);

		return outputMap;
	}
	// IT1-2012-0000674 2012-06-06 EDIT_END

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約情報更新（ｅｏモバイル）
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param wrbk_svc_taisyogai_flg　割引サービス適用対象外フラグ　(ADD 2015/07/08 OM-2015-0001645)
	 */
	@SuppressWarnings("unchecked")
	// OM-2015-0001645 2015/07/06 MOD START
	// public HashMap setKKSV020245SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String svc_kei_stat) {
	public HashMap setKKSV020245SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String svc_kei_stat, boolean wrbk_svc_taisyogai_flg) {
	// OM-2015-0001645 2015/07/06 MOD END

		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("ido_div", bean[0].sendMessageString("異動区分", X31CWebConst.DATABEAN_GET_VALUE));
		// 
		parentMap.put("ido_dtm", bean[0].sendMessageString("運用年月日時分秒", X31CWebConst.DATABEAN_GET_VALUE));

		// 部品呼び出し → 進捗登録マップ.進捗ステータス
		String prgStat = "";
		if (svc_kei_stat != null && ! "".equals(svc_kei_stat)) {
			if ("020".equals(svc_kei_stat)) {
				prgStat = "1422";	// 1422：コース変更完了
			} else {
				prgStat = "1421";	// 1421：コース変更予約
			}
		} else {
			prgStat = "1421";		// 1421：コース変更予約
		}
		parentMap.put("prg_stat", prgStat);

		ArrayList list = null;
		Integer idoRsnCnt = (Integer)bean[0].sendMessage("異動理由", X31CWebConst.DATABEAN_GET_COUNT);
		if (parentMap.containsKey("EKK1091D010CBSMsg1List"))
		{
			list = (ArrayList)parentMap.get("EKK1091D010CBSMsg1List");
		}
		else
		{
			list = new ArrayList();
		}
		for (int i = 0; i < idoRsnCnt; i++)
		{
			HashMap childMap = new HashMap();
			// 異動理由明細リスト.異動理由コード → 進捗登録マップ.異動理由明細.異動理由コード
			childMap.put("ido_rsn_cd", bean[0].sendMessageString("異動理由", X31CWebConst.DATABEAN_GET_VALUE, i));
			// 異動理由明細リスト.異動理由メモ → 進捗登録マップ.異動理由明細.異動理由メモ
			childMap.put("ido_rsn_memo", bean[0].sendMessageString("異動理由メモ", X31CWebConst.DATABEAN_GET_VALUE));
			list.add(childMap);
		}
		
		// OM-2015-0001645 2015/07/06 ADD START
		// 呼び出し元がネットの場合、割引自動適用対象外フラグ処理を行う。
		if (wrbk_svc_taisyogai_flg)
		{
			// ANK-2394-00-00 2015/03/10 ADD START
			// 割引自動適用対象外フラグ → 進捗登録マップ.割引自動適用対象外フラグ
			parentMap.put("wrib_auto_aply_tg_gai_flg", bean[0].sendMessageString("割引自動適用対象外フラグ", X31CWebConst.DATABEAN_GET_VALUE));
			// ANK-2394-00-00 2015/03/10 ADD END
		}
		// OM-2015-0001645 2015/07/06 ADD END
		
		parentMap.put("EKK1091D010CBSMsg1List", list);

		outputMap.put("KKSV020245SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏＡＤＳＬ）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
//ANK-4640-00-00 20250325 張 MOD START
	//public HashMap setKKSV020227SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
	public HashMap setKKSV020227SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, boolean isWaornkiflg) {
//ANK-4640-00-00 20250325 張 MOD END
		if(bean == null){
			return null;
		}

		if(bean.length != 1){
			return null;
		}

//		X31SDataBeanAccess svcUcwkInfo = bean[0].getDataBeanArray(KKW00128SFConst.EKK0171A010CBSMSG1LIST).getDataBean(0);

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 運用年月日 → 申込明細照査・後続業務依頼マップ.後続業務依頼年月日
		parentMap.put("kzkwrk_reqymd", bean[0].sendMessageString("運用年月日", X31CWebConst.DATABEAN_GET_VALUE));
//		// 認証ＩＤ → 申込明細照査・後続業務依頼マップ.機器認証ＩＤ
//		parentMap.put("kiki_ninsho_id", svcUcwkInfo.sendMessageString(KKW00128SFConst.NINSHO_ID_06, X31CWebConst.DATABEAN_GET_VALUE));
//		// 認証ＩＤパスワード → 申込明細照査・後続業務依頼マップ.機器認証ＩＤパスワード
//		parentMap.put("kiki_ninsho_id_pwd", svcUcwkInfo.sendMessageString(KKW00128SFConst.NINSHO_ID_PWD_06, X31CWebConst.DATABEAN_GET_VALUE));
//ANK-4640-00-00 20250325 張 ADD START
		//WAO連携可否フラグ
		if (isWaornkiflg)
		{
			parentMap.put("wao_rnki_yks_flg", bean[0].sendMessageString(KKW00128SFConst.WAO_RNKI_YKS_FLG_CSCH, X31CWebConst.DATABEAN_GET_VALUE));
		}
		else{
			parentMap.put("wao_rnki_yks_flg","");
		}
//ANK-4640-00-00 20250325 張 ADD END
		
		outputMap.put("KKSV020227SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏＡＤＳＬ）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020225SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {


		if(bean == null){
			return null;
		}

		if(bean.length != 1){
			return null;
		}

		// 標準工事費のセット（リストボックスからの選択値の取得）
		X31SDataBeanAccessArray stdardKojihiInfo = bean[0].getDataBeanArray(KKW00128SFConst.STDARD_KOJIHI_LIST);
		X31SDataBeanAccess stdardKojihiBean = stdardKojihiInfo.getDataBean(0);
		String idx1 = stdardKojihiBean.sendMessageString(KKW00128SFConst.INDEX_12, X31CWebConst.DATABEAN_GET_VALUE);

		// 標準工事費が非活性の場合は「無」をセット
		if (idx1 == null || idx1.length() == 0)
		{
			// 20130425 IT1-2013-0000991 標準工事費が非活性の場合、一時金は作成しないよう修正 MOD START
			return null;
			// 20130425 IT1-2013-0000991 標準工事費が非活性の場合、一時金は作成しないよう修正 MOD END
		}

		String stdardKojihi = stdardKojihiBean.sendMessageString(KKW00128SFConst.CD_DIV_LIST_12,
				X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(idx1));

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 事務手数料ラベル → 一時金設定登録（事務手数料）マップ.一時金設定コード
		parentMap.put("icjkn_sette_cd", "0" + stdardKojihi);
//		// 事務手数料・指定額 → 一時金設定登録（事務手数料）マップ.一時金指定額
//		parentMap.put("icjkn_shitei_amnt", bean[0].sendMessageString("事務手数料・指定額", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV020225SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏＡＤＳＬ）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020231CC(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("koji_uk_cd", "007");

		// 工事受付詳細コード
		parentMap.put("koji_uk_dtl_cd", "50");

		// PON識別コード
		parentMap.put("pon_sbt_cd", bean[0].sendMessageString(KKW00128SFConst.PON_SBT_CD, X31CWebConst.DATABEAN_GET_VALUE));

		String ponJyokenCd = bean[0].sendMessageString("ＰＯＮ条件リスト", X31CWebConst.DATABEAN_GET_VALUE);
		String[] ponJyokenArray = ponJyokenCd.split(",");
		X31SDataBeanAccessArray pcrsList = bean[0].getDataBeanArray(KKW00128SFConst.PCRS_LIST);
		X31SDataBeanAccess pcrs = pcrsList.getDataBean(0);
		String strIdx = pcrs.sendMessageString(KKW00128SFConst.INDEX_12, X31CWebConst.DATABEAN_GET_VALUE);
		int idx = 0;

		if (strIdx != null && !"".equals(strIdx)) {
			idx = Integer.parseInt(strIdx);
			if (idx > 0) {
				idx--;
			}
		}

		// 料金コースPON条件コード
		parentMap.put("pcrs_pon_joken_cd", ponJyokenArray[idx]);

		// ST2-2012-0001429 2012/08/16 ADD START
		// 入力フラグONの場合、入力済み値を設定
		String koji_input_flg = bean[0].sendMessageString(KKW00128SFConst.KOJI_INPUT_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		if(koji_input_flg != null && koji_input_flg.equals("1"))
		{
			// ANK-3136-00-00 ADD START
			//宅内調査要否
			Boolean takcho_yh = bean[0].sendMessageBoolean(KKW00128SFConst.TAKCHO_YH, X31CWebConst.DATABEAN_GET_VALUE);
			if(takcho_yh)
			{
				// IT1-2018-0000143 MOD START
				//parentMap.put("takcho_yh", "1");
				parentMap.put("takcho_yh", "0");
				// IT1-2018-0000143 MOD END
			}
			else
			{
				// IT1-2018-0000143 MOD START
				//parentMap.put("takcho_yh", "0");
				parentMap.put("takcho_yh", "1");
				// IT1-2018-0000143 MOD END
			}
			//設計要否
			Boolean dsgn_yh = bean[0].sendMessageBoolean(KKW00128SFConst.DSGN_YH, X31CWebConst.DATABEAN_GET_VALUE);
			if(dsgn_yh)
			{
				// IT1-2018-0000143 MOD START
				//parentMap.put("dsgn_yh", "1");
				parentMap.put("dsgn_yh", "0");
				// IT1-2018-0000143 MOD END
			}
			else
			{
				// IT1-2018-0000143 MOD START
				//parentMap.put("dsgn_yh", "0");
				parentMap.put("dsgn_yh", "1");
				// IT1-2018-0000143 MOD END
			}
			//他システム連携_宅内調査要否
			Boolean tsyrn_takcho_yh = bean[0].sendMessageBoolean(KKW00128SFConst.TSYRN_TAKCHO_HUYO_FLG, X31CWebConst.DATABEAN_GET_VALUE);
			if(tsyrn_takcho_yh)
			{
				parentMap.put("tsyrn_takcho_yh", "0");
			}
			else
			{
				parentMap.put("tsyrn_takcho_yh", "1");
			}
			//他システム連携_承諾書要否
			Boolean tsyrn_sdaks_yh = bean[0].sendMessageBoolean(KKW00128SFConst.TSYRN_SDAKS_YH, X31CWebConst.DATABEAN_GET_VALUE);
			if(tsyrn_sdaks_yh)
			{
				parentMap.put("tsyrn_sdaks_yh", "1");
			}
			else
			{
				parentMap.put("tsyrn_sdaks_yh", "0");
			}
			//他システム連携_宅工事連絡先氏名
			parentMap.put("tsyrn_kj_rrks_nm", bean[0].sendMessageString(KKW00128SFConst.TSYRN_TKJ_RRKS_NM, X31CWebConst.DATABEAN_GET_VALUE));
			//他システム連携_宅工事連絡先電話番号
			parentMap.put("tsyrn_kj_rrks_tln", bean[0].sendMessageString(KKW00128SFConst.TSYRN_TKJ_RRKS_TLN, X31CWebConst.DATABEAN_GET_VALUE));
			//他システム連携_宅内調査時連絡先氏名
			parentMap.put("tsyrn_takcho_ji_rrks_nm", bean[0].sendMessageString(KKW00128SFConst.TSYRN_TAKCHO_JI_RRKS_NM, X31CWebConst.DATABEAN_GET_VALUE));
			//他システム連携_宅内調査時連絡先電話番号
			parentMap.put("tsyrn_takcho_ji_rrks_tln", bean[0].sendMessageString(KKW00128SFConst.TSYRN_TAKCHO_JI_RRKS_TLN, X31CWebConst.DATABEAN_GET_VALUE));
			//他システム連携_連絡希望日時
			parentMap.put("tsyrn_rrk_kibo_date", bean[0].sendMessageString(KKW00128SFConst.TSYRN_RRK_KIBO_DATE, X31CWebConst.DATABEAN_GET_VALUE));
			//他システム連携_立会者名
			parentMap.put("tsyrn_tachiaisha_nm", bean[0].sendMessageString(KKW00128SFConst.TSYRN_TACHIAISHA_NM, X31CWebConst.DATABEAN_GET_VALUE));
			//他システム連携_既存契約情報
			parentMap.put("tsyrn_kzn_kei_inf", bean[0].sendMessageString(KKW00128SFConst.TSYRN_KZN_KEI_INF, X31CWebConst.DATABEAN_GET_VALUE));
			//他システム連携_不備解消年月日
			parentMap.put("tsyrn_hbi_kaishou_ymd", bean[0].sendMessageString(KKW00128SFConst.TSYRN_HBI_KAISHOU_YMD, X31CWebConst.DATABEAN_GET_VALUE));
			//他システム連携_キャンペーン情報
			parentMap.put("tsyrn_campaign_inf", bean[0].sendMessageString(KKW00128SFConst.TSYRN_CAMPAIGN_INF, X31CWebConst.DATABEAN_GET_VALUE));
			//他システム連携_工事費用
			parentMap.put("tsyrn_koji_hi", bean[0].sendMessageString(KKW00128SFConst.TSYRN_KOJI_HI, X31CWebConst.DATABEAN_GET_VALUE));
			//他システム連携_同時工事情報
			parentMap.put("tsyrn_doji_koji_inf", bean[0].sendMessageString(KKW00128SFConst.TSYRN_DOJI_KOJI_INF, X31CWebConst.DATABEAN_GET_VALUE));
			//他システム連携_引越し施策要否
			Boolean tsyrn_hkks_sisak_yh = bean[0].sendMessageBoolean(KKW00128SFConst.TSYRN_HKKS_SISAK_YH, X31CWebConst.DATABEAN_GET_VALUE);
			if(tsyrn_hkks_sisak_yh)
			{
				parentMap.put("tsyrn_hkks_sisak_yh", "1");
			}
			else
			{
				parentMap.put("tsyrn_hkks_sisak_yh", "0");
			}
			//他システム連携_建替時新設案件要否
			Boolean tsyrn_ttk_ji_nsank_yh = bean[0].sendMessageBoolean(KKW00128SFConst.TSYRN_TTK_JI_NSANK_YH, X31CWebConst.DATABEAN_GET_VALUE);
			if(tsyrn_ttk_ji_nsank_yh)
			{
				parentMap.put("tsyrn_ttk_ji_nsank_yh", "1");
			}
			else
			{
				parentMap.put("tsyrn_ttk_ji_nsank_yh", "0");
			}
			//他システム連携_地図有無
			Boolean tsyrn_map_um = bean[0].sendMessageBoolean(KKW00128SFConst.TSYRN_MAP_UM, X31CWebConst.DATABEAN_GET_VALUE);
			if(tsyrn_map_um)
			{
				parentMap.put("tsyrn_map_um", "1");
			}
			else
			{
				parentMap.put("tsyrn_map_um", "0");
			}
			// ANK-3136-00-00 ADD END
			// 連絡手段補記
			parentMap.put("kojiak_biko", bean[0].sendMessageString(KKW00128SFConst.RRK_WAY_HOKI, X31CWebConst.DATABEAN_GET_VALUE));
			// 復活案件
			Boolean hukkat_anken_flg = bean[0].sendMessageBoolean(KKW00128SFConst.HUKKAT_ANKEN, X31CWebConst.DATABEAN_GET_VALUE);
			if(hukkat_anken_flg)
			{
				parentMap.put("hukkat_anken_flg", "1");
			}
			else
			{
				parentMap.put("hukkat_anken_flg", "0");
			}

// IT1-2013-0001224 EDIT_START
//			// ルーター種別
//			String router_sbt = bean[0].sendMessageString(KKW00128SFConst.ROUTER_SBT, X31CWebConst.DATABEAN_GET_VALUE);
//			if(router_sbt.length() == 1)
//			{
//				router_sbt = "0" + router_sbt;
//			}
//			parentMap.put("router_kind_cd", router_sbt);
			
			// ルーター種別
			parentMap.put("router_kind_cd", bean[0].sendMessageString(KKW00128SFConst.ROUTER_SBT, X31CWebConst.DATABEAN_GET_VALUE));
// IT1-2013-0001224 EDIT_END
			
			// 20121001 ANK-0275-01-00 ２００Ｍ・１ギガグレードアップキャンペーン本格対応 ADD START
			// 同時案件有無 → 工事案件CC.同時ＴＶ追加工事案件有無
			parentMap.put("tv_kei_shosa_stay_um", bean[0].sendMessageString(KKW00128SFConst.DOUJI_ANKEN_UM, X31CWebConst.DATABEAN_GET_VALUE));
			// 20121001 ANK-0275-01-00 ２００Ｍ・１ギガグレードアップキャンペーン本格対応 ADD END
		}
		// IT1-2018-0000143 ADD START
		// 工事情報登録画面に遷移していない場合、設計要否、宅内調査要否を「要」固定で設定
		else
		{
			// 工事有無判定
			boolean isKojiAri = false;
			// PON種別コード
			String ponSbtCd = bean[0].sendMessageString("ＰＯＮ種別コード", X31CWebConst.DATABEAN_GET_VALUE);
			// 料金コースPON条件コード
			String pcrsPonJokenCd = ponJyokenArray[idx];
			// PON種別コード:E-PON
			if ("1".equals(ponSbtCd))
			{
				// 料金コースPON条件コード:GE-PONのみまたは10GE-PONのみ
				if ("2".equals(pcrsPonJokenCd) || "4".equals(pcrsPonJokenCd))
				{
					isKojiAri = true;
				}
			}
			// PON種別コード:GE-PON
			else if ("2".equals(ponSbtCd))
			{
				// 料金コースPON条件コード:10GE-PONのみ
				if ("4".equals(pcrsPonJokenCd))
				{
					isKojiAri = true;
				}
			}
			// 工事が有る場合
			if (isKojiAri)
			{
// ▽▽▽ ANK-3412-15-00 ADD START
				// 初期値設定がある場合、値を設定する
				if (koji_input_flg != null && koji_input_flg.equals("2"))
				{
					//宅内調査要否
					Boolean takcho_yh = bean[0].sendMessageBoolean(KKW00128SFConst.TAKCHO_YH, X31CWebConst.DATABEAN_GET_VALUE);
					if(takcho_yh)
					{
						parentMap.put("takcho_yh", "0");
					}
					else
					{
						parentMap.put("takcho_yh", "1");
					}
					//設計要否
					Boolean dsgn_yh = bean[0].sendMessageBoolean(KKW00128SFConst.DSGN_YH, X31CWebConst.DATABEAN_GET_VALUE);
					if(dsgn_yh)
					{
						parentMap.put("dsgn_yh", "0");
					}
					else
					{
						parentMap.put("dsgn_yh", "1");
					}
					//他システム連携_宅内調査要否
					Boolean tsyrn_takcho_yh = bean[0].sendMessageBoolean(KKW00128SFConst.TSYRN_TAKCHO_HUYO_FLG, X31CWebConst.DATABEAN_GET_VALUE);
					if(tsyrn_takcho_yh)
					{
						parentMap.put("tsyrn_takcho_yh", "0");
					}
					else
					{
						parentMap.put("tsyrn_takcho_yh", "1");
					}
				}
				else
				{
// ▲▲▲ ANK-3412-15-00 ADD END
					parentMap.put("takcho_yh", "1");
					parentMap.put("dsgn_yh", "1");
// ▽▽▽ ANK-3412-15-00 ADD START
				}
// ▲▲▲ ANK-3412-15-00 ADD END
			}
		}
		// IT1-2018-0000143 ADD END
		// ST2-2012-0001429 2012/08/16 ADD END
		
		// ANK-4038-00-00 ADD START
		// ローゼットチェック結果
		parentMap.put("rozett_chk_rslt", bean[0].sendMessageString("ローゼットチェック結果",  X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-4038-00-00 ADD END
// IT1-2023-0000064 ADD START
		// 宅調要否が未設定の場合、宅調要否と設計要否にデフォルト値を設定する
		if (!parentMap.containsKey("takcho_yh"))
		{
			parentMap.put("takcho_yh", "0");		// 宅内調査要否
			parentMap.put("tsyrn_takcho_yh", "0"); 	// 他システム連携_宅内調査要否
			parentMap.put("dsgn_yh", "1");			// 設計要否
		}
// IT1-2023-0000064 ADD END

		outputMap.put("KKSV020231CC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏＡＤＳＬ）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020231CC132(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("koji_uk_cd", "007");
		// 工事受付詳細コード
		parentMap.put("koji_uk_dtl_cd", "50");
		// PON識別コード
		parentMap.put("pon_sbt_cd", bean[0].sendMessageString(KKW00132SFConst.PON_SBT_CD, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV020231CC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（eo光ネット）
	 * @param outputMap
	 * @param func_code　機能コード
	 * @since 2013-06-03 巻３IT1-2013-0001253（100M→100Mライトで予約が詰まれてしまう）
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020256SC128(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>();
		
		// 事務手数料は画面の入力値により、コース変更サービスが登録しているため、自動適用すると２重に登録することになる。
		// 画面で設定する場合は、自動適用は不要なため、固定で"0"無を設定
		// 事務手数料自動適用要否
		parentMap.put("rule0059_auto_aply", "0");

		//機器出荷有無は、無し
		parentMap.put("kkshka_um", "0");
		
		outputMap.put("KKSV020256SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏＡＤＳＬ）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020256SC(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>();
		// 20130425 IT1-2013-0000991 MOD START
//		X31SDataBeanAccessArray jimuCommisionList = bean[0].getDataBeanArray(KKW00132SFConst.JIMU_COMMISION_LIST);
//		X31SDataBeanAccess jimuCommisionBean = jimuCommisionList.getDataBean(0);
//		String jimuCommision = jimuCommisionBean.sendMessageString(KKW00132SFConst.INDEX_10,
//				X31CWebConst.DATABEAN_GET_VALUE);
//
//		// 事務手数料自動適用要否
//		if ("0".equals(jimuCommision)) {
//			parentMap.put("rule0059_auto_aply", "0");
//		}
//		else {
//			parentMap.put("rule0059_auto_aply", "1");
//		}
		// 事務手数料は画面の入力値により、コース変更サービスが登録しているため、自動適用すると２重に登録することになる。
		// 画面で設定する場合は、自動適用は不要なため、固定で"0"無を設定
		// 事務手数料自動適用要否
		parentMap.put("rule0059_auto_aply", "0");
		// 20130425 IT1-2013-0000991 MOD END

		outputMap.put("KKSV020256SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏＡＤＳＬ）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020215SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String seikyKeiNo)
	{
		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("seiky_kei_no", seikyKeiNo);

		outputMap.put("KKSV020215SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏＡＤＳＬ）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020216SC(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>();

		X31SDataBeanAccessArray jimuCommisionList = bean[0].getDataBeanArray(KKW00128SFConst.JIMU_COMMISION_LIST);
		X31SDataBeanAccess jimuCommisionBean = jimuCommisionList.getDataBean(0);
		String jimuCommision = jimuCommisionBean.sendMessageString(KKW00128SFConst.INDEX_12, X31CWebConst.DATABEAN_GET_VALUE);

		// 事務手数料自動適用要否
		if ("0".equals(jimuCommision)) {
			parentMap.put("rule0059_auto_aply", "0");
		}
		else {
			parentMap.put("rule0059_auto_aply", "1");
		}

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		outputMap.put("KKSV020216SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏＡＤＳＬ）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020258SC(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("work_rrk_biko", bean[0].sendMessageString("備考", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV020258SC", parentMap);

		return outputMap;
	}

	private String getNextMonthFirstDay(String unyoYmd)
	{
		Calendar cal = Calendar.getInstance();
		cal.set(Calendar.YEAR, Integer.parseInt(unyoYmd.substring(0, 4)));
		cal.set(Calendar.MONTH, Integer.parseInt(unyoYmd.substring(4, 6)) - 1);
		cal.set(Calendar.DAY_OF_MONTH, 1);

		// 翌月
		cal.add(Calendar.MONTH, 1);

		Date date = cal.getTime();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");

		return sdf.format(date);
	}
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏモバイル）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020202SC131(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {

		if(bean == null){
			return null;
		}

		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// サービス契約番号 → サービス契約一意照会マップ.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 運用年月日 → サービス契約一意照会マップ.ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString("運用年月日", X31CWebConst.DATABEAN_GET_VALUE));
		// 更新年月日時分秒（更新前） → サービス契約一意照会マップ.最終更新年月日時分秒
		parentMap.put("last_upd_dtm", bean[0].sendMessageString("更新年月日時分秒（更新前）", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV020202SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏモバイル）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020206SC131(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {

		if(bean == null){
			return null;
		}

		if(bean.length != 1){
			return null;
}
		// 料金コースのセット（リストボックスからの選択値の取得）
		X31SDataBeanAccess pcrs_subbean = bean[0].getDataBeanArray(KKW00131SFConst.PCRS_LIST).getDataBean(0);
		String idx = pcrs_subbean.sendMessageString(KKW00131SFConst.INDEX_02, X31CWebConst.DATABEAN_GET_VALUE);
		String pcrsCd = pcrs_subbean.sendMessageString(KKW00131SFConst.CD_DIV_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(idx));

		// 料金プランコードを作成
		String pplanCd = "P" + pcrsCd + "01";

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 料金グループコード → サービス契約料金プラン変更マップ.料金グループコード
		parentMap.put("prc_grp_cd", (String)bean[0].sendMessageString("料金グループコード", X31CWebConst.DATABEAN_GET_VALUE));
		// 料金コースコード → サービス契約料金プラン変更マップ.料金コースコード
		parentMap.put("pcrs_cd", pcrsCd);
		// 料金プランコード → サービス契約料金プラン変更マップ.料金プランコード
		parentMap.put("pplan_cd", pplanCd);
		// 違約金発生区分ラベル → サービス契約料金プラン変更マップ.違約金発生コード
		parentMap.put("pnlty_hassei_cd", bean[0].sendMessageString(KKW00131SFConst.PNLTY_HASSEI_DIV, X31CWebConst.DATABEAN_GET_VALUE));
		// コース変更予定年月日 → サービス契約料金プラン変更マップ.ＫＥＹ＿予約適用年月日
		parentMap.put("rsv_aply_ymd", (String)bean[0].sendMessageString("コース変更予定年月日", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV020206SC", parentMap);

		return outputMap;
	}
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏモバイル）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020224SC131(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {


		if(bean == null){
			return null;
		}

		if(bean.length != 1){
			return null;
		}

		// 事務手数料のセット（リストボックスからの選択値の取得）
		X31SDataBeanAccessArray jimuCommisionInfo = bean[0].getDataBeanArray(KKW00131SFConst.JIMU_COMMISION_LIST);
		X31SDataBeanAccess jimuCommisionSubbean = jimuCommisionInfo.getDataBean(0);
		String idx1 = jimuCommisionSubbean.sendMessageString(KKW00131SFConst.INDEX_02, X31CWebConst.DATABEAN_GET_VALUE);

		// 事務手数料が非活性の場合は「無」をセット
		if (idx1 == null || idx1.length() == 0)
		{
			// 20130425 IT1-2013-0000991 事務手数料が非活性の場合、一時金は作成しないよう修正 MOD START
			return null;
			// 20130425 IT1-2013-0000991 事務手数料が非活性の場合、一時金は作成しないよう修正 MOD END
		}

		String jimuCommision = jimuCommisionSubbean.sendMessageString(KKW00131SFConst.CD_DIV_LIST_02,
				X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(idx1));

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 事務手数料ラベル → 一時金設定登録（事務手数料）マップ.一時金設定コード
		parentMap.put("icjkn_sette_cd", jimuCommision);
		// 事務手数料・指定額 → 一時金設定登録（事務手数料）マップ.一時金指定額
		parentMap.put("icjkn_shitei_amnt", bean[0].sendMessageString("事務手数料・指定額", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV020224SC", parentMap);

		return outputMap;
	}	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏモバイル）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020227SC131(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("kzkwrk_reqymd", bean[0].sendMessageString("運用年月日", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV020227SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏモバイル）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020260CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {

		if(bean == null){
			return null;
		}

		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		outputMap.put("KKSV020260CC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏモバイル）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020261SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {

		if(bean == null){
			return null;
		}

		if(bean.length != 1){
			return null;
		}
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 請求契約番号 → ネット・モバイルサービス契約一覧照会マップ.ＫＥＹ＿請求契約番号
		parentMap.put("key_seiky_kei_no", bean[0].sendMessageString(KKW00131SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

		// 運用年月日 → ネット・モバイルサービス契約一覧照会マップ.ＫＥＹ＿基準年月日
		parentMap.put("key_base_ymd", bean[0].sendMessageString(KKW00131SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV020261SC", parentMap);

		return outputMap;
	}

	// v3.0.0 ANK-0025-00-00 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏＡＤＳＬ）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020217CC(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>();

		// ルーター種別
		// ST2-2012-0001429 2012/08/16 MOD START
		String router_sbt = bean[0].sendMessageString("ルーター種別",  X31CWebConst.DATABEAN_GET_VALUE);
//		if(router_sbt.length() == 1)
//		{
//			router_sbt = "0" + router_sbt;
//		}
		parentMap.put("router_sbt", router_sbt);
		// ST2-2012-0001429 2012/08/16 MOD END
		
		// ANK-4038-00-00 ADD START
		// ローゼットチェック結果
		parentMap.put("rozett_chk_rslt", bean[0].sendMessageString("ローゼットチェック結果",  X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-4038-00-00 ADD END

		outputMap.put("KKSV020217CC", parentMap);

		return outputMap;
	}
	// v3.0.0 ANK-0025-00-00 ADD END

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約情報更新（ｅｏモバイル）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020204SC9(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("consmbsn_mskm_stat_skbt_cd", "04");
		// 部品呼び出し → 申込内容承認登録マップ.申込種別コード
		parentMap.put("mskm_sbt_cd", String.valueOf("00007"));
		// 運用年月日時分秒 → 申込内容承認登録マップ.申込受付年月日時分秒
		parentMap.put("mskm_uk_dtm", bean[0].sendMessageString("運用年月日時分秒", X31CWebConst.DATABEAN_GET_VALUE));
		// 運用年月日 → 申込内容承認登録マップ.申込年月日
		parentMap.put("mskm_ymd", bean[0].sendMessageString("運用年月日", X31CWebConst.DATABEAN_GET_VALUE));

		List<Map<String, Object>> list =  new ArrayList<Map<String, Object>>();
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("mskm_dtl_no", "");
		map.put("kk0021_gene_add_dtm", "");
		map.put("mskm_dtl_stat", "");
		// ANK-0397-00-00 2012/09/17 MOD START
//		map.put("mskmsho_no", "");
		map.put("mskmsho_no", bean[0].sendMessageString("申込書番号", X31CWebConst.DATABEAN_GET_VALUE));
		map.put("mskmsho_dtl_no", bean[0].sendMessageString("申込書明細番号", X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-0397-00-00 2012/09/17 MOD END
		map.put("web_uk_no", "");
		map.put("mskm_form_cd", "");
		map.put("mskm_dtl_sbt_cd", "");
		map.put("rrks_ktai_telno", "");
		map.put("rrks_offc_nm", "");
		map.put("dt_rrks_telno", "");
		map.put("new_mskm_sbt_cd", "");
		map.put("mskm_optnty_cd", "");
		map.put("mskm_route_cd", "");
		map.put("takcho_kibo_apo_kigen_ymd", "");
		map.put("koji_apo_rrks_shitei_cd", "");
		map.put("koji_apo_rrks_telno", "");
		map.put("rrk_jiko_add_dtm", "");
		map.put("mskm_rrks_mlad", "");
		map.put("koji_prg_tchi_mlad", "");
		map.put("rrk_jiko", "");
		map.put("kjsc_tch_ktai_mlad", "");
		map.put("ml_send_jgi_flg", "");
		map.put("ml_send_jgi_rsn_memo", "");
		map.put("bmp_mskm_rrks_tln", "");
		map.put("rrk_way_hoki", "");
		map.put("newconst_bukken_cd", "");
		map.put("hukkat_anken_flg", "");
		map.put("same_equip_re_mskm_cd", "");
		map.put("manssbsys_rnki_yo_kijiran", "");

		list.add(map);
		parentMap.put("EKK0011D020CBSMsg1List", list);
		outputMap.put("KKSV020204SC", parentMap);

		return outputMap;
	}

	// ANK-0546-00-00 2012/08/06 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏモバイル）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020264SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {

		if(bean == null){
			return null;
		}

		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// サービス契約番号 → サービス契約一意照会マップ.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV020264SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏモバイル）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020265SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {

		if(bean == null){
			return null;
		}

		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// サービス契約番号 → サービス契約一意照会マップ.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		// 部品呼び出し → サービス契約一意照会マップ.ＫＥＹ＿割引サービスコード
		parentMap.put("key_wrib_svc_cd", String.valueOf("W00000061"));

		outputMap.put("KKSV020265SC", parentMap);

		return outputMap;
	}
	// ANK-0546-00-00 2012/08/06 ADD END

	// ANK-0275-01-00 2012/09/22 start
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏ光ネット）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020267SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {

		if(bean == null){
			return null;
		}

		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 申込書明細番号 → 工事案件一意照会マップ.ＫＥＹ＿工事案件番号
		parentMap.put("key_kojiak_no", bean[0].sendMessageString("申込書明細番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV020267SC", parentMap);

		return outputMap;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：サービス契約情報更新（ｅｏ光ネット）
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV020267SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV020267SC")){
			parentMap = (HashMap)outputMap.get("KKSV020267SC");
		}

		ArrayList childList = null;


		X31SDataBeanAccessArray listKKSV005910SC_ku0011a010bsmsg1list_EKU0011A010CBSMsg1List = bean[0].getDataBeanArray("工事案件一意照会");
		childList = null;
		if(listKKSV005910SC_ku0011a010bsmsg1list_EKU0011A010CBSMsg1List != null && parentMap != null && parentMap.containsKey("EKU0011A010CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EKU0011A010CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listKKSV005910SC_ku0011a010bsmsg1list_EKU0011A010CBSMsg1List.getCount() -1 >= i){
					subbean = listKKSV005910SC_ku0011a010bsmsg1list_EKU0011A010CBSMsg1List.getDataBean(i);
				}else{
					subbean = listKKSV005910SC_ku0011a010bsmsg1list_EKU0011A010CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}

				// 工事案件一意照会.工事希望年月日 ← 工事案件一意照会.工事案件一意照会明細.工事希望年月日
				if (childMap != null) {
					subbean.sendMessageString("お客様名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cust_nm"));
				} else {
					subbean.sendMessageString("お客様名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 工事案件一意照会.工事希望年月日 ← 工事案件一意照会.工事案件一意照会明細.工事希望年月日
				if (childMap != null) {
					subbean.sendMessageString("工事希望年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("koji_kibo_ymd"));
				} else {
					subbean.sendMessageString("工事希望年月日", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 工事案件一意照会.お客様連絡先電話番号 ← 工事案件一意照会.工事案件一意照会明細.お客様連絡先電話番号
				if (childMap != null) {
					subbean.sendMessageString("お客様連絡先電話番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cust_rrks_tel_no"));
				} else {
					subbean.sendMessageString("お客様連絡先電話番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 工事案件一意照会.情報授受同意 ← 工事案件一意照会.工事案件一意照会明細.関西電力お客様情報授受同意有無
				if (childMap != null) {
					subbean.sendMessageString("情報授受同意", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kepco_ctinfo_juju_doi_um"));
				} else {
					subbean.sendMessageString("情報授受同意", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 工事案件一意照会.新築物件コード ← 工事案件一意照会.工事案件一意照会明細.新築物件コード
				if (childMap != null) {
					subbean.sendMessageString("新築物件コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("newconst_bukken_cd"));
				} else {
					subbean.sendMessageString("新築物件コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 工事案件一意照会.電話連絡希望時間帯コード ← 工事案件一意照会.工事案件一意照会明細.電話連絡希望時間帯コード
				if (childMap != null) {
					subbean.sendMessageString("電話連絡希望時間帯コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("tel_rrk_kibo_time_cd"));
				} else {
					subbean.sendMessageString("電話連絡希望時間帯コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 工事案件一意照会.工事希望アポ期限 ← 工事案件一意照会.工事案件一意照会明細.宅内工事希望アポ期限年月日
				if (childMap != null) {
					subbean.sendMessageString("工事希望アポ期限", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("tnkj_kibo_apo_kigen_ymd"));
				} else {
					subbean.sendMessageString("工事希望アポ期限", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 工事案件一意照会.工事アポ連絡先指定コード ← 工事案件一意照会.工事案件一意照会明細.工事アポ連絡先指定コード
				if (childMap != null) {
					subbean.sendMessageString("工事アポ連絡先指定コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("koji_apo_rrks_shitei_cd"));
				} else {
					subbean.sendMessageString("工事アポ連絡先指定コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 工事案件一意照会.連絡手段補記 ← 工事案件一意照会.工事案件一意照会明細.連絡手段補記
				if (childMap != null) {
					subbean.sendMessageString("連絡手段補記", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("rrk_way_hoki"));
				} else {
					subbean.sendMessageString("連絡手段補記", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 工事案件一意照会.工事案件備考 ← 工事案件一意照会.工事案件一意照会明細.工事案件備考
				if (childMap != null) {
					subbean.sendMessageString("工事案件備考", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kojiak_biko"));
				} else {
					subbean.sendMessageString("工事案件備考", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 工事案件一意照会.ＰＯＮ種別 ← 工事案件一意照会.工事案件一意照会明細.PON種別コード
				if (childMap != null) {
					subbean.sendMessageString("ＰＯＮ種別", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pon_sbt_cd"));
				} else {
					subbean.sendMessageString("ＰＯＮ種別", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


		return bean;
	}
	// ANK-0275-01-00 2012/09/22 end
	// 20121001 ANK-0275-01-00 START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏ光ネット）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020268SC(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("key_major_kmk_sbt_cd", "2");

		// 申込書明細番号 → 主要項目削除実績一覧照会マップ. ＫＥＹ＿主要項目種別コード
		parentMap.put("key_kojiak_no",  bean[0].sendMessageString("申込書明細番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV020268SC", parentMap);

		return outputMap;
	}
	// 20121001 ANK-0275-01-00 END
	// 20130124 ANK-1270-00-00 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏ光ネット）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020270SC(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);

		// 部品呼び出し → 業務パラメータ照会マップ.ＫＥＹ＿業務パラメータID
		parentMap.put("key_work_param_id", String.valueOf("KK_CP_TESURYOGEN"));

		outputMap.put("KKSV020270SC", parentMap);

		return outputMap;
	}
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏ光ネット）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020271SC(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>();

		X31SDataBeanAccess svcKeiInfo = bean[0].getDataBeanArray(KKW00128SFConst.EKK0081A010CBSMSG1LIST).getDataBean(0);

		// 料金プランのセット（リストボックスからの選択値の取得）
		X31SDataBeanAccess pcrs_subbean = bean[0].getDataBeanArray(KKW00128SFConst.PCRS_LIST).getDataBean(0);
		String idx = pcrs_subbean.sendMessageString(KKW00128SFConst.INDEX_12, X31CWebConst.DATABEAN_GET_VALUE);
		String pcrsListValue = pcrs_subbean.sendMessageString(KKW00128SFConst.CD_DIV_LIST_12,
				X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(idx));
		// 料金プランコードを作成
		String pcrsCd = pcrsListValue.split(":")[0];
		String pplanCd = pcrsListValue.split(":")[1];

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 部品呼び出し → コース変更手数料減額ＣＰ一覧照会マップ.ＫＥＹ＿サービスコード
		parentMap.put("key_svc_cd", String.valueOf("01"));

		// 料金グループコード → コース変更手数料減額ＣＰ一覧照会マップ.ＫＥＹ＿料金グループコード
		parentMap.put("key_prc_grp_cd", svcKeiInfo.sendMessageString(KKW00128SFConst.PRC_GRP_CD_03, X31CWebConst.DATABEAN_GET_VALUE));

		// 料金コースコード → コース変更手数料減額ＣＰ一覧照会マップ.ＫＥＹ＿料金コースコード
		parentMap.put("key_pcrs_cd", pcrsCd);

		// 料金プランコード → コース変更手数料減額ＣＰ一覧照会マップ.ＫＥＹ＿料金プランコード
		parentMap.put("key_pplan_cd", pplanCd);

		// 部品呼び出し → コース変更手数料減額ＣＰ一覧照会マップ.ＫＥＹ＿変更前サービスコード
		parentMap.put("key_chge_bf_svc_cd", String.valueOf("01"));

		// 変更前料金グループコード → コース変更手数料減額ＣＰ一覧照会マップ.ＫＥＹ＿変更前料金グループコード
		parentMap.put("key_chge_bf_prc_grp_cd", bean[0].sendMessageString("変更前料金グループコード",X31CWebConst.DATABEAN_GET_VALUE));

		// 変更前料金コースコード → コース変更手数料減額ＣＰ一覧照会マップ.ＫＥＹ＿変更前料金コースコード
		parentMap.put("key_chge_bf_pcrs_cd", bean[0].sendMessageString("変更前料金コースコード",X31CWebConst.DATABEAN_GET_VALUE));

		// 変更前料金プランコード → コース変更手数料減額ＣＰ一覧照会マップ.ＫＥＹ＿変更前料金プランコード
		parentMap.put("key_chge_bf_pplan_cd", bean[0].sendMessageString("変更前料金プランコード",X31CWebConst.DATABEAN_GET_VALUE));

		// 運用年月日 → コース変更手数料減額ＣＰ一覧照会マップ.ＫＥＹ＿基準日
		parentMap.put("key_base_ymd", bean[0].sendMessageString("運用年月日", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV020271SC", parentMap);

		return outputMap;
	}
	/**
	 * 下りマッピング
	 * @param bean　[0]：サービス契約情報更新（ｅｏ光ネット）
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV020271SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV020271SC")){
			parentMap = (HashMap)outputMap.get("KKSV020271SC");
		}

		ArrayList childList = null;


		X31SDataBeanAccessArray eKK0851B002CBSMSG1LIST = bean[0].getDataBeanArray("コース変更手数料減額ＣＰ一覧照会明細リスト");
		childList = null;
		if(eKK0851B002CBSMSG1LIST != null && parentMap != null && parentMap.containsKey("EKK0851B002CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EKK0851B002CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(eKK0851B002CBSMSG1LIST.getCount() -1 >= i){
					subbean = eKK0851B002CBSMSG1LIST.getDataBean(i);
				}else{
					subbean = eKK0851B002CBSMSG1LIST.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}

				// コース変更手数料減額ＣＰ一覧照会.割引サービス対象サービスコード ← コース変更手数料減額ＣＰ一覧照会.コース変更手数料減額ＣＰ一覧照会明細.割引サービス対象サービスコード
				if (childMap != null) {
					subbean.sendMessageString("割引サービス対象サービスコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("wrib_svc_trgt_svc_cd"));
				} else {
					subbean.sendMessageString("割引サービス対象サービスコード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// コース変更手数料減額ＣＰ一覧照会.世代登録年月日時分秒 ← コース変更手数料減額ＣＰ一覧照会.コース変更手数料減額ＣＰ一覧照会明細.世代登録年月日時分秒
				if (childMap != null) {
					subbean.sendMessageString("世代登録年月日時分秒", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("gene_add_dtm"));
				} else {
					subbean.sendMessageString("世代登録年月日時分秒", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// コース変更手数料減額ＣＰ一覧照会.割引サービスコード ← コース変更手数料減額ＣＰ一覧照会.コース変更手数料減額ＣＰ一覧照会明細.割引サービスコード
				if (childMap != null) {
					subbean.sendMessageString("割引サービスコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("wrib_svc_cd"));
				} else {
					subbean.sendMessageString("割引サービスコード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// コース変更手数料減額ＣＰ一覧照会.割引サービス対象サービス種別コード ← コース変更手数料減額ＣＰ一覧照会.コース変更手数料減額ＣＰ一覧照会明細.割引サービス対象サービス種別コード
				if (childMap != null) {
					subbean.sendMessageString("割引サービス対象サービス種別コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("wrib_svc_trgt_svc_sbt_cd"));
				} else {
					subbean.sendMessageString("割引サービス対象サービス種別コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


		return bean;
	}
	// 20130124 ANK-1270-00-00 ADD END
	
	// ANK-2631-00-00 2015/08/26 ADD START	  
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏ光ネット）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020278CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
	
		if(bean == null){
			return null;
		}
	
		if(bean.length != 1){
			return null;
		}
	
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
	
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
	
		outputMap.put("KKSV020278CC", parentMap);
	
		return outputMap;
	}
	// ANK-2631-00-00 2015/08/26 ADD END	  
	
	// ANK-2737-00-00 ADD START	  
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新
	 * @return outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020279CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
	
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 契約内容通知書オンラインフラグ（"1"固定）
		parentMap.put("knytcs_on_flg","1");
		// 運用年月日→運用日
		parentMap.put("unyo_ymd", bean[0].sendMessageString(KKW00131SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約番号
		parentMap.put("svc_kei_no_net", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("svc_kei_no_tv", "");
		parentMap.put("svc_kei_no_tel", "");
		//申込書明細番号
		parentMap.put("mskmsho_dtl_no_net", bean[0].sendMessageString("申込書明細番号", X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("mskmsho_dtl_no_tv", "");
		parentMap.put("mskmsho_dtl_no_tel", "");

		outputMap.put("KKSV020279CC", parentMap);
	
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新
	 * @return outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020280SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
	
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// サービス契約番号
		parentMap.put("svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV020280SC", parentMap);
	
		return outputMap;
	}
	// ANK-2737-00-00 ADD END
// ▽▽▽ ANK-3412-00-00 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新
	 * @return outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020296CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) 
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 料金プランのセット（リストボックスからの選択値の取得）
		X31SDataBeanAccess pcrs_subbean = bean[0].getDataBeanArray(KKW00132SFConst.PCRS_LIST).getDataBean(0);
		String idx = pcrs_subbean.sendMessageString(KKW00132SFConst.INDEX_10, X31CWebConst.DATABEAN_GET_VALUE);
		String pcrsPplanCds = pcrs_subbean.sendMessageString(KKW00132SFConst.CD_LIST_10, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(idx));
		String[] pcrsCds = pcrsPplanCds.split(":");
		
		// サービス契約番号
		parentMap.put("svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 異動区分
		parentMap.put("ido_div", bean[0].sendMessageString("異動区分", X31CWebConst.DATABEAN_GET_VALUE));

		// 変更後の料金コース
		if (pcrsCds != null && pcrsCds.length > 0)
		{
			parentMap.put("pcrs_cd", pcrsCds[0]);
		}
		
		outputMap.put("KKSV020296CC", parentMap);
	
		return outputMap;
	}
// ▲▲▲ ANK-3412-00-00 ADD END
	// ANK-3949-00-00 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新
	 * @return outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020297CC(X31SDataBeanAccess[] bean, HashMap outputMap) 
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 料金プランのセット（リストボックスからの選択値の取得）
		X31SDataBeanAccess pcrs_subbean = bean[0].getDataBeanArray(KKW00132SFConst.PCRS_LIST).getDataBean(0);
		String idx = pcrs_subbean.sendMessageString(KKW00132SFConst.INDEX_10, X31CWebConst.DATABEAN_GET_VALUE);
		String pcrsPplanCds = pcrs_subbean.sendMessageString(KKW00132SFConst.CD_LIST_10, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(idx));
		String[] pcrsCds = pcrsPplanCds.split(":");
		
		// サービス契約番号
		parentMap.put("svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 処理区分
		parentMap.put("syori_kbn", "03");

		// 料金コースコード
		parentMap.put("pcrs_cd", bean[0].sendMessageString("変更前料金コースコード", X31CWebConst.DATABEAN_GET_VALUE));

		// 変更後料金コースコード
		if (pcrsCds != null && pcrsCds.length > 0)
		{
			parentMap.put("pcrs_after_cd", pcrsCds[0]);
		}
		
		outputMap.put("KKSV020297CC", parentMap);
	
		return outputMap;
	}
	// ANK-3949-00-00 ADD END
	
	// OM-2021-0000384 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新
	 * @return outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020298CC(X31SDataBeanAccess[] bean, HashMap outputMap) 
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// サービス契約番号
		parentMap.put("svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV020298CC", parentMap);
	
		return outputMap;
	}
	// OM-2021-0000384 ADD END
	
	// ANK-3987-00-00 ADD START
	/**
	 * Netflixなし⇔ありのコース変更の場合、変更前後の速度が同一かどうかを判定<br>
	 * <br>
	 * @param svcFormBean
	 * @return チェックエラーの場合はtrue、そうでない場合はfalse
	 */
	private boolean chkSameSpeedCrsChg(X31SDataBeanAccess svcFormBean)
	{
		boolean isInfo = false;
		
		// 料金コースの画面選択値を取得
		X31SDataBeanAccessArray pcrsList = svcFormBean.getDataBeanArray(KKW00128SFConst.PCRS_LIST);
		X31SDataBeanAccess pcrsSubbean = pcrsList.getDataBean(0);
		String pcrsIndex    = pcrsSubbean.sendMessageString(KKW00128SFConst.INDEX_12,       X31CWebConst.DATABEAN_GET_VALUE);
		String selectPcrsCdValue = pcrsSubbean.sendMessageString(KKW00128SFConst.CD_DIV_LIST_12, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(pcrsIndex));
		String selectPcrsCd = selectPcrsCdValue.split(":")[0];
		String selectPcrsSpeed = getPcrsSpeed(svcFormBean,selectPcrsCd);
		String selectBundleDiv = getBundleDiv(svcFormBean,selectPcrsCd);
		
		// サービス契約の料金コースコードを取得
		X31SDataBeanAccessArray svcKeiInfo = svcFormBean.getDataBeanArray(KKW00128SFConst.EKK0081A010CBSMSG1LIST);
		X31SDataBeanAccess svcKeiSubbean = svcKeiInfo.getDataBean(0);
		String oldPcrsCd  = svcKeiSubbean.sendMessageString(KKW00128SFConst.PCRS_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
		String oldPcrsSpeed = getPcrsSpeed(svcFormBean,oldPcrsCd);
		String oldBundleDiv = getBundleDiv(svcFormBean,oldPcrsCd);
		
		//変更前後の速度が同一の場合、Netflixなし⇔ありかどうかを判定
		if (selectPcrsSpeed.equals(oldPcrsSpeed))
		{
			if("001".equals(selectBundleDiv) && !"001".equals(oldBundleDiv))
			{
				isInfo = true;
			}
			if(!"001".equals(selectBundleDiv) && "001".equals(oldBundleDiv))
			{
				isInfo = true;
			}
		}

		return isInfo;
	}
	
	/**
	 * 料金コース速度コードを取得<br>
	 * <br>
	 * @param svcFormBean パラメータマップ
	 * @param pcrsCd 料金コースコード
	 * @return 料金コース速度コード
	 */
	private String getPcrsSpeed(X31SDataBeanAccess svcFormBean, String pcrsCd)
	{
		
		String M_pcrsSpeed = "";
		X31SDataBeanAccessArray pcrsInfo = svcFormBean.getDataBeanArray(KKW00128SFConst.EKK0791B003CBSMSG1LIST);
		
		for (int i = 0; i < pcrsInfo.getCount(); i++)
		{
			
			X31SDataBeanAccess pcrsInfoSubbean = pcrsInfo.getDataBean(i);
			String M_pcrsCd = pcrsInfoSubbean.sendMessageString(KKW00128SFConst.PCRS_CD, X31CWebConst.DATABEAN_GET_VALUE);
			
			if(M_pcrsCd.equals(pcrsCd))
			{
				M_pcrsSpeed = pcrsInfoSubbean.sendMessageString(KKW00128SFConst.PCRS_SPEED_CD, X31CWebConst.DATABEAN_GET_VALUE);
			}
			
		}
		
		return M_pcrsSpeed;
	}
	
	/**
	 * 他事業者バンドル区分を取得<br>
	 * <br>
	 * @param svcFormBean 
	 * @param pcrsCd 料金コースコード
	 * @return 他事業者バンドル区分
	 */
	private String getBundleDiv(X31SDataBeanAccess svcFormBean, String pcrsCd)
	{
		
		String M_bundleDiv = "";
		X31SDataBeanAccessArray pcrsInfo = svcFormBean.getDataBeanArray(KKW00128SFConst.EKK0791B003CBSMSG1LIST);
		
		for (int i = 0; i < pcrsInfo.getCount(); i++)
		{
			
			X31SDataBeanAccess pcrsInfoSubbean = pcrsInfo.getDataBean(i);
			String M_pcrsCd = pcrsInfoSubbean.sendMessageString(KKW00128SFConst.PCRS_CD, X31CWebConst.DATABEAN_GET_VALUE);
			
			if(M_pcrsCd.equals(pcrsCd))
			{
				M_bundleDiv = pcrsInfoSubbean.sendMessageString(KKW00128SFConst.TAJGS_BUNDLE_DIV, X31CWebConst.DATABEAN_GET_VALUE);
			}
			
		}
		
		return M_bundleDiv;
	}
	//ANK-3987-00-00 ADD END
	//ANK-4315-00-00 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新（ｅｏ光ネット）
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV020299CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) 
	{
		if(bean == null)
		{
			return null;
		}
	
		if(bean.length != 1)
		{
			return null;
		}
	
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
	
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// ＳＹＳＩＤ → お客様一意照会マップ.ＫＥＹ＿ＳＹＳＩＤ
		parentMap.put("key_sysid", bean[0].sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		
		// サービス契約番号 → サービス契約一意照会マップ.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
	
		outputMap.put("KKSV020299CC", parentMap);
	
		return outputMap;
	}
	// ANK-4315-00-00 ADD END
}

