/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0249_KKSV0249OPDBMapper
*	ソースファイル名：KKSV0249_KKSV0249OPDBMapper.java
*	作成者			：FJ
*	日付			：2012年01月18日
*＜機能概要＞
*	BP（機器提供サービス契約登録受付済登録処理サービス）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/01/18	FJ		新規作成
*	v4.00.00	2012/08/08	FJ）古田	【ANK-0398-00-00】住所管理に伴う「例外登録」の管理追加対応
*   v6.00.00    2013/10/11  FJ)田原     【ANK-1580-00-00】対応
*   v8.00.00    2014/04/23  FJ)田原     【IT-2014-0000198】対応
*   v8.00.01    2014/07/12  FJ)山下		【ANK-2099-00-00】対応
*   v25.00.00	2016/04/28	FJ)黒田		【ANK-2530-00-00】TV新コースおよびVOD導入
*   v32.00.00	2017/04/26	FJ)阪口		【ANK-3149-00-00】新セキュリティパック導入
*   v39.00.00	2018/09/18	FJ)謝		【ANK-3488-00-00】４KSTB（ACASチップ）導入対応
*   v64.00.00	2023/01/31	FJ)謝		【ANK-4331-00-00】【eo】 多機能RTの予防交換機能対応
**********************************************************************/
package eo.web.webview.mapping;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;

import eo.common.constant.JKKStrConst;
import eo.common.util.JPCUtilCommon;
import eo.web.webview.KKW03301SF.KKW03301SFConst;

/**
 * DataBean-BPマッピングをする。
 * @author 富士通
 */
public class KKSV0249_KKSV0249OPDBMapper
{
	
