/*********************************************************************
*	 All Rights reserved,Copyright (c) K-Opticom 
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KUW00201SFLogic
*	ソースファイル名：KUW00201SFLogic.java
*	作成者			：富士通
*	日付			：2012年02月07日
*＜機能概要＞
*	工程進捗情報登録のロジックです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v2.00.00	2012/02/07	FJ)高橋		新規作成
*	v10.00.00	2014/07/30	FJ)佐野		【ANK-1918-00-00】ＵＳ管理Ｓ向けｅｏ顧客ＳのＩ／Ｆ改修  
*	v53.00.00   2021/04/28	FJ)謝		【ANK-3989-00-00】マンション光コンセント方式への5G・10Gコース追加
*	v60.00.00	2022/06/21	 FJ)Arah	【ANK-4244-00-00】【eo定期】MT既設賃貸対応
**********************************************************************/
package eo.web.webview.KUW00201SF;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.constant.JKUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.util.JKUCommonUtil;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKUScreenConst;
import eo.web.webview.common.JKUWebCommon;
import eo.web.webview.mapping.KUSV0027_KUSV0027OPDBMapper;
import eo.web.webview.mapping.KUSV0028_KUSV0028OPDBMapper;
import eo.web.webview.mapping.KUSV0029_KUSV0029OPDBMapper;
import eo.web.webview.mapping.KUSV0030_KUSV0030OPDBMapper;

/**
 * 工程進捗情報登録のロジッククラスです。
 * @author 富士通
 */
public class KUW00201SFLogic extends JCCWebBusinessLogic
{
	/**
	 * 初期表示ユースケースID01
	 */
	private static final String INIT_USECASE_ID_01 = "KUSV0027";
	
	/**
	 * 初期表示SCタイトル01
	 */
	private static final String INIT_SC_TITLE_01 = "KUSV002701SC";
	
	/**
	 * 初期表示SCタイトル02
	 */
	private static final String INIT_SC_TITLE_02 = "KUSV002702SC";
	
	/**
	 * 初期表示SCタイトル03
	 */
	private static final String INIT_SC_TITLE_03 = "KUSV002703SC";
	
	/**
	 * 初期表示SCタイトル04
	 */
	private static final String INIT_SC_TITLE_04 = "KUSV002704SC";
	
	/**
	 * 初期表示SCタイトル05
	 */
	private static final String INIT_SC_TITLE_05 = "KUSV002705SC";
	
	/**
	 * 初期表示SCタイトル06
	 */
	private static final String INIT_SC_TITLE_06 = "KUSV002706SC";
	
	/**
	 * 初期表示SCタイトル07
	 */
	private static final String INIT_SC_TITLE_07 = "KUSV002707SC";
	
	/**
	 * 申込情報取得ユースケースID01
	 */
	private static final String MSKMINFOSTKU_USECASE_ID_01 = "KUSV0028";
	
	/**
	 * 名称検索ユースケースID01
	 */
	private static final String NMSEARCH_USECASE_ID_01 = "KUSV0029";
	
	
	/**
	 * 登録ユースケースID01
	 */
	private static final String INS_USECASE_ID_01 = "KUSV0030";
	
	
	/**
	 * 文字列基準日
	 */
	private static final String KEY_STDARDYMD = "key_stdardymd";
	
	/**
	 * 初期化処理
	 * @return boolean
	 * @throws Exception 例外発生時
	 */
	public boolean action_Init() throws Exception
	{
		return kuw00201_init();
	}
	
