/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：CHSV0037_CHSV0037OPDBMapper
*	ソースファイル名：CHSV0037_CHSV0037OPDBMapper.java
*	作成者			：富士通
*	日付			：2011年11月13日
*＜機能概要＞
*	BP（督促照会）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/11/13	富士通		新規作成
*	v5.00.00	2013/07/28  FJ) 林     【LT-2013-0000600】 直近の請求金額が取得できない場合0を出力する
*	v5.00.01	2013/08/12  FJ) 早崎   【IT1-2013-0001583】「充当額」に「前受金充当額」を含めるよう対応
*	v8.00.00	2014/01/31	FJ) 江森   【ANK-1589-00-00】未収金額、充当額不正対応
*	v41.00.00	2019/02/05	FJ) 杉本   【ANK-3396-00-00】利用停止スケジュールの変更
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.constant.JACStrConst;
import eo.common.util.JCHStringUtil;
import eo.web.webview.common.JCHDspEditUtil;
import eo.web.webview.common.JCHWebCommon;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class CHSV0037_CHSV0037OPDBMapper {
	
	/**
	 * コンストラクタ
	 */
	public CHSV0037_CHSV0037OPDBMapper(){
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：督促管理
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV003701SC(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("CHSV003701SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：督促管理
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV003702SC(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));
		// 固定値("1"：抑止あり) → 請求抑止一覧照会マップ.ＫＥＹ＿請求抑止フラグ
		parentMap.put("key_seiky_yoksi_flg", JACStrConst.YOKSI_FLG_ARI);

		outputMap.put("CHSV003702SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：督促管理
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV003703SC(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("CHSV003703SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：督促管理
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV003704SC(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));
		// 固定値("020"：請求済) → 請求一覧照会マップ.ＫＥＹ＿請求ステータス
		parentMap.put("key_seiky_stat", JACStrConst.SEIKY_STAT_SIKY_ZUMI);

		outputMap.put("CHSV003704SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：督促管理
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV003705SC(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("CHSV003705SC", parentMap);
						
		return outputMap;
	}


	/**
	 * 下りマッピング
	 * @param bean　[0]：督促管理
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV003701SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV003701SC")){
			parentMap = (HashMap)outputMap.get("CHSV003701SC");
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listCHSV003701SC_tokusoku_stat_dtl_info_ECH0231A010CBSMsg1List = bean[0].getDataBeanArray("督促状況詳細情報");
		childList = null;
		if(listCHSV003701SC_tokusoku_stat_dtl_info_ECH0231A010CBSMsg1List != null && parentMap != null && parentMap.containsKey("ECH0231A010CBSMsg1List")){
			childList = (ArrayList)parentMap.get("ECH0231A010CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listCHSV003701SC_tokusoku_stat_dtl_info_ECH0231A010CBSMsg1List.getCount() -1 >= i){
					subbean = listCHSV003701SC_tokusoku_stat_dtl_info_ECH0231A010CBSMsg1List.getDataBean(i);
				}else{
					subbean = listCHSV003701SC_tokusoku_stat_dtl_info_ECH0231A010CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// 督促番号 ← 督促一意照会マップ.督促一意明細.督促番号
				if (childMap != null) {
					bean[0].sendMessageString("督促番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("tokusoku_no"));
				} else {
					bean[0].sendMessageString("督促番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 督促更新年月日時分秒 ← 督促一意照会マップ.督促一意明細.更新年月日時分秒
				if (childMap != null) {
					bean[0].sendMessageString("督促更新年月日時分秒", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("upd_dtm"));
				} else {
					bean[0].sendMessageString("督促更新年月日時分秒", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				
				// 督促状況詳細情報.支払約束日 ← 督促一意照会マップ.督促一意明細.支払約束年月日
				if (childMap != null) {
					subbean.sendMessageString("支払約束日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pay_yakusoku_ymd"));
				} else {
					subbean.sendMessageString("支払約束日", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 督促状況詳細情報.支払約束履行判定日 ← 督促一意照会マップ.督促一意明細.支払約束履行判定日
				if (childMap != null) {
					subbean.sendMessageString("支払約束履行判定日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pay_yakusoku_riko_ymd"));
				} else {
					subbean.sendMessageString("支払約束履行判定日", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 督促状況詳細情報.利用停止日 ← 督促一意照会マップ.督促一意明細.利用停止依頼年月日
				if (childMap != null) {
					subbean.sendMessageString("利用停止日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("use_stp_req_ymd"));
				} else {
					subbean.sendMessageString("利用停止日", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 督促状況詳細情報.強制解約日 ← 督促一意照会マップ.督促一意明細.強制解約依頼年月日
				if (childMap != null) {
					subbean.sendMessageString("強制解約日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kyosei_dsl_req_ymd"));
				} else {
					subbean.sendMessageString("強制解約日", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 督促状況詳細情報.債権回収委託日 ← 督促一意照会マップ.督促一意明細.債権回収委託会社委託処理年月日
				if (childMap != null) {
					subbean.sendMessageString("債権回収委託日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sknksitkcm_itaku_tran_ymd"));
				} else {
					subbean.sendMessageString("債権回収委託日", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 督促状況詳細情報.貸倒登録日 ← 督促一意照会マップ.督促一意明細.貸倒処理年月日
				if (childMap != null) {
					subbean.sendMessageString("貸倒登録日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kashid_tran_ymd"));
				} else {
					subbean.sendMessageString("貸倒登録日", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 督促状況詳細情報.うち利用停止解除金額 ← 督促一意照会マップ.督促一意明細.未収金額合計
				if (childMap != null) {
					subbean.sendMessageString("うち利用停止解除金額", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("msu_amnt_sum"));
				} else {
					subbean.sendMessageString("うち利用停止解除金額", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：督促管理
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV003702SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV003702SC")){
			parentMap = (HashMap)outputMap.get("CHSV003702SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listCHSV003702SC_seiky_yoksi_info_EKK0541B501CBSMsg1List = bean[0].getDataBeanArray("請求抑止情報");
		childList = null;
		if(listCHSV003702SC_seiky_yoksi_info_EKK0541B501CBSMsg1List != null && parentMap != null && parentMap.containsKey("EKK0541B501CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EKK0541B501CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listCHSV003702SC_seiky_yoksi_info_EKK0541B501CBSMsg1List.getCount() -1 >= i){
					subbean = listCHSV003702SC_seiky_yoksi_info_EKK0541B501CBSMsg1List.getDataBean(i);
				}else{
					subbean = listCHSV003702SC_seiky_yoksi_info_EKK0541B501CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// 請求抑止情報.請求抑止コード ← 請求抑止一覧照会マップ.請求抑止一覧明細.請求抑止コード
				if (childMap != null) {
					subbean.sendMessageString("請求抑止コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_yoksi_cd"));
				} else {
					subbean.sendMessageString("請求抑止コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 請求抑止情報.請求抑止コード名称 ← 請求抑止一覧照会マップ.請求抑止一覧明細.請求抑止コード名称
				if (childMap != null) {
					subbean.sendMessageString("請求抑止コード名称", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_yoksi_cd_nm"));
				} else {
					subbean.sendMessageString("請求抑止コード名称", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：督促管理
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV003703SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV003703SC")){
			parentMap = (HashMap)outputMap.get("CHSV003703SC");
		}

		ArrayList childList = null;

		// 未納金額合計
		long minoAmntSum = 0;
		// 充当金額合計
		long jytoAmntSum = 0;

		X31SDataBeanAccessArray listCHSV003703SC_saiken_icrn_info_ECH0011B010CBSMsg1List = bean[0].getDataBeanArray("債権一覧情報");
		childList = null;
		if(listCHSV003703SC_saiken_icrn_info_ECH0011B010CBSMsg1List != null && parentMap != null && parentMap.containsKey("ECH0011B010CBSMsg1List")){
			childList = (ArrayList)parentMap.get("ECH0011B010CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listCHSV003703SC_saiken_icrn_info_ECH0011B010CBSMsg1List.getCount() -1 >= i){
					subbean = listCHSV003703SC_saiken_icrn_info_ECH0011B010CBSMsg1List.getDataBean(i);
				}else{
					subbean = listCHSV003703SC_saiken_icrn_info_ECH0011B010CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// 債権一覧情報.請求年月 ← 未納債権一覧照会マップ.債権一覧明細.債権確定年月
				if (childMap != null) {
					subbean.sendMessageString("請求年月", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("saiken_fix_ym"));
				} else {
					subbean.sendMessageString("請求年月", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 債権一覧情報.支払方法コード ← 未納債権一覧照会マップ.債権一覧明細.請求方法コード
				if (childMap != null) {
					subbean.sendMessageString("支払方法コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_way_cd"));
				} else {
					subbean.sendMessageString("支払方法コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 債権一覧情報.支払方法 ← 未納債権一覧照会マップ.債権一覧明細.請求方法コード略称
				if (childMap != null) {
					subbean.sendMessageString("支払方法", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_way_cd_ali"));
				} else {
					subbean.sendMessageString("支払方法", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 債権一覧情報.支払期限日 ← 未納債権一覧照会マップ.債権一覧明細.支払期限年月日
				// または
				// 債権一覧情報.支払期限日 ← 未納債権一覧照会マップ.債権一覧明細.変更支払期限年月日
				if (childMap != null) {
					if (!JACStrConst.KARA_MOJI.equals(childMap.get("chg_pay_kigen_ymd")))
					{
						subbean.sendMessageString("支払期限日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("chg_pay_kigen_ymd"));
					}
					else
					{
						subbean.sendMessageString("支払期限日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pay_kigen_ymd"));
					}
				} else {
					subbean.sendMessageString("支払期限日", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 債権一覧情報.債権額 ← 未納債権一覧照会マップ.債権一覧明細.債権額
				if (childMap != null) {
					subbean.sendMessageString("債権額", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("saiken_amnt"));
					// 未納金額合計への集計
					if (!JACStrConst.KARA_MOJI.equals(childMap.get("saiken_amnt")))
					{
						minoAmntSum += Long.parseLong((String)childMap.get("saiken_amnt"));
					}
				} else {
					subbean.sendMessageString("債権額", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				
				// 債権一覧情報.充当額 ← 未納債権一覧照会マップ.債権一覧明細.充当額
				if (childMap != null)
				{
					// 充当額
					String jytoAmnt = (String)childMap.get("jyto_amnt");
					
					if ((String)childMap.get("jyto_amnt") != null && "".equals((String)childMap.get("jyto_amnt")) == false)
					{
						jytoAmnt = (String)childMap.get("jyto_amnt");
					}
					
					// 前受金充当額
					String maeujytoAmnt = "0";
					
					if ((String)childMap.get("maeu_jyto_amnt") != null && "".equals((String)childMap.get("maeu_jyto_amnt")) == false)
					{
						maeujytoAmnt = (String)childMap.get("maeu_jyto_amnt");
					}

					// 貸倒後入金額
					String ksdAfNyknAmnt = "0";
					
					if ((String)childMap.get("ksd_af_nk_amnt") != null && "".equals((String)childMap.get("ksd_af_nk_amnt")) == false)
					{
						ksdAfNyknAmnt = (String)childMap.get("ksd_af_nk_amnt");
					}
					
					// 充当額と前受金充当額と貸倒後入金額を加算
					String jytoAmntAdd =  JCHWebCommon.calcAdd(ksdAfNyknAmnt, JCHWebCommon.calcAdd(jytoAmnt, maeujytoAmnt, true), true);
					
					if (JCHWebCommon.isNullOrEmpty(jytoAmntAdd))
					{
						// 債権一覧情報.充当額 ← 債権一覧照会マップ.債権一覧明細.充当額
						subbean.sendMessageString("充当額", X31CWebConst.DATABEAN_SET_VALUE, "0");
					}
					else
					{
						// 債権一覧情報.充当額 ← 債権一覧照会マップ.債権一覧明細.充当額
						subbean.sendMessageString("充当額", X31CWebConst.DATABEAN_SET_VALUE, jytoAmntAdd);

						// 充当金額合計への集計
						jytoAmntSum += Long.parseLong(jytoAmntAdd);
					}
				}
				else
				{
					subbean.sendMessageString("充当額", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				
				// 未納債権一覧照会マップ.債権一覧明細.口座振替結果コード
				String khriRsltCd = JACStrConst.KARA_MOJI;
				if (childMap != null) {
					khriRsltCd = (String)childMap.get("khri_rslt_cd");
				}
				// 債権一覧情報.口座振替結果(口座振替結果コードを表示用に変換)
				subbean.sendMessageString("口座振替結果", X31CWebConst.DATABEAN_SET_VALUE, JCHDspEditUtil.convKhriRsltCdToDspName(khriRsltCd));

				// 債権一覧情報.再発行回数 ← 未納債権一覧照会マップ.債権一覧明細.請求再発行回数
				if (childMap != null) {
					String seikyReHakkoCnt = (String)childMap.get("seiky_re_hakko_cnt");
					if (JCHWebCommon.isNullOrEmpty(seikyReHakkoCnt))
					{
						subbean.sendMessageString("再発行回数", X31CWebConst.DATABEAN_SET_VALUE, "0");
					}
					else
					{
						subbean.sendMessageString("再発行回数", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_re_hakko_cnt"));
					}
				} else {
					subbean.sendMessageString("再発行回数", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
			// 未収金額合計の設定
			if (childList.size() > 0)
			{
				X31SDataBeanAccessArray tokusokuStatInfo = bean[0].getDataBeanArray("督促状況詳細情報");
				X31SDataBeanAccess tokusokuStat = null;
				if(tokusokuStatInfo.getCount() > 0)
				{
					tokusokuStat = tokusokuStatInfo.getDataBean(0);
				}
				else
				{
					tokusokuStat = tokusokuStatInfo.addDataBean();
				}
				tokusokuStat.sendMessageString("未納金額合計", X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(minoAmntSum - jytoAmntSum));
			}
		}


		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：督促管理
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV003704SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV003704SC")){
			parentMap = (HashMap)outputMap.get("CHSV003704SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listCHSV003704SC_saiken_seiky_info_ECH0051B020CBSMsg1List = bean[0].getDataBeanArray("直近請求情報");
		childList = null;
		if(listCHSV003704SC_saiken_seiky_info_ECH0051B020CBSMsg1List != null && parentMap != null && parentMap.containsKey("ECH0051B020CBSMsg1List")){
			childList = (ArrayList)parentMap.get("ECH0051B020CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				// 先頭行が直近請求情報であるため、以降の行はマッピングをしない
				if (i > 0) { break; }
				
				X31SDataBeanAccess subbean = null;
				if(listCHSV003704SC_saiken_seiky_info_ECH0051B020CBSMsg1List.getCount() -1 >= i){
					subbean = listCHSV003704SC_saiken_seiky_info_ECH0051B020CBSMsg1List.getDataBean(i);
				}else{
					subbean = listCHSV003704SC_saiken_seiky_info_ECH0051B020CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// 直近請求情報.請求年月 ← 請求一覧照会マップ.請求一覧明細.請求年月
				if (childMap != null) {
					subbean.sendMessageString("請求年月", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_ym"));
				} else {
					subbean.sendMessageString("請求年月", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 直近請求情報.請求種別コード ← 請求一覧照会マップ.請求一覧明細.請求種別コード
				if (childMap != null) {
					subbean.sendMessageString("請求種別コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_sbt_cd"));
				} else {
					subbean.sendMessageString("請求種別コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 直近請求情報.請求種別 ← 請求一覧照会マップ.請求一覧明細.請求種別コード名称
				if (childMap != null) {
					subbean.sendMessageString("請求種別", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_sbt_cd_nm"));
				} else {
					subbean.sendMessageString("請求種別", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 直近請求情報.請求方法コード ← 請求一覧照会マップ.請求一覧明細.請求方法コード
				if (childMap != null) {
					subbean.sendMessageString("請求方法コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_way_cd"));
				} else {
					subbean.sendMessageString("請求方法コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 直近請求情報.請求方法 ← 請求一覧照会マップ.請求一覧明細.請求方法コード名称
				if (childMap != null) {
					subbean.sendMessageString("請求方法", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_way_cd_nm"));
				} else {
					subbean.sendMessageString("請求方法", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// 直近請求情報.請求金額 ← 請求一覧照会マップ.請求一覧明細.請求金額
				String seikyAmnt = (String)childMap.get("seiky_amnt");
				if (JCHWebCommon.isNullOrEmpty(seikyAmnt))
				{
					subbean.sendMessageString("請求金額", X31CWebConst.DATABEAN_SET_VALUE, "0");
				}
				else
				{
					subbean.sendMessageString("請求金額", X31CWebConst.DATABEAN_SET_VALUE, seikyAmnt);
				}
				// 直近請求情報.発行日 ← 請求一覧照会マップ.請求一覧明細.請求書発行年月日
				if (childMap != null) {
					subbean.sendMessageString("発行日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_hakko_ymd"));
				} else {
					subbean.sendMessageString("発行日", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：督促管理
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV003705SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV003705SC")){
			parentMap = (HashMap)outputMap.get("CHSV003705SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listCHSV003705SC_gsan_seiky_info_ECH0011B010CBSMsg1List = bean[0].getDataBeanArray("合算請求情報");
		childList = null;
		if(listCHSV003705SC_gsan_seiky_info_ECH0011B010CBSMsg1List != null && parentMap != null && parentMap.containsKey("ECH0011B010CBSMsg1List")){
			childList = (ArrayList)parentMap.get("ECH0011B010CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listCHSV003705SC_gsan_seiky_info_ECH0011B010CBSMsg1List.getCount() -1 >= i){
					subbean = listCHSV003705SC_gsan_seiky_info_ECH0011B010CBSMsg1List.getDataBean(i);
				}else{
					subbean = listCHSV003705SC_gsan_seiky_info_ECH0011B010CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// 合算請求情報.合算請求年月 ← 債権一覧照会マップ.債権一覧明細.債権確定年月
				if (childMap != null) {
					subbean.sendMessageString("合算請求年月", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("saiken_fix_ym"));
				} else {
					subbean.sendMessageString("合算請求年月", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


		return bean;
	}

// ANK-3396-00-00 2019/02/05 ADD START
	/**
	 * 下りマッピング
	 * @param bean　[0]：督促管理
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getHeaderInfo(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if(outputMap.containsKey("SEIKYSAKIINFOSTKUCC"))
		{
			parentMap = (HashMap)outputMap.get("SEIKYSAKIINFOSTKUCC");
		}

		X31SDataBeanAccessArray seikySakiInfo = bean[0].getDataBeanArray("督促状況詳細情報");
		if(seikySakiInfo != null && parentMap != null)
		{
			X31SDataBeanAccess subbean = null;
			if (seikySakiInfo.getCount() > 0)
			{
				subbean = seikySakiInfo.getDataBean(0);
			}
			else
			{
				subbean = seikySakiInfo.addDataBean();
			}

			// 督促状況詳細情報.ST15回数 ← 請求先情報.強制解約予告回数
			String kyoseiDslYkkCnt = "0";
			if (JCHStringUtil.isNullBlank((String)parentMap.get("kyosei_dsl_ykk_cnt")))
			{
				subbean.sendMessageString("ＳＴ１５回数", X31CWebConst.DATABEAN_SET_VALUE, "0");
			} else {
				subbean.sendMessageString("ＳＴ１５回数", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("kyosei_dsl_ykk_cnt"));
				kyoseiDslYkkCnt = (String)parentMap.get("kyosei_dsl_ykk_cnt");
			}

			// 督促状況詳細情報.早期利用停止対象 ← 請求先情報.早期利用停止フラグ
			if ((!JCHStringUtil.isNullBlank((String)parentMap.get("early_use_stp_tg_flg"))) && "1".equals((String)parentMap.get("early_use_stp_tg_flg")))
			{
				subbean.sendMessageString("早期利用停止対象", X31CWebConst.DATABEAN_SET_VALUE, "対象");
			}
			else
			{
				subbean.sendMessageString("早期利用停止対象", X31CWebConst.DATABEAN_SET_VALUE, new String());
			}

			// 督促状況詳細情報.回線回復事務手数料課金の設定
			String kyoseiDslYkkKtCnt = "0";
			if (!JCHStringUtil.isNullBlank((String)parentMap.get("kyosei_dsl_ykk_kt_cnt")))
			{
				kyoseiDslYkkKtCnt = (String)parentMap.get("kyosei_dsl_ykk_kt_cnt");
			}

			if (Integer.parseInt(kyoseiDslYkkCnt) > Integer.parseInt(kyoseiDslYkkKtCnt))
			{
				subbean.sendMessageString("回線回復事務手数料課金", X31CWebConst.DATABEAN_SET_VALUE, "要");
			}
			else
			{
				subbean.sendMessageString("回線回復事務手数料課金", X31CWebConst.DATABEAN_SET_VALUE, new String());
			}
		}

		return bean;
	}
// ANK-3396-00-00 2019/02/05 ADD END

}