/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0155_KKSV0155OPDBMapper
*	ソースファイル名：KKSV0155_KKSV0155OPDBMapper.java
*	作成者			：FJ
*	日付			：2011年11月17日
*＜機能概要＞
*	BP（住所情報諸変更）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/11/17	FJ		新規作成
*   v18.00.00   2015/08/11  FJ) 松本    【ANK-2631-00-00】ワンストップ案件（ＳＴＥＰ１）※koptWebBからkoptWebAへコピー
**********************************************************************/
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.web.webview.KKA15801SF.KKW04801SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.commonOneStop.JKKCommonConst;
import eo.web.webview.commonOneStop.JKKWebCommon;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class KKSV0155_KKSV0155OPDBMapper {
	
	/**
	 * コンストラクタ
	 */
	public KKSV0155_KKSV0155OPDBMapper(){
	}
	


	/**
	 * 上りマッピングをする
	 * @param bean　[0]：住所情報変更画面　
	 * <dd>  　　　  [1]：カレントの住所情報変更画面.変更前利用場所住所情報
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param kksv0451Parm　住所情報変更申込明細一意照会にて取得した申込番号・申込明細番号
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKshAdChgKKSV015501CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, HashMap<String, Object> kksv0451Parm) {
		
		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);

		// 顧客契約引継リストの展開
		X31SDataBeanAccessArray arrayData = bean[0].getDataBeanArray(KKW04801SFConst.CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess custKeiHktugiBean = arrayData.getDataBean(0);

		// 住所情報変更申込明細一意照会結果の展開
		HashMap ekk0081Out = (HashMap)kksv0451Parm.get("KKSV045101SC");
		ArrayList ekk0081List = (ArrayList)ekk0081Out.get("EKK0081A010CBSMsg1List");
		HashMap ekk0081Map = (HashMap)ekk0081List.get(0);
		HashMap ekk0021Out = (HashMap)kksv0451Parm.get("KKSV045102SC");
		ArrayList ekk0021List = (ArrayList)ekk0021Out.get("EKK0021A010CBSMsg1List");
		HashMap ekk0021Map = (HashMap)ekk0021List.get(0);

		// "070:内容変更" → 工事案件CCマップ.工事受付コード
		parentMap.put("kojiUkCd", "070");
		// "A1:お客様情報変える" → 工事案件CCマップ.工事受付詳細コード
		parentMap.put("kojiUkDtlCd", "A1");
		// ＳＹＳＩＤ → 工事案件CCマップ.SYSID
		parentMap.put("sysid", custKeiHktugiBean.sendMessageString(KKW04801SFConst.SYSID_10, X31CWebConst.DATABEAN_GET_VALUE));
		// 申込番号
		parentMap.put("mskmNo", ekk0021Map.get("mskm_no"));
		// 申込明細番号
		parentMap.put("mskmDtlNo", ekk0081Map.get("mskm_dtl_no"));
		// サービス契約番号
		parentMap.put("svkeiNo", bean[1].sendMessageString(KKW04801SFConst.CHAF_SETPLACE_SVC_KEI_NO_03, X31CWebConst.DATABEAN_GET_VALUE));
		// 変更後_契約者住所_電話番号（携帯） → 工事案件CCマップ.お客様携帯電話番号
		parentMap.put("cust_ktai_tel_no", bean[0].sendMessageString(KKW04801SFConst.CHAF_KSH_TELNO_KTAI, X31CWebConst.DATABEAN_GET_VALUE));
		// 変更後_契約者住所_電話番号（勤務先） → 工事案件CCマップ.お客様連絡先電話番号
		parentMap.put("cust_rrks_tel_no", bean[0].sendMessageString(KKW04801SFConst.CHAF_KSH_TELNO_OFFC, X31CWebConst.DATABEAN_GET_VALUE));
		// 変更前_契約者住所_住所コード → 工事案件CCマップ.契約者住所コード
		parentMap.put("keisha_ad_cd", bean[0].sendMessageString(KKW04801SFConst.CHBF_KSH_AD_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// 変更前_契約者住所_郵便番号 → 工事案件CCマップ.契約者郵便番号
		parentMap.put("keisha_pcd", bean[0].sendMessageString(KKW04801SFConst.CHBF_KSH_PCD, X31CWebConst.DATABEAN_GET_VALUE));
		// 変更前_契約者住所_都道府県名 → 工事案件CCマップ.契約者都道府県名
		parentMap.put("keisha_state_nm", bean[0].sendMessageString(KKW04801SFConst.CHBF_KSH_STATE, X31CWebConst.DATABEAN_GET_VALUE));
		// 変更前_契約者住所_市区町村名 → 工事案件CCマップ.契約者市区町村名
		parentMap.put("keisha_city_nm", bean[0].sendMessageString(KKW04801SFConst.CHBF_KSH_CITY, X31CWebConst.DATABEAN_GET_VALUE));
		// 変更前_契約者住所_大字通称名 → 工事案件CCマップ.契約者大字通称名
		parentMap.put("keisha_oaztsu_nm", bean[0].sendMessageString(KKW04801SFConst.CHBF_KSH_OAZTSU, X31CWebConst.DATABEAN_GET_VALUE));
		// 変更前_契約者住所_字丁目名 → 工事案件CCマップ.契約者字丁目名
		parentMap.put("keisha_azcho_nm", bean[0].sendMessageString(KKW04801SFConst.CHBF_KSH_AZCHO, X31CWebConst.DATABEAN_GET_VALUE));
		// 変更前_契約者住所_番地号 → 工事案件CCマップ.契約者住所番地号
		parentMap.put("keisha_ad_bnchigo", bean[0].sendMessageString(KKW04801SFConst.CHBF_KSH_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE));
		// 変更前_契約者住所_住所補記・建物名 → 工事案件CCマップ.契約者住所補記・建物名
		parentMap.put("keisha_adrttm", bean[0].sendMessageString(KKW04801SFConst.CHBF_KSH_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE));
		// 変更前_契約者住所_住所補記・部屋番号 → 工事案件CCマップ.契約者住所補記・部屋番号
		parentMap.put("keisha_adrrm", bean[0].sendMessageString(KKW04801SFConst.CHBF_KSH_ADRRM, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(getBpEntryKeyKKSV015501CC(), parentMap);
						
		return outputMap;
	}


	/**
	 * 上りマッピングをする
	 * @param bean　[0]：住所情報変更画面　
	 * <dd>  　　　  [1]：カレントの住所情報変更画面.変更前利用場所住所情報
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param kksv0451Parm　住所情報変更申込明細一意照会にて取得した申込番号・申込明細番号
	 */
	@SuppressWarnings("unchecked")
	public HashMap setSetPlaceChgKKSV015501CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, HashMap<String, Object> kksv0451Parm) {

		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);

		// 顧客契約引継リストの展開
		X31SDataBeanAccessArray arrayData = bean[0].getDataBeanArray(KKW04801SFConst.CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess custKeiHktugiBean = arrayData.getDataBean(0);

		// 住所情報変更申込明細一意照会結果の展開
		HashMap ekk0081Out = (HashMap)kksv0451Parm.get("KKSV045101SC");
		ArrayList ekk0081List = (ArrayList)ekk0081Out.get("EKK0081A010CBSMsg1List");
		HashMap ekk0081Map = (HashMap)ekk0081List.get(0);
		HashMap ekk0021Out = (HashMap)kksv0451Parm.get("KKSV045102SC");
		ArrayList ekk0021List = (ArrayList)ekk0021Out.get("EKK0021A010CBSMsg1List");
		HashMap ekk0021Map = (HashMap)ekk0021List.get(0);

		// "070:内容変更" → 工事案件CCマップ.工事受付コード
		parentMap.put("kojiUkCd", "070");
		// "A4:回線情報変える" → 工事案件CCマップ.工事受付詳細コード
		parentMap.put("kojiUkDtlCd", "A4");
		// ＳＹＳＩＤ → 工事案件CCマップ.SYSID
		parentMap.put("sysid", custKeiHktugiBean.sendMessageString(KKW04801SFConst.SYSID_10, X31CWebConst.DATABEAN_GET_VALUE));
		// 申込番号
		parentMap.put("mskmNo", ekk0021Map.get("mskm_no"));
		// 申込明細番号
		parentMap.put("mskmDtlNo", ekk0081Map.get("mskm_dtl_no"));
		// 変更後_利用場所住所_サービス契約番号 → 工事案件CCマップ.サービス契約番号
		parentMap.put("svkeiNo", bean[0].sendMessageString(KKW04801SFConst.CHAF_SETPLACE_SVC_KEI_NO_03, X31CWebConst.DATABEAN_GET_VALUE));
		// 変更後_利用場所住所_住所コード → 工事案件CCマップ.設置場所住所コード
		parentMap.put("setplace_ad_cd", bean[1].sendMessageString(KKW04801SFConst.CHAF_SETPLACE_AD_CD_03, X31CWebConst.DATABEAN_GET_VALUE));
		// 変更後_利用場所住所_郵便番号 → 工事案件CCマップ.設置場所郵便番号
		parentMap.put("setplace_pcd", bean[1].sendMessageString(KKW04801SFConst.CHAF_SETPLACE_PCD_03, X31CWebConst.DATABEAN_GET_VALUE));
		// 変更後_利用場所住所_都道府県名 → 工事案件CCマップ.設置場所都道府県名
		parentMap.put("setplace_state_nm", bean[1].sendMessageString(KKW04801SFConst.CHAF_SETPLACE_STATE_03, X31CWebConst.DATABEAN_GET_VALUE));
		// 変更後_利用場所住所_市区町村名 → 工事案件CCマップ.設置場所市区町村名
		parentMap.put("setplace_city_nm", bean[1].sendMessageString(KKW04801SFConst.CHAF_SETPLACE_CITY_03, X31CWebConst.DATABEAN_GET_VALUE));
		// 変更後_利用場所住所_大字通称名 → 工事案件CCマップ.設置場所大字通称名
		parentMap.put("setplace_oaztsu_nm", bean[1].sendMessageString(KKW04801SFConst.CHAF_SETPLACE_OAZTSU_03, X31CWebConst.DATABEAN_GET_VALUE));
		// 変更後_利用場所住所_字丁目名 → 工事案件CCマップ.設置場所字丁目名
		parentMap.put("setplace_azcho_nm", bean[1].sendMessageString(KKW04801SFConst.CHAF_SETPLACE_AZCHO_03, X31CWebConst.DATABEAN_GET_VALUE));
		// 変更後_利用場所住所_番地号 → 工事案件CCマップ.設置場所住所番地号
		parentMap.put("setplace_ad_bnchigo", bean[1].sendMessageString(KKW04801SFConst.CHAF_SETPLACE_BNCHIGO_03, X31CWebConst.DATABEAN_GET_VALUE));
		// 変更後_利用場所住所_住所補記・建物名 → 工事案件CCマップ.設置場所住所補記・建物名
		parentMap.put("setplace_adrttm", bean[1].sendMessageString(KKW04801SFConst.CHAF_SETPLACE_ADRTTM_03, X31CWebConst.DATABEAN_GET_VALUE));
		// 変更後_利用場所住所_住所補記・部屋番号 → 工事案件CCマップ.設置場所住所補記・部屋番号
		parentMap.put("setplace_adrrm", bean[1].sendMessageString(KKW04801SFConst.CHAF_SETPLACE_ADRRM_03, X31CWebConst.DATABEAN_GET_VALUE));
		// 変更後_利用場所住所_未確定 → 工事案件CCマップ.工事先住所未確定フラグ
		parentMap.put("koji_saki_ad_mi_fix_flg", bean[1].sendMessageString(KKW04801SFConst.CHAF_SETPLACE_MI_FIX_03, X31CWebConst.DATABEAN_GET_VALUE));
		// 変更後_利用場所住所_電話番号 → 工事案件CCマップ.回線場所電話番号
		parentMap.put("kaisen_place_telno", bean[1].sendMessageString(KKW04801SFConst.CHAF_SETPLACE_TELNO_03, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(getBpEntryKeyKKSV015501CC(), parentMap);
						
		return outputMap;
	}


	/**
	 * 上りマッピングをする
	 * @param bean　[0]：住所情報変更画面　
	 * <dd>  　　　  [1]：カレントの変更後_請求書送付先住所_請求書送付先住所一覧
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param kksv0451Parm　住所情報変更申込明細一意照会にて取得した申込番号・申込明細番号
	 */
	@SuppressWarnings("unchecked")
	public HashMap setSeikyShsChgKKSV015501CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, HashMap<String, Object> kksv0451Parm) {
		
		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);

		// 顧客契約引継リストの展開
		X31SDataBeanAccessArray arrayData = bean[0].getDataBeanArray(KKW04801SFConst.CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess custKeiHktugiBean = arrayData.getDataBean(0);

		// 住所情報変更申込明細一意照会結果の展開
		HashMap ekk0081Out = (HashMap)kksv0451Parm.get("KKSV045101SC");
		ArrayList ekk0081List = (ArrayList)ekk0081Out.get("EKK0081A010CBSMsg1List");
		HashMap ekk0081Map = (HashMap)ekk0081List.get(0);
		HashMap ekk0021Out = (HashMap)kksv0451Parm.get("KKSV045102SC");
		ArrayList ekk0021List = (ArrayList)ekk0021Out.get("EKK0021A010CBSMsg1List");
		HashMap ekk0021Map = (HashMap)ekk0021List.get(0);

		// "070:内容変更" → 工事案件CCマップ.工事受付コード
//		parentMap.put("kojiUkCd", "070");
		parentMap.put("koji_uk_cd", "070");
		// "A8:請求先情報変える" → 工事案件CCマップ.工事受付詳細コード
//		parentMap.put("kojiUkDtlCd", "A8");
		parentMap.put("koji_uk_dtl_cd", "A8");
		// ＳＹＳＩＤ → 工事案件CCマップ.SYSID
		parentMap.put("sysid", custKeiHktugiBean.sendMessageString(KKW04801SFConst.SYSID_10, X31CWebConst.DATABEAN_GET_VALUE));
		// 申込番号
//		parentMap.put("mskmNo", ekk0021Map.get("mskm_no"));
		parentMap.put("mskm_no", ekk0021Map.get("mskm_no"));
		// 申込明細番号
//		parentMap.put("mskmDtlNo", ekk0081Map.get("mskm_dtl_no"));
		parentMap.put("mskm_dtl_no", ekk0081Map.get("mskm_dtl_no"));
		// 変更後_送付先住所_サービス契約番号 → 工事案件CCマップ.サービス契約番号
//		parentMap.put("svkeiNo", bean[1].sendMessageString(KKW04801SFConst.CHAF_SEIKY_SVC_KEI_NO_05, X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("svc_kei_no", bean[1].sendMessageString(KKW04801SFConst.CHAF_SEIKY_SVC_KEI_NO_05, X31CWebConst.DATABEAN_GET_VALUE));
		// 変更後_送付先住所_請求契約番号 → 工事案件CCマップ.請求契約番号
		parentMap.put("seiky_kei_no", bean[1].sendMessageString(KKW04801SFConst.CHAF_SEIKY_KEI_NO_05, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(getBpEntryKeyKKSV015501CC(), parentMap);
						
		return outputMap;
	}


	/**
	 * 下りマッピング
	 * @param bean　[0]：住所情報変更画面　
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV015501CC(X31SDataBeanAccess[] bean, HashMap outputMap){
		return bean;
	}


	/**
	 * 上りマッピングをする
	 * @param bean　[0]：住所情報変更画面　
	 * <dd>  　　　  [1]：カレントの住所情報変更画面.変更前利用場所住所情報
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param kksv0451Parm　住所情報変更申込明細一意照会にて取得した申込番号・申込明細番号
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKshAdChgKKSV015502SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, HashMap<String, Object> kksv0451Parm) {
		
		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);

		// 顧客契約引継リストの展開
		X31SDataBeanAccessArray arrayData = bean[0].getDataBeanArray(KKW04801SFConst.CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess custKeiHktugiBean = arrayData.getDataBean(0);

		// 住所情報変更申込明細一意照会結果の展開
		HashMap ekk0081Out = (HashMap)kksv0451Parm.get("KKSV045101SC");
		ArrayList ekk0081List = (ArrayList)ekk0081Out.get("EKK0081A010CBSMsg1List");
		HashMap ekk0081Map = (HashMap)ekk0081List.get(0);

		// 申込明細番号 → 進捗登録マップ.申込明細番号
		parentMap.put("mskmDtlNo", ekk0081Map.get("mskm_dtl_no"));
		// サービス契約番号 → 進捗登録マップ.サービス契約番号
		parentMap.put("svkeiNo", bean[1].sendMessageString(KKW04801SFConst.CHAF_SETPLACE_SVC_KEI_NO_03, X31CWebConst.DATABEAN_GET_VALUE));
		// 顧客契約引継リスト.異動区分 → 進捗登録マップ.異動区分
		parentMap.put("ido_div", custKeiHktugiBean.sendMessageString(KKW04801SFConst.IDO_DIV_10, X31CWebConst.DATABEAN_GET_VALUE));
		// システム日付(YYYYMMDDhhmmssSSS形式)  → 進捗登録マップ.異動年月日時分秒
		parentMap.put("ido_dtm", JCCWebCommon.getSysDateTimeStamp());
		// 進捗ステータス(工事先住所変更)  → 進捗登録マップ.進捗ステータス
		parentMap.put("prg_stat", JKKCommonConst.PRG_STAT_CD_E030);

		/** 異動理由明細の生成 */
		ArrayList<HashMap<String, Object>> EKK1091D010CBSMsg1List = new ArrayList<HashMap<String, Object>>();

		// 異動理由コードの設定数だけ繰り返し
		Integer maxIndex = (Integer)custKeiHktugiBean.sendMessage(KKW04801SFConst.IDO_RSN_CD_10, X31CWebConst.DATABEAN_GET_COUNT);
		for (int i=0; i<maxIndex; i++)
		{
			HashMap<String, Object> ido_rsn_map = new HashMap<String, Object>();

			// 異動理由コードを異動理由明細設定用マップに登録
			ido_rsn_map.put("ido_rsn_cd", custKeiHktugiBean.sendMessageString(KKW04801SFConst.IDO_RSN_CD_10, X31CWebConst.DATABEAN_GET_VALUE, i));
			// ▼▼▼ 異動区分選択の引継ぎ項目追加対応（異動理由メモ） START ▼▼▼
			ido_rsn_map.put( "ido_rsn_memo", custKeiHktugiBean.sendMessageString(KKW04801SFConst.IDO_RSN_MEMO_10, X31CWebConst.DATABEAN_GET_VALUE) );
			// ▲▲▲ 異動区分選択の引継ぎ項目追加対応（異動理由メモ） END ▲▲▲
			// 異動理由明細へマップを登録
			EKK1091D010CBSMsg1List.add(ido_rsn_map);
		}

		// １件以上マップが登録されている場合、parentMapへ登録
		if(EKK1091D010CBSMsg1List.size() > 0)
		{
			parentMap.put("EKK1091D010CBSMsg1List", EKK1091D010CBSMsg1List);
		}


		outputMap.put(getBpEntryKeyKKSV015502SC(), parentMap);
						
		return outputMap;
	}


	/**
	 * 上りマッピングをする
	 * @param bean　[0]：住所情報変更画面　
	 * <dd>  　　　  [1]：カレントの住所情報変更画面.変更前利用場所住所情報
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param kksv0451Parm　住所情報変更申込明細一意照会にて取得した申込番号・申込明細番号
	 */
	@SuppressWarnings("unchecked")
	public HashMap setSetPlaceChgKKSV015502SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, HashMap<String, Object> kksv0451Parm) {
		
		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);


		// 顧客契約引継リストの展開
		X31SDataBeanAccessArray arrayData = bean[0].getDataBeanArray(KKW04801SFConst.CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess custKeiHktugiBean = arrayData.getDataBean(0);

		// 住所情報変更申込明細一意照会結果の展開
		HashMap ekk0081Out = (HashMap)kksv0451Parm.get("KKSV045101SC");
		ArrayList ekk0081List = (ArrayList)ekk0081Out.get("EKK0081A010CBSMsg1List");
		HashMap ekk0081Map = (HashMap)ekk0081List.get(0);

		// 申込明細番号 → 進捗登録マップ.申込明細番号
		parentMap.put("mskmDtlNo", ekk0081Map.get("mskm_dtl_no"));
		// 変更後_利用場所住所_サービス契約番号 → 進捗登録マップ.サービス契約番号
		parentMap.put("svc_kei_no", bean[1].sendMessageString(KKW04801SFConst.CHAF_SETPLACE_SVC_KEI_NO_03, X31CWebConst.DATABEAN_GET_VALUE));
		// 変更後_利用場所住所_サービス契約回線内訳番号 → 進捗登録マップ.サービス契約回線内訳番号
		parentMap.put("svc_kei_kaisen_ucwk_no", bean[1].sendMessageString(KKW04801SFConst.CHAF_SETPLACE_SVC_KEI_KAISEN_UCWK_NO_03, X31CWebConst.DATABEAN_GET_VALUE));
		// 顧客契約引継リスト.異動区分 → 進捗登録マップ.異動区分
		parentMap.put("ido_div", custKeiHktugiBean.sendMessageString(KKW04801SFConst.IDO_DIV_10, X31CWebConst.DATABEAN_GET_VALUE));
		// システム日付(YYYYMMDDhhmmssSSS形式)  → 進捗登録マップ.異動年月日時分秒
		parentMap.put("ido_dtm", JCCWebCommon.getSysDateTimeStamp());
		// 進捗ステータス(工事先住所変更)  → 進捗登録マップ.進捗ステータス
		parentMap.put("prg_stat", JKKCommonConst.PRG_STAT_CD_E030);

		/** 異動理由明細の生成 */
		ArrayList<HashMap<String, Object>> EKK1091D010CBSMsg1List = new ArrayList<HashMap<String, Object>>();

		// 異動理由コードの設定数だけ繰り返し
		Integer maxIndex = (Integer)custKeiHktugiBean.sendMessage(KKW04801SFConst.IDO_RSN_CD_10, X31CWebConst.DATABEAN_GET_COUNT);
		for (int i=0; i<maxIndex; i++)
		{
			HashMap<String, Object> ido_rsn_map = new HashMap<String, Object>();

			// 異動理由コードを異動理由明細設定用マップに登録
			ido_rsn_map.put("ido_rsn_cd", custKeiHktugiBean.sendMessageString(KKW04801SFConst.IDO_RSN_CD_10, X31CWebConst.DATABEAN_GET_VALUE, i));

			// 異動理由明細へマップを登録
			EKK1091D010CBSMsg1List.add(ido_rsn_map);
			// ▼▼▼ 異動区分選択の引継ぎ項目追加対応（異動理由メモ） START ▼▼▼
			ido_rsn_map.put( "ido_rsn_memo", custKeiHktugiBean.sendMessageString(KKW04801SFConst.IDO_RSN_MEMO_10, X31CWebConst.DATABEAN_GET_VALUE) );
			// ▲▲▲ 異動区分選択の引継ぎ項目追加対応（異動理由メモ） END ▲▲▲
			// 異動理由明細へマップを登録
		}

		// １件以上マップが登録されている場合、parentMapへ登録
		if(EKK1091D010CBSMsg1List.size() > 0)
		{
			parentMap.put("EKK1091D010CBSMsg1List", EKK1091D010CBSMsg1List);
		}


		outputMap.put(getBpEntryKeyKKSV015502SC(), parentMap);
						
		return outputMap;
	}


	/**
	 * 上りマッピングをする
	 * @param bean　[0]：住所情報変更画面　
	 * <dd>  　　　  [1]：カレントの変更後_請求書送付先住所_請求書送付先住所一覧
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param kksv0451Parm　住所情報変更申込明細一意照会にて取得した申込番号・申込明細番号
	 */
	@SuppressWarnings("unchecked")
	public HashMap setSeikyShsChgKKSV015502SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, HashMap<String, Object> kksv0451Parm) {
		
		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);


		// 顧客契約引継リストの展開
		X31SDataBeanAccessArray arrayData = bean[0].getDataBeanArray(KKW04801SFConst.CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess custKeiHktugiBean = arrayData.getDataBean(0);

		// 住所情報変更申込明細一意照会結果の展開
		HashMap ekk0081Out = (HashMap)kksv0451Parm.get("KKSV045101SC");
		ArrayList ekk0081List = (ArrayList)ekk0081Out.get("EKK0081A010CBSMsg1List");
		HashMap ekk0081Map = (HashMap)ekk0081List.get(0);

		// 申込明細番号 → 進捗登録マップ.申込明細番号
		parentMap.put("mskmDtlNo", ekk0081Map.get("mskm_dtl_no"));
		// 変更後_送付先住所_請求契約番号 → 進捗登録マップ.請求契約番号
		parentMap.put("seiky_kei_no", bean[1].sendMessageString(KKW04801SFConst.CHAF_SEIKY_KEI_NO_05, X31CWebConst.DATABEAN_GET_VALUE));
		// 変更後_送付先住所_サービス契約番号 → 進捗登録マップ.サービス契約番号
		parentMap.put("svc_kei_no", bean[1].sendMessageString(KKW04801SFConst.CHAF_SEIKY_SVC_KEI_NO_05, X31CWebConst.DATABEAN_GET_VALUE));
		// null → 進捗登録マップ.サービス契約回線内訳番号
		parentMap.put("svc_kei_kaisen_ucwk_no", null);
		// 顧客契約引継リスト.異動区分 → 進捗登録マップ.異動区分
		parentMap.put("ido_div", custKeiHktugiBean.sendMessageString(KKW04801SFConst.IDO_DIV_10, X31CWebConst.DATABEAN_GET_VALUE));
		// システム日付(YYYYMMDDhhmmssSSS形式)  → 進捗登録マップ.異動年月日時分秒
		parentMap.put("ido_dtm", JCCWebCommon.getSysDateTimeStamp());
		// 進捗ステータス(工事先住所変更)  → 進捗登録マップ.進捗ステータス
		parentMap.put("prg_stat", JKKCommonConst.PRG_STAT_CD_E030);

		/** 異動理由明細の生成 */
		ArrayList<HashMap<String, Object>> EKK1091D010CBSMsg1List = new ArrayList<HashMap<String, Object>>();

		// 異動理由コードの設定数だけ繰り返し
		Integer maxIndex = (Integer)custKeiHktugiBean.sendMessage(KKW04801SFConst.IDO_RSN_CD_10, X31CWebConst.DATABEAN_GET_COUNT);
		for (int i=0; i<maxIndex; i++)
		{
			HashMap<String, Object> ido_rsn_map = new HashMap<String, Object>();

			// 異動理由コードを異動理由明細設定用マップに登録
			ido_rsn_map.put("ido_rsn_cd", custKeiHktugiBean.sendMessageString(KKW04801SFConst.IDO_RSN_CD_10, X31CWebConst.DATABEAN_GET_VALUE, i));
			// ▼▼▼ 異動区分選択の引継ぎ項目追加対応（異動理由メモ） START ▼▼▼
			ido_rsn_map.put( "ido_rsn_memo", custKeiHktugiBean.sendMessageString(KKW04801SFConst.IDO_RSN_MEMO_10, X31CWebConst.DATABEAN_GET_VALUE) );
			// ▲▲▲ 異動区分選択の引継ぎ項目追加対応（異動理由メモ） END ▲▲▲
			// 異動理由明細へマップを登録

			// 異動理由明細へマップを登録
			EKK1091D010CBSMsg1List.add(ido_rsn_map);
		}

		// １件以上マップが登録されている場合、parentMapへ登録
		if(EKK1091D010CBSMsg1List.size() > 0)
		{
			parentMap.put("EKK1091D010CBSMsg1List", EKK1091D010CBSMsg1List);
		}


		outputMap.put(getBpEntryKeyKKSV015502SC(), parentMap);
						
		return outputMap;
	}


	/**
	 * 下りマッピング
	 * @param bean　[0]：住所情報変更画面　
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV015502SC(X31SDataBeanAccess[] bean, HashMap outputMap){
		return bean;
	}


	/**
	 * 工事案件CC 対BPマッピング エントリキー取得
	 * @return 工事案件CC 対BPマッピング時のエントリキー
	 */
	public String getBpEntryKeyKKSV015501CC(){
		return "KKSV015501CC";
	}


	/**
	 * 進捗登録SC 対BPマッピング エントリキー取得
	 * @return 進捗登録SC 対BPマッピング時のエントリキー
	 */
	public String getBpEntryKeyKKSV015502SC(){
		return "KKSV015502SC";
	}


}
