/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：契約管理システム
*   モジュール名    ：取扱コードマスタ更新
*   ソースファイル名：KKW10705SFLogic.java
*   作成者          ：富士通
*   日付            ：2012年09月07日
*＜機能概要＞
*   取扱コードマスタ更新を行う。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v4.00.00    2012/09/07     FJ        新規作成
**********************************************************************/
package eo.web.webview.KKW10705SF;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.common.JSYwebLog;
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.JKKStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.constant.JZMStrConst;
import eo.common.util.JPCEditString;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.ZMW10601SF.ZMW10601SFConst;
import eo.web.webview.ZMW11901SF.ZMW11901SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKAgntScreenUtil;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.common.JKKWebCommon;
import eo.web.webview.common.JZMScreenConst;
import eo.web.webview.common.JZMWebCommon;
import eo.web.webview.common.JZMWebConst;
import eo.web.webview.mapping.KKSV0644_KKSV0644OPDBMapper;
import eo.web.webview.mapping.KKSV0645_KKSV0645OPDBMapper;
import eo.web.webview.mapping.ZMSV0092_ZMSV0092OPDBMapper;

/**
 * 取扱コードマスタ更新を行う。<p>
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class KKW10705SFLogic extends JCCWebBusinessLogic 
{
	/** 選択代理店引継リスト */
	private static final String SELECT_AGNT_HKTGI_LIST = "選択代理店引継リスト";
	
	/** 組織検索ロジック */
	private static final String ZMSV0092 = "ZMSV0092";
	
	/** 手動入力フラグＤＢ項目名 */
	private static final String HAND_INPUT_DB_COLUMN_NAME = "agnt_ad_man_input_flg";

	/** ハイフン */
	private static final String HYHUN = "-";
	
	/** メッセージ埋め込み文字　取扱コード情報更新 */
	private static final String[] UMEKOMI_EKB0370_I = {"取扱コード情報更新"};
	
	/** メッセージ埋め込み文字　取扱コード情報の更新 */
	private static final String[] UMEKOMI_EKB9360__I = {"取扱コード情報の更新"};

	/** 更新パターン：適用中 */
	private static final int UPD_PTN_APLY = 1;

	/** 更新パターン：予約（適用開始後） */
	private static final int UPD_PTN_RSV_TSTA_AF = 2;

	/** 更新パターン：予約（適用開始前） */
	private static final int UPD_PTN_RSV_TSTA_BF = 3;

	/**
	 * 初期表示処理を行います。
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionInit() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// (1) 引継情報の取得
		// セッション情報取得・引継情報をDataBeanにセット
		getSessionKKW10705SFBean(paramBean[0]);
		
		// (2) サービスフォームBean設定処理（オンライン運用日付の取得）
		// 運用年月日
		String unyo_ymd = JCCWebCommon.getOpeDate(this, null);
		paramBean[0].sendMessageString(KKW10705SFConst.UNYO_YMD, X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd);

		// (3) サービス呼出処理
		// (4) サービス処理結果の取得
		// 取扱コードマスタ更新初期表示サービスの実行・取得
		executeInitSvc(paramBean);
		
		// 初期値設定
		setInitData(paramBean);
		
		// プルダウンリスト絞込み
		setNarrowPulldownList(paramBean);
		
		// (5)表示内容編集
		// 年月日を年、月、日に分割する
		setYmdData(paramBean);
		
		// 住所コードを分割する
		setAdCdData(paramBean);
		
		// 郵便番号を前３桁と後４桁に分割する
		setPcdData(paramBean);
		
		// インセンティブ支払先コードを前２桁と後８桁に分割する
		setIncntvData(paramBean);
		
		// 遷移先の画面IDを共有フォームBeanの項目に設定する
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_ID_KKW10705);
		// 遷移先の画面名を共有フォームBeanの項目に設定する
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_NAME_KKW10705);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
	}
	
	/**
	 * 申込チャネル変更処理を行います。
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionMkmChannelChg() throws Exception
	{
		// 遷移先情報の設定
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW10705);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW10705);
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// 申込取扱分類を絞込み、設定
		String mkm_channel_cd = getPulldownSelVal(paramBean[0], KKW10705SFConst.MKM_CHANNEL_NM_LIST);
		JKKAgntScreenUtil.setChildPullDownList(paramBean[0], KKW10705SFConst.MKM_TRAT_BRI_NM_ALL_LIST, KKW10705SFConst.MKM_TRAT_BRI_NM_LIST, mkm_channel_cd);
		setPulldownIndex(paramBean[0], KKW10705SFConst.MKM_TRAT_BRI_NM_LIST, "");
		
		// 申込取扱詳細を絞込み、設定
		String mkm_trat_bri_cd = getPulldownSelVal(paramBean[0], KKW10705SFConst.MKM_TRAT_BRI_NM_LIST);
		JKKAgntScreenUtil.setChildPullDownList(paramBean[0], KKW10705SFConst.MKM_TRAT_DTL_NM_ALL_LIST, KKW10705SFConst.MKM_TRAT_DTL_NM_LIST, mkm_trat_bri_cd);
		setPulldownIndex(paramBean[0], KKW10705SFConst.MKM_TRAT_DTL_NM_LIST, "");
		
		return true;
	}
	
	/**
	 * 申込取扱分類変更処理を行います。
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionMkmTratBriChg() throws Exception
	{
		// 遷移先情報の設定
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW10705);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW10705);
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// 申込取扱詳細を絞込み、設定
		String mkm_trat_bri_cd = getPulldownSelVal(paramBean[0], KKW10705SFConst.MKM_TRAT_BRI_NM_LIST);
		JKKAgntScreenUtil.setChildPullDownList(paramBean[0], KKW10705SFConst.MKM_TRAT_DTL_NM_ALL_LIST, KKW10705SFConst.MKM_TRAT_DTL_NM_LIST, mkm_trat_bri_cd);
		setPulldownIndex(paramBean[0], KKW10705SFConst.MKM_TRAT_DTL_NM_LIST, "");
		
		return true;
	}
	
	/**
	 * 住所検索ボタン押下時に遷移先の画面を決定します。
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean openZMW10601() throws Exception
	{
		// 共有フォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		if (commoninfoBean == null) {
			return true;
		}

		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 住所ダイアログ画面（子画面）に渡す引き継ぎデータの情報をHashMapに設定する
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// 引き継ぎデータ.郵便番号１ ← 郵便番号３桁
		paramMap.put(ZMW10601SFConst.SESSION_KEY_PCD_1, bean.sendMessageString(
				KKW10705SFConst.AGNT_PCD_1,
				X31CWebConst.DATABEAN_GET_VALUE));
		// 引き継ぎデータ.郵便番号２ ← 郵便番号４桁
		paramMap.put(ZMW10601SFConst.SESSION_KEY_PCD_2, bean.sendMessageString(
				KKW10705SFConst.AGNT_PCD_2,
				X31CWebConst.DATABEAN_GET_VALUE));

		// 画面情報を設定
		JCCWebCommon.setScreenInfo(this, JZMScreenConst.SCREEN_ID_ZMW10601
				+ "0PJP", paramMap);
		// 戻り先画面ＩＤを設定
		JCCWebCommon.setScreenId(this, JZMScreenConst.SCREEN_ID_ZMW10601
				+ "0PJP", JKKScreenConst.SCREEN_ID_KKW10705);

		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE,
				JZMScreenConst.SCREEN_ID_ZMW10601);
		return true;
	}
	
	/**
	 * 住所画面の情報を反映します。
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionCloseAdSch() throws Exception
	{
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		if (commoninfoBean == null) {
			return true;
		}
		X31SDataBeanAccess bean = super.getServiceFormBean();
		HashMap<String, Object> map = JCCWebCommon.getScreenInfo(this);
		// 郵便番号（上3桁）
		bean.sendMessageString(KKW10705SFConst.AGNT_PCD_1,
				X31CWebConst.DATABEAN_SET_VALUE, (String) map
						.get(JZMStrConst.ret_pcd_1));
		// 郵便番号（下4桁）
		bean.sendMessageString(KKW10705SFConst.AGNT_PCD_2,
				X31CWebConst.DATABEAN_SET_VALUE, (String) map
						.get(JZMStrConst.ret_pcd_2));
		// 住所コード
		bean.sendMessageString(KKW10705SFConst.AGNT_AD_CD_1,
				X31CWebConst.DATABEAN_SET_VALUE, (String) map.get(JZMStrConst.ret_ad_cd_1));
		bean.sendMessageString(KKW10705SFConst.AGNT_AD_CD_2,
				X31CWebConst.DATABEAN_SET_VALUE, (String) map.get(JZMStrConst.ret_ad_cd_2));
		bean.sendMessageString(KKW10705SFConst.AGNT_AD_CD_3,
				X31CWebConst.DATABEAN_SET_VALUE, (String) map.get(JZMStrConst.ret_ad_cd_3));
		bean.sendMessageString(KKW10705SFConst.AGNT_AD_CD_4,
				X31CWebConst.DATABEAN_SET_VALUE, (String) map.get(JZMStrConst.ret_ad_cd_4));
		// 都道府県
		bean.sendMessageString(KKW10705SFConst.AGNT_STATE_NM,
				X31CWebConst.DATABEAN_SET_VALUE, (String) map
						.get(JZMStrConst.ret_state_nm));
		// 市区町村
		bean.sendMessageString(KKW10705SFConst.AGNT_CITY_NM,
				X31CWebConst.DATABEAN_SET_VALUE, (String) map
						.get(JZMStrConst.ret_city_nm));
		// 大字通称名
		bean.sendMessageString(KKW10705SFConst.AGNT_OAZTSU_NM,
				X31CWebConst.DATABEAN_SET_VALUE, (String) map
						.get(JZMStrConst.ret_oaztsu_nm));
		// 字丁目
		bean.sendMessageString(KKW10705SFConst.AGNT_AZCHO_NM,
				X31CWebConst.DATABEAN_SET_VALUE, (String) map
						.get(JZMStrConst.ret_azcho_nm));

		// 遷移先の画面IDを共有フォームBeanの項目に設定する
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_ID_KKW10705);
		// 遷移先の画面名を共有フォームBeanの項目に設定する
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_NAME_KKW10705);
		return true;
	}
	
	/**
	 * Ajax用の組織検索を行います。（支払所管部署名）
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionPayBushoSch() throws Exception
	{
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		/*
		 * サービス呼び出し
		 */
		X31SDataBeanAccess[] paramBean = { serviceFormBean };

		// 組織名を設定
		String org_cd = paramBean[0].sendMessageString(KKW10705SFConst.PAY_SHKN_BUSHO_CD, X31CWebConst.DATABEAN_GET_VALUE);
		paramBean[0].sendMessageString(KKW10705SFConst.PAY_SHKN_BUSHO_NM, X31CWebConst.DATABEAN_SET_VALUE, getOrgName(paramBean, org_cd));
		
		return true;
	}
	
	/**
	 * Ajax用の組織検索を行います。（契約所管部署名）
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionKeiBushoSch() throws Exception
	{
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		/*
		 * サービス呼び出し
		 */
		X31SDataBeanAccess[] paramBean = { serviceFormBean };

		// 組織名を設定
		String org_cd = paramBean[0].sendMessageString(KKW10705SFConst.KEI_SHKN_BUSHO_CD, X31CWebConst.DATABEAN_GET_VALUE);
		paramBean[0].sendMessageString(KKW10705SFConst.KEI_SHKN_BUSHO_NM, X31CWebConst.DATABEAN_SET_VALUE, getOrgName(paramBean, org_cd));
		
		return true;
	}
	
	/**
	 * 組織コード検索ポップアップの起動処理を行います。（支払所管部署名）
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	@SuppressWarnings("unchecked")
	public boolean openZMW11901Pay() throws Exception
	{
		X31SDataBeanAccess bean = getServiceFormBean();
		HashMap paramMap = new HashMap();
		HashMap ansMap = new HashMap();

		String orgCd = bean.sendMessageString(KKW10705SFConst.PAY_SHKN_BUSHO_CD, X31CWebConst.DATABEAN_GET_VALUE);
		paramMap.put(ZMW11901SFConst.ORG_CD, orgCd);
		paramMap.put(ZMW11901SFConst.ORG_NM, "");
		if (orgCd != null && orgCd.length() > 0)
		{
			paramMap.put(ZMW11901SFConst.ORG_NM, bean.sendMessageString(KKW10705SFConst.PAY_SHKN_BUSHO_NM, X31CWebConst.DATABEAN_GET_VALUE));
		}

		JCCWebCommon.setScreenInfo(this, JZMScreenConst.SCREEN_ID_ZMW11901 + "0PJP", paramMap);
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW10705 + "0PJP", ansMap);
		JCCWebCommon.setScreenId(this, JZMScreenConst.SCREEN_ID_ZMW11901, JKKScreenConst.SCREEN_ID_KKW10705);

		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW11901);
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_NAME_ZMW11901);
		
		return true;
	}
	
	/**
	 * 組織コード検索ポップアップからの反映処理を行います。（支払所管部署名）
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionPayBushoRfrsh() throws Exception
	{
		X31SDataBeanAccess bean = getServiceFormBean();

		HashMap<String, Object> map = JCCWebCommon.getScreenInfo(this);

		String orgCd = (String)map.get(ZMW11901SFConst.ORG_CD);
		String orgNm = (String)map.get(ZMW11901SFConst.ORG_NM);
		
		bean.sendMessageString(KKW10705SFConst.PAY_SHKN_BUSHO_CD, X31CWebConst.DATABEAN_SET_VALUE, orgCd);
		bean.sendMessageString(KKW10705SFConst.PAY_SHKN_BUSHO_NM, X31CWebConst.DATABEAN_SET_VALUE, orgNm);

		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW10705);
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW10705);
		
		return true;
	}
	
	/**
	 * 組織コード検索ポップアップの起動処理を行います。（契約所管部署名）
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	@SuppressWarnings("unchecked")
	public boolean openZMW11901Kei() throws Exception
	{
		X31SDataBeanAccess bean = getServiceFormBean();
		HashMap paramMap = new HashMap();
		HashMap ansMap = new HashMap();

		String orgCd = bean.sendMessageString(KKW10705SFConst.KEI_SHKN_BUSHO_CD, X31CWebConst.DATABEAN_GET_VALUE);
		paramMap.put(ZMW11901SFConst.ORG_CD, orgCd);
		paramMap.put(ZMW11901SFConst.ORG_NM, "");
		if (orgCd != null && orgCd.length() > 0)
		{
			paramMap.put(ZMW11901SFConst.ORG_NM, bean.sendMessageString(KKW10705SFConst.KEI_SHKN_BUSHO_NM, X31CWebConst.DATABEAN_GET_VALUE));
		}

		JCCWebCommon.setScreenInfo(this, JZMScreenConst.SCREEN_ID_ZMW11901 + "0PJP", paramMap);
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW10705 + "0PJP", ansMap);
		JCCWebCommon.setScreenId(this, JZMScreenConst.SCREEN_ID_ZMW11901, JKKScreenConst.SCREEN_ID_KKW10705);

		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW11901);
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_NAME_ZMW11901);
		
		return true;
	}
	
	/**
	 * 組織コード検索ポップアップからの反映処理を行います。（契約所管部署名）
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionKeiBushoRfrsh() throws Exception
	{
		X31SDataBeanAccess bean = getServiceFormBean();

		HashMap<String, Object> map = JCCWebCommon.getScreenInfo(this);

		String orgCd = (String)map.get(ZMW11901SFConst.ORG_CD);
		String orgNm = (String)map.get(ZMW11901SFConst.ORG_NM);
		
		bean.sendMessageString(KKW10705SFConst.KEI_SHKN_BUSHO_CD, X31CWebConst.DATABEAN_SET_VALUE, orgCd);
		bean.sendMessageString(KKW10705SFConst.KEI_SHKN_BUSHO_NM, X31CWebConst.DATABEAN_SET_VALUE, orgNm);

		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW10705);
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW10705);
		
		return true;
	}

	/**
	 * 更新確認ボタン押下処理を行います。
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionConfirm() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// (1) サービスフォームBean設定処理
		// 年月日を年、月、日を結合する。
		setConcatYmdData(paramBean, false);
		
		// 住所コードを結合する。
		setConcatAdCdData(paramBean, false);
		
		// 郵便番号を結合する。
		setConcatPcdData(paramBean, false);
		
		// インセンティブ支払先コードを結合する。
		setConcatIncntvData(paramBean);
		
		// プルダウンの選択名を設定する。
		setSelectedPullDownName(paramBean);
		
		// プルダウンの選択コードを設定する。
		setSelectedPullDownCd(paramBean);
		
		// (2) サービス呼出処理
		// (3) サービス処理結果の取得
		// 取扱コードマスタ更新確認サービス実行
		executeUpdSvc(paramBean, JPCModelConstant.FUNC_CD_2);
		
		// 年月日を年、月、日を結合する。（表示用）
		setConcatYmdData(paramBean, true);
		
		// 住所コードを結合する。（表示用）
		setConcatAdCdData(paramBean, true);
		
		// 郵便番号を結合する。（表示用）
		setConcatPcdData(paramBean, true);
		
		// (4) 遷移先画面の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW10706);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW10706);
		
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, UMEKOMI_EKB0370_I);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
	}

	/**
	 * 確定ボタン押下処理を行います。
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionFix() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// 年月日を年、月、日を結合する。
		setConcatYmdData(paramBean, false);
		
		// 住所コードを結合する。
		setConcatAdCdData(paramBean, false);
		
		// 郵便番号を結合する。
		setConcatPcdData(paramBean, false);
		
		// (1) サービス呼出処理
		// (2) サービス処理結果の取得
		// 取扱コードマスタ更新確認サービス実行
		executeUpdSvc(paramBean, JPCModelConstant.FUNC_CD_1);
		
		// (3) 遷移先画面の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW10707);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW10707);
		
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB9360__I, UMEKOMI_EKB9360__I);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
	}

	/**
	 * 修正ボタン押下
	 * @return
	 * @throws Exception
	 */
	public boolean actionReturn() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commonBean = super.getCommonInfoBean();

		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW10705);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW10705);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
	}
	
	/**
	 * 一覧に戻るボタン押下処理を行います。
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionMoveToIcrn() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// (1) 遷移先画面の設定
		// 遷移先画面ID
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getScreenId(this));
		
		return true;
	}
	
	/**
	 * 引き継ぎ情報を取得し、取扱コードマスタ更新サービスフォームBeanに設定する
	 * @param  svcFormBean  DataBeanアクセスクラス
	 * @throws Exception
	 */
	private void getSessionKKW10705SFBean(X31SDataBeanAccess svcFormBean) throws Exception
	{
		//セッションデータ取得
		JCCWebCommon.getScreenInfo(this);
		
		// 引継情報を取得
		X31SDataBeanAccessArray selectAgntHktgiList =  svcFormBean.getDataBeanArray(SELECT_AGNT_HKTGI_LIST);
		X31SDataBeanAccess selectAgntHktgiInf = selectAgntHktgiList.getDataBean(0);

		// 代理店コード
		String agnt_cd = selectAgntHktgiInf.sendMessageString(KKW10705SFConst.AGNT_CD_02, X31CWebConst.DATABEAN_GET_VALUE);
		// 世代登録年月日時分秒
		String gene_add_dtm = selectAgntHktgiInf.sendMessageString(KKW10705SFConst.GENE_ADD_DTM_02, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 引継情報をDataBeanに設定
		// ＫＥＹ＿代理店コード ← 代理店コード
		svcFormBean.sendMessageString(KKW10705SFConst.KEY_AGNT_CD, X31CWebConst.DATABEAN_SET_VALUE, agnt_cd);
		// ＫＥＹ＿世代登録年月日時分秒 ← 世代登録年月日時分秒
		svcFormBean.sendMessageString(KKW10705SFConst.KEY_GENE_ADD_DTM, X31CWebConst.DATABEAN_SET_VALUE, gene_add_dtm);
	}

	/**
	 * 取扱コードマスタ更新初期表示サービス実行処理
	 * <br>
	 * @param paramBean DataBean項目の配列
	 * @exception Exceptionがスローされます。
	 */
	@SuppressWarnings("unchecked")
	private void executeInitSvc(X31SDataBeanAccess[] paramBean) throws Exception
	{
		// 変数の定義
		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;
		
		// 取扱コードマスタ更新初期表示サービス
		paramMap = new HashMap<String, Object>();		//パラメタ設定用マップ
		inputMap = new HashMap<String, Object>();		//データマップ
		outputMap = new HashMap<String, Object>();		//結果格納用マップ
		
		// 取扱コードマスタ更新初期表示サービスの呼び出しを行う。
		// パラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0644");
		
		// 上りマッピング(サービス項目-DataBean項目マッピング)
		KKSV0644_KKSV0644OPDBMapper mapper = new KKSV0644_KKSV0644OPDBMapper();
		
		// コード名称管理一覧照会SC
		mapper.setKKSV064401SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_3);
		
		// コード名称管理一覧照会SC
		mapper.setKKSV064402SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_3);
		
		// コード名称管理一覧照会SC
		mapper.setKKSV064403SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_3);
		
		// コード名称管理一覧照会SC
		mapper.setKKSV064404SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_3);
		
		// コード名称管理一覧照会SC
		mapper.setKKSV064405SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_3);
		
		// 代理店一意照会SC
		mapper.setKKSV064406SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		
		// 取扱コードマスタ更新初期表示サービス
		invokeService(paramMap, inputMap, outputMap);
		
		// コード名称管理一覧照会の下りマッピング
		JKKWebCommon.setPulldownListNoIndex(paramBean[0], outputMap, KKW10705SFConst.MKM_CHANNEL_NM_LIST, "KKSV064401SC", true);
		JKKWebCommon.setPulldownListNoIndex(paramBean[0], outputMap, KKW10705SFConst.MKM_TRAT_BRI_NM_ALL_LIST, "KKSV064402SC", false);
		JKKWebCommon.setPulldownListNoIndex(paramBean[0], outputMap, KKW10705SFConst.MKM_TRAT_DTL_NM_ALL_LIST, "KKSV064403SC", false);
		JKKWebCommon.setPulldownListNoIndex(paramBean[0], outputMap, KKW10705SFConst.FRNT_LOGIN_CTRL_NM_LIST, "KKSV064404SC", true);
		JKKWebCommon.setPulldownListNoIndex(paramBean[0], outputMap, KKW10705SFConst.INCNTV_PAY_HASSEI_NM_LIST, "KKSV064405SC", true);
		
		// 代理店一意照会の下りマッピング
		mapper.getKKSV064406SC(paramBean, outputMap);
		// 手動入力をマッピング
		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV064406SC")){
			parentMap = (HashMap)outputMap.get("KKSV064406SC");
		}
		// 手動入力 ← 代理店一意照会マップ.代理店住所手動入力フラグ
		boolean agnt_ad_man_input_flg = false;
		if (parentMap != null) {
			String agnt_ad_man_input_flg_str = (String)parentMap.get(HAND_INPUT_DB_COLUMN_NAME);
			if (agnt_ad_man_input_flg_str != null && "1".equals(agnt_ad_man_input_flg_str)) {
				agnt_ad_man_input_flg = true;
			}
		}
		paramBean[0].sendMessageBoolean(KKW10705SFConst.HAND_IMPUT, X31CWebConst.DATABEAN_SET_VALUE, agnt_ad_man_input_flg);
	}
	
	/**
	 * 初期値を設定します。
	 * <br>
	 * @param paramBean DataBean項目の配列
	 */
	private void setInitData(X31SDataBeanAccess[] paramBean)
	{
		int updPtn = getUpdPtn(paramBean[0]);

		// 更新パターンを設定
		paramBean[0].sendMessageString(KKW10705SFConst.UPD_PTN, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(updPtn));
		if (UPD_PTN_APLY == updPtn)
		{
			String unyo_ymd = paramBean[0].sendMessageString(KKW10705SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE);
			// 予約適用年月日
			paramBean[0].sendMessageString(KKW10705SFConst.RSV_APLY_YMD, X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd);
		}
		else
		if (UPD_PTN_RSV_TSTA_BF == updPtn)
		{
			// 予約適用年月日
			paramBean[0].sendMessageString(KKW10705SFConst.RSV_APLY_YMD, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
	}

	/**
	 * プルダウンの添え字を、選択コード値のインデックスに設定します。 <br>
	 * 
	 * @param bean データBeanのアクセスクラス
	 * @param componentID プルダウンリストのコンポーネントID
	 * @param selectedCode 選択コード値
	 */
	private void setPulldownIndex(X31SDataBeanAccess bean, String componentID, String selectedCode)
	{
		String selectedIndex = JKKWebCommon.getPullDownIndex(bean, selectedCode, componentID, KKW10705SFConst.CD_DIV_LIST_01);
		if (selectedIndex == null || "".equals(selectedIndex)) {
			selectedIndex = "0";
		}
		X31SDataBeanAccess pulldownInf = bean.getDataBeanArray(componentID).getDataBean(0);
		pulldownInf.sendMessageString(KKW10705SFConst.INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, selectedIndex);
	}

	/**
	 * プルダウンで選択されたコード値を取得します。 <br>
	 * 
	 * @param bean データBeanのアクセスクラス
	 * @param componentID プルダウンリストのコンポーネントID
	 * @return 選択されたコード値
	 */
	private String getPulldownSelVal(X31SDataBeanAccess bean, String componentID)
	{
		return JKKWebCommon.getPullDownCode(bean, componentID, KKW10705SFConst.INDEX_01, KKW10705SFConst.CD_DIV_LIST_01);
	}
	
	/**
	 * プルダウンリストを絞込み、設定します。
	 * <br>
	 * @param  paramBean  DataBean項目の配列
	 * @exception Exceptionがスローされます。
	 */
	private void setNarrowPulldownList(X31SDataBeanAccess[] paramBean) throws Exception
	{
		// 申込チャネルを設定
		String mkm_channel_cd = paramBean[0].sendMessageString(KKW10705SFConst.MKM_CHANNEL_CD, X31CWebConst.DATABEAN_GET_VALUE);
		setPulldownIndex(paramBean[0], KKW10705SFConst.MKM_CHANNEL_NM_LIST, mkm_channel_cd);
		
		// 申込取扱分類を絞込み、設定
		JKKAgntScreenUtil.setChildPullDownList(paramBean[0], KKW10705SFConst.MKM_TRAT_BRI_NM_ALL_LIST, KKW10705SFConst.MKM_TRAT_BRI_NM_LIST, mkm_channel_cd);
		String mkm_trat_bri_cd = paramBean[0].sendMessageString(KKW10705SFConst.MKM_TRAT_BRI_CD, X31CWebConst.DATABEAN_GET_VALUE);
		setPulldownIndex(paramBean[0], KKW10705SFConst.MKM_TRAT_BRI_NM_LIST, mkm_trat_bri_cd);
		
		// 申込取扱詳細を絞込み、設定
		JKKAgntScreenUtil.setChildPullDownList(paramBean[0], KKW10705SFConst.MKM_TRAT_DTL_NM_ALL_LIST, KKW10705SFConst.MKM_TRAT_DTL_NM_LIST, mkm_trat_bri_cd);
		String mkm_trat_dtl_cd = paramBean[0].sendMessageString(KKW10705SFConst.MKM_TRAT_DTL_CD, X31CWebConst.DATABEAN_GET_VALUE);
		setPulldownIndex(paramBean[0], KKW10705SFConst.MKM_TRAT_DTL_NM_LIST, mkm_trat_dtl_cd);

		// ログイン可否を設定
		String frnt_login_ctrl_cd = paramBean[0].sendMessageString(KKW10705SFConst.FRNT_LOGIN_CTRL_CD, X31CWebConst.DATABEAN_GET_VALUE);
		setPulldownIndex(paramBean[0], KKW10705SFConst.FRNT_LOGIN_CTRL_NM_LIST, frnt_login_ctrl_cd);
		
		// 支払発生有無を設定
		String incntv_pay_hasseil_cd = paramBean[0].sendMessageString(KKW10705SFConst.INCNTV_PAY_HASSEI_CD, X31CWebConst.DATABEAN_GET_VALUE);
		setPulldownIndex(paramBean[0], KKW10705SFConst.INCNTV_PAY_HASSEI_NM_LIST, incntv_pay_hasseil_cd);
		
	}
	
	/**
	 * 年月日を変換します。
	 * <br>
	 * @param paramBean DataBean項目の配列
	 */
	private void setYmdData(X31SDataBeanAccess[] paramBean)
	{
		// 適用開始年月日
		String tstaymd = paramBean[0].sendMessageString(KKW10705SFConst.AGNT_TSTAYMD, X31CWebConst.DATABEAN_GET_VALUE);
		
		if (!"".equals(tstaymd) && !JKKStrConst.END_YMD_DEFAULT.equals(tstaymd)) {
			String year = JPCEditString.toYearFromYmd(tstaymd);
			String month = JPCEditString.toMonthFromYmd(tstaymd);
			String day = JPCEditString.toDayFromYmd(tstaymd);
			
			// 適用開始年月日に再設定
			paramBean[0].sendMessageString(KKW10705SFConst.AGNT_TSTAYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, year);
			paramBean[0].sendMessageString(KKW10705SFConst.AGNT_TSTAYMD_MONTH, X31CWebConst.DATABEAN_SET_VALUE, month);
			paramBean[0].sendMessageString(KKW10705SFConst.AGNT_TSTAYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, day);
		}
		
		// 適用終了年月日
		String tendymd = paramBean[0].sendMessageString(KKW10705SFConst.AGNT_TENDYMD, X31CWebConst.DATABEAN_GET_VALUE);
		
		if (!"".equals(tendymd) && !JKKStrConst.END_YMD_DEFAULT.equals(tendymd)) {
			String year = JPCEditString.toYearFromYmd(tendymd);
			String month = JPCEditString.toMonthFromYmd(tendymd);
			String day = JPCEditString.toDayFromYmd(tendymd);
			
			// 適用終了年月日に再設定
			paramBean[0].sendMessageString(KKW10705SFConst.AGNT_TENDYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, year);
			paramBean[0].sendMessageString(KKW10705SFConst.AGNT_TENDYMD_MONTH, X31CWebConst.DATABEAN_SET_VALUE, month);
			paramBean[0].sendMessageString(KKW10705SFConst.AGNT_TENDYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, day);
		}
		
		// 予約適用年月日
		String rsvaplyymd = paramBean[0].sendMessageString(KKW10705SFConst.RSV_APLY_YMD, X31CWebConst.DATABEAN_GET_VALUE);
		if (!"".equals(rsvaplyymd) && !JKKStrConst.END_YMD_DEFAULT.equals(rsvaplyymd)) {
			String year = JPCEditString.toYearFromYmd(rsvaplyymd);
			String month = JPCEditString.toMonthFromYmd(rsvaplyymd);
			String day = JPCEditString.toDayFromYmd(rsvaplyymd);
			
			// 予約適用年月日に再設定
			paramBean[0].sendMessageString(KKW10705SFConst.RSV_APLY_YMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, year);
			paramBean[0].sendMessageString(KKW10705SFConst.RSV_APLY_YMD_MONTH, X31CWebConst.DATABEAN_SET_VALUE, month);
			paramBean[0].sendMessageString(KKW10705SFConst.RSV_APLY_YMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, day);
		}
	}

	/**
	 * 更新パターンを取得します。<br>
	 * 
	 * @param bean データBeanのアクセスクラス
	 * @return 更新パターン
	 */
	private int getUpdPtn(X31SDataBeanAccess bean)
	{
		int updPtn = 0;

		String rsv_aply_ymd = bean.sendMessageString(KKW10705SFConst.RSV_APLY_YMD, X31CWebConst.DATABEAN_GET_VALUE);
		String agnt_tstaymd = bean.sendMessageString(KKW10705SFConst.AGNT_TSTAYMD, X31CWebConst.DATABEAN_GET_VALUE);
		String agnt_tendymd = bean.sendMessageString(KKW10705SFConst.AGNT_TENDYMD, X31CWebConst.DATABEAN_GET_VALUE);
		String unyo_ymd = bean.sendMessageString(KKW10705SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE);

		// 予約の場合
		if (JKKAgntScreenUtil.isRsvAgntTstaAf(rsv_aply_ymd, agnt_tstaymd, agnt_tendymd, unyo_ymd))
		{
			updPtn = UPD_PTN_RSV_TSTA_AF;
		}
		else if (JKKAgntScreenUtil.isRsvAgntTstaBf(rsv_aply_ymd, agnt_tstaymd, unyo_ymd))
		{
			updPtn = UPD_PTN_RSV_TSTA_BF;
		}
		// 適用中の場合
		else
		{
			updPtn = UPD_PTN_APLY;
		}

		return updPtn;
	}

	/**
	 * 住所コードを変換します。
	 * <br>
	 * @param  paramBean  DataBean項目の配列
	 */
	private void setAdCdData(X31SDataBeanAccess[] paramBean)
	{	
		// 代理店住所コード
		String agntadcd = paramBean[0].sendMessageString(KKW10705SFConst.AGNT_AD_CD, X31CWebConst.DATABEAN_GET_VALUE);
		
		if (!"".equals(agntadcd) && agntadcd.length() == 11) {
			String adcd1 = agntadcd.substring(0, 2);
			String adcd2 = agntadcd.substring(2, 5);
			String adcd3 = agntadcd.substring(5, 8);
			String adcd4 = agntadcd.substring(8, 11);
			
			// 代理店住所コードに再設定
			paramBean[0].sendMessageString(KKW10705SFConst.AGNT_AD_CD_1, X31CWebConst.DATABEAN_SET_VALUE, adcd1);
			paramBean[0].sendMessageString(KKW10705SFConst.AGNT_AD_CD_2, X31CWebConst.DATABEAN_SET_VALUE, adcd2);
			paramBean[0].sendMessageString(KKW10705SFConst.AGNT_AD_CD_3, X31CWebConst.DATABEAN_SET_VALUE, adcd3);
			paramBean[0].sendMessageString(KKW10705SFConst.AGNT_AD_CD_4, X31CWebConst.DATABEAN_SET_VALUE, adcd4);
		}
	}
	
	/**
	 * 郵便番号を変換します。
	 * <br>
	 * @param  paramBean  DataBean項目の配列
	 */
	private void setPcdData(X31SDataBeanAccess[] paramBean)
	{	
		// 郵便番号
		String pcd = paramBean[0].sendMessageString(KKW10705SFConst.AGNT_PCD, X31CWebConst.DATABEAN_GET_VALUE);
		
		if (!"".equals(pcd)) {
			String pcd1 = JPCEditString.toTopThreeDigitFromPcd(pcd);
			String pcd2 = JPCEditString.toUnderFourDigitFromPcd(pcd);
			
			// 郵便番号に再設定
			paramBean[0].sendMessageString(KKW10705SFConst.AGNT_PCD_1, X31CWebConst.DATABEAN_SET_VALUE, pcd1);
			paramBean[0].sendMessageString(KKW10705SFConst.AGNT_PCD_2, X31CWebConst.DATABEAN_SET_VALUE, pcd2);
		}
	}
	
	/**
	 * インセンティブ支払先コードを変換します。
	 * <br>
	 * @param  paramBean  DataBean項目の配列
	 */
	private void setIncntvData(X31SDataBeanAccess[] paramBean)
	{	
		// インセンティブ支払先コード1
		String incntv_pay_sk_cd_1 = paramBean[0].sendMessageString(KKW10705SFConst.INCNTV_PAY_SK_CD_1, X31CWebConst.DATABEAN_GET_VALUE);
		
		if (!"".equals(incntv_pay_sk_cd_1) && incntv_pay_sk_cd_1.length() == 10) {
			String incntv_pay_sk_cd1 = incntv_pay_sk_cd_1.substring(0, 2);
			String incntv_pay_sk_cd2 = incntv_pay_sk_cd_1.substring(2, 10);
			
			// インセンティブ支払先コード1に再設定
			paramBean[0].sendMessageString(KKW10705SFConst.INCNTV_PAY_SK_CD_1_1, X31CWebConst.DATABEAN_SET_VALUE, incntv_pay_sk_cd1);
			paramBean[0].sendMessageString(KKW10705SFConst.INCNTV_PAY_SK_CD_1_2, X31CWebConst.DATABEAN_SET_VALUE, incntv_pay_sk_cd2);
		}
		
		// インセンティブ支払先コード2
		String incntv_pay_sk_cd_2 = paramBean[0].sendMessageString(KKW10705SFConst.INCNTV_PAY_SK_CD_2, X31CWebConst.DATABEAN_GET_VALUE);
		
		if (!"".equals(incntv_pay_sk_cd_2) && incntv_pay_sk_cd_2.length() == 10) {
			String incntv_pay_sk_cd1 = incntv_pay_sk_cd_2.substring(0, 2);
			String incntv_pay_sk_cd2 = incntv_pay_sk_cd_2.substring(2, 10);
			
			// インセンティブ支払先コード2に再設定
			paramBean[0].sendMessageString(KKW10705SFConst.INCNTV_PAY_SK_CD_2_1, X31CWebConst.DATABEAN_SET_VALUE, incntv_pay_sk_cd1);
			paramBean[0].sendMessageString(KKW10705SFConst.INCNTV_PAY_SK_CD_2_2, X31CWebConst.DATABEAN_SET_VALUE, incntv_pay_sk_cd2);
		}
	}
	
	/**
	 * 組織コードより名称を取得します。
	 * <br>
	 * @param  paramBean  DataBean項目の配列
	 * @param orgCd 組織コード
	 * @return 組織名
	 */
	@SuppressWarnings("unchecked")
	private String getOrgName(X31SDataBeanAccess[] paramBean, String orgCd)
	{
		// 組織コードを設定
		paramBean[0].sendMessageString(KKW10705SFConst.ORG_CD, X31CWebConst.DATABEAN_SET_VALUE, orgCd);
		
		// ユースケースID格納用マップを生成。
		HashMap paramMap = new HashMap();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, ZMSV0092);
		
		// マッピングクラスのインスタンスを生成
		ZMSV0092_ZMSV0092OPDBMapper mapper = new ZMSV0092_ZMSV0092OPDBMapper();
		HashMap dataMap = new HashMap();
		mapper.setZMSV009201CC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		
		// ページング情報の設定
		JZMWebCommon.upmapperPageLinkInfo(this, JZMWebConst.CC9201, dataMap);
		
		// 検索結果格納用マップを生成。
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		try
		{
			// 検索処理呼出
			X31CMessageResult msgResult = invokeService(paramMap, dataMap, outputMap);
			if (msgResult != null)
			{
				return "";
			}
		}
		catch (Exception e)
		{
			// エラー時は画面の組織名を空白にするため、エラー処理を行わずに
			// 正常終了する。
			;
		}
		
		HashMap parentMap = null;
		if(outputMap.containsKey("ZMSV009201CC")){
			parentMap = (HashMap)outputMap.get("ZMSV009201CC");
		}

		ArrayList childList = null;
		
		if(parentMap != null && parentMap.containsKey("EZM0061B012CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EZM0061B012CBSMsg1List");
			if (childList.size() > 0) {
				HashMap childMap = (HashMap)childList.get(0);
				return (String)childMap.get("org_nm");
			}
		}
		return "";
	}

	/**
	 * 年月日を変換します。（結合）
	 * <br>
	 * @param paramBean DataBean項目の配列
	 * @param formatFlag 整形フラグ  true:整形する,false:整形しない
	 */
	private void setConcatYmdData(X31SDataBeanAccess[] paramBean, boolean formatFlag)
	{
		// 適用開始年月日
		String tstaymdy = paramBean[0].sendMessageString(KKW10705SFConst.AGNT_TSTAYMD_YEAR, X31CWebConst.DATABEAN_GET_VALUE);
		String tstaymdm = paramBean[0].sendMessageString(KKW10705SFConst.AGNT_TSTAYMD_MONTH, X31CWebConst.DATABEAN_GET_VALUE);
		String tstaymdd = paramBean[0].sendMessageString(KKW10705SFConst.AGNT_TSTAYMD_DAY, X31CWebConst.DATABEAN_GET_VALUE);
		
		String tstaymd = JPCEditString.concatYmd(tstaymdy, tstaymdm, tstaymdd);
		if (tstaymd != null) {
			// 適用開始年月日に再設定
			if (formatFlag) {
				paramBean[0].sendMessageString(KKW10705SFConst.AGNT_TSTAYMD, X31CWebConst.DATABEAN_SET_VALUE, JKKAgntScreenUtil.getDispDate(tstaymd));
			} else {
				paramBean[0].sendMessageString(KKW10705SFConst.AGNT_TSTAYMD, X31CWebConst.DATABEAN_SET_VALUE, tstaymd);
			}
		} else {
			paramBean[0].sendMessageString(KKW10705SFConst.AGNT_TSTAYMD, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		
		// 適用終了年月日
		String tendymdy = paramBean[0].sendMessageString(KKW10705SFConst.AGNT_TENDYMD_YEAR, X31CWebConst.DATABEAN_GET_VALUE);
		String tendymdm = paramBean[0].sendMessageString(KKW10705SFConst.AGNT_TENDYMD_MONTH, X31CWebConst.DATABEAN_GET_VALUE);
		String tendymdd = paramBean[0].sendMessageString(KKW10705SFConst.AGNT_TENDYMD_DAY, X31CWebConst.DATABEAN_GET_VALUE);
		
		String tendymd = JPCEditString.concatYmd(tendymdy, tendymdm, tendymdd);
		if (tendymd != null) {
			// 適用終了年月日に再設定
			if (formatFlag) {
				paramBean[0].sendMessageString(KKW10705SFConst.AGNT_TENDYMD, X31CWebConst.DATABEAN_SET_VALUE, JKKAgntScreenUtil.getDispDate(tendymd));
			} else {
				paramBean[0].sendMessageString(KKW10705SFConst.AGNT_TENDYMD, X31CWebConst.DATABEAN_SET_VALUE, tendymd);
			}
		} else {
			if (formatFlag) {
				paramBean[0].sendMessageString(KKW10705SFConst.AGNT_TENDYMD, X31CWebConst.DATABEAN_SET_VALUE, "");
			} else {
				paramBean[0].sendMessageString(KKW10705SFConst.AGNT_TENDYMD, X31CWebConst.DATABEAN_SET_VALUE, JKKStrConst.END_YMD_DEFAULT);
			}
		}
		
		// 予約適用年月日
		String rsvaplyymdy = paramBean[0].sendMessageString(KKW10705SFConst.RSV_APLY_YMD_YEAR, X31CWebConst.DATABEAN_GET_VALUE);
		String rsvaplyymdm = paramBean[0].sendMessageString(KKW10705SFConst.RSV_APLY_YMD_MONTH, X31CWebConst.DATABEAN_GET_VALUE);
		String rsvaplyymdd = paramBean[0].sendMessageString(KKW10705SFConst.RSV_APLY_YMD_DAY, X31CWebConst.DATABEAN_GET_VALUE);
		
		String rsvaplyymd = JPCEditString.concatYmd(rsvaplyymdy, rsvaplyymdm, rsvaplyymdd);
		if (rsvaplyymd != null) {
			// 予約適用年月日に再設定
			if (formatFlag) {
				paramBean[0].sendMessageString(KKW10705SFConst.RSV_APLY_YMD, X31CWebConst.DATABEAN_SET_VALUE, JKKAgntScreenUtil.getDispDate(rsvaplyymd));
			} else {
				paramBean[0].sendMessageString(KKW10705SFConst.RSV_APLY_YMD, X31CWebConst.DATABEAN_SET_VALUE, rsvaplyymd);
			}
		} else {
			int updPtn = Integer.valueOf(paramBean[0].sendMessageString(KKW10705SFConst.UPD_PTN, X31CWebConst.DATABEAN_GET_VALUE));
			if (updPtn == UPD_PTN_RSV_TSTA_BF) {
				if (formatFlag) {
					paramBean[0].sendMessageString(KKW10705SFConst.RSV_APLY_YMD, X31CWebConst.DATABEAN_SET_VALUE, "");
				} else {
					// 予約（適用開始前）の場合、予約適用年月日の空白に運用日を設定する
					String unyo_ymd = paramBean[0].sendMessageString(KKW10705SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE);
					paramBean[0].sendMessageString(KKW10705SFConst.RSV_APLY_YMD, X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd);
				}
			} else {
				paramBean[0].sendMessageString(KKW10705SFConst.RSV_APLY_YMD, X31CWebConst.DATABEAN_SET_VALUE, "");
			}
		}
	}

	/**
	 * 住所コードを変換します。（結合）
	 * <br>
	 * @param  paramBean  DataBean項目の配列
	 */
	private void setConcatAdCdData(X31SDataBeanAccess[] paramBean, boolean formatFlag)
	{	
		// 代理店住所コード
		String agntadcd1 = paramBean[0].sendMessageString(KKW10705SFConst.AGNT_AD_CD_1, X31CWebConst.DATABEAN_GET_VALUE);
		String agntadcd2 = paramBean[0].sendMessageString(KKW10705SFConst.AGNT_AD_CD_2, X31CWebConst.DATABEAN_GET_VALUE);
		String agntadcd3 = paramBean[0].sendMessageString(KKW10705SFConst.AGNT_AD_CD_3, X31CWebConst.DATABEAN_GET_VALUE);
		String agntadcd4 = paramBean[0].sendMessageString(KKW10705SFConst.AGNT_AD_CD_4, X31CWebConst.DATABEAN_GET_VALUE);
		
		if (!"".equals(agntadcd1) && agntadcd1.length() == 2 && !"".equals(agntadcd2) && agntadcd2.length() == 3
				&& !"".equals(agntadcd3) && agntadcd3.length() == 3 && !"".equals(agntadcd4) && agntadcd4.length() == 3) {
			String agntadcd = null;
			if (formatFlag) {
				agntadcd = agntadcd1 + HYHUN + agntadcd2 + HYHUN + agntadcd3 + HYHUN + agntadcd4;
			} else {
				agntadcd = agntadcd1 + agntadcd2 + agntadcd3 + agntadcd4;
			}
			
			// 代理店住所コードに再設定
			paramBean[0].sendMessageString(KKW10705SFConst.AGNT_AD_CD, X31CWebConst.DATABEAN_SET_VALUE, agntadcd);
		} else {
			paramBean[0].sendMessageString(KKW10705SFConst.AGNT_AD_CD, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
	}
	
	/**
	 * 郵便番号を変換します。（結合）
	 * <br>
	 * @param  paramBean  DataBean項目の配列
	 */
	private void setConcatPcdData(X31SDataBeanAccess[] paramBean, boolean formatFlag)
	{	
		// 郵便番号
		String pcd1 = paramBean[0].sendMessageString(KKW10705SFConst.AGNT_PCD_1, X31CWebConst.DATABEAN_GET_VALUE);
		String pcd2 = paramBean[0].sendMessageString(KKW10705SFConst.AGNT_PCD_2, X31CWebConst.DATABEAN_GET_VALUE);
		
		String pcd = JPCEditString.concatPcd(pcd1, pcd2);
		if (pcd != null) {
			// 郵便番号に再設定
			if (formatFlag) {
				paramBean[0].sendMessageString(KKW10705SFConst.AGNT_PCD, X31CWebConst.DATABEAN_SET_VALUE, JKKAgntScreenUtil.editPcd(pcd));
			} else {
				paramBean[0].sendMessageString(KKW10705SFConst.AGNT_PCD, X31CWebConst.DATABEAN_SET_VALUE, pcd);
			}
		} else {
			paramBean[0].sendMessageString(KKW10705SFConst.AGNT_PCD, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
	}
	
	/**
	 * インセンティブ支払先コードを変換します。（結合）
	 * <br>
	 * @param  paramBean  DataBean項目の配列
	 */
	private void setConcatIncntvData(X31SDataBeanAccess[] paramBean)
	{	
		// インセンティブ支払先コード1
		String incntv_pay_sk_cd_1_1 = paramBean[0].sendMessageString(KKW10705SFConst.INCNTV_PAY_SK_CD_1_1, X31CWebConst.DATABEAN_GET_VALUE);
		String incntv_pay_sk_cd_1_2 = paramBean[0].sendMessageString(KKW10705SFConst.INCNTV_PAY_SK_CD_1_2, X31CWebConst.DATABEAN_GET_VALUE);
		
		if (!"".equals(incntv_pay_sk_cd_1_1) && incntv_pay_sk_cd_1_1.length() == 2
				&& !"".equals(incntv_pay_sk_cd_1_2) && incntv_pay_sk_cd_1_2.length() == 8) {
			String incntv_pay_sk_cd_1 = incntv_pay_sk_cd_1_1 + incntv_pay_sk_cd_1_2;
			
			// インセンティブ支払先コード1に再設定
			paramBean[0].sendMessageString(KKW10705SFConst.INCNTV_PAY_SK_CD_1, X31CWebConst.DATABEAN_SET_VALUE, incntv_pay_sk_cd_1);
		} else {
			paramBean[0].sendMessageString(KKW10705SFConst.INCNTV_PAY_SK_CD_1, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		
		// インセンティブ支払先コード2
		String incntv_pay_sk_cd_2_1 = paramBean[0].sendMessageString(KKW10705SFConst.INCNTV_PAY_SK_CD_2_1, X31CWebConst.DATABEAN_GET_VALUE);
		String incntv_pay_sk_cd_2_2 = paramBean[0].sendMessageString(KKW10705SFConst.INCNTV_PAY_SK_CD_2_2, X31CWebConst.DATABEAN_GET_VALUE);
		
		if (!"".equals(incntv_pay_sk_cd_2_1) && incntv_pay_sk_cd_2_1.length() == 2
				&& !"".equals(incntv_pay_sk_cd_2_2) && incntv_pay_sk_cd_2_2.length() == 8) {
			String incntv_pay_sk_cd_2 = incntv_pay_sk_cd_2_1 + incntv_pay_sk_cd_2_2;
			
			// インセンティブ支払先コード2に再設定
			paramBean[0].sendMessageString(KKW10705SFConst.INCNTV_PAY_SK_CD_2, X31CWebConst.DATABEAN_SET_VALUE, incntv_pay_sk_cd_2);
		}
	}

	/**
	 * プルダウンを変換します。
	 * <br>
	 * @param  paramBean  DataBean項目の配列
	 */
	private void setSelectedPullDownName(X31SDataBeanAccess[] paramBean)
	{	
		// 申込チャネルコード（表示用）設定
		paramBean[0].sendMessageString(KKW10705SFConst.DSP_MKM_CHANNEL_CD, X31CWebConst.DATABEAN_SET_VALUE, JKKWebCommon
				.getPullDownName(paramBean[0], KKW10705SFConst.MKM_CHANNEL_NM_LIST, KKW10705SFConst.INDEX_01, KKW10705SFConst.CD_DIV_LIST_01,
						KKW10705SFConst.NM_LIST_01));
		// 申込取扱分類コード（表示用）設定
		paramBean[0].sendMessageString(KKW10705SFConst.DSP_MKM_TRAT_BRI_CD, X31CWebConst.DATABEAN_SET_VALUE, JKKWebCommon
				.getPullDownName(paramBean[0], KKW10705SFConst.MKM_TRAT_BRI_NM_LIST, KKW10705SFConst.INDEX_01, KKW10705SFConst.CD_DIV_LIST_01,
						KKW10705SFConst.NM_LIST_01));
		// 申込取扱詳細コード（表示用）設定
		paramBean[0].sendMessageString(KKW10705SFConst.DSP_MKM_TRAT_DTL_CD, X31CWebConst.DATABEAN_SET_VALUE, JKKWebCommon
				.getPullDownName(paramBean[0], KKW10705SFConst.MKM_TRAT_DTL_NM_LIST, KKW10705SFConst.INDEX_01, KKW10705SFConst.CD_DIV_LIST_01,
						KKW10705SFConst.NM_LIST_01));
		// フロントログイン制御コード（表示用）設定
		paramBean[0].sendMessageString(KKW10705SFConst.DSP_FRNT_LOGIN_CTRL_CD, X31CWebConst.DATABEAN_SET_VALUE, JKKWebCommon
				.getPullDownName(paramBean[0], KKW10705SFConst.FRNT_LOGIN_CTRL_NM_LIST, KKW10705SFConst.INDEX_01, KKW10705SFConst.CD_DIV_LIST_01,
						KKW10705SFConst.NM_LIST_01));
		// インセンティブ支払発生コード（表示用）設定
		paramBean[0].sendMessageString(KKW10705SFConst.DSP_INCNTV_PAY_HASSEI_CD, X31CWebConst.DATABEAN_SET_VALUE, JKKWebCommon
				.getPullDownName(paramBean[0], KKW10705SFConst.INCNTV_PAY_HASSEI_NM_LIST, KKW10705SFConst.INDEX_01, KKW10705SFConst.CD_DIV_LIST_01,
						KKW10705SFConst.NM_LIST_01));
	}
	
	/**
	 * プルダウンを変換します。（コード）
	 * <br>
	 * @param  paramBean  DataBean項目の配列
	 */
	private void setSelectedPullDownCd(X31SDataBeanAccess[] paramBean)
	{	
		// 申込チャネルコード設定
		String mkm_channel_cd = getPulldownSelVal(paramBean[0], KKW10705SFConst.MKM_CHANNEL_NM_LIST);
		paramBean[0].sendMessageString(KKW10705SFConst.MKM_CHANNEL_CD, X31CWebConst.DATABEAN_SET_VALUE, mkm_channel_cd);
		// 申込取扱分類コード設定
		String mkm_trat_bri_cd = getPulldownSelVal(paramBean[0], KKW10705SFConst.MKM_TRAT_BRI_NM_LIST);
		paramBean[0].sendMessageString(KKW10705SFConst.MKM_TRAT_BRI_CD, X31CWebConst.DATABEAN_SET_VALUE, mkm_trat_bri_cd);
		// 申込取扱詳細コード設定
		String mkm_trat_dtl_cd = getPulldownSelVal(paramBean[0], KKW10705SFConst.MKM_TRAT_DTL_NM_LIST);
		paramBean[0].sendMessageString(KKW10705SFConst.MKM_TRAT_DTL_CD, X31CWebConst.DATABEAN_SET_VALUE, mkm_trat_dtl_cd);
		// フロントログイン制御コード設定
		String frnt_login_ctl_cd = getPulldownSelVal(paramBean[0], KKW10705SFConst.FRNT_LOGIN_CTRL_NM_LIST);
		paramBean[0].sendMessageString(KKW10705SFConst.FRNT_LOGIN_CTRL_CD, X31CWebConst.DATABEAN_SET_VALUE, frnt_login_ctl_cd);
		// インセンティブ支払発生コード設定
		String inxntv_pay_hassei_cd = getPulldownSelVal(paramBean[0], KKW10705SFConst.INCNTV_PAY_HASSEI_NM_LIST);
		paramBean[0].sendMessageString(KKW10705SFConst.INCNTV_PAY_HASSEI_CD, X31CWebConst.DATABEAN_SET_VALUE, inxntv_pay_hassei_cd);
	}
	
	/**
	 * 取扱コードマスタ更新確認サービス実行処理
	 * <br>
	 * @param paramBean DataBean項目の配列
	 */
	private void executeUpdSvc(X31SDataBeanAccess[] paramBean, String funcCd)
	{
		// 変数の定義
		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;
		
		// 取扱コードマスタ更新確認サービス
		paramMap = new HashMap<String, Object>();		//パラメタ設定用マップ
		inputMap = new HashMap<String, Object>();		//データマップ
		outputMap = new HashMap<String, Object>();		//結果格納用マップ
		
		// 取扱コードマスタ更新確認サービスの呼び出しを行う。
		// パラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0645");
		
		// 上りマッピング(サービス項目-DataBean項目マッピング)
		KKSV0645_KKSV0645OPDBMapper mapper = new KKSV0645_KKSV0645OPDBMapper();

		// 代理店更新CC
		mapper.setKKSV064501CC(paramBean, inputMap, funcCd);

		// 取扱コードマスタ更新確認サービス
		invokeService(paramMap, inputMap, outputMap);
	}
}
