/*******************************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：TUW03001SFLogic
*	ソースファイル名：TUW03001SFLogic.java
*	作成者			：FJ
*	日付			：2011年06月13日
*＜機能概要＞
*	TUW03001のビューロジック
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v3.00.00	2012/06/13	FJ)宮本		新規作成
*	v3.00.00	2012/03/27	FJ)宮本		ANK-0024-00-00
*
********************************************************************************/

package eo.web.webview.TUW03001SF;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;

import com.fujitsu.futurity.web.x00.JCCWebServiceException;
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.constant.JPCOnlineMessageConstant;
import eo.common.constant.JTUStrConst;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JTUWebCommon;
import eo.web.webview.common.JTUScreenConst;
import eo.web.webview.mapping.TUSV0065_TUSV0065OPDBMapper;
import eo.web.webview.mapping.TUSV0066_TUSV0066OPDBMapper;
import eo.web.webview.mapping.TUSV0067_TUSV0067OPDBMapper;
import eo.web.webview.mapping.TUSV0068_TUSV0068OPDBMapper;

/**
 * TUW03001のビューロジック
 * @author FJ
 *
 */
public class TUW03001SFLogic extends JCCWebBusinessLogic
{

	/**
	 * 初期化処理ユースケースID
	 */
	private static final String INIT_USECASE_ID = "TUSV0065";
	
	/**
	 * 初期化処理SCタイトル01
	 */
	private static final String INIT_SC_TITLE01 = "TUSV006501SC";
	
	/**
	 * 初期化処理SCタイトル02
	 */
	private static final String INIT_SC_TITLE02 = "TUSV006502SC";

	/**
	 * 初期化処理SCタイトル03
	 */
	private static final String INIT_SC_TITLE03 = "TUSV006503SC";
	
	/**
	 * 検索処理ユースケースID
	 */
	private static final String SEARCH_USECASE_ID = "TUSV0066";
	
	/**
	 * 検索処理SCタイトル01
	 */
	private static final String SEARCH_SC_TITLE01 = "TUSV006601SC";
	
	/**
	 * 確認初期化処理ユースケースID
	 */
	private static final String CFM_INIT_USECASE_ID = "TUSV0067";
	
	/**
	 * 確認初期化処理SCタイトル01
	 */
	private static final String CFM_INIT_SC_TITLE01 = "TUSV006701SC";
	
	/**
	 * 印刷処理ユースケースID
	 */
	private static final String PRINT_USECASE_ID = "TUSV0068";
	/**
	 * 印刷処理CCタイトル01
	 */
	private static final String PRINT_CC_TITLE01 = "TUSV006801CC";
	
	/**
	 * 検索処理最大検索件数
	 */
	private static final String SEARCH_MAX_SHOW_CNT = "TUW03001_SEARCH_MAX_SHOW_CNT";
	/**
	 * 印刷処理最大検索件数
	 */
	private static final String PRINT_MAX_SHOW_CNT = "TUW03001_PRINT_MAX_SHOW_CNT";
	/**
	 * ＦＡＸ処理最大検索件数
	 */
	private static final String FAX_MAX_SHOW_CNT = "TUW03001_FAX_MAX_SHOW_CNT";

	/**
	 * リスト最大検索件数
	 */
	private static final String LIST_MAX_SHOW_CNT = "TUW03001_LIST_MAX_SHOW_CNT";
	
	/**
	 * 表示用名称
	 */
	/** 工事実施依頼待ち */
	private static final String KOJI_REQ_STAY_DISP_NM = "送信待ち";
	/** 工事実施依頼済み */
	private static final String KOJI_REQ_ZUMI_DISP_NM = "送信済み";
	/** 同時工事 */
	private static final String DOJI_OPEN_YK_DISP_NM = "同時";
	/** 事後工事 */
	private static final String DOJI_OPEN_NON_DISP_NM = "事後";
	
	/**
	 * 処理種別
	 */
	/** 依頼 */
	private static final String SBT_FLG_REQ = "1";
	/** 印刷 */
	private static final String SBT_FLG_PRINT = "2";
	
	/** メッセージ置換文字列 依頼  */
	private static final 	String[] MESSAGE_VALUE_REQ = {"番ポ工事依頼のFAX送信"};
	/** メッセージ置換文字列 印刷  */
	private static final 	String[] MESSAGE_VALUE_PRINT = {"番ポ工事依頼の出力"};
	/** メッセージ置換文字列 依頼エラー終了  */
	private static final 	String[] MESSAGE_VALUE_REQ_ERR = {"番ポ工事依頼", "FAX送信"};

	/**
	 * 初期表示処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_init() throws Exception
	{
		return bmpReq_init();
	}
	
	/**
	 * 初期化処理
	 * @return boolean
	 */
	@SuppressWarnings("unchecked")
	private boolean bmpReq_init()
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();

