/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：WCW00901SFLogic
*	ソースファイル名：WCW00901SFLogic.java
*	作成者			：富士通
*	日付			：2011年06月11日
*＜機能概要＞
*	STB直接制御（新規登録・手動）のビューロジッククラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/06/11	富士通		新規作成
*	v3.00.00	2012/05/01	FJ)松嶋		【ANK-0315-00-00】宅内対応を実施
*
**********************************************************************/
package eo.web.webview.WCW00901SF;

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.WCSV0001_WCSV0001OP_01DBMapper;
import eo.web.webview.mapping.WCSV0062_WCSV0062OPDBMapper;
import eo.web.webview.mapping.WCSV0063_WCSV0063OPDBMapper;

/**
 * ＳＴＢ直接制御（手動リンク）を行う。
 *
 * @author 富士通
 */


public class WCW00901SFLogic extends JCCWebBusinessLogic
{

	// エラーメッセージ表示用定数定義
	private String Error_Mode_1 = "1";
	private String Error_Mode_2 = "2";
	private String Error_Mode_3 = "3";
	private String Error_Mode_4 = "4";
	private String Error_Mode_5 = "5";
	private String Error_Mode_6 = "6";
	private String Error_Mode_7 = "7";
	/**
	 * 一覧照会画面初期表示処理
	 * @author 富士通
	 * @return 
	 * @throws Exception 
	 */
	public boolean init() throws Exception
	{
		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;

		///// 共有フォームBean設定/////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		///// メッセージ表示処理 /////
		String MESSAGE_ID = JPCOnlineMessageConstant.EKB6940__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にメッセージを追加する。
		JCCWebCommon.setMessageInfo( this, MESSAGE_ID, stringArray, "");
		
		///// 遷移先画面設定処理 /////
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_ID_WC00901);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_NAME_WC00901);

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// パラメータ作成
		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, "WCSV0062");
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "WCSV0062OP");

		
		// 視聴制御初期表示サービス呼出処理
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		} 

		// 視聴制御初期表示下りマッピング定義
		mappingForDB_BP_WCSV0062_GET(paramBean, outputMap);

		// 局検索エラー
		X31SDataBeanAccessArray kykBeanArray = bean.getDataBeanArray(WCW00901SFConst.KYOKU_INFO);
		if (kykBeanArray.getCount() == 0 ||kykBeanArray.getDataBean(0) == null)
		{
			search_Error(Error_Mode_6);
			return true;
		}
		// 制御エリア検索エラー
		X31SDataBeanAccessArray ctrlBeanArray = bean.getDataBeanArray(WCW00901SFConst.CTRL_AREA_INFO);
		if (ctrlBeanArray.getCount() == 0 ||ctrlBeanArray.getDataBean(0) == null)
		{
			search_Error(Error_Mode_7);
			return true;
		}

		// DataBeanへのデータ設定
		paramBean[0].sendMessageString(WCW00901SFConst.WCTRL_ORDER_CD, X31CWebConst.DATABEAN_SET_VALUE, JWCStrConst.CD_DIV_WCTRL_ORDER_SET);
		paramBean[0].sendMessageString(WCW00901SFConst.WCTRL_REQ_TRN_CD, X31CWebConst.DATABEAN_SET_VALUE, JWCStrConst.CD_DIV_WCTRL_REQ_TRN_CD_STBCTRL_HAND);
		paramBean[0].sendMessageString(WCW00901SFConst.WCTRL_TYPE, X31CWebConst.DATABEAN_SET_VALUE, JWCStrConst.CD_DIV_WCTRL_TRN_CD_REAL);
		paramBean[0].sendMessageString(WCW00901SFConst.CTRL_MODE, X31CWebConst.DATABEAN_SET_VALUE, JWCStrConst.CD_DIV_WCTRL_CHANGE_CODE_TUJYOU);
		paramBean[0].sendMessageString(WCW00901SFConst.CHRG_FLG, X31CWebConst.DATABEAN_SET_VALUE, JWCStrConst.CD_DIV_WCTRL_CHRG_FLG_CHRG_TRGT);
		paramBean[0].sendMessageString(WCW00901SFConst.RE_SETTE_FLG, X31CWebConst.DATABEAN_SET_VALUE, null);
		paramBean[0].sendMessageString(WCW00901SFConst.CTRL_CMD_HAKKO_ZUMI_FLG, X31CWebConst.DATABEAN_SET_VALUE,JWCStrConst.CD_DIV_WATCH_CMD_HAKKO_FLG_MIHAKKO);
		paramBean[0].sendMessageString(WCW00901SFConst.RSLT_RCV_FLG, X31CWebConst.DATABEAN_SET_VALUE,JWCStrConst.CD_DIV_WATCH_RSLT_RCV_FLG_MIREV);
		paramBean[0].sendMessageString(WCW00901SFConst.DLYD_FLG, X31CWebConst.DATABEAN_SET_VALUE,JWCStrConst.CD_DIV_DLYD_FLG_TAISYOGAI);
		paramBean[0].sendMessageString(WCW00901SFConst.CCAS_SHKKA_CMD_HAK_FLG, X31CWebConst.DATABEAN_SET_VALUE, JWCStrConst.CD_DIV_CCAS_CARD_INIT_CMD_HAKKO_FLG_MIHAKKO);
		paramBean[0].sendMessageString(WCW00901SFConst.KEY_TK_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, JWCStrConst.CD_DIV_TAKNKIKI_SBT_CD_STB);
		paramBean[0].sendMessageString(WCW00901SFConst.NEW_STB_STAT, X31CWebConst.DATABEAN_SET_VALUE, JWCStrConst.CD_DIV_WATCH_KIKI_KANRI_STAT_KARITO);
		paramBean[0].sendMessageString(WCW00901SFConst.NEW_CCAS_STAT, X31CWebConst.DATABEAN_SET_VALUE, JWCStrConst.CD_DIV_CCAS_CARD_KANRI_STAT_LINKCHU);
		
		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();
		}
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};

		String strKeyStbId = paramBean[0].sendMessageString(WCW00901SFConst.KEY_STB_ID, X31CWebConst.DATABEAN_GET_VALUE);
		String strKeySeizoNo = paramBean[0].sendMessageString(WCW00901SFConst.KEY_STB_KIKI_SEIZO_NO, X31CWebConst.DATABEAN_GET_VALUE);
		String strKeyCcasId = paramBean[0].sendMessageString(WCW00901SFConst.KEY_CCAS_ID, X31CWebConst.DATABEAN_GET_VALUE);
		String strKeyBcasId = paramBean[0].sendMessageString(WCW00901SFConst.KEY_BCAS_ID, X31CWebConst.DATABEAN_GET_VALUE);
		
		paramMap = new HashMap<String, Object>();
		inputMap = new HashMap<String, Object>();
		outputMap = new HashMap<String, Object>();
		
		
		// ◇ 業務ロジックの記述
		// ユースケースID格納用マップを生成。
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "WCSV0063");
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "WCSV0063OP");

		// 宅内機器一覧照会上りマッピング定義
		mappingForDB_BP_WCSV0063_SET(paramBean, inputMap, JWCCommonConst.FUNC_CODE_1);

		
		// 宅内機器一覧照会サービス呼出処理
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		} 

		//手動リンク一覧照会下りマッピング定義
		mappingForDB_BP_WCSV0063_GET(paramBean, outputMap);

		
		///// 共有フォームBean設定（遷移先画面） /////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		String  strCcasId = "";
		String  strBcasId = "";
		String  strStbId = "";
		String  strSeizoNo = "";
		String  strStbStat = "";
		String  strCCasStat = "";
		
		//宅内情報アレイセット
		X31SDataBeanAccessArray stbBeanArray  = bean.getDataBeanArray(WCW00901SFConst.TN_ICRN_INFO);

		if (stbBeanArray.getDataBean(0) != null)
		{
			// 入力したSTBIDの値と取得したSTBIDの値が一致しない場合エラーとする。
			if (stbBeanArray.getDataBean(0).sendMessageString(WCW00901SFConst.STBID_03, X31CWebConst.DATABEAN_GET_VALUE) != null)
			{
				strStbId = stbBeanArray.getDataBean(0).sendMessageString(WCW00901SFConst.STBID_03, X31CWebConst.DATABEAN_GET_VALUE);
				if(!("").equals(strKeyStbId) && !strKeyStbId.equals(strStbId))
				{
					search_Error(Error_Mode_2);
					return false;
				}
			}
			// 入力した機器製造番号の値と取得した機器製造番号の値が一致しない場合エラーとする。
			if ( stbBeanArray.getDataBean(0).sendMessageString(WCW00901SFConst.STB_KK_SEIZO_NO_03, X31CWebConst.DATABEAN_GET_VALUE) != null)
			{
				strSeizoNo = stbBeanArray.getDataBean(0).sendMessageString(WCW00901SFConst.STB_KK_SEIZO_NO_03, X31CWebConst.DATABEAN_GET_VALUE);
				if(!strKeySeizoNo.equals(strSeizoNo))
				{
					search_Error(Error_Mode_2);
					return false;
				}
			}
			// C-CASIDの入力内容が「*」でなく、STBCAS内蔵フラグがたっている場合、エラーとする。
			if(!strKeyCcasId.equals(JWCStrConst.STB_NAIZOCAS_CONST))
			{
				if(stbBeanArray.getDataBean(0).sendMessageString(WCW00901SFConst.STB_NAIZOCAS_CD_03, X31CWebConst.DATABEAN_GET_VALUE) != null)
				{
					if((stbBeanArray.getDataBean(0).sendMessageString(WCW00901SFConst.STB_NAIZOCAS_CD_03, X31CWebConst.DATABEAN_GET_VALUE)).equals(JWCStrConst.CD_DIV_CAS_NAIZO_FLG_NAIZO))
					{
						search_Error(Error_Mode_3);
						return false;
					}
				}
			}
			// 入力したC-CASIDの値と取得したC-CASIDが一致しない場合エラー
			if (!JWCStrConst.STB_NAIZOCAS_CONST.equals(strKeyCcasId) && stbBeanArray.getDataBean(0).sendMessageString(WCW00901SFConst.CCAS_KK_SEIZO_NO_03, X31CWebConst.DATABEAN_GET_VALUE) != null)
			{
				strCcasId = stbBeanArray.getDataBean(0).sendMessageString(WCW00901SFConst.CCAS_KK_SEIZO_NO_03, X31CWebConst.DATABEAN_GET_VALUE);
				if(!strKeyCcasId.equals(strCcasId))
				{
					search_Error(Error_Mode_4);
					return false;
				}
			}
			// 入力したB-CASIDの値と取得したB-CASIDが一致しない場合エラー
			if (!strKeyBcasId.equals("") || stbBeanArray.getDataBean(0).sendMessageString(WCW00901SFConst.BCAS_KK_SEIZO_NO_03, X31CWebConst.DATABEAN_GET_VALUE) != null)
			{
				strBcasId = stbBeanArray.getDataBean(0).sendMessageString(WCW00901SFConst.BCAS_KK_SEIZO_NO_03, X31CWebConst.DATABEAN_GET_VALUE);
				if(!strKeyBcasId.equals(strBcasId))
				{
					search_Error(Error_Mode_5);
					return false;
				}
			}
			// STBステータス取得
			if(stbBeanArray.getDataBean(0).sendMessageString(WCW00901SFConst.STB_STAT_CD_03, X31CWebConst.DATABEAN_GET_VALUE) != null)
			{
				strStbStat = stbBeanArray.getDataBean(0).sendMessageString(WCW00901SFConst.STB_STAT_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
			}
			// C-CASステータス取得
			if(stbBeanArray.getDataBean(0).sendMessageString(WCW00901SFConst.CCAS_CARD_STAT_CD_03, X31CWebConst.DATABEAN_GET_VALUE) != null)
			{
				strCCasStat = stbBeanArray.getDataBean(0).sendMessageString(WCW00901SFConst.CCAS_CARD_STAT_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
			}
		}
		else
		{
			search_Error(Error_Mode_1);
			return false;
		}
		///// メッセージ表示処理 /////
		//String strMsg = "";
		String MESSAGE_ID = "";
		String[] stringArray = new String[0];

		if ((strStbStat.equals(JWCStrConst.CD_DIV_WATCH_KIKI_KANRI_STAT_ZAIKO) || 
				strStbStat.equals(JWCStrConst.CD_DIV_WATCH_KIKI_KANRI_STAT_TEKKYOZUMI)) && 
				strStbStat != null  && !"".equals(strStbStat))
		{
			//if (strCCasStat.equals(JWCStrConst.CD_DIV_CCAS_CARD_KANRI_STAT_ZAIKO) &&
			//	strCCasStat != null  && !"".equals(strCCasStat))
			if ((strCCasStat.equals(JWCStrConst.CD_DIV_CCAS_CARD_KANRI_STAT_ZAIKO) ||
				strCCasStat.equals(JWCStrConst.CD_DIV_CCAS_CARD_KANRI_STAT_MISYOKIKA)) && 
				strCCasStat != null  && !"".equals(strCCasStat))
			{
				MESSAGE_ID = JPCOnlineMessageConstant.EKB0370__I;
				stringArray = new String[1];
				stringArray[0] = "STB直接制御(新規登録:手動)";
				paramBean[0].sendMessageString(WCW00901SFConst.BTN_CTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, JWCStrConst.BTN_CTRL_FLG_TRUE);
			}
			else
			{
				MESSAGE_ID = JPCOnlineMessageConstant.EKB9340_KW;
				stringArray = new String[1];
				//stringArray[0] = "在庫";
				stringArray[0] = "在庫または未初期化";
				paramBean[0].sendMessageString(WCW00901SFConst.BTN_CTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, JWCStrConst.BTN_CTRL_FLG_FALSE);
			}
		}
		else
		{
			MESSAGE_ID = JPCOnlineMessageConstant.EKB9220_KW;
			stringArray = new String[1];
			stringArray[0] = "在庫または撤去済";
			paramBean[0].sendMessageString(WCW00901SFConst.BTN_CTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, JWCStrConst.BTN_CTRL_FLG_FALSE);
		}
			
		
		// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
		X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
		String sss = paramBean[0].sendMessageString(WCW00901SFConst.BTN_CTRL_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		
		// MESSAGE_LISTをクリアする。
		commonBeanArray.clearArray();
		
		// MESSAGE_LISTにメッセージを追加する。
		JCCWebCommon.setMessageInfo( this, MESSAGE_ID, stringArray, "");

		// 強調表示
		JCCWebCommon.setMessageAreaBackColor(this, "1");
		
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_ID_WC00904);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_NAME_WC00904);
		

		return true;
	}

	/**
	 * 設定確認ボタン押下時エラー処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean search_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] = "STB";
		}
		else if(strFlg.equals(Error_Mode_2))
		{
			MESSAGE_ID = JPCOnlineMessageConstant.EKB7230_TW;
			stringArray = new String[1];
			stringArray[0] = "";
		}
		else if(strFlg.equals(Error_Mode_3))
		{
			MESSAGE_ID = JPCOnlineMessageConstant.EKB9200_KW;
			stringArray = new String[1];
			stringArray[0] = "";
		}
		else if(strFlg.equals(Error_Mode_4))
		{
			MESSAGE_ID = JPCOnlineMessageConstant.EKB9370_KW;
			stringArray = new String[1];
			stringArray[0] = "C-CASID";
		}
		else if(strFlg.equals(Error_Mode_5))
		{
			MESSAGE_ID = JPCOnlineMessageConstant.EKB9370_KW;
			stringArray = new String[1];
			stringArray[0] = "B-CASID";
		}
		else if(strFlg.equals(Error_Mode_6))
		{
			MESSAGE_ID = JPCOnlineMessageConstant.EKB9230_KW;
			stringArray = new String[1];
			stringArray[0] = "局";
		}
		else if(strFlg.equals(Error_Mode_7))
		{
			MESSAGE_ID = JPCOnlineMessageConstant.EKB9230_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 fix() throws Exception
	{
		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;
		String  strStbStat = "";
		String  strCCasStat = "";

		///// 共有フォームBean設定（遷移先画面） /////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
		X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
		
		// MESSAGE_LISTをクリアする。
		commonBeanArray.clearArray();
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};

		paramMap = new HashMap<String, Object>();
		inputMap = new HashMap<String, Object>();
		outputMap = new HashMap<String, Object>();
		
		// 宅内情報の初期化
		bean.getDataBeanArray(WCW00901SFConst.TN_ICRN_INFO).clearArray();
		
		// ◇ 業務ロジックの記述
		// ユースケースID格納用マップを生成。
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "WCSV0063");
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "WCSV0063OP");

		// 宅内機器一覧照会上りマッピング定義
		mappingForDB_BP_WCSV0063_SET(paramBean, inputMap, JWCCommonConst.FUNC_CODE_1);

		
		// 宅内機器一覧照会サービス呼出処理
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		} 

		//手動リンク一覧照会下りマッピング定義
		mappingForDB_BP_WCSV0063_GET(paramBean, outputMap);
		
		//宅内情報アレイセット
		X31SDataBeanAccessArray stbBeanArray  = bean.getDataBeanArray(WCW00901SFConst.TN_ICRN_INFO);

			// STBステータス取得
			if(stbBeanArray.getDataBean(0).sendMessageString(WCW00901SFConst.STB_STAT_CD_03, X31CWebConst.DATABEAN_GET_VALUE) != null)
			{
				strStbStat = stbBeanArray.getDataBean(0).sendMessageString(WCW00901SFConst.STB_STAT_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
			}
			// C-CASステータス取得
			if(stbBeanArray.getDataBean(0).sendMessageString(WCW00901SFConst.CCAS_CARD_STAT_CD_03, X31CWebConst.DATABEAN_GET_VALUE) != null)
			{
				strCCasStat = stbBeanArray.getDataBean(0).sendMessageString(WCW00901SFConst.CCAS_CARD_STAT_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
			}
		
		///// メッセージ表示処理 /////
		//String strMsg = "";
		String MESSAGE_ID = "";
		String[] stringArray = new String[0];

		if ((strStbStat.equals(JWCStrConst.CD_DIV_WATCH_KIKI_KANRI_STAT_ZAIKO) || 
				strStbStat.equals(JWCStrConst.CD_DIV_WATCH_KIKI_KANRI_STAT_TEKKYOZUMI)) &&
				strStbStat != null  && !"".equals(strStbStat))
		{
			//if (!strCCasStat.equals(JWCStrConst.CD_DIV_CCAS_CARD_KANRI_STAT_ZAIKO) || 
			//		strCCasStat == null  || "".equals(strCCasStat))
			if ((!strCCasStat.equals(JWCStrConst.CD_DIV_CCAS_CARD_KANRI_STAT_ZAIKO) ||
				!strCCasStat.equals(JWCStrConst.CD_DIV_CCAS_CARD_KANRI_STAT_MISYOKIKA)) && 
				strCCasStat == null  && "".equals(strCCasStat))
			{
				MESSAGE_ID = JPCOnlineMessageConstant.EKB9340_KW;
				stringArray = new String[1];
				stringArray[0] = "在庫または未初期化";
				JCCWebCommon.setMessageInfo( this, MESSAGE_ID, stringArray, "");
				
				paramBean[0].sendMessageString(WCW00901SFConst.BTN_CTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, JWCStrConst.BTN_CTRL_FLG_FALSE);
				return true;
			}
		}
		else
		{
			MESSAGE_ID = JPCOnlineMessageConstant.EKB9220_KW;
			stringArray = new String[1];
			stringArray[0] = "在庫または撤去済";
			JCCWebCommon.setMessageInfo( this, MESSAGE_ID, stringArray, "");
			
			paramBean[0].sendMessageString(WCW00901SFConst.BTN_CTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, JWCStrConst.BTN_CTRL_FLG_FALSE);
			return true;
		}

		//視聴制御オーダ送信上りマッピング定義
		mappingForDB_BP_WCSV0001_SET(paramBean, inputMap, JWCCommonConst.FUNC_CODE_1);

		
		// ◇ 業務ロジックの記述
		// ユースケースID格納用マップを生成。
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "WCSV0001");
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "WCSV0001OP");
		
		///// 視聴制御オーダ送信サービス呼出処理 /////
		msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}

		///// メッセージ表示処理 /////
		MESSAGE_ID = JPCOnlineMessageConstant.EKB6990__I;
		stringArray = new String[1];
		stringArray[0] = "STB直接制御(新規登録:手動)";
		
		
		// MESSAGE_LISTにメッセージを追加する。
		JCCWebCommon.setMessageInfo( this, MESSAGE_ID, stringArray, "");
		
		
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_ID_WC00905);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_NAME_WC00905);
		
		return true;
	}

	/**
	 * 登録確認画面完了ボタン完了処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean fin() throws Exception
	{
		
		///// 共有フォームBean設定（遷移先画面） /////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		///// メッセージ表示処理 /////;
		String MESSAGE_ID = JPCOnlineMessageConstant.EKB6940__I;
		String[] stringArray;
		stringArray = new String[1];
		stringArray[0] = "";

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		//サービスフォームBeanのクリアを行う
		clearBean(bean);

		// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
		X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
		
		// MESSAGE_LISTをクリアする。
		commonBeanArray.clearArray();
		
		// MESSAGE_LISTにメッセージを追加する。
		JCCWebCommon.setMessageInfo( this, MESSAGE_ID, stringArray, "");
		
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_ID_WC00901);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_NAME_WC00901);
		return true;
	}
		
	/**
	 * キャンセルボタン完了処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean cancel() throws Exception
	{
		
		///// 共有フォームBean設定（遷移先画面） /////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
			
		///// メッセージ表示処理 /////
		String MESSAGE_ID = JPCOnlineMessageConstant.EKB6940__I;
		String[] stringArray;
		stringArray = new String[1];
		stringArray[0] = "";

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		//サービスフォームBeanのクリアを行う
		clearBean(bean);
		
		// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
		X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
		
		// MESSAGE_LISTをクリアする。
		commonBeanArray.clearArray();
		
		// MESSAGE_LISTにメッセージを追加する。
		JCCWebCommon.setMessageInfo( this, MESSAGE_ID, stringArray, "");
		
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_ID_WC00901);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_NAME_WC00901);
		return true;
	}

	/**
	 * サービスフォームBean項目と視聴制御オーダサービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   上りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_WCSV0001_SET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> inputMap, String func_code)
	{
		// DataBean-BPマッピングクラス生成
		WCSV0001_WCSV0001OP_01DBMapper mapper = new WCSV0001_WCSV0001OP_01DBMapper();

		mapper.setWCSV000101SC(paramBean, inputMap, func_code);
		mapper.setWCSV000102SC(paramBean, inputMap, func_code);
		mapper.setWCSV000108SC(paramBean, inputMap, func_code);
		mapper.setWCSV000109SC(paramBean, inputMap, func_code);
		mapper.setWCSV000122SC(paramBean, inputMap, func_code);
		return;
	}

	/**
	 * サービスフォームBean項目と視聴制御オーダサービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   上りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_WCSV0063_SET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> inputMap, String func_code)
	{
		// DataBean-BPマッピングクラス生成
		WCSV0063_WCSV0063OPDBMapper mapper = new WCSV0063_WCSV0063OPDBMapper();

		mapper.setWCSV006301SC(paramBean, inputMap, func_code);
		return;
	}
	
	/**
	 * サービスフォームBean項目と手動リンク一覧照会サービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   下りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_WCSV0062_GET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> outputMap)
	{
		// DataBean-BPマッピングクラス生成
		WCSV0062_WCSV0062OPDBMapper mapper = new WCSV0062_WCSV0062OPDBMapper();

		mapper.getWCSV006201SC(paramBean, outputMap);
		mapper.getWCSV006202SC(paramBean, outputMap);
		return;
	}
	
	/**
	 * サービスフォームBean項目と手動リンク一覧照会サービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   下りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_WCSV0063_GET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> outputMap)
	{
		// DataBean-BPマッピングクラス生成
		WCSV0063_WCSV0063OPDBMapper mapper = new WCSV0063_WCSV0063OPDBMapper();

		mapper.getWCSV006301SC(paramBean, outputMap);
		return;
	}

	/**
	 * サービスフォームBean項目をクリアする
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   上りデータマップ
	 * @param  func_code  機能コード
	 */
	public void clearBean(X31SDataBeanAccess paramBean) throws Exception
	{
		String strItemList[] = paramBean.getItemNameList();
		
		for(int i = 0 ; i < strItemList.length; i++)
		{
			if(WCW00901SFConst.KYOKU_INFO.equals(strItemList[i]) || 
				WCW00901SFConst.CTRL_AREA_INFO.equals(strItemList[i]) || 
				WCW00901SFConst.TN_ICRN_INFO.equals(strItemList[i]) || 
				WCW00901SFConst.TIA_GRP_INFO.equals(strItemList[i])
				)
			{
				paramBean.getDataBeanArray(strItemList[i]).clearArray();
			}
			else
			{
				paramBean.sendMessage(strItemList[i], X31CWebConst.DATABEAN_CLEAR);
			}
		}
		
		init();
	}
	
	/**
	 * 戻るボタン完了処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean back() throws Exception
	{
		
		///// 共有フォームBean設定（遷移先画面） /////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		
		// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
		X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);

		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getScreenId(this));
		return true;
	}
}