/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0525_KKSV0525OPDBMapper
*	ソースファイル名：KKSV0525_KKSV0525OPDBMapper.java
*	作成者			：Fujitsu
*	日付			：2012年03月08日
*＜機能概要＞
*	BP（eo光テレビケーブルテレビガイド誌登録_登録）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/03/08	Fujitsu		新規作成
*	v4.00.00	2012/09/01	Fujitsu		ANK-0524-00-00 対応
*	v4.01.00	2012/09/25	Fujitsu		ANK-0398-00-00 対応
*	v4.02.00	2012/11/15	FJ）宇野	【ANK-1223-00-00】対応
*   v5.00.00	2013/01/10	FJ）稲岡	【ANK-1385-00-00】対応
* 	v4.03.00	2013/02/28	FJ）稲岡	【ST1-2013-0000253】対応
**********************************************************************/
package eo.web.webview.mapping;

import java.text.ParseException;
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.util.JPCUtilCommon;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.KKW00828SF.KKW00828SFConst;
import eo.web.webview.common.JCCWebCommon;

/**
 * DataBean-BPマッピングをする。
 * 
 * <BR>
 * @author 富士通
 */
public class KKSV0525_KKSV0525OPDBMapper
{
	/** サービス契約ステータス（サービス提供中） */
	private static final String SVC_KEI_STAT_100 = "100";
	
	/**
	 * コンストラクタ
	 */
	public KKSV0525_KKSV0525OPDBMapper()
	{
	}
	
/* ++++++++++ v5.00.00 追加開始 ++++++++++ */
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：ｅｏ光テレビケーブルテレビガイド誌登録
	 * @param outputMap
	 * @param osBean　[0]：ｅｏ光テレビケーブルテレビガイド誌登録　[1]：共有フォームＢｅａｎ
	 * @param svcKeiStat
	 * @param oneStopFlg
	 * @param usePcAdDoitsu
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setEohTvGuideAddCC(
										X31SDataBeanAccess[] bean, 
										HashMap outputMap, 
										X31SDataBeanAccess[] osBean, 
										String svcKeiStat, 
										String oneStopFlg, 
										boolean usePcAdDoitsu) throws ParseException
	{
		if(isNull(bean))
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}
		
		if(osBean.length != 2)
		{
			return null;
		}
		
		if(isNull(oneStopFlg))
		{
			return null;
		}
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 顧客契約引継リスト.サービス契約番号
		String svcKeiNo = getDataBeanArrayValue(bean, KKW00828SFConst.CUST_KEI_HKTGI_LIST, KKW00828SFConst.SVC_KEI_NO_04);
		// 顧客契約引継リスト.SYSID
		String sysID = getDataBeanArrayValue(bean, KKW00828SFConst.CUST_KEI_HKTGI_LIST, KKW00828SFConst.SYSID_04);
		// 顧客契約引継リスト.異動区分
		String idoDiv = getDataBeanArrayValue(bean, KKW00828SFConst.CUST_KEI_HKTGI_LIST, KKW00828SFConst.IDO_DIV_04);
		
		//*************************************************
		// 共通
		//*************************************************
		// サービス契約番号
		parentMap.put("svc_kei_no", svcKeiNo);
		// ＳＹＳＩＤ
		parentMap.put("sysid", sysID);
		// 異動区分
		parentMap.put("ido_div", idoDiv);
		// 運用日付
		parentMap.put("ope_date", getValue(bean[0], KKW00828SFConst.OPE_DATE));
		
		//*************************************************
		// eo光テレビガイド誌冊数上限チェックCC
		//*************************************************
		// eo光テレビガイド誌申込数
		parentMap.put("mskm_cnt", getValue(bean[0], KKW00828SFConst.TV_GUIDE_MSKM_CNT));
		
		//*************************************************
		// 申込内容承認登録
		//*************************************************
		// "00026"(オプション申込) → 申込種別コード
		parentMap.put("mskm_sbt_cd", "00026");
		// 運用日付（TimeStamp） → 申込受付年月日時分秒
		parentMap.put("mskm_uk_dtm", getValue(bean[0], KKW00828SFConst.OPE_DATE_TIME_STAMP));
		// "04"（承認済） → コンシューマ営業用申込状態識別コード
		parentMap.put("consmbsn_mskm_stat_skbt_cd", "04");
		// 申込年月日 → 申込年月日
		parentMap.put("mskm_ymd", getValueForBean(bean));
		
