/*******************************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 ********************************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：CRW04601SFLogic
 *	ソースファイル名：CRW04601SFLogic.java
 *	作成者			：富士通
 *	日付			：2011年11月22日
 *＜機能概要＞
 *	一括エスカレーション登録画面ビューロジック
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v1.00.00
 *	v5.00.00	2013/03/04	FJ 真田		ANK-1475-00-00_エスカレ時ワークグループ初期選択
 *	v56.00.00	2021/11/18	FJ)西窪		ANK-4150-00-00  対応履歴改善ニーズ対応
 *
 ********************************************************************************/

package eo.web.webview.CRW04601SF;

import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.constant.JCRStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JCRUtilCommon;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CRW04003SF.CRW04003SFConst;
import eo.web.webview.CRW04701SF.CRW04701SFConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JCRScreenConst;
import eo.web.webview.common.JCRWebCommon;
import eo.web.webview.mapping.CRSV0213_CRSV0213OPDBMapper;
import eo.web.webview.mapping.CRSV0215_CRSV0215OPDBMapper;
import eo.web.webview.mapping.CRSV0218_CRSV0218OPDBMapper;
import eo.web.webview.mapping.CRSV0219_CRSV0219OPDBMapper;
import eo.web.webview.mapping.CRSV0220_CRSV0220OPDBMapper;

/**
 * 一括エスカレーション登録画面ビューロジック
 * @author FJ
 */
@SuppressWarnings("serial")
public class CRW04601SFLogic extends JCCWebBusinessLogic
{

