/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JKKSV072538MappingCC
*	ソースファイル名：JKKSV072538MappingCC.java
*	作成者			：富士通
*	日付			：2012年09月05日
*＜機能概要＞
*	マッピングCCです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/09/05	FJ)松枝		新規作成
*	v8.00.00	2014/04/24	FJ)金田		OM-2014-0001535
*	v8.01.00	2014/05/19	FJ)寺田		ANK-1875-00-00【有償OM対応】ID登録証のＩＦ：機器送付先に契約者名の宛名で送付できない
*	v15.00.00	2015/08/04	FJ)三浦		OM-2015-0001706
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.HashMap;
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.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.sun.enterprise.tools.common.util.StringUtils;

import eo.ejb.cbs.cbsmsg.ECK0011A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0251A010CBSMsg1List;

public class JKKSV072538MappingCC extends AbstractCommonComponent
{

	/**
	 * CCへのマッピング処理を行います
	 * <br>
	 * @param handle
	 * @param param
	 * @param fixedText
	 * @return
	 * @throws Throwable
	 */
// OM-2014-0001535 2014.04.24 Y.Kanata ADD START
	@SuppressWarnings("unchecked")
// OM-2014-0001535 2014.04.24 Y.Kanata ADD END
	public IRequestParameterReadWrite execute(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Throwable
	{
		HashMap<String, Object> inMap = (HashMap<String, Object>) param.getData(fixedText);
// OM-2014-0001535 2014.04.24 Y.Kanata ADD START
		// fixedTextに対応するユーザーマップが存在しない場合は処理を行わない
		if (inMap == null) {
			return param;
		}
// OM-2014-0001535 2014.04.24 Y.Kanata ADD END
		
		JKKAdchgCmnLogicCC lclCmnLogic = new JKKAdchgCmnLogicCC(handle);
		JKKAdchgMapperCC mapper = JKKAdchgMapperCC.getInstance();
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		//申込明細登録ＳＣ
		HashMap<String, Object> KKSV072508SC = (HashMap<String, Object>) param.getData("KKSV072508SC");
		
// OM-2014-0001535 2014.04.24 Y.Kanata ADD START
		//申込明細登録ＳＣ（テレビ）
		HashMap<String, Object> KKSV0725501SC = (HashMap<String, Object>) param.getData("KKSV0725501SC");
// OM-2014-0001535 2014.04.24 Y.Kanata ADD END
		
		
		// お客様一意照会結果取得
		HashMap<String, Object> KKSV072504SC = (HashMap<String, Object>) param.getData("KKSV072504SC");
		// サービス契約回線内訳登録結果取得
		String kaisenUcwkNo = (String) inMap.get("svc_kei_kaisen_ucwk_no");
		
		// EKK0251A010_サービス契約回線内訳一意照会
		HashMap<String, String> condMap = new HashMap<String, String>();
		condMap.put( JKKAdchgMapperCC.COND_KEY_SVC_KEI_KAIS_UCWK_NO, kaisenUcwkNo );
		condMap.put( JKKAdchgMapperCC.COND_KEY_OPEDATE, JKKAdchgConstCC.DEFAULT_RSV_APLY_YMD);
		HashMap<String, Object> reqMap = mapper.setEKK0251A010( param, fixedText, condMap );
		Map<?, ?> resMap = scCall.run( reqMap, handle );
		HashMap<String, Object> kk0251_a010_map = mapper.getEKK0251A010( param, fixedText, resMap );
		mapper.scResultCheck( param );
		
		//通知書登録ＣＣ
		HashMap<String, Object> KKSV072538CC = (HashMap<String, Object>) param.getData("KKSV072538CC");
		
		ArrayList<HashMap<String, Object>> kksv_work_map_list  = new ArrayList<HashMap<String, Object>>();
		
		// ｅｏ光ネット＿利用サービス変更区分取得（View層で設定）
		String jdgChgDivNet = (String) inMap.get("eoh_net_use_svc_chg_div");
		// 処理対象となる変更区分の場合
		if(isTargetChgDiv(jdgChgDivNet)){
			
			HashMap<String, Object> kksv_work_map= new HashMap<String, Object>();
			
			// View層でマッピングされたサービス契約番号を取得
			String svc_kei_no_net = (String) inMap.get("svc_kei_no_net");
			// ネットのワーク領域
			HashMap<String, Object> workMapNet = (HashMap<String, Object>) param.getMappingWorkArea().get("JKKAddSvcKeiNetCCWork");
			// サービス契約番号が新規採番されていれば差し替え
			if(workMapNet!=null && !StringUtils.isEmpty((String) workMapNet.get("svc_kei_no"))){
				svc_kei_no_net = (String) workMapNet.get("svc_kei_no");
			}
			
			// サービス契約番号
			kksv_work_map.put("svc_kei_no", svc_kei_no_net);
			
			// EKK0081A010_サービス契約一意照会
			HashMap<String, Object> kk0081_a010_map = 
				lclCmnLogic.getEKK0081A010( param, mapper, fixedText, scCall, svc_kei_no_net, JKKAdchgConstCC.DEFAULT_RSV_APLY_YMD );
			
			// 料金グループコード
			kksv_work_map.put("prc_grp_cd", kk0081_a010_map.get(EKK0081A010CBSMsg1List.PRC_GRP_CD) );
			// SYSID
			kksv_work_map.put("sysid", inMap.get("sysid") );
			// SEIRI_NO
			kksv_work_map.put("seiri_no", kk0081_a010_map.get(EKK0081A010CBSMsg1List.SEIRI_NO) );

			// 申込明細番号
// OM-2015-0001706 2015/08/04 MOD START
//			kksv_work_map.put("mskm_dtl_no", kk0081_a010_map.get(EKK0081A010CBSMsg1List.MSKM_DTL_NO));
			String str_mskm_dtl_no_net =  (String)KKSV072538CC.get("mskm_dtl_no_net");
			if (!StringUtils.isEmpty(str_mskm_dtl_no_net)){
				kksv_work_map.put("mskm_dtl_no", str_mskm_dtl_no_net);
			}else{
				kksv_work_map.put("mskm_dtl_no", kk0081_a010_map.get(EKK0081A010CBSMsg1List.MSKM_DTL_NO));
			}
// OM-2015-0001706 2015/08/04 MOD END

			// 申込書番号
			kksv_work_map.put( "mskmsho_no", (String) inMap.get("mskmsho_no"));
			
// OM-2014-0001535 2014.04.24 Y.Kanata MOD START
//			// 工事案件ＣＣ（ネット・新設）の処理結果取得
//			HashMap<String, Object> KKSV0674063CC = (HashMap<String, Object>) param.getData("KKSV0674063CC");
//			if(KKSV0674063CC!=null){
//				// 工事案件番号
//				kksv_work_map.put("kojiak_no", KKSV0674063CC.get(JKKKojiAnkenConstCC.NEW_KOJIAK_NO));
//			}else{
//				// 工事案件番号
//				kksv_work_map.put("kojiak_no", "");
//			}
			// 工事案件番号
			String ipKojiakNo = (String) inMap.get("ips_kojiak_no");
			if (!StringUtils.isEmpty(ipKojiakNo)) {
				kksv_work_map.put("kojiak_no", ipKojiakNo);
			} else {
				kksv_work_map.put("kojiak_no", "");
			}
// OM-2014-0001535 2014.04.24 Y.Kanata MOD END
			
// ANK-1789-00-00対応 20140121 星野 ADD START
			// 送付先住所入力ありの場合
			if( !StringUtils.isEmpty( (String)inMap.get("kiki_sohus_pcd") ) ){
// 20140519 ANK-1875-00-00 Mod Start
//				// 通知書送付先名
//				kksv_work_map.put("tchisho_sohus_nm", inMap.get("kiki_sohus_nm") );
				if (KKSV072504SC != null) {
					// 通知書送付先名
					kksv_work_map.put("tchisho_sohus_nm", KKSV072504SC.get(ECK0011A010CBSMsg1List.CUST_NM));
				}
// 20140519 ANK-1875-00-00 Mod End
				// 通知書送付先住所コード
				kksv_work_map.put("tchisho_sohus_ad_cd", inMap.get("kiki_sohus_ad_cd"));
				// 通知書送付先郵便番号
				kksv_work_map.put("tchisho_sohus_pcd", inMap.get("kiki_sohus_pcd"));
				// 通知書送付先都道府県名
				kksv_work_map.put("tchisho_sohus_state_nm", inMap.get("kiki_sohus_state_nm"));
				// 通知書送付先市区町村名
				kksv_work_map.put("tchisho_sohus_city_nm", inMap.get("kiki_sohus_city_nm"));
				// 通知書送付先大字通称名
				kksv_work_map.put("tchisho_sohus_oaztsu_nm", inMap.get("kiki_sohus_oaztsu_nm"));
				// 通知書送付先字丁目名
				kksv_work_map.put("tchisho_sohus_azcho_nm", inMap.get("kiki_sohus_azcho_nm"));
				// 通知書送付先番地号
				kksv_work_map.put("tchisho_sohus_bnchigo", inMap.get("kiki_sohus_bnchigo"));
				// 通知書送付先住所補記・建物名
				kksv_work_map.put("tchisho_sohus_adrttm", inMap.get("kiki_sohus_adrttm"));
				// 通知書送付先住所補記・部屋番号
				kksv_work_map.put("tchisho_sohus_adrrm", inMap.get("kiki_sohus_adrrm"));
				// 通知書送付先電話番号
				kksv_work_map.put("tchisho_sohus_telno", inMap.get("kiki_shs_tln"));
				
			}else{
// ANK-1789-00-00対応 20140121 星野 ADD END
					
				if(KKSV072504SC!=null){
					// 通知書送付先名
					kksv_work_map.put("tchisho_sohus_nm", KKSV072504SC.get(ECK0011A010CBSMsg1List.CUST_NM));
				}
				
				// 通知書送付先住所コード
				kksv_work_map.put("tchisho_sohus_ad_cd", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_AD_CD));
				// 通知書送付先郵便番号
				kksv_work_map.put("tchisho_sohus_pcd", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_PCD));
				// 通知書送付先都道府県名
				kksv_work_map.put("tchisho_sohus_state_nm", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_STATE_NM));
				// 通知書送付先市区町村名
				kksv_work_map.put("tchisho_sohus_city_nm", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_CITY_NM));
				// 通知書送付先大字通称名
				kksv_work_map.put("tchisho_sohus_oaztsu_nm", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_OAZTSU_NM));
				// 通知書送付先字丁目名
				kksv_work_map.put("tchisho_sohus_azcho_nm", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_AZCHO_NM));
				// 通知書送付先番地号
				kksv_work_map.put("tchisho_sohus_bnchigo", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_BNCHIGO));
				// 通知書送付先住所補記・建物名
				kksv_work_map.put("tchisho_sohus_adrttm", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_ADRTTM));
				// 通知書送付先住所補記・部屋番号
				kksv_work_map.put("tchisho_sohus_adrrm", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_ADRRM));
				// 通知書送付先電話番号
				kksv_work_map.put("tchisho_sohus_telno", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_TELNO));
				
