/*********************************************************************
 * All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *   システム名      ：契約管理システム
 *   モジュール名    ：オプション引継
 *   ソースファイル名：KKW02201SFLogic.java
 *   作成者          ：富士通
 *   日付            ：2011年11月11日
 *＜機能概要＞
 *   
 *＜修正履歴＞
 *   バージョン  修正日       修正者      修正内容
 *   v1.00.00    2011/11/11   FJ          新規作成
 *   v4.00.00    2012/ 9/27   FJ          ANK-0397-00-00 申込書番号の発番検討における対応について（申込書番号入力可能へ）
 *   v4.00.00    2012/ 9/27   FJ          ANK-0571-00-00 オプションサービス開始日変更対応
 *  v32.00.00    2017/05/26   FJ)三原     ANK-3149-08-00 新セキュリティパック導入(オプション引継でのセキュリティーパック引継)
 *  v71.00.00    2024/04/22   FJ)渋谷     ANK-4468-00-00 eo光ネット「シンプルプラン」追加対応
 **********************************************************************/
package eo.web.webview.KKW02201SF;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.common.JSYwebLog;
import com.fujitsu.futurity.model.base.jcc.util.JCCDateUtil;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;
import com.fujitsu.futurity.web.x31.X31SRuntimeException;

import eo.common.constant.JKKStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JKKCommonUtil;
import eo.common.util.JKKStringUtil;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.KKW00127SF.KKW00127SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JCKScreenConst;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.mapping.KKSV0222_KKSV0222OPDBMapper;
import eo.web.webview.mapping.KKSV0223_KKSV0223OPDBMapper;
import eo.web.webview.mapping.KKSV0564_KKSV0564OPDBMapper;

/**
 * 
 * <BR>
 * 
 * @author 富士通
 */
@SuppressWarnings("serial")
public class KKW02201SFLogic extends JCCWebBusinessLogic
{

	/**
	 * 初期表示処理を行います。 <br>
	 * 
	 * @return true:正常
	 * @exception Exception
	 */
	public boolean actionInit() throws Exception
	{
		// 引き継ぎの情報MAPを取得する。
		JCCWebCommon.getScreenInfo(this);

		// サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();

// IT2-2012-0000585 2012/05/14 add strat
		// 共通Bean アクセスクラスの取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
// IT2-2012-0000585 2012/05/14 add end

		// 引継ぎ情報を移動
		X31SDataBeanAccessArray custKeiHktgList = svcFormBean.getDataBeanArray(KKW02201SFConst.CUST_KEI_HKTGI_LIST);
		String svcKeiNo = custKeiHktgList.getDataBean(0).sendMessageString(KKW02201SFConst.SVC_KEI_NO_01,
				X31CWebConst.DATABEAN_GET_VALUE);
		String sysId = custKeiHktgList.getDataBean(0).sendMessageString(KKW02201SFConst.SYSID_01,
				X31CWebConst.DATABEAN_GET_VALUE);
		
// UI残65_異動理由の要否について 2012/05/14 ariyoshi strat
		
		X31SDataBeanAccess custKeiHktgiInf = custKeiHktgList.getDataBean(0);
		
		//異動理由明細
		X31SDataBeanAccessArray cdArr = svcFormBean.getDataBeanArray(KKW02201SFConst.IDO_RSN_CD_LIST);
		cdArr.clearArray();
		Integer maxIndex = (Integer)custKeiHktgiInf.sendMessage(KKW02201SFConst.IDO_RSN_CD_01, X31CWebConst.DATABEAN_GET_COUNT);

		for (int i=0; i<maxIndex; i++)
		{
			X31SDataBeanAccess bean = cdArr.addDataBean();		//異動理由明細
			
			//異動理由コード
			String idoRsnCode = custKeiHktgiInf.sendMessageString(KKW02201SFConst.IDO_RSN_CD_01, X31CWebConst.DATABEAN_GET_VALUE, i);
			bean.sendMessageString(KKW02201SFConst.IDO_RSN_CD_01, X31CWebConst.DATABEAN_SET_VALUE, idoRsnCode);
			
			//異動理由メモ
			String idoRsnMemo = custKeiHktgiInf.sendMessageString(KKW02201SFConst.IDO_RSN_MEMO_01, X31CWebConst.DATABEAN_GET_VALUE);
			bean.sendMessageString(KKW02201SFConst.IDO_RSN_MEMO_01, X31CWebConst.DATABEAN_SET_VALUE, idoRsnMemo);
		}
// UI残65_異動理由の要否について 2012/05/14 ariyoshi end
		
		svcFormBean.sendMessageString(KKW02201SFConst.HIKISAKI_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, svcKeiNo);
		svcFormBean.sendMessageString(KKW02201SFConst.HIKIMOTO_SYSID, X31CWebConst.DATABEAN_SET_VALUE, sysId);
		svcFormBean.sendMessageString(KKW02201SFConst.HIKISAKI_SYSID, X31CWebConst.DATABEAN_SET_VALUE, sysId);

		searchHktgInfo(svcFormBean, true);

		// ANK-4468-00-00 MOD START
//		String unyoYmd = JCCWebCommon.getOpeDate(this, null);
//		setString(svcFormBean, KKW02201SFConst.HIKISAKI_APLY_Y, unyoYmd.substring(0, 4));
//		setString(svcFormBean, KKW02201SFConst.HIKISAKI_APLY_M, unyoYmd.substring(4, 6));
//		setString(svcFormBean, KKW02201SFConst.HIKISAKI_APLY_D, unyoYmd.substring(6, 8));
		String aplyYmd = null;
		String HikiSaki_Svc_Kei_Stat = svcFormBean.sendMessageString(KKW02201SFConst.HIKISAKI_SVC_KEI_STAT_CD, X31CWebConst.DATABEAN_GET_VALUE);
		String Nrkemt_Svc_Kei_No = svcFormBean.sendMessageString(KKW02201SFConst.NRKEMT_SVC_KEI_STAT_CD, X31CWebConst.DATABEAN_GET_VALUE);
		// 乗換先契約以外かつサービス契約ステータスがサービス契約のステータスが照査済、締結済以外場合
		if(!JKKStringUtil.isNullBlank(Nrkemt_Svc_Kei_No) 
				&& (JKKCommonConst.SVC_KEI_STAT_020.equals(HikiSaki_Svc_Kei_Stat)|| JKKCommonConst.SVC_KEI_STAT_030.equals(HikiSaki_Svc_Kei_Stat)))
		{
			aplyYmd = JKKCommonConst.MAX_YMD;
		}
		else
		{
			aplyYmd = JCCWebCommon.getOpeDate(this, null);
		}
		setString(svcFormBean, KKW02201SFConst.HIKISAKI_APLY_Y, aplyYmd.substring(0, 4));
		setString(svcFormBean, KKW02201SFConst.HIKISAKI_APLY_M, aplyYmd.substring(4, 6));
		setString(svcFormBean, KKW02201SFConst.HIKISAKI_APLY_D, aplyYmd.substring(6, 8));
		// ANK-4468-00-00 MOD END
// IT2-2012-0000585 2012/05/14 add strat
		// 運用年月日の取得
		// ANK-4468-00-00 MOD START
//		setString(svcFormBean, KKW02201SFConst.UNYO_YMD, aplyYmd);
		setString(svcFormBean, KKW02201SFConst.UNYO_YMD, JCCWebCommon.getOpeDate(this, null));
		// ANK-4468-00-00 MOD END

		if (!JKKScreenConst.SCREEN_ID_KKW02201.equals(JCCWebCommon.getScreenId(this)))
		{
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW02201);
		}
// IT2-2012-0000585 2012/05/14 add end
		
