/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：WCW01911SFLogic
*	ソースファイル名：WCW01911SFLogic.java
*	作成者			：富士通
*	日付			：2011年08月17日
*＜機能概要＞
*	グループID設定(お客さまID指定)のビューロジッククラスです。
*＜修正履歴＞
*	バージョン	修正日5		修正者		修正内容
*	v1.00.00	2011/08/17	富士通		新規作成
*	v3.00.00	2012/05/01	FJ)松嶋		【ANK-0315-00-00】宅内対応を実施
*										【ANK-0280-00-00】制御タイプ対応を実施
*	v10.00.00	2014/10/24	FJ)大山		OM-2014-0003079
*
**********************************************************************/
package eo.web.webview.WCW01911SF;

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.JPCModelConstant;
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.WCW01913SF.WCW01913SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JWCScreenConst;
import eo.web.webview.mapping.WCSV0051_WCSV0051OP_02DBMapper;
import eo.web.webview.mapping.WCSV0052_WCSV0052OP_02DBMapper;
import eo.web.webview.mapping.WCSV0062_WCSV0062OPDBMapper;


/**
 *グループID設定(お客さまID指定)を行う。
 *
 * @author 富士通
 */

public class WCW01911SFLogic extends JCCWebBusinessLogic
{
	// 機器提供サービス明細一覧照会定数
	private final String GET_KEI_INFO = "WCSV005201SC";
	private final String GET_STB_INFO = "WCSV005202SC";
	// 機器提供サービス明細一覧照会呼出SIF定数
	private final String GET_KEI_INFO_LIST = "EKK0341A010CBSMsg1List";
	private final String GET_STB_INFO_LIST = "EWCA0010001CBSMsg1List";

	private static String ERR_MESSAGE_STBSTAT = "STBステータスが仮登録または本運用ではありません。";
	private static String ERR_MESSAGE_CAS_UNKNOWN = "C-CAS又はB-CAS情報が存在しません。";

	// エラーメッセージ表示用定数定義
	private String Error_Mode_1 = "1";
	private String Error_Mode_2 = "2";
	private String Error_Mode_3 = "3";

	/*
	 * フラグ
	 */
    // フラグOFF
    private static final String FLG_OFF = "0";
    // フラグON
    private static final String FLG_ON = "1";
    