	/**
	 * CSVファイル作成：項目のくくり文字
	 */
	private static final String DOUBLE_QUOTATION = "\"";
	/**
	 * サービスID：CRSV0213
	 */
	private static final String SRV_ID_0213 = "CRSV0213";
	/**
	 * サービスID：CRSV0215
	 */
	private static final String SRV_ID_0215 = "CRSV0215";
	/**
	 * サービスID：CRSV0218
	 */
	private static final String SRV_ID_0218 = "CRSV0218";
	/**
	 * サービスID：CRSV0219
	 */
	private static final String SRV_ID_0219 = "CRSV0219";
	/**
	 * サービスID：CRSV0220
	 */
	private static final String SRV_ID_0220 = "CRSV0220";
	/**
	 * ディレイド依頼処理 サービスインターフェイスID
	 */
	private static final String DLYD_SIF_ID = "ECC0111D010";
	/**
	 * ファイルアップロード用 リスト名
	 */
	private static final String FILE_UPLOAD_LIST_NAME = "list_name";
	/**
	 * ファイルアップロード用 アイテム名
	 */
	private static final String FILE_UPLOAD_ITEM_NAME = "item_name";
	/**
	 * ファイルアップロード用 インデックス
	 */
	private static final String FILE_UPLOAD_INDEX = "index";
	/**
	 * ディレイド開始フラグ：OFF：""
	 */
	private static final String DLYD_STA_FLG_OFF = "";
	/**
	 * ディレイド開始フラグ：ON："1"
	 */
	private static final String DLYD_STA_FLG_ON = "1";
	/**
	 * エスカレーション実行ボタン：キュー実行：1
	 */
	private static final String ESCLA_QUE_EXEC = "1";
	/**
	 * エスカレーション実行ボタン：ユーザー実行：2
	 */
	private static final String ESCLA_USER_EXEC = "2";
	/**
	 * 出力モード：単一ユーザー選択：0
	 */
	private static final String OUTPUT_MODE_SINGLE = "0";
	/**
	 * 引継項目リスト
	 */
	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 ,
				//対応開始年月日(自)
				CRW04601SFConst.TAIO_STA_DTM_FROM,
				//対応開始年月日(至)
				CRW04601SFConst.TAIO_STA_DTM_TO,
				//クエリ名
				CRW04601SFConst.QUERY_NM,
				//総件数(選択前)
				CRW04601SFConst.TOTAL_CNT_BF);
		//Array項目
		Collections.addAll(ARRAY_ITEM_SET,
				//問合せリスト(選択前)
				CRW04601SFConst.TOIAWASE_LIST_BF,
				//問合せリスト(選択後)
				CRW04601SFConst.TOIAWASE_LIST_AF,
				//業務個別設定組織リスト
				CRW04601SFConst.WKKBT_ORG_LIST,
				//キューＢＯＸリスト
				CRW04601SFConst.QUE_BOX_LIST,
				//ユーザーリスト
				CRW04601SFConst.RET_USER_LIST,
				//退避＿業務個別設定組織リスト
				CRW04601SFConst.BK_WKKBT_ORG_LIST);
	}
	
	/**
	 * 引継ぎ項目：一時保存有
	 */
	private static final String TMP_SAVE_ARI = "1";
	/**
	 * ボタンコントロール：ボタン非活性
	 */
	private static final String BTN_CTRL_DISABLED = "disabled";
	/**
	 * ボタンコントロール：ボタン活性
	 */
	private static final String BTN_CTRL_ENABLED = "";
	/**
	 * 表示・非表示コントロール制御用配列 Index：0：サービスフォームBean項目名
	 */
	private static final int INDEX_SB_BTN_ON_OFF = 0;
	/**
	 * 表示・非表示コントロール制御用配列 Index：1：権限取得プロパティKey名
	 */
	private static final int INDEX_PRP_BTN_ON_OFF = 1;
	/**
	 * ボタンコントロール：表示・非表示コントロール制御用サービスフォームBean項目名リスト
	 */
	private static final String[][] BTN_ID_FOR_CTRL_ON_OFF = {
		//ユーザ名表示フラグ
		{CRW04601SFConst.ESCLA_SAKI_USER_NM_FLG,     "CRW046010PJP;txtUserNm;0"},
		//ユーザ実行ボタン表示フラグ
		{CRW04601SFConst.ESCALATE_USER_FLG,          "CRW046010PJP;B_ESCALATE_USER;1"},
		//選択ボタン表示フラグ
		{CRW04601SFConst.CHOICE_USER_FLG,            "CRW046010PJP;B_CHOICE_USER;2"},
	};
	/**
	 * モーダル画面：反映用画面ID
	 */
	private static final String MODAL_REF_SCREEN_ID = "CCW00105";
	/**
	 * モーダル画面：反映用画面名
	 */
	private static final String MODAL_REF_SCREEN_NM = "モーダル用反映画面";
	/**
	 * エラーメッセージ：埋め込み文字列：問合せメモ一括登録
	 */
	private static final String ERR_MSG_ESCALA_IKKATSU = "一括エスカレーション登録";
	/**
	 * エラーメッセージ：埋め込み文字列：システムエラー発生時
	 */
	private static final String ERR_MSG_SYS_ERR = "システムエラーが発生しました。";

	/**
	 * 初期表示処理
	 * <BR>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean init() throws Exception
	{
		X31SDataBeanAccess svBean = getServiceFormBean();
		X31SDataBeanAccess cfBean = getCommonInfoBean();

		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// (a)画面情報取得部品(JCCWebCommon.getScreenInfo)を使用し、引継情報を取得する。
		HashMap<String, Object> screenInfoDataMap = JCCWebCommon.getScreenInfo(this);
		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// (b) 値のクリアを行う。
		clearBean(svBean);
		// (c) システム日付の取得
		String sysDate = JCRWebCommon.getSysDate();
		// (d) サービスフォームBeanの設定をする。
		//    (ｱ) 引継情報から下記項目を設定する。
		//   対応開始年月日(自)
		svBean.sendMessageString(CRW04601SFConst.TAIO_STA_DTM_FROM, X31CWebConst.DATABEAN_SET_VALUE, 
												(String)screenInfoDataMap.get(JCRStrConst.KEY_TAIO_STA_DTM_FROM));
		//   対応開始年月日(至)
		svBean.sendMessageString(CRW04601SFConst.TAIO_STA_DTM_TO, X31CWebConst.DATABEAN_SET_VALUE, 
												(String)screenInfoDataMap.get(JCRStrConst.KEY_TAIO_STA_DTM_TO));
		//   クエリ名
		svBean.sendMessageString(CRW04601SFConst.QUERY_NM, X31CWebConst.DATABEAN_SET_VALUE, 
												(String)screenInfoDataMap.get(JCRStrConst.KEY_QUERY_NM));
		//   総件数(選択前)
		ArrayList<Object> queryList = (ArrayList<Object>)screenInfoDataMap.get(JCRStrConst.KEY_QUERY_LIST);
		svBean.sendMessageString(CRW04601SFConst.TOTAL_CNT_BF, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(queryList.size()));
		//  業務個別設定組織コード
		X31SDataBeanAccess subCfBean = cfBean.getDataBeanArray(CommonInfoCFConst.KGGRP_CD_LIST).getDataBean(1);
		String wkGrpCd = subCfBean.sendMessageString(CommonInfoCFConst.ORG_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
		svBean.sendMessageString(CRW04601SFConst.WKKBT_ORG_CD, X31CWebConst.DATABEAN_SET_VALUE, wkGrpCd);
		//  業務個別設定組織名
		String wkGrpCdNm = subCfBean.sendMessageString(CommonInfoCFConst.ORG_NM_01, X31CWebConst.DATABEAN_GET_VALUE);
		svBean.sendMessageString(CRW04601SFConst.WKKBT_ORG_NM, X31CWebConst.DATABEAN_SET_VALUE, wkGrpCdNm);
		//  業務個別設定立場コード
		String wkGrpPosCd = subCfBean.sendMessageString(CommonInfoCFConst.POSITION_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
		svBean.sendMessageString(CRW04601SFConst.PSB_POSITION_CD, X31CWebConst.DATABEAN_SET_VALUE, wkGrpPosCd);
		//  業務個別設定立場名
		String wkGrpPosNm = subCfBean.sendMessageString(CommonInfoCFConst.POSITION_NM_01, X31CWebConst.DATABEAN_GET_VALUE);
		svBean.sendMessageString(CRW04601SFConst.PSB_POSITION_NM, X31CWebConst.DATABEAN_SET_VALUE, wkGrpPosNm);
		//  ログインユーザーＩＤ
		String logInUserId = cfBean.sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE);
		svBean.sendMessageString(CRW04601SFConst.LOGIN_USER_ID, X31CWebConst.DATABEAN_SET_VALUE, logInUserId);		
		//  ログインユーザー名
		String logInUserNm = cfBean.sendMessageString(CommonInfoCFConst.USER_NM, X31CWebConst.DATABEAN_GET_VALUE);
		svBean.sendMessageString(CRW04601SFConst.LOGIN_USER_NM, X31CWebConst.DATABEAN_SET_VALUE, logInUserNm);		

		//    (ｲ) 引継情報からクエリ実行問合せ一覧照会明細の1レコードに当たる情報(fieldMap)を基に明細行数分のArrayListの
		//    要素を作成し問合せリスト(選択前)を設定する。
		setToiawaseListBf(svBean, queryList);
		//    (ｳ) 画面のボタン制御
		setBtnCtrlInfo(svBean);
		//    (ｴ) 上記以外のサービスフォームBean設定
		svBean.sendMessageString(CRW04601SFConst.STDARDYMD, X31CWebConst.DATABEAN_SET_VALUE, sysDate);
		
		// 戻り先画面の引継ぎ
		String pScreenId = JCCWebCommon.getScreenId(this);
		JCCWebCommon.setScreenId(this, JCRScreenConst.SCREEN_ID_CRW04602, pScreenId);

		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		X31SDataBeanAccess[] paramBean = {svBean, cfBean};
		// ユースケースID格納用マップ
		HashMap<Object, String> paramMap = new HashMap<Object, String>();
		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SRV_ID_0213);
		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		// マッピングクラス
		CRSV0213_CRSV0213OPDBMapper mapper = new CRSV0213_CRSV0213OPDBMapper();
		mapper.setCRSV021301SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setCRSV021302SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		// サービス実行
		invokeService(paramMap, dataMap, outputMap);
		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		//  サービスの処理結果を取得する。
		mapper.getCRSV021301SC(paramBean, outputMap);
		mapper.getCRSV021302SC(paramBean, outputMap);

		// 初期選択のワークグループを設定
		svBean.sendMessageString(CRW04601SFConst.SLCT_WKKBT_ORG_CD, X31CWebConst.DATABEAN_SET_VALUE, JCRWebCommon.getWkkbtOrgCd(cfBean));

		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// なし。
		
		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		// 遷移先画面IDを共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_ID_CRW04601);

		// 遷移先画面名を共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_NAME_CRW04601);
		
		return true;
	}
	
	/**
	 * 絞込対象ワークグループKeyUp処理
	 * <BR>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean searchWkgrp() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共有フォームBean
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// 画面入力されたワークグループ名
		String keyOrgNm = bean.sendMessageString(CRW04601SFConst.ESCLA_SAKI_WKSO_SEARCH, X31CWebConst.DATABEAN_GET_VALUE);

		// 退避している全ワークグループリスト
		X31SDataBeanAccessArray allList = bean.getDataBeanArray(CRW04601SFConst.BK_WKKBT_ORG_LIST);

		// ワークグループリストをクリア
		bean.getDataBeanArray(CRW04601SFConst.WKKBT_ORG_LIST).clearArray();

		// ワークグループリストに空行を追加
		X31SDataBeanAccessArray wgList = bean.getDataBeanArray(CRW04601SFConst.WKKBT_ORG_LIST);
		wgList.addDataBean();
		X31SDataBeanAccess wgBean = wgList.getDataBean(0);
		wgBean.sendMessageString(CRW04601SFConst.L1_WKKBT_ORG_CD_02, X31CWebConst.DATABEAN_SET_VALUE, "");
		wgBean.sendMessageString(CRW04601SFConst.L1_WKKBT_ORG_CD_NM_02, X31CWebConst.DATABEAN_SET_VALUE, "");

		int allCount = allList.getCount();

		// 退避している全ワークグループリストからマッチング
		for (int i = 1; i < allCount; i++)
		{
			X31SDataBeanAccess orgBean = allList.getDataBean(i);
			String orgCd = orgBean.sendMessageString(CRW04601SFConst.L5_WKKBT_ORG_CD_06, X31CWebConst.DATABEAN_GET_VALUE);
			String orgNm = orgBean.sendMessageString(CRW04601SFConst.L5_WKKBT_ORG_NM_06, X31CWebConst.DATABEAN_GET_VALUE);

			int indexOf = orgNm.lastIndexOf(keyOrgNm);

			// キーの指定がない場合、もしくはキーの指定がありキーと一致した場合設定
			if ((JCRUtilCommon.isNull(keyOrgNm)) || (indexOf > -1))
			{
				wgList.addDataBean();
				wgBean = wgList.getDataBean(wgList.getCount() - 1);
				wgBean.sendMessageString(CRW04601SFConst.L1_WKKBT_ORG_CD_02, X31CWebConst.DATABEAN_SET_VALUE, orgCd);
				wgBean.sendMessageString(CRW04601SFConst.L1_WKKBT_ORG_CD_NM_02, X31CWebConst.DATABEAN_SET_VALUE, orgNm);
			}
		}

		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		// 遷移先画面IDを共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW04601);
		// 遷移先画面名を共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW04601);

		return true;
	}
	
	/**
	 * 絞込ワークグループ対応キューBOX処理
	 * <BR>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean choiceWkgroup() throws Exception
	{
		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		//キューBOXプルダウン項目をクリアする。
		X31SDataBeanAccess svBean = getServiceFormBean();
		X31SDataBeanAccess cfBean = getCommonInfoBean();
		svBean.getDataBeanArray(CRW04601SFConst.QUE_BOX_LIST).clearArray();
		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		X31SDataBeanAccess[] beans = {svBean};
		// ユースケースID格納用マップ
		HashMap<Object, String> paramMap = new HashMap<Object, String>();
		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SRV_ID_0215);
		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		// マッピングクラス
		CRSV0215_CRSV0215OPDBMapper mapper = new CRSV0215_CRSV0215OPDBMapper();
		mapper.setCRSV021501SC(beans, dataMap, JPCModelConstant.FUNC_CD_1);
		// サービス実行
		invokeService(paramMap, dataMap, outputMap);
		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		mapper.getCRSV021501SC(beans, outputMap);
		//  サービスの処理結果を取得する。
		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// なし。
		
		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		
		// 遷移先画面IDを共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_ID_CRW04601);

		// 遷移先画面名を共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_NAME_CRW04601);

		return true;
	}
	
	/**
	 * キュー実行ボタン押下処理
	 * <BR>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean escalateQue() throws Exception
	{
		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		X31SDataBeanAccess svBean = getServiceFormBean();
		//   (a) 問合せリスト編集処理(editToiawaseList)を呼び出す。
		editToiawaseList(svBean);
		//   (b) (a)以外のサービスフォームBeanを設定する。
		//   エスカレーション実行ボタン
		svBean.sendMessageString(CRW04601SFConst.ESCLA_RUN_BTN, X31CWebConst.DATABEAN_SET_VALUE, ESCLA_QUE_EXEC);
		// エスカレーション先キューBOX番号
		svBean.sendMessageString(CRW04601SFConst.ESCLA_SAKI_QUE_BOX_NO, X31CWebConst.DATABEAN_SET_VALUE
				, JCRWebCommon.getPullDownCode(svBean, CRW04601SFConst.QUE_BOX_LIST, CRW04601SFConst.L0_QUE_BOX_NO_IDX_01, CRW04601SFConst.L0_QUE_BOX_NO_01));
		// エスカレーション先キューBOX名
		svBean.sendMessageString(CRW04601SFConst.ESCLA_SAKI_QUE_BOX_NM, X31CWebConst.DATABEAN_SET_VALUE
				, JCRWebCommon.getPullDownName(svBean, CRW04601SFConst.QUE_BOX_LIST, CRW04601SFConst.L0_QUE_BOX_NO_IDX_01, CRW04601SFConst.L0_QUE_BOX_NO_01, CRW04601SFConst.L0_QUE_BOX_NM_01));
		//   エスカレーション先 業務個別設定組織コード
		svBean.sendMessageString(CRW04601SFConst.ESCLA_SAKI_WKSO_CD, X31CWebConst.DATABEAN_SET_VALUE
				, JCRWebCommon.getPullDownName(svBean, CRW04601SFConst.QUE_BOX_LIST, CRW04601SFConst.L0_QUE_BOX_NO_IDX_01, CRW04601SFConst.L0_QUE_BOX_NO_01, CRW04601SFConst.L0_WKKBT_ORG_CD_01));
		//   ワークグループ
		svBean.sendMessageString(CRW04601SFConst.ESCLA_SAKI_WKSO_NM, X31CWebConst.DATABEAN_SET_VALUE
				, JCRWebCommon.getPullDownName(svBean, CRW04601SFConst.QUE_BOX_LIST, CRW04601SFConst.L0_QUE_BOX_NO_IDX_01, CRW04601SFConst.L0_WKKBT_ORG_CD_01, CRW04601SFConst.L0_WKKBT_ORG_CD_NM_01));

		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		X31SDataBeanAccess cfBean = getCommonInfoBean();
		// 遷移先画面IDを共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_ID_CRW04602);

		// 遷移先画面名を共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_NAME_CRW04602);

		return true;
	}
	
	/**
	 * ユーザー実行ボタン押下処理
	 * <BR>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean escalateUser() throws Exception
	{
		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		X31SDataBeanAccess svBean = getServiceFormBean();
		X31SDataBeanAccess cfBean = getCommonInfoBean();
		//   (a) 問合せリスト編集処理(editToiawaseList)を呼び出す。
		editToiawaseList(svBean);
		//   (b) (a)以外のサービスフォームBeanを設定する。
		//   エスカレーション実行ボタン
		svBean.sendMessageString(CRW04601SFConst.ESCLA_RUN_BTN, X31CWebConst.DATABEAN_SET_VALUE, ESCLA_USER_EXEC);
		//   エスカレーション先ユーザーID
		X31SDataBeanAccess subBean = svBean.getDataBeanArray(CRW04601SFConst.RET_USER_LIST).getDataBean(0);
		String esclaUserId = subBean.sendMessageString(CRW04601SFConst.RET_USER_ID_03, X31CWebConst.DATABEAN_GET_VALUE);
		svBean.sendMessageString(CRW04601SFConst.ESCLA_SAKI_USER_ID, X31CWebConst.DATABEAN_SET_VALUE, esclaUserId);
		//   ユーザー
		String ssclaUserNm = subBean.sendMessageString(CRW04601SFConst.RET_USER_NM_03, X31CWebConst.DATABEAN_GET_VALUE);
		svBean.sendMessageString(CRW04601SFConst.ESCLA_SAKI_USER_NM, X31CWebConst.DATABEAN_SET_VALUE, ssclaUserNm);
		// エスカレーション先業務個別設定組織コード
		String esclaWkgrpCd = subBean.sendMessageString(CRW04601SFConst.RET_WKKBT_ORG_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
		svBean.sendMessageString(CRW04601SFConst.ESCLA_SAKI_WKSO_CD, X31CWebConst.DATABEAN_SET_VALUE, esclaWkgrpCd);
		// ワークグループ
		String esclaWkgrpNm = subBean.sendMessageString(CRW04601SFConst.RET_WKKBT_ORG_NM_03, X31CWebConst.DATABEAN_GET_VALUE);
		svBean.sendMessageString(CRW04601SFConst.ESCLA_SAKI_WKSO_NM, X31CWebConst.DATABEAN_SET_VALUE, esclaWkgrpNm);

		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		// 遷移先画面IDを共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_ID_CRW04602);

		// 遷移先画面名を共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_NAME_CRW04602);
		return true;
	}
	
	/**
	 * 選択ボタン押下
	 * <BR>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean choiceUser() throws Exception
	{
		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		//  (a)次画面への引継情報(dataMap)を作成する。
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		//出力モード
		dataMap.put(CRW04003SFConst.OUTPUT_MODE, OUTPUT_MODE_SINGLE);
		//  (b)画面情報設定部品(JCCWebCommon.setScreenInfo)を使用し、次画面への引継情報を設定する。
		JCCWebCommon.setScreenInfo(this, JCRScreenConst.SCREEN_ID_CRW04003, dataMap);
		JCCWebCommon.setScreenId(this, JCRScreenConst.SCREEN_ID_CRW04003, JCRScreenConst.SCREEN_ID_CRW04601);
		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		X31SDataBeanAccess cfBean = getCommonInfoBean();
		// 遷移先画面IDを共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_ID_CRW04003);

		// 遷移先画面名を共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_NAME_CRW04003);
		return true;
	}
	
	/**
	 * ユーザー選択画面クローズ処理
	 * <BR>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean closeCRW04003() throws Exception
	{
		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		//  (a) 画面情報設定部品(JCRWebCommon.getScreenInfo)を使用し、引継情報を取得する。
		HashMap<String, Object> dataMap = JCCWebCommon.getScreenInfo(this);
		ArrayList userList = (ArrayList) dataMap.get(CRW04003SFConst.RET_USER_LIST);
		HashMap<String, Object> filedMap = (HashMap<String, Object>) userList.get(0);
		X31SDataBeanAccess svBean = getServiceFormBean();
		//リストのクリア
		svBean.getDataBeanArray(CRW04601SFConst.RET_USER_LIST).clearArray();
		X31SDataBeanAccess subBean = svBean.getDataBeanArray(CRW04601SFConst.RET_USER_LIST).addDataBean();
		// ユーザーID
		subBean.sendMessageString(CRW04601SFConst.RET_USER_ID_03, X31CWebConst.DATABEAN_SET_VALUE, 
				(String)filedMap.get(CRW04003SFConst.RET_USER_ID_06));
		svBean.sendMessageString(CRW04601SFConst.ESCLA_SAKI_USER_ID, X31CWebConst.DATABEAN_SET_VALUE, 
				(String)filedMap.get(CRW04003SFConst.RET_USER_ID_06));
		// ユーザ名
		subBean.sendMessageString(CRW04601SFConst.RET_USER_NM_03, X31CWebConst.DATABEAN_SET_VALUE, 
				(String)filedMap.get(CRW04003SFConst.RET_USER_NM_06));
		svBean.sendMessageString(CRW04601SFConst.ESCLA_SAKI_USER_NM, X31CWebConst.DATABEAN_SET_VALUE, 
				(String)filedMap.get(CRW04003SFConst.RET_USER_NM_06));
		// ワークグループコード
		subBean.sendMessageString(CRW04601SFConst.RET_WKKBT_ORG_CD_03, X31CWebConst.DATABEAN_SET_VALUE, 
				(String)filedMap.get(CRW04003SFConst.RET_WKKBT_ORG_CD_06));
		// ワークグループ名
		subBean.sendMessageString(CRW04601SFConst.RET_WKKBT_ORG_NM_03, X31CWebConst.DATABEAN_SET_VALUE, 
				(String)filedMap.get(CRW04003SFConst.RET_WKKBT_ORG_NM_06));
		// 権限コード
		subBean.sendMessageString(CRW04601SFConst.RET_WKKBT_POSITION_CD_03, X31CWebConst.DATABEAN_SET_VALUE, 
				(String)filedMap.get(CRW04003SFConst.RET_WKKBT_POSITION_CD_06));
		// 権限名
		subBean.sendMessageString(CRW04601SFConst.RET_WKKBT_POSITION_NM_03, X31CWebConst.DATABEAN_SET_VALUE, 
				(String)filedMap.get(CRW04003SFConst.RET_WKKBT_POSITION_NM_06));
		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		X31SDataBeanAccess cfBean = getCommonInfoBean();
		// 遷移先画面IDを共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_ID_CRW04601);

		// 遷移先画面名を共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_NAME_CRW04601);
		return true;
	}
	
	/**
	 * 確定ボタン押下処理
	 * @return 
	 * @throws Exception
	 */
	public boolean fix() throws Exception
	{
		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		X31SDataBeanAccess svBean = getServiceFormBean();
		X31SDataBeanAccess cfBean = getCommonInfoBean();
		//(a) 下記項目を編集後、Byte配列に値を格納する。
		//  (ｱ) 設定内容(１行目)
		StringBuilder output = new StringBuilder();
		createCsvFileHeader(output, svBean);
		//  (ｲ) 下記項目を編集後、Byte配列に値を格納する。 （２行目以降）
		createCsvFileBody(output, svBean);
		//(b) サービスフォームBeanに値を設定する。
		svBean.sendMessageString(CRW04601SFConst.EFILE, X31CWebConst.DATABEAN_SET_VALUE, output.toString());
		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		X31SDataBeanAccess[] beans = {svBean};
		// ユースケースID格納用マップ
		HashMap<Object, String> paramMap = new HashMap<Object, String>();
		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SRV_ID_0218);
		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		// マッピングクラス
		CRSV0218_CRSV0218OPDBMapper mapper = new CRSV0218_CRSV0218OPDBMapper();
		// マッピング処理（上り）
		mapper.setCRSV021801SC(beans, dataMap, JPCModelConstant.FUNC_CD_1);
		//Byte配列セット
		HashMap<String, Object> attachMap = new HashMap<String, Object>();
		// ディレイド依頼処理用マッピング
		setByteArrayMapping(attachMap, svBean);
		// サービス実行(ディレイド処理依頼 Byte配列分のHashMap）
		invokeService(paramMap, dataMap, outputMap, attachMap);
		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		mapper.getCRSV021801SC(beans, outputMap);
		// ディレイド処理中メッセージ出力
		JCCWebCommon.setMessageAreaBackColor(this, "1");
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB7660__I);

		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// ディレイド開始フラグ ON
		svBean.sendMessageString(CRW04601SFConst.DLYD_STA_FLG, X31CWebConst.DATABEAN_SET_VALUE, DLYD_STA_FLG_ON);
		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		// 遷移先画面IDを共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_ID_CRW04602);

		// 遷移先画面名を共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_NAME_CRW04602);

		return true;
	}
	
	/**
	 * ディレイド処理依頼結果チェック
	 * <BR>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean fixKeepAlive() throws Exception
	{
		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		X31SDataBeanAccess svBean = getServiceFormBean();
		
		X31SDataBeanAccess[] beans = {svBean};
		// ユースケースID格納用マップ
		HashMap<Object, String> paramMap = new HashMap<Object, String>();
		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SRV_ID_0219);
		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		// マッピングクラス
		CRSV0219_CRSV0219OPDBMapper mapper = new CRSV0219_CRSV0219OPDBMapper();
		// マッピング処理（上り）
		mapper.setCRSV021901SC(beans, dataMap, JPCModelConstant.FUNC_CD_1);
		// サービス呼び出し
		invokeService(paramMap, dataMap, outputMap);
		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		mapper.getCRSV021901SC(beans, outputMap);
		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		X31SDataBeanAccess cfBean = getCommonInfoBean();
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_ID_CRW04602);
		// 遷移先画面名を共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_NAME_CRW04602);
		return true;
	}
	/**
	 * ディレイド処理依頼結果チェック
	 * <BR>
	 * @return boolean
	 */
	public boolean fixResultOk()
	{
		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		X31SDataBeanAccess svBean = getServiceFormBean();
		// (a) ディレイド処理の正常終了を示すメッセージ設定を共通部品/メッセージエリア設定処理
		//    （JCRWebCommon.setMessageInfo）を使用して行う。
		JCRWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4390__I, new String[] {ERR_MSG_ESCALA_IKKATSU});
		// (b) ディレイド開始フラグに空文字を設定し、Ajaxによるポーリング処理を停止する。
		svBean.sendMessageString(CRW04601SFConst.DLYD_STA_FLG, X31CWebConst.DATABEAN_SET_VALUE, DLYD_STA_FLG_OFF);
		
		//リフレッシュタイプ：クエリ一覧クリア
		HashMap<String, Object>refdataMap = new HashMap<String, Object>();
		refdataMap.put(JCRStrConst.KEY_REFRESH_TYPE, JCRStrConst.QUERY_LIST_REFRESH);
		//呼び出し元画面IDの取得
		String pScreenId = JCCWebCommon.getScreenId(this);
		//セッションへリフレッシュタイプをセット
		JCCWebCommon.setScreenInfo(this, pScreenId, refdataMap);
		
		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		X31SDataBeanAccess cfBean = getCommonInfoBean();
		// モーダル用反映画面へ画面遷移
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,X31CWebConst.DATABEAN_SET_VALUE, MODAL_REF_SCREEN_ID);
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,X31CWebConst.DATABEAN_SET_VALUE, MODAL_REF_SCREEN_NM);
		
		return true;
	}
	
	/**
	 * ディレイド処理依頼結果(エラー)
	 * <BR>
	 * @return boolean
	 */
	public boolean fixResultErr()
	{
		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		X31SDataBeanAccess svBean = getServiceFormBean();
		
		X31SDataBeanAccess[] beans = {svBean};
		// ユースケースID格納用マップ
		HashMap<Object, String> paramMap = new HashMap<Object, String>();
		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SRV_ID_0220);
		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		// マッピングクラス
		CRSV0220_CRSV0220OPDBMapper mapper = new CRSV0220_CRSV0220OPDBMapper();
		// マッピング処理（上り）
		mapper.setCRSV022001SC(beans, dataMap, JPCModelConstant.FUNC_CD_2);
		//ファイル受信用Map
		HashMap<String, Object> attachMap = new HashMap<String, Object>();
		// サービス呼び出し
		invokeService(paramMap, dataMap, outputMap, attachMap);
		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		String errMsg = getErrMsgFromByteArray(attachMap);
		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// (a) 取得したエラーファイルの内容を共通部品/メッセージエリア設定処理（JCRWebCommon.setMessageInfo）
		//     の置換文字列に設定する。
		dispErrMessage(errMsg);
		// (b) ディレイド開始フラグに空文字を設定し、Ajaxによるポーリング処理を停止する。
		svBean.sendMessageString(CRW04701SFConst.DLYD_STA_FLG, X31CWebConst.DATABEAN_SET_VALUE, DLYD_STA_FLG_OFF);
		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		X31SDataBeanAccess cfBean = getCommonInfoBean();
		
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_ID_CRW04602);
		// 遷移先画面名を共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_NAME_CRW04602);
		
		return true;
	}
	
	/**
	 * ディレイド処理依頼結果(システムエラー)
	 * @return boolean
	 */
	public boolean fixResultSysErr()
	{
		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// (a) 取得したエラーファイルの内容を共通部品/メッセージエリア設定処理（JCRWebCommon.setMessageInfo）
		//     の置換文字列に設定する。
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB7680_KW, new String[] {ERR_MSG_SYS_ERR});
		// (b) ディレイド開始フラグに空文字を設定し、Ajaxによるポーリング処理を停止する。
		X31SDataBeanAccess svBean = getServiceFormBean();
		svBean.sendMessageString(CRW04601SFConst.DLYD_STA_FLG, X31CWebConst.DATABEAN_SET_VALUE, DLYD_STA_FLG_OFF);
		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		X31SDataBeanAccess cfBean = getCommonInfoBean();
		
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_ID_CRW04602);
		// 遷移先画面名を共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_NAME_CRW04602);
		return true;
	}
	
	/**
	 * キャンセルボタン押下
	 * @return boolean
	 */
	public boolean cancel()
	{
		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// なし。
		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// ディレイド開始フラグに空文字を設定し、Ajaxによるポーリング処理を停止する。
		X31SDataBeanAccess svBean = getServiceFormBean();
		svBean.sendMessageString(CRW04601SFConst.DLYD_STA_FLG, X31CWebConst.DATABEAN_SET_VALUE, DLYD_STA_FLG_OFF);

		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		X31SDataBeanAccess cfBean = getCommonInfoBean();
		
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_ID_CRW04601);
		// 遷移先画面名を共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_NAME_CRW04601);
		return true;
	}
	
	/**
	 * ログインユーザの権限によりボタンの活性・非活性をコントロールする項目を設定する。
	 * <BR>
	 * @param svBean サービスフォームBean
	 */
	private void setBtnCtrlInfo(X31SDataBeanAccess svBean)
	{
		for(int iCnt = 0; iCnt < BTN_ID_FOR_CTRL_ON_OFF.length ; iCnt++)
		{
			//権限プロパティ Key名を指定して、該当するボタンの表示権限を取得
			boolean kengenFlg = JCRWebCommon.checkAuthority(this, BTN_ID_FOR_CTRL_ON_OFF[iCnt][INDEX_PRP_BTN_ON_OFF]);
			//ボタンの表示・非表示をコントロールするサービスフォームBeanの項目にセット
			svBean.sendMessageBoolean(BTN_ID_FOR_CTRL_ON_OFF[iCnt][INDEX_SB_BTN_ON_OFF], X31CWebConst.DATABEAN_SET_VALUE, kengenFlg);
		}
	}
	
	/**
	 * 画面間引継ぎ情報で渡されたクエリ実行問合せ一覧照会明細をサービスフォームBeanへセットする
	 * <BR>
	 * @param svBean サービスフォームBean
	 * @param queryList クエリ実行問合せ一覧照会明細
	 */
	private void setToiawaseListBf(X31SDataBeanAccess svBean, ArrayList<Object> queryList)
	{
		X31SDataBeanAccessArray toiawaseListBf = svBean.getDataBeanArray(CRW04601SFConst.TOIAWASE_LIST_BF);
		for(int iCnt = 0; iCnt < queryList.size(); iCnt++)
		{
			//引継ぎ情報 1レコード分
			HashMap<String, String> fieldMap = (HashMap<String, String>)queryList.get(iCnt);
//			X31SDataBeanAccess subBean = toiawaseListBf.getDataBean(iCnt);
			X31SDataBeanAccess subBean = toiawaseListBf.addDataBean();
			// (@) 行スタイルを取得する。
			subBean.sendMessageString(CRW04601SFConst.L3_LINE_STYLE_CLASS_04, X31CWebConst.DATABEAN_SET_VALUE,
																	eo.web.webview.common.JCRWebCommon.getLineStyle(iCnt + 1));
			// (A) 問合せリスト(選択前)を設定する。
			//明細インデックス
			subBean.sendMessageString(CRW04601SFConst.L3_LINE_NO_04, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(iCnt + 1));
			//問合せＩＤ
			subBean.sendMessageString(CRW04601SFConst.L3_TAIO_KIROK_NO_04, X31CWebConst.DATABEAN_SET_VALUE, 
															(String)fieldMap.get(JCRStrConst.KEY_QUERY_LIST_TAIO_KIROK_NO));
			//対応開始年月日
			subBean.sendMessageString(CRW04601SFConst.L3_TAIO_STA_DTM_04, X31CWebConst.DATABEAN_SET_VALUE, 
															(String)fieldMap.get(JCRStrConst.KEY_QUERY_LIST_TAIO_STA_DTM));
			//タイトル
			subBean.sendMessageString(CRW04601SFConst.L3_TITLE_04, X31CWebConst.DATABEAN_SET_VALUE, 
															(String)fieldMap.get(JCRStrConst.KEY_QUERY_LIST_TITLE));
			//サービス名称
			subBean.sendMessageString(CRW04601SFConst.L3_SVC_KEI_NO_NM_04, X31CWebConst.DATABEAN_SET_VALUE, 
															(String)fieldMap.get(JCRStrConst.KEY_QUERY_LIST_SVC_KEI_NO_NM));
			//問合せ状態コード
			subBean.sendMessageString(CRW04601SFConst.L3_TOIAWASE_STAT_CD_04, X31CWebConst.DATABEAN_SET_VALUE, 
															JCRWebCommon.getItemStyle(fieldMap, JCRStrConst.KEY_QUERY_LIST_TOIAWASE_STAT_CD));
			//問合せ状態
			subBean.sendMessageString(CRW04601SFConst.L3_TOIAWASE_STAT_CD_NM_04, X31CWebConst.DATABEAN_SET_VALUE, 
															(String)fieldMap.get(JCRStrConst.KEY_QUERY_LIST_TOIAWASE_STAT_CD_NM));
			//eoID
			subBean.sendMessageString(CRW04601SFConst.L3_EOID_04, X31CWebConst.DATABEAN_SET_VALUE, 
															(String)fieldMap.get(JCRStrConst.KEY_QUERY_LIST_EOID));
			//サービス契約番号
			subBean.sendMessageString(CRW04601SFConst.L3_SVC_KEI_NO_04, X31CWebConst.DATABEAN_SET_VALUE, 
															(String)fieldMap.get(JCRStrConst.KEY_QUERY_LIST_SVC_KEI_NO));
			//添付有無
			subBean.sendMessageString(CRW04601SFConst.L3_TEMP_UM_04, X31CWebConst.DATABEAN_SET_VALUE, 
															(String)fieldMap.get(JCRStrConst.KEY_QUERY_LIST_TMP_UM));
			//一時保存有無
			String tmpSaveUm = (String)fieldMap.get(JCRStrConst.KEY_QUERY_LIST_TMP_SAVE_UM);
			subBean.sendMessageString(CRW04601SFConst.L3_TMP_SAVE_UM_04, X31CWebConst.DATABEAN_SET_VALUE, tmpSaveUm);
			
			//更新前更新年月日時分秒
			subBean.sendMessageString(CRW04601SFConst.L3_UPD_DTM_BF_04, X31CWebConst.DATABEAN_SET_VALUE, 
															(String)fieldMap.get(JCRStrConst.KEY_QUERY_LIST_UPD_DTM));
			//実行使用可否
			if(TMP_SAVE_ARI.equals(tmpSaveUm))
			{
				subBean.sendMessageString(CRW04601SFConst.L3_RUN_DISABLED_04, X31CWebConst.DATABEAN_SET_VALUE, BTN_CTRL_DISABLED);
			}
			else
			{
				subBean.sendMessageString(CRW04601SFConst.L3_RUN_DISABLED_04, X31CWebConst.DATABEAN_SET_VALUE, BTN_CTRL_ENABLED);
			}
			
			// ANK-4150-00-00 ADD START
			//コールバック希望日時
			subBean.sendMessageString(CRW04601SFConst.L3_CALLBK_KIBO_DAY_04, X31CWebConst.DATABEAN_SET_VALUE, 
															(String)fieldMap.get(JCRStrConst.KEY_QUERY_LIST_CALLBK_KIBO_DAY));
			// ANK-4150-00-00 ADD END
		}
	}
	
	/**
	 * サービスフォームBeanクリア処理.<br>
	 * サービスフォームBeanのクリアを行う。
	 * 
	 * @param bean サービスフォームBean
	 */
	private void clearBean(X31SDataBeanAccess bean)
	{

		// (1) 項目名のリストを取得する。
		String[] itemNameList = bean.getItemNameList();
		
		// (2) 値のクリアを行う。
		for (int i = 0; i < itemNameList.length; i++)
		{
			// (a) 引継項目の場合、値の保持を行う。
			if (isHktgItem(itemNameList[i]))
			{
				continue;
			}
			// (b) Boolean型の場合、初期値の設定を行う。
			else if (isBooleanItem(itemNameList[i]))
			{
				bean.sendMessageBoolean(itemNameList[i], X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
			}
			// (c) Array項目の場合、リストのクリアを行う。
			else if (isArrayItem(itemNameList[i]))
			{
				bean.getDataBeanArray(itemNameList[i]).clearArray();
			}
			// (d) 上記以外の場合、値のクリアを行う。
			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);
	}
	
	/**
	 * 問合せリスト（選択前）で実行チェックボックスがONのデータのみ問合せリスト（選択後）へセット
	 * します。
	 * <BR>
	 * @param svBean サービスフォームBean
	 */
	private void editToiawaseList(X31SDataBeanAccess svBean)
	{
		//(1) 問合せリスト編集処理(editToiawaseList)
		//    問合せリスト（選択前）
		//問合せリスト（選択前）
		X31SDataBeanAccessArray toiawaseListBf = svBean.getDataBeanArray(CRW04601SFConst.TOIAWASE_LIST_BF);
		//実行チェックボックスがONの件数
		int iSelectedCnt = 0;
		//問合せリスト（選択後）
		X31SDataBeanAccessArray toiawaseListAf = svBean.getDataBeanArray(CRW04601SFConst.TOIAWASE_LIST_AF);
		//問合せリスト（選択後）クリア
		toiawaseListAf.clearArray();
		for(int iCnt = 0;iCnt < toiawaseListBf.getCount();iCnt++)
		{
			//問合せリスト（選択前）
			X31SDataBeanAccess subBeanBf = toiawaseListBf.getDataBean(iCnt);
			//問合せリスト（選択後）
			X31SDataBeanAccess subBeanAf = null;
			//  (a) サービスフォームBean.問合せリスト(選択前).実行がtrue(チェック有)場合、下記処理を行う。
			//      サービスフォームBean.総件数(選択前)分処理を繰り返す。
			boolean execFlg =subBeanBf.sendMessageBoolean(CRW04601SFConst.L3_RUN_04, X31CWebConst.DATABEAN_GET_VALUE); 
			if(execFlg)
			{
				iSelectedCnt++;
				//   (ｱ) 行スタイルを取得する。
				String lineStyle = JCRWebCommon.getLineStyle(iSelectedCnt);
				//   (ｲ) 問合せリスト(選択後)のサービスフォームBeanを設定する。
				subBeanAf = toiawaseListAf.addDataBean();
				
				//明細インデックス
				subBeanAf.sendMessageString(CRW04601SFConst.L4_LINE_NO_05, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(iSelectedCnt));
				//問合せＩＤ
				subBeanAf.sendMessageString(CRW04601SFConst.L4_TAIO_KIROK_NO_05, X31CWebConst.DATABEAN_SET_VALUE, 
										subBeanBf.sendMessageString(CRW04601SFConst.L3_TAIO_KIROK_NO_04, X31CWebConst.DATABEAN_GET_VALUE));
				//対応開始年月日
				subBeanAf.sendMessageString(CRW04601SFConst.L4_TAIO_STA_DTM_05, X31CWebConst.DATABEAN_SET_VALUE, 
						subBeanBf.sendMessageString(CRW04601SFConst.L3_TAIO_STA_DTM_04, X31CWebConst.DATABEAN_GET_VALUE));
				//タイトル
				subBeanAf.sendMessageString(CRW04601SFConst.L4_TITLE_05, X31CWebConst.DATABEAN_SET_VALUE, 
						subBeanBf.sendMessageString(CRW04601SFConst.L3_TITLE_04, X31CWebConst.DATABEAN_GET_VALUE));
				//サービス名称
				subBeanAf.sendMessageString(CRW04601SFConst.L4_SVC_KEI_NO_NM_05, X31CWebConst.DATABEAN_SET_VALUE, 
						subBeanBf.sendMessageString(CRW04601SFConst.L3_SVC_KEI_NO_NM_04, X31CWebConst.DATABEAN_GET_VALUE));
				//問合せ状態コード
				subBeanAf.sendMessageString(CRW04601SFConst.L4_TOIAWASE_STAT_CD_05, X31CWebConst.DATABEAN_SET_VALUE, 
						subBeanBf.sendMessageString(CRW04601SFConst.L3_TOIAWASE_STAT_CD_04, X31CWebConst.DATABEAN_GET_VALUE));
				//問合せ状態
				subBeanAf.sendMessageString(CRW04601SFConst.L4_TOIAWASE_STAT_CD_NM_05, X31CWebConst.DATABEAN_SET_VALUE, 
						subBeanBf.sendMessageString(CRW04601SFConst.L3_TOIAWASE_STAT_CD_NM_04, X31CWebConst.DATABEAN_GET_VALUE));
				//eoID
				subBeanAf.sendMessageString(CRW04601SFConst.L4_EOID_05, X31CWebConst.DATABEAN_SET_VALUE, 
						subBeanBf.sendMessageString(CRW04601SFConst.L3_EOID_04, X31CWebConst.DATABEAN_GET_VALUE));
				//サービス契約番号
				subBeanAf.sendMessageString(CRW04601SFConst.L4_SVC_KEI_NO_05, X31CWebConst.DATABEAN_SET_VALUE, 
						subBeanBf.sendMessageString(CRW04601SFConst.L3_SVC_KEI_NO_04, X31CWebConst.DATABEAN_GET_VALUE));
				//添付有無
				subBeanAf.sendMessageString(CRW04601SFConst.L4_TEMP_UM_05, X31CWebConst.DATABEAN_SET_VALUE, 
						subBeanBf.sendMessageString(CRW04601SFConst.L3_TEMP_UM_04, X31CWebConst.DATABEAN_GET_VALUE));
				//更新前更新年月日時分秒
				subBeanAf.sendMessageString(CRW04601SFConst.L4_UPD_DTM_BF_05, X31CWebConst.DATABEAN_SET_VALUE, 
						subBeanBf.sendMessageString(CRW04601SFConst.L3_UPD_DTM_BF_04, X31CWebConst.DATABEAN_GET_VALUE));
				//行スタイルクラス
				subBeanAf.sendMessageString(CRW04601SFConst.L4_LINE_STYLE_CLASS_05, X31CWebConst.DATABEAN_SET_VALUE, lineStyle);
				
			    // ANK-4150-00-00 ADD START
				//コールバック希望日時
				subBeanAf.sendMessageString(CRW04601SFConst.L4_CALLBK_KIBO_DAY_05, X31CWebConst.DATABEAN_SET_VALUE, 
						subBeanBf.sendMessageString(CRW04601SFConst.L3_CALLBK_KIBO_DAY_04, X31CWebConst.DATABEAN_GET_VALUE));
			    // ANK-4150-00-00 ADD END
			}
		}
		//    (b) (a)以外のサービスフォームBeanを設定する。
		//       総件数(選択後)
		svBean.sendMessageString(CRW04601SFConst.TOTAL_CNT_AF, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(iSelectedCnt));
	}
	
	/**
	 * ディレイド依頼処理用のByte配列のマッピングを行います。
	 * <BR>
	 * @param attachMap バイト配列用マッピング HashMap
	 * @param svBean サービスフォームBean
	 * @throws UnsupportedEncodingException 
	 */
	private void setByteArrayMapping(HashMap<String, Object> attachMap, X31SDataBeanAccess svBean) throws UnsupportedEncodingException
	{
		//バイト配列へ変換 
		String eFile = svBean.sendMessageString(CRW04601SFConst.EFILE, X31CWebConst.DATABEAN_GET_VALUE);
		byte[] binaryFile = eFile.getBytes(JCRStrConst.MOJI_CD_MS932);
		
		HashMap<String, Object> fileMap = new HashMap<String, Object>();
		ArrayList<HashMap<String, Object>> fileList = new ArrayList<HashMap<String, Object>>();
		
		fileMap.put(X31CWebConst.TELEGRAM_INFO_ATTACH_IDENTIFUCD, DLYD_SIF_ID);
		fileMap.put(X31CWebConst.TELEGRAM_INFO_ATTACH_LIST_NAMAE, FILE_UPLOAD_LIST_NAME);
		fileMap.put(X31CWebConst.TELEGRAM_INFO_ATTACH_ITEM_NAMAE, FILE_UPLOAD_ITEM_NAME);
		fileMap.put(X31CWebConst.TELEGRAM_INFO_ATTACH_INDEX, FILE_UPLOAD_INDEX);
		fileMap.put(X31CWebConst.TELEGRAM_INFO_ATTACH_FILE, binaryFile);
		//リストへ追加
		fileList.add(fileMap);
		attachMap.put(X31CWebConst.TELEGRAM_INFO_ATTACH_FILE_LIST, fileList);

	}

	/**
	 * バイト配列出力用 CSVファイルイメージ 1行目の作成を行います。
	 * <BR>
	 * @param sb CSVファイルイメージ格納用
	 * @param svBean サービスフォームBean
	 */
	private void createCsvFileHeader(StringBuilder sb, X31SDataBeanAccess svBean)
	{
		//(ｱ) 設定内容(１行目)
		//    1列目		サービスフォームBean.エスカレーション実行ボタン
		String escalaBtn = svBean.sendMessageString(CRW04601SFConst.ESCLA_RUN_BTN, X31CWebConst.DATABEAN_GET_VALUE);
		sb.append(DOUBLE_QUOTATION).append(escalaBtn).append(DOUBLE_QUOTATION).append(JCRStrConst.STR_HALF_COMMA);
		String item2 = null;
		String item3 = null;
		String item4 = null;
		String item5 = null;
		if(ESCLA_QUE_EXEC.equals(escalaBtn))
		{
			//    2列目 サービスフォームBean.エスカレーション実行ボタンが"1"(キューBOX)の場合、
			//          サービスフォームBean.エスカレーション先キューBOX番号
			item2 = svBean.sendMessageString(CRW04601SFConst.ESCLA_SAKI_QUE_BOX_NO, X31CWebConst.DATABEAN_GET_VALUE);
			//    3列目 サービスフォームBean.エスカレーション実行ボタンが"1"(キューBOX)の場合、
			//	        サービスフォームBean.キュー名
			item3 = svBean.sendMessageString(CRW04601SFConst.ESCLA_SAKI_QUE_BOX_NM, X31CWebConst.DATABEAN_GET_VALUE);
			//    4列目 サービスフォームBean.エスカレーション実行ボタンが"1"(キューBOX)の場合、	
			//          サービスフォームBean.エスカレーション先業務個別設定組織コード
			item4 = svBean.sendMessageString(CRW04601SFConst.ESCLA_SAKI_WKSO_CD, X31CWebConst.DATABEAN_GET_VALUE);
			//    5列目 サービスフォームBean.エスカレーション実行ボタンが"1"(キューBOX)の場合、	
			//          サービスフォームBean.ワークグループ
			item5 = svBean.sendMessageString(CRW04601SFConst.ESCLA_SAKI_WKSO_NM, X31CWebConst.DATABEAN_GET_VALUE);
		}
		else
		{
			//    2列目 サービスフォームBean.エスカレーション実行ボタンが"2"(ユーザー)の場合、	
			//          サービスフォームBean.エスカレーション先ユーザーID
			item2 = svBean.sendMessageString(CRW04601SFConst.ESCLA_SAKI_USER_ID, X31CWebConst.DATABEAN_GET_VALUE);
			//    3列目 サービスフォームBean.エスカレーション実行ボタンが"2"(ユーザー)の場合、
			//	        サービスフォームBean.ユーザー
			item3 = svBean.sendMessageString(CRW04601SFConst.ESCLA_SAKI_USER_NM, X31CWebConst.DATABEAN_GET_VALUE);
			//    4列目 サービスフォームBean.エスカレーション実行ボタンが"2"(ユーザー)の場合、	
			//          サービスフォームBean.ユーザーリスト.ワークグループコード (選択されたワークグループコード)
			item4 = svBean.sendMessageString(CRW04601SFConst.ESCLA_SAKI_WKSO_CD, X31CWebConst.DATABEAN_GET_VALUE);
			//    5列目 サービスフォームBean.エスカレーション実行ボタンが"2"(ユーザー)の場合、	
			//          サービスフォームBean.ユーザーリスト.ワークグループ名 (選択されたワークグループ名)
			item5 = svBean.sendMessageString(CRW04601SFConst.ESCLA_SAKI_WKSO_NM, X31CWebConst.DATABEAN_GET_VALUE);
		}
		// 2列目〜5列目 CSV項目作成
		sb.append(DOUBLE_QUOTATION).append(item2).append(DOUBLE_QUOTATION).append(JCRStrConst.STR_HALF_COMMA);
		sb.append(DOUBLE_QUOTATION).append(item3).append(DOUBLE_QUOTATION).append(JCRStrConst.STR_HALF_COMMA);
		sb.append(DOUBLE_QUOTATION).append(item4).append(DOUBLE_QUOTATION).append(JCRStrConst.STR_HALF_COMMA);
		sb.append(DOUBLE_QUOTATION).append(item5).append(DOUBLE_QUOTATION).append(JCRStrConst.STR_HALF_COMMA);
		
		//    6		サービスフォームBean.ログインユーザーＩＤ
		String loginUserId = svBean.sendMessageString(CRW04601SFConst.LOGIN_USER_ID, X31CWebConst.DATABEAN_GET_VALUE);
		sb.append(DOUBLE_QUOTATION).append(loginUserId).append(DOUBLE_QUOTATION).append(JCRStrConst.STR_HALF_COMMA);
		//    7		サービスフォームBean.ログインユーザー名
		String loginUserNm = svBean.sendMessageString(CRW04601SFConst.LOGIN_USER_NM, X31CWebConst.DATABEAN_GET_VALUE);
		sb.append(DOUBLE_QUOTATION).append(loginUserNm).append(DOUBLE_QUOTATION).append(JCRStrConst.STR_HALF_COMMA);
		//    8		サービスフォームBean.業務個別設定組織コード
		String wkGrpCd = svBean.sendMessageString(CRW04601SFConst.WKKBT_ORG_CD, X31CWebConst.DATABEAN_GET_VALUE);
		sb.append(DOUBLE_QUOTATION).append(wkGrpCd).append(DOUBLE_QUOTATION).append(JCRStrConst.STR_HALF_COMMA);
		//    9		サービスフォームBean.業務個別設定組織名
		String wkGrpNm = svBean.sendMessageString(CRW04601SFConst.WKKBT_ORG_NM, X31CWebConst.DATABEAN_GET_VALUE);
		sb.append(DOUBLE_QUOTATION).append(wkGrpNm).append(DOUBLE_QUOTATION);
		
		//改行コード
		sb.append(JCRStrConst.KAIGYO_CD);
	}
	
	/**
	 * バイト配列出力用 CSVファイルイメージ 2行目以降の作成を行います。
	 * <BR>
	 * @param sb  CSVファイルイメージ格納用
	 * @param svBean サービスフォームBean
	 */
	private void createCsvFileBody(StringBuilder sb, X31SDataBeanAccess svBean)
	{
		X31SDataBeanAccessArray toiawaseList = svBean.getDataBeanArray(CRW04601SFConst.TOIAWASE_LIST_AF);
		
		for(int iCnt = 0; iCnt < toiawaseList.getCount(); iCnt++)
		{
			X31SDataBeanAccess subBean = toiawaseList.getDataBean(iCnt);
			//サービスフォームBean.問合せリスト(選択後).対応記録番号
			sb.append(DOUBLE_QUOTATION).append(subBean.sendMessageString(CRW04601SFConst.L4_TAIO_KIROK_NO_05, X31CWebConst.DATABEAN_GET_VALUE)) 
									.append(DOUBLE_QUOTATION).append(JCRStrConst.STR_HALF_COMMA);
			//サービスフォームBean.問合せリスト(選択後).更新前更新年月日時分秒
			sb.append(DOUBLE_QUOTATION).append(subBean.sendMessageString(CRW04601SFConst.L4_UPD_DTM_BF_05, X31CWebConst.DATABEAN_GET_VALUE))
					.append(DOUBLE_QUOTATION).append(JCRStrConst.KAIGYO_CD);
		}
	}
	
	/**
	 * 電子ファイル一意照会で取得したマップから、Byte配列を取得し、Stringへ変換後
	 * それを返却します。
	 * <BR>
	 * @param attachMap Byte配列（電子ファイル）がセットされているHashMap
	 * @return String
	 */
	private String getErrMsgFromByteArray(HashMap<String, Object> attachMap)
	{
		//Mapからリストを取得
		ArrayList list = (ArrayList)attachMap.get(X31CWebConst.TELEGRAM_INFO_ATTACH_FILE_LIST);
		//一意照会なので、必ず1件となる。
		HashMap map = (HashMap)list.get(0);
		//エラー電子ファイル Byte配列
		byte[] binaryFile = (byte[])map.get(X31CWebConst.TELEGRAM_INFO_ATTACH_FILE);
		//Byte配列をStringへ変換
		String errMsg = "";
		try {
			errMsg = new String(binaryFile, JCRStrConst.MOJI_CD_MS932);
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		
		return errMsg;
	}
	
	/**
	 * エラーメッセージ出力処理.<br>
	 * ディレイド処理依頼で発生したエラー内容を出力。
	 * 
	 * @param errMsg エラーファイル文字列
	 */
	private void dispErrMessage(String errMsg)
	{

		String[] dispMsg = errMsg.split(JCRStrConst.KAIGYO_CD);
		for(int i = 0; i < dispMsg.length; i++)
		{
			// ディレイド処理エラーメッセージ出力
			// CASEファイルチェックエラー(%1%)
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB7680_KW, new String[] {dispMsg[i]});

		}
	}

}
