/*********************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：CHSV0007_CHSV0007OPDBMapper
 *	ソースファイル名：CHSV0007_CHSV0007OPDBMapper.java
 *	作成者			：富士通
 *	日付			：2012年05月10日
 *＜機能概要＞
 *	BP（請求内訳照会）へのＤ−Ｂマッピングクラスです。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v1.00.00	2012/05/10	富士通		新規作成
 *	v3.00.00	2012/05/17	落合		案件対応
 *	v4.00.00	2012/12/23	FJ) 垣内	【内部管理番号-0000537】整理番号編集対応
 *	v5.00.00	2013/07/11	FJ）高川	【LT-2013-0000344】料金訂正画面からの遷移対応
 *	v5.00.01	2013/07/27	FJ) 小野	【LT-2013-0000615】当月以外ご請求金額（鑑）を金額、金額内訳両方に出力させる
 *	v5.00.02	2013/09/03	FJ) 垣内	【随時-2013-000XXX2】入金額、債権ステータス設定部分修正
 *	v6.00.00	2013/11/11	FJ) 鈴木	【ANK-1750-00-00】請求内訳の整理番号が１種類しかない場合でも整理番号を表示するように変更
 *	v8.00.00	2014/02/13	FJ) 江森	【OM-2014-0000814】整理番号内同一料金コース別サービス契約番号の表示順不正対応
 *	v19.00.00	2015/09/09	FJ）宇野	【ANK-2587-00-00】「KS-SOL発行日」「請求書最新発行日」不審に対する対応
 *	v19.00.01	2015/09/17	FJ）宇野	【IT1-2015-0000098】対応
 *	v52.00.00	2020/10/20	FJ) 平野	【ANK-3838-00-00】窓口払い手数料顧客負担方式の導入
 *	v54.00.00	2021/08/24	FJ) 中原	【ANK-4102-00-00】窓口払い手数料の顧客負担方式導入　STEP3
 *	v64.00.00	2023/02/13	FJ) 澤田	【ANK-4323-00-00】mineo請求明細の利用期間表示変更
 *	v68.00.00	2023/10/16	FJ) 寺田	【ANK-4475-00-00】インボイス対応 STEP2
 *  v71.00.00   2024/04/04  FJ）久山    【ANK-4468-00-00】eo光ネット「シンプルプラン」追加対応
 **********************************************************************/
package eo.web.webview.mapping;

