/*******************************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 ********************************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：CHW02701SFLogic
 *	ソースファイル名：CHW02701SFLogic.java
 *	作成者			：富士通
 *	日付			：2023/6/28
 *＜機能概要＞
 *	会計用補正情報登録ビューロジック
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	新規作成	2023/06/28  FJ)西窪     【ANK-4268-00-00】新規作成
 *              2024/02/19  FJ)松永     【ANK-4268-13-00】数値のカンマ区切り、右寄せ、ソート機能追加
 ********************************************************************************/
package eo.web.webview.CHW02701SF;


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.JPCModelConstant;
import eo.common.util.JPCFomatString;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CHW02701SF.CHW02701SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKWebCommon;
import eo.web.webview.mapping.CHSV0092_CHSV0092OPDBMapper;
import eo.web.webview.mapping.CHSV0093_CHSV0093OPDBMapper;

/**
 * 会計用補正情報登録ビューロジック.<p>
 * <>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class CHW02701SFLogic extends JCCWebBusinessLogic
{
	
	/**
	 * 検索処理ユースケースID
	 */
	private static final String INITAL_DISPLAY_USECASE_ID = "CHSV0092";
	private static final String ADD_USECASE_ID = "CHSV0093";
	
	/**
	 * コード区分：会計種別
	 */
	public static final String KAIK_SBT_SAIKEN_ZENTOU = "01";
	public static final String KAIK_SBT_SAIKEN_TOUYOKU = "02";
	public static final String KOFURI_CLEARPASS_ZENTOU = "03";
	public static final String KOFURI_CLEARPASS_TOUYOKU = "04";
	public static final String KOFURI_SMBC_ZENTOU = "05";
	public static final String KOFURI_SMBC_TOUYOKU = "06";
	public static final String KAIK_SBT_MADO = "07";
	public static final String KAIK_SBT_CRE_SVC = "08";
	public static final String KAIK_SBT_CRE_CONT = "09";
	public static final String KAIK_SBT_SONOTA = "10";
	public static final String KAIK_SBT_GINFURI = "11";
	public static final String KAIK_SBT_COV_REAL_ZENTOU = "12";
	public static final String KAIK_SBT_COV_TSUJO_ZENTOU = "13";
	public static final String KAIK_SBT_COV_REAL_TOUYOKU = "14";
	public static final String KAIK_SBT_COV_TSUJO_TOUYOKU = "15";
	public static final String KAIK_SBT_SOKUJI_KESSAI_ZENTOU = "16";
	public static final String KAIK_SBT_SOKUJI_KESSAI_TOUYOKU = "17";
	public static final String KAIK_SBT_CONT_KESSAI = "18";
	
	/**
	 * コード区分：補正種別
	 */
	public static final String HOSEI_SBT_NYUKIN_HOSEI = "1";
	public static final String HOSEI_SBT_TESURYO = "2";
	public static final String HOSEI_SBT_CB = "3";
	public static final String HOSEI_SBT_INS_ZEI = "4";
	
	/**
	 * 債権回収委託会社コード
	 */
	public static final String SAIKEN_01 = "01";
	public static final String SAIKEN_02 = "02";
	public static final String SAIKEN_03 = "03";
	
	/**
	 * 登録会計情報リスト
	 */
	private static final String[][] KAIK_INFO = new String[][]{
	// ｛会計内訳種別コード,会計内訳種別詳細コード,会計種別選択コード値,補正種別選択コード値,債権回収委託会社コード
		{"31", "3111",KAIK_SBT_SAIKEN_ZENTOU, HOSEI_SBT_NYUKIN_HOSEI, SAIKEN_01},
		{"31", "3121",KAIK_SBT_SAIKEN_ZENTOU, HOSEI_SBT_NYUKIN_HOSEI, SAIKEN_02},
		{"31", "3131",KAIK_SBT_SAIKEN_ZENTOU, HOSEI_SBT_NYUKIN_HOSEI, SAIKEN_03},
		{"31", "3112",KAIK_SBT_SAIKEN_ZENTOU, HOSEI_SBT_TESURYO		, SAIKEN_01},
		{"31", "3122",KAIK_SBT_SAIKEN_ZENTOU, HOSEI_SBT_TESURYO		, SAIKEN_02},
		{"31", "3132",KAIK_SBT_SAIKEN_ZENTOU, HOSEI_SBT_TESURYO		, SAIKEN_03},
		{"14", "1411",KAIK_SBT_SAIKEN_TOUYOKU, HOSEI_SBT_NYUKIN_HOSEI, SAIKEN_01},
		{"14", "1421",KAIK_SBT_SAIKEN_TOUYOKU, HOSEI_SBT_NYUKIN_HOSEI, SAIKEN_02},
		{"14", "1431",KAIK_SBT_SAIKEN_TOUYOKU, HOSEI_SBT_NYUKIN_HOSEI, SAIKEN_03},
		{"15", "1511",KOFURI_CLEARPASS_TOUYOKU, HOSEI_SBT_NYUKIN_HOSEI		, ""},
		{"15", "1512",KOFURI_CLEARPASS_TOUYOKU, HOSEI_SBT_TESURYO		, ""},
		{"32", "3211",KOFURI_CLEARPASS_ZENTOU, HOSEI_SBT_NYUKIN_HOSEI		, ""},
		{"32", "3212",KOFURI_CLEARPASS_ZENTOU, HOSEI_SBT_TESURYO		, ""},
		{"17", "1711",KOFURI_SMBC_TOUYOKU, HOSEI_SBT_NYUKIN_HOSEI		, ""},
		{"17", "1712",KOFURI_SMBC_TOUYOKU, HOSEI_SBT_TESURYO		, ""},
		{"41", "4111",KOFURI_SMBC_ZENTOU, HOSEI_SBT_NYUKIN_HOSEI		, ""},
		{"41", "4112",KOFURI_SMBC_ZENTOU, HOSEI_SBT_TESURYO		, ""},
		{"35", "3541",KAIK_SBT_CRE_SVC, HOSEI_SBT_NYUKIN_HOSEI		, ""},
		{"35", "3542",KAIK_SBT_CRE_SVC, HOSEI_SBT_TESURYO		, ""},
		{"35", "3551",KAIK_SBT_CRE_CONT, HOSEI_SBT_NYUKIN_HOSEI		, ""},
		{"35", "3552",KAIK_SBT_CRE_CONT, HOSEI_SBT_TESURYO		, ""},
		{"38", "3811",KAIK_SBT_SONOTA, HOSEI_SBT_NYUKIN_HOSEI		, ""},
		{"39", "3911",KAIK_SBT_GINFURI, HOSEI_SBT_NYUKIN_HOSEI		, ""},
		{"40", "4042",KAIK_SBT_COV_REAL_ZENTOU, HOSEI_SBT_NYUKIN_HOSEI		, ""},
		{"40", "4043",KAIK_SBT_COV_TSUJO_ZENTOU, HOSEI_SBT_NYUKIN_HOSEI		, ""},
		{"40", "4062",KAIK_SBT_COV_REAL_TOUYOKU, HOSEI_SBT_NYUKIN_HOSEI		, ""},
		{"40", "4063",KAIK_SBT_COV_TSUJO_TOUYOKU, HOSEI_SBT_NYUKIN_HOSEI		, ""},
		{"40", "4044",KAIK_SBT_COV_REAL_ZENTOU, HOSEI_SBT_TESURYO		, ""},
		{"40", "4045",KAIK_SBT_COV_TSUJO_ZENTOU, HOSEI_SBT_TESURYO		, ""},
		{"42", "4211",KAIK_SBT_SOKUJI_KESSAI_ZENTOU, HOSEI_SBT_NYUKIN_HOSEI		, ""},
		{"42", "4212",KAIK_SBT_SOKUJI_KESSAI_ZENTOU, HOSEI_SBT_TESURYO		, ""},
		{"42", "4213",KAIK_SBT_SOKUJI_KESSAI_ZENTOU, HOSEI_SBT_INS_ZEI		, ""},
		{"42", "4215",KAIK_SBT_SOKUJI_KESSAI_TOUYOKU, HOSEI_SBT_NYUKIN_HOSEI		, ""},
		{"80", "8011",KAIK_SBT_CONT_KESSAI, HOSEI_SBT_CB		, ""},
	};
	
	/** 申込情報セッションキー名 */
	public static final String SESSION_KEY_INITDATA = "CHW99999";

	/**
	 * 初期表示を処理します。
	 * <>
	 * @return true固定
	 * @throws Exception 例外
	 */
	public boolean init() throws Exception
	{
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
				
		X31SDataBeanAccess[] paramBean = {bean};
		
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, INITAL_DISPLAY_USECASE_ID);
		
		// マッピングクラスのインスタンスを生成
		CHSV0092_CHSV0092OPDBMapper mapper = new CHSV0092_CHSV0092OPDBMapper();
		
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		
		// ★上りマッピング★
		mapper.setCHSV009201SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setCHSV009202SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setCHSV009203SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setCHSV009204SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setCHSV009205SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setCHSV009206SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setCHSV009207SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2, JCCWebCommon.getOpeDate(this, null));
		mapper.setCHSV009208SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setCHSV009209SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setCHSV009210SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		
		
		// 検索結果格納用マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// 検索処理呼出
		X31CMessageResult msgResult = invokeService(paramMap, dataMap, outputMap);
		if (msgResult != null)
		{
			return true;
		}
		
		// 初期表示時のデータをセッションに格納
		HashMap<String, Object> screenInfoMap = JCCWebCommon.getScreenInfo(this, SESSION_KEY_INITDATA);
		screenInfoMap = (screenInfoMap == null) ? new HashMap<String, Object>() : screenInfoMap;
		screenInfoMap.put("INITDATA", outputMap);
		JCCWebCommon.setScreenInfo(this, SESSION_KEY_INITDATA, screenInfoMap);

		
		// ★下りマッピング★
		mapper.getCHSV009201SC(paramBean, outputMap);
		mapper.getCHSV009207SC(paramBean, outputMap);
		mapper.getCHSV009208SC(paramBean, outputMap,outputMap);
		
		// 次回会計処理日のメッセージ
		JCCWebCommon.setMessageInfo(this, "EKBF820--I", 
				new String[]{JPCFomatString.formatDate(bean.sendMessageString(CHW02701SFConst.NEXT_KAIK_YMD, X31CWebConst.DATABEAN_GET_VALUE)),
								JPCFomatString.formatYears(bean.sendMessageString(CHW02701SFConst.KAIK_SUMUP_MON, X31CWebConst.DATABEAN_GET_VALUE))});
		
		return true;
	}
	
	
	/**
	 * 会計種別選択時。
	 * <>
	 * @return true固定
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	public boolean selectKaikSbt() throws Exception
	{
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
				
		X31SDataBeanAccess[] paramBean = {bean};
		
		// マッピングクラスのインスタンスを生成
		CHSV0092_CHSV0092OPDBMapper mapper = new CHSV0092_CHSV0092OPDBMapper();
		
		// 会計種別プルダウン選択値
		String kaikSbtValue = JKKWebCommon.getPullDownCode(bean,
													CHW02701SFConst.KAIK_SBT,
													CHW02701SFConst.INDEX,
													CHW02701SFConst.CD_LIST);
		
		//セッションから初期表示時のデータを取得
		HashMap<String, Object> sessionDataMap = JCCWebCommon.getScreenInfo(this, SESSION_KEY_INITDATA);
		HashMap<String, Object> initMap        = (sessionDataMap     != null)?((HashMap<String, Object>)sessionDataMap.get("INITDATA")):(null);
		
		// 一旦プルダウン項目の初期化
		clearPulldown(paramBean);
		
		// ★プルダウン項目の設定★
		mapper.getCHSV009202SC(paramBean, initMap, kaikSbtValue);
		
		if(KAIK_SBT_MADO.equals(kaikSbtValue))
		{
			mapper.getCHSV009203SC(paramBean, initMap);
		}
		if(KAIK_SBT_SAIKEN_ZENTOU.equals(kaikSbtValue) || KAIK_SBT_SAIKEN_TOUYOKU.equals(kaikSbtValue))
		{
			mapper.getCHSV009204SC(paramBean, initMap);
		}
		if(KAIK_SBT_CRE_SVC.equals(kaikSbtValue) || KAIK_SBT_CRE_CONT.equals(kaikSbtValue) || KAIK_SBT_CONT_KESSAI.equals(kaikSbtValue))
		{
			mapper.getCHSV009205SC(paramBean, initMap, kaikSbtValue);
		}
		if(KAIK_SBT_CONT_KESSAI.equals(kaikSbtValue))
		{
			mapper.getCHSV009206SC(paramBean, initMap);
		}
		
		// 次回会計処理日のメッセージ
		JCCWebCommon.setMessageInfo(this, "EKBF820--I", 
				new String[]{JPCFomatString.formatDate(bean.sendMessageString(CHW02701SFConst.NEXT_KAIK_YMD, X31CWebConst.DATABEAN_GET_VALUE)),
								JPCFomatString.formatYears(bean.sendMessageString(CHW02701SFConst.KAIK_SUMUP_MON, X31CWebConst.DATABEAN_GET_VALUE))});

		
		return true;
	}
	
	/**
	 * 登録処理をします。
	 * <>
	 * @return true固定
	 * @throws Exception 例外
	 */
	public boolean add() throws Exception
	{
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
				
		X31SDataBeanAccess[] paramBean = {bean};
		

		
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, ADD_USECASE_ID);
		
		// マッピングクラスのインスタンスを生成
		CHSV0093_CHSV0093OPDBMapper mapper = new CHSV0093_CHSV0093OPDBMapper();
		
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		
		// ★上りマッピング★
		mapper.setCHSV009301CC(bean, dataMap, JPCModelConstant.FUNC_CD_1, KAIK_INFO,JCCWebCommon.getOpeDate(this, null),"1");
		
		// 検索結果格納用マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// 登録処理呼出
		X31CMessageResult msgResult = invokeService(paramMap, dataMap, outputMap);
		if (msgResult != null)
		{
			return true;
		}
		
		
		
		//【登録処理後、会計補正情報を再取得するため、初期表示サービス実行】
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap2 = new HashMap<String, Object>();
		paramMap2.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, INITAL_DISPLAY_USECASE_ID);
		
		// マッピングクラスのインスタンスを生成
		CHSV0092_CHSV0092OPDBMapper mapper2 = new CHSV0092_CHSV0092OPDBMapper();
		
		HashMap<String, Object> dataMap2 = new HashMap<String, Object>();
		mapper2.setCHSV009207SC(paramBean, dataMap2, JPCModelConstant.FUNC_CD_2, JCCWebCommon.getOpeDate(this, null));
		mapper2.setCHSV009208SC(paramBean, dataMap2, JPCModelConstant.FUNC_CD_1);
		
		// 検索結果格納用マップ
		HashMap<String, Object> outputMap2 = new HashMap<String, Object>();
		// 検索処理呼出
		X31CMessageResult msgResult2 = invokeService(paramMap2, dataMap2, outputMap2);
		if (msgResult2 != null)
		{
			return true;
		}
		
		
		//セッションから初期表示時のデータを取得
		HashMap<String, Object> sessionDataMap = JCCWebCommon.getScreenInfo(this, SESSION_KEY_INITDATA);
		HashMap<String, Object> initMap        = (sessionDataMap     != null)?((HashMap<String, Object>)sessionDataMap.get("INITDATA")):(null);

		mapper2.getCHSV009208SC(paramBean, outputMap2,initMap);
		
		// 一旦プルダウン項目の初期化
		clearPulldown(paramBean);
		// 会計種別プルダウンの選択値も初期化
		X31SDataBeanAccessArray CHSV009201SCList = paramBean[0].getDataBeanArray(CHW02701SFConst.KAIK_SBT);
		CHSV009201SCList.getDataBean(0).sendMessageString(CHW02701SFConst.INDEX, X31CWebConst.DATABEAN_SET_VALUE, "0");

		// 次回会計処理日のメッセージ
		JCCWebCommon.setMessageInfo(this, "EKBF820--I", 
				new String[]{JPCFomatString.formatDate(bean.sendMessageString(CHW02701SFConst.NEXT_KAIK_YMD, X31CWebConst.DATABEAN_GET_VALUE)),
								JPCFomatString.formatYears(bean.sendMessageString(CHW02701SFConst.KAIK_SUMUP_MON, X31CWebConst.DATABEAN_GET_VALUE))});

		// 次画面に表示するメッセージを設定する。
		JCCWebCommon.setMessageInfo(this, "EKB2960--I", new String[]{"会計用補正情報", "登録"});

		
		return true;
	}
	
	/**
	 * 訂正処理をします。
	 * <>
	 * @return true固定
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	public boolean mod() throws Exception
	{
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
				
		X31SDataBeanAccess[] paramBean = {bean};
		
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, ADD_USECASE_ID);
		
		// マッピングクラスのインスタンスを生成
		CHSV0093_CHSV0093OPDBMapper mapper = new CHSV0093_CHSV0093OPDBMapper();
		
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		
		// ★上りマッピング★
		mapper.setCHSV009301CC(bean, dataMap, JPCModelConstant.FUNC_CD_1, KAIK_INFO,JCCWebCommon.getOpeDate(this, null),"2");
		
		// 検索結果格納用マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// 登録処理呼出
		X31CMessageResult msgResult = invokeService(paramMap, dataMap, outputMap);
		if (msgResult != null)
		{
			return true;
		}
		
		//【訂正処理後、会計補正情報を再取得するため、初期表示サービス実行】
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap2 = new HashMap<String, Object>();
		paramMap2.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, INITAL_DISPLAY_USECASE_ID);
		
		// マッピングクラスのインスタンスを生成
		CHSV0092_CHSV0092OPDBMapper mapper2 = new CHSV0092_CHSV0092OPDBMapper();
		
		HashMap<String, Object> dataMap2 = new HashMap<String, Object>();
		mapper2.setCHSV009207SC(paramBean, dataMap2, JPCModelConstant.FUNC_CD_2, JCCWebCommon.getOpeDate(this, null));
		mapper2.setCHSV009208SC(paramBean, dataMap2, JPCModelConstant.FUNC_CD_1);
		
		// 検索結果格納用マップ
		HashMap<String, Object> outputMap2 = new HashMap<String, Object>();
		// 検索処理呼出
		X31CMessageResult msgResult2 = invokeService(paramMap2, dataMap2, outputMap2);
		if (msgResult2 != null)
		{
			return true;
		}
		
		//セッションから初期表示時のデータを取得
		HashMap<String, Object> sessionDataMap = JCCWebCommon.getScreenInfo(this, SESSION_KEY_INITDATA);
		HashMap<String, Object> initMap        = (sessionDataMap     != null)?((HashMap<String, Object>)sessionDataMap.get("INITDATA")):(null);

		mapper2.getCHSV009208SC(paramBean, outputMap2, initMap);
		
		
		// 一旦プルダウン項目の初期化
		clearPulldown(paramBean);
		// 会計種別プルダウンの選択値も初期化
		X31SDataBeanAccessArray CHSV009201SCList = paramBean[0].getDataBeanArray(CHW02701SFConst.KAIK_SBT);
		CHSV009201SCList.getDataBean(0).sendMessageString(CHW02701SFConst.INDEX, X31CWebConst.DATABEAN_SET_VALUE, "0");

		// 次回会計処理日のメッセージ
		JCCWebCommon.setMessageInfo(this, "EKBF820--I", 
				new String[]{JPCFomatString.formatDate(bean.sendMessageString(CHW02701SFConst.NEXT_KAIK_YMD, X31CWebConst.DATABEAN_GET_VALUE)),
								JPCFomatString.formatYears(bean.sendMessageString(CHW02701SFConst.KAIK_SUMUP_MON, X31CWebConst.DATABEAN_GET_VALUE))});

		// 次画面に表示するメッセージを設定する。
		JCCWebCommon.setMessageInfo(this, "EKB2960--I", new String[]{"会計用補正情報", "更新"});

		
		return true;
	}

	/**
	 * 削除処理をします。
	 * <>
	 * @return true固定
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	public boolean del() throws Exception
	{
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
				
		X31SDataBeanAccess[] paramBean = {bean};
		
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, ADD_USECASE_ID);
		
		// マッピングクラスのインスタンスを生成
		CHSV0093_CHSV0093OPDBMapper mapper = new CHSV0093_CHSV0093OPDBMapper();
		
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		
		// ★上りマッピング★
		mapper.setCHSV009301CC(bean, dataMap, JPCModelConstant.FUNC_CD_1, KAIK_INFO,JCCWebCommon.getOpeDate(this, null),"3");
		
		// 検索結果格納用マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// 登録処理呼出
		X31CMessageResult msgResult = invokeService(paramMap, dataMap, outputMap);
		if (msgResult != null)
		{
			return true;
		}
		
		//【削除処理後、会計補正情報を再取得するため、初期表示サービス実行】
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap2 = new HashMap<String, Object>();
		paramMap2.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, INITAL_DISPLAY_USECASE_ID);
		
		// マッピングクラスのインスタンスを生成
		CHSV0092_CHSV0092OPDBMapper mapper2 = new CHSV0092_CHSV0092OPDBMapper();
		
		HashMap<String, Object> dataMap2 = new HashMap<String, Object>();
		mapper2.setCHSV009207SC(paramBean, dataMap2, JPCModelConstant.FUNC_CD_2, JCCWebCommon.getOpeDate(this, null));
		mapper2.setCHSV009208SC(paramBean, dataMap2, JPCModelConstant.FUNC_CD_1);
		// 検索結果格納用マップ
		HashMap<String, Object> outputMap2 = new HashMap<String, Object>();
		// 検索処理呼出
		X31CMessageResult msgResult2 = invokeService(paramMap2, dataMap2, outputMap2);
		if (msgResult2 != null)
		{
			return true;
		}
		

		//セッションから初期表示時のデータを取得
		HashMap<String, Object> sessionDataMap = JCCWebCommon.getScreenInfo(this, SESSION_KEY_INITDATA);
		HashMap<String, Object> initMap        = (sessionDataMap     != null)?((HashMap<String, Object>)sessionDataMap.get("INITDATA")):(null);

		mapper2.getCHSV009208SC(paramBean, outputMap2, initMap);
		
		// 一旦プルダウン項目の初期化
		clearPulldown(paramBean);
		// 会計種別プルダウンの選択値も初期化
		X31SDataBeanAccessArray CHSV009201SCList = paramBean[0].getDataBeanArray(CHW02701SFConst.KAIK_SBT);
		CHSV009201SCList.getDataBean(0).sendMessageString(CHW02701SFConst.INDEX, X31CWebConst.DATABEAN_SET_VALUE, "0");		

		// 次回会計処理日のメッセージ
		JCCWebCommon.setMessageInfo(this, "EKBF820--I", 
				new String[]{JPCFomatString.formatDate(bean.sendMessageString(CHW02701SFConst.NEXT_KAIK_YMD, X31CWebConst.DATABEAN_GET_VALUE)),
								JPCFomatString.formatYears(bean.sendMessageString(CHW02701SFConst.KAIK_SUMUP_MON, X31CWebConst.DATABEAN_GET_VALUE))});

		// 次画面に表示するメッセージを設定する。
		JCCWebCommon.setMessageInfo(this, "EKB2960--I", new String[]{"会計用補正情報", "削除"});

		
		return true;
	}
	
	/**
	 * 再検索処理をします。
	 * <>
	 * @return true固定
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	public boolean research() throws Exception
	{
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
				
		X31SDataBeanAccess[] paramBean = {bean};
		
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, INITAL_DISPLAY_USECASE_ID);
		
		// マッピングクラスのインスタンスを生成
		CHSV0092_CHSV0092OPDBMapper mapper = new CHSV0092_CHSV0092OPDBMapper();
		
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		mapper.setCHSV009207SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2, JCCWebCommon.getOpeDate(this, null));
		mapper.setCHSV009208SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		// 検索結果格納用マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		// 検索処理呼出
		X31CMessageResult msgResult = invokeService(paramMap, dataMap, outputMap);
		if (msgResult != null)
		{
			return true;
		}
		
		
		//セッションから初期表示時のデータを取得
		HashMap<String, Object> sessionDataMap = JCCWebCommon.getScreenInfo(this, SESSION_KEY_INITDATA);
		HashMap<String, Object> initMap        = (sessionDataMap     != null)?((HashMap<String, Object>)sessionDataMap.get("INITDATA")):(null);

		mapper.getCHSV009208SC(paramBean, outputMap, initMap);

		// 次回会計処理日のメッセージ
		JCCWebCommon.setMessageInfo(this, "EKBF820--I", 
				new String[]{JPCFomatString.formatDate(bean.sendMessageString(CHW02701SFConst.NEXT_KAIK_YMD, X31CWebConst.DATABEAN_GET_VALUE)),
								JPCFomatString.formatYears(bean.sendMessageString(CHW02701SFConst.KAIK_SUMUP_MON, X31CWebConst.DATABEAN_GET_VALUE))});
		
		// 次画面に表示するメッセージを設定する。
		JCCWebCommon.setMessageInfo(this, "EKB2960--I", new String[]{"会計用補正情報", "再検索"});

		
		return true;
	}

	
	/**
	 * 項目の初期化
	 * 
	 * @return
	 * @param  boolean firstdispFlg:初期表示フラグ
	 * @throws Exception 
	 * @throws Exception 
	 */
	private void clearPulldown(X31SDataBeanAccess[] bean) throws Exception
	{
		
		X31SDataBeanAccessArray CHSV009202SCList = bean[0].getDataBeanArray(CHW02701SFConst.HOSEI_SBT);

		CHSV009202SCList.getDataBean(0).sendMessageString(CHW02701SFConst.INDEX, X31CWebConst.DATABEAN_SET_VALUE, "");
		CHSV009202SCList.getDataBean(0).sendMessage(CHW02701SFConst.CD_LIST, X31CWebConst.DATABEAN_CLEAR);
		CHSV009202SCList.getDataBean(0).sendMessage(CHW02701SFConst.NM_LIST, X31CWebConst.DATABEAN_CLEAR);
		
		X31SDataBeanAccessArray CHSV009203SCList = bean[0].getDataBeanArray(CHW02701SFConst.BANK_NM);

		CHSV009203SCList.getDataBean(0).sendMessageString(CHW02701SFConst.INDEX, X31CWebConst.DATABEAN_SET_VALUE, "");
		CHSV009203SCList.getDataBean(0).sendMessage(CHW02701SFConst.CD_LIST, X31CWebConst.DATABEAN_CLEAR);
		CHSV009203SCList.getDataBean(0).sendMessage(CHW02701SFConst.NM_LIST, X31CWebConst.DATABEAN_CLEAR);
		
		X31SDataBeanAccessArray CHSV009204SCList = bean[0].getDataBeanArray(CHW02701SFConst.SKNKSITKCM);

		CHSV009204SCList.getDataBean(0).sendMessageString(CHW02701SFConst.INDEX, X31CWebConst.DATABEAN_SET_VALUE, "");
		CHSV009204SCList.getDataBean(0).sendMessage(CHW02701SFConst.CD_LIST, X31CWebConst.DATABEAN_CLEAR);
		CHSV009204SCList.getDataBean(0).sendMessage(CHW02701SFConst.NM_LIST, X31CWebConst.DATABEAN_CLEAR);
		
		X31SDataBeanAccessArray CHSV009205SCList = bean[0].getDataBeanArray(CHW02701SFConst.CRECARD_COMP);

		CHSV009205SCList.getDataBean(0).sendMessageString(CHW02701SFConst.INDEX, X31CWebConst.DATABEAN_SET_VALUE, "");
		CHSV009205SCList.getDataBean(0).sendMessage(CHW02701SFConst.CD_LIST, X31CWebConst.DATABEAN_CLEAR);
		CHSV009205SCList.getDataBean(0).sendMessage(CHW02701SFConst.NM_LIST, X31CWebConst.DATABEAN_CLEAR);
		
		X31SDataBeanAccessArray CHSV009206SCList = bean[0].getDataBeanArray(CHW02701SFConst.CONT_SVC);

		CHSV009206SCList.getDataBean(0).sendMessageString(CHW02701SFConst.INDEX, X31CWebConst.DATABEAN_SET_VALUE, "");
		CHSV009206SCList.getDataBean(0).sendMessage(CHW02701SFConst.CD_LIST, X31CWebConst.DATABEAN_CLEAR);
		CHSV009206SCList.getDataBean(0).sendMessage(CHW02701SFConst.NM_LIST, X31CWebConst.DATABEAN_CLEAR);
				
		bean[0].sendMessageString(CHW02701SFConst.CNT, X31CWebConst.DATABEAN_SET_VALUE, "");
		bean[0].sendMessageString(CHW02701SFConst.AMNT, X31CWebConst.DATABEAN_SET_VALUE, "");
	}

	// ANK-4268-00-00 ADD START
	
	/**
	 * 会計用補正情報一覧照会サービスを実行します。 <br>
	 * 
	 * @param paramBeans 金庫一覧サービスフォームBean
	 * @param knoCd 機能コード
	 */
	private boolean execCHSV0092(X31SDataBeanAccess[] paramBeans, String knoCd)
	{
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, INITAL_DISPLAY_USECASE_ID);
		
		// マッピングクラスのインスタンスを生成
		CHSV0092_CHSV0092OPDBMapper mapper = new CHSV0092_CHSV0092OPDBMapper();
		
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		
		// ★上りマッピング★
		mapper.setCHSV009201SC(paramBeans, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setCHSV009202SC(paramBeans, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setCHSV009203SC(paramBeans, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setCHSV009204SC(paramBeans, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setCHSV009205SC(paramBeans, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setCHSV009206SC(paramBeans, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setCHSV009207SC(paramBeans, dataMap, JPCModelConstant.FUNC_CD_2, JCCWebCommon.getOpeDate(this, null));
		mapper.setCHSV009208SC(paramBeans, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setCHSV009209SC(paramBeans, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setCHSV009210SC(paramBeans, dataMap, JPCModelConstant.FUNC_CD_1);
		
		
		// 検索結果格納用マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// 検索処理呼出
		X31CMessageResult msgResult = invokeService(paramMap, dataMap, outputMap);
		if (msgResult != null)
		{
			return true;
		}
		
		// ★下りマッピング★
		mapper.getCHSV009201SC(paramBeans, outputMap);
		mapper.getCHSV009207SC(paramBeans, outputMap);
		mapper.getCHSV009208SC(paramBeans, outputMap,outputMap);

		return true;
	}
	
	/**
	 * 会計用補正情報のソート処理を行います。
	 * <br>
	 * @return boolean 処理結果
	 * @exception Exception 例外が発生した場合。
	 */
	public boolean sort() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
				
		X31SDataBeanAccess[] paramBean = {bean};
		
		// ソート項目Ｎｏ
		String sortItemNo = bean.sendMessageString(CHW02701SFConst.SORT_ITEM_NO, X31CWebConst.DATABEAN_GET_VALUE);
		bean.sendMessageString(CHW02701SFConst.SORT_ITEM_NO, 			X31CWebConst.DATABEAN_SET_VALUE, sortItemNo);
		
		// ソート区分
		String sortDiv = bean.sendMessageString(CHW02701SFConst.SORT_DIV, X31CWebConst.DATABEAN_GET_VALUE);
		bean.sendMessageString(CHW02701SFConst.SORT_DIV, 				X31CWebConst.DATABEAN_SET_VALUE, sortDiv);

		// 会計用補正情報一覧照会サービス実行
		boolean result = this.execCHSV0092(paramBean, JPCModelConstant.FUNC_CD_1);
		
		// 次回会計処理日のメッセージ
		JCCWebCommon.setMessageInfo(this, "EKBF820--I", 
				new String[]{JPCFomatString.formatDate(bean.sendMessageString(CHW02701SFConst.NEXT_KAIK_YMD, X31CWebConst.DATABEAN_GET_VALUE)),
								JPCFomatString.formatYears(bean.sendMessageString(CHW02701SFConst.KAIK_SUMUP_MON, X31CWebConst.DATABEAN_GET_VALUE))});

		
		return result;
	}
	// ANK-4268-00-00 ADD END
	
}
