/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom, 2011
**********************************************************************
*＜プログラム内容＞
*   システム名      ：顧客契約
*   モジュール名    ：固定グローバルＩＰアドレス情報登録画面ビューロジック
*   ソースファイル名：KKW00810SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年05月11日
*＜機能概要＞
*   次の３画面のビューロジックを装備する。
*   　　固定グローバルＩＰアドレス情報登録画面
*   　　固定グローバルＩＰアドレス情報登録確認画面
*   　　固定グローバルＩＰアドレス情報登録完了画面
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00       2011/04/01   FJ）富士通    新規作成
*   v3.00       2012/04/21   FJ) 高田      割引変更メッセージ対応
*   v3.01       2012/04/28   FJ) 森本      異動理由メモ対応
*   v3.02       2012/08/10   FJ) 藤原      【TAI-2012-0000061】運用時分秒にはOSの時刻ではなく部品から取得した時刻を設定するよう修正  
*   v4.00		2012/10/18   FJ) 清崎      [ANK-1223-00-00]進捗補足事項編集対応
*   v4.01		2013/02/18   FJ) 泉		   【IT1-2013-0000289】static変数の不適切利用に関する対応
*   v4.02		2013/03/04	 FJ) 泉		   【OT-2013-0000223】	親契約識別コードを"01"(サービス契約)から"03"(サービス契約内訳)に修正
*   v5.00       2013/05/30   FJ) 清崎      【TG1-2013-0000421】固定グローバルオプション登録時、サービス契約内訳ステータスの参照対応
*   v7.00       2013/12/05   FJ) 西面      【IT1-2014-0000037】登録時、サービスを部品化
*   v10.00		2014/09/08   FJ) 岡田      【IT1-2014-0000303】申込形態コードをNULLとして設定されるよう修正する
**********************************************************************/
package eo.web.webview.KKW00810SF;

import java.text.DecimalFormat;
// 2012/08/10 TAI-2012-0000061 del start
//import java.text.SimpleDateFormat;
// 2012/08/10 TAI-2012-0000061 del end
import java.util.ArrayList;
// 2012/08/10 TAI-2012-0000061 del start
//import java.util.Calendar;
// 2012/08/10 TAI-2012-0000061 del end
import java.util.HashMap;

import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.KKW00810SF.KKW00810SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.common.JKKSetSessionMessage;
import eo.web.webview.mapping.KKSV0022_KKSV0022OPDBMapper;
import eo.web.webview.mapping.KKSV0023_KKSV0023OPDBMapper;
import eo.web.webview.JCCWebBusinessLogic;

import com.fujitsu.futurity.common.JSYwebLog;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;



/**
 * 固定グローバルＩＰアドレス・オプションの登録を行う画面です。<p>
 * <BR>
 * @author 富士通
 * @since 2011-05-11
 */
@SuppressWarnings("serial")
public class KKW00810SFLogic extends  JCCWebBusinessLogic
{

//	/** 顧客契約引継情報項目キー */						
//	private static final String[] CUST_KEI_HKTGI_KEYS = {
//		JKKCommonConst.HKTGI_SYSID,
//		JKKCommonConst.HKTGI_SVC_KEI_NO,
//		JKKCommonConst.HKTGI_IDO_DIV,
//		JKKCommonConst.HKTGI_IDO_RSN_CD,
//	};
	

	/** 
	 * サービスＩＤ（固定グローバルＩＰアドレス情報登録初期表示）
	 */
	public static final String SVC_ID_KKSV0022 = JKKCommonConst.UCID_KKSV0022;		// "KKSV0022";
	
	/** 
	 * オペレーションＩＤ（固定グローバルＩＰアドレス情報登録初期表示）
	 */
	public static final String OP_ID_KKSV0022OP = JKKCommonConst.OPID_KKSV0022OP;		//"KKSV0022OP";
	
	/** 
	 * サービスＩＤ（固定グローバルＩＰアドレス情報登録）
	 */
	public static final String SVC_ID_KKSV0023 = JKKCommonConst.UCID_KKSV0023;		// "KKSV0023";

	/** 
	 * オペレーションＩＤ（固定グローバルＩＰアドレス情報登録）
	 */
	public static final String OP_ID_KKSV0023OP = JKKCommonConst.OPID_KKSV0023OP;		// "KKSV0023OP";

	/** 
	 * 遷移先画面ID（オプションサービス契約一覧照会画面）
	 */
	public static final String SCREEN_ID_KKW02301 = JKKScreenConst.SCREEN_ID_KKW02301;	//"KKW02301";

	/** 
	 * 遷移先画面名（オプションサービス契約一覧照会画面）
	 */
	public static final String SCREEN_NM_KKW02301 = JKKScreenConst.SCREEN_NAME_KKW02301;	// "オプションサービス契約一覧照会画面";

//	/** エイジングステータス：なし */
//	private static final String AGING_STAT_NONE = "999";

