/*******************************************************************************
All Rights reserved,Copyright (c) K-Opticom
********************************************************************************
*＜プログラム内容＞
* システム名        ：eo顧客基幹システム
* モジュール名      ：CRW00801SFLogic
* ソースファイル名  ：CRW00801SFLogic.java
* 作成者            ：富士通
* 日付              ：2011年08月06日
*＜機能概要＞
* メール転送ビューロジック
*＜修正履歴＞
* バージョン    修正日      修正者      修正内容
* ｖ1.00.00
* ｖ5.00.00		2013/03/13	FJ)伊藤		ANK-1496-00-00_＜キーマン教育・要望対応＞対応履歴Ｓ関連画面のデフォルト値変更対応
* ｖ7.00.00		2014/03/26	FJ)伊藤		OM-2014-0001236  メール送信トランザクション分割
* ｖ19.00.00	2015/10/15	FJ)木庭		ANK-2669-00-00
*
********************************************************************************/

package eo.web.webview.CRW00801SF;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.EventObject;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;

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.util.JCRUtilCommon;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CRW00701SF.CRW00701SFConst;
import eo.web.webview.CRW01101SF.CRW01101SFConst;
import eo.web.webview.CRW01201SF.CRW01201SFConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCScreenConst;
import eo.web.webview.common.JCRScreenConst;
import eo.web.webview.common.JCRWebCommon;
import eo.web.webview.mapping.CRSV0155_CRSV0155OPDBMapper;
import eo.web.webview.mapping.CRSV0156_CRSV0156OPDBMapper;
import eo.web.webview.mapping.CRSV0157_CRSV0157OPDBMapper;
import eo.web.webview.mapping.CRSV0158_CRSV0158OPDBMapper;
import eo.web.webview.mapping.CRSV0159_CRSV0159OPDBMapper;

