/********************************************************************
 *  All Rights reserved,Copyright (c) K-Opticom
 ********************************************************************
 *＜プログラム内容＞
 *  システム名      ：eo顧客基幹システム
 *  モジュール名    ：機器提供サービス（回線）登録・引継コンポーネント部品クラス
 *  ソースファイル名：JKKKktkSvcRelateKaisenAddandHktgCC.java
 *  作成者          ：FJ
 *  日付            ：2012年8月29日
 *＜機能概要＞
 *  住所変更に伴う回線に紐づく機器提供サービスの
 *  登録・引継を行う部品クラス。
 *＜修正履歴＞
 *  バージョン  修正日      修正者      修正内容
 *  v1.00.00    2012/8/29   FJ          新規作成
 *  v8.00.00    2014/04/20  星野        OM-2014-0000041対応 
 * v10.00.00    2014/06/04  藤田        ANK-2112-00-00 残置対応
 * v41.00.00	2019/01/30  FJ)澤田	    ANK-3387-00-00 マンションタイプ光コンセントサービス導入
 * v41.00.01    2019/01/25  FJ)澤田    IT1-2019-0000040 マンションタイプ光コンセントサービス導入　転居先に多機能ルーターが配送されない
 * v60.00.00	2022/08/05	FJ)平野		【IT1-2022-0000054】工事スキップのマンションで機器がお客様直送されない
 * v61.00.00	2023/01/04  FJ)澤田	   【ANK-4315-00-00】【eo定期】 eoホームゲートウェイ導入対応
 ********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.bp.custom.constant.JKKAdchgConstCC;
import com.fujitsu.futurity.bp.custom.constant.JKKKojiAnkenConstCC;
import com.fujitsu.futurity.bp.custom.constant.JKKSvcConst;
import com.fujitsu.futurity.bp.custom.constant.KKSV0098_KKSV0098OP;
import com.fujitsu.futurity.bp.x21.bpm.ServiceComponentRequestInvoker;
import com.fujitsu.futurity.bp.x21.bpm.db.SessionHandle;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.bp.x21.cc.AbstractCommonComponent;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.sun.enterprise.tools.common.util.StringUtils;

import eo.common.util.JKKStringUtil;
import eo.ejb.cbs.cbsmsg.EDK0301B060CBSMsg;
import eo.ejb.cbs.cbsmsg.EDK0301B060CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0021A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0251A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0341A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0341B002CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0341B504CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0341C030CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341C191CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341C200CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341C220CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341C320CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341C340CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341C350CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341C380CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341C530CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1681B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1681B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKKA0020002CBSMsg;
import eo.ejb.cbs.cbsmsg.EKKA0020002CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKKA0020002CBSMsg2List;

/**
 * 機器提供サービス（回線）登録・引継コンポーネント部品クラス.
 * <br>
 * @author FJ
 */
public class JKKKktkSvcRelateKaisenAddandHktgCC extends AbstractCommonComponent {

	/** セッションハンドル保持域 */
	private static ThreadLocal<SessionHandle> keepSesHandle = new ThreadLocal<SessionHandle>()
	{
		// 保持域への設定はinitialValue()ではなくset()を使用する為、
		// initialValue()は実装しない
	};
	// ANK-3387-00-00 ADD START
	/** 倉庫コード（固定/大阪みなとロジシスセンター） */
	private static final String SOKO_CD_000001 = "000001";
	// ANK-3387-00-00 ADD END
	/**
	 * コンストラクタ.
	 * <br>
	 */
	public JKKKktkSvcRelateKaisenAddandHktgCC() {
	}
	

	/**
	 * 機器提供サービス（回線）登録・引継
	 * <br>
	 * @param   handle     セッションマネージャなどを持ったハンドル情報
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   fixedText  ユーザ任意文字列
	 * @throws  Throwable  例外が発生した場合
	 * @return  リクエストパラメータ(param)に戻り値を追加して返却する
	 */
	public IRequestParameterReadWrite kktkSvcRelateKaisenAddandHktg(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Throwable {

		try {

			/** 事前準備 */
			HashMap<String, Object> paramMap = (HashMap<String, Object>)param.getData(fixedText);

			/** リソース保持 */
			// セッションハンドルをローカル変数に保持
			keepSesHandle.set(handle);

			// 住所変更登録コモンコンポーネントマッピングクラスインスタンス
			JKKAdchgMapperCC mapper = JKKAdchgMapperCC.getInstance();
			// SCリクエストInvoker
			ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

			// サービス契約変更区分
			String svc_chg_div_nt = (String) paramMap.get("jdg_net_use_svc_chg_div");
			String svc_chg_div_tl = (String) paramMap.get("jdg_tel_use_svc_chg_div");
			String svc_chg_div_tv = (String) paramMap.get("jdg_tv_use_svc_chg_div");

			// 処理済判定 : ONU
			boolean end_flg_onu = false;
			// 処理済判定 : V-ONU
			boolean end_flg_vonu = false;
			// 不要判定 : ONU
			boolean huyo_flg = false;
// IT2-2013-000XXXX対応 20130201 星野 ADD START
			// 不要判定 : V-ONU
			boolean huyo_flg_vonu = false;
// IT2-2013-000XXXX対応 20130201 星野 ADD END

			// 移転先＿マンション物件コード
			String itens_mansion_bukken_cd = (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_MANSION_BUKKEN_CD);
			// 移転先＿回線コード
			String itens_kaisen_cd = (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_KAISEN_CD);
			// ANK-3387-00-00 ADD START
			// 移転先＿回線コード
			String tk_hoshiki_ptn_cd_net_saki = (String) paramMap.get(JKKAdchgConstCC.PARAM_TK_HOSHIKI_PTN_CD_NET_SAKI);
			// ANK-3387-00-00 ADD END
			// IT1-2022-0000054 ADD START
			// 工事範囲コード
			String itensKojiScopeCd = (String) paramMap.get(JKKAdchgConstCC.ITENS_KOJI_SCOPE_CD);
			// IT1-2022-0000054 ADD END
			if (JKKAdchgConstCC.MANSION_BUKKEN_CD_MANSION.equals(itens_mansion_bukken_cd) && !JKKAdchgConstCC.KAISEN_CD_HAISEN.equals(itens_kaisen_cd)) {
				
				// 移転先がマンションかつ回線が光配線でない場合には転居先には不要
				huyo_flg = true;
			}
// IT2-2013-000XXXX対応 20130201 星野 ADD START
			if (JKKAdchgConstCC.MANSION_BUKKEN_CD_MANSION.equals(itens_mansion_bukken_cd)) {
				
				// 移転先がマンションの場合には転居先には不要
				huyo_flg_vonu = true;
			}
// IT2-2013-000XXXX対応 20130201 星野 ADD END

// ST1-2013-0000272対応 20130204 星野 ADD START
			// 住所変更物流CC連携用リスト
			ArrayList<HashMap> buturyu_trgt_map_list = new ArrayList<HashMap>();
// ST1-2013-0000272対応 20130204 星野 ADD END
			// 対象機器リスト
			ArrayList<HashMap<String, Object>> trgt_list = (ArrayList<HashMap<String, Object>>)(paramMap.get(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_LIST_KKTK_SVC_KEI));
			for (HashMap<String, Object> trgt_map : trgt_list) {

				if (StringUtils.isEmpty((String) trgt_map.get(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHG_TG_KEI_NO))) {
					// B-CAS, C-CASの場合, 機器提供サービス番号がパラメータとしてないため一意照会しない
					continue;
				}

				// EKK0341A010_機器提供サービス契約一意照会
				HashMap<String, Object> kk0341_a010_map = getEKK0341A010(param, mapper, fixedText, scCall, 
						(String) trgt_map.get(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHG_TG_KEI_NO), JKKAdchgConstCC.DEFAULT_RSV_APLY_YMD);

				// 親契約識別コードより転居元のサービス契約を取得する
				HashMap<String, Object> kk0081_a010_map = itenmSvcKei(param, fixedText, kk0341_a010_map);
				// 親契約識別コードより転居先のサービス契約を取得する
				HashMap<String, Object> kk0081_a010_map_new = itensSvcKei(param, fixedText, kk0341_a010_map);

				// 機器種別
				String kiki_sbt_cd = (String) kk0341_a010_map.get(EKK0341A010CBSMsg1List.TAKNKIKI_SBT_CD);
				
					
				// 宅内機器種別がONU・V-ONU・VDSLモデム・スプリッタ・インラインフィルタの場合処理継続
				if (JKKAdchgConstCC.TAKNKIKI_SBT.CODE_D0.equals(kiki_sbt_cd)
							|| JKKAdchgConstCC.TAKNKIKI_SBT.CODE_E0.equals(kiki_sbt_cd)
// IT1-2013-000XXXX対応 20130506 星野 ADD START
							|| JKKAdchgConstCC.TAKNKIKI_SBT.CODE_60.equals(kiki_sbt_cd)
							|| JKKAdchgConstCC.TAKNKIKI_SBT.CODE_70.equals(kiki_sbt_cd)
							|| JKKAdchgConstCC.TAKNKIKI_SBT.CODE_90.equals(kiki_sbt_cd)
				// ANK-4315-00-00 ADD START
							|| JKKAdchgConstCC.TAKNKIKI_SBT.CODE_S0.equals(kiki_sbt_cd)
				// ANK-4315-00-00 ADD END
// IT1-2013-000XXXX対応 20130506 星野 ADD END
				) {
					
					/** 残置対応 */
					// 撤去種別
					String svc_tk_sbt_div = (String) trgt_map.get(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_TKKIKI_TEKKYO_SBT_CD);
					if (JKKAdchgConstCC.CD00851_ZANCHI.equals(svc_tk_sbt_div)) {
						// ANK-2112-00-00 残置対応 20140604 藤田 MOD START
//						// 残置の場合
//						continue;
						// ONU、モデム、V-ONUは処理対象とし、以降の処理を行う。
						if (!(JKKAdchgConstCC.TAKNKIKI_SBT.CODE_D0.equals(kiki_sbt_cd)
						// ANK-4315-00-00 ADD START
						|| JKKAdchgConstCC.TAKNKIKI_SBT.CODE_S0.equals(kiki_sbt_cd)
						// ANK-4315-00-00 ADD END
						 || JKKAdchgConstCC.TAKNKIKI_SBT.CODE_60.equals(kiki_sbt_cd)
						 || JKKAdchgConstCC.TAKNKIKI_SBT.CODE_E0.equals(kiki_sbt_cd)))
						{
							// スプリッタ・インラインフィルタは何もしない
							continue;
						}
						// ANK-2112-00-00 残置対応 20140604 藤田 MOD END
					}
					
					/** 解約対象判定 */
					boolean delFlg = false;
					// ONUの場合
					if (JKKAdchgConstCC.TAKNKIKI_SBT.CODE_D0.equals(kiki_sbt_cd)
						// ANK-4315-00-00 ADD START
						||	JKKAdchgConstCC.TAKNKIKI_SBT.CODE_S0.equals(kiki_sbt_cd)
						// ANK-4315-00-00 ADD END
					) {
						
						// 移転先にネット/電話の契約がどちらもない場合
						if(!itensSvkeiUm(svc_chg_div_nt) && !itensSvkeiUm(svc_chg_div_tl)){
							
							// 解約ＣＣにて処理するため、ここでは解約対象外
							// 引継ぎも実施しないため、処理対象外とする
// IT2-2012-0002019対応 20121211 星野 MOD START
//							delFlg = false;
							continue;
// IT2-2012-0002019対応 20121211 星野 MOD END
						
						// 移転先がマンションかつ光配線以外ならば解約対象とする
						}else if (JKKAdchgConstCC.MANSION_BUKKEN_CD_MANSION.equals(itens_mansion_bukken_cd) 
								&& !JKKAdchgConstCC.KAISEN_CD_HAISEN.equals(itens_kaisen_cd)) {
							
							delFlg = true;
							
						} 
						// ANK-2112-00-00 残置対応 20140604 藤田 ADD START
						// 残置も処理対象とする
						else if (JKKAdchgConstCC.CD00851_ZANCHI.equals(svc_tk_sbt_div))
						{
							delFlg = true;
						}
						// ANK-2112-00-00 残置対応 20140604 藤田 ADD END
						// ANK-4315-00-00 ADD START
						//ONU交換も処理対象とする
						else if (JKKAdchgConstCC.TAKNKIKI_SBT.CODE_S0.equals(kiki_sbt_cd) &&
								JKKAdchgConstCC.CD00851_KOKAN_ONU.equals(svc_tk_sbt_div))
						{
							delFlg = true;
						}
						// ANK-4315-00-00 ADD END
						
					// V-ONUの場合
					} else if (JKKAdchgConstCC.TAKNKIKI_SBT.CODE_E0.equals(kiki_sbt_cd)) {
						
						// 移転先にTVの契約が無い場合
						if( !itensSvkeiUm(svc_chg_div_tv) ){
							
							// 解約ＣＣにて処理するため、ここでは解約対象外
							// 引継ぎも実施しないため、処理対象外とする
// IT2-2012-0002019対応 20121211 星野 MOD START
//							delFlg = false;
							continue;
// IT2-2012-0002019対応 20121211 星野 MOD END
							
						// 移転先がマンションならば解約対象とする
						}else if (JKKAdchgConstCC.MANSION_BUKKEN_CD_MANSION.equals(itens_mansion_bukken_cd)) {
							
							delFlg = true;
							
						}
						// ANK-2112-00-00 残置対応 20140604 藤田 ADD START
						// 残置も処理対象とする
						else if (JKKAdchgConstCC.CD00851_ZANCHI.equals(svc_tk_sbt_div))
						{
							delFlg = true;
						}
						// ANK-2112-00-00 残置対応 20140604 藤田 ADD END
					// VDSLモデム・スプリッタ・インラインフィルタの場合
					} else if (JKKAdchgConstCC.TAKNKIKI_SBT.CODE_60.equals(kiki_sbt_cd)
// IT1-2013-000XXXX対応 20130506 星野 ADD START
							|| JKKAdchgConstCC.TAKNKIKI_SBT.CODE_70.equals(kiki_sbt_cd)
							|| JKKAdchgConstCC.TAKNKIKI_SBT.CODE_90.equals(kiki_sbt_cd)
// IT1-2013-000XXXX対応 20130506 星野 ADD END
					) {
						
// IT1-2013-000XXXX対応 20130506 星野 MOD START
//						if (JKKAdchgConstCC.CD00851_KEEP.equals(svc_tk_sbt_div)) {
//							// 引継ぎの場合は処理を行わない
//							continue;
//						}
//						delFlg = true;
						
						if (JKKAdchgConstCC.CD00851_SLRE.equals(svc_tk_sbt_div) || JKKAdchgConstCC.CD00851_TEKKYO.equals(svc_tk_sbt_div)) {
							delFlg = true;
						// ANK-2112-00-00 残置対応 20140604 藤田 MOD START
						} else if (JKKAdchgConstCC.CD00851_ZANCHI.equals(svc_tk_sbt_div)
									&& JKKAdchgConstCC.TAKNKIKI_SBT.CODE_60.equals(kiki_sbt_cd))
						{
							// VDSLモデムは残置も処理対象とする
							delFlg = true;
						// ANK-2112-00-00 残置対応 20140604 藤田 MOD END
						}else{
							// 撤去・解約・残置（モデム）以外は処理対象外
							// 引継処理は各個別処理にて対応済み
							continue;
						}
// IT1-2013-000XXXX対応 20130506 星野 MOD END
					}
					
					
					/** 解約対象の場合 */
					if (delFlg) {

						// 保留の考慮追加
						// ANK-2112-00-00 残置対応 20140604 藤田 MOD START
						// ONU・HGWのみ対象外としていたところにモデムも追加
//						if (JKKAdchgConstCC.TAKNKIKI_SBT.CODE_D0.equals(kiki_sbt_cd) && (isSvkeiHold(svc_chg_div_nt) || isSvkeiHold(svc_chg_div_tl))) {
						if ((JKKAdchgConstCC.TAKNKIKI_SBT.CODE_D0.equals(kiki_sbt_cd)
								|| JKKAdchgConstCC.TAKNKIKI_SBT.CODE_60.equals(kiki_sbt_cd)
								// ANK-4315-00-00 ADD START
								|| JKKAdchgConstCC.TAKNKIKI_SBT.CODE_S0.equals(kiki_sbt_cd)
								// ANK-4315-00-00 ADD END
						)
							&& (isSvkeiHold(svc_chg_div_nt) || isSvkeiHold(svc_chg_div_tl)))
						{
						// ANK-2112-00-00残置 対応 20140604 藤田 MOD END
							// ただしONU/モデムで保留の場合に、ネットもしくは電話が保留の場合、転居元に残すため解約しない
							continue;
						} else if (JKKAdchgConstCC.TAKNKIKI_SBT.CODE_E0.equals(kiki_sbt_cd) && isSvkeiHold(svc_chg_div_tv)) {
							// ただしV-ONUで保留の場合に、TVが保留の場合、転居元に残すため解約しない
							continue;
						}
// ANK-1667-00-00 2013.11.13 Y.Kanata ADD START
// 修正モードにおける変更時、既に処理している機器を2重処理しない
// ANK-1667-00-00対応 20131231 星野 MOD START
//						if( paramMap.get("chaf_svc_kei_kaisen_ucwk_no") != null
//								&& ((String)paramMap.get("chaf_svc_kei_kaisen_ucwk_no")).equals(kk0341_a010_map.get(EKK0341A010CBSMsg1List.SVC_KEI_KAISEN_UCWK_NO))
//									&& ( "910".equals(kk0341_a010_map.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_STAT)) 
//											|| "920".equals(kk0341_a010_map.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_STAT)) )){
						
						HashMap<String, String> condMap = new HashMap<String, String>();
						// ＫＥＹ＿異動予約詳細コード（機器解約）
						condMap.put(EKK1681B001CBSMsg.KEY_IDO_RSV_DTL_CD, "013");
						// ＫＥＹ＿異動区分（住所変更・登録）
						condMap.put(EKK1681B001CBSMsg.KEY_IDO_DIV, JKKAdchgConstCC.IDO_DIV_ADCHG_RGST);
						// ＫＥＹ＿異動予約状態コード（未反映のもの）
						condMap.put(EKK1681B001CBSMsg.KEY_IDO_RSV_STAT_CD, "00,03");
						// ＫＥＹ＿機器提供サービス契約番号
						condMap.put(EKK1681B001CBSMsg.KEY_KKTK_SVC_KEI_NO, (String)kk0341_a010_map.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO));
						// ＫＥＹ＿ソート項目Ｎｏ
						condMap.put(condMap.get(EKK1681B001CBSMsg.KEY_SORT_ITEM_NO), JKKAdchgConstCC.EKK1681B001_SORT_ITEM.RSV_APLY_YMD);
						// ＫＥＹ＿ソート区分
						condMap.put(EKK1681B001CBSMsg.KEY_SORT_KBN, JKKAdchgConstCC.SORT_KBN.DESC);
						
						HashMap<String, Object> reqMap = mapper.setEKK1681B001(param, fixedText, condMap);
						Map<?, ?> resMap = scCall.run( reqMap, keepSesHandle.get());
						ArrayList<HashMap<String,Object>> resultList = mapper.getEKK1681B001(param, fixedText, resMap);
						mapper.scResultCheck(param);

						if( resultList != null && !resultList.isEmpty() ){
// ANK-1667-00-00対応 20131231 星野 MOD END
							if ( "D0".equals(kiki_sbt_cd)
									// ANK-4315-00-00 ADD START
									||	JKKAdchgConstCC.TAKNKIKI_SBT.CODE_S0.equals(kiki_sbt_cd)
									// ANK-4315-00-00 ADD END			
							) {
								end_flg_onu = true;
							} else if ( "E0".equals(kiki_sbt_cd)) {
								end_flg_vonu = true;
							}
							continue;
						}
// ANK-1667-00-00 2013.11.13 Y.Kanata ADD END

// IT1-2013-0000027対応 20130116 星野 ADD START
						// 引継元＿機器提供サービス契約ステータスが"910":解約済みかチェックする。
						if (!"910".equals((String)kk0341_a010_map.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_STAT))) {
// IT1-2013-0000027対応 20130116 星野 ADD END
							
							// EKK0341C340_機器提供サービス契約解約 (転居元)
// IT1-2013-0001149対応 20130505 星野 MOD START
//							dslItnm_EKK0341C340(param, fixedText, kk0081_a010_map, kk0341_a010_map);
							dslItnm_EKK0341C340(param, fixedText, kk0081_a010_map_new, kk0341_a010_map);
// IT1-2013-0001149対応 20130505 星野 MOD END
							
// ST1-2013-0000272対応 20130204 星野 ADD START
							// 物流対象Map
							HashMap<String, Object> buturyu_trgt_map = new HashMap<String, Object>();
							// ----- 返品 -----
							// 返品機器提供サービス契約番号
							buturyu_trgt_map.put( "hempin_kktk_svc_kei_no", getMapString(kk0341_a010_map, EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO) );
							// 返品世代登録年月日時分秒
							buturyu_trgt_map.put( "hempin_gene_add_dtm", getMapString(kk0341_a010_map, EKK0341A010CBSMsg1List.GENE_ADD_DTM) );
							// 異動区分
							buturyu_trgt_map.put("ido_div", getMapString(paramMap, JKKAdchgConstCC.PARAM_KEY_ADCHG_IDO_DIV) );
							// 返品区分（レンタル品解約）
							buturyu_trgt_map.put("hmpin_div", "2");
							buturyu_trgt_map_list.add( buturyu_trgt_map );
// ST1-2013-0000272対応 20130204 星野 ADD END
							
// IT1-2013-0000027対応 20130116 星野 ADD START
						}
// IT1-2013-0000027対応 20130116 星野 ADD END
						
					/** 解約対象で無い場合 */
					} else {
						
						// 保留の考慮追加
						// ANK-2112-00-00 残置対応 20140604 藤田 MOD START
						// ONUのみ対象外としていたところにモデムも追加
//						if (JKKAdchgConstCC.TAKNKIKI_SBT.CODE_D0.equals(kiki_sbt_cd) && (isSvkeiHold(svc_chg_div_nt) || isSvkeiHold(svc_chg_div_tl))) {
						if ((JKKAdchgConstCC.TAKNKIKI_SBT.CODE_D0.equals(kiki_sbt_cd)
							      || JKKAdchgConstCC.TAKNKIKI_SBT.CODE_60.equals(kiki_sbt_cd)
									// ANK-4315-00-00 ADD START
									||	JKKAdchgConstCC.TAKNKIKI_SBT.CODE_S0.equals(kiki_sbt_cd)
									// ANK-4315-00-00 ADD END	      
						)
							 && (isSvkeiHold(svc_chg_div_nt) || isSvkeiHold(svc_chg_div_tl)))
						{
						// ANK-2112-00-00 残置対応 20140604 藤田 MOD END
							// ただしONU/モデムで保留の場合に、ネットもしくは電話が保留の場合、転居元に残すため引継しない
							continue;
						} else if (JKKAdchgConstCC.TAKNKIKI_SBT.CODE_E0.equals(kiki_sbt_cd) && isSvkeiHold(svc_chg_div_tv)) {
							// ただしV-ONUで保留の場合に、TVが保留の場合、転居元に残すため引継しない
							continue;
						}
						
// ANK-1667-00-00 2013.11.13 Y.Kanata ADD START
						// 修正モードにおける変更時、既に処理している機器を2重処理しない
						if ( paramMap.get("chaf_svc_kei_kaisen_ucwk_no") != null
								&& ((String)paramMap.get("chaf_svc_kei_kaisen_ucwk_no")).equals((String)kk0341_a010_map.get(EKK0341A010CBSMsg1List.SVC_KEI_KAISEN_UCWK_NO))){
							if ( "D0".equals(kiki_sbt_cd)
								// ANK-4315-00-00 ADD START
								||	JKKAdchgConstCC.TAKNKIKI_SBT.CODE_S0.equals(kiki_sbt_cd)
								// ANK-4315-00-00 ADD END			
							) {
								end_flg_onu = true;
							} else if ( "E0".equals(kiki_sbt_cd)) {
								end_flg_vonu = true;
							}
							continue;
						}
// ANK-1667-00-00 2013.11.13 Y.Kanata ADD END
						
						// 引継元＿機器提供サービス契約ステータスが"910":解約済みかチェックする。
						if ("910".equals((String)kk0341_a010_map.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_STAT))) {
							
							// 解約済み機器に対する回復処理
							executeCancelKiki(param, fixedText, kk0341_a010_map, kk0081_a010_map_new);
							
						}
						// 機器の場所変更を行う
						chgIdodivChgKiki_EKK0341C200(param, fixedText, kk0341_a010_map, kk0081_a010_map_new);
						// 契約回線内訳変更を行う
						chgItens_EKK0341C320(param, fixedText, kk0341_a010_map, kk0081_a010_map_new);
// IT2-2013-000YYYY対応 20130210 星野 ADD START
						// 機器の交換を行う
						// ANK-3387-00-00 MOD START
						//chgKiki_EKK0341C070(param, fixedText, kk0341_a010_map, kk0081_a010_map_new);
						HashMap<String, Object> kk0341_c231_map = chgKiki_EKK0341C070(param, fixedText, kk0341_a010_map, kk0081_a010_map_new);
						// ANK-3387-00-00 MOD END
// IT2-2013-000YYYY対応 20130210 星野 ADD END
						// ANK-3387-00-00 ADD START
						//マンションで光コンセントでの場合は、ＯＮＵを配送する。
						if (JKKAdchgConstCC.MANSION_BUKKEN_CD_MANSION.equals(itens_mansion_bukken_cd) && "51".equals(tk_hoshiki_ptn_cd_net_saki))
						{
							String mskm_dtl_no = null;

							mskm_dtl_no = (String) paramMap.get("mskm_dtl_no_nt");
							if (mskm_dtl_no == null) {
								mskm_dtl_no = (String) paramMap.get("mskm_dtl_no_tl");
							}
							HashMap<String, String> condMap = new HashMap<String, String>();
							HashMap<String, Object> reqMap;
							Map<?, ?> resMap;
							// ・EKK0021A010 申込明細一意照会
							condMap.clear();
							condMap.put( JKKAdchgMapperCC.COND_KEY_MSKM_DTL_NO, mskm_dtl_no );
							reqMap = mapper.setEKK0021A010( param, fixedText, condMap );
							resMap = scCall.run( reqMap, keepSesHandle.get() );
							HashMap<String, Object> kk0021_a010 = mapper.getEKK0021A010( param, fixedText, resMap );
							// ●配送機器受付
							HashMap<String, Object> haisoOutMap = new HashMap<String, Object>();
							
							HashMap<String, Object> kiki_map = getKktkSvcKei(param, fixedText, (String) getMapString(kk0341_c231_map, EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO), (String) getMapString(kk0341_c231_map, EKK0341A010CBSMsg1List.GENE_ADD_DTM));
							ArrayList<HashMap<String, Object>> eKK0341A010HashList = new ArrayList<HashMap<String, Object>>();
							eKK0341A010HashList.add(kiki_map);
							ArrayList<HashMap<String, Object>> eKK0161A010HashList = new ArrayList<HashMap<String, Object>>();
							eKK0161A010HashList.add(null);
							
							// 配送受付を実施
							callEDK0011D020SC(
									param, 
									handle, 
									(String) kk0021_a010.get(EKK0021A010CBSMsg1List.MSKM_NO), 
									mskm_dtl_no, 
									(String) kk0021_a010.get(EKK0021A010CBSMsg1List.MSKMSHO_NO), 
									(String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_IDO_DIV), 
									SOKO_CD_000001,
									// 20141008 ANK-1918-06-00 配送予定年月日を追加 ADD START
									// IT1-2019-0000040 MOD START
									//null,
									"20991231",
									// IT1-2019-0000040 MOD END
									// 20141008 ANK-1918-06-00 配送予定年月日を追加 ADD END
									//↓↓↓2012-04-07変更　IT2-2012-0000393対応↓↓↓
									eKK0341A010HashList,
									//(HashMap<String, Object>)eKK0341A010CBSMSG1List[0].getMsgData(), 
									//↑↑↑2012-04-07変更　IT2-2012-0000393対応↑↑↑
									// IT2-2014-0000302 2014/09/16 add start
									eKK0161A010HashList,
									// IT2-2014-0000302 2014/09/16 add end
									haisoOutMap, 
									fixedText);
						}
						// ANK-3387-00-00 ADD END
						// IT1-2022-0000054 ADD START
						//マンションで工事範囲コード"070"の場合は、ＯＮＵを配送する。
						if (JKKAdchgConstCC.MANSION_BUKKEN_CD_MANSION.equals(itens_mansion_bukken_cd) && "070".equals(itensKojiScopeCd))
						{
							String mskm_dtl_no = null;

							mskm_dtl_no = (String) paramMap.get("mskm_dtl_no_nt");
							if (mskm_dtl_no == null) {
								mskm_dtl_no = (String) paramMap.get("mskm_dtl_no_tl");
							}
							HashMap<String, String> condMap = new HashMap<String, String>();
							HashMap<String, Object> reqMap;
							Map<?, ?> resMap;
							// ・EKK0021A010 申込明細一意照会
							condMap.clear();
							condMap.put( JKKAdchgMapperCC.COND_KEY_MSKM_DTL_NO, mskm_dtl_no );
							reqMap = mapper.setEKK0021A010( param, fixedText, condMap );
							resMap = scCall.run( reqMap, keepSesHandle.get() );
							HashMap<String, Object> kk0021_a010 = mapper.getEKK0021A010( param, fixedText, resMap );
							// ●配送機器受付
							HashMap<String, Object> haisoOutMap = new HashMap<String, Object>();
							
							HashMap<String, Object> kiki_map = getKktkSvcKei(param, fixedText, (String) getMapString(kk0341_c231_map, EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO), (String) getMapString(kk0341_c231_map, EKK0341A010CBSMsg1List.GENE_ADD_DTM));
							ArrayList<HashMap<String, Object>> eKK0341A010HashList = new ArrayList<HashMap<String, Object>>();
							eKK0341A010HashList.add(kiki_map);
							ArrayList<HashMap<String, Object>> eKK0161A010HashList = new ArrayList<HashMap<String, Object>>();
							eKK0161A010HashList.add(null);
							
							// 配送受付を実施
							callEDK0011D020SC(
									param, 
									handle, 
									(String) kk0021_a010.get(EKK0021A010CBSMsg1List.MSKM_NO), 
									mskm_dtl_no, 
									(String) kk0021_a010.get(EKK0021A010CBSMsg1List.MSKMSHO_NO), 
									(String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_IDO_DIV), 
									SOKO_CD_000001,
									"20991231",
									eKK0341A010HashList,
									eKK0161A010HashList,
									haisoOutMap, 
									fixedText);
						}
						// IT1-2022-0000054 ADD END
// ST1-2013-0000272対応 20130204 星野 ADD START
						// 物流対象Map
						HashMap<String, Object> buturyu_trgt_map = new HashMap<String, Object>();
						// ----- 返品 -----
						// 返品機器提供サービス契約番号
						buturyu_trgt_map.put( "hempin_kktk_svc_kei_no", getMapString(kk0341_a010_map, EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO) );
						// 返品世代登録年月日時分秒
						buturyu_trgt_map.put( "hempin_gene_add_dtm", getMapString(kk0341_a010_map, EKK0341A010CBSMsg1List.GENE_ADD_DTM) );
						// 異動区分
						buturyu_trgt_map.put("ido_div", getMapString(paramMap, JKKAdchgConstCC.PARAM_KEY_ADCHG_IDO_DIV) );
						// 返品区分（機種変更）
						buturyu_trgt_map.put("hmpin_div", "5");
						buturyu_trgt_map_list.add( buturyu_trgt_map );
//ST1-2013-0000272対応 20130204 星野 ADD END
						
						// フラグの設定
						if (JKKAdchgConstCC.TAKNKIKI_SBT.CODE_D0.equals(kiki_sbt_cd)) {
							end_flg_onu = true;
						} else {
							end_flg_vonu = true;
						}
					}

				} else {
					
					// 処理対象外（各個別処理にて対応済み）
					continue;
				}
			}
// ANK-1667-00-00 2013.11.13 Y.Kanata ADD START
			// 転居先回線の回線内訳番号を持つ機器の一覧を取得し、既に機器が追加されている場合は処理しない。
			ArrayList<HashMap<String, Object>> ekk0341_b504_list = getAdchgChafKaisenKiki(handle, param, fixedText );
			if (ekk0341_b504_list != null) {
				for (HashMap<String, Object> ekk0341_b504_map : ekk0341_b504_list) {
// ANK-1667-00-00 20131231 星野 ADD START
					if( "910".equals(ekk0341_b504_map.get(EKK0341B504CBSMsg1List.KKTK_SVC_KEI_STAT))
						|| "920".equals(ekk0341_b504_map.get(EKK0341B504CBSMsg1List.KKTK_SVC_KEI_STAT))
					){
						continue;
					}
// ANK-1667-00-00 20131231 星野 ADD END
					
					if ("D0".equals(ekk0341_b504_map.get(EKK0341B504CBSMsg1List.TAKNKIKI_SBT_CD))
							// ANK-4315-00-00 ADD START
							||	JKKAdchgConstCC.TAKNKIKI_SBT.CODE_S0.equals(ekk0341_b504_map.get(EKK0341B504CBSMsg1List.TAKNKIKI_SBT_CD))
							// ANK-4315-00-00 ADD END			
					) {
						huyo_flg = true;
					} else if ("E0".equals(ekk0341_b504_map.get(EKK0341B504CBSMsg1List.TAKNKIKI_SBT_CD))) {
						huyo_flg_vonu = true;
					}
				}
			}
// ANK-1667-00-00 2013.11.13 Y.Kanata ADD END

