/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：WCW03101SFLogic
*	ソースファイル名：WCW03101SFLogic.java
*	作成者			：富士通
*	日付			：2011年08月09日
*＜機能概要＞
*	視聴制御状態監視のビューロジッククラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/08/09	富士通		新規作成
*	v3.00.00	2012/05/01	FJ)松嶋		【ANK-0315-00-00】宅内対応を実施
*
**********************************************************************/
package eo.web.webview.WCW03101SF;

import java.text.DateFormat;
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.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.WCW00901SF.WCW00901SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JWCCommonConst;
import eo.web.webview.common.JWCScreenConst;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.mapping.WCSV0055_WCSV0055OPDBMapper;
import eo.web.webview.mapping.WCSV0062_WCSV0062OPDBMapper;
import eo.web.webview.mapping.WCSV0066_WCSV0066OPDBMapper;

/**
 * 視聴制御状態監視の表示を行う。
 *
 * @author 富士通
 */

public class WCW03101SFLogic extends JCCWebBusinessLogic
{

	// エラーメッセージ表示用定数定義
	private String Error_Mode_1 = "1";
	private String Error_Mode_2 = "2";
	
	static final String DSP_FLG_0 =  "0";
	static final String DSP_FLG_1 =  "1";
	static final String DSP_FLG_2 =  "2";
	static final String DUMMY_STB_STBSTC = "999999990004";
	static final String DUMMY_STB_STBUNSET = "999999990002";
	static final String DUMMY_STB_WCTRL_CHANGE = "999999990005";
	