/**
 * メール転送ビューロジック.<p>
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class CRW00801SFLogic extends JCCWebBusinessLogic
{

	/**
	 * 引継項目リスト
	 */
	private static final Set<String> HKTG_ITEM_SET = new HashSet<String>();

	/**
	 * Boolean項目リスト
	 */
	private static final Set<String> BOOLEAN_ITEM_SET = new HashSet<String>();

	/**
	 * Array項目リスト
	 */
	private static final Set<String> ARRAY_ITEM_SET = new HashSet<String>();
	
	static {
		//
		Collections.addAll(HKTG_ITEM_SET
				, CRW00801SFConst.TRAN_DIV
				, CRW00801SFConst.SVC_KEI_NO
				, CRW00801SFConst.PROSCST_NO
				, CRW00801SFConst.HKTGI_TAIO_KIROK_NO
				, CRW00801SFConst.HKTGI_TAIO_KIROK_DTL_NO
				, CRW00801SFConst.UPD_DTM_BF);
		//
		Collections.addAll(BOOLEAN_ITEM_SET
				, CRW00801SFConst.TOIAWASE_ID_HUKA
				, CRW00801SFConst.BK_TOIAWASE_ID_HUKA
				, CRW00801SFConst.FORWARD_DSP_FLG
				, CRW00801SFConst.SAVE_TMP_DSP_FLG
				, CRW00801SFConst.CLEAR_DSP_FLG
				, CRW00801SFConst.SEND_DSP_FLG);

		//
		Collections.addAll(ARRAY_ITEM_SET
				, CRW00801SFConst.TOIAWASE_UK_SBT
				, CRW00801SFConst.RSP_CTGR_LIST
				, CRW00801SFConst.BUNSHOLIST
				, CRW00801SFConst.CALLBK_SHITEI_TYPE
				, CRW00801SFConst.TO_MLAD
				, CRW00801SFConst.FROM_MLAD
				, CRW00801SFConst.HNSIN_SYMBOL
				, CRW00801SFConst.SIGN_TEMPLA_TYPE
				, CRW00801SFConst.BUNSHOLIST2
				, CRW00801SFConst.SENDS_MLAD);
	}

	/**
	 * 最大添付ファイルサイズ.<br>
	 */
	private static final String  LIMIT_SIZE = JCRWebCommon.getApplicationConst("CR_LIMIT_SIZE_FORWARD");

	/**
	 * 親クラス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>
	 * 初期表示を行う。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean init() throws Exception
	{

		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// ユースケースID格納用マップ
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// (1) 引継情報の取得
		// (a)画面情報取得部品（JCCWebCommon.getScreenInfo)を使用し、引継情報を取得する。
		//     ※※処理区分が設定されている場合は、引継情報の取得は行わない。（クリアボタン押下時の処理のため）
		if (JCRUtilCommon.isNull(bean.sendMessageString(CRW00801SFConst.TRAN_DIV, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			JCRWebCommon.getScreenInfo(this);
		}
		
		// (2)サービスフォームBeanの設定
		// (a)サービスフォームBeanの全項目をクリアする。
		clearBean(bean);

		// (b)システム日付の取得
		String sysDate = JCRWebCommon.getSysDate();

		// (c)サービスフォームBean項目の設定
		// 処理区分
		String tranDiv = bean.sendMessageString(CRW00801SFConst.TRAN_DIV, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 基準年月日
		bean.sendMessageString(CRW00801SFConst.STDARDYMD
				, X31CWebConst.DATABEAN_SET_VALUE, sysDate);

		// メール転送選択、メール簡易送信の場合
		if (JCRStrConst.CRW00801_TRAN_DIV_MAIL_FORWARD_CHOICE.equals(tranDiv)
			|| JCRStrConst.CRW00801_TRAN_DIV_MAIL_KANI_SEND.equals(tranDiv))
		{
			// 検索用編集状態フラグ
			bean.sendMessageString(CRW00801SFConst.SERCH_HENSHU_STAT_FLG
					, X31CWebConst.DATABEAN_SET_VALUE, "");
			// 検索用対応記録明細番号
			bean.sendMessageString(CRW00801SFConst.SERCH_TAIO_KIROK_DTL_NO
					, X31CWebConst.DATABEAN_SET_VALUE, bean.sendMessageString(CRW00801SFConst.HKTGI_TAIO_KIROK_DTL_NO, X31CWebConst.DATABEAN_GET_VALUE));
		}
		else
		{
			// 検索用編集状態フラグ
			bean.sendMessageString(CRW00801SFConst.SERCH_HENSHU_STAT_FLG
					, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.HENSHU_STAT_FLG_HENSHU_CHU);
			// 検索用対応記録明細番号
			bean.sendMessageString(CRW00801SFConst.SERCH_TAIO_KIROK_DTL_NO
					, X31CWebConst.DATABEAN_SET_VALUE, "");
		}

		// (3)サービス呼出処理
		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean, commoninfoBean};

		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0155");

		// マッピングクラス
		CRSV0155_CRSV0155OPDBMapper mapper = new CRSV0155_CRSV0155OPDBMapper();

		// マッピング処理（上り）
		mapper.setGETCDNMCTLCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setGETSIGNTEMPLA1RCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2);
		mapper.setGETTAIORRKMLAD1RCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setGETTAIOKRK1ICC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setGETTAIOKRKDTL1RCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setGETTAIOKRKDTL1R2CC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setGETTAIOKRKDTL1R3CC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setGETHOTVOIC1RCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setGETBUNSHOCTL1RCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setGETWKKBTSHKVCTL1RCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2);
		mapper.setGETSIGNTEMPLA1ICC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setGETWKKBTSHKVCTL1R2CC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2);
		mapper.setGETTAIORRKMLAD1ICC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setGETWKKBTSHKVCTL1R3CC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2);
		mapper.setGETTAIORRKMLAD1I2CC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setGETBUNSHOCTL1R2CC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setHKTG_WORK(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		
		// サービス実行
		invokeService(paramMap, dataMap, outputMap);

		// (4)サービス処理結果の設定
		// (a) DataBean⇔サービスのマッピングに関しては、「4.サービス項目-DataBean項目マッピング」参照
		// マッピング処理（下り）
		mapper.getGETCDNMCTLCC(paramBean, outputMap);
		mapper.getGETSIGNTEMPLA1RCC(paramBean, outputMap);
		mapper.getGETTAIORRKMLAD1RCC(paramBean, outputMap);
		mapper.getGETTAIOKRK1ICC(paramBean, outputMap);
		mapper.getGETTAIOKRKDTL1RCC(paramBean, outputMap);
		mapper.getGETTAIOKRKDTL1R2CC(paramBean, outputMap);
		mapper.getGETTAIOKRKDTL1R3CC(paramBean, outputMap);
		mapper.getGETHOTVOIC1RCC(paramBean, outputMap);
		mapper.getGETBUNSHOCTL1RCC(paramBean, outputMap);
		mapper.getGETWKKBTSHKVCTL1RCC(paramBean, outputMap);
		mapper.getGETSIGNTEMPLA1ICC(paramBean, outputMap);
		mapper.getGETWKKBTSHKVCTL1R2CC(paramBean, outputMap);
		mapper.getGETTAIORRKMLAD1ICC(paramBean, outputMap);
		mapper.getGETWKKBTSHKVCTL1R3CC(paramBean, outputMap);
		mapper.getGETTAIORRKMLAD1I2CC(paramBean, outputMap);
		mapper.getGETBUNSHOCTL1R2CC(paramBean, outputMap);

		// (b) サービス実行後、日付項目については、Beanの設定値の有無により日付の分割処理を行う。
		// コールバック希望年月日
		String callbkKiboYmd = bean.sendMessageString(CRW00801SFConst.CALLBK_KIBO_YMD, X31CWebConst.DATABEAN_GET_VALUE);

		// コールバック希望年月日がNot Nullの場合
		if (!JCRUtilCommon.isNull(callbkKiboYmd))
		{
			// コールバック希望年月日（年）
			bean.sendMessageString(CRW00801SFConst.CALLBK_KIBO_YMD_YYYY, X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.toYearFromYmd(callbkKiboYmd));
			// コールバック希望年月日（月）
			bean.sendMessageString(CRW00801SFConst.CALLBK_KIBO_YMD_MM, X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.toMonthFromYmd(callbkKiboYmd));
			// コールバック希望年月日（日）
			bean.sendMessageString(CRW00801SFConst.CALLBK_KIBO_YMD_DD, X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.toDayFromYmd(callbkKiboYmd));
		}

		// コールバック希望時間
		String callbkKiboTime = bean.sendMessageString(CRW00801SFConst.CALLBK_KIBO_TIME, X31CWebConst.DATABEAN_GET_VALUE);

		// コールバック希望時間がNot Nullの場合
		if (!JCRUtilCommon.isNull(callbkKiboTime))
		{
			// コールバック希望時間（時）
			bean.sendMessageString(CRW00801SFConst.CALLBK_KIBO_TIME_HO, X31CWebConst.DATABEAN_SET_VALUE
					, JCRUtilCommon.formatDate(callbkKiboTime, JCRStrConst.FMT_HM, JCRStrConst.FMT_HO));
			// コールバック希望時間（分）
			bean.sendMessageString(CRW00801SFConst.CALLBK_KIBO_TIME_MI, X31CWebConst.DATABEAN_SET_VALUE
					, JCRUtilCommon.formatDate(callbkKiboTime, JCRStrConst.FMT_HM, JCRStrConst.FMT_MI));
			
		}

		// (c) 権限情報の取得処理
		// 送信ボタン使用可否の取得
		boolean kengenFlg = JCRWebCommon.checkAuthority(this, this.getGamenId() + ";" + JCRStrConst.AUTHORITY_KEY_B_SEND);

		// (d) 下記項目についての設定を行う。
		// 編集状態フラグ
		String henshuStatFlg = bean.sendMessageString(CRW00801SFConst.HENSHU_STAT_FLG, X31CWebConst.DATABEAN_GET_VALUE);

		// 対応記録明細番号
		//   下記条件のいづれかの場合、""に設定
		//   ・処理区分"2"(メール転送選択) かつ 編集状態フラグ"0"(完了)
		//   ・処理区分"3"(メール受信(転送)リンク)
		//   ・処理区分"4"(メール転送)
		
		// 前対応記録明細番号
		//   処理区分"2"(メール転送選択) かつ 編集状態フラグ"0"(完了)の場合
		//     SFDataBean.対応記録明細番号を設定

		String taioKirokDtlNo = bean.sendMessageString(CRW00801SFConst.TAIO_KIROK_DTL_NO, X31CWebConst.DATABEAN_GET_VALUE);

		// 処理区分"2"(メール転送選択) かつ 編集状態フラグ"0"(完了)の場合
		if (JCRStrConst.CRW00801_TRAN_DIV_MAIL_FORWARD_CHOICE.equals(tranDiv)
			&& JCRStrConst.CD_DIV_HENSHU_STAT_FLG_KANRYO.equals(henshuStatFlg)
			&& kengenFlg)
		{
			bean.sendMessageString(CRW00801SFConst.TAIO_KIROK_DTL_NO, X31CWebConst.DATABEAN_SET_VALUE, "");
			bean.sendMessageString(CRW00801SFConst.TAIO_KIROK_DTL_NO_BF, X31CWebConst.DATABEAN_SET_VALUE, taioKirokDtlNo);
		}
		// 処理区分"1"(メール転送) か処理区分"2"(メール転送選択) の場合
		else if (JCRStrConst.CRW00801_TRAN_DIV_MAIL_FORWARD.equals(tranDiv)
			|| JCRStrConst.CRW00801_TRAN_DIV_MAIL_FORWARD_CHOICE.equals(tranDiv))
		{
			bean.sendMessageString(CRW00801SFConst.TAIO_KIROK_DTL_NO_BF, X31CWebConst.DATABEAN_SET_VALUE, taioKirokDtlNo);
		}
		// 処理区分"3"(メール受信(転送)リンク)、処理区分"4"(メール転送)、処理区分"5"(メール簡易送信)の場合
		else if (JCRStrConst.CRW00801_TRAN_DIV_MAIL_FORWARD_RCV.equals(tranDiv)
			|| JCRStrConst.CRW00801_TRAN_DIV_MAIL_FORWARD_SEND.equals(tranDiv)
			|| JCRStrConst.CRW00801_TRAN_DIV_MAIL_KANI_SEND.equals(tranDiv))
		{
			bean.sendMessageString(CRW00801SFConst.TAIO_KIROK_DTL_NO, X31CWebConst.DATABEAN_SET_VALUE, "");
		}

		// 編集状態フラグ２
		// 処理区分"1"(メール転送)または"2"(メール転送選択)かつ	
		// SFDataBean.編集状態フラグが "1"(一時保存)の場合	
		//      "1"(一時保存)
		// 上記以外の場合	
		//      "0"(完了)
		if ((JCRStrConst.CRW00801_TRAN_DIV_MAIL_FORWARD.equals(tranDiv)
				|| JCRStrConst.CRW00801_TRAN_DIV_MAIL_FORWARD_CHOICE.equals(tranDiv))
			&& JCRStrConst.HENSHU_STAT_FLG_HENSHU_CHU.equals(henshuStatFlg))
		{
			bean.sendMessageString(CRW00801SFConst.HENSHU_STAT_FLG2, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.HENSHU_STAT_FLG_HENSHU_CHU);
		}
		else
		{
			bean.sendMessageString(CRW00801SFConst.HENSHU_STAT_FLG2, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.HENSHU_STAT_FLG_KANRYO);
		}

		// 署名テンプレート本文
		// 署名テンプレートフッター
		// 署名テンプレート
		X31SDataBeanAccessArray signTemplaTypeArray = bean.getDataBeanArray(CRW00801SFConst.SIGN_TEMPLA_TYPE);
		X31SDataBeanAccess signTemplaTypeBean = signTemplaTypeArray.getDataBean(0);

		String signTemplaText = null;
		String signTemplaFooter = null;

		// 処理区分"1"(メール転送)
		if (JCRStrConst.CRW00801_TRAN_DIV_MAIL_FORWARD.equals(tranDiv))
		{
			// 処理区分"1"(メール転送)かつSFDataBean.対応記録明細番号がNULLの場合
			//      SFDataBean.署名テンプレート本文１
			//      SFDataBean.署名テンプレートフッター１
			if (JCRUtilCommon.isNull(taioKirokDtlNo))
			{
				// 署名テンプレート本文
				signTemplaText = signTemplaTypeBean.sendMessageString(CRW00801SFConst.L9_SIGN_TEMPLA_TEXT1_10, X31CWebConst.DATABEAN_GET_VALUE);
				// 署名テンプレートフッター
				signTemplaFooter = signTemplaTypeBean.sendMessageString(CRW00801SFConst.L9_SIGN_TEMPLA_FOOTER1_10, X31CWebConst.DATABEAN_GET_VALUE);
				// 署名テンプレートタイプコード
				String signTemplaTypeCd = signTemplaTypeBean.sendMessageString(CRW00801SFConst.L9_SEL_SIGN_TEMPLA_TYPE_CD_10, X31CWebConst.DATABEAN_GET_VALUE);

				// 署名テンプレートタイプコードインデックス
				String selectedIndex = JCRWebCommon.getPullDownIndex(bean, signTemplaTypeCd
						, CRW00801SFConst.SIGN_TEMPLA_TYPE, CRW00801SFConst.L9_SIGN_TEMPLA_TYPE_CD_10);
				signTemplaTypeBean.sendMessageString(CRW00801SFConst.L9_SEL_SIGN_TEMPLA_TYPE_IDX_10
						, X31CWebConst.DATABEAN_SET_VALUE, selectedIndex);
			}
			// 処理区分"1"(メール転送)かつSFDataBean.対応記録明細番号がNULLでない場合
			//      SFDataBean.署名テンプレート本文２
			//      SFDataBean.署名テンプレートフッター２
			else
			{
				signTemplaText = signTemplaTypeBean.sendMessageString(CRW00801SFConst.L9_SIGN_TEMPLA_TEXT2_10, X31CWebConst.DATABEAN_GET_VALUE);
				signTemplaFooter = signTemplaTypeBean.sendMessageString(CRW00801SFConst.L9_SIGN_TEMPLA_FOOTER2_10, X31CWebConst.DATABEAN_GET_VALUE);
			}
		}
		// 処理区分"3"(メール受信(転送)リンク)の場合
		//      SFDataBean.署名テンプレート本文１
		//      SFDataBean.署名テンプレートフッター１
		else if (JCRStrConst.CRW00801_TRAN_DIV_MAIL_FORWARD_RCV.equals(tranDiv))
		{
			signTemplaText = signTemplaTypeBean.sendMessageString(CRW00801SFConst.L9_SIGN_TEMPLA_TEXT1_10, X31CWebConst.DATABEAN_GET_VALUE);
			signTemplaFooter = signTemplaTypeBean.sendMessageString(CRW00801SFConst.L9_SIGN_TEMPLA_FOOTER1_10, X31CWebConst.DATABEAN_GET_VALUE);
			
			String signTemplaTypeCd = signTemplaTypeBean.sendMessageString(CRW00801SFConst.L9_SEL_SIGN_TEMPLA_TYPE_CD_10, X31CWebConst.DATABEAN_GET_VALUE);
			String selectedIndex = JCRWebCommon.getPullDownIndex(bean, signTemplaTypeCd
					, CRW00801SFConst.SIGN_TEMPLA_TYPE, CRW00801SFConst.L9_SIGN_TEMPLA_TYPE_CD_10);
			signTemplaTypeBean.sendMessageString(CRW00801SFConst.L9_SEL_SIGN_TEMPLA_TYPE_IDX_10, X31CWebConst.DATABEAN_SET_VALUE, selectedIndex);
		}
	    // 上記以外の場合
		//      SFDataBean.署名テンプレート本文２
		//      SFDataBean.署名テンプレートフッター２
		else
		{
			signTemplaText = signTemplaTypeBean.sendMessageString(CRW00801SFConst.L9_SIGN_TEMPLA_TEXT2_10, X31CWebConst.DATABEAN_GET_VALUE);
			signTemplaFooter = signTemplaTypeBean.sendMessageString(CRW00801SFConst.L9_SIGN_TEMPLA_FOOTER2_10, X31CWebConst.DATABEAN_GET_VALUE);
		}

		signTemplaTypeBean.sendMessageString(CRW00801SFConst.L9_SEL_SIGN_TEMPLA_TEXT_10, X31CWebConst.DATABEAN_SET_VALUE, signTemplaText);
		signTemplaTypeBean.sendMessageString(CRW00801SFConst.L9_SEL_SIGN_TEMPLA_FOOTER_10, X31CWebConst.DATABEAN_SET_VALUE, signTemplaFooter);

		// Ｆｒｏｍメルアド
		X31SDataBeanAccessArray fromMladArray = bean.getDataBeanArray(CRW00801SFConst.FROM_MLAD);
		X31SDataBeanAccess fromMladBean = fromMladArray.getDataBean(0);
		String fromMlad = fromMladBean.sendMessageString(CRW00801SFConst.L8_SEL_FROM_MLAD_09, X31CWebConst.DATABEAN_GET_VALUE);

		// Ｆｒｏｍメールアドレスインデックス
		fromMladBean.sendMessageString(CRW00801SFConst.L8_SEL_FROM_MLAD_IDX_09, X31CWebConst.DATABEAN_SET_VALUE
				, JCRWebCommon.getPullDownIndex(bean, fromMlad, CRW00801SFConst.FROM_MLAD, CRW00801SFConst.L8_FROM_MLAD_LIST_09));

		// メール件名修飾用文字列
		X31SDataBeanAccessArray hnsinSymbolArray = bean.getDataBeanArray(CRW00801SFConst.HNSIN_SYMBOL);
		X31SDataBeanAccess hnsinSymbolBean = hnsinSymbolArray.getDataBean(0);
		String hnsinSymbolCd = hnsinSymbolBean.sendMessageString(CRW00801SFConst.L7_SEL_HNSIN_SYMBOL_CD_08, X31CWebConst.DATABEAN_GET_VALUE);
		// メール件名修飾用文字列コードインデックス ← 部品呼び出し
		hnsinSymbolBean.sendMessageString(CRW00801SFConst.L7_SEL_HNSIN_SYMBOL_IDX_08, X31CWebConst.DATABEAN_SET_VALUE
				, JCRWebCommon.getPullDownIndex(bean, hnsinSymbolCd, CRW00801SFConst.HNSIN_SYMBOL, CRW00801SFConst.L7_HNSIN_SYMBOL_CD_08));

		// 問合せ文
		if (JCRStrConst.CRW00801_TRAN_DIV_MAIL_FORWARD_RCV.equals(tranDiv))
		{
			bean.sendMessageString(CRW00801SFConst.TOIAWASE_NAIYO, X31CWebConst.DATABEAN_SET_VALUE
					, bean.sendMessageString(CRW00801SFConst.ML_RCV_TEXT, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 問合せＩＤ付加
		// false
		bean.sendMessageBoolean(CRW00801SFConst.TOIAWASE_ID_HUKA, X31CWebConst.DATABEAN_SET_VALUE, false);

		// 文書ファイルリスト２
		X31SDataBeanAccessArray bunshoList2Array = bean.getDataBeanArray(CRW00801SFConst.BUNSHOLIST2);
		// 処理区分"1"(メール転送)かつSFDataBean.対応記録明細番号がNULLの場合	
		// 文書ファイル一覧２.添付ファイル状態区分
		//      "1"(新規添付ファイル)を設定
		// 文書ファイル一覧２.メール添付ファイル有無
		//      全てのチェックに対して"true"(添付有)を強制設定
		if ((JCRStrConst.CRW00801_TRAN_DIV_MAIL_FORWARD.equals(tranDiv)
				&& JCRUtilCommon.isNull(taioKirokDtlNo))
				|| JCRStrConst.CRW00801_TRAN_DIV_MAIL_FORWARD_RCV.equals(tranDiv))
		{
			for (int i = 0; i < bunshoList2Array.getCount().intValue(); i++)
			{
				X31SDataBeanAccess bunshoList2Bean = bunshoList2Array.getDataBean(i);
				// 文書ファイル一覧２.添付ファイル状態区分
				bunshoList2Bean.sendMessageString(CRW00801SFConst.L12_TMP_FILE_STAT_DIV_12, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.TMP_FILE_STAT_DIV_NEW);
				// 文書ファイル一覧２.メール添付ファイル有無
				bunshoList2Bean.sendMessageBoolean(CRW00801SFConst.L12_MAIL_TEMP_FILE_UM_12, X31CWebConst.DATABEAN_SET_VALUE, Boolean.TRUE);
			}

		}
		// 上記以外の場合	
		// 文書ファイル一覧２.添付ファイル状態区分
		//      "0"(文書管理テーブルに登録済)を設定
		// 文書ファイル一覧２.メール添付ファイル有無
		//      SFDataBean.文書ファイル一覧２.文書種別コードが
		//      "01"(対応記録)の場合、該当ファイルに対して"false"(添付無)を設定
		//      "02"(対応記録明細)の場合、該当ファイルに対してtrue(メール添付有)を設定
		else
		{
			taioKirokDtlNo = bean.sendMessageString(CRW00801SFConst.TAIO_KIROK_DTL_NO, X31CWebConst.DATABEAN_GET_VALUE);

			for (int i = 0; i < bunshoList2Array.getCount().intValue(); i++)
			{
				X31SDataBeanAccess bunshoList2Bean = bunshoList2Array.getDataBean(i);
				
				String bunshoSbtCd = bunshoList2Bean.sendMessageString(CRW00801SFConst.L12_BUNSHO_SBT_CD_12, X31CWebConst.DATABEAN_GET_VALUE);
				// メール添付ファイル有無が、"01"(対応記録)の場合
				if (JCRStrConst.CD_DIV_BUNSHO_SBT_CD_TAIOKRK.equals(bunshoSbtCd))
				{
					// 文書ファイル一覧２.添付ファイル状態区分
					bunshoList2Bean.sendMessageString(CRW00801SFConst.L12_TMP_FILE_STAT_DIV_12
							, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.TMP_FILE_STAT_DIV_NEW);
					// 文書ファイル一覧２.メール添付ファイル有無
					bunshoList2Bean.sendMessageBoolean(CRW00801SFConst.L12_MAIL_TEMP_FILE_UM_12
							, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
				}
				// メール添付ファイル有無が、"02"(対応記録明細)の場合
				else
				{
					// 抽出結果の対応記録明細番号が、画面表示対象の対応記録明細番号と異なる場合は、「未登録」として表示する。
					if (JCRUtilCommon.isNull(taioKirokDtlNo) || !taioKirokDtlNo.equals(bunshoList2Bean.sendMessageString(
							CRW00801SFConst.L12_TAIO_KIROK_DTL_NO_12, X31CWebConst.DATABEAN_GET_VALUE)))
					{
						// 文書ファイル一覧２.添付ファイル状態区分
						bunshoList2Bean.sendMessageString(CRW00801SFConst.L12_TMP_FILE_STAT_DIV_12
								, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.TMP_FILE_STAT_DIV_NEW);
					}
					// 抽出結果の対応記録明細番号が、画面表示対象の対応記録明細番号と同じ場合は、「登録済」として表示する。
					else
					{
						// 文書ファイル一覧２.添付ファイル状態区分
						bunshoList2Bean.sendMessageString(CRW00801SFConst.L12_TMP_FILE_STAT_DIV_12
								, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.TMP_FILE_STAT_DIV_EXIST);
					}
					// 文書ファイル一覧２.メール添付ファイル有無
					bunshoList2Bean.sendMessageBoolean(CRW00801SFConst.L12_MAIL_TEMP_FILE_UM_12
							, X31CWebConst.DATABEAN_SET_VALUE, Boolean.TRUE);
				}

			}
			
		}
		
// ANK-2669-00-00 ADD START
		// 添付ファイル権限がない場合、該当ファイルに対して"false"(添付無)を設定
		if(commoninfoBean.getDataBeanArray(CommonInfoCFConst.REQUEST_AUTHORITY_LIST).getCount() != 0){
			
			X31SDataBeanAccess subbean = commoninfoBean.getDataBeanArray(CommonInfoCFConst.REQUEST_AUTHORITY_LIST).getDataBean(1);
			String value = getValue(subbean, CommonInfoCFConst.REQUEST_AUTHORITY_03);
			String flg =  getValue(subbean, CommonInfoCFConst.REQUEST_AUTHORITY_FLG_03);
		
			if( !value.equals("DISPLAY_FLG") || !flg.equals("1")){
				for (int i = 0; i < bunshoList2Array.getCount().intValue(); i++)
				{
					X31SDataBeanAccess bunshoList2Bean = bunshoList2Array.getDataBean(i);
					// 文書ファイル一覧２.メール添付ファイル有無
					bunshoList2Bean.sendMessageBoolean(CRW00801SFConst.L12_MAIL_TEMP_FILE_UM_12, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
				}
				
			}
		} else {
			// 権限リストが取得できなかった場合も該当ファイルに対して"false"(添付無)を設定
			for (int i = 0; i < bunshoList2Array.getCount().intValue(); i++)
			{
				X31SDataBeanAccess bunshoList2Bean = bunshoList2Array.getDataBean(i);
				// 文書ファイル一覧２.メール添付ファイル有無
				bunshoList2Bean.sendMessageBoolean(CRW00801SFConst.L12_MAIL_TEMP_FILE_UM_12, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
			}
		}
// ANK-2669-00-00 ADD END

		// 一時保存ボタン表示フラグ
		// 下記条件のいづれかの場合、falseに設定
		// ・処理区分"5"(メール簡易送信)
		if (JCRStrConst.CRW00801_TRAN_DIV_MAIL_KANI_SEND.equals(tranDiv))
		{
			bean.sendMessageBoolean(CRW00801SFConst.SAVE_TMP_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
		}

		// 送信権限保有フラグ
		bean.sendMessageBoolean(CRW00801SFConst.SND_AUTHORITY_HOYU_FLG, X31CWebConst.DATABEAN_SET_VALUE, kengenFlg);

		// (e)活性・非活性制御
		// ※処理詳細に関しては、「UIA14_CRW00801_メール転送.xlsx」、7. 特記事項を参照

		// 応対区分／カテゴリリストの項目に対して、活性・非活性制御を行う。
		X31SDataBeanAccessArray rspCtgrList = bean.getDataBeanArray(CRW00801SFConst.RSP_CTGR_LIST);
		
		// 初期レコード
		X31SDataBeanAccess firstRspCtgrBean = rspCtgrList.getDataBean(0);
		firstRspCtgrBean.sendMessageString(CRW00801SFConst.L1_MOVE_UP_RSP_CTG_DISABLED_02, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);

		// 最終レコード
		X31SDataBeanAccess lastRspCtgrBean = rspCtgrList.getDataBean(rspCtgrList.getCount().intValue() - 1);
		lastRspCtgrBean.sendMessageString(CRW00801SFConst.L1_MOVE_DOWN_RSP_CTG_DISABLED_02, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);

		// 応対区分・カテゴリーリストが1件の場合、削除ボタンを使用不可とする
		if (rspCtgrList.getCount().intValue() == 1)
		{
			rspCtgrList.getDataBean(0).sendMessageString(CRW00801SFConst.L1_DELETE_RSP_CTG_DISABLED_02
					, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);
		}

		// 問合せ状態コード
		String toiawaseStatCd = bean.sendMessageString(CRW00801SFConst.TOIAWASE_STAT_CD, X31CWebConst.DATABEAN_GET_VALUE);

		bean.sendMessageString(CRW00801SFConst.SAVE_TMP_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_ACTIVE);

		// 処理区分が"5"（メール簡易送信）の場合
		if (JCRStrConst.CRW00801_TRAN_DIV_MAIL_KANI_SEND.equals(tranDiv))
		{
			// 問合せ状態コードが"102"（エスカレーション）の場合
			if (JCRStrConst.CD_DIV_TOIAWASE_STAT_CD_ESCL.equals(toiawaseStatCd))
			{
				bean.sendMessageBoolean(CRW00801SFConst.SAVE_TMP_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
			}
		}
		
		// 上記以外の場合
		else
		{
			// 問合せ状態コードが"101"（オープン）の場合
			if (JCRStrConst.CD_DIV_TOIAWASE_STAT_CD_OPEN.equals(toiawaseStatCd))
			{
				// 問い合わせ担当者がログインユーザーの場合
				if (commoninfoBean.sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE).equals(
						bean.sendMessageString(CRW00801SFConst.TAIO_USER_ID, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					// 一時保存ボタン使用可否
					// 下記条件のいずれかの場合、非活性とする
					//   処理区分："2"（メール転送選択） かつ 完了データの場合
					//   処理区分："3"（メール受信（転送））
					//   処理区分："4"（転送メール送信）
					//   かつ、一時保存データが存在する場合
					if ((JCRStrConst.CRW00801_TRAN_DIV_MAIL_FORWARD_CHOICE.equals(tranDiv)
						&& JCRStrConst.CD_DIV_HENSHU_STAT_FLG_KANRYO.equals(bean.sendMessageString(CRW00801SFConst.HENSHU_STAT_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
						|| JCRStrConst.CRW00801_TRAN_DIV_MAIL_FORWARD_RCV.equals(tranDiv)
						|| JCRStrConst.CRW00801_TRAN_DIV_MAIL_FORWARD_SEND.equals(tranDiv))
					{
						// 同一アクションで一時保存データが存在する場合は、一時保存ボタンを非活性とする
						if (!"0".equals(bean.sendMessageString(CRW00801SFConst.DETAIL_KENSU, X31CWebConst.DATABEAN_GET_VALUE)))
						{
							bean.sendMessageString(CRW00801SFConst.SAVE_TMP_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
						}
					}
				}

				// 問い合わせ担当者がログインユーザーでない場合
				else
				{
					bean.sendMessageBoolean(CRW00801SFConst.FORWARD_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
					bean.sendMessageBoolean(CRW00801SFConst.CLEAR_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
					bean.sendMessageBoolean(CRW00801SFConst.SAVE_TMP_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
					setAllProtect();
				}
			}
			// 上記以外の場合
			else
			{
				bean.sendMessageBoolean(CRW00801SFConst.FORWARD_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
				bean.sendMessageBoolean(CRW00801SFConst.CLEAR_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
				bean.sendMessageBoolean(CRW00801SFConst.SAVE_TMP_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
				setAllProtect();
			}
		}

		// (f) 登録内容の退避を行う。
		X31SDataBeanAccessArray toiawaseUkSbtList = bean.getDataBeanArray(CRW00801SFConst.TOIAWASE_UK_SBT);
		X31SDataBeanAccess toiawaseUkSbtBean = toiawaseUkSbtList.getDataBean(0);
		X31SDataBeanAccessArray callbkShiteiTypeList = bean.getDataBeanArray(CRW00801SFConst.CALLBK_SHITEI_TYPE);
		X31SDataBeanAccess callbkShiteiTypeBean = callbkShiteiTypeList.getDataBean(0);
		X31SDataBeanAccessArray toMladArray = bean.getDataBeanArray(CRW00801SFConst.TO_MLAD);
		X31SDataBeanAccess toMladBean = toMladArray.getDataBean(0);

		bean.sendMessageString(CRW00801SFConst.BK_TOIAWASE_UK_SBT_IDX, X31CWebConst.DATABEAN_SET_VALUE
				, toiawaseUkSbtBean.sendMessageString(CRW00801SFConst.L0_SEL_TOIAWASE_UK_SBT_IDX_01, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW00801SFConst.BK_EASY_MEMO, X31CWebConst.DATABEAN_SET_VALUE
				, bean.sendMessageString(CRW00801SFConst.EASY_MEMO, X31CWebConst.DATABEAN_GET_VALUE));
		for (int i = 0; i < rspCtgrList.getCount().intValue(); i++)
		{
			X31SDataBeanAccess rspCtgrBean = rspCtgrList.getDataBean(i);
			rspCtgrBean.sendMessageString(CRW00801SFConst.L1_BK_RSP_DIV_IDX_02, X31CWebConst.DATABEAN_SET_VALUE, 
					rspCtgrBean.sendMessageString(CRW00801SFConst.L1_SEL_RSP_DIV_IDX_02, X31CWebConst.DATABEAN_GET_VALUE));
		}
		bean.sendMessageString(CRW00801SFConst.BK_CALLBK_KIBO_YMD_YYYY, X31CWebConst.DATABEAN_SET_VALUE
				, bean.sendMessageString(CRW00801SFConst.CALLBK_KIBO_YMD_YYYY, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW00801SFConst.BK_CALLBK_KIBO_YMD_MM, X31CWebConst.DATABEAN_SET_VALUE
				, bean.sendMessageString(CRW00801SFConst.CALLBK_KIBO_YMD_MM, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW00801SFConst.BK_CALLBK_KIBO_YMD_DD, X31CWebConst.DATABEAN_SET_VALUE
				, bean.sendMessageString(CRW00801SFConst.CALLBK_KIBO_YMD_DD, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW00801SFConst.BK_CALLBK_KIBO_TIME_HO, X31CWebConst.DATABEAN_SET_VALUE
				, bean.sendMessageString(CRW00801SFConst.CALLBK_KIBO_TIME_HO, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW00801SFConst.BK_CALLBK_KIBO_TIME_MI, X31CWebConst.DATABEAN_SET_VALUE
				, bean.sendMessageString(CRW00801SFConst.CALLBK_KIBO_TIME_MI, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW00801SFConst.BK_CALLBK_SHITEI_TYPE_IDX, X31CWebConst.DATABEAN_SET_VALUE
				, callbkShiteiTypeBean.sendMessageString(CRW00801SFConst.L6_SEL_CALLBK_SHITEI_TYPE_IDX_07, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW00801SFConst.BK_TITLE, X31CWebConst.DATABEAN_SET_VALUE
				, bean.sendMessageString(CRW00801SFConst.TITLE, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW00801SFConst.BK_SEL_FROM_MLAD_IDX, X31CWebConst.DATABEAN_SET_VALUE
				, fromMladBean.sendMessageString(CRW00801SFConst.L8_SEL_FROM_MLAD_IDX_09, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW00801SFConst.BK_SENDS_MLAD, X31CWebConst.DATABEAN_SET_VALUE
				, toMladBean.sendMessageString(CRW00801SFConst.L14_TO_MLAD_11, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW00801SFConst.BK_SEL_HNSIN_SYMBOL_IDX, X31CWebConst.DATABEAN_SET_VALUE
				, hnsinSymbolBean.sendMessageString(CRW00801SFConst.L7_SEL_HNSIN_SYMBOL_IDX_08, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW00801SFConst.BK_MAIL_TITLE, X31CWebConst.DATABEAN_SET_VALUE
				, bean.sendMessageString(CRW00801SFConst.MAIL_TITLE, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageBoolean(CRW00801SFConst.BK_TOIAWASE_ID_HUKA, X31CWebConst.DATABEAN_SET_VALUE
				, bean.sendMessageBoolean(CRW00801SFConst.TOIAWASE_ID_HUKA, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW00801SFConst.BK_SEL_SIGN_TEMPLA_TYPE_IDX, X31CWebConst.DATABEAN_SET_VALUE
				, signTemplaTypeBean.sendMessageString(CRW00801SFConst.L9_SEL_SIGN_TEMPLA_TYPE_IDX_10, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW00801SFConst.BK_SIGN_TEMPLA_TEXT, X31CWebConst.DATABEAN_SET_VALUE
				, signTemplaTypeBean.sendMessageString(CRW00801SFConst.L9_SEL_SIGN_TEMPLA_TEXT_10, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW00801SFConst.BK_SIGN_TEMPLA_FOOTER, X31CWebConst.DATABEAN_SET_VALUE
				, signTemplaTypeBean.sendMessageString(CRW00801SFConst.L9_SEL_SIGN_TEMPLA_FOOTER_10, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW00801SFConst.BK_TOIAWASE_NAIYO, X31CWebConst.DATABEAN_SET_VALUE
				, bean.sendMessageString(CRW00801SFConst.TOIAWASE_NAIYO, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW00801SFConst.BK2_SEL_SIGN_TEMPLA_TYPE_IDX, X31CWebConst.DATABEAN_SET_VALUE
				, signTemplaTypeBean.sendMessageString(CRW00801SFConst.L9_SEL_SIGN_TEMPLA_TYPE_IDX_10, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW00801SFConst.BK2_SIGN_TEMPLA_TEXT, X31CWebConst.DATABEAN_SET_VALUE
				, signTemplaTypeBean.sendMessageString(CRW00801SFConst.L9_SEL_SIGN_TEMPLA_TEXT_10, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW00801SFConst.BK2_SIGN_TEMPLA_FOOTER, X31CWebConst.DATABEAN_SET_VALUE
				, signTemplaTypeBean.sendMessageString(CRW00801SFConst.L9_SEL_SIGN_TEMPLA_FOOTER_10, X31CWebConst.DATABEAN_GET_VALUE));

		for (int i = 0; i < bunshoList2Array.getCount().intValue(); i++)
		{
			X31SDataBeanAccess bunshoList2Bean = bunshoList2Array.getDataBean(i);
			// 文書ファイル一覧２.退避用メール添付ファイル有無２
			bunshoList2Bean.sendMessageBoolean(CRW00801SFConst.L12_BK_MAIL_TEMP_FILE_UM_12, X31CWebConst.DATABEAN_SET_VALUE
					, bunshoList2Bean.sendMessageBoolean(CRW00801SFConst.L12_MAIL_TEMP_FILE_UM_12, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// (5)引継情報の設定
		// なし。

		// (6)共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW00801);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00801);

		return true;
	}

	/**
	 * 追加(応対区分/カテゴリー).<br>
	 * 追加(応対区分/カテゴリー)ボタン押下時の処理を行う。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean addRspCtg() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// (1) 引継情報の取得
		// なし

		// (2) サービスフォームBeanの設定
		// (a) 現在使用している最大の明細行+1行に以下の設定を行う。
		X31SDataBeanAccessArray rspCtgrList = bean.getDataBeanArray(CRW00801SFConst.RSP_CTGR_LIST);

		// 応対区分／カテゴリリストを追加する。
		X31SDataBeanAccess rspCtgrBean = rspCtgrList.addDataBean();

		// 対応記録内訳番号
		rspCtgrBean.sendMessageString(CRW00801SFConst.L1_TAIO_KIROK_UCWK_NO_02, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 応対区分インデックス
		rspCtgrBean.sendMessageString(CRW00801SFConst.L1_SEL_RSP_DIV_IDX_02, X31CWebConst.DATABEAN_SET_VALUE, "1");
		// 応対区分コード
		rspCtgrBean.sendMessageString(CRW00801SFConst.L1_SEL_RSP_DIV_CD_02, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 応対区分名称
		rspCtgrBean.sendMessageString(CRW00801SFConst.L1_SEL_RSP_DIV_NM_02, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 応対区分コード(変更前)
		rspCtgrBean.sendMessageString(CRW00801SFConst.L1_SEL_RSP_DIV_CD_BF_02, X31CWebConst.DATABEAN_SET_VALUE, "");
		// ホットボイス有無
		rspCtgrBean.sendMessageBoolean(CRW00801SFConst.L1_HOTVOIC_UM_02, X31CWebConst.DATABEAN_SET_VALUE, false);

		// (b) 応対区分プルダウン項目の転送
		// 1行目の応対区分／カテゴリリストを取得する。
		X31SDataBeanAccess firstRspCtgr = rspCtgrList.getDataBean(0);
		
		X31SDataBeanAccessArray firstToiawaseRspArray = firstRspCtgr.getDataBeanArray(CRW00801SFConst.L1_TOIAWASE_RSP);
		X31SDataBeanAccessArray toiawaseRspArray = rspCtgrBean.getDataBeanArray(CRW00801SFConst.L1_TOIAWASE_RSP);
		for (int i = 0; i < firstToiawaseRspArray.getCount().intValue(); i++)
		{
			X31SDataBeanAccess firstToiawaseRspBean = firstToiawaseRspArray.getDataBean(i);
			X31SDataBeanAccess toiawaseRspBean = toiawaseRspArray.addDataBean();
			// 応対区分リスト
			toiawaseRspBean.sendMessageString(CRW00801SFConst.L2_RSP_DIV_03, X31CWebConst.DATABEAN_SET_VALUE
					, firstToiawaseRspBean.sendMessageString(CRW00801SFConst.L2_RSP_DIV_03, X31CWebConst.DATABEAN_GET_VALUE));
			// 応対区分名称リスト
			toiawaseRspBean.sendMessageString(CRW00801SFConst.L2_RSP_DIV_NM_03, X31CWebConst.DATABEAN_SET_VALUE
					, firstToiawaseRspBean.sendMessageString(CRW00801SFConst.L2_RSP_DIV_NM_03, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 業務個別設定組織名
		String wkkbtOrgNm = JCRWebCommon.getWkkbtOrgNm(commoninfoBean);

		// カテゴリーＮリスト
		X31SDataBeanAccessArray uwCtgrListArray = rspCtgrBean.getDataBeanArray(CRW00801SFConst.L1_UW_CTGRN_LIST);

		// (c) カテゴリーレベル１のデータを作成する。
		addCtgr(uwCtgrListArray, "", wkkbtOrgNm, "001");

		// (d) カテゴリーレベル２のデータを作成する。
		addCtgr(uwCtgrListArray, "", "", "002");

		// (e) 応対区分/カテゴリーの全明細行について、「表示順序」の設定、活性・非活性制御を行う。
		editRspCtgrDetail(rspCtgrList);
		
		// (3) サービス呼出処理
		// なし

		// (4)サービス処理結果の設定
		// なし

		// (5) 引継情報の設定
		// なし

		// (6) 共有フォームBeanの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW00801);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00801);

		return true;
	}

	/**
	 * 上移動(応対区分/カテゴリー).<br>
	 * 上移動(応対区分/カテゴリー)ボタン押下時の処理を行う。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean moveUpRspCtg() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// (1) 引継情報の取得
		// なし

		// (2) サービスフォームBeanの設定
		int selRspCtgrIndex = Integer.parseInt(bean.sendMessageString(CRW00801SFConst.SEL_RSP_CTGR_INDEX, X31CWebConst.DATABEAN_GET_VALUE));

		// 応対区分／カテゴリリスト
		X31SDataBeanAccessArray rspCtgrList = bean.getDataBeanArray(CRW00801SFConst.RSP_CTGR_LIST);
		
		// (a) 対応区分／カテゴリーリストの移動を行う。
		//     以下のインデックスのBeanの内容を入れ替える。
		//     選択応対区分／カテゴリリストインデックス ⇔ 選択応対区分／カテゴリリストインデックス - 1
		moveRspCtgrBean(rspCtgrList, selRspCtgrIndex, selRspCtgrIndex - 1);

		// (b) 応対区分/カテゴリーの全明細行について、「表示順序」の設定、活性・非活性制御を行う。
		editRspCtgrDetail(rspCtgrList);

		// (3) サービス呼出処理
		// なし

		// (4) サービス処理結果の設定
		// なし

		// (5) 引継情報の設定
		// なし

		// (6) 共有フォームBeanの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW00801);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00801);

		return true;
	}

	/**
	 * 下移動(応対区分/カテゴリー).<br>
	 * 下移動(応対区分/カテゴリー)ボタン押下時の処理を行う。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean moveDownRspCtg() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// (1) 引継情報の取得
		// なし

		// (2) サービスフォームBeanの設定
		int selRspCtgrIndex = Integer.parseInt(bean.sendMessageString(CRW00801SFConst.SEL_RSP_CTGR_INDEX, X31CWebConst.DATABEAN_GET_VALUE));

		// 応対区分／カテゴリリスト
		X31SDataBeanAccessArray rspCtgrList = bean.getDataBeanArray(CRW00801SFConst.RSP_CTGR_LIST);
		
		// (a) 対応区分／カテゴリーリストの移動を行う。
		//     以下のインデックスのBeanの内容を入れ替える。
		//     選択応対区分／カテゴリリストインデックス ⇔ 選択応対区分／カテゴリリストインデックス + 1
		moveRspCtgrBean(rspCtgrList, selRspCtgrIndex, selRspCtgrIndex + 1);

		// (b) 応対区分/カテゴリーの全明細行について、「表示順序」の設定、活性・非活性制御を行う。
		editRspCtgrDetail(rspCtgrList);

		// (3) サービス呼出処理
		// なし

		// (4) サービス処理結果の設定
		// なし

		// (5) 引継情報の設定
		// なし

		// (6) 共有フォームBeanの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW00801);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00801);

		return true;
	}

	/**
	 * 削除(応対区分/カテゴリー).<br>
	 * 削除(応対区分/カテゴリー)ボタン押下時の処理を行う。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean deleteRspCtg() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// (1) 引継情報の取得
		// なし

		// (2) サービスフォームBeanの設定
		int selRspCtgrIndex = Integer.parseInt(bean.sendMessageString(CRW00801SFConst.SEL_RSP_CTGR_INDEX, X31CWebConst.DATABEAN_GET_VALUE));

		X31SDataBeanAccessArray rspCtgrList = bean.getDataBeanArray(CRW00801SFConst.RSP_CTGR_LIST);
		
		// (a) 選択した明細行に関連するのSFBeanの内容を削除する。
		//     ※選択した明細行以降にある内容について、SFBeanの配列内の内容を繰り上げ、配列に空きがないようにする。
		rspCtgrList.removeDataBean(selRspCtgrIndex);
		

		// (b) 応対区分/カテゴリーの全明細行について、「表示順序」を再度１から順次採番する。
		editRspCtgrDetail(rspCtgrList);

		// (3) サービス呼出処理
		// なし

		// (4) サービス処理結果の設定
		// なし

		// (5) 引継情報の設定
		// なし

		// (6) 共有フォームBeanの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW00801);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00801);

		return true;
	}

	/**
	 * カテゴリー選択.<br>
	 * カテゴリー選択押下時の処理を行う。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean choiceCategory() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// ユースケースID格納用マップ
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// (1) 引継情報の取得
		// なし

		// (2) サービスフォームBeanの設定
		// なし

		// (3) サービス呼出処理
		// 選択応対区分／カテゴリリストインデックス
		int rspCtgrIndex = Integer.parseInt(bean.sendMessageString(CRW00801SFConst.SEL_RSP_CTGR_INDEX, X31CWebConst.DATABEAN_GET_VALUE));
		// 選択カテゴリインデックス
		int uwCtgrnIndex = Integer.parseInt(bean.sendMessageString(CRW00801SFConst.SEL_UW_CTGRN_INDEX, X31CWebConst.DATABEAN_GET_VALUE));

		// 応対区分／カテゴリリスト
		X31SDataBeanAccessArray rspCtgrList = bean.getDataBeanArray(CRW00801SFConst.RSP_CTGR_LIST);
		X31SDataBeanAccess rspCtgrBean = rspCtgrList.getDataBean(rspCtgrIndex);

		// カテゴリーＮリスト
		X31SDataBeanAccessArray uwCtgrnList = rspCtgrBean.getDataBeanArray(CRW00801SFConst.L1_UW_CTGRN_LIST);
		X31SDataBeanAccess l1CtgrBean = uwCtgrnList.getDataBean(0);

		// カテゴリーのワークグループ名の取得
		String ctgrWkkbtOrgNm = l1CtgrBean.sendMessageString(CRW00801SFConst.L3_SEL_UW_CTGRN_NM_04, X31CWebConst.DATABEAN_GET_VALUE);

		// カテゴリーレベルが１の場合、業務個別設定組織コードがカテゴリーに登録されている場合は、
		// カテゴリーのリストを生成する。
		// 他の業務個別設定組織名の場合は、カテゴリーレベルが１以外の場合は、リストの生成を行わない。
		if (uwCtgrnIndex == 1 || JCRWebCommon.getWkkbtOrgNm(commoninfoBean).equals(ctgrWkkbtOrgNm))
		{
			// マッピングクラスを使用する為、配列化
			X31SDataBeanAccess[] paramBean = {bean, commoninfoBean};

			// ユースケースID格納
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0156");
			// マッピングクラス
			CRSV0156_CRSV0156OPDBMapper mapper = new CRSV0156_CRSV0156OPDBMapper();
			// マッピング処理（上り）
			mapper.setGETCTGRY1RCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

			// サービス実行
			invokeService(paramMap, dataMap, outputMap);

			// (4) サービス処理結果の設定
			// マッピング処理（上り）
			mapper.getGETCTGRY1RCC(paramBean, outputMap);
		}

		// (5) 引継情報の設定
		// なし

		// (6) 共有フォームBeanの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW00801);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00801);

		return true;
	}

	/**
	 * カテゴリー選択.<br>
	 * カテゴリー選択押下時の処理を行う。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean changeCategory() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// (1) 引継情報の取得
		// なし

		// (2) サービスフォームBeanの設定
		// 応対区分／カテゴリーリストのインデックス
		int rspCtgrIndex = Integer.parseInt(bean.sendMessageString(CRW00801SFConst.SEL_RSP_CTGR_INDEX, X31CWebConst.DATABEAN_GET_VALUE));
		// カテゴリーのインデックス
		int uwCtgrnIndex = Integer.parseInt(bean.sendMessageString(CRW00801SFConst.SEL_UW_CTGRN_INDEX, X31CWebConst.DATABEAN_GET_VALUE));

		// 応対区分／カテゴリーリスト
		X31SDataBeanAccessArray rspCtgrList = bean.getDataBeanArray(CRW00801SFConst.RSP_CTGR_LIST);
		X31SDataBeanAccess rspCtgrBean = rspCtgrList.getDataBean(rspCtgrIndex);

		// カテゴリーＮリスト
		X31SDataBeanAccessArray uwCtgrListArray = rspCtgrBean.getDataBeanArray(CRW00801SFConst.L1_UW_CTGRN_LIST);
		X31SDataBeanAccess uwCtgrListBean = uwCtgrListArray.getDataBean(uwCtgrnIndex);
		
		// (a)下位のカテゴリを全てクリアする。
		for (int i = uwCtgrListArray.getCount().intValue() - 1; uwCtgrnIndex < i; i--)
		{
			uwCtgrListArray.removeDataBean(i);
		}

		// カテゴリーＮコードインデックスの取得
		String selectedIndexCtgr = uwCtgrListBean.sendMessageString(
				CRW00801SFConst.L3_SEL_UW_CTGRN_IDX_04, X31CWebConst.DATABEAN_GET_VALUE);
		// 選択中のカテゴリーレベルの取得
		int uwCtgrnLv = Integer.parseInt(uwCtgrListBean.sendMessageString(
				CRW00801SFConst.L3_SEL_UW_CTGRN_LV_04, X31CWebConst.DATABEAN_GET_VALUE), 10);

		// カテゴリーＮ
		X31SDataBeanAccessArray uwCtgrNList = uwCtgrListBean.getDataBeanArray(CRW00801SFConst.L3_UW_CTGRN);
		X31SDataBeanAccess uwCtgrNBean = uwCtgrNList.getDataBean(Integer.parseInt(selectedIndexCtgr));

		uwCtgrListBean.sendMessageString(CRW00801SFConst.L3_SEL_UW_CTGRN_CD_04, X31CWebConst.DATABEAN_SET_VALUE
				, uwCtgrNBean.sendMessageString(CRW00801SFConst.L4_UW_CTGRN_CD_05, X31CWebConst.DATABEAN_GET_VALUE));
		uwCtgrListBean.sendMessageString(CRW00801SFConst.L3_SEL_UW_CTGRN_NM_04, X31CWebConst.DATABEAN_SET_VALUE
				, uwCtgrNBean.sendMessageString(CRW00801SFConst.L4_UW_CTGRN_NM_05, X31CWebConst.DATABEAN_GET_VALUE));

		// (b)下位の階層が存在する場合は、下位のカテゴリーのリストを作成する。
		//    選択されたカテゴリーレベルが11の場合は作成しない
		if (uwCtgrnLv < 11 && !"0".equals(selectedIndexCtgr))
		{
			// 下位のカテゴリーレベル
			String kaiUwCtgrnLv = JCRUtilCommon.fillZero(String.valueOf(uwCtgrnLv + 1), 3, false);
			addCtgr(uwCtgrListArray, "", "", kaiUwCtgrnLv);
		}

		// (c)
		// 取得したカテゴリーのリストに紐付く業務個別設定組織コードを、レベル１に設定する。
		String wkkbtOrgNm = JCRWebCommon.getWkkbtOrgNm(commoninfoBean);
		X31SDataBeanAccess l1UwCtgrNBean = uwCtgrListArray.getDataBean(0);

		// カテゴリーＮ名称
		l1UwCtgrNBean.sendMessageString(CRW00801SFConst.L3_SEL_UW_CTGRN_NM_04, X31CWebConst.DATABEAN_SET_VALUE, wkkbtOrgNm);

		// カテゴリーＮ
		X31SDataBeanAccessArray l1UwCtgrnList = l1UwCtgrNBean.getDataBeanArray(CRW00801SFConst.L3_UW_CTGRN);

		l1UwCtgrnList.clearArray();
		X31SDataBeanAccess uwCtgrBean = l1UwCtgrnList.addDataBean();

		// カテゴリーＮ名称リスト
		uwCtgrBean.sendMessageString(CRW00801SFConst.L4_UW_CTGRN_NM_05, X31CWebConst.DATABEAN_SET_VALUE, wkkbtOrgNm);

		// カテゴリ内に、空白のコードが設定されている場合、削除する。
		// ※当処理を行う際には、必ずコードが設定されている。設定されていないコードに関しては、
		//   カテゴリーマスタに設定されていないデータであるために、削除する。
		for (int i = uwCtgrNList.getCount() - 1; i > 0; i--)
		{
			uwCtgrNBean = uwCtgrNList.getDataBean(i);
			if (JCRUtilCommon.isNull(uwCtgrNBean.sendMessageString(CRW00801SFConst.L4_UW_CTGRN_CD_05, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				uwCtgrNList.removeDataBean(i);
			}
		}

		// (3) サービス呼出処理
		// なし

		// (4) サービス処理結果の設定
		// なし

		// (5) 引継情報の設定
		// なし

		// (6) 共有フォームBeanの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW00801);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00801);

		return true;
	}

	/**
	 * 追加(添付ファイル).<br>
	 * 追加(添付ファイル)ボタン押下時の処理を行う。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean addTnpFl() throws Exception
	{
		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// (1) 引継情報の取得
		// なし

		// (2) サービスフォームBeanの設定
		// なし

		// (3) サービス呼出処理
		// なし

		// (4) サービス処理結果の設定
		// なし

		// (5) 引継情報の設定
		// (a)戻り先画面ID設定（JCCWebCommon.setScreenId)を使用し、次画面への引継情報を設定する。
		// 子画面に親画面の画面IDを設定
		JCRWebCommon.setScreenId(this, JCRScreenConst.SCREEN_ID_CRW00501
				, JCRScreenConst.SCREEN_ID_CRW00801);

		// (6) 共有フォームBeanの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW00501);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00501);

		return true;
	}

	/**
	 * 削除(添付ファイル).<br>
	 * 削除(添付ファイル)ボタン押下時の処理を行う。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean deleteTnpFl() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// ユースケースID格納用マップ
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// (1) 引継情報の取得
		// なし

		// (2) サービスフォームBeanの設定
		// 選択ファイルインデックスの取得
		int selBunshoIndex = Integer.parseInt(bean.sendMessageString(
				CRW00801SFConst.SEL_BUNSHO_INDEX, X31CWebConst.DATABEAN_GET_VALUE));

		// 文書ファイルリストの取得
		X31SDataBeanAccessArray bunshoList = bean.getDataBeanArray(CRW00801SFConst.BUNSHOLIST);
		X31SDataBeanAccessArray bunshoList2 = bean.getDataBeanArray(CRW00801SFConst.BUNSHOLIST2);

		// 選択された文書ファイルの取得
		X31SDataBeanAccess bunshoBean = bunshoList.getDataBean(selBunshoIndex);
		X31SDataBeanAccess bunshoBean2 = bunshoList2.getDataBean(selBunshoIndex);
		
		// (a) サービスフォームBeanの該当する添付ファイルに対する添付ファイル状態区分が "1"(新規添付ファイル)の場合、下記の処理を行う。
		if (JCRStrConst.TMP_FILE_STAT_DIV_NEW.equals(bunshoBean.sendMessageString(
				CRW00801SFConst.L5_TMP_FILE_STAT_DIV_06, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// (ｱ)該当する添付ファイルの電子ファイル管理番号(一時的な番号)を元に、アップロード一時ファイル削除部品(JCCWebCommon.deleteFile)を
			//   使用し、一時ファイルの削除を行う。
			JCRWebCommon.deleteFile(this, bunshoBean.sendMessageString(CRW00801SFConst.L5_EFILE_KANRI_NO_06, X31CWebConst.DATABEAN_GET_VALUE));

		}
		// (b) サービスフォームBeanの該当する添付ファイルに対する添付ファイル状態区分が "0"(文書管理テーブルに登録済)の場合、下記の処理を行う。
		else
		{
			// (3) サービス呼出処理
			// マッピングクラスを使用する為、配列化
			X31SDataBeanAccess[] paramBean = {bean, commoninfoBean};

			// ユースケースID格納
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0159");

			// マッピングクラス
			CRSV0159_CRSV0159OPDBMapper mapper = new CRSV0159_CRSV0159OPDBMapper();

			// マッピング処理（上り）
			mapper.setGETBUNSHOCTL1RCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
			((HashMap<String, Object>) dataMap.get("GETBUNSHOCTL1RCC")).put("key_efile_kanri_no", 
					JCRWebCommon.getReplaceNoString(this, bunshoBean.sendMessageString(CRW00801SFConst.L5_EFILE_KANRI_NO_06, X31CWebConst.DATABEAN_GET_VALUE)));
			// サービス実行
			invokeService(paramMap, dataMap, outputMap);

			// (4)サービス処理結果の設定
			// (a) DataBean⇔サービスのマッピングに関しては、「4.サービス項目-DataBean項目マッピング」参照
			// マッピング処理（下り）
			mapper.getGETBUNSHOCTL1RCC(paramBean, outputMap);

			// (b) SFDataBean.メール添付ファイル明細件数が２件以上存在する場合、エラーとする。(他のアクションも同一の添付ファイルを使用している為削除不可)
			String tenpFileKensu = bean.sendMessageString(CRW00801SFConst.TEMP_FILE_KENSU, X31CWebConst.DATABEAN_GET_VALUE);
			if (!"0".equals(tenpFileKensu))
			{
				// 遷移先画面ID、名称の設定
				commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
						, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW00801);
				commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
						, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00801);
				return true;
			}

		}

		// (4) サービス処理結果の設定
		bunshoBean.sendMessageBoolean(CRW00801SFConst.L5_FILE_DSP_FLG_06, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
		bunshoBean2.sendMessageBoolean(CRW00801SFConst.L12_FILE_DSP_FLG_12, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
		bunshoBean2.sendMessageBoolean(CRW00801SFConst.L12_MAIL_TEMP_FILE_UM_12, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);

		// (5) 引継情報の設定
		// なし

		// (6) 共有フォームBeanの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW00801);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00801);

		return true;
	}

	/**
	 * 追加（Toメールアドレス）.<br>
	 * 追加（Toメールアドレス）ボタン押下時の処理を行う。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean addToMlad() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();
		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();
		// 子画面に渡す情報用HashMap
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// (1) 引継情報の取得
		// なし

		// (2) サービスフォームBeanの設定
		// なし

		// (3) サービス呼出処理
		// なし

		// (4) サービス処理結果の設定
		// なし

		// (5) 引継情報の設定
		X31SDataBeanAccessArray toMladArray = bean.getDataBeanArray(CRW00801SFConst.TO_MLAD);
		X31SDataBeanAccess toMladBean = toMladArray.getDataBean(0);

		String toMlad = toMladBean.sendMessageString(CRW00801SFConst.L14_TO_MLAD_11, X31CWebConst.DATABEAN_GET_VALUE);
		// (a)次画面への引継情報(dataMap)を作成する。
		paramMap.put(CRW01101SFConst.HKTGI_MLAD, toMlad.split(";"));

		// (b)画面情報設定部品（JCCWebCommon.setScreenInfo)を使用し、次画面への引継情報を設定する。
		// 子画面に渡す情報を設定
		JCRWebCommon.setScreenInfo(this, JCRScreenConst.SCREEN_ID_CRW01101, paramMap);

		// (c) 戻り先画面ID設定(JCCWebCommon.setScreenId)を使用し、次画面への引継情報を設定する。
		// 子画面に親画面の画面IDを設定
		JCRWebCommon.setScreenId(this, JCRScreenConst.SCREEN_ID_CRW01101
				, JCRScreenConst.SCREEN_ID_CRW00801);

		// (6) 共有フォームBeanの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW01101);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW01101);

		return true;
	}

	/**
	 * 添付ファイルリンク.<br>
	 * 添付ファイルリンク押下時の処理を行う。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean clickLinkTnpFileDownload() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// (1) 引継情報の取得
		// なし

		// (2) サービスフォームBeanの設定
		// 選択ファイルインデックスの取得
		int selBunshoIndex = Integer.parseInt(bean.sendMessageString(
				CRW00801SFConst.SEL_BUNSHO_INDEX, X31CWebConst.DATABEAN_GET_VALUE));

		// 文書ファイルリストの取得
		X31SDataBeanAccessArray bunshoList = bean.getDataBeanArray(CRW00801SFConst.BUNSHOLIST);

		// 選択された文書ファイルの取得
		X31SDataBeanAccess bunshoBean = bunshoList.getDataBean(selBunshoIndex);

		// (a) サービスフォームBeanの該当する添付ファイルに対する添付ファイル状態区分が "0"(文書管理テーブルに登録済)の場合、下記の処理を行う。
		if (JCRStrConst.TMP_FILE_STAT_DIV_EXIST.equals(bunshoBean.sendMessageString(
				CRW00801SFConst.L5_TMP_FILE_STAT_DIV_06, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 選択した添付ファイルに該当する電子ファイル管理番号、対応履歴文書ファイル名を元に、電子管理ファイルダウンロード処理部品
			// (JCCWebCommon.setDownloadFile)を使用し、ダウンロードファイル情報を取得する。
			JCRWebCommon.setDownloadFile(this, bunshoBean.sendMessageString(CRW00801SFConst.L5_EFILE_KANRI_NO_06, X31CWebConst.DATABEAN_GET_VALUE)
					, bunshoBean.sendMessageString(CRW00801SFConst.L5_TAIORRKI_BUNSHO_FILE_NM_06, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// (b) サービスフォームBeanの該当する添付ファイルに対する添付ファイル状態区分が "1"(新規添付ファイル)の場合、下記の処理を行う。
		else
		{
			// 選択した添付ファイルに該当するアップロード時一時ファイルを、アップロード一時保存ファイル取得処理部品
			// (JCRWebCommon.getFile)を使用し、アップロード一時保存ファイル情報を取得する。
			byte[] fileByte = JCRWebCommon.getFile(this, bunshoBean.sendMessageString(CRW00801SFConst.L5_EFILE_KANRI_NO_06, X31CWebConst.DATABEAN_GET_VALUE));

			// 一時ファイルダウンロード処理部品(JCRWebCommon.setTempDownloadFile)を使用し、ダウンロード情報を設定する。
			JCRWebCommon.setTempDownloadFile(this, fileByte, bunshoBean.sendMessageString(
					CRW00801SFConst.L5_TAIORRKI_BUNSHO_FILE_NM_06, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// (3) サービス呼出処理
		// なし

		// (4) サービス処理結果の設定
		// なし

		// (5) 引継情報の設定
		// なし

		// (6) 共有フォームBeanの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW00801);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00801);

		return true;
	}

	/**
	 * 署名テンプレート選択押下.<br>
	 * 署名テンプレート選択押下。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean choiceSignTempla() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// (1) 引継情報の取得
		// なし。

		// (2) サービスフォームBeanの設定
		// (a) 下記項目についての設定を行う。
		
		// 署名テンプレート
		X31SDataBeanAccessArray signTemplaTypeArray = bean.getDataBeanArray(CRW00801SFConst.SIGN_TEMPLA_TYPE);
		X31SDataBeanAccess signTemplaTypeBean = signTemplaTypeArray.getDataBean(0);

		// 署名テンプレートタイプコード
		String signTemplaTypeCd = JCRWebCommon.getPullDownCode(bean, CRW00801SFConst.SIGN_TEMPLA_TYPE
				, CRW00801SFConst.L9_SEL_SIGN_TEMPLA_TYPE_IDX_10
				, CRW00801SFConst.L9_SIGN_TEMPLA_TYPE_CD_10);
		signTemplaTypeBean.sendMessageString(CRW00801SFConst.L9_SEL_SIGN_TEMPLA_TYPE_CD_10, X31CWebConst.DATABEAN_SET_VALUE, signTemplaTypeCd);

		// 署名テンプレートタイプコード名称
		String signTemplaTypeCdNm = JCRWebCommon.getPullDownName(bean, CRW00801SFConst.SIGN_TEMPLA_TYPE
				, CRW00801SFConst.L9_SEL_SIGN_TEMPLA_TYPE_IDX_10
				, CRW00801SFConst.L9_SIGN_TEMPLA_TYPE_CD_10
				, CRW00801SFConst.L9_SIGN_TEMPLA_TYPE_CD_NM_10);
		signTemplaTypeBean.sendMessageString(CRW00801SFConst.L9_SEL_SIGN_TEMPLA_TYPE_CD_NM_10, X31CWebConst.DATABEAN_SET_VALUE, signTemplaTypeCdNm);

		// 署名テンプレート本文
		String signTemplaText = JCRWebCommon.getPullDownName(bean, CRW00801SFConst.SIGN_TEMPLA_TYPE
				, CRW00801SFConst.L9_SEL_SIGN_TEMPLA_TYPE_IDX_10
				, CRW00801SFConst.L9_SIGN_TEMPLA_TYPE_CD_10
				, CRW00801SFConst.L9_SIGN_TEMPLA_TEXT_10);
		signTemplaTypeBean.sendMessageString(CRW00801SFConst.L9_SEL_SIGN_TEMPLA_TEXT_10, X31CWebConst.DATABEAN_SET_VALUE, signTemplaText);

		// 署名テンプレートフッター
		String signTemplaFooter = JCRWebCommon.getPullDownName(bean, CRW00801SFConst.SIGN_TEMPLA_TYPE
				, CRW00801SFConst.L9_SEL_SIGN_TEMPLA_TYPE_IDX_10
				, CRW00801SFConst.L9_SIGN_TEMPLA_TYPE_CD_10
				, CRW00801SFConst.L9_SIGN_TEMPLA_FOOTER_10);
		signTemplaTypeBean.sendMessageString(CRW00801SFConst.L9_SEL_SIGN_TEMPLA_FOOTER_10, X31CWebConst.DATABEAN_SET_VALUE, signTemplaFooter);

		// (3) サービス呼出処理
		// なし。

		// (4) サービス処理結果の設定
		// なし。

		// (5) 引継情報の設定
		// なし。

		// (6) 共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW00801);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00801);

		return true;
	}

	/**
	 * 転送ボタン押下.<br>
	 * 転送ボタン押下。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean forward() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// (1) 引継情報の取得
		// なし。

		// (2) サービスフォームBeanの設定
		// (a) 添付ファイルサイズのチェックを行う。
		if (!checkTmpFileSize(bean))
		{
			// 添付しようとしたファイルのサイズが大き過ぎます。添付ファイルの上限設定は%1%までです。
			JCRWebCommon.setMessageInfo(this, "EKB2120-KW", new String[]{LIMIT_SIZE + "MB"});
			// 遷移先画面ID、名称の設定
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
					, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW00801);
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
					, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00801);

			return true;
		}

		// (3) サービス呼出処理
		// (a) 登録確認、一時保存ボタン押下時共通処理（confirmInsSaveTmp）を呼び出す。
		confirmForwardSaveTmp(JCRStrConst.HENSHU_STAT_FLG_KANRYO);

		// (4) サービス処理結果の設定
		if (!JCRStrConst.CD_DIV_CLOSE_FAIL_CD_KANOU.equals(bean.sendMessageString(CRW00801SFConst.CLOSE_FAIL_CD, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			JCRWebCommon.setMessageInfo(this, "EKB2310--I");
		}

		// (b) 項目の活性・非活性制御を行う
		// 処理区分が"5"（簡易メール送信）の場合
		if (JCRStrConst.CRW00801_TRAN_DIV_MAIL_KANI_SEND.equals(
				bean.sendMessageString(CRW00801SFConst.TRAN_DIV, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			bean.sendMessageBoolean(CRW00801SFConst.SEND_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
		}
		// 上記以外の場合
		else
		{
			bean.sendMessageBoolean(CRW00801SFConst.SEND_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE
					, bean.sendMessageBoolean(CRW00801SFConst.SND_AUTHORITY_HOYU_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// (5) 引継情報の設定
		// なし。

		// (6) 共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW00802);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00802);

		return true;
	}

	/**
	 * 一時保存ボタン押下.<br>
	 * 一時保存ボタン押下。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean saveTmp() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// (1)引継情報の取得
		// なし。

		// (2)サービスフォームBeanの設定
		// (a) 添付ファイルサイズのチェックを行う。
		if (!checkTmpFileSize(bean))
		{
			JCRWebCommon.setMessageInfo(this, "EKB2120-KW", new String[]{LIMIT_SIZE + "MB"});
			// 遷移先画面ID、名称の設定
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
					, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW00801);
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
					, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00801);

			return true;
		}

		// (3)サービス呼出処理
		// (a) 登録確認、一時保存ボタン押下時共通処理（confirmInsSaveTmp）を呼び出す。
		confirmForwardSaveTmp(JCRStrConst.HENSHU_STAT_FLG_HENSHU_CHU);

		// (4)サービス処理結果の設定
		bean.sendMessageBoolean(CRW00801SFConst.SEND_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
		
		// (5)引継情報の設定
		// なし。

		// (6)共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW00802);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00802);

		return true;

	}

	/**
	 * 閉じるボタン押下.<br>
	 * 閉じるボタン押下。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean close() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// (1)引継情報の取得
		// なし。

		// (2)サービスフォームBeanの設定
		// なし。

		// (3)サービス呼出処理
		// (a) 添付ファイル削除処理（deleteTmpFile）を呼び出す。
		deleteTmpFile(bean);

		// (4)サービス処理結果の設定
		// なし。

		// (5)引継情報の設定
		// なし。

		// (6)共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW00801);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00801);

		return true;
	}

	/**
	 * クリアボタン押下.<br>
	 * クリアボタン押下。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean clear() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// (1)引継情報の取得
		// なし。
		
		// (2)サービスフォームBeanの設定
		// なし。

		// (3)サービス呼出処理
		// (a) 添付ファイル削除処理（deleteTmpFile）を呼び出す。
		deleteTmpFile(bean);

		// (b) 初期表示処理(init())を呼び出す。
		return init();

		// (4)サービス処理結果の設定
		// なし。

		// (5)引継情報の設定
		// なし。

		// (6)共有フォームビーンの設定
		// なし。

	}

	/**
	 * ファイル添付画面クローズ.<br>
	 * ファイル添付画面クローズ。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean closeCRW00501() throws Exception
	{
		
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();
	
		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();
	
		// (1)引継情報の取得
		// (a)画面情報設定部品（JCRWebCommon.getScreenInfo)を使用し、引継情報を取得する。
		HashMap<String, Object> paramMap = JCRWebCommon.getScreenInfo(this);
	
		// (2)サービスフォームBeanの設定
		ArrayList<HashMap<String, Object>> fileInfoArray = (ArrayList<HashMap<String, Object>>)paramMap.get("fileInfoArray");
		
		X31SDataBeanAccessArray bunshoList = bean.getDataBeanArray(CRW00801SFConst.BUNSHOLIST);
		X31SDataBeanAccessArray bunshoList2 = bean.getDataBeanArray(CRW00801SFConst.BUNSHOLIST2);
		for (int i = 0; i < fileInfoArray.size(); i++)
		{
			HashMap<String, Object> mapFileInfo = fileInfoArray.get(i);
			X31SDataBeanAccess bunshoBean = bunshoList.addDataBean();
			bunshoBean.sendMessageString(CRW00801SFConst.L5_DELETE_TNP_FL_DISABLED_06, X31CWebConst.DATABEAN_SET_VALUE, "");
			bunshoBean.sendMessageString(CRW00801SFConst.L5_TORK_EFILE_KNRI_NO_06, X31CWebConst.DATABEAN_SET_VALUE, "");
			bunshoBean.sendMessageString(CRW00801SFConst.L5_TAIORRKI_BUNSHO_FILE_NM_06, X31CWebConst.DATABEAN_SET_VALUE, (String)mapFileInfo.get("fileName"));
			bunshoBean.sendMessageString(CRW00801SFConst.L5_EFILE_KANRI_NO_06, X31CWebConst.DATABEAN_SET_VALUE, (String)mapFileInfo.get("fileKey"));
			bunshoBean.sendMessageString(CRW00801SFConst.L5_GENE_ADD_DTM_06, X31CWebConst.DATABEAN_SET_VALUE, "");
			bunshoBean.sendMessageString(CRW00801SFConst.L5_TMP_FILE_STAT_DIV_06, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.TMP_FILE_STAT_DIV_NEW);
			bunshoBean.sendMessageBoolean(CRW00801SFConst.L5_FILE_DSP_FLG_06, X31CWebConst.DATABEAN_SET_VALUE, Boolean.TRUE);
			bunshoBean.sendMessageString(CRW00801SFConst.L5_UPD_DTM_BF_06, X31CWebConst.DATABEAN_SET_VALUE, "");
	
			X31SDataBeanAccess bunshoBean2 = bunshoList2.addDataBean();
			bunshoBean2.sendMessageString(CRW00801SFConst.L12_TORK_EFILE_KNRI_NO_12, X31CWebConst.DATABEAN_SET_VALUE, "");
			bunshoBean2.sendMessageString(CRW00801SFConst.L12_TAIORRKI_BUNSHO_FILE_NM_12
					, X31CWebConst.DATABEAN_SET_VALUE, (String)mapFileInfo.get("fileName"));
			bunshoBean2.sendMessageString(CRW00801SFConst.L12_EFILE_KANRI_NO_12, X31CWebConst.DATABEAN_SET_VALUE, (String)mapFileInfo.get("fileKey"));
			bunshoBean2.sendMessageString(CRW00801SFConst.L12_GENE_ADD_DTM_12, X31CWebConst.DATABEAN_SET_VALUE, "");
			bunshoBean2.sendMessageString(CRW00801SFConst.L12_TMP_FILE_STAT_DIV_12, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.TMP_FILE_STAT_DIV_NEW);
			bunshoBean2.sendMessageBoolean(CRW00801SFConst.L12_FILE_DSP_FLG_12, X31CWebConst.DATABEAN_SET_VALUE, Boolean.TRUE);
			bunshoBean2.sendMessageString(CRW00801SFConst.L12_FILE_SIZE_12, X31CWebConst.DATABEAN_SET_VALUE, ((Long)mapFileInfo.get("fileSize")).toString());
			bunshoBean2.sendMessageString(CRW00801SFConst.L12_UPD_DTM_BF_12, X31CWebConst.DATABEAN_SET_VALUE, "");
	
		}
		
		// (3)サービス呼出処理
		// なし。
	
		// (4)サービス処理結果の設定
		// なし。
	
		// (5)引継情報の設定
		// なし。
	
		// (6)共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW00801);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00801);
	
		return true;
	
	}

	/**
	 * メール転送先アドレス選択登録画面クローズ.<br>
	 * メール転送先アドレス選択登録画面クローズ。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean closeCRW01101() throws Exception
	{
		
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();
	
		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();
	
		// (1)引継情報の取得
		// (a)画面情報設定部品（JCRWebCommon.getScreenInfo)を使用し、引継情報を取得する。
		HashMap<String, Object> paramMap = JCRWebCommon.getScreenInfo(this);
	
		// (2)サービスフォームBeanの設定
		ArrayList<HashMap<String, Object>> retMailArray = (ArrayList<HashMap<String, Object>>)paramMap.get(CRW01101SFConst.RET_MAIL_LIST);
		
		X31SDataBeanAccessArray toMladArray = bean.getDataBeanArray(CRW00801SFConst.TO_MLAD);
		toMladArray.clearArray();
		
		X31SDataBeanAccess toMladBean = toMladArray.addDataBean();

		StringBuilder toMlad = new StringBuilder();
		String kugiri = "";
		for (int i = 0; i < retMailArray.size(); i++)
		{
			HashMap<String, Object> retMail = retMailArray.get(i);
			toMlad.append(kugiri);
			toMlad.append(retMail.get(CRW01101SFConst.L1_RET_MLAD_02));
			kugiri = ";";
		}
		toMladBean.sendMessageString(CRW00801SFConst.L14_TO_MLAD_11, X31CWebConst.DATABEAN_SET_VALUE, toMlad.toString());
		
		// (3)サービス呼出処理
		// なし。
	
		// (4)サービス処理結果の設定
		// なし。
	
		// (5)引継情報の設定
		// なし。
	
		// (6)共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW00801);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00801);
	
		return true;
	
	}

	/**
	 * 登録ボタン押下.<br>
	 * 登録ボタン押下。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean insert() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// 引継用マップ
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// (1)引継情報の取得
		// なし。

		// (2)サービスフォームBeanの設定
		// 送信状態コード
		bean.sendMessageString(CRW00801SFConst.SEND_STAT_CD, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.SEND_STAT_CD_MISND);

		// (3)サービス呼出処理
		// (a) サービス呼出処理（callService）を呼び出す。
		callService(bean, commoninfoBean, JPCModelConstant.FUNC_CD_1);

		// (4)サービス処理結果の設定
		// (a) アップロード完了後の一時ファイル削除処理（JCCWebCommon.deleteCache）を呼び出し、
		//     一時ファイルを削除する。
		JCRWebCommon.deleteCache(this);

		// (5)引継情報の設定
		// (a) 
		if (!JCRStrConst.CRW00801_TRAN_DIV_MAIL_KANI_SEND.equals(bean.sendMessageString(CRW00801SFConst.TRAN_DIV, X31CWebConst.DATABEAN_GET_VALUE))
			&& JCRStrConst.HENSHU_STAT_FLG_KANRYO.equals(bean.sendMessageString(CRW00801SFConst.PUSH_BUTTON_JDG_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// (a)次画面への引継情報(dataMap)を作成する。
			dataMap.put(CRW01201SFConst.OPEN_GAMEN_FOOTER, JCRScreenConst.SCREEN_ID_CRW00802);

			// (b)画面情報設定部品（JCCWebCommon.setScreenInfo)を使用し、次画面への引継情報を設定する。
			JCRWebCommon.setScreenInfo(this, JCRWebCommon.getScreenId(this), dataMap);
		}

		// (6)共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCCScreenConst.SCREEN_ID_CCW00104);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCCScreenConst.SCREEN_NAME_CCW00104);

		return true;

	}

	/**
	 * 送信ボタン押下.<br>
	 * 送信ボタン押下。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean send() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// ユースケースID格納用マップ
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// (1)引継情報の取得
		// なし。

		// (2)サービスフォームBeanの設定
		// 送信状態コード
		bean.sendMessageString(CRW00801SFConst.SEND_STAT_CD, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.SEND_STAT_CD_SNDZM);

		// 送信先メルアド
		X31SDataBeanAccessArray sendsMladArray = bean.getDataBeanArray(CRW00801SFConst.SENDS_MLAD);
		sendsMladArray.clearArray();

		// Toメールアドレス
		X31SDataBeanAccessArray toMladArray = bean.getDataBeanArray(CRW00801SFConst.TO_MLAD);
		X31SDataBeanAccess toMladBean = toMladArray.getDataBean(0);
		editSendsMlad(sendsMladArray, toMladBean.sendMessageString(CRW00801SFConst.L14_TO_MLAD_11, X31CWebConst.DATABEAN_GET_VALUE), "01");

		// (3)サービス呼出処理
		// 電子ファイル登録のマッピング処理に必要なリストを生成する。
		// ファイルバイナリデータリスト
		ArrayList<byte[]> byteList = new  ArrayList<byte[]>(); 
		// ファイルコードリスト
		ArrayList<String> fileCodeList = new  ArrayList<String>();
		// ファイル削除年月日
		ArrayList<String> delYmdList = new  ArrayList<String>();

		// 電子ファイル削除のマッピング処理に必要なリストを生成する。
		ArrayList<HashMap<String, Object>> listDelEfileKanri = new  ArrayList<HashMap<String, Object>>(); 

		ArrayList<HashMap<String, Object>> listEfile = new  ArrayList<HashMap<String, Object>>(); 
		
		// (a) 電子ファイル登録、電子ファイル削除用のリストの生成を行う。
		X31SDataBeanAccessArray bunshoList = bean.getDataBeanArray(CRW00801SFConst.BUNSHOLIST);
		
		for (int i = 0; i < bunshoList.getCount().intValue(); i++)
		{
			X31SDataBeanAccess bunshoBean = bunshoList.getDataBean(i);
			
			// (ｱ) (CRW00801)SFBern.添付ファイル状態区分が "1"(新規添付ファイル) かつ
			//     (CRW00801)SFBern.一時ファイル表示可否が"true"(表示)の場合
			if (JCRStrConst.TMP_FILE_STAT_DIV_NEW.equals(bunshoBean.sendMessageString(
					CRW00801SFConst.L5_TMP_FILE_STAT_DIV_06, X31CWebConst.DATABEAN_GET_VALUE))
				&& bunshoBean.sendMessageBoolean(CRW00801SFConst.L5_FILE_DSP_FLG_06, X31CWebConst.DATABEAN_GET_VALUE))
			{
				// ファイルバイナリデータリスト
				byteList.add(JCRWebCommon.getFile(this, bunshoBean.sendMessageString(
						CRW00801SFConst.L5_EFILE_KANRI_NO_06, X31CWebConst.DATABEAN_GET_VALUE)));
				// ファイルコードリスト
				fileCodeList.add(null);
				// ファイル削除年月日
				delYmdList.add("20991231");

			}

			// (ｲ) (CRW00801)SFBern.添付ファイル状態区分が "0"(文書管理テーブルに登録済) かつ
			//     (CRW00801)SFBern.一時ファイル表示可否が "false"(非表示) の場合
			else if (JCRStrConst.TMP_FILE_STAT_DIV_EXIST.equals(bunshoBean.sendMessageString(
					CRW00801SFConst.L5_TMP_FILE_STAT_DIV_06, X31CWebConst.DATABEAN_GET_VALUE))
				&& !bunshoBean.sendMessageBoolean(CRW00801SFConst.L5_FILE_DSP_FLG_06
					, X31CWebConst.DATABEAN_GET_VALUE))
			{
				HashMap<String, Object> mapDelEfileKanri = new HashMap<String, Object>();
				// 電子ファイル管理番号
				mapDelEfileKanri.put("efile_kanri_no", JCRWebCommon.getReplaceNoString(this, bunshoBean.sendMessageString(
						CRW00801SFConst.L5_EFILE_KANRI_NO_06, X31CWebConst.DATABEAN_GET_VALUE)));
				// 更新前世代登録年月日時分秒
				mapDelEfileKanri.put("gene_add_dtm_bf", bunshoBean.sendMessageString(
						CRW00801SFConst.L5_GENE_ADD_DTM_06, X31CWebConst.DATABEAN_GET_VALUE));
				// 更新前更新年月日時分秒
				mapDelEfileKanri.put("upd_dtm_bf", bunshoBean.sendMessageString(
						CRW00801SFConst.L5_UPD_DTM_BF_06, X31CWebConst.DATABEAN_GET_VALUE));
				listDelEfileKanri.add(mapDelEfileKanri);
			}

			// (ｳ) 電子ファイル管理情報リスト作成
			HashMap<String, Object> mapEfile = new HashMap<String, Object>();
			mapEfile.put("efile_kanri_no", JCRWebCommon.getReplaceNoString(this
					, bunshoBean.sendMessageString(CRW00801SFConst.L5_EFILE_KANRI_NO_06, X31CWebConst.DATABEAN_GET_VALUE)));
			mapEfile.put("file_nm"
					, bunshoBean.sendMessageString(CRW00801SFConst.L5_TAIORRKI_BUNSHO_FILE_NM_06, X31CWebConst.DATABEAN_GET_VALUE));
			mapEfile.put("gene_add_dtm"
					, bunshoBean.sendMessageString(CRW00801SFConst.L5_GENE_ADD_DTM_06, X31CWebConst.DATABEAN_GET_VALUE));
			listEfile.add(mapEfile);

		}


		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean, commoninfoBean};
	
		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0158");
		
		// マッピングクラス
		CRSV0158_CRSV0158OPDBMapper mapper = new CRSV0158_CRSV0158OPDBMapper();
		mapper.setJUDGENGWORDCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setUPDTAIOKRKCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setUPDTAIOKRKDTLTENSOMAILCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setDELHOTVOICCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setADDHOTVOICCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setADDDELBUNSHOCTLCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setADDDELBUNSHOCTL2CC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setCRSV015801SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setSENDMAILCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setHKTG_WORK(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		HashMap<String, Object> attachMap = new HashMap<String, Object>();

		// (c) 電子管理ファイル番号取得に必要な情報を電子ファイル管理サービスインターフェイスにマッピングする。
		JCRWebCommon.setDenshiFileService(dataMap, attachMap, "CR", fileCodeList, byteList, delYmdList, JPCModelConstant.FUNC_CD_1);

		((HashMap)dataMap.get("ADDDELBUNSHOCTLCC")).put("DEL_EFILE_KANRI_List", listDelEfileKanri);
		((HashMap)dataMap.get("HKTG_WORK")).put("EFILE_List", listEfile);

		// サービス実行
		invokeService(paramMap, dataMap, outputMap, attachMap);

		// マッピング処理（下り）
		mapper.getJUDGENGWORDCC(paramBean, outputMap);

		// (4)サービス処理結果の設定
		// (a) アップロード完了後の一時ファイル削除処理（JCCWebCommon.deleteCache）を呼び出し、
		//     一時ファイルを削除する。
		JCRWebCommon.deleteCache(this);

		// クローズ不可の場合
		if (!JCRStrConst.CD_DIV_CLOSE_FAIL_CD_KANOU.equals(bean.sendMessageString(CRW00801SFConst.CLOSE_FAIL_CD, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// メール送信（ＮＧワード）CC実行
			JCRWebCommon.callSendMailNgWordCC(this, setSendMailNgWordCC(bean, outputMap), JPCModelConstant.FUNC_CD_1);
		}

		// (5)引継情報の設定
		// なし。

		// (6)共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCCScreenConst.SCREEN_ID_CCW00104);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCCScreenConst.SCREEN_NAME_CCW00104);

		return true;

	}

	/**
	 * キャンセルボタン押下.<br>
	 * キャンセルボタン押下。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean cancel() throws Exception
	{
		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// (1)引継情報の取得
		// なし。
		
		// (2)サービスフォームBeanの設定
		// なし。

		// (3)サービス呼出処理
		// なし。

		// (4)サービス処理結果の設定
		// なし。

		// (5)引継情報の設定
		// なし。

		// (6)共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW00801);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00801);

		return true;

	}

	/**
	 * 全項目非活性処理.<br>
	 * 全項目を非活性状態にします。
	 */
	private void setAllProtect()
	{
	
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();
	
		// すべての項目を使用不可とする
		bean.sendMessageString(CRW00801SFConst.TOIAWASE_UK_SBT_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
		bean.sendMessageString(CRW00801SFConst.EASY_MEMO_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
		bean.sendMessageString(CRW00801SFConst.ADD_RSP_CTG_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);
		bean.sendMessageString(CRW00801SFConst.ADD_TNP_FL_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);
		bean.sendMessageString(CRW00801SFConst.CALLBK_KIBO_YMD_YYYY_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
		bean.sendMessageString(CRW00801SFConst.CALLBK_KIBO_YMD_MM_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
		bean.sendMessageString(CRW00801SFConst.CALLBK_KIBO_YMD_DD_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
		bean.sendMessageString(CRW00801SFConst.CALENDAR_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);
		bean.sendMessageString(CRW00801SFConst.CALLBK_KIBO_TIME_HO_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
		bean.sendMessageString(CRW00801SFConst.CALLBK_KIBO_TIME_MI_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
		bean.sendMessageString(CRW00801SFConst.CALLBK_SHITEI_TYPE_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);

		// 応対区分／カテゴリリストの項目に対して、活性・非活性制御を行う。
		X31SDataBeanAccessArray rspCtgrList = bean.getDataBeanArray(CRW00801SFConst.RSP_CTGR_LIST);
		for (int i = 0; i < rspCtgrList.getCount().intValue(); i++)
		{
			X31SDataBeanAccess rspCtgrBean = rspCtgrList.getDataBean(i);
			rspCtgrBean.sendMessageString(CRW00801SFConst.L1_MOVE_UP_RSP_CTG_DISABLED_02, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);
			rspCtgrBean.sendMessageString(CRW00801SFConst.L1_MOVE_DOWN_RSP_CTG_DISABLED_02, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);
			rspCtgrBean.sendMessageString(CRW00801SFConst.L1_DELETE_RSP_CTG_DISABLED_02, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);
			rspCtgrBean.sendMessageString(CRW00801SFConst.L1_RSP_DIV_DISABLED_02, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);
	
			X31SDataBeanAccessArray uwCtgrnList = rspCtgrBean.getDataBeanArray(CRW00801SFConst.L1_UW_CTGRN_LIST);
			for (int j = 0; j < uwCtgrnList.getCount().intValue(); j++)
			{
				X31SDataBeanAccess uwCtgrnBean = uwCtgrnList.getDataBean(j);
				uwCtgrnBean.sendMessageString(CRW00801SFConst.L3_UW_CTGRN_DISABLED_04, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);
			}
		}
	
		// カテゴリの項目に対して、活性・非活性制御を行う。
		X31SDataBeanAccessArray bunshoList = bean.getDataBeanArray(CRW00801SFConst.BUNSHOLIST);
		for (int i = 0; i < bunshoList.getCount().intValue(); i++)
		{
			X31SDataBeanAccess bunshoBean = bunshoList.getDataBean(i);
			bunshoBean.sendMessageString(CRW00801SFConst.L5_DELETE_TNP_FL_DISABLED_06, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);
		}

		bean.sendMessageString(CRW00801SFConst.TITLE_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
		bean.sendMessageString(CRW00801SFConst.ADDTOMLAD_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);
		bean.sendMessageString(CRW00801SFConst.FROM_MLAD_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
		bean.sendMessageString(CRW00801SFConst.HNSIN_SYMBOL_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
		bean.sendMessageString(CRW00801SFConst.MAIL_TITLE_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
		bean.sendMessageString(CRW00801SFConst.TOIAWASE_ID_HUKA_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
		bean.sendMessageString(CRW00801SFConst.SIGN_TEMPLA_TYPE_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
		bean.sendMessageString(CRW00801SFConst.MAIL_TEXT_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
		bean.sendMessageString(CRW00801SFConst.SIGN_TEMPLA_TEXT_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
		bean.sendMessageString(CRW00801SFConst.SIGN_TEMPLA_FOOTER_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
		bean.sendMessageString(CRW00801SFConst.TOIAWASE_NAIYO_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);

		// カテゴリの項目に対して、活性・非活性制御を行う。
		X31SDataBeanAccessArray bunshoList2 = bean.getDataBeanArray(CRW00801SFConst.BUNSHOLIST2);
		for (int i = 0; i < bunshoList2.getCount().intValue(); i++)
		{
			X31SDataBeanAccess bunshoBean2 = bunshoList2.getDataBean(i);
			bunshoBean2.sendMessageString(CRW00801SFConst.L12_MAIL_TEMP_FILE_DISABLED_12, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);
		}

	}

	/**
	 * 転送、一時保存ボタン押下時共通処理.<br>
	 * 転送、一時保存ボタン押下時共通処理を行います。
	 * 
	 * @param pushButtonJdgFlg 登録画面ボタン押下判定フラグ
	 * @return boolean
	 * @throws Exception
	 */
	private void confirmForwardSaveTmp(String pushButtonJdgFlg) throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();
	
		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();
	
		// (1)サービスフォームBeanの設定
		// (a) サービスフォームBean編集処理（editServiceFormBean）を呼び出す。
		editServiceFormBean(bean, pushButtonJdgFlg);
	
		// (2)サービス呼出処理
		// (a) サービス呼出処理（callService）を呼び出す。
		callService(bean, commoninfoBean, JPCModelConstant.FUNC_CD_2);

	
	}

	/**
	 * サービスフォームBean編集処理.<br>
	 * サービスフォームBeanの設定を行う。
	 * 
	 * @param bean サービスフォームBean
	 * @param pushButtonJdgFlg 登録画面ボタン押下判定フラグ
	 */
	private void editServiceFormBean(X31SDataBeanAccess bean, String pushButtonJdgFlg)
	{
		// (a) サービスフォームBeanの設定
		// (ｱ) 応対区分／カテゴリーリスト以外の設定を行う。
		// 登録画面ボタン押下判定フラグ
		bean.sendMessageString(CRW00801SFConst.PUSH_BUTTON_JDG_FLG, X31CWebConst.DATABEAN_SET_VALUE, pushButtonJdgFlg);
		
		// 問合せ受付種別
		X31SDataBeanAccess toiawaseUkSbtBean = bean.getDataBeanArray(CRW00801SFConst.TOIAWASE_UK_SBT).getDataBean(0);
		// 問合せ受付種別・問合せ受付種別コード
		toiawaseUkSbtBean.sendMessageString(CRW00801SFConst.L0_SEL_TOIAWASE_UK_SBT_CD_01, X31CWebConst.DATABEAN_SET_VALUE
				, JCRWebCommon.getPullDownCode(bean, CRW00801SFConst.TOIAWASE_UK_SBT, CRW00801SFConst.L0_SEL_TOIAWASE_UK_SBT_IDX_01
				, CRW00801SFConst.L0_TOIAWASE_UK_SBT_CD_01));
		// 問合せ受付種別・問合せ受付種別コード名称
		toiawaseUkSbtBean.sendMessageString(CRW00801SFConst.L0_SEL_TOIAWASE_UK_SBT_CD_NM_01, X31CWebConst.DATABEAN_SET_VALUE
				, JCRWebCommon.getPullDownName(bean, CRW00801SFConst.TOIAWASE_UK_SBT, CRW00801SFConst.L0_SEL_TOIAWASE_UK_SBT_IDX_01
				, CRW00801SFConst.L0_TOIAWASE_UK_SBT_CD_01, CRW00801SFConst.L0_TOIAWASE_UK_SBT_CD_NM_01));

		// コールバック希望年月日
		String callbkKiboYmd = JCRUtilCommon.concatYmd(
				bean.sendMessageString(CRW00801SFConst.CALLBK_KIBO_YMD_YYYY, X31CWebConst.DATABEAN_GET_VALUE)
				, bean.sendMessageString(CRW00801SFConst.CALLBK_KIBO_YMD_MM, X31CWebConst.DATABEAN_GET_VALUE)
				, bean.sendMessageString(CRW00801SFConst.CALLBK_KIBO_YMD_DD, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW00801SFConst.CALLBK_KIBO_YMD, X31CWebConst.DATABEAN_SET_VALUE, callbkKiboYmd != null ? callbkKiboYmd : "");

		// コールバック希望時間
		String callbkKiboTime = JCRUtilCommon.concatHm(
				bean.sendMessageString(CRW00801SFConst.CALLBK_KIBO_TIME_HO, X31CWebConst.DATABEAN_GET_VALUE)
				, bean.sendMessageString(CRW00801SFConst.CALLBK_KIBO_TIME_MI, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW00801SFConst.CALLBK_KIBO_TIME, X31CWebConst.DATABEAN_SET_VALUE, callbkKiboTime != null ? callbkKiboTime : "");

		// コールバック時間指定タイプ
		X31SDataBeanAccess callbkShiteiTypeBean = bean.getDataBeanArray(CRW00801SFConst.CALLBK_SHITEI_TYPE).getDataBean(0);
		// コールバック時間指定タイプ・コールバック時間指定タイプコード
		callbkShiteiTypeBean.sendMessageString(CRW00801SFConst.L6_SEL_CALLBK_SHITEI_TYPE_CD_07, X31CWebConst.DATABEAN_SET_VALUE
				, JCRWebCommon.getPullDownCode(bean, CRW00801SFConst.CALLBK_SHITEI_TYPE, CRW00801SFConst.L6_SEL_CALLBK_SHITEI_TYPE_IDX_07
				, CRW00801SFConst.L6_CALLBK_SHITEI_TYPE_CD_07));
		// コールバック時間指定タイプ・コールバック時間指定タイプコード名称
		callbkShiteiTypeBean.sendMessageString(CRW00801SFConst.L6_SEL_CALLBK_SHITEI_TYPE_CD_NM_07, X31CWebConst.DATABEAN_SET_VALUE
				, JCRWebCommon.getPullDownName(bean, CRW00801SFConst.CALLBK_SHITEI_TYPE, CRW00801SFConst.L6_SEL_CALLBK_SHITEI_TYPE_IDX_07
				, CRW00801SFConst.L6_CALLBK_SHITEI_TYPE_CD_07, CRW00801SFConst.L6_CALLBK_SHITEI_TYPE_CD_NM_07));

		// Ｆｒｏｍメルアド
		X31SDataBeanAccessArray fromMladArray = bean.getDataBeanArray(CRW00801SFConst.FROM_MLAD);
		X31SDataBeanAccess fromMladBean = fromMladArray.getDataBean(0);

		// Ｆｒｏｍメールアドレス
		String fromMlad = JCRWebCommon.getPullDownCode(bean
				, CRW00801SFConst.FROM_MLAD
				, CRW00801SFConst.L8_SEL_FROM_MLAD_IDX_09
				, CRW00801SFConst.L8_FROM_MLAD_LIST_09);

		fromMladBean.sendMessageString(CRW00801SFConst.L8_SEL_FROM_MLAD_09, X31CWebConst.DATABEAN_SET_VALUE, fromMlad);

		// Ｆｒｏｍメールアドレス名
		String fromMladNm = JCRWebCommon.getPullDownName(bean
				, CRW00801SFConst.FROM_MLAD
				, CRW00801SFConst.L8_SEL_FROM_MLAD_IDX_09
				, CRW00801SFConst.L8_FROM_MLAD_LIST_09
				, CRW00801SFConst.L8_FROM_MLAD_NM_LIST_09);

		fromMladBean.sendMessageString(CRW00801SFConst.L8_SEL_FROM_MLAD_NM_09, X31CWebConst.DATABEAN_SET_VALUE, fromMladNm);

		// メール件名修飾用文字列
		X31SDataBeanAccessArray hnsinSymbolArray = bean.getDataBeanArray(CRW00801SFConst.HNSIN_SYMBOL);
		X31SDataBeanAccess hnsinSymbolBean = hnsinSymbolArray.getDataBean(0);

		// メール件名修飾用文字列コード
		String hnsinSymbolCd = JCRWebCommon.getPullDownCode(bean
				, CRW00801SFConst.HNSIN_SYMBOL
				, CRW00801SFConst.L7_SEL_HNSIN_SYMBOL_IDX_08
				, CRW00801SFConst.L7_HNSIN_SYMBOL_CD_08);

		hnsinSymbolBean.sendMessageString(CRW00801SFConst.L7_SEL_HNSIN_SYMBOL_CD_08, X31CWebConst.DATABEAN_SET_VALUE, hnsinSymbolCd);

		// メール件名修飾用文字列コード名称
		String hnsinSymbolCdNm = JCRWebCommon.getPullDownName(bean
				, CRW00801SFConst.HNSIN_SYMBOL
				, CRW00801SFConst.L7_SEL_HNSIN_SYMBOL_IDX_08
				, CRW00801SFConst.L7_HNSIN_SYMBOL_CD_08
				, CRW00801SFConst.L7_HNSIN_SYMBOL_CD_NM_08);

		hnsinSymbolBean.sendMessageString(CRW00801SFConst.L7_SEL_HNSIN_SYMBOL_CD_NM_08, X31CWebConst.DATABEAN_SET_VALUE, hnsinSymbolCdNm);

		// 問合せＩＤ
		String toiawaseId = "";

		// 上記取得したメール件名修飾用文字列コード名称 +
		// 			DataBean.メール件名
		// DataBean.問合せＩＤ付加が選択有(true)の場合
		if (bean.sendMessageBoolean(CRW00801SFConst.TOIAWASE_ID_HUKA, X31CWebConst.DATABEAN_GET_VALUE))
		{
			toiawaseId = "【ID：" + bean.sendMessageString(CRW00801SFConst.TAIO_KIROK_NO, X31CWebConst.DATABEAN_GET_VALUE) + "】";
		}

		String hnsinSymbolCdNmCfm = "";
		
		// 未選択の場合
		if (!JCRStrConst.CD_DIV_HNSIN_SYMBOL_CD_MICHOICE.equals(hnsinSymbolCd))
		{
			hnsinSymbolCdNmCfm = hnsinSymbolCdNm;
		}

		// "【ID:" + DataBean.問合せＩＤ + "】" +
		// メール件名(確認)
		String mailTitleCfm = hnsinSymbolCdNmCfm + toiawaseId + bean.sendMessageString(CRW00801SFConst.MAIL_TITLE, X31CWebConst.DATABEAN_GET_VALUE);
		// メール件名(更新用)
		String mailTitleUpd = toiawaseId + bean.sendMessageString(CRW00801SFConst.MAIL_TITLE, X31CWebConst.DATABEAN_GET_VALUE);

		bean.sendMessageString(CRW00801SFConst.MAIL_TITLE_CFM, X31CWebConst.DATABEAN_SET_VALUE, mailTitleCfm);
		bean.sendMessageString(CRW00801SFConst.MAIL_TITLE_UPD, X31CWebConst.DATABEAN_SET_VALUE, mailTitleUpd);

		X31SDataBeanAccessArray signTemplaTypeArray = bean.getDataBeanArray(CRW00801SFConst.SIGN_TEMPLA_TYPE);
		X31SDataBeanAccess signTemplaTypeBean = signTemplaTypeArray.getDataBean(0);
		// メール本文(確認)
		String signTemplaText = signTemplaTypeBean.sendMessageString(CRW00801SFConst.L9_SEL_SIGN_TEMPLA_TEXT_10
				, X31CWebConst.DATABEAN_GET_VALUE);
		bean.sendMessageString(CRW00801SFConst.MAIL_TEXT_CFM, X31CWebConst.DATABEAN_SET_VALUE
				, signTemplaText.replace(JCRStrConst.KAIGYO_CD, JCRStrConst.TAG_BR));

		// 署名テンプレートフッター（確認）
		String signTemplaFooter = signTemplaTypeBean.sendMessageString(CRW00801SFConst.L9_SEL_SIGN_TEMPLA_FOOTER_10
				, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 署名テンプレートフッター（確認）
		bean.sendMessageString(CRW00801SFConst.SIGN_TEMPLA_FOOTER_CFM, X31CWebConst.DATABEAN_SET_VALUE
				, signTemplaFooter.replace(JCRStrConst.KAIGYO_CD, JCRStrConst.TAG_BR));

		// 問合せ文（確認）
		String toiawaseNaiyo = bean.sendMessageString(CRW00801SFConst.TOIAWASE_NAIYO, X31CWebConst.DATABEAN_GET_VALUE);
		bean.sendMessageString(CRW00801SFConst.TOIAWASE_NAIYO_CFM, X31CWebConst.DATABEAN_SET_VALUE
				, toiawaseNaiyo.replace(JCRStrConst.KAIGYO_CD, JCRStrConst.TAG_BR));

		// 送信状態コード
		bean.sendMessageString(CRW00801SFConst.SEND_STAT_CD, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.SEND_STAT_CD_MISND);
		
		// (b) 応対区分／カテゴリリストの設定を行う。
		//     ※応対区分／カテゴリリストの件数分処理を行う。
		// 応対区分／カテゴリリスト
		X31SDataBeanAccessArray rspCtgrList = bean.getDataBeanArray(CRW00801SFConst.RSP_CTGR_LIST);

		for (int i = 0; i < rspCtgrList.getCount().intValue(); i++)
		{
			// 応対区分／カテゴリリスト
			X31SDataBeanAccess rspCtgrBean = rspCtgrList.getDataBean(i);

			// 応対区分
			X31SDataBeanAccessArray toiawaseRspList = rspCtgrBean.getDataBeanArray(CRW00801SFConst.L1_TOIAWASE_RSP);

			// 応対区分インデックス
			String selectedIndexRspDiv = rspCtgrBean.sendMessageString(CRW00801SFConst.L1_SEL_RSP_DIV_IDX_02
					, X31CWebConst.DATABEAN_GET_VALUE);
			// 応対区分・応対区分コード
			rspCtgrBean.sendMessageString(CRW00801SFConst.L1_SEL_RSP_DIV_CD_02, X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getDetailPullDownValue(toiawaseRspList, selectedIndexRspDiv, CRW00801SFConst.L2_RSP_DIV_03));
			// 応対区分・応対区分名称
			rspCtgrBean.sendMessageString(CRW00801SFConst.L1_SEL_RSP_DIV_NM_02, X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getDetailPullDownValue(toiawaseRspList, selectedIndexRspDiv, CRW00801SFConst.L2_RSP_DIV_NM_03));

			// (c) 対応記録内訳抽出ワーク作成区分の編集を行う。
			// 応対区分が変更されている場合
			String tiokrUwCstWkAddDiv = null;
			if (rspCtgrBean.sendMessageString(CRW00801SFConst.L1_SEL_RSP_DIV_CD_02, X31CWebConst.DATABEAN_GET_VALUE).equals(
					rspCtgrBean.sendMessageString(CRW00801SFConst.L1_SEL_RSP_DIV_CD_BF_02, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				tiokrUwCstWkAddDiv = JCRStrConst.TIOKR_UW_CST_WK_ADD_DIV_NOCREATE;
			}
			else
			{
				tiokrUwCstWkAddDiv = JCRStrConst.TIOKR_UW_CST_WK_ADD_DIV_TOIAWASE_RSP;
				rspCtgrBean.sendMessageString(CRW00801SFConst.L1_CUST_KOE_02, X31CWebConst.DATABEAN_SET_VALUE, "");
				rspCtgrBean.sendMessageString(CRW00801SFConst.L1_CSR_KOE_02, X31CWebConst.DATABEAN_SET_VALUE, "");
			}
			rspCtgrBean.sendMessageString(CRW00801SFConst.L1_TIOKR_UW_CST_WK_ADD_DIV_02, X31CWebConst.DATABEAN_SET_VALUE, tiokrUwCstWkAddDiv);

			// カテゴリーＮリスト
			X31SDataBeanAccessArray uwCtgrListArray = rspCtgrBean.getDataBeanArray(CRW00801SFConst.L1_UW_CTGRN_LIST);
	
			// (d) カテゴリーの設定を行う。
			//     ※カテゴリの件数分処理を行う。
			for (int j = 0; j < uwCtgrListArray.getCount().intValue(); j++)
			{
				// カテゴリーＮリスト
				X31SDataBeanAccess ctgrBean = uwCtgrListArray.getDataBean(j);

				// カテゴリーＮ
				X31SDataBeanAccessArray uwCtgrList = ctgrBean.getDataBeanArray(CRW00801SFConst.L3_UW_CTGRN);

				// カテゴリーＮコードインデックス
				String selectedIndexCtgr = ctgrBean.sendMessageString(CRW00801SFConst.L3_SEL_UW_CTGRN_IDX_04, X31CWebConst.DATABEAN_GET_VALUE);
	
				// 応対区分・カテゴリーＮ番号
				ctgrBean.sendMessageString(CRW00801SFConst.L3_SEL_UW_CTGRN_CD_04, X31CWebConst.DATABEAN_SET_VALUE
						, JCRWebCommon.getDetailPullDownValue(uwCtgrList, selectedIndexCtgr, CRW00801SFConst.L4_UW_CTGRN_CD_05));
				// 応対区分・カテゴリーＮ名称
				ctgrBean.sendMessageString(CRW00801SFConst.L3_SEL_UW_CTGRN_NM_04, X31CWebConst.DATABEAN_SET_VALUE
						, JCRWebCommon.getDetailPullDownValue(uwCtgrList, selectedIndexCtgr, CRW00801SFConst.L4_UW_CTGRN_NM_05));
			}
		}
	}

	/**
	 * サービス呼出処理.<br>
	 * サービスの呼び出しを行う。
	 * 
	 * @param bean サービスフォームBean
	 * @param commoninfoBean 共有フォームBean
	 * @param funcCd 機能コード
	 * @throws Exception
	 */
	private void callService(X31SDataBeanAccess bean,
			X31SDataBeanAccess commoninfoBean,
			String funcCd) throws Exception
	{

		// ユースケースID格納用マップ
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// (1)サービス呼出処理
		// 電子ファイル登録のマッピング処理に必要なリストを生成する。
		// ファイルバイナリデータリスト
		ArrayList<byte[]> byteList = new  ArrayList<byte[]>(); 
		// ファイルコードリスト
		ArrayList<String> fileCodeList = new  ArrayList<String>();
		// ファイル削除年月日
		ArrayList<String> delYmdList = new  ArrayList<String>();

		// 電子ファイル削除のマッピング処理に必要なリストを生成する。
		ArrayList<HashMap<String, Object>> listDelEfileKanri = new  ArrayList<HashMap<String, Object>>(); 

		ArrayList<HashMap<String, Object>> listEfile = new  ArrayList<HashMap<String, Object>>(); 

		// (a) 電子ファイル登録、電子ファイル削除用のリストの生成を行う。
		X31SDataBeanAccessArray bunshoList = bean.getDataBeanArray(CRW00801SFConst.BUNSHOLIST);

		for (int i = 0; i < bunshoList.getCount().intValue(); i++)
		{
			X31SDataBeanAccess bunshoBean = bunshoList.getDataBean(i);
			
			// (ｱ) (CRW00801)SFBern.添付ファイル状態区分が "1"(新規添付ファイル) かつ
			//     (CRW00801)SFBern.一時ファイル表示可否が"true"(表示)の場合
			if (JCRStrConst.TMP_FILE_STAT_DIV_NEW.equals(bunshoBean.sendMessageString(
					CRW00801SFConst.L5_TMP_FILE_STAT_DIV_06, X31CWebConst.DATABEAN_GET_VALUE))
				&& bunshoBean.sendMessageBoolean(CRW00801SFConst.L5_FILE_DSP_FLG_06, X31CWebConst.DATABEAN_GET_VALUE))
			{
				// ファイルバイナリデータリスト
				byteList.add(JCRWebCommon.getFile(this, bunshoBean.sendMessageString(
						CRW00801SFConst.L5_EFILE_KANRI_NO_06, X31CWebConst.DATABEAN_GET_VALUE)));
				// ファイルコードリスト
				fileCodeList.add(null);
				// ファイル削除年月日
				delYmdList.add("20991231");

			}

			// (ｲ) (CRW00801)SFBern.添付ファイル状態区分が "0"(文書管理テーブルに登録済) かつ
			//     (CRW00801)SFBern.一時ファイル表示可否が "false"(非表示) の場合
			else if (JCRStrConst.TMP_FILE_STAT_DIV_EXIST.equals(bunshoBean.sendMessageString(
					CRW00801SFConst.L5_TMP_FILE_STAT_DIV_06, X31CWebConst.DATABEAN_GET_VALUE))
				&& !bunshoBean.sendMessageBoolean(CRW00801SFConst.L5_FILE_DSP_FLG_06
					, X31CWebConst.DATABEAN_GET_VALUE))
			{
				HashMap<String, Object> mapDelEfileKanri = new HashMap<String, Object>();
				// 電子ファイル管理番号
				mapDelEfileKanri.put("efile_kanri_no", JCRWebCommon.getReplaceNoString(this
						, bunshoBean.sendMessageString(CRW00801SFConst.L5_EFILE_KANRI_NO_06, X31CWebConst.DATABEAN_GET_VALUE)));
				// 更新前世代登録年月日時分秒
				mapDelEfileKanri.put("gene_add_dtm_bf", bunshoBean.sendMessageString(
						CRW00801SFConst.L5_GENE_ADD_DTM_06, X31CWebConst.DATABEAN_GET_VALUE));
				// 更新前更新年月日時分秒
				mapDelEfileKanri.put("upd_dtm_bf", bunshoBean.sendMessageString(
						CRW00801SFConst.L5_UPD_DTM_BF_06, X31CWebConst.DATABEAN_GET_VALUE));
				listDelEfileKanri.add(mapDelEfileKanri);
			}

			// (ｳ) 電子ファイル管理情報リスト作成
			HashMap<String, Object> mapEfile = new HashMap<String, Object>();
			mapEfile.put("efile_kanri_no", JCRWebCommon.getReplaceNoString(this
					, bunshoBean.sendMessageString(CRW00801SFConst.L5_EFILE_KANRI_NO_06, X31CWebConst.DATABEAN_GET_VALUE)));
			mapEfile.put("file_nm"
					, bunshoBean.sendMessageString(CRW00801SFConst.L5_TAIORRKI_BUNSHO_FILE_NM_06, X31CWebConst.DATABEAN_GET_VALUE));
			mapEfile.put("gene_add_dtm"
					, bunshoBean.sendMessageString(CRW00801SFConst.L5_GENE_ADD_DTM_06, X31CWebConst.DATABEAN_GET_VALUE));
			listEfile.add(mapEfile);
		}
		
		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean, commoninfoBean};
	
		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0157");
		
		// マッピングクラス
		CRSV0157_CRSV0157OPDBMapper mapper = new CRSV0157_CRSV0157OPDBMapper();
		mapper.setJUDGENGWORDCC(paramBean, dataMap, funcCd);
		mapper.setUPDTAIOKRKCC(paramBean, dataMap, funcCd);
		mapper.setADDTAIOKRKDTLTENSOMAILCC(paramBean, dataMap, funcCd);
		mapper.setUPDTAIOKRKDTLTENSOMAILCC(paramBean, dataMap, funcCd);
		mapper.setDELHOTVOICCC(paramBean, dataMap, funcCd);
		mapper.setADDHOTVOICCC(paramBean, dataMap, funcCd);
		mapper.setADDDELBUNSHOCTLCC(paramBean, dataMap, funcCd);
		mapper.setADDDELBUNSHOCTL2CC(paramBean, dataMap, funcCd);
		mapper.setHKTG_WORK(paramBean, dataMap, funcCd);

		HashMap<String, Object> attachMap = new HashMap<String, Object>();

		// (c) 電子管理ファイル番号取得に必要な情報を電子ファイル管理サービスインターフェイスにマッピングする。
		JCRWebCommon.setDenshiFileService(dataMap, attachMap, "CR", fileCodeList, byteList, delYmdList, funcCd);

		((HashMap)dataMap.get("ADDDELBUNSHOCTLCC")).put("DEL_EFILE_KANRI_List", listDelEfileKanri);
		((HashMap)dataMap.get("HKTG_WORK")).put("EFILE_List", listEfile);

		// サービス実行
		invokeService(paramMap, dataMap, outputMap, attachMap);

		// マッピング処理（下り）
		mapper.getJUDGENGWORDCC(paramBean, outputMap);

		// クローズ不可の場合
		if (!JCRStrConst.CD_DIV_CLOSE_FAIL_CD_KANOU.equals(bean.sendMessageString(CRW00801SFConst.CLOSE_FAIL_CD, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// メール送信（ＮＧワード）CC実行
			JCRWebCommon.callSendMailNgWordCC(this, setSendMailNgWordCC(bean, outputMap), funcCd);
		}
	}

	/**
	 * カテゴリ追加処理.<br>
	 * カテゴリの追加を行う。
	 * @param uwCtgrListArray カテゴリＮリスト
	 * @param uwCtgrCd カテゴリー番号
	 * @param uwCtgrNm カテゴリー名称
	 * @param uwCtgrLv カテゴリーレベル
	 */
	private void addCtgr(X31SDataBeanAccessArray uwCtgrListArray, String uwCtgrCd, String uwCtgrNm, String uwCtgrLv)
	{
		// (1) サービスフォームBeanの設定
		// (a) カテゴリＮリストの編集を行う。
		// カテゴリＮリストBean
		X31SDataBeanAccess uwCtgrnListBean = uwCtgrListArray.addDataBean();
	
		// カテゴリーＮコードインデックス
		uwCtgrnListBean.sendMessageString(CRW00801SFConst.L3_SEL_UW_CTGRN_IDX_04, X31CWebConst.DATABEAN_SET_VALUE, "0");
		// カテゴリーＮ番号
		uwCtgrnListBean.sendMessageString(CRW00801SFConst.L3_SEL_UW_CTGRN_CD_04, X31CWebConst.DATABEAN_SET_VALUE, uwCtgrCd);
		// カテゴリーＮ名称
		uwCtgrnListBean.sendMessageString(CRW00801SFConst.L3_SEL_UW_CTGRN_NM_04, X31CWebConst.DATABEAN_SET_VALUE, uwCtgrNm);
		// カテゴリーＮレベル
		uwCtgrnListBean.sendMessageString(CRW00801SFConst.L3_SEL_UW_CTGRN_LV_04, X31CWebConst.DATABEAN_SET_VALUE, uwCtgrLv);
		// カテゴリーＮ名称(変更前)
		uwCtgrnListBean.sendMessageString(CRW00801SFConst.L3_SEL_UW_CTGRN_NM_BF_04, X31CWebConst.DATABEAN_SET_VALUE, "");
		// カテゴリーＮ設定フラグ
		uwCtgrnListBean.sendMessageBoolean(CRW00801SFConst.L3_SEL_UW_CTGRN_SET_04, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);

		// (b) カテゴリーＮの編集を行う。
		// カテゴリーＮ
		X31SDataBeanAccessArray uwCtgrList = uwCtgrnListBean.getDataBeanArray(CRW00801SFConst.L3_UW_CTGRN);
	
		X31SDataBeanAccess uwCtgrBean = uwCtgrList.addDataBean();
		
		// カテゴリーＮ番号リスト
		uwCtgrBean.sendMessageString(CRW00801SFConst.L4_UW_CTGRN_CD_05, X31CWebConst.DATABEAN_SET_VALUE, uwCtgrCd);
		// カテゴリーＮ名称リスト
		uwCtgrBean.sendMessageString(CRW00801SFConst.L4_UW_CTGRN_NM_05, X31CWebConst.DATABEAN_SET_VALUE, uwCtgrNm);
	}

	/**
	 * 応対区分／カテゴリリスト編集処理.<br>
	 * 応対区分／カテゴリリストの編集を行う。
	 * 
	 * @param rspCtgrList 応対区分／カテゴリリスト
	 */
	private void editRspCtgrDetail(X31SDataBeanAccessArray rspCtgrList)
	{
		// (1) サービスフォームBeanの設定
		// (a) 応対区分／カテゴリリストの設定を行う。
		// 応対区分／カテゴリリストの件数分処理を行う。
		for (int i = 0; i < rspCtgrList.getCount().intValue(); i++)
		{
			// 応対区分／カテゴリリストBean
			X31SDataBeanAccess rspCtgrBean = rspCtgrList.getDataBean(i);
			
			// 行スタイルを取得する。
			String lineStyle = JCRWebCommon.getLineStyle(i + 1);

			// サービスフォームBeanを設定する。
			// 上移動ボタン（カテゴリ）押下可否
			rspCtgrBean.sendMessage(CRW00801SFConst.L1_MOVE_UP_RSP_CTG_DISABLED_02, X31CWebConst.DATABEAN_CLEAR);
			// 下移動ボタン（カテゴリ）押下可否
			rspCtgrBean.sendMessage(CRW00801SFConst.L1_MOVE_DOWN_RSP_CTG_DISABLED_02, X31CWebConst.DATABEAN_CLEAR);
			// 削除ボタン（カテゴリ）押下可否
			rspCtgrBean.sendMessage(CRW00801SFConst.L1_DELETE_RSP_CTG_DISABLED_02, X31CWebConst.DATABEAN_CLEAR);
			// 表示順序
			rspCtgrBean.sendMessageString(CRW00801SFConst.L1_DSP_JUN_02, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i + 1));
			// 行スタイルクラス１
			rspCtgrBean.sendMessageString(CRW00801SFConst.L1_LINE_STYLE_CLASS1_02, X31CWebConst.DATABEAN_SET_VALUE, lineStyle);
			// 行スタイルクラス２
			rspCtgrBean.sendMessageString(CRW00801SFConst.L1_LINE_STYLE_CLASS2_02, X31CWebConst.DATABEAN_SET_VALUE, lineStyle);
		}

		// (2) 応対区分／カテゴリリストの項目に対して、活性・非活性制御を行う。
		// １行目の上移動ボタン（カテゴリ）押下可否の設定を行う。
		X31SDataBeanAccess firstRspCtgrBean = rspCtgrList.getDataBean(0);
		firstRspCtgrBean.sendMessageString(CRW00801SFConst.L1_MOVE_UP_RSP_CTG_DISABLED_02, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);

		// 最終行の下移動ボタン（カテゴリ）押下可否の設定を行う。
		X31SDataBeanAccess lastRspCtgrBean = rspCtgrList.getDataBean(rspCtgrList.getCount().intValue() - 1);
		lastRspCtgrBean.sendMessageString(CRW00801SFConst.L1_MOVE_DOWN_RSP_CTG_DISABLED_02, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);

		// 削除ボタン（カテゴリ）押下可否の設定を行う。
		if (rspCtgrList.getCount().intValue() == 1)
		{
			rspCtgrList.getDataBean(0).sendMessageString(CRW00801SFConst.L1_DELETE_RSP_CTG_DISABLED_02
					, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);
		}

	}

	/**
	 * 応対区分／カテゴリリスト入替処理.<br>
	 * 応対区分／カテゴリリストの入れ替えを行います。
	 * 
	 * @param rspCtgrList 応対区分／カテゴリリスト
	 * @param orgIndex 元インデックス
	 * @param shiftIndex 移動後インデックス
	 */
	private void moveRspCtgrBean(X31SDataBeanAccessArray rspCtgrList, int orgIndex, int shiftIndex)
	{
		// 入替用ワーク領域
		X31SDataBeanAccess workCtgrBean = rspCtgrList.addDataBean();
		// 元データ領域
		X31SDataBeanAccess orgCtgrBean = rspCtgrList.getDataBean(orgIndex);
		// 移動後領域
		X31SDataBeanAccess shiftCtgrBean = rspCtgrList.getDataBean(shiftIndex);
		
		// (1) サービスフォームBeanの設定
		// (a) 元データ領域から、入替用ワーク領域に値を設定する。
		copyRspCtgrBean(orgCtgrBean, workCtgrBean);
		// (b) 移動後領域から、元データ領域に値を設定する。
		copyRspCtgrBean(shiftCtgrBean, orgCtgrBean);
		// (c) ワーク領域から、移動後領域に値を移す。
		copyRspCtgrBean(workCtgrBean, shiftCtgrBean);

		// (d) ワーク領域を削除する。
		rspCtgrList.removeDataBean(rspCtgrList.getCount().intValue() - 1);
	}
	
	/**
	 * 応対区分／カテゴリリストコピー処理.<br>
	 * 応対区分／カテゴリリストのBeanをコピーする。
	 * 
	 * @param orgBean 元サービスフォームBean
	 * @param copyBean コピー先サービスフォームBean
	 */
	private void copyRspCtgrBean(X31SDataBeanAccess orgBean, X31SDataBeanAccess copyBean)
	{

		// (1) サービスフォームBeanの設定
		// (a) 項目名のリストを取得する。
		String[] itemNameList = orgBean.getItemNameList();
		
		// (b) 値の入替処理を行う。
		for (int i = 0; i < itemNameList.length; i++)
		{
			// (ｱ) 応対区分、カテゴリーＮリスト、カテゴリーＮの場合は、リスト項目の為、
			// プルダウン用のコピー処理を呼び出す。
			if (CRW00801SFConst.L1_TOIAWASE_RSP.equals(itemNameList[i])
				|| CRW00801SFConst.L1_UW_CTGRN_LIST.equals(itemNameList[i])
				|| CRW00801SFConst.L3_UW_CTGRN.equals(itemNameList[i]))
			{
				// 元サブフォームBean
				X31SDataBeanAccessArray orgSubBean = orgBean.getDataBeanArray(itemNameList[i]);
				// コピー先サブフォームBean
				X31SDataBeanAccessArray copySubBean = copyBean.getDataBeanArray(itemNameList[i]);
				// 応対区分／カテゴリリストBeanArrayコピー処理（copyRspCtgrBeanArray）を
				// 呼び出す。
				copyRspCtgrBeanArray(orgSubBean, copySubBean);
			}
			// (ｲ) 上記以外の場合は、値の入替を行う。
			else
			{
				String val = orgBean.sendMessageString(itemNameList[i], X31CWebConst.DATABEAN_GET_VALUE);
				copyBean.sendMessageString(itemNameList[i], X31CWebConst.DATABEAN_SET_VALUE, val);
			}
		}
		return;
	}

	/**
	 * 応対区分／カテゴリリストBeanArrayコピー処理.<br>
	 * 応対区分／カテゴリリストBeanのリスト項目のコピーを行う。
	 * 
	 * @param orgBeanList 元サービスフォームBeanArray
	 * @param copyBeanList コピー先サービスフォームBeanArray
	 */
	private void copyRspCtgrBeanArray(X31SDataBeanAccessArray orgBeanList, X31SDataBeanAccessArray copyBeanList)
	{
		// (1) サービスフォームBeanの設定
		// (a) コピー先サービスフォームBeanArrayをクリアする。
		copyBeanList.clearArray();

		// (b) リストの内容をコピーする。
		// 項目数分ループする。
		for (int i = 0; i < orgBeanList.getCount().intValue(); i++)
		{
			copyRspCtgrBean(orgBeanList.getDataBean(i), copyBeanList.addDataBean());
		}
	}

	/**
	 * 添付ファイル削除処理.<br>
	 * 添付ファイルを削除する。
	 * 
	 * @param bean サービスフォームBean
	 */
	private void deleteTmpFile(X31SDataBeanAccess bean)
	{

		// (1) サービス呼出処理
		// (a) 一時ファイル（添付ファイル）の削除を行う。
		X31SDataBeanAccessArray bunshoList = bean.getDataBeanArray(CRW00801SFConst.BUNSHOLIST);
		for (int i = 0; i < bunshoList.getCount().intValue(); i++)
		{
			X31SDataBeanAccess bunshoBean = bunshoList.getDataBean(i);

			// (ｱ) サービスフォームBeanの該当する添付ファイルに対する添付ファイル状態区分が "1"(新規添付ファイル)かつ、
			//     一時ファイル表示可否がtrue(表示)の場合、下記の処理を行う。
			if (JCRStrConst.TMP_FILE_STAT_DIV_NEW.equals(bunshoBean.sendMessageString(
					CRW00801SFConst.L5_TMP_FILE_STAT_DIV_06, X31CWebConst.DATABEAN_GET_VALUE))
				&& bunshoBean.sendMessageBoolean(CRW00801SFConst.L5_FILE_DSP_FLG_06, X31CWebConst.DATABEAN_GET_VALUE))
			{
				// (@) 該当する添付ファイルの電子ファイル管理番号(一時ファイル番号)を元に、アップロード一時ファイル削除部品
				//     (JCCWebCommon.deleteFile)を使用し、一時ファイルの削除を行う。
				JCRWebCommon.deleteFile(this, bunshoBean.sendMessageString(CRW00801SFConst.L5_EFILE_KANRI_NO_06, X31CWebConst.DATABEAN_GET_VALUE));
			}
		}
	}

	/**
	 * 添付ファイルサイズチェック処理.<br>
	 * 
	 * @param bean サービスフォームBean
	 * @return true：正常、false：エラー
	 */
	private boolean checkTmpFileSize(X31SDataBeanAccess bean)
	{
		X31SDataBeanAccessArray bunshoList = bean.getDataBeanArray(CRW00801SFConst.BUNSHOLIST2);
		BigDecimal fileSize = new BigDecimal("0");
		
		for (int i = 0; i < bunshoList.getCount(); i++)
		{
			X31SDataBeanAccess bunshoBean = bunshoList.getDataBean(i);
			
			// チェックありの場合
			if (bunshoBean.sendMessageBoolean(CRW00801SFConst.L12_FILE_DSP_FLG_12, X31CWebConst.DATABEAN_GET_VALUE)
					&& bunshoBean.sendMessageBoolean(CRW00801SFConst.L12_MAIL_TEMP_FILE_UM_12, X31CWebConst.DATABEAN_GET_VALUE))
			{
				String strFileSize = bunshoBean.sendMessageString(CRW00801SFConst.L12_FILE_SIZE_12, X31CWebConst.DATABEAN_GET_VALUE);
				fileSize = fileSize.add(new BigDecimal(strFileSize));
			}
		}
		BigDecimal limitSize = new BigDecimal(LIMIT_SIZE).multiply(JCRStrConst.MB_SIZE);
		if (fileSize.compareTo(limitSize) == 1)
		{
			return false;
		}
		return true;
	}

	/**
	 * 送信メールアドレス設定処理.<br>
	 * 
	 * @param sendsMladArray 送信先メールアドレス
	 * @param mlad メールアドレス
	 * @param mladSetFieldCd 送信先メールアドレス設定フィールドコード
	 */
	private void editSendsMlad(X31SDataBeanAccessArray sendsMladArray, String mlad, String mladSetFieldCd)
	{
		
		if (!JCRUtilCommon.isNull(mlad))
		{
			String[] sendsMladList = mlad.split(";");
			for (int i = 0; i < sendsMladList.length; i++)
			{
				X31SDataBeanAccess sendsMladToBean = sendsMladArray.addDataBean();
				// 送信先メールアドレス
				sendsMladToBean.sendMessageString(CRW00801SFConst.L13_MLAD_14
						, X31CWebConst.DATABEAN_SET_VALUE, sendsMladList[i]);
				// 送信先メールアドレス名
				sendsMladToBean.sendMessageString(CRW00801SFConst.L13_MLAD_NM_14
						, X31CWebConst.DATABEAN_SET_VALUE, "");
				// 送信先メールアドレス設定フィールドコード
				sendsMladToBean.sendMessageString(CRW00801SFConst.L13_MLAD_SET_FIELD_CD_14
						, X31CWebConst.DATABEAN_SET_VALUE, mladSetFieldCd);
			}
		}
	}


	/**
	 * サービスフォームBeanクリア処理.<br>
	 * サービスフォームBeanのクリアを行う。
	 * 
	 * @param bean サービスフォームBean
	 */
	private void clearBean(X31SDataBeanAccess bean)
	{

		// (1) サービスフォームBeanの設定
		// (a) 項目名のリストを取得する。
		String[] itemNameList = bean.getItemNameList();
		
		// (b) 値のクリアを行う。
		for (int i = 0; i < itemNameList.length; i++)
		{
			// (ｱ) 引継項目の場合、値の保持を行う。
			if (isHktgItem(itemNameList[i]))
			{
				continue;
			}
			// (ｲ) Boolean型の場合、初期値の設定を行う。
			else if (isBooleanItem(itemNameList[i]))
			{
				bean.sendMessageBoolean(itemNameList[i], X31CWebConst.DATABEAN_SET_VALUE, Boolean.TRUE);
			}
			// (ｳ) Array項目の場合、リストのクリアを行う。
			else if (isArrayItem(itemNameList[i]))
			{
				bean.getDataBeanArray(itemNameList[i]).clearArray();
			}
			// (ｴ) 上記以外の場合、値のクリアを行う。
			else
			{
				bean.sendMessage(itemNameList[i], X31CWebConst.DATABEAN_CLEAR);
			}
		}
		return;
	}

	/**
	 * 引継項目判定処理.<br>
	 * 引継項目の判定を行う。
	 * 
	 * @param itemName 項目ID
	 * @return true:引継項目、false：引継項目以外
	 */
	private boolean isHktgItem(String itemName)
	{
		// (1) 項目名の判定を行い、引継項目の場合は、trueを返却し、引継項目以外の場合は、falseを返却する。
		return HKTG_ITEM_SET.contains(itemName);
	}

	/**
	 * Boolean項目判定処理.<br>
	 * Boolean項目の判定を行う。
	 * 
	 * @param itemName 項目ID
	 * @return true:Boolean項目、false：Boolean項目以外
	 */
	private boolean isBooleanItem(String itemName)
	{
		// (1) 項目名の判定を行い、Boolean項目の場合は、trueを返却し、Boolean項目以外の場合は、falseを返却する。
		return BOOLEAN_ITEM_SET.contains(itemName);
	}

	/**
	 * Array項目判定処理.<br>
	 * Array項目の判定を行う。
	 * 
	 * @param itemName 項目ID
	 * @return true:Array項目、false：Array項目以外
	 */
	private boolean isArrayItem(String itemName)
	{
		// (1) 項目名の判定を行い、Array項目の場合は、trueを返却し、Array項目以外の場合は、falseを返却する。
		return ARRAY_ITEM_SET.contains(itemName);
	}

	/**
	 * メール送信（ＮＧワード）CC呼出用上りマッピングをする
	 * @param bean      サービスフォームBean
	 * @param outputMap 下りマップ
	 */
	private HashMap<String, Object> setSendMailNgWordCC(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		HashMap<String, Object> judgeNgWordMap = new HashMap<String, Object>();

		// ＮＧワード判定結果を取得
		if(outputMap.containsKey("JUDGENGWORDCC"))
		{
			judgeNgWordMap = (HashMap<String, Object>)outputMap.get("JUDGENGWORDCC");
		}
		else
		{
			return null;
		}

		// 対応記録番号 → メール送信（ＮＧワード）マップ.対応記録番号
		parentMap.put("taio_kirok_no", bean.sendMessageString(CRW00801SFConst.TAIO_KIROK_NO, X31CWebConst.DATABEAN_GET_VALUE));

		// メール件名 → メール送信（ＮＧワード）マップ.タイトル
		parentMap.put("title", bean.sendMessageString(CRW00801SFConst.TITLE, X31CWebConst.DATABEAN_GET_VALUE));

		// ＮＧワード明細 → メール送信（ＮＧワード）マップ.ＮＧワード明細
		if(judgeNgWordMap.containsKey("NGWordList")){
			ArrayList<HashMap<String, Object>> ngWordList = (ArrayList<HashMap<String, Object>>)judgeNgWordMap.get("NGWordList");
			parentMap.put("NGWordList", ngWordList);
		}

		return parentMap;
	}

// ANK-2669-00-00 ADD START
	/**
	 * データBeanから指定された項目の値を取得します。
	 * <br>
	 * @param bean 画面情報
	 * @param itemName 項目名称
	 * <br>
	 * @return String 選択されているコード値
	 */
	private String getValue(X31SDataBeanAccess bean, String itemName)
	{
		return bean.sendMessageString(itemName, X31CWebConst.DATABEAN_GET_VALUE);
	}
// ANK-2669-00-00 ADD END
}
