/********************************************************************
 *  All Rights reserved,Copyright (c) K-Opticom
 ********************************************************************
 *＜プログラム内容＞
 *  システム名      ：eo顧客基幹システム
 *  モジュール名    ：ガイド誌送付先変更コンポーネント部品クラス
 *  ソースファイル名：JKKGuideShsSendAdchgCC.java
 *  作成者          ：FJ
 *  日付            ：2012年8月27日
 *＜機能概要＞
 *  住所変更に伴うガイド誌の
 *  送付先変更を行う部品クラス。
 *＜修正履歴＞
 *  バージョン  修正日      修正者      修正内容
 *  v1.00.00    2012/08/28  FJ          新規作成
 *  v8.00.00    2014/04/03  FJ)星野     OM-2014-0001265対応
 ********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import com.fujitsu.futurity.bp.custom.constant.JKKAdchgConstCC;
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.EKK0351A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0351C030CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0351C050CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0361D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0381A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0381A010CBSMsg1List;

/**
 * ガイド誌送付先変更コンポーネント部品クラス.
 * <br>
 * @author FJ
 */
public class JKKGuideShsSendAdchgCC extends AbstractCommonComponent {

	/** セッションハンドル保持域 */
	private static ThreadLocal<SessionHandle> keepSesHandle = new ThreadLocal<SessionHandle>()
	{
		// 保持域への設定はinitialValue()ではなくset()を使用する為、
		// initialValue()は実装しない
	};

	/**
	 * コンストラクタ.
	 * <br>
	 */
	public JKKGuideShsSendAdchgCC() {
	}

	/**
	 * ガイド誌送付先変更
	 * <br>
	 * @param   handle     セッションマネージャなどを持ったハンドル情報
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   fixedText  ユーザ任意文字列
	 * @throws  Throwable  例外が発生した場合
	 * @return  リクエストパラメータ(param)に戻り値を追加して返却する
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite guideShsSendAdchg(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Throwable {

		try {

			/** 事前準備 */
			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();

