/*******************************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 ********************************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム構築
 *	モジュール名	：CRW07001SFLogic
 *	ソースファイル名：CRW07001SFLogic.java
 *	作成者			：富士通
 *	日付			：2011年08月25日
 *＜機能概要＞
 *	履歴情報取込エラーデータファイルダウンロードビューロジック
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	ｖ1.00.00
 *
 ********************************************************************************/

package eo.web.webview.CRW07001SF;

import java.util.ArrayList;
import java.util.EventObject;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CID;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;
import com.fujitsu.futurity.web.x33.X33SException;

import eo.common.constant.JCRStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JCRUtilCommon;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCRScreenConst;
import eo.web.webview.common.JCRWebCommon;
import eo.web.webview.mapping.CRSV0134_CRSV0134OPDBMapper;
import eo.web.webview.mapping.CRSV0136_CRSV0136OPDBMapper;
import eo.web.webview.mapping.CRSV0137_CRSV0137OPDBMapper;

/**
 * 履歴情報取込エラーデータファイルダウンロードビューロジック.<p>
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class CRW07001SFLogic extends JCCWebBusinessLogic
{

	/**
	 * 親クラスX31BWebBusinessLogicのreceiveMessageWebを
	 * オーバーライドして自動生成されたメソッドです。
	 * @param arg0 (I) イベント情報
	 * @param arg1 (I) WebFWでは使用しません
	 * @param arg2 (I) WebFWでは使用しません
	 * @return 処理結果（true:正常終了、false:エラー）
	 * @throws X33SException X33SException
	 */
	@Override
	protected boolean receiveMessageWeb(X31CID arg0, Object arg1,
			EventObject arg2) throws X33SException
	{
		return false;
	}

	/**
	 * 初期表示を行う。<br>
	 * <br>
	 * 履歴情報取込エラーデータファイルダウンロード一覧照会サービスを呼び出し、
	 * 履歴情報取込エラーデータファイルダウンロード画面の初期表示を行います。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean init() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共有フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// サービスフォームBeanの内容をクリアする
		clearBean();

		// 権限制御定義ファイルより、全ワークグループ抽出権限の有無をチェック
		bean.sendMessageBoolean(CRW07001SFConst.ALL_WKGRP_SELECT_FLG, X31CWebConst.DATABEAN_SET_VALUE,
				JCRWebCommon.checkAuthority(this, this.getGamenId() + ";" + JCRStrConst.AUTHORITY_KEY_ALL_WKGRP_SELECT_FLG));

		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// ユースケースID格納用Map
		HashMap<Object, String> paramMap = new HashMap<Object, String>();

		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0134");

		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean, commoninfoBean};

		// マッピングクラス
		CRSV0134_CRSV0134OPDBMapper mapper = new CRSV0134_CRSV0134OPDBMapper();

		// マッピング処理（上り）
		mapper.setCRSV013401SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// サービス実行
		invokeService(paramMap, dataMap, outputMap);

		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// マッピング処理（下り）
		mapper.getCRSV013401SC(paramBean, outputMap);

		// 検索結果のエラーデータファイルリスト取得
		X31SDataBeanAccessArray errorFileList = bean.getDataBeanArray(CRW07001SFConst.ERROR_FILE);

		// エラーデータファイルリストが0件の場合
		if (errorFileList.getCount() == 0)
		{
			//検索結果:指定されたデータが存在しません。
			JCRWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I, new String[]{""});
		}

		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		// 遷移先画面IDを共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_ID_CRW07001);

		// 遷移先画面名を共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_NAME_CRW07001);

		return true;
	}

	/**
	 * 表示ボタン押下処理を行う。<br>
	 * <br>
	 * 履歴情報取込エラーデータファイルダウンロード一覧照会サービスを呼び出し、
	 * 履歴情報取込エラーデータファイルダウンロード画面の表示を行います。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean display() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共有フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// サービスフォームBeanの内容をクリアする
		bean.getDataBeanArray(CRW07001SFConst.ERROR_FILE).clearArray();
		bean.getDataBeanArray(CRW07001SFConst.DEL_FILE).clearArray();
		bean.sendMessage(CRW07001SFConst.LOG_NAIYO, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW07001SFConst.LINE_NO, X31CWebConst.DATABEAN_CLEAR);

		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// ユースケースID格納用Map
		HashMap<Object, String> paramMap = new HashMap<Object, String>();

		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0134");

		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean, commoninfoBean};

		// マッピングクラス
		CRSV0134_CRSV0134OPDBMapper mapper = new CRSV0134_CRSV0134OPDBMapper();

		// マッピング処理（上り）
		mapper.setCRSV013401SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// サービス実行
		invokeService(paramMap, dataMap, outputMap);

		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// マッピング処理（下り）
		mapper.getCRSV013401SC(paramBean, outputMap);

		// 検索結果のエラーデータファイルリスト取得
		X31SDataBeanAccessArray errorFileList = bean.getDataBeanArray(CRW07001SFConst.ERROR_FILE);

		// エラーデータファイルリストが0件の場合
		if (errorFileList.getCount() == 0)
		{
			//検索結果:指定されたデータが存在しません。
			JCRWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I, new String[]{""});
		}

		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		// 遷移先画面IDを共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_ID_CRW07001);

		// 遷移先画面名を共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_NAME_CRW07001);

		return true;
	}

	/**
	 * エラーデータファイルリンククリック処理。
	 * <br>
	 * エラーデータファイルリンククリック時の処理を行う。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean clickLinkFileDownload() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共有フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// なし

		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// なし

		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// なし

		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// なし

		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// なし

		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		// 遷移先画面IDを共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_ID_CRW07001);

		// 遷移先画面名を共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_NAME_CRW07001);

		// -------------------------------------------------- //
		// (7)ファイルダウンロード
		// -------------------------------------------------- //
		X31SDataBeanAccessArray bunshoList = bean.getDataBeanArray(CRW07001SFConst.ERROR_FILE);

		int selBunshoIndex = Integer.parseInt(bean.sendMessageString(CRW07001SFConst.LINE_NO, X31CWebConst.DATABEAN_GET_VALUE));
		X31SDataBeanAccess bunshoBean = bunshoList.getDataBean(selBunshoIndex);

		JCRWebCommon.setDownloadFile(this, bunshoBean.sendMessageString(CRW07001SFConst.L0_EFILE_KANRI_NO_01, X31CWebConst.DATABEAN_GET_VALUE)
			, bunshoBean.sendMessageString(CRW07001SFConst.L0_TAIORRKI_BUNSHO_FILE_NM_01, X31CWebConst.DATABEAN_GET_VALUE));

		return true;
	}

	/**
	 * ログリンククリック処理。
	 * <br>
	 * 履歴情報取込エラーデータファイルダウンロード（ログ表示）サービスを呼び出し、
	 * ログファイルを読み込み、内容を表示します。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean clickLinkTakeLog() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共有フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// ログ内容をクリア
		bean.sendMessage(CRW07001SFConst.LOG_NAIYO, X31CWebConst.DATABEAN_CLEAR);

		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// ユースケースID格納用Map
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0136");

		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean};

		// マッピングクラス
		CRSV0136_CRSV0136OPDBMapper mapper = new CRSV0136_CRSV0136OPDBMapper();

		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// マッピング処理（上り）
		mapper.setCRSV013601SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setGETDENSHIFILECTL1ICC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2);

		// サービス実行
		invokeService(paramMap, dataMap, outputMap);

		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// マッピング処理（下り）
		mapper.getGETDENSHIFILECTL1ICC(paramBean, outputMap);

		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		// 遷移先画面IDを共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_ID_CRW07001);

		// 遷移先画面名を共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_NAME_CRW07001);

		return true;
	}

	/**
	 * 削除ボタン押下処理。
	 * <br>
	 * 入力チェックを行い、エラーがない場合は、履歴情報取込エラーデータファイル削除確認画面に遷移する。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean delete() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共有フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// -------------------------------------------------- //
		// (1)引継情報の取得	
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// エラーデータファイルリスト
		X31SDataBeanAccessArray errorFileList = bean.getDataBeanArray(CRW07001SFConst.ERROR_FILE);

		// 削除ファイルリスト
		X31SDataBeanAccessArray deleteFileList = bean.getDataBeanArray(CRW07001SFConst.DEL_FILE);

		// 削除ファイルリストをクリア
		deleteFileList.clearArray();

		// 削除チェックファイル件数
		int delCount = 0;

		// エラーデータファイルリストからチェックがついたものを取得し、削除ファイルリストに移送する。
		for (int i = 0; i < errorFileList.getCount(); i++)
		{
			X31SDataBeanAccess checkFileBean = errorFileList.getDataBean(i);

			boolean checked = checkFileBean.sendMessageBoolean(CRW07001SFConst.L0_SELECTED_BOOLEAN_01, X31CWebConst.DATABEAN_GET_VALUE);

			// チェックされている場合
			if (checked)
			{
				// 削除チェックファイルリストに要素を追加
				X31SDataBeanAccess deleteFileBean = deleteFileList.addDataBean();

				// 削除用対応履歴電子ファイル管理番号
				deleteFileBean.sendMessageString(CRW07001SFConst.L1_TORK_EFILE_KNRI_NO_02, X31CWebConst.DATABEAN_SET_VALUE,
						checkFileBean.sendMessageString(CRW07001SFConst.L0_TORK_EFILE_KNRI_NO_01, X31CWebConst.DATABEAN_GET_VALUE));

				// 削除用対応履歴文書ファイル名
				String fileNm = checkFileBean.sendMessageString(CRW07001SFConst.L0_TAIORRKI_BUNSHO_FILE_NM_01, X31CWebConst.DATABEAN_GET_VALUE);
				deleteFileBean.sendMessageString(CRW07001SFConst.L1_TAIORRKI_BUNSHO_FILE_NM_02, X31CWebConst.DATABEAN_SET_VALUE, fileNm);

				// 削除用電子ファイル管理番号
				deleteFileBean.sendMessageString(CRW07001SFConst.L1_EFILE_KANRI_NO_02, X31CWebConst.DATABEAN_SET_VALUE,
						checkFileBean.sendMessageString(CRW07001SFConst.L0_EFILE_KANRI_NO_01, X31CWebConst.DATABEAN_GET_VALUE));

				// 削除用世代登録年月日時分秒
				deleteFileBean.sendMessageString(CRW07001SFConst.L1_GENE_ADD_DTM_02, X31CWebConst.DATABEAN_SET_VALUE,
						checkFileBean.sendMessageString(CRW07001SFConst.L0_GENE_ADD_DTM_01, X31CWebConst.DATABEAN_GET_VALUE));

				// 削除用更新年月日時分秒
				deleteFileBean.sendMessageString(CRW07001SFConst.L1_UPD_DTM_02, X31CWebConst.DATABEAN_SET_VALUE,
						checkFileBean.sendMessageString(CRW07001SFConst.L0_UPD_DTM_01, X31CWebConst.DATABEAN_GET_VALUE));

				// ログ削除用対応履歴電子ファイル管理番号
				deleteFileBean.sendMessageString(CRW07001SFConst.L1_LOG_TORK_EFILE_KNRI_NO_02, X31CWebConst.DATABEAN_SET_VALUE,
						checkFileBean.sendMessageString(CRW07001SFConst.L0_LOG_TORK_EFILE_KNRI_NO_01, X31CWebConst.DATABEAN_GET_VALUE));

				// ログ削除用対応履歴文書ファイル名
				String logFileNm = checkFileBean.sendMessageString(CRW07001SFConst.L0_LOG_TAIORRKI_BUNSHO_FILE_NM_01, X31CWebConst.DATABEAN_GET_VALUE);
				deleteFileBean.sendMessageString(CRW07001SFConst.L1_LOG_TAIORRKI_BUNSHO_FILE_NM_02, X31CWebConst.DATABEAN_SET_VALUE, logFileNm);

				// ログ削除用電子ファイル管理番号
				deleteFileBean.sendMessageString(CRW07001SFConst.L1_LOG_EFILE_KANRI_NO_02, X31CWebConst.DATABEAN_SET_VALUE,
						checkFileBean.sendMessageString(CRW07001SFConst.L0_LOG_EFILE_KANRI_NO_01, X31CWebConst.DATABEAN_GET_VALUE));

				// ログ削除用世代登録年月日時分秒
				deleteFileBean.sendMessageString(CRW07001SFConst.L1_LOG_GENE_ADD_DTM_02, X31CWebConst.DATABEAN_SET_VALUE,
						checkFileBean.sendMessageString(CRW07001SFConst.L0_LOG_GENE_ADD_DTM_01, X31CWebConst.DATABEAN_GET_VALUE));

				// ログ削除用更新年月日時分秒
				deleteFileBean.sendMessageString(CRW07001SFConst.L1_LOG_UPD_DTM_02, X31CWebConst.DATABEAN_SET_VALUE,
						checkFileBean.sendMessageString(CRW07001SFConst.L0_LOG_UPD_DTM_01, X31CWebConst.DATABEAN_GET_VALUE));

				// 行スタイルクラス
				deleteFileBean.sendMessageString(CRW07001SFConst.L1_LINE_STYLE_CLASS_02,
						X31CWebConst.DATABEAN_SET_VALUE, JCRWebCommon.getLineStyle(delCount + 1));
				// 行スタイルＩＤ
				deleteFileBean.sendMessageString(CRW07001SFConst.L1_LINE_STYLE_ID_02,
						X31CWebConst.DATABEAN_SET_VALUE, JCRWebCommon.getConstantValue("tr" + String.valueOf(delCount)));

				delCount++;

			}

		}

		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		callDeleteService(JPCModelConstant.FUNC_CD_2);

		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		// 遷移先画面IDを共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_ID_CRW07002);

		// 遷移先画面名を共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_NAME_CRW07002);

		return true;
	}

	/**
	 * 確定処理を行う。<br>
	 * <br>
	 * 履歴情報取込エラーファイル削除処理を確定する。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean fix() throws Exception
	{
		// 共有フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		callDeleteService(JPCModelConstant.FUNC_CD_1);

		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		// 遷移先画面IDを共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_ID_CRW07001);

		// 遷移先画面名を共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_NAME_CRW07001);

		// 履歴情報取込エラーデータファイルダウンロード画面を初期化
		return init();
	}

	/**
	 * キャンセル処理を行う。<br>
	 * <br>
	 * 履歴情報取込エラーデータファイルダウンロード画面に戻る。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean cancel() throws Exception
	{
		// 共有フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (6)遷移先画面の設定
		// -------------------------------------------------- //
		// 遷移先画面IDを共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_ID_CRW07001);

		// 遷移先画面名を共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_NAME_CRW07001);

		return true;
	}

	/**
	 * 削除サービス呼出処理。
	 * <br>
	 * 履歴情報取込エラーファイル削除サービスを呼び出し、対応履歴電子ファイル管理、電子ファイル管理の削除を実行する。
	 * 
	 * @param funcCd 機能コード
	 */
	private void callDeleteService(String funcCd)
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 電子ファイル削除のマッピング処理に必要なリストを生成する。
		ArrayList<HashMap<String, Object>> listDelEfileKanri = new  ArrayList<HashMap<String, Object>>(); 

		// (a) 電子ファイル削除用のリストの生成を行う。
		X31SDataBeanAccessArray delfileList = bean.getDataBeanArray(CRW07001SFConst.DEL_FILE);

		// (b) 電子ファイル管理サービスインターフェイスに引き渡す情報を設定する。
		for (int i = 0; i < delfileList.getCount(); i++)
		{
			X31SDataBeanAccess bunshoBean = delfileList.getDataBean(i);

			// エラーファイルmap追加
			HashMap<String, Object> mapDelEfileKanri = new HashMap<String, Object>();

			// 電子ファイル管理番号
			mapDelEfileKanri.put("efile_kanri_no", JCRWebCommon.getReplaceNoString(this, bunshoBean.sendMessageString(
					CRW07001SFConst.L1_EFILE_KANRI_NO_02, X31CWebConst.DATABEAN_GET_VALUE)));
			// 世代登録年月日時分秒
			mapDelEfileKanri.put("gene_add_dtm_bf", bunshoBean.sendMessageString(
					CRW07001SFConst.L1_GENE_ADD_DTM_02, X31CWebConst.DATABEAN_GET_VALUE));
			// 更新前更新年月日時分秒
			mapDelEfileKanri.put("upd_dtm_bf", bunshoBean.sendMessageString(
					CRW07001SFConst.L1_UPD_DTM_02, X31CWebConst.DATABEAN_GET_VALUE));

			listDelEfileKanri.add(mapDelEfileKanri);

			// ログファイルmap追加
			HashMap<String, Object> mapDelEfileKanri2 = new HashMap<String, Object>();

			// 電子ファイル管理番号
			mapDelEfileKanri2.put("efile_kanri_no", JCRWebCommon.getReplaceNoString(this, bunshoBean.sendMessageString(
					CRW07001SFConst.L1_LOG_EFILE_KANRI_NO_02, X31CWebConst.DATABEAN_GET_VALUE)));
			// 世代登録年月日時分秒
			mapDelEfileKanri2.put("gene_add_dtm_bf", bunshoBean.sendMessageString(
					CRW07001SFConst.L1_LOG_GENE_ADD_DTM_02, X31CWebConst.DATABEAN_GET_VALUE));
			// 更新前更新年月日時分秒
			mapDelEfileKanri2.put("upd_dtm_bf", bunshoBean.sendMessageString(
					CRW07001SFConst.L1_LOG_UPD_DTM_02, X31CWebConst.DATABEAN_GET_VALUE));

			listDelEfileKanri.add(mapDelEfileKanri2);
		}

		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean};

		// ユースケースID格納用マップ
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0137");

		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// マッピングクラス
		CRSV0137_CRSV0137OPDBMapper mapper = new CRSV0137_CRSV0137OPDBMapper();
		mapper.setADDDELBUNSHOCTLCC(paramBean, dataMap, funcCd);

		((HashMap)dataMap.get("ADDDELBUNSHOCTLCC")).put("DEL_EFILE_KANRI_List", listDelEfileKanri);

		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// サービス実行
		invokeService(paramMap, dataMap, outputMap);

	}

	/**
	 * 最大文字列設定処理を行う。
	 * <br>
	 * 一覧出力データを総嘗めし、各項目の出力最大文字列を取得・設定します。
	 * 
	 */
	private void setMaxString()
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 最大桁数ファイル名
		String maxFileNm = "";

		// エラーファイルリスト
		X31SDataBeanAccessArray detailBeanList = bean.getDataBeanArray(CRW07001SFConst.ERROR_FILE);

		// 桁数比較ワーク領域
		String wrkLengthCheck = "";

		// 最大桁数項目の設定
		for (int i = 0; i < detailBeanList.getCount(); i++)
		{
			// チェックファイルリスト
			X31SDataBeanAccess detailBean = detailBeanList.getDataBean(i);

			// 最大桁数ファイル名
			wrkLengthCheck = detailBean.sendMessageString(CRW07001SFConst.L0_TAIORRKI_BUNSHO_FILE_NM_01, X31CWebConst.DATABEAN_GET_VALUE);

			if (!JCRUtilCommon.isNull(wrkLengthCheck)
				&& wrkLengthCheck.getBytes().length > maxFileNm.getBytes().length)
			{
				maxFileNm = wrkLengthCheck;
			}

		}

	}

	/**
	 * サービスフォームBeanのクリアを行う。<br>
	 * <br>
	 * サービスフォームBeanの引継ぎ項目以外の値をクリアします。
	 * 引継ぎ項目：なし
	 * 
	 */
	private void clearBean()
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// サービスフォームBeanの項目をクリアする。
		bean.sendMessage(CRW07001SFConst.STDARD_YEAR, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW07001SFConst.STDARD_MON, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW07001SFConst.STDARD_DAY, X31CWebConst.DATABEAN_CLEAR);
		bean.getDataBeanArray(CRW07001SFConst.ERROR_FILE).clearArray();
		bean.getDataBeanArray(CRW07001SFConst.DEL_FILE).clearArray();
		bean.sendMessage(CRW07001SFConst.LOG_NAIYO, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW07001SFConst.LINE_NO, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW07001SFConst.ALL_WKGRP_SELECT_FLG, X31CWebConst.DATABEAN_CLEAR);

	}

}
