/*********************************************************************
* All Rights reserved.Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：契約管理システム
*   モジュール名    ：KKW14901SFLogic
*   ソースファイル名：KKW14901SFLogic.java
*   作成者          ：FJ
*   日付            ：2012年09月11日
*＜機能概要＞
*   番ポなし番号事前通知一覧照会画面 Viewロジックです。
*＜修正履歴＞
*	バージョン	修正日			修正者		修正内容
*	v4.00       2012/09/11		FJ）中尾	新規作成
*	v4.01       2012/10/05		FJ）日高	画面組換対応
*
**********************************************************************/
package eo.web.webview.KKW14901SF;

import java.util.HashMap;
import java.util.Iterator;

import com.fujitsu.futurity.common.JSYwebLog;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JKKStringUtil;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.KKW14902SF.KKW14902SFConst;
import eo.web.webview.KKW14902SF.KKW14902SFLogic;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.common.JKKWebCommon;
import eo.web.webview.common.JZMScreenConst;
import eo.web.webview.mapping.KKSV0694_KKSV0694OPDBMapper;
import eo.web.webview.mapping.KKSV0695_KKSV0695OPDBMapper;
import eo.web.webview.mapping.KKSV0696_KKSV0696OPDBMapper;
import eo.web.webview.mapping.KKSV0697_KKSV0697OPDBMapper;

/**
 * 番ポなし番号事前通知書のデータを検索、表示する画面です。<br>
 * 番ポなし番号事前通知詳細画面、抑止番号登録画面に遷移可能です。<br>
 * <p>
 * また、番ポなし番号事前通知書作成のデータ抽出ジョブ、<br>
 * および番ポなし番号事前通知書データを送信するジョブを起動します。<br>
 * <p>
 * <BR>
 * @author FJ
 */