	/** 進捗ステータス：オプション設定完了 */
	private static final String PRG_STAT_CD_5102 = "5102";

	/** 進捗ステータス：オプション情報申請中 */
	private static final String PRG_STAT_CD_5101 = "5101";

//	/** 請求契約ステータス：請求契約中 */
//	private static final Object SEIKY_KEI_STAT = "100";
//
//	/** エイジング種別コード：固定ＩＰアドレス */
//	private static final String AGING_SBT_CD_002 = "002";

	/** 親契約識別コード：サービス契約 */
//	private static final String OYA_KEI_SKBT_CD_01 = "01";

//	private static final String SCID_KKSV0022_04 = "KKSV002204SC";
	private static final String OYA_KEI_SKBT_CD_03 = "03";


	/** 料金プランコード　固定グローバルＩＰアドレス */
	private static final String PPLAN_CD_PB0401 = "PB0401";
	
	// 2012/10/18 [ANK-1223-00-00]進捗補足事項編集対応 ADD START
	/** 進捗特記事項1：固定グローバルＩＰアドレス情報登録 */
	private static final String PRG_TKJK_1_VAL_KTIIPADR_INFO_ADD = "固定グローバルＩＰアドレス情報登録";
	// 2012/10/18 [ANK-1223-00-00]進捗補足事項編集対応 ADD END

	// IT1-2013-0000289 2013/02/18 MOD START
	/**
     * 運用日
     */
//	public static String unyo_ymd = null;
	public String unyo_ymd = null;
	
	/**
     * 運用日時分秒
     */
//	public static String unyo_dtm = null;
	public String unyo_dtm = null;
	
	/**
     * 利用開始日
     */
//	public static String use_sta_ymd = null;
	public String use_sta_ymd = null;
	// IT1-2013-0000289 2013/02/18 MOD END
	
	/**
	 * <pre>KKW00810固定グローバルＩＰアドレス情報登録画面
	 * 　初期表示を行います。
	 * </pre><br>
	 * <br>
	 * @return true/false
	 * @exception Exception
	 */
	public boolean action_Init() throws Exception
	{
		X31SDataBeanAccess  commonInfoBean = super.getCommonInfoBean();

		// 遷移先画面IDを取得 
		String screenId = commonInfoBean.sendMessageString( CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_GET_VALUE );

		// 遷移先画面IDから、行う表示処理を決定する
		if (JKKScreenConst.SCREEN_ID_KKW00810.equals(screenId))
		{
			actionInitKKW00810();

			//自画面を表示する
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, screenId);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW00810);
		}
		else if (JKKScreenConst.SCREEN_ID_KKW00811.equals(screenId))
		{
			actionInitKKW00811();
		}
		else if (JKKScreenConst.SCREEN_ID_KKW00812.equals(screenId))
		{
			actionInitKKW00812();
		}
		
		return true;
		
	}
	
	/**
	 * 登録画面初期表示処理
	 * @return 
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private boolean actionInitKKW00810() throws Exception
	{
		//サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();

		//引継ぎデータ
		JCCWebCommon.getScreenInfo(this);

		//引継ぎ項目の情報からデータ移し変え
		initServiceFormBean(svcFormBean);
		
		//ユースケースID格納用のHashMap
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		//マッピングクラスの結果を格納するHashMap
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		//サービス呼出結果を格納するHashMap
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		//Beanの取得
		X31SDataBeanAccess[] paramBean = {svcFormBean};

		//ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SVC_ID_KKSV0022);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, OP_ID_KKSV0022OP);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATE_DATETIME, JCCWebCommon.getOpeDateTimeStamp(this, null));

		//マッピングクラスのインスタンス生成
		KKSV0022_KKSV0022OPDBMapper mapper = new KKSV0022_KKSV0022OPDBMapper();
		inputMap = mapper.setKKSV002201CC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);

		// サービス呼出処理
		invokeService(paramMap, inputMap, outputMap);
			
		//下りマッピング
		mapper.getKKSV002201CC(paramBean, outputMap);	//固定ＩＰアドレス払出処理結果を取得

		// 検索エラーフラグの取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg("KKSV041307SC", outputMap);
		
		if(null != searchErrFlg && !"".equals(searchErrFlg.trim()))
		{
			String[] str = {"固定IPアドレス"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB5470_KW, str);
		}
		//サービスフォームBean編集
		editServiceFormBean(svcFormBean);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
		
	}
	
	/**
	 * 
	 * @param svcFormBean
	 */
	private void editServiceFormBean(X31SDataBeanAccess svcFormBean)
	{
		//固定ＩＰアドレス一意照会結果
		X31SDataBeanAccess ipAddressBean = svcFormBean.getDataBeanArray(KKW00810SFConst.FIXIPAD_HRADSI_LIST).getDataBean(0);

		//固定ＩＰアドレス
		String ipAddress = ipAddressBean.sendMessageString(KKW00810SFConst.FIXIPAD_02, X31CWebConst.DATABEAN_GET_VALUE);
		//ネットマスク
		String netMask = ipAddressBean.sendMessageString(KKW00810SFConst.NETMASK_02, X31CWebConst.DATABEAN_GET_VALUE);

		//利用開始日(年)
		String use_staymd_year = unyo_ymd.substring(0, 4);
		//利用開始日(月)
		String use_staymd_mon = unyo_ymd.substring(4, 6);
		//利用開始日(日)
		String use_staymd_day = unyo_ymd.substring(6, 8);

		//ＩＰアドレスとネットマスクをBeanにセット
		svcFormBean.sendMessageString(KKW00810SFConst.KOTEI_IP_AD, X31CWebConst.DATABEAN_SET_VALUE, ipAddress);
		svcFormBean.sendMessageString(KKW00810SFConst.SUBNET_MASK, X31CWebConst.DATABEAN_SET_VALUE, netMask);
		
		//利用開始日をBeanにセット
		svcFormBean.sendMessageString(KKW00810SFConst.USE_STAYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, use_staymd_year);
		svcFormBean.sendMessageString(KKW00810SFConst.USE_STAYMD_MON, X31CWebConst.DATABEAN_SET_VALUE, use_staymd_mon);
		svcFormBean.sendMessageString(KKW00810SFConst.USE_STAYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, use_staymd_day);
		
		//サービス契約回線内訳番号
		String svc_kei_kaisen_ucwk_no = ipAddressBean.sendMessageString(KKW00810SFConst.SVC_KEI_KAISEN_UCWK_NO_02, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00810SFConst.SVC_KEI_KAISEN_UCWK_NO, X31CWebConst.DATABEAN_SET_VALUE, 
				svc_kei_kaisen_ucwk_no);
		
		//サービス契約内訳番号
		String svc_kei_ucwk_no = ipAddressBean.sendMessageString(KKW00810SFConst.SVC_KEI_UCWK_NO_02, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00810SFConst.SVC_KEI_UCWK_NO, X31CWebConst.DATABEAN_SET_VALUE, 
				svc_kei_ucwk_no);
		
		//世代登録年月日（サービス契約内訳番号）
		String kk0161_gene_add_dtm = ipAddressBean.sendMessageString(KKW00810SFConst.KK0161_GENE_ADD_DTM_02, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00810SFConst.KK0161_GENE_ADD_DTM, X31CWebConst.DATABEAN_SET_VALUE, kk0161_gene_add_dtm);
		
		// TG1-2013-0000421 2013/05/30 ADD START
		String svc_kei_ucwk_stat = ipAddressBean.sendMessageString(KKW00810SFConst.SVC_KEI_UCWK_STAT_02, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00810SFConst.SVC_KEI_UCWK_STAT, X31CWebConst.DATABEAN_SET_VALUE, svc_kei_ucwk_stat);
		// TG1-2013-0000421 2013/05/30 ADD END
	}
	