			/** 機器追加処理 */
			// ONU が作成されておらず、ネット・電話のいずれかが転居先サービス有 : 転居先にONUを追加
			if (!huyo_flg && !end_flg_onu 
// ST1-2013-0000242対応 20130126 星野 MOD START
//					&& (JKKAdchgConstCC.CD00849_ADD.equals(svc_chg_div_nt)
//							|| JKKAdchgConstCC.CD00849_ADD.equals(svc_chg_div_tl)))
				&& ( itensSvkeiUm(svc_chg_div_nt) || itensSvkeiUm(svc_chg_div_tl) )
// ST1-2013-0000242対応 20130126 星野 MOD END
			){
				// EKK0341D010_機器提供サービス契約登録 (ONU)
				HashMap<String, Object> onu_kiki_map = addKiki_EKK0341D010(param, fixedText, "1");
				// EKK2101D010_住所変更明細登録
				addKiki_EKK2101D010(param, fixedText, paramMap, onu_kiki_map);
				// ANK-3387-00-00 ADD START
				//マンションで光コンセントでの場合は、ＯＮＵを配送する。
				if (JKKAdchgConstCC.MANSION_BUKKEN_CD_MANSION.equals(itens_mansion_bukken_cd) && "51".equals(tk_hoshiki_ptn_cd_net_saki))
				{
					String mskm_dtl_no = null;

					mskm_dtl_no = (String) paramMap.get("mskm_dtl_no_nt");
					if (mskm_dtl_no == null) {
						mskm_dtl_no = (String) paramMap.get("mskm_dtl_no_tl");
					}
					HashMap<String, String> condMap = new HashMap<String, String>();
					HashMap<String, Object> reqMap;
					Map<?, ?> resMap;
					// ・EKK0021A010 申込明細一意照会
					condMap.clear();
					condMap.put( JKKAdchgMapperCC.COND_KEY_MSKM_DTL_NO, mskm_dtl_no );
					reqMap = mapper.setEKK0021A010( param, fixedText, condMap );
					resMap = scCall.run( reqMap, keepSesHandle.get() );
					HashMap<String, Object> kk0021_a010 = mapper.getEKK0021A010( param, fixedText, resMap );
					// ●配送機器受付
					HashMap<String, Object> haisoOutMap = new HashMap<String, Object>();
					
					HashMap<String, Object> kiki_map = getKktkSvcKei(param, fixedText, (String) getMapString(onu_kiki_map, EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO), (String) getMapString(onu_kiki_map, EKK0341A010CBSMsg1List.GENE_ADD_DTM));
					ArrayList<HashMap<String, Object>> eKK0341A010HashList = new ArrayList<HashMap<String, Object>>();
					eKK0341A010HashList.add(kiki_map);
					ArrayList<HashMap<String, Object>> eKK0161A010HashList = new ArrayList<HashMap<String, Object>>();
					eKK0161A010HashList.add(null);
					
					// 配送受付を実施
					callEDK0011D020SC(
							param, 
							handle, 
							(String) kk0021_a010.get(EKK0021A010CBSMsg1List.MSKM_NO), 
							mskm_dtl_no, 
							(String) kk0021_a010.get(EKK0021A010CBSMsg1List.MSKMSHO_NO), 
							(String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_IDO_DIV), 
							SOKO_CD_000001,
							// 20141008 ANK-1918-06-00 配送予定年月日を追加 ADD START
							// IT1-2019-0000040 MOD START
							//null,
							"20991231",
							// IT1-2019-0000040 MOD END
							// 20141008 ANK-1918-06-00 配送予定年月日を追加 ADD END
							//↓↓↓2012-04-07変更　IT2-2012-0000393対応↓↓↓
							eKK0341A010HashList,
							//(HashMap<String, Object>)eKK0341A010CBSMSG1List[0].getMsgData(), 
							//↑↑↑2012-04-07変更　IT2-2012-0000393対応↑↑↑
							// IT2-2014-0000302 2014/09/16 add start
							eKK0161A010HashList,
							// IT2-2014-0000302 2014/09/16 add end
							haisoOutMap, 
							fixedText);
				}
				// ANK-3387-00-00 ADD END
				// IT1-2022-0000054 ADD START
				//マンションで工事範囲コード"070"の場合は、ＯＮＵを配送する。
				if (JKKAdchgConstCC.MANSION_BUKKEN_CD_MANSION.equals(itens_mansion_bukken_cd) && "070".equals(itensKojiScopeCd))
				{
					String mskm_dtl_no = null;

					mskm_dtl_no = (String) paramMap.get("mskm_dtl_no_nt");
					if (mskm_dtl_no == null) {
						mskm_dtl_no = (String) paramMap.get("mskm_dtl_no_tl");
					}
					HashMap<String, String> condMap = new HashMap<String, String>();
					HashMap<String, Object> reqMap;
					Map<?, ?> resMap;
					// ・EKK0021A010 申込明細一意照会
					condMap.clear();
					condMap.put( JKKAdchgMapperCC.COND_KEY_MSKM_DTL_NO, mskm_dtl_no );
					reqMap = mapper.setEKK0021A010( param, fixedText, condMap );
					resMap = scCall.run( reqMap, keepSesHandle.get() );
					HashMap<String, Object> kk0021_a010 = mapper.getEKK0021A010( param, fixedText, resMap );
					// ●配送機器受付
					HashMap<String, Object> haisoOutMap = new HashMap<String, Object>();
					
					HashMap<String, Object> kiki_map = getKktkSvcKei(param, fixedText, (String) getMapString(onu_kiki_map, EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO), (String) getMapString(onu_kiki_map, EKK0341A010CBSMsg1List.GENE_ADD_DTM));
					ArrayList<HashMap<String, Object>> eKK0341A010HashList = new ArrayList<HashMap<String, Object>>();
					eKK0341A010HashList.add(kiki_map);
					ArrayList<HashMap<String, Object>> eKK0161A010HashList = new ArrayList<HashMap<String, Object>>();
					eKK0161A010HashList.add(null);
					
					// 配送受付を実施
					callEDK0011D020SC(
							param, 
							handle, 
							(String) kk0021_a010.get(EKK0021A010CBSMsg1List.MSKM_NO), 
							mskm_dtl_no, 
							(String) kk0021_a010.get(EKK0021A010CBSMsg1List.MSKMSHO_NO), 
							(String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_IDO_DIV), 
							SOKO_CD_000001,
							"20991231",
							eKK0341A010HashList,
							eKK0161A010HashList,
							haisoOutMap, 
							fixedText);
				}
				// IT1-2022-0000054 ADD END
			}
			// V-ONU が作成されておらず、テレビが転居先サービス有 : 転居先にV-ONUを追加
// IT2-2013-000XXXX対応 20130201 星野 MOD START
//			if (!huyo_flg && !end_flg_vonu 
			if (!huyo_flg_vonu && !end_flg_vonu 
// IT2-2013-000XXXX対応 20130201 星野 MOD END
// ST1-2013-0000242対応 20130126 星野 MOD START
//				&& JKKAdchgConstCC.CD00849_ADD.equals(svc_chg_div_tv)
				&& itensSvkeiUm(svc_chg_div_tv)
// ST1-2013-0000242対応 20130126 星野 MOD END
			){
				// EKK0341D010_機器提供サービス契約登録 (V-ONU)
				HashMap<String, Object> vonu_kiki_map = addKiki_EKK0341D010(param, fixedText, "2");
				// EKK2101D010_住所変更明細登録
				addKiki_EKK2101D010(param, fixedText, paramMap, vonu_kiki_map);
			}
			
