/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0562_KKSV0562OPDBMapper
*	ソースファイル名：KKSV0562_KKSV0562OPDBMapper.java
*	作成者			：Fujitsu
*	日付			：2012年05月19日
*＜機能概要＞
*	BP（機器提供サービス契約履歴一覧照会）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/05/19	Fujitsu		新規作成
*	v4.00.00	2012/10/11	FJ）緑川	【ANK-1188-00-00】宅内機器管理S：在庫更新処理の変更対応
*   v4.00.01    2012/11/12  FJ)古田     ST1-2012-0000901（ロット１障害反映）
*	v4.01.00	2012/12/25	FJ）鳩本	【IT1-2013-0000017】
*   v5.00.00	2013/02/28	FJ）辛		【ANK-1438-00-00】対応
*	v4.02.00	2013/03/12	FJ）鳩本	【IT2-2013-0000297】関連対応、適用終了年月日の20991231非表示対応
*	v5.01.00	2013/04/24	FJ）鳩本	【OT-2013-0000664】障害対応
*	v5.01.01	2013/07/05	FJ）古田	【IT1-2013-0001325】障害対応
*   v5.01.02    2013/09/28  FJ)辛       【OM-2013-0002658】対応
*	v6.00.00	2014/01/18	FJ)田原		【OM-2013-0005150】
*   v7.00.01    2013/12/16  FJ)田原     【IT2-21013-0000841】対応
*   v7.00.02    2013/12/16  FJ)田原     【IT2-2013-0000857】対応
*   v7.00.03    2014/01/29  FJ)田原     【OM-2013-0004343】対応
*   v10.00.00   2014/08/21   FJ)星野    【ANK-2141-00-00】STB交換方法変更対応
*   v15.00.00   2015/06/19  FJ)舘山     【ANK-2415-00-00】機器代金請求登録対応
*	v18.00.00	2015/08/14	FJ)阪口		【ANK-2631-00-00】ワンストップ案件（ＳＴＥＰ１）※koptWebBからkoptWebAへコピー
*   v26.00.00   2016/08/25  FJ)田口     【ANK-2930-00-00】(客A)接続機器タブの表示改善
*   v26.00.01   2016/09/07  FJ)田口     【ANK-2930-00-00】(客A)接続機器タブの表示改善 ※koptWebBとの資産同期
**********************************************************************/
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.util.JPCDateUtil;
import eo.web.webview.KKA15401SF.KKW03301SFConst;

/**
 * DataBean-BPマッピングをする。
 * 
 * @author 富士通
 */
public class KKSV0562_KKSV0562OPDBMapper
{
	
	/** 提供種別コード（持込）*/
	private static final String TK_SBT_CODE_MOTIKOMI = "03";
	
	/** 管理場所識別コード(倉庫)  */
	private static final String KRIPLACE_SKCD_SOKO = "1";
	/** 管理場所識別コード(工事会社)  */
	private static final String KRIPLACE_SKCD_KOJI = "2";
	/** 管理場所識別コード(預託先オフィス)  */
	private static final String KRIPLACE_SKCD_OFFICE = "3";
	
	/* ++++++++++ v4.02.00 追加開始 ++++++++++ */
	/** 日付項目 最大値 */
	private static final String MAX_YMD = "20991231";
	/* ++++++++++ v4.02.00 追加完了 ++++++++++ */
	
	/* ++++++++++ v7.00.01 追加開始 ++++++++++ */
	/**
	 * 宅内機器種別コード(多機能ルーター)
	 */
	private static final String TKNRUT_TNK_SBT_CD  = "R0";
	/* ++++++++++ v7.00.01 追加終了 ++++++++++ */
	
