/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：KK
*	モジュール名	：KKSV0001_KKSV0001OPDBMapper
*	ソースファイル名：KKSV0001_KKSV0001OPDBMapper.java
*	作成者			：FJ
*	日付			：2011年08月18日
*＜機能概要＞
*	BP（Ｅメール情報登録初期表示）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/08/18	FJ		新規作成
*  v32.00.00	2017/06/28	FJ)三原		ANK-3149-20-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.JKKStrConst;
import eo.web.webview.KKW00801SF.KKW00801SFConst;
import eo.web.webview.common.JKKCommonConst;


/**
 * DataBean-BPマッピングをする。
 * 
 */
public class KKSV0001_KKSV0001OPDBMapper {
	
	/**
	 * コンストラクタ
	 */
	public KKSV0001_KKSV0001OPDBMapper(){
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：Ｅメール情報情報登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV000101SC(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_svc_kei_no", bean[0].sendMessageString(KKW00801SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 運用年月日 → サービス契約一意照会マップ.ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString(KKW00801SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV000101SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：Ｅメール情報情報登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV000102SC(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_op_svc_cd", "B001");
		// 運用年月日 → 料金コース＿オプションサービス一意照会マップ.ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString(KKW00801SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV000102SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：Ｅメール情報情報登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV000103SC(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_svc_kei_no", bean[0].sendMessageString(KKW00801SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("key_wrib_svc_cd", JKKCommonConst.WRIB_SVC_CD_FP_WRIB);

		outputMap.put("KKSV000103SC", parentMap);
						
		return outputMap;
	}


