/*********************************************************************
*    All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：KKSV0311_KKSV0311OPDBMapper
*   ソースファイル名：KKSV0311_KKSV0311OPDBMapper.java
*   作成者          ：Fujitsu
*   日付            ：2011年07月28日
*＜機能概要＞
*   BP（契約情報更新（ｅｏ光テレビ）更新OP）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*   バージョン  修正日      修正者      修正内容
*   v1.00.00    2011/07/28  Fujitsu     新規作成
*   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/11/28  FJ)宇野	   【ANK-1672-00-00】対応
*   v6.00.01    2014/02/10  FJ)辛	   【OM-2014-0000484】対応
*  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導入
*  v27.00.00    2016/08/22  FJ)中原    【ANK-2985-00-00】 消費者保護ルール見直し追加対応STEP3
*  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/14	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】テレビ新コース（スカパー用）導入対応）
*  v75.00.00	2025/04/21	FJ)柴田	   【ANK-4673-00-01】テレビ新コース（スカパー用）導入対応　2025年6月フォロー案件
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.HashMap;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;
import eo.common.constant.JKKStrConst;
import eo.common.util.JPCDateUtil;
import eo.web.webview.KKA16601SF.KKW00131SFConst;
import eo.web.webview.KKA17701SF.KKW00129SFConst;
import eo.web.webview.commonOneStop.JCCWebCommon;
import eo.web.webview.commonOneStop.JKKCommonConst;

/**
 * DataBean-BPマッピングをする。
 * 
 * @author 富士通
 */
public class KKSV0311_KKSV0311OPDBMapper
{
	
