/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：WCW00951SFLogic
*	ソースファイル名：WCW00951SFLogic.java
*	作成者			：富士通
*	日付			：2011年06月27日
*＜機能概要＞
*	STB直接制御（パスワード解除）のビューロジッククラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/06/27	富士通		新規作成
*	v3.00.00	2012/05/01	FJ)松嶋		【ANK-0315-00-00】宅内対応を実施
*
**********************************************************************/
package eo.web.webview.WCW00951SF;

import java.util.ArrayList;
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_06DBMapper;
import eo.web.webview.mapping.WCSV0017_WCSV0017OPDBMapper;
import eo.web.webview.mapping.WCSV0051_WCSV0051OPDBMapper;
import eo.web.webview.mapping.WCSV0052_WCSV0052OPDBMapper;
import eo.web.webview.mapping.WCSV0058_WCSV0058OPDBMapper;
import eo.web.webview.mapping.WCSV0062_WCSV0062OP_02DBMapper;

/**
 * STB直接制御(パスワード解除)の登録処理を行う。
 *
 * @author 富士通
 */

public class WCW00951SFLogic extends JCCWebBusinessLogic
{

	// 機器提供サービス明細一覧照会定数
	static final String GET_KEI_INFO = "WCSV005201SC";
	static final String GET_STB_INFO = "WCSV005202SC";
	// 機器提供サービス明細一覧照会呼出SIF定数
	static final String GET_KEI_INFO_LIST = "EKK0341A010CBSMsg1List";
	static final String GET_STB_INFO_LIST = "EWCA0010001CBSMsg1List";
	/** 選択項目初期表示 */
	private String SELECT_DEF = "0";
	/**
	 * 一覧照会画面初期表示処理
	 * @author 富士通
	 * @return 
	 * @throws Exception 
	 */
	public boolean init() throws Exception
	{

		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;
		paramMap = new HashMap<String, Object>();
		inputMap = new HashMap<String, Object>();
		outputMap = new HashMap<String, Object>();
		
		///// 共有フォームBean設定/////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		///// メッセージ表示処理 /////
		String MESSAGE_ID = JPCOnlineMessageConstant.EKB6910__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_WC00951);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_NAME_WC00951);

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		// ◇ 業務ロジックの記述
		// ユースケースID格納用マップを生成。
		//paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "WCSV0017");
		//paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "WCSV0017OP");
		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_WCSV0017_GET(paramBean, outputMap);
		// 視聴制御初期表示下りマッピング定義
		mappingForDB_BP_WCSV0062_GET(paramBean, outputMap);

		// 局検索エラー
		X31SDataBeanAccessArray kykBeanArray = bean.getDataBeanArray(WCW00951SFConst.KYOKU_INFO);
		if (kykBeanArray.getCount() == 0 ||kykBeanArray.getDataBean(0) == null)
		{
			search_Error("3");
			return true;
		}

		paramBean[0].sendMessageString(WCW00951SFConst.WCTRL_ORDER_CD, X31CWebConst.DATABEAN_SET_VALUE, JWCStrConst.CD_DIV_WCTRL_ORDER_PASSCLS);
		paramBean[0].sendMessageString(WCW00951SFConst.WCTRL_TYPE, X31CWebConst.DATABEAN_SET_VALUE, JWCStrConst.CD_DIV_WCTRL_TRN_CD_REAL);
		paramBean[0].sendMessageString(WCW00951SFConst.WCTRL_REQ_TRN_CD, X31CWebConst.DATABEAN_SET_VALUE, JWCStrConst.CD_DIV_WCTRL_REQ_TRN_CD_STBCTRL_PASSWORD);
		paramBean[0].sendMessageString(WCW00951SFConst.WCTRL_MODE, X31CWebConst.DATABEAN_SET_VALUE, JWCStrConst.CD_DIV_WCTRL_CHANGE_CODE_TUJYOU);
		paramBean[0].sendMessageString(WCW00951SFConst.CHRG_FLG, X31CWebConst.DATABEAN_SET_VALUE, JWCStrConst.CD_DIV_WCTRL_CHRG_FLG_CHRG_TRGT);
		paramBean[0].sendMessageString(WCW00951SFConst.RE_SETTE_FLG, X31CWebConst.DATABEAN_SET_VALUE, JWCStrConst.CD_DIV_WATCH_RE_SETTE_FLG_ADDCHG);
		paramBean[0].sendMessageString(WCW00951SFConst.CTRL_CMD_HAKKO_ZUMI_FLG, X31CWebConst.DATABEAN_SET_VALUE,JWCStrConst.CD_DIV_WATCH_CMD_HAKKO_FLG_MIHAKKO);
		paramBean[0].sendMessageString(WCW00951SFConst.RSLT_RCV_FLG, X31CWebConst.DATABEAN_SET_VALUE,JWCStrConst.CD_DIV_WATCH_RSLT_RCV_FLG_MIREV);
		paramBean[0].sendMessageString(WCW00951SFConst.DLYD_FLG, X31CWebConst.DATABEAN_SET_VALUE,JWCStrConst.CD_DIV_DLYD_FLG_TAISYOGAI);
		paramBean[0].sendMessageString(WCW00951SFConst.CCAS_SHKKA_CMD_HAK_FLG, X31CWebConst.DATABEAN_SET_VALUE, null);
		paramBean[0].sendMessageString(WCW00951SFConst.KEY_TK_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, JWCStrConst.CD_DIV_TAKNKIKI_SBT_CD_STB);

		return true;
	}
	

	/**
	 * 検索ボタン押下処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean search() 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 strGetSeizoNo = "";
		String strGetStbId = "";
		String strGetServiceNo = "";
		String strStbId = paramBean[0].sendMessageString(WCW00951SFConst.KEY_STB_ID, X31CWebConst.DATABEAN_GET_VALUE);
		String strSeizoNo = paramBean[0].sendMessageString(WCW00951SFConst.KEY_STB_KIKI_SEIZO_NO, X31CWebConst.DATABEAN_GET_VALUE);
		String strServiceNo = paramBean[0].sendMessageString(WCW00951SFConst.KEY_SERVICE_KEIYAKU_NO, X31CWebConst.DATABEAN_GET_VALUE);
		String strCtrlArea = paramBean[0].sendMessageString(WCW00951SFConst.KEY_CTRL_AREA_CD, X31CWebConst.DATABEAN_GET_VALUE);

		paramMap = new HashMap<String, Object>();
		inputMap = new HashMap<String, Object>();
		outputMap = new HashMap<String, Object>();
		
//		X31SDataBeanAccessArray ccasBeanArray = bean.getDataBeanArray(WCW00951SFConst.CCAS_INFO);
//		if (ccasBeanArray.getDataBean(0) != null)
//		{
//			ccasBeanArray.clearArray();
//		}
//		X31SDataBeanAccessArray bcasBeanArray = bean.getDataBeanArray(WCW00951SFConst.BCAS_INFO);
//		if (bcasBeanArray.getDataBean(0) != null)
//		{
//			bcasBeanArray.clearArray();
//		}
//		X31SDataBeanAccessArray stbBeanArray = bean.getDataBeanArray(WCW00951SFConst.SEIZO_INFO);
//		if (stbBeanArray.getDataBean(0) != null)
//		{
//			stbBeanArray.clearArray();
//		}

		X31SDataBeanAccessArray stbBeanArray = bean.getDataBeanArray(WCW00951SFConst.TN_ICRN_INFO);
		if (stbBeanArray.getDataBean(0) != null)
		{
			stbBeanArray.clearArray();
		}
		X31SDataBeanAccessArray serviceBeanArray = bean.getDataBeanArray(WCW00951SFConst.OLD_KEISHA_INFO);
		if (serviceBeanArray.getDataBean(0) != null)
		{
			serviceBeanArray.clearArray();
		}
		X31SDataBeanAccessArray KeiBeanArray = bean.getDataBeanArray(WCW00951SFConst.KEI_INFO);
		if (KeiBeanArray.getDataBean(0) != null)
		{
			KeiBeanArray.clearArray();
		}
		//ラジオボタン初期設定
		bean.sendMessageString(WCW00951SFConst.SET_STB_INFO, X31CWebConst.DATABEAN_SET_VALUE, SELECT_DEF);
		// ◇ 業務ロジックの記述
		
		if(!"".equals(strStbId) || !"".equals(strSeizoNo))
		{
			// ユースケースID格納用マップを生成。
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "WCSV0058");
			paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "WCSV0058OP");
			
			//サービス契約一覧照会上りマッピング定義
			mappingForDB_BP_WCSV0058_SET(paramBean, inputMap, JWCCommonConst.FUNC_CODE_1);
			
			///// サービス契約一覧照会サービス呼出処理 /////
			X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
			
			// エラー処理 
			if(msgResult != null)
			{
				JCCWebCommon.setMessageInfo(this, msgResult);
				return true;
			} 
	
			//サービス契約一覧照会下りマッピング定義
			mappingForDB_BP_WCSV0058_GET(paramBean, outputMap);

			serviceBeanArray = bean.getDataBeanArray(WCW00951SFConst.OLD_KEISHA_INFO);
			if (serviceBeanArray.getDataBean(0) != null && serviceBeanArray.getDataBean(0).sendMessageString(WCW00951SFConst.SYSID_01, X31CWebConst.DATABEAN_GET_VALUE) != null)
			{
				strGetServiceNo = serviceBeanArray.getDataBean(0).sendMessageString(WCW00951SFConst.SYSID_01, X31CWebConst.DATABEAN_GET_VALUE);
			}
			stbBeanArray = bean.getDataBeanArray(WCW00951SFConst.TN_ICRN_INFO);
			if (stbBeanArray.getDataBean(0) != null)
			{
				if (stbBeanArray.getDataBean(0).sendMessageString(WCW00951SFConst.STBID_04, X31CWebConst.DATABEAN_GET_VALUE) != null)
				{
					strGetStbId = stbBeanArray.getDataBean(0).sendMessageString(WCW00951SFConst.STBID_04, X31CWebConst.DATABEAN_GET_VALUE);
				}
				if ( stbBeanArray.getDataBean(0).sendMessageString(WCW00951SFConst.STB_KK_SEIZO_NO_04, X31CWebConst.DATABEAN_GET_VALUE) != null)
				{
					strGetSeizoNo = stbBeanArray.getDataBean(0).sendMessageString(WCW00951SFConst.STB_KK_SEIZO_NO_04, X31CWebConst.DATABEAN_GET_VALUE);
				}
			}

			// 宅内機器情報０件の場合エラー
			if (stbBeanArray.getDataBean(0) == null || serviceBeanArray.getDataBean(0) == null){
				search_Error("1");
				return false;
			}
			// 取得した宅内機器情報と入力内容に差異がある場合エラー
			else if ((strStbId != null && !"".equals(strStbId) && !strStbId.equals(strGetStbId))
			 || (strSeizoNo != null && !"".equals(strSeizoNo) && !strSeizoNo.equals(strGetSeizoNo))
			 || (strServiceNo != null && !"".equals(strServiceNo) && !strServiceNo.equals(strGetServiceNo)))
			{
				search_Error("2");
				return false;
			}
			// 取得した宅内機器情報を選択＿各項目にセット
			else
			{
				paramBean[0].sendMessageString(WCW00951SFConst.SET_STB_ID, X31CWebConst.DATABEAN_SET_VALUE, strGetStbId);
				paramBean[0].sendMessageString(WCW00951SFConst.SET_STB_KIKI_SEIZO_NO, X31CWebConst.DATABEAN_SET_VALUE, strGetSeizoNo);
				paramBean[0].sendMessageString(WCW00951SFConst.SET_SERVICE_KEIYAKU_NO, X31CWebConst.DATABEAN_SET_VALUE, strGetServiceNo);
				if ( stbBeanArray.getDataBean(0).sendMessageString(WCW00951SFConst.BCAS_KK_SEIZO_NO_04, X31CWebConst.DATABEAN_GET_VALUE) != null)
				{
					String strBcasId = stbBeanArray.getDataBean(0).sendMessageString(WCW00951SFConst.BCAS_KK_SEIZO_NO_04, X31CWebConst.DATABEAN_GET_VALUE);
					paramBean[0].sendMessageString(WCW00951SFConst.SET_BCASID, X31CWebConst.DATABEAN_SET_VALUE, strBcasId);
				}
				else
				{
					paramBean[0].sendMessageString(WCW00951SFConst.SET_BCASID, X31CWebConst.DATABEAN_SET_VALUE, "");
				}
				
				if ( stbBeanArray.getDataBean(0).sendMessageString(WCW00951SFConst.CCAS_KK_SEIZO_NO_04, X31CWebConst.DATABEAN_GET_VALUE) != null)
				{
					String strCcasId = stbBeanArray.getDataBean(0).sendMessageString(WCW00951SFConst.CCAS_KK_SEIZO_NO_04, X31CWebConst.DATABEAN_GET_VALUE);
					paramBean[0].sendMessageString(WCW00951SFConst.SET_CCASID, X31CWebConst.DATABEAN_SET_VALUE, strCcasId);
				}
				else
				{
					paramBean[0].sendMessageString(WCW00951SFConst.SET_CCASID, X31CWebConst.DATABEAN_SET_VALUE, "");
				}
			}
			
			paramBean[0].sendMessageString(WCW00951SFConst.SET_STB_INFO, X31CWebConst.DATABEAN_SET_VALUE, "0");

			// 共有フォームBean設定（遷移先画面）
			X31SDataBeanAccess commonBean = super.getCommonInfoBean();
	
			// メッセージ表示処理
			String MESSAGE_ID = "";
			String strStbStat = "";
			String[] stringArray = new String[0];
			
			if(stbBeanArray.getDataBean(0) != null && stbBeanArray.getDataBean(0).sendMessageString(WCW00951SFConst.STB_STAT_CD_04, X31CWebConst.DATABEAN_GET_VALUE) != null)
			{
				strStbStat = stbBeanArray.getDataBean(0).sendMessageString(WCW00951SFConst.STB_STAT_CD_04, X31CWebConst.DATABEAN_GET_VALUE);
			}
			
			// 取得データの「STBステータス」が「011（仮登録）」または「012（本運用）」以外の場合
			if (strStbStat.equals(JWCStrConst.CD_DIV_WATCH_KIKI_KANRI_STAT_KARITO) || strStbStat.equals(JWCStrConst.CD_DIV_WATCH_KIKI_KANRI_STAT_HONUNYO))
			{
				MESSAGE_ID = JPCOnlineMessageConstant.EKB0370__I;
				stringArray = new String[1];
				stringArray[0] = "STB直接制御(パスワード解除)登録";
			}
			else
			{
				MESSAGE_ID = JPCOnlineMessageConstant.EKB7200_KW;
				stringArray = new String[2];
				stringArray[0] = "STB";
				stringArray[1] = "仮登録または本運用";
			}
			
//			paramBean[0].sendMessageString(WCW00951SFConst.SET_STB_ID, X31CWebConst.DATABEAN_SET_VALUE, "0");
//			bcasBeanArray = paramBean[0].getDataBeanArray("ＢＣＡＳ情報");
//			if (bcasBeanArray.getCount() > 0)
//			{
//				X31SDataBeanAccess bcassubbean = bcasBeanArray.getDataBean(0);
//				paramBean[0].sendMessageString(WCW00951SFConst.SET_BCASID, X31CWebConst.DATABEAN_SET_VALUE, bcassubbean.sendMessageString( WCW00951SFConst.CASID_04, X31CWebConst.DATABEAN_GET_VALUE));
//			}
//			else
//			{
//				paramBean[0].sendMessageString(WCW00951SFConst.SET_BCASID, X31CWebConst.DATABEAN_SET_VALUE, "");
//			}
//			
//			ccasBeanArray = paramBean[0].getDataBeanArray("ＣＣＡＳ情報");
//			if (ccasBeanArray.getCount() > 0)
//			{
//				X31SDataBeanAccess ccassubbean = ccasBeanArray.getDataBean(0);
//				paramBean[0].sendMessageString(WCW00951SFConst.SET_CCASID, X31CWebConst.DATABEAN_SET_VALUE, ccassubbean.sendMessageString( WCW00951SFConst.CASID_03, X31CWebConst.DATABEAN_GET_VALUE));
//			}
//			else
//			{
//				paramBean[0].sendMessageString(WCW00951SFConst.SET_CCASID, X31CWebConst.DATABEAN_SET_VALUE, "");
//			}

			// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
			X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
			
			// 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_WC00954);
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_NAME_WC00954);
			
		}
		else
		{
			// ユースケースID格納用マップを生成。
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "WCSV0051");
			paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "WCSV0051OP");
	
			//手動リンク一覧照会上りマッピング定義
			mappingForDB_BP_WCSV0051_SET(paramBean, inputMap, JWCCommonConst.FUNC_CODE_1);

			///// 手動リンク一覧照会サービス呼出処理 /////
			X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
			
			// エラー処理 
			if(msgResult != null)
			{
				JCCWebCommon.setMessageInfo(this, msgResult);
				return true;
			} 
	
			//手動リンク一覧照会下りマッピング定義
			mappingForDB_BP_WCSV0051_GET(paramBean, outputMap);
	
			
			X31SDataBeanAccessArray keiBeanArray = bean.getDataBeanArray(WCW00951SFConst.KEI_INFO);
			if (keiBeanArray.getDataBean(0) != null && keiBeanArray.getDataBean(0).sendMessageString(WCW00951SFConst.SVC_KEI_NO_05, X31CWebConst.DATABEAN_GET_VALUE) != null)
			{
				strGetServiceNo = keiBeanArray.getDataBean(0).sendMessageString(WCW00951SFConst.SVC_KEI_NO_05, X31CWebConst.DATABEAN_GET_VALUE);
			}
			
			if (keiBeanArray.getDataBean(0) == null){
				search_Error("1");
				return false;
			}
			
			if (keiBeanArray.getCount() == 1)
			{

				// ◇ 業務ロジックの記述
				// ユースケースID格納用マップを生成。
				paramMap.clear();
				paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "WCSV0052");
				paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "WCSV0052OP");
				
				//手動リンク一覧照会上りマッピング定義
				mappingForDB_BP_WCSV0052_SET(paramBean, inputMap, JWCCommonConst.FUNC_CODE_2, 0);

				///// 手動リンク一覧照会サービス呼出処理 /////
				msgResult = invokeService(paramMap, inputMap, outputMap);
				
				// エラー処理 
				if(msgResult != null)
				{
					JCCWebCommon.setMessageInfo(this, msgResult);
					return true;
				} 
		
				//手動リンク一覧照会下りマッピング定義
				mappingForDB_BP_WCSV0052_GET(paramBean, outputMap);

//				paramBean[0].sendMessageString(WCW00951SFConst.SET_STB_ID, X31CWebConst.DATABEAN_SET_VALUE, "0");
//				// 選択値より、番号を取得
//				stbBeanArray = paramBean[0].getDataBeanArray("製造番号情報");
//				X31SDataBeanAccess stbsubbean = stbBeanArray.getDataBean(0);
//				paramBean[0].sendMessageString(WCW00951SFConst.SET_STB_KIKI_SEIZO_NO, X31CWebConst.DATABEAN_SET_VALUE, stbsubbean.sendMessageString( WCW00951SFConst.STB_KIKI_SEIZO_NO_02, X31CWebConst.DATABEAN_GET_VALUE));
//				paramBean[0].sendMessageString(WCW00951SFConst.KEY_STB_KIKI_SEIZO_NO, X31CWebConst.DATABEAN_SET_VALUE, stbsubbean.sendMessageString( WCW00951SFConst.STB_KIKI_SEIZO_NO_02, X31CWebConst.DATABEAN_GET_VALUE));
//				paramBean[0].sendMessageString(WCW00951SFConst.KEY_STB_ID, X31CWebConst.DATABEAN_SET_VALUE, stbsubbean.sendMessageString( WCW00951SFConst.STBID_02, X31CWebConst.DATABEAN_GET_VALUE));
//
//				bcasBeanArray = paramBean[0].getDataBeanArray("ＢＣＡＳ情報");
//				if (bcasBeanArray.getCount() > 0)
//				{
//					X31SDataBeanAccess bcassubbean = bcasBeanArray.getDataBean(0);
//					paramBean[0].sendMessageString(WCW00951SFConst.SET_BCASID, X31CWebConst.DATABEAN_SET_VALUE, bcassubbean.sendMessageString( WCW00951SFConst.CASID_04, X31CWebConst.DATABEAN_GET_VALUE));
//				}
//				else
//				{
//					paramBean[0].sendMessageString(WCW00951SFConst.SET_BCASID, X31CWebConst.DATABEAN_SET_VALUE, "");
//				}
//				
//				ccasBeanArray = paramBean[0].getDataBeanArray("ＣＣＡＳ情報");
//				if (ccasBeanArray.getCount() > 0)
//				{
//					X31SDataBeanAccess ccassubbean = ccasBeanArray.getDataBean(0);
//					paramBean[0].sendMessageString(WCW00951SFConst.SET_CCASID, X31CWebConst.DATABEAN_SET_VALUE, ccassubbean.sendMessageString( WCW00951SFConst.CASID_03, X31CWebConst.DATABEAN_GET_VALUE));
//				}
//				else
//				{
//					paramBean[0].sendMessageString(WCW00951SFConst.SET_CCASID, X31CWebConst.DATABEAN_SET_VALUE, "");
//				}
				
				paramBean[0].sendMessageString(WCW00951SFConst.SET_STB_INFO, X31CWebConst.DATABEAN_SET_VALUE, "0");

				// 宅内機器情報取得
				stbBeanArray = bean.getDataBeanArray(WCW00951SFConst.TN_ICRN_INFO);
				if (stbBeanArray.getCount()  == 0 || stbBeanArray.getDataBean(0) == null)
				{
					stbBeanArray.clearArray();
					keiBeanArray.clearArray();
					serviceBeanArray.clearArray();

					search_Error("1");
					return false;
				}
				strGetStbId = stbBeanArray.getDataBean(0).sendMessageString(WCW00951SFConst.STBID_04, X31CWebConst.DATABEAN_GET_VALUE);
				paramBean[0].sendMessageString(WCW00951SFConst.SET_STB_ID, X31CWebConst.DATABEAN_SET_VALUE, strGetStbId);
				strGetSeizoNo = stbBeanArray.getDataBean(0).sendMessageString(WCW00951SFConst.STB_KK_SEIZO_NO_04, X31CWebConst.DATABEAN_GET_VALUE);
				paramBean[0].sendMessageString(WCW00951SFConst.SET_STB_KIKI_SEIZO_NO, X31CWebConst.DATABEAN_SET_VALUE, strGetSeizoNo);
				paramBean[0].sendMessageString(WCW00951SFConst.SET_SERVICE_KEIYAKU_NO, X31CWebConst.DATABEAN_SET_VALUE, strGetServiceNo);
				if ( stbBeanArray.getDataBean(0).sendMessageString(WCW00951SFConst.BCAS_KK_SEIZO_NO_04, X31CWebConst.DATABEAN_GET_VALUE) != null)
				{
					String strBcasId = stbBeanArray.getDataBean(0).sendMessageString(WCW00951SFConst.BCAS_KK_SEIZO_NO_04, X31CWebConst.DATABEAN_GET_VALUE);
					paramBean[0].sendMessageString(WCW00951SFConst.SET_BCASID, X31CWebConst.DATABEAN_SET_VALUE, strBcasId);
				}
				else
				{
					paramBean[0].sendMessageString(WCW00951SFConst.SET_BCASID, X31CWebConst.DATABEAN_SET_VALUE, "");
				}
				
				if ( stbBeanArray.getDataBean(0).sendMessageString(WCW00951SFConst.CCAS_KK_SEIZO_NO_04, X31CWebConst.DATABEAN_GET_VALUE) != null)
				{
					String strCcasId = stbBeanArray.getDataBean(0).sendMessageString(WCW00951SFConst.CCAS_KK_SEIZO_NO_04, X31CWebConst.DATABEAN_GET_VALUE);
					paramBean[0].sendMessageString(WCW00951SFConst.SET_CCASID, X31CWebConst.DATABEAN_SET_VALUE, strCcasId);
				}
				else
				{
					paramBean[0].sendMessageString(WCW00951SFConst.SET_CCASID, X31CWebConst.DATABEAN_SET_VALUE, "");
				}
				
				// 共有フォームBean設定（遷移先画面）
				X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
				// メッセージ表示処理
				String MESSAGE_ID = "";
				String strStbStat = "";
				String[] stringArray = new String[0];
				
				if(stbBeanArray.getDataBean(0) != null && stbBeanArray.getDataBean(0).sendMessageString(WCW00951SFConst.STB_STAT_CD_04, X31CWebConst.DATABEAN_GET_VALUE) != null)
				{
					strStbStat = stbBeanArray.getDataBean(0).sendMessageString(WCW00951SFConst.STB_STAT_CD_04, X31CWebConst.DATABEAN_GET_VALUE);
				}
				
				if (strStbStat.equals(JWCStrConst.CD_DIV_WATCH_KIKI_KANRI_STAT_KARITO) || strStbStat.equals(JWCStrConst.CD_DIV_WATCH_KIKI_KANRI_STAT_HONUNYO))
				{
					MESSAGE_ID = JPCOnlineMessageConstant.EKB0370__I;
					stringArray = new String[1];
					stringArray[0] = "STB直接制御(パスワード解除)登録";
				}
				else
				{
					MESSAGE_ID = JPCOnlineMessageConstant.EKB7200_KW;
					stringArray = new String[2];
					stringArray[0] = "STB";
					stringArray[1] = "仮登録または本運用";
				}
				
				// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
				X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
				
				// 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_WC00954);
				commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_NAME_WC00954);
				
			}
			else
			{
				ArrayList aryKeiSha;
				ArrayList aryStb;
				//ArrayList aryCcas;
				//ArrayList aryBcas;
				aryKeiSha = new ArrayList();
				aryStb = new ArrayList();
				//aryCcas = new ArrayList();
				//aryBcas = new ArrayList();
				
				// ◇ 業務ロジックの記述
				// ユースケースID格納用マップを生成。
				paramMap.clear();
				paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "WCSV0052");
				paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "WCSV0052OP");

				for (int i = 0; i < keiBeanArray.getCount(); i++) {

					//手動リンク一覧照会上りマッピング定義
					mappingForDB_BP_WCSV0052_SET(paramBean, inputMap, JWCCommonConst.FUNC_CODE_2, i);

					///// 手動リンク一覧照会サービス呼出処理 /////
					msgResult = invokeService(paramMap, inputMap, outputMap);
					
					// エラー処理 
					if(msgResult != null)
					{
						JCCWebCommon.setMessageInfo(this, msgResult);
						return true;
					} 
					
					HashMap tmpMap;
					ArrayList tmpArray;
//					
//					tmpMap = (HashMap)outputMap.get("WCSV005201SC");
//					tmpArray = (ArrayList)tmpMap.get("EKK0341A010CBSMsg1List");
//					
//					if(!tmpArray.isEmpty() && !tmpArray.contains(0))
//					{
//						aryKeiSha.add(i, (tmpArray.get(0)));
//					}
//					if(!((ArrayList)((HashMap)outputMap.get("WCSV005202SC")).get("ETN0810B080CBSMsg1List")).isEmpty())
//					{
//						aryStb.add(i, ((ArrayList)((HashMap)outputMap.get("WCSV005202SC")).get("ETN0810B080CBSMsg1List")).get(0));
//					}
//					else
//					{
//						aryStb.add(i, new HashMap());
//					}
//					if(!((ArrayList)((HashMap)outputMap.get("WCSV005203SC")).get("ETN0810B060CBSMsg1List")).isEmpty())
//					{
//						aryCcas.add(i, ((ArrayList)((HashMap)outputMap.get("WCSV005203SC")).get("ETN0810B060CBSMsg1List")).get(0));
//					}
//					else
//					{
//						aryCcas.add(i, new HashMap());
//					}
//					if(!((ArrayList)((HashMap)outputMap.get("WCSV005204SC")).get("ETN0810B070CBSMsg1List")).isEmpty())
//					{
//						aryBcas.add(i, ((ArrayList)((HashMap)outputMap.get("WCSV005204SC")).get("ETN0810B070CBSMsg1List")).get(0));
//					}
//					else
//					{
//						aryBcas.add(i, new HashMap());
//					}
//					
//					// 偶数行、奇数行の設定
//					serviceBeanArray.getDataBean(i).sendMessageString(WCW00951SFConst.ROW_COLOR_01, X31CWebConst.DATABEAN_SET_VALUE, getRowStyle(i+1));
//				}
//				((ArrayList)((HashMap)outputMap.get("WCSV005201SC")).get("EKK0341A010CBSMsg1List")).clear();
//				((ArrayList)((HashMap)outputMap.get("WCSV005202SC")).get("ETN0810B080CBSMsg1List")).clear();
//				((ArrayList)((HashMap)outputMap.get("WCSV005203SC")).get("ETN0810B060CBSMsg1List")).clear();
//				((ArrayList)((HashMap)outputMap.get("WCSV005204SC")).get("ETN0810B070CBSMsg1List")).clear();
//
//				for (int i = 0; i <serviceBeanArray.getCount(); i++) {
//					((ArrayList)((HashMap)outputMap.get("WCSV005201SC")).get("EKK0341A010CBSMsg1List")).add(aryKeiSha.get(i));
//					((ArrayList)((HashMap)outputMap.get("WCSV005202SC")).get("ETN0810B080CBSMsg1List")).add(aryStb.get(i));
//					((ArrayList)((HashMap)outputMap.get("WCSV005203SC")).get("ETN0810B060CBSMsg1List")).add(aryCcas.get(i));
//					((ArrayList)((HashMap)outputMap.get("WCSV005204SC")).get("ETN0810B070CBSMsg1List")).add(aryBcas.get(i));
//					
//				}
					tmpMap = (HashMap)outputMap.get(GET_KEI_INFO);
					tmpArray = (ArrayList)tmpMap.get(GET_KEI_INFO_LIST);
					
					if(!tmpArray.isEmpty() && !tmpArray.contains(0))
					{
						aryKeiSha.add(i, (tmpArray.get(0)));
					}
					if(((HashMap)outputMap.get(GET_STB_INFO)).get(GET_STB_INFO_LIST) == null)
					{
						((HashMap)outputMap.get(GET_STB_INFO)).put(GET_STB_INFO_LIST, new ArrayList());
					}
					if(!((ArrayList)((HashMap)outputMap.get(GET_STB_INFO)).get(GET_STB_INFO_LIST)).isEmpty())
					{
						aryStb.add(i, ((ArrayList)((HashMap)outputMap.get(GET_STB_INFO)).get(GET_STB_INFO_LIST)).get(0));
					}
					else
					{
						aryStb.add(i, new HashMap());
					}

				}
				((ArrayList)((HashMap)outputMap.get(GET_KEI_INFO)).get(GET_KEI_INFO_LIST)).clear();
				((ArrayList)((HashMap)outputMap.get(GET_STB_INFO)).get(GET_STB_INFO_LIST)).clear();
			
				for (int i = 0; i < keiBeanArray.getCount(); i++) {
					((ArrayList)((HashMap)outputMap.get(GET_KEI_INFO)).get(GET_KEI_INFO_LIST)).add(aryKeiSha.get(i));
					((ArrayList)((HashMap)outputMap.get(GET_STB_INFO)).get(GET_STB_INFO_LIST)).add(aryStb.get(i));
				}
				
				//手動リンク一覧照会下りマッピング定義
				mappingForDB_BP_WCSV0052_GET(paramBean, outputMap);
				
				
				// 偶数行、奇数行の設定
				serviceBeanArray = paramBean[0].getDataBeanArray(WCW00951SFConst.OLD_KEISHA_INFO);
				for (int i = 0; i < serviceBeanArray.getCount(); i++) {
					serviceBeanArray.getDataBean(i).sendMessageString(WCW00951SFConst.ROW_COLOR_01, X31CWebConst.DATABEAN_SET_VALUE, getRowStyle(i+1));
				}
				
				///// 共有フォームBean設定（遷移先画面） /////
				X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
				///// メッセージ表示処理 /////
				String MESSAGE_ID = JPCOnlineMessageConstant.EKB7110__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, "");
			}

		}

		return true;
	}

	/**
	 * 検索ボタン押下時エラー処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean search_Error(String strFlg) throws Exception
	{
		String MESSAGE_ID = "";
		String[] stringArray = new String[0];
		
		if("1".equals(strFlg))
		{
			//MESSAGE_ID = "EKB0300-KW";
			MESSAGE_ID = JPCOnlineMessageConstant.EKB0300_KW;
			stringArray = new String[2];
			//stringArray[0] = "入力コード";
			//stringArray[1] = "機器";
			stringArray[0] = "宅内機器";
			stringArray[1] = "設定値";
		}
		else if("2".equals(strFlg))
		{
			//MESSAGE_ID = "EKB1040-JW";
			MESSAGE_ID = JPCOnlineMessageConstant.EKB1040_JW;
			stringArray = new String[3];
			stringArray[0] = "指定されたSTBと製造番号";
			stringArray[1] = "同一STBのものと異なる";
			stringArray[2] ="処理";
			
		}
		else if("3".equals(strFlg))
		{
			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 kakunin() throws Exception
	{

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};

		// 選択値と同値を持つ一覧の格納位置から情報を取得し、詳細画面へ受け渡す制御項目の設定を行う。
		//String sel = paramBean[0].sendMessageString("製造番号情報/0/選択", X31CWebConst.DATABEAN_GET_VALUE);
		//paramBean[0].sendMessageString(WCW00951SFConst.SET_STB_ID, X31CWebConst.DATABEAN_SET_VALUE, sel);
		String sel = paramBean[0].sendMessageString(WCW00951SFConst.SET_STB_INFO, X31CWebConst.DATABEAN_GET_VALUE);
		
//		// 選択値より、番号を取得
//		X31SDataBeanAccessArray stbBeanArray = paramBean[0].getDataBeanArray("製造番号情報");
//		X31SDataBeanAccess stbsubbean = stbBeanArray.getDataBean(Integer.parseInt(sel));
//		paramBean[0].sendMessageString(WCW00951SFConst.SET_STB_KIKI_SEIZO_NO, X31CWebConst.DATABEAN_SET_VALUE, stbsubbean.sendMessageString( WCW00951SFConst.STB_KIKI_SEIZO_NO_02, X31CWebConst.DATABEAN_GET_VALUE));
//		paramBean[0].sendMessageString(WCW00951SFConst.KEY_STB_KIKI_SEIZO_NO, X31CWebConst.DATABEAN_SET_VALUE, stbsubbean.sendMessageString( WCW00951SFConst.STB_KIKI_SEIZO_NO_02, X31CWebConst.DATABEAN_GET_VALUE));
//		paramBean[0].sendMessageString(WCW00951SFConst.KEY_STB_ID, X31CWebConst.DATABEAN_SET_VALUE, stbsubbean.sendMessageString( WCW00951SFConst.STBID_02, X31CWebConst.DATABEAN_GET_VALUE));
//		
//		X31SDataBeanAccessArray bcasBeanArray = paramBean[0].getDataBeanArray("ＢＣＡＳ情報");
//		if (bcasBeanArray.getCount() > Integer.parseInt(sel))
//		{
//			X31SDataBeanAccess bcassubbean = bcasBeanArray.getDataBean(Integer.parseInt(sel));
//			paramBean[0].sendMessageString(WCW00951SFConst.SET_BCASID, X31CWebConst.DATABEAN_SET_VALUE, bcassubbean.sendMessageString( WCW00951SFConst.CASID_04, X31CWebConst.DATABEAN_GET_VALUE));
//		}
//		else
//		{
//			paramBean[0].sendMessageString(WCW00951SFConst.SET_BCASID, X31CWebConst.DATABEAN_SET_VALUE, "");
//		}
//		
//		X31SDataBeanAccessArray ccasBeanArray = paramBean[0].getDataBeanArray("ＣＣＡＳ情報");
//		if (ccasBeanArray.getCount() > Integer.parseInt(sel))
//		{
//			X31SDataBeanAccess ccassubbean = ccasBeanArray.getDataBean(Integer.parseInt(sel));
//			paramBean[0].sendMessageString(WCW00951SFConst.SET_CCASID, X31CWebConst.DATABEAN_SET_VALUE, ccassubbean.sendMessageString( WCW00951SFConst.CASID_03, X31CWebConst.DATABEAN_GET_VALUE));
//		}
//		else
//		{
//			paramBean[0].sendMessageString(WCW00951SFConst.SET_CCASID, X31CWebConst.DATABEAN_SET_VALUE, "");
//		}
		X31SDataBeanAccessArray stbBeanArray = paramBean[0].getDataBeanArray(WCW00951SFConst.TN_ICRN_INFO);
		X31SDataBeanAccess stbsubbean = stbBeanArray.getDataBean(Integer.parseInt(sel));
		if("".equals(stbsubbean.sendMessageString( WCW00951SFConst.STB_KK_SEIZO_NO_04, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			search_Error("1");
			return false;
		}
		paramBean[0].sendMessageString(WCW00951SFConst.SET_STB_KIKI_SEIZO_NO, X31CWebConst.DATABEAN_SET_VALUE, stbsubbean.sendMessageString( WCW00951SFConst.STB_KK_SEIZO_NO_04, X31CWebConst.DATABEAN_GET_VALUE));
		paramBean[0].sendMessageString(WCW00951SFConst.SET_STB_ID, X31CWebConst.DATABEAN_SET_VALUE, stbsubbean.sendMessageString( WCW00951SFConst.STBID_04, X31CWebConst.DATABEAN_GET_VALUE));
		
		if (stbsubbean.sendMessageString( WCW00951SFConst.BCAS_KK_SEIZO_NO_04, X31CWebConst.DATABEAN_GET_VALUE) != null)
		{
			paramBean[0].sendMessageString(WCW00951SFConst.SET_BCASID, X31CWebConst.DATABEAN_SET_VALUE, stbsubbean.sendMessageString( WCW00951SFConst.BCAS_KK_SEIZO_NO_04, X31CWebConst.DATABEAN_GET_VALUE));
		}
		else
		{
			paramBean[0].sendMessageString(WCW00951SFConst.SET_BCASID, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		
		if (stbsubbean.sendMessageString( WCW00951SFConst.CCAS_KK_SEIZO_NO_04, X31CWebConst.DATABEAN_GET_VALUE) != null)
		{
			paramBean[0].sendMessageString(WCW00951SFConst.SET_CCASID, X31CWebConst.DATABEAN_SET_VALUE, stbsubbean.sendMessageString( WCW00951SFConst.CCAS_KK_SEIZO_NO_04, X31CWebConst.DATABEAN_GET_VALUE));
		}
		else
		{
			paramBean[0].sendMessageString(WCW00951SFConst.SET_CCASID, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		
		X31SDataBeanAccessArray serviceBeanArray = paramBean[0].getDataBeanArray(WCW00951SFConst.OLD_KEISHA_INFO);
		if (serviceBeanArray.getCount() > Integer.parseInt(sel))
		{
			X31SDataBeanAccess servicesubbean = serviceBeanArray.getDataBean(Integer.parseInt(sel));
			paramBean[0].sendMessageString(WCW00951SFConst.SET_SERVICE_KEIYAKU_NO, X31CWebConst.DATABEAN_SET_VALUE, servicesubbean.sendMessageString( WCW00951SFConst.SYSID_01, X31CWebConst.DATABEAN_GET_VALUE));
		}
		else
		{
			paramBean[0].sendMessageString(WCW00951SFConst.SET_SERVICE_KEIYAKU_NO, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		
		///// 共有フォームBean設定（遷移先画面） /////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		///// メッセージ表示処理 /////
		//String strMsg = "";
		String MESSAGE_ID = "";
		String strStbStat = "";
		String[] stringArray = new String[0];

		if(stbsubbean != null && stbsubbean.sendMessageString(WCW00951SFConst.STB_STAT_CD_04, X31CWebConst.DATABEAN_GET_VALUE) != null)
		{
			strStbStat = stbsubbean.sendMessageString(WCW00951SFConst.STB_STAT_CD_04, X31CWebConst.DATABEAN_GET_VALUE);
		}
		
		if (strStbStat.equals(JWCStrConst.CD_DIV_WATCH_KIKI_KANRI_STAT_KARITO) || strStbStat.equals(JWCStrConst.CD_DIV_WATCH_KIKI_KANRI_STAT_HONUNYO))
		{
			MESSAGE_ID = JPCOnlineMessageConstant.EKB0370__I;
			stringArray = new String[1];
			stringArray[0] = "STB直接制御(パスワード解除)登録";
		}
		else
		{
			MESSAGE_ID = JPCOnlineMessageConstant.EKB7200_KW;
			stringArray = new String[2];
			stringArray[0] = "STB";
			stringArray[1] = "仮登録または本運用";
		}
		
		
		// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
		X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
		
		// 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_WC00954);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_NAME_WC00954);
		
		return true;
	}
	
	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();

		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};

		paramMap = new HashMap<String, Object>();
		inputMap = new HashMap<String, Object>();
		outputMap = new HashMap<String, Object>();

		//視聴制御オーダ送信上りマッピング定義
		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");
		
		///// 視聴制御オーダ送信サービス呼出処理 /////
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}

		//視聴制御オーダ送信下りマッピング定義
		//mappingForDB_BP_WCSV0001_GET(paramBean, outputMap);

		///// 共有フォームBean設定（遷移先画面） /////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		///// メッセージ表示処理 /////
		String MESSAGE_ID = JPCOnlineMessageConstant.EKB6990__I;
		String[] stringArray;
		stringArray = new String[1];
		stringArray[0] = "STB直接制御(パスワード解除)登録";
		
		// 共有フォーム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_WC00955);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_NAME_WC00955);
		
		return true;
	}

	/**
	 * 登録確認画面完了ボタン完了処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean fin() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		clearBean(bean);
		
		///// 共有フォームBean設定（遷移先画面） /////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		///// メッセージ表示処理 /////
		String MESSAGE_ID = JPCOnlineMessageConstant.EKB6910__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_WC00951);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_NAME_WC00951);
		return true;
	}
		
	/**
	 * キャンセルボタン完了処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean cancel() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		clearBean(bean);
		
		///// 共有フォームBean設定（遷移先画面） /////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		///// メッセージ表示処理 /////
		String MESSAGE_ID = JPCOnlineMessageConstant.EKB6910__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_WC00951);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_NAME_WC00951);
		return true;
	}

	/**
	 * サービスフォームBean項目とパスワード解除一覧照会サービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   上りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_WCSV0051_SET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> inputMap, String func_code)
	{
		// DataBean-BPマッピングクラス生成
		WCSV0051_WCSV0051OPDBMapper mapper = new WCSV0051_WCSV0051OPDBMapper();
		mapper.setWCSV005101SC(paramBean, inputMap, func_code);

		return;
	}
	
	/**
	 * サービスフォームBean項目とパスワード解除一覧照会サービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   下りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_WCSV0051_GET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> outputMap)
	{
		// DataBean-BPマッピングクラス生成
		WCSV0051_WCSV0051OPDBMapper mapper = new WCSV0051_WCSV0051OPDBMapper();

		mapper.getWCSV005101SC(paramBean, outputMap);
		return;
	}
	/**
	 * サービスフォームBean項目と機器提供サービス明細一覧照会サービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   上りデータマップ
	 * @param  func_code  機能コード
	 * @param  intCnt     格納変数
	 */
	private void mappingForDB_BP_WCSV0052_SET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> inputMap, String func_code, int intCNt)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		String strKeyKkktSvcKeiNo = paramBean[0].getDataBeanArray(WCW00951SFConst.KEI_INFO).getDataBean(intCNt).sendMessageString(WCW00951SFConst.KKTK_SVC_KEI_NO_05, X31CWebConst.DATABEAN_GET_VALUE);
		// ＫＥＹ＿サービス機器契約番号 → と機器提供サービス明細一覧照会.ＫＥＹ＿サービス機器契約番号
		parentMap.put("key_kktk_svc_kei_no", strKeyKkktSvcKeiNo);

		inputMap.put("WCSV005201SC", parentMap);

		parentMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code",  JWCCommonConst.FUNC_CODE_1);
		
		// ＫＥＹ＿宅内機器種別コード → 宅内機器一覧照会マップ.ＫＥＹ＿宅内機器種別コード
		parentMap.put("key_tk_sbt_cd", paramBean[0].sendMessageString("ＫＥＹ＿宅内機器種別コード", X31CWebConst.DATABEAN_GET_VALUE));

		inputMap.put("WCSV005202SC", parentMap);

		return;
	}
	
	/**
	 * サービスフォームBean項目と機器提供サービス明細一覧照会サービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   下りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_WCSV0052_GET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> outputMap)
	{
		// DataBean-BPマッピングクラス生成
		WCSV0052_WCSV0052OPDBMapper mapper = new WCSV0052_WCSV0052OPDBMapper();

		mapper.getWCSV005201SC(paramBean, outputMap);
		mapper.getWCSV005202SC(paramBean, outputMap);
		//mapper.getWCSV005203SC(paramBean, outputMap);
		//mapper.getWCSV005204SC(paramBean, outputMap);
		return;
	}
	
	/**
	 * サービスフォームBean項目とパスワード解除初期表示サービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   下りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_WCSV0017_GET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> outputMap)
	{
		// DataBean-BPマッピングクラス生成
		WCSV0017_WCSV0017OPDBMapper mapper = new WCSV0017_WCSV0017OPDBMapper();

		mapper.getWCSV001701SC(paramBean, outputMap);
		return;
	}

	/**
	 * サービスフォームBean項目とサービス契約一覧照会サービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   上りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_WCSV0058_SET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> inputMap, String func_code)
	{
		// DataBean-BPマッピングクラス生成
		WCSV0058_WCSV0058OPDBMapper mapper = new WCSV0058_WCSV0058OPDBMapper();
		mapper.setWCSV005801SC(paramBean, inputMap, func_code);

		return;
	}
	
	/**
	 * サービスフォームBean項目とサービス契約一覧照会サービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   下りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_WCSV0058_GET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> outputMap)
	{
		// DataBean-BPマッピングクラス生成
		WCSV0058_WCSV0058OPDBMapper mapper = new WCSV0058_WCSV0058OPDBMapper();

		mapper.getWCSV005801SC(paramBean, outputMap);
		mapper.getWCSV005802SC(paramBean, outputMap);
		mapper.getWCSV005803SC(paramBean, outputMap);
		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_WCSV0062OP_02DBMapper mapper = new WCSV0062_WCSV0062OP_02DBMapper();

		mapper.getWCSV006201SC(paramBean, outputMap);
		mapper.getWCSV006202SC(paramBean, outputMap);
		return;
	}
	/**
	 * サービスフォーム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_06DBMapper mapper = new WCSV0001_WCSV0001OP_06DBMapper();

		mapper.setWCSV000101SC(paramBean, inputMap, func_code);
		mapper.setWCSV000102SC(paramBean, inputMap, func_code);
		mapper.setWCSV000108SC(paramBean, inputMap, func_code);
		mapper.setWCSV000109SC(paramBean, inputMap, func_code);
		return;
	}
	
	public void clearBean(X31SDataBeanAccess paramBean) throws Exception
	{
		String strItemList[] = paramBean.getItemNameList();
		
		for(int i = 0 ; i < strItemList.length; i++)
		{
//			if(WCW00951SFConst.BCAS_INFO.equals(strItemList[i]) || 
//				WCW00951SFConst.CCAS_INFO.equals(strItemList[i]) || 
//				WCW00951SFConst.SEIZO_INFO.equals(strItemList[i]) || 
//				WCW00951SFConst.KYOKU_INFO.equals(strItemList[i]) || 
//				WCW00951SFConst.CTRL_AREA_INFO.equals(strItemList[i]) || 
//				WCW00951SFConst.OLD_KEISHA_INFO.equals(strItemList[i])) 
//			{
			if(WCW00951SFConst.TN_ICRN_INFO.equals(strItemList[i]) || 
				WCW00951SFConst.KEI_INFO.equals(strItemList[i]) || 
				WCW00951SFConst.KYOKU_INFO.equals(strItemList[i]) || 
				WCW00951SFConst.CTRL_AREA_INFO.equals(strItemList[i]) || 
				WCW00951SFConst.OLD_KEISHA_INFO.equals(strItemList[i])) 
		{
				paramBean.getDataBeanArray(strItemList[i]).clearArray();
			}
			else
			{
				paramBean.sendMessage(strItemList[i], X31CWebConst.DATABEAN_CLEAR);
			}
		}
		
		init();
	}
	
	/**
	 * 行スタイル取得処理です。
	 * 指定した行番号の場合の、スタイルを取得します。
	 * @param rowNo 行番号
	 * @return 行スタイル
	 */
	private String getRowStyle(int rowNo)
	{
		if (rowNo % 2 == 0)
		{
			return JWCStrConst.ROW_STYLE_EVEN;
		}
		else
		{
			return JWCStrConst.ROW_STYLE_ODD;
		}
	}
	/**
	 * 戻るボタン完了処理
	 * @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;
	}
}