/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：CHSV0086_CHSV0086OPDBMapper
*	ソースファイル名：CHSV0086_CHSV0086OPDBMapper.java
*	作成者			：FJ
*	日付			：2019年12月10日
*＜機能概要＞
*	BP（SMAPS即時決済発行SMS送信登録）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v47.00.00	2019/12/10	FJ		新規作成
*	v52.00.00	2020/11/05	FJ) 三原	【ANK-3838-00-00】窓口払い手数料の顧客負担方式導入
*
**********************************************************************/
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.util.JCCToolTextDateFormat;
import eo.common.util.JCCToolTextDecimalFormat;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CHW00111SF.CHW00111SFConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JCHPulldownUtil;
import eo.web.webview.common.JCHWebCommon;
import eo.web.webview.common.JCRWebCommon;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class CHSV0086_CHSV0086OPDBMapper {
	
	/** 業務パラメータ管理情報取得マップ */
	private static final String GETWORKPARAMLISTCC = "GETWORKPARAMLISTCC";
	
	/** 収納手数料要 */
	private static final String SHUNO_COMMISION_YO = "0";
	
	/** タイトル：即時決済システムSMS送信済 */
	private static final String TITE_SMS_FIN = "即時決済システムSMS送信済";
	
	/** 記事：SMS即時決済システム用 */
	private static final String KIJI_FOR_SMS= "SMS即時決済システム用";

	/**
	 * コンストラクタ
	 */
	public CHSV0086_CHSV0086OPDBMapper(){
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：SMAPS即時決済発行SMS送信登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV008601SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 2){
			return null;
		}

		X31SDataBeanAccessArray arraybean = null;
		X31SDataBeanAccess beanTemp = null;
		ArrayList list = null;

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 請求契約番号 → 再請求登録マップ.請求契約番号
		parentMap.put("seiky_kei_no", bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 督促ステータス → 再請求登録マップ.督促ステータス
		parentMap.put("tokusoku_stat", bean[0].sendMessageString("督促ステータス", X31CWebConst.DATABEAN_GET_VALUE));
		// 印刷様式コード → 印刷様式コード(窓口支払)
		parentMap.put("print", JACStrConst.PRINT_YSK_CD_MADO);
		// 支払期限日 → 再請求登録マップ.支払・取扱・有効期限日
		parentMap.put("pay_kigen_ymd", bean[0].sendMessageString("支払・取扱・有効期限日", X31CWebConst.DATABEAN_GET_VALUE));
		// 取扱期限日 → 再請求登録マップ.支払・取扱・有効期限日
		parentMap.put("tori_kigen_ymd", bean[0].sendMessageString("支払・取扱・有効期限日", X31CWebConst.DATABEAN_GET_VALUE));
		// バーコード様式コード → バーコード様式コード(通常)
		parentMap.put("barcode_cd", JACStrConst.BRCD_YSK_CD_NOMAL);
		// 発行種別コード → 未納金額の再請求(未納金額の再請求)
		parentMap.put("print_div", "1");
		// ANK-3838-00-00 ADD START
		// 手数料負担方式コードに"1"(顧客負担)を設定する
		parentMap.put("commision_ftn_hsk_cd", JACStrConst.FTN_HOSHIKI_KO);
		// パーフェクト口座利用可否に"0"(否)を設定する
		parentMap.put("pkoza_use_kh", JACStrConst.PAY_YOSHI_CONV);
		// ANK-3838-00-00 ADD END

		beanTemp = bean[0];
		arraybean = beanTemp.getDataBeanArray("再請求登録の明細情報");
		if(parentMap.containsKey("ECH0051D012CBSMsg1List")){
			list = (ArrayList)parentMap.get("ECH0051D012CBSMsg1List");
		}else{
			list = new ArrayList();
		}
		if(arraybean != null && arraybean.getCount() > 0){
			for(int i = 0; i < arraybean.getCount(); i++){
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				HashMap childMap = null;
				if(list.size() -1 >= i){
					childMap = (HashMap)list.get(i);
				}else{
					childMap = new HashMap();
				}

				// 再請求登録の明細情報.請求番号 → 再請求登録マップ.再請求明細.債権番号
				if (subbean != null) {
					childMap.put("seiky_no", subbean.sendMessageString("請求番号", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 再請求登録の明細情報.請求年月 → 再請求登録マップ.再請求明細.請求年月
				if (subbean != null) {
					childMap.put("seiky_ym", subbean.sendMessageString("請求年月", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 再請求登録の明細情報.料金コースコード → 再請求登録マップ.再請求明細.料金コースコード
				if (subbean != null) {
					childMap.put("pcrs_cd", JACStrConst.PCRS_CD_SP);
				}
				// 再請求登録の明細情報.料金グループコード → 再請求登録マップ.再請求明細.料金グループコード
				if (subbean != null) {
					childMap.put("prc_grp_cd", JACStrConst.PRC_GRP_CD_SP);
				}
				// 再請求登録の明細情報.料金サービスコード → 再請求登録マップ.再請求明細.料金サービスコード
				if (subbean != null) {
					childMap.put("prc_svc_cd", JACStrConst.SVC_CD_SP);
				}
				// 再請求登録の明細情報.料金項目コード → 再請求登録マップ.再請求明細.料金項目コード
				if (subbean != null) {
					childMap.put("prc_kmk_cd", subbean.sendMessageString("料金項目コード", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 再請求登録の明細情報.金額 → 再請求登録マップ.再請求明細.金額
				if (subbean != null) {
					childMap.put("amnt", subbean.sendMessageString("金額", X31CWebConst.DATABEAN_GET_VALUE));

					String amnt = subbean.sendMessageString("金額", X31CWebConst.DATABEAN_GET_VALUE);
					if(amnt == null || JACStrConst.KARA_MOJI.equals(amnt))
					{
						childMap.put("amnt", "0");
					}
				}

				// 再請求登録の明細情報.充当金額 → 再請求登録マップ.再請求明細.充当金額
				if (subbean != null) {
					childMap.put("juto_amnt", subbean.sendMessageString("充当金額", X31CWebConst.DATABEAN_GET_VALUE));

					String jutoAmnt = subbean.sendMessageString("充当金額", X31CWebConst.DATABEAN_GET_VALUE);
					if(jutoAmnt == null || JACStrConst.KARA_MOJI.equals(jutoAmnt))
					{
						childMap.put("juto_amnt", "0");
					}
				}

				list.add(childMap);
			}
		}
		parentMap.put("ECH0051D012CBSMsg1List", list);

		outputMap.put("CHSV008601SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：SMAPS即時決済発行SMS送信登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV008602SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 2){
			return null;
		}

		X31SDataBeanAccessArray arraybean = null;
		X31SDataBeanAccess beanTemp = null;
		ArrayList list = null;
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		if(parentMap.containsKey("ECH0041D010CBSMsg1List")){
			list = (ArrayList)parentMap.get("ECH0041D010CBSMsg1List");
		}else{
			list = new ArrayList();
		}

		beanTemp = bean[0];
		arraybean = beanTemp.getDataBeanArray("再請求登録の明細情報");
		if(arraybean != null && arraybean.getCount() > 0){

			for(int i = 0; i < arraybean.getCount(); i++){
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				HashMap childMap = null;

				if(list.size() -1 >= i){
					childMap = (HashMap)list.get(i);
				}else{
					childMap = new HashMap();
				}

				// 再請求登録の明細情報.請求番号 → 請求債権関連登録マップ.引き継ぎ元請求番号
				if (subbean != null) {
					childMap.put("tra_mt_seiky_no", subbean.sendMessageString("請求番号", X31CWebConst.DATABEAN_GET_VALUE));
				}

				// 再請求登録の明細情報.債権番号 → 請求債権関連登録マップ.引き継ぎ元債権番号
				if (subbean != null) {
					childMap.put("tra_mt_saiken_no", subbean.sendMessageString("債権番号", X31CWebConst.DATABEAN_GET_VALUE));
				}

				list.add(childMap);
			}
		}

		parentMap.put("ECH0041D010CBSMsg1List", list);

		outputMap.put("CHSV008602SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：SMAPS即時決済発行SMS送信登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV008603SC(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("key_event_cd", JACStrConst.EVENT_CD_RYOKIN_KEISAN_YMD);

		outputMap.put("CHSV008603SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：SMAPS即時決済発行SMS送信登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV008604SC(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("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 固定値 → 一時金登録マップ.投入区分(請求月指定)
		parentMap.put("tonyu_div", JACStrConst.TONYU_DIV_SEIKY_MON);
		// 手数料コード → 一時金登録マップ.一時金料金
		parentMap.put("icjkn_prc", bean[0].sendMessageString("手数料コード", X31CWebConst.DATABEAN_GET_VALUE));
		// 手数料選択出力料金グループコード → 一時金登録マップ.対象料金グループコード
		parentMap.put("trgt_prc_grp_cd", bean[0].sendMessageString("手数料選択出力料金グループコード", X31CWebConst.DATABEAN_GET_VALUE));
		// 手数料選択出力料金コースコード → 一時金登録マップ.対象料金コースコード
		parentMap.put("trgt_pcrs_cd", bean[0].sendMessageString("手数料選択出力料金コースコード", X31CWebConst.DATABEAN_GET_VALUE));
		// 手数料選択出力料金サービスコード → 一時金登録マップ.対象料金サービスコード
		parentMap.put("trgt_prc_svc_cd", bean[0].sendMessageString("手数料選択出力料金サービスコード", X31CWebConst.DATABEAN_GET_VALUE));
		// 手数料選択出力料金項目コード → 一時金登録マップ.対象料金項目コード
		parentMap.put("trgt_prc_kmk_cd", bean[0].sendMessageString("手数料選択出力料金項目コード", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CHSV008604SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：SMAPS即時決済発行SMS送信登録
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param gsanKbn　合算区分
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV008605SC(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);

		// 請求契約番号 → SMAPS即時決済SMS送信依頼マップ.請求契約番号
		parentMap.put("seiky_kei_no", bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 電話番号 → SMAPS即時決済SMS送信依頼マップ.電話番号
		parentMap.put("tel_no", JCHPulldownUtil.getSelectedValue(bean, "電話番号情報", "電話番号リスト", "電話番号選択"));
		// 請求年月 → SMAPS即時決済SMS送信依頼マップ.請求年月
		parentMap.put("seiky_ym", JCHPulldownUtil.getSelectedValue(bean, "請求月情報", "請求月リスト", "請求月選択"));
		// 請求金額 → SMAPS即時決済SMS送信依頼マップ.請求金額
		parentMap.put("seiky_amnt", bean[0].sendMessageString("請求額（合計）", X31CWebConst.DATABEAN_GET_VALUE));
		String kssaiWay = "";
		String kssaiWaySelIdx = bean[0].sendMessageString("決済方法選択", X31CWebConst.DATABEAN_GET_VALUE);
		X31SDataBeanAccessArray kssaiWayInfoArray = bean[0].getDataBeanArray("決済方法情報");
		if (kssaiWayInfoArray != null && kssaiWayInfoArray.getCount() != null
				&& JCHWebCommon.isNotNullOrEmpty(kssaiWaySelIdx) && Integer.parseInt(kssaiWaySelIdx) < kssaiWayInfoArray.getCount())
		{
			X31SDataBeanAccess subbean = kssaiWayInfoArray.getDataBean(Integer.parseInt(kssaiWaySelIdx));
			kssaiWay = subbean.sendMessageString("決済方法コード", X31CWebConst.DATABEAN_GET_VALUE);
		}
		// 決済方法 → SMAPS即時決済SMS送信依頼マップ.決済方法
		parentMap.put("kssai_way", kssaiWay);
		// 任意の質問答え → SMAPS即時決済SMS送信依頼マップ.任意の質問答え
		parentMap.put("secr_qs_ans", bean[0].sendMessageString("任意の質問答え", X31CWebConst.DATABEAN_GET_VALUE));
		// 支払・取扱・有効期限日 → SMAPS即時決済SMS送信依頼マップ.支払・取扱・有効期限日
		parentMap.put("pay_kigen_ymd", bean[0].sendMessageString("支払・取扱・有効期限日", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CHSV008605SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：請求書分割発行
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setGETWORKPARAMLISTCC(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(GETWORKPARAMLISTCC, parentMap);

		// 各inputリスト編集
		setWorkParamList(outputMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：SMAPS即時決済発行SMS送信登録
	 * @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();

		HashMap<String, Object> childMap = null;

		ArrayList<HashMap<String, Object>> taioKirokAddList = new ArrayList<HashMap<String, Object>>();

		childMap = new HashMap<String, Object>();

		String bunruiCd = this.getPrcTaioKirokSbtDtlCd(bean);

		// 請求書再発行["104"固定] → 対応記録登録マップ.応対区分カテゴリーリスト.料金対応記録種別コード
		childMap.put("prc_taio_kirok_sbt_cd", JACStrConst.TKRK_SBT_SKS_SAIHAKKO);

		// 料金対応記録種別詳細コード → 対応記録登録マップ.応対区分カテゴリーリスト.料金対応記録種別詳細コード
		childMap.put("prc_taio_kirok_dtl_bunrui_cd", bunruiCd);

		// "即時決済システムSMS送信済" → 対応記録登録マップ.対応記録登録リスト.タイトル
		childMap.put("title", TITE_SMS_FIN);

		// 問合せ内容 → 問合せ内容
		childMap.put("toiawase_naiyo", getToiawaseNaiyo(bean));

		// 業務個別設定組織コード → 対応記録登録マップ.対応記録登録リスト.業務個別設定組織コード
		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>();

		// 請求書再発行["104"固定] → 対応記録登録マップ.応対区分カテゴリーリスト.料金対応記録種別コード
		ctgrMap.put("prc_taio_kirok_sbt_cd", JACStrConst.TKRK_SBT_SKS_SAIHAKKO);

		// 料金対応記録種別詳細コード → 対応記録登録マップ.応対区分カテゴリーリスト.料金対応記録種別詳細コード
		ctgrMap.put("prc_taio_kirok_dtl_bunrui_cd", JACStrConst.TKRK_SBTD_SKS_MDGC_CMS_NON);

		// 督促ステータス → 対応記録登録マップ.応対区分カテゴリーリスト.督促ステータス
		ctgrMap.put("tkskst", bean[0].sendMessageString(CHW00111SFConst.TOKUSOKU_STAT, X31CWebConst.DATABEAN_GET_VALUE));

		// 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]：SMAPS即時決済発行SMS送信登録
	 * @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]：SMAPS即時決済発行SMS送信登録
	 * @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;
		List<HashMap<String, Object>> list = null;

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		String prcTaioKirokSbtDtlCd = this.getPrcTaioKirokSbtDtlCd(bean);
		String seikyYm = null;
		String seikyAmnt = null;
		String payKigenYmd = null;

		if(parentMap.containsKey("prc_taio_kirok_list")){
			list = (ArrayList)parentMap.get("prc_taio_kirok_list");
		}else{
			list = new ArrayList();
		}

		// 選択されたレコードの情報を取得
		arraybean = bean[0].getDataBeanArray(CHW00111SFConst.RE_SEIKY_DETAIL_INFO);
		for (int i = 0; i < arraybean.getCount(); i++)
		{
			seikyYm = arraybean.getDataBean(i).sendMessageString(CHW00111SFConst.SEIKY_YM_09, X31CWebConst.DATABEAN_GET_VALUE);
			seikyAmnt = arraybean.getDataBean(i).sendMessageString(CHW00111SFConst.AMNT_09, X31CWebConst.DATABEAN_GET_VALUE);
			break;
		}

		payKigenYmd = bean[0].sendMessageString(CHW00111SFConst.PAY_KIGEN_YMD, X31CWebConst.DATABEAN_GET_VALUE);
		seikyAmnt = bean[0].sendMessageString(CHW00111SFConst.AMNT_GOKEI, X31CWebConst.DATABEAN_GET_VALUE);

		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", bean[0].sendMessageString(CHW00111SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

		// 請求書再発行["104"固定] → 料金対応記録登録マップ.料金対応記録種別コード
		childMap.put("prc_taio_kirok_sbt_cd", JACStrConst.TKRK_SBT_SKS_SAIHAKKO);

		// 料金対応記録種別詳細コード → 料金対応記録登録マップ.料金対応記録種別詳細コード
		childMap.put("prc_taio_kirok_sbt_dtl_cd", prcTaioKirokSbtDtlCd);

		// "即時決済システムSMS送信済" → 対応記録登録マップ.対応記録登録リスト.タイトル
		childMap.put("title", TITE_SMS_FIN);

		// "SMS即時決済システム用" → 記事
		childMap.put("kiji", KIJI_FOR_SMS);

		// 支払期限年月日 → 料金対応記録登録マップ.料金対応記録明細リスト.変更後年月日
		childMap.put("chg_af_ymd", payKigenYmd);

		// 請求額 → 料金対応記録登録マップ.料金対応記録明細リスト.変更後金額
		childMap.put("chg_af_amnt", seikyAmnt);

		// 請求年月 → 料金対応記録登録マップ.料金対応記録明細リスト.記録対象年月
		childMap.put("kirok_tg_ym", seikyYm);

		// 対応履歴表示 → true
		childMap.put("taiorrki_rendo_tg_flg", JACStrConst.TAIORRKI_RENDO_TG_FLG_HYOJI);

		list.add(childMap);

		parentMap.put("prc_taio_kirok_list", list);

		outputMap.put(JACStrConst.PRCTAIOKIROKADDCC_MAP_ID, parentMap);

		return outputMap;
	}

	/**
	 * 料金対応記録種別詳細コードを取得します。
	 * @param bean　[0]：SMAPS即時決済発行SMS送信登録
	 * @return String　料金対応記録種別詳細コード
	 */
	private String getPrcTaioKirokSbtDtlCd(X31SDataBeanAccess[] bean) {

		String prcTaioKirokSbtDtlCd = null;

		String shunoCommisionSelIdx = bean[0].sendMessageString("収納手数料選択", X31CWebConst.DATABEAN_GET_VALUE);

		if (SHUNO_COMMISION_YO.equals(shunoCommisionSelIdx))
		{
			// 窓口通常・手数料有
			prcTaioKirokSbtDtlCd = JACStrConst.TKRK_SBTD_SKS_MDGC_CMS_ARI;
		}
		else
		{
			// 窓口通常・手数料無
			prcTaioKirokSbtDtlCd = JACStrConst.TKRK_SBTD_SKS_MDGC_CMS_NON;
		}

		return prcTaioKirokSbtDtlCd;
	}

	/**
	 * 業務パラメータIDリスト編集処理<br>
	 * <br>
	 * 業務パラメータ管理情報取得CCの業務パラメータIDリスト編集を行う。
	 * 
	 * @param dataMap
	 */
	@SuppressWarnings("unchecked")
	private void setWorkParamList(HashMap<String, Object> dataMap)
	{
		// 業務パラメータIDリスト
		ArrayList<HashMap<String, Object>> workParamList = new  ArrayList<HashMap<String, Object>>(); 

		// 問合せ先１（窓口）
		HashMap<String, Object> workParamMap1 = new HashMap<String, Object>();
		workParamMap1.put("in_work_param_id", JACStrConst.WKPAR_CH_TOIAWASESK_MD01);
		workParamList.add(workParamMap1);

		// 問合せ先２（窓口）
		HashMap<String, Object> workParamMap2 = new HashMap<String, Object>();
		workParamMap2.put("in_work_param_id", JACStrConst.WKPAR_CH_TOIAWASESK_MD02);
		workParamList.add(workParamMap2);

		// 問合せ先３（窓口）
		HashMap<String, Object> workParamMap3 = new HashMap<String, Object>();
		workParamMap3.put("in_work_param_id", JACStrConst.WKPAR_CH_TOIAWASESK_MD03);
		workParamList.add(workParamMap3);

		// 問合せ先４（窓口）
		HashMap<String, Object> workParamMap4 = new HashMap<String, Object>();
		workParamMap4.put("in_work_param_id", JACStrConst.WKPAR_CH_TOIAWASESK_MD04);
		workParamList.add(workParamMap4);

		// 問合せ先５（窓口）
		HashMap<String, Object> workParamMap5 = new HashMap<String, Object>();
		workParamMap5.put("in_work_param_id", JACStrConst.WKPAR_CH_TOIAWASESK_MD05);
		workParamList.add(workParamMap5);

		// 問合せ先６（窓口）
		HashMap<String, Object> workParamMap6 = new HashMap<String, Object>();
		workParamMap6.put("in_work_param_id", JACStrConst.WKPAR_CH_TOIAWASESK_MD06);
		workParamList.add(workParamMap6);


		// 問合せ先１（mineo）
		HashMap<String, Object> workParamMap7 = new HashMap<String, Object>();
		workParamMap7.put("in_work_param_id", JACStrConst.WKPAR_CH_TOIAWASESK_MV01);
		workParamList.add(workParamMap7);

		// 問合せ先２（mineo）
		HashMap<String, Object> workParamMap8 = new HashMap<String, Object>();
		workParamMap8.put("in_work_param_id", JACStrConst.WKPAR_CH_TOIAWASESK_MV02);
		workParamList.add(workParamMap8);

		// 問合せ先３（mineo）
		HashMap<String, Object> workParamMap9 = new HashMap<String, Object>();
		workParamMap9.put("in_work_param_id", JACStrConst.WKPAR_CH_TOIAWASESK_MV03);
		workParamList.add(workParamMap9);

		// 問合せ先４（mineo）
		HashMap<String, Object> workParamMap10 = new HashMap<String, Object>();
		workParamMap10.put("in_work_param_id", JACStrConst.WKPAR_CH_TOIAWASESK_MV04);
		workParamList.add(workParamMap10);

		// 問合せ先５（mineo）
		HashMap<String, Object> workParamMap11 = new HashMap<String, Object>();
		workParamMap11.put("in_work_param_id", JACStrConst.WKPAR_CH_TOIAWASESK_MV05);
		workParamList.add(workParamMap11);

		// 問合せ先６（mineo）
		HashMap<String, Object> workParamMap12 = new HashMap<String, Object>();
		workParamMap12.put("in_work_param_id", JACStrConst.WKPAR_CH_TOIAWASESK_MV06);
		workParamList.add(workParamMap12);
		
		((HashMap)dataMap.get("GETWORKPARAMLISTCC")).put("WORK_PARAM_ID_List", workParamList);
	}

	/**
	 * 問合せ内容を取得します。
	 * <br>
	 * @param bean SMAPS即時決済発行SMS送信登録画面Bean
	 * @return 問合せ内容
	 */
	private String getToiawaseNaiyo(X31SDataBeanAccess[] bean)
	{
			StringBuffer sb = new StringBuffer();
			sb.append("　請求先番号　：　");
			sb.append(bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));
			sb.append("\n");
			sb.append("　請求先名　：　");
			sb.append(bean[0].sendMessageString("請求先名", X31CWebConst.DATABEAN_GET_VALUE));
			sb.append("\n");
			sb.append("　電話番号　：　");
			X31SDataBeanAccessArray telNoInfoArray = bean[0].getDataBeanArray("電話番号情報");
			if(telNoInfoArray != null && telNoInfoArray.getCount() > 0 && telNoInfoArray.getDataBean(0) != null)
			{
				X31SDataBeanAccess subbean = telNoInfoArray.getDataBean(0);
				String telNoSel = subbean.sendMessageString("電話番号選択", X31CWebConst.DATABEAN_GET_VALUE);
				Integer cnt = (Integer)subbean.sendMessage("電話番号リスト", X31CWebConst.DATABEAN_GET_COUNT);
				if (JCHWebCommon.isNotNullOrEmpty(telNoSel) && cnt != null && Integer.parseInt(telNoSel) < cnt)
				{
					sb.append(subbean.sendMessageString("電話番号リスト", X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(telNoSel)));
				}
			}
			sb.append("\n");
			sb.append("　請求月　：　");
			X31SDataBeanAccessArray seikyYmInfoArray = bean[0].getDataBeanArray("請求月情報");
			if(seikyYmInfoArray != null && seikyYmInfoArray.getCount() != null
					&& seikyYmInfoArray.getCount() > 0 && seikyYmInfoArray.getDataBean(0) != null)
			{
				X31SDataBeanAccess subbean = seikyYmInfoArray.getDataBean(0);
				String telNoSel = subbean.sendMessageString("請求月選択", X31CWebConst.DATABEAN_GET_VALUE);
				Integer cnt = (Integer)subbean.sendMessage("請求月リスト", X31CWebConst.DATABEAN_GET_COUNT);
				if (JCHWebCommon.isNotNullOrEmpty(telNoSel) && cnt != null && Integer.parseInt(telNoSel) < cnt)
				{
					String seikyYm = subbean.sendMessageString("請求月リスト", X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(telNoSel));
					if (JCHWebCommon.isNotNullOrEmpty(seikyYm))
					{
						sb.append(new JCCToolTextDateFormat("yyyy/MM", "yyyyMM").formattedPrint(seikyYm) + "月");
					}
				}
			}
			sb.append("\n");
			sb.append("　請求金額　：　");
			String amnt = bean[0].sendMessageString("請求額（合計）", X31CWebConst.DATABEAN_GET_VALUE);
			if (JCHWebCommon.isNotNullOrEmpty(amnt))
			{
				sb.append(new JCCToolTextDecimalFormat("#,###").formattedPrint(amnt) + "円");
			}
			sb.append("\n");
			sb.append("　決済方法　：　");
			String kssaiWay = "";
			String kssaiWaySelIdx = bean[0].sendMessageString("決済方法選択", X31CWebConst.DATABEAN_GET_VALUE);
			X31SDataBeanAccessArray kssaiWayInfoArray = bean[0].getDataBeanArray("決済方法情報");
			if (kssaiWayInfoArray != null && kssaiWayInfoArray.getCount() != null
					&& JCHWebCommon.isNotNullOrEmpty(kssaiWaySelIdx) && Integer.parseInt(kssaiWaySelIdx) < kssaiWayInfoArray.getCount())
			{
				X31SDataBeanAccess subbean = kssaiWayInfoArray.getDataBean(Integer.parseInt(kssaiWaySelIdx));
				kssaiWay = subbean.sendMessageString("決済方法名称", X31CWebConst.DATABEAN_GET_VALUE);
			}
			sb.append(kssaiWay);
			sb.append("\n");
			sb.append("　収納手数料　：　");
			String shunoCommision = "";
			String shunoCommisionSelIdx = bean[0].sendMessageString("収納手数料選択", X31CWebConst.DATABEAN_GET_VALUE);
			X31SDataBeanAccessArray shunoCommisionInfoArray = bean[0].getDataBeanArray("収納手数料情報");
			if (shunoCommisionInfoArray != null && shunoCommisionInfoArray.getCount() != null
					&& JCHWebCommon.isNotNullOrEmpty(shunoCommisionSelIdx) && Integer.parseInt(shunoCommisionSelIdx) < shunoCommisionInfoArray.getCount())
			{
				X31SDataBeanAccess subbean = shunoCommisionInfoArray.getDataBean(Integer.parseInt(shunoCommisionSelIdx));
				shunoCommision = subbean.sendMessageString("収納手数料名称", X31CWebConst.DATABEAN_GET_VALUE);
			}
			sb.append(shunoCommision);
			sb.append("\n");
			sb.append("　任意の質問答え　：　");
			sb.append(bean[0].sendMessageString("任意の質問答え", X31CWebConst.DATABEAN_GET_VALUE));
			sb.append("\n");
			sb.append("　支払・取扱・有効期限日　：　");
			String payKigenYmd = bean[0].sendMessageString("支払・取扱・有効期限日", X31CWebConst.DATABEAN_GET_VALUE);
			if (payKigenYmd != null && !"".equals(payKigenYmd))
			{
				sb.append(new JCCToolTextDateFormat("yyyy/MM/dd", "yyyyMMdd").formattedPrint(payKigenYmd));
			}
			sb.append("\n");
		
		return sb.toString();
	}

}