/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：視聴制御
*	モジュール名	：WCW00803SFLogic
*	ソースファイル名：WCW00803SFLogic.java
*	作成者			：富士通
*	日付			：2011年07月20日
*＜機能概要＞
*	メッセージ送信登録のビューロジッククラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/07/20	富士通		新規作成
*	v3.00.00	2012/05/01	FJ)竹之下	【ANK-0315-00-00】宅内対応を実施
*
**********************************************************************/
package eo.web.webview.WCW00803SF;

import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.constant.JWCStrConst;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JWCCommonConst;
import eo.web.webview.common.JWCScreenConst;
import eo.web.webview.mapping.WCSV0002_WCSV0002OPDBMapper;
import eo.web.webview.mapping.WCSV0018_WCSV0018OPDBMapper;

public class WCW00803SFLogic extends JCCWebBusinessLogic {

	// エラーメッセージ表示用定数定義
	private String Error_Mode_1 = "1";
	private String Error_Mode_2 = "2";
	private String Error_Mode_3 = "3";

	/**
	 * メッセージ送信登録画面初期表示処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean init() throws Exception
	{
	
		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;

		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		if (bean == null)
		{
			throw new Exception();
		}
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};


		paramMap = new HashMap<String, Object>();
		inputMap = new HashMap<String, Object>();
		outputMap = new HashMap<String, Object>();
		
		// ◇ 業務ロジックの記述
		// ユースケースID格納用マップを生成。
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "WCSV0018");
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "WCSV0018OP");

		mappingForDB_BP_WCSV0018_SET(paramBean, inputMap, JWCCommonConst.FUNC_CODE_1);
		
		///// STBメッセージオーダ送信初期表示サービス呼出処理/////
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);

		
		///// サービス処理結果の判定/////
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		///// STBメッセージオーダ送信初期表示サービス処理結果の取得/////
		mappingForDB_BP_A(paramBean, outputMap);

		String str = this.getButtonAttributeBLId();
		
		// 送信情報リストの初期化
		X31SDataBeanAccessArray stbBeanArray = bean.getDataBeanArray(WCW00803SFConst.SND_LIST);
		stbBeanArray.addDataBean();

		// あて先種別情報の初期化
		X31SDataBeanAccessArray syubetu_bean = bean.getDataBeanArray(WCW00803SFConst.SND_SYUBETU_INFO);
		syubetu_bean.addDataBean();
		
		syubetu_bean.getDataBean(0).sendMessageString(WCW00803SFConst.ATESAKI_SBT_CD_02, X31CWebConst.DATABEAN_SET_VALUE,"00");

		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		//DataBeanへのデータ設定
		bean.sendMessageString(WCW00803SFConst.WCTRL_ORDER_CD , 
				X31CWebConst.DATABEAN_SET_VALUE, null);
		bean.sendMessageString(WCW00803SFConst.WCTRL_REQ_TRN_CD, 
				X31CWebConst.DATABEAN_SET_VALUE, JWCStrConst.CD_DIV_WCTRL_REQ_TRN_CD_MSG_SEND);
		bean.sendMessageString(WCW00803SFConst.WCTRL_TYPE , 
				X31CWebConst.DATABEAN_SET_VALUE, JWCStrConst.CD_DIV_WCTRL_TRN_CD_REAL);
		bean.sendMessageString(WCW00803SFConst.CTRL_CD, 
				X31CWebConst.DATABEAN_SET_VALUE, "2");

		///// メッセージ表示処理 /////
//		String strMsg = JWCCommonConst.Msg_WCW00803_1;
		String MESSAGE_ID = JPCOnlineMessageConstant.EKB7030__I;
		String[] stringArray;
		stringArray = new String[1];
		stringArray[0] = "送信情報";
		
		// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
		X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
		
		// MESSAGE_LISTをクリアする。
		commonBeanArray.clearArray();
		
		// MESSAGE_LISTにメッセージを追加する。
		X31SDataBeanAccess commonSubbean = commonBeanArray.addDataBean();
//		commonSubbean.sendMessageString(CommonInfoCFConst.MESSAGE_ID_02, X31CWebConst.DATABEAN_SET_VALUE, "");
//		commonSubbean.sendMessageString(CommonInfoCFConst.MESSAGE_02, X31CWebConst.DATABEAN_SET_VALUE, strMsg);
//		commonSubbean.sendMessageString("項目ＩＤ", X31CWebConst.DATABEAN_SET_VALUE, "");
		JCCWebCommon.setMessageInfo( this, MESSAGE_ID,stringArray,"");

		
		///// 遷移先画面設定処理 /////
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_ID_WC00803);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_NAME_WC00803);

		return true;
	}

	/**
	 * メッセージ送信登録画面キャンセルボタン押下処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean cancel() throws Exception 
	{

		///// 共有フォームBean設定/////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
		X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
		
		// MESSAGE_LISTをクリアする。
		commonBeanArray.clearArray();
		//beanのクリアは？

		///// 遷移先画面設定処理 /////
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getScreenId(this));
		
		return true;
	}

	/**
	 * メッセージ送信登録画面登録確認ボタン押下処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean kakunin() throws Exception 
	{
		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;

		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		if (bean == null)
		{
			throw new Exception();
		}
		
		// 制御タイプを０に設定する。
		bean.sendMessageString(WCW00803SFConst.WCTRL_TYPE , X31CWebConst.DATABEAN_SET_VALUE,
			JWCStrConst.CD_DIV_WCTRL_TRN_CD_REAL);

		X31SDataBeanAccessArray msg_send_st = bean.getDataBeanArray(WCW00803SFConst.SND_LIST);

		// 開始日、終了日を編集する。
		String msg_send_st_year = msg_send_st.getDataBean(0).sendMessageString(WCW00803SFConst.MSG_SEND_ST_YEAR_01, X31CWebConst.DATABEAN_GET_VALUE);
		String msg_send_st_month = msg_send_st.getDataBean(0).sendMessageString(WCW00803SFConst.MSG_SEND_ST_MONTH_01, X31CWebConst.DATABEAN_GET_VALUE);
		String msg_send_st_day = msg_send_st.getDataBean(0).sendMessageString(WCW00803SFConst.MSG_SEND_ST_DAY_01, X31CWebConst.DATABEAN_GET_VALUE);
		String msg_send_st_ji = msg_send_st.getDataBean(0).sendMessageString(WCW00803SFConst.MSG_SEND_ST_JI_01, X31CWebConst.DATABEAN_GET_VALUE);
		String msg_send_st_fun = msg_send_st.getDataBean(0).sendMessageString(WCW00803SFConst.MSG_SEND_ST_FUN_01, X31CWebConst.DATABEAN_GET_VALUE);
		
		String msg_send_ed_year = msg_send_st.getDataBean(0).sendMessageString(WCW00803SFConst.MSG_SEND_ED_YEAR_01, X31CWebConst.DATABEAN_GET_VALUE);
		String msg_send_ed_month = msg_send_st.getDataBean(0).sendMessageString(WCW00803SFConst.MSG_SEND_ED_MONTH_01, X31CWebConst.DATABEAN_GET_VALUE);
		String msg_send_ed_day = msg_send_st.getDataBean(0).sendMessageString(WCW00803SFConst.MSG_SEND_ED_DAY_01, X31CWebConst.DATABEAN_GET_VALUE);
		String msg_send_ed_ji = msg_send_st.getDataBean(0).sendMessageString(WCW00803SFConst.MSG_SEND_ED_JI_01, X31CWebConst.DATABEAN_GET_VALUE);
		String msg_send_ed_fun = msg_send_st.getDataBean(0).sendMessageString(WCW00803SFConst.MSG_SEND_ED_FUN_01, X31CWebConst.DATABEAN_GET_VALUE);
		
		StringBuffer msg_send_st_buf = new StringBuffer();
		msg_send_st_buf.append(msg_send_st_year).append(msg_send_st_month).append(msg_send_st_day).append(msg_send_st_ji).append(msg_send_st_fun).append("00000");

		StringBuffer msg_send_ed_buf = new StringBuffer();
		msg_send_ed_buf.append(msg_send_ed_year).append(msg_send_ed_month).append(msg_send_ed_day).append(msg_send_ed_ji).append(msg_send_ed_fun).append("00000");
		
		
		bean.sendMessageString(WCW00803SFConst.MSG_SEND_ST_DTM, X31CWebConst.DATABEAN_SET_VALUE, msg_send_st_buf.toString());
		bean.sendMessageString(WCW00803SFConst.MSG_SEND_ED_DTM, X31CWebConst.DATABEAN_SET_VALUE, msg_send_ed_buf.toString());
		
		X31SDataBeanAccessArray atesaki_array = bean.getDataBeanArray(WCW00803SFConst.SND_SYUBETU_INFO);
		
		String atesaki_cd = (String)atesaki_array.getDataBean(0).sendMessageString(WCW00803SFConst.ATESAKI_SBT_CD_02, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 宛先が個別指定の場合グループ番号、グループＩＤをクリアする
		if(JWCStrConst.CD_DIV_STB_MSG_ORDER_SBT_CD_KOBETU.equals(atesaki_cd))
		{
			//あて先種別コードは自動的にセットされる
			atesaki_array.getDataBean(0).sendMessage(WCW00803SFConst.GRP_ID_02, X31CWebConst.DATABEAN_CLEAR);
			atesaki_array.getDataBean(0).sendMessage(WCW00803SFConst.GRP_NO_02, X31CWebConst.DATABEAN_CLEAR);
			bean.sendMessageString(WCW00803SFConst.WCTRL_ORDER_CD, X31CWebConst.DATABEAN_SET_VALUE, 
					JWCStrConst.CD_DIV_WCTRL_ORDER_STBMSGSND);
			//KEY_宅内機器種別コード
			bean.sendMessageString(WCW00803SFConst.KEY_TK_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, 
					JWCStrConst.CD_DIV_TAKNKIKI_SBT_CD_STB);
		}
		// 宛先がグループ指定の場合グループ番号、ＳＴＢ−ＩＤ、製造番号をクリアする。
		if(JWCStrConst.CD_DIV_STB_MSG_ORDER_SBT_CD_GRP.equals(atesaki_cd))
		{
			//あて先種別コードは自動的にセットされる
			atesaki_array.getDataBean(0).sendMessage(WCW00803SFConst.SEIZO_NO_02, X31CWebConst.DATABEAN_CLEAR);
			atesaki_array.getDataBean(0).sendMessage(WCW00803SFConst.STB_ID_02, X31CWebConst.DATABEAN_CLEAR);
			bean.sendMessageString(WCW00803SFConst.WCTRL_ORDER_CD, X31CWebConst.DATABEAN_SET_VALUE, 
					JWCStrConst.CD_DIV_WCTRL_ORDER_GRPMSGSND);
		}

		//要確認　システム指定選択時は？停止？
		if(!JWCStrConst.CD_DIV_STB_MSG_ORDER_SBT_CD_KOBETU.equals(atesaki_cd) &&
				!JWCStrConst.CD_DIV_STB_MSG_ORDER_SBT_CD_GRP.equals(atesaki_cd))
		{
			//あて先種別コード コンストなし？自動設定？
			atesaki_array.getDataBean(0).sendMessageString(WCW00803SFConst.ATESAKI_SBT_CD, 
					X31CWebConst.DATABEAN_SET_VALUE, JWCStrConst.CD_DIV_STB_MSG_ORDER_SBT_CD_STP);
		}
		// 宅内情報の初期化
//		X31SDataBeanAccessArray tk_info = bean.getDataBeanArray(WCW00803SFConst.TK_INFO);
		X31SDataBeanAccessArray tk_info = bean.getDataBeanArray(WCW00803SFConst.TN_ICRN_INFO);
		tk_info.clearArray();

		// グループＩＤ情報の初期化
		X31SDataBeanAccessArray grp_info = bean.getDataBeanArray(WCW00803SFConst.GRP_INFO);
		grp_info.clearArray();

		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};

		paramMap = new HashMap<String, Object>();
		inputMap = new HashMap<String, Object>();
		outputMap = new HashMap<String, Object>();

		// ◇ 業務ロジックの記述
		// ユースケースID格納用マップを生成。
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "WCSV0002");
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "WCSV0002OP");
		//STBメッセージオーダ送信セット
		mappingForDB_BP_WCSV0002_SET(paramBean, inputMap, 0);
		///// STBメッセージオーダ送信初期表示サービス呼出処理/////
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);

		///// サービス処理結果の判定/////
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		mappingForDB_BP_WCSV0002_GET(paramBean, outputMap);

		// 宅内情報の初期化
//		tk_info = bean.getDataBeanArray(WCW00803SFConst.TK_INFO);
		tk_info = bean.getDataBeanArray(WCW00803SFConst.TN_ICRN_INFO);
		
		
		// グループＩＤ情報の初期化
		grp_info = bean.getDataBeanArray(WCW00803SFConst.GRP_INFO);

		// 確認の場合メッセージＩＤを表示しないように空白を設定する、
		bean.sendMessageString(WCW00803SFConst.MSG_ID,  X31CWebConst.DATABEAN_SET_VALUE, "");
		//宅内一覧情報なしの場合
		if(JWCStrConst.CD_DIV_STB_MSG_ORDER_SBT_CD_KOBETU.equals(atesaki_cd) && tk_info.getDataBean(0) == null) 
		{
			kakunin_Error(Error_Mode_1);
			return false;
		}
		else if(JWCStrConst.CD_DIV_STB_MSG_ORDER_SBT_CD_GRP.equals(atesaki_cd) && grp_info.getDataBean(0) == null)
		{
			kakunin_Error(Error_Mode_2);
			return false;
		}

		//あて先：個別指定選択時
		if(JWCStrConst.CD_DIV_STB_MSG_ORDER_SBT_CD_KOBETU.equals(atesaki_cd))
		{
			//STBステータスが仮登録または、本運用でない場合エラー
			String stbStat = (String)tk_info.getDataBean(0).sendMessageString(
					WCW00803SFConst.STB_STAT_CD_07, X31CWebConst.DATABEAN_GET_VALUE);
			if((!JWCStrConst.CD_DIV_WATCH_KIKI_KANRI_STAT_KARITO.equals(stbStat)) &&
				(!JWCStrConst.CD_DIV_WATCH_KIKI_KANRI_STAT_HONUNYO.equals(stbStat)))
			{
				kakunin_Error(Error_Mode_3);
				return false;
			}
		}

		// グループ番号を１桁の数値に変更する。
		String grpno = atesaki_array.getDataBean(0).sendMessageString(WCW00803SFConst.GRP_NO_02, X31CWebConst.DATABEAN_GET_VALUE) ;
		grpno = viewGroupNo(grpno);
		atesaki_array.getDataBean(0).sendMessageString(WCW00803SFConst.GRP_NO_02, X31CWebConst.DATABEAN_SET_VALUE , grpno) ;
		
		///// 共有フォームBean設定/////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		///// メッセージ表示処理 /////
		String MESSAGE_ID = JPCOnlineMessageConstant.EKB0370__I;
		String[] stringArray;
		stringArray = new String[1];
		stringArray[0] = "メッセージ送信登録";
		
		// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
		X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
		
		// MESSAGE_LISTをクリアする。
		commonBeanArray.clearArray();
		
		// MESSAGE_LISTにメッセージを追加する。
		X31SDataBeanAccess commonSubbean = commonBeanArray.addDataBean();
		JCCWebCommon.setMessageInfo( this, MESSAGE_ID,stringArray,"");
		// 強調表示
		JCCWebCommon.setMessageAreaBackColor(this, "1");
		///// 遷移先画面設定処理 /////
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_ID_WC00804);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_NAME_WC00804);

		return true;
	}

	/**
	 * 確認ボタンエラー処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean kakunin_Error(String strFlg) throws Exception
	{
		String MESSAGE_ID = "";
		String[] stringArray = new String[0];
		
		if(strFlg.equals(Error_Mode_1))
		{
			MESSAGE_ID = JPCOnlineMessageConstant.EKB0300_KW;
			stringArray = new String[2];
			stringArray[0] = "宅内機器";
			stringArray[1] = "STBID，製造番号";
		}
		else if(strFlg.equals(Error_Mode_2))
		{
			MESSAGE_ID = JPCOnlineMessageConstant.EKB0300_KW;
			stringArray = new String[2];
		//	stringArray[0] = "ＳＴＢグループ";
			stringArray[0] = "選択されたグループ番号（ＳＴＢグループマスタ）";
		//	stringArray[1] = "グループ番号,グループID";			
			stringArray[1] = "グループID";			
		}
		else if(strFlg.equals(Error_Mode_3))
		{
			MESSAGE_ID = JPCOnlineMessageConstant.EKB9220_KW;
			stringArray = new String[1];
			stringArray[0] = "仮登録または本運用";
		}

		// 共有フォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
		X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
		// MESSAGE_LISTをクリアする。
		commonBeanArray.clearArray();

		JCCWebCommon.setMessageInfo( this, MESSAGE_ID,stringArray,"");
		return true;
	}


	/**
	 * メッセージ送信登録画面修正ボタン押下処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean syusei() throws Exception {
		///// 共有フォームBean設定/////ｚ
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		///// メッセージ表示処理 /////
		String MESSAGE_ID = JPCOnlineMessageConstant.EKB7030__I;
		String[] stringArray;
		stringArray = new String[1];
		stringArray[0] = "送信情報";

		// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
		X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
		
		// MESSAGE_LISTをクリアする。
		commonBeanArray.clearArray();
		
		// MESSAGE_LISTにメッセージを追加する。
		X31SDataBeanAccess commonSubbean = commonBeanArray.addDataBean();
		JCCWebCommon.setMessageInfo( this, MESSAGE_ID,stringArray,"");

		// メッセージＩＤと、開始日、終了日をクリアする。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// グループ番号を３桁の数値に変更する。
		X31SDataBeanAccessArray atesaki_array = bean.getDataBeanArray(WCW00803SFConst.SND_SYUBETU_INFO);
		String grpno = atesaki_array.getDataBean(0).sendMessageString(WCW00803SFConst.GRP_NO_02, X31CWebConst.DATABEAN_GET_VALUE) ;
		atesaki_array.getDataBean(0).sendMessageString(WCW00803SFConst.GRP_NO_02, X31CWebConst.DATABEAN_SET_VALUE , fixGroupNo(grpno)) ;

		bean.sendMessage(WCW00803SFConst.MSG_SEND_ST_DTM, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(WCW00803SFConst.MSG_SEND_ED_DTM, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(WCW00803SFConst.MSG_ID,  X31CWebConst.DATABEAN_CLEAR);
		
		///// 遷移先画面設定処理 /////
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_ID_WC00803);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_NAME_WC00803);

		return true;
	}
	
	/**
	 * メッセージ送信登録画面登録ボタン押下処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean fix() throws Exception  
	{
		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;

		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		if (bean == null)
		{
			throw new Exception();
		}

		// グループ番号を３桁の数値に変更する。
		X31SDataBeanAccessArray atesaki_array = bean.getDataBeanArray(WCW00803SFConst.SND_SYUBETU_INFO);
		String grpno = atesaki_array.getDataBean(0).sendMessageString(WCW00803SFConst.GRP_NO_02, X31CWebConst.DATABEAN_GET_VALUE) ;
		atesaki_array.getDataBean(0).sendMessageString(WCW00803SFConst.GRP_NO_02, X31CWebConst.DATABEAN_SET_VALUE , fixGroupNo(grpno)) ;
		//機能コード　要確認
		atesaki_array.getDataBean(0).sendMessageString(WCW00803SFConst.CTRL_CD,
				X31CWebConst.DATABEAN_SET_VALUE , "1");
		//あて先：個別指定時のみ
		if(JWCStrConst.CD_DIV_STB_MSG_ORDER_SBT_CD_KOBETU.equals((String)atesaki_array.getDataBean(0).sendMessageString(
				 WCW00803SFConst.ATESAKI_SBT_CD_02, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			//ＫＥＹ＿宅内機器種別コード　要確認
			atesaki_array.getDataBean(0).sendMessageString(WCW00803SFConst.KEY_TK_SBT_CD,
					X31CWebConst.DATABEAN_SET_VALUE , JWCStrConst.CD_DIV_TAKNKIKI_SBT_CD_STB);
		}
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};

		paramMap = new HashMap<String, Object>();
		inputMap = new HashMap<String, Object>();
		outputMap = new HashMap<String, Object>();

		// ◇ 業務ロジックの記述
		// ユースケースID格納用マップを生成。
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "WCSV0002");
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "WCSV0002OP");
		//サービス項目-DataBean
		mappingForDB_BP_WCSV0002_SET(paramBean, inputMap,1);
		///// STBメッセージオーダ送信初期表示サービス呼出処理/////
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);

		///// サービス処理結果の判定/////
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}

		mappingForDB_BP_WCSV0002_GET(paramBean, outputMap);
		
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		// グループ番号を１桁の数値に変更する。
		grpno = atesaki_array.getDataBean(0).sendMessageString(WCW00803SFConst.GRP_NO_02, X31CWebConst.DATABEAN_GET_VALUE) ;
		atesaki_array.getDataBean(0).sendMessageString(WCW00803SFConst.GRP_NO_02, X31CWebConst.DATABEAN_SET_VALUE , viewGroupNo(grpno)) ;

		///// メッセージ表示処理 /////
		String MESSAGE_ID = JPCOnlineMessageConstant.EKB6990__I;
		String[] stringArray;
		stringArray = new String[1];
		stringArray[0] = "メッセージ送信登録";
		
		// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
		X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
		
		// MESSAGE_LISTをクリアする。
		commonBeanArray.clearArray();
		
		// MESSAGE_LISTにメッセージを追加する。
		X31SDataBeanAccess commonSubbean = commonBeanArray.addDataBean();
		JCCWebCommon.setMessageInfo( this, MESSAGE_ID,stringArray,"");

		///// 遷移先画面設定処理 /////
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_ID_WC00805);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_NAME_WC00805);

		return true;
	}
	

	/**
	 * メッセージ送信登録画面完了ボタン押下処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean fin() throws Exception  {
		
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		///// 遷移先画面設定処理 /////
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getScreenId(this));
		
		return true;
	}
	
	/**
	 * STBメッセージオーダ送信一覧照会上りとのマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   上りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_WCSV0002_SET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> inputMap, int mode)
	{
		// DataBean-BPマッピングクラス生成
		WCSV0002_WCSV0002OPDBMapper mapper = new WCSV0002_WCSV0002OPDBMapper();
		
		if(mode == 0) 
		{
			mapper.setWCSV000201SC(paramBean, inputMap, JWCCommonConst.FUNC_CODE_1);
			mapper.setWCSV000202SC(paramBean, inputMap, JWCCommonConst.FUNC_CODE_1);
			mapper.setWCSV000203SC(paramBean, inputMap, JWCCommonConst.FUNC_CODE_2);
			mapper.setWCSV000204SC(paramBean, inputMap, JWCCommonConst.FUNC_CODE_2);
			mapper.setWCSV000205SC(paramBean, inputMap, JWCCommonConst.FUNC_CODE_2);
		}
		else 
		{
			mapper.setWCSV000201SC(paramBean, inputMap, JWCCommonConst.FUNC_CODE_1);
			mapper.setWCSV000202SC(paramBean, inputMap, JWCCommonConst.FUNC_CODE_1);
			mapper.setWCSV000203SC(paramBean, inputMap, JWCCommonConst.FUNC_CODE_1);
			mapper.setWCSV000204SC(paramBean, inputMap, JWCCommonConst.FUNC_CODE_1);
			mapper.setWCSV000205SC(paramBean, inputMap, JWCCommonConst.FUNC_CODE_1);
		}
		
		return;
	}

	/**
	 * STBメッセージオーダ送信一覧照会下りとのマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   下りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_WCSV0002_GET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> outputMap)
	{
		// DataBean-BPマッピングクラス生成
		WCSV0002_WCSV0002OPDBMapper mapper = new WCSV0002_WCSV0002OPDBMapper();

		mapper.getWCSV000201SC(paramBean, outputMap);
		mapper.getWCSV000202SC(paramBean, outputMap);
		mapper.getWCSV000203SC(paramBean, outputMap);
		mapper.getWCSV000204SC(paramBean, outputMap);
		return;
	}

	/**
	 * STBメッセージオーダ送信一覧照会上りとのマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   上りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_WCSV0018_SET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> inputMap, String func_code)
	{
		// DataBean-BPマッピングクラス生成
		WCSV0018_WCSV0018OPDBMapper mapper = new WCSV0018_WCSV0018OPDBMapper();
		mapper.setWCSV001801SC(paramBean, inputMap, func_code);
		mapper.setWCSV001802SC(paramBean, inputMap, func_code);
		
		return;
	}

	/**
	 * サービスフォームBean項目とサービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  outputMap   下りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_A(X31SDataBeanAccess[] paramBean,  HashMap<String, Object> outputMap)
	{
		// DataBean-BPマッピングクラス生成
		WCSV0018_WCSV0018OPDBMapper mapper = new WCSV0018_WCSV0018OPDBMapper();
		
		
		mapper.getWCSV001801SC(paramBean, outputMap);
		mapper.getWCSV001802SC(paramBean, outputMap);
		return;
	}

	/**
	 * ３桁のグループ番号を表示用に１桁に変更する。
	 * @param grpNo
	 * @return
	 */
	private String viewGroupNo(String grpNo) 
	{
		if(grpNo == null || "".equals(grpNo))
		{
			return "";
		}
		else
		{
			return Integer.toString(Integer.parseInt(grpNo));
		}
	}
	
	
	/**
	 * グループ番号を３桁の文字列に変更する。
	 */
	private String fixGroupNo(String grpNo)
	{
		if(grpNo == null || "".equals(grpNo))
		{
			return "";
		}
		else
		{
			return String.format("%03d",Integer.parseInt(grpNo));
		}
	}
	
}
