/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：CHSV0026_CHSV0026OPDBMapper
*	ソースファイル名：CHSV0026_CHSV0026OPDBMapper.java
*	作成者			：富士通
*	日付			：2011年09月30日
*＜機能概要＞
*	BP（料金調整登録）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/09/30	富士通		新規作成
*	v3.00.00	2012/06/01	金澤		案件対応
*	v5.00.00    2013/07/06  FJ) 林	【LT-2013-0000235】No欄出力条件変更
*	v5.00.01	2013/07/15  FJ) 林	【LT-2013-0000293】【LT-2013-0000355】工事遅延明細に対する対応
*	v5.00.02	2013/08/02	FJ) 辛	【IT1-2013-0001512】対応
*	v5.00.03    2013/08/06  FJ) 林	【IT1-2013-0001502】通信料（従量制）の場合のみFTTH通信量訂正画面を起動する対応
*	v6.00.00    2013/12/12  FJ)垣内 【OM-2013-0003340】マンションの請求契約の料金調整不具合修正
*	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/05/31	FJ) 林	【IT1-2014-0000169】金額表示カラム数="0"の場合、調整前後金額を出力しない対応
*	v64.00.00	2023/02/13	FJ) 澤田	【ANK-4323-00-00】mineo請求明細の利用期間表示変更
*	v71.00.00   2024/04/04  FJ）久山    【ANK-4468-00-00】eo光ネット「シンプルプラン」追加対応
**********************************************************************/
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.JKKStrConst;
import eo.common.util.JCRUtilCommon;
import eo.common.util.JKKStringUtil;
import eo.common.util.JPCUtilCommon;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CHW00201SF.CHW00201SFConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JACScreenConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JCHChangeGroupKei;
import eo.web.webview.common.JCHDspEditUtil;
import eo.web.webview.common.JCHWebCommon;
import eo.web.webview.common.JCRWebCommon;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class CHSV0026_CHSV0026OPDBMapper {

	//■IT1-2013-0001512対応 開始
	/** 補償費扱いフラグ */
	private static final String STR_HSHIAK_PRC_TEISE_UM = "CD01325";
	//■IT1-2013-0001512対応 終了
	
	/**
	 * コンストラクタ
	 */
	public CHSV0026_CHSV0026OPDBMapper(){
	}


	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：料金調整
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV002601SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 請求契約番号 → 料金調整登録マップ.請求契約番号
		parentMap.put("seiky_kei_no", bean[0].sendMessageString(CHW00201SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

		// 請求年月 → 料金調整登録マップ.請求年月
		parentMap.put("seiky_ym", bean[0].sendMessageString(CHW00201SFConst.SEIKY_YM, X31CWebConst.DATABEAN_GET_VALUE));

		// 請求番号 → 料金調整登録マップ.請求番号
		parentMap.put("seiky_no", bean[0].sendMessageString(CHW00201SFConst.SEIKY_NO, X31CWebConst.DATABEAN_GET_VALUE));

		// 請求ステータス → 料金調整登録マップ.請求ステータス
		parentMap.put("seiky_stat", bean[0].sendMessageString(CHW00201SFConst.SEIKY_STAT, X31CWebConst.DATABEAN_GET_VALUE));

		// 債権番号 → 料金調整登録マップ.債権番号
		parentMap.put("saiken_no", bean[0].sendMessageString(CHW00201SFConst.SAIKEN_NO, X31CWebConst.DATABEAN_GET_VALUE));

		// 請求情報
		X31SDataBeanAccess seikyBean = bean[0].getDataBeanArray(CHW00201SFConst.SEIKY_AMNT_INFO).getDataBean(0);

		// 債権額（前） → 料金調整登録マップ.債権額
		parentMap.put("saiken_amnt", seikyBean.sendMessageString(CHW00201SFConst.SAIKEN_AMNT_BF_02, X31CWebConst.DATABEAN_GET_VALUE));

		// うち消費税額（前） → 料金調整登録マップ.うち消費税額
		parentMap.put("uchi_amnt_stax", seikyBean.sendMessageString(CHW00201SFConst.UCHI_STAX_TAX_BF_02, X31CWebConst.DATABEAN_GET_VALUE));

		// 請求額(前) → 料金調整登録マップ.請求額
		parentMap.put("seiky_amnt", seikyBean.sendMessageString(CHW00201SFConst.SEIKY_AMNT_BF_02, X31CWebConst.DATABEAN_GET_VALUE));

		// 前受金充当額(前) → 料金調整登録マップ.前受金充当額
		parentMap.put("maeuk_juto_amnt", seikyBean.sendMessageString(CHW00201SFConst.MAEUKE_AMNT_JUTO_BF_02, X31CWebConst.DATABEAN_GET_VALUE));

		// 預り金額(前) → 料金調整登録マップ.預り金額
		parentMap.put("azkr_amnt", seikyBean.sendMessageString(CHW00201SFConst.DPSIT_AMNT_BF_02, X31CWebConst.DATABEAN_GET_VALUE));

		// 前受金額(前) → 料金調整登録マップ.前受金額
		parentMap.put("maeuk_amnt", seikyBean.sendMessageString(CHW00201SFConst.MAEUKE_AMNT_BF_02, X31CWebConst.DATABEAN_GET_VALUE));

		// 請求種別コード → 料金調整登録マップ.請求種別コード
		parentMap.put("seiky_sbt_cd", bean[0].sendMessageString(CHW00201SFConst.SEIKY_SBT_CD, X31CWebConst.DATABEAN_GET_VALUE));

		// システムコード("CH") → 料金調整登録マップ.システムコード
		parentMap.put("sys_cd", JACStrConst.SYS_CD_CH);

		// 業務機能識別コード(料金調整・料金変更) → 料金調整登録マップ.業務機能識別コード
		parentMap.put("work_kino_skbt_cd", JACStrConst.WORK_KINO_SKBT_ADJ_U_DSP);

		// 業務機能識別コード(料金変更可否判定用) → 料金調整登録マップ.業務機能識別コード＿料金訂正可否
		parentMap.put("work_kino_skbt_cd_prc_teisei", JACStrConst.WORK_KINO_SKBT_TEISE_PSB);

		// 業務機能識別コード(訂正ボタン) → 料金調整登録マップ.業務機能識別コード＿訂正ボタン
		parentMap.put("work_kino_skbt_teise_btn", JACStrConst.WORK_KINO_SKBT_TUSHIN_PRC);

		// 料金項目名称("1") → 料金調整登録マップ.料金項目名称種別コード
		parentMap.put("prc_kmk_nm_sbt_cd", JACStrConst.PRC_KMK_NM_SBT_CD_PRC_NM);

		// 請求更新年月日時分秒 → 料金調整登録マップ.更新前請求更新年月日時分秒
		parentMap.put("seiky_upd_dtm_af", bean[0].sendMessageString(CHW00201SFConst.SEIKY_UPD_DTM, X31CWebConst.DATABEAN_GET_VALUE));

		// 債権更新年月日時分秒 → 料金調整登録マップ.更新前債権更新年月日時分秒
		parentMap.put("saiken_upd_dtm_af", bean[0].sendMessageString(CHW00201SFConst.SAIKEN_UPD_DTM, X31CWebConst.DATABEAN_GET_VALUE));

		// 補償費有無フラグ → 料金調整登録マップ.補償費有無フラグ
		String umValue = JCHDspEditUtil.getUmFlgCodeValue(bean[0].sendMessageBoolean(CHW00201SFConst.HOSHOHI_DSP, X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("compensation_um_flg", umValue);

		// ECH0101D011(料金調整登録)サービスIFのinput項目(ECH0101D011CBSMsg1List)を作成
		X31SDataBeanAccessArray arraybean1 = bean[0].getDataBeanArray(CHW00201SFConst.SEIKY_UW_INFO);
		List list1 = getUwBeanInfoList(bean, arraybean1, parentMap, "ECH0101D011CBSMsg1List");

		// ECH0101D011(料金調整登録)サービスIFのinput項目(ECH0101D011CBSMsg5List)を作成
		X31SDataBeanAccessArray arraybean5 = bean[0].getDataBeanArray(CHW00201SFConst.SEIKY_UW_DB_CTL);
		List list5 = getUwBeanInfoList(bean, arraybean5, parentMap, "ECH0101D011CBSMsg5List");

		parentMap.put("ECH0101D011CBSMsg1List", list1);
		parentMap.put("ECH0101D011CBSMsg5List", list5);

		outputMap.put("CHSV002601SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：料金調整
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV002602SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		String dtm = JCCWebCommon.getSysDateTime();
		String fileDelYmd = JCHWebCommon.addMonth(dtm.substring(0, 8), 1);

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		//システムコード → 電子ファイル管理登録マップ.システムコード
		parentMap.put("sys_cd", JACStrConst.SYS_CD_CH);

		//ファイルコード → 電子ファイル管理登録マップ.ファイルコード
		parentMap.put("file_cd", JACStrConst.EFILE_KANRI_FILE_CD);

		//ファイル削除年月日 → 電子ファイル管理登録マップ.ファイル削除年月日
		parentMap.put("file_del_ymd", fileDelYmd);

		outputMap.put("CHSV002602SC", parentMap);

		//電子ファイルデータ情報
		HashMap<String, Object> efileMap = new HashMap<String, Object>();
		X31SDataBeanAccessArray arraybean = null;
		arraybean = bean[0].getDataBeanArray(CHW00201SFConst.EFILE_DATA_INFO);

		ArrayList list = new ArrayList();
		if (arraybean != null && arraybean.getCount() > 0)
		{
			for (int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess efileDataBean = arraybean.getDataBean(i);
				HashMap childMap = null;
				if (list.size() - 1 >= i)
				{
					childMap = (HashMap)list.get(i);
				}
				else
				{
					childMap = new HashMap();
				}

				childMap.put("amnt", efileDataBean.sendMessageString(CHW00201SFConst.AMNT_10, X31CWebConst.DATABEAN_GET_VALUE));
				childMap.put("cyosei_amnt", efileDataBean.sendMessageString(CHW00201SFConst.CYOSEI_AMNT_10, X31CWebConst.DATABEAN_GET_VALUE));
				childMap.put("pcrs_cd_out", efileDataBean.sendMessageString(CHW00201SFConst.PCRS_CD_OUT_10, X31CWebConst.DATABEAN_GET_VALUE));
				childMap.put("prc_div", efileDataBean.sendMessageString(CHW00201SFConst.PRC_DIV_10, X31CWebConst.DATABEAN_GET_VALUE));
				childMap.put("prc_kmk_cd_out", efileDataBean.sendMessageString(CHW00201SFConst.PRC_KMK_CD_OUT_10, X31CWebConst.DATABEAN_GET_VALUE));
				childMap.put("prc_kmk_nm", efileDataBean.sendMessageString(CHW00201SFConst.PRC_KMK_NM_10, X31CWebConst.DATABEAN_GET_VALUE));
				childMap.put("prc_svc_cd_out", efileDataBean.sendMessageString(CHW00201SFConst.PRC_SVC_CD_OUT_10, X31CWebConst.DATABEAN_GET_VALUE));
				childMap.put("prc_teisei_kh", efileDataBean.sendMessageString(CHW00201SFConst.PRC_TEISEI_KH_10, X31CWebConst.DATABEAN_GET_VALUE));
				childMap.put("svc_kei_no_out", efileDataBean.sendMessageString(CHW00201SFConst.SVC_KEI_NO_OUT_10, X31CWebConst.DATABEAN_GET_VALUE));
				childMap.put("svkei_no_dsp_ctrl_flg", efileDataBean.sendMessageString(CHW00201SFConst.SVKEI_NO_DSP_CTRL_FLG_10, X31CWebConst.DATABEAN_GET_VALUE));
				childMap.put("use_endymd_out", efileDataBean.sendMessageString(CHW00201SFConst.USE_ENDYMD_OUT_10, X31CWebConst.DATABEAN_GET_VALUE));
				childMap.put("use_prd_dsp_ctrl_flg", efileDataBean.sendMessageString(CHW00201SFConst.USE_PRD_DSP_CTRL_FLG_10, X31CWebConst.DATABEAN_GET_VALUE));
				childMap.put("use_staymd_out", efileDataBean.sendMessageString(CHW00201SFConst.USE_STAYMD_OUT_10, X31CWebConst.DATABEAN_GET_VALUE));

				list.add(childMap);
			}
		}

		efileMap.put("ECH0101D011CBSMsg2List", list);
		outputMap.put("efile_data_info_list", efileMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：料金調整
	 * @param outputMap
	 * @param bl　 ビューロジックインスタンス
	 */
	@SuppressWarnings("unchecked")
	public HashMap setPRCCHOSEIHENKOCREATECC(X31SDataBeanAccess[] bean, HashMap outputMap, JCCWebBusinessLogic bl)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		String userId = bean[1].sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE);
		String userNm = bean[1].sendMessageString(CommonInfoCFConst.USER_NM, X31CWebConst.DATABEAN_GET_VALUE);
		String dtm = JCCWebCommon.getSysDateTime();
		X31SDataBeanAccessArray arraybean = null;
		X31SDataBeanAccess beanTemp = null;

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		beanTemp = bean[0];
		arraybean = beanTemp.getDataBeanArray(CHW00201SFConst.SEIKY_INFO);
		X31SDataBeanAccess subbean = arraybean.getDataBean(0);

		// 請求年月
		parentMap.put("seiky_ym", beanTemp.sendMessageString(CHW00201SFConst.SEIKY_YM, X31CWebConst.DATABEAN_GET_VALUE));
		// 請求契約番号
		parentMap.put("seiky_kei_no", beanTemp.sendMessageString(CHW00201SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 請求先名（カナ）
		parentMap.put("shs_kana", subbean.sendMessageString(CHW00201SFConst.SHS_KANA_01, X31CWebConst.DATABEAN_GET_VALUE));
		// 督促ステータス
		parentMap.put("tokusoku_stat", subbean.sendMessageString(CHW00201SFConst.TOKUSOKU_STAT_01, X31CWebConst.DATABEAN_GET_VALUE));
		// 記事
		parentMap.put("kiji", beanTemp.sendMessageString(CHW00201SFConst.KIJI, X31CWebConst.DATABEAN_GET_VALUE));
		// 操作者ID
		parentMap.put("ope_id", userId);
		// 操作者名
		parentMap.put("ope_nm", userNm);
		// 操作時間
		parentMap.put("ope_date", dtm);

		// 利用開始-終了、変更判定用マップリスト形成
		ArrayList<HashMap<String, Object>> useStaEndYmdMapList = new ArrayList<HashMap<String, Object>>();
		X31SDataBeanAccessArray seikyUwInfo = beanTemp.getDataBeanArray(CHW00201SFConst.SEIKY_UW_INFO);
		for (int i = 0; i < seikyUwInfo.getCount().intValue(); i++)
		{
			HashMap<String, Object> useStaEndYmdMap = new HashMap<String, Object>();
			X31SDataBeanAccess seikyUwInfoBean = seikyUwInfo.getDataBean(i);
			useStaEndYmdMap.put("use_staymd", seikyUwInfoBean.sendMessageString(CHW00201SFConst.USE_STAYMD_BF_03, X31CWebConst.DATABEAN_GET_VALUE));
			useStaEndYmdMap.put("use_endymd", seikyUwInfoBean.sendMessageString(CHW00201SFConst.USE_ENDYMD_BF_03, X31CWebConst.DATABEAN_GET_VALUE));
			useStaEndYmdMap.put("key_prc_kmk_cd", seikyUwInfoBean.sendMessageString(CHW00201SFConst.KEY_PRC_KMK_CD_03, X31CWebConst.DATABEAN_GET_VALUE));

			useStaEndYmdMapList.add(useStaEndYmdMap);
		}

		parentMap.put("useStaEndYmdMapList", useStaEndYmdMapList);

		outputMap.put("PRCCHOSEIHENKOCREATECC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：料金調整
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param bl　 ビューロジックインスタンス
	 */
	@SuppressWarnings("unchecked")
	public HashMap setTAIOKIROKADDCC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, JCCWebBusinessLogic bl)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		String wkkbtOrgCd = JCRWebCommon.getWkkbtOrgCd(bean[1]);
		String wkkbtOrgNm = JCRWebCommon.getWkkbtOrgNm(bean[1]);
		String userId = bean[1].sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE);
		String userNm = bean[1].sendMessageString(CommonInfoCFConst.USER_NM, X31CWebConst.DATABEAN_GET_VALUE);
		String dtm = JCCWebCommon.getSysDateTime();

		ArrayList<HashMap<String, Object>> taioKirokAddList = new ArrayList<HashMap<String, Object>>();

		HashMap<String, Object> childMap = new HashMap<String, Object>();

		// 料金調整["118"固定] → 対応記録登録マップ.対応記録登録リスト.料金対応記録種別コード
		childMap.put("prc_taio_kirok_sbt_cd", JACStrConst.TKRK_SBT_PRC_ADJ);

		// 料金対応記録種別詳細コード → 対応記録登録マップ.対応記録登録リスト.料金対応記録種別詳細コード
		childMap.put("prc_taio_kirok_dtl_bunrui_cd", this.getPrcTaioKirokSbtDtlCd(bean));

		// "料金調整" → 対応記録登録マップ.対応記録登録リスト.タイトル
		childMap.put("title", JACScreenConst.SCREEN_NAME_CHW00201);

		// 記事 → 対応記録登録マップ.対応記録登録リスト.問合せ内容
		childMap.put("toiawase_naiyo", bean[0].sendMessageString("記事", X31CWebConst.DATABEAN_GET_VALUE));

		// 業務個別設定組織コード → 対応記録登録マップ.対応記録登録リスト.業務個別設定組織コード
		childMap.put("wkkbt_org_cd", wkkbtOrgCd);

		// 業務個別設定組織名 → 対応記録登録マップ.対応記録登録リスト.業務個別設定組織名
		childMap.put("wkkbt_org_nm", wkkbtOrgNm);

		// ユーザーＩＤ → 対応記録登録マップ.対応記録登録リスト.ユーザーＩＤ
		childMap.put("user_id", userId);

		// ユーザー名 → 対応記録登録マップ.対応記録登録リスト.ユーザー名
		childMap.put("user_nm", userNm);

		// 年月日時分秒 → 対応記録登録マップ.対応記録登録リスト.年月日時分秒
		childMap.put("dtm", dtm);

		// 応対区分カテゴリーリストの作成
		ArrayList<HashMap<String, Object>> rspCtgrList = new ArrayList<HashMap<String, Object>>();
		HashMap<String, Object> ctgrMap = new HashMap<String, Object>();

		// 料金調整["118"固定] → 対応記録登録マップ.応対区分カテゴリーリスト.料金対応記録種別コード
		ctgrMap.put("prc_taio_kirok_sbt_cd", JACStrConst.TKRK_SBT_PRC_ADJ);

		// 料金対応記録種別詳細コード → 対応記録登録マップ.応対区分カテゴリーリスト.料金対応記録種別詳細コード
		ctgrMap.put("prc_taio_kirok_dtl_bunrui_cd", this.getPrcTaioKirokSbtDtlCd(bean));

		// taio_kirok_add_listにrsp_ctgr_listを追加
		rspCtgrList.add(ctgrMap);
		childMap.put("rsp_ctgr_list", rspCtgrList);

		taioKirokAddList.add(childMap);

		parentMap.put("taio_kirok_add_list", taioKirokAddList);

		parentMap.put("seiky_kei_no", bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(JACStrConst.TAIOKIROKADDCC_MAP_ID, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：料金調整
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param bl　 ビューロジックインスタンス
	 */
	@SuppressWarnings("unchecked")
	public HashMap setADDHOTVOICCC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, JCCWebBusinessLogic bl)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 応対区分カテゴリーリストの作成
		ArrayList<HashMap<String, Object>> rspCtgrList = new ArrayList<HashMap<String, Object>>();
		HashMap<String, Object> ctgrMap = new HashMap<String, Object>();
		rspCtgrList.add(ctgrMap);

		parentMap.put("RSP_CTGR_List", rspCtgrList);
		outputMap.put("ADDHOTVOICCC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：料金調整
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param bl　 ビューロジックインスタンス
	 */
	@SuppressWarnings("unchecked")
	public HashMap setPRCTAIOKIROKADDCC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, JCCWebBusinessLogic bl)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		X31SDataBeanAccessArray arraybean = null;
		X31SDataBeanAccess beanTemp = null;
		List<HashMap<String, Object>> list = null;

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		if (parentMap.containsKey("prc_taio_kirok_list"))
		{
			list = (ArrayList)parentMap.get("prc_taio_kirok_list");
		}
		else
		{
			list = new ArrayList();
		}

		beanTemp = bean[0];
		arraybean = beanTemp.getDataBeanArray(CHW00201SFConst.SEIKY_AMNT_INFO);
		if (arraybean != null && arraybean.getCount() > 0)
		{

			X31SDataBeanAccess subbean = arraybean.getDataBean(0);

			String prcTaioKirokSbtCd = JACStrConst.TKRK_SBT_PRC_ADJ;
			String prcTaioKirokSbtDtlCd = this.getPrcTaioKirokSbtDtlCd(bean);
			String seikyAmntAf = subbean.sendMessageString(CHW00201SFConst.SEIKY_AMNT_AF_02, X31CWebConst.DATABEAN_GET_VALUE);
			String seikyAmntBf = subbean.sendMessageString(CHW00201SFConst.SEIKY_AMNT_BF_02, X31CWebConst.DATABEAN_GET_VALUE);
			
			//■IT1-2013-0001512対応 開始
			String bf_value =bean[0].sendMessageString(CHW00201SFConst.BF_HOSHOHI_DSP, X31CWebConst.DATABEAN_GET_VALUE);
			String af_value = JCHDspEditUtil.getUmFlgCodeValue(bean[0].sendMessageBoolean(CHW00201SFConst.HOSHOHI_DSP, X31CWebConst.DATABEAN_GET_VALUE));
			boolean isChg = false;
			if(!bf_value.equals(af_value))
			{
				isChg = true;
			}
			//■IT1-2013-0001512対応 終了
			
			HashMap childMap = new HashMap();
			// ユーザＩＤ → 料金対応記録登録マップ.料金対応記録明細リスト.料金対応ユーザＩＤ
			childMap.put("prc_taio_user_id", bean[1].sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE));

			// 請求契約番号 → 料金対応記録登録マップ.料金対応記録明細リスト.請求契約番号
			childMap.put("seiky_kei_no", beanTemp.sendMessageString(CHW00201SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

			// 料金調整["118"固定] → 料金対応記録登録マップ.料金対応記録明細リスト.料金対応記録種別コード
			childMap.put("prc_taio_kirok_sbt_cd", prcTaioKirokSbtCd);

			// 料金対応記録種別詳細コード → 料金対応記録登録マップ.料金対応記録明細リスト.料金対応記録種別詳細コード
			childMap.put("prc_taio_kirok_sbt_dtl_cd", prcTaioKirokSbtDtlCd);

			// "料金調整" → 料金対応記録登録マップ.料金対応記録明細リスト.タイトル
			childMap.put("title", JACScreenConst.SCREEN_NAME_CHW00201);

			// 記事 → 料金対応記録登録マップ.料金対応記録明細リスト.記事
			childMap.put("kiji", beanTemp.sendMessageString(CHW00201SFConst.KIJI, X31CWebConst.DATABEAN_GET_VALUE));

			// 債権番号
			childMap.put("saiken_no", beanTemp.sendMessageString(CHW00201SFConst.SAIKEN_NO, X31CWebConst.DATABEAN_GET_VALUE));

			// TODO:補償費のコード定義がされていない　申請中
			if (JACStrConst.TKRK_SBTD_SEIKY_AMNT_ADJ.equals(prcTaioKirokSbtDtlCd))
			{
				//■IT1-2013-0001512対応 開始
				if(isChg)
				{
					// 変更前の補償費の種別コード → 料金対応記録登録マップ.料金対応記録明細リスト.変更前コード種別コード
					childMap.put("chg_bf_cd_sbt_cd", STR_HSHIAK_PRC_TEISE_UM);

					// 変更前の補償費のコード区分 → 料金対応記録登録マップ.料金対応記録明細リスト.変更前コード区分
					childMap.put("chg_bf_cd_div", bf_value);

					// 変更後の補償費の種別コード → 料金対応記録登録マップ.料金対応記録明細リスト.変更後コード種別コード
					childMap.put("chg_af_cd_sbt_cd", STR_HSHIAK_PRC_TEISE_UM);

					// 変更後の補償費のコード区分 → 料金対応記録登録マップ.料金対応記録明細リスト.変更後コード区分
					childMap.put("chg_af_cd_div", af_value);
				}
				else
				{
					// 変更前の補償費の種別コード → 料金対応記録登録マップ.料金対応記録明細リスト.変更前コード種別コード
					childMap.put("chg_bf_cd_sbt_cd", "");

					// 変更前の補償費のコード区分 → 料金対応記録登録マップ.料金対応記録明細リスト.変更前コード区分
					childMap.put("chg_bf_cd_div", "");

					// 変更後の補償費の種別コード → 料金対応記録登録マップ.料金対応記録明細リスト.変更後コード種別コード
					childMap.put("chg_af_cd_sbt_cd", "");

					// 変更後の補償費のコード区分 → 料金対応記録登録マップ.料金対応記録明細リスト.変更後コード区分
					childMap.put("chg_af_cd_div", "");
				}
				//■IT1-2013-0001512対応 終了
				
				// 変更前の変更前金額 → 料金対応記録登録マップ.料金対応記録明細リスト.変更前金額
				childMap.put("chg_bf_amnt", seikyAmntBf);

				// 変更後の変更後金額 → 料金対応記録登録マップ.料金対応記録明細リスト.変更後金額
				childMap.put("chg_af_amnt", seikyAmntAf);
			}
			else if (JACStrConst.TKRK_SBTD_SEIKY_DEL_ADJ.equals(prcTaioKirokSbtDtlCd))
			{
				//■IT1-2013-0001512対応 開始
				if(isChg)
				{
					// 変更前の補償費の種別コード → 料金対応記録登録マップ.料金対応記録明細リスト.変更前コード種別コード
					childMap.put("chg_bf_cd_sbt_cd", STR_HSHIAK_PRC_TEISE_UM);

					// 変更前の補償費のコード区分 → 料金対応記録登録マップ.料金対応記録明細リスト.変更前コード区分
					childMap.put("chg_bf_cd_div", bf_value);
				}
				else
				{
					// 変更前の補償費の種別コード → 料金対応記録登録マップ.料金対応記録明細リスト.変更前コード種別コード
					childMap.put("chg_bf_cd_sbt_cd", "");

					// 変更前の補償費のコード区分 → 料金対応記録登録マップ.料金対応記録明細リスト.変更前コード区分
					childMap.put("chg_bf_cd_div", "");
				}
				//■IT1-2013-0001512対応 終了
				
				// 変更前の変更前金額 → 料金対応記録登録マップ.料金対応記録明細リスト.変更前金額
				childMap.put("chg_bf_amnt", seikyAmntBf);
			}

			// 請求年月 → 料金対応記録登録マップ.料金対応記録明細リスト.記録対象年月
			childMap.put("kirok_tg_ym", beanTemp.sendMessageString(CHW00201SFConst.SEIKY_YM, X31CWebConst.DATABEAN_GET_VALUE));

			// 対応履歴表示 → 料金対応記録登録マップ.料金対応記録明細リスト.対応履歴連動対象フラグ
			childMap.put("taiorrki_rendo_tg_flg", JCHWebCommon.getRendoFlg(bean[0], CHW00201SFConst.TAIO_RIREKI_DSP));

			list.add(childMap);
		}
		parentMap.put("prc_taio_kirok_list", list);

		outputMap.put(JACStrConst.PRCTAIOKIROKADDCC_MAP_ID, parentMap);

		return outputMap;
	}

	//ANK-4468-00-00 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：料金調整
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setGETCHANGEGROUPKEIINFCC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if(bean == null){
			return null;
		}
		
		if(bean.length != 2){
			return null;
		}
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		outputMap.put("GETCHANGEGROUPKEIINFCC", parentMap);
						
		return outputMap;
	}
	
	//ANK-4468-00-00 ADD END

	/**
	 * 下りマッピング
	 * 
	 * @param bean　[0]：料金調整
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV002601SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("CHSV002601SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV002601SC");
		}

		ArrayList childList = null;
		X31SDataBeanAccess eFileBean = null;

		X31SDataBeanAccessArray listCHSV002601SC_seiky_uw_info_ECH0101D011CBSMsg2List = bean[0].getDataBeanArray("請求内訳情報");
		X31SDataBeanAccessArray listCHSV002601SC_efile_data_info_ECH0101D011CBSMsg2List = bean[0].getDataBeanArray("電子ファイルデータ情報");

		if (listCHSV002601SC_seiky_uw_info_ECH0101D011CBSMsg2List != null && parentMap != null && parentMap.containsKey("ECH0101D011CBSMsg2List"))
		{
			// 詳細必須料金項目情報の料金項目コード群を取得
			HashMap<String, String> dtlReqMap =
				JCHWebCommon.getPrcKmkCdMap(bean[0], CHW00201SFConst.DTL_REQ_PRC_KMK_CD_INFO, CHW00201SFConst.DTL_REQ_PRC_KMK_CD_15);

			// 詳細必須料金項目コード（重複可）の料金項目コード群を取得
			HashMap<String, String> dtlReqDplMap =
				JCHWebCommon.getPrcKmkCdMap(bean[0], CHW00201SFConst.DTL_REQ_PRC_KMK_CD_DPLCT_INFO, CHW00201SFConst.DTL_REQ_PRC_KMK_CD_DPLCT_16);

			// 詳細必須料金項目情報（タブレット）の料金項目コード群を取得
			HashMap<String, String> tabDtlReqMap =
				JCHWebCommon.getPrcKmkCdMap(bean[0], CHW00201SFConst.TAB_DTL_REQUIRE_PRC_KMK_CD_INFO, CHW00201SFConst.TAB_DTL_REQUIRE_PRC_KMK_CD_17);

			childList = (ArrayList)parentMap.get("ECH0101D011CBSMsg2List");
			//ANK-4468-00-00 ADD START
			// シンプルプラン料金出力名称文言変更
			childList = JCHChangeGroupKei.changeGroupKei(childList,outputMap);
			//ANK-4468-00-00 ADD END
			int iNo = 0;
			for (int i = 0; i < childList.size(); i++)
			{
				// 請求内訳情報
				X31SDataBeanAccess subbean = null;
				if (listCHSV002601SC_seiky_uw_info_ECH0101D011CBSMsg2List.getCount() - 1 >= i)
				{
					subbean = listCHSV002601SC_seiky_uw_info_ECH0101D011CBSMsg2List.getDataBean(i);
				}
				else
				{
					subbean = listCHSV002601SC_seiky_uw_info_ECH0101D011CBSMsg2List.addDataBean();
				}

				// 電子ファイルデータ情報
				if (listCHSV002601SC_efile_data_info_ECH0101D011CBSMsg2List.getCount() - 1 >= i)
				{
					eFileBean = listCHSV002601SC_efile_data_info_ECH0101D011CBSMsg2List.getDataBean(i);
				}
				else
				{
					eFileBean = listCHSV002601SC_efile_data_info_ECH0101D011CBSMsg2List.addDataBean();
				}

				if (subbean == null)
				{
					continue;
				}

				HashMap childMap = (HashMap)childList.get(i);
				if (childMap != null)
				{
					// 制御フラグに応じて設定
					String seikyKeiNoDspCtrlFlg = (String)childMap.get("seiky_kei_no_dsp_ctrl_flg");
					String svkeiNoDspCtrlFlg = (String)childMap.get("svkei_no_dsp_ctrl_flg");
					String mansIdDspCtrlFlg = (String)childMap.get("mans_id_dsp_ctrl_flg");
					String seiriNoDspCtrlFlg = (String)childMap.get("seiri_no_dsp_ctrl_flg");

					if (JACStrConst.SEIRI_NO_DSP_CTRL_FLG_ON.equals(seiriNoDspCtrlFlg) || JACStrConst.MANS_ID_DSP_CTRL_FLG_ON.equals(mansIdDspCtrlFlg))
					{
						iNo++;
						// 請求内訳情報.Ｎｏ ← No
						subbean.sendMessageString("Ｎｏ", X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(iNo));
					}
					else
					{
						subbean.sendMessageString("Ｎｏ", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}

					if ("1".equals(seikyKeiNoDspCtrlFlg))
					{
						// 請求内訳情報.ＩＤ番号 ← 請求内訳一覧照会マップ.請求内訳一覧明細.請求契約番号
						subbean.sendMessageString("ＩＤ番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_kei_no_out"));
					}
					else if (JACStrConst.SVKEI_NO_DSP_CTRL_FLG_ON.equals(svkeiNoDspCtrlFlg))
					{
						// 請求内訳情報.ＩＤ番号 ← 請求内訳一覧照会マップ.請求内訳一覧明細.サービス契約番号
						subbean.sendMessageString("ＩＤ番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_no_out"));
					}
					else if (JACStrConst.MANS_ID_DSP_CTRL_FLG_ON.equals(mansIdDspCtrlFlg))
					{
						// 請求内訳情報.ＩＤ番号 ← 請求内訳一覧照会マップ.請求内訳一覧明細.マンションID
						subbean.sendMessageString("ＩＤ番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mansion_id_out"));
					}
					else
					{
						subbean.sendMessageString("ＩＤ番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}

					// 請求内訳情報.整理番号 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.整理番号
					subbean.sendMessageString("整理番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiri_no_out"));

					// 請求内訳情報.サービス契約番号 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.サービス契約番号
					subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_no_out"));

					// 請求内訳情報.マンションＩＤ ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.マンションＩＤ
					subbean.sendMessageString("マンションＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mansion_id_out"));

					// 請求内訳情報.回線場所住所補記＿部屋番号 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.回線場所住所補記＿部屋番号
					subbean.sendMessageString("回線場所住所補記＿部屋番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kaisen_place_adrrm_out"));

					// 請求内訳情報.料金グループコード ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.料金グループコード
					subbean.sendMessageString("料金グループコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_grp_cd_out"));

					// 請求内訳情報.料金コースコード ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.料金コースコード
					subbean.sendMessageString("料金コースコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pcrs_cd_out"));

					// 請求内訳情報.料金サービスコード ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.料金サービスコード
					subbean.sendMessageString("料金サービスコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_svc_cd_out"));

					// 請求内訳情報.料金項目コード ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.料金項目コード
					String prcKmkCd = (String)childMap.get("prc_kmk_cd_out");
					subbean.sendMessageString("料金項目コード", X31CWebConst.DATABEAN_SET_VALUE, prcKmkCd);

					// 金額表示カラム数が"0"以外もしくは料金項目コードが数量の場合、調整前金額・調整後金額に金額を設定
					String amntDspColumCnt = (String)childMap.get("amnt_dsp_colum_cnt");
					if (!JACStrConst.AMNT_DSP_COLUM_CNT_ZERO.equals(amntDspColumCnt) || JCHWebCommon.isSuryouOnry(bean[0], prcKmkCd))
					{
						// 請求内訳情報.調整前金額 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.金額
						subbean.sendMessageString("調整前金額", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("amnt"));

						// 請求内訳情報.調整後金額 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.調整後金額
						subbean.sendMessageString("調整後金額", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cyosei_amnt"));
					}

					// 請求内訳情報.利用開始日 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.利用開始年月日
					subbean.sendMessageString("利用開始日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("use_staymd_out"));

					// 請求内訳情報.利用終了日 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.利用終了年月日
					subbean.sendMessageString("利用終了日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("use_endymd_out"));

					// 請求内訳情報.料金内訳 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.料金項目名称
					subbean.sendMessageString("料金内訳", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_kmk_nm"));

					// 請求内訳情報.税区分 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.税区分表示フラグ
					String taxDivNm = JCHDspEditUtil.getTaxDivDspNm((String)childMap.get("tax_div_dsp_flg"));
					subbean.sendMessageString("税区分", X31CWebConst.DATABEAN_SET_VALUE, taxDivNm);

					// 請求内訳情報.調整区分 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.調整区分
					subbean.sendMessageString("調整区分", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_div"));

					// 請求内訳情報.変更前利用開始日・終了日
					String useStartEndBfYmd = (String)childMap.get("use_kikan");
					if(!JCHWebCommon.isNullOrEmpty(useStartEndBfYmd))
					{
						String[] startEndBfYmd = useStartEndBfYmd.split("-");

						if (startEndBfYmd.length > 0)
						{
							subbean.sendMessageString("変更前利用開始日", X31CWebConst.DATABEAN_SET_VALUE, startEndBfYmd[0]);
						}
						if (startEndBfYmd.length > 1)
						{
							subbean.sendMessageString("変更前利用終了日", X31CWebConst.DATABEAN_SET_VALUE,  startEndBfYmd[1]);
						}
					}
					
					// 請求内訳情報.ご利用期間
					String useKikan = JCHWebCommon.editUseKikan((String)childMap.get("use_staymd_out"), (String)childMap.get("use_endymd_out"));
					subbean.sendMessageString("ご利用期間", X31CWebConst.DATABEAN_SET_VALUE, useKikan);

					// 請求内訳情報.料金訂正可否 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.料金訂正可否
					subbean.sendMessageString("料金訂正可否", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_teisei_kh"));

					// 請求内訳情報.利用期間表示制御フラグ ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.利用期間表示制御フラグ
					subbean.sendMessageString("利用期間表示制御フラグ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("use_prd_dsp_ctrl_flg"));

					// 請求内訳情報.金額表示カラム数 ← 請求内訳一覧照会マップ.請求内訳一覧明細.金額表示カラム数
					subbean.sendMessageString("金額表示カラム数", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("amnt_dsp_colum_cnt"));

					// 請求内訳情報.訂正ボタン表示区分 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.訂正ボタン表示制御フラグ
					subbean.sendMessageString("訂正ボタン表示区分", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("teisei_btn_dsp_ctrl_flg"));

					// 請求内訳情報.行区分 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.行区分
					subbean.sendMessageString("行区分", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("gyo_div"));

					String teiseiKh = (String)childMap.get("prc_teisei_kh");
					String prcDiv = (String)childMap.get("prc_div");

					// 削除取消ボタン表示区分の設定
					if (JACStrConst.PRC_TEISEI_KH_PSB.equals(teiseiKh) || JACStrConst.PRC_KMK_CD_KIHON_MANS_ID.equals((String)childMap.get("prc_kmk_cd_out")))
					{
						if (JACStrConst.PRC_ADJ_DIV_ADD.equals(prcDiv) && JACStrConst.SVKEI_NO_DSP_CTRL_FLG_ON.equals(svkeiNoDspCtrlFlg))
						{
							subbean.sendMessageString("削除取消ボタン表示区分", X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.DEL_CL_DSP_KBN_HIDSP);
						}
						else if (JACStrConst.PRC_ADJ_DIV_DEL.equals(prcDiv))
						{
							subbean.sendMessageString("削除取消ボタン表示区分", X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.DEL_CL_DSP_KBN_CL);
						}
						else
						{
							subbean.sendMessageString("削除取消ボタン表示区分", X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.DEL_CL_DSP_KBN_DEL);
						}
					}
					else
					{
						subbean.sendMessageString("削除取消ボタン表示区分", X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.DEL_CL_DSP_KBN_HIDSP);
						// 訂正可否が"0"の場合、調整区分をクリアする。
						subbean.sendMessageString("調整区分", X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
					}

					// 調整区分名称の設定
					if (JACStrConst.PRC_ADJ_DIV_ADD.equals(prcDiv))
					{
						// 新規行
						subbean.sendMessageString("調整区分名称", X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.PRC_ADJ_DIV_ADD_NM);
					}
					else if (JACStrConst.PRC_ADJ_DIV_CHG.equals(prcDiv))
					{
						// 変更行
						subbean.sendMessageString("調整区分名称", X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.PRC_ADJ_DIV_CHG_NM);
					}
					else if (JACStrConst.PRC_ADJ_DIV_DEL.equals(prcDiv))
					{
						// 削除行
						subbean.sendMessageString("調整区分名称", X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.PRC_ADJ_DIV_DEL_NM);
					}

					String keyPrcKmkCd = (String)childMap.get("prc_kmk_cd_out");
					String delBtnNonDspCtrl = "0";
					String amntPrtCtrl = "0";
					String amntNonDspCtrl = "0";

					String key = (String)childMap.get("prc_grp_cd_out") + (String)childMap.get("pcrs_cd_out") + (String)childMap.get("prc_svc_cd_out");
					if (JCHWebCommon.isFtth(bean, key))
					{
						if (JCHWebCommon.isSuryouOnry(bean[0], keyPrcKmkCd))
						{
							delBtnNonDspCtrl = "1";
							amntNonDspCtrl = "1";
						}

						if (JCHWebCommon.hasSuryou(bean[0], keyPrcKmkCd))
						{
							amntPrtCtrl = "1";
						}
					}
					subbean.sendMessageString("削除ボタン非表示制御",  X31CWebConst.DATABEAN_SET_VALUE, delBtnNonDspCtrl);	// 0:表示   1:非表示
					subbean.sendMessageString("金額非活性制御",  X31CWebConst.DATABEAN_SET_VALUE, amntPrtCtrl);				// 0:活性   1:非活性
					subbean.sendMessageString("金額非表示制御",  X31CWebConst.DATABEAN_SET_VALUE, amntNonDspCtrl);			// 0:表示   1:非表示

					// 請求内訳情報.合算請求年月 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.合算請求年月
					subbean.sendMessageString("合算請求年月", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("gsan_seiky_ym"));

					// 請求内訳情報.サービス詳細識別番号 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.サービス詳細識別番号
					String svcDtlSkbtNo = (String)childMap.get("svc_dtl_skbt_no_out");
					subbean.sendMessageString("サービス詳細識別番号", X31CWebConst.DATABEAN_SET_VALUE, svcDtlSkbtNo);

					// サービス詳細識別番号がnullまたは空でない場合
					if (!JCRUtilCommon.isNull(svcDtlSkbtNo))
					{
						// 電話番号である場合
						if (dtlReqMap.containsKey(prcKmkCd) || dtlReqDplMap.containsKey(prcKmkCd))
						{
							// "2"をセット
							subbean.sendMessageString("サービス詳細識別番号区分", X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.SVC_DTL_SKBT_KBN_TEL);
						}

						// タブレットである場合
						if (tabDtlReqMap.containsKey(prcKmkCd))
						{
							// "1"をセット
							subbean.sendMessageString("サービス詳細識別番号区分", X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.SVC_DTL_SKBT_KBN_TABLET);
						}
					}

					// 請求内訳情報.請求内訳番号 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.請求内訳番号
					subbean.sendMessageString("請求内訳番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_ucwk_no_out"));

			    	// ANK-4323-00-00 ADD START
					// 料金グループコード
					String prcRrpCd = JKKStringUtil.nullToBlank((String)childMap.get("prc_grp_cd_out"));
					// 利用終了年月日
					String useEndYmd = JKKStringUtil.nullToBlank((String)childMap.get("use_endymd_out"));
					// 請求年月
					String seikyYm = JKKStringUtil.nullToBlank((String)childMap.get("seiky_ym_out"));
					String useEndYm = "";
					// 利用終了年月日を利用終了年月に変更
					if (useEndYmd != null && useEndYmd.length() == 8 && seikyYm != null && seikyYm.length() == 6)
					{
						useEndYm = useEndYmd.substring(0,6);
//						請求内訳．料金グループコード　＝　"51"(ｍｉｎｅｏ)  かつ　請求内訳．利用終了年月日の年月　＜　請求内訳．請求年月
						if ((JKKStrConst.CD00133_51.equals(prcRrpCd) && useEndYm.compareTo(seikyYm) < 0))
						{
							subbean.sendMessageString("利用日非表示制御", X31CWebConst.DATABEAN_SET_VALUE, "1");
						}
					}
			    	// ANK-4323-00-00 ADD END
					
					// 電子ファイルデータ情報に設定
					eFileBean.sendMessageString("請求契約番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_kei_no_out"));
					eFileBean.sendMessageString("請求年月", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_ym_out"));
					eFileBean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_no_out"));
					eFileBean.sendMessageString("料金コースコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pcrs_cd_out"));
					eFileBean.sendMessageString("料金サービスコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_svc_cd_out"));
					eFileBean.sendMessageString("料金項目コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_kmk_cd_out"));
					eFileBean.sendMessageString("金額", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("amnt"));
					eFileBean.sendMessageString("利用開始年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("use_staymd_out"));
					eFileBean.sendMessageString("利用終了年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("use_endymd_out"));
					eFileBean.sendMessageString("合算請求年月", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("gsan_seiky_ym"));
					eFileBean.sendMessageString("料金項目名称", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_kmk_nm"));
					eFileBean.sendMessageString("埋込み項目コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("umkm_kmk_cd"));
					eFileBean.sendMessageString("表示順", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("dsp_jun"));
					eFileBean.sendMessageString("インデント数", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("indent_cnt"));
					eFileBean.sendMessageString("請求書ＮＯ欄表示制御フラグ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sks_no_ran_dsp_ctrl_flg"));
					eFileBean.sendMessageString("サービス契約番号表示制御フラグ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svkei_no_dsp_ctrl_flg"));
					eFileBean.sendMessageString("部屋番号表示制御フラグ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("adrrm_dsp_ctrl_flg"));
					eFileBean.sendMessageString("利用期間表示制御フラグ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("use_prd_dsp_ctrl_flg"));
					eFileBean.sendMessageString("金額表示カラム数", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("amnt_dsp_colum_cnt"));
					eFileBean.sendMessageString("税区分表示フラグ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("tax_div_dsp_flg"));
					eFileBean.sendMessageString("コメント表示フラグ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("comment_dsp_flg"));
					eFileBean.sendMessageString("空行挿入フラグ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kugyo_ins_flg"));
					eFileBean.sendMessageString("注釈＿編集パターン", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("comment_henshu_pattern_cd"));
					eFileBean.sendMessageString("注釈＿コメント", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("siky_nyo_comment"));
					eFileBean.sendMessageString("料金区分", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_div"));
					eFileBean.sendMessageString("調整後金額", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cyosei_amnt"));
					eFileBean.sendMessageString("料金訂正可否", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_teisei_kh"));
				}
			}
		}

		// 請求内訳情報の合計額を計算
		JCHWebCommon.calcSeikyUwInfoGokei(bean, parentMap, "ECH0101D011CBSMsg3List");

		// 金庫情報の合計額を計算
		JCHWebCommon.calcKnkInfoGokei(bean, parentMap, "ECH0101D011CBSMsg4List");

		// 料金調整登録サービスIFのECH0101D011CBSMsg6Listをbeanに設定
		X31SDataBeanAccessArray listCHSV002601SC_seiky_uw_info_ECH0101D011CBSMsg6List = bean[0].getDataBeanArray("請求内訳情報（非表示）");
		if (listCHSV002601SC_seiky_uw_info_ECH0101D011CBSMsg6List != null && parentMap != null && parentMap.containsKey("ECH0101D011CBSMsg6List"))
		{
			childList = (ArrayList)parentMap.get("ECH0101D011CBSMsg6List");

			int iNo = 0;
			for (int i = 0; i < childList.size(); i++)
			{
				// 請求内訳情報
				X31SDataBeanAccess subbean = null;
				if (listCHSV002601SC_seiky_uw_info_ECH0101D011CBSMsg6List.getCount() - 1 >= i)
				{
					subbean = listCHSV002601SC_seiky_uw_info_ECH0101D011CBSMsg6List.getDataBean(i);
				}
				else
				{
					subbean = listCHSV002601SC_seiky_uw_info_ECH0101D011CBSMsg6List.addDataBean();
				}

				if (subbean == null)
				{
					continue;
				}

				HashMap childMap = (HashMap)childList.get(i);
				if (childMap != null)
				{
					// 制御フラグに応じて設定
					String sksNoRanDspCtrlFlg = (String)childMap.get("sks_no_ran_dsp_ctrl_flg");
					String svkeiNoDspCtrlFlg = (String)childMap.get("svkei_no_dsp_ctrl_flg");
					String mansIdDspCtrlFlg = (String)childMap.get("mans_id_dsp_ctrl_flg");

					if (JACStrConst.SKS_NO_RAN_DSP_CTRL_FLG_ON.equals(sksNoRanDspCtrlFlg))
					{
						iNo++;
						// 請求内訳情報.Ｎｏ ← No
						subbean.sendMessageString("Ｎｏ", X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(iNo));
						// 請求内訳情報.ＩＤ番号 ← 請求内訳一覧照会マップ.請求内訳一覧明細.請求契約番号
						subbean.sendMessageString("ＩＤ番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_kei_no_out"));
					}
					else if (JACStrConst.SVKEI_NO_DSP_CTRL_FLG_ON.equals(svkeiNoDspCtrlFlg))
					{
						iNo++;
						// 請求内訳情報.Ｎｏ ← No
						subbean.sendMessageString("Ｎｏ", X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(iNo));
						// 請求内訳情報.ＩＤ番号 ← 請求内訳一覧照会マップ.請求内訳一覧明細.サービス契約番号
						subbean.sendMessageString("ＩＤ番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_no_out"));
					}
					else if (JACStrConst.MANS_ID_DSP_CTRL_FLG_ON.equals(mansIdDspCtrlFlg))
					{
						iNo++;
						// 請求内訳情報.Ｎｏ ← No
						subbean.sendMessageString("Ｎｏ", X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(iNo));
						// 請求内訳情報.ＩＤ番号 ← 請求内訳一覧照会マップ.請求内訳一覧明細.マンションID
						subbean.sendMessageString("ＩＤ番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mansion_id"));
					}
					else
					{
						subbean.sendMessageString("Ｎｏ", X31CWebConst.DATABEAN_SET_VALUE, new String());
						subbean.sendMessageString("ＩＤ番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}

					// 請求内訳情報.整理番号 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.整理番号
					subbean.sendMessageString("整理番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiri_no_out"));

					// 請求内訳情報.サービス契約番号 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.サービス契約番号
					subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_no_out"));

					// 請求内訳情報.マンションＩＤ ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.マンションＩＤ
					subbean.sendMessageString("マンションＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mansion_id_out"));

					// 請求内訳情報.回線場所住所補記＿部屋番号 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.回線場所住所補記＿部屋番号
					subbean.sendMessageString("回線場所住所補記＿部屋番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kaisen_place_adrrm_out"));

					// 請求内訳情報.料金グループコード ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.料金グループコード
					subbean.sendMessageString("料金グループコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_grp_cd_out"));

					// 請求内訳情報.料金コースコード ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.料金コースコード
					subbean.sendMessageString("料金コースコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pcrs_cd_out"));

					// 請求内訳情報.料金サービスコード ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.料金サービスコード
					subbean.sendMessageString("料金サービスコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_svc_cd_out"));

					// 請求内訳情報.料金項目コード ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.料金項目コード
					subbean.sendMessageString("料金項目コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_kmk_cd_out"));

					// 請求内訳情報.調整前金額 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.金額
					subbean.sendMessageString("調整前金額", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("amnt"));

					// 請求内訳情報.利用開始日 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.利用開始年月日
					subbean.sendMessageString("利用開始日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("use_staymd_out"));

					// 請求内訳情報.利用終了日 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.利用終了年月日
					subbean.sendMessageString("利用終了日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("use_endymd_out"));

					// 請求内訳情報.料金内訳 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.料金項目名称
					subbean.sendMessageString("料金内訳", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_kmk_nm"));

					// 請求内訳情報.税区分 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.税区分表示フラグ
					String taxDivNm = JCHDspEditUtil.getTaxDivDspNm((String)childMap.get("tax_div_dsp_flg"));
					subbean.sendMessageString("税区分", X31CWebConst.DATABEAN_SET_VALUE, taxDivNm);

					// 請求内訳情報.調整区分 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.調整区分
					subbean.sendMessageString("調整区分", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_div"));

					// 請求内訳情報.調整後金額 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.調整後金額
					subbean.sendMessageString("調整後金額", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cyosei_amnt"));

					// 請求内訳情報.ご利用期間 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.ご利用期間
					subbean.sendMessageString("ご利用期間", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("use_kikan"));

					// 請求内訳情報.料金訂正可否 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.料金訂正可否
					subbean.sendMessageString("料金訂正可否", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_teisei_kh"));

					// 請求内訳情報.利用期間表示制御フラグ ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.利用期間表示制御フラグ
					subbean.sendMessageString("利用期間表示制御フラグ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("use_prd_dsp_ctrl_flg"));

					// 請求内訳情報.金額表示カラム数 ← 請求内訳一覧照会マップ.請求内訳一覧明細.金額表示カラム数
					subbean.sendMessageString("金額表示カラム数", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("amnt_dsp_colum_cnt"));

					// 請求内訳情報.訂正ボタン表示区分 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.訂正ボタン表示制御フラグ
					subbean.sendMessageString("訂正ボタン表示区分", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("teisei_btn_dsp_ctrl_flg"));

					// 請求内訳情報.行区分 ← 料金調整登録マップ.料金調整登録一覧明細（表示用）.行区分
					subbean.sendMessageString("行区分", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("gyo_div"));

					String teiseiKh = (String)childMap.get("prc_teisei_kh");
					String prcDiv = (String)childMap.get("prc_div");

					// 削除取消ボタン表示区分の設定
					if (JACStrConst.PRC_TEISEI_KH_PSB.equals(teiseiKh))
					{
						if (JACStrConst.PRC_ADJ_DIV_ADD.equals(prcDiv) && JACStrConst.SVKEI_NO_DSP_CTRL_FLG_ON.equals(svkeiNoDspCtrlFlg))
						{
							subbean.sendMessageString("削除取消ボタン表示区分", X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.DEL_CL_DSP_KBN_HIDSP);
						}
						else if (JACStrConst.PRC_ADJ_DIV_DEL.equals(prcDiv))
						{
							subbean.sendMessageString("削除取消ボタン表示区分", X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.DEL_CL_DSP_KBN_CL);
						}
						else
						{
							subbean.sendMessageString("削除取消ボタン表示区分", X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.DEL_CL_DSP_KBN_DEL);
						}
					}
					else
					{
						subbean.sendMessageString("削除取消ボタン表示区分", X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.DEL_CL_DSP_KBN_HIDSP);
						// 訂正可否が"0"の場合、調整区分をクリアする。
						subbean.sendMessageString("調整区分", X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.KARA_MOJI);
					}

					// 調整区分名称の設定
					if (JACStrConst.PRC_ADJ_DIV_ADD.equals(prcDiv))
					{
						// 新規行
						subbean.sendMessageString("調整区分名称", X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.PRC_ADJ_DIV_ADD_NM);
					}
					else if (JACStrConst.PRC_ADJ_DIV_CHG.equals(prcDiv))
					{
						// 変更行
						subbean.sendMessageString("調整区分名称", X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.PRC_ADJ_DIV_CHG_NM);
					}
					else if (JACStrConst.PRC_ADJ_DIV_DEL.equals(prcDiv))
					{
						// 削除行
						subbean.sendMessageString("調整区分名称", X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.PRC_ADJ_DIV_DEL_NM);
					}

				}
			}
		}

		return bean;
	}

	/**
	 * 料金対応記録種別詳細コードを取得します。
	 * 
	 * @param bean　[0]：料金調整
	 * @return String　料金対応記録種別詳細コード
	 */
	private String getPrcTaioKirokSbtDtlCd(X31SDataBeanAccess[] bean)
	{

		X31SDataBeanAccessArray arraybean = null;

		String prcTaioKirokSbtDtlCd = null;
		arraybean = bean[0].getDataBeanArray(CHW00201SFConst.SEIKY_AMNT_INFO);

		if (arraybean != null && arraybean.getCount() > 0)
		{

			X31SDataBeanAccess subbean = arraybean.getDataBean(0);

			String seikyAmntAf = subbean.sendMessageString(CHW00201SFConst.SEIKY_AMNT_AF_02, X31CWebConst.DATABEAN_GET_VALUE);

			if (JCHWebCommon.isNullOrEmpty(seikyAmntAf) && "0".equals(seikyAmntAf))
			{
				prcTaioKirokSbtDtlCd = JACStrConst.TKRK_SBTD_SEIKY_DEL_ADJ;
			}
			else
			{
				prcTaioKirokSbtDtlCd = JACStrConst.TKRK_SBTD_SEIKY_AMNT_ADJ;
			}
		}

		return prcTaioKirokSbtDtlCd;
	}

	/**
	 * 請求内訳情報のデータタイプBeanから、料金調整登録サービスIFのinputリストを取得します。
	 * 
	 * @param bean　データタイプBean
	 * @param arraybean　請求内訳情報のデータタイプBean
	 * @param parentMap　
	 * @param keyListName　料金調整登録サービスIFのinputリスト名
	 * @return List　料金調整登録サービスIFのinputリスト
	 */
	@SuppressWarnings("unchecked")
	private List getUwBeanInfoList(X31SDataBeanAccess[] bean, X31SDataBeanAccessArray arraybean, HashMap<String, Object> parentMap, String keyListName)
	{
		ArrayList list = null;

		if (parentMap.containsKey(keyListName))
		{
			list = (ArrayList)parentMap.get(keyListName);
		}
		else
		{
			list = new ArrayList();
		}

		// 詳細必須料金項目情報の料金項目コード群を取得
		HashMap<String, String> dtlReqMap =
			JCHWebCommon.getPrcKmkCdMap(bean[0], CHW00201SFConst.DTL_REQ_PRC_KMK_CD_INFO, CHW00201SFConst.DTL_REQ_PRC_KMK_CD_15);

		// 詳細必須料金項目コード（重複可）の料金項目コード群を取得
		HashMap<String, String> dtlReqDplMap =
			JCHWebCommon.getPrcKmkCdMap(bean[0], CHW00201SFConst.DTL_REQ_PRC_KMK_CD_DPLCT_INFO, CHW00201SFConst.DTL_REQ_PRC_KMK_CD_DPLCT_16);

		// 詳細必須料金項目情報（タブレット）の料金項目コード群を取得
		HashMap<String, String> tabDtlReqMap =
			JCHWebCommon.getPrcKmkCdMap(bean[0], CHW00201SFConst.TAB_DTL_REQUIRE_PRC_KMK_CD_INFO, CHW00201SFConst.TAB_DTL_REQUIRE_PRC_KMK_CD_17);

		for (int i = 0; i < arraybean.getCount(); i++)
		{
			X31SDataBeanAccess subbean = arraybean.getDataBean(i);

			// 空行・コメント行・訂正不可行の場合は、リストにセットしない
			String gyoDiv = subbean.sendMessageString("行区分", X31CWebConst.DATABEAN_GET_VALUE);
			// 請求明細行の場合、リストに設定
			if(JACStrConst.GYO_DIV_DETAIL.equals(gyoDiv))
			{
				HashMap childMap = null;
				if (list.size() - 1 >= i)
				{
					childMap = (HashMap)list.get(i);
				}
				else
				{
					childMap = new HashMap();
				}

				if (subbean != null)
				{
					// 請求内訳情報.整理番号 → 料金調整登録マップ.料金調整登録一覧明細.整理番号
					String seiriNo = subbean.sendMessageString("整理番号", X31CWebConst.DATABEAN_GET_VALUE).trim();
					if("99".equals(subbean.sendMessageString("料金グループコード", X31CWebConst.DATABEAN_GET_VALUE))
							&& !"9999999999".equals(subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE))
							&& JACStrConst.KARA_MOJI.equals(seiriNo))
					{
						String mansId = subbean.sendMessageString("マンションＩＤ", X31CWebConst.DATABEAN_GET_VALUE);
						childMap.put("seiri_no", JPCUtilCommon.fillHalfSpace(mansId, 14, true));
					}
					else
					{
						childMap.put("seiri_no", subbean.sendMessageString("整理番号", X31CWebConst.DATABEAN_GET_VALUE));
					}

					// 請求内訳情報.サービス契約番号 → 料金調整登録マップ.料金調整登録一覧明細.サービス契約番号
					String svcKeiNo = subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE).trim();
					if (JACStrConst.KARA_MOJI.equals(svcKeiNo))
					{
						childMap.put("svc_kei_no", null);
					}
					else
					{
						childMap.put("svc_kei_no", svcKeiNo);
					}

					// 請求内訳情報.利用開始日 → 料金調整登録マップ.料金調整登録一覧明細.利用開始年月日
					childMap.put("use_staymd", subbean.sendMessageString("利用開始日", X31CWebConst.DATABEAN_GET_VALUE));

					// 請求内訳情報.利用終了日 → 料金調整登録マップ.料金調整登録一覧明細.利用終了年月日
					childMap.put("use_endymd", subbean.sendMessageString("利用終了日", X31CWebConst.DATABEAN_GET_VALUE));

					// 請求内訳情報.料金グループコード → 料金調整登録マップ.料金調整登録一覧明細.料金グループコード
					if (JACStrConst.KARA_MOJI.equals(subbean.sendMessageString("料金グループコード", X31CWebConst.DATABEAN_GET_VALUE)))
					{
						subbean.sendMessageString("料金グループコード", X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.PRC_GRP_CD_SP);
					}
					childMap.put("prc_grp_cd", subbean.sendMessageString("料金グループコード", X31CWebConst.DATABEAN_GET_VALUE));

					// 請求内訳情報.料金コースコード → 料金調整登録マップ.料金調整登録一覧明細.料金コースコード
					if (JACStrConst.KARA_MOJI.equals(subbean.sendMessageString("料金コースコード", X31CWebConst.DATABEAN_GET_VALUE)))
					{
						subbean.sendMessageString("料金コースコード", X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.PCRS_CD_SP);
					}
					childMap.put("pcrs_cd", subbean.sendMessageString("料金コースコード", X31CWebConst.DATABEAN_GET_VALUE));

					// 請求内訳情報.料金サービスコード → 料金調整登録マップ.料金調整登録一覧明細.料金サービスコード
					if (JACStrConst.KARA_MOJI.equals(subbean.sendMessageString("料金サービスコード", X31CWebConst.DATABEAN_GET_VALUE)))
					{
						subbean.sendMessageString("料金サービスコード", X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.PRC_SVC_CD_SP);
					}
					childMap.put("prc_svc_cd", subbean.sendMessageString("料金サービスコード", X31CWebConst.DATABEAN_GET_VALUE));

					// 請求内訳情報.料金項目コード → 料金調整登録マップ.料金調整登録一覧明細.料金項目コード
					String prcKmkCd = subbean.sendMessageString("料金項目コード", X31CWebConst.DATABEAN_GET_VALUE);
					childMap.put("prc_kmk_cd", prcKmkCd);

					// 請求内訳情報.マンションＩＤ → 料金調整登録マップ.料金調整登録一覧明細.マンションＩＤ
					childMap.put("mansion_id", subbean.sendMessageString("マンションＩＤ", X31CWebConst.DATABEAN_GET_VALUE));

					// 請求内訳情報.回線場所住所補記＿部屋番号 → 料金調整登録マップ.料金調整登録一覧明細.回線場所住所補記＿部屋番号
					childMap.put("kaisen_place_adrrm", subbean.sendMessageString("回線場所住所補記＿部屋番号", X31CWebConst.DATABEAN_GET_VALUE));

					// 請求内訳情報.サービス詳細識別番号 → 料金調整登録マップ.料金調整登録一覧明細.サービス詳細識別番号
					String svcDtlSkbtNo = subbean.sendMessageString("サービス詳細識別番号", X31CWebConst.DATABEAN_GET_VALUE);
					childMap.put("svc_dtl_skbt_no", svcDtlSkbtNo);

					// サービス詳細識別番号がnullまたは空でない場合
					if (!JCRUtilCommon.isNull(svcDtlSkbtNo))
					{
						// 電話番号である場合
						if (dtlReqMap.containsKey(prcKmkCd) || dtlReqDplMap.containsKey(prcKmkCd))
						{
							// "2"電話 → 料金調整登録マップ.料金調整登録一覧明細.サービス詳細識別番号区分
							childMap.put("svc_dtl_skbt_no_kbn", JACStrConst.SVC_DTL_SKBT_KBN_TEL);
						}
						// タブレットである場合
						if (tabDtlReqMap.containsKey(prcKmkCd))
						{
							// "1"タブレット → 料金調整登録マップ.料金調整登録一覧明細.サービス詳細識別番号区分
							childMap.put("svc_dtl_skbt_no_kbn", JACStrConst.SVC_DTL_SKBT_KBN_TABLET);
						}
					}

					// 請求内訳情報.請求内訳番号 → 料金調整登録マップ.料金調整登録一覧明細.請求内訳番号
					childMap.put("seiky_ucwk_no", subbean.sendMessageString("請求内訳番号", X31CWebConst.DATABEAN_GET_VALUE));

					// 請求内訳情報.調整前金額 → 料金調整登録マップ.料金調整登録一覧明細.調整前金額
					childMap.put("ajst_bf_amnt", subbean.sendMessageString("調整前金額", X31CWebConst.DATABEAN_GET_VALUE));

					// 請求内訳情報.調整後金額 → 料金調整登録マップ.料金調整登録一覧明細.調整後金額
					if (JACStrConst.PRC_TEISEI_KH_PSB.equals(subbean.sendMessageString("料金訂正可否", X31CWebConst.DATABEAN_GET_VALUE)))
					{
						childMap.put("ajst_af_amnt", subbean.sendMessageString("調整後金額", X31CWebConst.DATABEAN_GET_VALUE));
					}

					// 請求内訳情報.調整区分 → 料金調整登録マップ.料金調整登録一覧明細.料金調整区分
					childMap.put("ajst_div", subbean.sendMessageString("調整区分", X31CWebConst.DATABEAN_GET_VALUE));

					// 請求内訳情報.調整フラグ → 料金調整登録マップ.料金調整登録一覧明細.調整フラグ
					childMap.put("ajst_flg", subbean.sendMessageString("調整フラグ", X31CWebConst.DATABEAN_GET_VALUE));
				}

				list.add(childMap);
			}
		}

		return list;
	}

}