	/**
	 * コンストラクタ
	 */
	public KKSV0311_KKSV0311OPDBMapper()
	{
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031101SC(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("KKSV031101SC", parentMap);
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031102SC(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("KKSV031102SC", parentMap);
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031103SC(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("key_sysid", subbean.sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV031103SC", parentMap);
		return outputMap;
	}


	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031111SC(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> childMap = 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++)
		{
			X31SDataBeanAccess idobean = subbeanArray.getDataBean(i);
			Integer count = (Integer)idobean.sendMessage("異動理由コード", X31CWebConst.DATABEAN_GET_COUNT);
			for (int j = 0; j < count.intValue(); j++)
			{
				childMap = new HashMap<String, Object>();
				// 顧客契約引継リスト.異動理由コード → 進捗登録マップ.異動理由明細.異動理由コード
				childMap.put("ido_rsn_cd", idobean.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);
		// ANK-2530-00-00 2016/03/25 ADD START
		String stbNormalVodBk = bean[0].sendMessageString(KKW00129SFConst.STB_NORMAL_VOD_CNT_BK, X31CWebConst.DATABEAN_GET_VALUE);
		String stb500gVodBk = bean[0].sendMessageString(KKW00129SFConst.STB_500G_VOD_CNT_BK, X31CWebConst.DATABEAN_GET_VALUE);
		String stb2tVodBk = bean[0].sendMessageString(KKW00129SFConst.STB_2T_VOD_CNT_BK, X31CWebConst.DATABEAN_GET_VALUE);
		// ANK-2530-00-00 2016/03/25 ADD END
		// ANK-3488-00-00 ADD START
		String fourKstbNormalBk = bean[0].sendMessageString(KKW00129SFConst.FOURKSTB_NORMAL_CNT_BK, X31CWebConst.DATABEAN_GET_VALUE);
		String fourKstb2TBk = bean[0].sendMessageString(KKW00129SFConst.FOURKSTB_2T_CNT_BK, X31CWebConst.DATABEAN_GET_VALUE);
		// ANK-3488-00-00 ADD END
		// ANK-4335-00-00 ADD START
		String fourKstbNormalOldBk = bean[0].sendMessageString(KKW00129SFConst.FOURKSTB_NORMAL_OLD_CNT_BK, X31CWebConst.DATABEAN_GET_VALUE);
		// ANK-4335-00-00 ADD END
		
		// ANK-3488-00-00 MOD START
		// ANK-2530-00-00 2016/03/25 MOD START
//		if(!"0".equals(stbNormalBk) || !"0".equals(stb250gBk) || !"0".equals(stb500gBk) || !"0".equals(stb1000gBk))
//		if(!"0".equals(stbNormalBk) || !"0".equals(stb250gBk) || !"0".equals(stb500gBk) || !"0".equals(stb1000gBk)
//				|| !"0".equals(stbNormalVodBk) || !"0".equals(stb500gVodBk) || !"0".equals(stb2tVodBk))
		// ANK-4335-00-00 MOD START
//		if(!"0".equals(stbNormalBk) || !"0".equals(stb250gBk) || !"0".equals(stb500gBk) || !"0".equals(stb1000gBk)
//				|| !"0".equals(stbNormalVodBk) || !"0".equals(stb500gVodBk) || !"0".equals(stb2tVodBk) || !"0".equals(fourKstbNormalBk) || !"0".equals(fourKstb2TBk))
		// ANK-2530-00-00 2016/03/25 MOD END
		// ANK-3488-00-00 MOD END
		if(!"0".equals(stbNormalBk) || !"0".equals(stb250gBk) || !"0".equals(stb500gBk) || !"0".equals(stb1000gBk)
				|| !"0".equals(stbNormalVodBk) || !"0".equals(stb500gVodBk) || !"0".equals(stb2tVodBk) || !"0".equals(fourKstbNormalBk) || !"0".equals(fourKstb2TBk) || !"0".equals(fourKstbNormalOldBk))
		// ANK-4335-00-00 MOD END
		{
			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("台　");
			}
			// ANK-2530-00-00 2016/03/25 ADD START
			if(!"0".equals(stbNormalVodBk))
			{
				prgTkjk.append("STB(通常 VOD)");
				prgTkjk.append(stbNormalVodBk);
				prgTkjk.append("台　");
			}
			if(!"0".equals(stb500gVodBk))
			{
				prgTkjk.append("500GB VOD");
				prgTkjk.append(stb500gVodBk);
				prgTkjk.append("台　");
			}
			if(!"0".equals(stb2tVodBk))
			{
				prgTkjk.append("2TB VOD");
				prgTkjk.append(stb2tVodBk);
				prgTkjk.append("台　");
			}
			// ANK-2530-00-00 2016/03/25 ADD END
			// ANK-3488-00-00 ADD START
			if(!"0".equals(fourKstbNormalBk))
			{
				prgTkjk.append("4K-STB(通常)");
				prgTkjk.append(fourKstbNormalBk);
				prgTkjk.append("台　");
			}
			if(!"0".equals(fourKstb2TBk))
			{
				prgTkjk.append("2TB 4K-STB");
				prgTkjk.append(fourKstb2TBk);
				prgTkjk.append("台　");
			}
			// ANK-3488-00-00 ADD END
			// ANK-4335-00-00 ADD START
			if(!"0".equals(fourKstbNormalOldBk))
			{
				prgTkjk.append("4K-STB(通常) 旧コース");
				prgTkjk.append(fourKstbNormalOldBk);
				prgTkjk.append("台　");
			}
			// ANK-4335-00-00 ADD END
		}
		
		// 登録後の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-2394-00-00 2015/03/11 ADD START
		// 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
		// ＳＴＢ宅内機器型式
		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);
		}
		
		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("KKSV031111SC", parentMap);
		outputMap.put("KKSV031112SC", parMap);
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031101CC(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>>();
		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("kktk_svc_kei_no", stbBean.sendMessageString("機器提供サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
			childMap.put("stb_ido_div",     stbBean.sendMessageString("ＳＴＢ異動区分コード",     X31CWebConst.DATABEAN_GET_VALUE));
			childMap.put("stb_sbt_cd",      stbBean.sendMessageString("ＳＴＢ区分コード",         X31CWebConst.DATABEAN_GET_VALUE));
			// 機器提供サービスコード
			childMap.put("kktk_svc_cd",     JKKCommonConst.KKTK_SVC_C009);
			// 販売種別コード
			if ("Ｒ".equals(stbBean.sendMessageString("Ｒ", X31CWebConst.DATABEAN_GET_VALUE)))
			{
				childMap.put("hambai_sbt_cd", JKKCommonConst.HANBAI_SBT_12);
			}
			else
			{
				childMap.put("hambai_sbt_cd", "");
			}
			
			String stbDiv = stbBean.sendMessageString("ＳＴＢ区分コード", X31CWebConst.DATABEAN_GET_VALUE);
			String hddCapa = stbBean.sendMessageString("ＨＤＤ容量コード", X31CWebConst.DATABEAN_GET_VALUE);
			// ＳＴＢ区分が"0":通常（標準）STB　かつ　ＨＤＤ容量コードが空白の場合
			if("0".equals(stbDiv) && "".equals(hddCapa))
			{
				// ＳＴＢ変更申込リスト.ＨＤＤ容量コード("00":なし)
				childMap.put("hdd_capa_cd", JKKCommonConst.HDD_CAPA_CD_NASI);
			}
			else
			{
				// ＳＴＢ変更申込リスト.ＨＤＤ容量コード
				childMap.put("hdd_capa_cd", hddCapa);
			}
			
			// ＳＴＢ変更申込リスト.宅内機器型式
			childMap.put("taknkiki_model_cd", stbBean.sendMessageString("宅内機器型式", X31CWebConst.DATABEAN_GET_VALUE));
			// ＳＴＢ変更申込リスト.ＴＶコースコード
			childMap.put("tv_pcrs_cd", stbBean.sendMessageString("ＴＶコースコード", X31CWebConst.DATABEAN_GET_VALUE));

			// ＳＴＢ＿ＩＤ
			childMap.put("stb_id", stbBean.sendMessageString(KKW00129SFConst.STBID_07, X31CWebConst.DATABEAN_GET_VALUE));
			// ＢＣＡＳ−ＩＤ
			childMap.put("bcas_id", stbBean.sendMessageString(KKW00129SFConst.BCAS_ID_07, X31CWebConst.DATABEAN_GET_VALUE));
			// ＣＣＡＳ−ＩＤ
			childMap.put("ccas_id", stbBean.sendMessageString(KKW00129SFConst.CCAS_ID_07, X31CWebConst.DATABEAN_GET_VALUE));
			
			list.add(childMap);
		}
		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撤去年月日を設定
		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));
		}
		else
		{
			parentMap.put("stb_tekkyo_ymd",  bean[0].sendMessageString(KKW00129SFConst.STB_TEKKYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));
		}
		// 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", "KKSV031102CC");
		outputMap.put("KKSV031101CC", parentMap);
		outputMap.put("WORK", workMap);
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031102CC(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));
		
		// 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
		
		/* ++++++++++ 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", "");
//			// 宅内機器型式コード
//			childMap.put("taknkiki_model_cd", stbBean.sendMessageString("宅内機器型式", X31CWebConst.DATABEAN_GET_VALUE));
//			// 機器製造番号
//			childMap.put("kkseizo_no", "");
//			// STB-ID
//			childMap.put("stb_id", "");
//			// HDD容量コード
//			childMap.put("hdd_capa_cd", stbBean.sendMessageString("ＨＤＤ容量コード", X31CWebConst.DATABEAN_GET_VALUE));
//			// 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);
//		}
		//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", "KKSV031105CC");
		outputMap.put("KKSV031102CC", parentMap);
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param rsvAplyYMD　予約適用年月日
	 * @param koji_um　工事有無
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031103CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String rsvAplyYMD, String koji_um)
	{
		
		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);
		String pcrsCd = pcrsbean.sendMessageString("コード値", X31CWebConst.DATABEAN_GET_VALUE);
		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));
		
//**********【IT1-2013-0000216】対応*****************
		// 料金グループコード → サービス契約＜eo光TV＞料金プラン変更マップ.料金グループコード
		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("prc_grp_cd", JKKCommonConst.PRC_GRP_CD_13);
		}
//**********【IT1-2013-0000216】対応*****************
		else if (JKKCommonConst.PCRS_CD_A25.equals(pcrsCd))
		{
			parentMap.put("prc_grp_cd", JKKCommonConst.PRC_GRP_CD_12);
		}
		else if (JKKCommonConst.PCRS_CD_A37.equals(pcrsCd) || JKKCommonConst.PCRS_CD_A38.equals(pcrsCd) || JKKCommonConst.PCRS_CD_A39.equals(pcrsCd))
		{
			parentMap.put("prc_grp_cd", JKKCommonConst.PRC_GRP_CD_11);
		}
		
		// 料金コース.コードタイプコード → サービス契約＜eo光TV＞料金プラン変更マップ.料金コースコード
		parentMap.put("pcrs_cd", pcrsCd);
		
		// サービス契約情報.提供方式契約番号 → サービス契約＜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====================================================================================		
		
// ++++++++++ v6.00.00修正開始 ++++++++++
		// 工事有無を設定（予約適用年月日では判断できなくなる為）
		parentMap.put("koji_um", koji_um);
// ++++++++++ v6.00.00修正終了 ++++++++++
		
		// 違約金発生コード → サービス契約＜eo光TV＞料金プラン変更マップ.違約金発生コード
		parentMap.put("pnlty_hassei_cd", pnltybean.sendMessageString("コード値", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 異動区分 → サービス契約＜eo光TV＞料金プラン変更マップ.異動区分
		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));
		
		outputMap.put("KKSV031103CC", parentMap);
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031101WORK(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 (stbList.getCount().intValue() > 0 && !stb_tekkyo_flg)
		if (koji_ak_entry_flg)
		{
			// 工事案件受付実施フラグ
			parentMap.put("stbChgUm", "1");
		}
		else
		{
			// 工事案件受付実施フラグ
			parentMap.put("stbChgUm", "0");
		}
		
		outputMap.put("KKSV031101WORK", parentMap);
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031105SC(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("申込書番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV031105SC", parentMap);
		
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031106SC(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("申込書明細番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV031106SC", parentMap);
		
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031107SC(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("申込書番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 工事案件番号 → 主要項目削除実績一覧照会SCマップ.ＫＥＹ＿工事案件番号
		parentMap.put("key_kojiak_no", bean[0].sendMessageString("工事案件番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV031107SC", parentMap);
		
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031104CC(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("KKSV031104CC", parentMap);
						
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031105CC(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マップ.料金グループコード
//**********【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))
		{
			childMap.put("prc_grp_cd", JKKCommonConst.PRC_GRP_CD_13);
		}
//**********【IT1-2013-0000216】対応*****************
		else if (JKKCommonConst.PCRS_CD_A25.equals(pcrsCd))
		{
			childMap.put("prc_grp_cd", JKKCommonConst.PRC_GRP_CD_12);
		}
		else if (JKKCommonConst.PCRS_CD_A37.equals(pcrsCd) || JKKCommonConst.PCRS_CD_A38.equals(pcrsCd) || JKKCommonConst.PCRS_CD_A39.equals(pcrsCd))
		{
			childMap.put("prc_grp_cd", JKKCommonConst.PRC_GRP_CD_11);
		}
		// サービス契約情報.ＳＹＳＩＤ → 通知書登録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("KKSV031105CC", parentMap);
						
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031108SC(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("KKSV031108SC", parentMap);
		
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param rsvAplyYMD　予約適用年月日
	 * @param koji_um　工事有無
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031106CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String rsvAplyYMD, String koji_um) throws Exception{
		
		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> childMap = null;
		X31SDataBeanAccessArray subbeanArray = bean[0].getDataBeanArray("顧客契約引継リスト");
		ArrayList<HashMap<String, Object>> list = null;
		HashMap<String, Object> idoRsnMap = null;

		// ++++++++ v6.00.01 追加開始 ++++++++
		String unyouYmd =  bean[0].sendMessageString("ＫＥＹ＿基準日", X31CWebConst.DATABEAN_GET_VALUE);
		String endDay = JPCDateUtil.getEndOfMonth(unyouYmd.substring(0, 6));
		// 運用日の月末日を求める
		String unyouEndDay = unyouYmd.substring(0, 6) + endDay;
		// 運用日＋１か月の月末日を求める
		String addOneMonth = JPCDateUtil.addMonth(unyouYmd, 1);
		String addMonEndDay = JPCDateUtil.getEndOfMonth(addOneMonth.substring(0, 6));
		String unyouAddEndDay = addOneMonth.substring(0, 6) + addMonEndDay;
		// ++++++++ v6.00.01 追加終了 ++++++++
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// 異動区分
		parentMap.put("ido_div", bean[0].sendMessageString("異動区分", X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約番号
		parentMap.put("svc_kei_no", subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		X31SDataBeanAccessArray tvCourseList = bean[0].getDataBeanArray("ＴＶコース変更情報リスト");
		
		X31SDataBeanAccess tvCourseBean = null;
		int count = tvCourseList.getCount().intValue();
		
		// 受渡し用リスト
		ArrayList<HashMap<String, Object>> tvCourseParmList = new ArrayList<HashMap<String, Object>>();
		
		for (int i = 0; i < count; i++)
		{
			tvCourseBean = tvCourseList.getDataBean(i);
			childMap = new HashMap<String, Object>();
			
			// サービス契約内訳番号
			childMap.put("svc_kei_ucwk_no", tvCourseBean.sendMessageString("サービス契約内訳番号", X31CWebConst.DATABEAN_GET_VALUE));
			// 料金コースコード
			childMap.put("pcrs_cd", tvCourseBean.sendMessageString("料金コースコード", X31CWebConst.DATABEAN_GET_VALUE));
			// 料金プランコード
			childMap.put("pplan_cd", tvCourseBean.sendMessageString("料金プランコード", X31CWebConst.DATABEAN_GET_VALUE));
			// 提供方式契約番号
			childMap.put("tk_hoshiki_kei_no", tvCourseBean.sendMessageString("提供方式契約番号", X31CWebConst.DATABEAN_GET_VALUE));
			// 予約適用年月日
//v5.00.00 START==================================================================================
//			childMap.put("rsv_aply_ymd", JKKCommonConst.MAX_YMD);
			childMap.put("rsv_aply_ymd", rsvAplyYMD);
//v5.00.00 END====================================================================================
			// 違約金発生コード
			childMap.put("pnlty_hassei_cd", "1");
// ++++++++++ v6.00.00修正開始 ++++++++++
			// 工事有無
			if(!"1".equals(koji_um))
			{
				childMap.put("koji_um", "0");
			}
			else
			{
				childMap.put("koji_um", "1");
			}
			//
			childMap.put("plan_chrg_staymd", rsvAplyYMD);
			// ++++++++ v6.00.01 変更開始 ++++++++
			//選択された「コース変更時期」取得
			String csch_jiki = tvCourseBean.sendMessageString("コース変更時期", X31CWebConst.DATABEAN_GET_VALUE);
			if("1".equals(csch_jiki))
			{
				childMap.put("plan_chrg_endymd", unyouEndDay);
			}
			else
			{
				childMap.put("plan_chrg_endymd", unyouAddEndDay);
			}
//			childMap.put("plan_chrg_endymd", JKKCommonConst.MAX_YMD);
			// ++++++++ v6.00.01 変更終了 ++++++++

//			// 予約適用年月日が最大日付の場合（工事が発生する場合）
//			if(JKKCommonConst.MAX_YMD.equals(rsvAplyYMD))
//			{
//				childMap.put("koji_um", "1");
//
//			}
//			else
//			{
//				childMap.put("koji_um", "0");
//				childMap.put("plan_chrg_staymd", rsvAplyYMD);
//				childMap.put("plan_chrg_endymd", JPCDateUtil.addDay(rsvAplyYMD, -1));
//			}
// ++++++++++ v6.00.00修正終了 ++++++++++
			
			// 進捗ステータス
			childMap.put("prg_stat", JKKCommonConst.PRG_STAT_CD_1421);
			
			// 進捗特記事項編集
			StringBuilder prgTkjk = new StringBuilder();
			
			prgTkjk.append("STB ID：");
			prgTkjk.append(tvCourseBean.sendMessageString("ＳＴＢＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
			prgTkjk.append("　TVコース：(変更前)");
			prgTkjk.append(tvCourseBean.sendMessageString("変更前料金プランコード名称", X31CWebConst.DATABEAN_GET_VALUE));
			prgTkjk.append("(変更後)");
			prgTkjk.append(tvCourseBean.sendMessageString("料金プランコード名称", X31CWebConst.DATABEAN_GET_VALUE));
			
			if(prgTkjk.length() < 129)
			{
				childMap.put("prg_tkjk_1", prgTkjk.toString());
				childMap.put("prg_tkjk_2", "");
			}
			else if(prgTkjk.length() < 257)
			{
				childMap.put("prg_tkjk_1", prgTkjk.substring(0, 128));
				childMap.put("prg_tkjk_2", prgTkjk.substring(128));
			}
			else
			{
				childMap.put("prg_tkjk_1", prgTkjk.substring(0, 128));
				childMap.put("prg_tkjk_2", prgTkjk.substring(128, 256));
			}
			
			list = new ArrayList<HashMap<String, Object>>();
			
			for (int j = 0; j < subbeanArray.getCount(); j++)
			{
				X31SDataBeanAccess idobean = subbeanArray.getDataBean(j);
				int idoCount = (Integer)idobean.sendMessage("異動理由コード", X31CWebConst.DATABEAN_GET_COUNT);
				for (int k = 0; k < idoCount; k++)
				{
					idoRsnMap = new HashMap<String, Object>();
					// 顧客契約引継リスト.異動理由コード
					idoRsnMap.put("ido_rsn_cd", idobean.sendMessageString("異動理由コード", X31CWebConst.DATABEAN_GET_VALUE, k));
					list.add(idoRsnMap);
				}
			}
			
			childMap.put("EKK1091D010CBSMsg1List", list);
			
			tvCourseParmList.add(childMap);
		}
		
		parentMap.put("KKSV031106CCList", tvCourseParmList);
		
		outputMap.put("KKSV031106CC", parentMap);
		
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031109SC(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("KKSV031109SC", parentMap);
		
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031113SC(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("KKSV031113SC", parentMap);
		
		return outputMap;
	}

	/* ++++++++++ v4.00.01 追加開始 ++++++++++ */
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031107CC(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("KKSV031107CC", parentMap);
						
		return outputMap;
	}
	/* ++++++++++ v4.00.01 追加終了 ++++++++++ */
	
	// 20140731 ANK-2141-00-00 Add Start
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031114SC(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("KKSV031114SC", parentMap);
						
		return outputMap;
	}
	// 20140731 ANK-2141-00-00 Add End

	// ANK-2985-00-00 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：サービス契約更新
	 * @return outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031108CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
	
		// 機能コードが"1"でなければ、処理を行わない
		if(JKKCommonConst.FUNC_CODE_1.equals(func_code) == false)
		{
			return null;
		}
		// サービス契約情報
		X31SDataBeanAccess subbean = bean[0].getDataBeanArray(KKW00129SFConst.EKK0081A010CBSMSG1LIST).getDataBean(0);
		// サービス契約回線内訳一意情報
		X31SDataBeanAccess ucwkbean = bean[0].getDataBeanArray(KKW00129SFConst.EKK0251A010CBSMSG1LIST).getDataBean(0);
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// 契約内容通知書オンラインフラグ（"1"固定）
		parentMap.put("knytcs_on_flg","1");
		// 異動区分(STB追加/変更)
		parentMap.put("ido_div", "99998");
		// 異動区分(契約内容通知対象物用)
		parentMap.put("ido_div_net", "");
		parentMap.put("ido_div_tv", bean[0].sendMessageString(KKW00129SFConst.IDO_DIV, X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("ido_div_tel", "");
		// 申込番号
		parentMap.put("mskm_no", "");
		// ＳＹＳＩＤ
		parentMap.put("sysid", subbean.sendMessageString(KKW00129SFConst.SYSID_02, X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約回線内訳番号
		parentMap.put("svc_kei_kaisen_ucwk_no", ucwkbean.sendMessageString(KKW00129SFConst.SVC_KEI_KAISEN_UCWK_NO_06, X31CWebConst.DATABEAN_GET_VALUE));
		// 運用年月日→運用日
		parentMap.put("unyo_ymd", bean[0].sendMessageString(KKW00131SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約番号
		parentMap.put("svc_kei_no_net", "");
		parentMap.put("svc_kei_no_tv", subbean.sendMessageString(KKW00129SFConst.SVC_KEI_NO_02, X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("svc_kei_no_tel", "");
		//申込書明細番号
		parentMap.put("mskmsho_dtl_no_net", "");
		parentMap.put("mskmsho_dtl_no_tv", bean[0].sendMessageString(KKW00129SFConst.MSKMSHO_DTL_NO, X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("mskmsho_dtl_no_tel", "");

		outputMap.put("KKSV031108CC", parentMap);
	
		return outputMap;
	}
	// ANK-2985-00-00 ADD END
	
	// ANK-4240-00-00 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031115SC(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("KKSV031115SC", parentMap);
		
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：【Ｂｅａｎ名】
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031116SC(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("KKSV031116SC", parentMap);
		
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031109CC(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("KKSV031109CC", parentMap);
		
		return outputMap;
	}
	// ANK-4240-00-00 ADD END
// ANK-4673-00-01 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param courseChgMap　コース変更マップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV031117CC(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("KKSV031117CC", parentMap);
		
		return outputMap;
	}
// ANK-4673-00-01 ADD END
}