		//↓↓↓2012-12-05追加　ロット２IT2-2012-0001894（申込番号、受付番号をリセットする対応）↓↓↓
		setString(svcFormBean, KKW02201SFConst.MSKMSHO_NO, "");
		setString(svcFormBean, KKW02201SFConst.MSKMSHO_DTL_NO, "");
		//↑↑↑2012-12-05追加　ロット２IT2-2012-0001894（申込番号、受付番号をリセットする対応）↑↑↑
		
		return true;
	}

	/**
	 * @return
	 * @throws Exception
	 */
	public boolean actionSearch() throws Exception
	{
		// サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		searchHktgInfo(svcFormBean, true);
		return true;
	}

	/**
	 * @return
	 * @throws Exception
	 */
	public boolean actionSort() throws Exception
	{
		boolean isAsc = true;
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		searchHktgInfo(svcFormBean, isAsc);
		return true;
	}

	/**
	 * @return
	 * @throws Exception
	 */
	public boolean actionUpdCfm() throws Exception
	{
		// サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();

		// ユースケースID格納用のHashMap
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// サービスパラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV0223);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, JKKCommonConst.OPID_KKSV0223OP);
// IT2-2012-0000585 2012/05/14 mod strat
		X31SDataBeanAccessArray svcInfoList = svcFormBean.getDataBeanArray(KKW02201SFConst.HIKIMOTO_SVC_INFO);
		String selectSvc = svcFormBean.sendMessageString(KKW02201SFConst.HIKIMOTO_SVC_INFO_CHOICE,
				X31CWebConst.DATABEAN_GET_VALUE);

		String hikimotoSvcKeiStat = null;
		String hikisakiSvcKeiStat = svcFormBean.sendMessageString(KKW02201SFConst.HIKISAKI_SVC_KEI_STAT_CD,
				X31CWebConst.DATABEAN_GET_VALUE);
		String aplyYmd = svcFormBean.sendMessageString(KKW02201SFConst.HIKISAKI_APLY_Y,X31CWebConst.DATABEAN_GET_VALUE)
				+ svcFormBean.sendMessageString(KKW02201SFConst.HIKISAKI_APLY_M, X31CWebConst.DATABEAN_GET_VALUE)
				+ svcFormBean.sendMessageString(KKW02201SFConst.HIKISAKI_APLY_D, X31CWebConst.DATABEAN_GET_VALUE);
		String unyoYmd = JCCWebCommon.getOpeDate(this, null);
// IT2-2012-0000585 2012/05/14 mod end

		if (selectSvc != null && !"".equals(selectSvc))
		{
			int selectSvcIdx = Integer.parseInt(selectSvc);
			for (int i = 0; i < svcInfoList.getCount().intValue(); i++)
			{
// IT2-2012-0000585 2012/05/14 mod strat
				if (i == selectSvcIdx)
// IT2-2012-0000585 2012/05/14 mod end
				{
					X31SDataBeanAccess svcInfo = svcInfoList.getDataBean(i);
					svcFormBean.sendMessageString(KKW02201SFConst.HIKIMOTO_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE,
							svcInfo.sendMessageString(KKW02201SFConst.SVC_KEI_NO_02, X31CWebConst.DATABEAN_GET_VALUE));
// IT2-2012-0000585 2012/05/14 add strat
					svcFormBean.sendMessageString(KKW02201SFConst.HIKIMOTO_SVC_KEI_UCWK_NO, X31CWebConst.DATABEAN_SET_VALUE,
							svcInfo.sendMessageString(KKW02201SFConst.SVC_KEI_UCWK_NO_02, X31CWebConst.DATABEAN_GET_VALUE));
					svcFormBean.sendMessageString(KKW02201SFConst.HIKIMOTO_PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE,
							svcInfo.sendMessageString(KKW02201SFConst.PCRS_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
					hikimotoSvcKeiStat = svcInfo.sendMessageString(KKW02201SFConst.SVC_KEI_STAT_CD_02, X31CWebConst.DATABEAN_GET_VALUE);
// IT2-2012-0000585 2012/05/14 add end
					break;
				}
			}
		}

		List<Map<String, Object>> opList = new ArrayList<Map<String,Object>>();
		X31SDataBeanAccessArray opSvcInfoList = svcFormBean.getDataBeanArray(KKW02201SFConst.HIKIMOTO_OPTION_SVC_INFO);
		for (int i = 0; i < opSvcInfoList.getCount().intValue(); i++)
		{
			X31SDataBeanAccess opSvcInfo = opSvcInfoList.getDataBean(i);
			boolean isChecked = opSvcInfo.sendMessageBoolean(KKW02201SFConst.CHOICE_03, X31CWebConst.DATABEAN_GET_VALUE);
			if (isChecked) {
				Map<String, Object> map = new HashMap<String, Object>();
				map.put("op_svc_cd", getString(opSvcInfo, KKW02201SFConst.OP_SVC_CD_03));
				map.put("op_svc_nm", getString(opSvcInfo, KKW02201SFConst.OP_SVC_NM_03));
				map.put("op_svc_kei_no", getString(opSvcInfo, KKW02201SFConst.OP_SVC_KEI_NO_03));
				map.put("mlad", getString(opSvcInfo, KKW02201SFConst.MLAD_03));
				map.put("url", getString(opSvcInfo, KKW02201SFConst.URL_03));
				map.put("mllist_nm", getString(opSvcInfo, KKW02201SFConst.MLLIST_NM_03));
				map.put("kotei_ip_ad", getString(opSvcInfo, KKW02201SFConst.KOTEI_IP_AD_03));
				map.put("netmask", getString(opSvcInfo, KKW02201SFConst.NETMASK_03));
				map.put("capa", getString(opSvcInfo, KKW02201SFConst.CAPA_03));
				map.put("vi_ck_umu", getString(opSvcInfo, KKW02201SFConst.VI_CK_UMU_03));
				map.put("pcrs_cd", getString(opSvcInfo, KKW02201SFConst.PCRS_CD_03));
				map.put("op_svc_kei_rvc_flg", getString(opSvcInfo, KKW02201SFConst.OP_SVC_KEI_RVC_FLG_03));
				map.put("op_svc_kei_stat", getString(opSvcInfo, KKW02201SFConst.OP_SVC_KEI_STAT_03));
				opList.add(map);
			}
		}
// IT2-2012-0000585 2012/05/14 add strat
		//ANK-3149-08-00 ADD START
		boolean optionPackChoice;
		if((svcFormBean.sendMessageBoolean(KKW02201SFConst.OPTION_PACK_CHOICE,X31CWebConst.DATABEAN_GET_VALUE)).equals("")){
			optionPackChoice = false;
		}
		else{
			optionPackChoice = svcFormBean.sendMessageBoolean(KKW02201SFConst.OPTION_PACK_CHOICE,X31CWebConst.DATABEAN_GET_VALUE);
		}
		
		//引継元と引継先にセキュリティーパックがある場合、マカフィーの上限数でエラーを出す
		boolean hikisaki_sequPackUm = false;
		String HikiSaki_Wrib_Svc_Kei_Stat_Nm = svcFormBean.sendMessageString(KKW02201SFConst.HIKISAKI_WRIB_SVC_KEI_STAT_NM, X31CWebConst.DATABEAN_GET_VALUE);
		String HikiSaki_Wrib_Svc_Cd_Nm = svcFormBean.sendMessageString(KKW02201SFConst.HIKISAKI_WRIB_SVC_CD_NM, X31CWebConst.DATABEAN_GET_VALUE);
		
		if( ! HikiSaki_Wrib_Svc_Kei_Stat_Nm.equals("") && !HikiSaki_Wrib_Svc_Cd_Nm.equals("") ) {
			hikisaki_sequPackUm = true;
		}
		
		if(optionPackChoice && hikisaki_sequPackUm){
			// 引継元でセキュリティーパックが選択されているかつ引継先にセキュリティーパックを持っている場合
			// メッセージ表示処理
			String[] arg =
			{
					"引継先で、登録可能なオプション登録数をオーバーする","登録"
			};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0930_NW, arg);
			return false;
		}
		//ANK-3149-08-00 ADD END
		//ANK-3149-08-00 MOD START
		//if (opList.size() == 0){
		if (opList.size() == 0 && !optionPackChoice){
		//ANK-3149-08-00 MOD END
		// メッセージ表示処理
			String[] arg =
			{
					"引継対象オプション"
			};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB1320_NW, arg);
			return false;
		}
		if (JKKCommonUtil.isFutureDate(aplyYmd, unyoYmd, "0") &&
				(JKKCommonConst.SVC_KEI_STAT_010.equals( hikisakiSvcKeiStat) ||
						JKKCommonConst.SVC_KEI_STAT_010.equals( hikimotoSvcKeiStat))){
			// 未来日適用かつ、引継元、先共に未照査の場合
			// メッセージ表示処理
			String[] arg =
			{
					"契約状態","未照査","未来日適用"
			};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0290_JW, arg);
			return false;
		}
