/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：CRSV0130_CRSV0130OPDBMapper
*	ソースファイル名：CRSV0130_CRSV0130OPDBMapper.java
*	作成者			：FJ
*	日付			：2011年09月14日
*＜機能概要＞
*	BP（メール返信(登録)）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/09/14	FJ			新規作成
*	v5.00.00	2013/06/27	FJ)伊藤		ANK-1555-00-00_コールバック履歴化対応について
*	v6.00.00	2013/10/22	FJ)江森		ANK-1637-00-00 対応記録‐ワークグループの取得について
*
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.HashMap;

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.util.JCRUtilCommon;
import eo.web.webview.CRW00701SF.CRW00701SFConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class CRSV0130_CRSV0130OPDBMapper {
	
	/**
	 * コンストラクタ
	 */
	public CRSV0130_CRSV0130OPDBMapper(){
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：メール返信　[1]：共有フォームＢｅａｎ
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setJUDGENGWORDCC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 2){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 基準日 → NGワード判定マップ.ＫＥＹ＿基準年月日
		parentMap.put("key_stdardymd", bean[0].sendMessageString("基準日", X31CWebConst.DATABEAN_GET_VALUE));

		// 退避用クローズ不可コード → 問合せNGワード判定マップ.更新前クローズ不可コード
		parentMap.put("close_fail_cd_bf", bean[0].sendMessageString("退避用クローズ不可コード", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("JUDGENGWORDCC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：メール返信　[1]：共有フォームＢｅａｎ
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setUPDTAIOKRKCC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 2){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 問合せＩＤ → 対応記録内容変更マップ.対応記録番号
		parentMap.put("taio_kirok_no", bean[0].sendMessageString("問合せＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// 部品呼び出し → 対応記録内容変更マップ.問合せ受付種別コード
		parentMap.put("toiawase_uk_sbt_cd", eo.web.webview.common.JCRWebCommon.getPullDownCode(bean[0], "問合せ受付種別", "問合せ受付種別コードインデックス", "問合せ受付種別コードリスト"));
		// サービス契約番号 → 対応記録内容変更マップ.サービス契約番号
		parentMap.put("svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 問合せ状態コード → 対応記録内容変更マップ.問合せ状態コード
		parentMap.put("toiawase_stat_cd", bean[0].sendMessageString("問合せ状態コード", X31CWebConst.DATABEAN_GET_VALUE));
		// 簡易メモ → 対応記録内容変更マップ.簡易メモ
		parentMap.put("easy_memo", bean[0].sendMessageString("簡易メモ", X31CWebConst.DATABEAN_GET_VALUE));
		// タイトル → 対応記録内容変更マップ.タイトル
		parentMap.put("title", bean[0].sendMessageString("タイトル", X31CWebConst.DATABEAN_GET_VALUE));
		// 返信画面ボタン押下判定フラグ → 対応記録内容変更マップ.一時保存有無
		parentMap.put("tmp_save_um", bean[0].sendMessageString("返信画面ボタン押下判定フラグ", X31CWebConst.DATABEAN_GET_VALUE));
		// コールバック希望年月日 → 対応記録内容変更マップ.コールバック希望年月日
		parentMap.put("callbk_kibo_ymd", bean[0].sendMessageString("コールバック希望年月日", X31CWebConst.DATABEAN_GET_VALUE));
		// コールバック希望時間 → 対応記録内容変更マップ.コールバック希望時間
		parentMap.put("callbk_kibo_time", bean[0].sendMessageString("コールバック希望時間", X31CWebConst.DATABEAN_GET_VALUE));
		// 部品呼び出し → 対応記録内容変更マップ.コールバック時間指定タイプコード
		parentMap.put("callbk_shitei_type_cd", eo.web.webview.common.JCRWebCommon.getPullDownCode(bean[0], "コールバック時間指定タイプ", "コールバック時間指定タイプコードインデックス", "コールバック時間指定タイプコードリスト"));
		// 更新前年月日時分秒 → 対応記録内容変更マップ.更新前年月日時分秒
		parentMap.put("upd_dtm_bf", bean[0].sendMessageString("更新前年月日時分秒", X31CWebConst.DATABEAN_GET_VALUE));
		// ユーザーＩＤ → 対応記録内容変更マップ.ログインユーザーＩＤ
		parentMap.put("login_user_id", bean[1].sendMessageString("ユーザーＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// ユーザー名 → 対応記録内容変更マップ.ログインユーザー名
		parentMap.put("login_user_nm", bean[1].sendMessageString("ユーザー名", X31CWebConst.DATABEAN_GET_VALUE));
		// 部品呼び出し → 対応記録内容変更マップ.業務個別設定組織コード
		parentMap.put("wkkbt_org_cd", eo.web.webview.common.JCRWebCommon.getWkkbtOrgCd(bean[1]));
		// 部品呼び出し → 対応記録内容変更マップ.業務個別設定組織名
		parentMap.put("wkkbt_org_nm", eo.web.webview.common.JCRWebCommon.getWkkbtOrgNm(bean[1]));

//*************************** 自動生成ソース修正  START ***************************//
		// 定数("1"：出力あり） → 対応記録内容変更マップ.履歴出力フラグ
		parentMap.put("rireki_output_flg", JCRStrConst.RIREKI_OUTPUT_FLG_ARI);
//*************************** 自動生成ソース修正  END   ***************************//

		outputMap.put("UPDTAIOKRKCC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：メール返信　[1]：共有フォームＢｅａｎ
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setADDTAIOKRKDTLHNSINMAILCC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 2){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 問合せＩＤ → 対応記録明細登録（メール返信）マップ.対応記録番号
		parentMap.put("taio_kirok_no", bean[0].sendMessageString("問合せＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// 部品呼び出し → 対応記録明細登録（メール返信）マップ.アクション開始年月日時分秒
		parentMap.put("action_sta_dtm", eo.web.webview.common.JCRWebCommon.getSysDateTime());
		// 部品呼び出し → 対応記録明細登録（メール返信）マップ.アクション完了年月日時分秒
		parentMap.put("action_fin_dtm", eo.web.webview.common.JCRWebCommon.getSysDateTime());
		// ユーザーＩＤ → 対応記録明細登録（メール返信）マップ.対応ユーザーID
		parentMap.put("taio_user_id", bean[1].sendMessageString("ユーザーＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// 問合せ文 → 対応記録明細登録（メール返信）マップ.問合せ内容
		parentMap.put("toiawase_naiyo", bean[0].sendMessageString("問合せ文", X31CWebConst.DATABEAN_GET_VALUE));
		// 返信画面ボタン押下判定フラグ → 対応記録明細登録（メール返信）マップ.編集状態フラグ
		parentMap.put("henshu_stat_flg", bean[0].sendMessageString("返信画面ボタン押下判定フラグ", X31CWebConst.DATABEAN_GET_VALUE));
		// メール受信番号 → 対応記録明細登録（メール返信）マップ.メール受信番号
		parentMap.put("mail_rcv_no", bean[0].sendMessageString("メール受信番号", X31CWebConst.DATABEAN_GET_VALUE));
		// メール件名（更新用） → 対応記録明細登録（メール返信）マップ.メールタイトル
		parentMap.put("mail_title", bean[0].sendMessageString("メール件名（更新用）", X31CWebConst.DATABEAN_GET_VALUE));
		// メール受信本文 → 対応記録明細登録（メール返信）マップ.メール受信本文
		parentMap.put("ml_rcv_text", bean[0].sendMessageString("メール受信本文", X31CWebConst.DATABEAN_GET_VALUE));

		// ▼▼▼ ADD START
		// メールヘッダー → 対応記録明細登録（メール返信）マップ.メールヘッダー
		parentMap.put("mail_header", JCRStrConst.TAIOKIRK_NO_HDR_NM + ":" + bean[0].sendMessageString("問合せＩＤ", X31CWebConst.DATABEAN_GET_VALUE));

		// 署名テンプレート
		X31SDataBeanAccessArray signTemplaTypeArray = bean[0].getDataBeanArray(CRW00701SFConst.SIGN_TEMPLA_TYPE);
		X31SDataBeanAccess signTemplaTypeBean = signTemplaTypeArray.getDataBean(0);

		// 署名テンプレートフッター → 対応記録明細登録（メール返信）マップ.メールフッター
		parentMap.put("mail_footer", signTemplaTypeBean.sendMessageString(CRW00701SFConst.L9_SEL_SIGN_TEMPLA_FOOTER_10, X31CWebConst.DATABEAN_GET_VALUE));

		// 署名テンプレート本文 → 対応記録明細登録（メール返信）マップ.メール本文
		parentMap.put("mail_text", signTemplaTypeBean.sendMessageString(CRW00701SFConst.L9_SEL_SIGN_TEMPLA_TEXT_10, X31CWebConst.DATABEAN_GET_VALUE));
		// ▲▲▲ ADD END

		// Ｔｏメールアドレス（確認） → 対応記録明細登録（メール返信）マップ.送信先メールアドレス
		parentMap.put("sends_mlad", bean[0].sendMessageString("Ｔｏメールアドレス（確認）", X31CWebConst.DATABEAN_GET_VALUE));

		// ▼▼▼ ADD START
		// Ｆｒｏｍメルアド
		X31SDataBeanAccessArray fromMladArray = bean[0].getDataBeanArray(CRW00701SFConst.FROM_MLAD);
		X31SDataBeanAccess fromMladBean = fromMladArray.getDataBean(0);

		// Ｆｒｏｍメールアドレス
		parentMap.put("sendm_mlad", fromMladBean.sendMessageString(CRW00701SFConst.L8_SEL_FROM_MLAD_09, X31CWebConst.DATABEAN_GET_VALUE));
		// ▲▲▲ ADD END

		// Ｃｃメールアドレス → 対応記録明細登録（メール返信）マップ.CCメールアドレス
		parentMap.put("cc_mlad", bean[0].sendMessageString("Ｃｃメールアドレス", X31CWebConst.DATABEAN_GET_VALUE));
		// 送信状態コード → 対応記録明細登録（メール返信）マップ.送信状態コード
		parentMap.put("send_stat_cd", bean[0].sendMessageString("送信状態コード", X31CWebConst.DATABEAN_GET_VALUE));

		// ▼▼▼ ADD START
		// メール件名修飾用文字列
		X31SDataBeanAccessArray hnsinSymbolArray = bean[0].getDataBeanArray(CRW00701SFConst.HNSIN_SYMBOL);
		X31SDataBeanAccess hnsinSymbolBean = hnsinSymbolArray.getDataBean(0);

		// メール件名修飾用文字列コード
		parentMap.put("hnsin_tenso_symbol_cd", hnsinSymbolBean.sendMessageString(CRW00701SFConst.L7_SEL_HNSIN_SYMBOL_CD_08, X31CWebConst.DATABEAN_GET_VALUE));
		// ▲▲▲ ADD END
		
		// 部品呼び出し → 対応記録明細登録（メール返信）マップ.業務個別設定組織コード
		parentMap.put("wkkbt_org_cd", eo.web.webview.common.JCRWebCommon.getWkkbtOrgCd(bean[1]));

		outputMap.put("ADDTAIOKRKDTLHNSINMAILCC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：メール返信　[1]：共有フォームＢｅａｎ
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setUPDTAIOKRKDTLHNSINMAILCC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 2){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 問合せＩＤ → 対応記録明細変更（メール返信）マップ.対応記録番号
		parentMap.put("taio_kirok_no", bean[0].sendMessageString("問合せＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// 対応記録明細番号 → 対応記録明細変更（メール返信）マップ.対応記録明細番号
		parentMap.put("taio_kirok_dtl_no", bean[0].sendMessageString("対応記録明細番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 部品呼び出し → 対応記録明細変更（メール返信）マップ.アクション完了年月日時分秒
		parentMap.put("action_fin_dtm", eo.web.webview.common.JCRWebCommon.getSysDateTime());
		// 問合せ文 → 対応記録明細登録（メール返信）マップ.問合せ内容
		parentMap.put("toiawase_naiyo", bean[0].sendMessageString("問合せ文", X31CWebConst.DATABEAN_GET_VALUE));
		// 返信画面ボタン押下判定フラグ → 対応記録明細変更（メール返信）マップ.編集状態フラグ
		parentMap.put("henshu_stat_flg", bean[0].sendMessageString("返信画面ボタン押下判定フラグ", X31CWebConst.DATABEAN_GET_VALUE));
		// メール件名（更新用） → 対応記録明細変更（メール返信）マップ.メールタイトル
		parentMap.put("mail_title", bean[0].sendMessageString("メール件名（更新用）", X31CWebConst.DATABEAN_GET_VALUE));
		// ▼▼▼ ADD START
		// 署名テンプレート
		X31SDataBeanAccessArray signTemplaTypeArray = bean[0].getDataBeanArray(CRW00701SFConst.SIGN_TEMPLA_TYPE);
		X31SDataBeanAccess signTemplaTypeBean = signTemplaTypeArray.getDataBean(0);

		// 署名テンプレートフッター → 対応記録明細登録（メール返信）マップ.メールフッター
		parentMap.put("mail_footer", signTemplaTypeBean.sendMessageString(CRW00701SFConst.L9_SEL_SIGN_TEMPLA_FOOTER_10, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 署名テンプレート本文 → 対応記録明細登録（メール返信）マップ.メール本文
		parentMap.put("mail_text", signTemplaTypeBean.sendMessageString(CRW00701SFConst.L9_SEL_SIGN_TEMPLA_TEXT_10, X31CWebConst.DATABEAN_GET_VALUE));
		// ▲▲▲ ADD END

		// Ｔｏメールアドレス（確認） → 対応記録明細変更（メール返信）マップ.送信先メールアドレス
		parentMap.put("sends_mlad", bean[0].sendMessageString("Ｔｏメールアドレス（確認）", X31CWebConst.DATABEAN_GET_VALUE));
		// Ｃｃメールアドレス → 対応記録明細変更（メール返信）マップ.CCメールアドレス
		parentMap.put("cc_mlad", bean[0].sendMessageString("Ｃｃメールアドレス", X31CWebConst.DATABEAN_GET_VALUE));

		// ▼▼▼ ADD START
		// Ｆｒｏｍメルアド
		X31SDataBeanAccessArray fromMladArray = bean[0].getDataBeanArray(CRW00701SFConst.FROM_MLAD);
		X31SDataBeanAccess fromMladBean = fromMladArray.getDataBean(0);

		// Ｆｒｏｍメールアドレス
		parentMap.put("sendm_mlad", fromMladBean.sendMessageString(CRW00701SFConst.L8_SEL_FROM_MLAD_09, X31CWebConst.DATABEAN_GET_VALUE));
		// ▲▲▲ ADD END

		// 送信状態コード → 対応記録明細変更（メール返信）マップ.送信状態コード
		parentMap.put("send_stat_cd", bean[0].sendMessageString("送信状態コード", X31CWebConst.DATABEAN_GET_VALUE));
		// 明細更新前年月日時分秒 → 対応記録明細変更（メール返信）マップ.更新前更新年月日時分秒
		parentMap.put("upd_dtm_bf", bean[0].sendMessageString("明細更新前年月日時分秒", X31CWebConst.DATABEAN_GET_VALUE));
		// ▼▼▼ ADD START
		// メール件名修飾用文字列
		X31SDataBeanAccessArray hnsinSymbolArray = bean[0].getDataBeanArray(CRW00701SFConst.HNSIN_SYMBOL);
		X31SDataBeanAccess hnsinSymbolBean = hnsinSymbolArray.getDataBean(0);

		// メール件名修飾用文字列コード
		parentMap.put("hnsin_tenso_symbol_cd", hnsinSymbolBean.sendMessageString(CRW00701SFConst.L7_SEL_HNSIN_SYMBOL_CD_08
				, X31CWebConst.DATABEAN_GET_VALUE));
		// ▲▲▲ ADD END
		
		// 部品呼び出し → 対応記録明細変更（メール返信）マップ.業務個別設定組織コード
		parentMap.put("wkkbt_org_cd", eo.web.webview.common.JCRWebCommon.getWkkbtOrgCd(bean[1]));

		outputMap.put("UPDTAIOKRKDTLHNSINMAILCC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：メール返信　[1]：共有フォームＢｅａｎ
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setDELHOTVOICCC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 2){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 問合せＩＤ → 対応記録ホットボイス削除マップ.ＫＥＹ＿対応記録番号
		parentMap.put("key_taio_kirok_no", bean[0].sendMessageString("問合せＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// 部品呼び出し → 対応記録ホットボイス削除マップ.ＫＥＹ＿業務個別設定組織コード
		parentMap.put("key_wkkbt_org_cd", eo.web.webview.common.JCRWebCommon.getWkkbtOrgCd(bean[1]));

		outputMap.put("DELHOTVOICCC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：メール返信　[1]：共有フォームＢｅａｎ
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setHKTG_WORK(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 2){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 処理区分 → 画面引継項目リスト.処理区分
		parentMap.put("tran_div", bean[0].sendMessageString("処理区分", X31CWebConst.DATABEAN_GET_VALUE));

		// 登録画面ボタン押下判定フラグ → ワーク.登録画面ボタン押下判定フラグ
		parentMap.put("push_button_jdg_flg", bean[0].sendMessageString(CRW00701SFConst.PUSH_BUTTON_JDG_FLG, X31CWebConst.DATABEAN_GET_VALUE));

		// 編集状態フラグ２ → 画面引継項目リスト.編集状態フラグ２
		parentMap.put("henshu_stat_flg2", bean[0].sendMessageString("編集状態フラグ２", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("HKTG_WORK", parentMap);
						
		return outputMap;
	}


	/**
	 * 下りマッピング
	 * @param bean　[0]：メール返信　[1]：共有フォームＢｅａｎ
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getJUDGENGWORDCC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("JUDGENGWORDCC")){
			parentMap = (HashMap)outputMap.get("JUDGENGWORDCC");
		}

		
		// クローズ不可コード ← 問合せNGワード判定マップ.クローズ不可コード
		if (parentMap != null) {
			bean[0].sendMessageString("クローズ不可コード", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("close_fail_cd"));
		} else {
			bean[0].sendMessageString("クローズ不可コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
		}

		return bean;
	}

	// ▼▼▼ ADD START

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：問合せ情報登録　[1]：共有フォームＢｅａｎ
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	public HashMap setADDHOTVOICCC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 2)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// "1"（処理済） → 処理済フラグ
		parentMap.put("syrzm_flg", JCRStrConst.SYRZM_FLG_SYORIZUMI);

		X31SDataBeanAccessArray arraybean = bean[0].getDataBeanArray(CRW00701SFConst.RSP_CTGR_LIST);
		
		ArrayList list = null;
		if(parentMap.containsKey("RSP_CTGR_List"))
		{
			list = (ArrayList)parentMap.get("RSP_CTGR_List");
		}
		else
		{
			list = new ArrayList();
		}
		
		if(arraybean != null && arraybean.getCount() > 0)
		{

			for(int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess rspCtgrListBean = arraybean.getDataBean(i);
				HashMap rspCtgrListMap = null;
				if(list.size() - 1 >= i)
				{
					rspCtgrListMap = (HashMap)list.get(i);
				}
				else
				{
					rspCtgrListMap = new HashMap();
				}

				// 問合せＩＤ → 対応記録ホットボイスマップ.応対区分リスト.対応記録番号
				rspCtgrListMap.put("taio_kirok_no", bean[0].sendMessageString(CRW00701SFConst.TAIO_KIROK_NO, X31CWebConst.DATABEAN_GET_VALUE));

				// 登録画面ボタン押下判定フラグ → 対応記録ホットボイスマップ.編集状態フラグ
				rspCtgrListMap.put("henshu_stat_flg", bean[0].sendMessageString(CRW00701SFConst.PUSH_BUTTON_JDG_FLG, X31CWebConst.DATABEAN_GET_VALUE));

				if (rspCtgrListBean != null)
				{
					// 応対区分／応対区分リスト.対応記録内訳番号 → 対応記録ホットボイスマップ.応対区分リスト.対応記録内訳番号
					rspCtgrListMap.put("taio_kirok_ucwk_no", rspCtgrListBean.sendMessageString(CRW00701SFConst.L1_TAIO_KIROK_UCWK_NO_02
							, X31CWebConst.DATABEAN_GET_VALUE));
	
					// 応対区分／応対区分リスト.応対区分 → 対応記録ホットボイスマップ.応対区分リスト.応対区分
					rspCtgrListMap.put("toiawase_rsp_div", rspCtgrListBean.sendMessageString(CRW00701SFConst.L1_SEL_RSP_DIV_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
	
					// 応対区分／応対区分リスト.表示順序 → 対応記録ホットボイスマップ.応対区分リスト.表示順序
					rspCtgrListMap.put("dsp_jun", rspCtgrListBean.sendMessageString(CRW00701SFConst.L1_DSP_JUN_02, X31CWebConst.DATABEAN_GET_VALUE));
					
					// 応対区分／応対区分リスト.対応記録内訳抽出ワーク作成区分 → 対応記録ホットボイスマップ.応対区分リスト.対応記録内訳抽出ワーク作成区分
					rspCtgrListMap.put("tiokr_uw_cst_wk_add_div", rspCtgrListBean.sendMessageString(CRW00701SFConst.L1_TIOKR_UW_CST_WK_ADD_DIV_02
							, X31CWebConst.DATABEAN_GET_VALUE));
					// 応対区分／応対区分リスト.お客様の声 → 対応記録ホットボイスマップ.応対区分リスト.お客様の声
					rspCtgrListMap.put("cust_koe", rspCtgrListBean.sendMessageString(CRW00701SFConst.L1_CUST_KOE_02
							, X31CWebConst.DATABEAN_GET_VALUE));
					// 応対区分／応対区分リスト.ＣＳＲの声 → 対応記録ホットボイスマップ.応対区分リスト.ＣＳＲの声
					rspCtgrListMap.put("csr_koe", rspCtgrListBean.sendMessageString(CRW00701SFConst.L1_CSR_KOE_02
							, X31CWebConst.DATABEAN_GET_VALUE));

				}

				// カテゴリーＮリスト
				X31SDataBeanAccessArray uwCtgrnListArray = rspCtgrListBean.getDataBeanArray(CRW00701SFConst.L1_UW_CTGRN_LIST);
				
				ArrayList uwCtgrnList = null;
				if(rspCtgrListMap.containsKey("UW_CTGRN_List"))
				{
					uwCtgrnList = (ArrayList)rspCtgrListMap.get("UW_CTGRN_List");
				}
				else
				{
					uwCtgrnList = new ArrayList();
				}

				if(uwCtgrnListArray != null && uwCtgrnListArray.getCount() > 0)
				{
					// 下位カテゴリー有無
					boolean kaiCtgrUm = true;

					// 上位連結カテゴリー
					StringBuilder sbJoiRnktCtgrNm = new StringBuilder();

					for (int j = 0; j < uwCtgrnListArray.getCount() && kaiCtgrUm; j++)
					{
						
						X31SDataBeanAccess uwCtgrnBean = uwCtgrnListArray.getDataBean(j);

						HashMap uwCtgrnMap = null;
						if(list.size() - 1 >= i)
						{
							uwCtgrnMap = (HashMap)uwCtgrnList.get(j);
						}
						else
						{
							uwCtgrnMap = new HashMap();
						}

						// 下位カテゴリの存在チェックを行う
						if (j < uwCtgrnListArray.getCount() - 1)
						{
							X31SDataBeanAccess uwCtgrnBeanKai = uwCtgrnListArray.getDataBean(j + 1);
							
							// 下位データが存在しない場合
							if (JCRUtilCommon.isNull(uwCtgrnBeanKai.sendMessageString(CRW00701SFConst.L3_SEL_UW_CTGRN_NM_04, X31CWebConst.DATABEAN_GET_VALUE)))
							{
								kaiCtgrUm = false;
							}
						}
						else if (j == uwCtgrnListArray.getCount() - 1)
						{
							kaiCtgrUm = false;
						}

						// 問合せＩＤ → 対応記録ホットボイスマップ.応対区分リスト.対応記録番号
						uwCtgrnMap.put("taio_kirok_no", bean[0].sendMessageString(CRW00701SFConst.TAIO_KIROK_NO, X31CWebConst.DATABEAN_GET_VALUE));

						// 登録画面ボタン押下判定フラグ → 対応記録ホットボイスマップ.編集状態フラグ
						uwCtgrnMap.put("henshu_stat_flg", bean[0].sendMessageString(CRW00701SFConst.PUSH_BUTTON_JDG_FLG, X31CWebConst.DATABEAN_GET_VALUE));

						if (uwCtgrnBean != null)
						{

							// 応対区分／応対区分リスト.カテゴリーＮレベル → 対応記録ホットボイスマップ.応対区分リスト.カテゴリーＮレベル
							uwCtgrnMap.put("taiokrk_uw_ctgr_lv", uwCtgrnBean.sendMessageString(CRW00701SFConst.L3_SEL_UW_CTGRN_LV_04, X31CWebConst.DATABEAN_GET_VALUE));

							// 応対区分／応対区分リスト.カテゴリーＮ名称 → 対応記録ホットボイスマップ.応対区分リスト.カテゴリーＮ名称
							uwCtgrnMap.put("taiokrk_uw_ctgr_nm", uwCtgrnBean.sendMessageString(CRW00701SFConst.L3_SEL_UW_CTGRN_NM_04, X31CWebConst.DATABEAN_GET_VALUE));

							// 上位連結カテゴリ → 対応記録ホットボイスマップ.応対区分リスト.上位連結カテゴリー名
							if ("001".equals(uwCtgrnBean.sendMessageString(CRW00701SFConst.L3_SEL_UW_CTGRN_LV_04, X31CWebConst.DATABEAN_GET_VALUE)))
							{
								uwCtgrnMap.put("joi_rnkt_ctgr_nm", eo.web.webview.common.JCRWebCommon.getWkkbtOrgCd(bean[1]));
							}
							else
							{
								uwCtgrnMap.put("joi_rnkt_ctgr_nm", sbJoiRnktCtgrNm.toString());
							}

							// 対応記録ホットボイスマップ.応対区分リスト.下位カテゴリー有無
							// 下位のカテゴリが存在する場合："1"
							// 下位のカテゴリが存在しない場合："0"
							if (kaiCtgrUm)
							{
								uwCtgrnMap.put("kai_ctgr_um", JCRStrConst.KAI_CTGR_UM_ON);
							}
							else
							{
								uwCtgrnMap.put("kai_ctgr_um", JCRStrConst.KAI_CTGR_UM_OFF);
							}

							// ユーザーＩＤ → 対応記録明細登録（コール）マップ.ログインユーザーID
							uwCtgrnMap.put("login_user_id", bean[1].sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE));
							// ユーザー名 → 対応記録明細登録（コール）マップ.ログインユーザー名
							uwCtgrnMap.put("login_user_nm", bean[1].sendMessageString(CommonInfoCFConst.USER_NM, X31CWebConst.DATABEAN_GET_VALUE));
							// 部品呼び出し → 対応記録明細登録（コール）マップ.業務個別設定組織コード
							uwCtgrnMap.put("wkkbt_org_cd", eo.web.webview.common.JCRWebCommon.getWkkbtOrgCd(bean[1]));
							// 部品呼び出し → 対応記録明細登録（コール）マップ.業務個別設定組織名
							uwCtgrnMap.put("wkkbt_org_nm", eo.web.webview.common.JCRWebCommon.getWkkbtOrgNm(bean[1]));
	
							try
							{
								sbJoiRnktCtgrNm.append(JCRUtilCommon.adjustCharSize(uwCtgrnBean.sendMessageString(CRW00701SFConst.L3_SEL_UW_CTGRN_NM_04
										, X31CWebConst.DATABEAN_GET_VALUE), 160, true));
							}
							catch (Exception e)
							{
//								e.printStackTrace();
							}

						}
						uwCtgrnList.add(uwCtgrnMap);

					}
					
					rspCtgrListMap.put("UW_CTGRN_List", uwCtgrnList);
				}

				list.add(rspCtgrListMap);
			}
		}
		parentMap.put("RSP_CTGR_List", list);

		outputMap.put("ADDHOTVOICCC", parentMap);
						
		return outputMap;

	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：問合せ情報登録　[1]：共有フォームＢｅａｎ
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	public HashMap setADDDELBUNSHOCTLCC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 2)
		{
			return null;
		}

		X31SDataBeanAccessArray arraybean = null;

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		ArrayList<HashMap<String, Object>> listAddTorkEfileKnri = null;
		ArrayList<HashMap<String, Object>> listDelTorkEfileKnri = null;

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		arraybean = bean[0].getDataBeanArray(CRW00701SFConst.BUNSHOLIST);

		if(parentMap.containsKey("ADD_TORK_EFILE_KNRI_List"))
		{
			listAddTorkEfileKnri = (ArrayList)parentMap.get("ADD_TORK_EFILE_KNRI_List");
		}
		else
		{
			listAddTorkEfileKnri = new ArrayList();
		}

		if(parentMap.containsKey("DEL_TORK_EFILE_KNRI_List"))
		{
			listDelTorkEfileKnri = (ArrayList)parentMap.get("DEL_TORK_EFILE_KNRI_List");
		}
		else
		{
			listDelTorkEfileKnri = new ArrayList();
		}

		if(arraybean != null && arraybean.getCount() > 0)
		{

			for(int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);

				// 登録時
				if (JCRStrConst.TMP_FILE_STAT_DIV_NEW.equals(subbean.sendMessageString(CRW00701SFConst.L5_TMP_FILE_STAT_DIV_06
						, X31CWebConst.DATABEAN_GET_VALUE))
						&& subbean.sendMessageBoolean(CRW00701SFConst.L5_FILE_DSP_FLG_06, X31CWebConst.DATABEAN_GET_VALUE))
				{
					HashMap<String, Object> mapAddTorkEfileKnri = new HashMap<String, Object>();

					// SEQ
					mapAddTorkEfileKnri.put("seq", String.valueOf(i));
					// 文書種別コード
					mapAddTorkEfileKnri.put("bunsho_sbt_cd", "01");
					// 対応記録番号
					mapAddTorkEfileKnri.put("taio_kirok_no", bean[0].sendMessageString(CRW00701SFConst.TAIO_KIROK_NO, X31CWebConst.DATABEAN_GET_VALUE));
					// 対応記録明細番号
					mapAddTorkEfileKnri.put("taio_kirok_dtl_no", "");
					// クエリ番号
					mapAddTorkEfileKnri.put("query_no", "");
					// 電子ファイル管理番号
					mapAddTorkEfileKnri.put("efile_kanri_no", "");
					// 対応記録文書ファイル名
					mapAddTorkEfileKnri.put("taiorrki_bunsho_file_nm"
							, subbean.sendMessageString(CRW00701SFConst.L5_TAIORRKI_BUNSHO_FILE_NM_06, X31CWebConst.DATABEAN_GET_VALUE));
					// 対応記録文書作成年月日
					mapAddTorkEfileKnri.put("taiorrki_bunsho_saksei_dtm", "");
					// 業務個別設定組織コード
					mapAddTorkEfileKnri.put("wkkbt_org_cd", eo.web.webview.common.JCRWebCommon.getWkkbtOrgCd(bean[1]));
					// 業務個別設定組織名
					mapAddTorkEfileKnri.put("wkkbt_position_cd", eo.web.webview.common.JCRWebCommon.getWkkbtPositionCd(bean[1]));
					listAddTorkEfileKnri.add(mapAddTorkEfileKnri);

				}

				// 削除時
				else if (JCRStrConst.TMP_FILE_STAT_DIV_EXIST.equals(subbean.sendMessageString(CRW00701SFConst.L5_TMP_FILE_STAT_DIV_06
						, X31CWebConst.DATABEAN_GET_VALUE))
					&& subbean.sendMessageBoolean(CRW00701SFConst.L5_FILE_DSP_FLG_06
						, X31CWebConst.DATABEAN_GET_VALUE) == false)
				{
					HashMap<String, Object> mapDelTorkEfileKnri = new HashMap<String, Object>();
					// 対応記録電子ファイル管理番号
					mapDelTorkEfileKnri.put("tork_efile_knri_no"
							, subbean.sendMessageString(CRW00701SFConst.L5_TORK_EFILE_KNRI_NO_06, X31CWebConst.DATABEAN_GET_VALUE));
					listDelTorkEfileKnri.add(mapDelTorkEfileKnri);
				}
				
				else
				{
					continue;
				}
			}
		}
		
		parentMap.put("ADD_TORK_EFILE_KNRI_List", listAddTorkEfileKnri);
		parentMap.put("DEL_TORK_EFILE_KNRI_List", listDelTorkEfileKnri);

		outputMap.put("ADDDELBUNSHOCTLCC", parentMap);
						
		return outputMap;

	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：問合せ情報登録　[1]：共有フォームＢｅａｎ
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	public HashMap setADDDELBUNSHOCTL2CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 2)
		{
			return null;
		}

		X31SDataBeanAccessArray arraybean = null;

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		ArrayList<HashMap<String, Object>> listAddTorkEfileKnri = null; 
		ArrayList<HashMap<String, Object>> listDelTorkEfileKnri = null;

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		arraybean = bean[0].getDataBeanArray(CRW00701SFConst.BUNSHOLIST2);

		if(parentMap.containsKey("ADD_TORK_EFILE_KNRI_List"))
		{
			listAddTorkEfileKnri = (ArrayList)parentMap.get("ADD_TORK_EFILE_KNRI_List");
		}
		else
		{
			listAddTorkEfileKnri = new ArrayList();
		}

		if(parentMap.containsKey("DEL_TORK_EFILE_KNRI_List"))
		{
			listDelTorkEfileKnri = (ArrayList)parentMap.get("DEL_TORK_EFILE_KNRI_List");
		}
		else
		{
			listDelTorkEfileKnri = new ArrayList();
		}

		if(arraybean != null && arraybean.getCount() > 0)
		{

			for(int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);

				// チェックありの場合
				if (subbean.sendMessageBoolean(CRW00701SFConst.L12_FILE_DSP_FLG_13, X31CWebConst.DATABEAN_GET_VALUE)
						&& subbean.sendMessageBoolean(CRW00701SFConst.L12_MAIL_TEMP_FILE_UM_13, X31CWebConst.DATABEAN_GET_VALUE)
						&& JCRStrConst.TMP_FILE_STAT_DIV_NEW.equals(subbean.sendMessageString(CRW00701SFConst.L12_TMP_FILE_STAT_DIV_13
						, X31CWebConst.DATABEAN_GET_VALUE)))
				{
						HashMap<String, Object> mapAddTorkEfileKnri = new HashMap<String, Object>();

						// SEQ
						mapAddTorkEfileKnri.put("seq", String.valueOf(i));
						// 文書種別コード
						mapAddTorkEfileKnri.put("bunsho_sbt_cd", "02");
						// 対応記録番号
						mapAddTorkEfileKnri.put("taio_kirok_no", bean[0].sendMessageString(CRW00701SFConst.TAIO_KIROK_NO, X31CWebConst.DATABEAN_GET_VALUE));
						// 対応記録明細番号
						mapAddTorkEfileKnri.put("taio_kirok_dtl_no", bean[0].sendMessageString(CRW00701SFConst.TAIO_KIROK_DTL_NO, X31CWebConst.DATABEAN_GET_VALUE));
						// クエリ番号
						mapAddTorkEfileKnri.put("query_no", "");
						// 対応記録文書ファイル名
						mapAddTorkEfileKnri.put("taiorrki_bunsho_file_nm"
								, subbean.sendMessageString(CRW00701SFConst.L12_TAIORRKI_BUNSHO_FILE_NM_13, X31CWebConst.DATABEAN_GET_VALUE));
						// 対応記録文書作成年月日
						mapAddTorkEfileKnri.put("taiorrki_bunsho_saksei_dtm"
								, subbean.sendMessageString(CRW00701SFConst.L12_GENE_ADD_DTM_13, X31CWebConst.DATABEAN_GET_VALUE));
						// 業務個別設定組織コード
						mapAddTorkEfileKnri.put("wkkbt_org_cd", eo.web.webview.common.JCRWebCommon.getWkkbtOrgCd(bean[1]));
						// 業務個別設定立場
						mapAddTorkEfileKnri.put("wkkbt_position_cd", eo.web.webview.common.JCRWebCommon.getWkkbtPositionCd(bean[1]));
						listAddTorkEfileKnri.add(mapAddTorkEfileKnri);
				}

				// 削除時
				if (JCRStrConst.TMP_FILE_STAT_DIV_EXIST.equals(subbean.sendMessageString(CRW00701SFConst.L12_TMP_FILE_STAT_DIV_13
						, X31CWebConst.DATABEAN_GET_VALUE))
					&& (subbean.sendMessageBoolean(CRW00701SFConst.L12_FILE_DSP_FLG_13, X31CWebConst.DATABEAN_GET_VALUE) == false
					|| subbean.sendMessageBoolean(CRW00701SFConst.L12_MAIL_TEMP_FILE_UM_13, X31CWebConst.DATABEAN_GET_VALUE) == false))
				{
					HashMap<String, Object> mapDelTorkEfileKnri = new HashMap<String, Object>();
					// 対応記録電子ファイル管理番号
					mapDelTorkEfileKnri.put("tork_efile_knri_no"
							, subbean.sendMessageString(CRW00701SFConst.L12_TORK_EFILE_KNRI_NO_13, X31CWebConst.DATABEAN_GET_VALUE));
					listDelTorkEfileKnri.add(mapDelTorkEfileKnri);
				}
				
				else
				{
					continue;
				}
			}
		}

		parentMap.put("ADD_TORK_EFILE_KNRI_List", listAddTorkEfileKnri);
		parentMap.put("DEL_TORK_EFILE_KNRI_List", listDelTorkEfileKnri);

		outputMap.put("ADDDELBUNSHOCTL2CC", parentMap);
						
		return outputMap;

	}

	// ▲▲▲ ADD END

}