			/** リソース保持 */
			// セッションハンドルをローカル変数に保持
			keepSesHandle.set(handle);
// ★★★ リファクタ対応 ガイド誌送付先住所未更新対応 DELETE S.SHINJO  2012.10.20 START ★★★
//			/** パラメータからの展開 */
//			// param.オプションサービス契約情報リスト を抽出
//			ArrayList<HashMap<String, Object>> op_svc_kei_list = (ArrayList<HashMap<String, Object>>)paramMap.get(JKKAdchgConstCC.PARAM_KEY_OP_SVC_KEI_LIST);
//
//			// ガイド誌送付先住所変更対象リストを生成
//			ArrayList<String> guide_shs_chg_tgt_lst = new ArrayList<String>();
//			
//			// param.ガイド誌送付先住所変更対象リスト を抽出し、
//			// 変更対象のオプションサービス契約番号を
//			// 生成したリストへ設定
//			ArrayList<HashMap<String, Object>> param_guide_shs_chg_tgt_lst = (ArrayList<HashMap<String, Object>>)paramMap.get(JKKAdchgConstCC.PARAM_KEY_GUIDE_SHS_CHG_TGT_LIST);
//
//			if(param_guide_shs_chg_tgt_lst != null) {
//				Iterator<HashMap<String, Object>> tgt_lst_Ite = param_guide_shs_chg_tgt_lst.iterator();
//				while(tgt_lst_Ite.hasNext()){
//
//					HashMap<String, Object> cur_tgt = tgt_lst_Ite.next();
//
//					if (cur_tgt == null) {
//						continue;
//					}
//
//					String choice_div_cd = null;
//					choice_div_cd = (String) cur_tgt.get(JKKAdchgConstCC.PARAM_KEY_GUIDE_SHS_OP_CHOICE_DIV_CD);
//
//					if (choice_div_cd == null) {
//						continue;
//					}
//					if ("0".equals(choice_div_cd)) {
//						continue;
//					}
//
//					guide_shs_chg_tgt_lst.add((String)cur_tgt.get(JKKAdchgConstCC.PARAM_KEY_GUIDE_SHS_OP_SVC_KEI_NO));
//				}
//			}

//			/** ガイド誌送付先変更ループ */
//			Iterator<HashMap<String, Object>> op_svc_kei_list_ite = op_svc_kei_list.iterator();
//			// 対象OP契約番号格納用
//			String opSvcKeiNo = "";
//			while(op_svc_kei_list_ite.hasNext()){
//				
//				// cur_op_svc_kei.利用サービス変更区分を取得
//				HashMap<String, Object> cur_op_svc_kei = op_svc_kei_list_ite.next();
//				String use_op_svc_chg_div = (String)cur_op_svc_kei.get(JKKAdchgConstCC.PARAM_KEY_USE_OP_SVC_CHG_DIV);
//				
//				// cur_op_svc_kei.オプションサービス契約番号を取得
//				String op_svc_kei_no = (String)cur_op_svc_kei.get(JKKAdchgConstCC.PARAM_KEY_OP_SVC_KEI_NO);
//				
//				// 「引継」であるかを判定
//				if(JKKAdchgConstCC.CD00852_KEEP.equals(use_op_svc_chg_div)) {
//					
//					// ・EKK0351A010  オプションサービス契約一意照会
//					condMap = new HashMap<String, String>();
//					condMap.put(JKKAdchgMapperCC.COND_KEY_OP_SVC_KEI_NO, op_svc_kei_no);
//					condMap.put(JKKAdchgMapperCC.COND_KEY_OPEDATE, (String)paramMap.get(JKKAdchgConstCC.PARAM_KEY_OPE_DATE));
//					reqMap = mapper.setEKK0351A010( param, fixedText, condMap );
//					resMap = scCall.run(reqMap, keepSesHandle.get());
//					HashMap<String, Object> kk0351_a010_map = mapper.getEKK0351A010(param, fixedText, resMap);
//					mapper.scResultCheck(param);
//
//					// kk0351_a010_map.申込明細番号をparam.申込明細番号に差替
//					kk0351_a010_map.put(EKK0351A010CBSMsg1List.MSKM_DTL_NO, (String)paramMap.get(JKKAdchgConstCC.PARAM_KEY_MSKM_DTL_NO));
//					// kk0351_a010_map.異動区分をparam.異動区分に差替
//					kk0351_a010_map.put(EKK0351A010CBSMsg1List.IDO_DIV, (String)paramMap.get(JKKAdchgConstCC.PARAM_KEY_IDO_DIV));
//
//					// kk0351_a010_mapへ更新年月日時分秒(更新前)を設定
//					String befUpdDtm = (String)cur_op_svc_kei.get(JKKAdchgConstCC.PARAM_KEY_OP_SVC_KEI_UPD_DTM_BEF);
//					String aftUpdDtm = (String)cur_op_svc_kei.get(JKKAdchgConstCC.PARAM_KEY_OP_SVC_KEI_UPD_DTM_AFT);
//					kk0351_a010_map.put(JKKAdchgMapperCC.UPD_DT_OP_SVC_KEI_UPD_DTM_BEF, getUpdDtmBef(getUpdDtmBef(befUpdDtm, aftUpdDtm),
//							(String)paramMap.get(JKKAdchgConstCC.PARAM_KEY_SVC_KEI_UPD_DTM_AFT)));
//					
//					
//					// ・EKK0381A010  オプションサービス契約＜TV＞一意照会
//					condMap = new HashMap<String, String>();
//					condMap.put(JKKAdchgMapperCC.COND_KEY_OP_SVC_KEI_NO, op_svc_kei_no);
//					reqMap = mapper.setEKK0381A010(param, fixedText, condMap);
//					resMap = scCall.run(reqMap, keepSesHandle.get());
//					HashMap<String, Object> kk0381_a010_map = mapper.getEKK0381A010(param, fixedText, resMap);
//					mapper.scResultCheck(param);
//					
//					opSvcKeiNo = (String)kk0381_a010_map.get(EKK0381A010CBSMsg1List.OP_SVC_KEI_NO);
//					
//					// オプションサービス契約＜TV＞一意照会で取得できた場合
//					if(opSvcKeiNo != null && !"".equals(opSvcKeiNo))
//					{
//						
//						// ガイド誌送付先住所変更対象であるかを判定
//						if( guide_shs_chg_tgt_lst.contains(op_svc_kei_no)){
//		
//							/** ガイド誌送付先住所変更 */
//							guideshsInfoChg(param, fixedText, kk0381_a010_map, kk0351_a010_map);
//							
//							/** 更新年月日変更処理 */
//							updDtmChg(param, fixedText, op_svc_kei_no);
//							
//						}
//					}
//				}
//			}
//		
//			} finally {
//				
//			// ・セッションハンドル保持域
//			if(keepSesHandle.get() != null){
//				keepSesHandle.remove();
//			}
//		}
// ★★★ リファクタ対応 ガイド誌送付先住所未更新対応 DELETE S.SHINJO  2012.10.20 END ★★★

// ★★★ リファクタ対応 ガイド誌送付先住所未更新対応 ADD S.SHINJO  2012.10.20 START  ★★★
// ★★★ オプションの情報は必要ないため、下記よりガイド誌送付先住所のみの処理を記述 	★★★