		// "05"（書面） → 申込内容承認登録明細.申込形態コード
		ArrayList list = new ArrayList();
		HashMap childMap = new HashMap();
		childMap.put("mskm_form_cd", "05");
		list.add(childMap);
		
		parentMap.put("EKK0011D020CBSMsg1List", list);
		
		//*************************************************
		// 申込明細照査・後続業務依頼
		//*************************************************
		// 運用日付 → 後続業務依頼年月日
		parentMap.put("kzkwrk_reqymd", getValue(bean[0], KKW00828SFConst.OPE_DATE));
		
		//*************************************************
		// 課金先一覧照会（請求契約番号／サービス契約番号）
		//*************************************************
		// サービス契約番号 → ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", svcKeiNo);
		
		//*************************************************
		// 料金プラン一覧照会（オプションサービスコード）
		//*************************************************
		// "B068"(ケーブルガイド誌) → ＫＥＹ＿オプションサービスコード
		parentMap.put("key_op_svc_cd", "B068");
		
		//*************************************************
		// オプションサービス契約＜TV＞登録
		//*************************************************
		// "01"(サービス契約) → 親契約識別コード
		parentMap.put("oya_kei_skbt_cd", "01");
		// ケーブルガイド申込数 → ケーブルガイド申込数
		parentMap.put("cable_guide_mskm_cnt", getValue(bean[0], KKW00828SFConst.TV_GUIDE_MSKM_CNT));
		// "050001"（番組ガイド） → ガイド誌種別コード
		parentMap.put("guidemg_sbt_cd", "050001");
		// "070001"（業者１） → ガイド誌発送方法コード
		parentMap.put("guidemg_hasso_way_cd", "070001");
		
/* ++++++++++ v4.03.00 追加・変更開始 ++++++++++ */
		// 「利用場所と同じ」チェック有
		if (usePcAdDoitsu)
		{
			// ガイド誌送付先個別指定フラグ
			parentMap.put("guidemg_shs_ksitei_flg", "0");
			
			parentMap.put("guidemg_sohus_pcd", null);
			parentMap.put("guidemg_sohus_ad_cd", null);
			parentMap.put("guidemg_sohus_state_nm", null);
			parentMap.put("guidemg_sohus_city_nm", null);
			parentMap.put("guidemg_sohus_oaztsu_nm", null);
			parentMap.put("guidemg_sohus_azcho_nm", null);
			parentMap.put("guidemg_sohus_bnchigo", null);
			parentMap.put("guidemg_sohus_adrttm", null);
			parentMap.put("guidemg_sohus_adrrm", null);
			parentMap.put("guidemg_sohus_telno", null);
			parentMap.put("guidemg_sohus_nm", null);
			parentMap.put("guidemg_sohus_kana", null);
			
			// ガイド誌送付先住所手動入力フラグ
			parentMap.put("gudmg_shs_ad_man_input_flg", "0");
			// ガイド誌送付先住所チェックレベル
			parentMap.put("guidemg_sohus_ad_chk_lv", "0");
		}
		else
		{
			// ガイド誌送付先個別指定フラグ
			parentMap.put("guidemg_shs_ksitei_flg", "1");
			
			// 郵便番号.郵便番号 → ガイド誌送付先郵便番号
			parentMap.put("guidemg_sohus_pcd", getDataBeanArrayValue(bean, KKW00828SFConst.PCD, KKW00828SFConst.PCD_02));
			// 住所コード.住所コード → ガイド誌送付先住所コード
			parentMap.put("guidemg_sohus_ad_cd", getDataBeanArrayValue(bean, KKW00828SFConst.AD_CD, KKW00828SFConst.AD_CD_03));
			// 都道府県 → ガイド誌送付先都道府県名
			parentMap.put("guidemg_sohus_state_nm", getValue(bean[0], KKW00828SFConst.STATE));
			// 市区町村 → ガイド誌送付先市区町村名
			parentMap.put("guidemg_sohus_city_nm", getValue(bean[0], KKW00828SFConst.CITY));
			// 大字通称名 → ガイド誌送付先大字通称名
			parentMap.put("guidemg_sohus_oaztsu_nm", getValue(bean[0], KKW00828SFConst.OAZTSU));
			// 字丁目 → ガイド誌送付先字丁目名
			parentMap.put("guidemg_sohus_azcho_nm", getValue(bean[0], KKW00828SFConst.AZCHO));
			// 番地・号 → ガイド誌送付先番地号
			parentMap.put("guidemg_sohus_bnchigo", getValue(bean[0], KKW00828SFConst.BNCHIGO));
			// 建物名 → ガイド誌送付先住所補記・建物名
			parentMap.put("guidemg_sohus_adrttm", getValue(bean[0], KKW00828SFConst.ADRTTM));
			// 部屋番号 → ガイド誌送付先住所補記・部屋番号
			parentMap.put("guidemg_sohus_adrrm", getValue(bean[0], KKW00828SFConst.ADRRM));
			// 電話番号 → ガイド誌送付先電話番号
			parentMap.put("guidemg_sohus_telno", getValue(bean[0], KKW00828SFConst.TELNO));
			// 送付先名 → ガイド誌送付先名
			parentMap.put("guidemg_sohus_nm", getValue(bean[0], KKW00828SFConst.SHS_NM));
			// 送付先カナ名 → ガイド誌送付先カナ名
			parentMap.put("guidemg_sohus_kana", getValue(bean[0], KKW00828SFConst.SHS_KANA));
			
/* ++++++++++ v4.01.00 追加開始 ++++++++++ */
			if(bean[0].sendMessageBoolean(KKW00828SFConst.EX, X31CWebConst.DATABEAN_GET_VALUE))
			{
				// ガイド誌送付先住所手動入力フラグ
				parentMap.put("gudmg_shs_ad_man_input_flg", "1");
				// ガイド誌送付先住所チェックレベル
				parentMap.put("guidemg_sohus_ad_chk_lv", "0");
			}
			else
			{
				// ガイド誌送付先住所手動入力フラグ
				parentMap.put("gudmg_shs_ad_man_input_flg", "0");
				// ガイド誌送付先住所チェックレベル
				parentMap.put("guidemg_sohus_ad_chk_lv", "1");
			}
/* ++++++++++ v4.01.00 追加終了 ++++++++++ */
		}
/* ++++++++++ v4.03.00 追加・変更終了 ++++++++++ */
		