// IT2-2012-0000585 2012/05/14 add end
		//ANK-3149-08-00 ADD START
		if(JKKCommonUtil.isFutureDate(aplyYmd, unyoYmd, "0") && optionPackChoice) {
			// 未来日適用かつ、引継元でセキュリティーパックが選択されている場合
			// メッセージ表示処理
			String[] arg =
			{
					"適用開始年月日が未来日の","オプションパックの引継"
			};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0930_NW, arg);
			return false;
		}
		//ANK-3149-08-00 ADD END

		// 2012/07/03 IT2-2012-0001104 DEL START チェック処理後に処理を移動
//		X31SDataBeanAccessArray hikisakiOpList = svcFormBean.getDataBeanArray(KKW02201SFConst.HIKISAKI_OPTION_SVC_INFO);
//// IT2-2012-0000927 2012/06/20 mod strat
//		hikisakiOpList.clearArray();
//// IT2-2012-0000927 2012/06/20 mod end
//		for (int i = 0; i < opList.size(); i++)
//		{
//			X31SDataBeanAccess op = hikisakiOpList.addDataBean();
//			op.sendMessageBoolean(KKW02201SFConst.CHOICE_03, X31CWebConst.DATABEAN_SET_VALUE, true);
//			setString(op, KKW02201SFConst.OP_SVC_CD_03, (String)opList.get(i).get("op_svc_cd"));
//			setString(op, KKW02201SFConst.OP_SVC_NM_03, (String)opList.get(i).get("op_svc_nm"));
//			setString(op, KKW02201SFConst.OP_SVC_KEI_STAT_03, (String)opList.get(i).get("op_svc_kei_stat"));
//			setString(op, KKW02201SFConst.OP_SVC_KEI_NO_03, (String)opList.get(i).get("op_svc_kei_no"));
//			setString(op, KKW02201SFConst.MLAD_03, (String)opList.get(i).get("mlad"));
//			setString(op, KKW02201SFConst.URL_03, (String)opList.get(i).get("url"));
//			setString(op, KKW02201SFConst.MLLIST_NM_03, (String)opList.get(i).get("mllist_nm"));
//			setString(op, KKW02201SFConst.KOTEI_IP_AD_03, (String)opList.get(i).get("kotei_ip_ad"));
//			setString(op, KKW02201SFConst.NETMASK_03, (String)opList.get(i).get("netmask"));
//			setString(op, KKW02201SFConst.CAPA_03, (String)opList.get(i).get("capa"));
//			setString(op, KKW02201SFConst.VI_CK_UMU_03, (String)opList.get(i).get("vi_ck_umu"));
//			setString(op, KKW02201SFConst.PCRS_CD_03, (String)opList.get(i).get("pcrs_cd"));
//			setString(op, KKW02201SFConst.OP_SVC_KEI_RVC_FLG_03, (String)opList.get(i).get("op_svc_kei_rvc_flg"));
//		}
		// 2012/07/03 IT2-2012-0001104 DEL END
