/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：TUW01602SFLogic
*	ソースファイル名：TUW01602SFLogic.java
*	作成者			：FJ
*	日付			：2011年12月21日
*＜機能概要＞
*	VIEWロジッククラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v3.00.00	2011/12/21	FJ)楠神		新規作成
*	v4.00.00	2012/07/10	FJ)宮本		ANK-0398-00-00
*	v13.00.00	2015/03/27	FJ)川島		「OM-2015-0000445」対応
**********************************************************************/

package eo.web.webview.TUW01602SF;

import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.constant.JTUStrConst;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JTUScreenConst;
import eo.web.webview.common.JZMScreenConst;
import eo.web.webview.common.JTUWebCommon;
import eo.web.webview.mapping.TUSV0006_TUSV0006OPDBMapper;
import eo.web.webview.mapping.TUSV0007_TUSV0007OPDBMapper;
import eo.web.webview.mapping.TUSV0100_TUSV0100OPDBMapper;

/**
 * TUW01602のビューロジック
 * @author FJ
 *
 */
public class TUW01602SFLogic extends JCCWebBusinessLogic
{

	/**
	 * 
	 * 更新フラグ：更新
	 */
	private static final String UPD_FLG_UPD = "1";

	/**
	 * 更新フラグ：送信実績取消
	 */
	private static final String UPD_FLG_SED = "2";
	
	/**
	 * 同番移転画面の入力項目と初期値保持項目一覧（表示内容の修正確認のため）
	 */
	private static final String[][] COPYKEYLIST = {
		{TUW01602SFConst.NTT_TELNO, TUW01602SFConst.NTT_TELNO_FIRST},
		{TUW01602SFConst.NTT_KEISHA_NM, TUW01602SFConst.NTT_KEISHA_NM_FIRST},
		{TUW01602SFConst.NTT_KSH_KANA, TUW01602SFConst.NTT_KSH_KANA_FIRST},
		{TUW01602SFConst.SETPLACE_AD_MAN_INPUT_FLG, TUW01602SFConst.SETPLACE_AD_MAN_INPUT_FLG_FIRST},
		{TUW01602SFConst.SETPLACE_AD_CD_1, TUW01602SFConst.SETPLACE_AD_CD_1_FIRST},
		{TUW01602SFConst.SETPLACE_AD_CD_2, TUW01602SFConst.SETPLACE_AD_CD_2_FIRST},
		{TUW01602SFConst.SETPLACE_AD_CD_3, TUW01602SFConst.SETPLACE_AD_CD_3_FIRST},
		{TUW01602SFConst.SETPLACE_AD_CD_4, TUW01602SFConst.SETPLACE_AD_CD_4_FIRST},
		{TUW01602SFConst.SETPLACE_PCD_1, TUW01602SFConst.SETPLACE_PCD_1_FIRST},
		{TUW01602SFConst.SETPLACE_PCD_2, TUW01602SFConst.SETPLACE_PCD_2_FIRST},
		{TUW01602SFConst.SETPLACE_STATE_NM, TUW01602SFConst.SETPLACE_STATE_NM_FIRST},
		{TUW01602SFConst.SETPLACE_CITY_NM, TUW01602SFConst.SETPLACE_CITY_NM_FIRST},
		{TUW01602SFConst.SETPLACE_OAZTSU_NM, TUW01602SFConst.SETPLACE_OAZTSU_NM_FIRST},
		{TUW01602SFConst.SETPLACE_AZCHO_NM, TUW01602SFConst.SETPLACE_AZCHO_NM_FIRST},
		{TUW01602SFConst.SETPLACE_BNCHIGO, TUW01602SFConst.SETPLACE_BNCHIGO_FIRST},
		{TUW01602SFConst.SETPLACE_ADRTTM, TUW01602SFConst.SETPLACE_ADRTTM_FIRST},
		{TUW01602SFConst.SETPLACE_ADRRM, TUW01602SFConst.SETPLACE_ADRRM_FIRST},
		{TUW01602SFConst.SETPLACE_AD_CFM_CD, TUW01602SFConst.SETPLACE_AD_CFM_CD_FIRST},
		{TUW01602SFConst.SETPLACE_SBT_CD, TUW01602SFConst.SETPLACE_SBT_CD_FIRST},
		{TUW01602SFConst.SETPLACE_SBT_CD_SELECTED, TUW01602SFConst.SETPLACE_SBT_CD_SELECTED_FIRST},
		{TUW01602SFConst.SETPLACE_SBT_OTR_HOKI, TUW01602SFConst.SETPLACE_SBT_OTR_HOKI_FIRST},
		{TUW01602SFConst.MSKMJIG_KIJIRAN_1, TUW01602SFConst.MSKMJIG_KIJIRAN_1_FIRST},
		{TUW01602SFConst.MSKMJIG_KIJIRAN_2, TUW01602SFConst.MSKMJIG_KIJIRAN_2_FIRST}
	};