			// 工事案件ＣＣに引き渡す出力項目を設定
			getSvcData(param, paramMap, keepSesHandle.get(), fixedText);
// ST1-2013-0000272対応 20130204 星野 ADD START
			// paramMapに格納(住所変更物流CCへ連携)
			paramMap.put("buturyu_trgt_map_list", buturyu_trgt_map_list);
// ST1-2013-0000272対応 20130204 星野 ADD END

		} finally {
				
			// ・セッションハンドル保持域
			if(keepSesHandle.get() != null){
				keepSesHandle.remove();
			}
		}

		return param;
	}
	
	
	/**
	 * EKK0341A010 機器提供サービス契約一意照会
	 * 
	 * @param  adchg_dtl_list_kktk_svc_kei	機器リスト一覧
	 * @param  taknkiki_sbt_cd 宅内機器種別コード
	 * @return 対象機器レコード
	 * @throws Exception 
	 */
	public HashMap<String, Object> getEKK0341A010(IRequestParameterReadWrite param, JKKAdchgMapperCC mapper,
													String fixedText, ServiceComponentRequestInvoker scCall,
													String adChgDtlChgTgKeiNo, String opeDate) throws Exception {
		
		HashMap<String, String> condMap = new HashMap<String, String>();
		condMap.put(JKKAdchgMapperCC.COND_KEY_KKTK_SVC_KEI_NO, adChgDtlChgTgKeiNo);
		condMap.put(JKKAdchgMapperCC.COND_KEY_OPEDATE, opeDate);
		HashMap<String, Object> reqMap = mapper.setEKK0341A010(param, fixedText, condMap);
		Map<?, ?> resMap = scCall.run(reqMap, keepSesHandle.get());
		HashMap<String, Object> kk0341_a010_map = mapper.getEKK0341A010(param, fixedText, resMap);
		// サービスコンポーネント実行結果確認
		mapper.scResultCheck(param);
		
		return kk0341_a010_map;
	}
	
	
	/**
	 * 親契約識別コードより転居元のサービス契約を取得する.
	 * <br>
	 * @param  param            モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param  fixedText        ユーザ任意文字列
	 * @param  kk0341_a010_map  機器提供サービス契約一意照会マップ
	 * @return 転居元のサービス契約情報
	 * @throws 例外が発生した場合
	 */
	private HashMap<String, Object> itenmSvcKei(IRequestParameterReadWrite param, String fixedText, HashMap<String, Object> kk0341_a010_map) throws Exception {

		/** 前準備 **/
		HashMap<String, String> condMap;
		HashMap<String, Object> paramMap = (HashMap<String, Object>)(param.getData(fixedText));
		HashMap<String, Object> reqMap;
		Map<?, ?> resMap;

		// 住所変更登録コモンコンポーネントマッピングクラスインスタンス
		JKKAdchgMapperCC mapper = JKKAdchgMapperCC.getInstance();
		// SCリクエストInvoker
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		String svc_kei_no = "";

		// 親契約識別コード
		String oya_kei_skbt_cd = getMapString(kk0341_a010_map, EKK0341A010CBSMsg1List.OYA_KEI_SKBT_CD);
		if ("01".equals(oya_kei_skbt_cd)) {
			// サービス契約番号
			svc_kei_no = getMapString(kk0341_a010_map, EKK0341A010CBSMsg1List.SVC_KEI_NO);

		} else if ("02".equals(oya_kei_skbt_cd)) {

			// ONU, V-ONUの場合
			// サービス契約内訳番号
			// EKK0251A010_サービス契約回線内訳一意照会
			condMap = new HashMap<String, String>();
			condMap.put(JKKAdchgMapperCC.COND_KEY_SVC_KEI_KAIS_UCWK_NO, getMapString(kk0341_a010_map, EKK0341A010CBSMsg1List.SVC_KEI_KAISEN_UCWK_NO));
			condMap.put(JKKAdchgMapperCC.COND_KEY_OPEDATE, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_OPE_DATE));
			reqMap = mapper.setEKK0251A010(param, fixedText, condMap);
			resMap = scCall.run(reqMap, keepSesHandle.get());
			HashMap<String, Object> kk0251_a010_map = mapper.getEKK0251A010(param, fixedText, resMap);
			mapper.scResultCheck(param);

			HashMap<String, Object> kk0081_a010_map = new HashMap<String, Object>();
			kk0081_a010_map.put("svc_div", "1");
			// 場所変更で利用する申込明細番号を設定
			kk0081_a010_map.put(EKK0081A010CBSMsg1List.MSKM_DTL_NO, (String)kk0251_a010_map.get(EKK0251A010CBSMsg1List.MSKM_DTL_NO));
			return kk0081_a010_map;

	
		} else {
			// 上記以外は対象外とする
			return new HashMap<String, Object>();
		}

		// EKK0081A010_サービス契約一意照会
		HashMap<String, Object> kk0081_a010_map = getEKK0081A010(param, mapper, fixedText, scCall, svc_kei_no, getMapString(paramMap, JKKAdchgConstCC.PARAM_KEY_OPE_DATE));

		return kk0081_a010_map;
	}
	
	/**
	 * EKK0081A010 サービス契約一意照会.
	 * <br>
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   mapper     住所変更登録CC共通マッピング
	 * @param   fixedText  ユーザ任意文字列
	 * @param   svsKeiNo   サービス契約番号
	 * @param   opeDate    運用日付
	 * @throws  Exception  例外が発生した場合
	 */
	public HashMap<String, Object> getEKK0081A010(IRequestParameterReadWrite param,
													JKKAdchgMapperCC mapper,
													String fixedText,
													ServiceComponentRequestInvoker scCall,
													String svsKeiNo,
													String opeDate) throws Exception {
		
		HashMap<String, String> condMap = new HashMap<String, String>();
		condMap.put(JKKAdchgMapperCC.COND_KEY_SVC_KEI_NO, svsKeiNo);
		condMap.put(JKKAdchgMapperCC.COND_KEY_OPEDATE, opeDate);
		HashMap<String, Object> reqMap = mapper.setEKK0081A010(param, fixedText, condMap);
		Map<?, ?> resMap = scCall.run(reqMap, keepSesHandle.get());
		HashMap<String, Object> kk0081_a010_map = mapper.getEKK0081A010(param, fixedText, resMap);
		// サービスコンポーネント実行結果確認
		mapper.scResultCheck(param);
		
		return kk0081_a010_map;
	}
	
	
	/**
	 * 親契約識別コードより転居先のサービス契約を取得する.
	 * <br>
	 * @param  param            モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param  fixedText        ユーザ任意文字列
	 * @param  kk0341_a010_map  機器提供サービス契約一意照会マップ
	 * @return 転居元のサービス契約情報
	 * @throws 例外が発生した場合
	 */
	private HashMap<String, Object> itensSvcKei(IRequestParameterReadWrite param, String fixedText, HashMap<String, Object> kk0341_a010_map) throws Exception {

		/** 前準備 **/
		HashMap<String, Object> paramMap = (HashMap<String, Object>)param.getData(fixedText);
		HashMap<String, String> condMap;
		HashMap<String, Object> reqMap;
		Map<?, ?> resMap;

		// 住所変更登録コモンコンポーネントマッピングクラスインスタンス
		JKKAdchgMapperCC mapper = JKKAdchgMapperCC.getInstance();
		// SCリクエストInvoker
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		String svc_kei_no = "";

		// 親契約識別コード
		String oya_kei_skbt_cd = getMapString(kk0341_a010_map, EKK0341A010CBSMsg1List.OYA_KEI_SKBT_CD);
		if ("01".equals(oya_kei_skbt_cd)) {
			// サービス契約番号
			svc_kei_no = getMapString(kk0341_a010_map, EKK0341A010CBSMsg1List.SVC_KEI_NO);

		} else if ("02".equals(oya_kei_skbt_cd)) {

			String mskm_dtl_no = null;
			HashMap<String, Object> kk0081_a010_map = new HashMap<String, Object>();
			kk0081_a010_map.put("svc_div", "1");
			// ONU・VDSLモデム・スプリッター・インラインフィルタの場合
			if (JKKAdchgConstCC.TAKNKIKI_SBT.CODE_D0.equals((String) kk0341_a010_map.get(EKK0341A010CBSMsg1List.TAKNKIKI_SBT_CD))
// IT1-2013-000XXXX対応 20130506 星野 ADD START
					|| JKKAdchgConstCC.TAKNKIKI_SBT.CODE_60.equals((String) kk0341_a010_map.get(EKK0341A010CBSMsg1List.TAKNKIKI_SBT_CD))
					|| JKKAdchgConstCC.TAKNKIKI_SBT.CODE_70.equals((String) kk0341_a010_map.get(EKK0341A010CBSMsg1List.TAKNKIKI_SBT_CD))
					|| JKKAdchgConstCC.TAKNKIKI_SBT.CODE_90.equals((String) kk0341_a010_map.get(EKK0341A010CBSMsg1List.TAKNKIKI_SBT_CD))
// IT1-2013-000XXXX対応 20130506 星野 ADD END
					// ANK-4315-00-00 ADD START
					|| JKKAdchgConstCC.TAKNKIKI_SBT.CODE_S0.equals((String) kk0341_a010_map.get(EKK0341A010CBSMsg1List.TAKNKIKI_SBT_CD))
					// ANK-4315-00-00 ADD END	
			) {
				mskm_dtl_no = (String) paramMap.get("mskm_dtl_no_nt");
				if (mskm_dtl_no == null || StringUtils.isEmpty(mskm_dtl_no)
// 20130507 ADD 解約の申込明細番号は使わない
						|| JKKAdchgConstCC.CD00849_SLRE.equals( paramMap.get("jdg_net_use_svc_chg_div") )
// 20130507 ADD 解約の申込明細番号は使わない
				) {
					mskm_dtl_no = (String) paramMap.get("mskm_dtl_no_tl");
				}
				kk0081_a010_map.put(EKK0081A010CBSMsg1List.MSKM_DTL_NO, mskm_dtl_no);
				
			// V-ONUの場合
			} else if (JKKAdchgConstCC.TAKNKIKI_SBT.CODE_E0.equals((String) kk0341_a010_map.get(EKK0341A010CBSMsg1List.TAKNKIKI_SBT_CD))) {
				mskm_dtl_no = (String) paramMap.get("mskm_dtl_no_tv");
				kk0081_a010_map.put(EKK0081A010CBSMsg1List.MSKM_DTL_NO, mskm_dtl_no);
			}
			
			return kk0081_a010_map;

		} else {
			// 上記以外は対象外とする
			return new HashMap<String, Object>();
		}
		// EKK0081A010_サービス契約一意照会
		HashMap<String, Object> kk0081_a010_map = getEKK0081A010(param, mapper, fixedText, scCall, svc_kei_no, JKKAdchgConstCC.DEFAULT_RSV_APLY_YMD);
		String svcCd = (String) kk0081_a010_map.get(EKK0081A010CBSMsg1List.SVC_CD);
		// サービス契約番号取得
		//TODO 各サービスのサービス契約番号に差替える必要有
		String newSvcKeiNo= null;
		if (JKKAdchgConstCC.CD00130_INET_SVC.equals(svcCd)) {
			newSvcKeiNo = (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_SVC_KEI_NO);
		} else if (JKKAdchgConstCC.CD00130_TEL_SVC.equals(svcCd)) {
			newSvcKeiNo = (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_SVC_KEI_NO);
		} else if (JKKAdchgConstCC.CD00130_TV_SVC.equals(svcCd)) {
			newSvcKeiNo = (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_SVC_KEI_NO);
		}
		if (newSvcKeiNo == null) {
			return kk0081_a010_map;
		}
		
		if (!StringUtils.isEmpty(newSvcKeiNo) && !newSvcKeiNo.equals(kk0341_a010_map.get(EKK0341A010CBSMsg1List.SVC_KEI_NO))) {
			// 機器提供サービス契約と新しいサービス契約番号が一致しない場合
			kk0081_a010_map = getEKK0081A010(param, mapper, fixedText, scCall, newSvcKeiNo, JKKAdchgConstCC.DEFAULT_RSV_APLY_YMD);
		}

		return kk0081_a010_map;
	}
	
	
	/**
	 * EKK0341C340_機器提供サービス契約解約 (転居元)
	 * <br>
	 * @param  param            モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param  fixedText        ユーザ任意文字列
	 * @param  kk0081_a010_map  サービス契約一意照会マップ
	 * @param  kk0341_a010_map  機器提供サービス契約一意照会マップ
	 * @throws 例外が発生した場合
	 */
	public void dslItnm_EKK0341C340(IRequestParameterReadWrite param, String fixedText, HashMap<String, Object> kk0081_a010_map, HashMap<String, Object> kk0341_a010_map) throws Exception {

		/** 前準備 **/
		HashMap<String, Object> paramMap = (HashMap<String, Object>)param.getData(fixedText);
		HashMap<String, Object> condMap;
		HashMap<String, Object> reqMap;
		Map<?, ?> resMap;

		// 住所変更登録コモンコンポーネントマッピングクラスインスタンス
		JKKAdchgMapperCC mapper = JKKAdchgMapperCC.getInstance();
		// SCリクエストInvoker
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		/** EKK0341C340_機器提供サービス契約解約 */
		condMap = new HashMap<String, Object>();
		// 機器提供サービス契約番号
		condMap.put(EKK0341C340CBSMsg.KKTK_SVC_KEI_NO, getMapString(kk0341_a010_map, EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO));
		condMap.put(EKK0341C340CBSMsg.MSKM_DTL_NO, kk0081_a010_map.get(EKK0081A010CBSMsg1List.MSKM_DTL_NO));
		// 予約適用開始希望年月日
		condMap.put(EKK0341C340CBSMsg.RSV_TSTA_KIBO_YMD, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_CHG_RSV_YMD));

		// 移転元＿マンション物件コード
		String kj_dsl_ymd = "";
		String itenmMansionBukkenCd = (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENM_MANSION_BUKKEN_CD);
// OM-2013-0003803対応 20131106 星野 DEL START
//		// 移転元のマンション物件コードがマンションの場合
//		if(KKSV0098_KKSV0098OP.MANSION_BUKKEN_CD_MANSION.equals(itenmMansionBukkenCd)) {
// OM-2013-0003803対応 20131106 星野 DEL END
		// 解約希望年月日
		kj_dsl_ymd = (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_KJ_DSL_YMD);
// OM-2013-0003803対応 20131106 星野 DEL START
//		} else {
//			// 工事希望年月日
//			kj_dsl_ymd = (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_KJ_KIBO_YMD);
//		}
// OM-2013-0003803対応 20131106 星野 DEL END
		// サービス終了年月日
		condMap.put(EKK0341C340CBSMsg.SVC_ENDYMD, kj_dsl_ymd);

		// サービス課金終了年月日
		condMap.put(EKK0341C340CBSMsg.SVC_CHRG_ENDYMD, JKKAdchgConstCC.CHARACTER.BLANK);
		// サービス解約理由コード
		condMap.put(EKK0341C340CBSMsg.SVC_DLRE_CD, JKKAdchgConstCC.CHARACTER.BLANK);
		// サービス解約理由メモ
		condMap.put(EKK0341C340CBSMsg.SVC_DLRE_MEMO, JKKAdchgConstCC.CHARACTER.BLANK);
		// "0"(無) ⇒ 残置フラグ
		condMap.put(EKK0341C340CBSMsg.ZANCHI_FLG, JKKAdchgConstCC.CD00002_NASHI);
		// 違約金発生コード
		condMap.put(EKK0341C340CBSMsg.PNLTY_HASSEI_CD, JKKAdchgConstCC.CHARACTER.BLANK);
		// 異動区分
		condMap.put(EKK0341C340CBSMsg.IDO_DIV, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ADCHG_IDO_DIV));
		// "03"(STB一部撤去) ⇒ 宅内機器異動コード
		condMap.put(EKK0341C340CBSMsg.TAKNKIKI_IDO_CD, JKKAdchgConstCC.TAKNKIKI_IDO.REMOVE);
		// 更新年月日時分秒 (更新前)
		String kaisen_wtwk_bf = (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ADCHG_ITNM_SYKEI_KISUW_NO);
		condMap.put(JKKAdchgMapperCC.UPD_DT_KKTK_SVC_KEI_UPD_DTM_BEF, getUpdDtmBf(param, fixedText, kaisen_wtwk_bf));

		// EKK0341C340_機器提供サービス契約解約
// IT1-2013-0001149 2013.05.04 T.TORIKAI MOD START
//		reqMap = mapper.setEKK0341C340(param, fixedText, condMap);
		reqMap = mapper.setEKK0341C340(param, fixedText, kk0081_a010_map, condMap);
// IT1-2013-0001149 2013.05.04 T.TORIKAI MOD END
		resMap = scCall.run(reqMap, keepSesHandle.get());
		HashMap<String, Object> kk0341_c340_map = mapper.getEKK0341C340(param, fixedText, resMap);
		mapper.scResultCheck(param);

		/** EKK0341C350_機器提供サービス契約解約確定 */
		condMap = new HashMap<String, Object>();
		// 機器提供サービス契約番号
		condMap.put(EKK0341C350CBSMsg.KKTK_SVC_KEI_NO, getMapString(kk0341_a010_map, EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO));
		// サービス終了年月日
		condMap.put(EKK0341C350CBSMsg.SVC_ENDYMD, kj_dsl_ymd);
		// サービス課金終了年月日
		condMap.put(EKK0341C350CBSMsg.SVC_CHRG_ENDYMD, kj_dsl_ymd);

		// 更新年月日時分秒 (更新前)
		condMap.put(JKKAdchgMapperCC.UPD_DT_KKTK_SVC_KEI_UPD_DTM_BEF, kk0341_c340_map.get(EKK0341C340CBSMsg.UPD_DTM));
		
		// EKK0341C350_機器提供サービス契約解約確定
		reqMap = mapper.setEKK0341C350(param, fixedText, condMap);
		resMap = scCall.run(reqMap, keepSesHandle.get());
		mapper.getEKK0341C350(param, fixedText, resMap);
		mapper.scResultCheck(param);
	}
	
	
	/**
	 * EKK0341C200_機器提供サービス契約場所変更.（機器変更あり）
	 * <br>
	 * @param  param            モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param  fixedText        ユーザ任意文字列
	 * @param  kk0341_a010_map  機器提供サービス契約一意照会マップ
	 * @throws 例外が発生した場合
	 */
	public void chgIdodivChgKiki_EKK0341C200(IRequestParameterReadWrite param, String fixedText, 
			HashMap<String, Object> kk0341_a010_map, HashMap<String, Object> kk0081_a010_map) throws Exception {
		
		/** 移転先住所設置場所番号取得 */
		HashMap<String, Object> paramMap = (HashMap<String, Object>)param.getData(fixedText);
		String itensPlaceNo = getItensPlace(param, fixedText, paramMap);
		
		/** EKK0341C232_機器提供サービス契約情報変更（予約） */
		executeEKK0341C232(param, fixedText, kk0341_a010_map, kk0081_a010_map);

		/** EKK0341C200_機器提供サービス契約場所変更 */
		HashMap<String, Object> kk0341_c200_map = executeEKK0341C200(param, fixedText, kk0341_a010_map, kk0081_a010_map, itensPlaceNo);

		/** EKK0341C220_機器提供サービス契約場所変更確定 */
		executeEKK0341C220(param, fixedText, kk0341_a010_map, kk0341_c200_map);

// IT2-2013-000YYYY対応 20130210 星野 DEL START
// 型式・製造番号の変更は当メソッドから切り出し
//		/** EKK0341C191_機器提供サービス契約機器変更 */
//		executeEKK0341C191(param, fixedText, kk0341_a010_map, kk0081_a010_map);
// IT2-2013-000YYYY対応 20130210 星野 DEL END
		
	}
	
	/**
	 * EKK0341C232 機器提供サービス契約情報変更（予約）実行処理
	 * @param  param            モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param  fixedText        ユーザ任意文字列
	 * @param  kk0341_a010_map  機器提供サービス契約一意照会マップ
	 * @param  kk0081_a010_map  サービス契約一意照会マップ
	 * @return
	 * @throws Exception
	 */
	private HashMap<String, Object> executeEKK0341C232(IRequestParameterReadWrite param, String fixedText, 
			HashMap<String, Object> kk0341_a010_map, HashMap<String, Object> kk0081_a010_map) throws Exception {
		/** 前準備 **/
		HashMap<String, Object> paramMap = (HashMap<String, Object>)param.getData(fixedText);
		HashMap<String, Object> reqMap;
		Map<?, ?> resMap;

		// 住所変更登録コモンコンポーネントマッピングクラスインスタンス
		JKKAdchgMapperCC mapper = JKKAdchgMapperCC.getInstance();
		// SCリクエストInvoker
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		HashMap<String, Object> kksv_work_map = itenmSvcKei(param, fixedText, kk0341_a010_map);
		kksv_work_map.put(JKKAdchgConstCC.PARAM_KEY_NEW_SVC_KEI_NO, getMapString(kksv_work_map, EKK0081A010CBSMsg1List.SVC_KEI_NO));
		kksv_work_map.put(JKKAdchgConstCC.PARAM_KEY_NEW_KEI_KAIS_UCWK_NO, getMapString(kk0341_a010_map, EKK0341A010CBSMsg1List.SVC_KEI_KAISEN_UCWK_NO));

		
		// 異動区分
		kk0341_a010_map.put(EKK0341A010CBSMsg1List.IDO_DIV, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ADCHG_IDO_DIV));
		// 申込明細番号
		kk0341_a010_map.put(EKK0341A010CBSMsg1List.MSKM_DTL_NO, (String)kk0081_a010_map.get(EKK0081A010CBSMsg1List.MSKM_DTL_NO));
// ST3-2013-0000303対応 2013.02.08 松本 ADD START
		/* 機器引当指定倉庫コード、機器引当指定倉庫棚コードが設定されていない場合、契約新規と同じ値を設定する */
		// 機器引当指定倉庫コード
		if( JKKStringUtil.isNullEmpty(kk0341_a010_map.get(EKK0341A010CBSMsg1List.KIKI_HKAT_SHITEI_SOKO_CD))) {
			kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_HKAT_SHITEI_SOKO_CD, "000001");
		}
		// 機器引当指定倉庫棚コード
		if( JKKStringUtil.isNullEmpty(kk0341_a010_map.get(EKK0341A010CBSMsg1List.KIKI_HKAT_SHITEI_SKDN_CD))) {
			kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_HKAT_SHITEI_SKDN_CD, "000");
		}
// ST3-2013-0000303対応 2013.02.08 松本 ADD END
		
// OM-2013-0001914対応 20130912 星野 ADD START
		// 送付先住所入力ありの場合
		if( !StringUtils.isEmpty( getMapString( paramMap, "kiki_sohus_pcd" ) ) ){
			// 機器送付先住所手動入力フラグ
			kk0341_a010_map.put( EKK0341A010CBSMsg1List.KIKI_SHS_AD_MAN_INPUT_FLG, getMapString( paramMap, "kiki_sohus_man_input_flg" ) );
			// 機器送付先住所コード
			kk0341_a010_map.put( EKK0341A010CBSMsg1List.KIKI_SOHUS_AD_CD, getMapString( paramMap, "kiki_sohus_ad_cd" ) );
			// 機器送付先郵便番号
			kk0341_a010_map.put( EKK0341A010CBSMsg1List.KIKI_SOHUS_PCD, getMapString( paramMap, "kiki_sohus_pcd" ) );
			// 機器送付先都道府県名
			kk0341_a010_map.put( EKK0341A010CBSMsg1List.KIKI_SOHUS_STATE_NM, getMapString( paramMap, "kiki_sohus_state_nm" ) );
			// 機器送付先市区町村名
			kk0341_a010_map.put( EKK0341A010CBSMsg1List.KIKI_SOHUS_CITY_NM, getMapString( paramMap, "kiki_sohus_city_nm" ) );
			// 機器送付先大字通称名
			kk0341_a010_map.put( EKK0341A010CBSMsg1List.KIKI_SOHUS_OAZTSU_NM, getMapString( paramMap, "kiki_sohus_oaztsu_nm" ) );
			// 機器送付先字丁目名
			kk0341_a010_map.put( EKK0341A010CBSMsg1List.KIKI_SOHUS_AZCHO_NM, getMapString( paramMap, "kiki_sohus_azcho_nm" ) );
			// 機器送付先番地号
			kk0341_a010_map.put( EKK0341A010CBSMsg1List.KIKI_SOHUS_BNCHIGO, getMapString( paramMap, "kiki_sohus_bnchigo" ) );
			// 機器送付先住所補記・建物名
			kk0341_a010_map.put( EKK0341A010CBSMsg1List.KIKI_SOHUS_ADRTTM, getMapString( paramMap, "kiki_sohus_adrttm" ) );
			// 機器送付先住所補記・部屋番号
			kk0341_a010_map.put( EKK0341A010CBSMsg1List.KIKI_SOHUS_ADRRM, getMapString( paramMap, "kiki_sohus_adrrm" ) );
			// 機器送付先名
			kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_SOHUS_NM, getMapString(paramMap, "kiki_sohus_nm"));
			// 機器送付先カナ名
			kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_SOHUS_KANA, getMapString(paramMap, "kiki_sohus_kana"));
			// 機器送付先電話番号
			kk0341_a010_map.put( EKK0341A010CBSMsg1List.KIKI_SOHUS_TELNO, getMapString( paramMap, "kiki_shs_tln" ) );
		} else {
			// 機器送付先住所手動入力フラグ（移転先住所は手動入力不可のため0固定）
			kk0341_a010_map.put( EKK0341A010CBSMsg1List.KIKI_SHS_AD_MAN_INPUT_FLG, "0" );
// OM-2013-0001914対応 20130912 星野 ADD END
				
	// IT1-2013-000ZZZZ対応 20130530 星野 ADD START
			kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_SOHUS_NM, getMapString(paramMap, "cust_nm"));
			kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_SOHUS_KANA, getMapString(paramMap, "cust_kana"));
	// IT1-2013-000ZZZZ対応 20130530 星野 ADD END
			// 機器送付先住所コード
			kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_SOHUS_AD_CD, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_CD));
			// 機器送付先郵便番号
			kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_SOHUS_PCD, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_POST_CD));
			// 機器送付先都道府県名
			kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_SOHUS_STATE_NM, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_STATE));
			// 機器送付先市区町村名
			kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_SOHUS_CITY_NM, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_CITY));
			// 機器送付先大字通称名
			kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_SOHUS_OAZTSU_NM, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_OAZTSU));
			// 機器送付先字丁目名
			kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_SOHUS_AZCHO_NM, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_AZCHO));
			// 機器送付先番地号
			kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_SOHUS_BNCHIGO, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_BNCHIGO));
			// 機器送付先住所補記・建物名
			kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_SOHUS_ADRTTM, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_ADRTTM));
			// 機器送付先住所補記・部屋番号
			kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_SOHUS_ADRRM, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_ADRRM));
			// 機器送付先電話番号
			kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_SOHUS_TELNO, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_TLN));
// OM-2013-0001914対応 20130912 星野 ADD START
		}
// OM-2013-0001914対応 20130912 星野 ADD END

// IT1-2013-000ZZZZ対応 20130530 星野 ADD START
		// 機器送付先_契約者住所差異フラグ
		kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_SOHUS_KSH_AD_SAI_FLG, (String) paramMap.get(EKK0341D010CBSMsg.KIKI_SOHUS_KSH_AD_SAI_FLG));
// IT1-2013-000ZZZZ対応 20130530 星野 ADD END
		// 機器設置先住所コード
		kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_STC_SAKI_AD_CD, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_CD));
		// 機器設置先郵便番号
		kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_STC_SAKI_PCD, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_POST_CD));
		// 機器設置先都道府県名
		kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_STC_SAKI_STATE_NM, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_STATE));
		// 機器設置先市区町村名
		kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_STC_SAKI_CITY_NM, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_CITY));
		// 機器設置先大字通称名
		kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_STC_SAKI_OAZTSU_NM, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_OAZTSU));
		// 機器設置先字丁目名
		kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_STC_SAKI_AZCHO_NM, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_AZCHO));
		// 機器設置先番地号
		kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_STC_SAKI_BNCHIGO, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_BNCHIGO));
		// 機器設置先住所補記・建物名
		kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_STC_SAKI_ADRTTM, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_ADRTTM));
		// 機器設置先住所補記・部屋番号
		kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_STC_SAKI_ADRRM, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_ADRRM));
		// 機器設置先_契約者住所差異フラグ
// IT1-2013-000ZZZZ対応 20130530 星野 MOD START
//		kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_STC_SK_KSH_AD_SAI_FLG, (String)kk0341_a010_map.get(EKK0341A010CBSMsg1List.KIKI_STC_SK_KSH_AD_SAI_FLG));
		kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_STC_SK_KSH_AD_SAI_FLG, paramMap.get(EKK0341D010CBSMsg.KIKI_STC_SK_KSH_AD_SAI_FLG));
// IT1-2013-000ZZZZ対応 20130530 星野 MOD END
		// 機器設置先電話番号
		kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_STC_SK_TELNO, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_TLN));
		// 更新年月日時分秒(更新前)
		kk0341_a010_map.put(JKKAdchgMapperCC.UPD_DT_KKTK_SVC_KEI_UPD_DTM_BEF, kk0341_a010_map.get(EKK0341A010CBSMsg1List.LAST_UPD_DTM));
// ST2-2013-0000465対応 20130209 星野 DEL START
//		// 対象機器が ONU・V-ONU の場合は機器製造番号と宅内機器型式コードをクリアする
//		String kiki_sbt_cd = getMapString(kk0341_a010_map, EKK0341A010CBSMsg1List.TAKNKIKI_SBT_CD);
//		if ("D0".equals(kiki_sbt_cd) || "E0".equals(kiki_sbt_cd)) {
//			kk0341_a010_map.put(EKK0341A010CBSMsg1List.TAKNKIKI_MODEL_CD, "");
//			kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_SEIZO_NO, "");
//		}
// ST2-2013-0000465対応 20130209 星野 DEL END
		// 予約適用年月日