	/**
	 * 初期表示処理
	 * @return boolean
	 * @throws Exception 例外発生時
	 */
	public boolean kuw00201_init() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JKUScreenConst.SCREEN_ID_KUW00201);
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JKUScreenConst.SCREEN_NAME_KUW00201);
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		// 遷移元画面ＩＤを設定
		String screenId = JCCWebCommon.getScreenId(this);
		
		// NULLはメニューからの遷移 NULL以外は他業務からの遷移
		if(JKUCommonUtil.isNull(screenId))
		{
			// 戻るボタン表示フラグ
			bean.sendMessageString(KUW00201SFConst.RTRN_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, JKUStrConst.DISP_FLG_FALSE);
		}
		else
		{
			// 戻るボタン表示フラグ
			bean.sendMessageString(KUW00201SFConst.RTRN_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, JKUStrConst.DISP_FLG_TRUE);
			// 他業務画面ID
			bean.sendMessageString(KUW00201SFConst.OTHER_SCREENID, X31CWebConst.DATABEAN_SET_VALUE, screenId);
		}
		
		
		// サービス呼出処理
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// マッピングクラスのインスタンスを生成
		KUSV0027_KUSV0027OPDBMapper mapper = new KUSV0027_KUSV0027OPDBMapper();
		
		// ユースケースＩＤを設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, INIT_USECASE_ID_01);
		
		// 上りマッピング
		// マッピングクラスの呼び出し
		mapper.setKUSV002701SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setKUSV002702SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setKUSV002703SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setKUSV002704SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setKUSV002705SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setKUSV002706SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setKUSV002707SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		
		// オペレーション日付取得
		String opeDate = JCCWebCommon.getOpeDate(this, null); 
		
		((HashMap<String, Object>)inputMap.get(INIT_SC_TITLE_01)).put(KEY_STDARDYMD, opeDate);
		((HashMap<String, Object>)inputMap.get(INIT_SC_TITLE_02)).put(KEY_STDARDYMD, opeDate);
		((HashMap<String, Object>)inputMap.get(INIT_SC_TITLE_03)).put(KEY_STDARDYMD, opeDate);
		((HashMap<String, Object>)inputMap.get(INIT_SC_TITLE_04)).put(KEY_STDARDYMD, opeDate);
		((HashMap<String, Object>)inputMap.get(INIT_SC_TITLE_05)).put(KEY_STDARDYMD, opeDate);
		((HashMap<String, Object>)inputMap.get(INIT_SC_TITLE_06)).put(KEY_STDARDYMD, opeDate);
		((HashMap<String, Object>)inputMap.get(INIT_SC_TITLE_07)).put(KEY_STDARDYMD, opeDate);
		
		// サービス呼出
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		// 下りマッピング
		// マッピングクラスの呼び出し
		mapper.getKUSV002701SC(paramBean, outputMap);
		mapper.getKUSV002702SC(paramBean, outputMap);
		mapper.getKUSV002703SC(paramBean, outputMap);
		mapper.getKUSV002704SC(paramBean, outputMap);
		mapper.getKUSV002705SC(paramBean, outputMap);
		mapper.getKUSV002706SC(paramBean, outputMap);
		mapper.getKUSV002707SC(paramBean, outputMap);
		
		// 工事予定年月日
		bean.sendMessageString(KUW00201SFConst.KOJI_RSV_YMD, X31CWebConst.DATABEAN_SET_VALUE, opeDate);
		
		return true;
	}
	
	/**
	 * 申込情報取得ボタン押下イベント
	 * @return boolean
	 * @throws Exception 例外発生時
	 */
	public boolean action_MskmInfoStku() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		// フォームクリア
		formClear(true);
		
		// 検索処理
		if(!mskmInfoSearch())
		{
			return true;
		}
		
		// 関連エラーがある場合はフォームをクリア
		if(!knrnErrChk())
		{
			// フォームクリア
			formClear(true);
			
			return true;
		}
		else
		{
			// 活性、非活性の設定
			setAbleDisable();
		}
		
		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JKUScreenConst.SCREEN_ID_KUW00201);
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JKUScreenConst.SCREEN_NAME_KUW00201);
		
		return true;
	}
	
	/**
	 * 名称検索ボタン押下イベント
	 * @return boolean
	 * @throws Exception 例外発生時
	 */
	public boolean action_NmSearch() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		// 検索処理
		nmSearch();
		
		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JKUScreenConst.SCREEN_ID_KUW00201);
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JKUScreenConst.SCREEN_NAME_KUW00201);
		
		return true;
	}
	
	/**
	 * 登録確認ボタン押下イベント
	 * @return boolean
	 * @throws Exception 例外発生時
	 */
	public boolean action_AddCfm() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		// 名称検索成功時かつ料金グループコードエラーがない時に登録確認画面に遷移する
		if(nmSearch() && prcGrpCdErrChk())
		{
			// リストビーンの選択内容を次画面表示用のビーンに移す
			setListBeanToBean();
			
			// 登録確認処理
			insert(JPCModelConstant.FUNC_CD_2);
			
			// メッセージの設定
			String[] msgRp = new String[]{"登録"};
			JCCWebCommon.setMessageInfo(this, "EKB0370--I", msgRp);
			
			// 背景色の変更
			JCCWebCommon.setMessageAreaBackColor(this, "1");
			
			// 遷移先の画面IDを共有フォームBeanの項目に設定する。
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
					X31CWebConst.DATABEAN_SET_VALUE, JKUScreenConst.SCREEN_ID_KUW00202);
			
			// 遷移先の画面名を共有フォームBeanの項目に設定する。
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
					X31CWebConst.DATABEAN_SET_VALUE, JKUScreenConst.SCREEN_NAME_KUW00202);
		}
		
		return true;
	}
	
	/**
	 * 戻るボタン押下イベント
	 * @return boolean
	 * @throws Exception 例外発生時
	 */
	public boolean action_Rtrn() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		String screenId = bean.sendMessageString(KUW00201SFConst.OTHER_SCREENID, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, screenId);
		
		return true;
	}
	
	/**
	 * 確定ボタン押下イベント
	 * @return boolean
	 * @throws Exception 例外発生時
	 */
	public boolean action_Fix() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		// 検索処理
		if(!mskmInfoSearch())
		{
			return true;
		}
		
		// 関連エラーチェック
		if(knrnErrChk())
		{
			// 登録処理
			insert(JPCModelConstant.FUNC_CD_1);
			
			String[] msgRp = new String[]{"登録"};
			JCCWebCommon.setMessageInfo(this, "EKB0380--I", msgRp);
			
			// 遷移先の画面IDを共有フォームBeanの項目に設定する。
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
					X31CWebConst.DATABEAN_SET_VALUE, JKUScreenConst.SCREEN_ID_KUW00203);
			
			// 遷移先の画面名を共有フォームBeanの項目に設定する。
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
					X31CWebConst.DATABEAN_SET_VALUE, JKUScreenConst.SCREEN_NAME_KUW00203);
		}
		
		return true;
	}
	
	/**
	 * 修正ボタン押下イベント
	 * @return boolean
	 * @throws Exception 例外発生時
	 */
	public boolean action_Shusei() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JKUScreenConst.SCREEN_ID_KUW00201);
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JKUScreenConst.SCREEN_NAME_KUW00201);
		
		return true;
	}
	
	/**
	 * 完了ボタン押下イベント
	 * @return boolean
	 * @throws Exception 例外発生時
	 */
	public boolean action_Fin() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		formClear(false);
		
		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JKUScreenConst.SCREEN_ID_KUW00201);
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JKUScreenConst.SCREEN_NAME_KUW00201);
		
		return true;
	}
	
	/**
	 * 申込情報取得サービスの呼び出し
	 * @return boolean
	 * @throws Exception 例外発生時
	 */
	public boolean mskmInfoSearch() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		X31SDataBeanAccessArray beanList = paramBean[0].getDataBeanArray(KUW00201SFConst.EKU0011B040CBSMSG1LIST);
		
		if(beanList.getCount() != 0)
		{
			beanList.clearArray();
		}
		
		// サービス呼出処理
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// マッピングクラスのインスタンスを生成
		KUSV0028_KUSV0028OPDBMapper mapper = new KUSV0028_KUSV0028OPDBMapper();
		
		// ユースケースＩＤを設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, MSKMINFOSTKU_USECASE_ID_01);
		
		// 上りマッピング
		// マッピングクラスの呼び出し
		mapper.setKUSV002801SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		
		// サービス呼出
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return false;
		}
		
		// 下りマッピング
		// マッピングクラスの呼び出し
		mapper.getKUSV002801SC(paramBean, outputMap);
		
		beanList = paramBean[0].getDataBeanArray(KUW00201SFConst.EKU0011B040CBSMSG1LIST);
		
		if(beanList.getCount() == 0)
		{
			String[] msgRp = new String[]{"工事案件", "データ"};
			JCCWebCommon.setMessageInfo(this, "EKB0300-KW", msgRp);
			
			//処理を終了する
			return false;
		}
		else
		{
			// 工事案件一覧照会（申込情報取得）明細の一行目の内容を転記
			X31SDataBeanAccess listDataBeanKojiak = bean.getDataBeanArray(KUW00201SFConst.EKU0011B040CBSMSG1LIST).getDataBean(0);
			// サービス契約番号
			bean.sendMessageString(KUW00201SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE,
					listDataBeanKojiak.sendMessageString(KUW00201SFConst.SVC_KEI_NO_02, X31CWebConst.DATABEAN_GET_VALUE));
			// 工事案件ステータス
			bean.sendMessageString(KUW00201SFConst.KOJIAK_STAT, X31CWebConst.DATABEAN_SET_VALUE,
					listDataBeanKojiak.sendMessageString(KUW00201SFConst.KOJIAK_STAT_02, X31CWebConst.DATABEAN_GET_VALUE));
			// 工事案件種別コード
			bean.sendMessageString(KUW00201SFConst.KOJIAK_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE,
					listDataBeanKojiak.sendMessageString(KUW00201SFConst.KOJIAK_SBT_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
			// お客様名
			bean.sendMessageString(KUW00201SFConst.CUST_NM, X31CWebConst.DATABEAN_SET_VALUE,
					listDataBeanKojiak.sendMessageString(KUW00201SFConst.CUST_NM_02, X31CWebConst.DATABEAN_GET_VALUE));
			// 配送作成済フラグ
			bean.sendMessageString(KUW00201SFConst.HAISO_SAKSEI_ZUMI_FLG, X31CWebConst.DATABEAN_SET_VALUE,
					listDataBeanKojiak.sendMessageString(KUW00201SFConst.HAISO_SAKSEI_ZUMI_FLG_02, X31CWebConst.DATABEAN_GET_VALUE));
			// 料金グループコード
			bean.sendMessageString(KUW00201SFConst.PRC_GRP_CD, X31CWebConst.DATABEAN_SET_VALUE,
					listDataBeanKojiak.sendMessageString(KUW00201SFConst.PRC_GRP_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
			// 料金コースコード
			bean.sendMessageString(KUW00201SFConst.PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE,
					listDataBeanKojiak.sendMessageString(KUW00201SFConst.PCRS_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
			// 料金プランコード
			bean.sendMessageString(KUW00201SFConst.PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE,
					listDataBeanKojiak.sendMessageString(KUW00201SFConst.PPLAN_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
			// 割引タイプコード
			bean.sendMessageString(KUW00201SFConst.WRIB_TYPE_CD, X31CWebConst.DATABEAN_SET_VALUE,
					listDataBeanKojiak.sendMessageString(KUW00201SFConst.WRIB_TYPE_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
			// マンション物件コード
			bean.sendMessageString(KUW00201SFConst.MANSION_BUKKEN_CD, X31CWebConst.DATABEAN_SET_VALUE,
					listDataBeanKojiak.sendMessageString(KUW00201SFConst.MANSION_BUKKEN_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
			// マンション通信設備コード
			bean.sendMessageString(KUW00201SFConst.MANS_TUSHIN_EQUIP_CD, X31CWebConst.DATABEAN_SET_VALUE,
					listDataBeanKojiak.sendMessageString(KUW00201SFConst.MANS_TUSHIN_EQUIP_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
			// IP払出コード
			bean.sendMessageString(KUW00201SFConst.IP_HRADSI_CD, X31CWebConst.DATABEAN_SET_VALUE,
					listDataBeanKojiak.sendMessageString(KUW00201SFConst.IP_HRADSI_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
			// マンション工事案件状態コード
			bean.sendMessageString(KUW00201SFConst.MANS_KOJIAK_STAT_CD, X31CWebConst.DATABEAN_SET_VALUE,
					listDataBeanKojiak.sendMessageString(KUW00201SFConst.MANS_KOJIAK_STAT_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
// ANK-3989-00-00 ADD START
			// 提供方式パターンコード
			bean.sendMessageString(KUW00201SFConst.TK_HOSHIKI_PATTERN_CD, X31CWebConst.DATABEAN_SET_VALUE,
					listDataBeanKojiak.sendMessageString(KUW00201SFConst.TK_HOSHIKI_PATTERN_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
			// 棟内速度コード
			bean.sendMessageString(KUW00201SFConst.TONAI_SPEED_CD, X31CWebConst.DATABEAN_SET_VALUE,
					listDataBeanKojiak.sendMessageString(KUW00201SFConst.TONAI_SPEED_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
// ANK-3989-00-00 ADD END
			
			// 工事案件番号保持用
			bean.sendMessageString(KUW00201SFConst.KOJIAK_NO_HOJI, X31CWebConst.DATABEAN_SET_VALUE,
					bean.sendMessageString(KUW00201SFConst.KOJIAK_NO, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 工事契約サービスコード取得に使用するマップ
			HashMap<String, String> eoKokyakuMap = new HashMap<String, String>();
			
			eoKokyakuMap.put(JKUStrConst.RNKI_SYS_PRC_GRP_CD,
					bean.sendMessageString(KUW00201SFConst.PRC_GRP_CD, X31CWebConst.DATABEAN_GET_VALUE));
			eoKokyakuMap.put(JKUStrConst.RNKI_SYS_PCRS_CD,
					bean.sendMessageString(KUW00201SFConst.PCRS_CD, X31CWebConst.DATABEAN_GET_VALUE));
			eoKokyakuMap.put(JKUStrConst.RNKI_SYS_PPLAN_CD,
					bean.sendMessageString(KUW00201SFConst.PPLAN_CD, X31CWebConst.DATABEAN_GET_VALUE));
			eoKokyakuMap.put(JKUStrConst.RNKI_SYS_WRIB_TYPE_CD,
					bean.sendMessageString(KUW00201SFConst.WRIB_TYPE_CD, X31CWebConst.DATABEAN_GET_VALUE));
			eoKokyakuMap.put(JKUStrConst.RNKI_SYS_MANS_BUKKEN_CD,
					bean.sendMessageString(KUW00201SFConst.MANSION_BUKKEN_CD, X31CWebConst.DATABEAN_GET_VALUE));
			eoKokyakuMap.put(JKUStrConst.RNKI_SYS_MANS_TSN_STB_CD,
					bean.sendMessageString(KUW00201SFConst.MANS_TUSHIN_EQUIP_CD, X31CWebConst.DATABEAN_GET_VALUE));
			eoKokyakuMap.put(JKUStrConst.RNKI_SYS_IP_HARAIDASHI,
					bean.sendMessageString(KUW00201SFConst.IP_HRADSI_CD, X31CWebConst.DATABEAN_GET_VALUE));
			eoKokyakuMap.put(JKUStrConst.RNKI_SYS_SYSTEM,
					JKUStrConst.RNKI_SYSTEM_OPMS);
// ANK-3989-00-00 ADD START
// ANK-4244-00-00 MOD START
//			// 提供方式パターンコードが"51"(光コンセント) かつ、棟内速度コードが"008"(5G/5G)、"009"(10G/10G)の場合
//			if (JKUStrConst.CD01213_HKR_SOCKET.equals(bean.sendMessageString(KUW00201SFConst.TK_HOSHIKI_PATTERN_CD, X31CWebConst.DATABEAN_GET_VALUE))
//					&& (JKUStrConst.TONAI_SPEED_CD_5G_5G.equals(bean.sendMessageString(KUW00201SFConst.TONAI_SPEED_CD, X31CWebConst.DATABEAN_GET_VALUE))
//							|| JKUStrConst.TONAI_SPEED_CD_10G_10G.equals(bean.sendMessageString(KUW00201SFConst.TONAI_SPEED_CD, X31CWebConst.DATABEAN_GET_VALUE))))
			if ((JKUStrConst.TONAI_SPEED_CD_5G_5G.equals(bean.sendMessageString(KUW00201SFConst.TONAI_SPEED_CD, X31CWebConst.DATABEAN_GET_VALUE))
				|| JKUStrConst.TONAI_SPEED_CD_10G_10G.equals(bean.sendMessageString(KUW00201SFConst.TONAI_SPEED_CD, X31CWebConst.DATABEAN_GET_VALUE))))
// ANK-4244-00-00 MOD END
			{
				eoKokyakuMap.put(JKUStrConst.RNKI_SYS_TK_HOSHIKI_PATTERN_CD,
						bean.sendMessageString(KUW00201SFConst.TK_HOSHIKI_PATTERN_CD, X31CWebConst.DATABEAN_GET_VALUE));
				eoKokyakuMap.put(JKUStrConst.RNKI_SYS_TONAI_SPEED_CD,
						bean.sendMessageString(KUW00201SFConst.TONAI_SPEED_CD, X31CWebConst.DATABEAN_GET_VALUE));
			}
			else
			{
				eoKokyakuMap.put(JKUStrConst.RNKI_SYS_TK_HOSHIKI_PATTERN_CD, null);
				eoKokyakuMap.put(JKUStrConst.RNKI_SYS_TONAI_SPEED_CD, null);
			}
// ANK-3989-00-00 ADD END
			
			HashMap<String, String> retMap = JKUWebCommon.getSetsubiCodeMap(eoKokyakuMap);
			
			if(retMap != null)
			{
				// 工事契約サービスコード
				bean.sendMessageString(KUW00201SFConst.KOJI_KEI_SVC_CD, X31CWebConst.DATABEAN_SET_VALUE,
						retMap.get(JKUStrConst.RNKI_SYS_KKEI_SVC_CD));
				
				// 工事料金プランコード
				bean.sendMessageString(KUW00201SFConst.KOJI_PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE,
						retMap.get(JKUStrConst.RNKI_SYS_PPLAN_CD));
			}
		}
		
		return true;
	}
	
	/**
	 * 名称取得サービスの呼び出し
	 * @return boolean
	 * @throws Exception 例外発生時
	 */
	public boolean nmSearch() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		X31SDataBeanAccessArray beanList = paramBean[0].getDataBeanArray(KUW00201SFConst.EZM0381A010CBSMSG1LIST);
		
		if(beanList.getCount() != 0)
		{
			beanList.clearArray();
		}
		
		// サービス呼出処理
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// マッピングクラスのインスタンスを生成
		KUSV0029_KUSV0029OPDBMapper mapper = new KUSV0029_KUSV0029OPDBMapper();
		
		// ユースケースＩＤを設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, NMSEARCH_USECASE_ID_01);
		
		// 上りマッピング
		// マッピングクラスの呼び出し
		mapper.setKUSV002901SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		
		// サービス呼出
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return false;
		}
		
		// 下りマッピング
		// マッピングクラスの呼び出し
		mapper.getKUSV002901SC(paramBean, outputMap);
		
		beanList = paramBean[0].getDataBeanArray(KUW00201SFConst.EZM0381A010CBSMSG1LIST);
		
		if(beanList.getCount() == 0)
		{
			setKojiCompError(bean);
			return false;
		}
		else
		{
			// 工事会社一意照会明細の工事会社名称を配送先営業所工事会社名称に転記
			X31SDataBeanAccess listDataBeanComp = bean.getDataBeanArray(KUW00201SFConst.EZM0381A010CBSMSG1LIST).getDataBean(0);
			
			String kojiCompKaisouCd = listDataBeanComp.sendMessageString(KUW00201SFConst.KOJI_COMP_KAISOU_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
			
			if("98".equals(kojiCompKaisouCd))
			{
				bean.sendMessageString(KUW00201SFConst.HISOS_BUIOFFC_KOJI_COMP_NM, X31CWebConst.DATABEAN_SET_VALUE,
						listDataBeanComp.sendMessageString(KUW00201SFConst.KOJI_COMP_NM_03, X31CWebConst.DATABEAN_GET_VALUE));
			}
			else
			{
				setKojiCompError(bean);
				return false;
			}
		}
		
		return true;
	}
	
	/**
	 * 工事会社エラー処理
	 * @param bean
	 */
	private void setKojiCompError(X31SDataBeanAccess bean)
	{
		String[] msgRp = new String[]{"工事会社", "データ"};
		JCCWebCommon.setMessageInfo(this, "EKB0300-KW", msgRp);
		
		// 配送先営業所工事会社名称をクリア
		bean.sendMessageString(KUW00201SFConst.HISOS_BUIOFFC_KOJI_COMP_NM, X31CWebConst.DATABEAN_SET_VALUE, "");
	}
	
	/**
	 * 登録サービスの呼び出し
	 * @param funcCd 機能コード
	 * @return boolean
	 * @throws Exception 例外発生時
	 */
	public boolean insert(String funcCd) throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// マッピングクラスのインスタンスを生成
		KUSV0030_KUSV0030OPDBMapper mapper = new KUSV0030_KUSV0030OPDBMapper();
		
		// ユースケースＩＤを設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, INS_USECASE_ID_01);
		mapper.setKUSV003001SC(paramBean, inputMap, funcCd);
		
		// サービス呼出
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		return true;
	}
	
	/**
	 * リストビーンの選択内容を次画面表示用のビーンに移す
	 * @throws Exception
	 */
	private void setListBeanToBean() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		//OPMS連携リスト
		JKUWebCommon.setSelectListCdAndNm(bean, KUW00201SFConst.OPMS_RNKI_LIST
				, KUW00201SFConst.OPMS_RNKI_CD, KUW00201SFConst.OPMS_RNKI_NM);
		// 工事予定申込形態リスト
		JKUWebCommon.setSelectListCdAndNm(bean, KUW00201SFConst.KOJI_RSV_MSKM_FORM_LIST
				, KUW00201SFConst.KOJI_RSV_MSKM_FORM_CD, KUW00201SFConst.KOJI_RSV_MSKM_FORM_NM);
		// 子機メーカーリスト
		JKUWebCommon.setSelectListCdAndNm(bean, KUW00201SFConst.KOKI_MAKER_LIST
				, KUW00201SFConst.KOKI_MAKER_CD, KUW00201SFConst.KOKI_MAKER_NM);
		// VAメーカーリスト
		JKUWebCommon.setSelectListCdAndNm(bean, KUW00201SFConst.VA_MAKER_LIST
				, KUW00201SFConst.VA_MAKER_CD, KUW00201SFConst.VA_MAKER_NM);
		// IP工事案件種別リスト
		JKUWebCommon.setSelectListCdAndNm(bean, KUW00201SFConst.IP_KOJIAK_SBT_LIST
				, KUW00201SFConst.IP_KOJIAK_SBT_CD, KUW00201SFConst.IP_KOJIAK_SBT_NM);
		// 工事予定V-ONUメーカーリスト
		JKUWebCommon.setSelectListCdAndNm(bean, KUW00201SFConst.KOJI_RSV_VONU_MAKER_LIST
				, KUW00201SFConst.KOJI_RSV_VONU_MAKER_CD, KUW00201SFConst.KOJI_RSV_VONU_MAKER_NM);
		// TV工事案件種別リスト
		JKUWebCommon.setSelectListCdAndNm(bean, KUW00201SFConst.TV_KOJIAK_SBT_LIST
				, KUW00201SFConst.TV_KOJIAK_SBT_CD, KUW00201SFConst.TV_KOJIAK_SBT_NM);
		
	}
	
	/**
	 * フォームを初期状態にクリアする
	 * @param mskmInfoStkuFlg 申込情報取得ボタンから呼ばれたかどうかを判断
	 */
	private void formClear(boolean mskmInfoStkuFlg)
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// 入力活性、非活性の制御フラグを活性にする
		bean.sendMessageString(KUW00201SFConst.NET_YK_FLG, X31CWebConst.DATABEAN_SET_VALUE, JKUStrConst.DISP_FLG_TRUE);
		bean.sendMessageString(KUW00201SFConst.TV_YK_FLG, X31CWebConst.DATABEAN_SET_VALUE, JKUStrConst.DISP_FLG_TRUE);
		
		// 表示項目にすべて空白を設定する
		ArrayList<String> keyList = new ArrayList<String>();
		
		// 申込情報取得ボタンから呼ばれた場合は工事案件番号はクリアしない
		if(!mskmInfoStkuFlg)
		{
			// 工事案件番号
			keyList.add(KUW00201SFConst.KOJIAK_NO);
		}
		// 工事案件番号保持用
		keyList.add(KUW00201SFConst.KOJIAK_NO_HOJI);
		// サービス契約番号
		keyList.add(KUW00201SFConst.SVC_KEI_NO);
		// お客様名
		keyList.add(KUW00201SFConst.CUST_NM);
		// OPMS連携コード
		keyList.add(KUW00201SFConst.OPMS_RNKI_CD);
		// OPMS連携名称
		keyList.add(KUW00201SFConst.OPMS_RNKI_NM);
		// 配送先営業所工事会社コード
		keyList.add(KUW00201SFConst.HISOS_BUIOFFC_KOJI_COMP_CD);
		// 配送先営業所工事会社名称
		keyList.add(KUW00201SFConst.HISOS_BUIOFFC_KOJI_COMP_NM);
		// 工事予定設計書番号
		keyList.add(KUW00201SFConst.KOJI_RSV_DSGN_BUNSHO_NO);
		// 工事予定申込形態コード
		keyList.add(KUW00201SFConst.KOJI_RSV_MSKM_FORM_CD);
		// 工事予定申込形態名称
		keyList.add(KUW00201SFConst.KOJI_RSV_MSKM_FORM_NM);
		// 子機メーカーコード
		keyList.add(KUW00201SFConst.KOKI_MAKER_CD);
		// 子機メーカー名称
		keyList.add(KUW00201SFConst.KOKI_MAKER_NM);
		// VAメーカーコード
		keyList.add(KUW00201SFConst.VA_MAKER_CD);
		// VAメーカー名称
		keyList.add(KUW00201SFConst.VA_MAKER_NM);
		// IP工事案件種別コード
		keyList.add(KUW00201SFConst.IP_KOJIAK_SBT_CD);
		// IP工事案件種別名称
		keyList.add(KUW00201SFConst.IP_KOJIAK_SBT_NM);
		// 工事予定V-ONUメーカーコード
		keyList.add(KUW00201SFConst.KOJI_RSV_VONU_MAKER_CD);
		// 工事予定V-ONUメーカー名称
		keyList.add(KUW00201SFConst.KOJI_RSV_VONU_MAKER_NM);
		// TV工事案件種別コード
		keyList.add(KUW00201SFConst.TV_KOJIAK_SBT_CD);
		// TV工事案件種別名称
		keyList.add(KUW00201SFConst.TV_KOJIAK_SBT_NM);
		// 工事案件種別コード
		keyList.add(KUW00201SFConst.KOJIAK_SBT_CD);
		// 機器出荷予定日算出基準年月日
		keyList.add(KUW00201SFConst.KKSHKA_RSVD_SNSTSTD_YMD);
		// 工事案件ステータス
		keyList.add(KUW00201SFConst.KOJIAK_STAT);
		// 配送作成済フラグ
		keyList.add(KUW00201SFConst.HAISO_SAKSEI_ZUMI_FLG);
		// 料金グループコード
		keyList.add(KUW00201SFConst.PRC_GRP_CD);
		// 料金コースコード
		keyList.add(KUW00201SFConst.PCRS_CD);
		// 料金プランコード
		keyList.add(KUW00201SFConst.PPLAN_CD);
		// 割引タイプコード
		keyList.add(KUW00201SFConst.WRIB_TYPE_CD);
		// マンション物件コード
		keyList.add(KUW00201SFConst.MANSION_BUKKEN_CD);
		// マンション通信設備コード
		keyList.add(KUW00201SFConst.MANS_TUSHIN_EQUIP_CD);
		// IP払出コード
		keyList.add(KUW00201SFConst.IP_HRADSI_CD);
		// 工事契約サービスコード
		keyList.add(KUW00201SFConst.KOJI_KEI_SVC_CD);
		// 工事料金プランコード
		keyList.add(KUW00201SFConst.KOJI_PPLAN_CD);
// ANK-3989-00-00 ADD START
		// 提供方式パターンコード
		keyList.add(KUW00201SFConst.TK_HOSHIKI_PATTERN_CD);
		// 棟内速度コード
		keyList.add(KUW00201SFConst.TONAI_SPEED_CD);
// ANK-3989-00-00 ADD END
		
		JKUWebCommon.clearTxtBean(bean, keyList);
		
		// リスト系はインデックス初期値の"0"を設定する
		// OPMS連携リスト
		JKUWebCommon.setListIndex(bean, KUW00201SFConst.OPMS_RNKI_LIST, "0");
		// 工事予定申込形態リスト
		JKUWebCommon.setListIndex(bean, KUW00201SFConst.KOJI_RSV_MSKM_FORM_LIST, "0");
		// 子機メーカーリスト
		JKUWebCommon.setListIndex(bean, KUW00201SFConst.KOKI_MAKER_LIST, "0");
		// VAメーカーリスト
		JKUWebCommon.setListIndex(bean, KUW00201SFConst.VA_MAKER_LIST, "0");
		// IP工事案件種別リスト
		JKUWebCommon.setListIndex(bean, KUW00201SFConst.IP_KOJIAK_SBT_LIST, "0");
		// 工事予定V-ONUメーカーリスト
		JKUWebCommon.setListIndex(bean, KUW00201SFConst.KOJI_RSV_VONU_MAKER_LIST, "0");
		// TV工事案件種別リスト
		JKUWebCommon.setListIndex(bean, KUW00201SFConst.TV_KOJIAK_SBT_LIST, "0");
	}
	
	/**
	 * 活性、非活性の設定
	 */
	private void setAbleDisable()
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// ネットフラグ
		boolean netFlg = false;
		// ネット契約の料金グループコードの配列
		String[] prcGrpCdList = {JKUStrConst.CD00133_EO64AIR, JKUStrConst.CD00133_EOH_HOME
				, JKUStrConst.CD00133_EOH_MEZON, JKUStrConst.CD00133_EOH_NTMANS, JKUStrConst.CD00133_EOH_TEL};
		// 取得した料金グループコード
		String prcGrpCd = bean.sendMessageString(KUW00201SFConst.PRC_GRP_CD, X31CWebConst.DATABEAN_GET_VALUE);
		
		for(String prcGrpCdSub : prcGrpCdList)
		{
			if(prcGrpCdSub.equals(prcGrpCd))
			{
				netFlg = true;
			}
		}
		
		// 工事案件種別
		String kojiakSbt = bean.sendMessageString(KUW00201SFConst.KOJIAK_SBT_CD, X31CWebConst.DATABEAN_GET_VALUE);
		
		if(netFlg)
		{
			bean.sendMessageString(KUW00201SFConst.NET_YK_FLG, X31CWebConst.DATABEAN_SET_VALUE, JKUStrConst.DISP_FLG_TRUE);
			bean.sendMessageString(KUW00201SFConst.TV_YK_FLG, X31CWebConst.DATABEAN_SET_VALUE, JKUStrConst.DISP_FLG_FALSE);
			
			// 工事予定V-ONUメーカーリスト
			JKUWebCommon.setListIndex(bean, KUW00201SFConst.KOJI_RSV_VONU_MAKER_LIST, "0");
			// TV工事案件種別リスト
			JKUWebCommon.setListIndex(bean, KUW00201SFConst.TV_KOJIAK_SBT_LIST, "0");
			
			if(JKUStrConst.CD00577_MNKHT.equals(kojiakSbt))
			{
				// 面開発の時は機器出荷予定日算出基準年月日にNULLを設定する
				bean.sendMessageString(KUW00201SFConst.KKSHKA_RSVD_SNSTSTD_YMD, X31CWebConst.DATABEAN_SET_VALUE, null);
			}
			else
			{
				// 面開発でないの時は機器出荷予定日算出基準年月日に工事予定年月日を設定する
				bean.sendMessageString(KUW00201SFConst.KKSHKA_RSVD_SNSTSTD_YMD, X31CWebConst.DATABEAN_SET_VALUE, 
						bean.sendMessageString(KUW00201SFConst.KOJI_RSV_YMD, X31CWebConst.DATABEAN_GET_VALUE));
			}
			
		}
		else
		{
			bean.sendMessageString(KUW00201SFConst.NET_YK_FLG, X31CWebConst.DATABEAN_SET_VALUE, JKUStrConst.DISP_FLG_FALSE);
			bean.sendMessageString(KUW00201SFConst.TV_YK_FLG, X31CWebConst.DATABEAN_SET_VALUE, JKUStrConst.DISP_FLG_TRUE);
			
			// 子機メーカーリスト
			JKUWebCommon.setListIndex(bean, KUW00201SFConst.KOKI_MAKER_LIST, "0");
			// VAメーカーリスト
			JKUWebCommon.setListIndex(bean, KUW00201SFConst.VA_MAKER_LIST, "0");
			// IP工事案件種別リスト
			JKUWebCommon.setListIndex(bean, KUW00201SFConst.IP_KOJIAK_SBT_LIST, "0");
			
			if(JKUStrConst.CD00577_EOTV_CHG.equals(kojiakSbt))
			{
				// 工事予定申込形態リスト
				JKUWebCommon.setListIndex(bean, KUW00201SFConst.KOJI_RSV_MSKM_FORM_LIST, "0");
				// TV工事案件種別リスト
				JKUWebCommon.setListIndex(bean, KUW00201SFConst.TV_KOJIAK_SBT_LIST, "0");
			}
			
			if(JKUStrConst.CD00577_MNKHT.equals(kojiakSbt) || JKUStrConst.CD00577_EOTV_CHG.equals(kojiakSbt))
			{
				// 面開発またはeo光テレビ変更の場合は工事予定年月日にNULLを設定する
				bean.sendMessageString(KUW00201SFConst.KKSHKA_RSVD_SNSTSTD_YMD, X31CWebConst.DATABEAN_SET_VALUE, null);
			}
			else
			{
				// その他の時は機器出荷予定日算出基準年月日に工事予定年月日を設定する
				bean.sendMessageString(KUW00201SFConst.KKSHKA_RSVD_SNSTSTD_YMD, X31CWebConst.DATABEAN_SET_VALUE, 
						bean.sendMessageString(KUW00201SFConst.KOJI_RSV_YMD, X31CWebConst.DATABEAN_GET_VALUE));
			}
		}
	}
	
	/**
	 * 料金グループコードエラーチェック
	 * @return boolean
	 * @throws Exception
	 */
	private boolean prcGrpCdErrChk() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		// 工事契約サービスコード
		String kojiKeiSvcCd = bean.sendMessageString(KUW00201SFConst.KOJI_KEI_SVC_CD, X31CWebConst.DATABEAN_GET_VALUE);
		// リストから選択されたOPMS連携コードの前二桁
		String opmsRnkiCd = JKUWebCommon.getSelectListCd(bean, KUW00201SFConst.OPMS_RNKI_LIST).substring(0, 2);
		
		// 工事契約サービスコードと選択されたOPMS連携コードの前二桁が異なる場合エラー
		if(!opmsRnkiCd.equals(kojiKeiSvcCd))
		{
			String[] msgRp = new String[]{"連携コード", "登録"};
			JCCWebCommon.setMessageInfo(this, "EKB0810-NW", msgRp);
			
			return false;
		}
		return true;
	}
	
	/**
	 * 関連エラーチェック
	 * @return boolean
	 */
	private boolean knrnErrChk()
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		// 申込情報取得ボタンで取得した工事案件ステータス
		String kojiakStat = bean.sendMessageString(KUW00201SFConst.KOJIAK_STAT, X31CWebConst.DATABEAN_GET_VALUE);
		// 申込情報取得ボタンで取得したマンション工事案件ステータスコード
		String mansKojiakStatCd = bean.sendMessageString(KUW00201SFConst.MANS_KOJIAK_STAT_CD, X31CWebConst.DATABEAN_GET_VALUE);
		// 登録可能工事案件ステータスの配列
		String[] kojiakStatList = {JKUStrConst.CD00474_IRI_ZM
				, JKUStrConst.CD00474_TAKNI_CHOSA_FIN_ZM
				, JKUStrConst.CD00474_KOCOMP_KETTEI_ZM
				, JKUStrConst.CD00474_TAKNI_CHOSA_RSV_ZM
				, JKUStrConst.CD00474_KR_KAGI_KAIHAT_IRI_ZM
				, JKUStrConst.CD00474_GEMBA_SAGYO_FIN_ZM};
		// 登録可能マンション工事案件状態コードの配列
		String[] mansKojiakStatCdList = {JKUStrConst.MANS_KOJIAK_STAT_CD_IRI_ZM
				, JKUStrConst.MANS_KOJIAK_STAT_CD_KOCOMP_KETTEI_ZM};
		// 同一ステータスフラグ
		boolean sameStatFlg = false;
		// 申込情報取得ボタンで取得した配送作成済フラグ
		String haisoSakseiZumiFlg = bean.sendMessageString(KUW00201SFConst.HAISO_SAKSEI_ZUMI_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		// 戻り値
		boolean retVal = true;
		
		
		// 工事案件依頼済みチェック
		for(String kojiakStatSub : kojiakStatList)
		{
			// 工事案件ステータスが登録可能であればフラグをたてる
			if(kojiakStatSub.equals(kojiakStat))
			{
				sameStatFlg = true;
			}
			else if(JKUStrConst.CD00474_TOROKU_ZM.equals(kojiakStat))
			{
				for(String MansKojiakStatCdSub : mansKojiakStatCdList)
				{
					// マンション工事案件状態コードが登録可能であればフラグをたてる
					if(MansKojiakStatCdSub.equals(mansKojiakStatCd))
					{
						sameStatFlg = true;
					}
				}
			}
		}
		
		// 工事案件ステータスとマンション工事案件状態コードエラー
		if(!sameStatFlg)
		{
			String[] msgRp = new String[]{"工事案件ステータス","工事依頼済以外","処理"};
			JCCWebCommon.setMessageInfo(this, "EKB0290-JW", msgRp);
			
			// 戻り値にfalseを設定
			retVal = false;
		}
		
		// 配送作成済フラグが配送未作成以外であればエラー
		if(!JKUStrConst.CD00898_HAISO_MI_SAKUSEI.equals(haisoSakseiZumiFlg))
		{
			String[] msgRp = new String[]{"配送作成済の", "登録"};
			JCCWebCommon.setMessageInfo(this, "EKB0930-NW", msgRp);
			
			// 戻り値にfalseを設定
			retVal = false;
		}
		
		return retVal;
	}
}