		// 遷移先の情報を共有フォームBeanの項目に設定する。
		JTUWebCommon.setNextScreenInfo(commoninfoBean, JTUScreenConst.SCREEN_ID_TUW03001, JTUScreenConst.SCREEN_NAME_TUW03001);

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		// 戻るボタンの表示要否判定
		bean.sendMessageString(TUW03001SFConst.BACK_BTN_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE
				, JTUWebCommon.getBackDispFlg(this, JTUScreenConst.SCREEN_ID_TUW03001));
		
		//再検索フラグ取得
		String re_search_flg = bean.sendMessageString(TUW03001SFConst.RESEARCH_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		
		if(JTUStrConst.RESEARCH_FLG_TRUE.equals(re_search_flg))
		{
			setBeanSearchInfo();
			bean.sendMessageString(TUW03001SFConst.DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, JTUStrConst.LIST_DISP_FLG_FALSE);
		}

		/**
		 * サービス呼出処理
		 */
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, INIT_USECASE_ID);
		
		// マッピングクラスのインスタンスを生成
		TUSV0065_TUSV0065OPDBMapper mapper = new TUSV0065_TUSV0065OPDBMapper();
		// 上り格納マップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		// 下り格納マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		
		/*
		 * 上りマッピング
		 */
		// マッピングクラスの呼び出し
		mapper.setTUSV006501SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setTUSV006502SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setTUSV006503SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		// オペレーション日付取得
		String opeDate = JCCWebCommon.getOpeDate(this, null);
		// 基準日設定
		((HashMap<String, Object>)inputMap.get(INIT_SC_TITLE01)).put("search_type", JPCModelConstant.SAERCH_TYPE_IKT);
		((HashMap<String, Object>)inputMap.get(INIT_SC_TITLE01)).put("max_search_num", JCCWebCommon.getSearchConst(LIST_MAX_SHOW_CNT));
		((HashMap<String, Object>)inputMap.get(INIT_SC_TITLE01)).put("key_mskm_jigsho_sbt_cd", JTUStrConst.MSKM_JIGSHO_BMP_KOJI_REQ);
		
		((HashMap<String, Object>)inputMap.get(INIT_SC_TITLE02)).put("key_stdardymd", opeDate);