	/** 設置場所住所クリア項目 **/
	private static final String[] CLEAR_SETPLACE_AD = {
		TUW01602SFConst.SETPLACE_AD_MAN_INPUT_FLG, 
		TUW01602SFConst.SETPLACE_STATE_NM,
		TUW01602SFConst.SETPLACE_CITY_NM,
		TUW01602SFConst.SETPLACE_OAZTSU_NM,
		TUW01602SFConst.SETPLACE_AZCHO_NM
	};
	
	/**
	 * 初期表示処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_init() throws Exception
	{
		return tuw01602_init();
	}
	
	/**
	 * 初期表示処理
	 * @return boolean
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private boolean tuw01602_init() throws Exception
	{
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
								, X31CWebConst.DATABEAN_SET_VALUE, JTUScreenConst.SCREEN_NAME_TUW01602);
		
		/**
		 * DataBean設定処理
		 */
		// セッション情報取得
		HashMap<String, Object> searchInfo = JCCWebCommon.getScreenInfo(this);
		
		bean.sendMessageString(TUW01602SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE
				, searchInfo.get(TUW01602SFConst.SVC_KEI_NO).toString());
		
		bean.sendMessageString(TUW01602SFConst.DOBANITEN_NO, X31CWebConst.DATABEAN_SET_VALUE
				, searchInfo.get(TUW01602SFConst.DOBANITEN_NO).toString());
		
		bean.sendMessageString(TUW01602SFConst.GENE_ADD_DTM, X31CWebConst.DATABEAN_SET_VALUE
				, searchInfo.get(TUW01602SFConst.GENE_ADD_DTM).toString());
		
		bean.sendMessageString(TUW01602SFConst.UPD_DTM_BF, X31CWebConst.DATABEAN_SET_VALUE
				, searchInfo.get(TUW01602SFConst.UPD_DTM_BF).toString());
		
		/**
		 * サービス呼出処理
		 */
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "TUSV0006");
		
		// マッピングクラスのインスタンスを生成
		TUSV0006_TUSV0006OPDBMapper mapper = new TUSV0006_TUSV0006OPDBMapper();
		// 上り格納マップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		// 下り格納マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		/*
		 * 上りマッピング
		 */
		// マッピングクラスの呼び出し
		mapper.setTUSV000601SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setTUSV000602SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