	/**
	 * グループID設定(お客さまID指定)画面初期表示処理
	 * @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] = "お客さまID";

		// 共有フォーム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_WC01911);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_NAME_WC01911);

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		// ◇ 業務ロジックの記述
		// ユースケース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(WCW01911SFConst.KYOKU_INFO);
		if (kykBeanArray.getCount() == 0 ||kykBeanArray.getDataBean(0) == null)
		{
			Search_Error(Error_Mode_2);
			return true;
		}
		// 制御エリア検索エラー
		X31SDataBeanAccessArray ctrlBeanArray = bean.getDataBeanArray(WCW01911SFConst.CTRL_AREA_INFO);
		if (ctrlBeanArray.getCount() == 0 ||ctrlBeanArray.getDataBean(0) == null)
		{
			Search_Error(Error_Mode_3);
			return true;
		}

		paramBean[0].sendMessageString(WCW01911SFConst.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;

		paramMap = new HashMap<String, Object>();
		inputMap = new HashMap<String, Object>();
		outputMap = new HashMap<String, Object>();

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess Bean = super.getServiceFormBean();

		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {Bean};
		
		X31SDataBeanAccessArray seizoBeanArray = Bean.getDataBeanArray(WCW01911SFConst.SEIZO_INFO);
		if (seizoBeanArray.getDataBean(0) != null)
		{
			seizoBeanArray.clearArray();
		}
//		X31SDataBeanAccessArray stbBeanArray = Bean.getDataBeanArray(WCW01911SFConst.STB_INFO);
//		if (stbBeanArray.getDataBean(0) != null)
//		{
//			stbBeanArray.clearArray();
//		}
		X31SDataBeanAccessArray sysidBeanArray = Bean.getDataBeanArray(WCW01911SFConst.SYSID_INFO);
		if (sysidBeanArray.getDataBean(0) != null)
		{
			sysidBeanArray.clearArray();
		}
//		X31SDataBeanAccessArray ccasBeanArray = Bean.getDataBeanArray(WCW01911SFConst.CCAS_INFO);
//		if (ccasBeanArray.getDataBean(0) != null)
//		{
//			ccasBeanArray.clearArray();
//		}
//		X31SDataBeanAccessArray bcasBeanArray = Bean.getDataBeanArray(WCW01911SFConst.BCAS_INFO);
//		if (bcasBeanArray.getDataBean(0) != null)
//		{
//			bcasBeanArray.clearArray();
//		}		
		X31SDataBeanAccessArray stbBeanArray = Bean.getDataBeanArray(WCW01911SFConst.TN_ICRN_INFO);
		if (stbBeanArray.getDataBean(0) != null)
		{
			stbBeanArray.clearArray();
		}
		
		// ◇ 業務ロジックの記述
		// ユースケースID格納用マップを生成。
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "WCSV0051");
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "WCSV0051OP");
		
		mappingForDB_BP_WCSV0051_SET(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		
		///// サービス呼出処理 /////
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);

		///// エラー処理 /////
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		///// サービス処理結果の取得 /////
		mappingForDB_BP_WCSV0051_GET(paramBean, outputMap);

		X31SDataBeanAccessArray dataList = Bean.getDataBeanArray(WCW01911SFConst.SEIZO_INFO);
		if (dataList.getDataBean(0) == null){
			Search_Error(Error_Mode_1);
			return false;
		}
		
		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 < dataList.getCount(); i++)
		{
			String kktk_svc_kei_no = dataList.getDataBean(i).sendMessageString(WCW01911SFConst.KKTK_SVC_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE);
			String gene_add_dtm = dataList.getDataBean(i).sendMessageString(WCW01911SFConst.GENE_ADD_DTM_01, X31CWebConst.DATABEAN_GET_VALUE);
			paramBean[0].sendMessageString(WCW01911SFConst.WORK_KKTK_SVC_KEI_NO , X31CWebConst.DATABEAN_SET_VALUE, kktk_svc_kei_no);
			paramBean[0].sendMessageString(WCW01911SFConst.WORK_GENE_ADD_DTM, X31CWebConst.DATABEAN_SET_VALUE, gene_add_dtm);
			
			mappingForDB_BP_WCSV0052_SET(paramBean, inputMap, JPCModelConstant.FUNC_CD_1, kktk_svc_kei_no, gene_add_dtm);
			
			///// サービス呼出処理/////
			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());
//			}
			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)));
			}
			else
			{
				aryKeiSha.add(i, new HashMap());
			}
			tmpMap = (HashMap)outputMap.get(GET_STB_INFO);
			if(tmpMap.get(GET_STB_INFO_LIST) == null)
			{
				tmpMap.put(GET_STB_INFO_LIST, new ArrayList());
			}
			tmpArray = (ArrayList)tmpMap.get(GET_STB_INFO_LIST);
			if(!tmpArray.isEmpty() && !tmpArray.contains(0))
			{
				aryStb.add(i, tmpArray.get(0));
			}
			else
			{
				aryStb.add(i, new HashMap());
			}
		}
		
//		((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 <dataList.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));
//			
//		}
		((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 <dataList.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);

		// 製造番号が空白（宅内機器データが存在しない）の場合は、選択を未チェック状態とする。
		// 配列アクセサを取得
		//X31SDataBeanAccessArray stb_info = Bean.getDataBeanArray(WCW01911SFConst.STB_INFO);
		X31SDataBeanAccessArray stb_info = Bean.getDataBeanArray(WCW01911SFConst.TN_ICRN_INFO);

		//dataList = Bean.getDataBeanArray(WCW01911SFConst.SEIZO_INFO);
		//for(int i = 0 ; i < dataList.getCount(); i++)

		//エラー件数取得
		int intCntError = 0;
		
		for(int i = 0 ; i < stb_info.getCount(); i++)
		{
			String strKikiSeizoNo = "";
			String strCCASId = "";
			String strBCasId = "";
			String strCasNaizoFlg = "";
			String strStbStatCd = "";
			String strErrMsg = "";
			
			//strKikiSeizoNo = stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.KIKI_SEIZO_NO_02, X31CWebConst.DATABEAN_GET_VALUE);
			strKikiSeizoNo = stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.STB_KK_SEIZO_NO_03, X31CWebConst.DATABEAN_GET_VALUE);
			strCCASId = stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.CCAS_KK_SEIZO_NO_03, X31CWebConst.DATABEAN_GET_VALUE);
			strBCasId = stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.BCAS_KK_SEIZO_NO_03, X31CWebConst.DATABEAN_GET_VALUE);
			strCasNaizoFlg = stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.STB_NAIZOCAS_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
			strStbStatCd = stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.STB_STAT_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
			strErrMsg = stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.ERR_NAIYO_03, X31CWebConst.DATABEAN_GET_VALUE);
			
			if ("".equals(strKikiSeizoNo))
			{
//				stb_info.getDataBean(i).sendMessageBoolean(WCW01911SFConst.SELECT_NO_02, X31CWebConst.DATABEAN_SET_VALUE, false);
				stb_info.getDataBean(i).sendMessageBoolean(WCW01911SFConst.SELECT_NO_03, X31CWebConst.DATABEAN_SET_VALUE, false);
				intCntError++;
			}
			
			if("".equals(strErrMsg) && "".equals(strCCASId) && "".equals(strBCasId) && strCasNaizoFlg.equals(JWCStrConst.CD_DIV_CAS_NAIZO_FLG_HINAIZO))
			{
				stb_info.getDataBean(i).sendMessageBoolean(WCW01911SFConst.SELECT_NO_03, X31CWebConst.DATABEAN_SET_VALUE, false);
				stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.ERR_NAIYO_03, X31CWebConst.DATABEAN_SET_VALUE, ERR_MESSAGE_CAS_UNKNOWN);
				intCntError++;
			}else if("".equals(strErrMsg) &&!strStbStatCd.equals(JWCStrConst.CD_DIV_WATCH_KIKI_KANRI_STAT_KARITO) && !strStbStatCd.equals(JWCStrConst.CD_DIV_WATCH_KIKI_KANRI_STAT_HONUNYO))
			{
				stb_info.getDataBean(i).sendMessageBoolean(WCW01911SFConst.SELECT_NO_03, X31CWebConst.DATABEAN_SET_VALUE, false);
				stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.ERR_NAIYO_03, X31CWebConst.DATABEAN_SET_VALUE, ERR_MESSAGE_STBSTAT);
				intCntError++;
			}

			// 偶数行、奇数行の設定
			//stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.ROW_COLOR_02, X31CWebConst.DATABEAN_SET_VALUE, getRowStyle(i+1));
			stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.ROW_COLOR_03, X31CWebConst.DATABEAN_SET_VALUE, getRowStyle(i+1));
		}

		///// 遷移先画面の設定/////
		///// 共有フォームBean設定/////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		String MESSAGE_ID = "";
		String[] stringArray;
		stringArray = new String[1];
		stringArray[0] = "";
		
		if(stb_info.getCount() == intCntError)
		{
			Bean.sendMessageString(WCW01911SFConst.CREATE_BTN_DSP_FLG , X31CWebConst.DATABEAN_SET_VALUE, FLG_OFF);
			///// メッセージ表示処理 /////
			MESSAGE_ID = JPCOnlineMessageConstant.EKB7290_KW;
		}
		else
		{
			Bean.sendMessageString(WCW01911SFConst.CREATE_BTN_DSP_FLG , X31CWebConst.DATABEAN_SET_VALUE, FLG_ON);
			///// メッセージ表示処理 /////
			MESSAGE_ID = JPCOnlineMessageConstant.EKB7100__I;
		}
		
		
		// 共有フォーム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_WC01911);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_NAME_WC01911);

		return true;
	}
	
	/**
	 * 新規登録ボタン処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean create() throws Exception 
	{
		
		setSceenInfo();
		
		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_WCSV0051OP_02DBMapper mapper = new WCSV0051_WCSV0051OP_02DBMapper();
		
		mapper.setWCSV005101SC(paramBean, inputMap, func_code);
		return;
	}

	/**
	 * サービスフォームBean項目とサービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  outputMap  下りデータマップ
	 */
	private void mappingForDB_BP_WCSV0051_GET(X31SDataBeanAccess[] paramBean,  HashMap<String, Object> outputMap)
	{
		// DataBean-BPマッピングクラス生成
		WCSV0051_WCSV0051OP_02DBMapper mapper = new WCSV0051_WCSV0051OP_02DBMapper();
		
		mapper.getWCSV005101SC(paramBean, outputMap);
		return;
	}