// OM-2014-0000041対応 20140420 星野 MOD START
//// 品質強化試験追加分 故障No.100023対応 20121230 星野 MOD START
////		kk0341_a010_map.put(EKK0341A010CBSMsg1List.RSV_APLY_YMD, JKKAdchgConstCC.DEFAULT_RSV_APLY_YMD);
//		kk0341_a010_map.put(EKK0341A010CBSMsg1List.RSV_APLY_YMD, paramMap.get("rsv_aply_ymd") );
//// 品質強化試験追加分 故障No.100023対応 20121230 星野 MOD END
// OM-2014-0000041対応 20140420 星野 MOD END
		kk0341_a010_map.put(EKK0341A010CBSMsg1List.RSV_APLY_YMD, JKKAdchgConstCC.DEFAULT_RSV_APLY_YMD );
// IT2-2013-0000174対応 20130215 星野 ADD START
		// マンション物件番号
		kk0341_a010_map.put( EKK0341A010CBSMsg1List.MANSION_BUKKEN_NO, paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_MANSION_BUKKEN_NO) );
// IT2-2013-0000174対応 20130215 星野 ADD END

		// EKK0341C232 機器提供サービス契約情報変更（予約）
		reqMap = mapper.setEKK0341C232(param, fixedText, kk0341_a010_map);
		resMap = scCall.run(reqMap, keepSesHandle.get());
		HashMap<String, Object> kk0341_c230_map = mapper.getEKK0341C232(param, fixedText, resMap);
		mapper.scResultCheck(param);
		
		// 排他情報の引継
		kk0341_a010_map.put(EKK0341A010CBSMsg1List.LAST_UPD_DTM, getMapString(kk0341_c230_map, EKK0341C191CBSMsg.UPD_DTM));
		return kk0341_c230_map;
	}
	
	
	/**
	 * EKK0341C200_機器提供サービス契約場所変更実行処理
	 * @param  param            モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param  fixedText        ユーザ任意文字列
	 * @param  kk0341_a010_map  機器提供サービス契約一意照会マップ
	 * @param kk0081_a010_map   サービス契約一意照会マップ
	 * @param itensPlaceNo      移転先住所設置場所番号
	 * @return
	 */
	private HashMap<String, Object> executeEKK0341C200(IRequestParameterReadWrite param, String fixedText, 
			HashMap<String, Object> kk0341_a010_map, HashMap<String, Object> kk0081_a010_map, String itensPlaceNo) throws Exception {
		/** 前準備 **/
		HashMap<String, Object> paramMap = (HashMap<String, Object>)param.getData(fixedText);
		HashMap<String, Object> condMap;
		HashMap<String, Object> reqMap;
		Map<?, ?> resMap;

		// 住所変更登録コモンコンポーネントマッピングクラスインスタンス
		JKKAdchgMapperCC mapper = JKKAdchgMapperCC.getInstance();
		// SCリクエストInvoker
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		condMap = new HashMap<String, Object>();
		// 機器提供サービス契約番号
		condMap.put(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO, getMapString(kk0341_a010_map, EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO));
		// 機器設置先場所番号
		condMap.put(EKK0341A010CBSMsg1List.KIKI_STC_SAKI_PLACE_NO, itensPlaceNo);
		// 申込明細番号
		condMap.put(EKK0341A010CBSMsg1List.MSKM_DTL_NO, getMapString(kk0081_a010_map, EKK0081A010CBSMsg1List.MSKM_DTL_NO));
		// 予約適用年月日
// OM-2014-0000041対応 20140420 星野 MOD START
//// 品質強化試験追加分 故障No.100023対応 20121230 星野 MOD START
////		condMap.put(EKK0341A010CBSMsg1List.RSV_APLY_YMD, JKKAdchgConstCC.DEFAULT_RSV_APLY_YMD);
//		condMap.put(EKK0341A010CBSMsg1List.RSV_APLY_YMD, paramMap.get("rsv_aply_ymd") );
//// 品質強化試験追加分 故障No.100023対応 20121230 星野 MOD END
		condMap.put(EKK0341A010CBSMsg1List.RSV_APLY_YMD, JKKAdchgConstCC.DEFAULT_RSV_APLY_YMD );
// OM-2014-0000041対応 20140420 星野 MOD END
		// 異動区分
		condMap.put(EKK0341A010CBSMsg1List.IDO_DIV, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_IDO_DIV));
		// 宅内機器異動コード
		condMap.put(EKK0341A010CBSMsg1List.TAKNKIKI_IDO_CD, getMapString(kk0341_a010_map, EKK0341A010CBSMsg1List.TAKNKIKI_IDO_CD));

		HashMap<String, Object> kksv_work_map = itenmSvcKei(param, fixedText, kk0341_a010_map);
		kksv_work_map.put(JKKAdchgConstCC.PARAM_KEY_NEW_SVC_KEI_NO, getMapString(kksv_work_map, EKK0081A010CBSMsg1List.SVC_KEI_NO));
		kksv_work_map.put(JKKAdchgConstCC.PARAM_KEY_NEW_KEI_KAIS_UCWK_NO, getMapString(kk0341_a010_map, EKK0341A010CBSMsg1List.SVC_KEI_KAISEN_UCWK_NO));
		condMap.put(JKKAdchgMapperCC.UPD_DT_KKTK_SVC_KEI_UPD_DTM_BEF, kk0341_a010_map.get(EKK0341A010CBSMsg1List.LAST_UPD_DTM));

		// EKK0341C200_機器提供サービス契約場所変更
		reqMap = mapper.setEKK0341C200(param, fixedText, condMap);
		resMap = scCall.run(reqMap, keepSesHandle.get());
		HashMap<String, Object> kk0341_c200_map = mapper.getEKK0341C200(param, fixedText, resMap);
		mapper.scResultCheck(param);
		
		// 排他情報の引継
		kk0341_a010_map.put(EKK0341A010CBSMsg1List.LAST_UPD_DTM, getMapString(kk0341_c200_map, EKK0341C191CBSMsg.UPD_DTM));
		return kk0341_c200_map;
	}
	
	
	/**
	 * EKK0341C220 機器提供サービス契約場所変更確定実行処理
	 * @param  param            モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param  fixedText        ユーザ任意文字列
	 * @param  kk0341_a010_map  機器提供サービス契約一意照会マップ
	 * @param  kk0341_c200_map
	 * @return
	 */
	private HashMap<String, Object> executeEKK0341C220(IRequestParameterReadWrite param, String fixedText, 
			HashMap<String, Object> kk0341_a010_map, HashMap<String, Object> kk0341_c200_map) throws Exception {
		/** 前準備 **/
		HashMap<String, Object> paramMap = (HashMap<String, Object>)param.getData(fixedText);
		HashMap<String, Object> condMap;
		HashMap<String, Object> reqMap;
		Map<?, ?> resMap;

		// 住所変更登録コモンコンポーネントマッピングクラスインスタンス
		JKKAdchgMapperCC mapper = JKKAdchgMapperCC.getInstance();
		// SCリクエストInvoker
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		condMap = new HashMap<String, Object>();
		// 機器提供サービス契約番号
		condMap.put(EKK0341C220CBSMsg.KKTK_SVC_KEI_NO, getMapString(kk0341_a010_map, EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO));
		// 世代登録年月日時分秒
		condMap.put(EKK0341C220CBSMsg.GENE_ADD_DTM, getMapString(kk0341_c200_map, EKK0341C200CBSMsg.GENE_ADD_DTM));
		// 予約適用年月日
// OM-2014-0000041対応 20140420 星野 MOD START
//// 品質強化試験追加分 故障No.100023対応 20121230 星野 MOD START
////		condMap.put(EKK0341C220CBSMsg.RSV_APLY_YMD, JKKAdchgConstCC.DEFAULT_RSV_APLY_YMD);
//		condMap.put(EKK0341C220CBSMsg.RSV_APLY_YMD,  paramMap.get("rsv_aply_ymd") );
//// 品質強化試験追加分 故障No.100023対応 20121230 星野 MOD END
		condMap.put(EKK0341C220CBSMsg.RSV_APLY_YMD,  JKKAdchgConstCC.DEFAULT_RSV_APLY_YMD );
// OM-2014-0000041対応 20140420 星野 MOD END
		// 異動区分
		condMap.put(EKK0341C220CBSMsg.IDO_DIV, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_IDO_DIV));
		// 更新年月日時分秒(更新前)
		condMap.put(EKK0341C220CBSMsg.UPD_DTM_BF, kk0341_a010_map.get(EKK0341A010CBSMsg1List.LAST_UPD_DTM));

		// EKK0341C220 機器提供サービス契約場所変更確定
		reqMap = mapper.setEKK0341C220(param, fixedText, condMap);
		resMap = scCall.run(reqMap, keepSesHandle.get());
		HashMap<String, Object> kk0341_c220_map = mapper.getEKK0341C220(param, fixedText, resMap);
		mapper.scResultCheck(param);
		
		// 排他情報の引継
		kk0341_a010_map.put(EKK0341A010CBSMsg1List.LAST_UPD_DTM, getMapString(kk0341_c220_map, EKK0341C191CBSMsg.UPD_DTM));
		return kk0341_c220_map;
	}
	
	
	/**
	 * EKK0341C191_機器提供サービス契約機器変更処理
	 * @param  param            モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param  fixedText        ユーザ任意文字列
	 * @param  kk0341_a010_map  機器提供サービス契約一意照会マップ
	 * @param kk0081_a010_map
	 * @return
	 * @throws Exception
	 */
	private  HashMap<String, Object> executeEKK0341C191(IRequestParameterReadWrite param, String fixedText, 
			HashMap<String, Object> kk0341_a010_map, HashMap<String, Object> kk0081_a010_map) throws Exception {
		/** 前準備 **/
		HashMap<String, Object> paramMap = (HashMap<String, Object>)param.getData(fixedText);
		HashMap<String, Object> condMap;
		HashMap<String, Object> reqMap;
		Map<?, ?> resMap;

		// 住所変更登録コモンコンポーネントマッピングクラスインスタンス
		JKKAdchgMapperCC mapper = JKKAdchgMapperCC.getInstance();
		// SCリクエストInvoker
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		condMap = new HashMap<String, Object>();
		
// ST2-2013-0000465対応 20130209 星野 ADD START
		// 対象機器が ONU・V-ONU の場合は機器製造番号と宅内機器型式コードをクリアする
		String kiki_sbt_cd = getMapString(kk0341_a010_map, EKK0341A010CBSMsg1List.TAKNKIKI_SBT_CD);
		if ("D0".equals(kiki_sbt_cd) || "E0".equals(kiki_sbt_cd)) {
			kk0341_a010_map.put(EKK0341A010CBSMsg1List.TAKNKIKI_MODEL_CD, "");
			kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_SEIZO_NO, "");
		}
// ST2-2013-0000465対応 20130209 星野 ADD END


		// 機器提供サービス契約番号
		condMap.put(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO, kk0341_a010_map.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO));
		// 通信機器セットコード
		condMap.put(EKK0341A010CBSMsg1List.TSUSHIN_KIKI_SET_CD, kk0341_a010_map.get(EKK0341A010CBSMsg1List.TSUSHIN_KIKI_SET_CD));
		// 機器製造番号
		condMap.put(EKK0341A010CBSMsg1List.KIKI_SEIZO_NO, kk0341_a010_map.get(EKK0341A010CBSMsg1List.KIKI_SEIZO_NO));
		// 宅内機器型式コード
		condMap.put(EKK0341A010CBSMsg1List.TAKNKIKI_MODEL_CD, kk0341_a010_map.get(EKK0341A010CBSMsg1List.TAKNKIKI_MODEL_CD));
		// 宅内機器セット品型コード
		condMap.put(EKK0341A010CBSMsg1List.TAKNKIKI_SETHIN_MODEL_CD, kk0341_a010_map.get(EKK0341A010CBSMsg1List.TAKNKIKI_SETHIN_MODEL_CD));
		// 付属品型式コード
		condMap.put(EKK0341A010CBSMsg1List.HUZOKUHIN_MODEL_CD, kk0341_a010_map.get(EKK0341A010CBSMsg1List.HUZOKUHIN_MODEL_CD));
		// 申込明細番号
		condMap.put(EKK0341A010CBSMsg1List.MSKM_DTL_NO, getMapString(kk0081_a010_map, EKK0081A010CBSMsg1List.MSKM_DTL_NO));
		// 予約適用年月日
// 品質強化試験追加分 故障No.100023対応 20121230 星野 MOD START
//		condMap.put(EKK0341A010CBSMsg1List.RSV_APLY_YMD, JKKAdchgConstCC.DEFAULT_RSV_APLY_YMD);
		condMap.put(EKK0341A010CBSMsg1List.RSV_APLY_YMD, paramMap.get("rsv_aply_ymd") );
// 品質強化試験追加分 故障No.100023対応 20121230 星野 MOD END
		// 異動区分
		condMap.put(EKK0341A010CBSMsg1List.IDO_DIV, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_IDO_DIV));
		// eoTV機器設置承認状態コード
		condMap.put(EKK0341A010CBSMsg1List.EO_TV_KKST_SNN_STAT_CD, kk0341_a010_map.get(EKK0341A010CBSMsg1List.EO_TV_KKST_SNN_STAT_CD));
		// 機器設置承認年月日
		condMap.put(EKK0341A010CBSMsg1List.KKST_SNN_YMD, kk0341_a010_map.get(EKK0341A010CBSMsg1List.KKST_SNN_YMD));
		// 更新年月日時分秒(更新前)
		condMap.put(JKKAdchgMapperCC.UPD_DT_KKTK_SVC_KEI_UPD_DTM_BEF, (String)kk0341_a010_map.get(EKK0341A010CBSMsg1List.LAST_UPD_DTM));
	
		// EKK0341C191 機器提供サービス契約機器変更
		reqMap = mapper.setEKK0341C191(param, fixedText, condMap);
		resMap = scCall.run(reqMap, keepSesHandle.get());
		HashMap<String, Object> kk0341_c191_map = mapper.getEKK0341C191(param, fixedText, resMap);
		mapper.scResultCheck(param);
		
		// 排他情報の引継
		kk0341_a010_map.put(EKK0341A010CBSMsg1List.LAST_UPD_DTM, getMapString(kk0341_c191_map, EKK0341C191CBSMsg.UPD_DTM));
		return kk0341_c191_map;
	}
	
	
	/**
	 * EKK0341C320_機器提供サービス契約サービス契約回線内訳変更.
	 * <br>
	 * @param  param            モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param  fixedText        ユーザ任意文字列
	 * @param  kk0341_a010_map  機器提供サービス契約一意照会マップ
	 * @throws 例外が発生した場合
	 */
	private void chgItens_EKK0341C320(IRequestParameterReadWrite param, String fixedText, HashMap<String, Object> kk0341_a010_map, HashMap<String, Object> kk0081_a010_map) throws Exception {

		/** 前準備 **/
		HashMap<String, Object> condMap;
		HashMap<String, Object> paramMap = (HashMap<String, Object>)(param.getData(fixedText));
		HashMap<String, Object> reqMap;
		Map<?, ?> resMap;

		// 住所変更登録コモンコンポーネントマッピングクラスインスタンス
		JKKAdchgMapperCC mapper = JKKAdchgMapperCC.getInstance();
		// SCリクエストInvoker
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		HashMap<String, Object> kksv_work_map = null;

		/** EKK0341C320_機器提供サービス契約サービス契約回線内訳変更 */
		condMap = new HashMap<String, Object>();
		// 機器提供サービス契約番号
		condMap.put(EKK0341C320CBSMsg.KKTK_SVC_KEI_NO, getMapString(kk0341_a010_map, EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO));
		// サービス契約回線内訳番号
		condMap.put(EKK0341C320CBSMsg.SVC_KEI_KAISEN_UCWK_NO, getMapString(paramMap, JKKAdchgConstCC.PARAM_KEY_NEW_KEI_KAIS_UCWK_NO));
		// 申込明細番号
		condMap.put(EKK0341C320CBSMsg.MSKM_DTL_NO, getMapString(kk0081_a010_map, EKK0081A010CBSMsg1List.MSKM_DTL_NO));
		// 機器提供サービス契約引継発生年月日
// IT1-2013-000ZZZZ対応 20130530 星野 MOD START
//		condMap.put(EKK0341C320CBSMsg.KKTK_SVC_KEI_HKHASYMD, "");
		condMap.put(EKK0341C320CBSMsg.KKTK_SVC_KEI_HKHASYMD, JCCBPCommon.getOpeDate(null));
// IT1-2013-000ZZZZ対応 20130530 星野 MOD END
		// 予約適用年月日
// OM-2014-0000041対応 20140420 星野 MOD START
//// IT2-2013-000XXXX対応 20130201 星野 MOD START
////		condMap.put(EKK0341C320CBSMsg.RSV_APLY_YMD, JKKAdchgConstCC.DEFAULT_RSV_APLY_YMD);
//		condMap.put(EKK0341C320CBSMsg.RSV_APLY_YMD, paramMap.get("rsv_aply_ymd") );
//// IT2-2013-000XXXX対応 20130201 星野 MOD END
		condMap.put(EKK0341C320CBSMsg.RSV_APLY_YMD, JKKAdchgConstCC.DEFAULT_RSV_APLY_YMD );
// OM-2014-0000041対応 20140420 星野 MOD END
		// 異動区分
		condMap.put(EKK0341C320CBSMsg.IDO_DIV, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_IDO_DIV));
		// 更新年月日時分秒 (更新前)
		//  親契約識別コードが「サービス契約回線内訳」の場合
		if (JKKAdchgConstCC.OYA_KEI_SKBT_CD.SVC_KEI_KAISEN_UCWK.equals(kk0341_a010_map.get(EKK0341A010CBSMsg1List.OYA_KEI_SKBT_CD))) {
			// 機器提供サービス契約一意照会結果．更新年月日時分秒を設定
			condMap.put(EKK0341C320CBSMsg.UPD_DTM_BF, getMapString(kk0341_a010_map, EKK0341A010CBSMsg1List.LAST_UPD_DTM));
		} else {
			// 上記以外の親契約識別コードの場合
			kksv_work_map = itenmSvcKei(param, fixedText, kk0341_a010_map);
			kksv_work_map.put("svc_div", "");
			kksv_work_map.put(JKKAdchgConstCC.PARAM_KEY_NEW_SVC_KEI_NO, getMapString(kksv_work_map, EKK0081A010CBSMsg1List.SVC_KEI_NO));
			// サービス契約一意照会結果．更新年月日時分秒を設定
			condMap.put(EKK0341C320CBSMsg.UPD_DTM_BF, getUpdDtm(param, fixedText, kksv_work_map));
		}

		// EKK0341C320_機器提供サービス契約サービス契約回線内訳変更
		reqMap = mapper.setEKK0341C320(param, fixedText, condMap);
		resMap = scCall.run(reqMap, keepSesHandle.get());
		HashMap<String, Object> kk0341_c320_map = mapper.getEKK0341C320(param, fixedText, resMap);
		mapper.scResultCheck(param);
		
// IT2-2013-000YYYY対応 20130210 星野 ADD START
		// 排他情報の引継
		kk0341_a010_map.put(EKK0341A010CBSMsg1List.LAST_UPD_DTM, getMapString(kk0341_c320_map, EKK0341C320CBSMsg.UPD_DTM));
// IT2-2013-000YYYY対応 20130210 星野 ADD END

	}
// IT2-2013-000YYYY対応 20130210 星野 ADD START
	/**
	 * 機器の交換を行う
	 * @param  param            モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param  fixedText        ユーザ任意文字列
	 * @param  kk0341_a010_map  機器提供サービス契約一意照会マップ
	 * @throws Exception 
	 */
	// ANK-3387-00-00 MOD START
	//private void chgKiki_EKK0341C070(
	private HashMap<String, Object> chgKiki_EKK0341C070(
	// ANK-3387-00-00 MOD END
		IRequestParameterReadWrite param,
		String fixedText, 
		HashMap<String, Object> kk0341_a010_map,
		HashMap<String, Object> kk0081_a010_map_new
	) throws Exception {
		
		/** 前準備 **/
		HashMap<String, Object> condMap;
		HashMap<String, Object> paramMap = (HashMap<String, Object>)(param.getData(fixedText));
		HashMap<String, Object> reqMap;
		Map<?, ?> resMap;

		// 住所変更登録コモンコンポーネントマッピングクラスインスタンス
		JKKAdchgMapperCC mapper = JKKAdchgMapperCC.getInstance();
		// SCリクエストInvoker
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		HashMap<String, Object> kksv_work_map = null;
		
		/** EKK0341C530_機器提供サービス契約機器変更手続開始 */
		// 機器製造番号と宅内機器型式コードをクリアする
		kk0341_a010_map.put(EKK0341A010CBSMsg1List.TAKNKIKI_MODEL_CD, "");
		kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_SEIZO_NO, "");
		// 機器変更理由コード
		kk0341_a010_map.put(EKK0341A010CBSMsg1List.KIKI_CHG_RSN_CD, "");

		// EKK0341C530_機器提供サービス契約機器変更手続開始
		reqMap = mapper.setEKK0341C530(param, fixedText, kk0341_a010_map);
		resMap = scCall.run(reqMap, keepSesHandle.get());
		HashMap<String, Object> kk0341_c530_map = mapper.getEKK0341C530(param, fixedText, resMap);
		mapper.scResultCheck(param);
		// 世代登録年月日
		String kk0341_gene_add_dtm = (String)kk0341_c530_map.get(EKK0341C530CBSMsg.GENE_ADD_DTM);
		// 排他情報の引継
		kk0341_a010_map.put(EKK0341A010CBSMsg1List.LAST_UPD_DTM, getMapString(kk0341_c530_map, EKK0341C530CBSMsg.UPD_DTM));
		
		
		/** EKK0341C231_機器提供サービス契約情報変更（契約変更中） */
		// 違約金発生コード
		kk0341_a010_map.put(EKK0341A010CBSMsg1List.PNLTY_HASSEI_CD, "");
		// 宅内機器異動区分
		kk0341_a010_map.put(EKK0341A010CBSMsg1List.TAKNKIKI_IDO_CD, "");
		
		// EKK0341C231_機器提供サービス契約情報変更（契約変更中）
		reqMap = mapper.setEKK0341C231(param, fixedText, kk0341_a010_map, kk0341_gene_add_dtm);
		resMap = scCall.run(reqMap, keepSesHandle.get());
		HashMap<String, Object> kk0341_c231_map = mapper.getEKK0341C231(param, fixedText, resMap);
		mapper.scResultCheck(param);
		// 排他情報の引継
		kk0341_a010_map.put(EKK0341A010CBSMsg1List.LAST_UPD_DTM, getMapString(kk0341_c231_map, EKK0341C530CBSMsg.UPD_DTM));

		/** EKK0341C070_機器提供サービス契約型式確定 */
		condMap = new HashMap<String, Object>();
		
		// EKK0341C070_機器提供サービス契約型式確定
		reqMap = mapper.setEKK0341C070(param, fixedText, kk0341_a010_map, kk0341_gene_add_dtm);
		resMap = scCall.run(reqMap, keepSesHandle.get());
		mapper.getEKK0341C070(param, fixedText, resMap);
		mapper.scResultCheck(param);
		// ANK-3387-00-00 ADD START
		return kk0341_c231_map;
		// ANK-3387-00-00 ADD END
	}

