/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム共通（共通（マスタ））
*   モジュール名    ：ZMW00801SFLogic
*   ソースファイル名：ZMW00801SFLogic.java
*   作成者          ：富士通
*   日付            ：2012年05月24日
*＜機能概要＞
*   権限グループ情報更新のビューロジックです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v3.00       2012/05/24   FJ) 石松    新規作成
*   v3.00       2012/05/24   FJ) 石松    【SGY-2012-000006】統合認証対応
*
**********************************************************************/

package eo.web.webview.ZMW00801SF;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;

import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JPCUtilCommon;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.ZMW11901SF.ZMW11901SFConst;
import eo.web.webview.ZMW12001SF.ZMW12001SFConst;
import eo.web.webview.ZMW12101SF.ZMW12101SFConst;
import eo.web.webview.ZMW12201SF.ZMW12201SFConst;
import eo.web.webview.ZMW12301SF.ZMW12301SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JZMScreenConst;
import eo.web.webview.common.JZMWebCommon;
import eo.web.webview.common.JZMWebConst;
import eo.web.webview.mapping.ZMSV0107_ZMSV0107OPDBMapper;
import eo.web.webview.mapping.ZMSV0108_ZMSV0108OPDBMapper;

/**
 * 権限グループ情報更新のビューロジック。
 * @author 909396
 *
 */
@SuppressWarnings("serial")
public class ZMW00801SFLogic  extends JCCWebBusinessLogic
{

	/** メッセージ置換文字列　マスタ未存在  */
	private static final String[] MSG_VALUE_NOTFOUND = {"権限グループ", "情報"};
	
	/** メッセージ置換文字列  */
	private static final 	String[] MESSAGE_VALUE = {"権限グループ情報更新"};
	
	/** 権限適用組織種別コード：実組織 */
	private static final String REAL_ORG_CD = "01";
	
	/**
	 * 初期表示処理を行います。<br>
	 * <br>
	 * @return boolean 処理結果
	 * @exception Exception 予期せぬエラー
	 */
	@SuppressWarnings("unchecked")
	public boolean init() throws Exception
	{
		
		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commonBean = getCommonInfoBean();
		
		// セッション情報取得
		HashMap<String, Object> searchInfo = JZMWebCommon.getScreenInfo(this);
		
		if(searchInfo == null)
		{
			setBackScreenId(commonBean, true);
			return true;
		}
		
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess[] paramBean = {bean};
		
		// ユースケースID格納用マップ
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		
		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// ユースケースの設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JZMWebConst.SV107);
		
		// マッピングクラスのインスタンスを生成
		ZMSV0107_ZMSV0107OPDBMapper mapper = new ZMSV0107_ZMSV0107OPDBMapper();
		
		// マッピング処理（上り）
		mapper.setZMSV010701SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		
		//  サービスの呼び出し
		invokeService(paramMap, dataMap, outputMap);
		
		// マッピング処理（下り）
		mapper.getZMSV010701SC(paramBean, outputMap);
		
		// 検索エラーフラグの取得
		String searchErrFlg = JZMWebCommon.getSearchErrFlg(JZMWebConst.SC10701, outputMap);
		
		if(JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchErrFlg))
		{
			
			// メッセージの表示
			JZMWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0300_KW, MSG_VALUE_NOTFOUND);
			
