/*********************************************************************
*    All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：KKSV0312_KKSV0312OPDBMapper
*   ソースファイル名：KKSV0312_KKSV0312OPDBMapper.java
*   作成者          ：Fujitsu
*   日付            ：2011年07月28日
*＜機能概要＞
*   BP（契約情報更新（ｅｏ光テレビ）更新OP）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*   バージョン  修正日      修正者      修正内容
*   v1.00.00    2011/07/28  FJ)     	新規作成
*   v4.00.00    2012/10/28  FJ)辛	   【ANK-1191-00-00】、【ANK-1200-00-00】対応
*   v5.00.00	2013/01/16	FJ)辛	   【ANK-1359-00-00:再送信＋地デジ・ＢＳコース対応】対応
*   v5.00.01	2013/02/06  FJ)辛	   【IT1-2013-0000216】対応
*   v4.00.01    2013/03/15  FJ）辛	   【IT1-2013-0000477】対応
*   v4.00.02    2013/03/22  FJ）馬場   【IT1-2013-0000578】対応
*   v6.00.00	2013/12/07  FJ）稲岡   【OM-2013-0004305】対応
*   v6.00.01	2013/12/26  FJ）稲岡   【OM-2013-0004305】一時金設定登録処理追加
*   v7.00.00    2014/02/25	FJ）稲岡   【OM-2014-0000224】対応
*  v10.00.00    2014/07/11	FJ）森脇   【ANK-2135-00-00】対応
*  v10.01.00    2014/07/31  FJ）伊藤   【ANK-2141-00-00】STB交換方法変更
*  v13.00.00	2015/03/11  FJ) 松本   【ANK-2394-00-00】進捗タブ処理内容改善
*  v23.00.00    2015/10/16  FJ) 松本   【ANK-2694-00-00】 ワンストップ案件（ＳＴＥＰ２）
*  v25.00.00	2016/03/17	FJ) 抱     【ANK-2530-00-00】TV新コースおよびVOD導入
*  v29.00.00    2017/03/13  FJ)岸本    【OM-2016-0002522】障害対応 障害対応 コース変更で電障コードが反映できるように修正
*  v31.00.00    2018/05/30  FJ)三原    【ANK-3136-00-00】OPMSハードウエア保守切れ対応(STEP2-2)
*  v39.00.00	2018/09/06  FJ)中原   	【ANK-3488-00-00】４KSTB（ACASチップ）導入対応
*  v59.00.00	2022/04/11  FJ)南	   【ANK-4240-00-00】開通前マイページ関連業務改善（2022年6月下旬リリース）
*  v62.00.00	2022/10/17  FJ)原	   【ANK-4335-00-00】ACAS対応新STB導入対応
*  v74.00.00	2024/12/18	FJ) 森下   【ANK-4592-00-00】テレビ新コース（スカパー用）導入対応
*  v74.00.00	2025/01/22	FJ) 森下   【ANK-4592-00-00】テレビ新コース（スカパー用）導入対応
*  v74.00.02	2025/03/03	FJ) 森下   【IT2-2025-0000004】異動予約反映でオプション解約がされるよう修正
*  v74.00.03	2025/03/18	FJ) 森下   【IT2-2025-0000005】一時金設定の申込明細番号を修正
*  v75.00.00	2025/04/21	FJ)柴田	   【ANK-4673-00-01】テレビ新コース（スカパー用）導入対応　2025年6月フォロー案件
*  v75.00.00	2025/04/21	FJ)柴田	   【ANK-4673-00-02】テレビ新コース（スカパー用）導入対応　2025年6月フォロー案件
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.HashMap;
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.JKKStrConst;
import eo.common.util.JKKStringUtil;
import eo.web.webview.KKA17701SF.KKW00129SFConst;
import eo.web.webview.commonOneStop.JCCWebCommon;
import eo.web.webview.commonOneStop.JKKCommonConst;
import eo.web.webview.commonOneStop.JKKKeiNewCmnLogicUtil;

/**
 * DataBean-BPマッピングをする。
 * 
 * @author 富士通
 */
public class KKSV0312_KKSV0312OPDBMapper
{