// ANK-1789-00-00対応 20140121 星野 ADD START
			}
// ANK-1789-00-00対応 20140121 星野 ADD END
			kksv_work_map_list.add(kksv_work_map);
		}
		
		// ｅｏ光電話＿利用サービス変更区分取得（View層で設定）
		String jdgChgDivTel = (String) inMap.get("eoh_tel_use_svc_chg_div");
		// 処理対象となる変更区分の場合
		if(isTargetChgDiv(jdgChgDivTel)){
			
			HashMap<String, Object> kksv_work_map= new HashMap<String, Object>();
			
			// View層でマッピングされたサービス契約番号を取得
			String svc_kei_no_tel = (String) inMap.get("svc_kei_no_tel");
			// 電話のワーク領域
			HashMap<String, Object> workMapTel = (HashMap<String, Object>) param.getMappingWorkArea().get("JKKAddSvcKeiTelCCWork");
			// サービス契約番号が新規採番されていれば差し替え
			if(workMapTel!=null && !StringUtils.isEmpty((String) workMapTel.get("svc_kei_no"))){
				svc_kei_no_tel = (String) workMapTel.get("svc_kei_no");
			}
			
			// サービス契約番号
			kksv_work_map.put("svc_kei_no", svc_kei_no_tel);
			
			// EKK0081A010_サービス契約一意照会
			HashMap<String, Object> kk0081_a010_map = 
				lclCmnLogic.getEKK0081A010( param, mapper, fixedText, scCall, svc_kei_no_tel, JKKAdchgConstCC.DEFAULT_RSV_APLY_YMD );

			// 料金グループコード
			kksv_work_map.put("prc_grp_cd", kk0081_a010_map.get(EKK0081A010CBSMsg1List.PRC_GRP_CD) );
			// SYSID
			kksv_work_map.put("sysid", inMap.get("sysid") );
			// SEIRI_NO
			kksv_work_map.put("seiri_no", kk0081_a010_map.get(EKK0081A010CBSMsg1List.SEIRI_NO) );

// OM-2015-0001706 2015/08/04 MOD START
// OM-2014-0001535 2014.04.24 Y.Kanata MOD START
//			// 申込明細番号
//			kksv_work_map.put("mskm_dtl_no", KKSV072508SC.get("mskm_dtl_no"));
//			if (StringUtils.isEmpty((String)kksv_work_map.get("mskm_dtl_no"))) {
//				kksv_work_map.put("mskm_dtl_no", kk0081_a010_map.get(EKK0081A010CBSMsg1List.MSKM_DTL_NO));
//			}
// OM-2014-0001535 2014.04.24 Y.Kanata MOD END
			// 申込明細番号
			String str_mskm_dtl_no_tel =  (String)KKSV072538CC.get("mskm_dtl_no_tel");
			if (!StringUtils.isEmpty(str_mskm_dtl_no_tel)){
				kksv_work_map.put("mskm_dtl_no", str_mskm_dtl_no_tel);
			}else{
				kksv_work_map.put("mskm_dtl_no", KKSV072508SC.get("mskm_dtl_no"));
				if (StringUtils.isEmpty((String)kksv_work_map.get("mskm_dtl_no"))) {
					kksv_work_map.put("mskm_dtl_no", kk0081_a010_map.get(EKK0081A010CBSMsg1List.MSKM_DTL_NO));
				}
			}
// OM-2015-0001706 2015/08/04 MOD END

			// 申込書番号
			kksv_work_map.put( "mskmsho_no", (String) inMap.get("mskmsho_no"));
			
// OM-2014-0001535 2014.04.24 Y.Kanata MOD START
//			// 工事案件ＣＣ（電話・新設）の処理結果取得
//			HashMap<String, Object> KKSV0674064CC = (HashMap<String, Object>) param.getData("KKSV0674064CC");
//			if(KKSV0674064CC!=null){
//				// 工事案件番号
//				kksv_work_map.put("kojiak_no", KKSV0674064CC.get(JKKKojiAnkenConstCC.NEW_KOJIAK_NO));
//			}else{
//				// 工事案件番号
//				kksv_work_map.put("kojiak_no", "");
//			}
			// 工事案件番号
			String ipKojiakNo = (String) inMap.get("ips_kojiak_no");
			// 工事案件ＣＣ（電話・新設）の処理結果取得
			HashMap<String, Object> KKSV0725331CC = (HashMap<String, Object>) param.getData("KKSV0725331CC");
			if (!StringUtils.isEmpty(ipKojiakNo)) {
				kksv_work_map.put("kojiak_no", ipKojiakNo);
			} else if (KKSV0725331CC != null) {
				kksv_work_map.put("kojiak_no", KKSV0725331CC.get(JKKKojiAnkenConstCC.NEW_KOJIAK_NO));
			} else {
				kksv_work_map.put("kojiak_no", "");
			}
// OM-2014-0001535 2014.04.24 Y.Kanata MOD END
			
// ANK-1789-00-00対応 20140121 星野 ADD START
			// 送付先住所入力ありの場合
			if( !StringUtils.isEmpty( (String)inMap.get("kiki_sohus_pcd") ) ){
// 20140519 ANK-1875-00-00 Mod Start
//				// 通知書送付先名
//				kksv_work_map.put("tchisho_sohus_nm", inMap.get("kiki_sohus_nm") );
				if (KKSV072504SC != null) {
					// 通知書送付先名
					kksv_work_map.put("tchisho_sohus_nm", KKSV072504SC.get(ECK0011A010CBSMsg1List.CUST_NM));
				}
// 20140519 ANK-1875-00-00 Mod End
				// 通知書送付先住所コード
				kksv_work_map.put("tchisho_sohus_ad_cd", inMap.get("kiki_sohus_ad_cd"));
				// 通知書送付先郵便番号
				kksv_work_map.put("tchisho_sohus_pcd", inMap.get("kiki_sohus_pcd"));
				// 通知書送付先都道府県名
				kksv_work_map.put("tchisho_sohus_state_nm", inMap.get("kiki_sohus_state_nm"));
				// 通知書送付先市区町村名
				kksv_work_map.put("tchisho_sohus_city_nm", inMap.get("kiki_sohus_city_nm"));
				// 通知書送付先大字通称名
				kksv_work_map.put("tchisho_sohus_oaztsu_nm", inMap.get("kiki_sohus_oaztsu_nm"));
				// 通知書送付先字丁目名
				kksv_work_map.put("tchisho_sohus_azcho_nm", inMap.get("kiki_sohus_azcho_nm"));
				// 通知書送付先番地号
				kksv_work_map.put("tchisho_sohus_bnchigo", inMap.get("kiki_sohus_bnchigo"));
				// 通知書送付先住所補記・建物名
				kksv_work_map.put("tchisho_sohus_adrttm", inMap.get("kiki_sohus_adrttm"));
				// 通知書送付先住所補記・部屋番号
				kksv_work_map.put("tchisho_sohus_adrrm", inMap.get("kiki_sohus_adrrm"));
				// 通知書送付先電話番号
				kksv_work_map.put("tchisho_sohus_telno", inMap.get("kiki_shs_tln"));
				
			}else{
// ANK-1789-00-00対応 20140121 星野 ADD END
					
				if(KKSV072504SC!=null){
					// 通知書送付先名
					kksv_work_map.put("tchisho_sohus_nm", KKSV072504SC.get(ECK0011A010CBSMsg1List.CUST_NM));
				}
				
				// 通知書送付先住所コード
				kksv_work_map.put("tchisho_sohus_ad_cd", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_AD_CD));
				// 通知書送付先郵便番号
				kksv_work_map.put("tchisho_sohus_pcd", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_PCD));
				// 通知書送付先都道府県名
				kksv_work_map.put("tchisho_sohus_state_nm", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_STATE_NM));
				// 通知書送付先市区町村名
				kksv_work_map.put("tchisho_sohus_city_nm", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_CITY_NM));
				// 通知書送付先大字通称名
				kksv_work_map.put("tchisho_sohus_oaztsu_nm", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_OAZTSU_NM));
				// 通知書送付先字丁目名
				kksv_work_map.put("tchisho_sohus_azcho_nm", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_AZCHO_NM));
				// 通知書送付先番地号
				kksv_work_map.put("tchisho_sohus_bnchigo", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_BNCHIGO));
				// 通知書送付先住所補記・建物名
				kksv_work_map.put("tchisho_sohus_adrttm", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_ADRTTM));
				// 通知書送付先住所補記・部屋番号
				kksv_work_map.put("tchisho_sohus_adrrm", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_ADRRM));
				// 通知書送付先電話番号
				kksv_work_map.put("tchisho_sohus_telno", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_TELNO));
				