// IT2-2013-000YYYY対応 20130210 星野 ADD END
	
	
	/**
	 * EKK0341D010_機器提供サービス契約登録 (ONU・V-ONUの追加)
	 * <br>
	 * @param  param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param  fixedText  ユーザ任意文字列
	 * @param  kikiDiv    機器種別 … "1"(ONU)、"2"(V-ONU)
	 * @throws 例外が発生した場合
	 */
	private HashMap<String, Object> addKiki_EKK0341D010(IRequestParameterReadWrite param, String fixedText, String kikiDiv) throws Exception {

		/** 前準備 **/
		HashMap<String, String> condMap;
		HashMap<String, Object> paramMap = (HashMap<String, Object>)(param.getData(fixedText));
		HashMap<String, Object> reqMap;
		Map<?, ?> resMap;

		// 住所変更登録コモンコンポーネントマッピングクラスインスタンス
		JKKAdchgMapperCC mapper = JKKAdchgMapperCC.getInstance();
		// SCリクエストInvoker
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		HashMap<String, Object> kksv_work_map = null;

		/** EKK0341D010_機器提供サービス契約登録 */
		condMap = new HashMap<String, String>();
		//TODO 各サービスの申込明細番号を設定する必要有
		String mskm_dtl_no = null;

		if ("1".equals(kikiDiv)) {
			// "C012"(ONU) ⇒ 機器提供サービスコード
			condMap.put("kktk_svc_cd", "C012");
			// "C18"(ONU) ⇒ 料金コースコード
			condMap.put("pcrs_cd", "C18");
			// "PC1801"(ONU 定額プラン) ⇒ 料金プランコード
			condMap.put("pplan_cd", "PC1801");
			// "D0"(ONU) ⇒ 宅内機器種別コード
			condMap.put("taknkiki_sbt_cd", "D0");

			mskm_dtl_no = (String) paramMap.get("mskm_dtl_no_nt");
			if (mskm_dtl_no == null) {
				mskm_dtl_no = (String) paramMap.get("mskm_dtl_no_tl");
			}

		} else if ("2".equals(kikiDiv)) {
			// "C013"(V-ONU) ⇒ 機器提供サービスコード
			condMap.put("kktk_svc_cd", "C013");
			// "C20"(V-ONU) ⇒ 料金コースコード
			condMap.put("pcrs_cd", "C20");
			// "PC2001"(V-ONU 定額プラン) ⇒ 料金プランコード
			condMap.put("pplan_cd", "PC2001");
			// "E0"(V-ONU) ⇒ 宅内機器種別コード
			condMap.put("taknkiki_sbt_cd", "E0");

			mskm_dtl_no = (String) paramMap.get("mskm_dtl_no_tv");
		}
		// "02"(レンタル) ⇒ 機器提供種別コード
		condMap.put("kktk_sbt_cd", "02");
		condMap.put("hdd_capa_cd", "");
		condMap.put("svc_use_sta_kibo_ymd", "");
		condMap.put("rsv_tsta_kibo_ymd", "");
		condMap.put("kibo_maker_cd", "");
		// "10"(新品) ⇒ 販売種別コード
		condMap.put("hambai_sbt_cd", "10");
		condMap.put("tsushin_kiki_set_cd", "");
		condMap.put("taknkiki_model_cd", "");
		condMap.put("kiki_seizo_no", "");
		condMap.put("taknkiki_sethin_model_cd", "");
		condMap.put("huzokuhin_sbt_cd", "");
// IT1-2013-000ZZZZ対応 20130530 星野 MOD START
//		condMap.put("kiki_stc_saki_place_no", "");
		/** 移転先住所設置場所番号取得 */
		String itensPlaceNo = getItensPlace(param, fixedText, paramMap);
		condMap.put("kiki_stc_saki_place_no", itensPlaceNo);
// IT1-2013-000ZZZZ対応 20130530 星野 MOD END
		// "02"(サービス契約回線内訳) ⇒ 親契約識別コード
		condMap.put("oya_kei_skbt_cd", "02");
		condMap.put("svc_kei_no", "");
		condMap.put("svc_kei_ucwk_no", "");
		// サービス契約回線内訳番号
// ST1-2013-0000242対応 20130126 星野 MOD START
//		condMap.put("svc_kei_kaisen_ucwk_no", getMapString(paramMap, JKKAdchgConstCC.PARAM_KEY_KEI_KAIS_UCWK_LIST, 0, JKKAdchgConstCC.PARAM_KEY_NEW_KEI_KAIS_UCWK_NO));
		condMap.put("svc_kei_kaisen_ucwk_no", (String)paramMap.get("adchg_itens_svkei_kisuw_no"));
// ST1-2013-0000242対応 20130126 星野 MOD END
		condMap.put("op_svc_kei_no", "");
		// SYSID
		condMap.put("sysid", (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_SYSID));
		// 申込明細番号
// ST1-2013-0000242対応 20130126 星野 MOD START
//		condMap.put("mskm_dtl_no", (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_MSKM_DTL_NO));
		condMap.put("mskm_dtl_no", mskm_dtl_no);
// ST1-2013-0000242対応 20130126 星野 MOD END
		condMap.put("link_stb_flg", "");
		// "000001"(みなと倉庫コード) ⇒ 機器引当指定倉庫コード
		condMap.put("kiki_hkat_shitei_soko_cd", "000001");
		// "000"(通常棚) ⇒ 機器引当指定倉庫棚コード
		condMap.put("kiki_hkat_shitei_skdn_cd", "000");
		condMap.put("kiki_soryo_um", "");
		condMap.put("kiki_soryo_saksei_ymd", "");

// IT1-2013-0000114対応 20130122 星野 MOD START
//		// 機器送付先
//		condMap.put("kiki_sohus_nm", "");
//		condMap.put("kiki_sohus_kana", "");
//		condMap.put("kiki_sohus_ad_cd", "");
//		condMap.put("kiki_sohus_pcd", "");
//		condMap.put("kiki_sohus_state_nm", "");
//		condMap.put("kiki_sohus_city_nm", "");
//		condMap.put("kiki_sohus_oaztsu_nm", "");
//		condMap.put("kiki_sohus_azcho_nm", "");
//		condMap.put("kiki_sohus_bnchigo", "");
//		condMap.put("kiki_sohus_adrttm", "");
//		condMap.put("kiki_sohus_adrrm", "");
//		condMap.put("kiki_sohus_telno", "");
//
//		condMap.put("mansion_bukken_no", "");
//		// 機器送付先_契約者住所差異フラグ
//		condMap.put("kiki_sohus_ksh_ad_sai_flg", "");
//
//		// 機器設置先
//		condMap.put("kiki_stc_saki_nm", "");
//		condMap.put("kiki_stc_saki_kana", "");
//		condMap.put("kiki_stc_saki_ad_cd", "");
//		condMap.put("kiki_stc_saki_pcd", "");
//		condMap.put("kiki_stc_saki_state_nm", "");
//		condMap.put("kiki_stc_saki_city_nm", "");
//		condMap.put("kiki_stc_saki_oaztsu_nm", "");
//		condMap.put("kiki_stc_saki_azcho_nm", "");
//		condMap.put("kiki_stc_saki_bnchigo", "");
//		condMap.put("kiki_stc_saki_adrttm", "");
//		condMap.put("kiki_stc_saki_adrrm", "");
//		condMap.put("kiki_stc_sk_telno", "");
//		
//		// 機器設置先_契約者住所差異フラグ
//		condMap.put("kiki_stc_sk_ksh_ad_sai_flg", "");
//		condMap.put("ad_mi_fix_flg", "");
		
// OM-2013-0001914対応 20130912 星野 ADD START
		// OM-2013-0001914対応 20130912 星野 ADD START
		// 送付先住所入力ありの場合
		if( !StringUtils.isEmpty( getMapString( paramMap, "kiki_sohus_pcd" ) ) ){
			// 機器送付先住所手動入力フラグ
			condMap.put( "kiki_shs_ad_man_input_flg", getMapString( paramMap, "kiki_sohus_man_input_flg" ) );
			// 機器送付先住所コード
			condMap.put( EKK0341D010CBSMsg.KIKI_SOHUS_AD_CD, getMapString( paramMap, "kiki_sohus_ad_cd" ) );
			// 機器送付先郵便番号
			condMap.put( EKK0341D010CBSMsg.KIKI_SOHUS_PCD, getMapString( paramMap, "kiki_sohus_pcd" ) );
			// 機器送付先都道府県名
			condMap.put( EKK0341D010CBSMsg.KIKI_SOHUS_STATE_NM, getMapString( paramMap, "kiki_sohus_state_nm" ) );
			// 機器送付先市区町村名
			condMap.put( EKK0341D010CBSMsg.KIKI_SOHUS_CITY_NM, getMapString( paramMap, "kiki_sohus_city_nm" ) );
			// 機器送付先大字通称名
			condMap.put( EKK0341D010CBSMsg.KIKI_SOHUS_OAZTSU_NM, getMapString( paramMap, "kiki_sohus_oaztsu_nm" ) );
			// 機器送付先字丁目名
			condMap.put( EKK0341D010CBSMsg.KIKI_SOHUS_AZCHO_NM, getMapString( paramMap, "kiki_sohus_azcho_nm" ) );
			// 機器送付先番地号
			condMap.put( EKK0341D010CBSMsg.KIKI_SOHUS_BNCHIGO, getMapString( paramMap, "kiki_sohus_bnchigo" ) );
			// 機器送付先住所補記・建物名
			condMap.put( EKK0341D010CBSMsg.KIKI_SOHUS_ADRTTM, getMapString( paramMap, "kiki_sohus_adrttm" ) );
			// 機器送付先住所補記・部屋番号
			condMap.put( EKK0341D010CBSMsg.KIKI_SOHUS_ADRRM, getMapString( paramMap, "kiki_sohus_adrrm" ) );
			// 機器送付先名
			condMap.put("kiki_sohus_nm", getMapString(paramMap, "kiki_sohus_nm"));
			// 機器送付先カナ名
			condMap.put("kiki_sohus_kana", getMapString(paramMap, "kiki_sohus_kana"));
			// 機器送付先電話番号
			condMap.put( EKK0341D010CBSMsg.KIKI_SOHUS_TELNO, getMapString( paramMap, "kiki_shs_tln" ) );
		} else {
			// 機器送付先住所手動入力フラグ（移転先住所は手動入力不可のため0固定）
			condMap.put("kiki_shs_ad_man_input_flg", "0" );
			condMap.put("kiki_sohus_nm", getMapString(paramMap, "cust_nm"));
			condMap.put("kiki_sohus_kana", getMapString(paramMap, "cust_kana"));
// OM-2013-0001914対応 20130912 星野 ADD END
		
			// 機器送付先住所コード
			condMap.put(EKK0341D010CBSMsg.KIKI_SOHUS_AD_CD, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_CD));
			// 機器送付先郵便番号
			condMap.put(EKK0341D010CBSMsg.KIKI_SOHUS_PCD, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_POST_CD));
			// 機器送付先都道府県名
			condMap.put(EKK0341D010CBSMsg.KIKI_SOHUS_STATE_NM, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_STATE));
			// 機器送付先市区町村名
			condMap.put(EKK0341D010CBSMsg.KIKI_SOHUS_CITY_NM, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_CITY));
			// 機器送付先大字通称名
			condMap.put(EKK0341D010CBSMsg.KIKI_SOHUS_OAZTSU_NM, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_OAZTSU));
			// 機器送付先字丁目名
			condMap.put(EKK0341D010CBSMsg.KIKI_SOHUS_AZCHO_NM, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_AZCHO));
			// 機器送付先番地号
			condMap.put(EKK0341D010CBSMsg.KIKI_SOHUS_BNCHIGO, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_BNCHIGO));
			// 機器送付先住所補記・建物名
			condMap.put(EKK0341D010CBSMsg.KIKI_SOHUS_ADRTTM, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_ADRTTM));
			// 機器送付先住所補記・部屋番号
			condMap.put(EKK0341D010CBSMsg.KIKI_SOHUS_ADRRM, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_ADRRM));
			// 機器送付先電話番号
			condMap.put(EKK0341D010CBSMsg.KIKI_SOHUS_TELNO, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_TLN));
// OM-2013-0001914対応 20130912 星野 ADD START
		}
// OM-2013-0001914対応 20130912 星野 ADD END
		// マンション物件番号
		condMap.put(EKK0341D010CBSMsg.MANSION_BUKKEN_NO, (String) paramMap.get(EKK0341D010CBSMsg.MANSION_BUKKEN_NO));
		// 機器送付先_契約者住所差異フラグ
		condMap.put(EKK0341D010CBSMsg.KIKI_SOHUS_KSH_AD_SAI_FLG, (String) paramMap.get(EKK0341D010CBSMsg.KIKI_SOHUS_KSH_AD_SAI_FLG));
		// 機器設置先住所コード
		condMap.put(EKK0341D010CBSMsg.KIKI_STC_SAKI_AD_CD, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_CD));
		// 機器設置先郵便番号
		condMap.put(EKK0341D010CBSMsg.KIKI_STC_SAKI_PCD, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_POST_CD));
		// 機器設置先都道府県名
		condMap.put(EKK0341D010CBSMsg.KIKI_STC_SAKI_STATE_NM, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_STATE));
		// 機器設置先市区町村名
		condMap.put(EKK0341D010CBSMsg.KIKI_STC_SAKI_CITY_NM, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_CITY));
		// 機器設置先大字通称名
		condMap.put(EKK0341D010CBSMsg.KIKI_STC_SAKI_OAZTSU_NM, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_OAZTSU));
		// 機器設置先字丁目名
		condMap.put(EKK0341D010CBSMsg.KIKI_STC_SAKI_AZCHO_NM, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_AZCHO));
		// 機器設置先番地号
		condMap.put(EKK0341D010CBSMsg.KIKI_STC_SAKI_BNCHIGO, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_BNCHIGO));
		// 機器設置先住所補記・建物名
		condMap.put(EKK0341D010CBSMsg.KIKI_STC_SAKI_ADRTTM, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_ADRTTM));
		// 機器設置先住所補記・部屋番号
		condMap.put(EKK0341D010CBSMsg.KIKI_STC_SAKI_ADRRM, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_ADRRM));
		// 機器設置先_契約者住所差異フラグ
		condMap.put(EKK0341D010CBSMsg.KIKI_STC_SK_KSH_AD_SAI_FLG, (String) paramMap.get(EKK0341D010CBSMsg.KIKI_STC_SK_KSH_AD_SAI_FLG));
		// 機器設置先電話番号
		condMap.put(EKK0341D010CBSMsg.KIKI_STC_SK_TELNO, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_TLN));
		// 住所未確定フラグ
		condMap.put(EKK0341D010CBSMsg.AD_MI_FIX_FLG, (String) paramMap.get(EKK0341D010CBSMsg.AD_MI_FIX_FLG));
// IT1-2013-0000114対応 20130122 星野 MOD END
	
		condMap.put("kiki_shs_ad_fix_af_chge_kh", "");
		// "1" ⇒ 機器送付先個別指定フラグ
		condMap.put("kiki_shs_kbt_shitei_flg", "1");
		condMap.put("kiki_shs_hsk_cd_1", "");
		condMap.put("kiki_shs_hsk_cd_2", "");
		condMap.put("kiki_shs_hsk_memo", "");

		condMap.put("kiki_sts_ad_fix_af_chge_kh", "");
		// "0"(整理中でない) ⇒ 機器設置先区画整理中フラグ
		condMap.put("kiki_sts_kkk_seiri_chu_flg", "0");

		condMap.put("kiki_sts_hsk_cd_1", "");
		condMap.put("kiki_sts_hsk_cd_2", "");
		condMap.put("kiki_sts_hsk_memo", "");
		// "00"(直送) ⇒ 配送区分
		condMap.put("haiso_div", "00");
		condMap.put("ftrial_kanyu_ymd", "");
		condMap.put("ftrial_prd_endymd", "");
		condMap.put("honkanyu_ymd", "");
		condMap.put("honkanyu_iko_kigen_ymd", "");
		condMap.put("hosho_cd", "");
		condMap.put("hosho_staymd", "");

		// 違約金発生コード
		condMap.put("pnlty_hassei_cd", "");
		// 住所変更の異動区分 ⇒ 異動区分
		condMap.put("ido_div", (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_IDO_DIV));
		// "01"(STB追加) ⇒ 宅内機器異動コード
		condMap.put("taknkiki_ido_cd", "01");
		condMap.put("cas_card_use_kyodak_ymd", "");
		// "000"(０００) ⇒ 機器付加情報コード
		condMap.put("kiki_huka_info_cd", "");
		condMap.put("haiso_way_cd", "");
		condMap.put("prc_kmk_cd", "");

		String svcKeiNet = (String) paramMap.get("eoh_nt_svc_kei_no");
		String svcKeitel = (String) paramMap.get("eoh_tl_svc_kei_no");
		String svcKeitv = (String) paramMap.get("eoh_tv_svc_kei_no");

		kksv_work_map = new HashMap<String, Object>();
		kksv_work_map.put("svc_div", "1");
		kksv_work_map.put(JKKAdchgConstCC.PARAM_KEY_NEW_KEI_KAIS_UCWK_NO, paramMap.get("adchg_itens_svkei_kisuw_no"));
		// 更新年月日時分秒(更新前)
		if ("1".equals(kikiDiv)) {
			// ONU
			if (!StringUtils.isEmpty(svcKeiNet)) {
				kksv_work_map.put(JKKAdchgConstCC.PARAM_KEY_NEW_SVC_KEI_NO, svcKeiNet);
			}else{
				kksv_work_map.put(JKKAdchgConstCC.PARAM_KEY_NEW_SVC_KEI_NO, svcKeitel);
			}
		} else {
			// V-ONU
			kksv_work_map.put(JKKAdchgConstCC.PARAM_KEY_NEW_SVC_KEI_NO, svcKeitv);
		}
		condMap.put("upd_dtm_bf", getUpdDtm(param, fixedText, kksv_work_map));
// OM-2013-0001914対応 20130912 星野 DEL START
//		condMap.put("kiki_sohus_nm", getMapString(paramMap, "cust_nm"));
//		condMap.put("kiki_sohus_kana", getMapString(paramMap, "cust_kana"));
// OM-2013-0001914対応 20130912 星野 DEL END

		// 請求契約番号
		condMap.put("seiky_kei_no", getMapString(kksv_work_map, JKKAdchgConstCC.PARAM_KEY_NEW_SEIKY_KEI_NO));

// リファクタリング ADD-start
		// 機器送付先住所手動入力フラグ
		condMap.put("seiky_kei_no", getMapString(paramMap, "new_seiky_kei_no"));
// OM-2013-0001914対応 20130912 星野 DEL START
//		condMap.put("kiki_shs_ad_man_input_flg", getMapString(paramMap, "kiki_shs_ad_man_input_flg"));
// OM-2013-0001914対応 20130912 星野 DEL END
// リファクタリング ADD-end
		
		// EKK0341D010_機器提供サービス契約登録
		reqMap = mapper.setEKK0341D010(param, fixedText, condMap);
		resMap = scCall.run(reqMap, keepSesHandle.get());
		HashMap<String, Object> kk0341_d010_map = mapper.getEKK0341D010(param, fixedText, resMap);
		mapper.scResultCheck(param);

// ST1-2013-0000242対応 20130126 星野 DEL START
//		/** EKK0341C320 機器提供サービス契約サービス契約変更(予約適用年月日の入力) */ 
//		HashMap<String, Object> kk0341_c320_inmap = new HashMap<String, Object>();
//		//TODO 各サービスの予約適用年月日を設定する必要有
//		String rsv_aply_ymd = "";
//		if ("1".equals(kikiDiv)) {
//			rsv_aply_ymd = (String)paramMap.get("rsv_aply_ymd_nt");
//			if(rsv_aply_ymd == null || "".equals(rsv_aply_ymd)) {
//				rsv_aply_ymd = (String)paramMap.get("rsv_aply_ymd_tl");
//			}
//		} else if ("2".equals(kikiDiv)) {
//			rsv_aply_ymd = (String)paramMap.get("rsv_aply_ymd_tv");
//		}
//
//		kk0341_c320_inmap.put(EKK0341C320CBSMsg.KKTK_SVC_KEI_NO, kk0341_d010_map.get(EKK0341D010CBSMsg.KKTK_SVC_KEI_NO));
//// リファクタリング MOD-start
////		kk0341_c320_inmap.put(EKK0341C320CBSMsg.SVC_KEI_KAISEN_UCWK_NO, getMapString(paramMap, JKKAdchgConstCC.PARAM_KEY_KEI_KAIS_UCWK_LIST, 0, JKKAdchgConstCC.PARAM_KEY_NEW_KEI_KAIS_UCWK_NO));
//		kk0341_c320_inmap.put(EKK0341C320CBSMsg.SVC_KEI_KAISEN_UCWK_NO, paramMap.get("adchg_itens_svkei_kisuw_no"));
//// リファクタリング MOD-end
//		kk0341_c320_inmap.put(EKK0341C320CBSMsg.RSV_APLY_YMD, rsv_aply_ymd);
//		kk0341_c320_inmap.put(EKK0341C320CBSMsg.IDO_DIV, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_IDO_DIV));
//		kk0341_c320_inmap.put("mskm_dtl_no", mskm_dtl_no);
//		kk0341_c320_inmap.put(EKK0341C320CBSMsg.KKTK_SVC_KEI_HKHASYMD, "");
//		kk0341_c320_inmap.put(EKK0341C320CBSMsg.UPD_DTM_BF, kk0341_d010_map.get(EKK0341D010CBSMsg.UPD_DTM));
//		
//		// 回線内訳変更
//		reqMap = mapper.setEKK0341C320(param, fixedText, kk0341_c320_inmap);
//		resMap = scCall.run(reqMap, keepSesHandle.get());
//// IT1-2012-0002113対応 20121118 MOD START
////		mapper.getEKK0341C320(param, fixedText, resMap);
//		HashMap<String, Object> kk0341_c320_map = mapper.getEKK0341C320(param, fixedText, resMap);
//// IT1-2012-0002113対応 20121118 MOD END
//		mapper.scResultCheck(param);
// ST1-2013-0000242対応 20130126 星野 DEL END
		
		
// IT1-2012-0002113対応 20121118 ADD START
		/** EKK0341C030 機器提供サービス契約照査 */
		HashMap<String, String> kk0341_c030_inmap = new HashMap<String, String>();
		// 機器提供サービス契約番号
		kk0341_c030_inmap.put(EKK0341C030CBSMsg.KKTK_SVC_KEI_NO, (String)kk0341_d010_map.get(EKK0341D010CBSMsg.KKTK_SVC_KEI_NO));
		// 異動区分
		kk0341_c030_inmap.put(EKK0341C030CBSMsg.IDO_DIV, (String) paramMap.get(JKKAdchgConstCC.PARAM_KEY_IDO_DIV));
		// 機器認証ID NULL
		kk0341_c030_inmap.put(EKK0341C030CBSMsg.KIKI_NINSHO_ID, null);
		// 機器認証IDパスワード NULL
		kk0341_c030_inmap.put(EKK0341C030CBSMsg.KIKI_NINSHO_ID_PWD, null);
		// 照査解約完了コード（照査OK）
		kk0341_c030_inmap.put(EKK0341C030CBSMsg.SHOSA_DSL_FIN_CD, "1");
		// 更新年月日時分秒(更新前)
// ST1-2013-0000242対応 20130126 星野 MOD START
//		kk0341_c030_inmap.put(EKK0341C030CBSMsg.UPD_DTM_BF, (String)kk0341_c320_map.get(EKK0341C320CBSMsg.UPD_DTM));
		kk0341_c030_inmap.put(EKK0341C030CBSMsg.UPD_DTM_BF, (String)kk0341_d010_map.get(EKK0341D010CBSMsg.UPD_DTM));