			// ガイド誌送付先住所変更対象リストを生成
			ArrayList<HashMap<String, Object>> param_guide_shs_chg_tgt_lst = (ArrayList<HashMap<String, Object>>)paramMap.get(JKKAdchgConstCC.PARAM_KEY_GUIDE_SHS_CHG_TGT_LIST);

			/** ガイド誌送付先変更ループ */
			Iterator<HashMap<String, Object>> guide_shs_chg_list_ite = param_guide_shs_chg_tgt_lst.iterator();

			while(guide_shs_chg_list_ite.hasNext()){

				HashMap<String, Object> guide_shs_chg_map = guide_shs_chg_list_ite.next();

				// 選択されているガイド誌送付先住所を取得
				String choice_div_cd = null;
				choice_div_cd = (String) guide_shs_chg_map.get(JKKAdchgConstCC.PARAM_KEY_GUIDE_SHS_OP_CHOICE_DIV_CD);

				// 選択されていないガイド誌誌情報が除外
				if("0".equals(choice_div_cd) ){
					continue;
				}

				// cur_op_svc_kei.ガイド誌オプションサービス契約番号を取得
				String guide_shs_op_svc_kei_no = (String)guide_shs_chg_map.get(JKKAdchgConstCC.PARAM_KEY_GUIDE_SHS_OP_SVC_KEI_NO);

				// ・EKK0351A010  オプションサービス契約一意照会
				condMap = new HashMap<String, String>();
				condMap.put(JKKAdchgMapperCC.COND_KEY_OP_SVC_KEI_NO, guide_shs_op_svc_kei_no);
// OM-2014-0001265対応 20140403 星野 MOD START
//				condMap.put(JKKAdchgMapperCC.COND_KEY_OPEDATE, (String)paramMap.get(JKKAdchgConstCC.PARAM_KEY_OPE_DATE));
				condMap.put(JKKAdchgMapperCC.COND_KEY_OPEDATE, (String)paramMap.get("svc_use_sta_kibo_ymd"));
// OM-2014-0001265対応 20140403 星野 MOD END
				reqMap = mapper.setEKK0351A010( param, fixedText, condMap );
				resMap = scCall.run(reqMap, keepSesHandle.get());
				HashMap<String, Object> kk0351_a010_map = mapper.getEKK0351A010(param, fixedText, resMap);
				mapper.scResultCheck(param);

				// kk0351_a010_map.申込明細番号をparam.申込明細番号に差替
				kk0351_a010_map.put(EKK0351A010CBSMsg1List.MSKM_DTL_NO, (String)paramMap.get(JKKAdchgConstCC.PARAM_KEY_MSKM_DTL_NO));
				// kk0351_a010_map.異動区分をparam.異動区分に差替
				kk0351_a010_map.put(EKK0351A010CBSMsg1List.IDO_DIV, (String)paramMap.get(JKKAdchgConstCC.PARAM_KEY_IDO_DIV));

				// ・EKK0381A010  オプションサービス契約＜TV＞一意照会
				condMap = new HashMap<String, String>();
				condMap.put(JKKAdchgMapperCC.COND_KEY_OP_SVC_KEI_NO, guide_shs_op_svc_kei_no);
// OM-2014-0001265対応 20140403 星野 MOD START
//				reqMap = mapper.setEKK0381A010(param, fixedText, condMap);
				condMap.put(EKK0381A010CBSMsg.KEY_GENE_ADD_DTM, (String)kk0351_a010_map.get(EKK0351A010CBSMsg1List.GENE_ADD_DTM));
				reqMap = mapper.setEKK0381A010_2(param, fixedText, condMap);
// OM-2014-0001265対応 20140403 星野 MOD END
				resMap = scCall.run(reqMap, keepSesHandle.get());
				HashMap<String, Object> kk0381_a010_map = mapper.getEKK0381A010(param, fixedText, resMap);
				mapper.scResultCheck(param);

// IT1-2013-0000607 20130322 MATSUMOTO mod start
				String guidemgShsKsiteiFlg = (String)kk0381_a010_map.get(EKK0381A010CBSMsg1List.GUIDEMG_SHS_KSITEI_FLG);
				// ガイド誌送付先個別指定フラグが1の場合のみガイド誌送付先住所を変更する
				if("1".equals(guidemgShsKsiteiFlg)) {
					/** ガイド誌送付先住所変更 */
					guideshsInfoChg(param, fixedText, kk0381_a010_map, kk0351_a010_map);
					
					/** 更新年月日変更処理 */
					updDtmChg(param, fixedText, (String)kk0381_a010_map.get(EKK0381A010CBSMsg1List.OP_SVC_KEI_NO));
				} else {
					continue;
				}
// IT1-2013-0000607 20130322 MATSUMOTO mod end
			}
			
		} finally {
			
			// ・セッションハンドル保持域
			if(keepSesHandle.get() != null){
				keepSesHandle.remove();
			}
		}
