/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：CHSV0038_CHSV0038OPDBMapper
*	ソースファイル名：CHSV0038_CHSV0038OPDBMapper.java
*	作成者			：FJ
*	日付			：2012年08月02日
*＜機能概要＞
*	BP（請求書再発行画面情報取得）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/08/02	FJ			新規作成
*   v5.00.00	2013/07/03  FJ) 林		【LT-2013-0000205】 請求処理日に請求確定年月日を出力する対応
*   v5.00.01	2013/07/30  FJ)小野		【LT-2013-0000616】 請求書再発行の消費税マスク化制御不備
*   v5.00.02	2013/11/11  FJ)小野		【OM-2013-0003528】請求書再発行で窓口の場合、ケイ・オプティコムご利用料金を請求内訳に作成する。
*	v6.00.00	2013/11/28  FJ)小野		【OM-2013-0003200】SQL高負荷のため性能改善(SIFの項目削除に伴いBPマッピング項目削除)。
*	v38.00.00	2018/09/03  FJ)麻生		【ANK-3361-00-00】振込用紙発行手数料の変更
*	v52.00.00	2020/10/14	FJ)三原		【ANK-3838-00-00】窓口払い手数料の顧客負担方式導入
*	v52.00.01	2021/01/05	FJ)三原		【ANK-3838-00-00】窓口払い手数料の顧客負担方式導入
*	v53.00.00	2021/06/09	FJ)三原		【ANK-4070-00-00】窓口払い手数料の顧客負担方式導入　STEP2
*
**********************************************************************/
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.JACStrConst;
import eo.common.constant.JZM0171Constant;
import eo.web.webview.CHW00106SF.CHW00106SFConst;
import eo.web.webview.common.JCHPulldownUtil;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class CHSV0038_CHSV0038OPDBMapper {
	
	// ANK-3361-00-00 ADD START
	/** 料金項目抽出変換一覧照会明細 */
	private static final String ECH0401B010CBSMSG1LIST = "ECH0401B010CBSMsg1List";
	// ANK-3361-00-00 ADD END
	
	/**
	 * コンストラクタ
	 */
	public CHSV0038_CHSV0038OPDBMapper(){
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：請求書再発行
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV003801SC(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", JZM0171Constant.CD00985);

		outputMap.put("CHSV003801SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：請求書再発行
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV003802SC(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", JZM0171Constant.CD00983);

		outputMap.put("CHSV003802SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：請求書再発行
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV003803SC(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", JZM0171Constant.CD00977);

		outputMap.put("CHSV003803SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：請求書再発行
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV003804SC(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);

		// 請求契約番号 → 定額料金手数料一覧照会マップ.ＫＥＹ＿業務パラメータID
		parentMap.put("key_work_param_id", "AC_WKS_SKS_RE_HK_CMS");

		// システムコード → 定額料金手数料一覧照会マップ.ＫＥＹ＿システムコード
		parentMap.put("key_sys_cd", JACStrConst.SYS_CD_CH);

		// 抽出変換コード → 定額料金手数料一覧照会マップ.ＫＥＹ＿抽出変換コード
		parentMap.put("key_chsht_chg_cd", JACStrConst.CHSHT_CHG_CD_CST);

		outputMap.put("CHSV003804SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：請求書再発行
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV003806SC(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_seiky_kei_no", bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 印刷様式コード → 窓口支払一覧照会マップ.ＫＥＹ＿印刷様式
		parentMap.put("key_print_yoshiki", "0");
//		parentMap.put("key_print_yoshiki", bean[0].sendMessageString("印刷様式コード", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CHSV003806SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：請求書再発行
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV003807SC(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_seiky_kei_no", bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CHSV003807SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：請求書再発行
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV003808SC(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_seiky_kei_no", bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CHSV003808SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：請求書再発行
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV003809SC(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_seiky_kei_no", bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CHSV003809SC", parentMap);
						
		return outputMap;
	}

	// ANK-3361-00-00 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：請求書再発行
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setGETPRCKMKCSCHGELISTCC(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);

		ArrayList<HashMap<String, Object>> prcKmkList = new ArrayList<HashMap<String, Object>>();

		// -------------------------------------------------- //
		// 料金項目コード（請求書再発行手数料）
		// -------------------------------------------------- //
		HashMap<String, Object> childMap = null;
		childMap = new HashMap();
		childMap.put("key_work_param_id", JACStrConst.WKPARA_AC_WKS_SKS_RE_HK_CMS);
		childMap.put("key_sys_cd", JACStrConst.SYS_CD_AC);
		childMap.put("key_chsht_chg_cd", JACStrConst.CHSHT_CHG_CD_1);
		childMap.put("key_prc_grp_cd", JACStrConst.PRC_GRP_CD_SP);
		childMap.put("key_pcrs_cd", JACStrConst.PCRS_CD_SP);
		childMap.put("key_prc_svc_cd", "PE0101      ");

		prcKmkList.add(childMap);

		parentMap.put(JACStrConst.PRC_KMK_CS_CHGE_LIST, prcKmkList);

		outputMap.put(JACStrConst.PRC_KMK_CS_CHGE_LIST_CC, parentMap);

		return outputMap;
	}
	// ANK-3361-00-00 ADD END

	/**
	 * 下りマッピング
	 * @param bean　[0]：請求書再発行
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV003801SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV003801SC")){
			parentMap = (HashMap)outputMap.get("CHSV003801SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listCHSV003801SC_print_yoshiki_info_EZM0171B012CBSMsg1List = bean[0].getDataBeanArray("印刷様式情報");
		X31SDataBeanAccess subbean = listCHSV003801SC_print_yoshiki_info_EZM0171B012CBSMsg1List.getDataBean(0);
		
		subbean.sendMessage(CHW00106SFConst.PRINT_YOSHIKI_CD_LIST_01, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW00106SFConst.PRINT_YOSHIKI_NM_LIST_01, X31CWebConst.DATABEAN_CLEAR);

		childList = null;
		if(listCHSV003801SC_print_yoshiki_info_EZM0171B012CBSMsg1List != null && parentMap != null && parentMap.containsKey("EZM0171B012CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EZM0171B012CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				HashMap childMap = (HashMap)childList.get(i);
			
				// 印刷様式情報.印刷様式コードリスト ← 印刷様式取得マップ.コード名称管理コード区分一覧照会明細.コード区分
				if (childMap != null) {
					subbean.sendMessageString("印刷様式コードリスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div"));
				} else {
					subbean.sendMessageString("印刷様式コードリスト", X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// 印刷様式情報.印刷様式名称リスト ← 印刷様式取得マップ.コード名称管理コード区分一覧照会明細.コード区分名
				if (childMap != null) {
					subbean.sendMessageString("印刷様式名称リスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div_nm"));
				} else {
					subbean.sendMessageString("印刷様式名称リスト", X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// 印刷様式情報.印刷様式名称リスト ← 印刷様式取得マップ.コード名称管理コード区分一覧照会明細.コード区分名
				if (childMap != null) {
					subbean.sendMessageString("印刷様式名称表示用リスト", X31CWebConst.DATABEAN_ADD_VALUE, 
							// ANK-3838-00-00 MOD START
							//(String)childMap.get("cd_div") + JACStrConst.COLON + (String)childMap.get("cd_div_nm"));
							String.valueOf(i) + JACStrConst.COLON + (String)childMap.get("cd_div_nm"));
							// ANK-3838-00-00 MOD END
				} else {
					subbean.sendMessageString("印刷様式名称表示用リスト", X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// ANK-4070-00-00 ADD START
				// 印刷様式情報.印刷様式コード選択 ← i番目の値
				if (childMap != null) {
					// 初期表示コードが"1"(表示)の場合にsubbean.印刷様式コード選択にi番目の値を設定する
					if ("1".equals(childMap.get("shk_dsp_cd")))
					{
						subbean.sendMessageString("印刷様式コード選択", X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
					}
				} else {
					// 何もしない
				}
				// ANK-4070-00-00 ADD END
			}
		}


		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：請求書再発行
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV003802SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV003802SC")){
			parentMap = (HashMap)outputMap.get("CHSV003802SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listCHSV003802SC_barcode_yoshiki_info_EZM0171B012CBSMsg1List = bean[0].getDataBeanArray("バーコード様式情報");
		childList = null;
		if(listCHSV003802SC_barcode_yoshiki_info_EZM0171B012CBSMsg1List != null && parentMap != null && parentMap.containsKey("EZM0171B012CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EZM0171B012CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listCHSV003802SC_barcode_yoshiki_info_EZM0171B012CBSMsg1List.getCount() -1 >= i){
					subbean = listCHSV003802SC_barcode_yoshiki_info_EZM0171B012CBSMsg1List.getDataBean(i);
				}else{
					subbean = listCHSV003802SC_barcode_yoshiki_info_EZM0171B012CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// バーコード様式情報.バーコード様式コード ← バーコード様式取得マップ.コード名称管理コード区分一覧照会明細.コード区分
				if (childMap != null) {
					subbean.sendMessageString("バーコード様式コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cd_div"));
				} else {
					subbean.sendMessageString("バーコード様式コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// バーコード様式情報.バーコード様式名称 ← バーコード様式取得マップ.コード名称管理コード区分一覧照会明細.コード区分名
				if (childMap != null) {
					subbean.sendMessageString("バーコード様式名称", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cd_div_nm"));
				} else {
					subbean.sendMessageString("バーコード様式名称", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// バーコード様式情報.バーコード様式初期表示コード ← バーコード様式取得マップ.コード名称管理コード区分一覧照会明細.初期表示コード
				if (childMap != null) {
					subbean.sendMessageString("バーコード様式初期表示コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("shk_dsp_cd"));
				} else {
					subbean.sendMessageString("バーコード様式初期表示コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：請求書再発行
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV003803SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV003803SC")){
			parentMap = (HashMap)outputMap.get("CHSV003803SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listCHSV003803SC_hakko_sbt_info_EZM0171B012CBSMsg1List = bean[0].getDataBeanArray("発行種別情報");
		childList = null;
		if(listCHSV003803SC_hakko_sbt_info_EZM0171B012CBSMsg1List != null && parentMap != null && parentMap.containsKey("EZM0171B012CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EZM0171B012CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listCHSV003803SC_hakko_sbt_info_EZM0171B012CBSMsg1List.getCount() -1 >= i){
					subbean = listCHSV003803SC_hakko_sbt_info_EZM0171B012CBSMsg1List.getDataBean(i);
				}else{
					subbean = listCHSV003803SC_hakko_sbt_info_EZM0171B012CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// 発行種別情報.発行種別コード ← 発行種別取得マップ.コード名称管理コード区分一覧照会明細.コード区分
				if (childMap != null) {
					subbean.sendMessageString("発行種別コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cd_div"));
				} else {
					subbean.sendMessageString("発行種別コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行種別情報.発行種別名称 ← 発行種別取得マップ.コード名称管理コード区分一覧照会明細.コード区分名
				if (childMap != null) {
					subbean.sendMessageString("発行種別名称", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cd_div_nm"));
				} else {
					subbean.sendMessageString("発行種別名称", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行種別情報.発行種別初期表示コード ← 発行種別取得マップ.コード名称管理コード区分一覧照会明細.初期表示コード
				if (childMap != null) {
					subbean.sendMessageString("発行種別初期表示コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("shk_dsp_cd"));
				} else {
					subbean.sendMessageString("発行種別初期表示コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：請求書再発行
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV003804SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV003804SC")){
			parentMap = (HashMap)outputMap.get("CHSV003804SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listCHSV003804SC_hand_commision_info_EAC0281B020CBSMsg1List = bean[0].getDataBeanArray("手数料情報");
		X31SDataBeanAccess subbean = listCHSV003804SC_hand_commision_info_EAC0281B020CBSMsg1List.getDataBean(0);
		
		subbean.sendMessage(CHW00106SFConst.HAND_COMMISION_CD_LIST_04, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW00106SFConst.HAND_COMMISION_NM_LIST_04, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW00106SFConst.OUTPUT_PRC_GRP_CD_LIST_04, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW00106SFConst.OUT_PCRS_CD_LIST_04, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW00106SFConst.OUT_PRC_SVC_CD_LIST_04, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW00106SFConst.OUT_PRC_KMK_CD_LIST_04, X31CWebConst.DATABEAN_CLEAR);

		childList = null;
		if(listCHSV003804SC_hand_commision_info_EAC0281B020CBSMsg1List != null && parentMap != null && parentMap.containsKey("EAC0281B020CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EAC0281B020CBSMsg1List");

			// 先頭行に「無」を追加
			subbean.sendMessageString("手数料コードリスト", X31CWebConst.DATABEAN_ADD_VALUE, new String());
			subbean.sendMessageString("手数料名称リスト", X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.HNTIG_SET_VALUE_NS);
			subbean.sendMessageString("出力料金グループコードリスト", X31CWebConst.DATABEAN_ADD_VALUE, new String());
			subbean.sendMessageString("出力料金コースコードリスト", X31CWebConst.DATABEAN_ADD_VALUE, new String());
			subbean.sendMessageString("出力料金サービスコードリスト", X31CWebConst.DATABEAN_ADD_VALUE, new String());
			subbean.sendMessageString("出力料金項目コードリスト", X31CWebConst.DATABEAN_ADD_VALUE, new String());

			for(int i = 0; i < childList.size(); i++){
				HashMap childMap = (HashMap)childList.get(i);
			
				// 手数料情報.手数料名称リスト ← 定額料金手数料一覧照会マップ.定額料金手数料.料金
				if (childMap != null)
				{
					subbean.sendMessageString("手数料コードリスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("prc"));
					subbean.sendMessageString("手数料名称リスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("prc") + JACStrConst.YEN);
					subbean.sendMessageString("出力料金グループコードリスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("output_prc_grp_cd"));
					subbean.sendMessageString("出力料金コースコードリスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("out_pcrs_cd"));
					subbean.sendMessageString("出力料金サービスコードリスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("out_prc_svc_cd"));
					subbean.sendMessageString("出力料金項目コードリスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("out_prc_kmk_cd"));
				}
				else
				{
					subbean.sendMessageString("手数料コードリスト", X31CWebConst.DATABEAN_ADD_VALUE, new String());
					subbean.sendMessageString("手数料名称リスト", X31CWebConst.DATABEAN_ADD_VALUE, new String());
					subbean.sendMessageString("出力料金グループコードリスト", X31CWebConst.DATABEAN_ADD_VALUE, new String());
					subbean.sendMessageString("出力料金コースコードリスト", X31CWebConst.DATABEAN_ADD_VALUE, new String());
					subbean.sendMessageString("出力料金サービスコードリスト", X31CWebConst.DATABEAN_ADD_VALUE, new String());
					subbean.sendMessageString("出力料金項目コードリスト", X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：請求書再発行
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV003806SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV003806SC")){
			parentMap = (HashMap)outputMap.get("CHSV003806SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listCHSV003806SC_hakko_mado_info_ECH0011B010CBSMsg1List = bean[0].getDataBeanArray("発行対象情報（窓口）");
		childList = null;
		if(listCHSV003806SC_hakko_mado_info_ECH0011B010CBSMsg1List != null && parentMap != null && parentMap.containsKey("ECH0011B010CBSMsg1List")){
			childList = (ArrayList)parentMap.get("ECH0011B010CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listCHSV003806SC_hakko_mado_info_ECH0011B010CBSMsg1List.getCount() -1 >= i){
					subbean = listCHSV003806SC_hakko_mado_info_ECH0011B010CBSMsg1List.getDataBean(i);
				}else{
					subbean = listCHSV003806SC_hakko_mado_info_ECH0011B010CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// 発行対象情報（窓口）.債権番号 ← 窓口支払一覧照会マップ.債権一覧明細.債権番号
				if (childMap != null) {
					subbean.sendMessageString("債権番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("saiken_no"));
				} else {
					subbean.sendMessageString("債権番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行対象情報（窓口）.請求年月 ← 窓口支払一覧照会マップ.債権一覧明細.債権確定年月
				if (childMap != null) {
					subbean.sendMessageString("請求年月", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("saiken_fix_ym"));
				} else {
					subbean.sendMessageString("請求年月", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行対象情報（窓口）.債権ステータス ← 窓口支払一覧照会マップ.債権一覧明細.債権ステータス
				if (childMap != null) {
					subbean.sendMessageString("債権ステータス", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("saiken_stat"));
				} else {
					subbean.sendMessageString("債権ステータス", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行対象情報（窓口）.収納状態 ← 窓口支払一覧照会マップ.債権一覧明細.債権ステータス名称
				if (childMap != null) {
					subbean.sendMessageString("収納状態", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("saiken_stat_nm"));
				} else {
					subbean.sendMessageString("収納状態", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行対象情報（窓口）.請求方法コード ← 窓口支払一覧照会マップ.債権一覧明細.請求方法コード
				if (childMap != null) {
					subbean.sendMessageString("請求方法コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_way_cd"));
				} else {
					subbean.sendMessageString("請求方法コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行対象情報（窓口）.請求方法 ← 窓口支払一覧照会マップ.債権一覧明細.請求方法コード名称
				if (childMap != null) {
					subbean.sendMessageString("請求方法", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_way_cd_nm"));
				} else {
					subbean.sendMessageString("請求方法", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行対象情報（窓口）.請求種別 ← 窓口支払一覧照会マップ.債権一覧明細.請求種別コード名称
				if (childMap != null) {
					subbean.sendMessageString("請求種別", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_sbt_cd_nm"));
				} else {
					subbean.sendMessageString("請求種別", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行対象情報（窓口）.未納額 ← 窓口支払一覧照会マップ.債権一覧明細.未納額
				if (childMap != null) {
					subbean.sendMessageString("未納額", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("minou_amnt"));

					String minouAmnt = (String)childMap.get("minou_amnt");
					if(minouAmnt == null || JACStrConst.KARA_MOJI.equals(minouAmnt))
					{
						subbean.sendMessageString("未納額", X31CWebConst.DATABEAN_SET_VALUE, "0");
					}
				} else {
					subbean.sendMessageString("未納額", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}

				// 発行対象情報（窓口）.充当額 ← 窓口支払一覧照会マップ.債権一覧明細.充当額
				if (childMap != null) {
					subbean.sendMessageString("充当額", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("jyto_amnt"));

					String juto_amnt = (String)childMap.get("jyto_amnt");
					if(juto_amnt == null || JACStrConst.KARA_MOJI.equals(juto_amnt))
					{
						subbean.sendMessageString("充当額", X31CWebConst.DATABEAN_SET_VALUE, "0");
					}
				} else {
					subbean.sendMessageString("充当額", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}

				// 発行対象情報（窓口）.請求番号 ← 窓口支払一覧照会マップ.債権一覧明細.請求番号
				if (childMap != null) {
					subbean.sendMessageString("請求番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_no"));
				} else {
					subbean.sendMessageString("請求番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：請求書再発行
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV003807SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV003807SC")){
			parentMap = (HashMap)outputMap.get("CHSV003807SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listCHSV003807SC_hakko_koza_info_ECH0051B030CBSMsg1List = bean[0].getDataBeanArray("発行対象情報（口座振替）");
		childList = null;
		if(listCHSV003807SC_hakko_koza_info_ECH0051B030CBSMsg1List != null && parentMap != null && parentMap.containsKey("ECH0051B030CBSMsg1List")){
			childList = (ArrayList)parentMap.get("ECH0051B030CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listCHSV003807SC_hakko_koza_info_ECH0051B030CBSMsg1List.getCount() -1 >= i){
					subbean = listCHSV003807SC_hakko_koza_info_ECH0051B030CBSMsg1List.getDataBean(i);
				}else{
					subbean = listCHSV003807SC_hakko_koza_info_ECH0051B030CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// 発行対象情報（口座振替）.請求番号 ← 口座振替一覧照会マップ.請求内訳一覧明細.請求番号
				if (childMap != null) {
					subbean.sendMessageString("請求番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_no"));
				} else {
					subbean.sendMessageString("請求番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行対象情報（口座振替）.請求年月 ← 口座振替一覧照会マップ.請求内訳一覧明細.請求年月
				if (childMap != null) {
					subbean.sendMessageString("請求年月", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_ym"));
				} else {
					subbean.sendMessageString("請求年月", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行対象情報（口座振替）.請求方法コード ← 口座振替一覧照会マップ.請求内訳一覧明細.契約請求方法コード
				if (childMap != null) {
					subbean.sendMessageString("請求方法コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_way_cd"));
				} else {
					subbean.sendMessageString("請求方法コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行対象情報（口座振替）.請求方法 ← 口座振替一覧照会マップ.請求内訳一覧明細.契約請求方法コード名称
				if (childMap != null) {
					subbean.sendMessageString("請求方法", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_way_cd_nm"));
				} else {
					subbean.sendMessageString("請求方法", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行対象情報（口座振替）.請求額 ← 口座振替一覧照会マップ.請求内訳一覧明細.請求金額
				if (childMap != null) {
					subbean.sendMessageString("請求額", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_amnt"));

					String seikyAmnt = (String)childMap.get("seiky_amnt");
					if(seikyAmnt == null || JACStrConst.KARA_MOJI.equals(seikyAmnt))
					{
						subbean.sendMessageString("請求額", X31CWebConst.DATABEAN_SET_VALUE, "0");
					}
				} else {
					subbean.sendMessageString("請求額", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行対象情報（口座振替）.発行日 ← 口座振替一覧照会マップ.請求内訳一覧明細.請求確定年月日
				if (childMap != null) {
					subbean.sendMessageString("発行日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_fix_ymd"));
				} else {
					subbean.sendMessageString("発行日", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行対象情報（口座振替）.合算 ← 口座振替一覧照会マップ.請求内訳一覧明細.合算フラグ
				if (childMap != null) {
					if (JACStrConst.GSAN_FLG_ON.equals((String)childMap.get("gsan_flg")))
					{
						subbean.sendMessageString("合算", X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.HNTIG_SET_VALUE_GSAN);
					}
				} else {
					subbean.sendMessageString("合算", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行対象情報（口座振替）.未収額 ← 口座振替一覧照会マップ.請求内訳一覧明細.未収額
				if (childMap != null) {
					subbean.sendMessageString("未収額", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("misyu_amnt"));

					String misyuAmnt = (String)childMap.get("misyu_amnt");
					if(misyuAmnt == null || JACStrConst.KARA_MOJI.equals(misyuAmnt))
					{
						subbean.sendMessageString("未収額", X31CWebConst.DATABEAN_SET_VALUE, "0");
					}
				} else {
					subbean.sendMessageString("未収額", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：請求書再発行
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV003808SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV003808SC")){
			parentMap = (HashMap)outputMap.get("CHSV003808SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listCHSV003808SC_hakko_crdt_info_ECH0051B030CBSMsg1List = bean[0].getDataBeanArray("発行対象情報（クレジット）");
		childList = null;
		if(listCHSV003808SC_hakko_crdt_info_ECH0051B030CBSMsg1List != null && parentMap != null && parentMap.containsKey("ECH0051B030CBSMsg1List")){
			childList = (ArrayList)parentMap.get("ECH0051B030CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listCHSV003808SC_hakko_crdt_info_ECH0051B030CBSMsg1List.getCount() -1 >= i){
					subbean = listCHSV003808SC_hakko_crdt_info_ECH0051B030CBSMsg1List.getDataBean(i);
				}else{
					subbean = listCHSV003808SC_hakko_crdt_info_ECH0051B030CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// 発行対象情報（クレジット）.請求番号 ← クレジット一覧照会マップ.請求内訳一覧明細.請求番号
				if (childMap != null) {
					subbean.sendMessageString("請求番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_no"));
				} else {
					subbean.sendMessageString("請求番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行対象情報（クレジット）.請求年月 ← クレジット一覧照会マップ.請求内訳一覧明細.請求年月
				if (childMap != null) {
					subbean.sendMessageString("請求年月", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_ym"));
				} else {
					subbean.sendMessageString("請求年月", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行対象情報（クレジット）.請求方法コード ← クレジット一覧照会マップ.請求内訳一覧明細.請求方法コード
				if (childMap != null) {
					subbean.sendMessageString("請求方法コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_way_cd"));
				} else {
					subbean.sendMessageString("請求方法コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行対象情報（クレジット）.請求方法 ← クレジット一覧照会マップ.請求内訳一覧明細.請求方法コード名称
				if (childMap != null) {
					subbean.sendMessageString("請求方法", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_way_cd_nm"));
				} else {
					subbean.sendMessageString("請求方法", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行対象情報（クレジット）.請求額 ← クレジット一覧照会マップ.請求内訳一覧明細.請求金額
				if (childMap != null) {
					subbean.sendMessageString("請求額", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_amnt"));

					String seikyAmnt = (String)childMap.get("seiky_amnt");
					if(seikyAmnt == null || JACStrConst.KARA_MOJI.equals(seikyAmnt))
					{
						subbean.sendMessageString("請求額", X31CWebConst.DATABEAN_SET_VALUE, "0");
					}
				} else {
					subbean.sendMessageString("請求額", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行対象情報（クレジット）.発行日 ← クレジット一覧照会マップ.請求内訳一覧明細.請求確定年月日
				if (childMap != null) {
					subbean.sendMessageString("発行日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_fix_ymd"));
				} else {
					subbean.sendMessageString("発行日", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行対象情報（クレジット）.合算 ← クレジット一覧照会マップ.請求内訳一覧明細.合算フラグ
				if (childMap != null) {
					if (JACStrConst.GSAN_FLG_ON.equals((String)childMap.get("gsan_flg")))
					{
						subbean.sendMessageString("合算", X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.HNTIG_SET_VALUE_GSAN);
					}
				} else {
					subbean.sendMessageString("合算", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行対象情報（クレジット）.未収額 ← クレジット一覧照会マップ.請求内訳一覧明細.未収額
				if (childMap != null) {
					subbean.sendMessageString("未収額", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("misyu_amnt"));

					String misyuAmnt = (String)childMap.get("misyu_amnt");
					if(misyuAmnt == null || JACStrConst.KARA_MOJI.equals(misyuAmnt))
					{
						subbean.sendMessageString("未収額", X31CWebConst.DATABEAN_SET_VALUE, "0");
					}
				} else {
					subbean.sendMessageString("未収額", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：請求書再発行
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV003809SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV003809SC")){
			parentMap = (HashMap)outputMap.get("CHSV003809SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listCHSV003809SC_hakko_receipt_info_ECH0051B030CBSMsg1List = bean[0].getDataBeanArray("発行対象情報（口振領収書のみ）");
		childList = null;
		if(listCHSV003809SC_hakko_receipt_info_ECH0051B030CBSMsg1List != null && parentMap != null && parentMap.containsKey("ECH0051B030CBSMsg1List")){
			childList = (ArrayList)parentMap.get("ECH0051B030CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listCHSV003809SC_hakko_receipt_info_ECH0051B030CBSMsg1List.getCount() -1 >= i){
					subbean = listCHSV003809SC_hakko_receipt_info_ECH0051B030CBSMsg1List.getDataBean(i);
				}else{
					subbean = listCHSV003809SC_hakko_receipt_info_ECH0051B030CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// 発行対象情報（口振領収書のみ）.請求番号 ← 口振領収書一覧照会マップ.請求内訳一覧明細.請求番号
				if (childMap != null) {
					subbean.sendMessageString("請求番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_no"));
				} else {
					subbean.sendMessageString("請求番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行対象情報（口振領収書のみ）.請求年月 ← 口振領収書一覧照会マップ.請求内訳一覧明細.請求年月
				if (childMap != null) {
					subbean.sendMessageString("請求年月", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_ym"));
				} else {
					subbean.sendMessageString("請求年月", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行対象情報（口振領収書のみ）.請求方法コード ← 口振領収書一覧照会マップ.請求内訳一覧明細.請求方法コード
				if (childMap != null) {
					subbean.sendMessageString("請求方法コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_way_cd"));
				} else {
					subbean.sendMessageString("請求方法コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行対象情報（口振領収書のみ）.請求方法 ← 口振領収書一覧照会マップ.請求内訳一覧明細.請求方法コード名称
				if (childMap != null) {
					subbean.sendMessageString("請求方法", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_way_cd_nm"));
				} else {
					subbean.sendMessageString("請求方法", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行対象情報（口振領収書のみ）.発行日 ← 口振領収書一覧照会マップ.請求内訳一覧明細.請求確定年月日
				if (childMap != null) {
					subbean.sendMessageString("発行日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_fix_ymd"));
				} else {
					subbean.sendMessageString("発行日", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行対象情報（口振領収書のみ）.合算 ← 口振領収書一覧照会マップ.請求内訳一覧明細.合算フラグ
				if (childMap != null) {
					if (JACStrConst.GSAN_FLG_ON.equals((String)childMap.get("gsan_flg")))
					{
						subbean.sendMessageString("合算", X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.HNTIG_SET_VALUE_GSAN);
					}
				} else {
					subbean.sendMessageString("合算", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 発行対象情報（口振領収書のみ）.領収額 ← 口振領収書一覧照会マップ.請求内訳一覧明細.請求額
				if (childMap != null) {
					subbean.sendMessageString("領収額", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_amnt"));

					String ryosyuAmnt = (String)childMap.get("seiky_amnt");
					if(ryosyuAmnt == null || JACStrConst.KARA_MOJI.equals(ryosyuAmnt))
					{
						subbean.sendMessageString("領収額", X31CWebConst.DATABEAN_SET_VALUE, "0");
					}
				} else {
					subbean.sendMessageString("領収額", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


		return bean;
	}

	// ANK-3361-00-00 ADD START
	/**
	 * 下りマッピング
	 * 
	 * @param bean　[0]：請求書再発行
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getGETPRCKMKCSCHGELISTCC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap prcMap = new HashMap();

		if (outputMap.containsKey(JACStrConst.PRC_KMK_CS_CHGE_LIST_CC))
		{
			HashMap parentMap = (HashMap)outputMap.get(JACStrConst.PRC_KMK_CS_CHGE_LIST_CC);

			if (parentMap != null && parentMap.containsKey(JACStrConst.PRC_KMK_CS_CHGE_LIST))
			{
				ArrayList<HashMap<String, Object>> childList = (ArrayList<HashMap<String, Object>>)parentMap.get(JACStrConst.PRC_KMK_CS_CHGE_LIST);

				if (childList != null && childList.size() > 0)
				{
					for (int i = 0; i < childList.size(); i++)
					{
						HashMap<String, Object> childMap = childList.get(i);
						if (childMap != null && childMap.get("key_work_param_id") != null)
						{
							prcMap.put(childMap.get("key_work_param_id"), childMap);
						}
					}
				}
			}
		}

		X31SDataBeanAccessArray handCommisionInfoList = bean[0].getDataBeanArray(CHW00106SFConst.HAND_COMMISION_INFO);
		if (handCommisionInfoList != null && handCommisionInfoList.getCount() > 0)
		{
			HashMap<ArrayList<String>, String> ech0401B010CbsMsgMap = new HashMap();

			// 請求書再発行手数料
			if (prcMap.containsKey(JACStrConst.WKPARA_AC_WKS_SKS_RE_HK_CMS) && prcMap.get(JACStrConst.WKPARA_AC_WKS_SKS_RE_HK_CMS) != null)
			{
				HashMap<String, Object> sksReHkCmsMap = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPARA_AC_WKS_SKS_RE_HK_CMS);
				if (sksReHkCmsMap != null && sksReHkCmsMap.containsKey(ECH0401B010CBSMSG1LIST)
						&& sksReHkCmsMap.get(ECH0401B010CBSMSG1LIST) != null)
				{
					ArrayList<HashMap<String, Object>> ech0401B010CbsMsg1List = (ArrayList<HashMap<String, Object>>)sksReHkCmsMap
							.get(ECH0401B010CBSMSG1LIST);
					for (int i = 0; i < ech0401B010CbsMsg1List.size(); i++)
					{
						HashMap<String, Object> ech0401B010CbsMsg = ech0401B010CbsMsg1List.get(i);
						if (ech0401B010CbsMsg != null)
						{
							ArrayList<String> cbsMsgKeys = new ArrayList();
							cbsMsgKeys.add((String)ech0401B010CbsMsg.get("prc_grp_cd"));
							cbsMsgKeys.add((String)ech0401B010CbsMsg.get("pcrs_cd"));
							cbsMsgKeys.add((String)ech0401B010CbsMsg.get("prc_svc_cd"));
							cbsMsgKeys.add((String)ech0401B010CbsMsg.get("prc_kmk_cd"));
							ech0401B010CbsMsgMap.put(cbsMsgKeys, (String)ech0401B010CbsMsg.get("prc_kmk_cd_nm"));
						}
					}
				}
			}

			X31SDataBeanAccess infoBean = handCommisionInfoList.getDataBean(0);
			int listInfoCnt = JCHPulldownUtil.getListCount(bean, CHW00106SFConst.HAND_COMMISION_INFO, CHW00106SFConst.HAND_COMMISION_NM_LIST_04);
			for (int i = 1; i < listInfoCnt; i++)
			{
				StringBuffer dispName = new StringBuffer();

				String name = infoBean.sendMessageString(CHW00106SFConst.HAND_COMMISION_NM_LIST_04, X31CWebConst.DATABEAN_GET_VALUE, i);
				if (name == null)
				{
					name = "";
				}
				dispName.append(name);
				dispName.append(JACStrConst.COLON);

				ArrayList<String> pulldownKeys = new ArrayList();
				pulldownKeys.add(infoBean.sendMessageString(CHW00106SFConst.OUTPUT_PRC_GRP_CD_LIST_04, X31CWebConst.DATABEAN_GET_VALUE, i));
				pulldownKeys.add(infoBean.sendMessageString(CHW00106SFConst.OUT_PCRS_CD_LIST_04, X31CWebConst.DATABEAN_GET_VALUE, i));
				pulldownKeys.add(infoBean.sendMessageString(CHW00106SFConst.OUT_PRC_SVC_CD_LIST_04, X31CWebConst.DATABEAN_GET_VALUE, i));
				pulldownKeys.add(infoBean.sendMessageString(CHW00106SFConst.OUT_PRC_KMK_CD_LIST_04, X31CWebConst.DATABEAN_GET_VALUE, i));

				if (ech0401B010CbsMsgMap.containsKey(pulldownKeys) && ech0401B010CbsMsgMap.get(pulldownKeys) != null)
				{
					dispName.append(ech0401B010CbsMsgMap.get(pulldownKeys));
				}

				// 手数料名称を設定
				infoBean.sendMessageString(CHW00106SFConst.HAND_COMMISION_NM_LIST_04, X31CWebConst.DATABEAN_SET_VALUE, i, dispName.toString());
			}
		}

		return bean;
	}
	// ANK-3361-00-00 ADD END

	// ANK-3838-00-00 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：請求書再発行
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV003810SC(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", JZM0171Constant.CD01755);
		
		outputMap.put("CHSV003810SC", parentMap);
		
		return outputMap;
	}

	/**
	 * 下りマッピング
	 * @param bean
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV003810SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV003810SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV003810SC");
		}
		
		ArrayList childList = new ArrayList();
		
		X31SDataBeanAccessArray listCHSV003810SC_pay_yoshi_info_EZM0171B012CBSMsg1List = bean[0].getDataBeanArray("支払用紙情報");
		
		if(listCHSV003810SC_pay_yoshi_info_EZM0171B012CBSMsg1List != null && parentMap != null && parentMap.containsKey("EZM0171B012CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EZM0171B012CBSMsg1List");
			
			if (childList != null)
			{
				for(int i = 0; i < childList.size(); i++)
				{
					X31SDataBeanAccess subbean = null;
					if(listCHSV003810SC_pay_yoshi_info_EZM0171B012CBSMsg1List.getCount() -1 >= i)
					{
						subbean = listCHSV003810SC_pay_yoshi_info_EZM0171B012CBSMsg1List.getDataBean(i);
					}
					else
					{
						subbean = listCHSV003810SC_pay_yoshi_info_EZM0171B012CBSMsg1List.addDataBean();
					}
					
					HashMap childMap = (HashMap)childList.get(i);
					if (subbean == null)
					{
						continue;
					}
					
					// 支払用紙情報.支払用紙コード ← 支払用紙取得マップ.コード名称管理コード区分一覧照会明細.コード区分
					if (childMap != null && childMap.containsKey("cd_div"))
					{
						subbean.sendMessageString(CHW00106SFConst.PAY_YOSHI_CD_11, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cd_div"));
					}
					else
					{
						subbean.sendMessageString(CHW00106SFConst.PAY_YOSHI_CD_11, X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					// 支払用紙情報.支払用紙名称 ← 支払用紙取得マップ.コード名称管理コード区分一覧照会明細.コード区分名
					if (childMap != null && childMap.containsKey("cd_div_nm"))
					{
						subbean.sendMessageString(CHW00106SFConst.PAY_YOSHI_NM_11, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cd_div_nm"));
					}
					else
					{
						subbean.sendMessageString(CHW00106SFConst.PAY_YOSHI_NM_11, X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					// 支払用紙情報.支払用紙初期表示コード ← 支払用紙取得マップ.コード名称管理コード区分一覧照会明細.初期表示コード
					if (childMap != null && childMap.containsKey("shk_dsp_cd"))
					{
						subbean.sendMessageString(CHW00106SFConst.PAY_YOSHI_SHK_DSP_CD_11, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("shk_dsp_cd"));
					}
					else
					{
						subbean.sendMessageString(CHW00106SFConst.PAY_YOSHI_SHK_DSP_CD_11, X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
				}
			}
		}
		
		return bean;
	}

	/**
	 * 上りマッピングをする
	 * @param bean
	 * @param outputMap
	 * @param func_code
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV003811SC(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_seiky_kei_no", bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("CHSV003811SC", parentMap);
		
		return outputMap;
	}

	/**
	 * 下りマッピング
	 * @param bean
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV003811SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV003811SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV003811SC");
		}
		
		// 支払用紙選択インデックスを初期化(コンビニ："0")
		bean[0].sendMessageString(CHW00106SFConst.PAY_YOSHI_SELECT_INDEX, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.PAY_YOSHI_CONV);
		
		// パーフェクト口座有無を初期化(パーフェクト口座なし："0")
		bean[0].sendMessageString(CHW00106SFConst.PKOZA_UM, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.PKOZA_UM_NASHI);
		
		// v52.00.01 ANK-3838-00-00 ADD START
		// パーフェクト口座番号を初期化
		bean[0].sendMessageString(CHW00106SFConst.PKOZA_NO, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// パーフェクト口座金融機関名を初期化
		bean[0].sendMessageString(CHW00106SFConst.PKOZA_BANK_NM, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// パーフェクト口座支店名を初期化
		bean[0].sendMessageString(CHW00106SFConst.PKOZA_SHITEN_NM, X31CWebConst.DATABEAN_SET_VALUE, "");
		// v52.00.01 ANK-3838-00-00 ADD END
		
		if (parentMap != null && parentMap.containsKey("ECH0941A010CBSMsg1List"))
		{
			ArrayList childList = (ArrayList)parentMap.get("ECH0941A010CBSMsg1List");
			
			// childListが空ではない場合
			if (childList != null && childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);
				
				// パーフェクト口座番号
				String pkozaNo = "";
				// パーフェクト口座利用有無
				String pkozaUseUm = "";
				
				// パーフェクト口座番号 ← パーフェクト口座一意照会マップ.パーフェクト口座番号
				if (childMap != null && childMap.containsKey("pkoza_no"))
				{
					pkozaNo = (String)childMap.get("pkoza_no");
					// v52.00.01 ANK-3838-00-00 ADD START
					bean[0].sendMessageString(CHW00106SFConst.PKOZA_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pkoza_no"));
					// v52.00.01 ANK-3838-00-00 ADD END
				}
				
				// パーフェクト口座利用有無 ← パーフェクト口座一意照会マップ.パーフェクト口座利用有無
				if (childMap != null && childMap.containsKey("pkoza_use_um"))
				{
					pkozaUseUm = (String)childMap.get("pkoza_use_um");
					// v52.00.01 ANK-3838-00-00 ADD START
					bean[0].sendMessageString(CHW00106SFConst.PKOZA_USE_UM, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pkoza_use_um"));
					// v52.00.01 ANK-3838-00-00 ADD END
				}
				
				// v52.00.01 ANK-3838-00-00 ADD START
				// パーフェクト口座金融機関名 ← パーフェクト口座一意照会マップ.パーフェクト口座金融機関名
				if (childMap != null && childMap.containsKey("pkoza_bank_nm"))
				{
					bean[0].sendMessageString(CHW00106SFConst.PKOZA_BANK_NM, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pkoza_bank_nm"));
				}
				
				// パーフェクト口座支店名 ← パーフェクト口座一意照会マップ.パーフェクト口座支店名
				if (childMap != null && childMap.containsKey("pkoza_shiten_nm"))
				{
					bean[0].sendMessageString(CHW00106SFConst.PKOZA_SHITEN_NM, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pkoza_shiten_nm"));
				}
				// v52.00.01 ANK-3838-00-00 ADD END
				
				// パーフェクト口座番号がnullではない、かつ、パーフェクト口座利用有無が"1"(利用する)の場合
				if (pkozaNo != null && !"".equals(pkozaNo) && "1".equals(pkozaUseUm))
				{
					// 支払用紙のラジオボタン(支払用紙選択インデックス)に"1"(コンビニ＋パーフェクト)を設定する
					bean[0].sendMessageString(CHW00106SFConst.PAY_YOSHI_SELECT_INDEX, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.PAY_YOSHI_CONV_PERF);
					
					// パーフェクト口座有無に"1"(パーフェクト口座あり)を設定する。
					bean[0].sendMessageString(CHW00106SFConst.PKOZA_UM, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.PKOZA_UM_ARI);
				}
			}
		}
		
		return bean;
	}
	// ANK-3838-00-00 ADD END

}