// ST1-2013-0000242対応 20130126 星野 MOD END

		// EKK0341C030 機器提供サービス契約照査
		reqMap = mapper.setEKK0341C030(param, fixedText, kk0341_c030_inmap);
		resMap = scCall.run(reqMap, keepSesHandle.get());
		// ANK-3387-00-00 MOD START
		//mapper.getEKK0341C320(param, fixedText, resMap);
		HashMap<String, Object> kk0341_c030_map = mapper.getEKK0341C320(param, fixedText, resMap);
		// 世代登録年月日を最新にする。
		kk0341_d010_map.put(EKK0341C030CBSMsg.GENE_ADD_DTM, (String)kk0341_c030_map.get(EKK0341D010CBSMsg.GENE_ADD_DTM));
		// ANK-3387-00-00 MOD END
		mapper.scResultCheck(param);
		
// IT1-2012-0002113対応 20121118 ADD END
		return kk0341_d010_map;
	}
	
	
	/**
	 * EKK2101D010 住所変更明細登録 (ONU・V-ONUの追加).
	 * <br>
	 * @param  param        モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param  fixedText    ユーザ任意文字列
	 * @param  paramMap     追加元マップ情報 (マッピング要素を定義してあるものに限る)
	 * @param  add_kiki_map 追加された機器情報
	 * @throws 例外が発生した場合
	 */
	private void addKiki_EKK2101D010(IRequestParameterReadWrite param, String fixedText, HashMap<String, Object> paramMap, HashMap<String, Object> add_kiki_map) throws Exception {


		HashMap<String, Object> kksv_work_map = null;
		ArrayList<HashMap<String, Object>> kktk_svc_kei_list = (ArrayList<HashMap<String, Object>>)paramMap.get(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_LIST_KKTK_SVC_KEI);
		HashMap<String, Object> kktk_svc_kei_map = new HashMap<String, Object>();
		// 変更対象契約番号
		kktk_svc_kei_map.put(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHG_TG_KEI_NO, getMapString(add_kiki_map, EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO));
		// 変更前識別番号
		kktk_svc_kei_map.put(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHBF_SKBT_NO, "");
		// 変更後識別番号
		kktk_svc_kei_map.put(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHAF_SKBT_NO, getMapString(add_kiki_map, EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO));
		// 追加された機器フラグ...工事へ引き渡す機器の情報設定時に使用
		kktk_svc_kei_map.put("add_flg", "1");
		
// IT2-2013-0000112 2013.02.04 k.suzuki add start
		// リストに設定済みの"kiki_rec_cnt"は (リスト.size() -1) までのはず。
		int kktk_svc_kei_list_size = kktk_svc_kei_list.size();
		String kiki_rec_cnt_value = String.valueOf(kktk_svc_kei_list_size);
		kktk_svc_kei_map.put("kiki_rec_cnt", kiki_rec_cnt_value);
// IT2-2013-0000112 2013.02.04 k.suzuki add end
		
		kktk_svc_kei_list.add(kktk_svc_kei_map);

		String svc_cd = "";
		if ("D0".equals(getMapString(add_kiki_map, EKK0341D010CBSMsg.TAKNKIKI_SBT_CD))) {
			// ネット
			svc_cd = "01";
			if (kksv_work_map == null) {
				// 電話
				svc_cd = "02";
			}
		} else if ("E0".equals(getMapString(add_kiki_map, EKK0341D010CBSMsg.TAKNKIKI_SBT_CD))) {
			// テレビ
			svc_cd = "03";
		}

		// 登録情報の反映 (機器提供サービス契約)
		HashMap<String, Object> reflection_map = new HashMap<String, Object>();
		// 住所変更明細番号
		reflection_map.put(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_ADCHG_DTL_NO, "");
		// 住所変更明細番号(払出分)
		reflection_map.put(JKKAdchgConstCC.PARAM_KEY_NEW_ADCHG_DTL_ADCHG_DTL_NO, "");
		// 変更対象契約番号
		reflection_map.put(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHG_TG_KEI_NO, getMapString(add_kiki_map, EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO));
		// 変更前識別番号
		reflection_map.put(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHBF_SKBT_NO, "");
		// 変更後識別番号
		reflection_map.put(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHAF_SKBT_NO, getMapString(add_kiki_map, EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO));
		// サービスコード
		reflection_map.put(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_SVC_CD, svc_cd);
		// 機器提供サービス契約番号
		reflection_map.put(JKKAdchgConstCC.PARAM_KEY_KKTK_SVC_KEI_NO, getMapString(add_kiki_map, EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO));
		// 更新年月日時分秒(更新前)
		reflection_map.put(JKKAdchgConstCC.PARAM_KEY_KKTK_SVC_KEI_UPD_DTM_BEF, "");
		// 更新年月日時分秒(更新後)
		reflection_map.put(JKKAdchgConstCC.PARAM_KEY_KKTK_SVC_KEI_UPD_DTM_AFT, getMapString(add_kiki_map, EKK0341A010CBSMsg1List.LAST_UPD_DTM));
		// 利用サービス変更区分 … 撤去種類だから｢追加｣はない？
		reflection_map.put(JKKAdchgConstCC.PARAM_KEY_USE_OP_SVC_CHG_DIV, "");

// IT2-2013-0000112 2013.02.04 k.suzuki add start
		// 上で設定したのと同じものをputする。
		reflection_map.put("kiki_rec_cnt", kiki_rec_cnt_value);
// IT2-2013-0000112 2013.02.04 k.suzuki add end

		reflectionMapKiki(param, fixedText, paramMap, reflection_map);
	}
	
	
	/**
	 * 登録情報の反映 (機器提供サービス契約).
	 * ※マッピング要素のうち、nullであるものは更新されない。(ブランクは上書き)
	 * <br>
	 * @param  param           モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param  fixedText       ユーザ任意文字列
	 * @param  paramMap        追加元マップ情報 (マッピング要素を定義してあるものに限る)
	 * @param  reflection_map  反映する情報を格納したマップ
	 * @throws 例外が発生した場合
	 */
	public void reflectionMapKiki(IRequestParameterReadWrite param, String fixedText, HashMap<String, Object> paramMap, HashMap<String, Object> reflection_map) throws Exception {

		HashMap<String, Object> trgt_map = null;
		boolean work_flg = false;

		/** 住所変更明細情報リスト(機器提供サービス契約) */
		String reflection_kiki_rec_cnt = getMapString(reflection_map, "kiki_rec_cnt");

		// 対象リスト
		ArrayList<HashMap<String, Object>> adchg_dtl_list_kktk_svc_kei = (ArrayList<HashMap<String, Object>>)(paramMap.get(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_LIST_KKTK_SVC_KEI));
		// 対象リスト．イテレータ
		Iterator<HashMap<String, Object>> adchg_dtl_list_kktk_svc_kei_iterator = adchg_dtl_list_kktk_svc_kei.iterator();
		while (adchg_dtl_list_kktk_svc_kei_iterator.hasNext()) {
			// 対象リスト．次要素
			trgt_map = adchg_dtl_list_kktk_svc_kei_iterator.next();

			String kiki_rec_cnt = getMapString(trgt_map, "kiki_rec_cnt");

			// 機器明細番号でマッチング
			if (reflection_kiki_rec_cnt.equals(kiki_rec_cnt)) {
				// 住所変更明細番号
				if (reflection_map.containsKey(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_ADCHG_DTL_NO) && reflection_map.get(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_ADCHG_DTL_NO) != null) {
// IT2-2013-0000112 2013.02.04 k.suzuki mod start
//					trgt_map.put(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_ADCHG_DTL_NO, getMapString(reflection_map, JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHG_TG_KEI_NO));
					trgt_map.put(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_ADCHG_DTL_NO, getMapString(reflection_map, JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_ADCHG_DTL_NO));
// IT2-2013-0000112 2013.02.04 k.suzuki mod end
				}
				// 払出_住所変更明細番号
				if (reflection_map.containsKey(JKKAdchgConstCC.PARAM_KEY_NEW_ADCHG_DTL_ADCHG_DTL_NO) && reflection_map.get(JKKAdchgConstCC.PARAM_KEY_NEW_ADCHG_DTL_ADCHG_DTL_NO) != null) {
					trgt_map.put(JKKAdchgConstCC.PARAM_KEY_NEW_ADCHG_DTL_ADCHG_DTL_NO, getMapString(reflection_map, JKKAdchgConstCC.PARAM_KEY_NEW_ADCHG_DTL_ADCHG_DTL_NO));
				}
				// 変更対象契約番号
				if (reflection_map.containsKey(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHG_TG_KEI_NO) && reflection_map.get(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHG_TG_KEI_NO) != null) {
					trgt_map.put(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHG_TG_KEI_NO, getMapString(reflection_map, JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHG_TG_KEI_NO));
				}
				// 変更前識別番号
				if (reflection_map.containsKey(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHBF_SKBT_NO) && reflection_map.get(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHBF_SKBT_NO) != null) {
					trgt_map.put(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHBF_SKBT_NO, getMapString(reflection_map, JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHBF_SKBT_NO));
				}
				// 変更後識別番号
				if (reflection_map.containsKey(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHAF_SKBT_NO) && reflection_map.get(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHAF_SKBT_NO) != null) {
					trgt_map.put(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHAF_SKBT_NO, getMapString(reflection_map, JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHAF_SKBT_NO));
				}
				// 宅内機器撤去種別
				if (reflection_map.containsKey(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_TKKIKI_TEKKYO_SBT_CD) && reflection_map.get(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_TKKIKI_TEKKYO_SBT_CD) != null) {
					trgt_map.put(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_TKKIKI_TEKKYO_SBT_CD, getMapString(reflection_map, JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_TKKIKI_TEKKYO_SBT_CD));
				}
				work_flg = true;
				break;
			}
		}
		// リストの要素に該当しない場合、新規レコードとしてリストへ追加する
		if (!work_flg) {
			trgt_map = new HashMap<String, Object>();
			// 住所変更明細番号
// IT2-2013-0000112 2013.02.04 k.suzuki mod start
//			trgt_map.put(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_ADCHG_DTL_NO, getMapString(reflection_map, JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHG_TG_KEI_NO));
			trgt_map.put(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_ADCHG_DTL_NO, getMapString(reflection_map, JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_ADCHG_DTL_NO));
// IT2-2013-0000112 2013.02.04 k.suzuki mod end
			// 払出_住所変更明細番号
			trgt_map.put(JKKAdchgConstCC.PARAM_KEY_NEW_ADCHG_DTL_ADCHG_DTL_NO, getMapString(reflection_map, JKKAdchgConstCC.PARAM_KEY_NEW_ADCHG_DTL_ADCHG_DTL_NO));
			// 変更対象契約番号
			trgt_map.put(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHG_TG_KEI_NO, getMapString(reflection_map, JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHG_TG_KEI_NO));
			// 変更前識別番号
			trgt_map.put(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHBF_SKBT_NO, getMapString(reflection_map, JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHBF_SKBT_NO));
			// 変更後識別番号
			trgt_map.put(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHAF_SKBT_NO, getMapString(reflection_map, JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHAF_SKBT_NO));
			// 宅内機器撤去種別
			trgt_map.put(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_TKKIKI_TEKKYO_SBT_CD, getMapString(reflection_map, JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_TKKIKI_TEKKYO_SBT_CD));

			adchg_dtl_list_kktk_svc_kei.add(trgt_map);
		}

		/** 機器提供サービス契約情報リスト */
		String reflection_kktk_svc_kei_no = getMapString(reflection_map, JKKAdchgConstCC.PARAM_KEY_KKTK_SVC_KEI_NO);
		ArrayList<HashMap<String, Object>> kktk_svc_list = null;
		String svc_cd = getMapString(reflection_map, "svc_cd");
		work_flg = false;

		// 対象リスト : サービスコードより判定 (指定しない場合は以降の処理を行わない)
		//TODO 各サービスの機器提供サービスリストを設定する
		if ("01".equals(svc_cd)) {
			// eo光ネット
			kktk_svc_list = (ArrayList<HashMap<String, Object>>)(paramMap.get("eoh_nt_kktk_svc_list"));
		} else if ("02".equals(svc_cd)) {
			// eo光電話
			kktk_svc_list = (ArrayList<HashMap<String, Object>>)(paramMap.get("eoh_tl_kktk_svc_list"));
		} else if ("03".equals(svc_cd)) {
			// eo光テレビ
			kktk_svc_list = (ArrayList<HashMap<String, Object>>)(paramMap.get("eoh_tv_kktk_svc_list"));
		}
		if ((kktk_svc_list == null) || (kktk_svc_list.size() == 0)) {
			return;
		}

		// 対象リスト．イテレータ
		Iterator<HashMap<String, Object>> kktk_svc_list_iterator = kktk_svc_list.iterator();
		while (kktk_svc_list_iterator.hasNext()) {
			// 対象リスト．次要素
			trgt_map = adchg_dtl_list_kktk_svc_kei_iterator.next();

			String kktk_svc_kei_no = getMapString(trgt_map, JKKAdchgConstCC.PARAM_KEY_KKTK_SVC_KEI_NO);

			// 機器提供サービス契約番号でマッチング
			if (reflection_kktk_svc_kei_no.equals(kktk_svc_kei_no)) {
				// 利用サービス変更区分
				if (reflection_map.containsKey(JKKAdchgConstCC.PARAM_KEY_USE_OP_SVC_CHG_DIV) && reflection_map.get(JKKAdchgConstCC.PARAM_KEY_USE_OP_SVC_CHG_DIV) != null) {
					trgt_map.put(JKKAdchgConstCC.PARAM_KEY_USE_OP_SVC_CHG_DIV, getMapString(reflection_map, JKKAdchgConstCC.PARAM_KEY_USE_OP_SVC_CHG_DIV));
				}
				// 機器提供サービス契約番号
				if (reflection_map.containsKey(JKKAdchgConstCC.PARAM_KEY_KKTK_SVC_KEI_NO) && reflection_map.get(JKKAdchgConstCC.PARAM_KEY_KKTK_SVC_KEI_NO) != null) {
					trgt_map.put(JKKAdchgConstCC.PARAM_KEY_KKTK_SVC_KEI_NO, getMapString(reflection_map, JKKAdchgConstCC.PARAM_KEY_KKTK_SVC_KEI_NO));
				}
				// 更新年月日時分秒(更新前)
				if (reflection_map.containsKey(JKKAdchgConstCC.PARAM_KEY_KKTK_SVC_KEI_UPD_DTM_BEF) && reflection_map.get(JKKAdchgConstCC.PARAM_KEY_KKTK_SVC_KEI_UPD_DTM_BEF) != null) {
					trgt_map.put(JKKAdchgConstCC.PARAM_KEY_KKTK_SVC_KEI_UPD_DTM_BEF, getMapString(reflection_map, JKKAdchgConstCC.PARAM_KEY_KKTK_SVC_KEI_UPD_DTM_BEF));
				}
				// 更新年月日時分秒(更新後)
				if (reflection_map.containsKey(JKKAdchgConstCC.PARAM_KEY_KKTK_SVC_KEI_UPD_DTM_AFT) && reflection_map.get(JKKAdchgConstCC.PARAM_KEY_KKTK_SVC_KEI_UPD_DTM_AFT) != null) {
					trgt_map.put(JKKAdchgConstCC.PARAM_KEY_KKTK_SVC_KEI_UPD_DTM_AFT, getMapString(reflection_map, JKKAdchgConstCC.PARAM_KEY_KKTK_SVC_KEI_UPD_DTM_AFT));
				}
			}
		}
		// リストの要素に該当しない場合、新規レコードとしてリストへ追加する
		if (!work_flg) {
			trgt_map = new HashMap<String, Object>();
			// 利用サービス変更区分
			trgt_map.put(JKKAdchgConstCC.PARAM_KEY_USE_OP_SVC_CHG_DIV, getMapString(reflection_map, JKKAdchgConstCC.PARAM_KEY_USE_OP_SVC_CHG_DIV));
			// 機器提供サービス契約番号
			trgt_map.put(JKKAdchgConstCC.PARAM_KEY_KKTK_SVC_KEI_NO, getMapString(reflection_map, JKKAdchgConstCC.PARAM_KEY_KKTK_SVC_KEI_NO));
			// 更新年月日時分秒(更新前)
			trgt_map.put(JKKAdchgConstCC.PARAM_KEY_KKTK_SVC_KEI_UPD_DTM_BEF, getMapString(reflection_map, JKKAdchgConstCC.PARAM_KEY_KKTK_SVC_KEI_UPD_DTM_BEF));
			// 更新年月日時分秒(更新後)
			trgt_map.put(JKKAdchgConstCC.PARAM_KEY_KKTK_SVC_KEI_UPD_DTM_AFT, getMapString(reflection_map, JKKAdchgConstCC.PARAM_KEY_KKTK_SVC_KEI_UPD_DTM_AFT));

			kktk_svc_list.add(trgt_map);
		}

	}
	
	
	/**
	 * 転居元の更新年月日時分秒(変更前)の取得.
	 * <br>
	 * @param  param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param  fixedText  ユーザ任意文字列
	 * @param  adchgMap   機器提供サービス契約一意照会マップ
	 * @throws 例外が発生した場合
	 */
	private String getUpdDtmBf(IRequestParameterReadWrite param, String fixedText, String kaisen_wtwk_bf) throws Exception {

		/** 前準備 **/
		HashMap<String, String> condMap;
		HashMap<String, Object> reqMap;
		Map<?, ?> resMap;

		// 住所変更登録コモンコンポーネントマッピングクラスインスタンス
		JKKAdchgMapperCC mapper = JKKAdchgMapperCC.getInstance();
		// SCリクエストInvoker
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();


		/** EKK0251A010_サービス契約回線内訳一意照会 */
		condMap = new HashMap<String, String>();
		condMap.put(JKKAdchgMapperCC.COND_KEY_SVC_KEI_KAIS_UCWK_NO, kaisen_wtwk_bf);
		reqMap = mapper.setEKK0251A010(param, fixedText, condMap);
		resMap = scCall.run(reqMap, keepSesHandle.get());
		HashMap<String, Object> kk0251_a010_map = mapper.getEKK0251A010(param, fixedText, resMap);
		mapper.scResultCheck(param);

		return getMapString(kk0251_a010_map, "last_upd_dtm");
	
	}
	
	
	/**
	 * 更新年月日時分秒(変更前)の取得.
	 * <br>
	 * @param  param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param  fixedText  ユーザ任意文字列
	 * @param  adchgMap   機器提供サービス契約一意照会マップ
	 * @throws 例外が発生した場合
	 */
	private String getUpdDtm(IRequestParameterReadWrite param, String fixedText, HashMap<String, Object> adchgMap) throws Exception {

		/** 前準備 **/
		HashMap<String, String> condMap;
		HashMap<String, Object> paramMap = (HashMap<String, Object>)(param.getData(fixedText));
		HashMap<String, Object> reqMap;
		Map<?, ?> resMap;

		// 住所変更登録コモンコンポーネントマッピングクラスインスタンス
		JKKAdchgMapperCC mapper = JKKAdchgMapperCC.getInstance();
		// SCリクエストInvoker
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		if("1".equals(adchgMap.get("svc_div"))) {
			/** EKK0251A010_サービス契約回線内訳一意照会 */
			condMap = new HashMap<String, String>();

			if (StringUtils.isEmpty(getMapString(paramMap, JKKAdchgConstCC.PARAM_KEY_KEI_KAIS_UCWK_LIST, 0, JKKAdchgConstCC.PARAM_KEY_NEW_KEI_KAIS_UCWK_NO))) {
				condMap.put(JKKAdchgMapperCC.COND_KEY_SVC_KEI_KAIS_UCWK_NO, getMapString(adchgMap, JKKAdchgConstCC.PARAM_KEY_NEW_KEI_KAIS_UCWK_NO));
			} else {

				condMap.put(JKKAdchgMapperCC.COND_KEY_SVC_KEI_KAIS_UCWK_NO, 
						getMapString(paramMap, JKKAdchgConstCC.PARAM_KEY_KEI_KAIS_UCWK_LIST, 0, JKKAdchgConstCC.PARAM_KEY_NEW_KEI_KAIS_UCWK_NO));

			}

			reqMap = mapper.setEKK0251A010(param, fixedText, condMap);
			resMap = scCall.run(reqMap, keepSesHandle.get());
			HashMap<String, Object> kk0251_a010_map = mapper.getEKK0251A010(param, fixedText, resMap);
			mapper.scResultCheck(param);

			if (StringUtils.isEmpty(getMapString(kk0251_a010_map, "last_upd_dtm"))) {
				return getMapString(kk0251_a010_map, "add_dtm");
			} else {
				return getMapString(kk0251_a010_map, "last_upd_dtm");
			}

		} else {
			/** EKK0081A010_サービス契約一意照会 */
			condMap = new HashMap<String, String>();
			condMap.put(JKKAdchgMapperCC.COND_KEY_SVC_KEI_NO, getMapString(adchgMap, JKKAdchgConstCC.PARAM_KEY_NEW_SVC_KEI_NO));
			condMap.put(JKKAdchgMapperCC.COND_KEY_OPEDATE, getMapString(paramMap, JKKAdchgConstCC.PARAM_KEY_OPE_DATE));
			reqMap = mapper.setEKK0081A010(param, fixedText, condMap);
			resMap = scCall.run(reqMap, keepSesHandle.get());
			HashMap<String, Object> kk0081_a010_map = mapper.getEKK0081A010(param, fixedText, resMap);
			mapper.scResultCheck(param);

			return getMapString(kk0081_a010_map, "last_upd_dtm");
		}
	}
	
	
// IT2-2013-0000139対応 20130210 沖田 ADD START
	/**
	 * 指定されたサービス契約内訳番号でコース変更の異動予約を取得します.
	 * @param param リクエストパラメータ
	 * @param fixedText 任意文字列
	 * @param svcKeiUcwkNo サービス契約内訳番号
	 * @return 異動予約レコードのうち、予約適用年月日が最大のもの
	 * @throws Exception
	 */
	private HashMap<String, Object> selectIdoRsvBySvcKeiUcwkNo(IRequestParameterReadWrite param, String fixedText, String svcKeiUcwkNo) throws Exception {

		if (StringUtils.isEmpty(svcKeiUcwkNo)) {
			return null;
		}
		HashMap<String, String> condMap = new HashMap<String, String>();
		HashMap<String, Object> reqMap;
		Map<?, ?> resMap;

		// 住所情報変更初期表示情報取得コモンコンポーネント
		// マッピングクラスインスタンスを取得
		JKKAdchgMapperCC mapper = JKKAdchgMapperCC.getInstance();

		// SCリクエストInvokerを取得
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		// ＫＥＹ＿異動予約詳細コード
		condMap.put(EKK1681B001CBSMsg.KEY_IDO_RSV_DTL_CD, JKKAdchgConstCC.IDO_RSV_DTL_CD.CHG_PCRS);
		// ＫＥＹ＿異動区分
// OM-2013-0002705対応 20130929 星野 MOD START
//		condMap.put(EKK1681B001CBSMsg.KEY_IDO_DIV, "00068");
		condMap.put(EKK1681B001CBSMsg.KEY_IDO_DIV, "00019");
// OM-2013-0002705対応 20130929 星野 MOD END
		// ＫＥＹ＿サービス契約内訳番号
		condMap.put(EKK1681B001CBSMsg.KEY_SVC_KEI_UCWK_NO, svcKeiUcwkNo);
		// ＫＥＹ＿ソート項目Ｎｏ
		condMap.put(EKK1681B001CBSMsg.KEY_SORT_ITEM_NO, JKKAdchgConstCC.EKK1681B001_SORT_ITEM.RSV_APLY_YMD);
		// ＫＥＹ＿ソート区分
		condMap.put(EKK1681B001CBSMsg.KEY_SORT_KBN, JKKAdchgConstCC.SORT_KBN.DESC);
// OM-2013-0005402対応 20140103 星野 ADD START
		// ＫＥＹ＿異動予約状態コード
		condMap.put(EKK1681B001CBSMsg.KEY_IDO_RSV_STAT_CD, "00,03");
// OM-2013-0005402対応 20140103 星野 ADD END

		reqMap = mapper.setEKK1681B001(param, fixedText, condMap);
		resMap = scCall.run( reqMap, keepSesHandle.get());
		ArrayList<HashMap<String,Object>> resultList = mapper.getEKK1681B001(param, fixedText, resMap);
		mapper.scResultCheck(param);
		if (resultList != null && !resultList.isEmpty()) {
			// 結果が取得できた場合、予約適用年月日が最新のものを返却
			return resultList.get(0);
		}
		return null;
	}
