/*******************************************************************************
* All Rights reserved,Copyright (c) K-Opticom
********************************************************************************
*＜プログラム内容＞
* システム名        ：eo顧客基幹システム
* モジュール名      ：CRW00601SFLogic
* ソースファイル名  ：CRW00601SFLogic.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 メール送信トランザクション分割
* ｖ49.00.00	2020/04/14	FJ)謝		【ANK-3831-00-00】オペレータ支援向けAPI・画面機能変更(2020年5月下旬リリース)
*
********************************************************************************/

package eo.web.webview.CRW00601SF;

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.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.CRSV0030_CRSV0030OPDBMapper;
import eo.web.webview.mapping.CRSV0031_CRSV0031OPDBMapper;
import eo.web.webview.mapping.CRSV0032_CRSV0032OPDBMapper;
import eo.web.webview.mapping.CRSV0224_CRSV0224OPDBMapper;

	/**
	 * メモ登録ビューロジック.<p>
	 * <BR>
	 * @author 富士通
	 */
	@SuppressWarnings("serial")
	public class CRW00601SFLogic 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
					, CRW00601SFConst.SVC_KEI_NO
					, CRW00601SFConst.PROSCST_NO
					, CRW00601SFConst.MYBOX_NO
					, CRW00601SFConst.HKTGI_TAIO_KIROK_NO
					, CRW00601SFConst.HKTGI_TAIO_KIROK_DTL_NO
					, CRW00601SFConst.UPD_DTM_BF);
			//
			Collections.addAll(BOOLEAN_ITEM_SET
					, CRW00601SFConst.CONFIRM_INS_DSP_FLG
					, CRW00601SFConst.SAVE_TMP_DSP_FLG
					, CRW00601SFConst.CLEAR_DSP_FLG);

			//
			Collections.addAll(ARRAY_ITEM_SET
					, CRW00601SFConst.TOIAWASE_UK_SBT
					, CRW00601SFConst.RSP_CTGR_LIST
					, CRW00601SFConst.BUNSHOLIST
					, CRW00601SFConst.CALLBK_SHITEI_TYPE
					, CRW00601SFConst.MEMO_TYPE);
		}

		/**
		 * 親クラス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(CRW00601SFConst.HKTGI_TAIO_KIROK_NO, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				JCRWebCommon.getScreenInfo(this);
			}
			
			// (2)サービスフォームBeanの設定
			// (a)サービスフォームBeanの全項目をクリアする。
			clearBean(bean);

			// (b)システム日付の取得
			String sysDate = JCRWebCommon.getSysDate();

			// (c)サービスフォームBean項目の設定
			bean.sendMessageString(CRW00601SFConst.STDARDYMD
					, X31CWebConst.DATABEAN_SET_VALUE, sysDate);
			
			// (3)サービス呼出処理
			// マッピングクラスを使用する為、配列化
			X31SDataBeanAccess[] paramBean = {bean, commoninfoBean};

			// ユースケースID格納
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0030");

			// マッピングクラス
			CRSV0030_CRSV0030OPDBMapper mapper = new CRSV0030_CRSV0030OPDBMapper();

			// マッピング処理（上り）
			mapper.setGETCDNMCTLCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
			mapper.setGETTAIOKRK1ICC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
			mapper.setGETTAIOKRKDTL1RCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
			mapper.setGETHOTVOIC1RCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
			mapper.setGETBUNSHOCTL1RCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
			
			// サービス実行
			invokeService(paramMap, dataMap, outputMap);

			// (4)サービス処理結果の設定
			// (a) DataBean⇔サービスのマッピングに関しては、「4.サービス項目-DataBean項目マッピング」参照
			// マッピング処理（下り）
			mapper.getGETCDNMCTLCC(paramBean, outputMap);
			mapper.getGETTAIOKRK1ICC(paramBean, outputMap);
			mapper.getGETTAIOKRKDTL1RCC(paramBean, outputMap);
			mapper.getGETHOTVOIC1RCC(paramBean, outputMap);
			mapper.getGETBUNSHOCTL1RCC(paramBean, outputMap);

			// (b) サービス実行後、日付項目については、Beanの設定値の有無により日付の分割処理を行う。
			// コールバック希望年月日
			String callbkKiboYmd = bean.sendMessageString(CRW00601SFConst.CALLBK_KIBO_YMD, X31CWebConst.DATABEAN_GET_VALUE);

			// コールバック希望年月日がNot Nullの場合
			if (!JCRUtilCommon.isNull(callbkKiboYmd))
			{
				// コールバック希望年月日（年）
				bean.sendMessageString(CRW00601SFConst.CALLBK_KIBO_YMD_YYYY, X31CWebConst.DATABEAN_SET_VALUE
						, JCRWebCommon.toYearFromYmd(callbkKiboYmd));
				// コールバック希望年月日（月）
				bean.sendMessageString(CRW00601SFConst.CALLBK_KIBO_YMD_MM, X31CWebConst.DATABEAN_SET_VALUE
						, JCRWebCommon.toMonthFromYmd(callbkKiboYmd));
				// コールバック希望年月日（日）
				bean.sendMessageString(CRW00601SFConst.CALLBK_KIBO_YMD_DD, X31CWebConst.DATABEAN_SET_VALUE
						, JCRWebCommon.toDayFromYmd(callbkKiboYmd));
			}

			// コールバック希望時間
			String callbkKiboTime = bean.sendMessageString(CRW00601SFConst.CALLBK_KIBO_TIME, X31CWebConst.DATABEAN_GET_VALUE);

			// コールバック希望時間がNot Nullの場合
			if (!JCRUtilCommon.isNull(callbkKiboTime))
			{
				// コールバック希望時間（時）
				bean.sendMessageString(CRW00601SFConst.CALLBK_KIBO_TIME_HO, X31CWebConst.DATABEAN_SET_VALUE
						, JCRUtilCommon.formatDate(callbkKiboTime, JCRStrConst.FMT_HM, JCRStrConst.FMT_HO));
				// コールバック希望時間（分）
				bean.sendMessageString(CRW00601SFConst.CALLBK_KIBO_TIME_MI, X31CWebConst.DATABEAN_SET_VALUE
						, JCRUtilCommon.formatDate(callbkKiboTime, JCRStrConst.FMT_HM, JCRStrConst.FMT_MI));
				
			}

			// (c)活性・非活性制御
			// ※処理詳細に関しては、「UIA14_CRW00601_問合せ情報登録.xlsx」、7. 特記事項を参照

			// 応対区分／カテゴリリストの項目に対して、活性・非活性制御を行う。
			X31SDataBeanAccessArray rspCtgrList = bean.getDataBeanArray(CRW00601SFConst.RSP_CTGR_LIST);
			
			// 初期レコード
			X31SDataBeanAccess firstRspCtgrBean = rspCtgrList.getDataBean(0);
			firstRspCtgrBean.sendMessageString(CRW00601SFConst.L1_MOVE_UP_RSP_CTG_DISABLED_02, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);

			// 最終レコード
			X31SDataBeanAccess lastRspCtgrBean = rspCtgrList.getDataBean(rspCtgrList.getCount().intValue() - 1);
			lastRspCtgrBean.sendMessageString(CRW00601SFConst.L1_MOVE_DOWN_RSP_CTG_DISABLED_02, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);

			// 応対区分・カテゴリーリストが1件の場合、削除ボタンを使用不可とする
			if (rspCtgrList.getCount().intValue() == 1)
			{
				rspCtgrList.getDataBean(0).sendMessageString(CRW00601SFConst.L1_DELETE_RSP_CTG_DISABLED_02
						, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);
			}

			// 対応記録番号、対応記録明細番号の両方が設定されている場合
			// 変更の場合
			if (!JCRUtilCommon.isNull(bean.sendMessageString(CRW00601SFConst.TAIO_KIROK_NO, X31CWebConst.DATABEAN_GET_VALUE))
				&& !JCRUtilCommon.isNull(bean.sendMessageString(CRW00601SFConst.TAIO_KIROK_DTL_NO, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// 編集状態が一時保存でないか、
				// 問い合わせ担当者がログインユーザーでない場合
				if (!JCRStrConst.HENSHU_STAT_FLG_HENSHU_CHU.equals(bean.sendMessageString(CRW00601SFConst.HENSHU_STAT_FLG, X31CWebConst.DATABEAN_GET_VALUE))
					|| !commoninfoBean.sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE).equals(
						bean.sendMessageString(CRW00601SFConst.TAIO_USER_ID, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					setAllProtect();
					bean.sendMessageString(CRW00601SFConst.TITLE_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
					bean.sendMessageString(CRW00601SFConst.MEMO_TYPE_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
					bean.sendMessageString(CRW00601SFConst.MEMO_NAIYO_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
					bean.sendMessageBoolean(CRW00601SFConst.CONFIRM_INS_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
					bean.sendMessageBoolean(CRW00601SFConst.SAVE_TMP_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
					bean.sendMessageBoolean(CRW00601SFConst.CLEAR_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
				}
			}
			// 新規登録の場合
			else
			{
				if (!commoninfoBean.sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE).equals(
					bean.sendMessageString(CRW00601SFConst.TAIO_USER_ID, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					setAllProtect();
					bean.sendMessageString(CRW00601SFConst.TITLE_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
					bean.sendMessageString(CRW00601SFConst.SAVE_TMP_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
				}
				else
				{
					if (JCRStrConst.CD_DIV_TOIAWASE_STAT_CD_ESCL.equals(bean.sendMessageString(CRW00601SFConst.TOIAWASE_STAT_CD, X31CWebConst.DATABEAN_GET_VALUE)))
					{
						bean.sendMessageString(CRW00601SFConst.SAVE_TMP_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
					}
				}
			}

			// (d) 登録内容の退避を行う。
			X31SDataBeanAccessArray toiawaseUkSbtList = bean.getDataBeanArray(CRW00601SFConst.TOIAWASE_UK_SBT);
			X31SDataBeanAccess toiawaseUkSbtBean = toiawaseUkSbtList.getDataBean(0);
			X31SDataBeanAccessArray callbkShiteiTypeList = bean.getDataBeanArray(CRW00601SFConst.CALLBK_SHITEI_TYPE);
			X31SDataBeanAccess callbkShiteiTypeBean = callbkShiteiTypeList.getDataBean(0);
			X31SDataBeanAccessArray memoTypeList = bean.getDataBeanArray(CRW00601SFConst.MEMO_TYPE);
			X31SDataBeanAccess memoTypeBean = memoTypeList.getDataBean(0);
			
			bean.sendMessageString(CRW00601SFConst.BK_TOIAWASE_UK_SBT_IDX, X31CWebConst.DATABEAN_SET_VALUE
					, toiawaseUkSbtBean.sendMessageString(CRW00601SFConst.L0_SEL_TOIAWASE_UK_SBT_IDX_01, X31CWebConst.DATABEAN_GET_VALUE));
// ANK-3831-00-00 ADD START
			bean.sendMessageBoolean(CRW00601SFConst.BK_HANKYO_PSB_FLG, X31CWebConst.DATABEAN_SET_VALUE
					, bean.sendMessageBoolean(CRW00601SFConst.HANKYO_PSB_FLG, X31CWebConst.DATABEAN_GET_VALUE));
// ANK-3831-00-00 ADD END
			bean.sendMessageString(CRW00601SFConst.BK_EASY_MEMO, X31CWebConst.DATABEAN_SET_VALUE
					, bean.sendMessageString(CRW00601SFConst.EASY_MEMO, X31CWebConst.DATABEAN_GET_VALUE));
			for (int i = 0; i < rspCtgrList.getCount().intValue(); i++)
			{
				X31SDataBeanAccess rspCtgrBean = rspCtgrList.getDataBean(i);
				rspCtgrBean.sendMessageString(CRW00601SFConst.L1_BK_RSP_DIV_IDX_02, X31CWebConst.DATABEAN_SET_VALUE, 
						rspCtgrBean.sendMessageString(CRW00601SFConst.L1_SEL_RSP_DIV_IDX_02, X31CWebConst.DATABEAN_GET_VALUE));
			}
			bean.sendMessageString(CRW00601SFConst.BK_CALLBK_KIBO_YMD_YYYY, X31CWebConst.DATABEAN_SET_VALUE
					, bean.sendMessageString(CRW00601SFConst.CALLBK_KIBO_YMD_YYYY, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageString(CRW00601SFConst.BK_CALLBK_KIBO_YMD_MM, X31CWebConst.DATABEAN_SET_VALUE
					, bean.sendMessageString(CRW00601SFConst.CALLBK_KIBO_YMD_MM, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageString(CRW00601SFConst.BK_CALLBK_KIBO_YMD_DD, X31CWebConst.DATABEAN_SET_VALUE
					, bean.sendMessageString(CRW00601SFConst.CALLBK_KIBO_YMD_DD, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageString(CRW00601SFConst.BK_CALLBK_KIBO_TIME_HO, X31CWebConst.DATABEAN_SET_VALUE
					, bean.sendMessageString(CRW00601SFConst.CALLBK_KIBO_TIME_HO, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageString(CRW00601SFConst.BK_CALLBK_KIBO_TIME_MI, X31CWebConst.DATABEAN_SET_VALUE
					, bean.sendMessageString(CRW00601SFConst.CALLBK_KIBO_TIME_MI, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageString(CRW00601SFConst.BK_CALLBK_SHITEI_TYPE_IDX, X31CWebConst.DATABEAN_SET_VALUE
					, callbkShiteiTypeBean.sendMessageString(CRW00601SFConst.L6_SEL_CALLBK_SHITEI_TYPE_IDX_07, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageString(CRW00601SFConst.BK_TITLE, X31CWebConst.DATABEAN_SET_VALUE
					, bean.sendMessageString(CRW00601SFConst.TITLE, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageString(CRW00601SFConst.BK_MEMO_TYPE_IDX, X31CWebConst.DATABEAN_SET_VALUE
					, memoTypeBean.sendMessageString(CRW00601SFConst.L7_SEL_MEMO_TYPE_IDX_08, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageString(CRW00601SFConst.BK_MEMO_NAIYO, X31CWebConst.DATABEAN_SET_VALUE
					, bean.sendMessageString(CRW00601SFConst.MEMO_NAIYO, X31CWebConst.DATABEAN_GET_VALUE));

			// (5)引継情報の設定
			// なし。

			// (6)共有フォームビーンの設定
			// 遷移先画面ID、名称の設定
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
					, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW00601);
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
					, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00601);

			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(CRW00601SFConst.RSP_CTGR_LIST);

			// 応対区分／カテゴリリストを追加する。
			X31SDataBeanAccess rspCtgrBean = rspCtgrList.addDataBean();

			// 対応記録内訳番号
			rspCtgrBean.sendMessageString(CRW00601SFConst.L1_TAIO_KIROK_UCWK_NO_02, X31CWebConst.DATABEAN_SET_VALUE, "");
			// 応対区分インデックス
			rspCtgrBean.sendMessageString(CRW00601SFConst.L1_SEL_RSP_DIV_IDX_02, X31CWebConst.DATABEAN_SET_VALUE, "1");
			// 応対区分コード
			rspCtgrBean.sendMessageString(CRW00601SFConst.L1_SEL_RSP_DIV_CD_02, X31CWebConst.DATABEAN_SET_VALUE, "");
			// 応対区分名称
			rspCtgrBean.sendMessageString(CRW00601SFConst.L1_SEL_RSP_DIV_NM_02, X31CWebConst.DATABEAN_SET_VALUE, "");
			// 応対区分コード(変更前)
			rspCtgrBean.sendMessageString(CRW00601SFConst.L1_SEL_RSP_DIV_CD_BF_02, X31CWebConst.DATABEAN_SET_VALUE, "");
			// ホットボイス有無
			rspCtgrBean.sendMessageBoolean(CRW00601SFConst.L1_HOTVOIC_UM_02, X31CWebConst.DATABEAN_SET_VALUE, false);

			// (b) 応対区分プルダウン項目の転送
			// 1行目の応対区分／カテゴリリストを取得する。
			X31SDataBeanAccess firstRspCtgr = rspCtgrList.getDataBean(0);
			
			X31SDataBeanAccessArray firstToiawaseRspArray = firstRspCtgr.getDataBeanArray(CRW00601SFConst.L1_TOIAWASE_RSP);
			X31SDataBeanAccessArray toiawaseRspArray = rspCtgrBean.getDataBeanArray(CRW00601SFConst.L1_TOIAWASE_RSP);
			for (int i = 0; i < firstToiawaseRspArray.getCount().intValue(); i++)
			{
				X31SDataBeanAccess firstToiawaseRspBean = firstToiawaseRspArray.getDataBean(i);
				X31SDataBeanAccess toiawaseRspBean = toiawaseRspArray.addDataBean();
				// 応対区分リスト
				toiawaseRspBean.sendMessageString(CRW00601SFConst.L2_RSP_DIV_03, X31CWebConst.DATABEAN_SET_VALUE
						, firstToiawaseRspBean.sendMessageString(CRW00601SFConst.L2_RSP_DIV_03, X31CWebConst.DATABEAN_GET_VALUE));
				// 応対区分名称リスト
				toiawaseRspBean.sendMessageString(CRW00601SFConst.L2_RSP_DIV_NM_03, X31CWebConst.DATABEAN_SET_VALUE
						, firstToiawaseRspBean.sendMessageString(CRW00601SFConst.L2_RSP_DIV_NM_03, X31CWebConst.DATABEAN_GET_VALUE));
			}

			// 業務個別設定組織名
			String wkkbtOrgNm = JCRWebCommon.getWkkbtOrgNm(commoninfoBean);

			// カテゴリーＮリスト
			X31SDataBeanAccessArray uwCtgrListArray = rspCtgrBean.getDataBeanArray(CRW00601SFConst.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_CRW00601);
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
					, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00601);

			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(CRW00601SFConst.SEL_RSP_CTGR_INDEX, X31CWebConst.DATABEAN_GET_VALUE));

			// 応対区分／カテゴリリスト
			X31SDataBeanAccessArray rspCtgrList = bean.getDataBeanArray(CRW00601SFConst.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_CRW00601);
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
					, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00601);

			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(CRW00601SFConst.SEL_RSP_CTGR_INDEX, X31CWebConst.DATABEAN_GET_VALUE));

			// 応対区分／カテゴリリスト
			X31SDataBeanAccessArray rspCtgrList = bean.getDataBeanArray(CRW00601SFConst.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_CRW00601);
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
					, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00601);

			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(CRW00601SFConst.SEL_RSP_CTGR_INDEX, X31CWebConst.DATABEAN_GET_VALUE));

			X31SDataBeanAccessArray rspCtgrList = bean.getDataBeanArray(CRW00601SFConst.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_CRW00601);
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
					, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00601);

			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(CRW00601SFConst.SEL_RSP_CTGR_INDEX, X31CWebConst.DATABEAN_GET_VALUE));
			// 選択カテゴリインデックス
			int uwCtgrnIndex = Integer.parseInt(bean.sendMessageString(CRW00601SFConst.SEL_UW_CTGRN_INDEX, X31CWebConst.DATABEAN_GET_VALUE));

			// 応対区分／カテゴリリスト
			X31SDataBeanAccessArray rspCtgrList = bean.getDataBeanArray(CRW00601SFConst.RSP_CTGR_LIST);
			X31SDataBeanAccess rspCtgrBean = rspCtgrList.getDataBean(rspCtgrIndex);

			// カテゴリーＮリスト
			X31SDataBeanAccessArray uwCtgrnList = rspCtgrBean.getDataBeanArray(CRW00601SFConst.L1_UW_CTGRN_LIST);
			X31SDataBeanAccess l1CtgrBean = uwCtgrnList.getDataBean(0);

			// カテゴリーのワークグループ名の取得
			String ctgrWkkbtOrgNm = l1CtgrBean.sendMessageString(CRW00601SFConst.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, "CRSV0031");
				// マッピングクラス
				CRSV0031_CRSV0031OPDBMapper mapper = new CRSV0031_CRSV0031OPDBMapper();
				// マッピング処理（上り）
				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_CRW00601);
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
					, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00601);

			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(CRW00601SFConst.SEL_RSP_CTGR_INDEX, X31CWebConst.DATABEAN_GET_VALUE));
			// カテゴリーのインデックス
			int uwCtgrnIndex = Integer.parseInt(bean.sendMessageString(CRW00601SFConst.SEL_UW_CTGRN_INDEX, X31CWebConst.DATABEAN_GET_VALUE));

			// 応対区分／カテゴリーリスト
			X31SDataBeanAccessArray rspCtgrList = bean.getDataBeanArray(CRW00601SFConst.RSP_CTGR_LIST);
			X31SDataBeanAccess rspCtgrBean = rspCtgrList.getDataBean(rspCtgrIndex);

			// カテゴリーＮリスト
			X31SDataBeanAccessArray uwCtgrListArray = rspCtgrBean.getDataBeanArray(CRW00601SFConst.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(
					CRW00601SFConst.L3_SEL_UW_CTGRN_IDX_04, X31CWebConst.DATABEAN_GET_VALUE);
			// 選択中のカテゴリーレベルの取得
			int uwCtgrnLv = Integer.parseInt(uwCtgrListBean.sendMessageString(
					CRW00601SFConst.L3_SEL_UW_CTGRN_LV_04, X31CWebConst.DATABEAN_GET_VALUE), 10);

			// カテゴリーＮ
			X31SDataBeanAccessArray uwCtgrNList = uwCtgrListBean.getDataBeanArray(CRW00601SFConst.L3_UW_CTGRN);
			X31SDataBeanAccess uwCtgrNBean = uwCtgrNList.getDataBean(Integer.parseInt(selectedIndexCtgr));

			uwCtgrListBean.sendMessageString(CRW00601SFConst.L3_SEL_UW_CTGRN_CD_04, X31CWebConst.DATABEAN_SET_VALUE
					, uwCtgrNBean.sendMessageString(CRW00601SFConst.L4_UW_CTGRN_CD_05, X31CWebConst.DATABEAN_GET_VALUE));
			uwCtgrListBean.sendMessageString(CRW00601SFConst.L3_SEL_UW_CTGRN_NM_04, X31CWebConst.DATABEAN_SET_VALUE
					, uwCtgrNBean.sendMessageString(CRW00601SFConst.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(CRW00601SFConst.L3_SEL_UW_CTGRN_NM_04, X31CWebConst.DATABEAN_SET_VALUE, wkkbtOrgNm);

			// カテゴリーＮ
			X31SDataBeanAccessArray l1UwCtgrnList = l1UwCtgrNBean.getDataBeanArray(CRW00601SFConst.L3_UW_CTGRN);

			l1UwCtgrnList.clearArray();
			X31SDataBeanAccess uwCtgrBean = l1UwCtgrnList.addDataBean();

			// カテゴリーＮ名称リスト
			uwCtgrBean.sendMessageString(CRW00601SFConst.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(CRW00601SFConst.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_CRW00601);
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
					, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00601);

			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_CRW00601);

			// (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(
					CRW00601SFConst.SEL_BUNSHO_INDEX, X31CWebConst.DATABEAN_GET_VALUE));

			// 文書ファイルリストの取得
			X31SDataBeanAccessArray bunshoList = bean.getDataBeanArray(CRW00601SFConst.BUNSHOLIST);

			// 選択された文書ファイルの取得
			X31SDataBeanAccess bunshoBean = bunshoList.getDataBean(selBunshoIndex);
			
			// (a) サービスフォームBeanの該当する添付ファイルに対する添付ファイル状態区分が "1"(新規添付ファイル)の場合、下記の処理を行う。
			if (JCRStrConst.TMP_FILE_STAT_DIV_NEW.equals(bunshoBean.sendMessageString(
					CRW00601SFConst.L5_TMP_FILE_STAT_DIV_06, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// ・該当する添付ファイルの電子ファイル管理番号(一時的な番号)を元に、アップロード一時ファイル削除部品(JCCWebCommon.deleteFile)を
				//   使用し、一時ファイルの削除を行う。
				JCRWebCommon.deleteFile(this, bunshoBean.sendMessageString(CRW00601SFConst.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, "CRSV0224");

				// マッピングクラス
				CRSV0224_CRSV0224OPDBMapper mapper = new CRSV0224_CRSV0224OPDBMapper();

				// マッピング処理（上り）
				mapper.setGETBUNSHOCTL1RCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
				((HashMap<String, Object>) dataMap.get("GETBUNSHOCTL1RCC")).put("key_efile_kanri_no", 
						JCRWebCommon.getReplaceNoString(this, bunshoBean.sendMessageString(CRW00601SFConst.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(CRW00601SFConst.TENP_FILE_KENSU, X31CWebConst.DATABEAN_GET_VALUE);
				if (!"0".equals(tenpFileKensu))
				{
					// 遷移先画面ID、名称の設定
					commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
							, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW00701);
					commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
							, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00701);
					return true;
				}
			}

			// (4) サービス処理結果の設定
			bunshoBean.sendMessageBoolean(CRW00601SFConst.L5_FILE_DSP_FLG_06, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);

			// (5) 引継情報の設定
			// なし

			// (6) 共有フォームBeanの設定
			// 遷移先画面ID、名称の設定
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
					, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW00601);
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
					, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00601);

			return true;
		}

		/**
		 * 添付ファイルリンク.<br>
		 * 添付ファイルリンク押下時の処理を行う。
		 * 
		 * @return boolean
		 * @throws Exception Exception
		 */
		public boolean clickLinkTnpFileDownload() throws Exception
		{
			// サービスフォームBeanの内容の取得
			X31SDataBeanAccess bean = getServiceFormBean();

			// 共通フォームBeanの内容を取得
			X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

			// (1) 引継情報の取得
			// なし

			// (2) サービスフォームBeanの設定
			// なし

			// (3) サービス呼出処理
			// 選択ファイルインデックスの取得
			int selBunshoIndex = Integer.parseInt(bean.sendMessageString(
					CRW00601SFConst.SEL_BUNSHO_INDEX, X31CWebConst.DATABEAN_GET_VALUE));

			// 文書ファイルリストの取得
			X31SDataBeanAccessArray bunshoList = bean.getDataBeanArray(CRW00601SFConst.BUNSHOLIST);

			// 選択された文書ファイルの取得
			X31SDataBeanAccess bunshoBean = bunshoList.getDataBean(selBunshoIndex);

			// (a) サービスフォームBeanの該当する添付ファイルに対する添付ファイル状態区分が "0"(文書管理テーブルに登録済)の場合、下記の処理を行う。
			if (JCRStrConst.TMP_FILE_STAT_DIV_EXIST.equals(bunshoBean.sendMessageString(
					CRW00601SFConst.L5_TMP_FILE_STAT_DIV_06, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// 選択した添付ファイルに該当する電子ファイル管理番号、対応履歴文書ファイル名を元に、電子管理ファイルダウンロード処理部品
				// (JCCWebCommon.setDownloadFile)を使用し、ダウンロードファイル情報を取得する。
				JCRWebCommon.setDownloadFile(this, bunshoBean.sendMessageString(CRW00601SFConst.L5_EFILE_KANRI_NO_06, X31CWebConst.DATABEAN_GET_VALUE)
						, bunshoBean.sendMessageString(CRW00601SFConst.L5_TAIORRKI_BUNSHO_FILE_NM_06, X31CWebConst.DATABEAN_GET_VALUE));
			}

			// (b) サービスフォームBeanの該当する添付ファイルに対する添付ファイル状態区分が "1"(新規添付ファイル)の場合、下記の処理を行う。
			else
			{
				// 選択した添付ファイルに該当するアップロード時一時ファイルを、アップロード一時保存ファイル取得処理部品
				// (JCRWebCommon.getFile)を使用し、アップロード一時保存ファイル情報を取得する。
				byte[] fileByte = JCRWebCommon.getFile(this, bunshoBean.sendMessageString(CRW00601SFConst.L5_EFILE_KANRI_NO_06, X31CWebConst.DATABEAN_GET_VALUE));

				// 一時ファイルダウンロード処理部品(JCRWebCommon.setTempDownloadFile)を使用し、ダウンロード情報を設定する。
				JCRWebCommon.setTempDownloadFile(this, fileByte, bunshoBean.sendMessageString(
						CRW00601SFConst.L5_TAIORRKI_BUNSHO_FILE_NM_06, X31CWebConst.DATABEAN_GET_VALUE));
			}

			// (4) サービス処理結果の設定
			// なし

			// (5) 引継情報の設定
			// なし

			// (6) 共有フォームBeanの設定
			// 遷移先画面ID、名称の設定
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
					, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW00601);
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
					, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00601);

			return true;
		}

		
		/**
		 * 登録確認ボタン押下.<br>
		 * 登録確認ボタン押下。
		 * 
		 * @return boolean
		 * @throws Exception Exception
		 */
		public boolean confirmIns() throws Exception
		{
			// サービスフォームBeanの内容の取得
			X31SDataBeanAccess bean = getServiceFormBean();

			// 共通フォームBeanの内容を取得
			X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

			// (1) 引継情報の取得
			// なし。

			// (2) サービスフォームBeanの設定
			// なし。

			// (3) サービス呼出処理
			// (a) 登録確認、一時保存ボタン押下時共通処理（confirmInsSaveTmp）を呼び出す。
			confirmInsSaveTmp(JCRStrConst.HENSHU_STAT_FLG_KANRYO);

			// (4) サービス処理結果の設定
			if (!JCRStrConst.CD_DIV_CLOSE_FAIL_CD_KANOU.equals(bean.sendMessageString(CRW00601SFConst.CLOSE_FAIL_CD, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				JCRWebCommon.setMessageInfo(this, "EKB2310--I");
			}

			// (5) 引継情報の設定
			// なし。

			// (6) 共有フォームビーンの設定
			// 遷移先画面ID、名称の設定
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
					, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW00602);
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
					, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00602);

			return true;
		}

		/**
		 * 一時保存ボタン押下.<br>
		 * 一時保存ボタン押下。
		 * 
		 * @return boolean
		 * @throws Exception Exception
		 */
		public boolean saveTmp() throws Exception
		{
			// 共通フォームBeanの内容を取得
			X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

			// (1)引継情報の取得
			// なし。

			// (2)サービスフォームBeanの設定
			// なし。

			// (3)サービス呼出処理
			// (a) 登録確認、一時保存ボタン押下時共通処理（confirmInsSaveTmp）を呼び出す。
			confirmInsSaveTmp(JCRStrConst.HENSHU_STAT_FLG_HENSHU_CHU);

			// (4)サービス処理結果の設定
			// なし。
			
			// (5)引継情報の設定
			// なし。

			// (6)共有フォームビーンの設定
			// 遷移先画面ID、名称の設定
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
					, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW00602);
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
					, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00602);

			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_CRW00601);
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
					, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00601);

			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 fix() throws Exception
		{
			// サービスフォームBeanの内容の取得
			X31SDataBeanAccess bean = getServiceFormBean();

			// 共通フォームBeanの内容を取得
			X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

			// (1)引継情報の取得
			// なし。

			// (2)サービスフォームBeanの設定
			// なし。

			// (3)サービス呼出処理
			// (a) サービス呼出処理（callService）を呼び出す。
			callService(bean, commoninfoBean, JPCModelConstant.FUNC_CD_1);

			// (4)サービス処理結果の設定
			// (a) アップロード完了後の一時ファイル削除処理（JCCWebCommon.deleteCache）を呼び出し、
			//     一時ファイルを削除する。
			JCRWebCommon.deleteCache(this);

			// (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_CRW00601);
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
					, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00601);

			return true;

		}

		/**
		 * ファイル添付画面クローズ.<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(CRW00601SFConst.BUNSHOLIST);
			for (int i = 0; i < fileInfoArray.size(); i++)
			{
				HashMap<String, Object> mapFileInfo = fileInfoArray.get(i);
				X31SDataBeanAccess bunshoBean = bunshoList.addDataBean();
				bunshoBean.sendMessageString(CRW00601SFConst.L5_DELETE_TNP_FL_DISABLED_06, X31CWebConst.DATABEAN_SET_VALUE, "");
				bunshoBean.sendMessageString(CRW00601SFConst.L5_TORK_EFILE_KNRI_NO_06, X31CWebConst.DATABEAN_SET_VALUE, "");
				bunshoBean.sendMessageString(CRW00601SFConst.L5_TAIORRKI_BUNSHO_FILE_NM_06, X31CWebConst.DATABEAN_SET_VALUE, (String)mapFileInfo.get("fileName"));
				bunshoBean.sendMessageString(CRW00601SFConst.L5_EFILE_KANRI_NO_06, X31CWebConst.DATABEAN_SET_VALUE, (String)mapFileInfo.get("fileKey"));
				bunshoBean.sendMessageString(CRW00601SFConst.L5_GENE_ADD_DTM_06, X31CWebConst.DATABEAN_SET_VALUE, "");
				bunshoBean.sendMessageString(CRW00601SFConst.L5_TMP_FILE_STAT_DIV_06, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.TMP_FILE_STAT_DIV_NEW);
				bunshoBean.sendMessageBoolean(CRW00601SFConst.L5_FILE_DSP_FLG_06, X31CWebConst.DATABEAN_SET_VALUE, Boolean.TRUE);
				bunshoBean.sendMessageString(CRW00601SFConst.L5_UPD_DTM_BF_06, X31CWebConst.DATABEAN_SET_VALUE, "");
			}
			
			// (3)サービス呼出処理
			// なし。

			// (4)サービス処理結果の設定
			// なし。

			// (5)引継情報の設定
			// なし。

			// (6)共有フォームビーンの設定
			// 遷移先画面ID、名称の設定
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
					, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW00601);
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
					, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW00601);

			return true;

		}

		/**
		 * 全項目非活性処理.<br>
		 * 全項目を非活性状態にします。
		 */
		private void setAllProtect()
		{
		
			// サービスフォームBeanの内容の取得
			X31SDataBeanAccess bean = getServiceFormBean();
		
			// すべての項目を使用不可とする
			bean.sendMessageString(CRW00601SFConst.TOIAWASE_UK_SBT_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
// ANK-3831-00-00 ADD START
			bean.sendMessageString(CRW00601SFConst.HANKYO_PSB_FLG_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
// ANK-3831-00-00 ADD END
			bean.sendMessageString(CRW00601SFConst.EASY_MEMO_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
			bean.sendMessageString(CRW00601SFConst.ADD_RSP_CTG_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);
			bean.sendMessageString(CRW00601SFConst.ADD_TNP_FL_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);
			bean.sendMessageString(CRW00601SFConst.CALLBK_KIBO_YMD_YYYY_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
			bean.sendMessageString(CRW00601SFConst.CALLBK_KIBO_YMD_MM_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
			bean.sendMessageString(CRW00601SFConst.CALLBK_KIBO_YMD_DD_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
			bean.sendMessageString(CRW00601SFConst.CALENDAR_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);
			bean.sendMessageString(CRW00601SFConst.CALLBK_KIBO_TIME_HO_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
			bean.sendMessageString(CRW00601SFConst.CALLBK_KIBO_TIME_MI_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
			bean.sendMessageString(CRW00601SFConst.CALLBK_SHITEI_TYPE_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
		
			// 応対区分／カテゴリリストの項目に対して、活性・非活性制御を行う。
			X31SDataBeanAccessArray rspCtgrList = bean.getDataBeanArray(CRW00601SFConst.RSP_CTGR_LIST);
			for (int i = 0; i < rspCtgrList.getCount().intValue(); i++)
			{
				X31SDataBeanAccess rspCtgrBean = rspCtgrList.getDataBean(i);
				rspCtgrBean.sendMessageString(CRW00601SFConst.L1_MOVE_UP_RSP_CTG_DISABLED_02, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);
				rspCtgrBean.sendMessageString(CRW00601SFConst.L1_MOVE_DOWN_RSP_CTG_DISABLED_02, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);
				rspCtgrBean.sendMessageString(CRW00601SFConst.L1_DELETE_RSP_CTG_DISABLED_02, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);
				rspCtgrBean.sendMessageString(CRW00601SFConst.L1_RSP_DIV_DISABLED_02, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);
		
				X31SDataBeanAccessArray uwCtgrnList = rspCtgrBean.getDataBeanArray(CRW00601SFConst.L1_UW_CTGRN_LIST);
				for (int j = 0; j < uwCtgrnList.getCount().intValue(); j++)
				{
					X31SDataBeanAccess uwCtgrnBean = uwCtgrnList.getDataBean(j);
					uwCtgrnBean.sendMessageString(CRW00601SFConst.L3_UW_CTGRN_DISABLED_04, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);
				}
			}
		
			// カテゴリの項目に対して、活性・非活性制御を行う。
			X31SDataBeanAccessArray bunshoList = bean.getDataBeanArray(CRW00601SFConst.BUNSHOLIST);
			for (int i = 0; i < bunshoList.getCount().intValue(); i++)
			{
				X31SDataBeanAccess bunshoBean = bunshoList.getDataBean(i);
				bunshoBean.sendMessageString(CRW00601SFConst.L5_DELETE_TNP_FL_DISABLED_06, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);
			}
		}

		/**
		 * 登録確認、一時保存ボタン押下時共通処理.<br>
		 * 登録確認、一時保存ボタン押下時共通処理を行います。
		 * 
		 * @param pushButtonJdgFlg 登録画面ボタン押下判定フラグ
		 * @return boolean
		 * @throws Exception
		 */
		private void confirmInsSaveTmp(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)
		{
			// (1) サービスフォームBeanの編集を行う
			// 登録画面ボタン押下判定フラグ
			bean.sendMessageString(CRW00601SFConst.PUSH_BUTTON_JDG_FLG, X31CWebConst.DATABEAN_SET_VALUE, pushButtonJdgFlg);
			
			// 問合せ受付種別
			X31SDataBeanAccess toiawaseUkSbtBean = bean.getDataBeanArray(CRW00601SFConst.TOIAWASE_UK_SBT).getDataBean(0);
			// 問合せ受付種別・問合せ受付種別コード
			toiawaseUkSbtBean.sendMessageString(CRW00601SFConst.L0_SEL_TOIAWASE_UK_SBT_CD_01, X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getPullDownCode(bean, CRW00601SFConst.TOIAWASE_UK_SBT, CRW00601SFConst.L0_SEL_TOIAWASE_UK_SBT_IDX_01
					, CRW00601SFConst.L0_TOIAWASE_UK_SBT_CD_01));
			// 問合せ受付種別・問合せ受付種別コード名称
			toiawaseUkSbtBean.sendMessageString(CRW00601SFConst.L0_SEL_TOIAWASE_UK_SBT_CD_NM_01, X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getPullDownName(bean, CRW00601SFConst.TOIAWASE_UK_SBT, CRW00601SFConst.L0_SEL_TOIAWASE_UK_SBT_IDX_01
					, CRW00601SFConst.L0_TOIAWASE_UK_SBT_CD_01, CRW00601SFConst.L0_TOIAWASE_UK_SBT_CD_NM_01));

			// コールバック希望年月日
			String callbkKiboYmd = JCRUtilCommon.concatYmd(
					bean.sendMessageString(CRW00601SFConst.CALLBK_KIBO_YMD_YYYY, X31CWebConst.DATABEAN_GET_VALUE)
					, bean.sendMessageString(CRW00601SFConst.CALLBK_KIBO_YMD_MM, X31CWebConst.DATABEAN_GET_VALUE)
					, bean.sendMessageString(CRW00601SFConst.CALLBK_KIBO_YMD_DD, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageString(CRW00601SFConst.CALLBK_KIBO_YMD, X31CWebConst.DATABEAN_SET_VALUE, callbkKiboYmd != null ? callbkKiboYmd : "");

			// コールバック希望時間
			String callbkKiboTime = JCRUtilCommon.concatHm(
					bean.sendMessageString(CRW00601SFConst.CALLBK_KIBO_TIME_HO, X31CWebConst.DATABEAN_GET_VALUE)
					, bean.sendMessageString(CRW00601SFConst.CALLBK_KIBO_TIME_MI, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageString(CRW00601SFConst.CALLBK_KIBO_TIME, X31CWebConst.DATABEAN_SET_VALUE, callbkKiboTime != null ? callbkKiboTime : "");

			// コールバック時間指定タイプ
			X31SDataBeanAccess callbkShiteiTypeBean = bean.getDataBeanArray(CRW00601SFConst.CALLBK_SHITEI_TYPE).getDataBean(0);
			// コールバック時間指定タイプ・コールバック時間指定タイプコード
			callbkShiteiTypeBean.sendMessageString(CRW00601SFConst.L6_SEL_CALLBK_SHITEI_TYPE_CD_07, X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getPullDownCode(bean, CRW00601SFConst.CALLBK_SHITEI_TYPE, CRW00601SFConst.L6_SEL_CALLBK_SHITEI_TYPE_IDX_07
					, CRW00601SFConst.L6_CALLBK_SHITEI_TYPE_CD_07));
			// コールバック時間指定タイプ・コールバック時間指定タイプコード名称
			callbkShiteiTypeBean.sendMessageString(CRW00601SFConst.L6_SEL_CALLBK_SHITEI_TYPE_CD_NM_07, X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getPullDownName(bean, CRW00601SFConst.CALLBK_SHITEI_TYPE, CRW00601SFConst.L6_SEL_CALLBK_SHITEI_TYPE_IDX_07
					, CRW00601SFConst.L6_CALLBK_SHITEI_TYPE_CD_07, CRW00601SFConst.L6_CALLBK_SHITEI_TYPE_CD_NM_07));

			// メモタイプ
			X31SDataBeanAccess memoTypeBean = bean.getDataBeanArray(CRW00601SFConst.MEMO_TYPE).getDataBean(0);
			// メモタイプ・メモタイプコード
			memoTypeBean.sendMessageString(CRW00601SFConst.L7_SEL_MEMO_TYPE_CD_08, X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getPullDownCode(bean, CRW00601SFConst.MEMO_TYPE, CRW00601SFConst.L7_SEL_MEMO_TYPE_IDX_08
					, CRW00601SFConst.L7_MEMO_TYPE_CD_08));
			// メモタイプ・メモタイプコード名称
			memoTypeBean.sendMessageString(CRW00601SFConst.L7_SEL_MEMO_TYPE_CD_NM_08, X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getPullDownName(bean, CRW00601SFConst.MEMO_TYPE, CRW00601SFConst.L7_SEL_MEMO_TYPE_IDX_08
					, CRW00601SFConst.L7_MEMO_TYPE_CD_08, CRW00601SFConst.L7_MEMO_TYPE_CD_NM_08));

			// (2) 応対区分／カテゴリリストの設定を行う。
			//     ※応対区分／カテゴリリストの件数分処理を行う。
			// 応対区分／カテゴリリスト
			X31SDataBeanAccessArray rspCtgrList = bean.getDataBeanArray(CRW00601SFConst.RSP_CTGR_LIST);

			for (int i = 0; i < rspCtgrList.getCount().intValue(); i++)
			{
				// 応対区分／カテゴリリスト
				X31SDataBeanAccess rspCtgrBean = rspCtgrList.getDataBean(i);

				// 応対区分
				X31SDataBeanAccessArray toiawaseRspList = rspCtgrBean.getDataBeanArray(CRW00601SFConst.L1_TOIAWASE_RSP);

				// (a) 応対区分の設定を行う。
				// 応対区分インデックス
				String selectedIndexRspDiv = rspCtgrBean.sendMessageString(CRW00601SFConst.L1_SEL_RSP_DIV_IDX_02, X31CWebConst.DATABEAN_GET_VALUE);
				// 応対区分・応対区分コード
				rspCtgrBean.sendMessageString(CRW00601SFConst.L1_SEL_RSP_DIV_CD_02, X31CWebConst.DATABEAN_SET_VALUE
						, JCRWebCommon.getDetailPullDownValue(toiawaseRspList, selectedIndexRspDiv, CRW00601SFConst.L2_RSP_DIV_03));
				// 応対区分・応対区分名称
				rspCtgrBean.sendMessageString(CRW00601SFConst.L1_SEL_RSP_DIV_NM_02, X31CWebConst.DATABEAN_SET_VALUE
						, JCRWebCommon.getDetailPullDownValue(toiawaseRspList, selectedIndexRspDiv, CRW00601SFConst.L2_RSP_DIV_NM_03));
		
				// (b) 応対区分が変更されている場合
				String tiokrUwCstWkAddDiv = null;
				if (rspCtgrBean.sendMessageString(CRW00601SFConst.L1_SEL_RSP_DIV_CD_02, X31CWebConst.DATABEAN_GET_VALUE).equals(
						rspCtgrBean.sendMessageString(CRW00601SFConst.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(CRW00601SFConst.L1_CUST_KOE_02, X31CWebConst.DATABEAN_SET_VALUE, "");
					rspCtgrBean.sendMessageString(CRW00601SFConst.L1_CSR_KOE_02, X31CWebConst.DATABEAN_SET_VALUE, "");
				}
				rspCtgrBean.sendMessageString(CRW00601SFConst.L1_TIOKR_UW_CST_WK_ADD_DIV_02, X31CWebConst.DATABEAN_SET_VALUE, tiokrUwCstWkAddDiv);

				// カテゴリーＮリスト
				X31SDataBeanAccessArray uwCtgrListArray = rspCtgrBean.getDataBeanArray(CRW00601SFConst.L1_UW_CTGRN_LIST);
		
				// (c) カテゴリの設定を行う
				//     ※カテゴリの件数分処理を行う。
				for (int j = 1; j < uwCtgrListArray.getCount().intValue(); j++)
				{
					// カテゴリーＮリスト
					X31SDataBeanAccess ctgrBean = uwCtgrListArray.getDataBean(j);

					// カテゴリーＮ
					X31SDataBeanAccessArray uwCtgrList = ctgrBean.getDataBeanArray(CRW00601SFConst.L3_UW_CTGRN);

					// カテゴリーＮコードインデックス
					String selectedIndexCtgr = ctgrBean.sendMessageString(CRW00601SFConst.L3_SEL_UW_CTGRN_IDX_04, X31CWebConst.DATABEAN_GET_VALUE);
		
					// 応対区分・カテゴリーＮ番号
					ctgrBean.sendMessageString(CRW00601SFConst.L3_SEL_UW_CTGRN_CD_04, X31CWebConst.DATABEAN_SET_VALUE
							, JCRWebCommon.getDetailPullDownValue(uwCtgrList, selectedIndexCtgr, CRW00601SFConst.L4_UW_CTGRN_CD_05));
					// 応対区分・カテゴリーＮ名称
					ctgrBean.sendMessageString(CRW00601SFConst.L3_SEL_UW_CTGRN_NM_04, X31CWebConst.DATABEAN_SET_VALUE
							, JCRWebCommon.getDetailPullDownValue(uwCtgrList, selectedIndexCtgr, CRW00601SFConst.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>>(); 

			// (a) 電子ファイル登録、電子ファイル削除用のリストの生成を行う。
			X31SDataBeanAccessArray bunshoList = bean.getDataBeanArray(CRW00601SFConst.BUNSHOLIST);

			// (b) 電子ファイル管理サービスインターフェイスに引き渡す情報を設定する。
			for (int i = 0; i < bunshoList.getCount().intValue(); i++)
			{
				X31SDataBeanAccess bunshoBean = bunshoList.getDataBean(i);
				
				// (ｱ) (CRW00601)SFBern.添付ファイル状態区分が "1"(新規添付ファイル) かつ
				//     (CRW00601)SFBern.一時ファイル表示可否が"true"(表示)の場合
				if (JCRStrConst.TMP_FILE_STAT_DIV_NEW.equals(bunshoBean.sendMessageString(
						CRW00601SFConst.L5_TMP_FILE_STAT_DIV_06, X31CWebConst.DATABEAN_GET_VALUE))
					&& bunshoBean.sendMessageBoolean(CRW00601SFConst.L5_FILE_DSP_FLG_06, X31CWebConst.DATABEAN_GET_VALUE))
				{
					// ファイルバイナリデータリスト
					byteList.add(JCRWebCommon.getFile(this, bunshoBean.sendMessageString(
							CRW00601SFConst.L5_EFILE_KANRI_NO_06, X31CWebConst.DATABEAN_GET_VALUE)));
					// ファイルコードリスト
					fileCodeList.add(null);
					// ファイル削除年月日
					delYmdList.add("20991231");

				}

				// (ｲ) (CRW00601)SFBern.添付ファイル状態区分が "0"(文書管理テーブルに登録済) かつ
				//     (CRW00601)SFBern.一時ファイル表示可否が "false"(非表示) の場合
				else if (JCRStrConst.TMP_FILE_STAT_DIV_EXIST.equals(bunshoBean.sendMessageString(
						CRW00601SFConst.L5_TMP_FILE_STAT_DIV_06, X31CWebConst.DATABEAN_GET_VALUE))
					&& !bunshoBean.sendMessageBoolean(CRW00601SFConst.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(
							CRW00601SFConst.L5_EFILE_KANRI_NO_06, X31CWebConst.DATABEAN_GET_VALUE)));
					// 更新前世代登録年月日時分秒
					mapDelEfileKanri.put("gene_add_dtm_bf", bunshoBean.sendMessageString(
							CRW00601SFConst.L5_GENE_ADD_DTM_06, X31CWebConst.DATABEAN_GET_VALUE));
					// 更新前更新年月日時分秒
					mapDelEfileKanri.put("upd_dtm_bf", bunshoBean.sendMessageString(
							CRW00601SFConst.L5_UPD_DTM_BF_06, X31CWebConst.DATABEAN_GET_VALUE));
					listDelEfileKanri.add(mapDelEfileKanri);
				}
			}

			// マッピングクラスを使用する為、配列化
			X31SDataBeanAccess[] paramBean = {bean, commoninfoBean};
		
			// ユースケースID格納
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0032");
			
			// マッピングクラス
			CRSV0032_CRSV0032OPDBMapper mapper = new CRSV0032_CRSV0032OPDBMapper();
			mapper.setJUDGENGWORDCC(paramBean, dataMap, funcCd);
			mapper.setUPDTAIOKRKCC(paramBean, dataMap, funcCd);
			mapper.setCRSV003201SC(paramBean, dataMap, funcCd);
			mapper.setCRSV003202SC(paramBean, dataMap, funcCd);
			mapper.setDELHOTVOICCC(paramBean, dataMap, funcCd);
			mapper.setADDHOTVOICCC(paramBean, dataMap, funcCd);
			mapper.setADDDELBUNSHOCTLCC(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);

			// サービス実行
			invokeService(paramMap, dataMap, outputMap, attachMap);

			// マッピング処理（下り）
			mapper.getJUDGENGWORDCC(paramBean, outputMap);

			// クローズ不可の場合
			if (!JCRStrConst.CD_DIV_CLOSE_FAIL_CD_KANOU.equals(bean.sendMessageString(CRW00601SFConst.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(CRW00601SFConst.L3_SEL_UW_CTGRN_IDX_04, X31CWebConst.DATABEAN_SET_VALUE, "0");
			// カテゴリーＮ番号
			uwCtgrnListBean.sendMessageString(CRW00601SFConst.L3_SEL_UW_CTGRN_CD_04, X31CWebConst.DATABEAN_SET_VALUE, uwCtgrCd);
			// カテゴリーＮ名称
			uwCtgrnListBean.sendMessageString(CRW00601SFConst.L3_SEL_UW_CTGRN_NM_04, X31CWebConst.DATABEAN_SET_VALUE, uwCtgrNm);
			// カテゴリーＮレベル
			uwCtgrnListBean.sendMessageString(CRW00601SFConst.L3_SEL_UW_CTGRN_LV_04, X31CWebConst.DATABEAN_SET_VALUE, uwCtgrLv);
			// カテゴリーＮ名称(変更前)
			uwCtgrnListBean.sendMessageString(CRW00601SFConst.L3_SEL_UW_CTGRN_NM_BF_04, X31CWebConst.DATABEAN_SET_VALUE, "");
			// カテゴリーＮ設定フラグ
			uwCtgrnListBean.sendMessageBoolean(CRW00601SFConst.L3_SEL_UW_CTGRN_SET_04, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);

			// (b) カテゴリーＮの編集を行う。
			// カテゴリーＮ
			X31SDataBeanAccessArray uwCtgrList = uwCtgrnListBean.getDataBeanArray(CRW00601SFConst.L3_UW_CTGRN);
		
			X31SDataBeanAccess uwCtgrBean = uwCtgrList.addDataBean();
			
			// カテゴリーＮ番号リスト
			uwCtgrBean.sendMessageString(CRW00601SFConst.L4_UW_CTGRN_CD_05, X31CWebConst.DATABEAN_SET_VALUE, uwCtgrCd);
			// カテゴリーＮ名称リスト
			uwCtgrBean.sendMessageString(CRW00601SFConst.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(CRW00601SFConst.L1_MOVE_UP_RSP_CTG_DISABLED_02, X31CWebConst.DATABEAN_CLEAR);
				// 下移動ボタン（カテゴリ）押下可否
				rspCtgrBean.sendMessage(CRW00601SFConst.L1_MOVE_DOWN_RSP_CTG_DISABLED_02, X31CWebConst.DATABEAN_CLEAR);
				// 削除ボタン（カテゴリ）押下可否
				rspCtgrBean.sendMessage(CRW00601SFConst.L1_DELETE_RSP_CTG_DISABLED_02, X31CWebConst.DATABEAN_CLEAR);
				// 表示順序
				rspCtgrBean.sendMessageString(CRW00601SFConst.L1_DSP_JUN_02, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i + 1));
				// 行スタイルクラス１
				rspCtgrBean.sendMessageString(CRW00601SFConst.L1_LINE_STYLE_CLASS1_02, X31CWebConst.DATABEAN_SET_VALUE, lineStyle);
				// 行スタイルクラス２
				rspCtgrBean.sendMessageString(CRW00601SFConst.L1_LINE_STYLE_CLASS2_02, X31CWebConst.DATABEAN_SET_VALUE, lineStyle);
			}

			// (2) 応対区分／カテゴリリストの項目に対して、活性・非活性制御を行う。
			// １行目の上移動ボタン（カテゴリ）押下可否の設定を行う。
			X31SDataBeanAccess firstRspCtgrBean = rspCtgrList.getDataBean(0);
			firstRspCtgrBean.sendMessageString(CRW00601SFConst.L1_MOVE_UP_RSP_CTG_DISABLED_02, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);

			// 最終行の下移動ボタン（カテゴリ）押下可否の設定を行う。
			X31SDataBeanAccess lastRspCtgrBean = rspCtgrList.getDataBean(rspCtgrList.getCount().intValue() - 1);
			lastRspCtgrBean.sendMessageString(CRW00601SFConst.L1_MOVE_DOWN_RSP_CTG_DISABLED_02, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);

			// 削除ボタン（カテゴリ）押下可否の設定を行う。
			if (rspCtgrList.getCount().intValue() == 1)
			{
				rspCtgrList.getDataBean(0).sendMessageString(CRW00601SFConst.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 (CRW00601SFConst.L1_TOIAWASE_RSP.equals(itemNameList[i])
					|| CRW00601SFConst.L1_UW_CTGRN_LIST.equals(itemNameList[i])
					|| CRW00601SFConst.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(CRW00601SFConst.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(
						CRW00601SFConst.L5_TMP_FILE_STAT_DIV_06, X31CWebConst.DATABEAN_GET_VALUE))
					&& bunshoBean.sendMessageBoolean(CRW00601SFConst.L5_FILE_DSP_FLG_06, X31CWebConst.DATABEAN_GET_VALUE))
				{
					// (@) 該当する添付ファイルの電子ファイル管理番号(一時ファイル番号)を元に、アップロード一時ファイル削除部品
					//     (JCCWebCommon.deleteFile)を使用し、一時ファイルの削除を行う。
					JCRWebCommon.deleteFile(this, bunshoBean.sendMessageString(CRW00601SFConst.L5_EFILE_KANRI_NO_06, X31CWebConst.DATABEAN_GET_VALUE));
				}
			}
		}

		/**
		 * サービスフォーム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(CRW00601SFConst.TAIO_KIROK_NO, X31CWebConst.DATABEAN_GET_VALUE));

			// メール件名 → メール送信（ＮＧワード）マップ.タイトル
			parentMap.put("title", bean.sendMessageString(CRW00601SFConst.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;
		}
	}