		// サービス契約＿最終更新年月日時分秒 → 更新年月日時分秒（更新前）
		parentMap.put("upd_dtm_bf", getValue(bean[0], KKW00828SFConst.SVC_LAST_UPD_DTM));
		// サービス利用開始希望年月日
		parentMap.put("svc_use_sta_kibo_ymd", getValueForBean(bean));
		
		// 利用開始月
		String chgCngStaYM = bean[0].sendMessageString(KKW00828SFConst.USE_STAYM, X31CWebConst.DATABEAN_GET_VALUE);
		
		//*************************************************
		// オプションサービス契約＜TV＞照査
		// オプションサービス契約＜TV＞照査締結
		//*************************************************
		// 顧客契約引継リスト.異動区分 → .異動区分
		// 設定済
		
		if(SVC_KEI_STAT_100.equals(svcKeiStat))
		{
			//*************************************************
			// オプションサービス契約＜TV＞開始
			//*************************************************
			// 顧客契約引継リスト.異動区分 → .異動区分
			// 設定済
			
			// オプションサービス契約＜TV＞開始マップ.サービス開始年月日
			parentMap.put("svc_staymd", getValueForBean(bean));
			
			// 即時/翌月
			// 利用開始月:即時
			if("1".equals(chgCngStaYM))
			{
				// 01:即時
				parentMap.put("skj_ykgt", "01");
			}
			// 利用開始月:次月より
			else if("2".equals(chgCngStaYM))
			{
				// 02:翌月
				parentMap.put("skj_ykgt", "02");
			}
			// 利用開始月:次々月より
			else if("3".equals(chgCngStaYM))
			{
				// 03:翌々月
				parentMap.put("skj_ykgt", "03");
			}
		}
		
		//*************************************************
		// 進捗登録
		//*************************************************
		// "5102"（オプション設定完了） → 進捗登録マップ.進捗ステータス
		parentMap.put("prg_stat", "5102");
		
/* ++++++++++ v4.02.00 追加開始 ++++++++++ */
		// システム日時 → 異動年月日時分秒
		parentMap.put("ido_dtm", JCCWebCommon.getSysDateTimeStamp());
		