//	/**
//	 * 
//	 * @param ipAddress
//	 * @return
//	 */
//	private String calculateSubnetMask(String ipAddress)
//	{
//		String ret = null;
//
//		//１オクテット目を取得
//		String octet1 = ipAddress.substring(0, ipAddress.indexOf("."));
//		int firstOctet = Integer.parseInt(octet1);
//		
//		if (128 > firstOctet)			//Ａクラス
//		{
//			ret = "255.0.0.0";
//		}
//		else if (192 > firstOctet)		//Ｂクラス
//		{
//			ret = "255.255.0.0";
//		}
//		else							//Ｃクラス
//		{
//			ret = "255.255.255.0";
//		}
//
//		return ret;
//	}

	
	/**
	 * 確認画面初期表示処理
	 * @return 
	 * @throws Exception 
	 */
	private boolean actionInitKKW00811() throws Exception
	{
		return true;
	}
	
	/**
	 * 完了画面初期表示処理
	 * @return 
	 * @throws Exception 
	 */
	private boolean actionInitKKW00812() throws Exception
	{
		return true;
	}
	
	
	/**
	 * <pre>KKW00810固定グローバルＩＰアドレス情報登録画面
	 * 　登録ボタン押下時に項目のチェックを行います。
	 * </pre><br>
	 * <br>
	 * @return true/false
	 * @exception Exception
	 */
	public boolean action_Cfm() throws Exception
	{
		//サービス呼出
		doRegistFixedIPAddressOption(JPCModelConstant.FUNC_CD_2);

		//共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// DataBean設定処理
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW00811);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW00811);
		
		// メッセージ表示処理
		String[] str = { "固定グローバルIPアドレスの登録" };
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, str);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
		
	}
	
	/**
	 * <pre>KKW00811固定グローバルＩＰアドレス情報登録確認画面
	 * 　確定ボタン押下時にデータの登録を行います。
	 * </pre><br>
	 * @return true/false
	 * @exception Exception
	 */
	public boolean action_Fix() throws Exception
	{
		//サービス呼出
		doRegistFixedIPAddressOption(JPCModelConstant.FUNC_CD_1);

		//共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		///// DataBean設定処理 /////
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW00812);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW00812);
		
		///// メッセージ表示処理 /////
		String[] str = { "固定グローバルIPアドレスの登録" };
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4390__I, str);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
	}
	
	
	/**
	 * KKSV0023 固定グローバルＩＰアドレス情報登録サービス呼出処理
	 * 
	 * @param funcCode 機能コード
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private void doRegistFixedIPAddressOption(String func_code) throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();

		//更新前のサービスフォームBean編集
		configServiceFormBean(svcFormBean);

		{
			HashMap<String, Object> paramMap = new HashMap<String, Object>();
			HashMap<String, Object> inputMap = new HashMap<String, Object>();
			HashMap<String, Object> outputMap = new HashMap<String, Object>();
	
			// パラメータ設定処理
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SVC_ID_KKSV0023);
			paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, OP_ID_KKSV0023OP);
				
			// beanにマッピング用にbeanをセット
			X31SDataBeanAccess[] paramBean = {svcFormBean};
			
			///// マッピングクラス呼出処理（上り） /////
			// DataBean-BPマッピングクラス生成
			KKSV0023_KKSV0023OPDBMapper mapper = new KKSV0023_KKSV0023OPDBMapper();
			
// v7.00 MOD START
//			// TG1-2013-0000421 2013/05/30 ADD START
//			inputMap = mapper.setRECCHK(paramBean, inputMap, func_code);
//			// TG1-2013-0000421 2013/05/30 ADD END
//			// サービス契約一意照会マップ
//			inputMap = mapper.setKKSV002301SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
//			// お客様一意照会マップ
//			inputMap = mapper.setKKSV002302SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
//			// 申込内容承認登録マップ
//			inputMap = mapper.setKKSV002304SC(paramBean, inputMap, func_code);
//			// オプションサービス契約<ISP>登録マップ
//			inputMap = mapper.setKKSV002305SC(paramBean, inputMap, func_code);
//	//		// 即時適用（サービス契約．サービス開始日が過去日　かつ　利用開始日が当日）の場合のみ実行
//	//		if (use_staymd_dtm.equals(unyo_ymd)) 
//	//		{
//			// オプションサービス契約<ISP>照査締結マップ
//			inputMap = mapper.setKKSV002306SC(paramBean, inputMap, func_code);
//			// オプションサービス契約<ISP>開始マップ
//			inputMap = mapper.setKKSV002307SC(paramBean, inputMap, func_code);
//			// 申込明細照査・後続業務依頼マップ
//			inputMap = mapper.setKKSV002308SC(paramBean, inputMap, func_code);
//	//		}
//			// 固定ＩＰアドレス払出マップ
//			inputMap = mapper.setKKSV002201CC(paramBean, inputMap, func_code);
//			// 進捗情報登録マップ
//			inputMap = mapper.setKKSV002310SC(paramBean, inputMap, func_code);
//			//オーダ発行条件登録
//			inputMap = mapper.setKKSV002311SC(paramBean, inputMap, func_code);
//			//オーダ情報作成ワーク登録
//			inputMap = mapper.setKKSV002312SC(paramBean, inputMap, func_code);
			
			
			// 部品化
			inputMap = mapper.setJKKGlobalIpAddCfmCC(paramBean, inputMap, func_code);
			
// v7.00 MOD END
			
//			//IT1-2011-0000178対応、サービス契約内訳一覧照会SC
//			inputMap = mapper.setKKSV002313SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
			
// ▼割引サービス自動適用CC不具合の為、コメントアウト
			/*-- 【START】割引変更メッセージ対応 --*/
			// 割引サービス自動適用CC