//DELETE START 2013.11.11 ANK-1750-00-00
//未使用変数のため削除
//import java.math.BigDecimal;
//DELETE END 2013.11.11 ANK-1750-00-00
import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.constant.JACStrConst;
import eo.common.constant.JKKStrConst;
import eo.common.util.JCHCommonFormatUtil;
import eo.common.util.JCRUtilCommon;
import eo.common.util.JKKStringUtil;
import eo.common.util.JPCFomatString;
import eo.web.webview.CHW00105SF.CHW00105SFConst;
import eo.web.webview.common.JACScreenConst;
import eo.web.webview.common.JCHDspEditUtil;
import eo.web.webview.common.JCHWebCommon;
import eo.web.webview.common.JCNScreenConst;
import eo.web.webview.common.JCHChangeGroupKei;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class CHSV0007_CHSV0007OPDBMapper
{
	/** 料金項目抽出変換一覧情報マップ */
	private static final String GETPRCKMKCSCHGELISTCC = "GETPRCKMKCSCHGELISTCC";

	/** 料金項目抽出変換一覧照会明細 */
	private static final String ECH0401B010CBSMSG1LIST = "ECH0401B010CBSMsg1List";

	/** 料金項目コード */
	private static final String PRC_KMK_CD = "prc_kmk_cd";

	/**
	 * コンストラクタ
	 */
	public CHSV0007_CHSV0007OPDBMapper()
	{
	}

	/**
	 * 上りマッピングをする
	 * @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
	 * @param beforeScreenId　遷移前画面ID
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV000701SC(X31SDataBeanAccess[] bean, HashMap outputMap, String beforeScreenId, 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(CHW00105SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

		// 遷移元がコンテンツ請求照会または料金訂正一覧である場合
		if (beforeScreenId != null && (JCNScreenConst.SCREEN_ID_CNW01101.equals(beforeScreenId) || JACScreenConst.SCREEN_ID_CHW01801.equals(beforeScreenId)))
		{
			// 請求年月 → 請求一覧照会マップ.ＫＥＹ＿請求年月
			parentMap.put("key_seiky_ym", bean[0].sendMessageString(CHW00105SFConst.SEIKY_YM, X31CWebConst.DATABEAN_GET_VALUE));
			// "0"(定例請求) → 請求一覧照会マップ.ＫＥＹ＿請求種別コード
			parentMap.put("key_seiky_sbt_cd", JACStrConst.SIKYSHBTS_TEIGK_SEIKY);
		}
		else if (beforeScreenId != null && beforeScreenId.startsWith("CR"))
		{
			// 遷移元が対応履歴Sである場合
			// 請求年月 → 請求一覧照会マップ.ＫＥＹ＿請求年月
			parentMap.put("key_seiky_ym", bean[0].sendMessageString(CHW00105SFConst.SEIKY_YM, X31CWebConst.DATABEAN_GET_VALUE));
		}

		outputMap.put("CHSV000701SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：請求内訳
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV000702SC(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);

		// 請求番号 → 請求一意照会SC.ＫＥＹ＿請求番号
		parentMap.put("key_seiky_no", bean[0].sendMessageString(CHW00105SFConst.SEIKY_NO, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CHSV000702SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：請求内訳
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV000703SC(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(CHW00105SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

		// 請求年月 → 債権一覧照会マップ.ＫＥＹ＿請求年月
		parentMap.put("key_seiky_ym", bean[0].sendMessageString(CHW00105SFConst.SEIKY_YM, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CHSV000703SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：請求内訳
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV000704SC(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_no", bean[0].sendMessageString(CHW00105SFConst.SEIKY_NO, X31CWebConst.DATABEAN_GET_VALUE));

		// 請求契約番号 → 請求内訳一覧照会マップ.ＫＥＹ＿請求契約番号
		parentMap.put("key_seiky_kei_no", bean[0].sendMessageString(CHW00105SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

		// 請求年月 → 請求内訳一覧照会マップ.ＫＥＹ＿請求年月
		parentMap.put("key_seiky_ym", bean[0].sendMessageString(CHW00105SFConst.SEIKY_YM, X31CWebConst.DATABEAN_GET_VALUE).replace(JACStrConst.SLASH,
				JACStrConst.KARA_MOJI));

		// "CH" → 請求内訳一覧照会マップ.ＫＥＹ＿システムコード
		parentMap.put("key_sys_cd", JACStrConst.SYS_CD_CH);

		// "SKY_U_DSP" → 請求内訳一覧照会マップ.ＫＥＹ＿業務機能識別コード
		parentMap.put("key_work_kino_skbt_cd", JACStrConst.WORK_KINO_SKBT_SEIKY_UCHWK);

		// "1" → 請求内訳一覧照会マップ.料金項目名称種別コード
		parentMap.put("key_prc_kmk_nm_sbt_cd", JACStrConst.PRC_KMK_NM_SBT_CD_PRC_NM);
//		parentMap.put("key_prc_kmk_nm_sbt_cd", JACStrConst.PRC_KMK_NM_SBT_CD_USE_NM);

		outputMap.put("CHSV000704SC", parentMap);

		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：請求書引抜き解除
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV000707SC(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("CHSV000707SC", parentMap);

		return outputMap;
	}

// 20150909 ANK-2587-00-00 Add Start
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：請求内訳
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV000709SC(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_no", bean[0].sendMessageString(CHW00105SFConst.SEIKY_NO, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CHSV000709SC", parentMap);
						
		return outputMap;
	}
// 20150909 ANK-2587-00-00 Add End
	//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 != 1){
			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[] 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.WKPRA_CH_WKS_SK_BOTH_DISP))
			{
				HashMap<String, Object> map0 = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPRA_CH_WKS_SK_BOTH_DISP);

				String[] prcKmkCd = getPrcKmkValue(map0, ECH0401B010CBSMSG1LIST, PRC_KMK_CD);
				X31SDataBeanAccessArray bothPrcKmkList = bean[0].getDataBeanArray("内訳両出力情報");
				X31SDataBeanAccess subBean = bothPrcKmkList.getDataBean(0);
				subBean.sendMessage(CHW00105SFConst.BOTH_DISP_PRC_KMK_CD_07, X31CWebConst.DATABEAN_CLEAR);

				for (int i = 0; i < prcKmkCd.length; i++)
				{
					subBean.sendMessageString(CHW00105SFConst.BOTH_DISP_PRC_KMK_CD_07, X31CWebConst.DATABEAN_ADD_VALUE, prcKmkCd[i]);
				}
			}

		}

		return bean;

	}

	/**
	 * 下りマッピング
	 * 
	 * @param bean　[0]：請求内訳
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV000701SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if (outputMap.containsKey("CHSV000701SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV000701SC");
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listCHSV000701SC_seiky_ym_info_ECH0051B010CBSMsg1List = bean[0].getDataBeanArray(CHW00105SFConst.SEIKY_YM_INFO);
		X31SDataBeanAccess subbean = listCHSV000701SC_seiky_ym_info_ECH0051B010CBSMsg1List.getDataBean(0);

		subbean.sendMessage(CHW00105SFConst.SEIKY_NO_LIST_04, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW00105SFConst.SEIKY_YM_LIST_04, X31CWebConst.DATABEAN_CLEAR);

		childList = null;
		if (parentMap.containsKey("ECH0051B010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("ECH0051B010CBSMsg1List");
			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);

				String seikyYm = JPCFomatString.formatYears((String)childMap.get("seiky_ym"));
				String seiky_sbt_nm = childMap.get("seiky_sbt_cd_nm").toString();

				// 請求年月情報.請求番号リスト ← 請求一覧照会マップ.請求一覧明細.請求番号
				subbean.sendMessageString(CHW00105SFConst.SEIKY_NO_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("seiky_no"));

				// 請求年月情報.請求年月リスト ← 請求一覧照会マップ.請求一覧明細.請求年月
				subbean.sendMessageString(CHW00105SFConst.SEIKY_YM_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, seikyYm.concat(JACStrConst.COLON).concat(seiky_sbt_nm));
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * 
	 * @param bean　[0]：請求内訳
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV000702SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if (outputMap.containsKey("CHSV000702SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV000702SC");
		}

		ArrayList childList = null;
		X31SDataBeanAccessArray listCHSV000702SC_seiky_amnt_info_ECH0051A010CBSMsg1List = bean[0].getDataBeanArray("請求金額情報");
		childList = null;
		
		if (listCHSV000702SC_seiky_amnt_info_ECH0051A010CBSMsg1List != null && parentMap != null && parentMap.containsKey("ECH0051A010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("ECH0051A010CBSMsg1List");
			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;

				if (listCHSV000702SC_seiky_amnt_info_ECH0051A010CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listCHSV000702SC_seiky_amnt_info_ECH0051A010CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listCHSV000702SC_seiky_amnt_info_ECH0051A010CBSMsg1List.addDataBean();
				}

				HashMap childMap = (HashMap)childList.get(i);

				if (subbean == null)
				{
					continue;
				}

				if (childMap != null)
				{
					// 請求金額情報.請求状態コード ← 請求一意照会SC.請求一意明細.請求ステータス
					subbean.sendMessageString(CHW00105SFConst.SEIKY_STAT_CD_02, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_stat"));
					// 請求金額情報.請求状態 ← 請求一意照会SC.請求一意明細.請求ステータス名称
					subbean.sendMessageString(CHW00105SFConst.SEIKY_STAT_NM_02, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_stat_nm"));
// 20231016 ANK-4475-00-00 ADD Start
					// 請求金額情報.請求種別コード ← 請求一意照会SC.請求一意明細.請求種別コード
					subbean.sendMessageString(CHW00105SFConst.SEIKY_SBT_CD_02, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_sbt_cd"));
// 20231016 ANK-4475-00-00 ADD END
					// 請求金額情報.請求種別 ← 請求一意照会SC.請求一意明細.請求種別コード名称
					subbean.sendMessageString(CHW00105SFConst.SEIKY_SBT_CD_NM_02, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_sbt_cd_nm"));
					// 請求金額情報.請求書様式 ← 請求一意照会SC.請求一意明細.請求方法コード名称
					subbean.sendMessageString(CHW00105SFConst.SEIKYUS_YSHK_02, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_way_cd_nm"));
					// 請求金額情報.請求額 ← 請求一意照会SC.請求一意明細.請求額
					subbean.sendMessageString(CHW00105SFConst.SEIKY_AMNT_02, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_amnt"));
					// 請求金額情報.うち消費税額 ← 請求一意照会SC.請求一意明細.消費税額
					subbean.sendMessageString(CHW00105SFConst.STAX_AMNT_02, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("stax_amnt"));
// 20150909 ANK-2587-00-00 Del Start
					// 請求金額情報.請求書初回発行日 ← 請求一意照会SC.請求一意明細.請求書初回発行日
//					subbean.sendMessageString(CHW00105SFConst.FIRST_SEIKY_FIX_YMD_02, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("first_seiky_fix_ymd"));
//					// 請求金額情報.請求書最新発行日 ← 請求一意照会SC.請求一意明細.請求書最新発行日
//					subbean.sendMessageString(CHW00105SFConst.LAST_SEIKY_FIX_YMD_02, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("last_seiky_fix_ymd"));
// 20150909 ANK-2587-00-00 Del End
					
					// 請求金額情報.引抜き有無 ← 請求一意照会SC.請求一意明細.請求書引抜フラグ
					String seikyHiknkFlg = (String)childMap.get("seikyus_hikinuki_flg");
					
					// 請求一意照会SC.請求一意明細.前受金充当フラグ
					bean[0].sendMessageString(CHW00105SFConst.MAEUKE_JUTO_FLG, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("maeuke_juto_flg"));
					// 請求一意照会SC.請求一意明細.合算フラグ
					bean[0].sendMessageString(CHW00105SFConst.GSAN_FLG, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("gsan_flg"));
					
					if (JACStrConst.HIKNK_FLG_ON.equals(seikyHiknkFlg))
					{
						subbean.sendMessageString(CHW00105SFConst.HIKNK_UM_02, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.HNTIG_SET_VALUE_HIKNK);
					}
					else
					{
						subbean.sendMessageString(CHW00105SFConst.HIKNK_UM_02, X31CWebConst.DATABEAN_SET_VALUE, new String());
					}

					// 請求金額情報.請求書要否 ← 請求一意照会SC.請求一意明細.請求書発行対象フラグ
					String seikyHakkoFlg = (String)childMap.get("seikyus_hakko_tg_flg");

					if (JACStrConst.SEIKYUS_YH_FLG_ON.equals(seikyHakkoFlg))
					{
						subbean.sendMessageString(CHW00105SFConst.SEIKYUS_YH_02, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.HNTIG_SET_VALUE_SEIKYUS_YH_Y);
					}
					else
					{
						subbean.sendMessageString(CHW00105SFConst.SEIKYUS_YH_02, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.HNTIG_SET_VALUE_SEIKYUS_YH_H);
					}
					
// 20150909 ANK-2587-00-00 Add Start
					// 請求種別コードが０：定例請求かつ請求書要否フラグが１：対象の場合
					String seiky_sbt_cd = (String)childMap.get("seiky_sbt_cd");
					if (JACStrConst.SIKYSHBTS_TEIGK_SEIKY.equals(seiky_sbt_cd) && 
							JACStrConst.SEIKYUS_YH_FLG_ON.equals(seikyHakkoFlg))
					{
						subbean.sendMessageString(CHW00105SFConst.FIRST_SEIKY_FIX_YMD_02, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("first_seiky_fix_ymd"));
					}
					else
					{
						subbean.sendMessageString(CHW00105SFConst.FIRST_SEIKY_FIX_YMD_02, X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
// 20150909 ANK-2587-00-00 Add Start

					// 請求金額情報.抑止有無 ← 請求一意照会SC.請求一意明細.請求抑止フラグ
					String seikyYoksiFlg = (String)childMap.get("seiky_yoksi_flg");

					if (JACStrConst.SEIKYUS_YH_FLG_ON.equals(seikyYoksiFlg))
					{
						subbean.sendMessageString(CHW00105SFConst.YOKSI_UM_02, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.HNTIG_SET_VALUE_SEIKY_YOKSI_AR);
					}
					else
					{
						subbean.sendMessageString(CHW00105SFConst.YOKSI_UM_02, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.HNTIG_SET_VALUE_SEIKY_YOKSI_NS);
					}
					// ANK-3838-00-00 ADD START					
					// 請求金額情報.パーフェクト有無 ← 請求一意照会SC.請求一意明細.パーフェクト口座利用可否
					String perfectUm = (String)childMap.get("pkoza_use_kh");
					// ANK-4102-00-00 ADD START
					// 請求済の場合のみ表示する
					String seikyStat = (String)childMap.get("seiky_stat");
					if ( JACStrConst.SEIKY_STAT_SIKY_ZUMI.equals(seikyStat))
					{
					// ANK-4102-00-00 ADD END
						if (JACStrConst.PERFECT_UM_ON.equals(perfectUm))
						{
							subbean.sendMessageString(CHW00105SFConst.PERFECT_UM_02, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.HNTIG_SET_VALUE_PERFECT_UM_AR);
						}
						else
						{
							subbean.sendMessageString(CHW00105SFConst.PERFECT_UM_02, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.HNTIG_SET_VALUE_PERFECT_UM_NS);
						}
					// ANK-4102-00-00 ADD START
					}
					else
					{
						subbean.sendMessageString(CHW00105SFConst.PERFECT_UM_02, X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					// ANK-4102-00-00 ADD END
					
					// 請求金額情報.負担方式 ← 請求一意照会SC.請求一意明細.手数料負担方式コード
					String ftnHoshiki = (String)childMap.get("commision_ftn_hsk_cd");

					if (JACStrConst.FTN_HOSHIKI_KO.equals(ftnHoshiki))
					{
						subbean.sendMessageString(CHW00105SFConst.FTN_HOSHIKI_02, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.HNTIG_SET_VALUE_KO_FTN);
					}
					else if(JACStrConst.FTN_HOSHIKI_KI.equals(ftnHoshiki)) 
					{
						subbean.sendMessageString(CHW00105SFConst.FTN_HOSHIKI_02, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.HNTIG_SET_VALUE_KI_FTN);
					}
					// ANK-3838-00-00 ADD END
				}
				else
				{
					subbean.sendMessageString(CHW00105SFConst.SEIKY_STAT_NM_02, X31CWebConst.DATABEAN_SET_VALUE, new String());
// 20231016 ANK-4475-00-00 ADD Start
					subbean.sendMessageString(CHW00105SFConst.SEIKY_SBT_CD_02, X31CWebConst.DATABEAN_SET_VALUE, new String());
// 20231016 ANK-4475-00-00 ADD END
					subbean.sendMessageString(CHW00105SFConst.SEIKY_SBT_CD_NM_02, X31CWebConst.DATABEAN_SET_VALUE, new String());
					subbean.sendMessageString(CHW00105SFConst.SEIKYUS_YSHK_02, X31CWebConst.DATABEAN_SET_VALUE, new String());
					subbean.sendMessageString(CHW00105SFConst.SEIKY_AMNT_02, X31CWebConst.DATABEAN_SET_VALUE, new String());
					subbean.sendMessageString(CHW00105SFConst.STAX_AMNT_02, X31CWebConst.DATABEAN_SET_VALUE, new String());
					subbean.sendMessageString(CHW00105SFConst.FIRST_SEIKY_FIX_YMD_02, X31CWebConst.DATABEAN_SET_VALUE, new String());
					subbean.sendMessageString(CHW00105SFConst.LAST_SEIKY_FIX_YMD_02, X31CWebConst.DATABEAN_SET_VALUE, new String());
					subbean.sendMessageString(CHW00105SFConst.HIKNK_UM_02, X31CWebConst.DATABEAN_SET_VALUE, new String());
					subbean.sendMessageString(CHW00105SFConst.SEIKYUS_YH_02, X31CWebConst.DATABEAN_SET_VALUE, new String());
					subbean.sendMessageString(CHW00105SFConst.YOKSI_UM_02, X31CWebConst.DATABEAN_SET_VALUE, new String());
					// ANK-3838-00-00 ADD START
					subbean.sendMessageString(CHW00105SFConst.PERFECT_UM_02, X31CWebConst.DATABEAN_SET_VALUE, new String());
					subbean.sendMessageString(CHW00105SFConst.FTN_HOSHIKI_02, X31CWebConst.DATABEAN_SET_VALUE, new String());
					// ANK-3838-00-00 ADD END
				}
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * 
	 * @param bean　[0]：請求内訳
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV000703SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if (outputMap.containsKey("CHSV000703SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV000703SC");
		}

		ArrayList childList = null;
		X31SDataBeanAccessArray listCHSV000703SC_seiky_amnt_info_ECH0011B010CBSMsg1List = bean[0].getDataBeanArray("請求金額情報");
		childList = null;

		if (listCHSV000703SC_seiky_amnt_info_ECH0011B010CBSMsg1List != null && parentMap != null && parentMap.containsKey("ECH0011B010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("ECH0011B010CBSMsg1List");
			X31SDataBeanAccess subbean = null;
			subbean = listCHSV000703SC_seiky_amnt_info_ECH0011B010CBSMsg1List.getDataBean(0);
			String nkinAmnt = null;
			
			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);
				if (childMap != null)
				{
					if(JCHWebCommon.isNullOrEmpty(subbean.sendMessageString(CHW00105SFConst.SAIKEN_STAT_02, X31CWebConst.DATABEAN_GET_VALUE)))
					{
						// 請求金額情報.債権状態 ← 債権一覧照会マップ.債権一覧明細.債権ステータス名称
						subbean.sendMessageString(CHW00105SFConst.SAIKEN_STAT_NM_02, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("saiken_stat_nm"));

						// 請求金額情報.債権ステータス ← 債権一覧照会マップ.債権一覧明細.債権ステータス
						subbean.sendMessageString(CHW00105SFConst.SAIKEN_STAT_02, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("saiken_stat"));
					}
					
					// 入金額に債権一覧照会マップ.債権一覧明細.充当額を加算
					nkinAmnt = JCHWebCommon.calcAdd(nkinAmnt, (String)childMap.get("jyto_amnt"), true);
				}
				else
				{
					subbean.sendMessageString(CHW00105SFConst.SAIKEN_STAT_NM_02, X31CWebConst.DATABEAN_SET_VALUE, new String());
					subbean.sendMessageString(CHW00105SFConst.NYUKIN_AMNT_02, X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
			// 請求金額情報.入金額 ← 債権一覧照会マップ.債権一覧明細.充当額
			subbean.sendMessageString(CHW00105SFConst.NYUKIN_AMNT_02, X31CWebConst.DATABEAN_SET_VALUE, nkinAmnt);
			
		}
		return bean;
	}

	/**
	 * 下りマッピング
	 * 
	 * @param bean　[0]：請求内訳
	 * @param outputMap
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV000704SC(X31SDataBeanAccess[] bean, HashMap outputMap) throws Exception
	{
		HashMap parentMap = null;
		if (outputMap.containsKey("CHSV000704SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV000704SC");
		}

		ArrayList childList = null;
		X31SDataBeanAccessArray listCHSV000704SC_seiky_uw_info_ECH0101B010CBSMsg1List = bean[0].getDataBeanArray("請求内訳情報");


		if (listCHSV000704SC_seiky_uw_info_ECH0101B010CBSMsg1List != null && parentMap != null && parentMap.containsKey("ECH0101B010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("ECH0101B010CBSMsg1List");

			// 内訳両出力マップ（金額の表示制御に使用(getGETPRCKMKCSCHGELISTCCでbeanに詰められた情報により内訳両出力マップを作成)）
			X31SDataBeanAccessArray bothList = bean[0].getDataBeanArray(CHW00105SFConst.BOTH_DISP_INFO);

			HashMap<String, String> bothDispMap = new HashMap<String, String>();
			for (int i = 0; i < bothList.getCount(); i++)
			{
				X31SDataBeanAccess subbean = bothList.getDataBean(i);

				int subCount = ((Integer)subbean.sendMessage(CHW00105SFConst.BOTH_DISP_PRC_KMK_CD_07, X31CWebConst.DATABEAN_GET_COUNT)).intValue();
				for (int j = 0; j < subCount; j++)
				{
					bothDispMap.put(subbean.sendMessageString(CHW00105SFConst.BOTH_DISP_PRC_KMK_CD_07, X31CWebConst.DATABEAN_GET_VALUE, j), null);
				}
			}

// DELETE START 2013.11.11 ANK-1750-00-00
//			// 整理番号マップ（整理番号の表示非表示の制御に使用）
//			HashMap<String, String> seiriNoMap = new HashMap<String, String>();
// DELETE END 2013.11.11 ANK-1750-00-00
			//ANK-4468-00-00 ADD START
			// シンプルプラン料金出力名称文言変更
			childList = JCHChangeGroupKei.changeGroupKei(childList,outputMap);
			//ANK-4468-00-00 ADD END
			int listSize = childList.size();
			for (int i = 0; i < listSize; i++)
			{
				X31SDataBeanAccess subbean = null;
				if (listCHSV000704SC_seiky_uw_info_ECH0101B010CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listCHSV000704SC_seiky_uw_info_ECH0101B010CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listCHSV000704SC_seiky_uw_info_ECH0101B010CBSMsg1List.addDataBean();
				}

				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null)
				{
					continue;
				}

				// 請求内訳情報.ＩＤ番号 ← 請求内訳一覧照会マップ.請求内訳一覧明細.請求契約番号
				if (childMap != null)
				{
					// サービス契約番号表示制御フラグ
					String svkeiDspCtrlFlg = (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");
					// 利用期間表示制御フラグ
					String usePrdDspCtrlFlg  = (String)childMap.get("use_prd_dsp_ctrl_flg");

					// 整理番号
					String beanSeirNo = "";

					// ■ 請求内訳情報.ＮＯの編集
					if (JACStrConst.SEIRI_NO_DSP_CTRL_FLG_ON.equals(seiriNoDspCtrlFlg)){
						// 請求内訳情報.ＮＯ． ← 請求内訳一覧照会マップ.請求内訳一覧明細.整理番号
						beanSeirNo = editSeriNo((String)childMap.get("seiri_no"));
					}
					else if (mansIdDspCtrlFlg.equals(JACStrConst.MANS_ID_DSP_CTRL_FLG_ON)) 
					{
						// 請求内訳情報.ＮＯ． ← 請求内訳一覧照会マップ.請求内訳一覧明細.マンションID
						beanSeirNo = (String)childMap.get("mansion_id");
					}

					subbean.sendMessageString(CHW00105SFConst.NO_03, X31CWebConst.DATABEAN_SET_VALUE, beanSeirNo);

// DELETE START 2013.11.11 ANK-1750-00-00
//					if (!JCRUtilCommon.isNull(beanSeirNo))
//					{
//						// 整理番号マップに整理番号をキーとしてput(重複は上書き)
//						seiriNoMap.put(beanSeirNo, null);
//					}
// DELETE END 2013.11.11 ANK-1750-00-00

					// ■ 請求内訳情報.ＩＤ番号の編集
					if (JACStrConst.SVKEI_NO_DSP_CTRL_FLG_ON.equals(svkeiDspCtrlFlg))
					{
						// 請求内訳情報.ＩＤ番号 ← 請求内訳一覧照会マップ.請求内訳一覧明細.サービス契約番号
						subbean.sendMessageString(CHW00105SFConst.ID_NO_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_no"));
					}
					else if (mansIdDspCtrlFlg.equals(JACStrConst.MANS_ID_DSP_CTRL_FLG_ON))
					{
						// 請求内訳情報.ＩＤ番号 ← 請求内訳一覧照会マップ.請求内訳一覧明細.マンションID
						subbean.sendMessageString(CHW00105SFConst.ID_NO_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mansion_id"));
					}
					else
					{
						// 上記条件以外の場合
						subbean.sendMessageString(CHW00105SFConst.ID_NO_03, X31CWebConst.DATABEAN_SET_VALUE, new String());
					}

					// 請求内訳情報.金額 ← 請求内訳一覧照会マップ.請求内訳一覧明細.金額
					// ■金額表示カラム数
					String amntDspColumCnt = (String)childMap.get("amnt_dsp_colum_cnt");
					if (JCHWebCommon.isNullOrEmpty(amntDspColumCnt)
							|| JACStrConst.AMNT_DSP_COLUM_CNT_ZERO.equals(amntDspColumCnt))
					{
						// 金額カラム数"0"の場合、金額・金額内訳共に未設定
						subbean.sendMessageString(CHW00105SFConst.UCWK_AMNT_03, X31CWebConst.DATABEAN_SET_VALUE, new String());
						subbean.sendMessageString(CHW00105SFConst.AMNT_03, X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					else if (JACStrConst.AMNT_DSP_COLUM_CNT_ONE.equals(amntDspColumCnt))
					{
						// 金額カラム数"1"の場合、金額に設定
						subbean.sendMessageString(CHW00105SFConst.AMNT_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("amnt"));
					}
					else if (JACStrConst.AMNT_DSP_COLUM_CNT_TWO.equals(amntDspColumCnt))
					{
						// 金額カラム数"2"の場合、金額内訳に設定
						subbean.sendMessageString(CHW00105SFConst.UCWK_AMNT_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("amnt"));
					}
					else
					{
						// 金額カラム数"0"〜"2"以外の場合、金額・金額内訳共に設定
						subbean.sendMessageString(CHW00105SFConst.UCWK_AMNT_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("amnt"));
						subbean.sendMessageString(CHW00105SFConst.AMNT_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("amnt"));
					}

					// 料金項目コード
					String prcKmkCd = (String)childMap.get("prc_kmk_cd");
					if (bothDispMap.containsKey(prcKmkCd))
					{
						// 料金項目コードが、内訳両出力料金項目コードに含まれる場合、金額・金額内訳共に設定
						subbean.sendMessageString(CHW00105SFConst.UCWK_AMNT_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("amnt"));
						subbean.sendMessageString(CHW00105SFConst.AMNT_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("amnt"));
					}
					// ANK-4323-00-00 ADD START
					// 料金グループコード
					String prcRrpCd = JKKStringUtil.nullToBlank((String)childMap.get("prc_grp_cd"));
					// 利用終了年月日
					String useEndYmd = JKKStringUtil.nullToBlank((String)childMap.get("use_endymd"));
					String useEndYm = "";
					// 利用終了年月日を利用終了年月に変更
					if (useEndYmd != null && useEndYmd.length() > 6)
					{
						useEndYm = useEndYmd.substring(0,6);
					}
					// 請求年月
					String seikyYm = JKKStringUtil.nullToBlank((String)childMap.get("seiky_ym"));
					// ANK-4323-00-00 ADD END
					
					// ■ 請求内訳情報.ご利用期間 
					// ANK-4323-00-00 MOD START
//					if (JACStrConst.USE_PRD_DSP_CTRL_FLG_ON.equals(usePrdDspCtrlFlg))
//					{
//						// 請求内訳情報.ご利用期間 ← 請求内訳一覧照会マップ.請求内訳一覧明細.ご利用期間
//						subbean.sendMessageString(CHW00105SFConst.USE_YMD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("use_kikan"));
//					}
//					else
//					{
//						// 上記条件以外の場合
//						subbean.sendMessageString(CHW00105SFConst.USE_YMD_03, X31CWebConst.DATABEAN_SET_VALUE, new String());
//					}
					if (JACStrConst.USE_PRD_DSP_CTRL_FLG_ON.equals(usePrdDspCtrlFlg))
					{
//						請求内訳．料金グループコード　＝　"51"(ｍｉｎｅｏ)  かつ　請求内訳．利用終了年月日の年月　＜　請求内訳．請求年月
						if (prcRrpCd != null
							&& (useEndYmd != null && useEndYmd.length() == 8)
							&& (seikyYm != null && seikyYm.length() == 6)
							&& (JKKStrConst.CD00133_51.equals(prcRrpCd) && useEndYm.compareTo(seikyYm) < 0))
						{
							// 上記条件の場合は非表示
							subbean.sendMessageString(CHW00105SFConst.USE_YMD_03, X31CWebConst.DATABEAN_SET_VALUE, new String());
						}
						else
						{
							// 請求内訳情報.ご利用期間 ← 請求内訳一覧照会マップ.請求内訳一覧明細.ご利用期間
							subbean.sendMessageString(CHW00105SFConst.USE_YMD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("use_kikan"));
						}
					// ANK-4323-00-00 MOD END
					}
					else
					{
						// 上記条件以外の場合
						subbean.sendMessageString(CHW00105SFConst.USE_YMD_03, X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					
					// 請求内訳情報.料金内訳 ← 請求内訳一覧照会マップ.請求内訳一覧明細
					subbean.sendMessageString(CHW00105SFConst.PRC_UCWK_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_kmk_nm"));
					// 請求内訳情報.税区分 ← 請求内訳一覧照会マップ.請求内訳一覧明細.税区分表示フラグ
					String taxDivNm = JCHDspEditUtil.getTaxDivDspNm((String)childMap.get("tax_div_dsp_flg"));
					subbean.sendMessageString(CHW00105SFConst.TAX_DIV_03, X31CWebConst.DATABEAN_SET_VALUE, taxDivNm);

					// 請求内訳情報.変更 ← 請求内訳一覧照会マップ.請求内訳一覧明細.変更区分
					// 変更区分
					String chgDiv = (String)childMap.get("chg_div");
					if (JACStrConst.CHG_DIV_FLG_ON.equals(chgDiv))
					{
						subbean.sendMessageString(CHW00105SFConst.CHG_DIV_03, X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.ZENKAKU_ASTERISK);
					}
					else
					{
						subbean.sendMessageString(CHW00105SFConst.CHG_DIV_03, X31CWebConst.DATABEAN_SET_VALUE, new String());
					}

					// 金額編集パターンコード
					subbean.sendMessageString(CHW00105SFConst.AMNT_HENSHU_PTN_CD_03, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("amnt_henshu_ptn_cd"));
				}
				else
				{
					subbean.sendMessageString(CHW00105SFConst.NO_03, X31CWebConst.DATABEAN_SET_VALUE, new String());
					subbean.sendMessageString(CHW00105SFConst.ID_NO_03, X31CWebConst.DATABEAN_SET_VALUE, new String());
					subbean.sendMessageString(CHW00105SFConst.UCWK_AMNT_03, X31CWebConst.DATABEAN_SET_VALUE, new String());
					subbean.sendMessageString(CHW00105SFConst.AMNT_03, X31CWebConst.DATABEAN_SET_VALUE, new String());
					subbean.sendMessageString(CHW00105SFConst.USE_YMD_03, X31CWebConst.DATABEAN_SET_VALUE, new String());
					subbean.sendMessageString(CHW00105SFConst.PRC_UCWK_03, X31CWebConst.DATABEAN_SET_VALUE, new String());
					subbean.sendMessageString(CHW00105SFConst.TAX_DIV_03, X31CWebConst.DATABEAN_SET_VALUE, new String());
					subbean.sendMessageString(CHW00105SFConst.CHG_DIV_03, X31CWebConst.DATABEAN_SET_VALUE, new String());
					subbean.sendMessageString(CHW00105SFConst.AMNT_HENSHU_PTN_CD_03, X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}

// DELETE START 2013.11.11 ANK-1750-00-00
//			// 整理番号マップサイズ
//			int seiriNoMapSize = seiriNoMap.size();
// DELETE END 2013.11.11 ANK-1750-00-00

			// すでに出力済みの「"整理番号"＋"合算請求年月"」をキーとして保持するmap(重複は上書き)
			HashMap<String, String> outputSeriNoMap = new HashMap<String, String>();

			// 請求内訳情報.ＩＤ番号が設定された後、Noを設定しなおす
			for (int i = 0; i < listSize; i++)
			{
				X31SDataBeanAccess subbean = listCHSV000704SC_seiky_uw_info_ECH0101B010CBSMsg1List.getDataBean(i);

// DELETE START 2013.11.11 ANK-1750-00-00
//				// 整理番号が1種類の場合は整理番号の値を消去
//				if (seiriNoMapSize == 1)
//				{
//					subbean.sendMessageString(CHW00105SFConst.NO_03, X31CWebConst.DATABEAN_SET_VALUE, "");
//				}
//				else
//				{
// DELETE END 2013.11.11 ANK-1750-00-00
				String beanSeiriNo = subbean.sendMessageString(CHW00105SFConst.NO_03, X31CWebConst.DATABEAN_GET_VALUE);
				
				if (!JCRUtilCommon.isNull(beanSeiriNo))
				{
					// 合算請求年月を取得するためのマップ
					HashMap childMap = (HashMap)childList.get(i);
					
					// 合算請求年月
					String gsanSeikyYm = (String)childMap.get("gsan_seiky_ym");
					
					// マップキーを作成
					String sKey = beanSeiriNo.concat(gsanSeikyYm);
					
					// 出力済みの「"整理番号"＋"合算請求年月"」と同一の場合は請求内訳情報の整理番号を消去する
					if (outputSeriNoMap.containsKey(sKey))
					{
						subbean.sendMessageString(CHW00105SFConst.NO_03, X31CWebConst.DATABEAN_SET_VALUE, "");
					}
					outputSeriNoMap.put(sKey, null);
				}
// DELETE START 2013.11.11 ANK-1750-00-00
//				}
// DELETE END 2013.11.11 ANK-1750-00-00
			}
		}

		return bean;
	}
	
	/**
	 * 整理番号編集
	 * 
	 * @param seiriNo ：整理番号
	 * @param String 編集後の整理番号
	 * @throws Exception 
	 */
	public String editSeriNo(String seiriNo) throws Exception {

		// 整理番号が未入力である場合
		if (seiriNo == null || seiriNo.trim().length() == 0) {

			return "";

		} else {

			// 上記以外である場合にはハイフンを挿入する
			String editSeiriNo = JCHCommonFormatUtil.formatSeiriNo(seiriNo);
			return editSeiriNo;

		}
	}
	
	/**
	 * 下りマッピング
	 * @param bean　[0]：請求内訳
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV000707SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV000707SC")){
			parentMap = (HashMap)outputMap.get("CHSV000707SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listCHSV000707SC_hikinuki_info_ECH0331B010CBSMsg1List = bean[0].getDataBeanArray("請求書引抜情報");
		childList = null;
		if(listCHSV000707SC_hikinuki_info_ECH0331B010CBSMsg1List != null && parentMap != null && parentMap.containsKey("ECH0331B010CBSMsg1List")){
			childList = (ArrayList)parentMap.get("ECH0331B010CBSMsg1List");

			listCHSV000707SC_hikinuki_info_ECH0331B010CBSMsg1List.clearArray();
			
			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listCHSV000707SC_hikinuki_info_ECH0331B010CBSMsg1List.getCount() -1 >= i){
					subbean = listCHSV000707SC_hikinuki_info_ECH0331B010CBSMsg1List.getDataBean(i);
				}else{
					subbean = listCHSV000707SC_hikinuki_info_ECH0331B010CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// 請求書引抜情報.請求書引抜番号 ← 請求書引抜一覧照会マップ.請求書引抜一覧明細.請求書引抜番号
				if (childMap != null) {
					subbean.sendMessageString("請求書引抜番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sks_hikinuki_no"));
				} else {
					subbean.sendMessageString("請求書引抜番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 請求書引抜情報.引抜種別コード ← 請求書引抜一覧照会マップ.請求書引抜一覧明細.引抜種別コード
				if (childMap != null) {
					subbean.sendMessageString("引抜種別コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hikinuki_sbt_cd"));
				} else {
					subbean.sendMessageString("引抜種別コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 請求書引抜情報.引抜理由コード ← 請求書引抜一覧照会マップ.請求書引抜一覧明細.引抜理由コード
				if (childMap != null) {
					subbean.sendMessageString("引抜理由コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hikinuki_rsn_cd"));
				} else {
					subbean.sendMessageString("引抜理由コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 請求書引抜情報.引抜送信コード ← 請求書引抜一覧照会マップ.請求書引抜一覧明細.引抜送信コード
				if (childMap != null) {
					subbean.sendMessageString("引抜送信コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hikinuki_send_cd"));
				} else {
					subbean.sendMessageString("引抜送信コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 請求書引抜情報.請求書引抜開始年月日 ← 請求書引抜一覧照会マップ.請求書引抜一覧明細.請求書引抜開始年月日
				if (childMap != null) {
					subbean.sendMessageString("請求書引抜開始年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hikinuki_staymd"));
				} else {
					subbean.sendMessageString("請求書引抜開始年月日", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 請求書引抜情報.請求書引抜終了年月日 ← 請求書引抜一覧照会マップ.請求書引抜一覧明細.請求書引抜終了年月日
				if (childMap != null) {
					subbean.sendMessageString("請求書引抜終了年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hikinuki_endymd"));
				} else {
					subbean.sendMessageString("請求書引抜終了年月日", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}

		return bean;
	}

	/**
	 * 料金項目コード取得処理。
	 * @param map
	 * @param listName
	 * @param itemId
	 */
	@SuppressWarnings("unchecked")
	private String[] getPrcKmkValue(HashMap<String, Object> map, String listName, String itemId){

		ArrayList<HashMap<String, Object>> childList = (ArrayList<HashMap<String, Object>>)map.get(listName);
		String[] ret = null;

		if (childList != null)
		{
			int size = childList.size();
			ret = new String[size];

			// 料金項目抽出変換一覧照会明細から情報を取得する
			for (int i = 0; i < childList.size(); i++) {

				HashMap<String, Object> childMap = (HashMap<String, Object>)childList.get(i);

				ret[i] = (String)childMap.get(itemId);
			}
		}

		return ret;
	}
	
// 20150909 ANK-2587-00-00 Add Start
	/**
	 * 下りマッピング
	 * 
	 * @param bean　[0]：請求内訳
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV000709SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		
		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV000709SC")){
			parentMap = (HashMap)outputMap.get("CHSV000709SC");
		}
		
		// 20150917 IT-2015-0000098 Add Start
		HashMap parentMap2 = null;
		if (outputMap.containsKey("CHSV000702SC"))
		{
			parentMap2 = (HashMap)outputMap.get("CHSV000702SC");
		}
		// 20150917 IT-2015-0000098 Add End
		
		ArrayList childList = null;
		
		X31SDataBeanAccessArray seiky_amnt_Info = bean[0].getDataBeanArray("請求金額情報");
		
		// 20150917 IT-2015-0000098 Add Start
		if (seiky_amnt_Info != null && parentMap2.containsKey("ECH0051A010CBSMsg1List"))
		{
		// 20150917 IT-2015-0000098 Add End
			
			X31SDataBeanAccess subbean = seiky_amnt_Info.getDataBean(0);
			
			subbean.sendMessageString(CHW00105SFConst.LAST_SEIKY_FIX_YMD_02, X31CWebConst.DATABEAN_SET_VALUE, new String());
			
			
			// 請求金額情報.請求書最新発行日を設定する
			if (parentMap != null && parentMap.containsKey("ECH0041B010CBSMsg1List"))
			{
				childList = (ArrayList)parentMap.get("ECH0041B010CBSMsg1List");
				
				if (childList.size() > 0)
				{
					HashMap<String, Object> childMap = (HashMap<String, Object>)childList.get(0);
					
					subbean.sendMessageString(CHW00105SFConst.LAST_SEIKY_FIX_YMD_02, X31CWebConst.DATABEAN_SET_VALUE,(String)childMap.get("seikyus_hakko_ymd"));
				}
			}
		// 20150917 IT-2015-0000098 Add Start
		}
		// 20150917 IT-2015-0000098 Add End
		return bean;
	}
// 20150909 ANK-2587-00-00 Add End

}