		StringBuilder sb = new StringBuilder();
		
		sb.append("ケーブルガイド誌情報登録　");
		sb.append("ケーブルガイド誌申込数：");
		sb.append(bean[0].sendMessageString(KKW00828SFConst.TV_GUIDE_MSKM_CNT, X31CWebConst.DATABEAN_GET_VALUE));
		sb.append("　利用開始月：");
		
		// 利用開始月:即時
		if("1".equals(chgCngStaYM))
		{
			sb.append("即時");
		}
		// 利用開始月:次月より
		else if("2".equals(chgCngStaYM))
		{
			sb.append("次月より");
		}
		// 利用開始月:次々月より
		else if("3".equals(chgCngStaYM))
		{
			sb.append("次々月より");
		}
		parentMap.put("prg_tkjk_1", sb.toString());
		parentMap.put("prg_tkjk_2", "");
/* ++++++++++ v4.02.00 追加終了 ++++++++++ */
		
		// 顧客引継情報
		X31SDataBeanAccessArray arraybean = bean[0].getDataBeanArray(KKW00828SFConst.CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess subBean = arraybean.getDataBean(0);
		
		// 顧客引継情報.異動理由コード
		int length = (Integer)subBean.sendMessage(KKW00828SFConst.IDO_RSN_CD_04, X31CWebConst.DATABEAN_GET_COUNT);
		String [] idoRsnCdList = new String[length];
		for(int i=0; i<length; i++)
		{
			idoRsnCdList[i] = subBean.sendMessageString(KKW00828SFConst.IDO_RSN_CD_04, X31CWebConst.DATABEAN_GET_VALUE, i);
		}
		
		childMap = null;
		list = new ArrayList();
		for(int i = 0; i < idoRsnCdList.length; i++)
		{
			childMap = new HashMap<String, String>();
			// 顧客引継情報.異動理由コード → 進捗登録マップ.異動理由明細.異動理由コード
			childMap.put("ido_rsn_cd", idoRsnCdList[i]);
			list.add(childMap);
		}
		parentMap.put("EKK1091D010CBSMsg1List", list);
		
		if("1".equals(oneStopFlg))
		{
			//*************************************************
			// ワンストップ対応履歴登録
			//*************************************************
			setOnestopRirekiAddCC(osBean, parentMap);
		}
		
		outputMap.put("EohTvGuideAddCC", parentMap);
		
		return outputMap;
	}
/* ++++++++++ v5.00.00 追加終了 ++++++++++ */
	
/* ++++++++++ v4.00.00 追加開始 ++++++++++ */
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：eo光テレビオプションチャンネル登録　[1]：共有フォームＢｅａｎ
	 * @param parentMap
	 */
	@SuppressWarnings("unchecked")
	private HashMap setOnestopRirekiAddCC(X31SDataBeanAccess[] bean, HashMap parentMap) {
		
		X31SDataBeanAccess beanTemp = null;
		ArrayList list = null;
		
		// 顧客契約引継リスト.サービス契約番号 → ワンストップ対応履歴登録マップ.サービス契約番号
		// 設定済
		
		// ユーザーＩＤ → ワンストップ対応履歴登録マップ.ユーザーＩＤ
		parentMap.put("user_id", bean[1].sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE));
		// ユーザー名 → ワンストップ対応履歴登録マップ.ユーザー名
		parentMap.put("user_nm", bean[1].sendMessageString(CommonInfoCFConst.USER_NM, X31CWebConst.DATABEAN_GET_VALUE));
		
		beanTemp = bean[1];
		if(beanTemp.getDataBeanArray(CommonInfoCFConst.KGGRP_CD_LIST).getCount() >= 2)
		{
			X31SDataBeanAccess kggrpCdListBean = beanTemp.getDataBeanArray(CommonInfoCFConst.KGGRP_CD_LIST).getDataBean(1);
			// 権限リスト.組織コード → ワンストップ対応履歴登録マップ.組織コード
			parentMap.put("org_cd", kggrpCdListBean.sendMessageString(CommonInfoCFConst.ORG_CD_01, X31CWebConst.DATABEAN_GET_VALUE));
			// 権限リスト.組織名 → ワンストップ対応履歴登録マップ.組織名
			parentMap.put("org_nm", kggrpCdListBean.sendMessageString(CommonInfoCFConst.ORG_NM_01, X31CWebConst.DATABEAN_GET_VALUE));
		}
		