			setBackScreenId(commonBean, true);
			return true;
		
		}
		
		// 組織・立場検索ボタンと業務個別設定組織・業務個別設定立場ボタンの切替
		//権限適用組織種別コードを取得
		String authorityAplyOrgSbtCd = JZMWebCommon.getSendMessageString(bean, ZMW00801SFConst.AUTHORITY_APLY_ORG_SBT_CD);
		HashMap<String, Object> inDataMap = (HashMap<String, Object>)dataMap.get(JZMWebConst.SC10701);
		inDataMap.put(ZMW00801SFConst.AUTHORITY_APLY_ORG_SBT_CD, authorityAplyOrgSbtCd);
		
		if(REAL_ORG_CD.equals(authorityAplyOrgSbtCd))
		{
			bean.sendMessageBoolean(ZMW00801SFConst.WKKBT_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
		}
		else
		{
			bean.sendMessageBoolean(ZMW00801SFConst.WKKBT_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);
		}
		
		// 日付を分割する
		JZMWebCommon.setSplitYmd(bean,
				ZMW00801SFConst.APLY_PRD_STA,
				ZMW00801SFConst.APLY_PRD_STA_YEAR,
				ZMW00801SFConst.APLY_PRD_STA_MON,
				ZMW00801SFConst.APLY_PRD_STA_DAY);
		
		JZMWebCommon.setSplitYmd(bean,
				ZMW00801SFConst.APLY_PRD_END,
				ZMW00801SFConst.APLY_PRD_END_YEAR,
				ZMW00801SFConst.APLY_PRD_END_MON,
				ZMW00801SFConst.APLY_PRD_END_DAY);
		
		// 遷移先画面ID、名称の設定
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW00801);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_NAME_ZMW00801);
		
		return true;
	}
	
	/**
	 * 更新確認ボタン処理を行います。
	 * <br>
	 * @return 処理結果
	 * @throws Exception 予期せぬエラー
	 */
	public boolean updCfm() throws Exception
	{
		
		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commonBean = getCommonInfoBean();
		
		// サービスフォームBean
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// 適用開始年月日
		String  aplyStaymd = JPCUtilCommon.concatYmd(bean.sendMessageString(ZMW00801SFConst.APLY_PRD_STA_YEAR, X31CWebConst.DATABEAN_GET_VALUE),
				bean.sendMessageString(ZMW00801SFConst.APLY_PRD_STA_MON, X31CWebConst.DATABEAN_GET_VALUE),
				bean.sendMessageString(ZMW00801SFConst.APLY_PRD_STA_DAY, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(ZMW00801SFConst.APLY_PRD_STA, X31CWebConst.DATABEAN_SET_VALUE, JZMWebCommon.nullToBlank(aplyStaymd));
		
		// 適用終了年月日
		String  aplyEndymd = JPCUtilCommon.concatYmd(bean.sendMessageString(ZMW00801SFConst.APLY_PRD_END_YEAR, X31CWebConst.DATABEAN_GET_VALUE),
				bean.sendMessageString(ZMW00801SFConst.APLY_PRD_END_MON, X31CWebConst.DATABEAN_GET_VALUE),
				bean.sendMessageString(ZMW00801SFConst.APLY_PRD_END_DAY, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(ZMW00801SFConst.APLY_PRD_END, X31CWebConst.DATABEAN_SET_VALUE, JZMWebCommon.nullToBlank(aplyEndymd));
		
		// ユースケースID格納用マップ
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		
		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// (3)サービス呼出処理
		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean};
		
		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JZMWebConst.SV108);
		
		// マッピングクラス
		ZMSV0108_ZMSV0108OPDBMapper mapper = new ZMSV0108_ZMSV0108OPDBMapper();
		
		// マッピング処理（上り）
		mapper.setZMSV010801CC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2);
		
		// 組織・立場名取得と業務個別設定組織・業務個別設定名取得の選択
		// 権限適用組織種別コードを取得
		String authorityAplyOrgSbtCd = JZMWebCommon.getSendMessageString(bean, ZMW00801SFConst.AUTHORITY_APLY_ORG_SBT_CD);
		
		if(REAL_ORG_CD.equals(authorityAplyOrgSbtCd))
		{
			
			// 権限適用組織種別名が実組織の場合、
			// 入力された組織コード、立場コードから
			// 組織名、立場名を取得するための上りマッピング
			mapper.setZMSV010802SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
			mapper.setZMSV010803SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		}
		else
		{
			
			// 権限適用組織種別名が実組織以外の場合、
			// 入力された業務個別設定組織コード、業務個別設定立場コードから
			// 業務個別設定組織名、業務個別設定立場名を取得するための上りマッピング
			mapper.setZMSV010804SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
			mapper.setZMSV010805SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		}
		
		// 入力されたロールコードから
		// ロール名を取得するための上りマッピング
		mapper.setZMSV010806SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		
		// サービス実行
		invokeService(paramMap, dataMap, outputMap);
		
		// 整合性エラーがある場合、エラーを返します。
		if(isErrAuthorityAplyOrgSbtNm(outputMap, JZMWebConst.CC10801))
		{
			JZMWebCommon.setNextScreenInfo(commonBean, JZMScreenConst.SCREEN_ID_ZMW00801, JZMScreenConst.SCREEN_NAME_ZMW00801);
			return true;
		}
		
		// 下りマッピング処理
		if(REAL_ORG_CD.equals(authorityAplyOrgSbtCd))
		{
			
			// 権限適用組織種別名が実組織の場合、
			// 入力された組織コード、立場コードから
			// 組織名、立場名を取得するための下りマッピング
			mapper.getZMSV010802SC(paramBean, outputMap);
			mapper.getZMSV010803SC(paramBean, outputMap);
		}
		else
		{
			
			// 権限適用組織種別名が実組織以外の場合、
			// 入力された業務個別設定組織コード、業務個別設定立場コードから
			// 業務個別設定組織名、業務個別設定立場名を取得するための下りマッピング
			mapper.getZMSV010804SC(paramBean, outputMap);
			mapper.getZMSV010805SC(paramBean, outputMap);
		}
		
		// 入力されたロールコードから
		// ロール名を取得するための下りマッピング
		mapper.getZMSV010806SC(paramBean, outputMap);
		
		// メッセージの設定
		JZMWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, MESSAGE_VALUE);
		JZMWebCommon.setMessageAreaBackColor(this, JZMWebConst.ONE);
		
		// 遷移先画面ID、名称の設定
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW00802);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_NAME_ZMW00802);
		
		return true;
	}
	
	/**
	 * 戻るボタン処理を行います。
	 * <br>
	 * @return 処理結果
	 * @throws Exception 予期せぬエラー
	 */
	public boolean back() throws Exception
	{
		
		// 共有フォームBean
		X31SDataBeanAccess commonBean = getCommonInfoBean();
		
		// 画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMWebCommon.getScreenId(this));
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE , JZMWebConst.BLANK);
		
		return true;
	}
	
	/**
	 * 確定ボタン処理を行います。
	 * <br>
	 * @return 処理結果
	 * @throws Exception 予期せぬエラー
	 */
	public boolean fix() throws Exception
	{

		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// ユースケースID格納用マップ
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// (3)サービス呼出処理
		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean};


		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JZMWebConst.SV108);

		// マッピングクラス
		ZMSV0108_ZMSV0108OPDBMapper mapper = new ZMSV0108_ZMSV0108OPDBMapper();

		// マッピング処理（上り）
		mapper.setZMSV010801CC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		// サービス実行
		invokeService(paramMap, dataMap, outputMap);
		
		// 整合性エラーがある場合、エラーを返します。
		if(isErrAuthorityAplyOrgSbtNm(outputMap, JZMWebConst.CC10801))
		{
			JZMWebCommon.setNextScreenInfo(commoninfoBean, JZMScreenConst.SCREEN_ID_ZMW00802, JZMScreenConst.SCREEN_NAME_ZMW00802);
			return true;
		}

		JZMWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0380__I, MESSAGE_VALUE);
		
		// 画面遷移
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW00803);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst. SCREEN_NAME_ZMW00803);
		
		return true;
	}
	
	/**
	 * 修正ボタン処理を行います。
	 * <br>
	 * @return 処理結果
	 * @throws Exception 予期せぬエラー
	 */
	public boolean shusei() throws Exception
	{

		// 共有フォームBean
		X31SDataBeanAccess commonBean = getCommonInfoBean();
		
		// 画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW00801);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst. SCREEN_NAME_ZMW00801);
		
		return true;
	}
	
	/**
	 * 完了ボタン処理を行います。
	 * <br>
	 * @return 処理結果
	 * @throws Exception 予期せぬエラー
	 */
	public boolean fin() throws Exception
	{

		// 共有フォームBean
		X31SDataBeanAccess commonBean = getCommonInfoBean();
		
		setBackScreenId(commonBean, false);
				
		return true;
	}
	
	/**
	 * セッションから遷移先画面を取得し共通ビーンに設定します。
	 * @param commonBean 共通ビーン
	 * @param transfer setTransferPageId()を呼び出すかどうかを設定します。
	 */
	private void setBackScreenId(X31SDataBeanAccess commonBean, boolean transfer)
	{
		String screenId = JZMWebCommon.getScreenId(this);

		// 遷移先画面ID、名称の設定
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, screenId);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JZMWebConst.BLANK);

		if(transfer)
		{
			setTransferPageId(screenId + JZMWebConst.PJP);
		}
	}
	
	/**
	 * 組織検索ボタン押下処理を行います。<br>
	 * 
	 * @return boolean 処理結果
	 * @exception Exception 予期せぬエラー
	 */
	public boolean openZMW11901() throws Exception
	{
		
		// 権限グループ一覧照会画面のデータを取得
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// サービスフォームBeanから組織コードを取得
		String dspOrgCd = bean.sendMessageString(ZMW00801SFConst.ORG_CD, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 組織検索一覧照会画面に渡すデータをHashMapに設定する
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(ZMW00801SFConst.ORG_CD, dspOrgCd);
		
		// 組織検索一覧照会画面に渡すデータを設定する
		JCCWebCommon.setScreenInfo(this, JZMScreenConst.SCREEN_ID_ZMW11901, paramMap);
		
		// 組織検索一覧照会画面に権限グループ情報一覧照会画面のIDを渡す
		JCCWebCommon.setScreenId(this, JZMScreenConst.SCREEN_ID_ZMW11901, JZMScreenConst.SCREEN_ID_ZMW00801);
		
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW11901);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_NAME_ZMW11901);
		
		return true;
	}
	
	/**
	 * 立場検索ボタン押下処理を行います。<br>
	 * 
	 * @return boolean 処理結果
	 * @exception Exception 予期せぬエラー
	 */
	public boolean openZMW12001() throws Exception
	{
		
		// 権限グループ一覧照会画面のデータを取得
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// サービスフォームBeanから立場コードを取得
		String dspPositionCd = bean.sendMessageString(ZMW00801SFConst.POSITION_CD, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 立場検索一覧照会画面に渡すデータをHashMapに設定する
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(ZMW00801SFConst.POSITION_CD, dspPositionCd);
		
		// 立場検索一覧照会画面に渡すデータを設定する
		JCCWebCommon.setScreenInfo(this, JZMScreenConst.SCREEN_ID_ZMW12001, paramMap);
		
		// 立場検索一覧照会画面に権限グループ情報一覧照会画面のIDを渡す
		JCCWebCommon.setScreenId(this, JZMScreenConst.SCREEN_ID_ZMW12001, JZMScreenConst.SCREEN_ID_ZMW00801);
		
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW12001);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_NAME_ZMW12001);
		
		return true;
	}
	
	/**
	 * ロール検索ボタン押下処理を行います。<br>
	 * 
	 * @return boolean 処理結果
	 * @exception Exception 予期せぬエラー
	 */
	public boolean openZMW12101() throws Exception
	{
		
		// 権限グループ一覧照会画面のデータを取得
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// サービスフォームBeanからロールコードを取得
		String dspRoleCd = bean.sendMessageString(ZMW00801SFConst.ROLE_CD, X31CWebConst.DATABEAN_GET_VALUE);
		
		// ロール検索一覧照会画面に渡すデータをHashMapに設定する
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(ZMW00801SFConst.ROLE_CD, dspRoleCd);
		
		// ロール検索一覧照会画面に渡すデータを設定する
		JCCWebCommon.setScreenInfo(this, JZMScreenConst.SCREEN_ID_ZMW12101, paramMap);
		
		// ロール検索一覧照会画面に権限グループ情報一覧照会画面のIDを渡す
		JCCWebCommon.setScreenId(this, JZMScreenConst.SCREEN_ID_ZMW12101, JZMScreenConst.SCREEN_ID_ZMW00801);
		
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW12101);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_NAME_ZMW12101);
		
		return true;
	}
	
	/**
	 * 業務個別設定組織検索ボタン押下処理を行います。<br>
	 * 
	 * @return boolean 処理結果
	 * @exception Exception 予期せぬエラー
	 */
	public boolean openZMW12201() throws Exception
	{
		
		// 権限グループ一覧照会画面のデータを取得
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// サービスフォームBeanから業務個別設定組織コードを取得
		String dspWkkbtOrgCd = bean.sendMessageString(ZMW00801SFConst.WKKBT_ORG_CD, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 業務個別設定組織検索一覧照会画面に渡すデータをHashMapに設定する
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		String authorityAplyOrgSbtCd = JZMWebCommon.getSendMessageString(bean, ZMW00801SFConst.AUTHORITY_APLY_ORG_SBT_CD);
		paramMap.put(ZMW00801SFConst.AUTHORITY_APLY_ORG_SBT_CD, authorityAplyOrgSbtCd);
		paramMap.put(ZMW00801SFConst.WKKBT_ORG_CD, dspWkkbtOrgCd);
		
		// 業務個別設定組織検索一覧照会画面に渡すデータを設定する
		JCCWebCommon.setScreenInfo(this, JZMScreenConst.SCREEN_ID_ZMW12201, paramMap);
		
		// 業務個別設定組織検索一覧照会画面に権限グループ情報一覧照会画面のIDを渡す
		JCCWebCommon.setScreenId(this, JZMScreenConst.SCREEN_ID_ZMW12201, JZMScreenConst.SCREEN_ID_ZMW00801);
		
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW12201);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_NAME_ZMW12201);
		
		return true;
	}
	
	/**
	 * 業務個別設定立場検索ボタン押下処理を行います。<br>
	 * 
	 * @return boolean 処理結果
	 * @exception Exception 予期せぬエラー
	 */
	public boolean openZMW12301() throws Exception
	{
		
		// 権限グループ一覧照会画面のデータを取得
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// サービスフォームBeanから業務個別設定立場コードを取得
		String dspWkkbtPositionCd = bean.sendMessageString(ZMW00801SFConst.WKKBT_POSITION_CD, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 業務個別設定立場検索一覧照会画面に渡すデータをHashMapに設定する
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		String authorityAplyOrgSbtCd = JZMWebCommon.getSendMessageString(bean, ZMW00801SFConst.AUTHORITY_APLY_ORG_SBT_CD);
		paramMap.put(ZMW00801SFConst.AUTHORITY_APLY_ORG_SBT_CD, authorityAplyOrgSbtCd);
		paramMap.put(ZMW00801SFConst.WKKBT_POSITION_CD, dspWkkbtPositionCd);
		
		// 業務個別設定立場検索一覧照会画面に渡すデータを設定する
		JCCWebCommon.setScreenInfo(this, JZMScreenConst.SCREEN_ID_ZMW12301, paramMap);
		
		// 業務個別設定立場検索一覧照会画面に権限グループ情報一覧照会画面のIDを渡す
		JCCWebCommon.setScreenId(this, JZMScreenConst.SCREEN_ID_ZMW12301, JZMScreenConst.SCREEN_ID_ZMW00801);
		
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW12301);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_NAME_ZMW12301);
		
		return true;
	}
	
	/**
	 * 組織検索画面クローズ処理を行います。<br>
	 * 
	 * @return boolean 処理結果
	 * @exception Exception 予期せぬエラー
	 */
	public boolean closeZMW11901()  throws Exception
	{
		
		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();
		
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// セッション情報取得
		HashMap<String, Object> searchInfo = JZMWebCommon.getScreenInfo(this);
		
		JZMWebCommon.setSendMessageString(bean, ZMW00801SFConst.ORG_CD, searchInfo.get(ZMW11901SFConst.ORG_CD).toString());
		
		// 遷移先画面ID、名称を設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW00801);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_NAME_ZMW00801);
		
		
		return true;
	}
	
	/**
	 * 立場検索画面クローズ処理を行います。<br>
	 * 
	 * @return boolean 処理結果
	 * @exception Exception 予期せぬエラー
	 */
	public boolean closeZMW12001()  throws Exception
	{
		
		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();
		
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// セッション情報取得
		HashMap<String, Object> searchInfo = JZMWebCommon.getScreenInfo(this);
		
		JZMWebCommon.setSendMessageString(bean, ZMW00801SFConst.POSITION_CD, searchInfo.get(ZMW12001SFConst.POSITION_CD).toString());
		
		// 遷移先画面ID、名称を設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW00801);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_NAME_ZMW00801);
		
		
		return true;
	}
	
	/**
	 * ロール検索画面クローズ処理を行います。<br>
	 * 
	 * @return boolean 処理結果
	 * @exception Exception 予期せぬエラー
	 */
	public boolean closeZMW12101()  throws Exception
	{
		
		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();
		
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// セッション情報取得
		HashMap<String, Object> searchInfo = JZMWebCommon.getScreenInfo(this);
		
		JZMWebCommon.setSendMessageString(bean, ZMW00801SFConst.ROLE_CD, searchInfo.get(ZMW12101SFConst.ROLE_CD).toString());
		
		// 遷移先画面ID、名称を設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW00801);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_NAME_ZMW00801);
		
		
		return true;
	}
	
	/**
	 * 業務個別設定組織検索画面クローズ処理を行います。<br>
	 * 
	 * @return boolean 処理結果
	 * @exception Exception 予期せぬエラー
	 */
	public boolean closeZMW12201()  throws Exception
	{
		
		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();
		
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// セッション情報取得
		HashMap<String, Object> searchInfo = JZMWebCommon.getScreenInfo(this);
		
		JZMWebCommon.setSendMessageString(bean, ZMW00801SFConst.WKKBT_ORG_CD, searchInfo.get(ZMW12201SFConst.WKKBT_ORG_CD).toString());
		
		// 遷移先画面ID、名称を設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW00801);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_NAME_ZMW00801);
		
		
		return true;
	}
	
	/**
	 * 業務個別設定立場検索画面クローズ処理を行います。<br>
	 * 
	 * @return boolean 処理結果
	 * @exception Exception 予期せぬエラー
	 */
	public boolean closeZMW12301()  throws Exception
	{
		
		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();
		
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// セッション情報取得
		HashMap<String, Object> searchInfo = JZMWebCommon.getScreenInfo(this);
		
		JZMWebCommon.setSendMessageString(bean, ZMW00801SFConst.WKKBT_POSITION_CD, searchInfo.get(ZMW12301SFConst.WKKBT_POSITION_CD).toString());
		
		// 遷移先画面ID、名称を設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW00801);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_NAME_ZMW00801);
		
		
		return true;
	}

	/**
	 * 権限グループ変更CCがエラーを返しているかを判定します。
	 * @param outputMap サービス出力マップ
	 * @param ccName CC名称
	 * @return 判定結果（エラーの場合true)
	 */
	@SuppressWarnings("unchecked")
	private boolean isErrAuthorityAplyOrgSbtNm(HashMap<String, Object> outputMap, String ccName)
	{
		if(outputMap.containsKey(ccName))
		{
			HashMap<String, Object> ccMap = (HashMap<String, Object>)outputMap.get(ccName);
			
			if(ccMap.containsKey(JZMWebConst.EZM0171A010CBSMSG1LIST))
			{
				ArrayList<?> msgList = (ArrayList<?>)ccMap.get(JZMWebConst.EZM0171A010CBSMSG1LIST);
				if(msgList.size() != 0)
				{

					HashMap tmpMap = (HashMap)msgList.get(0);
					if(tmpMap.containsKey(JZMWebConst.EZM0171_CD_DIV_NM))
					{
						String wkkbtOrgFlg = (String)ccMap.get(JZMWebConst.EZM0041_WKKBT_ORG_FLG);
						String messageArg = "";
						String htmlId = "";
						if(JZMWebConst.ZERO.equals(wkkbtOrgFlg))
						{
							messageArg = JZMWebConst.MSG_WKKBT_ORG_CD;
							htmlId = JZMWebConst.EZM0041_WKKBT_ORG_CD;
						}
						else
						{
							messageArg = JZMWebConst.MSG_WKKBT_POS_CD;
							htmlId = JZMWebConst.EZM0041_WKKBT_POSITION_CD;
						}
						
						String[] items = new String[]{messageArg, (String)tmpMap.get(JZMWebConst.EZM0171_CD_DIV_NM)};
						
						// 業務個別設定コードの整合性エラー
						JZMWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB1280_KW, items, htmlId);
					}

					return true;
				}
			}
		}
		return false;
	}
}