	/**
	 * サービスフォームBean項目とサービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   上りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_WCSV0052_SET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> inputMap, String func_code, String strKeyKkktSvcKeiNo, String strKeyGeneAddDtm)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// ＫＥＹ＿サービス機器契約番号 → 機器提供サービス明細一覧照会.ＫＥＹ＿サービス機器契約番号
		parentMap.put("key_kktk_svc_kei_no", strKeyKkktSvcKeiNo);
		
		// ＫＥＹ＿世代登録年月日時分秒 → 機器提供サービス明細一覧照会.ＫＥＹ＿世代登録年月日時分秒
		parentMap.put("key_gene_add_dtm", strKeyGeneAddDtm);

		inputMap.put("WCSV005201SC", parentMap);

		// DataBean-BPマッピングクラス生成
		WCSV0052_WCSV0052OP_02DBMapper mapper = new WCSV0052_WCSV0052OP_02DBMapper();
		
		mapper.setWCSV005202SC(paramBean, inputMap, func_code);
		
		return;
	}

	/**
	 * サービスフォームBean項目とサービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  outputMap  下りデータマップ
	 */
	private void mappingForDB_BP_WCSV0052_GET(X31SDataBeanAccess[] paramBean,  HashMap<String, Object> outputMap)
	{
		// DataBean-BPマッピングクラス生成
		WCSV0052_WCSV0052OP_02DBMapper mapper = new WCSV0052_WCSV0052OP_02DBMapper();
		
		mapper.getWCSV005201SC(paramBean, outputMap);
		mapper.getWCSV005202SC(paramBean, outputMap);
		//mapper.getWCSV005203SC(paramBean, outputMap);
		//mapper.getWCSV005204SC(paramBean, outputMap);
		return;
	}