// ★★★ リファクタ対応 ガイド誌送付先住所未更新対応 ADD S.SHINJO  2012.10.20 END  ★★★

		return param;
	}
	
	/**
	 * ガイド誌送付先変更内部処理.
	 * <br>
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   fixedText  ユーザ任意文字列
	 * @throws  Exception  例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private void guideshsInfoChg(IRequestParameterReadWrite param, String fixedText, HashMap<String, Object> kk0381_a010_map, HashMap<String, Object> kk0351_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();
		
		
		// kk0381_a010_map.ガイド誌送付先住所コードへparam.移転先_住所コードを設定
		kk0381_a010_map.put(EKK0381A010CBSMsg1List.GUIDEMG_SOHUS_AD_CD, (String)paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_CD));
		// kk0381_a010_map.ガイド誌送付先郵便番号へparam.移転先_郵便番号を設定
		kk0381_a010_map.put(EKK0381A010CBSMsg1List.GUIDEMG_SOHUS_PCD, (String)paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_POST_CD));
		// kk0381_a010_map.ガイド誌送付先都道府県名へparam.移転先_都道府県を設定
		kk0381_a010_map.put(EKK0381A010CBSMsg1List.GUIDEMG_SOHUS_STATE_NM, (String)paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_STATE));
		// kk0381_a010_map.ガイド誌送付先市区町村名へparam.移転先_市区町村を設定
		kk0381_a010_map.put(EKK0381A010CBSMsg1List.GUIDEMG_SOHUS_CITY_NM, (String)paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_CITY));
		// kk0381_a010_map.ガイド誌送付先大字通称名へparam.移転先_大字通称名を設定
		kk0381_a010_map.put(EKK0381A010CBSMsg1List.GUIDEMG_SOHUS_OAZTSU_NM, (String)paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_OAZTSU));
		// kk0381_a010_map.ガイド誌送付先字丁目名へparam.移転先_字丁目を設定
		kk0381_a010_map.put(EKK0381A010CBSMsg1List.GUIDEMG_SOHUS_AZCHO_NM, (String)paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_AZCHO));
		// kk0381_a010_map.ガイド誌送付先番地号へparam.移転先_番地・号を設定
		kk0381_a010_map.put(EKK0381A010CBSMsg1List.GUIDEMG_SOHUS_BNCHIGO, (String)paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_BNCHIGO));
		// kk0381_a010_map.ガイド誌送付先住所補記・建物名へparam.移転先_建物名を設定
		kk0381_a010_map.put(EKK0381A010CBSMsg1List.GUIDEMG_SOHUS_ADRTTM, (String)paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_ADRTTM));
		// kk0381_a010_map.ガイド誌送付先住所補記・部屋番号へparam.移転先_部屋番号を設定
		kk0381_a010_map.put(EKK0381A010CBSMsg1List.GUIDEMG_SOHUS_ADRRM, (String)paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_AD_ADRRM));
		// kk0381_a010_map.ガイド誌送付先電話番号へparam.移転先_電話番号を設定
		kk0381_a010_map.put(EKK0381A010CBSMsg1List.GUIDEMG_SOHUS_TELNO, (String)paramMap.get(JKKAdchgConstCC.PARAM_KEY_ITENS_TLN));



		// ・EKK0381C050  オプションサービス契約<TV>情報変更
		reqMap = mapper.setEKK0381C050(param, fixedText, kk0351_a010_map, kk0381_a010_map);
		resMap = scCall.run(reqMap, keepSesHandle.get());
		mapper.getEKK0381C050(param, fixedText, resMap);
		mapper.scResultCheck(param);
		
	}
	
	/**
	 * 予約適用年月日変更処理.
	 * <br>
	 * @param   param      モデルグループ、コントロールマップを含むリクエストパラメータ
	 * @param   fixedText  ユーザ任意文字列
	 * @throws  Exception  例外が発生した場合
	 */
	private void updDtmChg(IRequestParameterReadWrite param, String fixedText, String op_svc_kei_no) 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();
		
		
		// ・EKK0351A010  オプションサービス契約一意照会
		condMap = new HashMap<String, String>();
		condMap.put(JKKAdchgMapperCC.COND_KEY_OP_SVC_KEI_NO, op_svc_kei_no);
		condMap.put(JKKAdchgMapperCC.COND_KEY_OPEDATE, (String)paramMap.get(JKKAdchgConstCC.PARAM_KEY_OPE_DATE));
		reqMap = mapper.setEKK0351A010(param, fixedText, condMap);
		resMap = scCall.run(reqMap, keepSesHandle.get());
		HashMap<String, Object> kk0351_a010_map = mapper.getEKK0351A010(param, fixedText, resMap);
		mapper.scResultCheck(param);

		/** オプションサービス予約適用年月日入力 */
		HashMap<String, Object> kk0351_c030_inmap = new HashMap<String, Object>();
		kk0351_c030_inmap.put(EKK0351C030CBSMsg.OP_SVC_KEI_NO, (String)kk0351_a010_map.get(EKK0351C030CBSMsg.OP_SVC_KEI_NO));
		kk0351_c030_inmap.put(EKK0351C030CBSMsg.GENE_ADD_DTM, (String)kk0351_a010_map.get(EKK0351C030CBSMsg.GENE_ADD_DTM));
		kk0351_c030_inmap.put(EKK0351C030CBSMsg.MSKM_DTL_NO, (String)kk0351_a010_map.get(EKK0351C030CBSMsg.MSKM_DTL_NO));
		kk0351_c030_inmap.put(EKK0351C030CBSMsg.RSV_APLY_YMD, (String)paramMap.get("svc_use_sta_kibo_ymd"));
		kk0351_c030_inmap.put(EKK0351C030CBSMsg.RSV_APLY_CD, "2");
		kk0351_c030_inmap.put(EKK0351C030CBSMsg.IDO_DIV, (String)paramMap.get(JKKAdchgConstCC.PARAM_KEY_IDO_DIV));
		kk0351_c030_inmap.put(JKKAdchgMapperCC.UPD_DT_SVC_KEI_UPD_DTM_BEF, (String)kk0351_a010_map.get(EKK0361D010CBSMsg.ADD_DTM));
		reqMap = mapper.setEKK0351C030(param, fixedText, kk0351_c030_inmap);
		resMap = scCall.run(reqMap, keepSesHandle.get());
		HashMap<String, Object> kk0351_c010_res_map = mapper.getEKK0351C030(param, fixedText, resMap);
		mapper.scResultCheck(param);
		
		// 更新後の更新年月日時分秒をサービス契約の更新年月日時分秒にparamへ設定
		paramMap.put(JKKAdchgConstCC.PARAM_KEY_SVC_KEI_UPD_DTM_AFT, (String)kk0351_c010_res_map.get(EKK0351C050CBSMsg.UPD_DTM));
		
	}
	
	
	
	/**
	 * 更新前更新年月日 取得処理.
	 * <dd>以下の振る舞いで更新前更新年月日を呼び元へ返却する.
	 * <dd><dd>
	 * <table border="1">
	 * <th>条件</th><th>返却値</th>
	 * <tr><td>比較元更新年月日＝Empty</td><td>比較先更新年月日</td></tr>
	 * <tr><td>比較先更新年月日＝Empty</td><td>比較元更新年月日</td></tr>
	 * <tr><td>比較元更新年月日＞比較先更新年月日</td><td>比較元更新年月日</td></tr>
	 * <tr><td>比較元更新年月日≦比較先更新年月日</td><td>比較先更新年月日</td></tr>
	 * </table>
	 * @param   srcUpdDtm  比較元更新年月日
	 * @param   dstUpdDtm  比較先更新年月日
	 * @throws  Exception  例外が発生した場合
	 * @return  更新前更新年月日
	 */
	public String getUpdDtmBef(String srcUpdDtm, String dstUpdDtm) throws Exception {

		/** 比較元更新年月日 Emptyチェック */
		if(StringUtils.isEmpty(srcUpdDtm)){
			return dstUpdDtm;
		}

		/** 比較先更新年月日 Emptyチェック */
		if(StringUtils.isEmpty(dstUpdDtm)){
			return srcUpdDtm;
		}

		/** 比較元更新年月日＞比較先更新年月日 判定 */
		if(srcUpdDtm.compareTo(dstUpdDtm) > 0 ){
		
			return srcUpdDtm;
		} else {

			return dstUpdDtm;
		}
	}

}