// ANK-1789-00-00対応 20140121 星野 ADD START
			}
// ANK-1789-00-00対応 20140121 星野 ADD END
			kksv_work_map_list.add(kksv_work_map);
		}
		
		// ｅｏ光テレビ＿利用サービス変更区分取得（View層で設定）
		String jdgChgDivTv = (String) inMap.get("eoh_tv_use_svc_chg_div");
		// 処理対象となる変更区分の場合
		if(isTargetChgDiv(jdgChgDivTv)){
			
			HashMap<String, Object> kksv_work_map= new HashMap<String, Object>();
			
			// View層でマッピングされたサービス契約番号を取得
			String svc_kei_no_tv = (String) inMap.get("svc_kei_no_tv");
			// テレビのワーク領域
			HashMap<String, Object> workMapTv = (HashMap<String, Object>) param.getMappingWorkArea().get("JKKAddSvcKeiTvCCWork");
			// サービス契約番号が新規採番されていれば差し替え
			if(workMapTv!=null && !StringUtils.isEmpty((String) workMapTv.get("svc_kei_no"))){
				svc_kei_no_tv = (String) workMapTv.get("svc_kei_no");
			}
			
			// サービス契約番号
			kksv_work_map.put("svc_kei_no", svc_kei_no_tv);
			
			// EKK0081A010_サービス契約一意照会
			HashMap<String, Object> kk0081_a010_map = 
				lclCmnLogic.getEKK0081A010( param, mapper, fixedText, scCall, svc_kei_no_tv, JKKAdchgConstCC.DEFAULT_RSV_APLY_YMD );

			// 料金グループコード
			kksv_work_map.put("prc_grp_cd", kk0081_a010_map.get(EKK0081A010CBSMsg1List.PRC_GRP_CD) );
			// SYSID
			kksv_work_map.put("sysid", inMap.get("sysid") );
			// SEIRI_NO
			kksv_work_map.put("seiri_no", kk0081_a010_map.get(EKK0081A010CBSMsg1List.SEIRI_NO) );

			// 申込明細番号
// OM-2014-0001535 2014.04.24 Y.Kanata MOD START
//			kksv_work_map.put("mskm_dtl_no", kk0081_a010_map.get(EKK0081A010CBSMsg1List.MSKM_DTL_NO));
// OM-2015-0001706 2015/08/04 MOD START
//			kksv_work_map.put("mskm_dtl_no", KKSV0725501SC.get("mskm_dtl_no"));
//			if (StringUtils.isEmpty((String)kksv_work_map.get("mskm_dtl_no"))) {
//				kksv_work_map.put("mskm_dtl_no", kk0081_a010_map.get(EKK0081A010CBSMsg1List.MSKM_DTL_NO));
			String str_mskm_dtl_no_tv =  (String)KKSV072538CC.get("mskm_dtl_no_tv");
			if (!StringUtils.isEmpty(str_mskm_dtl_no_tv)){
				kksv_work_map.put("mskm_dtl_no", str_mskm_dtl_no_tv);
			}else{
				kksv_work_map.put("mskm_dtl_no", KKSV0725501SC.get("mskm_dtl_no"));
				if (StringUtils.isEmpty((String)kksv_work_map.get("mskm_dtl_no"))) {
					kksv_work_map.put("mskm_dtl_no", kk0081_a010_map.get(EKK0081A010CBSMsg1List.MSKM_DTL_NO));
				}
// OM-2015-0001706 2015/08/04 MOD END
			}
// OM-2014-0001535 2014.04.24 Y.Kanata MOD END
			// 申込書番号
			kksv_work_map.put( "mskmsho_no", (String) inMap.get("mskmsho_no"));
			
// OM-2014-0001535 2014.04.24 Y.Kanata MOD START
//			// 工事案件ＣＣ（テレビ・新設）の処理結果取得
//			HashMap<String, Object> KKSV0674065CC = (HashMap<String, Object>) param.getData("KKSV0674065CC");
//			HashMap<String, Object> KKSV0674200CC = (HashMap<String, Object>) param.getData("KKSV0674200CC");			
//			if(KKSV0674065CC!=null){
//				// 工事案件番号
//				kksv_work_map.put("kojiak_no", KKSV0674065CC.get(JKKKojiAnkenConstCC.NEW_KOJIAK_NO));
//			}else if(KKSV0674200CC!=null){
//				// 工事案件番号
//				kksv_work_map.put("kojiak_no", KKSV0674200CC.get(JKKKojiAnkenConstCC.NEW_KOJIAK_NO));
//			}else{
//				// 工事案件番号
//				kksv_work_map.put("kojiak_no", "");
//			}
			// 工事案件番号
			String tvKojiakNo = (String) inMap.get("tvs_kojiak_no");
			// 工事案件ＣＣ（テレビ・新設）の処理結果取得
			HashMap<String, Object> KKSV072517CC = (HashMap<String, Object>) param.getData("KKSV072517CC");
			if (!StringUtils.isEmpty(tvKojiakNo)) {
				kksv_work_map.put("kojiak_no", tvKojiakNo);
			} else if (KKSV072517CC != null) {
				kksv_work_map.put("kojiak_no", KKSV072517CC.get(JKKKojiAnkenConstCC.NEW_KOJIAK_NO));
			} else {
				kksv_work_map.put("kojiak_no", "");
			}
// OM-2014-0001535 2014.04.24 Y.Kanata MOD END
			
// ANK-1789-00-00対応 20140121 星野 ADD START
			// 送付先住所入力ありの場合
			if( !StringUtils.isEmpty( (String)inMap.get("kiki_sohus_pcd") ) ){
// 20140519 ANK-1875-00-00 Mod Start
//				// 通知書送付先名
//				kksv_work_map.put("tchisho_sohus_nm", inMap.get("kiki_sohus_nm") );
				if (KKSV072504SC != null) {
					// 通知書送付先名
					kksv_work_map.put("tchisho_sohus_nm", KKSV072504SC.get(ECK0011A010CBSMsg1List.CUST_NM));
				}
// 20140519 ANK-1875-00-00 Mod End
				// 通知書送付先住所コード
				kksv_work_map.put("tchisho_sohus_ad_cd", inMap.get("kiki_sohus_ad_cd"));
				// 通知書送付先郵便番号
				kksv_work_map.put("tchisho_sohus_pcd", inMap.get("kiki_sohus_pcd"));
				// 通知書送付先都道府県名
				kksv_work_map.put("tchisho_sohus_state_nm", inMap.get("kiki_sohus_state_nm"));
				// 通知書送付先市区町村名
				kksv_work_map.put("tchisho_sohus_city_nm", inMap.get("kiki_sohus_city_nm"));
				// 通知書送付先大字通称名
				kksv_work_map.put("tchisho_sohus_oaztsu_nm", inMap.get("kiki_sohus_oaztsu_nm"));
				// 通知書送付先字丁目名
				kksv_work_map.put("tchisho_sohus_azcho_nm", inMap.get("kiki_sohus_azcho_nm"));
				// 通知書送付先番地号
				kksv_work_map.put("tchisho_sohus_bnchigo", inMap.get("kiki_sohus_bnchigo"));
				// 通知書送付先住所補記・建物名
				kksv_work_map.put("tchisho_sohus_adrttm", inMap.get("kiki_sohus_adrttm"));
				// 通知書送付先住所補記・部屋番号
				kksv_work_map.put("tchisho_sohus_adrrm", inMap.get("kiki_sohus_adrrm"));
				// 通知書送付先電話番号
				kksv_work_map.put("tchisho_sohus_telno", inMap.get("kiki_shs_tln"));
				
			}else{
// ANK-1789-00-00対応 20140121 星野 ADD END
					
				if(KKSV072504SC!=null){
					// 通知書送付先名
					kksv_work_map.put("tchisho_sohus_nm", KKSV072504SC.get(ECK0011A010CBSMsg1List.CUST_NM));
				}
				
				// 通知書送付先住所コード
				kksv_work_map.put("tchisho_sohus_ad_cd", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_AD_CD));
				// 通知書送付先郵便番号
				kksv_work_map.put("tchisho_sohus_pcd", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_PCD));
				// 通知書送付先都道府県名
				kksv_work_map.put("tchisho_sohus_state_nm", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_STATE_NM));
				// 通知書送付先市区町村名
				kksv_work_map.put("tchisho_sohus_city_nm", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_CITY_NM));
				// 通知書送付先大字通称名
				kksv_work_map.put("tchisho_sohus_oaztsu_nm", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_OAZTSU_NM));
				// 通知書送付先字丁目名
				kksv_work_map.put("tchisho_sohus_azcho_nm", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_AZCHO_NM));
				// 通知書送付先番地号
				kksv_work_map.put("tchisho_sohus_bnchigo", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_BNCHIGO));
				// 通知書送付先住所補記・建物名
				kksv_work_map.put("tchisho_sohus_adrttm", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_ADRTTM));
				// 通知書送付先住所補記・部屋番号
				kksv_work_map.put("tchisho_sohus_adrrm", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_ADRRM));
				// 通知書送付先電話番号
				kksv_work_map.put("tchisho_sohus_telno", kk0251_a010_map.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_TELNO));
				
