/*********************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：CRSV0026_CRSV0026OPDBMapper
 *	ソースファイル名：CRSV0026_CRSV0026OPDBMapper.java
 *	作成者			：FJ
 *	日付			：2011年06月17日
 *＜機能概要＞
 *	BP（問合せ情報更新）へのＤ−Ｂマッピングクラスです。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v1.00.00	2011/06/17	FJ			新規作成
 *	v5.00.00	2013/04/08	FJ)伊藤		ANK-1501-00-00_コールタイプ情報追加対応
 *	v5.01.00	2013/06/27	FJ)伊藤		ANK-1555-00-00_コールバック履歴化対応について
 *	v6.00.00	2013/09/04	FJ)伊藤		OM-2013-0001190対応 更新の場合、一時保存有無を変更しないよう修正。
 *	v33.00.00	2017/10/26	FJ)麻生		ANK-3189-00-00_(客C)対応開始・終了時間の任意入力
 *	v42.00.00	2019/04/03	FJ)前田		ANK-3593-00-00_オペレータ支援対応に伴うeo顧客機能改修（お客さまカルテ）
 **********************************************************************/
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.CRW00101SF.CRW00101SFConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class CRSV0026_CRSV0026OPDBMapper {
	
	/**
	 * コンストラクタ
	 */
	public CRSV0026_CRSV0026OPDBMapper(){
	}
	

	/**
	 * 上りマッピングをする
	 * @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("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));
		// ユーザーＩＤ → 対応記録内容変更マップ.ログインユーザーID
		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]));
		// ANK-3593-00-00 ADD START
		// 反響可能性フラグ → 対応記録内容変更マップ.反響可能性フラグ
		if(bean[0].sendMessageBoolean(CRW00101SFConst.HANKYO_PSB_FLG, X31CWebConst.DATABEAN_GET_VALUE))
		{
			parentMap.put("hankyo_psb_flg", JCRStrConst.HANKYO_PSB_FLG_ON);
		}
		else
		{
			parentMap.put("hankyo_psb_flg", JCRStrConst.HANKYO_PSB_FLG_OFF);
		}
		// ANK-3593-00-00 ADD END

//*************************** 自動生成ソース修正  START ***************************//
		// 処理区分が対応記録明細対応要の場合
		if (JCRStrConst.CRW00101_TRAN_DIV_TAIOYO_TAIOKRK_DTL.equals(bean[0].sendMessageString("処理区分", X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 問合せ内容 または 回答内容がnullの場合
			if (JCRUtilCommon.isNull(bean[0].sendMessageString("問合せ内容", X31CWebConst.DATABEAN_GET_VALUE))
				&& JCRUtilCommon.isNull(bean[0].sendMessageString("回答内容", X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// 定数("1"：出力あり） → 対応記録内容変更マップ.履歴出力フラグ
				parentMap.put("rireki_output_flg", JCRStrConst.RIREKI_OUTPUT_FLG_ARI);
			}
		}
		// 処理区分が対応記録明細対応不要の場合
		else if (JCRStrConst.CRW00101_TRAN_DIV_TAIOFUYO_TAIOKRK_DTL.equals(bean[0].sendMessageString("処理区分", X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 定数("1"：出力あり） → 対応記録内容変更マップ.履歴出力フラグ
			parentMap.put("rireki_output_flg", JCRStrConst.RIREKI_OUTPUT_FLG_ARI);
		}

		// 処理区分が対応記録明細対応不要の場合
		if (JCRStrConst.CRW00101_TRAN_DIV_TAIOFUYO_TAIOKRK_DTL.equals(bean[0].sendMessageString("処理区分", X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 一時保存有無 → 対応記録内容変更マップ.一時保存有無
			parentMap.put("tmp_save_um", bean[0].sendMessageString("一時保存有無", X31CWebConst.DATABEAN_GET_VALUE));
		}
		// 処理区分が対応記録明細対応不要以外の場合
		else
		{
			// 登録画面ボタン押下判定フラグ → 対応記録内容変更マップ.一時保存有無
			parentMap.put("tmp_save_um", bean[0].sendMessageString("登録画面ボタン押下判定フラグ", X31CWebConst.DATABEAN_GET_VALUE));
		}
//*************************** 自動生成ソース修正  END   ***************************//

		outputMap.put("UPDTAIOKRKCC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：問合せ情報登録　[1]：共有フォームＢｅａｎ
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCRSV002601SC(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_sta_dtm", bean[0].sendMessageString("アクション開始年月日時分秒", X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-3189-00-00 MOD START
//		// 部品呼び出し → 対応記録明細変更（コール）マップ.アクション完了年月日時分秒
//		parentMap.put("action_fin_dtm", eo.web.webview.common.JCRWebCommon.getSysDateTime());
		// アクション完了年月日時分秒 → 対応記録明細変更（コール）マップ.アクション完了年月日時分秒
		parentMap.put("action_fin_dtm", bean[0].sendMessageString("アクション完了年月日時分秒", X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-3189-00-00 MOD END
		// 問合せ元名 → 対応記録明細変更（コール）マップ.問合せ元名
		parentMap.put("toiawase_moto_nm", bean[0].sendMessageString("問合せ元名", X31CWebConst.DATABEAN_GET_VALUE));
		// 問合せ内容 → 対応記録明細変更（コール）マップ.問合せ内容
		parentMap.put("toiawase_naiyo", bean[0].sendMessageString("問合せ内容", X31CWebConst.DATABEAN_GET_VALUE));
		// 回答内容 → 対応記録明細変更（コール）マップ.回答内容
		parentMap.put("ans_naiyo", bean[0].sendMessageString("回答内容", X31CWebConst.DATABEAN_GET_VALUE));
		// 部品呼び出し → 対応記録明細変更（コール）マップ.コンタクト先コード
		parentMap.put("contact_saki_cd", eo.web.webview.common.JCRWebCommon.getPullDownCode(bean[0], "コンタクト先", "コンタクト先コードインデックス", "コンタクト先コードリスト"));
		// 登録画面ボタン押下判定フラグ → 対応記録明細変更（コール）マップ.編集状態フラグ
		parentMap.put("henshu_stat_flg", bean[0].sendMessageString("登録画面ボタン押下判定フラグ", X31CWebConst.DATABEAN_GET_VALUE));
		// 明細更新前更新年月日時分秒 → 対応記録明細変更（コール）マップ.明細更新前更新年月日時分秒
		parentMap.put("dtl_upd_dtm_bf", bean[0].sendMessageString("明細更新前更新年月日時分秒", X31CWebConst.DATABEAN_GET_VALUE));
		// ユーザーＩＤ → 対応記録明細変更（コール）マップ.ログインユーザーID
		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]));
		// 部品呼び出し → 対応記録明細変更（コール）マップ.メモ内容
		parentMap.put("memo_naiyo", eo.web.webview.common.JCRWebCommon.getPullDownName(bean[0],"問合せ受付種別","問合せ受付種別コードインデックス","問合せ受付種別コードリスト","問合せ受付種別コード名称リスト"));

		outputMap.put("CRSV002601SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：問合せ情報登録　[1]：共有フォームＢｅａｎ
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setADDTAIOKRKDTLCALLCC(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));
		// ANK-3189-00-00 MOD START
//		// 画面オープン日時 → 対応記録明細登録（コール）マップ.アクション開始年月日時分秒
//		parentMap.put("action_sta_dtm", bean[0].sendMessageString("画面オープン日時", X31CWebConst.DATABEAN_GET_VALUE));
//		// 部品呼び出し → 対応記録明細登録（コール）マップ.アクション完了年月日時分秒
//		parentMap.put("action_fin_dtm", eo.web.webview.common.JCRWebCommon.getSysDateTime());
		// アクション開始年月日時分秒 → 対応記録明細登録（コール）マップ.アクション開始年月日時分秒
		parentMap.put("action_sta_dtm", bean[0].sendMessageString("アクション開始年月日時分秒", X31CWebConst.DATABEAN_GET_VALUE));
		// アクション完了年月日時分秒 → 対応記録明細登録（コール）マップ.アクション完了年月日時分秒
		parentMap.put("action_fin_dtm", bean[0].sendMessageString("アクション完了年月日時分秒", X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-3189-00-00 MOD END
		// ユーザーＩＤ → 対応記録明細登録（コール）マップ.対応ユーザー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("toiawase_moto_nm", bean[0].sendMessageString("問合せ元名", X31CWebConst.DATABEAN_GET_VALUE));
		// 回答内容 → 対応記録明細登録（コール）マップ.回答内容
		parentMap.put("ans_naiyo", bean[0].sendMessageString("回答内容", X31CWebConst.DATABEAN_GET_VALUE));
		// 部品呼び出し → 対応記録明細登録（コール）マップ.コンタクト先コード
		parentMap.put("contact_saki_cd", eo.web.webview.common.JCRWebCommon.getPullDownCode(bean[0], "コンタクト先", "コンタクト先コードインデックス", "コンタクト先コードリスト"));
		// 登録画面ボタン押下判定フラグ → 対応記録明細登録（コール）マップ.編集状態フラグ
		parentMap.put("henshu_stat_flg", bean[0].sendMessageString("登録画面ボタン押下判定フラグ", X31CWebConst.DATABEAN_GET_VALUE));
		// ユーザーＩＤ → 対応記録明細登録（コール）マップ.ログインユーザーID
		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]));
		// 部品呼び出し → 対応記録明細登録（コール）マップ.メモ内容
		parentMap.put("memo_naiyo", eo.web.webview.common.JCRWebCommon.getPullDownName(bean[0],"問合せ受付種別","問合せ受付種別コードインデックス","問合せ受付種別コードリスト","問合せ受付種別コード名称リスト"));

		outputMap.put("ADDTAIOKRKDTLCALLCC", 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
	 */
	@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, "");
		}

		return bean;
	}

	// ▼▼▼ ADD START

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：問合せ情報登録　[1]：共有フォームＢｅａｎ
	 * @param outputMap HashMap
	 * @param func_code 機能コード
	 * @return HashMap HashMap
	 */
	@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　機能コード
	 * @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(CRW00101SFConst.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(CRW00101SFConst.TAIO_KIROK_NO, X31CWebConst.DATABEAN_GET_VALUE));

				// 登録画面ボタン押下判定フラグ → 対応記録ホットボイスマップ.編集状態フラグ
				rspCtgrListMap.put("henshu_stat_flg", bean[0].sendMessageString(CRW00101SFConst.PUSH_BUTTON_JDG_FLG, X31CWebConst.DATABEAN_GET_VALUE));

				if (rspCtgrListBean != null)
				{
					// 応対区分／応対区分リスト.対応記録内訳番号 → 対応記録ホットボイスマップ.応対区分リスト.対応記録内訳番号
					rspCtgrListMap.put("taio_kirok_ucwk_no", rspCtgrListBean.sendMessageString(CRW00101SFConst.L1_TAIO_KIROK_UCWK_NO_02
							, X31CWebConst.DATABEAN_GET_VALUE));
	
					// 応対区分／応対区分リスト.応対区分 → 対応記録ホットボイスマップ.応対区分リスト.応対区分
					rspCtgrListMap.put("toiawase_rsp_div", rspCtgrListBean.sendMessageString(CRW00101SFConst.L1_SEL_RSP_DIV_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
	
					// 応対区分／応対区分リスト.表示順序 → 対応記録ホットボイスマップ.応対区分リスト.表示順序
					rspCtgrListMap.put("dsp_jun", rspCtgrListBean.sendMessageString(CRW00101SFConst.L1_DSP_JUN_02, X31CWebConst.DATABEAN_GET_VALUE));
					
					// 応対区分／応対区分リスト.対応記録内訳抽出ワーク作成区分 → 対応記録ホットボイスマップ.応対区分リスト.対応記録内訳抽出ワーク作成区分
					rspCtgrListMap.put("tiokr_uw_cst_wk_add_div", rspCtgrListBean.sendMessageString(CRW00101SFConst.L1_TIOKR_UW_CST_WK_ADD_DIV_02
							, X31CWebConst.DATABEAN_GET_VALUE));
					// 応対区分／応対区分リスト.お客様の声 → 対応記録ホットボイスマップ.応対区分リスト.お客様の声
					rspCtgrListMap.put("cust_koe", rspCtgrListBean.sendMessageString(CRW00101SFConst.L1_CUST_KOE_02
							, X31CWebConst.DATABEAN_GET_VALUE));
					// 応対区分／応対区分リスト.ＣＳＲの声 → 対応記録ホットボイスマップ.応対区分リスト.ＣＳＲの声
					rspCtgrListMap.put("csr_koe", rspCtgrListBean.sendMessageString(CRW00101SFConst.L1_CSR_KOE_02
							, X31CWebConst.DATABEAN_GET_VALUE));

				}

				// カテゴリーＮリスト
				X31SDataBeanAccessArray uwCtgrnListArray = rspCtgrListBean.getDataBeanArray(CRW00101SFConst.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(CRW00101SFConst.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(CRW00101SFConst.TAIO_KIROK_NO, X31CWebConst.DATABEAN_GET_VALUE));

						// 登録画面ボタン押下判定フラグ → 対応記録ホットボイスマップ.編集状態フラグ
						uwCtgrnMap.put("henshu_stat_flg", bean[0].sendMessageString(CRW00101SFConst.PUSH_BUTTON_JDG_FLG, X31CWebConst.DATABEAN_GET_VALUE));

						if (uwCtgrnBean != null)
						{

							// 応対区分／応対区分リスト.カテゴリーＮレベル → 対応記録ホットボイスマップ.応対区分リスト.カテゴリーＮレベル
							uwCtgrnMap.put("taiokrk_uw_ctgr_lv", uwCtgrnBean.sendMessageString(CRW00101SFConst.L3_SEL_UW_CTGRN_LV_04, X31CWebConst.DATABEAN_GET_VALUE));

							// 応対区分／応対区分リスト.カテゴリーＮ名称 → 対応記録ホットボイスマップ.応対区分リスト.カテゴリーＮ名称
							uwCtgrnMap.put("taiokrk_uw_ctgr_nm", uwCtgrnBean.sendMessageString(CRW00101SFConst.L3_SEL_UW_CTGRN_NM_04, X31CWebConst.DATABEAN_GET_VALUE));

							// 上位連結カテゴリ → 対応記録ホットボイスマップ.応対区分リスト.上位連結カテゴリー名
							if ("001".equals(uwCtgrnBean.sendMessageString(CRW00101SFConst.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(CRW00101SFConst.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(CRW00101SFConst.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(CRW00101SFConst.L5_TMP_FILE_STAT_DIV_06, 
						X31CWebConst.DATABEAN_GET_VALUE))
						&& subbean.sendMessageBoolean(CRW00101SFConst.L5_FILE_DSP_FLG_06, X31CWebConst.DATABEAN_GET_VALUE))
				{
					HashMap<String, Object> mapAddTorkEfileKnri = new HashMap<String, Object>();

					// 文書種別コード
					mapAddTorkEfileKnri.put("bunsho_sbt_cd", "01");
					// 対応記録番号
					mapAddTorkEfileKnri.put("taio_kirok_no", bean[0].sendMessageString(CRW00101SFConst.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(CRW00101SFConst.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(CRW00101SFConst.L5_TMP_FILE_STAT_DIV_06,
						X31CWebConst.DATABEAN_GET_VALUE))
					&& subbean.sendMessageBoolean(CRW00101SFConst.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(CRW00101SFConst.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 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(CRW00101SFConst.TRAN_DIV, X31CWebConst.DATABEAN_GET_VALUE));
		// 登録画面ボタン押下判定フラグ → ワーク.登録画面ボタン押下判定フラグ
		parentMap.put("push_button_jdg_flg", bean[0].sendMessageString(CRW00101SFConst.PUSH_BUTTON_JDG_FLG, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("HKTG_WORK", parentMap);
						
		return outputMap;

	}
	// ▲▲▲ ADD END


}