// IT2-2013-0000139対応 20130210 沖田 ADD START
			
	/**
	 * 対象のサービス契約を保留するか判定する.
	 * <br>
	 * @param  svc_chg_div  サービス契約変更区分
	 * @return 判定結果 (true:あり、false:なし)
	 */
	private boolean isSvkeiHold(String svc_chg_div) {
		// 保留
		if (JKKAdchgConstCC.CD00849_HOLD.equals(svc_chg_div)) {
			return true;
		}
		return false;
	}
	
	
	/**
	 * パラメータ取得(HashMap).
	 * <br>
	 * @param  targetMap  取得元マップ
	 * @param  targetKey  取得元キー項目
	 * @return 取得文字列
	 */
	private String getMapString(HashMap<String, Object> targetMap, String targetKey) {
		String resultStr = new String();

		if (targetMap != null) {
			if ((targetKey != null) && (!"".equals(targetKey))) {
				if (targetMap.containsKey(targetKey)) {
					resultStr = (String) targetMap.get(targetKey);
				}
			}
		}

		return resultStr;
	}
	
	
	/**
	 * パラメータ取得(ArrayList).
	 * <br>
	 * @param  targetMap   取得元マップ
	 * @param  targetList  取得元リスト名
	 * @param  targetIdx   取得元リスト添え字
	 * @param  targetKey   取得元キー項目
	 * @return 取得文字列
	 */
	private String getMapString(HashMap<String, Object> targetMap, String targetList, int targetIdx, String targetKey) {
		String resultStr = new String();

		if ((targetMap != null)  && (targetList != null) && (!"".equals(targetList)) && (targetMap.containsKey(targetList))) {
			ArrayList<HashMap<String, Object>> targetDatList = (ArrayList<HashMap<String, Object>>)(targetMap.get(targetList));
			if ((targetDatList != null) && (targetDatList.size() > targetIdx)) {
				HashMap<String, Object> targetDat = (HashMap<String, Object>)(targetDatList.get(targetIdx));
				if ((targetDat != null) && (targetDat.containsKey(targetKey))) {
					resultStr = (String) targetDat.get(targetKey);
				}
			}
		}

		return resultStr;
	}
	
	
	/**
	 * 解約済み機器に対する回復処理を行います。
	* <br>
	 * @param  param            モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param  fixedText        ユーザ任意文字列
	 * @param  kk0341_a010_map  機器提供サービス契約一意照会マップ
	 * @return 転居元のサービス契約情報
	 * @throws 例外が発生した場合
	 */
	private void executeCancelKiki(IRequestParameterReadWrite param, String fixedText, HashMap<String, Object> kk0341_a010_map, HashMap<String, Object> kk0081_a010_map_new) throws Throwable {
		
		/** 前準備 **/
		HashMap<String, Object> condMap;
		HashMap<String, Object> paramMap = (HashMap<String, Object>)(param.getData(fixedText));
		HashMap<String, Object> reqMap;
		Map<?, ?> resMap;
		
		// SC呼び出し部品のインスタンス生成
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		
		// 住所変更登録コモンコンポーネントマッピングクラスインスタンス
		JKKAdchgMapperCC mapper = JKKAdchgMapperCC.getInstance();
		
		/**
		 * 機器提供サービス契約回復の実行
		 * */
		
// IT1-2013-0000027対応 20130116 星野 ADD START
		// ・EKK0341C380 機器提供サービス契約回復
		condMap = new HashMap<String, Object>();
		condMap.put(EKK0341C380CBSMsg.KKTK_SVC_KEI_NO, getMapString(kk0341_a010_map, EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO));
		condMap.put(EKK0341C380CBSMsg.MSKM_DTL_NO, getMapString(kk0081_a010_map_new, EKK0081A010CBSMsg1List.MSKM_DTL_NO));
// OM-2014-0000041対応 20140420 星野 MOD START
//		condMap.put(EKK0341C380CBSMsg.KAIHK_YMD, paramMap.get("rsv_aply_ymd"));
		condMap.put(EKK0341C380CBSMsg.KAIHK_YMD, JCCBPCommon.getOpeDate(null));
// OM-2014-0000041対応 20140420 星野 MOD END
		condMap.put(EKK0341C380CBSMsg.IDO_DIV, paramMap.get(JKKAdchgConstCC.PARAM_KEY_ADCHG_IDO_DIV));
		condMap.put( EKK0341C380CBSMsg.UPD_DTM_BF,  kk0341_a010_map.get(EKK0341A010CBSMsg1List.LAST_UPD_DTM));
		reqMap = mapper.setEKK0341C380(param, fixedText, condMap);
		resMap = scCall.run(reqMap, keepSesHandle.get());
		HashMap<String, Object> kk0341_c380_map = mapper.getEKK0341C380(param, fixedText, resMap);
		mapper.scResultCheck(param);
		
		// 排他情報の引継
		kk0341_a010_map.put(EKK0341A010CBSMsg1List.LAST_UPD_DTM, getMapString(kk0341_c380_map, EKK0341C380CBSMsg.UPD_DTM));
// IT1-2013-0000027対応 20130116 星野 ADD END
		
		
		/**
		 * 機器返品一意照会サービスの実行
		 * */
		
		// 返品機器取消一覧照会処理を実施
		HashMap<String, Object> eDK0301B060Hash = new HashMap<String, Object>();
		JKKBpCommon.searchHmpinInfo(param, keepSesHandle.get(), (String) kk0341_a010_map.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO), eDK0301B060Hash, fixedText);
		
		// 返品機器取消情報を取り出す
		CAANMsg[] eDK0301B060CBSMSG1list = (CAANMsg[])eDK0301B060Hash.get(EDK0301B060CBSMsg.EDK0301B060CBSMSG1LIST);
// IT2-2012-0002019対応 20121211 星野 ADD START
		if( eDK0301B060CBSMSG1list.length > 0 ){
// IT2-2012-0002019対応 20121211 星野 ADD END
			HashMap<String, Object> eDK0301B060CBSMSG1 = eDK0301B060CBSMSG1list[0].getMsgData();
			String hmpinKikiNo = (String)eDK0301B060CBSMSG1.get(EDK0301B060CBSMsg1List.HMPIN_KIKI_NO);
			String updDtm = (String)eDK0301B060CBSMSG1.get(EDK0301B060CBSMsg1List.UPD_DTM);
			
			
			/**
			 * 機器返品取消サービスの実行
			 * */
			
			/** Mapperクラス未実装 実装次第開放 */
// IT1-2013-0000027対応 20130116 星野 ADD START
			// ・EDK0301C040 返品機器取消
			condMap = new HashMap<String, Object>();
			condMap.put(EDK0301B060CBSMsg1List.HMPIN_KIKI_NO, hmpinKikiNo);
			reqMap = mapper.setEDK0301C040(param, fixedText, condMap);
			resMap = scCall.run(reqMap, keepSesHandle.get());
			HashMap<String, Object> dk0301_c380_map = mapper.getEDK0301C040(param, fixedText, resMap);
			mapper.scResultCheck(param);
// IT1-2013-0000027対応 20130116 星野 ADD END
// IT2-2012-0002019対応 20121211 星野 ADD START
		}
// IT2-2012-0002019対応 20121211 星野 ADD END
		
		
	}
	
	/**
	 * 転居元・先の機器情報取得処理
	 * <dd>転居および転居先の機器情報を取得し工事案件へKEY項目を設定します。
	 * <br>
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   keepSesHandle  	セッションハンドル
	 * @param   fixedText  ユーザ任意文字列
	 * @throws  Exception  例外が発生した場合
	 */
	public void getSvcData(IRequestParameterReadWrite param, HashMap<String, Object> paramMap, SessionHandle keepSesHandle, String fixedText) throws Exception{
		
		/** 事前準備 */
		ArrayList<HashMap<String,Object>> new_net_kktk_list = new ArrayList<HashMap<String,Object>>();
		ArrayList<HashMap<String,Object>> new_tl_kktk_list = new ArrayList<HashMap<String,Object>>();
		ArrayList<HashMap<String,Object>> new_tv_kktk_list = new ArrayList<HashMap<String,Object>>();
		ArrayList<HashMap<String,Object>> old_net_kktk_list = new ArrayList<HashMap<String,Object>>();
		ArrayList<HashMap<String,Object>> old_tl_kktk_list = new ArrayList<HashMap<String,Object>>();
		ArrayList<HashMap<String,Object>> old_tv_kktk_list = new ArrayList<HashMap<String,Object>>();
		HashMap<String, String> condMap = new HashMap<String, String>();
		HashMap<String, Object> requestMap;
		Map<?, ?> resMap;

		// 住所変更登録コモンコンポーネントマッピングクラスインスタンスを取得
		JKKAdchgMapperCC mapper = JKKAdchgMapperCC.getInstance();

		// SCリクエストInvokerを取得
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		ArrayList<HashMap<String, Object>> adchgDtlListkiki = (ArrayList<HashMap<String, Object>>)paramMap.get(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_LIST_KKTK_SVC_KEI);
		for(int i = 0; i < adchgDtlListkiki.size() ; i++ )
		{
			HashMap<String, Object> adchgDtlMapSvcKei = adchgDtlListkiki.get(i);
			
			if (adchgDtlMapSvcKei == null) {
				continue;
			}

			String paramKeyAdchgDtlChgTgKeiNo = null;
			paramKeyAdchgDtlChgTgKeiNo = (String) adchgDtlMapSvcKei.get(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHG_TG_KEI_NO);
			if (StringUtils.isEmpty(paramKeyAdchgDtlChgTgKeiNo)) {
				continue;
			}

			// 転居先の機器情報を取得
			condMap.put(JKKAdchgMapperCC.COND_KEY_KKTK_SVC_KEI_NO, paramKeyAdchgDtlChgTgKeiNo);
			condMap.put(JKKAdchgMapperCC.COND_KEY_OPEDATE,(String) JKKAdchgConstCC.DEFAULT_RSV_APLY_YMD);
			requestMap = mapper.setEKK0341B032( param, fixedText, condMap );
			resMap = scCall.run( requestMap, keepSesHandle );
			List<HashMap<String, Object>> kk0341_b032_map_af = mapper.getEKK0341B032( param, fixedText, resMap );
			mapper.scResultCheck( param );
			
			HashMap<String, Object> kk0341_a010_map_af = new HashMap<String, Object>();
			if (kk0341_b032_map_af.size() > 0) {
				kk0341_a010_map_af = kk0341_b032_map_af.get(0);
			}
			
			// 転居元の機器情報を取得
			condMap.put(JKKAdchgMapperCC.COND_KEY_OPEDATE,(String) JCCBPCommon.getOpeDate(null));
			requestMap = mapper.setEKK0341A010( param, fixedText, condMap );
			resMap = scCall.run( requestMap, keepSesHandle );
			HashMap<String, Object> kk0341_a010_map_bf = mapper.getEKK0341A010( param, fixedText, resMap );
			mapper.scResultCheck( param );

			// 機器情報格納用マップ生成
			HashMap<String, Object> kj_kktk_map = new HashMap<String, Object>();
			
// 2013/2/10 工事指摘修正 START
			// 機器情報格納用マップ生成(撤去用)
			HashMap<String, Object> kj_kktk_map_old = new HashMap<String, Object>();
// 2013/2/10 工事指摘修正 END

// IT2-2013-0000139対応 20130210 沖田 ADD START
			// 転居先のSTBの料金コースコードを取得する
			// 宅内機器種別コード
			if(JKKAdchgConstCC.TAKNKIKI_SBT.CODE_A0.equals(kk0341_a010_map_af.get(EKK0341A010CBSMsg1List.TAKNKIKI_SBT_CD))
// OT-2013-0000543対応 20130326 星野 DEL START
//					|| JKKAdchgConstCC.TAKNKIKI_SBT.CODE_B0.equals(kk0341_a010_map_af.get(EKK0341A010CBSMsg1List.TAKNKIKI_SBT_CD))
//					|| JKKAdchgConstCC.TAKNKIKI_SBT.CODE_C0.equals(kk0341_a010_map_af.get(EKK0341A010CBSMsg1List.TAKNKIKI_SBT_CD))
// OT-2013-0000543対応 20130326 星野 DEL END
			) {

				HashMap<String, Object> resAdchgMap = selectIdoRsvBySvcKeiUcwkNo(param, fixedText, (String) kk0341_a010_map_af.get(EKK0341A010CBSMsg1List.SVC_KEI_UCWK_NO));

				if (resAdchgMap != null && !resAdchgMap.isEmpty()) {
					kj_kktk_map.put(EKK1681B001CBSMsg1List.NEW_PCRS_CD, resAdchgMap.get(EKK1681B001CBSMsg1List.NEW_PCRS_CD));
				}
			}
// IT2-2013-0000139対応 20130210 沖田 ADD END
			
// IT2-2013-0000200対応 20130219 星野 DEL START
// 住所変更時は撤去・新設が別工事となるため、工事の取扱上は機器交換とならない。よって交換前情報は未設定
//			/** 変更前機器情報の情報を設定 */
//			// 機器提供サービス契約番号＿変更前
//			kj_kktk_map.put(JKKKojiAnkenConstCC.CHGBF_KKTK_SVC_KEI_NO, kk0341_a010_map_bf.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO));
//			// 世代登録年月日時分秒＿変更前
//			kj_kktk_map.put(JKKKojiAnkenConstCC.CHGBF_KKTK_SVC_KEI_NO_GENE_ADD_DTM, kk0341_a010_map_bf.get(EKK0341A010CBSMsg1List.GENE_ADD_DTM));
// IT2-2013-0000200対応 20130219 星野 DEL END
			String bf_add = (String)kk0341_a010_map_bf.get(EKK0341A010CBSMsg1List.GENE_ADD_DTM);

			// 変更後機器情報の情報を設定 */
			// 機器提供サービス契約番号＿変更後
			kj_kktk_map.put(JKKKojiAnkenConstCC.KKTK_SVC_KEI_NO, kk0341_a010_map_af.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO));
			// 世代登録年月日時分秒＿変更後
			kj_kktk_map.put(JKKKojiAnkenConstCC.KKTK_SVC_KEI_NO_GENE_ADD_DTM, kk0341_a010_map_af.get(EKK0341A010CBSMsg1List.GENE_ADD_DTM));
			String af_add = (String)kk0341_a010_map_af.get(EKK0341A010CBSMsg1List.GENE_ADD_DTM);
			
// 2013/2/10 工事指摘修正 START
			// 撤去用の情報を格納
// IT2-2013-0000200対応 20130219 星野 DEL START
// 住所変更時は撤去・新設が別工事となるため、工事の取扱上は機器交換とならない。よって交換前情報は未設定
//			kj_kktk_map_old.put(JKKKojiAnkenConstCC.CHGBF_KKTK_SVC_KEI_NO, kk0341_a010_map_bf.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO));
//			kj_kktk_map_old.put(JKKKojiAnkenConstCC.CHGBF_KKTK_SVC_KEI_NO_GENE_ADD_DTM, kk0341_a010_map_bf.get(EKK0341A010CBSMsg1List.GENE_ADD_DTM));
// IT2-2013-0000200対応 20130219 星野 DEL END
			kj_kktk_map_old.put(JKKKojiAnkenConstCC.KKTK_SVC_KEI_NO, kk0341_a010_map_bf.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO));
			kj_kktk_map_old.put(JKKKojiAnkenConstCC.KKTK_SVC_KEI_NO_GENE_ADD_DTM, kk0341_a010_map_bf.get(EKK0341A010CBSMsg1List.GENE_ADD_DTM));
// 2013/2/10 工事指摘修正 END
			
			// 機器変更番号
			String bf_kkchg_no = (String)kk0341_a010_map_bf.get(EKK0341A010CBSMsg1List.KIKI_CHG_NO);
			String af_kkchg_no = (String)kk0341_a010_map_af.get(EKK0341A010CBSMsg1List.KIKI_CHG_NO);
			
			/** 移動コードを判定 */
			String idoDiv = null;
			if (bf_kkchg_no.equals(af_kkchg_no) ){
				if( !bf_add.equals(af_add)) {
					idoDiv = "04"; // 移動
					// ONU/V-ONUは移動コード設定無し
					if (JKKAdchgConstCC.TAKNKIKI_SBT.CODE_D0.equals(kk0341_a010_map_af.get(EKK0341A010CBSMsg1List.TAKNKIKI_SBT_CD))
							|| JKKAdchgConstCC.TAKNKIKI_SBT.CODE_E0.equals(kk0341_a010_map_af.get(EKK0341A010CBSMsg1List.TAKNKIKI_SBT_CD))
							// ANK-4315-00-00 ADD START
							|| JKKAdchgConstCC.TAKNKIKI_SBT.CODE_S0.equals(kk0341_a010_map_af.get(EKK0341A010CBSMsg1List.TAKNKIKI_SBT_CD))
							// ANK-4315-00-00 ADD END	
					) {
						// 何もしない
					} else {
						kj_kktk_map.put("param_taknkiki_ido_cd", idoDiv);
						kj_kktk_map_old.put("param_taknkiki_ido_cd", idoDiv);
					}
					
				}else{
					idoDiv = "01"; // 撤去
				}
			}else{
				idoDiv = "02"; // 交換
				
			}
			
			
			// サービスコードに紐づくサービス契約番号を取得
			String svcKeiNet = (String) paramMap.get("eoh_nt_svc_kei_no");
			String svcKeitel = (String) paramMap.get("eoh_tl_svc_kei_no");
			String svcKeitv = (String) paramMap.get("eoh_tv_svc_kei_no");
// IT2-2014-0000017対応 20140109 星野 ADD START
			String svcKeiNetOld = (String) paramMap.get("eoh_nt_svc_kei_no_old");
			String svcKeitelOld = (String) paramMap.get("eoh_tl_svc_kei_no_old");
			String svcKeitvOld = (String) paramMap.get("eoh_tv_svc_kei_no_old");