@SuppressWarnings("serial")
public class KKW14901SFLogic extends JCCWebBusinessLogic
{
	/** 依頼ジョブID（データ抽出） */
	public static final String REQ_JOB_ID_DATA_CHSHT = "EO22V0510J0";
	/** 依頼ジョブID（ヤマト送信） */
	public static final String REQ_JOB_ID_YAMATO_SEND = "EO22V0110J0";
	/** ディレイド処理依頼種別コード（データ抽出） */
	public static final String DLYD_TRN_REQ_SBT_DATA_CHSHT = "10305";
	/** ディレイド処理依頼種別コード（ヤマト送信） */
	public static final String DLYD_TRN_REQ_SBT_YAMATO_SEND = "10301";
	/** 検索フラグ（要） */
	private static final String SEARCH_FLG_Y = "1";
	/** 検索フラグ（不要） */
	private static final String SEARCH_FLG_N = "0";
	/** 未送信フラグ（未送信） */
	private static final String MI_SEND_FLG_Y = "1";
	/** ソート順（昇順） */
	private static final String ORDERTYPE_ASC = "1";
	/** ソート順（降順） */
	private static final String ORDERTYPE_DESC = "2";
	/** ページングのコマンドID */
	private static final String PAGING_CMD = "paging";
	/** データ抽出実行結果（正常） */
	private static final String RSLT_DATA_CHSHT_OK = "0";
	/** データ抽出実行結果（抽出バッチ実行エラー） */
	private static final String RSLT_DATA_CHSHT_NG1 = "1";
	/** データ抽出実行結果（送信バッチ実行エラー） */
	private static final String RSLT_DATA_CHSHT_NG2 = "2";
	/** ヤマト送信実行結果（正常） */
	private static final String RSLT_YAMATO_SEND_OK = "0";
	/** ヤマト送信実行結果（未送信データなしエラー） */
	private static final String RSLT_YAMATO_SEND_NG1 = "1";
	/** ヤマト送信実行結果（抽出バッチ実行エラー） */
	private static final String RSLT_YAMATO_SEND_NG2 = "2";
	/** ヤマト送信実行結果（送信バッチ実行エラー） */
	private static final String RSLT_YAMATO_SEND_NG3 = "3";
	/** 一覧部の奇数行のスタイル */
	private static final String ROW_STYLE_ODD = "odd";
	/** 一覧部の偶数行のスタイル */
	private static final String ROW_STYLE_EVEN = "even";
	
	
	/**
	 * 初期表示処理<br>
	 * <br>
	 * １．画面情報を取得し、サービスフォームBeanに設定します。<br>
	 * ２．プルダウン表示のためのサービスの呼び出しを行います。<br>
	 * ３．検索要の場合（後続画面からの戻り遷移時）は、検索実行処理を行います。<br>
	 * ４．画面表示用にDataBeanに格納します。<br>
	 * <br>
	 *
	 * @return 正常／異常
	 * @throws Exception 
	 */
	public boolean actionInit() throws Exception
	{
		debugLog("-- actionInit[START] --");
		
		// 画面情報を取得し、サービスフォームBeanに設定
		JCCWebCommon.getScreenInfo(this);
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// 検索系フラグ、および検索結果の初期化
		clearSearchItem(bean);
		
		// 検索フラグを取得
		String search_flg = bean.sendMessageString(KKW14901SFConst.SEARCH_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 上りマッピング処理
		KKSV0694_KKSV0694OPDBMapper mapper = new KKSV0694_KKSV0694OPDBMapper();
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		
		mapper.setKKSV069401SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setBmpNonNoPreTchiReSearchCC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		
		// 検索フラグが「要」の場合
		if (SEARCH_FLG_Y.equals(search_flg))
		{
			// ページング情報上りマッピング
			JCCWebCommon.upmapperPageLinkInfo(this, "BmpNonNoPreTchiReSearchCC", inputMap, JKKScreenConst.SCREEN_ID_KKW14901);
		}
		
		// サービス呼出（番ポなし番号事前通知一覧照会初期表示）
		HashMap<String, Object> outputMap = invokeService("KKSV0694", "KKSV0694OP", inputMap);
		
		// 下りマッピング処理
		JKKWebCommon.setPulldownList(bean, outputMap, KKW14901SFConst.SEND_JGI_INFO, "KKSV069401SC", true);
		
		// 検索フラグが「要」の場合
		if (SEARCH_FLG_Y.equals(search_flg))
		{
			// 検索結果情報のマッピング処理
			mapper.getBmpNonNoPreTchiReSearchCC(paramBean, outputMap);
			
			// 検索後処理
			afterSearch(bean, outputMap);
		}
		
		// 共有フォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// 画面名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_NAME_KKW14901);
		
		// プルダウン／チェックボックス選択値の設定
		setPulldownChkboxSelected(bean, search_flg);
		
		// v4.01 画面組換対応 start
		if (!SEARCH_FLG_Y.equals(search_flg))
		{
			// メニュー画面以外から遷移していれば戻るボタン表示フラグをONにする。
			String nextScreen = JCCWebCommon.getScreenId(this);
			if(nextScreen == null || "".equals(nextScreen) || nextScreen.equals(JZMScreenConst.SCREEN_ID_ZMW06901))
			{
				bean.sendMessageBoolean(KKW14901SFConst.RTN_BTN_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
			}
			else
			{
				bean.sendMessageBoolean(KKW14901SFConst.RTN_BTN_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);
			}
		}
		// v4.01 画面組換対応 end

		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		debugLog("-- actionInit[END] --");
		return true;
	}
	
	/**
	 * 検索処理<br>
	 * <br>
	 * １．検索条件を退避します。
	 * ２．検索実行処理を行います。<br>
	 * <br>
	 *
	 * @return 正常／異常
	 * @throws Exception 
	 */
	public boolean actionSearch() throws Exception
	{
		debugLog("-- actionSearch[START] --");
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// DataBean設定処理
		
		// 検索用SYSID
		bean.sendMessageString(KKW14901SFConst.SEARCH_SYSID, X31CWebConst.DATABEAN_SET_VALUE,
				bean.sendMessageString(KKW14901SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 検索用サービス契約番号
		bean.sendMessageString(KKW14901SFConst.SEARCH_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE,
				bean.sendMessageString(KKW14901SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 検索用データ抽出日（自）
		String chshtymd_y_f = bean.sendMessageString(KKW14901SFConst.DATA_CHSHT_YEAR_FROM, X31CWebConst.DATABEAN_GET_VALUE);
		String chshtymd_m_f = bean.sendMessageString(KKW14901SFConst.DATA_CHSHT_MON_FROM, X31CWebConst.DATABEAN_GET_VALUE);
		String chshtymd_d_f = bean.sendMessageString(KKW14901SFConst.DATA_CHSHT_DAY_FROM, X31CWebConst.DATABEAN_GET_VALUE);
		bean.sendMessageString(KKW14901SFConst.SEARCH_DATA_CHSHTYMD_FROM, X31CWebConst.DATABEAN_SET_VALUE,
				chshtymd_y_f + chshtymd_m_f + chshtymd_d_f);
		
		// 検索用データ抽出日（至）
		String chshtymd_y_t = bean.sendMessageString(KKW14901SFConst.DATA_CHSHT_YEAR_TO, X31CWebConst.DATABEAN_GET_VALUE);
		String chshtymd_m_t = bean.sendMessageString(KKW14901SFConst.DATA_CHSHT_MON_TO, X31CWebConst.DATABEAN_GET_VALUE);
		String chshtymd_d_t = bean.sendMessageString(KKW14901SFConst.DATA_CHSHT_DAY_TO, X31CWebConst.DATABEAN_GET_VALUE);
		bean.sendMessageString(KKW14901SFConst.SEARCH_DATA_CHSHTYMD_TO, X31CWebConst.DATABEAN_SET_VALUE,
				chshtymd_y_t + chshtymd_m_t + chshtymd_d_t);
		
		// 検索用申込書番号
		bean.sendMessageString(KKW14901SFConst.SEARCH_MSKMSHO_NO, X31CWebConst.DATABEAN_SET_VALUE,
				bean.sendMessageString(KKW14901SFConst.MSKMSHO_NO, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 検索用お客様名（漢字）
		bean.sendMessageString(KKW14901SFConst.SEARCH_CUST_NM, X31CWebConst.DATABEAN_SET_VALUE,
				bean.sendMessageString(KKW14901SFConst.CUST_NM, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 検索用送信除外フラグ
		X31SDataBeanAccessArray sendjgilist = bean.getDataBeanArray(KKW14901SFConst.SEND_JGI_INFO);
		X31SDataBeanAccess sendjgiBean = sendjgilist.getDataBean(0);
		int index = Integer.parseInt(sendjgiBean.sendMessageString(KKW14901SFConst.INDEX_01, X31CWebConst.DATABEAN_GET_VALUE));
		String sendjgi_sel = sendjgiBean.sendMessageString(KKW14901SFConst.CD_DIV_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, index);
		bean.sendMessageString(KKW14901SFConst.SEARCH_SEND_JGI_FLG, X31CWebConst.DATABEAN_SET_VALUE, sendjgi_sel);
		
		// 検索用未送信
		Boolean mi_send = bean.sendMessageBoolean(KKW14901SFConst.MI_SEND, X31CWebConst.DATABEAN_GET_VALUE);
		if (mi_send.booleanValue())
		{
			bean.sendMessageString(KKW14901SFConst.SEARCH_MI_SEND, X31CWebConst.DATABEAN_SET_VALUE, MI_SEND_FLG_Y);
		}
		else
		{
			bean.sendMessageString(KKW14901SFConst.SEARCH_MI_SEND, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		
		// ソート番号の初期化
		bean.sendMessageString(KKW14901SFConst.SORT_NUM, X31CWebConst.DATABEAN_SET_VALUE, "");
		// ソート項目Noの初期化
		bean.sendMessageString(KKW14901SFConst.ORDER_NUM, X31CWebConst.DATABEAN_SET_VALUE, "");
		// ソート順の初期化
		bean.sendMessageString(KKW14901SFConst.ORDER_TYPE, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 番ポなし番号事前通知選択行の初期化
		bean.sendMessageString(KKW14901SFConst.BMPNONNOPRETCHI_CHOICE, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 加入御礼書発行番号の初期化
		bean.sendMessageString(KKW14901SFConst.KANUORESO_HAKKO_NO, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// ページリンク情報削除
		JCCWebCommon.clearPageLinkInfo(this, JKKScreenConst.SCREEN_ID_KKW14901);
		
		// 検索実行処理
		execSearch(bean);
		
		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		debugLog("-- actionSearch[END] --");
		return true;
	}
	
	/**
	 * ページャ処理<br>
	 * <br>
	 * １．検索実行処理を行います。（ソート情報は保持）<br>
	 * <br>
	 *
	 * @return 正常／異常
	 * @throws Exception 
	 */
	public boolean actionPaging() throws Exception
	{
		debugLog("-- actionPaging[START] --");
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// 番ポなし番号事前通知選択行の初期化
		bean.sendMessageString(KKW14901SFConst.BMPNONNOPRETCHI_CHOICE, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 加入御礼書発行番号の初期化
		bean.sendMessageString(KKW14901SFConst.KANUORESO_HAKKO_NO, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 検索実行処理
		execSearch(bean);
		
		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		debugLog("-- actionPaging[END] --");
		return true;
	}
	
	/**
	 * ソータ処理（昇順）<br>
	 * <br>
	 * １．選択された項目の昇順で検索実行処理を行います。<br>
	 * <br>
	 *
	 * @return 正常／異常
	 * @throws Exception 
	 */
	public boolean actionSortAsc() throws Exception
	{
		debugLog("-- actionSortAsc[START] --");
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// ソート項目Noの設定
		String sort_num = bean.sendMessageString(KKW14901SFConst.SORT_NUM, X31CWebConst.DATABEAN_GET_VALUE);
		bean.sendMessageString(KKW14901SFConst.ORDER_NUM, X31CWebConst.DATABEAN_SET_VALUE, sort_num);
		// ソート順の設定
		bean.sendMessageString(KKW14901SFConst.ORDER_TYPE, X31CWebConst.DATABEAN_SET_VALUE, ORDERTYPE_ASC);
		// 番ポなし番号事前通知選択行の初期化
		bean.sendMessageString(KKW14901SFConst.BMPNONNOPRETCHI_CHOICE, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 加入御礼書発行番号の初期化
		bean.sendMessageString(KKW14901SFConst.KANUORESO_HAKKO_NO, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 検索実行処理
		execSearch(bean);
		
		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		debugLog("-- actionSortAsc[END] --");
		return true;
	}
	
	/**
	 * ソータ処理（降順）<br>
	 * <br>
	 * １．選択された項目の降順で検索実行処理を行います。<br>
	 * <br>
	 *
	 * @return 正常／異常
	 * @throws Exception 
	 */
	public boolean actionSortDesc() throws Exception
	{
		debugLog("-- actionSortDesc[START] --");
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// ソート項目Noの設定
		String sort_num = bean.sendMessageString(KKW14901SFConst.SORT_NUM, X31CWebConst.DATABEAN_GET_VALUE);
		bean.sendMessageString(KKW14901SFConst.ORDER_NUM, X31CWebConst.DATABEAN_SET_VALUE, sort_num);
		// ソート順の設定
		bean.sendMessageString(KKW14901SFConst.ORDER_TYPE, X31CWebConst.DATABEAN_SET_VALUE, ORDERTYPE_DESC);
		// 番ポなし番号事前通知選択行の初期化
		bean.sendMessageString(KKW14901SFConst.BMPNONNOPRETCHI_CHOICE, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 加入御礼書発行番号の初期化
		bean.sendMessageString(KKW14901SFConst.KANUORESO_HAKKO_NO, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 検索実行処理
		execSearch(bean);
		
		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		debugLog("-- actionSortDesc[END] --");
		return true;
	}
	
	/**
	 * クリア処理<br>
	 * <br>
	 * １．検索項目欄をクリアします。<br>
	 * ２．プルダウンの選択値とチェックボックスは初期表示値に戻します。<br>
	 * ３．一覧表示部分は非表示にします。<br>
	 * <br>
	 *
	 * @return 正常／異常
	 * @throws Exception 
	 */
	public boolean actionClear() throws Exception
	{
		debugLog("-- actionClear[START] --");
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// プルダウンとチェックボックスの選択値の初期化
		setPulldownChkboxSelected(bean, SEARCH_FLG_N);
		
		// 画面入力項目の初期化
		bean.sendMessageString(KKW14901SFConst.SYSID, X31CWebConst.DATABEAN_SET_VALUE, "");
		bean.sendMessageString(KKW14901SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, "");
		bean.sendMessageString(KKW14901SFConst.DATA_CHSHT_YEAR_FROM, X31CWebConst.DATABEAN_SET_VALUE, "");
		bean.sendMessageString(KKW14901SFConst.DATA_CHSHT_MON_FROM, X31CWebConst.DATABEAN_SET_VALUE, "");
		bean.sendMessageString(KKW14901SFConst.DATA_CHSHT_DAY_FROM, X31CWebConst.DATABEAN_SET_VALUE, "");
		bean.sendMessageString(KKW14901SFConst.DATA_CHSHT_YEAR_TO, X31CWebConst.DATABEAN_SET_VALUE, "");
		bean.sendMessageString(KKW14901SFConst.DATA_CHSHT_MON_TO, X31CWebConst.DATABEAN_SET_VALUE, "");
		bean.sendMessageString(KKW14901SFConst.DATA_CHSHT_DAY_TO, X31CWebConst.DATABEAN_SET_VALUE, "");
		bean.sendMessageString(KKW14901SFConst.MSKMSHO_NO, X31CWebConst.DATABEAN_SET_VALUE, "");
		bean.sendMessageString(KKW14901SFConst.CUST_NM, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 検索項目の初期化
		bean.sendMessageString(KKW14901SFConst.SEARCH_SYSID, X31CWebConst.DATABEAN_SET_VALUE, "");
		bean.sendMessageString(KKW14901SFConst.SEARCH_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, "");
		bean.sendMessageString(KKW14901SFConst.SEARCH_DATA_CHSHTYMD_FROM, X31CWebConst.DATABEAN_SET_VALUE, "");
		bean.sendMessageString(KKW14901SFConst.SEARCH_DATA_CHSHTYMD_TO, X31CWebConst.DATABEAN_SET_VALUE, "");
		bean.sendMessageString(KKW14901SFConst.SEARCH_MSKMSHO_NO, X31CWebConst.DATABEAN_SET_VALUE, "");
		bean.sendMessageString(KKW14901SFConst.SEARCH_CUST_NM, X31CWebConst.DATABEAN_SET_VALUE, "");
		bean.sendMessageString(KKW14901SFConst.SEARCH_SEND_JGI_FLG, X31CWebConst.DATABEAN_SET_VALUE, "");
		bean.sendMessageString(KKW14901SFConst.SEARCH_MI_SEND, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// ソート項目の初期化
		bean.sendMessageString(KKW14901SFConst.SORT_NUM, X31CWebConst.DATABEAN_SET_VALUE, "");
		bean.sendMessageString(KKW14901SFConst.ORDER_NUM, X31CWebConst.DATABEAN_SET_VALUE, "");
		bean.sendMessageString(KKW14901SFConst.ORDER_TYPE, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 一覧表示部分を非表示
		bean.sendMessageBoolean(KKW14901SFConst.LIST_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
		// 番ポなし番号事前通知選択行を初期化
		bean.sendMessageString(KKW14901SFConst.BMPNONNOPRETCHI_CHOICE, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 加入御礼書発行番号を初期化
		bean.sendMessageString(KKW14901SFConst.KANUORESO_HAKKO_NO, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 番ポなし番号事前通知一覧を初期化
		bean.getDataBeanArray(KKW14901SFConst.BMPNONNOPRETCHI_LIST).clearArray();

		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		debugLog("-- actionClear[END] --");
		return true;
	}
	
	/**
	 * 再発行(コピー)処理<br>
	 * <br>
	 * １．再発行モードで番ポなし番号事前通知詳細更新画面に遷移します。<br>
	 * <br>
	 *
	 * @return 正常／異常
	 * @throws Exception 
	 */
	public boolean actionReHakkoCopy() throws Exception
	{
		debugLog("-- actionReHakkoCopy[START] --");
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// 番ポなし番号事前通知一覧
		X31SDataBeanAccessArray datalist = bean.getDataBeanArray(KKW14901SFConst.BMPNONNOPRETCHI_LIST);
		// 選択行の番ポなし番号事前通知情報
		X31SDataBeanAccess dataBean = datalist.getDataBean(getTchiListSelectIndex(bean));
		
		// 選択行の送信年月日時分秒
		String send_dtm = dataBean.sendMessageString(KKW14901SFConst.SEND_DTM_02, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 送信年月日時分秒が未設定の場合
		if (JKKStringUtil.isNullBlank(send_dtm))
		{
			// 送信データチェックエラー
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0930_NW,
					new String[]{"未送信の", "再発行"});
			
			// 後続処理は実施しない
			debugLog("-- actionReHakkoCopy[END] --");
			return true;
		}
		
		// 引継ぎデータの設定、および遷移処理
		setParamAndSeniKKW14902(KKW14902SFLogic.SENI_MODE_REHAKKO);
		
		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		debugLog("-- actionReHakkoCopy[END] --");
		return true;
	}
	
	/**
	 * 詳細照会処理<br>
	 * <br>
	 * １．照会モードで番ポなし番号事前通知詳細更新画面に遷移します。<br>
	 * <br>
	 *
	 * @return 正常／異常
	 * @throws Exception 
	 */
	public boolean actionShokaiDtl() throws Exception
	{
		debugLog("-- actionShokaiDtl[START] --");
		
		// 引継ぎデータの設定、および遷移処理
		setParamAndSeniKKW14902(KKW14902SFLogic.SENI_MODE_SHOKAI);
		
		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		debugLog("-- actionShokaiDtl[END] --");
		return true;
	}
	
	/**
	 * 詳細更新処理<br>
	 * <br>
	 * １．更新モードで番ポなし番号事前通知詳細更新画面に遷移します。<br>
	 * <br>
	 *
	 * @return 正常／異常
	 * @throws Exception 
	 */
	public boolean actionUpdDtl() throws Exception
	{
		debugLog("-- actionUpdDtl[START] --");
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// 番ポなし番号事前通知一覧
		X31SDataBeanAccessArray datalist = bean.getDataBeanArray(KKW14901SFConst.BMPNONNOPRETCHI_LIST);
		// 選択行の番ポなし番号事前通知情報
		X31SDataBeanAccess dataBean = datalist.getDataBean(getTchiListSelectIndex(bean));
		
		// 選択行の送信年月日時分秒
		String send_dtm = dataBean.sendMessageString(KKW14901SFConst.SEND_DTM_02, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 送信年月日時分秒が設定済の場合
		if (!JKKStringUtil.isNullBlank(send_dtm))
		{
			// 送信データチェックエラー
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0930_NW,
					new String[]{"既に送信済の", "更新"});
			
			// 後続処理は実施しない
			debugLog("-- actionUpdDtl[END] --");
			return true;
		}
		
		// 引継ぎデータの設定、および遷移処理
		setParamAndSeniKKW14902(KKW14902SFLogic.SENI_MODE_UPD);
		
		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		debugLog("-- actionUpdDtl[END] --");
		return true;
	}
	
	/**
	 * データ抽出処理<br>
	 * <br>
	 * １．データ抽出処理を実行します。<br>
	 * <br>
	 *
	 * @return 正常／異常
	 * @throws Exception 
	 */
	public boolean actionDchs() throws Exception
	{
		debugLog("-- actionDchs[START] --");
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// 上りマッピング処理
		KKSV0696_KKSV0696OPDBMapper mapper = new KKSV0696_KKSV0696OPDBMapper();
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		mapper.setKKSV069601SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		mapper.setKKSV069602SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		mapper.setKKSV069603SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_3);
		
		// サービス呼出（番ポなし番号事前通知データ抽出サービス）
		HashMap<String, Object> outputMap = invokeService("KKSV0696", "KKSV0696OP", inputMap);
		
		// サービス呼出結果の判定
		String rslt = getKKSV0696Result(outputMap);
		
		if (RSLT_DATA_CHSHT_NG1.equals(rslt))
		{
			// 抽出バッチ実行有無チェックエラー
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0930_NW,
					new String[]{"抽出バッチが実行中の", "実行"});
		}
		else if (RSLT_DATA_CHSHT_NG2.equals(rslt))
		{
			// 送信バッチ実行有無チェックエラー
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0930_NW,
					new String[]{"送信バッチが実行中の", "実行"});
		}
		else
		{
			// 正常完了メッセージの設定
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB7950__I,
					new String[]{"番ポなし番号事前通知データ抽出"});
		}
		
		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		debugLog("-- actionDchs[END] --");
		return true;
	}
	
	/**
	 * ヤマト送信処理<br>
	 * <br>
	 * １．ヤマト送信処理を実行します。<br>
	 * <br>
	 *
	 * @return 正常／異常
	 * @throws Exception 
	 */
	public boolean actionSend() throws Exception
	{
		debugLog("-- actionSend[START] --");
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// 上りマッピング処理
		KKSV0697_KKSV0697OPDBMapper mapper = new KKSV0697_KKSV0697OPDBMapper();
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		mapper.setKKSV069701SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setKKSV069702SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		mapper.setKKSV069703SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		mapper.setKKSV069704SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_3);
		
		// サービス呼出（番ポなし番号事前通知ヤマト送信サービス）
		HashMap<String, Object> outputMap = invokeService("KKSV0697", "KKSV0697OP", inputMap);
		
		// サービス呼出結果の判定
		String rslt = getKKSV0697Result(outputMap);
		
		if (RSLT_YAMATO_SEND_NG1.equals(rslt))
		{
			// 抽出バッチ実行有無チェックエラー
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0930_NW,
					new String[]{"未送信データが存在しない", "送信の実行"});
		}
		else if (RSLT_YAMATO_SEND_NG2.equals(rslt))
		{
			// 送信バッチ実行有無チェックエラー
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0930_NW,
					new String[]{"抽出バッチが実行中の", "実行"});
		}
		else if (RSLT_YAMATO_SEND_NG3.equals(rslt))
		{
			// 送信バッチ実行有無チェックエラー
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0930_NW,
					new String[]{"送信バッチが実行中の", "実行"});
		}
		else
		{
			// 正常完了メッセージの設定
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB7950__I,
					new String[]{"番ポなし番号事前通知ヤマト送信"});
		}
		
		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		debugLog("-- actionSend[END] --");
		return true;
	}
	
	/**
	 * 抑止登録処理<br>
	 * <br>
	 * １．抑止番号登録画面に遷移します。<br>
	 * <br>
	 *
	 * @return 正常／異常
	 * @throws Exception 
	 */
	public boolean actionYoksiAdd() throws Exception
	{
		debugLog("-- actionYoksiAdd[START] --");
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// 引継情報（自画面用）の作成
		HashMap<String, Object> dataMapMe = getMyHktgiInfo(bean);
		
		// 引継情報（自画面）の設定
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW14901, dataMapMe);
		
		// 戻り先画面IDの設定
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW14905, JKKScreenConst.SCREEN_ID_KKW14901);
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW14907, JKKScreenConst.SCREEN_ID_KKW14901);
		
		// 共有フォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// 遷移先画面の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_ID_KKW14905);
		
		// 引継内容をログ出力
		printLog(JSYwebLog.DEBUG, dataMapMe, "自画面への引継情報");
		
		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		debugLog("-- actionYoksiAdd[END] --");
		return true;
	}
	
	/**
	 * 戻る処理<br>
	 * <br>
	 * １．遷移元画面に遷移します。<br>
	 * <br>
	 *
	 * @return 正常／異常
	 * @throws Exception 
	 */
	public boolean actionBack() throws Exception
	{
		debugLog("-- actionBack[START] --");
		
		// 共有フォームBeanのデータBeanアクセスクラスを取得
		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);
		
		debugLog("-- actionBack[END] --");
		return true;
	}
	
	/**
	 * 番ポなし番号事前通知詳細画面遷移処理<br>
	 * 
	 * @param seniMode 遷移モード（再発行、更新、照会）
	 */
	private void setParamAndSeniKKW14902(String seniMode)
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// 番ポなし番号事前通知一覧
		X31SDataBeanAccessArray datalist = bean.getDataBeanArray(KKW14901SFConst.BMPNONNOPRETCHI_LIST);
		// 選択行の番ポなし番号事前通知情報
		X31SDataBeanAccess dataBean = datalist.getDataBean(getTchiListSelectIndex(bean));
		// 選択行の加入御礼書発行番号
		String kanuoreso_no = dataBean.sendMessageString(KKW14901SFConst.KANUORESO_HAKKO_NO_02, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 引継情報（自画面用）の作成
		HashMap<String, Object> dataMapMe = getMyHktgiInfo(bean);
		
		// 引継情報（次画面用）の作成
		HashMap<String, Object> dataMapNext = new HashMap<String, Object>();
		dataMapNext.put(KKW14902SFConst.SENI_MODE, seniMode);
		dataMapNext.put(KKW14902SFConst.KANUORESO_HAKKO_NO, kanuoreso_no);
		
		// 引継情報（自画面）の設定
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW14901, dataMapMe);
		
		// 引継情報（次画面）の設定
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW14902, dataMapNext);
		
		// 戻り先画面IDの設定
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW14902, JKKScreenConst.SCREEN_ID_KKW14901);
		if (KKW14902SFLogic.SENI_MODE_REHAKKO.equals(seniMode)
				|| KKW14902SFLogic.SENI_MODE_UPD.equals(seniMode))
		{
			JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW14904, JKKScreenConst.SCREEN_ID_KKW14901);
		}
		
		// 共有フォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// 遷移先画面の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_ID_KKW14902);
		
		// 引継内容をログ出力
		printLog(JSYwebLog.DEBUG, dataMapMe, "自画面への引継情報");
		printLog(JSYwebLog.DEBUG, dataMapNext, "次画面への引継情報");
	}
	
	/**
	 * 検索条件の入力があるかどうかをチェックします。<br>
	 * 
	 * @param bean サービスフォームBean
	 * @return true：検索条件に入力あり false：検索条件に入力なし
	 */
	private boolean isSearchInput(X31SDataBeanAccess bean)
	{
		StringBuffer key = new StringBuffer();
		
		key.append(bean.sendMessageString(KKW14901SFConst.SEARCH_SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		key.append(bean.sendMessageString(KKW14901SFConst.SEARCH_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		key.append(bean.sendMessageString(KKW14901SFConst.SEARCH_DATA_CHSHTYMD_FROM, X31CWebConst.DATABEAN_GET_VALUE));
		key.append(bean.sendMessageString(KKW14901SFConst.SEARCH_DATA_CHSHTYMD_TO, X31CWebConst.DATABEAN_GET_VALUE));
		key.append(bean.sendMessageString(KKW14901SFConst.SEARCH_MSKMSHO_NO, X31CWebConst.DATABEAN_GET_VALUE));
		key.append(bean.sendMessageString(KKW14901SFConst.SEARCH_CUST_NM, X31CWebConst.DATABEAN_GET_VALUE));
		key.append(bean.sendMessageString(KKW14901SFConst.SEARCH_SEND_JGI_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		key.append(bean.sendMessageString(KKW14901SFConst.SEARCH_MI_SEND, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 検索条件が未入力
		if (key.length() == 0)
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	
	/**
	 * サービス呼出処理<br>
	 * <br>
	 * サービスの呼び出しを行います。<br>
	 * <br>
	 * @param usecase_id ユースケースID
	 * @param operation_id オペレーションID
	 * @param inputMap APサーバに依頼する業務データ
	 * @return APサーバの処理結果業務データ
	 * @throws Exception 
	 */
	private HashMap<String, Object> invokeService(String usecase_id,
			String operation_id, HashMap<String, Object> inputMap)
			throws Exception
	{
		debugLog("-- invokeService[START] --");
		
		// パラメタ設定
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, usecase_id);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, operation_id);
		
		// メッセージリストの初期化
		clearMessageResultList();
		
		// DataBeanをログ出力
		debugLog("***** サービス呼出前 *****");
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		// サービスの呼び出し
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		invokeService(paramMap, inputMap, outputMap);
		
		// DataBeanをログ出力
		debugLog("***** サービス呼出後 *****");
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		debugLog("-- invokeService[END] --");
		return outputMap;
	}
	
	/**
	 * 検索系制御情報の初期化処理<br>
	 * <br>
	 * 検索系フラグ、および検索結果の初期化を行います。<br>
	 * <br>
	 * @param bean データBeanアクセスクラス
	 */
	private void clearSearchItem(X31SDataBeanAccess bean) 
	{
		// 一覧表示フラグ
		bean.sendMessageBoolean(KKW14901SFConst.LIST_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
		// 番ポなし番号事前通知一覧
		bean.getDataBeanArray(KKW14901SFConst.BMPNONNOPRETCHI_LIST).clearArray();
	}
	
	/**
	 * 検索実行処理<BR>
	 * <BR>
	 * 検索処理を実行します。
	 * １．加入御礼書一覧再検索CCを呼び出します。
	 * ２．エラーがあれば、ステータスに従いメッセージをセットします。
	 * ３．エラーがなければ、一覧表示部分を表示します。
	 * <p>
	 * @param bean サービスフォームBean
	 * @throws Exception
	 */
	private void execSearch(X31SDataBeanAccess bean) throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess[] paramBean = {bean};
		
		// 検索系フラグ、および検索結果の初期化
		clearSearchItem(bean);
		
		// 検索条件指定有無チェック
		if (!isSearchInput(bean))
		{
			// 検索条件に入力がない場合はメッセージを出力し、検索処理を実行しない
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0410_NW, new String[]{"検索条件"});
			return;
		}
		
		// 検索フラグを設定
		bean.sendMessageString(KKW14901SFConst.SEARCH_FLG, X31CWebConst.DATABEAN_SET_VALUE, SEARCH_FLG_Y);
		
		// 上りマッピング処理
		KKSV0695_KKSV0695OPDBMapper mapper = new KKSV0695_KKSV0695OPDBMapper();
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		mapper.setBmpNonNoPreTchiReSearchCC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		
		// ページング情報上りマッピング
		JCCWebCommon.upmapperPageLinkInfo(this, "BmpNonNoPreTchiReSearchCC", inputMap, JKKScreenConst.SCREEN_ID_KKW14901);
		
		// サービス呼出（番ポなし番号事前通知一覧情報取得）
		HashMap<String, Object> outputMap = invokeService("KKSV0695", "KKSV0695OP", inputMap);
		
		// 下りマッピング処理
		mapper.getBmpNonNoPreTchiReSearchCC(paramBean, outputMap);
		
		// 検索後処理
		afterSearch(bean, outputMap);
	}
	
	/**
	 * 検索後処理<br>
	 * <br>
	 * 検索サービスインターフェイス呼出後、検索結果よりデータセットを行います。<br>
	 * 取得データの検索エラーフラグが以下の場合は結果欄を表示しません。<br>
	 * ・検索結果が0件の場合<br>
	 * ・検索結果が最大検索件数超えの場合<br>
	 * <br>
	 * @param bean サービスフォームBean
	 * @param outputMap APサーバの処理結果業務データ
	 */
	private void afterSearch(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{
		// 検索結果情報から検索エラーフラグ
		String search_err_flg = JCCWebCommon.getSearchErrFlg("BmpNonNoPreTchiReSearchCC", outputMap);
		
		// 取得データ件数チェック
		if (JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(search_err_flg))
		{
			// 検索結果が0件
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I);
			
			// 後続処理は実施しない
			return;
		}
		else if (JPCModelConstant.SEARCH_ERR_FLG_OVERMAX.equals(search_err_flg))
		{
			// 最大検索件数超え
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0340__I,
					new String[]{JCCWebCommon.getSearchConst("KKW14901_MAX_SHOW_CNT")});
			
			// 後続処理は実施しない
			return;
		}
		else if (JPCModelConstant.SEARCH_ERR_FLG_NODATA.equals(search_err_flg))
		{
			// 表示ページに該当するデータなし
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0350__I);
			
			// 後続処理を実施する
		}
		
		// ページング情報下りマッピング
		JCCWebCommon.downmapperPageLinkInfo(this, "BmpNonNoPreTchiReSearchCC", outputMap, JKKScreenConst.SCREEN_ID_KKW14901);
		
		// ページングのコマンドマップIDをセッションに設定
		JCCWebCommon.setSearchCommand(this, PAGING_CMD);
		
		// 一覧表示フラグの設定
		bean.sendMessageBoolean(KKW14901SFConst.LIST_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);
		
		// 行選択のデフォルト設定
		bean.sendMessageString(KKW14901SFConst.BMPNONNOPRETCHI_CHOICE, X31CWebConst.DATABEAN_SET_VALUE, "0");
		
		// 前回選択していた加入御礼書発行番号を取得
		String kanuoreso_hakko_no_bf = bean.sendMessageString(KKW14901SFConst.KANUORESO_HAKKO_NO, X31CWebConst.DATABEAN_GET_VALUE);
		
		X31SDataBeanAccessArray datalist = bean.getDataBeanArray(KKW14901SFConst.BMPNONNOPRETCHI_LIST);
		
		// 検索結果に同一加入御礼書発行番号の情報が存在する場合、該当のインデックス番号で選択行を更新
		// 行スタイルの更新
		for (int i = 0; i < datalist.getCount(); i++)
		{
			X31SDataBeanAccess dataBean = datalist.getDataBean(i);
			
			// 加入御礼書番号
			String kanuoreso_hakko_no = dataBean.sendMessageString(KKW14901SFConst.KANUORESO_HAKKO_NO_02, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 加入御礼書番号が一致する
			if (kanuoreso_hakko_no_bf != null
					&& kanuoreso_hakko_no_bf.equals(kanuoreso_hakko_no))
			{
				// 選択行を更新
				bean.sendMessageString(KKW14901SFConst.BMPNONNOPRETCHI_CHOICE, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
			}
			
			// 行スタイルの更新
			if ((i + 1) % 2 == 1)
			{
				// 奇数行
				dataBean.sendMessageString(KKW14901SFConst.ROW_STYLE_02, X31CWebConst.DATABEAN_SET_VALUE, ROW_STYLE_ODD);
			}
			else
			{
				// 偶数行
				dataBean.sendMessageString(KKW14901SFConst.ROW_STYLE_02, X31CWebConst.DATABEAN_SET_VALUE, ROW_STYLE_EVEN);
			}
			
		}
		
	}
	
	/**
	 * プルダウンとチェックボックスの選択値を設定します。<br>
	 * <br>
	 * 
	 * @param bean データBeanアクセスクラス
	 * @param search_flg 検索フラグ
	 */
	private void setPulldownChkboxSelected(X31SDataBeanAccess bean, String search_flg)
	{
		// 送信除外情報のプルダウン
		X31SDataBeanAccessArray sendjgilist = bean.getDataBeanArray(KKW14901SFConst.SEND_JGI_INFO);
		X31SDataBeanAccess sendjgiBean = sendjgilist.getDataBean(0);
		
		// 検索フラグが「要」の場合
		if (SEARCH_FLG_Y.equals(search_flg))
		{
			// 送信除外フラグコード
			String send_jgi_cd = bean.sendMessageString(KKW14901SFConst.SEND_JGI_CD, X31CWebConst.DATABEAN_GET_VALUE);
			// 選択値より送信除外情報プルダウンのインデックスを取得
			int index = getPulldownSelectedIndex(sendjgiBean, send_jgi_cd);
			// 送信除外フラグを更新
			sendjgiBean.sendMessageString(KKW14901SFConst.INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(index));
			
			// 未送信
			Boolean mi_send = bean.sendMessageBoolean(KKW14901SFConst.MI_SEND, X31CWebConst.DATABEAN_GET_VALUE);
			// 未送信チェックボックスを更新
			bean.sendMessageBoolean(KKW14901SFConst.MI_SEND, X31CWebConst.DATABEAN_SET_VALUE, mi_send);
		}
		else
		{
			// 送信除外フラグ（送信対象）のインデックスを取得
			int index = getPulldownSelectedIndex(sendjgiBean, JKKCommonConst.SEND_JGI_SEND);
			// 送信除外フラグを更新
			sendjgiBean.sendMessageString(KKW14901SFConst.INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(index));
			
			// 未送信チェックボックスを更新
			bean.sendMessageBoolean(KKW14901SFConst.MI_SEND, X31CWebConst.DATABEAN_SET_VALUE, true);
		}
	}
	
	/**
	 * 選択値より該当プルダウンのインデックスを取得します。
	 * <br>
	 * @param bean データBeanアクセスクラス
	 * @param selectCd 選択値
	 * @return 該当のインデックス
	 */
	private int getPulldownSelectedIndex(X31SDataBeanAccess bean, String selectCd)
	{
		// 該当プルダウンの件数
		Integer count = (Integer)bean.sendMessage(KKW14901SFConst.CD_DIV_LIST_01, X31CWebConst.DATABEAN_GET_COUNT);
		
		// 選択するインデックス
		int index = 0;
		
		for(int i = 0; i < count; i++)
		{
			String cd = bean.sendMessageString(KKW14901SFConst.CD_DIV_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, i);
			
			// 選択値と一致する
			if (selectCd.equals(cd))
			{
				index = i;
				break;
			}
		}
		
		return index;
	}
	
	/**
	 * 他画面遷移時の引継情報（自画面用）を取得します。
	 * <br>
	 * @param bean データBeanアクセスクラス
	 * @return 他画面遷移時の引継情報（自画面用）
	 */
	private HashMap<String, Object> getMyHktgiInfo(X31SDataBeanAccess bean)
	{
		// 番ポなし番号事前通知一覧
		X31SDataBeanAccessArray datalist = bean.getDataBeanArray(KKW14901SFConst.BMPNONNOPRETCHI_LIST);
		
		// 選択行のインデックス
		int selectIndex = getTchiListSelectIndex(bean);
		// 選択行の加入御礼書番号
		String kanuoreso_no = "";
		
		// 選択している場合
		if (selectIndex != -1)
		{
			// 選択行の番ポなし番号事前通知情報
			X31SDataBeanAccess dataBean = datalist.getDataBean(getTchiListSelectIndex(bean));
			// 選択行の加入御礼書番号
			kanuoreso_no = dataBean.sendMessageString(KKW14901SFConst.KANUORESO_HAKKO_NO_02, X31CWebConst.DATABEAN_GET_VALUE);
		}
		
		// 引継情報（自画面用）の作成
		HashMap<String, Object> dataMapMe = new HashMap<String, Object>();
		dataMapMe.put(KKW14901SFConst.SYSID,
				bean.sendMessageString(KKW14901SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		dataMapMe.put(KKW14901SFConst.SVC_KEI_NO,
				bean.sendMessageString(KKW14901SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		dataMapMe.put(KKW14901SFConst.DATA_CHSHT_YEAR_FROM,
				bean.sendMessageString(KKW14901SFConst.DATA_CHSHT_YEAR_FROM, X31CWebConst.DATABEAN_GET_VALUE));
		dataMapMe.put(KKW14901SFConst.DATA_CHSHT_MON_FROM,
				bean.sendMessageString(KKW14901SFConst.DATA_CHSHT_MON_FROM, X31CWebConst.DATABEAN_GET_VALUE));
		dataMapMe.put(KKW14901SFConst.DATA_CHSHT_DAY_FROM,
				bean.sendMessageString(KKW14901SFConst.DATA_CHSHT_DAY_FROM, X31CWebConst.DATABEAN_GET_VALUE));
		dataMapMe.put(KKW14901SFConst.DATA_CHSHT_YEAR_TO,
				bean.sendMessageString(KKW14901SFConst.DATA_CHSHT_YEAR_TO, X31CWebConst.DATABEAN_GET_VALUE));
		dataMapMe.put(KKW14901SFConst.DATA_CHSHT_MON_TO,
				bean.sendMessageString(KKW14901SFConst.DATA_CHSHT_MON_TO, X31CWebConst.DATABEAN_GET_VALUE));
		dataMapMe.put(KKW14901SFConst.DATA_CHSHT_DAY_TO,
				bean.sendMessageString(KKW14901SFConst.DATA_CHSHT_DAY_TO, X31CWebConst.DATABEAN_GET_VALUE));
		dataMapMe.put(KKW14901SFConst.MSKMSHO_NO,
				bean.sendMessageString(KKW14901SFConst.MSKMSHO_NO, X31CWebConst.DATABEAN_GET_VALUE));
		dataMapMe.put(KKW14901SFConst.CUST_NM,
				bean.sendMessageString(KKW14901SFConst.CUST_NM, X31CWebConst.DATABEAN_GET_VALUE));
		X31SDataBeanAccessArray sendjgilist = bean.getDataBeanArray(KKW14901SFConst.SEND_JGI_INFO);
		X31SDataBeanAccess sendjgiBean = sendjgilist.getDataBean(0);
		int index = Integer.parseInt(sendjgiBean.sendMessageString(KKW14901SFConst.INDEX_01, X31CWebConst.DATABEAN_GET_VALUE));
		String send_jgi_cd = sendjgiBean.sendMessageString(KKW14901SFConst.CD_DIV_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, index);
		dataMapMe.put(KKW14901SFConst.SEND_JGI_CD, send_jgi_cd);
		Boolean mi_send = bean.sendMessageBoolean(KKW14901SFConst.MI_SEND, X31CWebConst.DATABEAN_GET_VALUE);
		dataMapMe.put(KKW14901SFConst.MI_SEND, mi_send);
		dataMapMe.put(KKW14901SFConst.SEARCH_SYSID,
				bean.sendMessageString(KKW14901SFConst.SEARCH_SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		dataMapMe.put(KKW14901SFConst.SEARCH_SVC_KEI_NO,
				bean.sendMessageString(KKW14901SFConst.SEARCH_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		dataMapMe.put(KKW14901SFConst.SEARCH_DATA_CHSHTYMD_FROM,
				bean.sendMessageString(KKW14901SFConst.SEARCH_DATA_CHSHTYMD_FROM, X31CWebConst.DATABEAN_GET_VALUE));
		dataMapMe.put(KKW14901SFConst.SEARCH_DATA_CHSHTYMD_TO,
				bean.sendMessageString(KKW14901SFConst.SEARCH_DATA_CHSHTYMD_TO, X31CWebConst.DATABEAN_GET_VALUE));
		dataMapMe.put(KKW14901SFConst.SEARCH_MSKMSHO_NO,
				bean.sendMessageString(KKW14901SFConst.SEARCH_MSKMSHO_NO, X31CWebConst.DATABEAN_GET_VALUE));
		dataMapMe.put(KKW14901SFConst.SEARCH_CUST_NM,
				bean.sendMessageString(KKW14901SFConst.SEARCH_CUST_NM, X31CWebConst.DATABEAN_GET_VALUE));
		dataMapMe.put(KKW14901SFConst.SEARCH_SEND_JGI_FLG,
				bean.sendMessageString(KKW14901SFConst.SEARCH_SEND_JGI_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		dataMapMe.put(KKW14901SFConst.SEARCH_MI_SEND,
				bean.sendMessageString(KKW14901SFConst.SEARCH_MI_SEND, X31CWebConst.DATABEAN_GET_VALUE));
		dataMapMe.put(KKW14901SFConst.ORDER_NUM,
				bean.sendMessageString(KKW14901SFConst.ORDER_NUM, X31CWebConst.DATABEAN_GET_VALUE));
		dataMapMe.put(KKW14901SFConst.ORDER_TYPE,
				bean.sendMessageString(KKW14901SFConst.ORDER_TYPE, X31CWebConst.DATABEAN_GET_VALUE));
		dataMapMe.put(KKW14901SFConst.SEARCH_FLG,
				bean.sendMessageString(KKW14901SFConst.SEARCH_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		dataMapMe.put(KKW14901SFConst.KANUORESO_HAKKO_NO, kanuoreso_no);
		
		// v4.01 画面組換対応 start
		//戻るボタン表示フラグの設定
		dataMapMe.put(KKW14901SFConst.RTN_BTN_DISP_FLG,
				bean.sendMessageBoolean(KKW14901SFConst.RTN_BTN_DISP_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		// v4.01 画面組換対応 end
		
		return dataMapMe;
	}
	
	/**
	 * 番ポなし番号事前通知一覧の選択行のインデックスを取得します。
	 * <br>
	 * @param bean データBeanアクセスクラス
	 * @return 選択行のインデックス
	 */
	private int getTchiListSelectIndex(X31SDataBeanAccess bean)
	{
		// 選択行を取得
		String choiceNo = bean.sendMessageString(KKW14901SFConst.BMPNONNOPRETCHI_CHOICE, X31CWebConst.DATABEAN_GET_VALUE);
		
		int selectIndex = -1;
		
		if (!JKKStringUtil.isNullBlank(choiceNo))
		{
			selectIndex = Integer.parseInt(choiceNo);
		}
		
		return selectIndex;
	}
	
	/**
	 * サービス呼出結果の判定（番ポなし番号事前通知データ抽出サービス）<br>
	 * <br>
	 *
	 * @param outputMap APサーバの処理結果業務データ
	 * @return 正常：0 抽出バッチ実行エラー：1 送信バッチ実行エラー：2
	 */
	@SuppressWarnings("unchecked")
	private String getKKSV0696Result(HashMap<String, Object> outputMap)
	{
		
		HashMap dataMap1 = (HashMap) outputMap.get("KKSV069602SC");
		
		if (dataMap1 == null || !dataMap1.containsKey("ECC0111B010CBSMsg1List"))
		{
			return RSLT_DATA_CHSHT_NG1;
		}
		
		HashMap dataMap2 = (HashMap) outputMap.get("KKSV069603SC");
		
		if (dataMap2 == null || !dataMap2.containsKey("trn_req_no"))
		{
			return RSLT_DATA_CHSHT_NG2;
		}
		
		return RSLT_DATA_CHSHT_OK;
	}
	
	/**
	 * サービス呼出結果の判定（番ポなし番号事前通知ヤマト送信サービス）<br>
	 * <br>
	 *
	 * @param outputMap APサーバの処理結果業務データ
	 * @return 正常：0 未送信データなしエラー：1 抽出バッチ実行エラー：2 送信バッチ実行エラー：3
	 */
	@SuppressWarnings("unchecked")
	private String getKKSV0697Result(HashMap<String, Object> outputMap)
	{
		
		HashMap dataMap1 = (HashMap) outputMap.get("KKSV069702SC");
		
		if (dataMap1 == null || !dataMap1.containsKey("ECC0111B010CBSMsg1List"))
		{
			return RSLT_YAMATO_SEND_NG1;
		}
		
		HashMap dataMap2 = (HashMap) outputMap.get("KKSV069703SC");
		
		if (dataMap2 == null || !dataMap2.containsKey("ECC0111B010CBSMsg1List"))
		{
			return RSLT_YAMATO_SEND_NG2;
		}
		
		HashMap dataMap3 = (HashMap) outputMap.get("KKSV069704SC");
		
		if (dataMap3 == null || !dataMap3.containsKey("trn_req_no"))
		{
			return RSLT_YAMATO_SEND_NG3;
		}
		
		return RSLT_YAMATO_SEND_OK;
	}
	
	/**
	 * ログ出力
	 * <br>
	 * HashMapの中身をすべてログ出力します。
	 * <P>
	 * @param type ログ種別
	 * @param target 出力対象
	 * @param msg ログ出力の前後に出力する文字
	 */
	@SuppressWarnings("unchecked")
	private void printLog(int type, HashMap target, String msg)
	{
		// 引継内容をログ出力
		JSYwebLog.println(type, getClass(), "********** " + msg + "（開始） **********", null, null, null);
		Iterator it = target.keySet().iterator();
		while(it.hasNext())
		{
			Object objKey = it.next();
			JSYwebLog.println(type, getClass(), objKey + " = " + target.get(objKey), null, null, null);
			
		}
		JSYwebLog.println(type, getClass(), "********** " + msg + "（終了） **********", null, null, null);
	}
	
	/**
	 * ログ出力
	 * <br>
	 * DEBUGレベルのログ出力を行います。
	 * <P>
	 * @param msg ログ出力する文字列
	 */
	private void debugLog(String msg)
	{
		JSYwebLog.println(JSYwebLog.DEBUG, getClass(), msg, null, null, null);
	}
	
}