	/**
	 * コンストラクタ
	 */
	public KKSV0312_KKSV0312OPDBMapper()
	{
	}


	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031201SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}
		
		
		X31SDataBeanAccess subbean = bean[0].getDataBeanArray("申込明細一意情報").getDataBean(0);
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// 申込明細一意情報.SYSID → 申込内容承認登録マップ.SYSID
		parentMap.put("sysid", subbean.sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 申込内容承認登録マップ.申込種別コード
		parentMap.put("mskm_sbt_cd", JKKCommonConst.MSKM_SBT_CD_VALUE_00007);
		
		// ＫＥＹ＿世代登録年月日時分秒 → 申込内容承認登録マップ.申込受付年月日時分秒
		parentMap.put("mskm_uk_dtm", bean[0].sendMessageString("ＫＥＹ＿世代登録年月日時分秒", X31CWebConst.DATABEAN_GET_VALUE));
		
		// ＫＥＹ＿基準日 → 申込内容承認登録マップ.申込年月日
		parentMap.put("mskm_ymd", bean[0].sendMessageString("ＫＥＹ＿基準日", X31CWebConst.DATABEAN_GET_VALUE));
		
		// "04" → 申込内容承認登録マップ.コンシューマ営業用申込状態識別コード
		parentMap.put("consmbsn_mskm_stat_skbt_cd", "04");
		
		ArrayList list = new ArrayList();
		HashMap childMap = new HashMap();
		
		//「申込書番号」もしくは「申込書明細番号」が入力されている場合、入力された値で登録を行う。
		String str_mskmsho_no = bean[0].sendMessageString("申込書番号", X31CWebConst.DATABEAN_GET_VALUE);
		if(str_mskmsho_no != null && !"".equals(str_mskmsho_no))
		{
			// 申込書番号 → 申込内容承認登録マップ.申込登録明細.申込書番号
			childMap.put("mskmsho_no", str_mskmsho_no);
		}
		String str_mskmsho_dtl_no = bean[0].sendMessageString("申込書明細番号", X31CWebConst.DATABEAN_GET_VALUE);
		if(str_mskmsho_dtl_no != null && !"".equals(str_mskmsho_dtl_no))
		{
			// 申込書明細番号→ 申込内容承認登録マップ.申込登録明細.申込書明細番号
			childMap.put("mskmsho_dtl_no", str_mskmsho_dtl_no);
		}
		
		// 工事アポ連絡先コード → 申込内容承認登録マップ.申込登録明細.工事アポ連絡先指定コード
		childMap.put("koji_apo_rrks_shitei_cd", bean[0].sendMessageString("工事アポ連絡先コード", X31CWebConst.DATABEAN_GET_VALUE));
		
		// お客様連絡先番号 → 申込内容承認登録マップ.申込登録明細.工事アポ連絡先電話番号
		childMap.put("koji_apo_rrks_telno", bean[0].sendMessageString("お客様連絡先番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 新築物件コード → 申込内容承認登録マップ.申込登録明細.新築物件コード
		childMap.put("newconst_bukken_cd", bean[0].sendMessageString("新築物件コード", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 復活案件フラグ → 申込内容承認登録マップ.申込登録明細.復活案件フラグ
		childMap.put("hukkat_anken_flg", bean[0].sendMessageString("復活案件フラグ", X31CWebConst.DATABEAN_GET_VALUE));
		
		// マンション設備用記事欄→ 申込内容承認登録マップ.申込登録明細.マンション設備用記事欄
		childMap.put("manssbsys_rnki_yo_kijiran", bean[0].sendMessageString("マンション設備用記事欄", X31CWebConst.DATABEAN_GET_VALUE));

		list.add(childMap);
		
		parentMap.put("EKK0011D020CBSMsg1List", list);
		
		outputMap.put("KKSV031201SC", parentMap);
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031202SC(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("ido_div", bean[0].sendMessageString("異動区分", X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV031202SC", parentMap);
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031203SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}
		
		
		X31SDataBeanAccess subbean = bean[0].getDataBeanArray("サービス契約情報").getDataBean(0);
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// サービス契約情報.サービス契約番号 → サービス契約内訳一覧照会マップ.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV031203SC", parentMap);
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031204SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}
		
		
		X31SDataBeanAccess subbean = bean[0].getDataBeanArray("サービス契約情報").getDataBean(0);
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// サービス契約情報.サービス契約番号 → サービス契約内訳一覧照会マップ.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV031204SC", parentMap);
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031201CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}
		
		X31SDataBeanAccess subbean = bean[0].getDataBeanArray("サービス契約情報").getDataBean(0);
		X31SDataBeanAccess pnltybean = bean[0].getDataBeanArray("違約金発生区分").getDataBean(0);
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		HashMap<String, Object> workMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		// 基準日（STB撤去チェックが入っていない場合、"20991231"で終了日の予約を登録）
		parentMap.put("key_stdardymd", "20991231");
		// 異動区分
		parentMap.put("ido_div", bean[0].sendMessageString("異動区分", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 違約金発生コード
		parentMap.put("pnlty_hassei_cd", pnltybean.sendMessageString("コード値", X31CWebConst.DATABEAN_GET_VALUE));

		// STB撤去年月日
		parentMap.put("stb_tekkyo_ymd",  bean[0].sendMessageString(KKW00129SFConst.STB_TEKKYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));
		
// ANK-4673-00-02 ADD START
		// ＳＴＢ撤去（ヤマト撤去）の場合
		if(bean[0].sendMessageBoolean(KKW00129SFConst.STB_TEKKYO, X31CWebConst.DATABEAN_GET_VALUE))
		{
			parentMap.put("stb_tekkyo_flg", "1");
		}
// ANK-4673-00-02 ADD END
		// サービス契約情報.最終更新年月日時分秒 → サービス契約審査結果送信情報変更マップ.ワーク更新年月日時分秒
		workMap.put("work_upd_dtm", subbean.sendMessageString("最終更新年月日時分秒", X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV031201CC", parentMap);
		outputMap.put("WORK", workMap);
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031202CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}
		
		X31SDataBeanAccess pnltybean = bean[0].getDataBeanArray("違約金発生区分").getDataBean(0);
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		// 基準日（STB撤去チェックが入っていない場合、"20991231"で終了日の予約を登録）
		parentMap.put("key_stdardymd", "20991231");

		// 違約金発生コード
		parentMap.put("pnlty_hassei_cd", pnltybean.sendMessageString("コード値", X31CWebConst.DATABEAN_GET_VALUE));

		// 異動区分
		parentMap.put("ido_div", bean[0].sendMessageString("異動区分", X31CWebConst.DATABEAN_GET_VALUE));
		
		// STB撤去年月日
		parentMap.put("stb_tekkyo_ymd",  bean[0].sendMessageString(KKW00129SFConst.STB_TEKKYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));
		
// ANK-4673-00-02 ADD START
		// ＳＴＢ撤去（ヤマト撤去）の場合
		if (bean[0].sendMessageBoolean(KKW00129SFConst.STB_TEKKYO, X31CWebConst.DATABEAN_GET_VALUE))
		{
			parentMap.put("stb_tekkyo_flg", "1");
		}
// ANK-4673-00-02 ADD END
		// ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString(KKW00129SFConst.KEY_STDARDYMD, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 連絡先名
		parentMap.put("rrks_nm", bean[0].sendMessageString(KKW00129SFConst.CUST_NM, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 機器回収備考1
		parentMap.put("kiki_kaishu_biko_1", bean[0].sendMessageString(KKW00129SFConst.KOJIAK_BIKO, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 機器回収備考2
		parentMap.put("kiki_kaishu_biko_2", bean[0].sendMessageString(KKW00129SFConst.KOJIAK_BIKO_2, X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV031202CC", parentMap);
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031211CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}
		
		X31SDataBeanAccess subbean = bean[0].getDataBeanArray("サービス契約情報").getDataBean(0);
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		HashMap<String, Object> workMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// サービス契約番号
		parentMap.put("svc_kei_no", bean[0].sendMessageString("ＫＥＹ＿サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 異動区分 → サービス契約内訳＜eo光TV＞登録マップ.異動区分
		parentMap.put("ido_div", bean[0].sendMessageString("異動区分", X31CWebConst.DATABEAN_GET_VALUE));
		// 工事案件番号
		parentMap.put("kojiak_no", bean[0].sendMessageString("工事案件番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 料金コースコード
		X31SDataBeanAccess pcrabean = bean[0].getDataBeanArray("料金コース").getDataBean(0);
		parentMap.put("pcrs_cd", pcrabean.sendMessageString("コード値", X31CWebConst.DATABEAN_GET_VALUE));
		
		ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
		parentMap.put("kikiList", list);
		
		// 工事範囲コードを設定
		parentMap.put("kojiScope",  bean[0].sendMessageString(KKW00129SFConst.KOJI_SCOPE_CD, X31CWebConst.DATABEAN_GET_VALUE));
		
		// STB撤去を設定
		parentMap.put("stb_tekkyo",  bean[0].sendMessageBoolean(KKW00129SFConst.STB_TEKKYO, X31CWebConst.DATABEAN_GET_VALUE));
		
		// STB撤去年月日を設定
// ANK-4673-00-02 MOD START
//		if( "".equals(bean[0].sendMessageString(KKW00129SFConst.STB_TEKKYO_YMD, X31CWebConst.DATABEAN_GET_VALUE)))
//		{
//			parentMap.put("stb_tekkyo_ymd",  bean[0].sendMessageString(KKW00129SFConst.KEY_STDARDYMD, X31CWebConst.DATABEAN_GET_VALUE));
//		}
		if ("".equals(bean[0].sendMessageString(KKW00129SFConst.STB_TEKKYO_YMD, X31CWebConst.DATABEAN_GET_VALUE))
				&& !bean[0].sendMessageBoolean(KKW00129SFConst.STB_TEKKYO, X31CWebConst.DATABEAN_GET_VALUE))
		{
			parentMap.put("stb_tekkyo_ymd",  bean[0].sendMessageString(KKW00129SFConst.KEY_STDARDYMD, X31CWebConst.DATABEAN_GET_VALUE));
		}
// ANK-4673-00-02 MOD END
		else
		{
			parentMap.put("stb_tekkyo_ymd",  bean[0].sendMessageString(KKW00129SFConst.STB_TEKKYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));
		}
// ANK-4673-00-02 ADD START
		// ＳＴＢ撤去（ヤマト撤去）の場合
		if(bean[0].sendMessageBoolean(KKW00129SFConst.STB_TEKKYO, X31CWebConst.DATABEAN_GET_VALUE))
		{
			parentMap.put("stb_tekkyo_flg", "1");
		}
// ANK-4673-00-02 ADD END
		// STB撤去費用を設定
		parentMap.put("stb_tekkyo_hiyo",  bean[0].sendMessageString(KKW00129SFConst.STB_TEKKYO_HIYO, X31CWebConst.DATABEAN_GET_VALUE));

		// 一時支払料金番号を設定
		parentMap.put("tmp_pay_prc_no",  bean[0].sendMessageString(KKW00129SFConst.TMP_PAY_PRC_NO, X31CWebConst.DATABEAN_GET_VALUE));

		// 一時支払金額を設定
		parentMap.put("tmp_pay_prc_amnt",  bean[0].sendMessageString(KKW00129SFConst.TMP_PAY_PRC_AMNT, X31CWebConst.DATABEAN_GET_VALUE));

		// サービス契約情報.最終更新年月日時分秒 → ワークマップ.ワーク更新年月日時分秒
		workMap.put("work_upd_dtm", subbean.sendMessageString("最終更新年月日時分秒", X31CWebConst.DATABEAN_GET_VALUE));
		
		parentMap.put("kojifixtext", "KKSV031204CC");
		outputMap.put("KKSV031211CC", parentMap);
		outputMap.put("WORK", workMap);
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031203CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}
		
		X31SDataBeanAccess pnltybean = bean[0].getDataBeanArray("違約金発生区分").getDataBean(0);
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		// 基準日（STB撤去チェックが入っていない場合、"20991231"で終了日の予約を登録）
		parentMap.put("key_stdardymd", "20991231");
		
		// 違約金発生コード
		parentMap.put("pnlty_hassei_cd", pnltybean.sendMessageString("コード値", X31CWebConst.DATABEAN_GET_VALUE));

		// 異動区分
		parentMap.put("ido_div", bean[0].sendMessageString("異動区分", X31CWebConst.DATABEAN_GET_VALUE));
		
		// STB撤去年月日
		parentMap.put("stb_tekkyo_ymd",  bean[0].sendMessageString(KKW00129SFConst.STB_TEKKYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));
		
// ANK-4673-00-02 ADD START
		// ＳＴＢ撤去（ヤマト撤去）の場合
		if (bean[0].sendMessageBoolean(KKW00129SFConst.STB_TEKKYO, X31CWebConst.DATABEAN_GET_VALUE))
		{
			parentMap.put("stb_tekkyo_flg", "1");
		}
// ANK-4673-00-02 ADD END
		outputMap.put("KKSV031203CC", parentMap);
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031205CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String rsvAplyYMD)
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}
		
		
		X31SDataBeanAccess subbean = bean[0].getDataBeanArray("サービス契約情報").getDataBean(0);
		X31SDataBeanAccess pcrsbean = bean[0].getDataBeanArray("料金コース").getDataBean(0);
		X31SDataBeanAccess pnltybean = bean[0].getDataBeanArray("違約金発生区分").getDataBean(0);
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		// サービス契約情報.サービス契約番号 → サービス契約＜eo光TV＞料金プラン変更マップ.サービス契約番号
		parentMap.put("svc_kei_no", subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 料金グループコード → サービス契約＜eo光TV＞料金プラン変更マップ.料金グループコード
		parentMap.put("prc_grp_cd", getPrcGrpCd(bean));
		
		// 料金コース.コードタイプコード → サービス契約＜eo光TV＞料金プラン変更マップ.料金コースコード
		parentMap.put("pcrs_cd", pcrsbean.sendMessageString("コード値", X31CWebConst.DATABEAN_GET_VALUE));
		
		// サービス契約情報.提供方式契約番号 → サービス契約＜eo光TV＞料金プラン変更マップ.提供方式契約番号
		parentMap.put("tk_hoshiki_kei_no", subbean.sendMessageString("提供方式契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		// サービス契約情報.予約適用年月日 → サービス契約＜eo光TV＞料金プラン変更マップ.予約適用年月日
//v5.00.00 START==================================================================================
//		parentMap.put("rsv_aply_ymd", subbean.sendMessageString("予約適用年月日", X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("rsv_aply_ymd", rsvAplyYMD);
//v5.00.00 END====================================================================================		
		// 違約金発生コード
		parentMap.put("pnlty_hassei_cd", pnltybean.sendMessageString("コード値", X31CWebConst.DATABEAN_GET_VALUE));

		// 異動区分
		parentMap.put("ido_div", bean[0].sendMessageString("異動区分", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 電波障害案件番号 → サービス契約＜eo光TV＞料金プラン変更マップ.電波障害案件番号
		parentMap.put("dmps_anken_no", bean[0].sendMessageString("電波障害案件番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		// サービス契約情報.最終更新年月日時分秒 → サービス契約＜eo光TV＞料金プラン変更マップ.更新年月日時分秒（更新前）
		parentMap.put("upd_dtm_bf", subbean.sendMessageString("最終更新年月日時分秒", X31CWebConst.DATABEAN_GET_VALUE));
		
// ++++++++ v7.00.00 追加開始 ++++++++
		// ＳＴＢ撤去（ヤマト撤去）の場合
		if(bean[0].sendMessageBoolean(KKW00129SFConst.STB_TEKKYO, X31CWebConst.DATABEAN_GET_VALUE))
		{
			parentMap.put("stb_tekkyo_flg", "1");
			parentMap.put("stb_tekkyo_ymd", bean[0].sendMessageString(KKW00129SFConst.STB_TEKKYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));
		}
// ++++++++ v7.00.00 追加終了 ++++++++
		// ANK-4592-00-00 ADD START
		// 即時適用 → サービス契約＜eo光TV＞料金プラン変更マップ.即時適用有無
		if(bean[0].sendMessageBoolean(KKW00129SFConst.SOKUJI_APLY, X31CWebConst.DATABEAN_GET_VALUE))
		{
			parentMap.put("sokuji_aply_um", JKKStrConst.CD_DIV_UM_ARI);
		}
		// ANK-4592-00-00 ADD END

		outputMap.put("KKSV031205CC", parentMap);
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031208SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}
		
		
		X31SDataBeanAccess subbean = bean[0].getDataBeanArray("サービス契約情報").getDataBean(0);
		X31SDataBeanAccess ucwkbean = bean[0].getDataBeanArray("サービス契約回線内訳一意情報").getDataBean(0);
		X31SDataBeanAccessArray subbeanArray = null;
		ArrayList<HashMap<String, Object>> list = null;
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		HashMap<String, Object> parMap = null;
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// サービス契約情報.サービス契約番号 → 進捗登録マップ.サービス契約番号
		parentMap.put("svc_kei_no", subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		// サービス契約回線内訳一意情報.サービス契約回線内訳番号 → 進捗登録マップ.サービス契約回線内訳番号
		parentMap.put("svc_kei_kaisen_ucwk_no", ucwkbean.sendMessageString("サービス契約回線内訳番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 異動区分 → 進捗登録マップ.異動区分
		parentMap.put("ido_div", bean[0].sendMessageString("異動区分", X31CWebConst.DATABEAN_GET_VALUE));
		
		// システム日付 → 進捗登録マップ.異動年月日時分秒
		parentMap.put("ido_dtm", JCCWebCommon.getSysDateTimeStamp());
		
		// 進捗登録マップ.進捗ステータス
		parentMap.put("prg_stat", JKKCommonConst.PRG_STAT_CD_1421);
		
		list = new ArrayList<HashMap<String, Object>>();
		subbeanArray = bean[0].getDataBeanArray("顧客契約引継リスト");
		for (int i = 0; i < subbeanArray.getCount(); i++)
		{
			subbean = subbeanArray.getDataBean(i);
			Integer count = (Integer)subbean.sendMessage("異動理由コード", X31CWebConst.DATABEAN_GET_COUNT);
			for (int j = 0; j < count.intValue(); j++)
			{
				HashMap<String, Object> childMap = new HashMap<String, Object>();
				// 顧客契約引継リスト.異動理由コード → 進捗登録マップ.異動理由明細.異動理由コード
				childMap.put("ido_rsn_cd", subbean.sendMessageString("異動理由コード", X31CWebConst.DATABEAN_GET_VALUE, j));
				list.add(childMap);
			}
		}
		
//		// STB撤去チェック有
//		if (bean[0].sendMessageBoolean(KKW00129SFConst.STB_TEKKYO, X31CWebConst.DATABEAN_GET_VALUE))
//		{
//			// ＳＴＢ撤去年月日
//			String stbTekkyoYmd = JPCFomatString.formatDate(bean[0].sendMessageString(KKW00129SFConst.STB_TEKKYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));
//			// ＳＴＢ撤去費用
//			//X31SDataBeanAccess routerbean = bean[0].getDataBeanArray(KKW00129SFConst.STB_TEKKYO_HIYO).getDataBean(0);
//			String stbTekkyoHiyokbn = bean[0].sendMessageString(KKW00129SFConst.STB_TEKKYO_HIYO, X31CWebConst.DATABEAN_GET_VALUE);
//			String stbTekkyoHiyo = "有";
//			if ("0".equals(stbTekkyoHiyokbn))
//			{
//				stbTekkyoHiyo = "無";
//			}
//			String title = "STB撤去対応,撤去日：" + stbTekkyoYmd + ",撤去費用：" + stbTekkyoHiyo;
//			StringBuilder str = new StringBuilder();
//			StringBuilder str1 = new StringBuilder();
//			StringBuilder str2 = new StringBuilder();
//			StringBuilder str3 = new StringBuilder();
//			
//			X31SDataBeanAccessArray stbCgifList = bean[0].getDataBeanArray("ＳＴＢ変更申込リスト");
//			X31SDataBeanAccess stbbean = null;
//			String stbid = "";
//			String bcasid = "";
//			String ccasid = "";
//			String line = "";
//			for (int i = 0; i < stbCgifList.getCount(); i++)
//			{
//				stbbean = stbCgifList.getDataBean(i);
//				// STB異動区分で一部撤去が選択されている場合
//				if ("03".equals(stbbean.sendMessageString(KKW00129SFConst.STB_IDO_DIV_CD_07, X31CWebConst.DATABEAN_GET_VALUE)))
//				{
//					stbid = stbbean.sendMessageString(KKW00129SFConst.STBID_07, X31CWebConst.DATABEAN_GET_VALUE);
//					bcasid = stbbean.sendMessageString(KKW00129SFConst.BCAS_ID_07, X31CWebConst.DATABEAN_GET_VALUE);
//					ccasid = stbbean.sendMessageString(KKW00129SFConst.CCAS_ID_07, X31CWebConst.DATABEAN_GET_VALUE);
//					line = stbid.trim() + "/" + bcasid + "/" + ccasid;
//					if (i == 0)
//					{
//						str.append(",撤去対象(STB ID/BCAS-ID/CCAS-ID)：" + line);
//					}
//					else if ((title.length() + str.length() + line.length()) < 128)
//					{
//						str.append("," + line);
//					}
//					else if ((str1.length() + line.length()) < 128)
//					{
//						str1.append("," + line);
//					}
//					else if ((title.length() + str2.length() + line.length()) < 128)
//					{
//						str2.append(",撤去対象(STB-ID/BCAS-ID/CCAS-ID)：" + line);
//					}
//					else
//					{
//						str3.append("," + line);
//					}
//				}
//			}
//			// 進捗特記事項1
//			parentMap.put("prg_tkjk_1", title + str.toString());
//			// 進捗特記事項2
//			parentMap.put("prg_tkjk_2", str1.toString());
//			// 進捗特記事項1
//			if (str2.length() > 0)
//			{
//				parMap = new HashMap<String, Object>();
//				parMap.put("prg_tkjk_1", title + str2.toString());
//				// 進捗特記事項2
//				parMap.put("prg_tkjk_2", str3.toString());
//			}
//		}
//		
//		// STB撤去内容が進捗特記事項1,2の桁数を超えた場合もう1レコード作成
//		if (parMap != null)
//		{
//			parMap.put("func_code", parentMap.get("func_code"));
//			parMap.put("svc_kei_no", parentMap.get("svc_kei_no"));
//			parMap.put("ido_div", parentMap.get("ido_div"));
//			parMap.put("ido_dtm", parentMap.get("ido_dtm"));
//			parMap.put("prg_stat", parentMap.get("prg_stat"));
//			parMap.put("svc_kei_kaisen_ucwk_no", parentMap.get("svc_kei_kaisen_ucwk_no"));
//			parMap.put("EKK1091D010CBSMsg1List", list);
//		}
		
		// 進捗特記事項編集
		StringBuilder prgTkjk = new StringBuilder();
		
		prgTkjk.append("料金プラン：(変更前)");
		
		String pcrsCdBk = bean[0].sendMessageString("料金コース（退避）", X31CWebConst.DATABEAN_GET_VALUE);
		X31SDataBeanAccess pcrsBean = bean[0].getDataBeanArray("料金コース").getDataBean(0);
		int count = (Integer)pcrsBean.sendMessage("コードリスト", X31CWebConst.DATABEAN_GET_COUNT);
		for(int i = 0; i < count; i++)
		{
			if (pcrsCdBk.equals(pcrsBean.sendMessageString("コードリスト", X31CWebConst.DATABEAN_GET_VALUE, i)))
			{
				// 変更前料金コース名
				prgTkjk.append(pcrsBean.sendMessageString("コード名リスト", X31CWebConst.DATABEAN_GET_VALUE, i));
			}
		}
		
		prgTkjk.append("　");
		
		String stbNormalBk = bean[0].sendMessageString(KKW00129SFConst.STB_NORMAL_CNT_BK, X31CWebConst.DATABEAN_GET_VALUE);
		String stb250gBk = bean[0].sendMessageString(KKW00129SFConst.STB_250G_CNT_BK, X31CWebConst.DATABEAN_GET_VALUE);
		String stb500gBk = bean[0].sendMessageString(KKW00129SFConst.STB_500G_CNT_BK, X31CWebConst.DATABEAN_GET_VALUE);
		String stb1000gBk = bean[0].sendMessageString(KKW00129SFConst.STB_1000G_CNT_BK, X31CWebConst.DATABEAN_GET_VALUE);
		
		if(!"0".equals(stbNormalBk) || !"0".equals(stb250gBk) || !"0".equals(stb500gBk) || !"0".equals(stb1000gBk))
		{
			prgTkjk.append("登録前：");
			
			if(!"0".equals(stbNormalBk))
			{
				prgTkjk.append("STB(通常)");
				prgTkjk.append(stbNormalBk);
				prgTkjk.append("台　");
			}
			if(!"0".equals(stb250gBk))
			{
				prgTkjk.append("250GB");
				prgTkjk.append(stb250gBk);
				prgTkjk.append("台　");
			}
			if(!"0".equals(stb500gBk))
			{
				prgTkjk.append("500GB");
				prgTkjk.append(stb500gBk);
				prgTkjk.append("台　");
			}
			if(!"0".equals(stb1000gBk))
			{
				prgTkjk.append("1000GB");
				prgTkjk.append(stb1000gBk);
				prgTkjk.append("台　");
			}
		}
		
		// 登録後のSTBのHDD種類カウント
		int stbNormal = 0;
		int stb250g = 0;
		int stb500g = 0;
		int stb1000g = 0;
		// ANK-2530-00-00 2016/03/25 ADD START
		int stbNormalVod = 0;
		int stb500gVod = 0;
		int stb2tVod = 0;
		// ANK-2530-00-00 2016/03/25 ADD END
		// ANK-3488-00-00 ADD START
		int fourKstbNormal = 0;
		int fourKstb2T = 0;
		// ANK-3488-00-00 ADD END
		// ANK-4335-00-00 ADD START
		int fourKstbNormalOld = 0;
		// ANK-4335-00-00 ADD END
		// ANK-2394-00-00 2015/03/11 ADD START
		// ＳＴＢ宅内機器型式
		String taknkikiModel = "";
		// 変更後ＳＴＢ台数
		int afStbCount = 0;
		// 変更後ＳＴＢ宅内機器型式 特記事項出力文字列
		StringBuilder afTaknkikiModelStr = new StringBuilder();
		// ANK-2394-00-00 2015/03/11 ADD END
		X31SDataBeanAccessArray stbHenkoList = bean[0].getDataBeanArray("ＳＴＢ変更申込リスト");
		X31SDataBeanAccess stbBean = null;
		for(int i = 0; i < stbHenkoList.getCount(); i++)
		{
			stbBean = stbHenkoList.getDataBean(i);
			
			String stbIdo = stbBean.sendMessageString(KKW00129SFConst.STB_IDO_DIV_CD_07, X31CWebConst.DATABEAN_GET_VALUE);
			
			// STB異動区分で一部撤去が選択されていない場合
			if(!"03".equals(stbIdo))
			{
				String hddCapa = stbBean.sendMessageString(KKW00129SFConst.HDD_CAPA_CD_07, X31CWebConst.DATABEAN_GET_VALUE);
				// ANK-2394-00-00 2015/03/11 ADD START
				// ＳＴＢに変更または追加がある場合は変更・追加分のＳＴＢ宅内機器型式を取得
				if("".equals(stbIdo))// 変更無し
				{
					// 元々保持していたSTBの型式を取得
					taknkikiModel = stbBean.sendMessageString(KKW00129SFConst.TAKNKIKI_MODEL_07, X31CWebConst.DATABEAN_GET_VALUE);
				}
				else if(JKKStrConst.CD00562_ADD.equals(stbIdo) || JKKStrConst.CD00562_CHANGE.equals(stbIdo))// 01：追加または02：交換
				{
					// 画面から追加、または交換で選択されたSTBの型式を取得
					taknkikiModel = stbBean.sendMessageString(KKW00129SFConst.SEL_TYPE_NUMBER_07, X31CWebConst.DATABEAN_GET_VALUE);
				}
				else
				{
				}
				afStbCount++;
				afTaknkikiModelStr.append(" " + afStbCount+"台目:" + taknkikiModel + " ");
				// ANK-2394-00-00 2015/03/11 ADD END
				if("".equals(hddCapa))
				{
					if("".equals(stbIdo))
					{
						// STB異動なしのため初期処理で取得したHDD容量コードを設定
						hddCapa = stbBean.sendMessageString(KKW00129SFConst.HDD_CAPA_CD_BK_07, X31CWebConst.DATABEAN_GET_VALUE);
					}
					else
					{
						// STB異動があり、HDD容量コードが入っていない場合はHDDなしを設定
						hddCapa = JKKCommonConst.HDD_CAPA_CD_NASI;
					}
				}
				
				if(JKKCommonConst.HDD_CAPA_CD_NASI.equals(hddCapa))
				{
					stbNormal++;
				}
				else if(JKKCommonConst.HDD_CAPA_CD_250.equals(hddCapa))
				{
					stb250g++;
				}
				// ANK-2394-00-00 2015/03/11 MOD START
				//else if(JKKCommonConst.HDD_CAPA_CD_500DVD.equals(hddCapa) || JKKCommonConst.HDD_CAPA_CD_500BD.equals(hddCapa))
				else if(JKKCommonConst.HDD_CAPA_CD_500DVD.equals(hddCapa) || JKKCommonConst.HDD_CAPA_CD_500BD.equals(hddCapa)|| JKKCommonConst.HDD_CAPA_CD_500HD.equals(hddCapa))
				// ANK-2394-00-00 2015/03/11 MOD END
				{
					stb500g++;
				}
				// ANK-2394-00-00 2015/03/11 MOD START
				//else if(JKKCommonConst.HDD_CAPA_CD_1000.equals(hddCapa))
				else if(JKKCommonConst.HDD_CAPA_CD_1000.equals(hddCapa) || JKKCommonConst.HDD_CAPA_CD_1000BD.equals(hddCapa))
				// ANK-2394-00-00 2015/03/11 MOD END
				{
					stb1000g++;
				}
				// ANK-2530-00-00 2016/03/25 ADD START
				else if(JKKCommonConst.HDD_CAPA_CD_NASI_VOD.equals(hddCapa))
				{
					stbNormalVod++;
				}
				else if(JKKCommonConst.HDD_CAPA_CD_500HD_VOD.equals(hddCapa))
				{
					stb500gVod++;
				}
				else if(JKKCommonConst.HDD_CAPA_CD_2THD_VOD.equals(hddCapa))
				{
					stb2tVod++;
				}
				// ANK-2530-00-00 2016/03/25 ADD END
				// ANK-3488-00-00 ADD START
				else if(JKKCommonConst.HDD_CAPA_CD_4KSTB_NASI.equals(hddCapa))
				{
					fourKstbNormal++;
				}
				else if(JKKCommonConst.HDD_CAPA_CD_4KTB_2THD.equals(hddCapa))
				{
					fourKstb2T++;
				}
				// ANK-3488-00-00 ADD END
				// ANK-4335-00-00 ADD START
				else if(JKKCommonConst.HDD_CAPA_CD_4KSTB_NASI_OLD.equals(hddCapa))
				{
					fourKstbNormalOld++;
				}
				// ANK-4335-00-00 ADD END
			}
		}
		
		// ANK-3488-00-00 MOD START
		// ANK-2530-00-00 2016/03/25 MOD START
//		if(stbNormal != 0 || stb250g != 0 || stb500g != 0 || stb1000g != 0)
		//if(stbNormal != 0 || stb250g != 0 || stb500g != 0 || stb1000g != 0 || stbNormalVod != 0 || stb500gVod != 0 || stb2tVod != 0)
		// ANK-4335-00-00 MOD START
//		if(stbNormal != 0 || stb250g != 0 || stb500g != 0 || stb1000g != 0 || stbNormalVod != 0 || stb500gVod != 0 || stb2tVod != 0 || fourKstbNormal != 0 || fourKstb2T != 0 )
		// ANK-2530-00-00 2016/03/25 MOD END
		// ANK-3488-00-00 MOD END
		if(stbNormal != 0 || stb250g != 0 || stb500g != 0 || stb1000g != 0 || stbNormalVod != 0 || stb500gVod != 0 || stb2tVod != 0 || fourKstbNormal != 0 || fourKstb2T != 0 || fourKstbNormalOld != 0)
		// ANK-4335-00-00 MOD END
		{
			prgTkjk.append("登録後：");
			
			if(stbNormal != 0)
			{
				prgTkjk.append("STB(通常)");
				prgTkjk.append(stbNormal);
				prgTkjk.append("台　");
			}
			if(stb250g != 0)
			{
				prgTkjk.append("250GB");
				prgTkjk.append(stb250g);
				prgTkjk.append("台　");
			}
			if(stb500g != 0)
			{
				prgTkjk.append("500GB");
				prgTkjk.append(stb500g);
				prgTkjk.append("台　");
			}
			if(stb1000g != 0)
			{
				prgTkjk.append("1000GB");
				prgTkjk.append(stb1000g);
				prgTkjk.append("台　");
			}
			// ANK-2530-00-00 2016/03/25 ADD START
			if(stbNormalVod != 0)
			{
				prgTkjk.append("STB(通常 VOD)");
				prgTkjk.append(stbNormalVod);
				prgTkjk.append("台　");
			}
			if(stb500gVod != 0)
			{
				prgTkjk.append("500GB VOD");
				prgTkjk.append(stb500gVod);
				prgTkjk.append("台　");
			}
			if(stb2tVod != 0)
			{
				prgTkjk.append("2TB VOD");
				prgTkjk.append(stb2tVod);
				prgTkjk.append("台　");
			}
			// ANK-2530-00-00 2016/03/25 ADD END
			// ANK-3488-00-00 ADD START
			if(fourKstbNormal != 0)
			{
				prgTkjk.append("4K-STB(通常)");
				prgTkjk.append(fourKstbNormal);
				prgTkjk.append("台　");
			}
			if(fourKstb2T != 0)
			{
				prgTkjk.append("2TB 4K-STB");
				prgTkjk.append(fourKstb2T);
				prgTkjk.append("台　");
			}
			// ANK-3488-00-00 ADD END
			// ANK-4335-00-00 ADD START
			if(fourKstbNormalOld != 0)
			{
				prgTkjk.append("4K-STB(通常) 旧コース");
				prgTkjk.append(fourKstbNormalOld);
				prgTkjk.append("台　");
			}
			// ANK-4335-00-00 ADD END
		}
		// ANK-2394-00-00 2015/03/11 ADD START
		//変更後STBの型式文字列を特記事項文字列に追加
		prgTkjk.append(afTaknkikiModelStr);
		// ANK-2394-00-00 2015/03/11 ADD END
		// 工事範囲コード
		String kojiScopeCd = bean[0].sendMessageString(KKW00129SFConst.KOJI_SCOPE_CD,X31CWebConst.DATABEAN_GET_VALUE);
		
		if(JKKCommonConst.KOJI_SCOPE_220.equals(kojiScopeCd) || JKKCommonConst.KOJI_SCOPE_230.equals(kojiScopeCd))
		{
			prgTkjk.append("V-ONU交換");
		}
		else
		{
			// 末尾の全角スペースが不要なため削除する
			String prgTkjkTaihi = prgTkjk.substring(0, prgTkjk.length() - 1);
			prgTkjk = new StringBuilder();
			prgTkjk.append(prgTkjkTaihi);
		}
// 20140711 ANK-2135-00-00 ADD START
		// スタｃｈセット
		Boolean starChPack = bean[0].sendMessageBoolean(KKW00129SFConst.STAR_CH_PACK,X31CWebConst.DATABEAN_GET_VALUE);

		if(starChPack)
		{
			prgTkjk.append("　＋スタｃｈセット");
		}
// 20140711 ANK-2135-00-00 ADD END
// ANK-4673-00-02 ADD STAR
		// STB撤去（ヤマト撤去）
		if (bean[0].sendMessageBoolean(KKW00129SFConst.STB_TEKKYO, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// STB撤去年月日
			String stb_tekkyo_ymd = bean[0].sendMessageString(KKW00129SFConst.STB_TEKKYO_YMD, X31CWebConst.DATABEAN_GET_VALUE);
			// ヤマト撤去で、STB撤去年月日が未入力の場合、下記を設定する
			if (JKKStringUtil.isNullBlank(stb_tekkyo_ymd))
			{
				prgTkjk.append("　STB撤去：ON　撤去日： 　撤去費用： ");
			}
			else
			{
				// STB撤去年月日が入力されている場合、下記を設定する
				
				// STB撤去年月日 yyyy/mm/dd
				String stb_tekkyo_ymd_msg = getAddSlashYmd(stb_tekkyo_ymd);

				// STB撤去費用
				String stb_tekkyo_hiyo_msg = "無";
				// STB撤去費用が有の場合
				if (JKKCommonConst.UM_U.equals(bean[0].sendMessageString(KKW00129SFConst.STB_TEKKYO_HIYO, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					stb_tekkyo_hiyo_msg = "有";
				}
				prgTkjk.append("　STB撤去：ON" + "　撤去日：" + stb_tekkyo_ymd_msg + "　撤去費用：" + stb_tekkyo_hiyo_msg);
			}
		}
// ANK-4673-00-02 ADD END
		if(prgTkjk.length() < 129)
		{
			parentMap.put("prg_tkjk_1", prgTkjk.toString());
			parentMap.put("prg_tkjk_2", "");
		}
		else if(prgTkjk.length() < 257)
		{
			parentMap.put("prg_tkjk_1", prgTkjk.substring(0, 128));
			parentMap.put("prg_tkjk_2", prgTkjk.substring(128));
		}
		else
		{
			parentMap.put("prg_tkjk_1", prgTkjk.substring(0, 128));
			parentMap.put("prg_tkjk_2", prgTkjk.substring(128, 256));
		}
		
		parentMap.put("EKK1091D010CBSMsg1List", list);
		outputMap.put("KKSV031208SC", parentMap);
		outputMap.put("KKSV031209SC", parMap);
		return outputMap;
	}

	/**
	 * 料金コースを判定し、料金グループコードを返却します。
	 * @param bean
	 * @return prcGrpCd
	 */
	private String getPrcGrpCd(X31SDataBeanAccess[] bean)
	{
		X31SDataBeanAccess subbean = bean[0].getDataBeanArray("料金コース").getDataBean(0);
		String pcrsCd = subbean.sendMessageString("コード値", X31CWebConst.DATABEAN_GET_VALUE);
		String prcGrpCd = "";
//**********【IT1-2013-0000216】対応*****************
		if (JKKCommonConst.PCRS_CD_A23.equals(pcrsCd) || JKKCommonConst.PCRS_CD_A24.equals(pcrsCd) || JKKCommonConst.PCRS_CD_A64.equals(pcrsCd) || JKKCommonConst.PCRS_CD_A75.equals(pcrsCd))
		{
			prcGrpCd = JKKCommonConst.PRC_GRP_CD_13;
		}
//**********【IT1-2013-0000216】対応*****************
		else if (JKKCommonConst.PCRS_CD_A25.equals(pcrsCd))
		{
			prcGrpCd = JKKCommonConst.PRC_GRP_CD_12;
		}
		// ANK-4592-00-00 MOD START
//		else if (JKKCommonConst.PCRS_CD_A37.equals(pcrsCd) 	|| JKKCommonConst.PCRS_CD_A38.equals(pcrsCd) || JKKCommonConst.PCRS_CD_A39.equals(pcrsCd))
		else if (JKKCommonConst.PCRS_CD_A37.equals(pcrsCd) 	|| JKKCommonConst.PCRS_CD_A38.equals(pcrsCd) || JKKCommonConst.PCRS_CD_A39.equals(pcrsCd)
				 || JKKCommonConst.PCRS_CD_AC0.equals(pcrsCd) || JKKCommonConst.PCRS_CD_AC1.equals(pcrsCd))
		// ANK-4592-00-00 MOD END
		{
			prcGrpCd = JKKCommonConst.PRC_GRP_CD_11;
		}

		return prcGrpCd;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：工事情報登録情報
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031204CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}
		
		if (bean.length != 1)
		{
			return null;
		}

		X31SDataBeanAccess svcKeiBean = bean[0].getDataBeanArray("サービス契約情報").getDataBean(0);
		
		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("svc_kei_no", svcKeiBean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 引越対象サービス契約番号
		parentMap.put("hikkoshi_trgt_svc_kei_no", svcKeiBean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 工事案件番号
		parentMap.put("kojiak_no", bean[0].sendMessageString("工事案件番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 申込書番号
		parentMap.put("mskmsho_no", bean[0].sendMessageString("申込書番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 新築物件コード
		parentMap.put("newconst_bukken_cd", bean[0].sendMessageString("新築物件コード", X31CWebConst.DATABEAN_GET_VALUE));
		// 復活案件フラグ
		parentMap.put("hukkat_anken_flg", bean[0].sendMessageString("復活案件フラグ", X31CWebConst.DATABEAN_GET_VALUE));
		// 提供方式契約番号 → 提供方式契約番号
		parentMap.put("tk_hoshiki_kei_no", svcKeiBean.sendMessageString("提供方式契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 同一設備再申込コードbean[0]
		parentMap.put("same_equip_re_mskm_cd", bean[0].sendMessageString("同一設備再申込コード", X31CWebConst.DATABEAN_GET_VALUE));
		// 工事範囲コード
		String koji_scope_cd = bean[0].sendMessageString("工事範囲コード", X31CWebConst.DATABEAN_GET_VALUE);
		parentMap.put("koji_scope_cd", koji_scope_cd);
		// 移設コード
		parentMap.put("isetsu_cd", bean[0].sendMessageString("移設区分コード", X31CWebConst.DATABEAN_GET_VALUE));
		// 工事希望年月日
		parentMap.put("koji_kibo_ymd", bean[0].sendMessageString("工事希望年月日", X31CWebConst.DATABEAN_GET_VALUE));
		// 電話連絡希望時間帯コード
		parentMap.put("tel_rrk_kibo_time_cd", bean[0].sendMessageString("電話連絡希望時間帯コード", X31CWebConst.DATABEAN_GET_VALUE));
		// 宅内工事希望アポ期限年月日
		parentMap.put("tnkj_kibo_apo_kigen_ymd", bean[0].sendMessageString("工事希望アポ期限", X31CWebConst.DATABEAN_GET_VALUE));
		// 工事アポ連絡先指定コード
		parentMap.put("koji_apo_rrks_shitei_cd", bean[0].sendMessageString("工事アポ連絡先コード", X31CWebConst.DATABEAN_GET_VALUE));
		// 工事案件備考
		parentMap.put("kojiak_biko", bean[0].sendMessageString("連絡手段補記", X31CWebConst.DATABEAN_GET_VALUE));
		// 工事案件備考1
		parentMap.put("kojiak_biko_1", bean[0].sendMessageString("工事案件備考", X31CWebConst.DATABEAN_GET_VALUE));
		// 工事案件備考2
		parentMap.put("kojiak_biko_2", bean[0].sendMessageString("工事案件備考２", X31CWebConst.DATABEAN_GET_VALUE));
		// 関西電力お客様情報授受同意有無
		parentMap.put("kepco_ctinfo_juju_doi_um", bean[0].sendMessageString("情報授受同意コード", X31CWebConst.DATABEAN_GET_VALUE));
		// 申込者名
		parentMap.put("mskmsha_nm", bean[0].sendMessageString("お客様名", X31CWebConst.DATABEAN_GET_VALUE));
		// 工事アポ連絡先電話番号
		parentMap.put("koji_apo_rrks_telno", bean[0].sendMessageString("お客様連絡先番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 解約希望年月日
		parentMap.put("dsl_kibo_ymd", bean[0].sendMessageString("解約年月日", X31CWebConst.DATABEAN_GET_VALUE));
		// マンション設備用記事欄 IT2-2012-0001039対応
		parentMap.put("manssbsys_rnki_kijiran", bean[0].sendMessageString("マンション設備用記事欄", X31CWebConst.DATABEAN_GET_VALUE));

		// 申込書明細番号 ANK-0397-00-00 申込書明細番号追加対応
		parentMap.put("mskmsho_dtl_no", bean[0].sendMessageString("申込書明細番号", X31CWebConst.DATABEAN_GET_VALUE));
		/* ++++++++++ v4.00.02 追加開始 ++++++++++ */
		// 新料金コースコード
		X31SDataBeanAccess pcrsbean = bean[0].getDataBeanArray("料金コース").getDataBean(0);
		String pcrsCd = pcrsbean.sendMessageString("コード値", X31CWebConst.DATABEAN_GET_VALUE);
		parentMap.put("new_pcrs_cd", pcrsCd);
		
		// 新料金グループコード
		if (JKKCommonConst.PCRS_CD_A23.equals(pcrsCd) || JKKCommonConst.PCRS_CD_A24.equals(pcrsCd) || JKKCommonConst.PCRS_CD_A64.equals(pcrsCd) || JKKCommonConst.PCRS_CD_A75.equals(pcrsCd))
		{
			parentMap.put("new_prc_grp_cd", JKKCommonConst.PRC_GRP_CD_13);
		}
		else if (JKKCommonConst.PCRS_CD_A25.equals(pcrsCd))
		{
			parentMap.put("new_prc_grp_cd", JKKCommonConst.PRC_GRP_CD_12);
		}
		// ANK-4592-00-00 MOD START
//		else if (JKKCommonConst.PCRS_CD_A37.equals(pcrsCd) || JKKCommonConst.PCRS_CD_A38.equals(pcrsCd) || JKKCommonConst.PCRS_CD_A39.equals(pcrsCd))
		else if (JKKCommonConst.PCRS_CD_A37.equals(pcrsCd) || JKKCommonConst.PCRS_CD_A38.equals(pcrsCd) || JKKCommonConst.PCRS_CD_A39.equals(pcrsCd)
				|| JKKCommonConst.PCRS_CD_AC0.equals(pcrsCd) || JKKCommonConst.PCRS_CD_AC1.equals(pcrsCd))
		// ANK-4592-00-00 MOD END
		{
			parentMap.put("new_prc_grp_cd", JKKCommonConst.PRC_GRP_CD_11);
		}
		/* ++++++++++ v4.00.02 追加終了 ++++++++++ */

		ArrayList<HashMap<String, Object>> kktkSvcList = new ArrayList<HashMap<String, Object>>();
		
		X31SDataBeanAccessArray stbList = bean[0].getDataBeanArray("ＳＴＢ変更申込リスト");
		X31SDataBeanAccess stbBean = null;

		for (int i = 0; i < stbList.getCount().intValue(); i++)
		{
			stbBean = stbList.getDataBean(i);
			HashMap<String, Object> childMap = new HashMap<String, Object>();
			
			// 宅内機器種別コード
			childMap.put("taknkiki_sbt_cd", stbBean.sendMessageString("宅内機器種別コード", X31CWebConst.DATABEAN_GET_VALUE));
			// 宅内機器異動コード
			childMap.put("taknkiki_ido_cd", stbBean.sendMessageString("ＳＴＢ異動区分コード", X31CWebConst.DATABEAN_GET_VALUE));
			// 機器提供サービス契約番号
			childMap.put("kktk_svc_kei_no", stbBean.sendMessageString("機器提供サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
			// 宅内機器型式コード
			childMap.put("taknkiki_model_cd", stbBean.sendMessageString("宅内機器型式", X31CWebConst.DATABEAN_GET_VALUE));
			// 機器製造番号
			childMap.put("kiki_seizo_no", stbBean.sendMessageString("機器製造番号", X31CWebConst.DATABEAN_GET_VALUE));
			// STB-ID
			childMap.put("stb_id", stbBean.sendMessageString("ＳＴＢＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
			
			String stbDiv = stbBean.sendMessageString("ＳＴＢ区分コード", X31CWebConst.DATABEAN_GET_VALUE);
			String hddCapa = stbBean.sendMessageString("ＨＤＤ容量コード", X31CWebConst.DATABEAN_GET_VALUE);
			// ＳＴＢ区分が"0":通常（標準）STB　かつ　ＨＤＤ容量コードが空白の場合
			if("0".equals(stbDiv) && "".equals(hddCapa))
			{
				// HDD容量コード("00":なし)
				childMap.put("hdd_capa_cd", JKKCommonConst.HDD_CAPA_CD_NASI);
			}
			else
			{
				// HDD容量コード
				childMap.put("hdd_capa_cd", hddCapa);
			}
			
			// STB契約TVコースコード
			childMap.put("stb_kei_tv_course_cd", stbBean.sendMessageString("ＴＶコースコード", X31CWebConst.DATABEAN_GET_VALUE));
			// 旧STB-ID
			childMap.put("old_stb_id", "");
			// 旧HDD容量コード
			childMap.put("old_hdd_capa_cd", "");
			// 旧宅内機器型式コード
			childMap.put("old_taknkiki_model_cd", "");
			// 提供種別コード
			childMap.put("tk_sbt_cd", "");
			
			kktkSvcList.add(childMap);
		}
		
		// ANK-3136-00-00 ADD START
		// 他システム連携_工事連絡先氏名
		parentMap.put("tsyrn_kj_rrks_nm", bean[0].sendMessageString("他システム連携_工事連絡先氏名", X31CWebConst.DATABEAN_GET_VALUE));
		// 他システム連携_工事連絡先電話番号
		parentMap.put("tsyrn_kj_rrks_tln", bean[0].sendMessageString("他システム連携_工事連絡先電話番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 他システム連携_宅内調査時連絡先氏名
		parentMap.put("tsyrn_takcho_ji_rrks_nm", bean[0].sendMessageString("他システム連携_宅内調査時連絡先氏名", X31CWebConst.DATABEAN_GET_VALUE));
		// 他システム連携_宅内調査時連絡先電話番号
		parentMap.put("tsyrn_takcho_ji_rrks_tln", bean[0].sendMessageString("他システム連携_宅内調査時連絡先電話番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 他システム連携_連絡希望日時
		parentMap.put("tsyrn_rrk_kibo_date", bean[0].sendMessageString("他システム連携_連絡希望日時", X31CWebConst.DATABEAN_GET_VALUE));
		// 他システム連携_工事費用
		parentMap.put("tsyrn_koji_hi", bean[0].sendMessageString("他システム連携_工事費用", X31CWebConst.DATABEAN_GET_VALUE));
		// 他システム連携_宅内調査要否
		parentMap.put("tsyrn_takcho_yh", bean[0].sendMessageString("他システム連携_宅調不要フラグ", X31CWebConst.DATABEAN_GET_VALUE));
		// 他システム連携_承諾書要否
		parentMap.put("tsyrn_sdaks_yh", bean[0].sendMessageString("他システム連携_承諾書要否", X31CWebConst.DATABEAN_GET_VALUE));
		// 他システム連携_立会者名
		parentMap.put("tsyrn_tachiaisha_nm", bean[0].sendMessageString("他システム連携_立会者名", X31CWebConst.DATABEAN_GET_VALUE));
		// 他システム連携_引越し施策要否
		parentMap.put("tsyrn_hkks_sisak_yh", bean[0].sendMessageString("他システム連携_引越し施策要否", X31CWebConst.DATABEAN_GET_VALUE));
		// 他システム連携_建替時新設案件要否
		parentMap.put("tsyrn_ttk_ji_nsank_yh", bean[0].sendMessageString("他システム連携_建替時新設案件要否", X31CWebConst.DATABEAN_GET_VALUE));
		// 他システム連携_地図有無
		parentMap.put("tsyrn_map_um", bean[0].sendMessageString("他システム連携_地図有無", X31CWebConst.DATABEAN_GET_VALUE));
		// 他システム連携_同時工事情報
		parentMap.put("tsyrn_doji_koji_inf", bean[0].sendMessageString("他システム連携_同時工事情報", X31CWebConst.DATABEAN_GET_VALUE));
		// 他システム連携_既存契約情報
		parentMap.put("tsyrn_kzn_kei_inf", bean[0].sendMessageString("他システム連携_既存契約情報", X31CWebConst.DATABEAN_GET_VALUE));
		// 他システム連携_不備解消年月日
		parentMap.put("tsyrn_hbi_kaishou_ymd", bean[0].sendMessageString("他システム連携_不備解消年月日", X31CWebConst.DATABEAN_GET_VALUE));
		// 他システム連携_キャンペーン情報
		parentMap.put("tsyrn_campaign_inf", bean[0].sendMessageString("他システム連携_キャンペーン情報", X31CWebConst.DATABEAN_GET_VALUE));
		// 宅内調査要否
		parentMap.put("takcho_yh", bean[0].sendMessageString("宅内調査要否", X31CWebConst.DATABEAN_GET_VALUE));
		// 設計要否
		parentMap.put("dsgn_yh", bean[0].sendMessageString("設計要否", X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-3136-00-00 ADD END
		
		//OM-2016-0002522 ADD START
		// 電波障害案件番号 → サービス契約＜eo光TV＞料金プラン変更マップ.電波障害案件番号
		parentMap.put("dmps_anken_no", bean[0].sendMessageString("電波障害案件番号", X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("dmps_anken_no_flg", "1");
		//OM-2016-0002522 ADD END
		
		parentMap.put("kktkSvcOutList", kktkSvcList);
		parentMap.put("Tchishofixedtext", "KKSV031209CC");
		outputMap.put("KKSV031204CC", parentMap);
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031201WORK(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 stbList = bean[0].getDataBeanArray("ＳＴＢ変更申込リスト");
		
		// STB撤去情報を取得
		boolean stb_tekkyo_flg = bean[0].sendMessageBoolean(KKW00129SFConst.STB_TEKKYO, X31CWebConst.DATABEAN_GET_VALUE);
		// 工事情報入力フラグを取得
		boolean koji_ak_entry_flg = bean[0].sendMessageBoolean(KKW00129SFConst.KOJI_AK_ENTRY_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 工事案件の受付実施をチェック
		if (koji_ak_entry_flg && !stb_tekkyo_flg)
		{
			// 工事案件受付実施フラグ
			parentMap.put("stbChgUm", "1");
		}
		else
		{
			// 工事案件受付実施フラグ
			parentMap.put("stbChgUm", "0");
		}
		
		outputMap.put("KKSV031201WORK", parentMap);
		return outputMap;
	}
	
/* ++++++++++ v6.00.01 変更開始 ++++++++++ */
/* ++++++++++ v6.00.00 削除開始 ++++++++++ */
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：工事情報登録情報
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031206CC(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>();
		ArrayList ichijikinList = new ArrayList();
		
		// STB撤去費用
		String stb_tekkyo_hiyo = bean[0].sendMessageString(KKW00129SFConst.STB_TEKKYO_HIYO, X31CWebConst.DATABEAN_GET_VALUE);
		parentMap.put("stb_tekkyo_hiyo", stb_tekkyo_hiyo);
		
		// STB撤去費用が有の場合
		if (JKKCommonConst.UM_U.equals(stb_tekkyo_hiyo))
		{
			// ＳＴＢ変更申込情報リスト
			X31SDataBeanAccessArray stbCgifList = bean[0].getDataBeanArray("ＳＴＢ変更申込リスト");
			X31SDataBeanAccess stbbean = null;
			HashMap<String, Object> childMap = null;
			for (int i = 0; i < stbCgifList.getCount(); i++)
			{
				stbbean = stbCgifList.getDataBean(i);
				// ＳＴＢ異動区分が一部撤去の場合
				if ("03".equals(stbbean.sendMessageString(KKW00129SFConst.STB_IDO_DIV_CD_07, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					childMap = new HashMap<String, Object>();
					// 共通項目
					childMap.put("func_code", func_code);
					// 一時支払料金番号
					childMap.put("tmp_pay_prc_no", bean[0].sendMessageString(KKW00129SFConst.TMP_PAY_PRC_NO, X31CWebConst.DATABEAN_GET_VALUE));
					// サービス契約番号
					childMap.put("svc_kei_no", bean[0].sendMessageString(KKW00129SFConst.KEY_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
					// サービス契約内訳番号
					childMap.put("svc_kei_ucwk_no", stbbean.sendMessageString(KKW00129SFConst.SVC_KEI_UCWK_NO_07, X31CWebConst.DATABEAN_GET_VALUE));
					// 機器提供サービス契約番号
					childMap.put("kktk_svc_kei_no", stbbean.sendMessageString(KKW00129SFConst.KKTK_SVC_KEI_NO_07, X31CWebConst.DATABEAN_GET_VALUE));
					ichijikinList.add(childMap);
				}
			}
		}
		parentMap.put("ichijikinList", ichijikinList);
		outputMap.put("ichijikinMap", parentMap);
		return outputMap;
	}
/* ++++++++++ v6.00.00 削除終了 ++++++++++ */
/* ++++++++++ v6.00.01 変更終了 ++++++++++ */
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：工事情報登録情報
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 * @throws  throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031207CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) throws Exception
	{
		if (bean == null)
		{
			return null;
		}
		
		if (bean.length != 1)
		{
			return null;
		}
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		ArrayList stbTekkyoList = new ArrayList();
		X31SDataBeanAccess svcKeiBean = bean[0].getDataBeanArray(KKW00129SFConst.EKK0081A010CBSMSG1LIST).getDataBean(0);
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// STB撤去チェック有
		if (bean[0].sendMessageBoolean(KKW00129SFConst.STB_TEKKYO, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// 視聴制御依頼処理コード
			parentMap.put("wctrl_req_trn_cd", "50");
			// SYSID
			parentMap.put("sysid", svcKeiBean.sendMessageString(KKW00129SFConst.SYSID_02, X31CWebConst.DATABEAN_GET_VALUE));
			// サービス契約番号
			parentMap.put("svc_kei_no", bean[0].sendMessageString(KKW00129SFConst.KEY_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
			// ＳＴＢ変更申込情報リスト
			X31SDataBeanAccessArray stbCgifList = bean[0].getDataBeanArray(KKW00129SFConst.STB_HENKOU_LIST);
			X31SDataBeanAccess stbbean = null;
			HashMap<String, Object> childMap = null;
			for (int i = 0; i < stbCgifList.getCount(); i++)
			{
				stbbean = stbCgifList.getDataBean(i);
				// ＳＴＢ異動区分が一部撤去の場合
				if ("03".equals(stbbean.sendMessageString(KKW00129SFConst.STB_IDO_DIV_CD_07, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					childMap = new HashMap<String, Object>();
					// ＫＥＹ＿宅内機器型式コード
					childMap.put("key_tk_mdl_cd", stbbean.sendMessageString(KKW00129SFConst.TAKNKIKI_MODEL_07, X31CWebConst.DATABEAN_GET_VALUE));
					// ＫＥＹ＿機器製造番号
					childMap.put("key_kk_seizo_no", stbbean.sendMessageString(KKW00129SFConst.KIKI_SEIZO_NO_07, X31CWebConst.DATABEAN_GET_VALUE));
					// ＫＥＹ＿ＳＴＢＩＤ
					childMap.put("key_stbid", stbbean.sendMessageString(KKW00129SFConst.STBID_07, X31CWebConst.DATABEAN_GET_VALUE));
					// ＫＥＹ＿宅内機器種別コード
					childMap.put("key_tk_sbt_cd", stbbean.sendMessageString(KKW00129SFConst.TAKNKIKI_SBT_CD_07, X31CWebConst.DATABEAN_GET_VALUE));
					// サービス契約内訳番号
					childMap.put("svc_kei_ucwk_no", stbbean.sendMessageString(KKW00129SFConst.SVC_KEI_UCWK_NO_07, X31CWebConst.DATABEAN_GET_VALUE));
					// BCAS-ID
					childMap.put("bcas_card_no", stbbean.sendMessageString(KKW00129SFConst.BCAS_ID_07, X31CWebConst.DATABEAN_GET_VALUE));
					// CCAS-ID
					childMap.put("ccas_card_no", stbbean.sendMessageString(KKW00129SFConst.CCAS_ID_07, X31CWebConst.DATABEAN_GET_VALUE));
					stbTekkyoList.add(childMap);
				}
			}
		}
		parentMap.put("stbTekkyoList", stbTekkyoList);
		outputMap.put("KojiWctrlOrderSendMap", parentMap);
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031212SC(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);
		
		// 申込書番号 → 申込書番号存在チェック一覧照会SCマップ.ＫＥＹ＿申込書番号
		parentMap.put("key_mskmsho_no", bean[0].sendMessageString(KKW00129SFConst.MSKMSHO_NO, X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV031212SC", parentMap);
		
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031210SC(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);
		
		// 申込書明細番号 → 申込書明細番号件数一覧照会SCマップ.ＫＥＹ＿申込書明細番号
		parentMap.put("key_mskmsho_dtl_no", bean[0].sendMessageString(KKW00129SFConst.MSKMSHO_DTL_NO, X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV031210SC", parentMap);
		
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031211SC(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);
		
		// 主要項目種別コード → 主要項目削除実績一覧照会SCマップ.ＫＥＹ＿主要項目種別コード
		parentMap.put("key_major_kmk_sbt_cd", "1"); // "1:申込書番号"(固定値)
		// 申込書番号 → 主要項目削除実績一覧照会SCマップ.ＫＥＹ＿申込書番号
		parentMap.put("key_mskmsho_no", bean[0].sendMessageString(KKW00129SFConst.MSKMSHO_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 工事案件番号 → 主要項目削除実績一覧照会SCマップ.ＫＥＹ＿工事案件番号
		parentMap.put("key_kojiak_no", bean[0].sendMessageString("工事案件番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV031211SC", parentMap);
		
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031208CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}
		
		X31SDataBeanAccess subbean = bean[0].getDataBeanArray("サービス契約情報").getDataBean(0);

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// サービス契約情報.ＳＹＳＩＤ → お客様回復共通CCマップ.ＳＹＳＩＤ
		parentMap.put("sysid", subbean.sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約情報.サービス契約番号 → お客様回復共通CCマップ.サービス契約番号
		parentMap.put("svc_kei_no", subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV031208CC", parentMap);
						
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031209CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}

		X31SDataBeanAccess mkbean = bean[0].getDataBeanArray("申込明細一意情報").getDataBean(0);
		X31SDataBeanAccess subbean = bean[0].getDataBeanArray("サービス契約情報").getDataBean(0);
		X31SDataBeanAccess pcrsbean = bean[0].getDataBeanArray("料金コース").getDataBean(0);
		String pcrsCd = pcrsbean.sendMessageString("コード値", X31CWebConst.DATABEAN_GET_VALUE);

		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		HashMap<String, Object> childMap = new HashMap<String, Object>();
		ArrayList<HashMap<String, Object>> paramList = new ArrayList<HashMap<String, Object>>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// サービス契約情報.サービス契約番号 → 通知書登録CCマップ.サービス契約番号
		childMap.put("svc_kei_no", subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 料金グループコード → 通知書登録CCマップ.料金グループコード
		childMap.put("prc_grp_cd", getPrcGrpCd(bean));
		// サービス契約情報.ＳＹＳＩＤ → 通知書登録CCマップ.ＳＹＳＩＤ
		childMap.put("sysid", subbean.sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約情報.整理番号 → 通知書登録CCマップ.整理番号
		childMap.put("seiri_no", subbean.sendMessageString("整理番号", X31CWebConst.DATABEAN_GET_VALUE));
//		// 申込明細一意情報.申込明細番号 → 通知書登録CCマップ.申込明細番号　申込承認登録のアウトプットを使用
//		childMap.put("mskm_dtl_no", mkbean.sendMessageString("申込明細番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 申込書番号 → 通知書登録CCマップ.申込書番号
		childMap.put("mskmsho_no", bean[0].sendMessageString("申込書番号", X31CWebConst.DATABEAN_GET_VALUE));
		if("1".equals(func_code) && "".equals(childMap.get("mskmsho_no")))
		{
			childMap.put("mskmsho_no", mkbean.sendMessageString("申込書番号", X31CWebConst.DATABEAN_GET_VALUE));
		}
//		// サービス契約情報.工事案件番号 → 通知書登録CCマップ.工事案件番号　工事案件受付ＣＣのアウトプットを使用
//		childMap.put("kojiak_no", bean[0].sendMessageString("工事案件番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 料金コース.コードタイプコード → 通知書登録CCマップ.コース変更後料金コースコード
		childMap.put("pcrs_chgaf_pcrs_cd", pcrsCd);
		
		paramList.add(childMap);
	
		parentMap.put("trgt_data_list", paramList);
		
		outputMap.put("KKSV031209CC", parentMap);
						
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031213SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}

		X31SDataBeanAccess subbean = bean[0].getDataBeanArray("サービス契約情報").getDataBean(0);
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// ＳＹＳＩＤ → サービス契約一覧照会（SYSID）2SCマップ.ＫＥＹ＿ＳＹＳＩＤ
		parentMap.put("key_sysid", subbean.sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約番号 → サービス契約一覧照会（SYSID）2SCマップ.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV031213SC", parentMap);
		
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031214SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, HashMap<String, String> pMap)
	{
		
		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);

		// 変更前料金コースコード → 料金コース変更可能条件一覧照会SCマップ.ＫＥＹ＿変更前料金コースコード
		parentMap.put("key_chge_bf_pcrs_cd", pMap.get("chge_bf_pcrs_cd"));
		// 変更後料金コースコード → 料金コース変更可能条件一覧照会SCマップ.ＫＥＹ＿変更後料金コースコード
		parentMap.put("key_chaf_pcrs_cd", pMap.get("chaf_pcrs_cd"));
		// 運用日付 → 料金コース変更可能条件一覧照会SCマップ.ＫＥＹ＿運用日付
		parentMap.put("key_ope_ymd", pMap.get("ope_ymd"));
		
		outputMap.put("KKSV031214SC", parentMap);
		
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031215SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}
		
		X31SDataBeanAccess ucwkbean = bean[0].getDataBeanArray("サービス契約回線内訳一意情報").getDataBean(0);

		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// サービス契約回線内訳番号 → 住所変更一覧照会SCマップ.ＫＥＹ＿移転元サービス契約回線内訳番号
		parentMap.put("key_itnm_svkei_kisuw_no", ucwkbean.sendMessageString("サービス契約回線内訳番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV031215SC", parentMap);
		
		return outputMap;
	}
	
	/* ++++++++++ v4.00.01 追加開始 ++++++++++ */
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031210CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}
		
		X31SDataBeanAccess subbean = bean[0].getDataBeanArray("サービス契約情報").getDataBean(0);

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// サービス契約情報.ＳＹＳＩＤ → お客様回復共通CCマップ.ＳＹＳＩＤ
		parentMap.put("sysid", subbean.sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約情報.サービス契約番号 → お客様回復共通CCマップ.サービス契約番号
		parentMap.put("svc_kei_no", subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 「指示書登録」処理区分
		parentMap.put("SjishoAddKbn", "courseChg");
		
		outputMap.put("KKSV031210CC", parentMap);
						
		return outputMap;
	}
	/* ++++++++++ v4.00.01 追加終了 ++++++++++ */
	
	// 20140711 ANK-2135-00-00 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031216SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}
		
		X31SDataBeanAccess subbean = bean[0].getDataBeanArray("サービス契約情報").getDataBean(0);

		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// サービス契約情報.サービス契約番号 → 割引サービス対象契約一覧照会マップ.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV031216SC", parentMap);
		
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031217SC(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 subbean = bean[0].getDataBeanArray("サービス契約情報").getDataBean(0);

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 申込時登録不可契約予約登録マップ.申込時登録不可契約予約種別コード
		parentMap.put("mkj_addf_kei_rv_sbt_cd", "01");

		// サービス契約情報.申込明細番号 → 申込時登録不可契約予約登録マップ.申込明細番号
		parentMap.put("mskm_dtl_no", subbean.sendMessageString("申込明細番号", X31CWebConst.DATABEAN_GET_VALUE));

		// 申込時登録不可契約予約登録マップ.設定対象契約識別コード
		parentMap.put("sete_tg_kei_skbt_cd", "01");

		// サービス契約情報.サービス契約番号 → 申込時登録不可契約予約登録マップ.設定対象契約番号
		parentMap.put("sete_tg_kei_no", subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		// 申込時登録不可契約予約登録マップ.オプションサービスコード
		parentMap.put("op_svc_cd", "B109");

		// 申込時登録不可契約予約登録マップ.料金コースコード
		parentMap.put("pcrs_cd", "BB5");

		// 申込時登録不可契約予約登録マップ.料金プランコード
		parentMap.put("pplan_cd", "PBB501");

		// 申込時登録不可契約予約登録マップ.予約契約数
		parentMap.put("rsv_kei_cnt", "1");

		// 申込時登録不可契約予約登録マップ.申込時登録不可契約予約反映方法コード
		parentMap.put("mkj_addf_kei_rvhne_way_cd", "1");

		// 申込時登録不可契約予約登録マップ.申込時登録不可契約予約反映タイミングコード
		parentMap.put("mkj_addf_kei_rvhne_tmg_cd", "02");

		// ＫＥＹ＿基準日 → 申込時登録不可契約予約登録マップ.申込時登録不可契約予約反映年月日
		parentMap.put("mkj_addf_kei_rv_hanei_ymd", bean[0].sendMessageString("ＫＥＹ＿基準日", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV031217SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031218SC(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 subbean = bean[0].getDataBeanArray("サービス契約情報").getDataBean(0);

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 申込時登録不可契約予約登録マップ.申込時登録不可契約予約種別コード
		parentMap.put("mkj_addf_kei_rv_sbt_cd", "01");

		// サービス契約情報.申込明細番号 → 申込時登録不可契約予約登録マップ.申込明細番号
		parentMap.put("mskm_dtl_no", subbean.sendMessageString("申込明細番号", X31CWebConst.DATABEAN_GET_VALUE));

		// 申込時登録不可契約予約登録マップ.設定対象契約識別コード
		parentMap.put("sete_tg_kei_skbt_cd", "01");

		// サービス契約情報.サービス契約番号 → 申込時登録不可契約予約登録マップ.設定対象契約番号
		parentMap.put("sete_tg_kei_no", subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		// 申込時登録不可契約予約登録マップ.割引サービスコード
		parentMap.put("wrib_svc_cd", "W00000009");

		// 申込時登録不可契約予約登録マップ.料金コースコード
		parentMap.put("pcrs_cd", "F05");

		// 申込時登録不可契約予約登録マップ.料金プランコード
		parentMap.put("pplan_cd", "PF0501");

		// 申込時登録不可契約予約登録マップ.予約契約数
		parentMap.put("rsv_kei_cnt", "1");

		// 申込時登録不可契約予約登録マップ.申込時登録不可契約予約反映方法コード
		parentMap.put("mkj_addf_kei_rvhne_way_cd", "1");

		// 申込時登録不可契約予約登録マップ.申込時登録不可契約予約反映タイミングコード
		parentMap.put("mkj_addf_kei_rvhne_tmg_cd", "02");

		// ＫＥＹ＿基準日 → 申込時登録不可契約予約登録マップ.申込時登録不可契約予約反映年月日
		parentMap.put("mkj_addf_kei_rv_hanei_ymd", bean[0].sendMessageString("ＫＥＹ＿基準日", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV031218SC", parentMap);

		return outputMap;
	}
	// 20140711 ANK-2135-00-00 ADD END
	
	// 20140731 ANK-2141-00-00 Add Start
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031219SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}
		
		X31SDataBeanAccess subbean = bean[0].getDataBeanArray("サービス契約情報").getDataBean(0);

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// サービス契約情報.サービス契約番号 → 異動予約一覧取得マップ.サービス契約番号
		parentMap.put("key_svc_kei_no", subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 異動区分（00028:機器機種変更） → 異動予約一覧取得マップ.異動区分
		parentMap.put("key_ido_div", JKKCommonConst.IDO_DIV_VALUE_00028);
		// 異動予約詳細コード（029:STB直送交換） → 異動予約一覧取得マップ.異動予約詳細コード
		parentMap.put("key_ido_rsv_dtl_cd", JKKCommonConst.IDO_RSV_DTL_CD_STB_DRCT_KOKAN);
		// ソート項目Ｎｏ（1:異動予約番号） → 異動予約一覧取得マップ.ソート項目Ｎｏ
		parentMap.put("key_sort_item_no", "1");
		// ソート区分（2:降順） → 異動予約一覧取得マップ.ソート区分
		parentMap.put("key_sort_kbn", "2");
		
		outputMap.put("KKSV031219SC", parentMap);
						
		return outputMap;
	}
	// 20140731 ANK-2141-00-00 Add End
	
	// ANK-4240-00-00 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031220SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String opeDate)
	{
		if(bean == null)
		{
			return null;
		}
		if(bean.length != 1)
		{
			return null;
		}
		
		X31SDataBeanAccess subbean = bean[0].getDataBeanArray("サービス契約情報").getDataBean(0);
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// ＳＹＳＩＤ → お客様一意照会SCマップ.ＫＥＹ＿ＳＹＳＩＤ
		parentMap.put("key_sysid", subbean.sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 運用日付 → お客様一意照会SCマップ.ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", opeDate);
		
		outputMap.put("KKSV031220SC", parentMap);
		
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031221SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String opeDate)
	{
		if(bean == null)
		{
			return null;
		}
		if(bean.length != 1)
		{
			return null;
		}
		
		X31SDataBeanAccess subbean = bean[0].getDataBeanArray("サービス契約情報").getDataBean(0);
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// サービス契約番号 → 同一利用場所サービス契約一覧照会SCマップ.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		// ＳＹＳＩＤ → 同一利用場所サービス契約一覧照会SCマップ.ＫＥＹ＿ＳＹＳＩＤ
		parentMap.put("key_sysid", subbean.sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 運用日付 → 同一利用場所サービス契約一覧照会SCマップ.ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", opeDate);
		
		outputMap.put("KKSV031221SC", parentMap);
		
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031212CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if(bean == null)
		{
			return null;
		}
		if(bean.length != 1)
		{
			return null;
		}
		
		X31SDataBeanAccess mkbean = bean[0].getDataBeanArray("申込明細一意情報").getDataBean(0);
		X31SDataBeanAccess subbean = bean[0].getDataBeanArray("サービス契約情報").getDataBean(0);
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		HashMap<String, Object> childMap = new HashMap<String, Object>();
		ArrayList<HashMap<String, Object>> paramList = new ArrayList<HashMap<String, Object>>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// 1：新規発行 → 通知書登録CC（再登録）マップ.通知書発行コード
		childMap.put("tchisho_hakko_cd", "1");
		// サービス契約情報.サービス契約番号 → 通知書登録CC（再登録）マップ.サービス契約番号
		childMap.put("svc_kei_no", subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約情報.ＳＹＳＩＤ → 通知書登録CC（再登録）マップ.ＳＹＳＩＤ
		childMap.put("sysid", subbean.sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// 申込書番号 → 通知書登録CC（再登録）マップ.申込書番号
		childMap.put("mskmsho_no", bean[0].sendMessageString("申込書番号", X31CWebConst.DATABEAN_GET_VALUE));
		if("1".equals(func_code) && "".equals(childMap.get("mskmsho_no")))
		{
			childMap.put("mskmsho_no", mkbean.sendMessageString("申込書番号", X31CWebConst.DATABEAN_GET_VALUE));
		}
		// 1：契約者住所 → 通知書登録CC（再登録）マップ.通知書送付先コード
		childMap.put("tchisho_sohus_cd", "1");
		// 01：守口印刷 → 通知書登録CC（再登録）マップ.通知書印刷実施先コード
		childMap.put("tchisho_print_jssi_sk_cd", "01");
		// 1：済 → 通知書登録CC（再登録）マップ.通知完了済フラグ
		childMap.put("tchi_fin_zm_flg", "1");
		
		paramList.add(childMap);
		parentMap.put("trgt_data_list", paramList);
		outputMap.put("KKSV031212CC", parentMap);
		
		return outputMap;
	}
	// ANK-4240-00-00 ADD END

	// ANK-4592-00-00 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param courseChgMap　コース変更マップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031213CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, HashMap<String, String> courseChgMap)
	{
		if(bean == null)
		{
			return null;
		}
		if(bean.length != 1)
		{
			return null;
		}
		
		X31SDataBeanAccess subbean = bean[0].getDataBeanArray("サービス契約情報").getDataBean(0);
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_cd", func_code);
		// 2：コース変更 → スカパー鍵情報操作CCマップ.処理コード
		parentMap.put("shori_cd", "2");
		// サービス契約情報.サービス契約番号 → スカパー鍵情報操作CCマップ.サービス契約番号
		parentMap.put("svc_kei_no", subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 変更前料金コースコード → スカパー鍵情報操作CCマップ.旧料金コース
		parentMap.put("old_pcrs", courseChgMap.get("chge_bf_pcrs_cd"));
		// 変更後料金コースコード → スカパー鍵情報操作CC.新料金コース
		parentMap.put("new_pcrs", courseChgMap.get("chaf_pcrs_cd"));
		// スカパー適用基準年月日区分 → スカパー鍵情報操作CCマップ.スカパー適用基準年月日区分
		parentMap.put("sptv_aply_stdardymd_div", courseChgMap.get("sptv_aply_ymd_div"));
		
		outputMap.put("KKSV031213CC", parentMap);
		
		return outputMap;
	}
	
// ANK-4673-00-01 DEL START
//	/**
//	 * 上りマッピングをする
//	 * @param bean　[0]：
//	 * @param outputMap
//	 * @param func_code　機能コード
//	 * @param endOfMonthDay　月末
//	 * @param opeDate　運用日付
//	 */
//	@SuppressWarnings("unchecked")
//	public HashMap setKKSV031214CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String endOfMonthDay, String opeDate)
//	{
//		if(bean == null)
//		{
//			return null;
//		}
//		if(bean.length != 1)
//		{
//			return null;
//		}
//		
//		X31SDataBeanAccess subbean = bean[0].getDataBeanArray("サービス契約情報").getDataBean(0);
//		
//		HashMap<String, Object> parentMap = new HashMap<String, Object>();
//		
//		// 共通情報のマッピング
//		parentMap.put("func_cd", func_code);
//		
//		// サービス契約情報.サービス契約番号 → eo光テレビCSコースオプション解約CCマップ.サービス契約番号
//		parentMap.put("key_svc_kei_no", subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
//		// 利用終了日 → eo光テレビCSコースオプション解約CCマップ.サービス終了年月日
//		parentMap.put("svc_endymd", endOfMonthDay);
//		// 課金終了日 → eo光テレビCSコースオプション解約CCマップ.サービス課金終了年月日
//		parentMap.put("svc_chrg_endymd", endOfMonthDay);
//		// サービス解約理由コード → eo光テレビCSコースオプション解約CCマップ.サービス解約理由コード
//		parentMap.put("svc_dlre_cd", JKKCommonConst.SVC_DLRE_CD_VALUE_01);
//		// IT2-2025-0000004 MOD START
////		// 異動区分 → eo光テレビCSコースオプション解約CCマップ.異動区分
////		parentMap.put("ido_div", bean[0].sendMessageString("異動区分", X31CWebConst.DATABEAN_GET_VALUE));
//		// 異動区分 → 00031（オプション設定)
//		parentMap.put("ido_div", JKKStrConst.CD00576_00031);
//		// IT2-2025-0000004 MOD END
//		// 運用日付 → eo光テレビCSコースオプション解約CCマップ.ＫＥＹ＿予約適用年月日
//		parentMap.put("key_rsv_aply_ymd", opeDate);
//		
//		outputMap.put("KKSV031214CC", parentMap);
//		
//		return outputMap;
//	}
// ANK-4673-00-01 DEL END

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param endOfMonthDay　月末
	 * @param opeDate　運用日付
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031215CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if(bean == null)
		{
			return null;
		}
		if(bean.length != 1)
		{
			return null;
		}
		
		X31SDataBeanAccess subbean = bean[0].getDataBeanArray("サービス契約情報").getDataBean(0);
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 事務手数料のセット（リストボックスからの選択値の取得）
		X31SDataBeanAccessArray jimuCommisionInfo = bean[0].getDataBeanArray(KKW00129SFConst.JIMU_COMMISION);
		X31SDataBeanAccess jimuCommisionSubbean = jimuCommisionInfo.getDataBean(0);
		String idx1 = jimuCommisionSubbean.sendMessageString(KKW00129SFConst.SELECT_INDEX_01,X31CWebConst.DATABEAN_GET_VALUE);

		// 事務手数料が非活性の場合は「無」をセット
		if (idx1 == null || idx1.length() == 0)
		{
			return null;
		}
		
		// 事務手数料ラベル
		String jimuCommision = jimuCommisionSubbean.sendMessageString(KKW00129SFConst.CD_DIV_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
		// 事務手数料・指定額
		String jimuCommisionAmnt = bean[0].sendMessageString(KKW00129SFConst.JIMU_COMMISION_AMNT, X31CWebConst.DATABEAN_GET_VALUE);
		jimuCommisionAmnt = jimuCommisionAmnt.replaceAll(",", "");
		
		// 一時金設定コード
		String setteiCd = JKKStrConst.CD00346_NON;
		//一時金指定率
		String siteiRt = null;
		//一時金・指定額
		String siteiGk = null;
		
		if (JKKKeiNewCmnLogicUtil.JMTE_SKBT_CD_ARI.equals(jimuCommision))		//一時金設定コード：有り
		{
			setteiCd = JKKStrConst.CD00346_ARI;
			siteiRt = "100.0";
		}
		else if (JKKKeiNewCmnLogicUtil.JMTE_SKBT_CD_HARF.equals(jimuCommision))	//一時金設定コード：半額
		{
			setteiCd = JKKStrConst.CD00346_HALF;
			siteiRt = "50.0";
		}
		else if (JKKKeiNewCmnLogicUtil.JMTE_SKBT_CD_SHITEIAMNT.equals(jimuCommision))	//一時金設定コード：指定額
		{
			setteiCd = JKKStrConst.CD00346_STIAM;
			siteiRt = "100.0";
			siteiGk = jimuCommisionAmnt;
		}

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// 異動区分 → 一時金設定登録（事務手数料）マップ.異動区分
		parentMap.put("ido_div", bean[0].sendMessageString("異動区分", X31CWebConst.DATABEAN_GET_VALUE));
		//料金グループコード → 一時金設定登録（事務手数料）マップ.料金グループコード
		parentMap.put("mskm_prc_grp_cd", getPrcGrpCd(bean));
		// サービス契約情報.サービス契約番号 → 一時金設定登録（事務手数料）マップ.サービス契約番号
		parentMap.put("svc_kei_no", subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// IT2-2025-0000005 DEL START
//		//申込明細番号 → 一時金設定登録（事務手数料）マップ.申込明細番号
//		parentMap.put("mskm_dtl_no", subbean.sendMessageString("申込明細番号", X31CWebConst.DATABEAN_GET_VALUE));
		// IT2-2025-0000005 DEL END
		// 完了状態コード(未完了) → 一時金設定登録（事務手数料）マップ.完了状態コード
		parentMap.put("fin_stat_cd", JKKStrConst.CD01147_MI_KANRYO);
		// 一時金設定コード → 一時金設定登録（事務手数料）マップ.一時金設定コード
		parentMap.put("icjkn_sette_cd", setteiCd);
		// 一時金設定登録（事務手数料）マップ.一時金指定率
		parentMap.put("icjkn_shitei_rt", siteiRt);
		// 事務手数料・指定額 → 一時金設定登録（事務手数料）マップ.一時金指定額
		parentMap.put("icjkn_shitei_amnt", siteiGk);
		
		outputMap.put("KKSV031215CC", parentMap);
		
		return outputMap;
	}
	// ANK-4592-00-00 ADD END
// ANK-4673-00-02 ADD START
	/**
	 * 日付に/(スラッシュ)を入れる
	 * @param ymd 日付(YYYYMMDD)
	 * @return String 日付(YYYY/MM/DD)
	 */
	private String getAddSlashYmd(String ymd)
	{

		if (ymd == null)
		{
			return "";
		}

		if (ymd.length() == 8)
		{
			return ymd.substring(0, 4) + "/" + ymd.substring(4, 6) + "/" + ymd.substring(6, 8);
		}

		return ymd;
	}
// ANK-4673-00-02 ADD END
}
