/*******************************************************************************
*	 All Rights reserved,Copyright (c) K-Opticom 
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KUW00103SFLogic
*	ソースファイル名：KUW00103SFLogic.java
*	作成者			：富士通
*	日付			：2011年07月31日
*＜機能概要＞
*	工事案件(eo光ネット)画面のロジックです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/07/31	FJ)高橋		新規作成
*	v61.00.00	2023/09/07	FJ)アラ		【ANK-4431-00-00】_【ｅｏ定期】 ONU計画交換対応
*
********************************************************************************/
package eo.web.webview.KUW00103SF;

import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.constant.JKUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKUScreenConst;
import eo.web.webview.mapping.KUSV0004_KUSV0004OPDBMapper;

/**
 * 工事案件(eo光ネット)一意照会のロジッククラスです。
 * @author 富士通
 */
public class KUW00103SFLogic extends JCCWebBusinessLogic
{
	
	/**
	 * 初期化処理
	 * @return boolean
	 * @throws Exception 例外発生時
	 */
	public boolean action_Init() throws Exception
	{
		// 遷移元画面IDの設定
		JCCWebCommon.setScreenId(this, JKUScreenConst.SCREEN_ID_KUW00101, JKUScreenConst.SCREEN_ID_KUW00103);
		
		// 検索処理
		search();
		
		return true;
	}
	
	/**
	 * 戻るボタン押下イベント
	 * @return boolean
	 * @throws Exception 例外発生時
	 */
	public boolean action_Rtrn() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JKUScreenConst.SCREEN_ID_KUW00101);
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JKUScreenConst.SCREEN_NAME_KUW00101);
		
		return true;
	}
	
	/**
	 * 検索実行処理
	 * @return boolean
	 * @throws Exception 例外発生時
	 */
	public boolean search() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		// 引き継ぎ情報の取得
		JCCWebCommon.getScreenInfo(this);
		
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KUSV0004");
		
		// マッピングクラスのインスタンスを生成
		KUSV0004_KUSV0004OPDBMapper mapper = new KUSV0004_KUSV0004OPDBMapper();
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		mapper.setKUSV000401SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setKUSV000402SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setKUSV000403SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setKUSV000404SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setKUSV000405SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
// ANK-4431-00-00 ADD START
		mapper.setKUSV000406SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
// ANK-4431-00-00 ADD END
		// 検索結果格納用マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// サービス呼出 
		X31CMessageResult msgResult = invokeService(paramMap, dataMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		mapper.getKUSV000401SC(paramBean, outputMap);
		mapper.getKUSV000402SC(paramBean, outputMap);
		mapper.getKUSV000403SC(paramBean, outputMap);
		mapper.getKUSV000404SC(paramBean, outputMap);
		mapper.getKUSV000405SC(paramBean, outputMap);
// ANK-4431-00-00 ADD START
		mapper.getKUSV000406SC(paramBean, outputMap);
// ANK-4431-00-00 ADD END
		// 検索結果がない場合は工事案件一覧照会画面に遷移する。
		X31SDataBeanAccessArray beanList1 = paramBean[0].getDataBeanArray(KUW00103SFConst.EKU0011A010CBSMSG1LIST);
		if(beanList1.getCount() == 0)
		{
			String[] msgRp = new String[]{"工事案件", "データ"};
			
			JCCWebCommon.setMessageInfo(this, "EKB0300-KW", msgRp);
			setTransferPageId("KUW001010PJP");
			
			return true;
		}
		X31SDataBeanAccessArray beanList2 = paramBean[0].getDataBeanArray(KUW00103SFConst.EKU0021A010CBSMSG1LIST);
		if(beanList2.getCount() == 0)
		{
			String[] msgRp = new String[]{"工事案件＜eo光ネット＞", "データ"};
			
			JCCWebCommon.setMessageInfo(this, "EKB0300-KW", msgRp);
			setTransferPageId("KUW001010PJP");
			
			return true;
		}
		
// ANK-4431-00-00 ADD START
		
		X31SDataBeanAccessArray beanList3 = paramBean[0].getDataBeanArray(KUW00103SFConst.EZM0171B010CBSMSG1LIST);
		if(beanList3.getCount() == 0)
		{
			String[] msgRp = new String[]{"コード名称管理一覧照会明細", "データ"};
			
			JCCWebCommon.setMessageInfo(this, "EKB0300-KW", msgRp);
			setTransferPageId("KUW001010PJP");
			
			return true;
		}
		
		// 初期表示時編集
		
		//工事フラグの設定
		beanList2.getDataBean(0).sendMessage(KUW00103SFConst.KOJI_FLG_CD_02, X31CWebConst.DATABEAN_CLEAR);
		beanList2.getDataBean(0).sendMessage(KUW00103SFConst.KOJI_FLG_NM_02, X31CWebConst.DATABEAN_CLEAR);
		
		// 工事案件種別コード
		String kojiSbtCd = beanList1.getDataBean(0).sendMessageString(KUW00103SFConst.KOJIAK_SBT_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 工事受付契機異動区分
		String kojiUkOptntyIdoDiv = beanList1.getDataBean(0).sendMessageString(KUW00103SFConst.KOJI_UK_OPTNTY_IDO_DIV_01, X31CWebConst.DATABEAN_GET_VALUE);
		
		String kojiFlgKbn = null;
		
		if (JKUStrConst.CD00577_ONU_KOKAN_KOJI.equals(kojiSbtCd))
		{
			if(JKUStrConst.CD00576_ONU_KEIKAKU_KOKAN.equals(kojiUkOptntyIdoDiv))
			{
				
				kojiFlgKbn = JKUStrConst.KOJI_FLG_IKKATSU_LAUNCH;
			}
			else{
				kojiFlgKbn = JKUStrConst.KOJI_FLG_KOBETSU_LAUNCH;
			}
			
			for (int i = 0; i < beanList3.getCount() ; i++)
			{
				X31SDataBeanAccess ekulist = beanList3.getDataBean(i);
				if (ekulist.sendMessageString(KUW00103SFConst.CD_DIV_04, X31CWebConst.DATABEAN_GET_VALUE).equals(kojiFlgKbn))
				{
					beanList2.getDataBean(0).sendMessageString(KUW00103SFConst.KOJI_FLG_CD_02, X31CWebConst.DATABEAN_SET_VALUE, 
							ekulist.sendMessageString(KUW00103SFConst.CD_DIV_04, X31CWebConst.DATABEAN_GET_VALUE) );
					beanList2.getDataBean(0).sendMessageString(KUW00103SFConst.KOJI_FLG_NM_02, X31CWebConst.DATABEAN_SET_VALUE,
							ekulist.sendMessageString(KUW00103SFConst.CD_DIV_NM_04, X31CWebConst.DATABEAN_GET_VALUE) );
					break;
				}
			}
		}
// ANK-4431-00-00 ADD END
		
		return true;
	}
}