// IT2-2012-0000585 2012/05/14 mod strat
//		// 共有フォームBean設定
//		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
//		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
//				JKKScreenConst.SCREEN_ID_KKW02202);
//		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
//				JKKScreenConst.SCREEN_NAME_KKW02202);
//
//		// ユースケースID格納用のHashMap
//		HashMap<String, Object> paramMap = new HashMap<String, Object>();
//
		// サービスパラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV0223);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, JKKCommonConst.OPID_KKSV0223OP);

		// マッピングクラスの結果を格納するHashMap
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		// サービス呼出結果を格納するHashMap
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// マッピング用paramBeanセット
		X31SDataBeanAccess[] paramBean =
		{
			svcFormBean
		};
		// ANK-4468-00-00 ADD START
		String HikiSaki_Svc_Kei_Stat = svcFormBean.sendMessageString(KKW02201SFConst.HIKISAKI_SVC_KEI_STAT_CD, X31CWebConst.DATABEAN_GET_VALUE);
		String Nrkemt_Svc_Kei_No = svcFormBean.sendMessageString(KKW02201SFConst.NRKEMT_SVC_KEI_STAT_CD, X31CWebConst.DATABEAN_GET_VALUE);
		String func_cd = JKKCommonConst.FUNC_CODE_1;
		// 乗換先契約かつサービス契約ステータスがサービス提供中未満の場合
		// 未来日付範囲チェックと予約登録可否チェックを行わないため用の機能コードを設定
		if(!JKKStringUtil.isNullBlank(Nrkemt_Svc_Kei_No) 
				&& (JKKCommonConst.SVC_KEI_STAT_020.equals(HikiSaki_Svc_Kei_Stat)|| JKKCommonConst.SVC_KEI_STAT_030.equals(HikiSaki_Svc_Kei_Stat)))
		{
			func_cd = JKKCommonConst.FUNC_CODE_2;
			
		}
		// ANK-4468-00-00 ADD END
		KKSV0223_KKSV0223OPDBMapper mapper = new KKSV0223_KKSV0223OPDBMapper();
		// 2012/07/03 IT2-2012-0001104 MOD START 引数を追加
		//mapper.setOpSvcHktgiUpd(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);
		//mapper.setKKSV022303SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setOpSvcHktgiUpd(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2, opList);
		// ANK-4468-00-00 MOD START
//		mapper.setKKSV022303SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1, opList);
		mapper.setKKSV022303SC(paramBean, inputMap, func_cd, opList);
		// ANK-4468-00-00 MOD END

		// 2012/07/03 IT2-2012-0001104 MOD END
		invokeService(paramMap, inputMap, outputMap);
