/*********************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：CRSV0086_CRSV0086OPDBMapper
 *	ソースファイル名：CRSV0086_CRSV0086OPDBMapper.java
 *	作成者			：FJ
 *	日付			：2011年10月11日
 *＜機能概要＞
 *	BP（資料送付記録一覧照会(検索)）へのＤ−Ｂマッピングクラスです。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v1.00.00	2011/10/11	FJ			新規作成
 *	v6.00.00	2013/09/10	FJ）伊藤	OM-2013-0000852 性能改善（ページング対応）
 *
 **********************************************************************/
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.web.webview.CRW04301SF.CRW04301SFConst;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class CRSV0086_CRSV0086OPDBMapper {
	
	/**
	 * コンストラクタ
	 */
	public CRSV0086_CRSV0086OPDBMapper(){
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：資料送付情報一覧照会
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCRSV008601SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 部品呼び出し → 資料送付記録一覧照会マップ.検索処理パターン
		parentMap.put("search_type", eo.web.webview.common.JCRWebCommon.getConstantValue("1"));
		// 部品呼び出し → 資料送付記録一覧照会マップ.表示件数
		parentMap.put("display_num", eo.web.webview.common.JCCWebCommon.getSearchConst("CRW04301_ROW_PER_PAGE"));
		// ＫＥＹ＿対応記録番号 → 資料送付記録一覧照会マップ.ＫＥＹ＿対応記録番号
		parentMap.put("key_taio_kirok_no", bean[0].sendMessageString("ＫＥＹ＿対応記録番号", X31CWebConst.DATABEAN_GET_VALUE));
		// ＫＥＹ＿サービス契約番号 → 資料送付記録一覧照会マップ.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", bean[0].sendMessageString("ＫＥＹ＿サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 部品呼び出し → 資料送付記録一覧照会マップ.ＫＥＹ＿問合せ方法種別コード
		parentMap.put("key_toiawase_way_sbt_cd", eo.web.webview.common.JCRWebCommon.getPullDownCode(bean[0],"問合せ受付種別リスト","問合せ受付種別リストインデックス","問合せ受付種別コードリスト"));
		// ｋＥＹ＿整理番号 → 資料送付記録一覧照会マップ.ＫＥＹ＿整理番号
		parentMap.put("key_seiri_no", bean[0].sendMessageString("ｋＥＹ＿整理番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 部品呼び出し → 資料送付記録一覧照会マップ.ＫＥＹ＿資料分類コード
		parentMap.put("key_aticle_bunrui_cd", eo.web.webview.common.JCRWebCommon.getPullDownCode(bean[0],"資料分類リスト","資料分類リストインデックス","資料分類コードリスト"));
		// ＫＥＹ＿資料名 → 資料送付記録一覧照会マップ.ＫＥＹ＿資料名
		parentMap.put("key_aticle_nm", bean[0].sendMessageString("ＫＥＹ＿資料名", X31CWebConst.DATABEAN_GET_VALUE));
		// ＫＥＹ＿送付先名カナ → 資料送付記録一覧照会マップ.ＫＥＹ＿送付先名カナ
		parentMap.put("key_sohus_nm_kana", bean[0].sendMessageString("ＫＥＹ＿送付先名カナ", X31CWebConst.DATABEAN_GET_VALUE));
		// ＫＥＹ＿送付先名 → 資料送付記録一覧照会マップ.ＫＥＹ＿送付先名
		parentMap.put("key_sohus_nm", bean[0].sendMessageString("ＫＥＹ＿送付先名", X31CWebConst.DATABEAN_GET_VALUE));
		// 部品呼び出し → 資料送付記録一覧照会マップ.ＫＥＹ＿送付先郵便番号
		parentMap.put("key_sohus_pcd", eo.common.util.JPCUtilCommon.concatPcd(bean[0].sendMessageString("ＫＥＹ＿送付先郵便番号１",X31CWebConst.DATABEAN_GET_VALUE),bean[0].sendMessageString("ＫＥＹ＿送付先郵便番号２",X31CWebConst.DATABEAN_GET_VALUE)));
		// ＫＥＹ＿送付先都道府県名 → 資料送付記録一覧照会マップ.ＫＥＹ＿送付先都道府県名
		parentMap.put("key_sohus_state", bean[0].sendMessageString("ＫＥＹ＿送付先都道府県名", X31CWebConst.DATABEAN_GET_VALUE));
		// ＫＥＹ＿送付先市区町村名 → 資料送付記録一覧照会マップ.ＫＥＹ＿送付先市区町村名
		parentMap.put("key_sohus_city", bean[0].sendMessageString("ＫＥＹ＿送付先市区町村名", X31CWebConst.DATABEAN_GET_VALUE));
		// ＫＥＹ＿送付先大字通称名 → 資料送付記録一覧照会マップ.ＫＥＹ＿送付先大字通称名
		parentMap.put("key_sohus_oaztsu_mei", bean[0].sendMessageString("ＫＥＹ＿送付先大字通称名", X31CWebConst.DATABEAN_GET_VALUE));
		// ＫＥＹ＿送付先宇丁目名 → 資料送付記録一覧照会マップ.ＫＥＹ＿送付先字丁目名
		parentMap.put("key_sohus_azcho_mei", bean[0].sendMessageString("ＫＥＹ＿送付先宇丁目名", X31CWebConst.DATABEAN_GET_VALUE));
		// ＫＥＹ＿送付先番地 → 資料送付記録一覧照会マップ.ＫＥＹ＿送付先番地号
		parentMap.put("key_sohus_bnchigo", bean[0].sendMessageString("ＫＥＹ＿送付先番地", X31CWebConst.DATABEAN_GET_VALUE));
		// ＫＥＹ＿送付先住所補記・建物名 → 資料送付記録一覧照会マップ.ＫＥＹ＿送付先住所補記・建物名
		parentMap.put("key_sohus_adrttm", bean[0].sendMessageString("ＫＥＹ＿送付先住所補記・建物名", X31CWebConst.DATABEAN_GET_VALUE));
		// ＫＥＹ＿送付先住所補記・部屋番号 → 資料送付記録一覧照会マップ.ＫＥＹ＿送付先住所補記・部屋番号
		parentMap.put("key_sohus_adrrm", bean[0].sendMessageString("ＫＥＹ＿送付先住所補記・部屋番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 部品呼び出し → 資料送付記録一覧照会マップ.ＫＥＹ＿資料作成年月日時分秒（ＦＲＯＭ）
		parentMap.put("key_sohu_krk_saksei_from", eo.web.webview.common.JCRWebCommon.concatYmd(bean[0].sendMessageString("ＫＥＹ＿資料作成年（ＦＲＯＭ）", X31CWebConst.DATABEAN_GET_VALUE), bean[0].sendMessageString("ＫＥＹ＿資料作成月（ＦＲＯＭ）", X31CWebConst.DATABEAN_GET_VALUE), bean[0].sendMessageString("ＫＥＹ＿資料作成日（ＦＲＯＭ）", X31CWebConst.DATABEAN_GET_VALUE)));
		// 部品呼び出し → 資料送付記録一覧照会マップ.ＫＥＹ＿資料作成年月日時分秒（ＴＯ）
		parentMap.put("key_sohu_krk_saksei_to", eo.web.webview.common.JCRWebCommon.concatYmd(bean[0].sendMessageString("ＫＥＹ＿資料作成年（ＴＯ）", X31CWebConst.DATABEAN_GET_VALUE), bean[0].sendMessageString("ＫＥＹ＿資料作成月（ＴＯ）", X31CWebConst.DATABEAN_GET_VALUE), bean[0].sendMessageString("ＫＥＹ＿資料作成日（ＴＯ）", X31CWebConst.DATABEAN_GET_VALUE)));
		// 部品呼び出し → 資料送付記録一覧照会マップ.ＫＥＹ＿ラベル作成年月日時分秒（ＦＲＯＭ）
		parentMap.put("key_label_output_from", eo.common.util.JCRUtilCommon.concatYmdhms(bean[0].sendMessageString("ＫＥＹ＿ラベル作成年（ＦＲＯＭ）",X31CWebConst.DATABEAN_GET_VALUE),bean[0].sendMessageString("ＫＥＹ＿ラベル作成月（ＦＲＯＭ）",X31CWebConst.DATABEAN_GET_VALUE),bean[0].sendMessageString("ＫＥＹ＿ラベル作成日（ＦＲＯＭ）",X31CWebConst.DATABEAN_GET_VALUE)
																								,bean[0].sendMessageString("ＫＥＹ＿ラベル作成時（ＦＲＯＭ）",X31CWebConst.DATABEAN_GET_VALUE),bean[0].sendMessageString("ＫＥＹ＿ラベル作成分（ＦＲＯＭ）",X31CWebConst.DATABEAN_GET_VALUE),null));
		// 部品呼び出し → 資料送付記録一覧照会マップ.ＫＥＹ＿ラベル作成年月日時分秒（ＴＯ）
		parentMap.put("key_label_output_to",  eo.common.util.JCRUtilCommon.concatYmdhms(bean[0].sendMessageString("ＫＥＹ＿ラベル作成年（ＴＯ）",X31CWebConst.DATABEAN_GET_VALUE),bean[0].sendMessageString("ＫＥＹ＿ラベル作成月（ＴＯ）",X31CWebConst.DATABEAN_GET_VALUE),bean[0].sendMessageString("ＫＥＹ＿ラベル作成日（ＴＯ）",X31CWebConst.DATABEAN_GET_VALUE)
																								,bean[0].sendMessageString("ＫＥＹ＿ラベル作成時（ＴＯ）",X31CWebConst.DATABEAN_GET_VALUE),bean[0].sendMessageString("ＫＥＹ＿ラベル作成分（ＴＯ）",X31CWebConst.DATABEAN_GET_VALUE),null));
		// 部品呼び出し → 資料送付記録一覧照会マップ.ＫＥＹ＿資料送付記録ステータス
		parentMap.put("key_aticle_sohu_kirok_stat", eo.web.webview.common.JCRWebCommon.getPullDownCode(bean[0], "資料送付記録ステータスリスト", "資料送付記録ステータスリストインデックス", "資料送付記録ステータスコードリスト"));
		// 部品呼び出し → 資料送付記録一覧照会マップ.ＫＥＹ＿資料送付グループ番号
		parentMap.put("key_siryosofu_grp_no", eo.web.webview.common.JCRWebCommon.getPullDownCode(bean[0], "資料送付グループリスト", "資料送付グループリストインデックス", "資料送付グループコードリスト"));
		// 部品呼び出し → 資料送付記録一覧照会マップ.最大検索件数
		parentMap.put("max_search_num", eo.web.webview.common.JCCWebCommon.getSearchConst("CRW04301_MAX_SHOW_CNT"));

		outputMap.put("CRSV008601SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：資料送付情報一覧照会
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setSEARCHEOIDCC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// ＫＥＹ＿ｅｏＩＤ → あいまい検索マップ.ＫＥＹ＿ｅｏＩＤ
		parentMap.put("key_eoid", bean[0].sendMessageString("ＫＥＹ＿ｅｏＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// 部品呼び出し → あいまい検索マップ.あいまい検索
		if (bean[0].sendMessageBoolean(CRW04301SFConst.FUZZY_SEARCH, X31CWebConst.DATABEAN_GET_VALUE))
		{
			parentMap.put("fuzzy_search", JCRStrConst.FUZZY_SEARCH_ON);
		}
		else
		{
			parentMap.put("fuzzy_search", JCRStrConst.FUZZY_SEARCH_OFF);
		}

		outputMap.put("SEARCHEOIDCC", parentMap);
						
		return outputMap;
	}


	/**
	 * 下りマッピング
	 * @param bean　[0]：資料送付情報一覧照会
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCRSV008601SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CRSV008601SC")){
			parentMap = (HashMap)outputMap.get("CRSV008601SC");
		}

		ArrayList childList = null;

		// 総ページ数 ← 資料送付記録一覧照会マップ.総ページ数
		if (parentMap != null) {
			bean[0].sendMessageString("総ページ数", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("total_page_num"));
		} else {
			bean[0].sendMessageString("総ページ数", X31CWebConst.DATABEAN_SET_VALUE, new String());
		}
		// 総件数 ← 資料送付記録一覧照会マップ.総検索件数
		if (parentMap != null) {
			bean[0].sendMessageString("総件数", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("total_search_num"));
		} else {
			bean[0].sendMessageString("総件数", X31CWebConst.DATABEAN_SET_VALUE, new String());
		}
		// 検索エラーフラグ ← 資料送付記録一覧照会マップ.検索エラーフラグ
		if (parentMap != null) {
			bean[0].sendMessageString("検索エラーフラグ", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("search_err_flg"));
		} else {
			bean[0].sendMessageString("検索エラーフラグ", X31CWebConst.DATABEAN_SET_VALUE, new String());
		}

		X31SDataBeanAccessArray listCRSV008601SC_wk_ecr0041b020cbsmsg1list_ECR0041B020CBSMsg1List = bean[0].getDataBeanArray("退避＿資料送付記録一覧照会明細");
		childList = null;
		if(listCRSV008601SC_wk_ecr0041b020cbsmsg1list_ECR0041B020CBSMsg1List != null && parentMap != null && parentMap.containsKey("ECR0041B020CBSMsg1List")){
			childList = (ArrayList)parentMap.get("ECR0041B020CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listCRSV008601SC_wk_ecr0041b020cbsmsg1list_ECR0041B020CBSMsg1List.getCount() -1 >= i){
					subbean = listCRSV008601SC_wk_ecr0041b020cbsmsg1list_ECR0041B020CBSMsg1List.getDataBean(i);
				}else{
					subbean = listCRSV008601SC_wk_ecr0041b020cbsmsg1list_ECR0041B020CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// 退避＿資料送付記録一覧照会明細.資料分類コード名称 ← 資料送付記録一覧照会マップ.資料送付記録一覧照会明細.資料分類コード名称
				if (childMap != null) {
					subbean.sendMessageString("資料分類コード名称", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("aticle_bunrui_cd_nm"));
				} else {
					subbean.sendMessageString("資料分類コード名称", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 退避＿資料送付記録一覧照会明細.資料名 ← 資料送付記録一覧照会マップ.資料送付記録一覧照会明細.資料名
				if (childMap != null) {
					subbean.sendMessageString("資料名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("aticle_nm"));
				} else {
					subbean.sendMessageString("資料名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 退避＿資料送付記録一覧照会明細.対応記録番号 ← 資料送付記録一覧照会マップ.資料送付記録一覧照会明細.対応記録番号
				if (childMap != null) {
					subbean.sendMessageString("対応記録番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("taio_kirok_no"));
				} else {
					subbean.sendMessageString("対応記録番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 退避＿資料送付記録一覧照会明細.送付先名 ← 資料送付記録一覧照会マップ.資料送付記録一覧照会明細.送付先名
				if (childMap != null) {
					subbean.sendMessageString("送付先名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sohus_nm"));
				} else {
					subbean.sendMessageString("送付先名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 退避＿資料送付記録一覧照会明細.資料送付記録作成年月日 ← 資料送付記録一覧照会マップ.資料送付記録一覧照会明細.資料送付記録作成年月日
				if (childMap != null) {
					subbean.sendMessageString("資料送付記録作成年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("siryosofu_kirok_saksei_ymd"));
				} else {
					subbean.sendMessageString("資料送付記録作成年月日", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 退避＿資料送付記録一覧照会明細.資料送付記録ステータス名称 ← 資料送付記録一覧照会マップ.資料送付記録一覧照会明細.資料送付記録ステータス名称
				if (childMap != null) {
					subbean.sendMessageString("資料送付記録ステータス名称", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("aticle_sohu_kirok_stat_nm"));
				} else {
					subbean.sendMessageString("資料送付記録ステータス名称", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 退避＿資料送付記録一覧照会明細.資料送付番号 ← 資料送付記録一覧照会マップ.資料送付記録一覧照会明細.資料送付番号
				if (childMap != null) {
					subbean.sendMessageString("資料送付番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("aticle_sohu_no"));
				} else {
					subbean.sendMessageString("資料送付番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 退避＿資料送付記録一覧照会明細.資料送付記録番号 ← 資料送付記録一覧照会マップ.資料送付記録一覧照会明細.資料送付記録番号
				if (childMap != null) {
					subbean.sendMessageString("資料送付記録番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("aticle_sohu_kirok_no"));
				} else {
					subbean.sendMessageString("資料送付記録番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 退避＿資料送付記録一覧照会明細.更新年月日時分秒 ← 資料送付記録一覧照会マップ.資料送付記録一覧照会明細.更新年月日時分秒
				if (childMap != null) {
					subbean.sendMessageString("更新年月日時分秒", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("upd_dtm"));
				} else {
					subbean.sendMessageString("更新年月日時分秒", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 退避＿資料送付記録一覧照会明細.資料送付記録ステータス ← 資料送付記録一覧照会マップ.資料送付記録一覧照会明細.資料送付記録ステータス
				if (childMap != null) {
					subbean.sendMessageString("資料送付記録ステータス", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("aticle_sohu_kirok_stat_cd"));
				} else {
					subbean.sendMessageString("資料送付記録ステータス", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 退避＿資料送付記録一覧照会明細.ｅｏＩＤ ← 資料送付記録一覧照会マップ.資料送付記録一覧照会明細.eoID
				String eoid = "";
				if (childMap != null) {
					eoid = (String)childMap.get("eoid");
				}
				subbean.sendMessageString("ｅｏＩＤ", X31CWebConst.DATABEAN_SET_VALUE, eoid);
				// 退避＿資料送付記録一覧照会明細.ｅｏＩＤステータス ← 資料送付記録一覧照会マップ.資料送付記録一覧照会明細.eoIDステータス
				String eoidStatus = "";
				if (!eoid.startsWith(JCRStrConst.DEFAULT_EOID_PREFIX))
				{
					if (childMap != null) {
						eoidStatus = (String)childMap.get("eoid_stats");
					}
				}
				subbean.sendMessageString("ｅｏＩＤステータス", X31CWebConst.DATABEAN_SET_VALUE, eoidStatus);
				// 退避＿資料送付記録一覧照会明細.行スタイルクラス ← 部品呼び出し
				subbean.sendMessageString("行スタイルクラス", X31CWebConst.DATABEAN_SET_VALUE, eo.web.webview.common.JCRWebCommon.getLineStyle(i + 1));
				// 退避＿資料送付記録一覧照会明細.明細インデックス ← 部品呼び出し
				subbean.sendMessageString("明細インデックス", X31CWebConst.DATABEAN_SET_VALUE, eo.web.webview.common.JCRWebCommon.getConstantValue(String.valueOf(i + 1)));
			}
		}


		return bean;
	}


}