	/**
	 * 更新画面初期表示処理
	 * @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のデータ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(WCW00901SFConst.KYOKU_INFO);
		if (kykBeanArray.getCount() == 0 ||kykBeanArray.getDataBean(0) == null)
		{
			search_Error(Error_Mode_1);
			return true;
		}
		// 制御エリア検索エラー
		X31SDataBeanAccessArray ctrlBeanArray = bean.getDataBeanArray(WCW00901SFConst.CTRL_AREA_INFO);
		if (ctrlBeanArray.getCount() == 0 ||ctrlBeanArray.getDataBean(0) == null)
		{
			search_Error(Error_Mode_2);
			return true;
		}
		
		//表示区分をBeanにセット
		bean.sendMessageString(WCW03101SFConst.DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, DSP_FLG_0);
		
		//現在日付をBeanにセット
		String strTod = JCCWebCommon.getSysDate();
		
		bean.sendMessageString(WCW03101SFConst.KEY_ORDER_UK_YMD, X31CWebConst.DATABEAN_SET_VALUE, strTod);
		bean.sendMessageString(WCW03101SFConst.SYORI_YEAR, X31CWebConst.DATABEAN_SET_VALUE, strTod.substring(0, 4));
		bean.sendMessageString(WCW03101SFConst.SYORI_MONTH, X31CWebConst.DATABEAN_SET_VALUE, strTod.substring(4, 6));
		bean.sendMessageString(WCW03101SFConst.SYORI_DAY, X31CWebConst.DATABEAN_SET_VALUE, strTod.substring(6, 8));

		getData_WCSV0055();
		
		return true;
	}

	/**
	 * 視聴制御状態監視一覧照会サービス呼出処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean getData_WCSV0055() 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();

		// beanの初期化
		clearBean(bean);
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		
		// 視聴制御状態監視一覧照会上りマッピング定義
		mappingForDB_BP_WCSV0055_SET(paramBean, inputMap, JWCCommonConst.FUNC_CODE_1);
		
		// ◇ 業務ロジックの記述
		// ユースケースID格納用マップを生成。
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "WCSV0055");
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "WCSV0055OP");

		///// サービス呼出処理 /////
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		} 
		
		//下りマッピング定義
		mappingForDB_BP_WCSV0055_GET(paramBean, outputMap);
		
		//制御コマンド発行待ち状況カウント
		X31SDataBeanAccessArray cmdsndwaitBeanArray = paramBean[0].getDataBeanArray(WCW03101SFConst.CMD_SND_WAIT_INFO);
		int intCntReal = 0;
		int intCntBatch = 0;
		
		for(int i = 0 ; i < cmdsndwaitBeanArray.getCount(); i++)
		{
			//制御タイプコード取得
			String strChkFlg = cmdsndwaitBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.CTRL_TYPE_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
			//発行受信フラグ取得
			String strHakkoRcvFlg = cmdsndwaitBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.HAKKO_RCV_FLG_03, X31CWebConst.DATABEAN_GET_VALUE);
			
			//制御タイプコードが0ならリアル
			if(JWCStrConst.CD_DIV_WCTRL_TRN_CD_REAL.equals(strChkFlg))
			{
				if(!"".equals(cmdsndwaitBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.SEND_STAY_TTLCNT_03, X31CWebConst.DATABEAN_GET_VALUE)) &&
				cmdsndwaitBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.SEND_STAY_TTLCNT_03, X31CWebConst.DATABEAN_GET_VALUE) != null )
				{
					if(JWCStrConst.CD_DIV_WATCH_CMD_HAKKO_FLG_HAKKOZUMI.equals(strHakkoRcvFlg))
					{
						intCntReal += Integer.parseInt(cmdsndwaitBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.SEND_STAY_TTLCNT_03, X31CWebConst.DATABEAN_GET_VALUE));
					}
					else
					{
						intCntReal -= Integer.parseInt(cmdsndwaitBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.SEND_STAY_TTLCNT_03, X31CWebConst.DATABEAN_GET_VALUE));
					}
				}
			}
			//制御タイプコードが1ならバッチ
			else if(JWCStrConst.CD_DIV_WCTRL_TRN_CD_BAT.equals(strChkFlg))
			{
				if(!"".equals(cmdsndwaitBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.SEND_STAY_TTLCNT_03, X31CWebConst.DATABEAN_GET_VALUE)) &&
				cmdsndwaitBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.SEND_STAY_TTLCNT_03, X31CWebConst.DATABEAN_GET_VALUE) != null )
				{
					if(JWCStrConst.CD_DIV_WATCH_CMD_HAKKO_FLG_HAKKOZUMI.equals(strHakkoRcvFlg))
					{
						intCntBatch += Integer.parseInt(cmdsndwaitBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.SEND_STAY_TTLCNT_03, X31CWebConst.DATABEAN_GET_VALUE));
					}
					else
					{
						intCntBatch -= Integer.parseInt(cmdsndwaitBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.SEND_STAY_TTLCNT_03, X31CWebConst.DATABEAN_GET_VALUE));
					}
				}
			}
		}
		//集計値をDataBeanにセット
		paramBean[0].sendMessageString(WCW03101SFConst.SND_TOTAL_SUU, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(intCntReal));
		paramBean[0].sendMessageString(WCW03101SFConst.BT_TOTAL_SUU, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(intCntBatch));
		paramBean[0].sendMessageString(WCW03101SFConst.TOTAL_SUU, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(intCntReal + intCntBatch));
		

		//夜間バッチ処理状況カウント
		X31SDataBeanAccessArray batsndwaitBeanArray = paramBean[0].getDataBeanArray(WCW03101SFConst.BATCH_WAIT_INFO);
		int intCntSetti = 0;
		int intCntTekkyo = 0;
		int intCntHenko = 0;
		int intCntGrpId = 0;
		
		for(int i = 0 ; i < batsndwaitBeanArray.getCount(); i++)
		{
			//視聴制御依頼処理コード取得
			String strChkFlg = batsndwaitBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.WCTRL_REQ_TRN_CD_04, X31CWebConst.DATABEAN_GET_VALUE);
			//発行受信フラグ取得
			String strHakkoRcvFlg = batsndwaitBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.HAKKO_RCV_FLG_04, X31CWebConst.DATABEAN_GET_VALUE);
			
			//視聴制御依頼処理コードが10なら設置
			if(JWCStrConst.CD_DIV_WCTRL_REQ_TRN_CD_STBSTC.equals(strChkFlg))
			{
				if(!"".equals(batsndwaitBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.SEND_STAY_TTLCNT_04, X31CWebConst.DATABEAN_GET_VALUE)) &&
					batsndwaitBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.SEND_STAY_TTLCNT_04, X31CWebConst.DATABEAN_GET_VALUE) != null)
				{
					if(JWCStrConst.CD_DIV_WATCH_CMD_HAKKO_FLG_HAKKOZUMI.equals(strHakkoRcvFlg))
					{
						intCntSetti += Integer.parseInt(batsndwaitBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.SEND_STAY_TTLCNT_04, X31CWebConst.DATABEAN_GET_VALUE));
					}
					else
					{
						intCntSetti -= Integer.parseInt(batsndwaitBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.SEND_STAY_TTLCNT_04, X31CWebConst.DATABEAN_GET_VALUE));
					}
				}
			}
			//視聴制御依頼処理コードが12なら撤去
			else if(JWCStrConst.CD_DIV_WCTRL_REQ_TRN_CD_STBUNSET.equals(strChkFlg))
			{
				if(!"".equals(batsndwaitBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.SEND_STAY_TTLCNT_04, X31CWebConst.DATABEAN_GET_VALUE)) &&
					batsndwaitBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.SEND_STAY_TTLCNT_04, X31CWebConst.DATABEAN_GET_VALUE) != null)
				{
					if(JWCStrConst.CD_DIV_WATCH_CMD_HAKKO_FLG_HAKKOZUMI.equals(strHakkoRcvFlg))
					{
						intCntTekkyo += Integer.parseInt(batsndwaitBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.SEND_STAY_TTLCNT_04, X31CWebConst.DATABEAN_GET_VALUE));
					}
					else
					{
						intCntTekkyo -= Integer.parseInt(batsndwaitBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.SEND_STAY_TTLCNT_04, X31CWebConst.DATABEAN_GET_VALUE));
					}
				}
			}
			//視聴制御依頼処理コードが95なら視聴変更
			else if(JWCStrConst.CD_DIV_WCTRL_REQ_TRN_CD_WCTRL_CHANGE.equals(strChkFlg))
			{
				if(!"".equals(batsndwaitBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.SEND_STAY_TTLCNT_04, X31CWebConst.DATABEAN_GET_VALUE)) &&
					batsndwaitBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.SEND_STAY_TTLCNT_04, X31CWebConst.DATABEAN_GET_VALUE) != null)
				{
					if(JWCStrConst.CD_DIV_WATCH_CMD_HAKKO_FLG_HAKKOZUMI.equals(strHakkoRcvFlg))
					{
						intCntHenko += Integer.parseInt(batsndwaitBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.SEND_STAY_TTLCNT_04, X31CWebConst.DATABEAN_GET_VALUE));
					}
					else
					{
						intCntHenko -= Integer.parseInt(batsndwaitBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.SEND_STAY_TTLCNT_04, X31CWebConst.DATABEAN_GET_VALUE));
					}
				}
			}
			//視聴制御依頼処理コードが97ならグループＩＤ
			else if(JWCStrConst.CD_DIV_WCTRL_REQ_TRN_CD_GRP_ID.equals(strChkFlg))
			{
				if(!"".equals(batsndwaitBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.SEND_STAY_TTLCNT_04, X31CWebConst.DATABEAN_GET_VALUE)) &&
					batsndwaitBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.SEND_STAY_TTLCNT_04, X31CWebConst.DATABEAN_GET_VALUE) != null)
				{
					if(JWCStrConst.CD_DIV_WATCH_CMD_HAKKO_FLG_HAKKOZUMI.equals(strHakkoRcvFlg))
					{
						intCntGrpId += Integer.parseInt(batsndwaitBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.SEND_STAY_TTLCNT_04, X31CWebConst.DATABEAN_GET_VALUE));
					}
					else
					{
						intCntGrpId -= Integer.parseInt(batsndwaitBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.SEND_STAY_TTLCNT_04, X31CWebConst.DATABEAN_GET_VALUE));
					}
				}
			}
		}
		//集計値をDataBeanにセット
		paramBean[0].sendMessageString(WCW03101SFConst.SETTI_TOTAL_SUU, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(intCntSetti));
		paramBean[0].sendMessageString(WCW03101SFConst.TEKYO_TOTAL_SUU, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(intCntTekkyo));
		paramBean[0].sendMessageString(WCW03101SFConst.TIA_CHG_TOTAL_SUU, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(intCntHenko));
		paramBean[0].sendMessageString(WCW03101SFConst.GRP_TOTAL_SUU, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(intCntGrpId));
		paramBean[0].sendMessageString(WCW03101SFConst.NIGHT_TOD, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(intCntSetti + intCntTekkyo + intCntHenko + intCntGrpId));

		//夜間バッチ処理結果日付取得
		X31SDataBeanAccessArray batEndBeanArray = paramBean[0].getDataBeanArray(WCW03101SFConst.BATCH_END_INFO);
		String strSettiTod = "";
		String strTekkyoTod = "";
		String sttHenkoTod = "";
		String strGrpIdTod = "";
		
		for(int i = 0 ; i < batEndBeanArray.getCount(); i++)
		{
			//STB機器製造番号取得
			String strChkFlg = batEndBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.STB_KIKI_SEIZO_NO_05, X31CWebConst.DATABEAN_GET_VALUE);
			strChkFlg = strChkFlg.trim();
			
			//設置
			if(DUMMY_STB_STBSTC.equals(strChkFlg))
			{
				strSettiTod = batEndBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.ORDER_UK_DTM_05, X31CWebConst.DATABEAN_GET_VALUE);
			}
			//撤去
			else if(DUMMY_STB_STBUNSET.equals(strChkFlg))
			{
				strTekkyoTod = batEndBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.ORDER_UK_DTM_05, X31CWebConst.DATABEAN_GET_VALUE);
			}
			//視聴変更
			else if(DUMMY_STB_WCTRL_CHANGE.equals(strChkFlg))
			{
				sttHenkoTod = batEndBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.ORDER_UK_DTM_05, X31CWebConst.DATABEAN_GET_VALUE);
			}
		}
		//取得日付をDataBeanにセット
		if(!"".equals(strSettiTod))
		{
			strSettiTod = JCCWebCommon.formatDatetimeSS(strSettiTod.substring(0,14));
		}
		if(!"".equals(strTekkyoTod))
		{
			strTekkyoTod = JCCWebCommon.formatDatetimeSS(strTekkyoTod.substring(0,14));
		}
		if(!"".equals(sttHenkoTod))
		{
			sttHenkoTod = JCCWebCommon.formatDatetimeSS(sttHenkoTod.substring(0,14));
		}
		if(!"".equals(strGrpIdTod))
		{
			strGrpIdTod = JCCWebCommon.formatDatetimeSS(strGrpIdTod.substring(0,14));
		}
	
		paramBean[0].sendMessageString(WCW03101SFConst.SETTI_TOD, X31CWebConst.DATABEAN_SET_VALUE, strSettiTod);
		paramBean[0].sendMessageString(WCW03101SFConst.TEKYO_TOD, X31CWebConst.DATABEAN_SET_VALUE, strTekkyoTod);
		paramBean[0].sendMessageString(WCW03101SFConst.TIA_CHG_TOD, X31CWebConst.DATABEAN_SET_VALUE, sttHenkoTod);
		paramBean[0].sendMessageString(WCW03101SFConst.GRP_TOD, X31CWebConst.DATABEAN_SET_VALUE, strGrpIdTod);

		String strNowTod = "";
		strNowTod = JCCWebCommon.formatDatetimeSS(JCCWebCommon.getSysDateTime());
		paramBean[0].sendMessageString(WCW03101SFConst.NOW_TOD, X31CWebConst.DATABEAN_SET_VALUE, strNowTod);

		///// 共有フォームBean設定^ /////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		String MESSAGE_ID = JPCOnlineMessageConstant.EKB6930__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セット
		JCCWebCommon.setMessageInfo( this, MESSAGE_ID, stringArray, "");
		
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_ID_WCW03101);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_NAME_WCW03101);
	
		return true;
	}
	
	/**
	 * 視聴制御夜間バッチ状況一覧照会サービス呼出処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean getData_WCSV0066() 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();

		// beanの初期化
		clearBean(bean);
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		
		// 視聴制御夜間バッチ状況一覧照会上りマッピング定義
		mappingForDB_BP_WCSV0066_SET(paramBean, inputMap, JWCCommonConst.FUNC_CODE_1);
		
		// ◇ 業務ロジックの記述
		// ユースケースID格納用マップを生成。
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "WCSV0066");
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "WCSV0066OP");

		///// サービス呼出処理 /////
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		} 
		
		//下りマッピング定義
		mappingForDB_BP_WCSV0066_GET(paramBean, outputMap);
		

		//夜間バッチ処理状況カウント
		int intCntSetti = 0;
		int intCntTekkyo = 0;
		int intCntHenko = 0;
		int intCntGrpId = 0;
		
		//集計値をDataBeanにセット
		paramBean[0].sendMessageString(WCW03101SFConst.SETTI_TOTAL_SUU, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(intCntSetti));
		paramBean[0].sendMessageString(WCW03101SFConst.TEKYO_TOTAL_SUU, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(intCntTekkyo));
		paramBean[0].sendMessageString(WCW03101SFConst.TIA_CHG_TOTAL_SUU, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(intCntHenko));
		paramBean[0].sendMessageString(WCW03101SFConst.GRP_TOTAL_SUU, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(intCntGrpId));
		paramBean[0].sendMessageString(WCW03101SFConst.NIGHT_TOD, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(intCntSetti + intCntTekkyo + intCntHenko + intCntGrpId));

		//夜間バッチ処理結果日付取得
		X31SDataBeanAccessArray batEndBeanArray = paramBean[0].getDataBeanArray(WCW03101SFConst.BATCH_END_INFO);
		String strSettiTod = "";
		String strTekkyoTod = "";
		String sttHenkoTod = "";
		String strGrpIdTod = "";
		
		for(int i = 0 ; i < batEndBeanArray.getCount(); i++)
		{
			//STB機器製造番号取得
			String strChkFlg = batEndBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.STB_KIKI_SEIZO_NO_05, X31CWebConst.DATABEAN_GET_VALUE);
			strChkFlg = strChkFlg.trim();
			
			//設置
			if(DUMMY_STB_STBSTC.equals(strChkFlg))
			{
				strSettiTod = batEndBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.ORDER_UK_DTM_05, X31CWebConst.DATABEAN_GET_VALUE);
			}
			//撤去
			else if(DUMMY_STB_STBUNSET.equals(strChkFlg))
			{
				strTekkyoTod = batEndBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.ORDER_UK_DTM_05, X31CWebConst.DATABEAN_GET_VALUE);
			}
			//視聴変更
			else if(DUMMY_STB_WCTRL_CHANGE.equals(strChkFlg))
			{
				sttHenkoTod = batEndBeanArray.getDataBean(i).sendMessageString(WCW03101SFConst.ORDER_UK_DTM_05, X31CWebConst.DATABEAN_GET_VALUE);
			}
		}
		//取得日付をDataBeanにセット
		if(!"".equals(strSettiTod))
		{
			strSettiTod = JCCWebCommon.formatDatetimeSS(strSettiTod.substring(0,14));
		}
		if(!"".equals(strTekkyoTod))
		{
			strTekkyoTod = JCCWebCommon.formatDatetimeSS(strTekkyoTod.substring(0,14));
		}
		if(!"".equals(sttHenkoTod))
		{
			sttHenkoTod = JCCWebCommon.formatDatetimeSS(sttHenkoTod.substring(0,14));
		}
		if(!"".equals(strGrpIdTod))
		{
			strGrpIdTod = JCCWebCommon.formatDatetimeSS(strGrpIdTod.substring(0,14));
		}
	
		paramBean[0].sendMessageString(WCW03101SFConst.SETTI_TOD, X31CWebConst.DATABEAN_SET_VALUE, strSettiTod);
		paramBean[0].sendMessageString(WCW03101SFConst.TEKYO_TOD, X31CWebConst.DATABEAN_SET_VALUE, strTekkyoTod);
		paramBean[0].sendMessageString(WCW03101SFConst.TIA_CHG_TOD, X31CWebConst.DATABEAN_SET_VALUE, sttHenkoTod);
		paramBean[0].sendMessageString(WCW03101SFConst.GRP_TOD, X31CWebConst.DATABEAN_SET_VALUE, strGrpIdTod);

		String strNowTod = "";
		strNowTod = JCCWebCommon.formatDatetimeSS(JCCWebCommon.getSysDateTime());
		paramBean[0].sendMessageString(WCW03101SFConst.NOW_TOD, X31CWebConst.DATABEAN_SET_VALUE, strNowTod);

		///// 共有フォームBean設定^ /////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		String MESSAGE_ID = JPCOnlineMessageConstant.EKB6930__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セット
		JCCWebCommon.setMessageInfo( this, MESSAGE_ID, stringArray, "");
		
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_ID_WCW03101);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_NAME_WCW03101);
	
		return true;
	}
	
	/**
	 * 表示ボタン押下処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean show() throws Exception
	{		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 局検索エラー
		X31SDataBeanAccessArray kykBeanArray = bean.getDataBeanArray(WCW00901SFConst.KYOKU_INFO);
		if (kykBeanArray.getCount() == 0 ||kykBeanArray.getDataBean(0) == null)
		{
			search_Error(Error_Mode_1);
			return true;
		}
		// 制御エリア検索エラー
		X31SDataBeanAccessArray ctrlBeanArray = bean.getDataBeanArray(WCW00901SFConst.CTRL_AREA_INFO);
		if (ctrlBeanArray.getCount() == 0 ||ctrlBeanArray.getDataBean(0) == null)
		{
			search_Error(Error_Mode_2);
			return true;
		}
		
		//設定日付をBeanにセット
		String strGetTod = "";
		String strNowTod = "";
		strNowTod = JCCWebCommon.formatDate(JCCWebCommon.getSysDate());

		String strYear = bean.sendMessageString(WCW03101SFConst.SYORI_YEAR, X31CWebConst.DATABEAN_GET_VALUE);
		String strMonth = bean.sendMessageString(WCW03101SFConst.SYORI_MONTH, X31CWebConst.DATABEAN_GET_VALUE);
		String strDay = bean.sendMessageString(WCW03101SFConst.SYORI_DAY, X31CWebConst.DATABEAN_GET_VALUE);
		
		strGetTod = strYear + strMonth + strDay;
		
		bean.sendMessageString(WCW03101SFConst.KEY_ORDER_UK_YMD, X31CWebConst.DATABEAN_SET_VALUE, strGetTod);
		
		java.util.Date dateNowTod = DateFormat.getDateInstance().parse(strNowTod);
		java.util.Date dateGetTod = DateFormat.getDateInstance().parse(JCCWebCommon.formatDate(strGetTod));
		
		if (dateNowTod.equals(dateGetTod))
		{
			bean.sendMessageString(WCW03101SFConst.DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, DSP_FLG_0);
			return getData_WCSV0055();
		}
		else if(dateNowTod.after(dateGetTod))
		{
			bean.sendMessageString(WCW03101SFConst.DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, DSP_FLG_1);
			return getData_WCSV0066();
		}
		else
		{
			bean.sendMessageString(WCW03101SFConst.DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, DSP_FLG_2);
			///// 共有フォームBean設定^ /////
			X31SDataBeanAccess commonBean = super.getCommonInfoBean();
			
			String MESSAGE_ID = JPCOnlineMessageConstant.EKB4670_NW;
			String[] stringArray;
			stringArray = new String[1];
			stringArray[0] = "処理確認年月日";

			// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
			X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
			
			// MESSAGE_LISTをクリアする。
			commonBeanArray.clearArray();
			// MESSAGEセット
			JCCWebCommon.setMessageInfo( this, MESSAGE_ID, stringArray, "");
			
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_ID_WCW03101);
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_NAME_WCW03101);
		
			return false;
		}
	}
	/**
	 * サービスフォームBean項目とSTB状態合わせ一覧照会サービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   上りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_WCSV0055_SET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> inputMap, String func_code)
	{
		// DataBean-BPマッピングクラス生成
		WCSV0055_WCSV0055OPDBMapper mapper = new WCSV0055_WCSV0055OPDBMapper();

		mapper.setWCSV005501SC(paramBean, inputMap, func_code);
		mapper.setWCSV005502SC(paramBean, inputMap, func_code);
		mapper.setWCSV005503SC(paramBean, inputMap, func_code);

		return;
	}
	
	/**
	 * サービスフォームBean項目とサービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   下りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_WCSV0055_GET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> outputMap)
	{
		// DataBean-BPマッピングクラス生成
		WCSV0055_WCSV0055OPDBMapper mapper = new WCSV0055_WCSV0055OPDBMapper();

		mapper.getWCSV005501SC(paramBean, outputMap);
		mapper.getWCSV005502SC(paramBean, outputMap);
		mapper.getWCSV005503SC(paramBean, outputMap);
		return;
	}
	/**
	 * サービスフォームBean項目とSTB状態合わせ一覧照会サービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   上りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_WCSV0066_SET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> inputMap, String func_code)
	{
		// DataBean-BPマッピングクラス生成
		WCSV0066_WCSV0066OPDBMapper mapper = new WCSV0066_WCSV0066OPDBMapper();

		mapper.setWCSV006601SC(paramBean, inputMap, func_code);

		return;
	}
	
	/**
	 * サービスフォームBean項目とサービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   下りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_WCSV0066_GET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> outputMap)
	{
		// DataBean-BPマッピングクラス生成
		WCSV0066_WCSV0066OPDBMapper mapper = new WCSV0066_WCSV0066OPDBMapper();

		mapper.getWCSV006601SC(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_WCSV0062OPDBMapper mapper = new WCSV0062_WCSV0062OPDBMapper();

		mapper.getWCSV006201SC(paramBean, outputMap);
		mapper.getWCSV006202SC(paramBean, outputMap);
		return;
	}

	/**
	 * エラー処理
	 * @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.EKB9230_KW;
			stringArray = new String[1];
			stringArray[0] = "局";
		}
		else if(strFlg.equals(Error_Mode_2))
		{
			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;
	}
	
	/**
	 * サービスフォームBean項目をクリアする
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   上りデータマップ
	 * @param  func_code  機能コード
	 */
	public void clearBean(X31SDataBeanAccess paramBean) throws Exception
	{

		paramBean.getDataBeanArray(WCW03101SFConst.CMD_SND_WAIT_INFO).clearArray();
		paramBean.getDataBeanArray(WCW03101SFConst.BATCH_END_INFO).clearArray();
		paramBean.getDataBeanArray(WCW03101SFConst.BATCH_WAIT_INFO).clearArray();
		
		paramBean.sendMessage(WCW03101SFConst.SND_TOTAL_SUU, X31CWebConst.DATABEAN_CLEAR);
		paramBean.sendMessage(WCW03101SFConst.BT_TOTAL_SUU, X31CWebConst.DATABEAN_CLEAR);
		paramBean.sendMessage(WCW03101SFConst.TOTAL_SUU, X31CWebConst.DATABEAN_CLEAR);
		paramBean.sendMessage(WCW03101SFConst.SETTI_TOTAL_SUU, X31CWebConst.DATABEAN_CLEAR);
		paramBean.sendMessage(WCW03101SFConst.TEKYO_TOTAL_SUU, X31CWebConst.DATABEAN_CLEAR);
		paramBean.sendMessage(WCW03101SFConst.TIA_CHG_TOTAL_SUU, X31CWebConst.DATABEAN_CLEAR);
		paramBean.sendMessage(WCW03101SFConst.GRP_TOTAL_SUU, X31CWebConst.DATABEAN_CLEAR);

		paramBean.sendMessage(WCW03101SFConst.NIGHT_TOD, X31CWebConst.DATABEAN_CLEAR);
		paramBean.sendMessage(WCW03101SFConst.SETTI_TOD, X31CWebConst.DATABEAN_CLEAR);
		paramBean.sendMessage(WCW03101SFConst.TEKYO_TOD, X31CWebConst.DATABEAN_CLEAR);
		paramBean.sendMessage(WCW03101SFConst.TIA_CHG_TOD, X31CWebConst.DATABEAN_CLEAR);
		paramBean.sendMessage(WCW03101SFConst.GRP_TOD, X31CWebConst.DATABEAN_CLEAR);
		paramBean.sendMessage(WCW03101SFConst.SND_TOTAL_SUU, X31CWebConst.DATABEAN_CLEAR);
	}
}