// IT2-2014-0000017対応 20140109 星野 ADD END
			
			// D0、E0を判定
			if (StringUtils.isEmpty((String) kk0341_a010_map_af.get(EKK0341A010CBSMsg1List.SVC_KEI_NO))) 
			{
				// D0の場合、ネット・電話にリストを設定
				if (JKKAdchgConstCC.TAKNKIKI_SBT.CODE_D0.equals(kk0341_a010_map_af.get(EKK0341A010CBSMsg1List.TAKNKIKI_SBT_CD))
						// ANK-4315-00-00 ADD START
						||	JKKAdchgConstCC.TAKNKIKI_SBT.CODE_S0.equals(kk0341_a010_map_af.get(EKK0341A010CBSMsg1List.TAKNKIKI_SBT_CD))
						// ANK-4315-00-00 ADD END			
				) 
				{
					if (adchgDtlMapSvcKei.containsKey("add_flg")) {
						new_net_kktk_list.add(kj_kktk_map);
						new_tl_kktk_list.add(kj_kktk_map);
					} else if ("04".equals(idoDiv)) {
						new_net_kktk_list.add(kj_kktk_map);
						new_tl_kktk_list.add(kj_kktk_map);
						old_net_kktk_list.add(kj_kktk_map_old);
						old_tl_kktk_list.add(kj_kktk_map_old);
					} else if ("01".equals(idoDiv)) {
						old_net_kktk_list.add(kj_kktk_map_old);
						old_tl_kktk_list.add(kj_kktk_map_old);
					} else {
						new_net_kktk_list.add(kj_kktk_map);
						new_tl_kktk_list.add(kj_kktk_map);
						old_net_kktk_list.add(kj_kktk_map_old);
						old_tl_kktk_list.add(kj_kktk_map_old);
					}
					
				} 
				// E0の場合、テレビにリストを設定
				else if (JKKAdchgConstCC.TAKNKIKI_SBT.CODE_E0.equals(kk0341_a010_map_af.get(EKK0341A010CBSMsg1List.TAKNKIKI_SBT_CD))) 
				
				{
					if (adchgDtlMapSvcKei.containsKey("add_flg")) {
						new_tv_kktk_list.add(kj_kktk_map);
					} else if ("04".equals(idoDiv)) {
						new_tv_kktk_list.add(kj_kktk_map);
						old_tv_kktk_list.add(kj_kktk_map_old);
					} else if ("01".equals(idoDiv)) {
						old_tv_kktk_list.add(kj_kktk_map_old);
					} else {
						new_tv_kktk_list.add(kj_kktk_map);
						old_tv_kktk_list.add(kj_kktk_map_old);
					}
					
				}
// ANK-1578-00-00 2013.12.06 T.TORIKAI ADD START
				// R0の場合、ネット・電話にリストを設定
				// R0：多機能ルータは利用中機器一覧にある場合（転居元で使用）のみここで処理される
				// 転居先に新規に登録された場合の処理は後続で別処理に実装
				else if (JKKAdchgConstCC.TAKNKIKI_SBT.CODE_R0.equals(kk0341_a010_map_af.get(EKK0341A010CBSMsg1List.TAKNKIKI_SBT_CD)))
				{
					if ("01".equals(idoDiv)) {
						// 撤去  ※ネット・電話 両方の撤去に追加
						old_net_kktk_list.add(kj_kktk_map_old);
						old_tl_kktk_list.add(kj_kktk_map_old);
					} else {
						// 02：交換 or 04：移動（引継）※ネット・電話 両方の新設・撤去に追加
						new_net_kktk_list.add(kj_kktk_map);
						new_tl_kktk_list.add(kj_kktk_map);
						old_net_kktk_list.add(kj_kktk_map_old);
						old_tl_kktk_list.add(kj_kktk_map_old);
					}
				}
// ANK-1578-00-00 2013.12.06 T.TORIKAI ADD END
				continue;
			}
			
			// サービス契約番号と突合せを行いリスト設定先を特定
			if (svcKeiNet.equals(kk0341_a010_map_af.get(EKK0341A010CBSMsg1List.SVC_KEI_NO))
// IT2-2014-0000017対応 20140109 星野 ADD START
				|| ( !StringUtils.isEmpty(svcKeiNetOld) && svcKeiNetOld.equals( kk0341_a010_map_af.get(EKK0341A010CBSMsg1List.SVC_KEI_NO) ) )
// IT2-2014-0000017対応 20140109 星野 ADD END
			){
				if ("04".equals(idoDiv)) {
					new_net_kktk_list.add(kj_kktk_map);
					old_net_kktk_list.add(kj_kktk_map_old);
				} else if ("01".equals(idoDiv)) {
					old_net_kktk_list.add(kj_kktk_map_old);
				} else {
					new_net_kktk_list.add(kj_kktk_map);
					old_net_kktk_list.add(kj_kktk_map_old);
				}
				
			}
			else if(svcKeitel.equals(kk0341_a010_map_af.get(EKK0341A010CBSMsg1List.SVC_KEI_NO))
// IT2-2014-0000017対応 20140109 星野 ADD START
				|| ( !StringUtils.isEmpty(svcKeitelOld) && svcKeitelOld.equals( kk0341_a010_map_af.get(EKK0341A010CBSMsg1List.SVC_KEI_NO) ) )
// IT2-2014-0000017対応 20140109 星野 ADD END
			){
				if ("04".equals(idoDiv)) {
					new_tl_kktk_list.add(kj_kktk_map);
					old_tl_kktk_list.add(kj_kktk_map_old);
				} else if ("01".equals(idoDiv)) {
					old_tl_kktk_list.add(kj_kktk_map_old);
				} else {
					new_tl_kktk_list.add(kj_kktk_map);
					old_tl_kktk_list.add(kj_kktk_map_old);
				}
				
			}
			else if(svcKeitv.equals(kk0341_a010_map_af.get(EKK0341A010CBSMsg1List.SVC_KEI_NO))
// IT2-2014-0000017対応 20140109 星野 ADD START
				|| ( !StringUtils.isEmpty(svcKeitvOld) && svcKeitvOld.equals( kk0341_a010_map_af.get(EKK0341A010CBSMsg1List.SVC_KEI_NO) ) )
// IT2-2014-0000017対応 20140109 星野 ADD END
			){
				if ("04".equals(idoDiv)) {
					new_tv_kktk_list.add(kj_kktk_map);
					old_tv_kktk_list.add(kj_kktk_map_old);
				} else if ("01".equals(idoDiv)) {
					old_tv_kktk_list.add(kj_kktk_map_old);
				} else {
					new_tv_kktk_list.add(kj_kktk_map);
					old_tv_kktk_list.add(kj_kktk_map_old);
				}
				
			}
		}
		
		/** 追加機器の設定 */
		String svcKeiNet = (String) paramMap.get("eoh_nt_svc_kei_no");
		String svcKeitel = (String) paramMap.get("eoh_tl_svc_kei_no");
		String svcKeitv = (String) paramMap.get("eoh_tv_svc_kei_no");
		boolean newflg = true;
		
		//ネット編
		if (!StringUtils.isEmpty(svcKeiNet)) {
			
			// ・EKK0341B002 機器提供サービス契約一覧照会（サービス契約番号）
			condMap.clear();
			condMap.put("cond_key_svc_kei_no", svcKeiNet);
			requestMap = mapper.setEKK0341B002( param, fixedText, condMap);
			resMap = scCall.run( requestMap, keepSesHandle);
			List<HashMap<String, Object>>kk0341_b002_map_list_net = mapper.getEKK0341B002( param, fixedText, resMap );
			mapper.scResultCheck( param );
			
			Iterator<HashMap<String, Object>> kk0341_b002_map_list_net_ite = kk0341_b002_map_list_net.iterator();
			while(kk0341_b002_map_list_net_ite.hasNext()) {
				
				newflg = true;	// 	フラグリセット
				// 機器情報格納用マップ生成
				HashMap<String, Object> kj_kktk_map = new HashMap<String, Object>();
				HashMap<String, Object> kikiteikyo_map = kk0341_b002_map_list_net_ite.next();
				String kikiteikyoNo = (String)kikiteikyo_map.get(EKK0341B002CBSMsg1List.KKTK_SVC_KEI_NO);
				
				// 機器提供サービス契約一意紹介
				condMap.clear();
				condMap.put(JKKAdchgMapperCC.COND_KEY_KKTK_SVC_KEI_NO, kikiteikyoNo);
				condMap.put(JKKAdchgMapperCC.COND_KEY_OPEDATE, JKKAdchgConstCC.DEFAULT_RSV_APLY_YMD);
				requestMap = mapper.setEKK0341A010(param, fixedText, condMap);
				resMap = scCall.run(requestMap, keepSesHandle);
				HashMap<String, Object> kk0341_a010_map = mapper.getEKK0341A010(param, fixedText, resMap);
				mapper.scResultCheck(param);
				
				for(int i = 0; i < adchgDtlListkiki.size() ; i++ ) {
					
					HashMap<String, Object> adchgDtlMapSvcKei = adchgDtlListkiki.get(i);
					 String paramKktkKeiNo = (String) adchgDtlMapSvcKei.get(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHG_TG_KEI_NO);
					if (paramKktkKeiNo.equals(kikiteikyoNo)) {
						newflg = false;
					}
				}
				
				// リストにヒットしなかった場合は新規機器
				if (newflg) {
					// 機器提供サービス契約番号＿変更後
					kj_kktk_map.put(JKKKojiAnkenConstCC.KKTK_SVC_KEI_NO, kk0341_a010_map.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO));
					// 世代登録年月日時分秒＿変更後
					kj_kktk_map.put(JKKKojiAnkenConstCC.KKTK_SVC_KEI_NO_GENE_ADD_DTM, kk0341_a010_map.get(EKK0341A010CBSMsg1List.GENE_ADD_DTM));
					new_net_kktk_list.add(kj_kktk_map);
				}
			}
		}
		
		// 電話編
		if (!StringUtils.isEmpty(svcKeitel)) {
			
			// ・EKK0341B002 機器提供サービス契約一覧照会（サービス契約番号）
			condMap.clear();
			condMap.put("cond_key_svc_kei_no", svcKeitel);
			requestMap = mapper.setEKK0341B002( param, fixedText, condMap);
			resMap = scCall.run( requestMap, keepSesHandle);
			List<HashMap<String, Object>>kk0341_b002_map_list_net = mapper.getEKK0341B002( param, fixedText, resMap );
			mapper.scResultCheck( param );
			
			Iterator<HashMap<String, Object>> kk0341_b002_map_list_net_ite = kk0341_b002_map_list_net.iterator();
			while(kk0341_b002_map_list_net_ite.hasNext()) {
				
				newflg = true;	// 	フラグリセット
				// 機器情報格納用マップ生成
				HashMap<String, Object> kj_kktk_map = new HashMap<String, Object>();
				HashMap<String, Object> kikiteikyo_map = kk0341_b002_map_list_net_ite.next();
				String kikiteikyoNo = (String)kikiteikyo_map.get(EKK0341B002CBSMsg1List.KKTK_SVC_KEI_NO);
				
				// 機器提供サービス契約一意紹介
				condMap.clear();
				condMap.put(JKKAdchgMapperCC.COND_KEY_KKTK_SVC_KEI_NO, kikiteikyoNo);
				condMap.put(JKKAdchgMapperCC.COND_KEY_OPEDATE, JKKAdchgConstCC.DEFAULT_RSV_APLY_YMD);
				requestMap = mapper.setEKK0341A010(param, fixedText, condMap);
				resMap = scCall.run(requestMap, keepSesHandle);
				HashMap<String, Object> kk0341_a010_map = mapper.getEKK0341A010(param, fixedText, resMap);
				mapper.scResultCheck(param);
				
				for(int i = 0; i < adchgDtlListkiki.size() ; i++ ) {
					
					HashMap<String, Object> adchgDtlMapSvcKei = adchgDtlListkiki.get(i);
					 String paramKktkKeiNo = (String) adchgDtlMapSvcKei.get(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHG_TG_KEI_NO);
					if (paramKktkKeiNo.equals(kikiteikyoNo)) {
						newflg = false;
					}
				}
				
				// リストにヒットしなかった場合は新規機器
				if (newflg) {
					// 機器提供サービス契約番号＿変更後
					kj_kktk_map.put(JKKKojiAnkenConstCC.KKTK_SVC_KEI_NO, kk0341_a010_map.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO));
					// 世代登録年月日時分秒＿変更後
					kj_kktk_map.put(JKKKojiAnkenConstCC.KKTK_SVC_KEI_NO_GENE_ADD_DTM, kk0341_a010_map.get(EKK0341A010CBSMsg1List.GENE_ADD_DTM));
					new_tl_kktk_list.add(kj_kktk_map);
				}
			}
		}
		
		// テレビ編
		if (!StringUtils.isEmpty(svcKeitv)) {
			
			// ・EKK0341B002 機器提供サービス契約一覧照会（サービス契約番号）
			condMap.clear();
			condMap.put("cond_key_svc_kei_no", svcKeitv);
			requestMap = mapper.setEKK0341B002( param, fixedText, condMap);
			resMap = scCall.run( requestMap, keepSesHandle);
			List<HashMap<String, Object>>kk0341_b002_map_list_net = mapper.getEKK0341B002( param, fixedText, resMap );
			mapper.scResultCheck( param );
			
			Iterator<HashMap<String, Object>> kk0341_b002_map_list_net_ite = kk0341_b002_map_list_net.iterator();
			while(kk0341_b002_map_list_net_ite.hasNext()) {
				
				newflg = true;	// 	フラグリセット
				// 機器情報格納用マップ生成
				HashMap<String, Object> kj_kktk_map = new HashMap<String, Object>();
				HashMap<String, Object> kikiteikyo_map = kk0341_b002_map_list_net_ite.next();
				String kikiteikyoNo = (String)kikiteikyo_map.get(EKK0341B002CBSMsg1List.KKTK_SVC_KEI_NO);
				
				// 機器提供サービス契約一意紹介
				condMap.clear();
				condMap.put(JKKAdchgMapperCC.COND_KEY_KKTK_SVC_KEI_NO, kikiteikyoNo);
				condMap.put(JKKAdchgMapperCC.COND_KEY_OPEDATE, JKKAdchgConstCC.DEFAULT_RSV_APLY_YMD);
				requestMap = mapper.setEKK0341A010(param, fixedText, condMap);
				resMap = scCall.run(requestMap, keepSesHandle);
				HashMap<String, Object> kk0341_a010_map = mapper.getEKK0341A010(param, fixedText, resMap);
				mapper.scResultCheck(param);
				
				for(int i = 0; i < adchgDtlListkiki.size() ; i++ ) {
					
					HashMap<String, Object> adchgDtlMapSvcKei = adchgDtlListkiki.get(i);
					 String paramKktkKeiNo = (String) adchgDtlMapSvcKei.get(JKKAdchgConstCC.PARAM_KEY_ADCHG_DTL_CHG_TG_KEI_NO);
					if (paramKktkKeiNo.equals(kikiteikyoNo)) {
						newflg = false;
					}
				}
				
				// リストにヒットしなかった場合は新規機器
				if (newflg) {
					// 機器提供サービス契約番号＿変更後
					kj_kktk_map.put(JKKKojiAnkenConstCC.KKTK_SVC_KEI_NO, kk0341_a010_map.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO));
					// 世代登録年月日時分秒＿変更後
					kj_kktk_map.put(JKKKojiAnkenConstCC.KKTK_SVC_KEI_NO_GENE_ADD_DTM, kk0341_a010_map.get(EKK0341A010CBSMsg1List.GENE_ADD_DTM));
					new_tv_kktk_list.add(kj_kktk_map);
				}
			}
		}

// ANK-1578-00-00 2013.12.06 T.TORIKAI ADD START
		// 追加された多機能ルータの情報をネット・電話に追加する
		Map<Object, Object> workMap = param.getMappingWorkArea();
		if (workMap != null) {
			Map<String, Object> ccWorkMap = (Map<String, Object>)workMap.get(JKKAdchgConstCC.CC_WORK_AREA_NAME_KKOP);
			if (ccWorkMap != null) {
				// 機器提供サービス契約番号
				String kktkSvcKeiNo = (String)ccWorkMap.get("append_kktk_svc_kei_no");
				if (kktkSvcKeiNo != null) {
					// 多機能ルーターの追加あり

					// 機器提供サービス契約一意照会
					condMap.clear();
					condMap.put(JKKAdchgMapperCC.COND_KEY_KKTK_SVC_KEI_NO, kktkSvcKeiNo);
					condMap.put(JKKAdchgMapperCC.COND_KEY_OPEDATE, JKKAdchgConstCC.DEFAULT_RSV_APLY_YMD);
					requestMap = mapper.setEKK0341A010(param, fixedText, condMap);
					resMap = scCall.run(requestMap, keepSesHandle);
					HashMap<String, Object> mapEKK0341A010 = mapper.getEKK0341A010(param, fixedText, resMap);
					mapper.scResultCheck(param);

					// ネット・電話の新設機器リストへ追加
					HashMap<String, Object> kktkMap = new HashMap<String, Object>();
					kktkMap.put(JKKKojiAnkenConstCC.KKTK_SVC_KEI_NO, mapEKK0341A010.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO));
					kktkMap.put(JKKKojiAnkenConstCC.KKTK_SVC_KEI_NO_GENE_ADD_DTM, mapEKK0341A010.get(EKK0341A010CBSMsg1List.GENE_ADD_DTM));
					new_net_kktk_list.add(kktkMap);
					new_tl_kktk_list.add(kktkMap);
				}
			}
		}
//ANK-1578-00-00 2013.12.06 T.TORIKAI ADD END

		// paramMapに格納(工事案件へ連携)
		paramMap.put(JKKAdchgConstCC.NEW_KJ_KKTK_LIST_NT, new_net_kktk_list);
		paramMap.put(JKKAdchgConstCC.NEW_KJ_KKTK_LIST_TL, new_tl_kktk_list);
		paramMap.put(JKKAdchgConstCC.NEW_KJ_KKTK_LIST_TV, new_tv_kktk_list);
		paramMap.put("old_kj_kktk_list_nt", old_net_kktk_list);
		paramMap.put("old_kj_kktk_list_tl", old_tl_kktk_list);
		paramMap.put("old_kj_kktk_list_tv", old_tv_kktk_list);
	}

	/**
	 * 設置場所番号の取得.
	 * <br>
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   fixedText  ユーザ任意文字列
	 * @param   pararmMap  入力マップ
	 * @throws  Exception  例外が発生した場合
	 */
	private String getItensPlace( IRequestParameterReadWrite param, String fixedText, HashMap<String, Object> paramMap ) throws Exception {

		/** 事前準備 */
		HashMap<String, Object> reqMap;
		Map<?, ?> resMap;

		// 住所変更登録コモンコンポーネントマッピングクラスインスタンスを取得
		JKKAdchgMapperCC mapper = JKKAdchgMapperCC.getInstance();
		// SCリクエストInvokerを取得
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		// ■ EKKA0020002 設置場所番号取得
		// place_map生成
		HashMap<String, Object> place_map = new HashMap<String, Object>();
		
		ArrayList<HashMap<String, Object>> place_map_list = new ArrayList<HashMap<String, Object>>();
		HashMap<String, Object> place_meisai_map = new HashMap<String, Object>();

		// 場所住所コード
		place_meisai_map.put( EKKA0020002CBSMsg1List.KEY_SETPLACE_AD_CD, paramMap.get( JKKAdchgConstCC.PARAM_KEY_ITENS_AD_CD ) );
		// 場所郵便番号
		place_meisai_map.put( EKKA0020002CBSMsg1List.KEY_SETPLACE_PCD, paramMap.get( JKKAdchgConstCC.PARAM_KEY_ITENS_POST_CD ) );
		// 場所都道府県名
		place_meisai_map.put( EKKA0020002CBSMsg1List.KEY_SETPLACE_STATE_NM, paramMap.get( JKKAdchgConstCC.PARAM_KEY_ITENS_AD_STATE ) );
		// 場所市区町村名
		place_meisai_map.put( EKKA0020002CBSMsg1List.KEY_SETPLACE_CITY_NM, paramMap.get( JKKAdchgConstCC.PARAM_KEY_ITENS_AD_CITY ) );
		// 場所大字通称名
		place_meisai_map.put( EKKA0020002CBSMsg1List.KEY_SETPLACE_OAZTSU_NM, paramMap.get( JKKAdchgConstCC.PARAM_KEY_ITENS_AD_OAZTSU ) );
		// 場所字丁目名
		place_meisai_map.put( EKKA0020002CBSMsg1List.KEY_SETPLACE_AZCHO_NM, paramMap.get( JKKAdchgConstCC.PARAM_KEY_ITENS_AD_AZCHO ) );
		// 場所番地号
		place_meisai_map.put( EKKA0020002CBSMsg1List.KEY_SETPLACE_BNCHIGO, paramMap.get( JKKAdchgConstCC.PARAM_KEY_ITENS_AD_BNCHIGO ) );
		// 場所住所補記・建物名
		place_meisai_map.put( EKKA0020002CBSMsg1List.KEY_SETPLACE_ADRTTM, paramMap.get( JKKAdchgConstCC.PARAM_KEY_ITENS_AD_ADRTTM ) );
		// 場所住所補記・部屋番号
		place_meisai_map.put( EKKA0020002CBSMsg1List.KEY_SETPLACE_ADRRM, paramMap.get( JKKAdchgConstCC.PARAM_KEY_ITENS_AD_ADRRM ) );
		place_map_list.add(place_meisai_map);
		place_map.put(EKKA0020002CBSMsg.EKKA0020002CBSMSG1LIST, new ArrayList<HashMap<String, Object>>());

		reqMap = mapper.setEKKA0020002( param, fixedText, place_map, place_map_list );
		resMap = scCall.run( reqMap, keepSesHandle.get() );
		ArrayList<HashMap<String, Object>> ekka002_0002_map_list = mapper.getEKKA0020002( param, fixedText, resMap );
		mapper.scResultCheck( param );

		// 場所番号の引継
		if (ekka002_0002_map_list.isEmpty()) {
			// ■取得件数が0件の場合
			//   引継情報無しの為、以下の処理は行わない。
			return null;
		}

		// ■取得件数が1件以上の場合
		//   EKKA0020002 設置場所番号取得にて取得した場所番号を引継情報として設定
		HashMap<String, Object> place_ret_map = ekka002_0002_map_list.get(0);
		return place_ret_map.get( EKKA0020002CBSMsg2List.SETPLACE_NO ).toString();
	}
	
	/**
	 * 転居先で対象のサービス契約が存在するか判定する.
	 * <br>
	 * @param  svc_chg_div  サービス契約変更区分
	 * @return 判定結果 ( true:あり、false:なし )
	 */
	private boolean itensSvkeiUm( String svc_chg_div ) {
		// 継続・変更・追加
		if ( JKKAdchgConstCC.CD00849_KEEP.equals( svc_chg_div ) || JKKAdchgConstCC.CD00849_CHG.equals( svc_chg_div ) || JKKAdchgConstCC.CD00849_ADD.equals( svc_chg_div ) ) {
			return true;
		}
		return false;
	}

// ANK-1667-00-00 2013.11.13 Y.Kanata ADD START
	/**
	 * サービス対象機器提供サービス契約一覧照会
	 * @param handle
	 * @param param
	 * @param fixedText
	 * @return
	 * @throws Exception
	 */
	private ArrayList<HashMap<String, Object>> getAdchgChafKaisenKiki( SessionHandle handle, IRequestParameterReadWrite param, String fixedText ) throws Exception
	{
		HashMap<String, Object> reqMap;
		HashMap<String, Object> paramMap = (HashMap<String, Object>)( param.getData(fixedText) );
		Map<?, ?> resMap;
		String chaf_svc_kei_kaisen_ucwk_no = (String)paramMap.get("new_kei_kais_ucwk_no");

		// 住所変更登録CCマッピングクラスインスタンスを取得
		JKKAdchgMapperCC mapper = JKKAdchgMapperCC.getInstance();
		// SCリクエストInvokerを取得
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		
		ArrayList<HashMap<String, Object>> ekk0341_b504_list = new ArrayList<HashMap<String, Object>>();
		HashMap<String, String> condMap = new HashMap<String, String>();
		condMap.put("key_svc_kei_kaisen_ucwk_no", chaf_svc_kei_kaisen_ucwk_no);
		/** サービス対象機器提供サービス契約一覧照会 */
		// ・EKK0341B504 サービス対象機器提供サービス契約一覧照会
		reqMap = mapper.setEKK0341B504(param, fixedText, condMap);
		resMap = scCall.run(reqMap, handle);
		ekk0341_b504_list = mapper.getEKK0341B504(param, fixedText, resMap);
		mapper.scResultCheck(param);
		
		return ekk0341_b504_list;
	}
// ANK-1667-00-00 2013.11.13 Y.Kanata ADD END
	// ANK-3387-00-00 ADD START
	/**
	 * 機器提供サービス契約一意照会.
	 * @param param
	 * @param fixedText
	 * @param kktk_svc_kei_no
	 * @param gene_add_dtm
	 * @return
	 * @throws Exception
	 */
	public HashMap<String, Object> getKktkSvcKei( IRequestParameterReadWrite param, String fixedText, String kktk_svc_kei_no, String gene_add_dtm ) throws Exception {

		/** 前準備 **/
		HashMap<String, Object> paramMap = (HashMap<String, Object>)( param.getData(fixedText) );
		HashMap<String, Object> reqMap;
		Map<?, ?> resMap;

		// 住所変更登録コモンコンポーネントマッピングクラスインスタンス
		JKKAdchgMapperCC mapper = JKKAdchgMapperCC.getInstance();
		// SCリクエストInvoker
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		
		// ■ EKK0341A010_機器提供サービス契約一意照会
		HashMap<String, String> condMap = new HashMap<String, String>();
		condMap.put( JKKAdchgMapperCC.COND_KEY_KKTK_SVC_KEI_NO, kktk_svc_kei_no );
		if (!StringUtils.isEmpty(gene_add_dtm))
		{
			condMap.put( JKKAdchgMapperCC.COND_KEY_GENE_ADD_DTM, gene_add_dtm );
		}
		condMap.put( JKKAdchgMapperCC.COND_KEY_OPEDATE, JKKBpCommon.getOpeDate(null));

		reqMap = mapper.setEKK0341A010( param, fixedText, condMap );
		resMap = scCall.run( reqMap, keepSesHandle.get() );
		HashMap<String, Object> kk0341_a010_map = mapper.getEKK0341A010( param, fixedText, resMap );
		mapper.scResultCheck( param );

		return kk0341_a010_map;
	}
	
	/**
	 * 配送受付サービスIF呼出処理
	 * 
	 * @param param リクエストパラメータ
	 * @param handle セッションハンドル
	 * @param mskm_no 申込番号
	 * @param mskm_dtl_no 申込明細番号
	 * @param mskmsho_no 申込書番号
	 * @param ido_div 異動区分
	 * @param sokoCd 倉庫コード
	 * @param haisoRsvYmd 配送予定年月日 20141008 ANK-1918-06-00 追加
	 * @param eKK0341A010HashList 機器提供サービス一意照会の結果
	 * @param eKK0161A010HashList サービス契約内訳一意照会の結果
	 * @param resultHash 結果のハッシュ
	 * @throws Throwable 例外時にスローされます
	 */
	private void callEDK0011D020SC(
			IRequestParameterReadWrite param,
			SessionHandle handle,
			String mskm_no,
			String mskm_dtl_no, 
			String mskmsho_no, 
			String ido_div, 
			String sokoCd,
			// 20141008 ANK-1918-06-00 配送予定年月日を追加 ADD START
			String haisoRsvYmd,
			// 20141008 ANK-1918-06-00 配送予定年月日を追加 ADD END
			ArrayList<HashMap<String, Object>> eKK0341A010HashList,
			// IT2-2014-0000302 2014/09/16 add start
			ArrayList<HashMap<String, Object>> eKK0161A010HashList,
			// IT2-2014-0000302 2014/09/16 add end
			HashMap<String, Object> resultHash,
			String fixedText)
			throws Throwable
	{
		
		// 上り情報をマッピング
	
		// 住所変更登録コモンコンポーネントマッピングクラスインスタンス
		JKKButuryuCtrlMapper mapper = new JKKButuryuCtrlMapper();

		HashMap<String, Object> sIFRequest = mapper.editInMsgEDK0011D020(param, mskm_no, mskm_dtl_no, mskmsho_no, ido_div, sokoCd, haisoRsvYmd, eKK0341A010HashList, eKK0161A010HashList);

		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		Map<?, ?> sIFResult = scCall.run(sIFRequest, handle);
		// 住所変更登録コモンコンポーネントマッピングクラスインスタンス
		JKKAdchgMapperCC jkkAdchgMapperCC = JKKAdchgMapperCC.getInstance();
		// エラー情報のマッピング		
		jkkAdchgMapperCC.scResultCheck( param );
		
	}
	// ANK-3387-00-00 ADD END
}