//OM-2015-0000445 MOD START
//		mapper.setTUSV000603SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setTUSV000603SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
//OM-2015-0000445 MOD END
		mapper.setTUSV000604SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);

		// オペレーション日付取得
		String opeDate = JCCWebCommon.getOpeDate(this, null); 
		
		if (inputMap.containsKey("TUSV000601SC"))
		{
			((HashMap<String, Object>)inputMap.get("TUSV000601SC")).put("key_stdardymd", opeDate);
		}
		
		if (inputMap.containsKey("TUSV000602SC"))
		{
			((HashMap<String, Object>)inputMap.get("TUSV000602SC")).put("key_stdardymd", opeDate);
		}
		/*
		 * サービス呼出 
		 */
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		/**
		 * サービス処理結果の取得
		 */
		
		/*
		 * 下りマッピング
		 */
		// マッピングクラスの呼び出し
		mapper.getTUSV000601SC(paramBean, outputMap);
		mapper.getTUSV000602SC(paramBean, outputMap);
		mapper.getTUSV000603SC(paramBean, outputMap);
		mapper.getTUSV000604SC(paramBean, outputMap);
		
		/**
		 * 取得データ件数チェック
		 */
		// 検索エラー取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg("TUSV000603SC", outputMap);
		
		if(JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchErrFlg))
		{
			//0件の場合
			String[] msgRpl = new String[]{"同番移転", "同番移転情報"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0300_KW, msgRpl);
			
			setTransferPageId(JTUWebCommon.getScreenId(this) + "0PJP");
			return true;
		}
		else
		{
			JTUWebCommon.setListNo(paramBean[0], TUW01602SFConst.SETPLACE_AD_CFM_CD_LIST, TUW01602SFConst.CD_NM_01);

			//ボタン非活性フラグ設定
			setBtnDisp(paramBean);

			//表示項目の設定
			setDispInfo(paramBean);
			
			//コードの値をHiddenに保持
			JTUWebCommon.setCdRadioButtonList(bean, TUW01602SFConst.SETPLACE_SBT_CD_LIST, TUW01602SFConst.CD_02, TUW01602SFConst.SETPLACE_SBT_CD_ALL);
		}

		//初期値格納
		for(int i = 0; i < COPYKEYLIST.length; i++)
		{
			bean.sendMessageObject(COPYKEYLIST[i][1], X31CWebConst.DATABEAN_SET_VALUE
					, bean.sendMessageObject(COPYKEYLIST[i][0], X31CWebConst.DATABEAN_GET_VALUE));
		}

		return true;
	}
	
	/**
	 * 更新確認遷移処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_updatecfm() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// その他の住所非活性項目のクリアを反映
		JTUWebCommon.clearAd(bean, TUW01602SFConst.SETPLACE_AD_CLEAR_FLG, CLEAR_SETPLACE_AD);
		
		setBeanUpdateInfo(bean);
		
		boolean result = false;
		result = action_update(JPCModelConstant.FUNC_CD_2);
		
		//各更新結果によって、画面を遷移可否を判断する
		if(result)
		{
			//確認メッセージ設定
			String[] msgRpl = new String[]{"同番移転更新"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, msgRpl);
			/**
			 * DataBean設定処理
			 */
			// 遷移先の情報を共有フォームBeanの項目に設定する。
			JTUWebCommon.setNextScreenInfo(commoninfoBean, JTUScreenConst.SCREEN_ID_TUW01603, JTUScreenConst.SCREEN_NAME_TUW01603);
			JCCWebCommon.setMessageAreaBackColor(this, "1");
			
			bean.sendMessageString(TUW01602SFConst.UPDATE_FLG, X31CWebConst.DATABEAN_SET_VALUE, UPD_FLG_UPD);
		}
		
		return true;
	}
	
	/**
	 * 送信実績取消確認遷移処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_senddelicfm() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 住所非活性項目のクリアを反映
		JTUWebCommon.clearAd(bean, TUW01602SFConst.SETPLACE_AD_CLEAR_FLG, CLEAR_SETPLACE_AD);

		setBeanUpdateInfo(bean);
		
		//同番移転更新内容の確認
		if(!chkInputChange(bean))
		{
			//表示内容を修正した場合、更新以外は動作しない
			String[] msgRpl = new String[]{"送信実績取消"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBA080__I, msgRpl);
			return true;
		}
		
		//各更新結果によって、画面を遷移可否を判断する
		if(action_senddeli(JPCModelConstant.FUNC_CD_2))
		{
			//確認メッセージ設定
			String[] msgRpl = new String[]{"同番移転送信実績取消"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, msgRpl);
			/**
			 * DataBean設定処理
			 */
			// 遷移先の情報を共有フォームBeanの項目に設定する。
			JTUWebCommon.setNextScreenInfo(commoninfoBean, JTUScreenConst.SCREEN_ID_TUW01603, JTUScreenConst.SCREEN_NAME_TUW01603);
			JCCWebCommon.setMessageAreaBackColor(this, "1");
			
			bean.sendMessageString(TUW01602SFConst.UPDATE_FLG, X31CWebConst.DATABEAN_SET_VALUE, UPD_FLG_SED);
		}
		
		return true;
	}
	
	/**
	 * 戻る遷移処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_back() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		/**
		 * DataBean設定処理
		 */
		// 遷移先の情報を共有フォームBeanの項目に設定する。
		JTUWebCommon.setNextScreenInfo(commoninfoBean, JTUWebCommon.getScreenId(this), "");
		
		return true;
	}
	
	/**
	 * 確定遷移処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_fix() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		//更新内容の確認
		String selected = bean.sendMessageString(TUW01602SFConst.UPDATE_FLG, X31CWebConst.DATABEAN_GET_VALUE);

		boolean result = false;
		String upd_msg = "";
		//更新
		if(UPD_FLG_UPD.equals(selected))
		{
			upd_msg = "更新";
			result = action_update(JPCModelConstant.FUNC_CD_1);
		}
		//送信実績取消
		else if(UPD_FLG_SED.equals(selected))
		{
			upd_msg = "実績取消";
			result = action_senddeli(JPCModelConstant.FUNC_CD_1);
		}
		//各更新結果によって、画面を遷移可否を判断する
		if(result)
		{
			//完了メッセージ設定
			String[] msgRpl = new String[]{"同番移転情報", upd_msg};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB2960__I, msgRpl);
			/**
			 * DataBean設定処理
			 */
			// 遷移先の情報を共有フォームBeanの項目に設定する。
			JTUWebCommon.setNextScreenInfo(commoninfoBean, JTUWebCommon.getScreenId(this), "");
		}
		
		return true;
	}

	/**
	 * 修正遷移処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_cansel() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		/**
		 * DataBean設定処理
		 */
		// 遷移先の情報を共有フォームBeanの項目に設定する。
		JTUWebCommon.setNextScreenInfo(commoninfoBean, JTUScreenConst.SCREEN_ID_TUW01602, JTUScreenConst.SCREEN_NAME_TUW01602);
		
		return true;
	}

	/**
	 * 入力内容の修正確認
	 * @param bean
	 * @return boolean
	 */
	private boolean chkInputChange(X31SDataBeanAccess bean)
	{
		
		Object tmp1 = null;
		Object tmp2 = null;
		for(int i = 0; i < COPYKEYLIST.length; i++)
		{
			tmp1 = bean.sendMessageObject(COPYKEYLIST[i][0], X31CWebConst.DATABEAN_GET_VALUE);
			tmp2 = bean.sendMessageObject(COPYKEYLIST[i][1], X31CWebConst.DATABEAN_GET_VALUE);
			
			if(isChange(tmp1, tmp2))
			{
				return false;
			}
		}

		return true;
	}
	
	/**
	 * 送信実績取消処理
	 * @param func_code
	 * @return boolean
	 * @throws Exception
	 */
	private boolean action_senddeli(String func_code) throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		/**
		 * サービス呼出処理
		 */
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "TUSV0100");
		
		// マッピングクラスのインスタンスを生成
		TUSV0100_TUSV0100OPDBMapper mapper = new TUSV0100_TUSV0100OPDBMapper();
		// 上り格納マップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		// 下り格納マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		/*
		 * 上りマッピング
		 */
		// マッピングクラスの呼び出し
		mapper.setTUSV010001SC(paramBean, inputMap, func_code);
		
		/*
		 * サービス呼出 
		 */
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return false;
		}
		
		return true;
	}
	
	/**
	 * 住所検索処理（設置場所）
	 * @return boolean
	 * @throws Exception
	 */
	public boolean parent_search_1() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		// サービスフォームBeanのアクセスクラスを取得
		X31SDataBeanAccess bean = getServiceFormBean();
		
		HashMap<String, Object> map = new HashMap<String, Object>();
		
		map.put("key_ad_cd_1", bean.sendMessageString(TUW01602SFConst.SETPLACE_AD_CD_1, X31CWebConst.DATABEAN_GET_VALUE));
		map.put("key_ad_cd_2", bean.sendMessageString(TUW01602SFConst.SETPLACE_AD_CD_2, X31CWebConst.DATABEAN_GET_VALUE));
		map.put("key_ad_cd_3", bean.sendMessageString(TUW01602SFConst.SETPLACE_AD_CD_3, X31CWebConst.DATABEAN_GET_VALUE));
		map.put("key_ad_cd_4", bean.sendMessageString(TUW01602SFConst.SETPLACE_AD_CD_4, X31CWebConst.DATABEAN_GET_VALUE));
		map.put("key_pcd_1", bean.sendMessageString(TUW01602SFConst.SETPLACE_PCD_1, X31CWebConst.DATABEAN_GET_VALUE));
		map.put("key_pcd_2", bean.sendMessageString(TUW01602SFConst.SETPLACE_PCD_2, X31CWebConst.DATABEAN_GET_VALUE));
		
		JCCWebCommon.setScreenInfo(this, "ZMW106010PJP", map);
		JCCWebCommon.setScreenId(this, "ZMW106010PJP", "TUW016020PJP");
		
		/**
		 * DataBean設定処理
		 */
		// 遷移先の情報を共有フォームBeanの項目に設定する。
		JTUWebCommon.setNextScreenInfo(commoninfoBean, JZMScreenConst.SCREEN_ID_ZMW10601, JZMScreenConst.SCREEN_NAME_ZMW10601);
		
		return true;
	}
	
	/**
	 * 住所情報取得処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean parent_reflesh_1() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		// サービスフォームBeanのアクセスクラスを取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 手動入力フラグ・クリアフラグをオフに設定
		bean.sendMessageBoolean(TUW01602SFConst.SETPLACE_AD_MAN_INPUT_FLG,  X31CWebConst.DATABEAN_SET_VALUE, false);
		bean.sendMessageString(TUW01602SFConst.SETPLACE_AD_CLEAR_FLG,  X31CWebConst.DATABEAN_SET_VALUE, JTUStrConst.AD_CLEAR_OFF);
		
		HashMap<String, Object> map = JCCWebCommon.getScreenInfo(this);
		
		//住所コード
		String tmp = (String)map.get("ret_ad_cd_1");
		bean.sendMessageString(TUW01602SFConst.SETPLACE_AD_CD_1,  X31CWebConst.DATABEAN_SET_VALUE, tmp);
		tmp = (String)map.get("ret_ad_cd_2");
		bean.sendMessageString(TUW01602SFConst.SETPLACE_AD_CD_2,  X31CWebConst.DATABEAN_SET_VALUE, tmp);
		tmp = (String)map.get("ret_ad_cd_3");
		bean.sendMessageString(TUW01602SFConst.SETPLACE_AD_CD_3,  X31CWebConst.DATABEAN_SET_VALUE, tmp);
		tmp = (String)map.get("ret_ad_cd_4");
		bean.sendMessageString(TUW01602SFConst.SETPLACE_AD_CD_4,  X31CWebConst.DATABEAN_SET_VALUE, tmp);
		//郵便番号
		tmp = (String)map.get("ret_pcd_1");
		bean.sendMessageString(TUW01602SFConst.SETPLACE_PCD_1,  X31CWebConst.DATABEAN_SET_VALUE, tmp);
		tmp = (String)map.get("ret_pcd_2");
		bean.sendMessageString(TUW01602SFConst.SETPLACE_PCD_2,  X31CWebConst.DATABEAN_SET_VALUE, tmp);
		//都道府県
		tmp = (String)map.get("ret_state_nm");
		bean.sendMessageString(TUW01602SFConst.SETPLACE_STATE_NM,  X31CWebConst.DATABEAN_SET_VALUE, tmp);
		//市区町村
		tmp = (String)map.get("ret_city_nm");
		bean.sendMessageString(TUW01602SFConst.SETPLACE_CITY_NM,  X31CWebConst.DATABEAN_SET_VALUE, tmp);
		//大字
		tmp = (String)map.get("ret_oaztsu_nm");
		bean.sendMessageString(TUW01602SFConst.SETPLACE_OAZTSU_NM,  X31CWebConst.DATABEAN_SET_VALUE, tmp);
		//字番地丁
		tmp = (String)map.get("ret_azcho_nm");
		bean.sendMessageString(TUW01602SFConst.SETPLACE_AZCHO_NM,  X31CWebConst.DATABEAN_SET_VALUE, tmp);
		
		/**
		 * DataBean設定処理
		 */
		// 遷移先の情報を共有フォームBeanの項目に設定する。
		JTUWebCommon.setNextScreenInfo(commoninfoBean, JTUScreenConst.SCREEN_ID_TUW01602, JTUScreenConst.SCREEN_NAME_TUW01602);
		
		return true;
	}
	
	
	/**
	 * 更新処理
	 * @param func_code
	 * @return boolean
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private boolean action_update(String func_code) throws Exception
	{

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		/**
		 * サービス呼出処理
		 */
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "TUSV0007");
		
		// マッピングクラスのインスタンスを生成
		TUSV0007_TUSV0007OPDBMapper mapper = new TUSV0007_TUSV0007OPDBMapper();
		// 上り格納マップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		// 下り格納マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		/*
		 * 上りマッピング
		 */
		// マッピングクラスの呼び出し
		mapper.setTUSV000701SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setTUSV000702SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		mapper.setTUSV000703SC(paramBean, inputMap, func_code);
		
		// オペレーション日付取得
		String opeDate = JTUWebCommon.getOpeDate(this, null); 
		
		if (inputMap.containsKey("TUSV000702SC"))
		{
			((HashMap<String, Object>)inputMap.get("TUSV000702SC")).put("key_rsv_aply_ymd", opeDate);
		}
		
		/*
		 * サービス呼出 
		 */
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		return true;
	}
	
	/**
	 * 表示情報を各項目に保持
	 * @param bean
	 */
	private void setDispInfo(X31SDataBeanAccess[] bean)
	{
		/**
		 * セッション設定処理
		 */
		
		//サービス契約番号
		bean[0].sendMessageObject(TUW01602SFConst.SVC_KEI_NO_HD, X31CWebConst.DATABEAN_SET_VALUE, 
				bean[0].sendMessageObject(TUW01602SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		
		//電話番号
		bean[0].sendMessageObject(TUW01602SFConst.NTT_TELNO_HD, X31CWebConst.DATABEAN_SET_VALUE, 
				bean[0].sendMessageObject(TUW01602SFConst.NTT_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
		
		String tmp = null;
		X31SDataBeanAccess listDataBean = null;
		X31SDataBeanAccessArray listDataBeanArray = null;
		
		//設置場所住所コード
		tmp = bean[0].sendMessageString(TUW01602SFConst.SETPLACE_AD_CD, X31CWebConst.DATABEAN_GET_VALUE);
		if(tmp != null && tmp.length() == 11)
		{
			bean[0].sendMessageObject(TUW01602SFConst.SETPLACE_AD_CD_1, X31CWebConst.DATABEAN_SET_VALUE, 
					tmp.substring(0, 2));
			bean[0].sendMessageObject(TUW01602SFConst.SETPLACE_AD_CD_2, X31CWebConst.DATABEAN_SET_VALUE, 
					tmp.substring(2, 5));
			bean[0].sendMessageObject(TUW01602SFConst.SETPLACE_AD_CD_3, X31CWebConst.DATABEAN_SET_VALUE, 
					tmp.substring(5, 8));
			bean[0].sendMessageObject(TUW01602SFConst.SETPLACE_AD_CD_4, X31CWebConst.DATABEAN_SET_VALUE, 
					tmp.substring(8, 11));
		}
		
		//設置場所郵便番号
		tmp = bean[0].sendMessageString(TUW01602SFConst.SETPLACE_PCD, X31CWebConst.DATABEAN_GET_VALUE);
		if(tmp != null && tmp.length() == 7)
		{
			bean[0].sendMessageObject(TUW01602SFConst.SETPLACE_PCD_1, X31CWebConst.DATABEAN_SET_VALUE, 
					tmp.substring(0, 3));
			bean[0].sendMessageObject(TUW01602SFConst.SETPLACE_PCD_2, X31CWebConst.DATABEAN_SET_VALUE, 
					tmp.substring(3, 7));
		}
		//プルダウン、ラジオボタンなどの選択値
		//住所確認コード
		tmp = bean[0].sendMessageString(TUW01602SFConst.SETPLACE_AD_CFM_CD, X31CWebConst.DATABEAN_GET_VALUE);
		listDataBean = bean[0].getDataBeanArray(TUW01602SFConst.SETPLACE_AD_CFM_CD_LIST).getDataBean(0);
		
		if(tmp != null)
		{
			
			for(int i = 0; i < (Integer)listDataBean.sendMessage(TUW01602SFConst.CD_01, X31CWebConst.DATABEAN_GET_COUNT); i++)
			{
				if(tmp.equals(listDataBean.sendMessageString(TUW01602SFConst.CD_01, X31CWebConst.DATABEAN_GET_VALUE, i)))
				{
					listDataBean.sendMessageString(TUW01602SFConst.INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
				}
			}
		}
		//設置場所種別コード
		tmp = bean[0].sendMessageString(TUW01602SFConst.SETPLACE_SBT_CD, X31CWebConst.DATABEAN_GET_VALUE);
		listDataBeanArray = bean[0].getDataBeanArray(TUW01602SFConst.SETPLACE_SBT_CD_LIST);
		
		if(tmp != null)
		{
			
			for(int i = 0; i < listDataBeanArray.getCount(); i++)
			{
				if(tmp.equals(listDataBeanArray.getDataBean(i).sendMessageString(TUW01602SFConst.CD_02, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					bean[0].sendMessageString(TUW01602SFConst.SETPLACE_SBT_CD_SELECTED, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
				}
			}
		}
	}
	
	/**
	 * 各ボタンの非活性フラグを設定する
	 * @param bean
	 */
	private void setBtnDisp(X31SDataBeanAccess[] bean)
	{
		String dobaniten_stat = bean[0].sendMessageString(TUW01602SFConst.DOBANITEN_STAT, X31CWebConst.DATABEAN_GET_VALUE);

		// 更新確認ボタン
		String upd_disp_flg = JTUStrConst.DISP_FLG_FALSE;

		//送信実績取消ボタン
		String cansel_disp_flg = JTUStrConst.DISP_FLG_FALSE;

		if(!(JTUStrConst.NTT_SEND_ZUMI.equals(dobaniten_stat) || JTUStrConst.DOBANITEN_FAIL.equals(dobaniten_stat) 
				|| JTUStrConst.DOBANITEN_PSG.equals(dobaniten_stat) || JTUStrConst.DOBANITEN_CL.equals(dobaniten_stat)))
		{
			cansel_disp_flg = JTUStrConst.DISP_FLG_TRUE;
		}

		if(!JTUStrConst.NTT_SEND_STAY.equals(dobaniten_stat))
		{
			upd_disp_flg = JTUStrConst.DISP_FLG_TRUE;
		}

		bean[0].sendMessageString(TUW01602SFConst.CANSEL_BTN_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, cansel_disp_flg);
		bean[0].sendMessageString(TUW01602SFConst.UPD_BTN_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, upd_disp_flg);

	}
	

	/**
	 * 入力内容を設定
	 * @param bean
	 */
	private void setBeanUpdateInfo(X31SDataBeanAccess bean)
	{
		String tmp = "";

		/**
		 * DataBean設定処理
		 */
		
		//設置場所住所コード
		tmp = bean.sendMessageString(TUW01602SFConst.SETPLACE_AD_CD_1, X31CWebConst.DATABEAN_GET_VALUE)
			+ bean.sendMessageString(TUW01602SFConst.SETPLACE_AD_CD_2, X31CWebConst.DATABEAN_GET_VALUE)
			+ bean.sendMessageString(TUW01602SFConst.SETPLACE_AD_CD_3, X31CWebConst.DATABEAN_GET_VALUE)
			+ bean.sendMessageString(TUW01602SFConst.SETPLACE_AD_CD_4, X31CWebConst.DATABEAN_GET_VALUE);
		bean.sendMessageString(TUW01602SFConst.SETPLACE_AD_CD, X31CWebConst.DATABEAN_SET_VALUE, tmp);
		
		//設置場所郵便番号
		tmp = bean.sendMessageString(TUW01602SFConst.SETPLACE_PCD_1, X31CWebConst.DATABEAN_GET_VALUE)
			+ bean.sendMessageString(TUW01602SFConst.SETPLACE_PCD_2, X31CWebConst.DATABEAN_GET_VALUE);
		bean.sendMessageString(TUW01602SFConst.SETPLACE_PCD, X31CWebConst.DATABEAN_SET_VALUE, tmp);
		
		//設置場所住所
		String setplace_ad = JTUWebCommon.getPtn14(
				bean.sendMessageString(TUW01602SFConst.SETPLACE_STATE_NM, X31CWebConst.DATABEAN_GET_VALUE)
				, bean.sendMessageString(TUW01602SFConst.SETPLACE_CITY_NM, X31CWebConst.DATABEAN_GET_VALUE)
				, bean.sendMessageString(TUW01602SFConst.SETPLACE_OAZTSU_NM, X31CWebConst.DATABEAN_GET_VALUE)
				, bean.sendMessageString(TUW01602SFConst.SETPLACE_AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE)
				, bean.sendMessageString(TUW01602SFConst.SETPLACE_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE)
				, bean.sendMessageString(TUW01602SFConst.SETPLACE_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE)
				, bean.sendMessageString(TUW01602SFConst.SETPLACE_ADRRM, X31CWebConst.DATABEAN_GET_VALUE));
		
		tmp = JTUStrConst.POST_MARK
			+ bean.sendMessageString(TUW01602SFConst.SETPLACE_PCD_1, X31CWebConst.DATABEAN_GET_VALUE)
			+ JTUStrConst.HIHUN
			+ bean.sendMessageString(TUW01602SFConst.SETPLACE_PCD_2, X31CWebConst.DATABEAN_GET_VALUE)
			+ System.getProperty(JTUStrConst.LINE_SEP)
			+ setplace_ad;
		
		bean.sendMessageString(TUW01602SFConst.SETPLACE_AD, X31CWebConst.DATABEAN_SET_VALUE, tmp);
		
		// 住所確認コード
		tmp = JTUWebCommon.getListSelectedValue(bean, TUW01602SFConst.SETPLACE_AD_CFM_CD_LIST, TUW01602SFConst.INDEX_01, TUW01602SFConst.CD_01);
		bean.sendMessageString(TUW01602SFConst.SETPLACE_AD_CFM_CD, X31CWebConst.DATABEAN_SET_VALUE, tmp);
		
		// 住所確認コード名称
		tmp = JTUWebCommon.getListSelectedValue(bean, TUW01602SFConst.SETPLACE_AD_CFM_CD_LIST, TUW01602SFConst.INDEX_01, TUW01602SFConst.CD_NM_01);
		bean.sendMessageString(TUW01602SFConst.SETPLACE_AD_CFM_CD_NM, X31CWebConst.DATABEAN_SET_VALUE, tmp);
		
		// 電話加入権取扱コード
		tmp = JTUWebCommon.getRadioSelectedValue(bean, TUW01602SFConst.SETPLACE_SBT_CD_LIST
				, TUW01602SFConst.SETPLACE_SBT_CD_SELECTED, TUW01602SFConst.CD_02);
		bean.sendMessageString(TUW01602SFConst.SETPLACE_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, tmp);
		
		// 電話加入権取扱コード名称
		tmp = JTUWebCommon.getRadioSelectedValue(bean, TUW01602SFConst.SETPLACE_SBT_CD_LIST
				, TUW01602SFConst.SETPLACE_SBT_CD_SELECTED, TUW01602SFConst.CD_NM_02);
		bean.sendMessageString(TUW01602SFConst.SETPLACE_SBT_CD_NM, X31CWebConst.DATABEAN_SET_VALUE, tmp);
		
	}
	
	/**
	 * 変更判断
	 * @param tmp1
	 * @param tmp2
	 * @return boolean
	 */
	private boolean isChange(Object tmp1, Object tmp2)
	{
		if(tmp1 == null && tmp2 == null)
		{
			return false;
		}
		else if((tmp1 == null && tmp2 != null) || (tmp1 != null && tmp2 == null))
		{
			return true;
		}
		else
		{
			if(tmp1.equals(tmp2))
			{
				return false;
			}
			else
			{
				return true;
			}
		}
	}
}