	/**
	 * コンストラクタ
	 */
	public KKSV0562_KKSV0562OPDBMapper()
	{
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器提供サービス契約履歴一覧照会
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV056201SC(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(KKW03301SFConst.KEY_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		outputMap.put("KKSV056201SC", parentMap);
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器提供サービス契約履歴一覧照会
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV056202CC(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);
		
		/* ++++++++++ v6.00.00 追加開始 ++++++++++ */
		parentMap.put("unyo_ymd", bean[0].sendMessageString(KKW03301SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));
		/* ++++++++++ v6.00.00 追加終了 ++++++++++ */
		
		/* ++++++++++ v7.00.03 追加開始 ++++++++++ */
		// ＫＥＹ＿サービス契約番号 → 機器提供サービス契約履歴一覧照会.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", bean[0].sendMessageString(KKW03301SFConst.KEY_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("svc_cd", bean[0].sendMessageString(KKW03301SFConst.SVC_CD, X31CWebConst.DATABEAN_GET_VALUE));
		
// ANK-2930-00-00 ADD START
		// 全契約表示フラグ → 機器提供サービス契約履歴一覧照会.全契約表示フラグ
		parentMap.put("all_kei_dsp_flg", bean[0].sendMessageString(KKW03301SFConst.ALL_KEI_DSP_FLG, X31CWebConst.DATABEAN_GET_VALUE));
// ANK-2930-00-00 ADD END
		
		// サービス契約共通情報一覧照会明細
		X31SDataBeanAccess subBean = bean[0].getDataBeanArray(KKW03301SFConst.EKK0081B010CBSMSG1LIST).getDataBean(0);
		parentMap.put("svc_cd", bean[0].sendMessageString(KKW03301SFConst.SVC_CD, X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("sysid", subBean.sendMessageString(KKW03301SFConst.SYSID_02, X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("prc_grp_cd", subBean.sendMessageString(KKW03301SFConst.PRC_GRP_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
		/* ++++++++++ v7.00.03 追加終了 ++++++++++ */
		
		outputMap.put("KKSV056202CC", parentMap);
		
		return outputMap;
	}
	
	/**
	 * 下りマッピング
	 * @param bean　[0]：機器提供サービス契約履歴一覧照会
	 * @param outputMap
	 * @return X31SDataBeanAccess[]
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV056201SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV056201SC"))
		{
			parentMap = (HashMap)outputMap.get("KKSV056201SC");
		}
		ArrayList childList = null;
		X31SDataBeanAccessArray listKKSV056201SC_service_list_EKK0341B012CBSMsg1List = bean[0].getDataBeanArray(KKW03301SFConst.SERVICE_RIREKI_LIST);
		// DataBeanの構造と合わないため、追記
		listKKSV056201SC_service_list_EKK0341B012CBSMsg1List.clearArray();
		if(parentMap.containsKey("EKK0341B012CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0341B012CBSMsg1List");
			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = listKKSV056201SC_service_list_EKK0341B012CBSMsg1List.addDataBean();
				HashMap childMap = (HashMap)childList.get(i);
				String stateNm = "";
				String cityNm = "";
				String oaztsuNm = "";
				String azchoNm = "";
				String bnchigo = "";
				String adrttm = "";
				String adrrm = "";
				

				
				/* ++++++++++ v7.00.01 変更開始 ++++++++++ */
				// 商品名
				//subbean.sendMessageString(KKW03301SFConst.GOODS_NAME_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("taknkiki_model_nm"));
				if(!"".equals((String)childMap.get("taknkiki_model_nm")))
				{
					subbean.sendMessageString(KKW03301SFConst.GOODS_NAME_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("taknkiki_model_nm"));
				}
				/* ++++++++++ v7.00.02 追加開始 ++++++++++ */
				// else if(TKNRUT_TNK_SBT_CD.equals((String)childMap.get("taknkiki_sbt_cd")))
				else
				/* ++++++++++ v7.00.02 追加終了 ++++++++++ */
				{
					subbean.sendMessageString(KKW03301SFConst.GOODS_NAME_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kktk_svc_nm"));
				}
				/* ++++++++++ v7.00.01 追加終了 ++++++++++ */
				
				// 機器提供種別コード名
				subbean.sendMessageString(KKW03301SFConst.KKTK_SBT_CD_NM_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kktk_sbt_cd_nm"));
				// 宅内機器型式コード
				subbean.sendMessageString(KKW03301SFConst.TAKNKIKI_MODEL_CD_15, X31CWebConst.DATABEAN_SET_VALUE, 
						(String)childMap.get("taknkiki_model_cd"));
				// 機器製造番号
				subbean.sendMessageString(KKW03301SFConst.KIKI_SEIZO_NO_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kiki_seizo_no"));
				// 出荷日
				subbean.sendMessageString(KKW03301SFConst.SHUKKA_YMD_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("shukka_ymd"));
				// 場所設置年月日
				subbean.sendMessageString(KKW03301SFConst.PLC_STC_YMD_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kojiak_jssi_ymd"));
				// 返品倉入年月日
				subbean.sendMessageString(KKW03301SFConst.HMPIN_KURAIRE_YMD_15, X31CWebConst.DATABEAN_SET_VALUE, 
						(String)childMap.get("hmpin_kuraire_ymd"));
				// 異動区分名
				subbean.sendMessageString(KKW03301SFConst.IDO_DIV_NM_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("ido_div_nm"));
				// 機器提供開始年月日
				subbean.sendMessageString(KKW03301SFConst.KIKI_TK_STA_YMD_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("plan_staymd"));
				// 機器提供終了年月日
				/* ++++++++++ v4.02.00 修正開始 ++++++++++ */
//				subbean.sendMessageString(KKW03301SFConst.KIKI_TK_END_YMD_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("plan_endymd"));
				subbean.sendMessageString(KKW03301SFConst.KIKI_TK_END_YMD_15, X31CWebConst.DATABEAN_SET_VALUE, convertMaxYmd((String)childMap.get("plan_endymd")));
				/* ++++++++++ v4.02.00 修正完了 ++++++++++ */
				
				// 契約変更取消日
				subbean.sendMessageString(KKW03301SFConst.KIKI_CHG_YMD_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("rsv_cl_ymd"));
				// 機器提供サービス契約番号
				subbean.sendMessageString(KKW03301SFConst.KKTK_SVC_KEI_NO_15, X31CWebConst.DATABEAN_SET_VALUE, 
						(String)childMap.get("kktk_svc_kei_no"));
				// 停止ＳＯＤ送信年月日
				subbean.sendMessageString(KKW03301SFConst.STP_SOD_SEND_YMD_15, X31CWebConst.DATABEAN_SET_VALUE, 
						(String)childMap.get("stp_sod_send_ymd"));
				// 機器送付先
				stateNm = (String)childMap.get("kiki_sohus_state_nm");
				cityNm = (String)childMap.get("kiki_sohus_city_nm");
				oaztsuNm = (String)childMap.get("kiki_sohus_oaztsu_nm");
				azchoNm = (String)childMap.get("kiki_sohus_azcho_nm");
				bnchigo = (String)childMap.get("kiki_sohus_bnchigo");
				adrttm = (String)childMap.get("kiki_sohus_adrttm");
				adrrm = (String)childMap.get("kiki_sohus_adrrm");
				// 機器送付先都道府県名
				subbean.sendMessageString(KKW03301SFConst.KIKI_SOHUS_STATE_NM_15, X31CWebConst.DATABEAN_SET_VALUE, stateNm);
				// 機器送付先市区町村名
				subbean.sendMessageString(KKW03301SFConst.KIKI_SOHUS_CITY_NM_15, X31CWebConst.DATABEAN_SET_VALUE, cityNm);
				// 機器送付先大字通称名
				subbean.sendMessageString(KKW03301SFConst.KIKI_SOHUS_OAZTSU_NM_15, X31CWebConst.DATABEAN_SET_VALUE, oaztsuNm);
				// 機器送付先字丁目名
				subbean.sendMessageString(KKW03301SFConst.KIKI_SOHUS_AZCHO_NM_15, X31CWebConst.DATABEAN_SET_VALUE, azchoNm);
				// 機器送付先番地号
				subbean.sendMessageString(KKW03301SFConst.KIKI_SOHUS_BNCHIGO_15, X31CWebConst.DATABEAN_SET_VALUE, bnchigo);
				// 機器送付先住所補記・建物名
				subbean.sendMessageString(KKW03301SFConst.KIKI_SOHUS_ADRTTM_15, X31CWebConst.DATABEAN_SET_VALUE, adrttm);
				// 機器送付先住所補記・部屋番号
				subbean.sendMessageString(KKW03301SFConst.KIKI_SOHUS_ADRRM_15, X31CWebConst.DATABEAN_SET_VALUE, adrrm);
				// 機器送付先住所
				subbean.sendMessageString(KKW03301SFConst.KIKI_SOFUS_AD_15, X31CWebConst.DATABEAN_SET_VALUE, 
						stateNm + cityNm + oaztsuNm + azchoNm + bnchigo + adrttm + adrrm);
//				【OM-2013-0002658】対応
				// 機器送付先電話番号
				subbean.sendMessageString(KKW03301SFConst.KIKI_SOHUS_TELNO_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kiki_sohus_telno"));
//				【OM-2013-0002658】対応
				// 付加情報
				subbean.sendMessageString(KKW03301SFConst.FUKA_INFO_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kiki_huka_info_cd"));
				// 付加情報名
				subbean.sendMessageString(KKW03301SFConst.FUKA_INFO_NM_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kiki_huka_info_cd_nm"));
				// 配送区分名
				subbean.sendMessageString(KKW03301SFConst.HAISO_DIV_NM_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("haiso_div_nm"));
				// 配送ステータス名
				subbean.sendMessageString(KKW03301SFConst.HAISO_STAT_NM_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("haiso_stat_nm"));
				// 伝票番号
				subbean.sendMessageString(KKW03301SFConst.DENPYO_NO_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("denpyo_no"));
				// 販売種別コード名
				subbean.sendMessageString(KKW03301SFConst.HAMBAI_SBT_CD_NM_15, X31CWebConst.DATABEAN_SET_VALUE, 
						(String)childMap.get("hambai_sbt_cd_nm"));
				// // 倉庫名
				// subbean.sendMessageString(KKW03301SFConst.SOKO_15, X31CWebConst.DATABEAN_SET_VALUE,
				// (String)childMap.get("kiki_hkat_shitei_soko_nm"));
				// // 機器引当指定倉庫棚名
				// subbean.sendMessageString(KKW03301SFConst.KIKI_HKAT_SHITEI_SKDN_NM_15, X31CWebConst.DATABEAN_SET_VALUE,
				// (String)childMap.get("kiki_hkat_shitei_skdn_nm"));
				// 管理場所識別コードにより、倉庫、棚情報を設定
				setKanriBasho(subbean, childMap);
				
				// お客様修理故障コード
				subbean.sendMessageString(KKW03301SFConst.CUST_SHURI_KOSHO_CD_15, X31CWebConst.DATABEAN_SET_VALUE, 
						(String)childMap.get("cust_shuri_kosho_cd_nm"));
				// 機器送料有無
				subbean.sendMessageString(KKW03301SFConst.KIKI_SORYO_UM_15, X31CWebConst.DATABEAN_SET_VALUE, 
								(String)childMap.get("kiki_soryo_um_nm"));
				// 機器送料作成年月日
				subbean.sendMessageString(KKW03301SFConst.KIKI_SORYO_SAKUSEI_YMD_15, X31CWebConst.DATABEAN_SET_VALUE, 
						(String)childMap.get("kiki_soryo_saksei_ymd"));
				// 一覧のスタイル制御
				if(i % 2 == 0)
				{
					subbean.sendMessageString(KKW03301SFConst.LIST_STYLE_15, X31CWebConst.DATABEAN_SET_VALUE, "odd");
				}
				else
				{
					subbean.sendMessageString(KKW03301SFConst.LIST_STYLE_15, X31CWebConst.DATABEAN_SET_VALUE, "even");
				}
				// 料金コースコード
				subbean.sendMessageString(KKW03301SFConst.PCRS_CD_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pcrs_cd_kktk"));
				// 世代登録年月日時分秒
				/* ++++++++++ v5.07.12 修正開始 ++++++++++ */
//				subbean.sendMessageString(KKW03301SFConst.GENE_ADD_DTM_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("gene_add_dtm_rsv"));
				subbean.sendMessageString(KKW03301SFConst.GENE_ADD_DTM_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("gene_add_dtm"));
				/* ++++++++++ v5.07.12 修正完了 ++++++++++ */
				// 異動区分
				subbean.sendMessageString(KKW03301SFConst.IDO_DIV_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("ido_div"));
				
				// 機器提供サービス契約ステータスは予約ではなくカレントから取得する
				// 機器提供サービス契約ステータス
				// subbean.sendMessageString(KKW03301SFConst.KKTK_SVC_KEI_STAT_15, X31CWebConst.DATABEAN_SET_VALUE,
				// (String)childMap.get("kktk_svc_kei_stat_rsv"));
				subbean.sendMessageString(KKW03301SFConst.KKTK_SVC_KEI_STAT_15, X31CWebConst.DATABEAN_SET_VALUE, 
						(String)childMap.get("kktk_svc_kei_stat"));
				// 返品機器番号
				subbean.sendMessageString(KKW03301SFConst.HMPIN_KIKI_NO_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hmpin_kiki_no"));
				// 配送ステータス
				subbean.sendMessageString(KKW03301SFConst.HAISO_STAT_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("haiso_stat"));
				
				/* ++++++++++ v4.01.00 追加開始 ++++++++++ */
				// 返却日
				subbean.sendMessageString(KKW03301SFConst.HENKYAKU_YMD_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hmpin_kuraire_ymd"));
				// 故障区分
				subbean.sendMessageString(KKW03301SFConst.TROUBLE_DIV_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cust_shuri_kosho_cd_nm"));
				// 機器変更番号
				subbean.sendMessageString(KKW03301SFConst.KIKI_CHG_NO_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kiki_chg_no"));
				// 配送番号
				subbean.sendMessageString(KKW03301SFConst.HAISO_NO_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("haiso_no"));
				/* ++++++++++ v4.01.00 追加完了 ++++++++++ */
				
				/* ++++++++++ v5.00.00 追加開始 ++++++++++ */
				// 宅内機器種別コード
				subbean.sendMessageString(KKW03301SFConst.TAKNKIKI_SBT_CD_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("taknkiki_sbt_cd"));
				// サービス契約内訳番号
				subbean.sendMessageString(KKW03301SFConst.SVC_KEI_UCWK_NO_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_ucwk_no"));
				/* ++++++++++ v5.00.00 追加完了 ++++++++++ */
				
				/* ++++++++++ v5.02.00 追加開始 ++++++++++ */
				// 機器提供サービスコード
				subbean.sendMessageString(KKW03301SFConst.KKTK_SVC_CD_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kktk_svc_cd"));
				// 登録SOD送信年月日
				subbean.sendMessageString(KKW03301SFConst.ADD_SOD_SEND_YMD_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("add_sod_send_ymd"));
				/* ++++++++++ v5.02.00 追加完了 ++++++++++ */
			}
		}
		return bean;
	}
	
	/* ++++++++++ v7.00.03 追加開始 ++++++++++ */
	/**
	 * 下りマッピング
	 * @param bean　[0]：機器提供サービス契約履歴一覧照会
	 * @param outputMap
	 * @return X31SDataBeanAccess[]
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV056201CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV056202CC"))
		{
			parentMap = (HashMap)outputMap.get("KKSV056202CC");
		}
		ArrayList childList = null;
		X31SDataBeanAccessArray listKKSV056201SC_service_list_EKK0341B012CBSMsg1List = bean[0].getDataBeanArray(KKW03301SFConst.SERVICE_RIREKI_LIST);
		// DataBeanの構造と合わないため、追記
		listKKSV056201SC_service_list_EKK0341B012CBSMsg1List.clearArray();
		if(parentMap.containsKey("EKK0341B012CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0341B012CBSMsg1List");
			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = listKKSV056201SC_service_list_EKK0341B012CBSMsg1List.addDataBean();
				HashMap childMap = (HashMap)childList.get(i);
				String stateNm = "";
				String cityNm = "";
				String oaztsuNm = "";
				String azchoNm = "";
				String bnchigo = "";
				String adrttm = "";
				String adrrm = "";
				
				// 商品名
				if(!"".equals((String)childMap.get("taknkiki_model_nm")))
				{
					subbean.sendMessageString(KKW03301SFConst.GOODS_NAME_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("taknkiki_model_nm"));
				}
				else
				{
					subbean.sendMessageString(KKW03301SFConst.GOODS_NAME_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kktk_svc_nm"));
				}
				
				// 機器提供種別コード名
				subbean.sendMessageString(KKW03301SFConst.KKTK_SBT_CD_NM_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kktk_sbt_cd_nm"));
				// 宅内機器型式コード
				subbean.sendMessageString(KKW03301SFConst.TAKNKIKI_MODEL_CD_15, X31CWebConst.DATABEAN_SET_VALUE, 
						(String)childMap.get("taknkiki_model_cd"));
				// 機器製造番号
				subbean.sendMessageString(KKW03301SFConst.KIKI_SEIZO_NO_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kiki_seizo_no"));
				// 出荷日
				subbean.sendMessageString(KKW03301SFConst.SHUKKA_YMD_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("shukka_ymd"));
				// 場所設置年月日
				subbean.sendMessageString(KKW03301SFConst.PLC_STC_YMD_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kojiak_jssi_ymd"));
				// 返品倉入年月日
				subbean.sendMessageString(KKW03301SFConst.HMPIN_KURAIRE_YMD_15, X31CWebConst.DATABEAN_SET_VALUE, 
						(String)childMap.get("hmpin_kuraire_ymd"));
				// 異動区分名
				subbean.sendMessageString(KKW03301SFConst.IDO_DIV_NM_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("ido_div_nm"));
				// 機器提供開始年月日
				subbean.sendMessageString(KKW03301SFConst.KIKI_TK_STA_YMD_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("plan_staymd"));
				// 機器提供終了年月日
				subbean.sendMessageString(KKW03301SFConst.KIKI_TK_END_YMD_15, X31CWebConst.DATABEAN_SET_VALUE, convertMaxYmd((String)childMap.get("plan_endymd")));
				
				// 契約変更取消日
				subbean.sendMessageString(KKW03301SFConst.KIKI_CHG_YMD_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("rsv_cl_ymd"));
				// 機器提供サービス契約番号
				subbean.sendMessageString(KKW03301SFConst.KKTK_SVC_KEI_NO_15, X31CWebConst.DATABEAN_SET_VALUE, 
						(String)childMap.get("kktk_svc_kei_no"));
				// 停止ＳＯＤ送信年月日
				subbean.sendMessageString(KKW03301SFConst.STP_SOD_SEND_YMD_15, X31CWebConst.DATABEAN_SET_VALUE, 
						(String)childMap.get("stp_sod_send_ymd"));
				// 機器送付先
				stateNm = (String)childMap.get("kiki_sohus_state_nm");
				cityNm = (String)childMap.get("kiki_sohus_city_nm");
				oaztsuNm = (String)childMap.get("kiki_sohus_oaztsu_nm");
				azchoNm = (String)childMap.get("kiki_sohus_azcho_nm");
				bnchigo = (String)childMap.get("kiki_sohus_bnchigo");
				adrttm = (String)childMap.get("kiki_sohus_adrttm");
				adrrm = (String)childMap.get("kiki_sohus_adrrm");
				// 機器送付先都道府県名
				subbean.sendMessageString(KKW03301SFConst.KIKI_SOHUS_STATE_NM_15, X31CWebConst.DATABEAN_SET_VALUE, stateNm);
				// 機器送付先市区町村名
				subbean.sendMessageString(KKW03301SFConst.KIKI_SOHUS_CITY_NM_15, X31CWebConst.DATABEAN_SET_VALUE, cityNm);
				// 機器送付先大字通称名
				subbean.sendMessageString(KKW03301SFConst.KIKI_SOHUS_OAZTSU_NM_15, X31CWebConst.DATABEAN_SET_VALUE, oaztsuNm);
				// 機器送付先字丁目名
				subbean.sendMessageString(KKW03301SFConst.KIKI_SOHUS_AZCHO_NM_15, X31CWebConst.DATABEAN_SET_VALUE, azchoNm);
				// 機器送付先番地号
				subbean.sendMessageString(KKW03301SFConst.KIKI_SOHUS_BNCHIGO_15, X31CWebConst.DATABEAN_SET_VALUE, bnchigo);
				// 機器送付先住所補記・建物名
				subbean.sendMessageString(KKW03301SFConst.KIKI_SOHUS_ADRTTM_15, X31CWebConst.DATABEAN_SET_VALUE, adrttm);
				// 機器送付先住所補記・部屋番号
				subbean.sendMessageString(KKW03301SFConst.KIKI_SOHUS_ADRRM_15, X31CWebConst.DATABEAN_SET_VALUE, adrrm);
				// 機器送付先住所
				subbean.sendMessageString(KKW03301SFConst.KIKI_SOFUS_AD_15, X31CWebConst.DATABEAN_SET_VALUE, 
						stateNm + cityNm + oaztsuNm + azchoNm + bnchigo + adrttm + adrrm);
				
				// 機器送付先電話番号
				subbean.sendMessageString(KKW03301SFConst.KIKI_SOHUS_TELNO_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kiki_sohus_telno"));
				
				// 付加情報
				subbean.sendMessageString(KKW03301SFConst.FUKA_INFO_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kiki_huka_info_cd"));
				// 付加情報名
				subbean.sendMessageString(KKW03301SFConst.FUKA_INFO_NM_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kiki_huka_info_cd_nm"));
				// 配送区分名
				subbean.sendMessageString(KKW03301SFConst.HAISO_DIV_NM_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("haiso_div_nm"));
				// 配送ステータス名
				subbean.sendMessageString(KKW03301SFConst.HAISO_STAT_NM_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("haiso_stat_nm"));
				// 伝票番号
				subbean.sendMessageString(KKW03301SFConst.DENPYO_NO_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("denpyo_no"));
				// 販売種別コード名
				subbean.sendMessageString(KKW03301SFConst.HAMBAI_SBT_CD_NM_15, X31CWebConst.DATABEAN_SET_VALUE, 
						(String)childMap.get("hambai_sbt_cd_nm"));
				// 管理場所識別コードにより、倉庫、棚情報を設定
				setKanriBasho(subbean, childMap);
				
				// お客様修理故障コード
				subbean.sendMessageString(KKW03301SFConst.CUST_SHURI_KOSHO_CD_15, X31CWebConst.DATABEAN_SET_VALUE, 
						(String)childMap.get("cust_shuri_kosho_cd_nm"));
				// 機器送料有無
				subbean.sendMessageString(KKW03301SFConst.KIKI_SORYO_UM_15, X31CWebConst.DATABEAN_SET_VALUE, 
								(String)childMap.get("kiki_soryo_um_nm"));
				// 機器送料作成年月日
				subbean.sendMessageString(KKW03301SFConst.KIKI_SORYO_SAKUSEI_YMD_15, X31CWebConst.DATABEAN_SET_VALUE, 
						(String)childMap.get("kiki_soryo_saksei_ymd"));
				// 一覧のスタイル制御
				if(i % 2 == 0)
				{
					subbean.sendMessageString(KKW03301SFConst.LIST_STYLE_15, X31CWebConst.DATABEAN_SET_VALUE, "odd");
				}
				else
				{
					subbean.sendMessageString(KKW03301SFConst.LIST_STYLE_15, X31CWebConst.DATABEAN_SET_VALUE, "even");
				}
				// 料金コースコード
				subbean.sendMessageString(KKW03301SFConst.PCRS_CD_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pcrs_cd_kktk"));
				// 世代登録年月日時分秒
				subbean.sendMessageString(KKW03301SFConst.GENE_ADD_DTM_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("gene_add_dtm"));
				
				// 異動区分
				subbean.sendMessageString(KKW03301SFConst.IDO_DIV_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("ido_div"));
				
				subbean.sendMessageString(KKW03301SFConst.KKTK_SVC_KEI_STAT_15, X31CWebConst.DATABEAN_SET_VALUE, 
						(String)childMap.get("kktk_svc_kei_stat"));
				// ▼▼▼ ANK-2415-00-00 2015-07-01 ADD START ▼▼▼
				subbean.sendMessageString(KKW03301SFConst.KKTK_SVC_KEI_STAT_NM_15, X31CWebConst.DATABEAN_SET_VALUE, 
						(String)childMap.get("kktk_svc_kei_stat_nm"));				
				// ▲▲▲ ANK-2415-00-00 2015-07-01 ADD END   ▲▲▲
				// 返品機器番号
				subbean.sendMessageString(KKW03301SFConst.HMPIN_KIKI_NO_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hmpin_kiki_no"));
				// 配送ステータス
				subbean.sendMessageString(KKW03301SFConst.HAISO_STAT_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("haiso_stat"));
				
				// 返却日
				subbean.sendMessageString(KKW03301SFConst.HENKYAKU_YMD_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hmpin_kuraire_ymd"));
				// 故障区分
				subbean.sendMessageString(KKW03301SFConst.TROUBLE_DIV_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cust_shuri_kosho_cd_nm"));
				// 機器変更番号
				subbean.sendMessageString(KKW03301SFConst.KIKI_CHG_NO_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kiki_chg_no"));
				// 配送番号
				subbean.sendMessageString(KKW03301SFConst.HAISO_NO_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("haiso_no"));

				// 宅内機器種別コード
				subbean.sendMessageString(KKW03301SFConst.TAKNKIKI_SBT_CD_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("taknkiki_sbt_cd"));
				// サービス契約内訳番号
				subbean.sendMessageString(KKW03301SFConst.SVC_KEI_UCWK_NO_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_ucwk_no"));

				// 機器提供サービスコード
				subbean.sendMessageString(KKW03301SFConst.KKTK_SVC_CD_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kktk_svc_cd"));
				// 登録SOD送信年月日
				subbean.sendMessageString(KKW03301SFConst.ADD_SOD_SEND_YMD_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("add_sod_send_ymd"));
				// 機器履歴情報コード
				subbean.sendMessageString(KKW03301SFConst.KIKI_RIREKI_INFO_CD_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kiki_rireki_info_cd"));
				
				/* ++++++++++ v10.00.00 追加開始 ++++++++++ */
				// 交換希望年月日
				subbean.sendMessageString(KKW03301SFConst.KOKANN_KIBOU_YMD_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kokann_kibou_ymd"));
				// 異動予約状態コード
				subbean.sendMessageString(KKW03301SFConst.IDO_RSV_STAT_CD_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("ido_rsv_stat_cd"));
				// 新機器変更番号
				subbean.sendMessageString(KKW03301SFConst.NEW_KIKI_CHG_NO_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("new_kiki_chg_no"));
				/* ++++++++++ v10.00.00 追加終了 ++++++++++ */
				// ▼▼▼ ANK-2415-00-00 2015-06-19 ADD START ▼▼▼
				subbean.sendMessageString(KKW03301SFConst.BTRYHOZN_NO_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("btryhozn_no"));
				// ▲▲▲ ANK-2415-00-00 2015-06-19 ADD END   ▲▲▲
			}
		}
		return bean;
	}
	/* ++++++++++ v7.00.03 追加終了 ++++++++++ */
	
	/**
	 * 下りマッピング
	 * @param bean　[0]：機器提供サービス契約登録情報
	 * @param outputMap
	 * @return bean
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV056202CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV056202CC"))
		{
			parentMap = (HashMap)outputMap.get("KKSV056202CC");
		}
		else
		{
			return bean;
		}
		ArrayList childList = null;
		X31SDataBeanAccessArray listKKSV026301SC_service_list_EKK0341B012CBSMsg1List = bean[0].getDataBeanArray(KKW03301SFConst.SERVICE_RIREKI_LIST);
		childList = null;
		if(parentMap.containsKey("EKKA0020003CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKKA0020003CBSMsg1List");
			
			/* ++++++++++ v5.01.01 変更開始 ++++++++++ */
			ArrayList<HashMap<String, Object>> idoList = (ArrayList)parentMap.get("idoList");
			/* ++++++++++ v5.01.01 変更完了 ++++++++++ */
			
			/* ++++++++++ v6.00.00 追加開始 ++++++++++ */
			ArrayList<HashMap<String, Object>> shukkaYmdList = (ArrayList)parentMap.get("shukkaYmdList");
			/* ++++++++++ v6.00.00 追加開始 ++++++++++ */
			
			X31SDataBeanAccess subbean = null;
			for (int i = 0; i < childList.size(); i++)
			{
				subbean = listKKSV026301SC_service_list_EKK0341B012CBSMsg1List.getDataBean(i);
				HashMap childMap = (HashMap)childList.get(i);
				// ＳＴＢ−ＩＤ
				if(childMap.get("stbid") != null && !"".equals((String)childMap.get("stbid")))
				{
					subbean.sendMessageString(KKW03301SFConst.STB_ID_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("stbid"));
				}
				// 仮鍵開け日
				if(childMap.get("kr_key_sta_ymd") != null && !"".equals((String)childMap.get("kr_key_sta_ymd")))
				{
					subbean.sendMessageString(KKW03301SFConst.KARI_KEY_OPEN_YMD_15, X31CWebConst.DATABEAN_SET_VALUE, 
							(String)childMap.get("kr_key_sta_ymd"));
				}
				// 仮鍵開け期間
				if(childMap.get("kr_key_sta_ymd") != null && !"".equals((String)childMap.get("kr_key_sta_ymd")))
				{
					subbean.sendMessageString(KKW03301SFConst.KARI_KEY_OPEN_PRD_15, X31CWebConst.DATABEAN_SET_VALUE, 
							JPCDateUtil.addDay((String)childMap.get("kr_key_sta_ymd"), 13));
				}
				// MACアドレス
				if(childMap.get("mac_ad") != null && !"".equals((String)childMap.get("mac_ad")))
				{
					subbean.sendMessageString(KKW03301SFConst.MACAD_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mac_ad"));
				}
				// MAC認証ID
				if(childMap.get("mac_ninsho_id") != null && !"".equals((String)childMap.get("mac_ninsho_id")))
				{
					subbean.sendMessageString(KKW03301SFConst.NINSHO_ID_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mac_ninsho_id"));
				}
				// ICCID
				if(childMap.get("icc_id") != null && !"".equals((String)childMap.get("icc_id")))
				{
					subbean.sendMessageString(KKW03301SFConst.ICC_ID_15, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("icc_id"));
				}
				
				/* ++++++++++ v5.01.01 変更開始 ++++++++++ */
				HashMap idoChildMap = (HashMap)idoList.get(i);
				// 登録時（一番古い）の異動区分を設定します。
				subbean.sendMessageString(KKW03301SFConst.IDO_DIV_15, X31CWebConst.DATABEAN_SET_VALUE, (String)idoChildMap.get("ido_div"));
				subbean.sendMessageString(KKW03301SFConst.IDO_DIV_NM_15, X31CWebConst.DATABEAN_SET_VALUE, (String)idoChildMap.get("cd_div_nm"));
				/* ++++++++++ v5.01.01 変更完了 ++++++++++ */
				
				/* ++++++++++ v6.00.00 追加開始 ++++++++++ */
				HashMap<String,Object> shukkaYmdInfoMap = (HashMap<String,Object>)shukkaYmdList.get(i);
				String shukka_ymd = getNullToStr((String)shukkaYmdInfoMap.get("shukka_ymd"));
				// 出荷年月日（引継元割賦契約番号から取得した出荷年月日）がある場合
				if (!"".equals(shukka_ymd))
				{
					subbean.sendMessageString(KKW03301SFConst.SHUKKA_YMD_15, X31CWebConst.DATABEAN_SET_VALUE, shukka_ymd);
				}
				/* ++++++++++ v6.00.00 追加開始 ++++++++++ */
			}
		}
		return bean;
	}
	
	/**
	 * 倉庫コード、倉庫名、棚コード、棚名を設定する
	 * @param subbean
	 * @param childMap
	 */
	private void setKanriBasho(X31SDataBeanAccess subbean, HashMap<String, Object> childMap)
	{
		// 機器指定時管理場所識別コードを取得
		String kariBashoSbtCd = getNullToStr((String)childMap.get("kiki_sti_ji_kriplace_skcd"));
		// 提供種別コードを取得
		String tkSbtCd = getNullToStr((String)childMap.get("kktk_sbt_cd"));
		
		// 提供種別コードが「持込」の場合
		if(TK_SBT_CODE_MOTIKOMI.equals(tkSbtCd))
		{
			// 全て空を設定
			setSokoTanaNm(subbean, childMap, "", "", "", "");
		}
		// 提供種別コードが「持込」以外の場合
		else
		{
			// 倉庫の場合
			if("".equals(kariBashoSbtCd) || KRIPLACE_SKCD_SOKO.equals(kariBashoSbtCd))
			{
				setSokoTanaNm(subbean, childMap, "kiki_hkat_shitei_soko_cd", "kiki_hkat_shitei_soko_nm", "kiki_hkat_shitei_skdn_cd",
						"kiki_hkat_shitei_skdn_nm");
			}
			// 工事会社の場合
			else if(KRIPLACE_SKCD_KOJI.equals(kariBashoSbtCd))
			{
				setSokoTanaNm(subbean, childMap, "kiki_sti_ji_kocomp_cd", "kiki_sti_ji_kocomp_cd_nm", "kiki_sti_ji_kocomp_slf_cd",
						"kiki_sti_ji_kocomp_slf_cd_nm");
			}
			// 預託オフィスの場合
			else if(KRIPLACE_SKCD_OFFICE.equals(kariBashoSbtCd))
			{
				setSokoTanaNm(subbean, childMap, "kiki_sti_ji_ytkskof_cd", "kiki_sti_ji_ytkskof_cd_nm", "kiki_sti_ji_ytkskof_slf_cd",
						"kiki_sti_ji_ytkskof_slf_cd_nm");
			}
			else
			{
				// 全て空を設定
				setSokoTanaNm(subbean, childMap, "", "", "", "");
			}
		}
	}
	
	/**
	 * 引数に対応した倉庫コード、倉庫名、棚コード、棚名の内容を設定する
	 * @param subbean 
	 * @param childMap 
	 * @param sokoCd 倉庫コードの取得先名称
	 * @param sokoNm 倉庫名の取得先名称
	 * @param tanaCd 棚コードの取得先名称
	 * @param tanaNm 棚名の取得先名称
	 */
	private void setSokoTanaNm(X31SDataBeanAccess subbean, HashMap<String, Object> childMap, String sokoCd, String sokoNm, String tanaCd,
			String tanaNm)
	{
		
		// 機器提供サービス契約一覧明細リスト.機器引当指定倉庫コードを設定
		if(sokoCd != null && !"".equals(sokoCd))
		{
			subbean.sendMessageString("機器引当指定倉庫コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get(sokoCd));
		}
		else
		{
			subbean.sendMessageString("機器引当指定倉庫コード", X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		
		// 機器提供サービス契約一覧明細リスト.倉庫名を設定
		if(sokoNm != null && !"".equals(sokoNm))
		{
			subbean.sendMessageString("倉庫名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get(sokoNm));
		}
		else
		{
			subbean.sendMessageString("倉庫名", X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		
		// 機器提供サービス契約一覧明細リスト.倉庫棚コードを設定
		if(tanaCd != null && !"".equals(tanaCd))
		{
			subbean.sendMessageString("倉庫棚コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get(tanaCd));
		}
		else
		{
			subbean.sendMessageString("倉庫棚コード", X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		
		// 機器提供サービス契約一覧明細リスト.機器引当指定倉庫棚名を設定
		if(tanaNm != null && !"".equals(tanaNm))
		{
			subbean.sendMessageString("機器引当指定倉庫棚名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get(tanaNm));
		}
		else
		{
			subbean.sendMessageString("機器引当指定倉庫棚名", X31CWebConst.DATABEAN_SET_VALUE, "");
		}
	}
	
	/**
	 * パラメタがNullの場合空白を返却します。
	 * @param str 文字列
	 * @return str
	 */
	private String getNullToStr(String str)
	{
		if(null == str)
		{
			return "";
		}
		return str.trim();
	}
	
	/* ++++++++++ v4.02.00 追加開始 ++++++++++ */
	/**
	 * 連携された日付が最大日付の場合、空白を返します。
	 * 
	 * @param ymd
	 * @return
	 */
	private String convertMaxYmd(String ymd)
	{
		if(MAX_YMD.equals(ymd))
		{
			// 最大日付の場合、空白を返却
			return "";
		}
		// 最大日付でない場合はそのまま返却
		return ymd;
	}
	/* ++++++++++ v4.02.00 追加完了 ++++++++++ */
}
