/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：FUSV0345_FUSV0345OPDBMapper
*	ソースファイル名：FUSV0345_FUSV0345OPDBMapper.java
*	作成者			：富士通
*	日付			：2014年09月03日
*＜機能概要＞
*	BP（ｅｏＩＤエイジングチェック)）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン  修正日      修正者      修正内容
*	v10.00      2021/04/01  FJ)大島     【ANK-4009-00-00】CX戦略WG方針対応
*
**********************************************************************/
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 eo.common.constant.JFUStrConst;
import eo.web.webview.common.JFUWebCommon;

/**
 * DataBean-BPマッピングをします。
 * <p>
 * <BR>
 * @author 富士通
 */

@SuppressWarnings("unchecked")
public class FUSV0345_FUSV0345OPDBMapper
{
	// ■SC
	/** FUSV034501SC */
	private static final String FUSV034501SC = "FUSV034501SC";

	// ■SC項目
	/** 機能コード */
	private static final String FUNC_CODE = "func_code";
	/** ＫＥＹ＿エイジング種別コード */
	private static final String KEY_AGING_SBT_CD = "key_aging_sbt_cd";
	/** ＫＥＹ＿エイジング対象値 */
	private static final String KEY_AGING_TG_VALUE = "key_aging_tg_value";
	/** エイジングステータス */
	private static final String AGING_STAT = "aging_stat";

	// ■SC明細
	/** エイジング一覧照会明細 */
	private static final String EZM0111B040CBSMSG1LIST = "EZM0111B040CBSMsg1List";

	// ■Bean項目(日本語名)
	/** ｅｏＩＤ */
	private static final String BEAN_EOID = "ｅｏＩＤ";
	/** エイジングステータス */
	private static final String BEAN_AGING_STAT = "エイジングステータス";

	// ■その他
	/** DATABEAN_GET_VALUE */
	private static final String GET = X31CWebConst.DATABEAN_GET_VALUE;
	/** DATABEAN_SET_VALUE */
	private static final String SET = X31CWebConst.DATABEAN_SET_VALUE;

	/**
	 * コンストラクタです。
	 */
	public FUSV0345_FUSV0345OPDBMapper()
	{
	}

	/**
	 * エイジング一覧照会の上りマッピング処理です。
	 * 
	 * <br>
	 * @param bean データBean配列
	 * @param outputMap アウトマップ
	 * @param funcCd 機能コード
	 * @return マッピング結果
	 */
	public HashMap<String, Object> setFUSV034501SC(X31SDataBeanAccess[] bean, HashMap outputMap, String funcCd)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, funcCd);

		// eoID
		String eoid = bean[0].sendMessageString(BEAN_EOID, GET);

		// KEY_エイジング種別コード(eoID)
		parentMap.put(KEY_AGING_SBT_CD, JFUStrConst.CD00412_004);
		// KEY_エイジング対象値
		parentMap.put(KEY_AGING_TG_VALUE, eoid);

		ArrayList arrayList = new ArrayList<HashMap>();
		HashMap detailMap = new HashMap();
		arrayList.add(detailMap);
		parentMap.put(EZM0111B040CBSMSG1LIST, arrayList);

		outputMap.put(FUSV034501SC, parentMap);

		return outputMap;
	}

	/**
	 * エイジング一覧照会の下りマッピング処理です。
	 * 
	 * <br>
	 * @param bean データBean
	 * @param outputMap 結果マップ
	 * @return データBean
	 */
	public X31SDataBeanAccess getFUSV034501SC(X31SDataBeanAccess bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if (outputMap.containsKey(FUSV034501SC))
		{
			parentMap = (HashMap)outputMap.get(FUSV034501SC);
		}

		if (parentMap != null && parentMap.size() > 0 && parentMap.containsKey(EZM0111B040CBSMSG1LIST))
		{
			// 検索結果全件取得
			ArrayList childList = (ArrayList)parentMap.get(EZM0111B040CBSMSG1LIST);
			if(childList == null || childList.size() == 0)
			{
				// 結果が存在しない場合、空を設定し処理を終了する
				bean.sendMessageString(BEAN_AGING_STAT, SET, JFUStrConst.EMPTY);
				return bean;
			}

			// 検索結果の0番目を取得
			HashMap childMap = (HashMap)childList.get(0);
			if(childMap == null || childMap.size() == 0)
			{
				// 結果が存在しない場合、空を設定し処理を終了する
				bean.sendMessageString(BEAN_AGING_STAT, SET, JFUStrConst.EMPTY);
				return bean;
			}

			// エイジングステータス
			bean.sendMessageString(BEAN_AGING_STAT, SET, getValue(childMap, AGING_STAT));
		}

		return bean;
	}

	/**
	 * サービス実行結果から値を取得します。
	 * 
	 * <br>
	 * @param outPutMap 結果マップ
	 * @param itemNm 項目名
	 * @return 値
	 */
	private String getValue(HashMap outPutMap, String itemNm)
	{
		String result = JFUStrConst.EMPTY;

		if(outPutMap.containsKey(itemNm) && !JFUWebCommon.isNull((String)outPutMap.get(itemNm)))
		{
			result = (String)outPutMap.get(itemNm);
		}

		return result;
	}
}