	/**
	 * 引継情報の作成
	 * 
	 */
	public void setSceenInfo() throws Exception{
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		if (bean == null)
		{
			throw new Exception();
		}
		// 配列アクセサを取得
		//X31SDataBeanAccessArray stb_info = bean.getDataBeanArray(WCW01911SFConst.STB_INFO);
		X31SDataBeanAccessArray stb_info = bean.getDataBeanArray(WCW01911SFConst.TN_ICRN_INFO);
		X31SDataBeanAccessArray cust_info = bean.getDataBeanArray(WCW01911SFConst.SYSID_INFO);
		//X31SDataBeanAccessArray ccas_info = bean.getDataBeanArray(WCW01911SFConst.CCAS_INFO);
		//X31SDataBeanAccessArray bcas_info = bean.getDataBeanArray(WCW01911SFConst.BCAS_INFO);
		
		ArrayList stb_info_send;
		ArrayList cust_info_send;
		//ArrayList ccas_info_send;
		//ArrayList bcas_info_send;
		stb_info_send = new ArrayList();
		cust_info_send = new ArrayList();
		//ccas_info_send = new ArrayList();
		//bcas_info_send = new ArrayList();
		
		HashMap<String, Object>dataMap = new HashMap<String, Object>();
		
		X31SDataBeanAccessArray dataList = bean.getDataBeanArray(WCW01911SFConst.SEIZO_INFO);
		
		int j = 0;
		
		for(int i = 0 ; i < dataList.getCount(); i++)
		{
			//Boolean bln_chk = stb_info.getDataBean(i).sendMessageBoolean(WCW01911SFConst.SELECT_NO_02, X31CWebConst.DATABEAN_GET_VALUE);
			Boolean bln_chk = stb_info.getDataBean(i).sendMessageBoolean(WCW01911SFConst.SELECT_NO_03, X31CWebConst.DATABEAN_GET_VALUE);
			if ( bln_chk)
			{
				
				HashMap<String, Object> stb_info_send_sub = new HashMap<String, Object>();
				HashMap<String, Object> cust_info_send_sub = new HashMap<String, Object>();
				HashMap<String, Object> ccas_info_send_sub = new HashMap<String, Object>();
				HashMap<String, Object> bcas_info_send_sub = new HashMap<String, Object>();
				
//				// STBIDの取得
//				stb_info_send_sub.put(WCW01913SFConst.STB_ID_01, stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.STB_ID_02, X31CWebConst.DATABEAN_GET_VALUE));
//				
//				// 製造番号の取得
//				stb_info_send_sub.put(WCW01913SFConst.KIKI_SEIZO_NO_01, stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.KIKI_SEIZO_NO_02, X31CWebConst.DATABEAN_GET_VALUE));
//				
//				// STBステータスの取得
//				stb_info_send_sub.put(WCW01913SFConst.STB_STAT_CD_01, stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.STB_STAT_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
//				
//				// グループID1の取得
//				stb_info_send_sub.put(WCW01913SFConst.STB_GRP_ID_1_01, stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.STB_GRP_ID_1_02, X31CWebConst.DATABEAN_GET_VALUE));
//				
//				// グループID2の取得
//				stb_info_send_sub.put(WCW01913SFConst.STB_GRP_ID_2_01, stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.STB_GRP_ID_2_02, X31CWebConst.DATABEAN_GET_VALUE));
//				
//				// グループID3の取得
//				stb_info_send_sub.put(WCW01913SFConst.STB_GRP_ID_3_01, stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.STB_GRP_ID_3_02, X31CWebConst.DATABEAN_GET_VALUE));
//				
//				// グループID4の取得
//				stb_info_send_sub.put(WCW01913SFConst.STB_GRP_ID_4_01, stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.STB_GRP_ID_4_02, X31CWebConst.DATABEAN_GET_VALUE));
//				
//				// グループID5の取得
//				stb_info_send_sub.put(WCW01913SFConst.STB_GRP_ID_5_01, stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.STB_GRP_ID_5_02, X31CWebConst.DATABEAN_GET_VALUE));
//				
//				// グループID6の取得
//				stb_info_send_sub.put(WCW01913SFConst.STB_GRP_ID_6_01, stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.STB_GRP_ID_6_02, X31CWebConst.DATABEAN_GET_VALUE));
//				
//				// 制御エリアコードの取得
//				stb_info_send_sub.put(WCW01913SFConst.CTRL_AREA_CD_01, stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.CTRL_AREA_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
//				
//				// 契約者名の取得
//				cust_info_send_sub.put(WCW01913SFConst.SYSID_NM_04, cust_info.getDataBean(i).sendMessageString(WCW01911SFConst.SYSID_NM_03, X31CWebConst.DATABEAN_GET_VALUE));
//				
//				// Ｃ−ＣＡＳＩＤの取得
//				ccas_info_send_sub.put(WCW01913SFConst.CASID_02, ccas_info.getDataBean(i).sendMessageString(WCW01911SFConst.CASID_04, X31CWebConst.DATABEAN_GET_VALUE));
//				
//				// Ｂ−ＣＡＳＩＤの取得
//				bcas_info_send_sub.put(WCW01913SFConst.CASID_03, bcas_info.getDataBean(i).sendMessageString(WCW01911SFConst.CASID_05, X31CWebConst.DATABEAN_GET_VALUE));
//				
//				// 行色替え
//				stb_info_send_sub.put(WCW01913SFConst.ROW_COLOR_01, getRowStyle(j+1));
				// STBIDの取得
				stb_info_send_sub.put(WCW01913SFConst.STBID_08, stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.STBID_03, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 製造番号の取得
				stb_info_send_sub.put(WCW01913SFConst.STB_KK_SEIZO_NO_08, stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.STB_KK_SEIZO_NO_03, X31CWebConst.DATABEAN_GET_VALUE));
				
				// OM-2014-0003079 ADD START
				// 宅内機器型式コード
				stb_info_send_sub.put(WCW01913SFConst.STB_TK_MDL_CD_08, stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.STB_TK_MDL_CD_03, X31CWebConst.DATABEAN_GET_VALUE));
				// OM-2014-0003079 ADD END
								
				// STBステータスの取得
				stb_info_send_sub.put(WCW01913SFConst.STB_STAT_CD_08, stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.STB_STAT_CD_03, X31CWebConst.DATABEAN_GET_VALUE));
				
				// STBステータスの取得
				stb_info_send_sub.put(WCW01913SFConst.STB_STAT_NM_08, stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.STB_STAT_NM_03, X31CWebConst.DATABEAN_GET_VALUE));
				