		((HashMap<String, Object>)inputMap.get(INIT_SC_TITLE03)).put("search_type", JPCModelConstant.SAERCH_TYPE_IKT);
		((HashMap<String, Object>)inputMap.get(INIT_SC_TITLE03)).put("max_search_num", JCCWebCommon.getSearchConst(SEARCH_MAX_SHOW_CNT)); 
		((HashMap<String, Object>)inputMap.get(INIT_SC_TITLE03)).put(JTUStrConst.RESEARCH_FLG_NM, re_search_flg); 
		
		
		/*
		 * サービス呼出 
		 */
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}

		/**
		 * サービス処理結果の取得
		 */
		// 一覧情報のクリア
		X31SDataBeanAccessArray beanList = paramBean[0].getDataBeanArray(TUW03001SFConst.ETU0011B015CBSMSG1LIST);
		if(beanList.getCount() != 0)
		{
			beanList.clearArray();
		}
		
		/*
		 * 下りマッピング
		 */
		// マッピングクラスの呼び出し
		mapper.getTUSV006501SC(paramBean, outputMap);
		mapper.getTUSV006502SC(paramBean, outputMap);
		mapper.getTUSV006503SC(paramBean, outputMap);
		setBmpStatusList(bean);
		
		/**
		 * コンボボックスのリストにNo付与
		 */
		JTUWebCommon.setListNo(bean, TUW03001SFConst.MSKM_JIGSHO_NO_LIST, TUW03001SFConst.CD_NM_01);
		
		/**
		 * 取得データ件数チェック
		 */
		// 検索エラー取得
		HashMap parentMap = null;
		if(outputMap.containsKey(INIT_SC_TITLE03))
		{
			parentMap = (HashMap)outputMap.get(INIT_SC_TITLE03);
		}
		
		if(JTUStrConst.RESEARCH_FLG_TRUE.equals(re_search_flg))
		{
			String searchErrFlg = JCCWebCommon.getSearchErrFlg(INIT_SC_TITLE03, outputMap);
			
			if(JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchErrFlg))
			{
				//0件の場合
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I);
				return true;
			}
			else if(JPCModelConstant.SEARCH_ERR_FLG_OVERMAX.equals(searchErrFlg))
			{
				//最大件数を超えた場合
				String[] msgRpl = new String[]{JCCWebCommon.getSearchConst(SEARCH_MAX_SHOW_CNT)};
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0340__I, msgRpl);
				return true;
			}

			if(parentMap.containsKey("ETU0011B015CBSMsg1List"))
			{
				/**
				 * 一覧表示フラグ設定処理
				 */
				bean.sendMessageString(TUW03001SFConst.DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, JTUStrConst.LIST_DISP_FLG_TRUE);
				
				/**
				 * 表示形式設定処理
				 */
				JTUWebCommon.setRowStyle(bean, TUW03001SFConst.ETU0011B015CBSMSG1LIST, TUW03001SFConst.ROW_STYLE_03);
				setMeisaiMeisho(bean);
				
			}
		}

		
		return true;
	}



	
	/**
	 * 検索ボタン押下イベント
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_search() throws Exception
	{
		
		//セッション情報を削除 
		JCCWebCommon.removeScreenInfo(this, JTUScreenConst.SCREEN_ID_TUW03001);
		JCCWebCommon.clearPageLinkInfo(this, JTUScreenConst.SCREEN_ID_TUW03001);
		
		//検索条件をセッションへ格納
		saveSessionSearchInfo();
		
		return search();
	
	}


	/**
	 * 検索処理
	 * @return boolean
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private boolean search() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		/**
		 * DataBean設定処理
		 */
		setBeanSearchInfo();

		// 一覧表示フラグの初期化
		bean.sendMessageString(TUW03001SFConst.DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, JTUStrConst.LIST_DISP_FLG_FALSE);

		// 一覧情報のクリア
		X31SDataBeanAccessArray beanList = paramBean[0].getDataBeanArray(TUW03001SFConst.ETU0011B015CBSMSG1LIST);
		if(beanList.getCount() != 0)
		{
			beanList.clearArray();
		}
		
		/**
		 * サービス呼出処理
		 */
		//  ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SEARCH_USECASE_ID);

		// マッピングクラスのインスタンスを生成
		TUSV0066_TUSV0066OPDBMapper mapper = new TUSV0066_TUSV0066OPDBMapper();
		// 上り格納マップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		// 下り格納マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// 上りマッピングの呼び出し
		mapper.setTUSV006601SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);

		//一覧照会共通部設定
		((HashMap<String, Object>)inputMap.get(SEARCH_SC_TITLE01)).put("search_type", JPCModelConstant.SAERCH_TYPE_IKT);
		((HashMap<String, Object>)inputMap.get(SEARCH_SC_TITLE01)).put("max_search_num", JCCWebCommon.getSearchConst(SEARCH_MAX_SHOW_CNT));

		
		/*
		 * サービス呼出 
		 */
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);	
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		
		/**
		 * サービス処理結果の取得
		 */
		
		// 下りマッピングの呼び出し
		mapper.getTUSV006601SC(paramBean, outputMap);

		/**
		 * 取得データ件数チェック
		 */
		// 検索エラー取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg(SEARCH_SC_TITLE01, outputMap);
		
		if(JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchErrFlg))
		{
			//0件の場合
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I);
			return true;
		}
		else if(JPCModelConstant.SEARCH_ERR_FLG_OVERMAX.equals(searchErrFlg))
		{
			//最大件数を超えた場合
			String[] msgRpl = new String[]{JCCWebCommon.getSearchConst(SEARCH_MAX_SHOW_CNT)};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0340__I, msgRpl);
			return true;
		}
		
		/**
		 * 一覧表示フラグ設定処理
		 */
		bean.sendMessageString(TUW03001SFConst.DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, JTUStrConst.LIST_DISP_FLG_TRUE);
		bean.sendMessageString(TUW03001SFConst.RESEARCH_FLG, X31CWebConst.DATABEAN_SET_VALUE, JTUStrConst.RESEARCH_FLG_TRUE);
		
		// 行スタイル設定
		JTUWebCommon.setRowStyle(bean, TUW03001SFConst.ETU0011B015CBSMSG1LIST, TUW03001SFConst.ROW_STYLE_03);
		setMeisaiMeisho(bean);

		
		return true;
	}

	/**
	 * 依頼確認処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_req() throws Exception
	{

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		bean.sendMessageString(TUW03001SFConst.SBT_FLG, X31CWebConst.DATABEAN_SET_VALUE, SBT_FLG_REQ);

		return cfm_init();
	}

	/**
	 * 印刷確認処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_print() throws Exception
	{

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		bean.sendMessageString(TUW03001SFConst.SBT_FLG, X31CWebConst.DATABEAN_SET_VALUE, SBT_FLG_PRINT);

		return cfm_init();
	}
	
	/**
	 * 確認画面初期化処理
	 * @return boolean
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private boolean cfm_init() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		/**
		 * DataBean設定処理
		 */
		
		// 検索条件を検索時の状態に戻す
		setBeanFromSessionSearchInfo();

		// 一覧情報のクリア
		X31SDataBeanAccessArray beanList = paramBean[0].getDataBeanArray(TUW03001SFConst.ETU0011B016CBSMSG1LIST);
		if(beanList.getCount() != 0)
		{
			beanList.clearArray();
		}
		
		/**
		 * サービス呼出処理
		 */
		//  ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, CFM_INIT_USECASE_ID);

		// マッピングクラスのインスタンスを生成
		TUSV0067_TUSV0067OPDBMapper mapper = new TUSV0067_TUSV0067OPDBMapper();
		// 上り格納マップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		// 下り格納マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// 上りマッピングの呼び出し
		mapper.setTUSV006701SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		
		// 最大検索件数設定
		String max_cnt = "";
		if(SBT_FLG_PRINT.equals(bean.sendMessageString(TUW03001SFConst.SBT_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			max_cnt = JCCWebCommon.getSearchConst(PRINT_MAX_SHOW_CNT);
		}
		else
		{
			max_cnt = JCCWebCommon.getSearchConst(FAX_MAX_SHOW_CNT);
		}
		
		((HashMap<String, Object>)inputMap.get(CFM_INIT_SC_TITLE01)).put("search_type", JPCModelConstant.SAERCH_TYPE_IKT);
		((HashMap<String, Object>)inputMap.get(CFM_INIT_SC_TITLE01)).put("max_search_num", max_cnt);
		
		/*
		 * サービス呼出 
		 */
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);	
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		
		/**
		 * サービス処理結果の取得
		 */
		
		// 下りマッピングの呼び出し
		mapper.getTUSV006701SC(paramBean, outputMap);

		/**
		 * 取得データ件数チェック
		 */
		// 検索エラー取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg(CFM_INIT_SC_TITLE01, outputMap);
		
		if(JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchErrFlg))
		{
			//0件の場合
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I);
			return true;
		}
		else if(JPCModelConstant.SEARCH_ERR_FLG_OVERMAX.equals(searchErrFlg))
		{
			//最大件数を超えた場合
			String[] msgRpl = new String[]{"出力対象件数", max_cnt + "件以上"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB9070_KW, msgRpl);
			return true;
		}

		String sysDateTime = addHour(JCCWebCommon.getSysDateTime().substring(0, 10), 1);
		
		// 工時予定時刻名称設定
		bean.sendMessageString(TUW03001SFConst.KOJI_YOTEI_TIME, X31CWebConst.DATABEAN_SET_VALUE, sysDateTime);
		
		// 行スタイル設定
		JTUWebCommon.setRowStyle(bean, TUW03001SFConst.ETU0011B016CBSMSG1LIST, TUW03001SFConst.ROW_STYLE_04);
		// 確認ボタン表示設定
		bean.sendMessageString(TUW03001SFConst.FIX_BTN_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, JTUStrConst.DISP_FLG_TRUE);

		/**
		 * DataBean設定処理
		 */
		String sbt_flg = bean.sendMessageString(TUW03001SFConst.SBT_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		if(SBT_FLG_REQ.equals(sbt_flg))
		{
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, MESSAGE_VALUE_REQ);
		}
		else
		{
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, MESSAGE_VALUE_PRINT);
		}
		JCCWebCommon.setMessageAreaBackColor(this, "1");
		// 遷移先の情報を共有フォームBeanの項目に設定する。
		JTUWebCommon.setNextScreenInfo(commoninfoBean, JTUScreenConst.SCREEN_ID_TUW03002, JTUScreenConst.SCREEN_NAME_TUW03002);
		
		
		return true;
	}
	
	/**
	 * 確定ボタン押下処理
	 * @return boolean
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean action_fix() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};

		String sbt_flg = bean.sendMessageString(TUW03001SFConst.SBT_FLG, X31CWebConst.DATABEAN_GET_VALUE);

		// エラー時、表示されないよう確認ボタン表示フラグ初期化
		bean.sendMessageString(TUW03001SFConst.FIX_BTN_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, JTUStrConst.DISP_FLG_FALSE);
		
		// 一覧情報のクリア
		X31SDataBeanAccessArray beanList = paramBean[0].getDataBeanArray(TUW03001SFConst.SUCCESSLIST);
		if(beanList.getCount() != 0)
		{
			beanList.clearArray();
		}
		
		/**
		 * サービス呼出処理
		 */
		//  ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, PRINT_USECASE_ID);

		// マッピングクラスのインスタンスを生成
		TUSV0068_TUSV0068OPDBMapper mapper = new TUSV0068_TUSV0068OPDBMapper();
		// 上り格納マップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		// 下り格納マップ
		HashMap<String, Object> outputMap = null;
		
		// 上りマッピングの呼び出し
		ArrayList<HashMap<String, Object>> inputArray = null;
		inputArray = mapper.setTUSV006801CC(paramBean, inputMap, sbt_flg);

		// 帳票処理種別設定
		String chohyo_trn_sbt = "";
		if(SBT_FLG_PRINT.equals(sbt_flg))
		{
			chohyo_trn_sbt = JTUStrConst.CHOHYO_TRAN_SBT;
		}
		else
		{
			chohyo_trn_sbt = JTUStrConst.CHOHYO_TRAN_SBT_FAX;
		}
		// 処理件数取得
		int syori_cnt = inputArray.size();
		HashMap<String, Object> attachMap = new HashMap<String, Object>();
		boolean isErr = false;
		try
		{
			for(int i = 0; i < syori_cnt; i++)
			{
				inputMap = (HashMap<String, Object>)inputArray.get(i);
				outputMap = new HashMap<String, Object>();
				
				// ユーザーID
				((HashMap<String, Object>)inputMap.get(PRINT_CC_TITLE01)).put("user_id"
						, commoninfoBean.sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE));
				// ユーザー名
				((HashMap<String, Object>)inputMap.get(PRINT_CC_TITLE01)).put("user_nm"
						, commoninfoBean.sendMessageString(CommonInfoCFConst.USER_NM, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 処理種別
				((HashMap<String, Object>)inputMap.get(PRINT_CC_TITLE01)).put("tran_sbt", chohyo_trn_sbt);
				
				// 工事予定時刻
				((HashMap<String, Object>)inputMap.get(PRINT_CC_TITLE01)).put("koji_yotei_time"
						, bean.sendMessageString(TUW03001SFConst.KOJI_YOTEI_TIME, X31CWebConst.DATABEAN_GET_VALUE));
				
				/*
				 * サービス呼出 
				 */
				X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap, attachMap);	
				// エラー処理 
				if(msgResult != null)
				{
					JCCWebCommon.setMessageInfo(this, msgResult);
					return true;
				}

				/**
				 * サービス処理結果の取得
				 */
				mapper.getTUSV006801CC(paramBean, outputMap);
			}
		}
		catch(JCCWebServiceException webEx)
		{
			X31SDataBeanAccessArray successList = bean.getDataBeanArray(TUW03001SFConst.SUCCESSLIST);
			if(successList.getCount() > 0)
			{
				// 正常終了データ(FAX送信済み)がある場合は処理を続行する
				isErr = true;
			}
			else
			{
				throw webEx;
			}
		}
		
		if(SBT_FLG_PRINT.equals(sbt_flg))
		{
			HashMap<String, Object> printInfo = new HashMap<String, Object>();
			// 受信ファイル取得
			ArrayList list = (ArrayList)attachMap.get(X31CWebConst.TELEGRAM_INFO_ATTACH_FILE_LIST);
			HashMap map = (HashMap)list.get(0);
			byte[] downloadData = (byte[])map.get(X31CWebConst.TELEGRAM_INFO_ATTACH_FILE);
			
			printInfo.put("output_chohyo", downloadData);

			JCCWebCommon.setScreenInfo(this, JTUScreenConst.SCREEN_ID_TUW03099, printInfo);

			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0380__I, MESSAGE_VALUE_PRINT);
		}
		else
		{
			if(isErr)
			{
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB9580__I, MESSAGE_VALUE_REQ_ERR);
			}
			else
			{
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0380__I, MESSAGE_VALUE_REQ);
			}
		}
		
		//行スタイル設定
		JTUWebCommon.setRowStyle(bean, TUW03001SFConst.SUCCESSLIST, TUW03001SFConst.ROW_STYLE_04);

		// 遷移先の情報を共有フォームBeanの項目に設定する。
		JTUWebCommon.setNextScreenInfo(commoninfoBean, JTUScreenConst.SCREEN_ID_TUW03003, JTUScreenConst.SCREEN_NAME_TUW03003);
		
		return true;
	}
	
	/**
	 * ダウンロード処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_download() throws Exception
	{
		HashMap<String, Object> printInfo = JCCWebCommon.getScreenInfo(this, JTUScreenConst.SCREEN_ID_TUW03099);
		if(printInfo != null && printInfo.containsKey("output_chohyo"))
		{
			JCCWebCommon.setTempDownloadFile(this, (byte[])printInfo.get("output_chohyo")
					, JTUStrConst.CHOHYO_ID_BMP_SWITCH_KOJI + "." + JTUStrConst.CHOHYO_EXTENSION);
			
			// セッション情報削除
			JCCWebCommon.removeScreenInfo(this, JTUScreenConst.SCREEN_ID_TUW03099);
		}
		return true;
	}
	
	/**
	 * 戻るボタン押下処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_back() throws Exception
	{	
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();

		// 遷移先の情報を共有フォームBeanの項目に設定する。
		JTUWebCommon.setNextScreenInfo(commoninfoBean, JTUScreenConst.SCREEN_ID_TUW03001, JTUScreenConst.SCREEN_NAME_TUW03001);
		
		return true;
	}
	
	/**
	 * 完了ボタン押下処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_fin() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		// 戻り先IDの取得
		String backScreenId = JTUWebCommon.getScreenId(this);
		
		// 戻り先IDの有無で遷移先の判定を行う。
		if(JTUWebCommon.isNull(backScreenId)
				|| JTUScreenConst.SCREEN_ID_TUW03001.equals(backScreenId))
		{
			// 初期処理実行
			return bmpReq_init();
		}
		
		// 遷移先の情報を共有フォームBeanの項目に設定する。
		JTUWebCommon.setNextScreenInfo(commoninfoBean, backScreenId, "");
		return true;
	}
	
	/**
	 * 先頭画面 戻る遷移処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_top_back() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();

		//セッション情報を削除 
		JCCWebCommon.removeScreenInfo(this, JTUScreenConst.SCREEN_ID_TUW03001);
		JCCWebCommon.clearPageLinkInfo(this, JTUScreenConst.SCREEN_ID_TUW03001 + "0PJP");
		
		/**
		 * DataBean設定処理
		 */
		// 遷移先の情報を共有フォームBeanの項目に設定する。
		JTUWebCommon.setNextScreenInfo(commoninfoBean, JTUWebCommon.getScreenId(this), "");
		
		return true;
	}

	/**
	 * 日時文字列に指定した時間を加えた文字列を返す
	 * @param dateHour
	 * @param i
	 * @return String
	 * @throws ParseException
	 */
	private String addHour(String dateHour, int i) throws ParseException
	{
		if(dateHour.length() != 10)
		{
			return "";
		}
		
		SimpleDateFormat form = new SimpleDateFormat("yyyyMMddHH");

		Calendar cal = Calendar.getInstance();

		cal.setTime(form.parse(dateHour));

		cal.add(Calendar.HOUR, i);
		
		return form.format(cal.getTime());
	}
	
	/**
	 * 検索条件を設定
	 */
	private void setBeanSearchInfo()
	{
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		/**
		 * DataBean設定処理
		 */
		String hh_from = bean.sendMessageString(TUW03001SFConst.BMP_KOJI_FIX_YMDH4, X31CWebConst.DATABEAN_GET_VALUE);
		String hh_to = bean.sendMessageString(TUW03001SFConst.BMP_KOJI_FIX_YMDH5, X31CWebConst.DATABEAN_GET_VALUE);
		
		if(!"".equals(bean.sendMessageString(TUW03001SFConst.BMP_KOJI_FIX_YMDH1, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			if("".equals(hh_from))
			{
				hh_from = "00";
			}

			if("".equals(hh_to))
			{
				hh_to = "23";
			}

			// 工事日時
			String ymd = JTUWebCommon.formatDate(JTUWebCommon.getYMD(bean
					, TUW03001SFConst.BMP_KOJI_FIX_YMDH1, TUW03001SFConst.BMP_KOJI_FIX_YMDH2
					, TUW03001SFConst.BMP_KOJI_FIX_YMDH3));
			
			bean.sendMessageString(TUW03001SFConst.KOJI_TIME, X31CWebConst.DATABEAN_SET_VALUE
					, ymd + " " + hh_from + "時〜" + hh_to + "時");
			
		}
		else
		{
			bean.sendMessageString(TUW03001SFConst.KOJI_TIME, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		// 年月日＿ＦＲＯＭ
		bean.sendMessageString(TUW03001SFConst.BMP_KOJI_FIX_YMDH_FROM, X31CWebConst.DATABEAN_SET_VALUE
				, JTUWebCommon.getYMD(bean, TUW03001SFConst.BMP_KOJI_FIX_YMDH1, TUW03001SFConst.BMP_KOJI_FIX_YMDH2
						, TUW03001SFConst.BMP_KOJI_FIX_YMDH3) + hh_from);
		
		
		// 年月日＿ＴＯ
		bean.sendMessageString(TUW03001SFConst.BMP_KOJI_FIX_YMDH_TO, X31CWebConst.DATABEAN_SET_VALUE
				, JTUWebCommon.getYMD(bean, TUW03001SFConst.BMP_KOJI_FIX_YMDH1, TUW03001SFConst.BMP_KOJI_FIX_YMDH2
						, TUW03001SFConst.BMP_KOJI_FIX_YMDH3) + hh_to);

		// 申込事業所番号
		JTUWebCommon.setListSelectedValue(bean, TUW03001SFConst.MSKM_JIGSHO_NO
				, TUW03001SFConst.MSKM_JIGSHO_NO_LIST, TUW03001SFConst.INDEX_01, TUW03001SFConst.CD_01);

		// 番ポ工事ステータス
		JTUWebCommon.setListSelectedValue(bean, TUW03001SFConst.BMP_KOJI_STAT
				, TUW03001SFConst.BMP_KOJI_STAT_LIST, TUW03001SFConst.INDEX_01, TUW03001SFConst.CD_01);
		
		// 同時工事有無
		JTUWebCommon.setRadioSelectedValue(bean, TUW03001SFConst.DOJI_KOJI_UM
				, TUW03001SFConst.DOJI_KOJI_UM_LIST, TUW03001SFConst.DOJI_KOJI_UM_SELECTED
				, TUW03001SFConst.CD_02);
		// 送信先
		JTUWebCommon.setListSelectedValue(bean, TUW03001SFConst.MSKM_JIGSHO_NM
				, TUW03001SFConst.MSKM_JIGSHO_NO_LIST, TUW03001SFConst.INDEX_01, TUW03001SFConst.CD_NM_01);
		
	}
	
	/**
	 * 検索条件をセッションに保持
	 */
	private void saveSessionSearchInfo()
	{
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		/**
		 * セッション設定処理
		 */
		// 引き継ぎ情報を格納するMAP
		HashMap<String, Object> hktgiMap = new HashMap<String, Object>();
		// 検索条件の保持
		hktgiMap.put(TUW03001SFConst.SVC_KEI_NO, 
				bean.sendMessageString(TUW03001SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		hktgiMap.put(TUW03001SFConst.SEIRI_NO, 
				bean.sendMessageString(TUW03001SFConst.SEIRI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		hktgiMap.put(TUW03001SFConst.NTT_KEI_TEL_KAISEN_NO, 
				bean.sendMessageString(TUW03001SFConst.NTT_KEI_TEL_KAISEN_NO, X31CWebConst.DATABEAN_GET_VALUE));
		hktgiMap.put(TUW03001SFConst.BMP_KOJI_FIX_YMDH1, 
				bean.sendMessageString(TUW03001SFConst.BMP_KOJI_FIX_YMDH1, X31CWebConst.DATABEAN_GET_VALUE));
		hktgiMap.put(TUW03001SFConst.BMP_KOJI_FIX_YMDH2, 
				bean.sendMessageString(TUW03001SFConst.BMP_KOJI_FIX_YMDH2, X31CWebConst.DATABEAN_GET_VALUE));
		hktgiMap.put(TUW03001SFConst.BMP_KOJI_FIX_YMDH3, 
				bean.sendMessageString(TUW03001SFConst.BMP_KOJI_FIX_YMDH3, X31CWebConst.DATABEAN_GET_VALUE));
		hktgiMap.put(TUW03001SFConst.BMP_KOJI_FIX_YMDH4, 
				bean.sendMessageString(TUW03001SFConst.BMP_KOJI_FIX_YMDH4, X31CWebConst.DATABEAN_GET_VALUE));
		hktgiMap.put(TUW03001SFConst.BMP_KOJI_FIX_YMDH5, 
				bean.sendMessageString(TUW03001SFConst.BMP_KOJI_FIX_YMDH5, X31CWebConst.DATABEAN_GET_VALUE));
		hktgiMap.put(TUW03001SFConst.DOJI_KOJI_UM_SELECTED, 
				bean.sendMessageString(TUW03001SFConst.DOJI_KOJI_UM_SELECTED, X31CWebConst.DATABEAN_GET_VALUE));

		X31SDataBeanAccess listDataBean = bean.getDataBeanArray(TUW03001SFConst.MSKM_JIGSHO_NO_LIST).getDataBean(0);
		hktgiMap.put(TUW03001SFConst.MSKM_JIGSHO_NO_LIST + TUW03001SFConst.INDEX_01, 
				listDataBean.sendMessageString(TUW03001SFConst.INDEX_01, X31CWebConst.DATABEAN_GET_VALUE));
		
		listDataBean = bean.getDataBeanArray(TUW03001SFConst.BMP_KOJI_STAT_LIST).getDataBean(0);
		hktgiMap.put(TUW03001SFConst.BMP_KOJI_STAT_LIST + TUW03001SFConst.INDEX_01, 
				listDataBean.sendMessageString(TUW03001SFConst.INDEX_01, X31CWebConst.DATABEAN_GET_VALUE));
		
		/**
		 * 引継情報の設定
		 */
		JCCWebCommon.setScreenInfo(this, JTUScreenConst.SCREEN_ID_TUW03001, hktgiMap);
		

	}

	/**
	 * セッションに保持している検索条件をBeanに再設定
	 */
	private void setBeanFromSessionSearchInfo()
	{
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		HashMap<String, Object> searchInfo = new HashMap<String, Object>();
		searchInfo = JCCWebCommon.getScreenInfo(this, JTUScreenConst.SCREEN_ID_TUW03001);

		X31SDataBeanAccess listDataBean = bean.getDataBeanArray(TUW03001SFConst.MSKM_JIGSHO_NO_LIST).getDataBean(0);
		listDataBean.sendMessageString(TUW03001SFConst.INDEX_01, X31CWebConst.DATABEAN_SET_VALUE
				, searchInfo.get(TUW03001SFConst.MSKM_JIGSHO_NO_LIST + TUW03001SFConst.INDEX_01).toString());
		
		listDataBean = bean.getDataBeanArray(TUW03001SFConst.BMP_KOJI_STAT_LIST).getDataBean(0);
		listDataBean.sendMessageString(TUW03001SFConst.INDEX_01, X31CWebConst.DATABEAN_SET_VALUE
				, searchInfo.get(TUW03001SFConst.BMP_KOJI_STAT_LIST + TUW03001SFConst.INDEX_01).toString());
		
		
		JCCWebCommon.setScreenInfo(this, JTUScreenConst.SCREEN_ID_TUW03001, searchInfo);
	}
	
	/**
	 * 番ポステータスリスト作成
	 * @param bean
	 */
	private void setBmpStatusList(X31SDataBeanAccess bean)
	{
		X31SDataBeanAccess subbean = bean.getDataBeanArray(TUW03001SFConst.BMP_KOJI_STAT_LIST).getDataBean(0);

		subbean.sendMessage(TUW03001SFConst.CD_01, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(TUW03001SFConst.CD_NM_01, X31CWebConst.DATABEAN_CLEAR);

		subbean.sendMessageString(TUW03001SFConst.CD_01, X31CWebConst.DATABEAN_ADD_VALUE, "");
		subbean.sendMessageString(TUW03001SFConst.CD_NM_01, X31CWebConst.DATABEAN_ADD_VALUE, "");
		subbean.sendMessageString(TUW03001SFConst.CD_01, X31CWebConst.DATABEAN_ADD_VALUE, JTUStrConst.KOJI_JSSI_REQ_STAY);
		subbean.sendMessageString(TUW03001SFConst.CD_NM_01, X31CWebConst.DATABEAN_ADD_VALUE, "1." + KOJI_REQ_STAY_DISP_NM);
		subbean.sendMessageString(TUW03001SFConst.CD_01, X31CWebConst.DATABEAN_ADD_VALUE, JTUStrConst.KOJI_JSSI_REQ_ZUMI);
		subbean.sendMessageString(TUW03001SFConst.CD_NM_01, X31CWebConst.DATABEAN_ADD_VALUE, "2." + KOJI_REQ_ZUMI_DISP_NM);
	}
	
	/**
	 * 明細行の名称を設定
	 * @param bean
	 */
	private void setMeisaiMeisho(X31SDataBeanAccess bean)
	{
		X31SDataBeanAccessArray listDataBean = bean.getDataBeanArray(TUW03001SFConst.ETU0011B015CBSMSG1LIST);
		int len = listDataBean.getCount();
		X31SDataBeanAccess childBean = null;
		String doji_koji_um = "";
		String bmp_koji_reqymd = "";
		
		for(int i = 0; i < len; i++)
		{
			childBean = listDataBean.getDataBean(i);
			doji_koji_um = childBean.sendMessageString(TUW03001SFConst.DOJI_KOJI_UM_03, X31CWebConst.DATABEAN_GET_VALUE);
			bmp_koji_reqymd = childBean.sendMessageString(TUW03001SFConst.BMP_KOJI_REQYMD_03, X31CWebConst.DATABEAN_GET_VALUE);
			
			if(bmp_koji_reqymd == null || bmp_koji_reqymd.equals(""))
			{
				childBean.sendMessageString(TUW03001SFConst.BMP_KOJI_STAT_DISP_03, X31CWebConst.DATABEAN_SET_VALUE, KOJI_REQ_STAY_DISP_NM);
			}
			else
			{
				childBean.sendMessageString(TUW03001SFConst.BMP_KOJI_STAT_DISP_03, X31CWebConst.DATABEAN_SET_VALUE, KOJI_REQ_ZUMI_DISP_NM);
			}
			
			if(JTUStrConst.UM_YK.equals(doji_koji_um))
			{
				childBean.sendMessageString(TUW03001SFConst.DOJI_KOJI_UM_DISP_03, X31CWebConst.DATABEAN_SET_VALUE, DOJI_OPEN_YK_DISP_NM);
			}
			else if(JTUStrConst.UM_NON.equals(doji_koji_um))
			{
				childBean.sendMessageString(TUW03001SFConst.DOJI_KOJI_UM_DISP_03, X31CWebConst.DATABEAN_SET_VALUE, DOJI_OPEN_NON_DISP_NM);
			}
			
			if(JTUStrConst.UM_NON.equals(doji_koji_um) && (bmp_koji_reqymd == null || bmp_koji_reqymd.equals("")))
			{
				childBean.sendMessageString(TUW03001SFConst.CHKBOX_FLG_03, X31CWebConst.DATABEAN_SET_VALUE, JTUStrConst.DISP_FLG_TRUE);
			}
		}
	}
}
	