// ANK-1789-00-00対応 20140121 星野 ADD START
			}
// ANK-1789-00-00対応 20140121 星野 ADD END
			kksv_work_map_list.add(kksv_work_map);
		}
// OM-2014-0001535 2014.04.24 Y.Kanata ADD START
// 通知書に解約したサービスの申込明細番号が設定されている場合、取消漏れが発生する。
// そのため、サービスの異動区分が契約なしの場合にもkksv_work_map_listへ追加するが、項目「解約フラグ」を追加して見分けを付けられるようにする。
//		// ネットが契約なしの場合
//		if ("5".equals(jdgChgDivNet)) {
//			HashMap<String, Object> kksv_work_map = new HashMap<String, Object>();
//			// View層でマッピングされたサービス契約番号を取得
//			String svc_kei_no_net = (String) inMap.get("svc_kei_no_net");
//			if (!StringUtils.isEmpty(svc_kei_no_net)) {
//				// サービス契約番号
//				kksv_work_map.put("svc_kei_no", svc_kei_no_net);
//				// EKK0081A010_サービス契約一意照会
//				HashMap<String, Object> kk0081_a010_map = lclCmnLogic.getEKK0081A010(param, mapper, fixedText, scCall, svc_kei_no_net, JKKAdchgConstCC.DEFAULT_RSV_APLY_YMD);
//				// 申込明細番号
//				kksv_work_map.put("mskm_dtl_no", kk0081_a010_map.get(EKK0081A010CBSMsg1List.MSKM_DTL_NO));
//				// 解約フラグ
//				kksv_work_map.put("dsl_flg", "1");
//				kksv_work_map_list.add(kksv_work_map);
//			}
//		}
		// 電話が契約なしの場合
		if ("5".equals(jdgChgDivTel)) {
			HashMap<String, Object> kksv_work_map = new HashMap<String, Object>();
			// View層でマッピングされた変更後サービス契約番号を取得
			String svc_kei_no_tel = (String) inMap.get("svc_kei_no_tel");
			if (!StringUtils.isEmpty(svc_kei_no_tel)) {
				// サービス契約番号
				kksv_work_map.put("svc_kei_no", svc_kei_no_tel);
				// 申込明細番号
				kksv_work_map.put("mskm_dtl_no", inMap.get("tel_mskm_dtl_no_bf"));
				if (StringUtils.isEmpty((String)kksv_work_map.get("mskm_dtl_no"))) {
					// EKK0081A010_サービス契約一意照会
					HashMap<String, Object> kk0081_a010_map = lclCmnLogic.getEKK0081A010(param, mapper, fixedText, scCall, svc_kei_no_tel, JKKAdchgConstCC.DEFAULT_RSV_APLY_YMD);
					kksv_work_map.put("mskm_dtl_no", kk0081_a010_map.get(EKK0081A010CBSMsg1List.MSKM_DTL_NO));
				}
				// 解約フラグ
				kksv_work_map.put("dsl_flg", "1");
				kksv_work_map_list.add(kksv_work_map);
			}
		}
		// テレビが契約なしの場合
		if ("5".equals(jdgChgDivTv)) {
			HashMap<String, Object> kksv_work_map = new HashMap<String, Object>();
			// View層でマッピングされた変更後サービス契約番号を取得
			String svc_kei_no_tv = (String) inMap.get("svc_kei_no_tv");
			if (!StringUtils.isEmpty(svc_kei_no_tv)) {
				// サービス契約番号
				kksv_work_map.put("svc_kei_no", svc_kei_no_tv);
				
				// 申込明細番号
				kksv_work_map.put("mskm_dtl_no", inMap.get("tv_mskm_dtl_no_bf"));
				if (StringUtils.isEmpty((String)kksv_work_map.get("mskm_dtl_no"))) {
					// EKK0081A010_サービス契約一意照会
					HashMap<String, Object> kk0081_a010_map = lclCmnLogic.getEKK0081A010(param, mapper, fixedText, scCall, svc_kei_no_tv, JKKAdchgConstCC.DEFAULT_RSV_APLY_YMD);
					kksv_work_map.put("mskm_dtl_no", kk0081_a010_map.get(EKK0081A010CBSMsg1List.MSKM_DTL_NO));
				}
				// 解約フラグ
				kksv_work_map.put("dsl_flg", "1");
				kksv_work_map_list.add(kksv_work_map);
			}
		}
// OM-2014-0001535 2014.04.24 Y.Kanata ADD END
		KKSV072538CC.put( "trgt_data_list", kksv_work_map_list );


		return param;
	}
	
	private boolean isTargetChgDiv(String jdgChgDiv){
		if ( 
				(!StringUtils.isEmpty( jdgChgDiv )) && 
				( 
					"2".equals( jdgChgDiv ) || 
					"5".equals( jdgChgDiv ) || 
					"4".equals( jdgChgDiv )
				) 
		) {
			// 契約なし・保留・解約の場合は処理を行わない
			return false;
		}else{
			return true;
		}

	}
}