	/**
	 * 上りマッピングをする
	 * @param bean　[0]：Ｅメール情報情報登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV000105SC(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_cd_sbt_cd_2", "CD00002");

		outputMap.put("KKSV000105SC", parentMap);

		return outputMap;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：Ｅメール情報情報登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV000102SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV000102SC")){
			parentMap = (HashMap)outputMap.get("KKSV000102SC");
		}

		ArrayList childList = null;

//		// TOD_ メール契約数を取得		2011-11-16, 正規化により無効
//		int mlad_reg_cnt = 1;

		childList = null;
		if (parentMap != null
				&& parentMap.containsKey("EKK0811A010CBSMsg1List")) {
			childList = (ArrayList) parentMap.get("EKK0811A010CBSMsg1List");
			HashMap childMap = (HashMap) childList.get(0);

			if (childMap == null) {
				bean[0].sendMessageLong(KKW00801SFConst.MLAD_REG_OK_CNT, X31CWebConst.DATABEAN_SET_VALUE, 0L);
			}

			// 契約可能なメールアドレス数を取得
			try {
				String tmpCnt = (String) childMap.get("max_op_svc_cnt");
				int mlad_limit_reg_cnt = Integer.parseInt(tmpCnt);
				Integer mlad_reg_ok_cnt = Integer.valueOf(mlad_limit_reg_cnt);	// - mlad_reg_cnt);

				if (mlad_reg_ok_cnt.intValue() < 0 )
				{
					mlad_reg_ok_cnt = 0;
				}
				bean[0].sendMessageLong(KKW00801SFConst.MLAD_REG_OK_CNT, X31CWebConst.DATABEAN_SET_VALUE, mlad_reg_ok_cnt.longValue());
			}
			catch (NumberFormatException e) {
				bean[0].sendMessageLong(KKW00801SFConst.MLAD_REG_OK_CNT, X31CWebConst.DATABEAN_SET_VALUE, 0L);
			}
		}

		return bean;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：Ｅメール情報情報登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV000106SC(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_svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV000106SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：Ｅメール情報情報登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV000110CC(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_svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("TenkyomtEmailInfoNumCC", parentMap);
						
		return outputMap;
	}

	//ANK-3149-20-00 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：Ｅメール情報情報登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV000110SC(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_svc_kei_no", bean[0].sendMessageString(KKW00801SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("key_wrib_svc_cd", JKKStrConst.WRIB_SVC_CD_SECURITY_PACK);

		outputMap.put("KKSV000110SC", parentMap);
						
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：Ｅメール情報情報登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV000111SC(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_svc_kei_no", bean[0].sendMessageString(KKW00801SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("key_wrib_svc_cd", JKKStrConst.WRIB_SVC_SMARTLINK_PREMIUM);

		outputMap.put("KKSV000111SC", parentMap);
						
		return outputMap;
	}
	//ANK-3149-20-00 ADD END

	/**
	 * 下りマッピング
	 * @param bean　[0]：Ｅメール情報情報登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV000101SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		// N:1マッピングのため、手動で実装
		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV000101SC"))
		{
			parentMap = (HashMap)outputMap.get("KKSV000101SC");
		}
		
		ArrayList childList = (ArrayList)parentMap.get("EKK0081A010CBSMsg1List");

		if (childList == null)
		{
			return bean;
		}

		if (0 < childList.size())
		{
			HashMap childMap = (HashMap)childList.get(0);
			
			// サービス契約ステータス
			bean[0].sendMessageString(KKW00801SFConst.SVC_KEI_STAT, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_stat"));
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：Ｅメール情報情報登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV000103SC(X31SDataBeanAccess[] bean,
			HashMap outputMap) {

		HashMap parentMap = null;
		if (outputMap.containsKey("KKSV000103SC")) {
			parentMap = (HashMap) outputMap.get("KKSV000103SC");
		}

		if (parentMap != null
				&& parentMap.containsKey("EKK0451B010CBSMsg1List")) {
			ArrayList childList = (ArrayList) parentMap
					.get("EKK0451B010CBSMsg1List");

			if (childList != null && childList.size() > 0) {
				bean[0].sendMessageBoolean(KKW00801SFConst.VIRUS_CHK_ENABLED,
						X31CWebConst.DATABEAN_SET_VALUE, true);
			} else {
				bean[0].sendMessageBoolean(KKW00801SFConst.VIRUS_CHK_ENABLED,
						X31CWebConst.DATABEAN_SET_VALUE, false);
			}
		}

		return bean;
	}




	/**
	 * KKSV000104SC 料金コース＿サブオプションサービス一覧照会SC<br/>
	 * 下りマッピング<br/>
	 * <br/>
	 * 残課題対応（メールボックス容量選択値をサブオプションサービスの設定値を元に算出）の実装で、
	 * メール容量コードの取得から置換<br/>
	 * 
	 * @param bean　[0]：Ｅメール情報情報登録DataBean
	 * @param outputMap
	 * @return 結果を出力したＥメール情報情報登録DataBean
	 * @since 2011-11-22
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV000104SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV000104SC")){
			parentMap = (HashMap)outputMap.get("KKSV000104SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listKKSV000104SC_EKK1881B001CBSMsg1List_EKK1881B001CBSMsg1List = bean[0].getDataBeanArray("ＭＢ容量サブオプション設定リスト");
		childList = null;
		if(listKKSV000104SC_EKK1881B001CBSMsg1List_EKK1881B001CBSMsg1List != null && parentMap != null && parentMap.containsKey("EKK1881B001CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EKK1881B001CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listKKSV000104SC_EKK1881B001CBSMsg1List_EKK1881B001CBSMsg1List.getCount() -1 >= i){
					subbean = listKKSV000104SC_EKK1881B001CBSMsg1List_EKK1881B001CBSMsg1List.getDataBean(i);
				}else{
					subbean = listKKSV000104SC_EKK1881B001CBSMsg1List_EKK1881B001CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// ＭＢ容量サブオプション設定リスト.サービス提供物初期値 ← 料金コース＿サブオプションサービス一覧照会マップ.料金コース＿サブオプションサービス一覧照会明細.サービス提供物初期値
				if (childMap != null) {
					subbean.sendMessageString("サービス提供物初期値", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svctk_but_shk_value"));
				} else {
					subbean.sendMessageString("サービス提供物初期値", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// ＭＢ容量サブオプション設定リスト.サービス提供物最大値 ← 料金コース＿サブオプションサービス一覧照会マップ.料金コース＿サブオプションサービス一覧照会明細.サービス提供物最大値
				if (childMap != null) {
					subbean.sendMessageString("サービス提供物最大値", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svctk_but_max_value"));
				} else {
					subbean.sendMessageString("サービス提供物最大値", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// ＭＢ容量サブオプション設定リスト.サービス提供物増減値 ← 料金コース＿サブオプションサービス一覧照会マップ.料金コース＿サブオプションサービス一覧照会明細.サービス提供物増減値
				if (childMap != null) {
					subbean.sendMessageString("サービス提供物増減値", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svctk_but_zougen_value"));
				} else {
					subbean.sendMessageString("サービス提供物増減値", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// ＭＢ容量サブオプション設定リスト.サービス提供物無料値 ← 料金コース＿サブオプションサービス一覧照会マップ.料金コース＿サブオプションサービス一覧照会明細.サービス提供物無料値
				if (childMap != null) {
					subbean.sendMessageString("サービス提供物無料値", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svctk_but_mryo_value"));
				} else {
					subbean.sendMessageString("サービス提供物無料値", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


		return bean;
	}


	/**
	 * 下りマッピング
	 * @param bean　[0]：Ｅメール情報情報登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV000105SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV000105SC")){
			parentMap = (HashMap)outputMap.get("KKSV000105SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listKKSV000105SC_cd_nm_list_virus_EZM0171B010CBSMsg1List = bean[0].getDataBeanArray("ウィルスチェック有無リスト");
		childList = null;
		if(listKKSV000105SC_cd_nm_list_virus_EZM0171B010CBSMsg1List != null && parentMap != null && parentMap.containsKey("EZM0171B010CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EZM0171B010CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listKKSV000105SC_cd_nm_list_virus_EZM0171B010CBSMsg1List.getCount() -1 >= i){
					subbean = listKKSV000105SC_cd_nm_list_virus_EZM0171B010CBSMsg1List.getDataBean(i);
				}else{
					subbean = listKKSV000105SC_cd_nm_list_virus_EZM0171B010CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// ウィルスチェック有無リスト.コード種別コード ← コード名称取得マップ２.コード名称管理一覧照会明細.コード種別コード
				if (childMap != null) {
					subbean.sendMessageString("コード種別コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cd_sbt_cd"));
				} else {
					subbean.sendMessageString("コード種別コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// ウィルスチェック有無リスト.コード種別名 ← コード名称取得マップ２.コード名称管理一覧照会明細.コード種別名
				if (childMap != null) {
					subbean.sendMessageString("コード種別名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cd_sbt_nm"));
				} else {
					subbean.sendMessageString("コード種別名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// ウィルスチェック有無リスト.コード種別説明 ← コード名称取得マップ２.コード名称管理一覧照会明細.コード種別説明
				if (childMap != null) {
					subbean.sendMessageString("コード種別説明", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cd_sbt_setmei"));
				} else {
					subbean.sendMessageString("コード種別説明", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// ウィルスチェック有無リスト.コード区分 ← コード名称取得マップ２.コード名称管理一覧照会明細.コード区分
				if (childMap != null) {
					subbean.sendMessageString("コード区分", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cd_div"));
				} else {
					subbean.sendMessageString("コード区分", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// ウィルスチェック有無リスト.コード区分名 ← コード名称取得マップ２.コード名称管理一覧照会明細.コード区分名
				if (childMap != null) {
					subbean.sendMessageString("コード区分名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cd_div_nm"));
				} else {
					subbean.sendMessageString("コード区分名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// ウィルスチェック有無リスト.コード区分略称 ← コード名称取得マップ２.コード名称管理一覧照会明細.コード区分略称
				if (childMap != null) {
					subbean.sendMessageString("コード区分略称", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cd_div_ali"));
				} else {
					subbean.sendMessageString("コード区分略称", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// ウィルスチェック有無リスト.コード適用開始年月日 ← コード名称取得マップ２.コード名称管理一覧照会明細.コード適用開始年月日
				if (childMap != null) {
					subbean.sendMessageString("コード適用開始年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cd_tstaymd"));
				} else {
					subbean.sendMessageString("コード適用開始年月日", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// ウィルスチェック有無リスト.コード適用終了年月日 ← コード名称取得マップ２.コード名称管理一覧照会明細.コード適用終了年月日
				if (childMap != null) {
					subbean.sendMessageString("コード適用終了年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cd_tendymd"));
				} else {
					subbean.sendMessageString("コード適用終了年月日", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// ウィルスチェック有無リスト.表示順序 ← コード名称取得マップ２.コード名称管理一覧照会明細.表示順序
				if (childMap != null) {
					subbean.sendMessageString("表示順序", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("dsp_jun"));
				} else {
					subbean.sendMessageString("表示順序", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// ウィルスチェック有無リスト.初期表示コード ← コード名称取得マップ２.コード名称管理一覧照会明細.初期表示コード
				if (childMap != null) {
					subbean.sendMessageString("初期表示コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("shk_dsp_cd"));
				} else {
					subbean.sendMessageString("初期表示コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// ウィルスチェック有無リスト.初期表示コード名称 ← コード名称取得マップ２.コード名称管理一覧照会明細.初期表示コード名称
				if (childMap != null) {
					subbean.sendMessageString("初期表示コード名称", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("shk_dsp_cd_nm"));
				} else {
					subbean.sendMessageString("初期表示コード名称", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// ウィルスチェック有無リスト.更新年月日時分秒 ← コード名称取得マップ２.コード名称管理一覧照会明細.更新年月日時分秒
				if (childMap != null) {
					subbean.sendMessageString("更新年月日時分秒", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("upd_dtm"));
				} else {
					subbean.sendMessageString("更新年月日時分秒", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


		return bean;
	}
	
	/**
	 * 下りマッピング
	 * @param bean　[0]：Ｅメール情報情報登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV000106SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV000106SC")){
			parentMap = (HashMap)outputMap.get("KKSV000106SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listKKSV000106SC_kakins_list_EKK0321B002CBSMsg1List = bean[0].getDataBeanArray("課金先リスト");
		childList = null;
		if(listKKSV000106SC_kakins_list_EKK0321B002CBSMsg1List != null && parentMap != null && parentMap.containsKey("EKK0321B002CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EKK0321B002CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listKKSV000106SC_kakins_list_EKK0321B002CBSMsg1List.getCount() -1 >= i){
					subbean = listKKSV000106SC_kakins_list_EKK0321B002CBSMsg1List.getDataBean(i);
				}else{
					subbean = listKKSV000106SC_kakins_list_EKK0321B002CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// 課金先リスト.請求契約番号 ← 課金先一覧照会（請求契約番号・サービス契約番号）.課金先一覧照会（請求契約番号・サービス契約番号）明細.請求契約番号
				if (childMap != null) {
					subbean.sendMessageString("請求契約番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_kei_no"));
				} else {
					subbean.sendMessageString("請求契約番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


		return bean;
	}



	/**
	 * 下りマッピング
	 * @param bean　[0]：Ｅメール情報情報登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV000107SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV000107SC")){
			parentMap = (HashMap)outputMap.get("KKSV000107SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listKKSV000107SC_EKK0351B002CBSMsg1List_EKK0351B002CBSMsg1List = bean[0].getDataBeanArray("オプションサービス契約一覧照会明細");
		childList = null;
		if(listKKSV000107SC_EKK0351B002CBSMsg1List_EKK0351B002CBSMsg1List != null && parentMap != null && parentMap.containsKey("EKK0351B002CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EKK0351B002CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listKKSV000107SC_EKK0351B002CBSMsg1List_EKK0351B002CBSMsg1List.getCount() -1 >= i){
					subbean = listKKSV000107SC_EKK0351B002CBSMsg1List_EKK0351B002CBSMsg1List.getDataBean(i);
				}else{
					subbean = listKKSV000107SC_EKK0351B002CBSMsg1List_EKK0351B002CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
			
				// オプションサービス契約一覧照会明細.オプションサービス契約番号 ← オプションサービス契約一覧照会（サービス契約番号）マップ.オプションサービス契約一覧照会（サービス契約番号）明細.オプションサービス契約番号
				if (childMap != null) {
					subbean.sendMessageString("オプションサービス契約番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("op_svc_kei_no"));
				} else {
					subbean.sendMessageString("オプションサービス契約番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// オプションサービス契約一覧照会明細.オプションサービス契約ステータス ← オプションサービス契約一覧照会（サービス契約番号）マップ.オプションサービス契約一覧照会（サービス契約番号）明細.オプションサービス契約ステータス
				if (childMap != null) {
					subbean.sendMessageString("オプションサービス契約ステータス", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("op_svc_kei_stat"));
				} else {
					subbean.sendMessageString("オプションサービス契約ステータス", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			
			}
		}


		return bean;
	}


	/**
	 * 上りマッピングをする
	 * @param bean　[0]：Ｅメール情報情報登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV000107SC(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_svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 部品呼び出し → オプションサービス契約一覧照会（サービス契約番号）マップ.ＫＥＹ＿オプションサービスコード
		parentMap.put("key_op_svc_cd", String.valueOf("B001"));
		// 運用年月日 → オプションサービス契約一覧照会（サービス契約番号）マップ.ＫＥＹ＿基準年月日
		parentMap.put("key_base_ymd", bean[0].sendMessageString("運用年月日", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV000107SC", parentMap);
						
		return outputMap;
	}


	/**
	 * 進捗一覧照会SCマッピング
	 * 
	 * @param bean
	 * @param outputMap
	 * @param func_code
	 * @return
	 */
	public HashMap<String, Object> setKKSV000108SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		//ＫＥＹ＿サービス契約番号	key_svc_kei_no
		parentMap.put("key_svc_kei_no", bean[0].sendMessageString(KKW00801SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

		//ＫＥＹ＿異動区分	key_ido_div
		X31SDataBeanAccessArray custKeiHktgiList =  bean[0].getDataBeanArray(KKW00801SFConst.CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess custKeiHktgiInf = custKeiHktgiList.getDataBean(0);
		String ido_div = custKeiHktgiInf.sendMessageString(KKW00801SFConst.IDO_DIV_04, X31CWebConst.DATABEAN_GET_VALUE);
		parentMap.put("key_ido_div", ido_div);

		outputMap.put("KKSV000108SC", parentMap);

		return outputMap;
	}


	/**
	 * 申込明細一意照会SCマッピング
	 * 
	 * @param bean
	 * @param outputMap
	 * @param func_code ‘2’カレント
	 * @return
	 */
	public HashMap<String, Object> setKKSV000109SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

//		//ＫＥＹ＿世代登録年月日時分秒	key_gene_add_dtm
//		parentMap.put("key_gene_add_dtm", bean[0].sendMessageString(KKW00801SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV000109SC", parentMap);

		return outputMap;
	}


	/**
	 * 進捗一覧照会SC出力マッピング
	 * 
	 * @param bean
	 * @param outputMap
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV000108SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap)
	{
		HashMap<String, Object> parentMap = null;
		if(outputMap.containsKey("KKSV000108SC")){
			parentMap = (HashMap<String, Object>)outputMap.get("KKSV000108SC");
		}

		ArrayList childList = null;


		childList = null;
		if(parentMap != null && parentMap.containsKey("EKK1091B001CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EKK1091B001CBSMsg1List");
			if (0 < childList.size())
			{
				HashMap<?, ?> childMap = (HashMap<?, ?>)childList.get(0);
			
				//異動日時
				bean[0].sendMessageString(KKW00801SFConst.IDO_DTM, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("ido_dtm"));
			}
		}

		return bean;
	}


	/**
	 * 申込明細一意照会SC出力マッピング
	 * 
	 * @param bean
	 * @param outputMap
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV000109SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap)
	{
		HashMap<String, Object> parentMap = null;
		if(outputMap.containsKey("KKSV000109SC")){
			parentMap = (HashMap<String, Object>)outputMap.get("KKSV000109SC");
		}

		ArrayList childList = null;


		childList = null;
		if(parentMap != null && parentMap.containsKey("EKK0021A010CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EKK0021A010CBSMsg1List");
			if (0 < childList.size())
			{
				HashMap<?, ?> childMap = (HashMap<?, ?>)childList.get(0);
			
				//申込番号
				bean[0].sendMessageString(KKW00801SFConst.MSKM_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mskm_no"));
				//申込書番号	mskmsho_no
				bean[0].sendMessageString(KKW00801SFConst.MSKMSHO_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mskmsho_no"));
				//申込年月日	mskm_ymd
				//最終更新年月日時分秒	last_upd_dtm
				bean[0].sendMessageString(KKW00801SFConst.KK0011_UPD_DTM, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("last_upd_dtm"));
			}
		}

		return bean;
	}

	//ANK-3149-20-00 ADD START
	/**
	 * 下りマッピング
	 * @param bean　[0]：Ｅメール情報情報登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV000110SC(X31SDataBeanAccess[] bean,
			HashMap outputMap) {

		HashMap parentMap = null;
		if (outputMap.containsKey("KKSV000110SC")) {
			parentMap = (HashMap) outputMap.get("KKSV000110SC");
		}

		if (parentMap != null
				&& parentMap.containsKey("EKK0451B010CBSMsg1List")) {
			ArrayList childList = (ArrayList) parentMap
					.get("EKK0451B010CBSMsg1List");

			if (childList != null && childList.size() > 0) {
				bean[0].sendMessageBoolean(KKW00801SFConst.VIRUS_CHK_ENABLED,
						X31CWebConst.DATABEAN_SET_VALUE, true);
			} else {
				bean[0].sendMessageBoolean(KKW00801SFConst.VIRUS_CHK_ENABLED,
						X31CWebConst.DATABEAN_SET_VALUE, false);
			}
		}

		return bean;
	}
	
	/**
	 * 下りマッピング
	 * @param bean　[0]：Ｅメール情報情報登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV000111SC(X31SDataBeanAccess[] bean,
			HashMap outputMap) {

		HashMap parentMap = null;
		if (outputMap.containsKey("KKSV000111SC")) {
			parentMap = (HashMap) outputMap.get("KKSV000111SC");
		}

		if (parentMap != null
				&& parentMap.containsKey("EKK0451B010CBSMsg1List")) {
			ArrayList childList = (ArrayList) parentMap
					.get("EKK0451B010CBSMsg1List");

			if (childList != null && childList.size() > 0) {
				bean[0].sendMessageBoolean(KKW00801SFConst.VIRUS_CHK_ENABLED,
						X31CWebConst.DATABEAN_SET_VALUE, true);
			} else {
				bean[0].sendMessageBoolean(KKW00801SFConst.VIRUS_CHK_ENABLED,
						X31CWebConst.DATABEAN_SET_VALUE, false);
			}
		}

		return bean;
	}
	//ANK-3149-20-00 ADD END
}