// IT2-2012-0000585 2012/05/14 mod end
		
		// IT2-2012-0000743 2012-07-20 add start
		HashMap<String, Object> wrisvcMap = getMsgList(outputMap);
		
		ArrayList<HashMap<String, Object>> msgList = null;
		
		if (wrisvcMap != null)
		{
		
			//未来日付範囲チェック
			if("WA".equals(wrisvcMap.get("op_hktgi_chk_kkku_flg_1"))){
				// メッセージ登録部品呼出
				String[] arg =
				{
						"適用開始年月日","未来範囲チェック日数"
				};
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB2990__Q, arg);
			}
			//有効メール存在チェック
			if("WB".equals(wrisvcMap.get("op_hktgi_chk_kkku_flg_2"))){
				// メッセージ登録部品呼出
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4450__Q);
			}
			//有効メール存在チェック（未来日）
			if("WC".equals(wrisvcMap.get("op_hktgi_chk_kkku_flg_3"))){
				// メッセージ登録部品呼出
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4460__Q);
			}
			//ファミリーパックチェック
			if("WD".equals(wrisvcMap.get("op_hktgi_chk_kkku_flg_4"))){
				// メッセージ登録部品呼出
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4480__I);
			}
			//SYSIDチェック
			if("WE".equals(wrisvcMap.get("op_hktgi_chk_kkku_flg_5"))){
				// メッセージ登録部品呼出
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4510__Q);
			}

		}
		// IT2-2012-0000743 2012-07-20 add end

		// 2012/07/03 IT2-2012-0001104 ADD START 上から処理を移動＋クリア処理を消去
		X31SDataBeanAccessArray hikisakiOpList = svcFormBean.getDataBeanArray(KKW02201SFConst.HIKISAKI_OPTION_SVC_INFO);
		for (int i = 0; i < opList.size(); i++)
		{
			X31SDataBeanAccess op = hikisakiOpList.addDataBean();
			op.sendMessageBoolean(KKW02201SFConst.CHOICE_03, X31CWebConst.DATABEAN_SET_VALUE, true);
			setString(op, KKW02201SFConst.OP_SVC_CD_03, (String)opList.get(i).get("op_svc_cd"));
			setString(op, KKW02201SFConst.OP_SVC_NM_03, (String)opList.get(i).get("op_svc_nm"));
			setString(op, KKW02201SFConst.OP_SVC_KEI_STAT_03, (String)opList.get(i).get("op_svc_kei_stat"));
			setString(op, KKW02201SFConst.OP_SVC_KEI_NO_03, (String)opList.get(i).get("op_svc_kei_no"));
			setString(op, KKW02201SFConst.MLAD_03, (String)opList.get(i).get("mlad"));
			setString(op, KKW02201SFConst.URL_03, (String)opList.get(i).get("url"));
			setString(op, KKW02201SFConst.MLLIST_NM_03, (String)opList.get(i).get("mllist_nm"));
			setString(op, KKW02201SFConst.KOTEI_IP_AD_03, (String)opList.get(i).get("kotei_ip_ad"));
			setString(op, KKW02201SFConst.NETMASK_03, (String)opList.get(i).get("netmask"));
			setString(op, KKW02201SFConst.CAPA_03, (String)opList.get(i).get("capa"));
			setString(op, KKW02201SFConst.VI_CK_UMU_03, (String)opList.get(i).get("vi_ck_umu"));
			setString(op, KKW02201SFConst.PCRS_CD_03, (String)opList.get(i).get("pcrs_cd"));
			setString(op, KKW02201SFConst.OP_SVC_KEI_RVC_FLG_03, (String)opList.get(i).get("op_svc_kei_rvc_flg"));
		}
		// 2012/07/03 IT2-2012-0001104 ADD END

//		KKSV0223_KKSV0223OPDBMapper mapper = new KKSV0223_KKSV0223OPDBMapper();
//		mapper.setOpSvcHktgiUpd(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);
//		invokeService(paramMap, inputMap, outputMap);

		// メッセージ表示処理
		String[] str =
		{
			"オプション引継の登録"
		};
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, str);

// IT2-2012-0000585 2012/05/14 add strat
		if (JKKCommonConst.SVC_KEI_STAT_010.equals( hikisakiSvcKeiStat))
		{
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4470__Q);
		}
// IT2-2012-0000585 2012/05/14 add end
		

		// 共有フォームBean設定
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_ID_KKW02202);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_NAME_KKW02202);
		return true;
	}

	/**
	 * @return
	 * @throws Exception
	 */
	public boolean actionFix() throws Exception
	{
		// サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();

		// 共有フォームBean設定
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_ID_KKW02203);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_NAME_KKW02203);

		// ユースケース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>();

		// サービスパラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV0223);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, JKKCommonConst.OPID_KKSV0223OP);

		// マッピング用paramBeanセット
		X31SDataBeanAccess[] paramBean =
		{
			svcFormBean
		};
		// ANK-4468-00-00 ADD START
		String HikiSaki_Svc_Kei_Stat = svcFormBean.sendMessageString(KKW02201SFConst.HIKISAKI_SVC_KEI_STAT_CD, X31CWebConst.DATABEAN_GET_VALUE);
		String Nrkemt_Svc_Kei_No = svcFormBean.sendMessageString(KKW02201SFConst.NRKEMT_SVC_KEI_STAT_CD, X31CWebConst.DATABEAN_GET_VALUE);
		String func_cd = JKKCommonConst.FUNC_CODE_1;
		// 乗換先契約かつサービス契約ステータスがサービス提供中未満の場合
		// 未来日付範囲チェックと予約登録可否チェックを行わない用の機能コードを設定
		if(!JKKStringUtil.isNullBlank(Nrkemt_Svc_Kei_No) 
				&& (JKKCommonConst.SVC_KEI_STAT_020.equals(HikiSaki_Svc_Kei_Stat)|| JKKCommonConst.SVC_KEI_STAT_030.equals(HikiSaki_Svc_Kei_Stat)))
		{
			func_cd = JKKCommonConst.FUNC_CODE_2;
			
		}
		// ANK-4468-00-00 ADD END
		KKSV0223_KKSV0223OPDBMapper mapper = new KKSV0223_KKSV0223OPDBMapper();
		// 2012/07/03 IT2-2012-0001104 MOD START 引数を追加