				// グループID1の取得
				stb_info_send_sub.put(WCW01913SFConst.STB_MATSU_YO_GRPID1_08, stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.STB_MATSU_YO_GRPID1_03, X31CWebConst.DATABEAN_GET_VALUE));
				
				// グループID2の取得
				stb_info_send_sub.put(WCW01913SFConst.STB_MATSU_YO_GRPID2_08, stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.STB_MATSU_YO_GRPID2_03, X31CWebConst.DATABEAN_GET_VALUE));
				
				// グループID3の取得
				stb_info_send_sub.put(WCW01913SFConst.STB_MATSU_YO_GRPID3_08, stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.STB_MATSU_YO_GRPID3_03, X31CWebConst.DATABEAN_GET_VALUE));
				
				// グループID4の取得
				stb_info_send_sub.put(WCW01913SFConst.STB_MATSU_YO_GRPID4_08, stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.STB_MATSU_YO_GRPID4_03, X31CWebConst.DATABEAN_GET_VALUE));
				
				// グループID5の取得
				stb_info_send_sub.put(WCW01913SFConst.STB_MATSU_YO_GRPID5_08, stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.STB_MATSU_YO_GRPID5_03, X31CWebConst.DATABEAN_GET_VALUE));
				
				// グループID6の取得
				stb_info_send_sub.put(WCW01913SFConst.STB_MATSU_YO_GRPID6_08, stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.STB_MATSU_YO_GRPID6_03, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 制御エリアコードの取得
				stb_info_send_sub.put(WCW01913SFConst.CTL_AREA_CD_08, stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.CTL_AREA_CD_03, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 契約者名の取得
				cust_info_send_sub.put(WCW01913SFConst.SYSID_NM_01, cust_info.getDataBean(i).sendMessageString(WCW01911SFConst.SYSID_NM_02, X31CWebConst.DATABEAN_GET_VALUE));
				
				// Ｃ−ＣＡＳＩＤの取得
				ccas_info_send_sub.put(WCW01913SFConst.CCAS_KK_SEIZO_NO_08, stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.CCAS_KK_SEIZO_NO_03, X31CWebConst.DATABEAN_GET_VALUE));
				
				// Ｂ−ＣＡＳＩＤの取得
				bcas_info_send_sub.put(WCW01913SFConst.BCAS_KK_SEIZO_NO_08, stb_info.getDataBean(i).sendMessageString(WCW01911SFConst.BCAS_KK_SEIZO_NO_03, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 行色替え
				stb_info_send_sub.put(WCW01913SFConst.ROW_COLOR_08, getRowStyle(j+1));
				
				stb_info_send.add(j, stb_info_send_sub);
				cust_info_send.add(j, cust_info_send_sub);
				//ccas_info_send.add(j, ccas_info_send_sub);
				//bcas_info_send.add(j, bcas_info_send_sub);
				j++;
				
			}
		}
		
		//dataMap.put(WCW01913SFConst.STB_INFO, stb_info_send);
		dataMap.put(WCW01913SFConst.TN_ICRN_INFO, stb_info_send);
		dataMap.put(WCW01913SFConst.SYSID_INFO, cust_info_send);
		//dataMap.put(WCW01913SFConst.CCAS_INFO, ccas_info_send);
		//dataMap.put(WCW01913SFConst.BCAS_INFO, bcas_info_send);
		
		dataMap.put(WCW01913SFConst.WCTRL_ORDER_CD, JWCStrConst.CD_DIV_WCTRL_ORDER_CONTROL);
		dataMap.put(WCW01913SFConst.WCTRL_REQ_TRN_CD, JWCStrConst.CD_DIV_WCTRL_REQ_TRN_CD_GRPID_SVC);
		dataMap.put(WCW01913SFConst.WCTRL_TYPE, JWCStrConst.CD_DIV_WCTRL_TRN_CD_BAT);
		dataMap.put(WCW01913SFConst.WCTRL_MODE, JWCStrConst.CD_DIV_WCTRL_CHANGE_CODE_TUJYOU);
		dataMap.put(WCW01913SFConst.CHRG_FLG, JWCStrConst.CD_DIV_WCTRL_CHRG_FLG_CHRG_TRGT);
		dataMap.put(WCW01913SFConst.RE_SETTEI_FLG, JWCStrConst.CD_DIV_WATCH_RE_SETTE_FLG_ADDCHG);
		dataMap.put(WCW01913SFConst.CTRL_CMD_HAKKO_ZUMI_FLG, JWCStrConst.CD_DIV_WATCH_CMD_HAKKO_FLG_MIHAKKO);
		dataMap.put(WCW01913SFConst.RSLT_RCV_FLG, JWCStrConst.CD_DIV_WATCH_RSLT_RCV_FLG_MIREV);
		dataMap.put(WCW01913SFConst.DLYD_FLG, JWCStrConst.CD_DIV_DLYD_FLG_TAISYOGAI);
		dataMap.put(WCW01913SFConst.CCAS_SHKKA_CMD_HAK_FLG, JWCStrConst.CD_DIV_CCAS_CARD_INIT_CMD_HAKKO_FLG_MIHAKKO);
		dataMap.put(WCW01913SFConst.KEY_TK_SBT_CD, JWCStrConst.CD_DIV_TAKNKIKI_SBT_CD_STB);
		dataMap.put(WCW01913SFConst.SVC_KEI_NO, bean.sendMessageString(WCW01911SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		
		//引継情報の設定
		JCCWebCommon.setScreenInfo(this,JWCScreenConst.SCREEN_ID_WC01913, dataMap);
		JCCWebCommon.setScreenId(this, JWCScreenConst.SCREEN_ID_WC01913, JWCScreenConst.SCREEN_ID_WC01911);
		JCCWebCommon.getScreenInfo(this);

		///// 共有フォームBean設定（遷移先画面） /////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_ID_WC01913);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_NAME_WC01913);
		
	}
	
	/**
	 * サービスフォーム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;
	}
	
	/**
	 * 検索ボタン押下時エラー処理
	 * @return 
	 * @throws Exception 
	 */
	private boolean Search_Error(String strFlg) throws Exception
	{
		String MESSAGE_ID = "";
		String[] stringArray = new String[0];
		
		if(Error_Mode_1.equals(strFlg))
		{
			MESSAGE_ID = JPCOnlineMessageConstant.EKB0330__I;
			stringArray = new String[1];
			stringArray[0] = "";
		}
		else if(Error_Mode_2.equals(strFlg))
		{
			MESSAGE_ID = JPCOnlineMessageConstant.EKB9230_KW;
			stringArray = new String[1];
			stringArray[0] = "局";
		}
		else if(Error_Mode_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;
	}
	
	/**
	 * 行スタイル取得処理です。
	 * 指定した行番号の場合の、スタイルを取得します。
	 * @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;
	}
}
