/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：CHSV0042_CHSV0042OPDBMapper
*	ソースファイル名：CHSV0042_CHSV0042OPDBMapper.java
*	作成者			：富士通
*	日付			：2011年11月10日
*＜機能概要＞
*	BP（随時請求登録画面情報取得）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/11/10	富士通		新規作成
*   v5.00.00	2013/07/04  FJ) 林	   【LT-2013-0000250】 請求内訳プルダウンに料金サービスコードも設定する対応
*	v5.00.01	2013/07/24	FJ)文元    【LT-2013-0000229】料金内訳ComboBoxでの重複行2行目以降を表示しないよう対応
*   v8.00.00	2013/12/25  FJ)小野    【ANK-1584-00-00】MVNO（本体）対応
*	v9.00.00	2014/04/16	FJ)小野    【ANK-2054-00-00】eoスマートリンク改修(端末補償)。
*	v9.00.01	2014/08/15  FJ)桑島    【OM-2014-0002355】ID番号コンボのソート順を修正。登録データの料金グループコードの修正。
*	v10.00.00	2014/10/03  FJ) 古田【OM-2014-0002369】マンションオーナー判別方法修正（支払方式コードを保持）
*   v16.00.00	2015/07/09	FJ)吉村	   【ANK-2480-00-00】新電力対応
*	v36.00.00	2017/12/26	FJ)貝本	   【ANK-3296-00-00】標準工事費分割請求
*	v52.00.00	2020/10/14	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 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.common.constant.JZM0171Constant;
import eo.web.webview.CHW00901SF.CHW00901SFConst;
import eo.web.webview.common.JCHDspEditUtil;
import eo.web.webview.common.JCHWebCommon;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class CHSV0042_CHSV0042OPDBMapper {

	/** 料金項目抽出変換一覧情報マップ */
	private static final String GETPRCKMKCSCHGELISTCC = "GETPRCKMKCSCHGELISTCC";

	/**
	 * コンストラクタ
	 */
	public CHSV0042_CHSV0042OPDBMapper(){
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：随時請求書登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV004201SC(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("CHSV004201SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：随時請求書登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV004202SC(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.CD00980);

		outputMap.put("CHSV004202SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：随時請求書登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV004203SC(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);

		// 内訳パターン → 内訳パターン取得マップ.ＫＥＹ＿コード種別コード
		/* TODO : JZM0171Constantの最新が取り込めていないため、リテラルで指定 */
		parentMap.put("key_cd_sbt_cd", "CD01290");

		outputMap.put("CHSV004203SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：随時請求書登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV004204SC(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("CHSV004204SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：随時請求書登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV004205SC(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);

		// 料金項目名称種別コード(1:料金項目名称) → 料金項目出力名称一覧照会マップ.ＫＥＹ＿料金項目名称種別コード
		parentMap.put("key_prc_kmk_nm_sbt_cd", JACStrConst.PRC_KMK_NM_SBT_CD_PRC_NM);
		// システムコード("CH") → 料金項目出力名称一覧照会マップ.ＫＥＹ＿システムコード
		parentMap.put("key_sys_cd", JACStrConst.SYS_CD_CH);
		// 業務機能識別コード → 料金項目出力名称一覧照会マップ.ＫＥＹ＿業務機能識別コード
		parentMap.put("key_work_kino_skbt_cd", JACStrConst.WORK_KINO_SKBT_PRC_U_SCR);
		// 抽出変換コード(1:抽出) → 料金項目出力名称一覧照会マップ.ＫＥＹ＿抽出変換コード
		parentMap.put("key_chsht_chg_cd", JACStrConst.CHSHT_CHG_CD_1);
		// 料金グループコード → 料金項目一覧取得マップ.ＫＥＹ＿料金グループコード
		parentMap.put("key_prc_grp_cd", JACStrConst.PRC_GRP_CD_SP);
		// 料金コースコード → 料金項目一覧取得マップ.ＫＥＹ＿料金コースコード
		parentMap.put("key_pcrs_cd", JACStrConst.PCRS_CD_SP);

		outputMap.put("CHSV004205SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：随時請求書登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV004206SC(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("CHSV004206SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：随時請求書登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV004207SC(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("CHSV004207SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @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);

		outputMap.put(GETPRCKMKCSCHGELISTCC, parentMap);

		return outputMap;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：随時請求書登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV004201SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV004201SC")){
			parentMap = (HashMap)outputMap.get("CHSV004201SC");
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listCHSV004201SC_barcode_yoshiki_info_EZM0171B012CBSMsg1List = bean[0].getDataBeanArray("バーコード様式情報");
		childList = null;
		if(listCHSV004201SC_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(listCHSV004201SC_barcode_yoshiki_info_EZM0171B012CBSMsg1List.getCount() -1 >= i){
					subbean = listCHSV004201SC_barcode_yoshiki_info_EZM0171B012CBSMsg1List.getDataBean(i);
				}else{
					subbean = listCHSV004201SC_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[] getCHSV004202SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV004202SC")){
			parentMap = (HashMap)outputMap.get("CHSV004202SC");
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listCHSV004202SC_input_sbt_info_EZM0171B012CBSMsg1List = bean[0].getDataBeanArray("入力種別情報");
		childList = null;
		if(listCHSV004202SC_input_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(listCHSV004202SC_input_sbt_info_EZM0171B012CBSMsg1List.getCount() -1 >= i){
					subbean = listCHSV004202SC_input_sbt_info_EZM0171B012CBSMsg1List.getDataBean(i);
				}else{
					subbean = listCHSV004202SC_input_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[] getCHSV004203SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV004203SC")){
			parentMap = (HashMap)outputMap.get("CHSV004203SC");
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listCHSV004203SC_uw_pattern_info_EZM0171B012CBSMsg1List = bean[0].getDataBeanArray("内訳パターン名称情報");
		X31SDataBeanAccess subbean = listCHSV004203SC_uw_pattern_info_EZM0171B012CBSMsg1List.getDataBean(0);

		subbean.sendMessage(CHW00901SFConst.UW_PTN_CD_LIST_06, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW00901SFConst.UW_PTN_SHK_DSP_CD_LIST_06, X31CWebConst.DATABEAN_CLEAR);

		childList = null;
		if(listCHSV004203SC_uw_pattern_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(CHW00901SFConst.UW_PTN_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div"));
				} else {
					subbean.sendMessageString(CHW00901SFConst.UW_PTN_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// 内訳パターン名称情報.内訳パターン名称表示用リスト ← 内訳パターン取得マップ.コード名称管理コード区分一覧照会明細.コード区分名
				if (childMap != null) {
					subbean.sendMessageString(CHW00901SFConst.UW_PTN_NM_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div_nm"));
				} else {
					subbean.sendMessageString(CHW00901SFConst.UW_PTN_NM_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// 内訳パターン名称情報.内訳パターン初期表示コードリスト ← 内訳パターン取得マップ.コード名称管理コード区分一覧照会明細.初期表示コード
				if (childMap != null) {
					subbean.sendMessageString(CHW00901SFConst.UW_PTN_SHK_DSP_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("shk_dsp_cd"));
				} else {
					subbean.sendMessageString(CHW00901SFConst.UW_PTN_SHK_DSP_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：随時請求書登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV004204SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV004204SC")){
			parentMap = (HashMap)outputMap.get("CHSV004204SC");
		}

		ArrayList childList = null;
//
//		X31SDataBeanAccessArray listCHSV004204SC_id_no_info_EKK0321B002CBSMsg1List2 = bean[0].getDataBeanArray(CHW00901SFConst.ID_NO_INFO_UW_PTN);
//		X31SDataBeanAccess subbean2 = listCHSV004204SC_id_no_info_EKK0321B002CBSMsg1List2.getDataBean(0);
//
//		X31SDataBeanAccessArray listCHSV004204SC_id_no_info_EKK0321B002CBSMsg1List = bean[0].getDataBeanArray("ＩＤ番号情報（内訳追加用）");
//		X31SDataBeanAccess subbean = listCHSV004204SC_id_no_info_EKK0321B002CBSMsg1List.getDataBean(0);
//
//		subbean2.sendMessage(CHW00901SFConst.ID_NO_LIST_UW_PTN_05, X31CWebConst.DATABEAN_CLEAR);
//		subbean2.sendMessageString(CHW00901SFConst.ID_NO_LIST_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
//
//		subbean.sendMessage(CHW00901SFConst.SVC_KEI_NO_LIST_04, X31CWebConst.DATABEAN_CLEAR);
//		subbean.sendMessageString(CHW00901SFConst.SVC_KEI_NO_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
//
//		childList = null;
//		if(listCHSV004204SC_id_no_info_EKK0321B002CBSMsg1List != null && parentMap != null && parentMap.containsKey("EKK0321B002CBSMsg1List")){
//			childList = (ArrayList)parentMap.get("EKK0321B002CBSMsg1List");
//
//			for(int i = 0; i < childList.size(); i++){
//				HashMap childMap = (HashMap)childList.get(i);
//
//				
//				if (childMap != null) 
//				{
//					// ＩＤ番号情報（内訳追加用）.ＩＤ番号リスト（内訳追加用） ← 課金先一覧照会（請求契約番号／サービス契約番号）.課金先一覧照会（請求契約番号／サービス契約番号）明細.サービス契約番号
//					subbean2.sendMessageString(CHW00901SFConst.ID_NO_LIST_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("svc_kei_no"));
//					subbean.sendMessageString(CHW00901SFConst.SVC_KEI_NO_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("svc_kei_no"));
//
//					// 請求内訳情報.整理番号 ← 課金先一覧照会（マンション情報）.課金先一覧明細.整理番号
//					subbean.sendMessageString(CHW00901SFConst.SEIRI_NO_11, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiri_no"));
//
//					// 請求内訳情報.マンションＩＤ ← 課金先一覧照会（マンション情報）.課金先一覧明細.マンションＩＤ
//					subbean.sendMessageString(CHW00901SFConst.MANSION_ID_11, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mansion_id"));
//
//					// 請求内訳情報.回線場所住所補記＿部屋番号 ← 課金先一覧照会（マンション情報）.課金先一覧明細.回線場所住所補記・部屋番号
//					subbean.sendMessageString(CHW00901SFConst.KAISEN_PLACE_ADRRM_11, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kaisen_place_adrrm"));
//				}
//				else 
//				{
//					subbean.sendMessageString(CHW00901SFConst.ID_NO_LIST_UW_PTN_05, X31CWebConst.DATABEAN_SET_VALUE, new String());
//					subbean.sendMessageString(CHW00901SFConst.SVC_KEI_NO_LIST_04, X31CWebConst.DATABEAN_SET_VALUE, new String());
//					subbean.sendMessageString(CHW00901SFConst.SEIRI_NO_11, X31CWebConst.DATABEAN_SET_VALUE, new String());
//					subbean.sendMessageString(CHW00901SFConst.MANSION_ID_11, X31CWebConst.DATABEAN_SET_VALUE, new String());
//					subbean.sendMessageString(CHW00901SFConst.KAISEN_PLACE_ADRRM_11, X31CWebConst.DATABEAN_SET_VALUE, new String());
//				}
//			}
//		}
//
//		return bean;

		X31SDataBeanAccessArray listCHSV004204SC_svc_kei_no_info_EKK0321B505CBSMsg1List = bean[0].getDataBeanArray(CHW00901SFConst.SVC_KEI_NO_INFO);
		X31SDataBeanAccess subbean = listCHSV004204SC_svc_kei_no_info_EKK0321B505CBSMsg1List.getDataBean(0);
		
		X31SDataBeanAccessArray listCHSV004204SC_svc_kei_no_info_uw_ptn_EKK0321B505CBSMsg1List = bean[0].getDataBeanArray(CHW00901SFConst.SVC_KEI_NO_INFO_UW_PTN);
		X31SDataBeanAccess uwSubbean = listCHSV004204SC_svc_kei_no_info_uw_ptn_EKK0321B505CBSMsg1List.getDataBean(0);

		subbean.sendMessage(CHW00901SFConst.SEIRI_NO_LIST_04, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW00901SFConst.MANSION_ID_LIST_04, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW00901SFConst.KAISEN_PLACE_ADRRM_LIST_04, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW00901SFConst.SVC_KEI_NO_LIST_04, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW00901SFConst.SVC_KEI_NO_LIST_DSP_04, X31CWebConst.DATABEAN_CLEAR);
		/* ++++++++++ v10.00.00 変更開始 ++++++++++ */
		subbean.sendMessage(CHW00901SFConst.PAY_HOSHIKI_CD_LIST_04, X31CWebConst.DATABEAN_CLEAR);
		/* ++++++++++ v10.00.00 変更完了 ++++++++++ */

		subbean.sendMessageString(CHW00901SFConst.SEIRI_NO_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
		subbean.sendMessageString(CHW00901SFConst.MANSION_ID_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
		subbean.sendMessageString(CHW00901SFConst.KAISEN_PLACE_ADRRM_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
		subbean.sendMessageString(CHW00901SFConst.SVC_KEI_NO_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
		subbean.sendMessageString(CHW00901SFConst.SVC_KEI_NO_LIST_DSP_04, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
		/* ++++++++++ v10.00.00 変更開始 ++++++++++ */
		subbean.sendMessageString(CHW00901SFConst.PAY_HOSHIKI_CD_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
		/* ++++++++++ v10.00.00 変更完了 ++++++++++ */

		uwSubbean.sendMessage(CHW00901SFConst.SEIRI_NO_LIST_UW_PTN_05, X31CWebConst.DATABEAN_CLEAR);
		uwSubbean.sendMessage(CHW00901SFConst.MANSION_ID_LIST_UW_PTN_05, X31CWebConst.DATABEAN_CLEAR);
		uwSubbean.sendMessage(CHW00901SFConst.KAISEN_PLACE_ADRRM_LIST_UW_PTN_05, X31CWebConst.DATABEAN_CLEAR);
		uwSubbean.sendMessage(CHW00901SFConst.SVC_KEI_NO_LIST_UW_PTN_05, X31CWebConst.DATABEAN_CLEAR);
		uwSubbean.sendMessage(CHW00901SFConst.SVC_KEI_NO_LIST_DSP_UW_PTN_05, X31CWebConst.DATABEAN_CLEAR);
		/* ++++++++++ v10.00.00 変更開始 ++++++++++ */
		uwSubbean.sendMessage(CHW00901SFConst.PAY_HOSHIKI_CD_LIST_UW_PTN_05, X31CWebConst.DATABEAN_CLEAR);
		/* ++++++++++ v10.00.00 変更完了 ++++++++++ */
		
		uwSubbean.sendMessageString(CHW00901SFConst.SEIRI_NO_LIST_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
		uwSubbean.sendMessageString(CHW00901SFConst.MANSION_ID_LIST_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
		uwSubbean.sendMessageString(CHW00901SFConst.KAISEN_PLACE_ADRRM_LIST_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
		uwSubbean.sendMessageString(CHW00901SFConst.SVC_KEI_NO_LIST_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
		uwSubbean.sendMessageString(CHW00901SFConst.SVC_KEI_NO_LIST_DSP_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
		/* ++++++++++ v10.00.00 変更開始 ++++++++++ */
		uwSubbean.sendMessageString(CHW00901SFConst.PAY_HOSHIKI_CD_LIST_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
		/* ++++++++++ v10.00.00 変更完了 ++++++++++ */
		
		if (listCHSV004204SC_svc_kei_no_info_EKK0321B505CBSMsg1List != null && parentMap != null && parentMap.containsKey("EKK0321B505CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0321B505CBSMsg1List");
			
			//OM-2014-0002355 ADD START
			//支払方式コード
			String payHoshikiCd_info = JACStrConst.KARA_MOJI;
			//マンションID
			String mansionId_info = JACStrConst.KARA_MOJI;
			//OM-2014-0002355 ADD END

			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);

				if (childMap != null)
				{
					String svcKeiNoDsp = (String)childMap.get("svc_kei_no");	// 課金先一覧照会（マンションID）.課金先一覧照会（マンションID）明細.サービス契約番号
					String svcKeiNo = (String)childMap.get("svc_kei_no");		// 課金先一覧照会（マンションID）.課金先一覧照会（マンションID）明細.サービス契約番号
					String mansionId = (String)childMap.get("mansion_id");		// 課金先一覧照会（マンションID）.課金先一覧照会（マンションID）明細.マンションID
					String roomNo = (String)childMap.get("kaisen_place_adrrm");	// 課金先一覧照会（マンションID）.課金先一覧照会（マンションID）明細.回線場所住所補記・部屋番号
					
					//OM-2014-0002355 ADD START
					String payHoshikiCd = (String)childMap.get("pay_hoshiki_cd"); // 課金先一覧照会（マンションID）.課金先一覧明細.支払方式コード

					if(JACStrConst.KARA_MOJI.equals(mansionId_info))
					{
						if(mansionId != null && !JACStrConst.KARA_MOJI.equals(mansionId))
						{
							mansionId_info = mansionId;
						}
						
						if(payHoshikiCd != null && !JACStrConst.KARA_MOJI.equals(payHoshikiCd))
						{
							payHoshikiCd_info = payHoshikiCd;
						}
					}
					else
					{
						if(!mansionId_info.equals(mansionId))
						{
							if("001".equals(payHoshikiCd_info) || "003".equals(payHoshikiCd_info))
							{
								svcKeiNoDsp = JCHDspEditUtil.codeNameEdit(mansionId_info, "00000");
								
								// サービス契約番号情報.サービス契約番号リスト表示用 ← 課金先一覧照会（マンションID）.課金先一覧照会（マンションID）明細.サービス契約番号
								subbean.sendMessageString(CHW00901SFConst.SVC_KEI_NO_LIST_DSP_04, X31CWebConst.DATABEAN_ADD_VALUE, svcKeiNoDsp);
								uwSubbean.sendMessageString(CHW00901SFConst.SVC_KEI_NO_LIST_DSP_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, svcKeiNoDsp);
								
								// サービス契約番号情報.サービス契約番号リスト ← 課金先一覧照会（マンションID）.課金先一覧照会（マンションID）明細.サービス契約番号
								subbean.sendMessageString(CHW00901SFConst.SVC_KEI_NO_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, "9999999999");
								uwSubbean.sendMessageString(CHW00901SFConst.SVC_KEI_NO_LIST_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, "9999999999");
								
								// サービス契約番号情報.整理番号リスト ← 課金先一覧照会（マンションID）.課金先一覧照会（マンションID）明細.整理番号
								subbean.sendMessageString(CHW00901SFConst.SEIRI_NO_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
								uwSubbean.sendMessageString(CHW00901SFConst.SEIRI_NO_LIST_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
								
								
								// サービス契約番号情報.マンションＩＤリスト ← 課金先一覧照会（マンションID）.課金先一覧照会（マンションID）明細.マンションＩＤ
								subbean.sendMessageString(CHW00901SFConst.MANSION_ID_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, mansionId_info);
								uwSubbean.sendMessageString(CHW00901SFConst.MANSION_ID_LIST_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, mansionId_info);
								
								// サービス契約番号情報.回線場所住所補記＿部屋番号リスト ← 課金先一覧照会（マンションID）.課金先一覧照会（マンションID）明細.回線場所住所補記＿部屋番号
								subbean.sendMessageString(CHW00901SFConst.KAISEN_PLACE_ADRRM_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, "00000");
								uwSubbean.sendMessageString(CHW00901SFConst.KAISEN_PLACE_ADRRM_LIST_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, "00000");
								
								/* ++++++++++ v10.00.00 変更開始 ++++++++++ */
								subbean.sendMessageString(CHW00901SFConst.PAY_HOSHIKI_CD_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
								uwSubbean.sendMessageString(CHW00901SFConst.PAY_HOSHIKI_CD_LIST_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
								/* ++++++++++ v10.00.00 変更完了 ++++++++++ */
								
							}
							
							if(mansionId != null && !JACStrConst.KARA_MOJI.equals(mansionId))
							{
								mansionId_info = mansionId;
							}
							else
							{
								mansionId_info = JACStrConst.KARA_MOJI;
							}
							
							if(payHoshikiCd != null && !JACStrConst.KARA_MOJI.equals(payHoshikiCd))
							{
								payHoshikiCd_info = payHoshikiCd;
							}
							else
							{
								payHoshikiCd_info = JACStrConst.KARA_MOJI;
							}
						
						}
					}

					//OM-2014-0002355 ADD END
					

					// マンションID + 部屋番号の場合
					if(JCHWebCommon.isNotNullOrEmpty(roomNo))
					{
						svcKeiNoDsp = JCHDspEditUtil.codeNameEdit(mansionId, roomNo);
					}
					// マンションIDの場合
					else if(JCHWebCommon.isNotNullOrEmpty(mansionId))
					{
						svcKeiNoDsp = mansionId;
					}
					// 上記以外の場合はサービス契約番号

					// サービス契約番号情報.整理番号リスト ← 課金先一覧照会（マンションID）.課金先一覧照会（マンションID）明細.整理番号
					subbean.sendMessageString(CHW00901SFConst.SEIRI_NO_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("seiri_no"));
					uwSubbean.sendMessageString(CHW00901SFConst.SEIRI_NO_LIST_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("seiri_no"));

					// サービス契約番号情報.マンションＩＤリスト ← 課金先一覧照会（マンションID）.課金先一覧照会（マンションID）明細.マンションＩＤ
					subbean.sendMessageString(CHW00901SFConst.MANSION_ID_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, mansionId);
					uwSubbean.sendMessageString(CHW00901SFConst.MANSION_ID_LIST_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, mansionId);

					// サービス契約番号情報.回線場所住所補記＿部屋番号リスト ← 課金先一覧照会（マンションID）.課金先一覧照会（マンションID）明細.回線場所住所補記＿部屋番号
					subbean.sendMessageString(CHW00901SFConst.KAISEN_PLACE_ADRRM_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, roomNo);
					uwSubbean.sendMessageString(CHW00901SFConst.KAISEN_PLACE_ADRRM_LIST_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, roomNo);

					// サービス契約番号情報.サービス契約番号リスト ← 課金先一覧照会（マンションID）.課金先一覧照会（マンションID）明細.サービス契約番号
					subbean.sendMessageString(CHW00901SFConst.SVC_KEI_NO_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, svcKeiNo);
					uwSubbean.sendMessageString(CHW00901SFConst.SVC_KEI_NO_LIST_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, svcKeiNo);

					// サービス契約番号情報.サービス契約番号リスト表示用 ← 課金先一覧照会（マンションID）.課金先一覧照会（マンションID）明細.サービス契約番号
					subbean.sendMessageString(CHW00901SFConst.SVC_KEI_NO_LIST_DSP_04, X31CWebConst.DATABEAN_ADD_VALUE, svcKeiNoDsp);
					uwSubbean.sendMessageString(CHW00901SFConst.SVC_KEI_NO_LIST_DSP_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, svcKeiNoDsp);
					
					/* ++++++++++ v10.00.00 変更開始 ++++++++++ */
					subbean.sendMessageString(CHW00901SFConst.PAY_HOSHIKI_CD_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, payHoshikiCd);
					uwSubbean.sendMessageString(CHW00901SFConst.PAY_HOSHIKI_CD_LIST_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, payHoshikiCd);
					/* ++++++++++ v10.00.00 変更完了 ++++++++++ */
					
					//OM-2014-0002355 ADD START
					//最終レコードの場合
					if(i+1 == childList.size())
					{
						if(mansionId_info.equals(mansionId))
						{
							//支払方式：居住者一括　以外の場合
							if("001".equals(payHoshikiCd_info) || "003".equals(payHoshikiCd_info))
							{
								svcKeiNoDsp = JCHDspEditUtil.codeNameEdit(mansionId_info, "00000");
								
								// サービス契約番号情報.サービス契約番号リスト表示用 ← 課金先一覧照会（マンションID）.課金先一覧照会（マンションID）明細.サービス契約番号
								subbean.sendMessageString(CHW00901SFConst.SVC_KEI_NO_LIST_DSP_04, X31CWebConst.DATABEAN_ADD_VALUE, svcKeiNoDsp);
								uwSubbean.sendMessageString(CHW00901SFConst.SVC_KEI_NO_LIST_DSP_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, svcKeiNoDsp);
								
								// サービス契約番号情報.サービス契約番号リスト ← 課金先一覧照会（マンションID）.課金先一覧照会（マンションID）明細.サービス契約番号
								subbean.sendMessageString(CHW00901SFConst.SVC_KEI_NO_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, "9999999999");
								uwSubbean.sendMessageString(CHW00901SFConst.SVC_KEI_NO_LIST_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, "9999999999");
								
								// サービス契約番号情報.整理番号リスト ← 課金先一覧照会（マンションID）.課金先一覧照会（マンションID）明細.整理番号
								subbean.sendMessageString(CHW00901SFConst.SEIRI_NO_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
								uwSubbean.sendMessageString(CHW00901SFConst.SEIRI_NO_LIST_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
								
								
								// サービス契約番号情報.マンションＩＤリスト ← 課金先一覧照会（マンションID）.課金先一覧照会（マンションID）明細.マンションＩＤ
								subbean.sendMessageString(CHW00901SFConst.MANSION_ID_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, mansionId_info);
								uwSubbean.sendMessageString(CHW00901SFConst.MANSION_ID_LIST_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, mansionId_info);
								
								// サービス契約番号情報.回線場所住所補記＿部屋番号リスト ← 課金先一覧照会（マンションID）.課金先一覧照会（マンションID）明細.回線場所住所補記＿部屋番号
								subbean.sendMessageString(CHW00901SFConst.KAISEN_PLACE_ADRRM_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, "00000");
								uwSubbean.sendMessageString(CHW00901SFConst.KAISEN_PLACE_ADRRM_LIST_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, "00000");
								
								/* ++++++++++ v10.00.00 変更開始 ++++++++++ */
								subbean.sendMessageString(CHW00901SFConst.PAY_HOSHIKI_CD_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
								uwSubbean.sendMessageString(CHW00901SFConst.PAY_HOSHIKI_CD_LIST_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
								/* ++++++++++ v10.00.00 変更完了 ++++++++++ */
							}
						}
					}
					
					//OM-2014-0002355 ADD END
					
				}
				else
				{
					subbean.sendMessageString(CHW00901SFConst.SEIRI_NO_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, new String());
					subbean.sendMessageString(CHW00901SFConst.MANSION_ID_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, new String());
					subbean.sendMessageString(CHW00901SFConst.KAISEN_PLACE_ADRRM_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, new String());
					subbean.sendMessageString(CHW00901SFConst.SVC_KEI_NO_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, new String());
					subbean.sendMessageString(CHW00901SFConst.SVC_KEI_NO_LIST_DSP_04, X31CWebConst.DATABEAN_ADD_VALUE, new String());

					subbean.sendMessageString(CHW00901SFConst.SEIRI_NO_LIST_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, new String());
					subbean.sendMessageString(CHW00901SFConst.MANSION_ID_LIST_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, new String());
					subbean.sendMessageString(CHW00901SFConst.KAISEN_PLACE_ADRRM_LIST_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, new String());
					subbean.sendMessageString(CHW00901SFConst.SVC_KEI_NO_LIST_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, new String());
					subbean.sendMessageString(CHW00901SFConst.SVC_KEI_NO_LIST_DSP_UW_PTN_05, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
			}
		}

		return bean;
		
		
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：随時請求書登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV004205SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if (outputMap.containsKey("CHSV004205SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV004205SC");
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listCHSV004205SCSC_prc_uw_info_ECH0401B040CBSMsg1List = bean[0].getDataBeanArray(CHW00901SFConst.PRC_KMK_INFO);
		X31SDataBeanAccess subbean = listCHSV004205SCSC_prc_uw_info_ECH0401B040CBSMsg1List.getDataBean(0);

		subbean.sendMessage(CHW00901SFConst.PRC_KMK_CD_LIST_10, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW00901SFConst.PRC_KMK_NM_LIST_10, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW00901SFConst.PRC_SVC_CD_LIST_10, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW00901SFConst.TEGAK_PRC_LIST_10, X31CWebConst.DATABEAN_CLEAR);

		HashMap<String, String> chkMap = new HashMap<String, String>(); // 重複行チェック用リスト
		
		// 選択されているキャンペーンの料金サービスコードを取得
		String selPrcSvcCd = bean[0].sendMessageString(CHW00901SFConst.PRC_SVC_CD, X31CWebConst.DATABEAN_GET_VALUE);
		Boolean isSelectedCamp = false;
		// キャンペーンの選択有無を判断
		if(JCHWebCommon.isNotNullOrEmpty(selPrcSvcCd))
		{
			isSelectedCamp = true;
		}

		childList = null;
		if (listCHSV004205SCSC_prc_uw_info_ECH0401B040CBSMsg1List != null && parentMap != null && parentMap.containsKey("ECH0401B040CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("ECH0401B040CBSMsg1List");

			// 詳細必須料金項目情報の料金項目コード群を取得
			HashMap<String, String> dtlReqMap =
				JCHWebCommon.getPrcKmkCdMap(bean[0], CHW00901SFConst.DTL_REQ_PRC_KMK_CD_INFO, CHW00901SFConst.DTL_REQ_PRC_KMK_CD_17);

			// 詳細必須料金項目情報の料金項目コード群を取得
			HashMap<String, String> dtlReqDplMap =
				JCHWebCommon.getPrcKmkCdMap(bean[0], CHW00901SFConst.DTL_REQ_PRC_KMK_CD_DPLCT_INFO, CHW00901SFConst.DTL_REQ_PRC_KMK_CD_DPLCT_18);

			// 詳細必須料金項目情報（タブレット）の料金項目コード群を取得
			HashMap<String, String> tabDtlReqMap =
				JCHWebCommon.getPrcKmkCdMap(bean[0], CHW00901SFConst.TAB_DTL_REQUIRE_PRC_KMK_CD_INFO, CHW00901SFConst.TAB_DTL_REQUIRE_PRC_KMK_CD_19);
			//v16.00.00 2015/07/07 Add Start
			// 詳細必須料金項目情報（ｅｏ電気）の料金項目コード群を取得
			HashMap<String, String> electDtlReqMap =
				JCHWebCommon.getPrcKmkCdMap(bean[0], CHW00901SFConst.ELECT_DTL_REQUIRE_PRC_KMK_CD_INFO, CHW00901SFConst.ELECT_DTL_REQUIRE_PRC_KMK_CD_20);

			//v16.00.00 2015/07/07 Add End
			//v36.00.00 2017/12/27 Add Start
			// 詳細必須料金項目情報（工事費割賦）の料金項目コード群を取得
			HashMap<String, String> kojikapDtlReqMap =
				JCHWebCommon.getPrcKmkCdMap(bean[0], CHW00901SFConst.KOJIKAP_DTL_REQUIRE_PRC_KMK_CD_INFO, CHW00901SFConst.KOJIKAP_DTL_REQUIRE_PRC_KMK_CD_21);
			//v36.00.00 2017/12/27 Add END
			
			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);

				if (childMap != null)
				{
					String prcSvcCd = (String)childMap.get("prc_svc_cd"); 	// 料金項目一覧取得マップ.料金項目抽出変換一覧照会明細.料金サービスコード
					String prcKmkCd = (String)childMap.get("prc_kmk_cd"); 	// 料金項目一覧取得マップ.料金項目抽出変換一覧照会明細.料金項目コード
					String prcKmkNm = (String)childMap.get("prc_kmk_cd_nm"); // 料金項目一覧取得マップ.料金項目抽出変換一覧照会明細.料金項目コード名称

					// 重複チェック
					String chkValue = prcKmkCd + prcKmkNm;
					if (chkMap.containsKey(chkValue))
					{
						// チェックマップに「料金項目コード＋料金項目コード名称」が既に存在する場合、読み飛ばし
						continue;
					}
					// 保持
					chkMap.put(chkValue, chkValue);
					
					// 料金項目情報.料金項目コードリスト ← 料金項目一覧取得マップ.料金項目抽出変換一覧照会明細.料金項目コード
					subbean.sendMessageString(CHW00901SFConst.PRC_KMK_CD_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, prcKmkCd);

					// 料金項目情報.料金項目名称リスト ← 料金項目コード + 料金サービスコード + ":" + 料金項目コード名称
					String prcKmkCdNm = JCHDspEditUtil.prcKmkNmEdit(prcKmkCd, prcKmkNm, prcSvcCd, isSelectedCamp);
					subbean.sendMessageString(CHW00901SFConst.PRC_KMK_NM_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, prcKmkCdNm);

					// 料金内訳情報.請求内訳名称リスト ← 料金項目コード名称
					subbean.sendMessageString(CHW00901SFConst.SEIKY_UW_NM_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, prcKmkNm);

					// 料金項目情報.料金グループコードリスト ← 料金項目一覧取得マップ.料金項目抽出変換一覧照会明細.料金グループコード
					subbean.sendMessageString(CHW00901SFConst.PRC_GRP_CD_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("prc_grp_cd"));

					// 料金項目情報.料金サービスコードリスト ← 料金項目一覧取得マップ.料金項目抽出変換一覧照会明細.料金サービスコード
					subbean.sendMessageString(CHW00901SFConst.PRC_SVC_CD_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("prc_svc_cd"));

					// 料金内訳情報.定額料金リスト ← 料金項目出力名称一覧照会マップ.料金項目出力名称一覧照会明細.定額料金
					subbean.sendMessageString(CHW00901SFConst.TEGAK_PRC_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("tegak_prc"));

					// 料金項目情報.請求書ＮＯ欄表示制御フラグリスト ← 料金項目出力名称一覧照会マップ.料金項目出力名称一覧照会明細.請求書NO欄表示制御フラグ
					subbean.sendMessageString(CHW00901SFConst.SKS_NO_RAN_DSP_CTRL_FLG_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("sks_no_ran_dsp_ctrl_flg"));

					// 料金内訳情報.サービス契約番号表示制御フラグリスト ← 料金項目出力名称一覧照会マップ.料金項目出力名称一覧照会明細.サービス契約番号表示制御フラグリスト
					subbean.sendMessageString(CHW00901SFConst.SVKEI_NO_DSP_CTRL_FLG_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("svkei_no_dsp_ctrl_flg"));

					// 料金内訳情報.請求契約番号表示制御フラグリスト ← 料金項目出力名称一覧照会マップ.料金項目出力名称一覧照会明細.請求契約番号表示制御フラグリスト
					subbean.sendMessageString(CHW00901SFConst.SEIKY_KEI_NO_DSP_CTRL_FLG_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("seiky_kei_no_dsp_ctrl_flg"));

					// 料金内訳情報.整理番号表示制御フラグリスト ← 料金項目出力名称一覧照会マップ.料金項目出力名称一覧照会明細.整理番号表示制御フラグリスト
					subbean.sendMessageString(CHW00901SFConst.SEIRI_NO_DSP_CTRL_FLG_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("seiri_no_dsp_ctrl_flg"));

					// 料金内訳情報.マンションＩＤ表示制御フラグリスト ← 料金項目出力名称一覧照会マップ.料金項目出力名称一覧照会明細.マンションＩＤ表示制御フラグリスト
					subbean.sendMessageString(CHW00901SFConst.MANS_ID_DSP_CTRL_FLG_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("mans_id_dsp_ctrl_flg"));

					// 料金内訳情報.部屋番号表示制御フラグリスト ← 料金項目出力名称一覧照会マップ.料金項目出力名称一覧照会明細.部屋番号表示制御フラグリスト
					subbean.sendMessageString(CHW00901SFConst.ADRRM_DSP_CTRL_FLG_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("adrrm_dsp_ctrl_flg"));

					// 料金内訳情報.利用期間表示制御フラグリスト ← 料金項目出力名称一覧照会マップ.料金項目出力名称一覧照会明細.利用期間表示制御フラグ
					subbean.sendMessageString(CHW00901SFConst.USE_PRD_DSP_CTRL_FLG_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("use_prd_dsp_ctrl_flg_list"));

					// 料金内訳情報.税区分表示フラグリスト ← 料金項目出力名称一覧照会マップ.料金項目出力名称一覧照会明細.税区分表示フラグ
					subbean.sendMessageString(CHW00901SFConst.TAX_DIV_DSP_FLG_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("tax_div_dsp_flg_list"));

					// 料金項目情報.詳細必須料金項目フラグリストを設定
					String dtlReqFlg = "0";
					if (dtlReqMap.containsKey(prcKmkCd))
					{
						dtlReqFlg = "1";
					}

					if (dtlReqDplMap.containsKey(prcKmkCd))
					{
						dtlReqFlg = "2";
					}
					subbean.sendMessageString(CHW00901SFConst.DTL_REQUIRE_FLG_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, dtlReqFlg);

					// 料金項目情報.詳細必須料金項目フラグリスト（タブレット）を設定
					String tabDtlReqFlg = "0";
					if (tabDtlReqMap.containsKey(prcKmkCd))
					{
						tabDtlReqFlg = "1";
					}
					subbean.sendMessageString(CHW00901SFConst.TAB_DTL_REQUIRE_FLG_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, tabDtlReqFlg);

					//v16.00.00 2015/07/07 Add Start
					// 料金項目情報.詳細必須料金項目フラグリスト（ｅｏ電気）を設定
					String electDtlReqFlg = "0";
					if (electDtlReqMap.containsKey(prcKmkCd))
					{
						electDtlReqFlg = "1";
					}
					subbean.sendMessageString(CHW00901SFConst.ELECT_DTL_REQUIRE_FLG_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, electDtlReqFlg);
					//v16.00.00 2015/07/07 Add End
					//v36.00.00 2017/12/27 Add Start
					// 料金項目情報.詳細必須料金項目フラグリスト（工事費割賦）を設定
					String kojikapDtlReqFlg = "0";
					if (kojikapDtlReqMap.containsKey(prcKmkCd))
					{
						kojikapDtlReqFlg = "1";
					}
					subbean.sendMessageString(CHW00901SFConst.KOJIKAP_DTL_REQUIRE_FLG_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, kojikapDtlReqFlg);
					//v36.00.00 2017/12/27 Add END
					// 料金項目コードに初期値を設定する
					if (i == 0)
					{
						bean[0].sendMessageString(CHW00901SFConst.PRC_KMK_CD, X31CWebConst.DATABEAN_SET_VALUE, prcKmkCd);
						bean[0].sendMessageString(CHW00901SFConst.DTL_REQ_KBN, X31CWebConst.DATABEAN_SET_VALUE, dtlReqFlg);
						bean[0].sendMessageString(CHW00901SFConst.TAB_DTL_REQUIRE_FLG, X31CWebConst.DATABEAN_SET_VALUE, tabDtlReqFlg);
						//v16.00.00 2015/07/07 Add Start
						bean[0].sendMessageString(CHW00901SFConst.ELECT_DTL_REQUIRE_FLG, X31CWebConst.DATABEAN_SET_VALUE, electDtlReqFlg);
						//v16.00.00 2015/07/07 Add End
						//v36.00.00 2017/12/27 Add Start
						bean[0].sendMessageString(CHW00901SFConst.KOJIKAP_DTL_REQUIRE_FLG, X31CWebConst.DATABEAN_SET_VALUE, kojikapDtlReqFlg);
						//v36.00.00 2017/12/27 Add End

					}

				}
				else
				{
					subbean.sendMessageString(CHW00901SFConst.PRC_KMK_CD_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, new String());
					subbean.sendMessageString(CHW00901SFConst.PRC_KMK_NM_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, new String());
					subbean.sendMessageString(CHW00901SFConst.SEIKY_UW_NM_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, new String());
					subbean.sendMessageString(CHW00901SFConst.PRC_GRP_CD_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, new String());
					subbean.sendMessageString(CHW00901SFConst.PRC_SVC_CD_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, new String());
					subbean.sendMessageString(CHW00901SFConst.TEGAK_PRC_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, new String());
					subbean.sendMessageString(CHW00901SFConst.SKS_NO_RAN_DSP_CTRL_FLG_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, new String());
					subbean.sendMessageString(CHW00901SFConst.SVKEI_NO_DSP_CTRL_FLG_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, new String());
					subbean.sendMessageString(CHW00901SFConst.SEIKY_KEI_NO_DSP_CTRL_FLG_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, new String());
					subbean.sendMessageString(CHW00901SFConst.SEIRI_NO_DSP_CTRL_FLG_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, new String());
					subbean.sendMessageString(CHW00901SFConst.MANS_ID_DSP_CTRL_FLG_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, new String());
					subbean.sendMessageString(CHW00901SFConst.TAX_DIV_DSP_FLG_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, new String());
					subbean.sendMessageString(CHW00901SFConst.ADRRM_DSP_CTRL_FLG_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, new String());
					subbean.sendMessageString(CHW00901SFConst.TAX_DIV_DSP_FLG_LIST_10, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
			}
		}

		return bean;
	}
	

	/**
	 * 下りマッピング
	 * @param bean　[0]：随時請求書登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV004206SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV004206SC")){
			parentMap = (HashMap)outputMap.get("CHSV004206SC");
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listCHSV004206SC_sohu_saki_info_EKK0491A010CBSMsg1List = bean[0].getDataBeanArray("請求契約情報");
		childList = null;
		if(listCHSV004206SC_sohu_saki_info_EKK0491A010CBSMsg1List != null && parentMap != null && parentMap.containsKey("EKK0491A010CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EKK0491A010CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listCHSV004206SC_sohu_saki_info_EKK0491A010CBSMsg1List.getCount() -1 >= i){
					subbean = listCHSV004206SC_sohu_saki_info_EKK0491A010CBSMsg1List.getDataBean(i);
				}else{
					subbean = listCHSV004206SC_sohu_saki_info_EKK0491A010CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}

				// 請求契約情報.契約請求方法コード ← 請求契約一意照会マップ.請求契約一意照会明細.請求方法コード
				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("next_seiky_way_div"));
				} else {
					subbean.sendMessageString("次回請求方法コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 請求契約情報.請求書発行要否 ← 請求契約一意照会マップ.請求契約一意照会明細.請求書発行要否
				if (childMap != null) {
					subbean.sendMessageString("請求書発行要否", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seikyus_hakko_yh"));
				} else {
					subbean.sendMessageString("請求書発行要否", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 請求契約情報.送付先法人格種別コード ← 請求契約一意照会マップ.請求契約一意照会明細.送付先法人格種別コード
				if (childMap != null) {
					subbean.sendMessageString("送付先法人格種別コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("shs_hojin_sbt_cd"));
				} else {
					subbean.sendMessageString("送付先法人格種別コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 請求契約情報.送付先法人格前後指定コード ← 請求契約一意照会マップ.請求契約一意照会明細.送付先法人格前後指定コード
				if (childMap != null) {
					subbean.sendMessageString("送付先法人格前後指定コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("shs_hojin_zengo_shitei_cd"));
				} else {
					subbean.sendMessageString("送付先法人格前後指定コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 請求契約情報.送付先カナ名 ← 請求契約一意照会マップ.請求契約一意照会明細.送付先カナ名
				if (childMap != null) {
					subbean.sendMessageString("送付先カナ名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("shs_kana"));
				} 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("sohus_bkm"));
				} else {
					subbean.sendMessageString("送付先部課名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 請求契約情報.送付先担当者名 ← 請求契約一意照会マップ.請求契約一意照会明細.送付先担当者名
				if (childMap != null) {
					subbean.sendMessageString("送付先担当者名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sohus_tntsha_nm"));
				} else {
					subbean.sendMessageString("送付先担当者名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 請求契約情報.送付先住所コード ← 請求契約一意照会マップ.請求契約一意照会明細.送付先住所コード
				if (childMap != null) {
					subbean.sendMessageString("送付先住所コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sohus_ad_cd"));
				} else {
					subbean.sendMessageString("送付先住所コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 請求契約情報.送付先郵便番号 ← 請求契約一意照会マップ.請求契約一意照会明細.送付先郵便番号
				if (childMap != null) {
					subbean.sendMessageString("送付先郵便番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sohus_pcd"));
				} else {
					subbean.sendMessageString("送付先郵便番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 請求契約情報.送付先都道府県名 ← 請求契約一意照会マップ.請求契約一意照会明細.送付先都道府県名
				if (childMap != null) {
					subbean.sendMessageString("送付先都道府県名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sohus_state_nm"));
				} else {
					subbean.sendMessageString("送付先都道府県名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 請求契約情報.送付先市区町村名 ← 請求契約一意照会マップ.請求契約一意照会明細.送付先市区町村名
				if (childMap != null) {
					subbean.sendMessageString("送付先市区町村名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sohus_city_nm"));
				} else {
					subbean.sendMessageString("送付先市区町村名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 請求契約情報.送付先大字通称名 ← 請求契約一意照会マップ.請求契約一意照会明細.送付先大字通称名
				if (childMap != null) {
					subbean.sendMessageString("送付先大字通称名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sohus_oaztsu_nm"));
				} else {
					subbean.sendMessageString("送付先大字通称名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 請求契約情報.送付先字丁目名 ← 請求契約一意照会マップ.請求契約一意照会明細.送付先字丁目名
				if (childMap != null) {
					subbean.sendMessageString("送付先字丁目名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sohus_azcho_nm"));
				} else {
					subbean.sendMessageString("送付先字丁目名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 請求契約情報.送付先住所補記建物名 ← 請求契約一意照会マップ.請求契約一意照会明細.送付先住所補記・建物名
				if (childMap != null) {
					subbean.sendMessageString("送付先住所補記建物名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sohus_adrttm"));
				} else {
					subbean.sendMessageString("送付先住所補記建物名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 請求契約情報.送付先住所補記部屋番号 ← 請求契約一意照会マップ.請求契約一意照会明細.送付先住所補記・部屋番号
				if (childMap != null) {
					subbean.sendMessageString("送付先住所補記部屋番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sohus_adrrm"));
				} else {
					subbean.sendMessageString("送付先住所補記部屋番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 請求契約情報.送付先番地号 ← 請求契約一意照会マップ.請求契約一意照会明細.送付先番地号
				if (childMap != null) {
					subbean.sendMessageString("送付先番地号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sohus_bnchigo"));
				} else {
					subbean.sendMessageString("送付先番地号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 請求契約情報.送付先電話番号 ← 請求契約一意照会マップ.請求契約一意照会明細.送付先電話番号
				if (childMap != null) {
					subbean.sendMessageString("送付先電話番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sohus_telno"));
				} else {
					subbean.sendMessageString("送付先電話番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 請求契約情報.送付先メールアドレス ← 請求契約一意照会マップ.請求契約一意照会明細.送付先メールアドレス
				if (childMap != null) {
					subbean.sendMessageString("送付先メールアドレス", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sohus_mlad"));
				} else {
					subbean.sendMessageString("送付先メールアドレス", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


		return bean;
	}

	/**
	 * 下りマッピング
	 * 
	 * @param bean　[0]：サービスフォームBean
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV004207SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("CHSV004207SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV004207SC");
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listCHSV004207SC_prc_course_info_EKK0081B511CBSMsg1List = bean[0].getDataBeanArray("料金コース情報");
		X31SDataBeanAccess subbean = listCHSV004207SC_prc_course_info_EKK0081B511CBSMsg1List.getDataBean(0);

		subbean.sendMessage("サービスコードリスト", X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage("料金グループコードリスト", X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage("料金コース名称リスト", X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage("料金コースコードリスト", X31CWebConst.DATABEAN_CLEAR);

		subbean.sendMessageString("サービスコードリスト", X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
		subbean.sendMessageString("料金グループコードリスト", X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
		subbean.sendMessageString("料金コースコードリスト", X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
		subbean.sendMessageString("料金コースコード（複数）リスト", X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
		subbean.sendMessageString("料金プランコード（複数）リスト", X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
		subbean.sendMessageString("料金コース名称リスト", X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
		
		if (listCHSV004207SC_prc_course_info_EKK0081B511CBSMsg1List != null && parentMap != null && parentMap.containsKey("EKK0081B511CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0081B511CBSMsg1List");

			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("svc_cd"));
					// 料金コース情報.料金グループコードリスト ← 料金コース一覧照会（サービス契約番号）マップ.料金コース一覧照会明細.料金グループコード
					subbean.sendMessageString("料金グループコードリスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("prc_grp_cd"));
					// 料金コース情報.料金コースコードリスト ← 料金コース一覧照会（サービス契約番号）マップ.料金コース一覧照会明細.料金コースコード
					subbean.sendMessageString("料金コースコードリスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("pcrs_cd"));
					// 料金コース情報.料金コースコード（複数）リスト ← 料金コース一覧照会（サービス契約番号）マップ.料金コース一覧照会明細.料金コースコード（複数）
					subbean.sendMessageString("料金コースコード（複数）リスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("pcrs_cd_plu"));
					// 料金コース情報.料金プランコード（複数）リスト ← 料金コース一覧照会（サービス契約番号）マップ.料金コース一覧照会明細.料金プランコード（複数）
					subbean.sendMessageString("料金プランコード（複数）リスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("pplan_cd_plu"));

					// 料金コース情報.料金コースコード名称表示用リスト ← 料金コース一覧照会（サービス契約番号）マップ.料金コース一覧照会明細.料金コース名
					String pcrsCdNm = JCHDspEditUtil.pcrsNmEdit((String)childMap.get("pcrs_cd"), (String)childMap.get("pcrs_nm"));
					subbean.sendMessageString("料金コース名称リスト", X31CWebConst.DATABEAN_ADD_VALUE, pcrsCdNm);
				}
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：随時請求書登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getGETPRCKMKCSCHGELISTCC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey(GETPRCKMKCSCHGELISTCC)){
			parentMap = (HashMap)outputMap.get(GETPRCKMKCSCHGELISTCC);
		}

		if(parentMap != null && parentMap.containsKey("PRC_KMK_CS_CHGE_LIST")){

			ArrayList<HashMap<String, Object>> mainList = (ArrayList)parentMap.get("PRC_KMK_CS_CHGE_LIST");

			// in料金項目抽出変換一覧照会明細リストの内容をmapに格納
			HashMap<String, Object> prcMap = new HashMap<String, Object>();
			for (HashMap<String, Object> mainObj : mainList)
			{
				prcMap.put((String)mainObj.get("key_work_param_id"), mainObj);
			}

			// mapからＫＥＹ＿業務パラメータIDをキーに、各料金項目コードを取得する

			if (prcMap.containsKey(JACStrConst.WKPARA_AC_RE_DT_PRC))
			{
				HashMap<String, Object> map8 = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPARA_AC_RE_DT_PRC);

				List<HashMap<String, Object>> childList = (List<HashMap<String, Object>>) map8.get("ECH0401B010CBSMsg1List");

				X31SDataBeanAccessArray dtl_req__prc_kmk_cd_list = bean[0].getDataBeanArray("詳細必須料金項目情報");
				dtl_req__prc_kmk_cd_list.clearArray();

				for (int i = 0; i < childList.size(); i++)
				{
					X31SDataBeanAccess subbean = null;
					if (dtl_req__prc_kmk_cd_list.getCount() - 1 >= i)
					{
						subbean = dtl_req__prc_kmk_cd_list.getDataBean(i);
					}
					else
					{
						subbean = dtl_req__prc_kmk_cd_list.addDataBean();
					}
					HashMap childMap = (HashMap)childList.get(i);

					// 詳細必須料金項目情報.詳細必須料金項目コード ← 料金項目抽出変換一覧照会CCマップ.料金項目抽出変換一覧照会明細.料金項目コード
					subbean.sendMessageString("詳細必須料金項目コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_kmk_cd"));
				}

			}

			if (prcMap.containsKey(JACStrConst.WKPARA_AC_RE_DT_DPL))
			{
				HashMap<String, Object> map9 = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPARA_AC_RE_DT_DPL);

				List<HashMap<String, Object>> childList = (List<HashMap<String, Object>>) map9.get("ECH0401B010CBSMsg1List");

				X31SDataBeanAccessArray dtl_req__prc_kmk_cd_dplct_list = bean[0].getDataBeanArray("詳細必須料金項目（重複可）情報");
				dtl_req__prc_kmk_cd_dplct_list.clearArray();

				for (int i = 0; i < childList.size(); i++)
				{
					X31SDataBeanAccess subbean = null;
					if (dtl_req__prc_kmk_cd_dplct_list.getCount() - 1 >= i)
					{
						subbean = dtl_req__prc_kmk_cd_dplct_list.getDataBean(i);
					}
					else
					{
						subbean = dtl_req__prc_kmk_cd_dplct_list.addDataBean();
					}
					HashMap childMap = (HashMap)childList.get(i);

					// 詳細必須料金項目情報.詳細必須料金項目コード ← 料金項目抽出変換一覧照会CCマップ.料金項目抽出変換一覧照会明細.料金項目コード
					subbean.sendMessageString("詳細必須料金項目コード（重複可）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_kmk_cd"));
				}

			}

			if (prcMap.containsKey(JACStrConst.WKPARA_AC_RE_DT_TAB_PRC))
			{
				HashMap<String, Object> map10 = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPARA_AC_RE_DT_TAB_PRC);

				List<HashMap<String, Object>> childList = (List<HashMap<String, Object>>) map10.get("ECH0401B010CBSMsg1List");

				X31SDataBeanAccessArray tab_dtl_req__prc_kmk_cd_dplct_list = bean[0].getDataBeanArray("詳細必須料金項目情報（タブレット）");
				tab_dtl_req__prc_kmk_cd_dplct_list.clearArray();

				for (int i = 0; i < childList.size(); i++)
				{
					X31SDataBeanAccess subbean = null;
					if (tab_dtl_req__prc_kmk_cd_dplct_list.getCount() - 1 >= i)
					{
						subbean = tab_dtl_req__prc_kmk_cd_dplct_list.getDataBean(i);
					}
					else
					{
						subbean = tab_dtl_req__prc_kmk_cd_dplct_list.addDataBean();
					}
					HashMap childMap = (HashMap)childList.get(i);

					// 詳細必須料金項目情報.詳細必須料金項目コード（タブレット） ← 料金項目抽出変換一覧照会CCマップ.料金項目抽出変換一覧照会明細.料金項目コード
					subbean.sendMessageString("詳細必須料金項目コード（タブレット）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_kmk_cd"));
				}

			}
			
			//v16.00.00 2015/07/07 Add Start
			// 料金項目情報.詳細必須料金項目フラグリスト（ｅｏ電気）を設定
			if (prcMap.containsKey(JACStrConst.WKPARA_AC_RE_DT_ELEC_PRC))
			{
				HashMap<String, Object> map11 = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPARA_AC_RE_DT_ELEC_PRC);

				List<HashMap<String, Object>> childList = (List<HashMap<String, Object>>) map11.get("ECH0401B010CBSMsg1List");

				X31SDataBeanAccessArray elect_dtl_req__prc_kmk_cd_dplct_list = bean[0].getDataBeanArray("詳細必須料金項目情報（ｅｏ電気）");
				elect_dtl_req__prc_kmk_cd_dplct_list.clearArray();

				for (int i = 0; i < childList.size(); i++)
				{
					X31SDataBeanAccess subbean = null;
					if (elect_dtl_req__prc_kmk_cd_dplct_list.getCount() - 1 >= i)
					{
						subbean = elect_dtl_req__prc_kmk_cd_dplct_list.getDataBean(i);
					}
					else
					{
						subbean = elect_dtl_req__prc_kmk_cd_dplct_list.addDataBean();
					}
					HashMap childMap = (HashMap)childList.get(i);

					// 詳細必須料金項目情報.詳細必須料金項目コード（ｅｏ電気） ← 料金項目抽出変換一覧照会CCマップ.料金項目抽出変換一覧照会明細.料金項目コード
					subbean.sendMessageString("詳細必須料金項目コード（ｅｏ電気）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_kmk_cd"));
				}

			}
			//v16.00.00 2015/07/07 Add End
			//v36.00.00 ANK-3296-00-00 Add Start
			// 料金項目情報.詳細必須料金項目フラグリスト（工事費割賦）を設定
			if (prcMap.containsKey(JACStrConst.WKPARA_AC_DT_KJ_HI_KAP_PRC))
			{
				HashMap<String, Object> map12 = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPARA_AC_DT_KJ_HI_KAP_PRC);

				List<HashMap<String, Object>> childList = (List<HashMap<String, Object>>) map12.get("ECH0401B010CBSMsg1List");

				X31SDataBeanAccessArray kojikap_dtl_req__prc_kmk_cd_dplct_list = bean[0].getDataBeanArray("詳細必須料金項目情報（工事費割賦）");
				kojikap_dtl_req__prc_kmk_cd_dplct_list.clearArray();

				for (int i = 0; i < childList.size(); i++)
				{
					X31SDataBeanAccess subbean = null;
					if (kojikap_dtl_req__prc_kmk_cd_dplct_list.getCount() - 1 >= i)
					{
						subbean = kojikap_dtl_req__prc_kmk_cd_dplct_list.getDataBean(i);
					}
					else
					{
						subbean = kojikap_dtl_req__prc_kmk_cd_dplct_list.addDataBean();
					}
					HashMap childMap = (HashMap)childList.get(i);

					// 詳細必須料金項目情報.詳細必須料金項目コード（工事費割賦） ← 料金項目抽出変換一覧照会CCマップ.料金項目抽出変換一覧照会明細.料金項目コード
					subbean.sendMessageString("詳細必須料金項目コード（工事費割賦）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_kmk_cd"));
				}
			}
			// 料金項目コード（料金項目コード＿工事費分割代金＿金額＿ネット）
			if (prcMap.containsKey(JACStrConst.WKPRA_CH_WKS_KJ_HI_NET))
			{
				HashMap<String, Object> map13 = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPRA_CH_WKS_KJ_HI_NET);
				List<HashMap<String, Object>> childList = (List<HashMap<String, Object>>) map13.get("ECH0401B010CBSMsg1List");
				HashMap childMap = (HashMap)childList.get(0);
				bean[0].sendMessageString("料金項目コード＿工事費分割代金＿金額＿ネット", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_kmk_cd"));
			}
			// 料金項目コード（料金項目コード＿工事費分割代金＿金額＿電話）
			if (prcMap.containsKey(JACStrConst.WKPRA_CH_WKS_KJ_HI_NET))
			{
				HashMap<String, Object> map14 = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPRA_CH_WKS_KJ_HI_TEL);
				List<HashMap<String, Object>> childList = (List<HashMap<String, Object>>) map14.get("ECH0401B010CBSMsg1List");
				HashMap childMap = (HashMap)childList.get(0);
				bean[0].sendMessageString("料金項目コード＿工事費分割代金＿金額＿電話", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_kmk_cd"));
			}
			// 料金項目コード（料金項目コード＿工事費分割代金＿回数）
			if (prcMap.containsKey(JACStrConst.WKPRA_CH_WKS_KJ_HI_NET))
			{
				HashMap<String, Object> map15 = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPRA_CH_WKS_KJ_HI_KAI);
				List<HashMap<String, Object>> childList = (List<HashMap<String, Object>>) map15.get("ECH0401B010CBSMsg1List");
				HashMap childMap = (HashMap)childList.get(0);
				bean[0].sendMessageString("料金項目コード＿工事費分割代金＿回数", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_kmk_cd"));
			}
			//v36.00.00 ANK-3296-00-00 Add End
		}

		return bean;

	}

	// ANK-3838-00-00 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV004208SC(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("CHSV004208SC", parentMap);
		
		return outputMap;
	}

	/**
	 * 下りマッピング
	 * @param bean
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV004208SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV004208SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV004208SC");
		}
		
		ArrayList childList = new ArrayList();
		
		X31SDataBeanAccessArray listCHSV004208SC_print_yoshiki_info_EZM0171B012CBSMsg1List = bean[0].getDataBeanArray("印刷様式情報");
		X31SDataBeanAccess subbean = listCHSV004208SC_print_yoshiki_info_EZM0171B012CBSMsg1List.getDataBean(0);
		
		subbean.sendMessage(CHW00901SFConst.PRINT_YOSHIKI_CD_LIST_23, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW00901SFConst.PRINT_YOSHIKI_NM_LIST_23, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW00901SFConst.PRINT_YOSHIKI_NM_LIST_23, X31CWebConst.DATABEAN_CLEAR);
		
		if(listCHSV004208SC_print_yoshiki_info_EZM0171B012CBSMsg1List != null && parentMap != null && parentMap.containsKey("EZM0171B012CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EZM0171B012CBSMsg1List");
			
			if (childList != null)
			{
				for(int i = 0; i < childList.size(); i++)
				{
					HashMap childMap = (HashMap)childList.get(i);
					if (subbean == null)
					{
						continue;
					}
					
					// コード区分(印刷様式)
					String cdDivPrintYoshiki = "";
					
					if (childMap != null)
					{
						cdDivPrintYoshiki = (String)childMap.get("cd_div");
					}
					
					// 印刷様式コードのコード区分が"0"(窓口支払（企業負担）)と"4"(窓口支払（顧客負担）)だけ印刷様式情報に設定する
					if (JACStrConst.PRINT_YSK_CD_MADO.equals(cdDivPrintYoshiki) || JACStrConst.PRINT_YSK_CD_MADO_CUST.equals(cdDivPrintYoshiki))
					{
						// 印刷様式情報.印刷様式コードリスト ← 印刷様式取得マップ.コード名称管理コード区分一覧照会明細.コード区分
						if (childMap != null) {
							subbean.sendMessageString(CHW00901SFConst.PRINT_YOSHIKI_CD_LIST_23, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div"));
						} else {
							subbean.sendMessageString(CHW00901SFConst.PRINT_YOSHIKI_CD_LIST_23, X31CWebConst.DATABEAN_ADD_VALUE, new String());
						}
						// 印刷様式情報.印刷様式名称リスト ← 印刷様式取得マップ.コード名称管理コード区分一覧照会明細.コード区分名
						if (childMap != null) {
							subbean.sendMessageString(CHW00901SFConst.PRINT_YOSHIKI_NM_LIST_23, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div_nm"));
						} else {
							subbean.sendMessageString(CHW00901SFConst.PRINT_YOSHIKI_NM_LIST_23, X31CWebConst.DATABEAN_ADD_VALUE, new String());
						}
						// 印刷様式情報.印刷様式名称リスト ← 印刷様式取得マップ.コード名称管理コード区分一覧照会明細.コード区分名
						if (childMap != null) {
							subbean.sendMessageString(CHW00901SFConst.PRINT_YOSHIKI_NM_DSP_LIST_23, X31CWebConst.DATABEAN_ADD_VALUE,
							String.valueOf(i) + JACStrConst.COLON + (String)childMap.get("cd_div_nm"));
						} else {
							subbean.sendMessageString(CHW00901SFConst.PRINT_YOSHIKI_NM_DSP_LIST_23, 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(CHW00901SFConst.PRINT_YOSHIKI_CD_SEL_23, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
							}
						} else {
							// 何もしない
						}
						// ANK-4070-00-00 ADD END
					}
				}
			}
		}
		
		return bean;
	}

	/**
	 * 上りマッピングをする
	 * @param bean
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV004209SC(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("CHSV004209SC", parentMap);
		
		return outputMap;
	}

	/**
	 * 下りマッピング
	 * @param bean
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV004209SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV004209SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV004209SC");
		}
		
		ArrayList childList = new ArrayList();
		
		X31SDataBeanAccessArray listCHSV004209SC_pay_yoshi_info_EZM0171B012CBSMsg1List = bean[0].getDataBeanArray("支払用紙情報");
		
		if(listCHSV004209SC_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(listCHSV004209SC_pay_yoshi_info_EZM0171B012CBSMsg1List.getCount() -1 >= i)
					{
						subbean = listCHSV004209SC_pay_yoshi_info_EZM0171B012CBSMsg1List.getDataBean(i);
					}
					else
					{
						subbean = listCHSV004209SC_pay_yoshi_info_EZM0171B012CBSMsg1List.addDataBean();
					}
					
					HashMap childMap = (HashMap)childList.get(i);
					if (subbean == null)
					{
						continue;
					}
					
					// 支払用紙情報.支払用紙コード ← 支払用紙取得マップ.コード名称管理コード区分一覧照会明細.コード区分
					if (childMap != null && childMap.containsKey("cd_div"))
					{
						subbean.sendMessageString(CHW00901SFConst.PAY_YOSHI_CD_24, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cd_div"));
					}
					else
					{
						subbean.sendMessageString(CHW00901SFConst.PAY_YOSHI_CD_24, X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					// 支払用紙情報.支払用紙名称 ← 支払用紙取得マップ.コード名称管理コード区分一覧照会明細.コード区分名
					if (childMap != null && childMap.containsKey("cd_div_nm"))
					{
						subbean.sendMessageString(CHW00901SFConst.PAY_YOSHI_NM_24, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cd_div_nm"));
					}
					else
					{
						subbean.sendMessageString(CHW00901SFConst.PAY_YOSHI_NM_24, X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					// 支払用紙情報.支払用紙初期表示コード ← 支払用紙取得マップ.コード名称管理コード区分一覧照会明細.初期表示コード
					if (childMap != null && childMap.containsKey("shk_dsp_cd"))
					{
						subbean.sendMessageString(CHW00901SFConst.PAY_YOSHI_SHK_DSP_CD_24, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("shk_dsp_cd"));
					}
					else
					{
						subbean.sendMessageString(CHW00901SFConst.PAY_YOSHI_SHK_DSP_CD_24, X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
				}
			}
		}
		
		return bean;
	}

	/**
	 * 上りマッピングをする
	 * @param bean
	 * @param outputMap
	 * @param func_code
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV004210SC(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("CHSV004210SC", parentMap);
		
		return outputMap;
	}

	/**
	 * 下りマッピング
	 * @param bean
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV004210SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV004210SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV004210SC");
		}
		
		// 支払用紙選択インデックスを初期化(コンビニ："0")
		bean[0].sendMessageString(CHW00901SFConst.PAY_YOSHI_SELECT_INDEX, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.PAY_YOSHI_CONV);
		
		// パーフェクト口座有無を初期化(パーフェクト口座なし："0")
		bean[0].sendMessageString(CHW00901SFConst.PKOZA_UM, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.PKOZA_UM_NASHI);
		
		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");
				}
				
				// パーフェクト口座利用有無 ← パーフェクト口座一意照会マップ.パーフェクト口座利用有無
				if (childMap != null && childMap.containsKey("pkoza_use_um"))
				{
					pkozaUseUm = (String)childMap.get("pkoza_use_um");
				}
				
				// パーフェクト口座番号がnullではない、かつ、パーフェクト口座利用有無が"1"(利用する)の場合
				if (pkozaNo != null && !"".equals(pkozaNo) && "1".equals(pkozaUseUm))
				{
					// 支払用紙のラジオボタン(支払用紙選択インデックス)に"1"(コンビニ＋パーフェクト)を設定する
					bean[0].sendMessageString(CHW00901SFConst.PAY_YOSHI_SELECT_INDEX, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.PAY_YOSHI_CONV_PERF);
					
					// パーフェクト口座有無に"1"(パーフェクト口座あり)を設定する。
					bean[0].sendMessageString(CHW00901SFConst.PKOZA_UM, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.PKOZA_UM_ARI);
				}
			}
		}
		
		return bean;
	}
	// ANK-3838-00-00 ADD END

}