//		mapper.setOpSvcHktgiUpd(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
//// IT2-2012-0000585 2012/05/14 add strat
//		mapper.setKKSV022303SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
//// IT2-2012-0000585 2012/05/14 add end
		mapper.setOpSvcHktgiUpd(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1, null);
		// ANK-4468-00-00 MOD START
//		mapper.setKKSV022303SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1, null);
		mapper.setKKSV022303SC(paramBean, inputMap, func_cd, null);
		// ANK-4468-00-00 MOD END
		// 2012/07/03 IT2-2012-0001104 MOD END
		//ANK-3149-08-00 MOD START
		//invokeService(paramMap, inputMap, outputMap);
		// 共有フォームBean設定
		// 処理結果を判定
		try
		{
			invokeService(paramMap, inputMap, outputMap);
		}
		catch (X31SRuntimeException runtimeException)
        {
			if (isCfmServiceError(outputMap))
			{
				commonBean = super.getCommonInfoBean();
				commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
						JKKScreenConst.SCREEN_ID_KKW02202);
				commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
						JKKScreenConst.SCREEN_NAME_KKW02202);
				return false;
			}
			throw runtimeException;
        }
		//ANK-3149-08-00 MOD END

		// メッセージ表示処理
		String[] str =
		{
			"オプション引継の登録"
		};
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4390__I, str);
		
		// 2012-05-11 巻E指示書CC取込 ADD_START
		// 指示書連携
		// 引継ぎ元ＳＹＳＩＤで連携を行う
		actionSjishoRenkei(paramBean[0].sendMessageString(KKW02201SFConst.HIKIMOTO_SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		// 引継ぎ先ＳＹＳＩＤで連携を行う
		actionSjishoRenkei(paramBean[0].sendMessageString("引継先契約者情報．ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// 2012-05-11 巻E指示書CC取込 ADD_END

		return true;
	}

	// 2012-05-11 巻E指示書CC取込 ADD_START
	/**
	 * Axm連携
	 * @param sysid
	 */
	private void actionSjishoRenkei(String sysid)
	{
		// ユースケース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>();

		// サービスパラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CKSV9001");
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "CKSV9001OP");
		
		// 上りマッピング(サービス項目-DataBean項目マッピング)
		KKSV0564_KKSV0564OPDBMapper mapper = new KKSV0564_KKSV0564OPDBMapper();
		mapper.setCKSV900101CC(inputMap, "1", sysid);
		invokeService(paramMap, inputMap, outputMap);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
	}
	// 2012-05-11 巻E指示書CC取込 ADD_END
	
	/**
	 * @return
	 * @throws Exception
	 */
	public boolean actionShusei() throws Exception
	{
		// サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();

		X31SDataBeanAccessArray opSvcInfoList = svcFormBean.getDataBeanArray(KKW02201SFConst.HIKIMOTO_OPTION_SVC_INFO);
		for (int i = 0; i < opSvcInfoList.getCount().intValue(); i++)
		{
			String removeOpSvcKeiNo = "";
			int removeIndex = 0;
			X31SDataBeanAccess opSvcInfo = opSvcInfoList.getDataBean(i);
			boolean isChecked = opSvcInfo
					.sendMessageBoolean(KKW02201SFConst.CHOICE_03, X31CWebConst.DATABEAN_GET_VALUE);
			if (isChecked)
			{
				removeOpSvcKeiNo = getString(opSvcInfo, KKW02201SFConst.OP_SVC_KEI_NO_03);

				X31SDataBeanAccessArray hikisakiOpList = svcFormBean
						.getDataBeanArray(KKW02201SFConst.HIKISAKI_OPTION_SVC_INFO);
				for (int j = 0; j < hikisakiOpList.getCount().intValue(); j++)
				{
					X31SDataBeanAccess op = hikisakiOpList.getDataBean(j);
					if (removeOpSvcKeiNo.equals(getString(op, KKW02201SFConst.OP_SVC_KEI_NO_03)))
					{
						removeIndex = j;
						break;
					}
				}
				hikisakiOpList.removeDataBean(removeIndex);
			}
		}

		// 共有フォームBean設定
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_ID_KKW02201);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_NAME_KKW02201);

		return true;
	}

	/**
	 * @param svcFormBean サービスフォームビーン
	 */
	private void searchHktgInfo(X31SDataBeanAccess svcFormBean, boolean isAsc)
	{
		// ユースケース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>();

		// サービスパラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV0222);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, JKKCommonConst.OPID_KKSV0222OP);

		// マッピング用paramBeanセット
		X31SDataBeanAccess[] paramBean =
		{
			svcFormBean
		};

		String hikimotoSvcKeiNo = getString(svcFormBean, KKW02201SFConst.HIKIMOTO_SVC_KEI_NO);
		String hikisakiSvcKeiNo = getString(svcFormBean, KKW02201SFConst.HIKISAKI_SVC_KEI_NO);
		if (hikisakiSvcKeiNo.equals(hikimotoSvcKeiNo))
		{
			// メッセージ表示処理
			String[] arg =
			{
					"引継元お客さまIDと引継先お客さまID", "同一の", "引継"
			};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0780_KW, arg);
			return;
		}

		//TAI-2012-0000081 2012/11/01 ADD START
		// ソート区分を取得
		String sort_kbn =  paramBean[0].sendMessageString(KKW02201SFConst.KEY_SORT_KBN, X31CWebConst.DATABEAN_GET_VALUE);
		// ソート区分に対応するソート項目を取得
		String sort_item = getSortItem(sort_kbn); 
		// ソート項目の設定
		paramBean[0].sendMessageString(KKW02201SFConst.KEY_SORT_ITEM_NO, X31CWebConst.DATABEAN_SET_VALUE, sort_item);
		// ソート区分の設定
		paramBean[0].sendMessageString(KKW02201SFConst.KEY_SORT_KBN, X31CWebConst.DATABEAN_SET_VALUE, sort_kbn);
		//TAI-2012-0000081 2012/11/01 ADD END

		// ビーン情報のクリア
		svcFormBean.getDataBeanArray(KKW02201SFConst.HIKIMOTO_SVC_INFO).clearArray();
		svcFormBean.getDataBeanArray(KKW02201SFConst.HIKIMOTO_OPTION_SVC_INFO).clearArray();
		svcFormBean.getDataBeanArray(KKW02201SFConst.HIKISAKI_OPTION_SVC_INFO).clearArray();
		//ANK-3149-08-00 ADD START
		svcFormBean.sendMessage(KKW02201SFConst.HIKIMOTO_WRIB_SVC_KEI_STAT_NM, X31CWebConst.DATABEAN_CLEAR);
		svcFormBean.sendMessage(KKW02201SFConst.HIKIMOTO_WRIB_SVC_CD_NM, X31CWebConst.DATABEAN_CLEAR);
		svcFormBean.sendMessage(KKW02201SFConst.HIKIMOTO_SVC_CHRG_STAYMD, X31CWebConst.DATABEAN_CLEAR);
		svcFormBean.sendMessage(KKW02201SFConst.HIKIMOTO_SVC_CHRG_ENDYMD, X31CWebConst.DATABEAN_CLEAR);
		svcFormBean.sendMessage(KKW02201SFConst.HIKIMOTO_MSKM_KISAN_YMD, X31CWebConst.DATABEAN_CLEAR);
		//ANK-3149-08-00 ADD END

		// 上りマッピング(サービス項目-DataBean項目マッピング)
		KKSV0222_KKSV0222OPDBMapper mapper = new KKSV0222_KKSV0222OPDBMapper();
		mapper.setOpSvcHktgiSearch(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		invokeService(paramMap, inputMap, outputMap);
		mapper.getOpSvcHktgiSearch(paramBean, outputMap);
		X31SDataBeanAccess[] ret = mapper.getEKK0011A010SC(paramBean, outputMap);
		mapper.getEKK0081B006SC(paramBean, outputMap);
		mapper.getEKK0361B001SC(paramBean, outputMap);

		X31SDataBeanAccessArray hikimotoSvcInfoList = svcFormBean.getDataBeanArray(KKW02201SFConst.HIKIMOTO_SVC_INFO);
		int hikimotoSvcInfoCnt = hikimotoSvcInfoList.getCount().intValue();

		// 20120427 add eikawa start
		// IT2-2012-0000426 エラーメッセージ不正対応
		String hikimotoSysID = getString(svcFormBean, KKW02201SFConst.HIKIMOTO_SYSID);
		// 20120427 add eikawa end

		// 検索結果がない場合
		// 20120427 mod eikawa start
		// IT2-2012-0000426 エラーメッセージ不正対応
//		if (ret == null)
		if (hikimotoSvcInfoCnt == 0 && !"".equals(hikimotoSysID))
		// 20120427 mod eikawa end
		{
			// メッセージ表示処理
			String[] arg =
			//2013/3/20 OT-2013-0000426 UPD START
//			{
//					"お客様", "SYSID"
//			};
//			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0300_KW, arg);
			{
					"引継先", "指定されているサービス以外に引継可能なサービス"
			};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0720_KW, arg);
			//2013/3/20 OT-2013-0000426 UPD END
			
			// 20120427 del eikawa start
//			return;
			// 20120427 del eikawa end
		}

		// 引継元サービス契約がない場合
		// 20120427 mod eikawa start
		// IT2-2012-0000426 エラーメッセージ不正対応
