/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：CHSV0092_CHSV0092OPDBMapper
*	ソースファイル名：CHSV0092_CHSV0092OPDBMapper.java
*	作成者			：FJ
*	日付			：2022年08月10日
*＜機能概要＞
*	BP（会計用補正情報初期表示）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
 *	新規作成	2023/6/28  FJ)西窪     【ANK-4268-00-00】新規作成
 *  変更		2023/10/05 FJ)寺田     【IT2-2023-0000012】 ANK-4268-00-00_障害対応
 *  仕変13		2024/02/20 FJ)松永     【ANK-4268-13-00】ソート機能追加
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;

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.JACStrConst;
import eo.web.webview.CHW02701SF.CHW02701SFConst;
import eo.web.webview.CHW02701SF.CHW02701SFLogic;

/**
 * DataBean-BPマッピングをする。
 * @author 富士通
 */
public class CHSV0092_CHSV0092OPDBMapper
{

	/**
	 * コンストラクタ
	 */
	public CHSV0092_CHSV0092OPDBMapper()
	{
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：会計用補正情報
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap　上りマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV009201SC(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_cd_sbt_cd", "CD01811");

		outputMap.put("CHSV009201SC", parentMap);
						
		return outputMap;	
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：会計用補正情報
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap　上りマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV009202SC(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_cd_sbt_cd", "CD01812");

		outputMap.put("CHSV009202SC", parentMap);
						
		return outputMap;	
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：会計用補正情報
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap　上りマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV009203SC(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_kaik_ucwk_sbt_dtl_cd", "3011;3021;3041");

		outputMap.put("CHSV009203SC", parentMap);
						
		return outputMap;	
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：入金登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV009204SC(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);

		outputMap.put("CHSV009204SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：入金登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV009205SC(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_crecard_jigyo_cd", JACStrConst.CRECARD_JIGYO_CD_FTTH);

		outputMap.put("CHSV009205SC", parentMap);

		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：会計用補正情報
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap　上りマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV009206SC(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_kaik_ucwk_sbt_dtl_cd", "8011");

		outputMap.put("CHSV009206SC", parentMap);
						
		return outputMap;	
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器代金請求登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV009207SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String opedate) {
		
		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_event_cd", String.valueOf("21"));
		// 処理年月日時分秒 → 料金スケジュール定義一意照会マップ.ＫＥＹ＿運用日
		parentMap.put("key_unyo_day", opedate);

		outputMap.put("CHSV009207SC", parentMap);
						
		return outputMap;
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：会計用補正情報
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap　上りマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV009208SC(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("sort_item_no", bean[0].sendMessageString(CHW02701SFConst.SORT_ITEM_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 部品呼び出し → ＫＥＹ＿ソート区分
		parentMap.put("sort_div", bean[0].sendMessageString(CHW02701SFConst.SORT_DIV, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CHSV009208SC", parentMap);
						
		return outputMap;	
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：会計用補正情報
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap　上りマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV009209SC(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_work_param_id", "KAIK_HOSEI_CRESVC");
		
		outputMap.put("CHSV009209SC", parentMap);
						
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：会計用補正情報
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap　上りマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV009210SC(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_work_param_id", "KAIK_HOSEI_CRECONT");
		
		outputMap.put("CHSV009210SC", parentMap);
						
		return outputMap;
	}

	
	/**
	 * 下りマッピング
	 * 
	 * @param bean [0]：
	 * @param outputMap マップ
	 * @return [0]：入金登録
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV009201SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("CHSV009201SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV009201SC");
		}

		ArrayList childList = null;
		
		// 会計種別
		X31SDataBeanAccessArray CHSV009201SCList = bean[0].getDataBeanArray(CHW02701SFConst.KAIK_SBT);
		X31SDataBeanAccess subbean = CHSV009201SCList.getDataBean(0);

		subbean.sendMessage(CHW02701SFConst.INDEX, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW02701SFConst.CD_LIST, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW02701SFConst.NM_LIST, X31CWebConst.DATABEAN_CLEAR);

		if (bean[0] != null && parentMap != null && parentMap.containsKey("EZM0171B010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EZM0171B010CBSMsg1List");

			// 会計種別.コードリスト
			subbean.sendMessageString(CHW02701SFConst.CD_LIST, X31CWebConst.DATABEAN_ADD_VALUE, "");
			// 会計種別.名称リスト
			subbean.sendMessageString(CHW02701SFConst.NM_LIST, X31CWebConst.DATABEAN_ADD_VALUE, "");
			// 会計種別.インデックス
			subbean.sendMessageString(CHW02701SFConst.INDEX, X31CWebConst.DATABEAN_SET_VALUE, "0");


			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);

				// 会計種別.コードリスト
				subbean.sendMessageString(CHW02701SFConst.CD_LIST, X31CWebConst.DATABEAN_ADD_VALUE, (String) childMap.get("cd_div"));
				// 会計種別.名称リスト
				subbean.sendMessageString(CHW02701SFConst.NM_LIST, X31CWebConst.DATABEAN_ADD_VALUE, (String) childMap.get("cd_div_nm"));
			}
		}

		return bean;
	}
	

	/**
	 * 下りマッピング
	 * 
	 * @param bean [0]：
	 * @param outputMap マップ
	 * @return [0]：入金登録
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV009202SC(X31SDataBeanAccess[] bean, HashMap outputMap, String kaikSbtValue)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("CHSV009202SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV009202SC");
		}

		ArrayList childList = null;
		
		// 補正種別
		X31SDataBeanAccessArray CHSV009201SCList = bean[0].getDataBeanArray(CHW02701SFConst.HOSEI_SBT);
		X31SDataBeanAccess subbean = CHSV009201SCList.getDataBean(0);

		subbean.sendMessage(CHW02701SFConst.INDEX, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW02701SFConst.CD_LIST, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW02701SFConst.NM_LIST, X31CWebConst.DATABEAN_CLEAR);

		if (bean[0] != null && parentMap != null && parentMap.containsKey("EZM0171B010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EZM0171B010CBSMsg1List");
			
			subbean.sendMessageString(CHW02701SFConst.CD_LIST, X31CWebConst.DATABEAN_ADD_VALUE, "");
			subbean.sendMessageString(CHW02701SFConst.NM_LIST, X31CWebConst.DATABEAN_ADD_VALUE, "");
			subbean.sendMessageString(CHW02701SFConst.INDEX, X31CWebConst.DATABEAN_SET_VALUE, "0");

			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);

				if(
					("1".equals(childMap.get("cd_div")) && !CHW02701SFLogic.KAIK_SBT_CONT_KESSAI.equals(kaikSbtValue))
					|| ("2".equals(childMap.get("cd_div")) && (CHW02701SFLogic.KAIK_SBT_SAIKEN_ZENTOU.equals(kaikSbtValue) 
																|| CHW02701SFLogic.KOFURI_CLEARPASS_ZENTOU.equals(kaikSbtValue)
																|| CHW02701SFLogic.KOFURI_CLEARPASS_TOUYOKU.equals(kaikSbtValue)
																|| CHW02701SFLogic.KOFURI_SMBC_ZENTOU.equals(kaikSbtValue)
																|| CHW02701SFLogic.KOFURI_SMBC_TOUYOKU.equals(kaikSbtValue)
																|| CHW02701SFLogic.KAIK_SBT_CRE_SVC.equals(kaikSbtValue)
																|| CHW02701SFLogic.KAIK_SBT_CRE_CONT.equals(kaikSbtValue)
																|| CHW02701SFLogic.KAIK_SBT_COV_REAL_ZENTOU.equals(kaikSbtValue)
																|| CHW02701SFLogic.KAIK_SBT_COV_TSUJO_ZENTOU.equals(kaikSbtValue)
																|| CHW02701SFLogic.KAIK_SBT_SOKUJI_KESSAI_ZENTOU.equals(kaikSbtValue)))
					||("3".equals(childMap.get("cd_div")) && CHW02701SFLogic.KAIK_SBT_CONT_KESSAI.equals(kaikSbtValue))
					||("4".equals(childMap.get("cd_div")) && (CHW02701SFLogic.KAIK_SBT_COV_REAL_ZENTOU.equals(kaikSbtValue)
																|| CHW02701SFLogic.KAIK_SBT_COV_TSUJO_ZENTOU.equals(kaikSbtValue)
																|| CHW02701SFLogic.KAIK_SBT_SOKUJI_KESSAI_ZENTOU.equals(kaikSbtValue)))
				)
				{
					// 補正種別.コードリスト
					subbean.sendMessageString(CHW02701SFConst.CD_LIST, X31CWebConst.DATABEAN_ADD_VALUE, (String) childMap.get("cd_div"));
					// 補正種別.名称リスト
					subbean.sendMessageString(CHW02701SFConst.NM_LIST, X31CWebConst.DATABEAN_ADD_VALUE, (String) childMap.get("cd_div_nm"));
				}
			}
		}

		return bean;
	}

	
	/**
	 * 下りマッピング
	 * 
	 * @param bean [0]：入金登録
	 * @param outputMap マップ
	 * @return [0]：入金登録
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV009203SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("CHSV009203SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV009203SC");
		}

		ArrayList childList = null;
		
		// 金融機関
		X31SDataBeanAccessArray CHSV009203SCList = bean[0].getDataBeanArray(CHW02701SFConst.BANK_NM);
		X31SDataBeanAccess subbean = CHSV009203SCList.getDataBean(0);

		subbean.sendMessage(CHW02701SFConst.INDEX, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW02701SFConst.CD_LIST, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW02701SFConst.NM_LIST, X31CWebConst.DATABEAN_CLEAR);

		if (bean[0] != null && parentMap != null && parentMap.containsKey("ECH0691B020CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("ECH0691B020CBSMsg1List");
			
			subbean.sendMessageString(CHW02701SFConst.CD_LIST, X31CWebConst.DATABEAN_ADD_VALUE, "");
			subbean.sendMessageString(CHW02701SFConst.NM_LIST, X31CWebConst.DATABEAN_ADD_VALUE, "");
			subbean.sendMessageString(CHW02701SFConst.INDEX, X31CWebConst.DATABEAN_SET_VALUE, "0");
			
			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);

				String cd = "";
				String nm = "";
				if (childMap != null)
				{
					cd = (String)childMap.get("kaik_ucwk_cd");
					nm = (String)childMap.get("kaik_ucwk_nm");
					nm = nm.replaceAll("窓口入金補正　", "");
				}
				// 金融機関.卸先事業者コードリスト ← 卸先事業者名一覧照会マップ.コード名称管理コード区分一覧照会明細.コード区分
				subbean.sendMessageString(CHW02701SFConst.CD_LIST, X31CWebConst.DATABEAN_ADD_VALUE, cd);
				// 金融機関.卸先事業者名称リスト ← 卸先事業者名一覧照会マップ.コード名称管理コード区分一覧照会明細.コード区分名
				subbean.sendMessageString(CHW02701SFConst.NM_LIST, X31CWebConst.DATABEAN_ADD_VALUE, nm);
			}
		}

		return bean;
	}

	
	/**
	 * 下りマッピング
	 * 
	 * @param bean　[0]：入金登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV009204SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("CHSV009204SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV009204SC");
		}

		ArrayList childList = null;

		//債権回収委託会社
		X31SDataBeanAccessArray listCHSV009204SC_sknksitkcm_info_ECH0601B010CBSMsg1List = bean[0].getDataBeanArray(CHW02701SFConst.SKNKSITKCM);
		X31SDataBeanAccess subbean = listCHSV009204SC_sknksitkcm_info_ECH0601B010CBSMsg1List.getDataBean(0);

		if (listCHSV009204SC_sknksitkcm_info_ECH0601B010CBSMsg1List != null && parentMap != null && parentMap.containsKey("ECH0601B010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("ECH0601B010CBSMsg1List");
			subbean.sendMessageString(CHW02701SFConst.CD_LIST, X31CWebConst.DATABEAN_ADD_VALUE, "");
			subbean.sendMessageString(CHW02701SFConst.NM_LIST, X31CWebConst.DATABEAN_ADD_VALUE, "");
			subbean.sendMessageString(CHW02701SFConst.INDEX, X31CWebConst.DATABEAN_SET_VALUE, "0");

			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);

				String cd = new String();
				String nm = new String();
				if (childMap != null)
				{
					cd = (String)childMap.get("sknksitkcm_cd");
					nm = (String)childMap.get("sknksitkcm_nm");
				}
				// 債権回収委託会社.債権回収委託会社コードリスト ← 債権回収委託会社一覧照会マップ.債権回収委託会社一覧照会明細.債権回収委託会社コード
				subbean.sendMessageString(CHW02701SFConst.CD_LIST, X31CWebConst.DATABEAN_ADD_VALUE, cd);
				// 債権回収委託会社.債権回収委託会社名称リスト ← 債権回収委託会社一覧照会マップ.債権回収委託会社一覧照会明細.債権回収委託会社名
				subbean.sendMessageString(CHW02701SFConst.NM_LIST, X31CWebConst.DATABEAN_ADD_VALUE, nm);
			}
		}

		return bean;
	}

	
	/**
	 * 下りマッピング
	 * 
	 * @param bean　[0]：入金登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV009205SC(X31SDataBeanAccess[] bean, HashMap outputMap, String kaikSbtValue)
	{

		HashMap parentMap = null;
		List<String> svcValueList = null;
		List<String> contValueList = null;

		if (outputMap.containsKey("CHSV009205SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV009205SC");
		}
		
		if (outputMap.containsKey("CHSV009209SC"))
		{
			HashMap parentMapSvc = (HashMap)outputMap.get("CHSV009209SC");
			ArrayList childListSvc = (ArrayList)parentMapSvc.get("EZM0321B010CBSMsg1List");
			HashMap childMapSvc = (HashMap)childListSvc.get(0);
			String svcValue = (String) childMapSvc.get("work_param_sette_value");
			svcValueList = Arrays.asList(svcValue.split(","));
		}
		
		if (outputMap.containsKey("CHSV009210SC"))
		{
			HashMap parentMapCont = (HashMap)outputMap.get("CHSV009210SC");
			ArrayList childListCont = (ArrayList)parentMapCont.get("EZM0321B010CBSMsg1List");
			HashMap childMapCont = (HashMap)childListCont.get(0);
			String contValue = (String) childMapCont.get("work_param_sette_value");
			contValueList = Arrays.asList(contValue.split(","));
		}

		ArrayList childList = null;

		// クレジットカード会社
		X31SDataBeanAccessArray listCHSV009205SC_crecard_comp_info_EKK0531B002CBSMsg1List = bean[0].getDataBeanArray(CHW02701SFConst.CRECARD_COMP);
		X31SDataBeanAccess subbean = listCHSV009205SC_crecard_comp_info_EKK0531B002CBSMsg1List.getDataBean(0);

		if (listCHSV009205SC_crecard_comp_info_EKK0531B002CBSMsg1List != null && parentMap != null && parentMap.containsKey("EKK0531B002CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0531B002CBSMsg1List");
			
			subbean.sendMessageString(CHW02701SFConst.CD_LIST, X31CWebConst.DATABEAN_ADD_VALUE, "");
			subbean.sendMessageString(CHW02701SFConst.NM_LIST, X31CWebConst.DATABEAN_ADD_VALUE, "");
			subbean.sendMessageString(CHW02701SFConst.INDEX, X31CWebConst.DATABEAN_SET_VALUE, "0");


			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);

				String cd = new String();
				String nm = new String();
				if (childMap != null)
				{
					//IT2-2023-0000012 MOD START
					//cd = (String)childMap.get("crecard_comp_cd");
					cd = (String)childMap.get("credit_kokan_cd");
					//IT2-2023-0000012 MOD END
					nm = (String)childMap.get("crecard_comp_nm");
				}
				
				if((CHW02701SFLogic.KAIK_SBT_CRE_SVC.equals(kaikSbtValue) && svcValueList.contains(cd))
					|| (CHW02701SFLogic.KAIK_SBT_CRE_CONT.equals(kaikSbtValue) && contValueList.contains(cd))
					|| (CHW02701SFLogic.KAIK_SBT_CONT_KESSAI.equals(kaikSbtValue) && contValueList.contains(cd)))
				{
					//IT2-2023-0000012 MOD START
					//// クレジットカード会社情報.クレジットカード会社コードリスト ← クレジットカード会社一覧照会マップ.クレジットカード会社一覧.クレジットカード会社コード
					// クレジットカード会社情報.クレジットカード会社コードリスト ← クレジットカード会社一覧照会マップ.クレジットカード会社一覧.クレジット交換コード
					//IT2-2023-0000012 MOD END
					subbean.sendMessageString(CHW02701SFConst.CD_LIST, X31CWebConst.DATABEAN_ADD_VALUE, cd);
					// クレジットカード会社情報.クレジットカード会社名称リスト ← クレジットカード会社一覧照会マップ.クレジットカード会社一覧.クレジットカード会社名
					subbean.sendMessageString(CHW02701SFConst.NM_LIST, X31CWebConst.DATABEAN_ADD_VALUE, nm);
				}
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * 
	 * @param bean [0]：入金登録
	 * @param outputMap マップ
	 * @return [0]：入金登録
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV009206SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("CHSV009206SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV009206SC");
		}

		ArrayList childList = null;
		
		// コンテンツサービス
		X31SDataBeanAccessArray CHSV009201SCList = bean[0].getDataBeanArray(CHW02701SFConst.CONT_SVC);
		X31SDataBeanAccess subbean = CHSV009201SCList.getDataBean(0);

		if (bean[0] != null && parentMap != null && parentMap.containsKey("ECH0691B020CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("ECH0691B020CBSMsg1List");
			subbean.sendMessageString(CHW02701SFConst.CD_LIST, X31CWebConst.DATABEAN_ADD_VALUE, "");
			subbean.sendMessageString(CHW02701SFConst.NM_LIST, X31CWebConst.DATABEAN_ADD_VALUE, "");
			subbean.sendMessageString(CHW02701SFConst.INDEX, X31CWebConst.DATABEAN_SET_VALUE, "0");

			HashSet Set = new HashSet();
			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);
				
				String cd = "";
				String nm = "";
				if (childMap != null)
				{
					if(Set.contains(childMap.get("prc_kmk_cd")))
					{
						continue;
					}
					else
					{
						Set.add(childMap.get("prc_kmk_cd"));
					}
					
					cd = (String)childMap.get("prc_kmk_cd");
					nm = (String)childMap.get("kaik_ucwk_nm");
					nm = nm.replaceAll("　CB.*", "");
				}
				// コンテンツサービスリスト.料金項目コード
				subbean.sendMessageString(CHW02701SFConst.CD_LIST, X31CWebConst.DATABEAN_ADD_VALUE, cd);
				// コンテンツサービスリスト.会計内訳名称
				subbean.sendMessageString(CHW02701SFConst.NM_LIST, X31CWebConst.DATABEAN_ADD_VALUE, nm);
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：機器代金請求登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV009207SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV009207SC")){
			parentMap = (HashMap)outputMap.get("CHSV009207SC");
		}

		ArrayList childList = null;

		childList = (ArrayList)parentMap.get("ECH0501A010CBSMsg1List");

			HashMap childMap = (HashMap)childList.get(0);
		
			// 料金スケジュール定義リスト.イベント年月日 ← 料金スケジュール定義一意照会マップ.料金スケジュール一意明細.イベント年月日
			if (childMap != null) {
				 bean[0].sendMessageString(CHW02701SFConst.NEXT_KAIK_YMD, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("event_ymd"));
			} else {
				 bean[0].sendMessageString(CHW02701SFConst.NEXT_KAIK_YMD, X31CWebConst.DATABEAN_SET_VALUE, new String());
			}
			// 料金スケジュール定義リスト.請求年月 ← 料金スケジュール定義一意照会マップ.料金スケジュール一意明細.請求年月
			if (childMap != null) {
				 bean[0].sendMessageString(CHW02701SFConst.KAIK_SUMUP_MON, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_ym"));
			} else {
				 bean[0].sendMessageString(CHW02701SFConst.KAIK_SUMUP_MON, X31CWebConst.DATABEAN_SET_VALUE, new String());
			}

		return bean;
	}
	

	/**
	 * 下りマッピング
	 * 
	 * @param bean [0]：入金登録
	 * @param outputMap マップ
	 * @return [0]：入金登録
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV009208SC(X31SDataBeanAccess[] bean, HashMap outputMap,  HashMap initMap)
	{

		
		HashMap parentMap = null;
		if (outputMap.containsKey("CHSV009208SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV009208SC");
		}
		
		HashMap parentMap2 = null;
		if (initMap.containsKey("CHSV009202SC"))
		{
			parentMap2 = (HashMap)initMap.get("CHSV009202SC");
		}

		ArrayList childList = null;
		ArrayList childList2 = null;
		
		
		// 前回の検索結果をクリアする
		bean[0].getDataBeanArray(CHW02701SFConst.HOSEI_INFO_LIST).clearArray();
		
		X31SDataBeanAccessArray payWayInfoList = bean[0].getDataBeanArray(CHW02701SFConst.HOSEI_INFO_LIST);

		childList = null;
		if(payWayInfoList != null && parentMap != null && parentMap.containsKey("ECH0951B010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("ECH0951B010CBSMsg1List");
			
			for(int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if(payWayInfoList.getCount() - 1 >= i)
				{
					subbean = payWayInfoList.getDataBean(i);
				}
				else
				{
					subbean = payWayInfoList.addDataBean();
				}
				
				if (subbean == null)
				{
					continue;
				}
				
				HashMap childMap = (HashMap)childList.get(i);
				
				if (childMap != null)
				{

					subbean.sendMessageString(CHW02701SFConst.HOSEI_NO, X31CWebConst.DATABEAN_SET_VALUE,  (String)childMap.get("kaik_hosei_if_no"));
					
					// 一覧に表示する補正種別はコード値からコード名称に読み替えて表示
					childList2 = (ArrayList)parentMap2.get("EZM0171B010CBSMsg1List");
					for(int j = 0; j < childList2.size(); j++)
					{
						HashMap childMap2 = (HashMap)childList2.get(j);
						if(childMap.get("hosei_sbt_cd").equals(childMap2.get("cd_div"))){
							
							subbean.sendMessageString(CHW02701SFConst.HOSEI_SBT, X31CWebConst.DATABEAN_SET_VALUE,  (String)childMap2.get("cd_div_nm"));
						}
					}
					
					// 会計内訳名称
					subbean.sendMessageString(CHW02701SFConst.KAIK_UCWK_NM, X31CWebConst.DATABEAN_SET_VALUE,  (String)childMap.get("kaik_ucwk_nm"));
					// 補正年月日
					subbean.sendMessageString(CHW02701SFConst.HOSEI_YMD, X31CWebConst.DATABEAN_SET_VALUE,  (String)childMap.get("hosei_ymd"));
					// 件数
					subbean.sendMessageString(CHW02701SFConst.CNT, X31CWebConst.DATABEAN_SET_VALUE,  (String)childMap.get("cnt"));
					// 金額
					subbean.sendMessageString(CHW02701SFConst.AMNT, X31CWebConst.DATABEAN_SET_VALUE,  (String)childMap.get("amnt"));
					// 税抜金額
					subbean.sendMessageString(CHW02701SFConst.ZEINUKI_AMNT, X31CWebConst.DATABEAN_SET_VALUE,  (String)childMap.get("tax_exc_amnt"));
					// 消費税額
					subbean.sendMessageString(CHW02701SFConst.STAX_AMNT, X31CWebConst.DATABEAN_SET_VALUE,  (String)childMap.get("stax_amnt"));
					// 登録ユーザ−
					subbean.sendMessageString(CHW02701SFConst.ADD_USER, X31CWebConst.DATABEAN_SET_VALUE,  (String)childMap.get("upd_opeacnt"));
					// 更新年月日時分秒（更新前）
					subbean.sendMessageString(CHW02701SFConst.HOSEI_INFO_UPD_DTM, X31CWebConst.DATABEAN_SET_VALUE,  (String)childMap.get("upd_dtm"));
				}

			}
		}

		return bean;
	}
}