//			inputMap = mapper.setWrisvcAutoAplyCC(paramBean, inputMap, func_code);
			/*-- 【END】割引変更メッセージ対応 --*/
// ▲割引サービス自動適用CC不具合の為、コメントアウト
			
			// サービス呼出処理
			invokeService(paramMap, inputMap, outputMap);
			
			mapper.getKKSV002304SC(paramBean, outputMap);	//登録した申込番号の取得
			mapper.getKKSV002310SC(paramBean, outputMap);	//登録した進捗番号の取得
			
			/*-- 【START】割引変更メッセージ対応 --*/
			if (JKKCommonConst.FUNC_CODE_1.equals(func_code)){
				ArrayList<HashMap<String, Object>> msgList = null;
				HashMap<String, Object> warisvcMap = null;
				
				if(outputMap.containsKey("WrisvcAutoAplyCC")){
					warisvcMap = (HashMap<String, Object>)outputMap.get("WrisvcAutoAplyCC");
				}
				
				if(warisvcMap != null) {
					msgList = (ArrayList<HashMap<String, Object>>)warisvcMap.get("msg_list");
				}
				// メッセージ登録部品呼び出し
				JKKSetSessionMessage.setSessionMessage(this, msgList);
			}
			/*-- 【END】割引変更メッセージ対応 --*/
		}
	}

	
	/**
	 * 
	 * @param svcFormBean
	 */
	private void configServiceFormBean(X31SDataBeanAccess svcFormBean)
	{
//		//サービス契約一意照会明細
//		X31SDataBeanAccess kk0081Bean = svcFormBean.getDataBeanArray(KKW00810SFConst.EKK0081A010CBSMSG1LIST).getDataBean(0);
//
//		//請求契約一覧照会明細
//		X31SDataBeanAccess kk0491Bean = null;
//		X31SDataBeanAccessArray kk0491Arr = svcFormBean.getDataBeanArray(KKW00810SFConst.EKK0491B030CBSMSG1LIST);
//		for (int i = 0; i < kk0491Arr.getCount(); i ++)
//		{
//			kk0491Bean = kk0491Arr.getDataBean(i);
//			String seiky_kei_stat = kk0491Bean.sendMessageString(KKW00810SFConst.SEIKY_KEI_STAT_03, X31CWebConst.DATABEAN_GET_VALUE);
//			if (SEIKY_KEI_STAT.equals(seiky_kei_stat))
//			{
//				break;
//			}
//		}

		//固定ＩＰアドレス一意照会明細
		X31SDataBeanAccess kk0101Bean = svcFormBean.getDataBeanArray(KKW00810SFConst.FIXIPAD_HRADSI_LIST).getDataBean(0);

		unyo_ymd = JCCWebCommon.getOpeDate(this, null);
// 2012/08/10 TAI-2012-0000061 del start
//		String unyoTm = (new SimpleDateFormat("HHmmssSSS")).format(Calendar.getInstance().getTime());
// 2012/08/10 TAI-2012-0000061 del end
// 2012/08/10 TAI-2012-0000061 add start
		// システム日付時分秒
		String unyoTm = JCCWebCommon.getSysDateTimeStamp(); // システム日付YYYYMMDDhhmmssSSS形式
		unyoTm = unyoTm.substring(8); // hhmmssSSSのみ切り出し
// 2012/08/10 TAI-2012-0000061 add end
		unyo_dtm = unyo_ymd + unyoTm;

		//利用年月日をbeanに格納
		String use_staymd_year = svcFormBean.sendMessageString(KKW00810SFConst.USE_STAYMD_YEAR, X31CWebConst.DATABEAN_GET_VALUE);
		String use_staymd_mon = svcFormBean.sendMessageString(KKW00810SFConst.USE_STAYMD_MON, X31CWebConst.DATABEAN_GET_VALUE);
		String use_staymd_day = svcFormBean.sendMessageString(KKW00810SFConst.USE_STAYMD_DAY, X31CWebConst.DATABEAN_GET_VALUE);
		long monVal = Long.parseLong(use_staymd_mon);
		long dayVal = Long.parseLong(use_staymd_day);
		DecimalFormat fmt = new DecimalFormat("00");
		use_sta_ymd = use_staymd_year + fmt.format(monVal) + fmt.format(dayVal);
		svcFormBean.sendMessageString(KKW00810SFConst.USE_STA_YMD, X31CWebConst.DATABEAN_SET_VALUE, use_sta_ymd);

		//利用開始年月日時分秒
		svcFormBean.sendMessageString(KKW00810SFConst.USE_STA_DTM, X31CWebConst.DATABEAN_SET_VALUE, 
				use_sta_ymd + "000000000");

		//課金開始年月日
		svcFormBean.sendMessageString(KKW00810SFConst.CHRG_STA_YMD, X31CWebConst.DATABEAN_SET_VALUE, use_sta_ymd);

		// 運用年月日
		svcFormBean.sendMessageString(KKW00810SFConst.UNYO_YMD, X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd);

		// 運用年月日時分秒
		svcFormBean.sendMessageString(KKW00810SFConst.UNYO_DTM, X31CWebConst.DATABEAN_SET_VALUE, unyo_dtm);

		//集約局コード
		String str = kk0101Bean.sendMessageString(KKW00810SFConst.SHYAKK_CHUSKK_CD_02, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00810SFConst.SHYAKK_CD, X31CWebConst.DATABEAN_SET_VALUE, str);

		//固定ＩＰ取得種別コード
		str = kk0101Bean.sendMessageString(KKW00810SFConst.KOTEI_IP_STKU_SBT_CD_02, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00810SFConst.KOTEI_IP_STKU_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, str);

		//使用回数
		str = kk0101Bean.sendMessageString(KKW00810SFConst.USE_CNT_02, X31CWebConst.DATABEAN_GET_VALUE);
		int useCnt = Integer.parseInt(str) + 1;
		svcFormBean.sendMessageString(KKW00810SFConst.USE_CNT, X31CWebConst.DATABEAN_SET_VALUE, 
				String.valueOf(useCnt));

		//ＺＭ０１０１更新年月日時分秒
		str = kk0101Bean.sendMessageString(KKW00810SFConst.ZM0101_UPD_DTM_02, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00810SFConst.ZM0101_UPD_DTM, X31CWebConst.DATABEAN_SET_VALUE, str);

		//申込種別コード
		svcFormBean.sendMessageString(KKW00810SFConst.MSKM_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, 
				JKKCommonConst.MSKM_SBT_CD_VALUE_00026);
		
		X31SDataBeanAccessArray kk0021Arr = svcFormBean.getDataBeanArray(KKW00810SFConst.EKK0011D020CBSMSG1LIST);
		X31SDataBeanAccess kk0021Bean = kk0021Arr.addDataBean();
// 2014/09/08 IT1-2014-0000303 MOD start
//		kk0021Bean.sendMessageString(KKW00810SFConst.MSKM_FORM_CD_05, X31CWebConst.DATABEAN_SET_VALUE, "00");
		kk0021Bean.sendMessageString(KKW00810SFConst.MSKM_FORM_CD_05, X31CWebConst.DATABEAN_SET_VALUE, "");
// 2014/09/08 IT1-2014-0000303 MOD end
		kk0021Bean.sendMessageString(KKW00810SFConst.MSKM_DTL_SBT_CD_05, X31CWebConst.DATABEAN_SET_VALUE, "000");
		kk0021Bean.sendMessageString(KKW00810SFConst.MSKM_ROUTE_CD_05, X31CWebConst.DATABEAN_SET_VALUE, "0000000");

		//オプションサービスコード
		svcFormBean.sendMessageString(KKW00810SFConst.OP_SVC_CD, X31CWebConst.DATABEAN_SET_VALUE, 
				JKKCommonConst.OP_SVC_CD_VALUE_0040);

		//料金コースコード
//		str = kk0081Bean.sendMessageString(KKW00810SFConst.PCRS_CD_04, X31CWebConst.DATABEAN_GET_VALUE);
		str = JKKCommonConst.PCRS_CD_B04;
		svcFormBean.sendMessageString(KKW00810SFConst.PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, str);

		//料金プランコード
//		str = kk0081Bean.sendMessageString(KKW00810SFConst.PPLAN_CD_04, X31CWebConst.DATABEAN_GET_VALUE);
		str = PPLAN_CD_PB0401;
		svcFormBean.sendMessageString(KKW00810SFConst.PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE, str);

		// OT-2013-0000223 2013/03/04 MOD START
		//親契約識別コード
//		svcFormBean.sendMessageString(KKW00810SFConst.OYA_KEI_SKBT_CD, X31CWebConst.DATABEAN_SET_VALUE, 
//				OYA_KEI_SKBT_CD_01);
		svcFormBean.sendMessageString(KKW00810SFConst.OYA_KEI_SKBT_CD, X31CWebConst.DATABEAN_SET_VALUE, 
				OYA_KEI_SKBT_CD_03);
		// OT-2013-0000223 2013/03/04 MOD END

//		if (null != kk0491Bean)
//		{
//			//請求契約番号
//			str = kk0491Bean.sendMessageString(KKW00810SFConst.SEIKY_KEI_NO_03, X31CWebConst.DATABEAN_GET_VALUE);
//			svcFormBean.sendMessageString(KKW00810SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, str);
//	
//			//請求方法番号（口座）
//			str = kk0491Bean.sendMessageString(KKW00810SFConst.SEIKY_WAY_NO_KOZA_03, X31CWebConst.DATABEAN_GET_VALUE);
//			svcFormBean.sendMessageString(KKW00810SFConst.SEIKY_WAY_NO_KOZA, X31CWebConst.DATABEAN_SET_VALUE, str);
//
//			//請求方法番号（クレジットカード）
//			str = kk0491Bean.sendMessageString(KKW00810SFConst.SEIKY_WAY_NO_CRECARD_03, X31CWebConst.DATABEAN_GET_VALUE);
//			svcFormBean.sendMessageString(KKW00810SFConst.SEIKY_WAY_NO_CRECARD, X31CWebConst.DATABEAN_SET_VALUE, str);
//		}
//
//		//エイジング種別コード
//		svcFormBean.sendMessageString(KKW00810SFConst.AGING_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, 
//				AGING_SBT_CD_002);

		// 進捗ステータス ＝ オプション設定完了
		if (unyo_ymd.equals(use_sta_ymd))
		{
			svcFormBean.sendMessageString(KKW00810SFConst.PRG_STAT, X31CWebConst.DATABEAN_SET_VALUE, PRG_STAT_CD_5102);
		}

		// 進捗ステータス ＝ オプション情報申請中
		else
		{
			svcFormBean.sendMessageString(KKW00810SFConst.PRG_STAT, X31CWebConst.DATABEAN_SET_VALUE, PRG_STAT_CD_5101);
		}
		
		// 2012/10/16 [ANK-1223-00-00]進捗補足事項編集対応 ADD START
		// 進捗特記事項１
		svcFormBean.sendMessageString(KKW00810SFConst.PRG_TKJK_1, X31CWebConst.DATABEAN_SET_VALUE, PRG_TKJK_1_VAL_KTIIPADR_INFO_ADD);
		// 2012/10/16 [ANK-1223-00-00]進捗補足事項編集対応 ADD END
		
	}

	/**
	 * <pre>KKW00811固定グローバルＩＰアドレス情報登録確認画面
	 * 　修正ボタン押下時に遷移元画面の処理を行います。
	 * </pre><br>
	 * @return true/false
	 * @exception Exception
	 */
	public boolean action_Syuse() throws Exception
	{
		//共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// 共有フォームBean設定（遷移先画面ID）
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW00810);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW00810);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
	}
	
	/**
	 * <pre>KKW00812固定グローバルＩＰアドレス情報登録完了画面
	 * 完了ボタン押下時にオプションサービス契約一覧照会画面に遷移を行います。
	 * </pre><br>
	 * @return true/false
	 * @exception Exception
	 */
	public boolean action_Fin() throws Exception
	{
		//共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// 共有フォームBean設定（遷移先画面ID）
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, SCREEN_ID_KKW02301);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, SCREEN_NM_KKW02301);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
	}

	/**
	 * <pre>KKW00810固定グローバルＩＰアドレス情報登録画面
	 * 　遷移元画面に戻る処理を行います。
	 * </pre><br>
	 * @return true/false
	 */
	public boolean action_Back()
	{
		
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getScreenId(this));
		
		return true;
	}