//		if (hikimotoSvcInfoCnt == 0)
		if (hikimotoSvcInfoCnt == 0 && !"".equals(hikimotoSvcKeiNo))
		// 20120427 mod eikawa end
		{
			// メッセージ表示処理
			String[] arg =
			{
					"サービス契約", "お客さまID"
			};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0300_KW, arg);
		}
		
		// 2012.3.28 IT1-2012-0000280 ADD Start
		//生年月日を表示表に変換(YYYYMMDD→YYYY/MM/DD）
		String custBirthd;
		custBirthd = svcFormBean.sendMessageString(KKW02201SFConst.HIKIMOTO_CUST_BIRTHD, X31CWebConst.DATABEAN_GET_VALUE);
		//念のため桁数だけ見ておく
		if(custBirthd != null && custBirthd.length() == 8)
		{
			custBirthd = 
				custBirthd.substring(0, 4) + "/" + 
				custBirthd.substring(4, 6) + "/" + 
				custBirthd.substring(6, 8);
			svcFormBean.sendMessageString(KKW02201SFConst.HIKIMOTO_CUST_BIRTHD, X31CWebConst.DATABEAN_SET_VALUE, custBirthd);
		}
		
		
		//郵便番号を表示用に変換(9999999→999-9999)
		String keishaPcd;
		keishaPcd = svcFormBean.sendMessageString(KKW02201SFConst.HIKIMOTO_KEISHA_PCD, X31CWebConst.DATABEAN_GET_VALUE);
		//念のため桁数だけ見ておく
		if(keishaPcd != null && keishaPcd.length() == 7)
		{
			keishaPcd = 
				keishaPcd.substring(0, 3) + "-" + keishaPcd.subSequence(3, 7);
		}
		svcFormBean.sendMessageString(KKW02201SFConst.HIKIMOTO_KEISHA_PCD, X31CWebConst.DATABEAN_SET_VALUE, keishaPcd);
		// 2012.3.28 IT1-2012-0000280 ADD End

		//TAI-2012-0000081 2012/11/01 ADD START
		// ソート項目の設定
		svcFormBean.sendMessageString(KKW02201SFConst.KEY_SORT_KBN, X31CWebConst.DATABEAN_SET_VALUE, sort_kbn);
		svcFormBean.sendMessageString(KKW02201SFConst.KEY_SORT_ITEM_NO, X31CWebConst.DATABEAN_SET_VALUE, sort_item);
		//TAI-2012-0000081 2012/11/01 ADD END

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
	}

	/**
	 * <dd>メソッド名：リセット処理
	 * <dd>メソッド説明：リセットボタン押下時の処理を行う。
	 * <dd>備考：なし。
	 * @return boolean　true
	 * @throws Exception 例外
	 */
	public boolean actionReset() throws Exception 
	{
		
		// サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();

		// 引継元契約者情報．サービス契約番号に空文字を設定
		svcFormBean.sendMessageString(KKW02201SFConst.HIKIMOTO_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 初期表示処理を呼び出す
		actionInit();
		
		return true;
	}
	
	/**
	 * <dd>メソッド名：戻る処理
	 * <dd>メソッド説明：戻るボタン押下時の処理を行う。
	 * <dd>備考：なし。
	 * @return boolean　true
	 * @throws Exception 例外
	 */
	public boolean actionReturn() throws Exception 
	{

		// 遷移先情報の設定
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCCWebCommon.getScreenId(this));

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
	}
	
	private String getString(X31SDataBeanAccess bean, String key)
	{
		return bean.sendMessageString(key, X31CWebConst.DATABEAN_GET_VALUE);
	}

	private void setString(X31SDataBeanAccess bean, String key, String val)
	{
		bean.sendMessageString(key, X31CWebConst.DATABEAN_SET_VALUE, val);
	}

	/**
	 * 「異動区分選択へ」ボタン押下時処理
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionIdoDivChoice() throws Exception
	{
		// 共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// 共有フォームBean設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_ID_KKW00145);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_NAME_KKW00145);

		return true;
	}

	/**
	 * 「お客様一覧照会へ」ボタン押下時処理
	 * 
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception
	 */
	public boolean actionCustShokai() throws Exception
	{
		// 共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// 共有フォームBean設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCKScreenConst.SCREEN_ID_CKW00101);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JCKScreenConst.SCREEN_NAME_CKW00101);

		return true;
	}
	
	// IT2-2012-0000743 2012-07-20 ADD_START
	/**
	 * S/IFからの戻りMap取得
	 * @param ido_div
	 * @param outputMap
	 */
	private HashMap<String, Object> getMsgList(HashMap<String, Object> outputMap)
	{
		HashMap<String, Object> retMap = new HashMap<String, Object>();
		
		if (outputMap.containsKey("KKSV022303SC"))
		{
			retMap = (HashMap<String, Object>)outputMap.get("KKSV022303SC");
		}
		return retMap;
	}
	// IT2-2012-0000743 2012-07-20 ADD_END
	// TAI-2012-0000081 2012/11/01 ADD START
	/**
	 * ソート番号に対応するソート項目を取得
	 * @param  sort_num  ソート番号
	 * @return ソート項目
	 */
	private String getSortItem(String sort_num)
	{	
		if ("1".equals(sort_num) || "2".equals(sort_num)) 
		{
			return "1";		// オプションサービス.オプションサービスコード名称
		}

		return "";
	}
	
	
	/**
	 * ソート番号に対応する機能コードを取得
	 * @param  sort_num  ソート番号
	 * @return 機能コード
	 */
	private String getSortFuncCode(String sort_num)
	{	
		if (Integer.parseInt(sort_num) % 2 == 0)
		{
			return JPCModelConstant.FUNC_CD_1;		// 昇順
		}
		else
		{
			return JPCModelConstant.FUNC_CD_2;		// 降順
		}
	}
	// TAI-2012-0000081 2012/11/01 ADD END
	//ANK-3149-08-00 ADD START
	/**
	 * オプションサービス引継対象更新サービスがエラーかどうかを判定します。<br>
	 * エラーの場合は画面表示するエラーメッセージを設定します。
	 * <br>
	 * @param svcFormBean DataBeanアクセスクラス
	 * @return エラーが存在する場合はtrue、存在しない場合はfalse
	 */
	private boolean isCfmServiceError(HashMap outputMap)
	{
		boolean isError = false;
		
		HashMap parentMap = null;
		if(outputMap.containsKey("OpSvcHktgiUpd")){
			parentMap = (HashMap)outputMap.get("OpSvcHktgiUpd");
		}

		String tranRsltCd = (String)parentMap.get("tran_rslt_cd");

		// 排他エラーの場合
		if ("1".equals(tranRsltCd))
		{
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0320_KW);
			isError = true;
		}

		return isError;
	}
	//ANK-3149-08-00 ADD END
}