		// "KK_GUIDE_ADD_TITLE" → ワンストップ対応履歴登録マップ.タイトルパラメータＩＤ
		parentMap.put("title_param_id", "KK_GUIDE_ADD_TITLE");
		// ワンストップフラグ → ワンストップ対応履歴登録マップ.ワンストップフラグ
		parentMap.put("onestop_flg", getValue(bean[0], KKW00828SFConst.ONE_STOP_FLG));
		
		// ワンストップ対応履歴登録マップ.回答内容編集リストを回答内容の行数分作成する
		list = new ArrayList();
		HashMap childMap = null;
		
		// １行目「■回答内容」
		childMap = new HashMap();
		// "KK_GUIDE_ADD_NYO_01" → ワンストップ対応履歴登録マップ.回答内容編集リスト.回答内容パラメータＩＤ
		childMap.put("ans_param_id", "KK_GUIDE_ADD_NYO_01");
		list.add(childMap);
		
		// ２行目「ワンストップによるガイド誌申込」
		childMap = new HashMap();
		// "KK_GUIDE_ADD_NYO_02" → ワンストップ対応履歴登録マップ.回答内容編集リスト.回答内容パラメータＩＤ
		childMap.put("ans_param_id", "KK_GUIDE_ADD_NYO_02");
		list.add(childMap);
		
		// ３行目「申込部数：[@]」
		childMap = new HashMap();
		// "KK_GUIDE_ADD_NYO_03" → ワンストップ対応履歴登録マップ.回答内容編集リスト.回答内容パラメータＩＤ
		childMap.put("ans_param_id", "KK_GUIDE_ADD_NYO_03");
		// "@" → ワンストップ対応履歴登録マップ.回答内容編集リスト.置換前文字列１
		childMap.put("replace_mae1", "@");
		// eo光テレビガイド誌申込数 → ワンストップ対応履歴登録マップ.回答内容編集リスト.置換後文字列１
		childMap.put("replace_ato1", getValue(bean[0], KKW00828SFConst.TV_GUIDE_MSKM_CNT));
		list.add(childMap);
		
		// ４行目「利用開始月：[A]」
		childMap = new HashMap();
		// "KK_GUIDE_ADD_NYO_04" → ワンストップ対応履歴登録マップ.回答内容編集リスト.回答内容パラメータＩＤ
		childMap.put("ans_param_id", "KK_GUIDE_ADD_NYO_04");
		// "A" → ワンストップ対応履歴登録マップ.回答内容編集リスト.置換前文字列１
		childMap.put("replace_mae1", "A");
		// “即時” or “次月より” or “次々月” → ワンストップ対応履歴登録マップ.回答内容編集リスト.置換後文字列１
		childMap.put("replace_ato1", getValue(bean[0], KKW00828SFConst.DISP_USE_STAYM));
		list.add(childMap);
		