//	/**	
//	 * <dd>メソッド名：引継情報データマップ取得
//	 * <dd>メソッド説明：引数のサービスフォームBeanより引継情報データマップの生成を行う。
//	 * <dd>備考：引継情報データタイプの可変項目はString[]のみ対応。
//	 * @param bean サービスフォームBean
//	 * @param hktgiKey 引継情報データタイプのキー
//	 * @param hktgiPrmKeys 引継情報データタイプの項目キーリスト	
//	 * @return HashMap<String, Object> 引継情報データマップ
//	 */
//	private HashMap<String, Object> getHktgiDataMap(X31SDataBeanAccess bean, String hktgiKey , String[] hktgiPrmKeys)
//	{
//		HashMap<String, Object> dataMap = new HashMap<String, Object>();
//		List<HashMap<String, Object>> dataList = new ArrayList<HashMap<String, Object>>();
//
//		X31SDataBeanAccessArray infList =  bean.getDataBeanArray(hktgiKey);
//		for (int i = 0 ; i < infList.getCount() ; i++)
//		{
//			HashMap<String, Object> inMap = new HashMap<String, Object>();
//
//			X31SDataBeanAccess inf = infList.getDataBean(i);
//			for (int j = 0 ; j < hktgiPrmKeys.length ; j++)	
//			{
//				try
//				{
//					inMap.put(hktgiPrmKeys[j], inf.sendMessageObject(hktgiPrmKeys[j], X31CWebConst.DATABEAN_GET_VALUE));
//				}
//				catch (X31SRuntimeException ex)	
//				{
//					// 可変項目の場合(String[]のみ対応)	
//					int length = (Integer)inf.sendMessage(hktgiPrmKeys[j], X31CWebConst.DATABEAN_GET_COUNT);
//					String[] obj = new String[length];
//					for (int k = 0 ; k < length ; k++)
//					{
//						obj[k] = inf.sendMessageString(hktgiPrmKeys[j], X31CWebConst.DATABEAN_GET_VALUE, k);
//					}
//					inMap.put(hktgiPrmKeys[j], obj);
//				}
//			}
//			dataList.add(inMap);
//		}
//		dataMap.put(hktgiKey, dataList);
//
//		return dataMap;	
//	}
	
	/**	
	 * 引き継ぎ情報を取得し、サービスフォームBeanに設定する	
	 * @param  svcFormBean  DataBeanアクセスクラス	
	 * @throws Exception 	
	 */	
	public void initServiceFormBean(X31SDataBeanAccess svcFormBean) throws Exception	
	{
		//運用日
		unyo_ymd = JCCWebCommon.getOpeDate(this, null);
		svcFormBean.sendMessageString(KKW00810SFConst.UNYO_YMD, X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd);


		///サービスフォームBeanから顧客契約引継リストを取得
		X31SDataBeanAccessArray obj = svcFormBean.getDataBeanArray(KKW00810SFConst.CUST_KEI_HKTGI_LIST);
		
		//上記のリストから１要素を設定
		X31SDataBeanAccess bean = obj.getDataBean(0);
				
		String str = null;

		//SYSIDの移し替え
		str = bean.sendMessageString(KKW00810SFConst.SYSID_01, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00810SFConst.SYSID, X31CWebConst.DATABEAN_SET_VALUE, str);
				
		//異動区分の移し替え
		str = bean.sendMessageString(KKW00810SFConst.IDO_DIV_01, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00810SFConst.IDO_DIV, X31CWebConst.DATABEAN_SET_VALUE, str);
		
		//サービス契約番号の移し替え
		str = bean.sendMessageString(KKW00810SFConst.SVC_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00810SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, str);
		
		// ▼異動理由メモ対応 Start
		String ido_rsn_memo = bean.sendMessageString(KKW00810SFConst.IDO_RSN_MEMO_01, X31CWebConst.DATABEAN_GET_VALUE);
		// ▲異動理由メモ対応 End
		
		//異動理由コードを進捗登録S-IFの異動理由明細へと移し替え
		X31SDataBeanAccessArray ekk1091d010Arr = svcFormBean.getDataBeanArray(KKW00810SFConst.EKK1091D010CBSMSG1LIST);
		ekk1091d010Arr.clearArray();
		Integer maxIndex = (Integer)bean.sendMessage(KKW00810SFConst.IDO_RSN_CD_01, X31CWebConst.DATABEAN_GET_COUNT);
		for(int i = 0 ; i < maxIndex; i ++)
		{
			X31SDataBeanAccess ekk1091d010dtlBean = ekk1091d010Arr.addDataBean();

			String ido_rsn_cd = bean.sendMessageString(KKW00810SFConst.IDO_RSN_CD_01, X31CWebConst.DATABEAN_GET_VALUE, i);
			ekk1091d010dtlBean.sendMessageString(KKW00810SFConst.IDO_RSN_CD_06, X31CWebConst.DATABEAN_SET_VALUE, 
					ido_rsn_cd);
			// ▼異動理由メモ対応 Start
			ekk1091d010dtlBean.sendMessageString(KKW00810SFConst.IDO_RSN_MEMO_06, X31CWebConst.DATABEAN_SET_VALUE, 
					ido_rsn_memo);
			// ▲異動理由メモ対応 End
		}
		
//		//オプションサービス契約番号の移し変え
//		maxIndex = (Integer)bean.sendMessage(KKW00810SFConst.OP_SVC_KEI_NO_02, X31CWebConst.DATABEAN_GET_COUNT);
//		for(int i = 0 ; i < maxIndex.intValue(); i ++){
//			svcFormBean.sendMessageString(
//					KKW00810SFConst.OP_SVC_KEI_NO,
//					X31CWebConst.DATABEAN_ADD_VALUE, 
//					i, 
//					bean.sendMessageString(KKW00810SFConst.OP_SVC_KEI_NO_02, X31CWebConst.DATABEAN_GET_VALUE, i)
//					);
//		}
//		
//		//処理区分の移し変え
//		str = bean.sendMessageString(KKW00810SFConst.TRAN_DIV_02, X31CWebConst.DATABEAN_GET_VALUE);
//		svcFormBean.sendMessageString(KKW00810SFConst.TRAN_DIV, X31CWebConst.DATABEAN_SET_VALUE, str);
//		
//		//申込番号の移し変え
//		str = bean.sendMessageString(KKW00810SFConst.MSKM_NO_02, X31CWebConst.DATABEAN_GET_VALUE);
//		svcFormBean.sendMessageString(KKW00810SFConst.MSKM_NO, X31CWebConst.DATABEAN_SET_VALUE, str);
//		
//		//申込明細番号の移し変え
//		str = bean.sendMessageString(KKW00810SFConst.MSKM_DTL_NO_02, X31CWebConst.DATABEAN_GET_VALUE);
//		svcFormBean.sendMessageString(KKW00810SFConst.MSKM_DTL_NO, X31CWebConst.DATABEAN_SET_VALUE, str);
//		
//		//特定ID項目名の移し変え
//		str = bean.sendMessageString(KKW00810SFConst.TOKUTEI_ID_KMK_NM_02, X31CWebConst.DATABEAN_GET_VALUE);
//		svcFormBean.sendMessageString(KKW00810SFConst.TOKUTEI_ID_KMK_NM, X31CWebConst.DATABEAN_SET_VALUE, str);
//		
//		//特定ID項目値の移し変え
//		str = bean.sendMessageString(KKW00810SFConst.TOKUTEI_ID_KMK_VALUE_02, X31CWebConst.DATABEAN_GET_VALUE);
//		svcFormBean.sendMessageString(KKW00810SFConst.TOKUTEI_ID_KMK_VALUE, X31CWebConst.DATABEAN_SET_VALUE, str);
//
		//固定ＩＰ取得識別コード
		//サービス内で、サービス契約の料金コースに応じて設定する

//		//エイジングステータス
//		svcFormBean.sendMessageString(KKW00810SFConst.AGING_STAT, X31CWebConst.DATABEAN_SET_VALUE, AGING_STAT_NONE);
	}
	


}