	/**
	 * コンストラクタ
	 */
	public KKSV0249_KKSV0249OPDBMapper()
	{
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器提供サービス契約登録
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param opeDate　運用日付 + HHmmssSSS
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setJKKKikiIchiranKkCreateCC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String opeDate)
	{
		
		if(bean == null)
		{
			return null;
		}

		if(bean.length != 1)
		{
			return null;
		}
		
		X31SDataBeanAccess beanTemp = bean[0];

		HashMap<String, Object> parentMap = new HashMap<String, Object>();
// ANK-4331-00-00 ADD START
		// 型番号指定での登録
		boolean mdlNoShiteiAdd = beanTemp.sendMessageBoolean(KKW03301SFConst.MDL_NO_SHITEI_ADD, X31CWebConst.DATABEAN_GET_VALUE);
// ANK-4331-00-00 ADD END
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		//チェック画面ＩＤ
		parentMap.put("check_scrn_id", "KKW009");
		//サービス契約番号
		parentMap.put("svc_kei_no", beanTemp.sendMessageString(KKW03301SFConst.KEY_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		
		/* ++++++++++ v7.00.00 変更開始 ++++++++++ */
		//宅内機器型式コード
		//parentMap.put("taknkiki_model_cd", getComboItemData(beanTemp, KKW03301SFConst.KIKI_MODEL, KKW03301SFConst.KIKI_MODEL_CD_05));
// ANK-4331-00-00 MOD START
//		// 多機能ルーターの場合、空白を設定する。
//		if("00".equals(beanTemp.sendMessageString(KKW03301SFConst.HAISO_DIV, X31CWebConst.DATABEAN_GET_VALUE)) && checkWorkPara(beanTemp, KKW03301SFConst.TKNRUT_TNK_SBT_CD , 
//				getSelectComboData(beanTemp, KKW03301SFConst.KIKI_MODEL, KKW03301SFConst.KIKI_MODEL_SELECT_INDEX_05, KKW03301SFConst.KIKI_SBT_05)))
		// 直送で多機能ルーターかつ型番号指定での登録がチェックなし(OFF)の場合、空白を設定する。
		if("00".equals(beanTemp.sendMessageString(KKW03301SFConst.HAISO_DIV, X31CWebConst.DATABEAN_GET_VALUE)) && checkWorkPara(beanTemp, KKW03301SFConst.TKNRUT_TNK_SBT_CD , 
				getSelectComboData(beanTemp, KKW03301SFConst.KIKI_MODEL, KKW03301SFConst.KIKI_MODEL_SELECT_INDEX_05, KKW03301SFConst.KIKI_SBT_05))
				&& !mdlNoShiteiAdd)
// ANK-4331-00-00 MOD END
		{
			parentMap.put("taknkiki_model_cd", "");
		}
		else
		{
			parentMap.put("taknkiki_model_cd", getComboItemData(beanTemp, KKW03301SFConst.KIKI_MODEL, KKW03301SFConst.KIKI_MODEL_CD_05));
		}
		/* ++++++++++ v7.00.00 変更終了 ++++++++++ */
		
		//運用日付
		parentMap.put("unyo_ymd", beanTemp.sendMessageString(KKW03301SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));
		//配送ステータス
		parentMap.put("haiso_stat", "");
		//配送区分コード
		parentMap.put("haiso_div_cd", beanTemp.sendMessageString(KKW03301SFConst.HAISO_DIV, X31CWebConst.DATABEAN_GET_VALUE));
		//販売種別
		parentMap.put("hambai_sbt", getComboItemData(beanTemp, KKW03301SFConst.HAMBAI_SBT, KKW03301SFConst.CD_DIV_CD_06));
		//機器製造番号
		parentMap.put("kk_seizo_no", beanTemp.sendMessageString(KKW03301SFConst.KIKI_SEIZO_NO, X31CWebConst.DATABEAN_GET_VALUE));
		//ＳＴＢ機器提供サービスコード
		parentMap.put("stb_kktk_svc_cd", beanTemp.sendMessageString(KKW03301SFConst.STB_KKTK_SVC_CD, X31CWebConst.DATABEAN_GET_VALUE));
		//ＢＣＡＳ機器提供サービスコード
		parentMap.put("bcas_kktk_svc_cd", beanTemp.sendMessageString(KKW03301SFConst.BCAS_KKTK_SVC_CD, X31CWebConst.DATABEAN_GET_VALUE));
		//ＣＣＡＳ機器提供サービスコード
		parentMap.put("ccas_kktk_svc_cd", beanTemp.sendMessageString(KKW03301SFConst.CCAS_KKTK_SVC_CD, X31CWebConst.DATABEAN_GET_VALUE));

		// 建物名（倉庫）
		String[] arrSokoInfo = getSplitSokoInfo(getComboItemData(beanTemp, KKW03301SFConst.SOKO_INFO, KKW03301SFConst.SOKO_CD_08));
		// 管理場所識別コード
		parentMap.put("kriplace_skcd", arrSokoInfo[0]);
		//建物情報
		parentMap.put("soko_info", arrSokoInfo[1]);
		
		//MACアドレス
		parentMap.put("mac_ad", beanTemp.sendMessageString(KKW03301SFConst.MTKM_KIKI_MAC, X31CWebConst.DATABEAN_GET_VALUE));

		//工事案件番号
		parentMap.put("kojiak_no", getComboItemData(beanTemp, KKW03301SFConst.KJ_ANKEN_NO_CHILD, KKW03301SFConst.KJ_ANKEN_NO_07));
		//配送作成済フラグ
		String haisoSakseiZumiFlg = getSelectComboData(beanTemp, KKW03301SFConst.KJ_ANKEN_NO_CHILD, KKW03301SFConst.KJ_ANKEN_SELECT_INDEX_07,
																								KKW03301SFConst.HAISO_SAKSEI_ZUMI_FLG_LIST_07);
		parentMap.put("haiso_saksei_zumi_flg", haisoSakseiZumiFlg);


//		//ＩＤ登録書有無
//		parentMap.put("id_tourokusho_um", getComboItemData(beanTemp, KKW03301SFConst.KINKYU_ID_TOUROKUSHO_UM, KKW03301SFConst.CD_DIV_CD_06));
		
		//宅内機器種別コード
		parentMap.put("tk_sbt_cd", getSelectComboData(beanTemp, KKW03301SFConst.KIKI_MODEL, KKW03301SFConst.KIKI_MODEL_SELECT_INDEX_05,
				KKW03301SFConst.KIKI_SBT_05));
		//ＣＣＡＳ宅内機器種別コード
		parentMap.put("tk_sbt_cd_ccas", beanTemp.sendMessageString(KKW03301SFConst.TKNKIKI_SBT_CD_CCAS, X31CWebConst.DATABEAN_GET_VALUE));
		//ＢＣＡＳ宅内機器種別コード
		parentMap.put("tk_sbt_cd_bcas", beanTemp.sendMessageString(KKW03301SFConst.TKNKIKI_SBT_CD_BCAS, X31CWebConst.DATABEAN_GET_VALUE));
		//ＳＴＢ宅内機器種別コード
		parentMap.put("tk_sbt_cd_stb", beanTemp.sendMessageString(KKW03301SFConst.TKNKIKI_SBT_CD_STB, X31CWebConst.DATABEAN_GET_VALUE));
		//機器提供種別コード
		parentMap.put("kktk_sbt_cd", getComboItemData(beanTemp, KKW03301SFConst.TK_SBT, KKW03301SFConst.CD_DIV_CD_06));
		//配送方法区分
		parentMap.put("haiso_way_cd", beanTemp.sendMessageString(KKW03301SFConst.HAISO_WAY_CD, X31CWebConst.DATABEAN_GET_VALUE));
		//異動区分
		parentMap.put("ido_div", beanTemp.sendMessageString(KKW03301SFConst.IDO_KBN, X31CWebConst.DATABEAN_GET_VALUE));
		//郵便番号（機器送付先情報）
		parentMap.put("kiki_sofu_pcd", getKikSofuPcd(beanTemp));
		//住所コード（機器送付先情報）
		parentMap.put("kiki_sofu_ad_cd", getKikSofuAdr(beanTemp));
		//都道府県（機器送付先情報）
		parentMap.put("kiki_sofu_state", beanTemp.sendMessageString(KKW03301SFConst.KIKI_SOFU_STATE, X31CWebConst.DATABEAN_GET_VALUE));
		//市区町村（機器送付先情報）
		parentMap.put("kiki_sofu_city", beanTemp.sendMessageString(KKW03301SFConst.KIKI_SOFU_CITY, X31CWebConst.DATABEAN_GET_VALUE));
		//大字通称（機器送付先情報）
		parentMap.put("kiki_sofu_oaztsu", beanTemp.sendMessageString(KKW03301SFConst.KIKI_SOFU_OAZTSU, X31CWebConst.DATABEAN_GET_VALUE));
		//字丁目（機器送付先情報）
		parentMap.put("kiki_sofu_azcho", beanTemp.sendMessageString(KKW03301SFConst.KIKI_SOFU_AZCHO, X31CWebConst.DATABEAN_GET_VALUE));
		//番地・号（機器送付先情報）
		parentMap.put("kiki_sofu_bnchigo", beanTemp.sendMessageString(KKW03301SFConst.KIKI_SOFU_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE));
		//建物名（機器送付先情報）
		parentMap.put("kiki_sofu_adrttm", beanTemp.sendMessageString(KKW03301SFConst.KIKI_SOFU_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE));
		//部屋番号（機器送付先情報）
		parentMap.put("kiki_sofu_adrrm", beanTemp.sendMessageString(KKW03301SFConst.KIKI_SOFU_ADRRM, X31CWebConst.DATABEAN_GET_VALUE));
		//電話番号（機器送付先情報）
		parentMap.put("kiki_sofu_telno", beanTemp.sendMessageString(KKW03301SFConst.KIKI_SOFU_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
		//送付先名（機器送付先情報）
		parentMap.put("kiki_sofu_shs_nm", beanTemp.sendMessageString(KKW03301SFConst.KIKI_SOFU_SHS_NM, X31CWebConst.DATABEAN_GET_VALUE));
		//送付先名カナ（機器送付先情報）
		parentMap.put("kiki_sofu_shs_kana", beanTemp.sendMessageString(KKW03301SFConst.KIKI_SOFU_SHS_KANA, X31CWebConst.DATABEAN_GET_VALUE));
		//機器送料有無
		parentMap.put("kiki_souryo_um", getComboItemData(beanTemp, KKW03301SFConst.KIKI_SOURYO_UM, KKW03301SFConst.CD_DIV_CD_06));
		//付加情報
		parentMap.put("huka_info", getComboItemData(beanTemp, KKW03301SFConst.HUKA_INFO, KKW03301SFConst.CD_DIV_CD_06));
		//ＴＶコース
		parentMap.put("tv_course", getComboItemData(beanTemp, KKW03301SFConst.TV_COURSE, KKW03301SFConst.CD_DIV_CD_06));
		//異動理由コード
		parentMap.put("ido_rsn_cd", beanTemp.sendMessageString(KKW03301SFConst.IDO_RSN_CD, X31CWebConst.DATABEAN_GET_VALUE));
		//運用年月日時分秒
		parentMap.put("unyo_dtm", opeDate);
		
		//更新年月日時分秒（サービス契約）
		parentMap.put("upd_dtm_svc_kei", beanTemp.sendMessageString(KKW03301SFConst.UPD_DTM_SVC_KEI, X31CWebConst.DATABEAN_GET_VALUE));
		
		//契約日
		parentMap.put("keiyaku_ymd", beanTemp.sendMessageString(KKW03301SFConst.KIKI_KEIYAKU_YMD, X31CWebConst.DATABEAN_GET_VALUE));
		//元トムソンケース番号
		parentMap.put("kinkyu_moto_tomson_cd", getComboItemData(beanTemp, KKW03301SFConst.KINKYU_MOTO_TOMSON_CD, KKW03301SFConst.TCASE_NO_11));
		// 機器送付先住所手動入力フラグ
		parentMap.put("kiki_shs_ad_man_input_flg", getCheckBoxData(bean[0], KKW03301SFConst.KIKI_SOFU_REGAI));
		
		// 割賦対象
		String kap_um = convertBooleanToString(beanTemp.sendMessageBoolean(KKW03301SFConst.KAP_UM, X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("kap_ins_judge", kap_um);
		// スマートリンクプレミアムパック
		String smartrink_premium_um = convertBooleanToString(beanTemp.sendMessageBoolean(KKW03301SFConst.SMARTRINK_PREMIUM_UM,
				X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("smartlink_ins_judge", smartrink_premium_um);
		
		/* ++++++++++ v6.00.00 追加開始 ++++++++++ */
		// タブレット件数
		parentMap.put("tabletCnt", beanTemp.sendMessageString(KKW03301SFConst.TABLETCNT, X31CWebConst.DATABEAN_GET_VALUE));
		/* ++++++++++ v6.00.00 追加終了 ++++++++++ */
		
		// 割賦プランコード
		parentMap.put("kap_plan_cd", beanTemp.sendMessageString(KKW03301SFConst.KAP_PLAN_CD_HID, X31CWebConst.DATABEAN_GET_VALUE));
		// 割賦回数
		parentMap.put("kap_pay_zan_cnt", beanTemp.sendMessageString(KKW03301SFConst.KAP_PAY_ZAN_CNT, X31CWebConst.DATABEAN_GET_VALUE));
		// 端末購入受付担当名
		parentMap.put("tnmt_buy_uk_tntsha_nm", beanTemp.sendMessageString(KKW03301SFConst.TNMT_BUY_UK_TNTSHA_NM, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 工事後出荷有無
		parentMap.put("koji_af_shka_um", getSelectComboData(beanTemp, KKW03301SFConst.KIKI_MODEL, KKW03301SFConst.KIKI_MODEL_SELECT_INDEX_05,
				KKW03301SFConst.KOJI_AF_SHKA_UM_LIST_05));
		
		// 工事会社配送有無
		parentMap.put("koji_comp_haiso_um", getSelectComboData(beanTemp, KKW03301SFConst.KIKI_MODEL, KKW03301SFConst.KIKI_MODEL_SELECT_INDEX_05,
				KKW03301SFConst.KOJI_COMP_HAISO_UM_LIST_05));
		
		// 工事案件種別コード
		parentMap.put("kojiak_sbt_cd", getSelectComboData(beanTemp, KKW03301SFConst.KJ_ANKEN_NO_CHILD, KKW03301SFConst.KJ_ANKEN_SELECT_INDEX_07,
				KKW03301SFConst.KOJIAK_SBT_CDG_LIST_07));
		
		// 工事案件新設フラグ
		parentMap.put("kj_anken_new_flg", beanTemp.sendMessageString(KKW03301SFConst.KJ_ANKEN_NEW_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		
		/* ++++++++++ v7.00.00 追加開始 tahara++++++++++ */
		// サービスコード
		/* ++++++++++ v8.00.00 削除開始 ++++++++++ */
		//parentMap.put("kktk_svc_cd", beanTemp.sendMessageString(KKW03301SFConst.EDIT_KKTK_SVC_CD, X31CWebConst.DATABEAN_GET_VALUE));
		/* ++++++++++ v8.00.00 削除終了 ++++++++++ */
		parentMap.put("ruta_kino_cd", getComboItemData(beanTemp, KKW03301SFConst.RUTA_KINO, KKW03301SFConst.CD_DIV_CD_06));
		parentMap.put("taknkiki_sbt_cd", getComboItemData(beanTemp, KKW03301SFConst.KIKI_SBT, KKW03301SFConst.CD_DIV_CD_06));
		/* ++++++++++ v7.00.00 追加終了 tahara++++++++++ */
		
		/* ++++++++++ v8.00.01 追加開始 ++++++++++ */
		parentMap.put("trat_cd_1_edit", beanTemp.sendMessageString(KKW03301SFConst.TRAT_CD_1, X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("trat_cd_2_edit", beanTemp.sendMessageString(KKW03301SFConst.TRAT_CD_2, X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("trat_cd_3_edit", beanTemp.sendMessageString(KKW03301SFConst.TRAT_CD_3, X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("trat_cd_4_edit", beanTemp.sendMessageString(KKW03301SFConst.TRAT_CD_4, X31CWebConst.DATABEAN_GET_VALUE));
		/* ++++++++++ v8.00.01 追加終了 ++++++++++ */
// ANK-3488-00-00 ADD START
		// マンション物件コードが"001"(マンション)の場合
		if (JKKStrConst.MANSION_BUKKEN_CD_MANSION.equals(beanTemp.sendMessageString(KKW03301SFConst.MANSION_BUKKEN_CD, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 提供方式契約番号
			parentMap.put("tk_hoshiki_kei_no", beanTemp.sendMessageString(KKW03301SFConst.TK_HOSHIKI_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
			// 宅内機器型式コード（ＶＯＮＵ）
			parentMap.put("taknkiki_model_cd_vonu", "");
		}
		// マンション物件コードが"001"(マンション)以外の場合
		else
		{
			// 提供方式契約番号
			parentMap.put("tk_hoshiki_kei_no", "");
			// 宅内機器型式コード（ＶＯＮＵ）
			parentMap.put("taknkiki_model_cd_vonu", beanTemp.sendMessageString(KKW03301SFConst.TAKNKIKI_MODEL_CD_VONU, X31CWebConst.DATABEAN_GET_VALUE));
		}
// ANK-3488-00-00 ADD END
		
		outputMap.put("JKKKikiIchiranKkCreateCC", parentMap);
						
		return outputMap;
	}
	
// ANK-2530-00-00 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器提供サービス契約一覧
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV024901SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}

		X31SDataBeanAccess beanTemp = bean[0];

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 機器型式コード → 宅内機器型式一意照会マップ.ＫＥＹ＿宅内機器型式コード
		parentMap.put("key_taknkiki_model_cd", getComboItemData(beanTemp, KKW03301SFConst.KIKI_MODEL, KKW03301SFConst.KIKI_MODEL_CD_05));
		
		outputMap.put("KKSV024901SC", parentMap);
						
		return outputMap;
	}
// ANK-2530-00-00 ADD END
	
// ANK-3149-00-00 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器提供サービス契約一覧
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV024902SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}
		
		X31SDataBeanAccess beanTemp = bean[0];
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// ＫＥＹ＿サービス契約番号 →割引サービス契約一覧照会（割引サービス指定）マップ.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", beanTemp.sendMessageString(KKW03301SFConst.KEY_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		
		// セキュリティパック割引 →割引サービス契約一覧照会（割引サービス指定）マップ.ＫＥＹ＿割引サービスコード
		parentMap.put("key_wrib_svc_cd", JKKStrConst.WRIB_SVC_CD_SECURITY_PACK);
		
		outputMap.put("KKSV024902SC", parentMap);
		
		return outputMap;
	}
// ANK-3149-00-00 ADD END
	
	/**
	 * 連結編集した郵便番号データを取得します。
	 * @param bean
	 * @return 連結した郵便番号
	 */
	private String getKikSofuPcd(X31SDataBeanAccess bean)
	{
		
		String pcdKami3 = bean.sendMessageString(KKW03301SFConst.KIKI_SOFU_PCD_KAMI3, X31CWebConst.DATABEAN_GET_VALUE);
		String pcdShimo4 = bean.sendMessageString(KKW03301SFConst.KIKI_SOFU_PCD_SHIMO4, X31CWebConst.DATABEAN_GET_VALUE);
		
		if(pcdKami3 != null && !"".equals(pcdKami3))
		{
			return pcdKami3 + pcdShimo4;
		}
		
		return "";
	}
	
	/**
	 * 連結編集した住所コードデータを取得します。
	 * @param bean
	 * @return 連結した住所コード
	 */
	private String getKikSofuAdr(X31SDataBeanAccess bean)
	{
		
		String sohuAdCd1 = bean.sendMessageString(KKW03301SFConst.KIKI_SOFU_AD_CD1, X31CWebConst.DATABEAN_GET_VALUE);
		String sohuAdCd2 = bean.sendMessageString(KKW03301SFConst.KIKI_SOFU_AD_CD2, X31CWebConst.DATABEAN_GET_VALUE);
		String sohuAdCd3 = bean.sendMessageString(KKW03301SFConst.KIKI_SOFU_AD_CD3, X31CWebConst.DATABEAN_GET_VALUE);
		String sohuAdCd4 = bean.sendMessageString(KKW03301SFConst.KIKI_SOFU_AD_CD4, X31CWebConst.DATABEAN_GET_VALUE);
		
		if(sohuAdCd1 != null && !"".equals(sohuAdCd1))
		{
			return sohuAdCd1 + sohuAdCd2 + sohuAdCd3 + sohuAdCd4;
		}
		
		return "";
	}
	
	/**
	 * コンボボックスのコードと名称領域に設定している値を取得する。
	 * 
	 * @param subbean 画面データ
	 * @param comboItemId 対象プルダウン名
	 * @param itemNme 取得対象項目名
	 * @return 
	 */
	private String getComboItemData(X31SDataBeanAccess bean, String comboItemId, String itemNme)
	{
		
		X31SDataBeanAccess comboItem = bean.getDataBeanArray(comboItemId).getDataBean(0);
		
		return getNullToStr(comboItem.sendMessageString(itemNme, X31CWebConst.DATABEAN_GET_VALUE));
		
	}
	
	
	/**
	 * コンボボックスのコードを取得する。
	 * 
	 * @param subbean 画面データ
	 * @param comboItemId 対象とするコンボボックスの項目ID
	 * @param selIdxId 選択行インデックスが格納されている項目ID
	 * @param selCodeId 選択されたコードを取得する項目ID
	 * @return String
	 */
	private String getSelectComboData(X31SDataBeanAccess bean, String comboItemId, String selIdxId, String selCodeId)
	{
		
		// コンボボックスのデータタイプを取得する。
		X31SDataBeanAccess subbean = bean.getDataBeanArray(comboItemId).getDataBean(0);
		String selectedIndex = subbean.sendMessageString(selIdxId, X31CWebConst.DATABEAN_GET_VALUE);
		if (selectedIndex == null || "".equals(selectedIndex))
		{
			return "";

		}
		
		int selIdx = Integer.valueOf(selectedIndex);
		
		return subbean.sendMessageString(selCodeId, X31CWebConst.DATABEAN_GET_VALUE, selIdx);
		
	}
	
	/**
	 * チェックボックスの値を変換
	 * 
	 * @param bean 画面データ
	 * @param itemId 対象とするコンボボックスの項目ID
	 * @return チェックボックスの値
	 */
	private String getCheckBoxData(X31SDataBeanAccess bean, String itemId)
	{
		String retStr = "0";
		
		boolean checkBox = bean.sendMessageBoolean(KKW03301SFConst.KIKI_SOFU_REGAI, X31CWebConst.DATABEAN_GET_VALUE);
		
		if(checkBox)
		{
			retStr = "1";
		}
		
		return retStr;
		
	}
	
	/**
	 * Nullの場合空白を返却します。
	 * @param str
	 * @return String
	 */
	private String getNullToStr(String str)
	{
		return JPCUtilCommon.Rtrim(str);
	}
	
	/**
	 * Boolean型引数をString型に置き換えます。
	 * @param bool1
	 * @return String
	 */
	private String convertBooleanToString(Boolean bool1)
	{
		if(bool1)
		{
			return "1";
		}
		else
		{
			return "0";
		}
	}

	/**
	 * コンボボックスの倉庫コードを分割する。
	 * @param pSokoInfo
	 * @return String[]
	 */
	private String[] getSplitSokoInfo(String pSokoInfo)
	{
		String sokoInfo = getNullToStr(pSokoInfo);
		String[] arrSokoInfo = {"", ""};
		if(!"".equals(sokoInfo))
		{
			arrSokoInfo = sokoInfo.split(",");
		}
		return arrSokoInfo;
	}
	
	/* ++++++++++ v7.00.00 追加開始 ++++++++++ */
	/**
	 * 業務パラメーター判定メソッド
	 * @param selectList
	 * @param outputMap
	 * @return 成否
	 */
	@SuppressWarnings("unchecked")
	private boolean checkWorkPara(X31SDataBeanAccess bean, String workParaCd, String taisyoCd)
	{
		// 業務パラメタから取得した値
		List<String> workParaArray = Arrays.asList((bean.sendMessageString(workParaCd, X31CWebConst.DATABEAN_GET_VALUE)).split(","));
		
		// 業務パラメタから取得した値があれば「TRUE」を設定する。
		if(workParaArray.contains(taisyoCd))
		{
			return true;
		}

		return false;
	}
	/* ++++++++++ v7.00.00 追加終了 ++++++++++ */
}