		// ５行目「[B]:[C]」
		childMap = new HashMap();
		// "KK_GUIDE_ADD_NYO_05" → ワンストップ対応履歴登録マップ.回答内容編集リスト.回答内容パラメータＩＤ
		childMap.put("ans_param_id", "KK_GUIDE_ADD_NYO_05");
		// "B" → ワンストップ対応履歴登録マップ.回答内容編集リスト.置換前文字列１
		childMap.put("replace_mae1", "B");
		// ユーザーＩＤ → ワンストップ対応履歴登録マップ.回答内容編集リスト.置換後文字列１
		childMap.put("replace_ato1", bean[1].sendMessageString("ユーザーＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// "C" → ワンストップ対応履歴登録マップ.回答内容編集リスト.置換前文字列２
		childMap.put("replace_mae2", "C");
		// ユーザー名 → ワンストップ対応履歴登録マップ.回答内容編集リスト.置換後文字列２
		childMap.put("replace_ato2", bean[1].sendMessageString("ユーザー名", X31CWebConst.DATABEAN_GET_VALUE));
		list.add(childMap);
		
		parentMap.put("ans_list", list);
		
		return parentMap;
	}
/* ++++++++++ v4.00.00 追加終了 ++++++++++ */
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：ｅｏ光テレビケーブルテレビガイド誌登録
	 * @param outputMap
	 * @param funcCode
	 * 
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV0525WORK01(X31SDataBeanAccess[] bean, HashMap outputMap, String funcCode)
	{
		if(isNull(bean))
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// サービス契約ステータス → 作業領域マップ.サービス契約ステータス
		parentMap.put("svc_kei_stat", getValue(bean[0], KKW00828SFConst.SVC_KEI_STAT));
		// ワンストップフラグ → 作業領域マップ.ワンストップフラグ
		parentMap.put("one_stop_flg", getValue(bean[0], KKW00828SFConst.ONE_STOP_FLG));
		// 機能コード → 作業領域マップ.機能コード
		parentMap.put("func_code", funcCode);
		
		outputMap.put("KKSV0525WORK01", parentMap);
		
		return outputMap;
	}
	
	/**
	 * 申込内容承認登録マップ.申込年月日
	 * オプションサービス契約＜TV＞登録マップ.サービス利用開始希望年月日
	 * オプションサービス契約＜TV＞開始マップ.サービス開始年月日
	 * 格納値取得
	 * 
	 * @param bean サービスフォームBean
	 * @return String
	 */
	public String getValueForBean(X31SDataBeanAccess[] bean) throws ParseException
	{
		// 返却値
		String setBeanValue = "";
		
		// 利用開始月 選択値
		String useStaYM = bean[0].sendMessageString(KKW00828SFConst.USE_STAYM, X31CWebConst.DATABEAN_GET_VALUE);
		
		// オンライン運用日(YYYYMMDD)
		String opeDate = bean[0].sendMessageString(KKW00828SFConst.OPE_DATE, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 即時
		if("1".equals(useStaYM))
		{
			/************************************************************************************************/
			/** オプションサービス契約.利用開始日にはオンライン運用日を格納									*/
			/************************************************************************************************/
			setBeanValue = opeDate;
		}
		// 次月より
		else if("2".equals(useStaYM))
		{
			/************************************************************************************************/
			/** オプションサービス契約.利用開始日にはオンライン運用日の次月1日を格納						*/
			/************************************************************************************************/
			// 運用日の次月取得
			String nextOpeYM = JPCUtilCommon.addMonth(opeDate, 1).substring(0, 6);
			
			// オンライン運用日の次月1日
			StringBuilder builder = new StringBuilder();
			builder.append(nextOpeYM);
			builder.append("01");
			
			setBeanValue = builder.toString();
		}
		// 次々月より
		else if("3".equals(useStaYM))
		{
			/************************************************************************************************/
			/** オプションサービス契約.利用開始日にはオンライン運用日の次々月1日を格納						*/
			/************************************************************************************************/
			// 運用日の次々月取得
			String oneAfterOpeYM = JPCUtilCommon.addMonth(opeDate, 2).substring(0, 6);
			
			// オンライン運用日の次月1日
			StringBuilder builder = new StringBuilder();
			builder.append(oneAfterOpeYM);
			builder.append("01");
			
			setBeanValue = builder.toString();
		}
		
		return setBeanValue;
		
	}
	
	/**
	 * リストから指定された項目の値を取得します。
	 * <br>
	 * @param bean 画面情報
	 * @param arrayName 項目名
	 * @param itemName 項目名
	 * <br>
	 * @return String 項目値
	 */
	private String getDataBeanArrayValue(X31SDataBeanAccess[] bean, String arrayName, String itemName)
	{
		X31SDataBeanAccessArray arraybean = bean[0].getDataBeanArray(arrayName);
		X31SDataBeanAccess subBean = arraybean.getDataBean(0);
		
		return getValue(subBean, itemName);
	}
	
	/**
	 * データBeanから指定された項目の値を取得します。
	 * <br>
	 * @param bean 画面情報
	 * @param itemName 項目名
	 * <br>
	 * @return String 項目値
	 */
	private String getValue(X31SDataBeanAccess bean, String itemName)
	{
		return bean.sendMessageString(itemName, X31CWebConst.DATABEAN_GET_VALUE);
	}
	
	/**
	 * 引数のNULL判定を行います。
	 * @param param
	 * @return 判定結果
	 */
	private boolean isNull(Object param)
	{
		if(param == null)
		{
			return true;
		}
		return false;
	}
}