/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：CNSV0022_CNSV0022OPDBMapper
*	ソースファイル名：CNSV0022_CNSV0022OPDBMapper.java
*	作成者			：FJ
*	日付			：2011年08月03日
*＜機能概要＞
*	BP（コンテンツ契約変更履歴(初期表示)）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	ｖ1.00.00	2011/08/03	富士通)味岡	新規作成
*	ｖ4.00.00	2012/12/06	富士通)味岡	ST1-2012-0001018:SYSDATE使用箇所を運用日付使用に置き換え
*
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.Arrays;
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.util.JZMAdOutputEdit;
import eo.web.webview.common.JCNWebCommon;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class CNSV0022_CNSV0022OPDBMapper {
	
	// ANK-4346-00-00 ADD START
	/** 契約異動履歴 契約異動用履歴区分コード */
	private static final String[] KEI_IDO_RRK_KBN_CD = {
		"01",							// 契約
		"02",							// 数量変更
		"03",							// 決済方法変更
		"04",							// 契約状態変更
		"05",							// 解約
		"06",							// 強制解約
		"07"};							// マスター設定終了
	
	/** 契約異動履歴 料金訂正用履歴区分コード */
	private static final String[] PRC_TEIDE__RRK_KBN_CD = {
		"51",							// 課金訂正：売上減
		"53"};							// 課金訂正：取消
	
	/** 異動履歴区分
*/
	private static final String[] IDO_RRK_KBN = {
		"契約異動履歴",
		"料金訂正異動履歴"};
	// ANK-4346-00-00 ADD END
	
	/**
	 * コンストラクタ
	 */
	public CNSV0022_CNSV0022OPDBMapper(){
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：コンテンツ契約変更履歴
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCNSV002201SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String opeDate) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// ＳＹＳＩＤ → お客様一意照会マップ.SYSID
		parentMap.put("sysid", bean[0].sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// 部品呼び出し → お客様一意照会マップ.世代登録年月日時分秒
		parentMap.put("gene_add_dtm", String.valueOf(""));
		// 部品呼び出し → お客様一意照会マップ.予約適用年月日
		// ST1-2012-0001018 2012/12/06 n.ajioka START
//		parentMap.put("rsv_aply_ymd", JCCWebCommon.getSysDate());
		parentMap.put("rsv_aply_ymd", opeDate);
		// ST1-2012-0001018 2012/12/06 n.ajioka END

		outputMap.put("CNSV002201SC", parentMap);
						
		return outputMap;
	}

	// ANK-4346-00-00 DEL START
//	/**
//	 * 上りマッピングをする
//	 * @param bean　[0]：コンテンツ契約変更履歴
//	 * @param outputMap
//	 * @param func_code　機能コード
//	 */
//	@SuppressWarnings("unchecked")
//	public HashMap setCNSV002202SC(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);
//
//		// ＳＹＳＩＤ → 課金対象年月取得マップ.SYSID
//		parentMap.put("sysid", bean[0].sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
//
//		outputMap.put("CNSV002202SC", parentMap);
//						
//		return outputMap;
//	}
	// ANK-4346-00-00 DEL END

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：コンテンツ契約変更履歴
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCNSV002203SC(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("cd_sbt_cd", bean[0].sendMessageString("コード種別コード", X31CWebConst.DATABEAN_GET_VALUE));
		// 基準日 → コード名称管理コード区分一覧照会マップ.基準日
		parentMap.put("stdardymd", bean[0].sendMessageString("基準日", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CNSV002203SC", parentMap);
						
		return outputMap;
	}

	// ANK-4346-00-00 DEL START
//	/**
//	 * 上りマッピングをする
//	 * @param bean　[0]：コンテンツ契約変更履歴
//	 * @param outputMap
//	 * @param func_code　機能コード
//	 */
//	@SuppressWarnings("unchecked")
//	public HashMap setCNSV002204SC(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);
//
//		// ＳＹＳＩＤ → コンテンツ契約変更履歴マップ.SYSID
//		parentMap.put("sysid", bean[0].sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
//		// コンテンツサービスコード選択値 → コンテンツ契約変更履歴マップ.コンテンツサービスコード
//		parentMap.put("cont_svc_cd", bean[0].sendMessageString("コンテンツサービスコード選択値", X31CWebConst.DATABEAN_GET_VALUE));
//		// 変更日時（ＦＲＯＭ）選択値 → コンテンツ契約変更履歴マップ.変更日時（FROM）
//		parentMap.put("chge_dtm_from", bean[0].sendMessageString("変更日時（ＦＲＯＭ）選択値", X31CWebConst.DATABEAN_GET_VALUE));
//		// 変更日時（ＴＯ）選択値 → コンテンツ契約変更履歴マップ.変更日時（TO）
//		parentMap.put("chge_dtm_to", bean[0].sendMessageString("変更日時（ＴＯ）選択値", X31CWebConst.DATABEAN_GET_VALUE));
//		// 異動履歴コード選択値 → コンテンツ契約変更履歴マップ.異動履歴コード
//		parentMap.put("ido_rireki_cd", bean[0].sendMessageString("異動履歴コード選択値", X31CWebConst.DATABEAN_GET_VALUE));
//
//		outputMap.put("CNSV002204SC", parentMap);
//						
//		return outputMap;
//	}
	// ANK-4346-00-00 DEL END

	// ANK-4346-00-00 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：コンテンツ契約変更履歴
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCNSV002201CC(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);

		// ＳＹＳＩＤ → 契約変更履歴マップ.SYSID
		parentMap.put("sysid", bean[0].sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// 異動履歴コード選択値 → 契約変更履歴マップ.変更履歴コード
		parentMap.put("change_recode_cd", bean[0].sendMessageString("異動履歴コード選択値", X31CWebConst.DATABEAN_GET_VALUE));
		// 変更日時（ＦＲＯＭ）選択値 → 契約変更履歴マップ.変更日時(開始)
		parentMap.put("change_from", bean[0].sendMessageString("変更日時（ＦＲＯＭ）選択値", X31CWebConst.DATABEAN_GET_VALUE));
		// 変更日時（ＴＯ）選択値 → 契約変更履歴マップ.変更日時(終了)
		parentMap.put("change_to", bean[0].sendMessageString("変更日時（ＴＯ）選択値", X31CWebConst.DATABEAN_GET_VALUE));
		// 初期表示時：常に1ページ → 契約変更履歴マップ.ページ番号
		parentMap.put("page", "1");
		// ラジオボタン設定値 契約変更履歴参照
		parentMap.put("select_radio", "0");

		outputMap.put("CNSV002201CC", parentMap);
						
		return outputMap;
	}

	
	// ANK-4346-00-00 ADD END

	/**
	 * 下りマッピング
	 * @param bean　[0]：コンテンツ契約変更履歴
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCNSV002201SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CNSV002201SC")){
			parentMap = (HashMap)outputMap.get("CNSV002201SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listCNSV002201SC_cust_kbt_cust_list = bean[0].getDataBeanArray("お客様個別");
		childList = null;
		if(listCNSV002201SC_cust_kbt_cust_list != null && parentMap != null && parentMap.containsKey("cust_list")){
			childList = (ArrayList)parentMap.get("cust_list");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listCNSV002201SC_cust_kbt_cust_list.getCount() -1 >= i){
					subbean = listCNSV002201SC_cust_kbt_cust_list.getDataBean(i);
				}else{
					subbean = listCNSV002201SC_cust_kbt_cust_list.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// お客様個別.ｅｏＩＤ ← お客様一意照会マップ.お客様一意照会リスト.eoID
				if (childMap != null) {
					subbean.sendMessageString("ｅｏＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("eoid"));
				} else {
					subbean.sendMessageString("ｅｏＩＤ", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// お客様個別.お客様カナ氏名 ← お客様一意照会マップ.お客様一意照会リスト.お客様カナ名
				if (childMap != null) {
					subbean.sendMessageString("お客様カナ氏名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cust_kana"));
					/* ++++++++++ v1.00.00 追加開始 ++++++++++ */
					subbean.sendMessageString("お客様カナ氏名（表示）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cust_kana"));
					/* ++++++++++ v1.00.00 追加終了 ++++++++++ */
				} else {
					subbean.sendMessageString("お客様カナ氏名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// お客様個別.お客様氏名 ← お客様一意照会マップ.お客様一意照会リスト.お客様名
				if (childMap != null) {
					subbean.sendMessageString("お客様氏名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cust_nm"));
					/* ++++++++++ v1.00.00 追加開始 ++++++++++ */
					subbean.sendMessageString("お客様氏名（表示）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cust_nm"));
					/* ++++++++++ v1.00.00 追加終了 ++++++++++ */
				} else {
					subbean.sendMessageString("お客様氏名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// お客様個別.契約者住所 ← お客様一意照会マップ.お客様一意照会リスト.契約者住所コード
				if (childMap != null) {
					/* ++++++++++ v1.00.00 追加開始 ++++++++++ */
					String adWork = JZMAdOutputEdit.getPtn01(
							(String)childMap.get("cont_state_nm"),
							(String)childMap.get("cont_city_nm"),
							(String)childMap.get("cont_oaztsu_nm"),
							(String)childMap.get("cont_azcho_nm"),
							(String)childMap.get("cont_bnchigo"),
							(String)childMap.get("cont_adrttm"),
							(String)childMap.get("cont_adrrm"));
					subbean.sendMessageString("契約者住所", X31CWebConst.DATABEAN_SET_VALUE, adWork);
					subbean.sendMessageString("契約者住所（表示）", X31CWebConst.DATABEAN_SET_VALUE, adWork);
					/* ++++++++++ v1.00.00 追加終了 ++++++++++ */
				} else {
					subbean.sendMessageString("契約者住所", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// お客様個別.お客様ステータス ← お客様一意照会マップ.お客様一意照会リスト.お客様ステータス
				if (childMap != null) {
					subbean.sendMessageString("お客様ステータス", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cust_stat"));
				} else {
					subbean.sendMessageString("お客様ステータス", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// お客様個別.お客様ステータス名 ← お客様一意照会マップ.お客様一意照会リスト.お客様ステータス名
				if (childMap != null) {
					subbean.sendMessageString("お客様ステータス名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cust_stat_nm"));
				} else {
					subbean.sendMessageString("お客様ステータス名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// お客様個別.会員種別コード ← お客様一意照会マップ.お客様一意照会リスト.会員種別コード
				if (childMap != null) {
					subbean.sendMessageString("会員種別コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("member_sbt_cd"));
				} else {
					subbean.sendMessageString("会員種別コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// お客様個別.会員種別 ← お客様一意照会マップ.お客様一意照会リスト.会員種別コード名
				if (childMap != null) {
					subbean.sendMessageString("会員種別", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("member_sbt_cd_nm"));
				} else {
					subbean.sendMessageString("会員種別", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// お客様個別.お客様誕生日 ← お客様一意照会マップ.お客様一意照会リスト.お客様生年月日
				if (childMap != null) {
					subbean.sendMessageString("お客様誕生日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cust_birthd"));
					/* ++++++++++ v1.00.00 追加開始 ++++++++++ */
					subbean.sendMessageString("お客様誕生日（表示）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cust_birthd"));
					/* ++++++++++ v1.00.00 追加終了 ++++++++++ */
				} else {
					subbean.sendMessageString("お客様誕生日", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：コンテンツ契約変更履歴
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCNSV002202SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		// ANK-4346-00-00 MOD START
//		if(outputMap.containsKey("CNSV002202SC")){
//			parentMap = (HashMap)outputMap.get("CNSV002202SC");
		if(outputMap.containsKey("CNSV002201CC")){
			parentMap = (HashMap)outputMap.get("CNSV002201CC");
		// ANK-4346-00-00 MOD END
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listCNSV002202SC_cont_svc_list_cont_svc_list = bean[0].getDataBeanArray("コンテンツサービス名リスト");
		childList = null;
		// ANK-4346-00-00 MOD START
//		if(listCNSV002202SC_cont_svc_list_cont_svc_list != null && parentMap != null && parentMap.containsKey("cont_svc_list")){
//			childList = (ArrayList)parentMap.get("cont_svc_list");
		if(listCNSV002202SC_cont_svc_list_cont_svc_list != null && parentMap != null && parentMap.containsKey("contract_histories")){
			childList = (ArrayList)parentMap.get("contract_histories");
		// ANK-4346-00-00 MOD START

			X31SDataBeanAccess subbean = null;
			subbean = listCNSV002202SC_cont_svc_list_cont_svc_list.getDataBean(0);

			// 一つ目はブランク設定
			// コンテンツサービス名.コンテンツサービスコード ← ""
			subbean.sendMessageString("コンテンツサービスコード", X31CWebConst.DATABEAN_ADD_VALUE, "");
			// コンテンツサービス名.コンテンツサービス名 ← ""
			subbean.sendMessageString("コンテンツサービス名", X31CWebConst.DATABEAN_ADD_VALUE, "");
			for(int i = 0; i < childList.size(); i++){
				HashMap childMap = (HashMap)childList.get(i);
			
				// コンテンツサービス名リスト.コンテンツサービスコード ← 課金対象年月取得マップ.コンテンツサービス一覧照会リスト.コンテンツサービスコード
				subbean.sendMessageString("コンテンツサービスコード", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cont_svc_cd"));
				// コンテンツサービス名リスト.コンテンツサービス名 ← 課金対象年月取得マップ.コンテンツサービス一覧照会リスト.コンテンツサービス名
				subbean.sendMessageString("コンテンツサービス名", X31CWebConst.DATABEAN_ADD_VALUE, String.valueOf(i+1) + "." + ((String)childMap.get("cont_svc_nm")));
			}
		}


		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：コンテンツ契約変更履歴
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCNSV002203SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		HashMap parentMap1 = null;
		// ANK-4346-00-00 MOD START
		if(outputMap.containsKey("CNSV002203SC")){
			parentMap1 = (HashMap)outputMap.get("CNSV002203SC");
		}


		ArrayList childList = null;
		ArrayList childList1 = null;

		X31SDataBeanAccessArray listCNSV002203SC_ido_rireki_list_cd_nm_knr_list = bean[0].getDataBeanArray("異動履歴リスト");
		// ANK-4346-00-00 ADD START
		X31SDataBeanAccessArray listCNSV002203SC_prc_teise_ido_rireki_list_cd_nm_knr_list = bean[0].getDataBeanArray("料金訂正異動履歴リスト");
		// ANK-4346-00-00 ADD END
		childList = null;
		// ANK-4346-00-00 MOD START
//		if(listCNSV002203SC_ido_rireki_list_cd_nm_knr_list != null && parentMap != null && parentMap.containsKey("cd_nm_knr_list")){
//			childList = (ArrayList)parentMap.get("cd_nm_knr_list");
		if(listCNSV002203SC_ido_rireki_list_cd_nm_knr_list != null && listCNSV002203SC_prc_teise_ido_rireki_list_cd_nm_knr_list != null 
				&& parentMap1 != null && parentMap1.containsKey("cd_nm_knr_list")){
				childList = (ArrayList)parentMap1.get("cd_nm_knr_list");
		// ANK-4346-00-00 MOD END 

			X31SDataBeanAccess subbean = null;
			subbean = listCNSV002203SC_ido_rireki_list_cd_nm_knr_list.getDataBean(0);
			// ANK-4346-00-00 ADD START
			X31SDataBeanAccess subbean2 = null;
			subbean2 = listCNSV002203SC_prc_teise_ido_rireki_list_cd_nm_knr_list.getDataBean(0);
			// ANK-4346-00-00 ADD END

			// 一つ目はブランク設定
			// コンテンツサービス名.コンテンツサービスコード ← ""
			subbean.sendMessageString("異動区分コード", X31CWebConst.DATABEAN_ADD_VALUE, "");
			// コンテンツサービス名.コンテンツサービス名 ← ""
			subbean.sendMessageString("異動区分名", X31CWebConst.DATABEAN_ADD_VALUE, "");
			// ANK-4346-00-00 ADD START
			// コンテンツサービス名.コンテンツサービスコード ← ""
			subbean2.sendMessageString("料金訂正異動区分コード", X31CWebConst.DATABEAN_ADD_VALUE, "");
			// コンテンツサービス名.コンテンツサービス名 ← ""
			subbean2.sendMessageString("料金訂正異動区分名", X31CWebConst.DATABEAN_ADD_VALUE, "");
			String cdKbn = "";
			// ANK-4346-00-00 ADD END
			for(int i = 0; i < childList.size(); i++){
				HashMap childMap = (HashMap)childList.get(i);
				// ANK-4346-00-00 MOD START
//				// 異動履歴リスト.異動区分コード ← コード名称管理コード区分一覧照会マップ.コード名称管理コード区分一覧照会明細.コード区分
//				subbean.sendMessageString("異動区分コード", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_kbn"));
//				// 異動履歴リスト.異動区分名 ← コード名称管理コード区分一覧照会マップ.コード名称管理コード区分一覧照会明細.コード区分名
//				subbean.sendMessageString("異動区分名", X31CWebConst.DATABEAN_ADD_VALUE, String.valueOf(i+1) + "." + ((String)childMap.get("cd_kbn_nm")));
				
				cdKbn = (String)childMap.get("cd_kbn");
				// 契約異動履歴用コード区分の場合、「異動履歴リスト」に値を入れる
				if (Arrays.asList(KEI_IDO_RRK_KBN_CD).contains(cdKbn)){
					
					// 異動履歴リスト.異動区分コード ← コード名称管理コード区分一覧照会マップ.コード名称管理コード区分一覧照会明細.コード区分
					subbean.sendMessageString("異動区分コード", X31CWebConst.DATABEAN_ADD_VALUE, cdKbn);
					// 異動履歴リスト.異動区分名 ← コード名称管理コード区分一覧照会マップ.コード名称管理コード区分一覧照会明細.コード区分名
					subbean.sendMessageString("異動区分名", X31CWebConst.DATABEAN_ADD_VALUE, String.valueOf(i+1) + "." + ((String)childMap.get("cd_kbn_nm")));
				
				}
				// 料金訂正履歴用コード区分の場合、「料金訂正異動履歴リスト」に値を入れる
				else if (Arrays.asList(PRC_TEIDE__RRK_KBN_CD).contains(cdKbn)){
					// 異動履歴リスト.異動区分コード ← コード名称管理コード区分一覧照会マップ.コード名称管理コード区分一覧照会明細.コード区分
					subbean2.sendMessageString("料金訂正異動区分コード", X31CWebConst.DATABEAN_ADD_VALUE, cdKbn);
					// 異動履歴リスト.異動区分名 ← コード名称管理コード区分一覧照会マップ.コード名称管理コード区分一覧照会明細.コード区分名
					subbean2.sendMessageString("料金訂正異動区分名", X31CWebConst.DATABEAN_ADD_VALUE, String.valueOf(i+1) + "." + ((String)childMap.get("cd_kbn_nm")));
				}
				// ANK-4346-00-00 MOD END
			}
		}


		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：コンテンツ契約変更履歴
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCNSV002204SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		// ANK-4346-00-00 MOD START
//		if(outputMap.containsKey("CNSV002204SC")){
//			parentMap = (HashMap)outputMap.get("CNSV002204SC");
		if(outputMap.containsKey("CNSV002201CC")){
			parentMap = (HashMap)outputMap.get("CNSV002201CC");
		// ANK-4346-00-00 MOD END
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listCNSV002204SC_cont_kei_chge_list_kei_chge_jsk_list = bean[0].getDataBeanArray("コンテンツ契約変更履歴");
		childList = null;
		// ANK-4346-00-00 MOD START
//		if(listCNSV002204SC_cont_kei_chge_list_kei_chge_jsk_list != null && parentMap != null && parentMap.containsKey("kei_chge_jsk_list")){
//			childList = (ArrayList)parentMap.get("kei_chge_jsk_list");
		if(listCNSV002204SC_cont_kei_chge_list_kei_chge_jsk_list != null && listCNSV002204SC_cont_kei_chge_list_kei_chge_jsk_list != null 
				&& parentMap != null && parentMap.containsKey("contract_histories")){
			childList = (ArrayList)parentMap.get("contract_histories");
			// ANK-4346-00-00 MOD START

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listCNSV002204SC_cont_kei_chge_list_kei_chge_jsk_list.getCount() -1 >= i){
					subbean = listCNSV002204SC_cont_kei_chge_list_kei_chge_jsk_list.getDataBean(i);
				}else{
					subbean = listCNSV002204SC_cont_kei_chge_list_kei_chge_jsk_list.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// コンテンツ契約変更履歴.変更年月日時分秒 ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.変更年月日時分秒
				if (childMap != null) {
					String work = (String)childMap.get("chge_dtm");
					if(work != null && !"".equals(work))
					{
						String replaceWork = work.replaceAll("[^0-9]","");
						subbean.sendMessageString("変更年月日時分秒", X31CWebConst.DATABEAN_SET_VALUE, replaceWork.substring(0, 12));
					}
					else
					{
						subbean.sendMessageString("変更年月日時分秒", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					
				} else {
					subbean.sendMessageString("変更年月日時分秒", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// コンテンツ契約変更履歴.コンテンツ契約番号 ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.コンテンツ契約番号
				if (childMap != null) {
					subbean.sendMessageString("コンテンツ契約番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cont_kei_no"));
				} else {
					subbean.sendMessageString("コンテンツ契約番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// ANK-4346-00-00 ADD START
				// コンテンツ契約変更履歴.コンテンツ名 ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.コンテンツサービス名
				if (childMap != null) {
					subbean.sendMessageString("コンテンツサービス名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cont_svc_nm"));
				} else {
					subbean.sendMessageString("コンテンツサービス名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// ANK-4346-00-00 ADD END
				// コンテンツ契約変更履歴.コンテンツ名 ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.コンテンツ名
				if (childMap != null) {
					subbean.sendMessageString("コンテンツ名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cont_nm"));
				} else {
					subbean.sendMessageString("コンテンツ名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// コンテンツ契約変更履歴.ＣＣＭＧデータ更新者ＩＤ ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.CCMGデータ更新者ID
				if (childMap != null) {
					subbean.sendMessageString("ＣＣＭＧデータ更新者ＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("ccmg_data_ksnsha_id"));
				} else {
					subbean.sendMessageString("ＣＣＭＧデータ更新者ＩＤ", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// コンテンツ契約変更履歴.ＣＣＭＧデータ更新者名 ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.CCMGデータ更新者名
				if (childMap != null) {
					subbean.sendMessageString("ＣＣＭＧデータ更新者名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("ccmg_data_ksnsha_nm"));
				} else {
					subbean.sendMessageString("ＣＣＭＧデータ更新者名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// コンテンツ契約変更履歴.変更前データ ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.変更前データ
				if (childMap != null) {
					subbean.sendMessageString("変更前データ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("chge_bf_data"));
				} else {
					subbean.sendMessageString("変更前データ", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// コンテンツ契約変更履歴.変更後データ ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.変更後データ
				if (childMap != null) {
					subbean.sendMessageString("変更後データ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("chge_af_data"));
				} else {
					subbean.sendMessageString("変更後データ", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// コンテンツ契約変更履歴.異動履歴コード名 ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.異動履歴コード名
				if (childMap != null) {
					subbean.sendMessageString("異動履歴コード名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("ido_rireki_cd_nm"));
				} else {
					subbean.sendMessageString("異動履歴コード名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// コンテンツ契約変更履歴.課金訂正変更メモ ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.課金訂正変更メモ
				if (childMap != null) {
					subbean.sendMessageString("課金訂正変更メモ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("chrg_teise_rsn_memo"));
				} else {
					subbean.sendMessageString("課金訂正変更メモ", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				if (i % 2 == 1) {
					subbean.sendMessageString("ＣＳＳクラス名", X31CWebConst.DATABEAN_SET_VALUE, "odd");
				} else {
					subbean.sendMessageString("ＣＳＳクラス名", X31CWebConst.DATABEAN_SET_VALUE, "even");
				}
				// コンテンツ契約変更履歴.０５０電話番号 ← コンテンツ契約変更履歴マップ.契約変更実績一覧照会明細.０５０電話番号
				if (childMap != null) {
					subbean.sendMessageString("０５０電話番号", X31CWebConst.DATABEAN_SET_VALUE, JCNWebCommon.formatTelNo((String)childMap.get("n_050_telno")));
				} else {
					subbean.sendMessageString("０５０電話番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


		return bean;
	}
// ANK-4346-00-00 ADD START
	/**
	 * 下りマッピング
	 * @param bean　[0]：随時請求書登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCNSV002200(X31SDataBeanAccess[] bean){



		X31SDataBeanAccessArray listCNSV002200SC_input_sbt_info_ = bean[0].getDataBeanArray("入力種別情報");
		if(listCNSV002200SC_input_sbt_info_ != null ){
			

			for(int i = 0; i < IDO_RRK_KBN.length; i++){
				X31SDataBeanAccess subbean = null;
				if(listCNSV002200SC_input_sbt_info_.getCount() -1 >= i){
					subbean = listCNSV002200SC_input_sbt_info_.getDataBean(i);
				}else{
					subbean = listCNSV002200SC_input_sbt_info_.addDataBean();
				}
				String childMap = IDO_RRK_KBN[i];
				if (subbean == null) {
					continue;
				}

				// 入力種別情報.入力種別コード ← 入力種別取得マップ.コード名称管理コード区分一覧照会明細.コード区分
				if (childMap != null) {
					subbean.sendMessageString("入力種別コード", X31CWebConst.DATABEAN_SET_VALUE,  Integer.toString(i));
				} else {
					subbean.sendMessageString("入力種別コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 入力種別情報.入力種別名称 ← 入力種別取得マップ.コード名称管理コード区分一覧照会明細.コード区分名
				if (childMap != null) {
					subbean.sendMessageString("入力種別名称", X31CWebConst.DATABEAN_SET_VALUE, IDO_RRK_KBN[i]);
				} else {
					subbean.sendMessageString("入力種別名称", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 入力種別情報.入力種別初期表示コード ← 入力種別取得マップ.コード名称管理コード区分一覧照会明細.初期表示コード
				if (childMap != null) {
					subbean.sendMessageString("入力種別初期表示コード", X31CWebConst.DATABEAN_SET_VALUE, Integer.toString(i));
				} else {
					subbean.sendMessageString("入力種別初期表示コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}

		return bean;
	}
	// ANK-4346-00-00 ADD END

}