/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：物流管理システム
*   ソースファイル名：DKW01502SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年11月17日
*＜機能概要＞
*   在庫出荷機器引当画面です。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/11/17   FJ）        新規作成
*   v5.00.00    2013/10/17   FJ）        OM-2013-0003388
*   v38.00.00   2018/08/06   FJ)謝       【ANK-3274-00-00】【機能改善】工事会社出荷時の機器状態チェック条件の見直し
*   v40.00.00   2019/01/31   FJ)謝       【ANK-3488-10-00】在庫出荷によるＢＣＡＳ解約対応
*   v48.00.00   2019/10/09   FJ)謝       【ANK-3736-00-00】【eo】宅内機器管理機能の適正化に伴うOPMS／MUSe連携データのレイアウト変更
*
**********************************************************************/
package eo.web.webview.DKW01502SF;

import static eo.common.constant.JPCOnlineMessageConstant.*;
import static eo.web.webview.DKW01502SF.DKW01502SFConst.*;
import static eo.web.webview.common.JDKScreenConst.*;

import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.web.x00.JCCWebServiceException;
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.JDKCommonUtil;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JDKScreenConst;
import eo.web.webview.common.JDKWebCommon;
import eo.web.webview.common.JZMWebConst;
import eo.web.webview.mapping.DKSV0074_DKSV0074OPDBMapper;
import eo.web.webview.mapping.DKSV0076_DKSV0076OPDBMapper;
import eo.web.webview.mapping.DKSV0154_DKSV0154OPDBMapper;

/**
 * DKW01502のビューロジック
 * <BR>
 * @author 富士通
 */
public class DKW01502SFLogic extends JCCWebBusinessLogic
{

	/**
	 * 生成シリアルバージョンID
	 */
	private static final long serialVersionUID = 1L;

	/** 最大表示件数 */
	private static final String SHOW_MAX_COUNT = "100";
	/** 在庫出荷完了の登録 */
	private static final String MSG_ADD = "在庫出荷完了の登録";
	/** 在庫出荷完了登録 */
	private static final String MSG_ZAIKOSYUKKAFINADD = "在庫出荷完了登録";
	/** VARB（詳細画面用） */
	private static final String L_PAG_DTL = "L_PAG_DTL";
	/** VARB（確認画面用） */
	private static final String L_PAG_FIX = "L_PAG_FIX";
	/** VARB（完了画面用） */
	private static final String L_PAG_FIN = "L_PAG_FIN";

	/**
	 * 初期表示処理を行います。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception
	 */
	public boolean init() throws Exception
	{
		// 画面情報を取得し、サービスフォームBeanに設定
		JCCWebCommon.getScreenInfo(this);

		return refreshStocks();
	}

	/**
	 * 登録確認処理を行います。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception
	 */
	public boolean confirmCreate() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		// 登録サービスの呼び出しを行う（チェックモード）
		if (!putServiceDKSV0076(serviceFormBean, JPCModelConstant.FUNC_CD_2))
		{
			putServiceDKSV0154(getServiceFormBean());
			return true;
		}
// ANK-3736-00-00 ADD START
		// トムソンケース番号の設定
		X31SDataBeanAccessArray arraybean = serviceFormBean.getDataBeanArray(HKAT_LIST);
		if (arraybean != null && arraybean.getCount() > 0)
		{
			for(int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				if (null != subbean)
				{
					String tcasNoBf = subbean.sendMessageString(L_TCASE_NO_01, X31CWebConst.DATABEAN_GET_VALUE);
					if (JDKCommonUtil.isNull(tcasNoBf))
					{
						continue;
					}
					
					// 頭１桁を固定文字「9」に変換する
					String tcasNoAf = "9" + tcasNoBf.substring(tcasNoBf.length() - 1, tcasNoBf.length());
					subbean.sendMessageString(L_TCASE_NO_01, X31CWebConst.DATABEAN_SET_VALUE, tcasNoAf);
				}
			}
		}
// ANK-3736-00-00 ADD END

		// ページング情報の設定
		setPaging(serviceFormBean, SCREEN_ID_DKW01503);

		// 検索のコマンドIDを設定する。
		JCCWebCommon.setSearchCommand(this, L_PAG_FIX, SCREEN_ID_DKW01503);

		setNextScreen(SCREEN_ID_DKW01503, SCREEN_NAME_DKW01503);

		// 確認メッセージ表示
		JCCWebCommon.setMessageInfo(this, EKB0370__I, new String [] {MSG_ADD});

		return true;
	}

	/**
	 * 確定処理を行います。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception
	 */
	public boolean fix() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		// 登録サービスの呼び出しを行う（更新モード）
		if (!putServiceDKSV0076(serviceFormBean, JPCModelConstant.FUNC_CD_1))
		{
			putServiceDKSV0154(getServiceFormBean());
			return true;
		}

		// ページング情報の設定
		setPaging(serviceFormBean, SCREEN_ID_DKW01504);

		// 検索のコマンドIDを設定する。
		JCCWebCommon.setSearchCommand(this, L_PAG_FIN, SCREEN_ID_DKW01504);

		setNextScreen(SCREEN_ID_DKW01504, SCREEN_NAME_DKW01504);

		// 完了メッセージ表示
		JCCWebCommon.setMessageInfo(this, EKB0380__I, new String [] {MSG_ZAIKOSYUKKAFINADD});

		return true;
	}

	/**
	 * 戻るボタン（在庫出荷機器引当画面）押下処理
	 * @return 処理の成否
	 * @throws Exception
	 */
	public boolean returnList() throws Exception
	{
		JCCWebCommon.setScreenId(this, SCREEN_ID_DKW01501, SCREEN_ID_DKW01502);
		setNextScreen(JCCWebCommon.getScreenId(this), "");

		return true;
	}

	/**
	 * 戻るボタン（確認画面）押下処理
	 * @return 処理の成否
	 * @throws Exception
	 */
	public boolean returnDetail() throws Exception
	{
		putServiceDKSV0154(getServiceFormBean());
		setNextScreen(SCREEN_ID_DKW01502, SCREEN_NAME_DKW01502);

		return true;
	}

	/**
	 * 完了ボタン（完了画面）押下処理
	 * @return 処理の成否
	 * @throws Exception
	 */
	public boolean returnFixList() throws Exception
	{
		// ページング情報の設定
		JCCWebCommon.clearPageLinkInfo(this, JDKScreenConst.SCREEN_ID_DKW01501);

		// 画面遷移処理
		JCCWebCommon.setScreenId(this, SCREEN_ID_DKW01501, SCREEN_ID_DKW01504);
		setNextScreen(SCREEN_ID_DKW01501, "");

		return true;
	}
	
	
	/**
	 * 一覧画面を再描画します。
	 * @throws Exception
	 */
	private boolean refreshStocks() throws Exception 
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		// 運用日付を設定
		serviceFormBean.sendMessageString(UNYO_YMD, X31CWebConst.DATABEAN_SET_VALUE, 
											JCCWebCommon.getOpeDate(this, null));

		// サービスの呼び出しを行う
		if (!putServiceDKSV0074(serviceFormBean))
		{
			// エラー時、一覧画面に強制転送
			setNextScreen(SCREEN_ID_DKW01501, JZMWebConst.BLANK);
			setTransferPageId(SCREEN_ID_DKW01501 + JZMWebConst.PJP);

			return true;
		}

		// 一覧の表示設定を行う
		setList(serviceFormBean);

		// 検索のコマンドIDを設定する。
		JCCWebCommon.setSearchCommand(this, L_PAG_DTL, SCREEN_ID_DKW01502);

		// 遷移先画面IDの設定
		setNextScreen(SCREEN_ID_DKW01502, SCREEN_NAME_DKW01502);

		return true;
	}
	

	/**
	 * サービス（DKSV0074）の呼び出しを行います。
	 * <br>
	 * @param sFormBean サービスフォームビーン
	 * @return 成否
	 * @throws Exception データベースアクセスエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	private boolean putServiceDKSV0074(X31SDataBeanAccess sFormBean) throws Exception
	{
		X31SDataBeanAccess[] paramBean = {sFormBean};

		// ユースケースID格納用マップを生成
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "DKSV0074");

		// マッピングクラスのインスタンスを生成
		DKSV0074_DKSV0074OPDBMapper mapper = new DKSV0074_DKSV0074OPDBMapper();

		HashMap<String, String> dataMap = new HashMap<String, String>();

		// 在庫出荷未完了詳細一覧情報 ※機能コード１固定
		mapper.setDKSV007401CC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		// 最大トムソンケース番号一覧照会 ※機能コード１固定
		mapper.setDKSV007402SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		
		// ページング情報の設定
		JCCWebCommon.upmapperPageLinkInfo(this, "DKSV007401CC", dataMap);

		// 検索結果格納用マップ
		HashMap outputMap = new HashMap();

		// 検索処理呼出
		invokeService(paramMap, dataMap, outputMap);

		// 検索エラーフラグの取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg("DKSV007401CC", outputMap);

		if (JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchErrFlg))
		{
			// 検索結果が0件の場合の処理
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I);
			return false;
		}
		else if (JPCModelConstant.SEARCH_ERR_FLG_OVERMAX.equals(searchErrFlg))
		{
			// 検索結果が最大検索件数超えの場合の処理
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB5980__I, 
										new String [] {SHOW_MAX_COUNT, "機器引当"});
			return false;
		}

		mapper.getDKSV007401CC(paramBean, outputMap);

		mapper.getDKSV007402SC(paramBean, outputMap);
		
		// ページング情報の設定
		JCCWebCommon.downmapperPageLinkInfo(this, "DKSV007401CC", outputMap);

		return true;
	}

	/**
	 * サービス（DKSV0076）の呼び出しを行います。
	 * <br>
	 * @param sFormBean サービスフォームビーン
	 * @param func_code 機能コード
	 * @return 成否
	 * @throws Exception データベースアクセスエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	private boolean putServiceDKSV0076(X31SDataBeanAccess sFormBean, String func_code) throws Exception
	{
		// 運用日付時分秒ミリ秒を設定
		sFormBean.sendMessageString(UNYO_YMD_TIME, X31CWebConst.DATABEAN_SET_VALUE, 
									JCCWebCommon.getOpeDateTimeStamp(this, null));

		X31SDataBeanAccess[] paramBean = {sFormBean};

		// ユースケースID格納用マップを生成
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "DKSV0076");

		// マッピングクラスのインスタンスを生成
		DKSV0076_DKSV0076OPDBMapper mapper = new DKSV0076_DKSV0076OPDBMapper();

		HashMap<String, String> dataMap = new HashMap<String, String>();

		mapper.setDKSV007601CC(paramBean, dataMap, func_code);
		mapper.setDKSV007602CC(paramBean, dataMap, func_code);
		mapper.setDKSV007603CC(paramBean, dataMap, func_code);
		mapper.setDKSV007604CC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setDKSV007605CC(paramBean, dataMap, func_code);
		mapper.setDKSV007611CC(paramBean, dataMap, func_code);
// ANK-3488-10-00 ADD START
		mapper.setDKSV007612CC(paramBean, dataMap, func_code);
// ANK-3488-10-00 ADD END
		mapper.setshkaFinJiKikiStaAddMap(paramBean, dataMap, func_code);
// ANK-3488-10-00 ADD START
		mapper.setDKSV007613CC(paramBean, dataMap, func_code);
// ANK-3488-10-00 ADD END

		// 結果格納用マップ
		HashMap outputMap = new HashMap();

		// 処理呼出
		JCCWebServiceException errInfo = null;
		try
		{
			invokeService(paramMap, dataMap, outputMap);
		}
		catch (JCCWebServiceException wse)
		{
			errInfo = wse;
		}

		// 配送完了実績登録処理でエラーが発生した場合、エラーメッセージ・項目IDを設定しなおす
		if (null != errInfo)
		{
			// メッセージを設定しなおすエラーでない場合、フレームワークに任せる
			if (!setErrMsg(outputMap, func_code))
			{
				throw errInfo;
			}
			return false;
		}

		return true;
	}
	

	/**
	 * サービス（DKSV0154）の呼び出しを行います。
	 * <br>
	 * @param sFormBean サービスフォームビーン
	 * @return 成否
	 * @throws Exception データベースアクセスエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	private boolean putServiceDKSV0154(X31SDataBeanAccess sFormBean) throws Exception
	{
		X31SDataBeanAccess[] paramBean = {sFormBean};

		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "DKSV0154");

		DKSV0154_DKSV0154OPDBMapper mapper = new DKSV0154_DKSV0154OPDBMapper();

		HashMap<String, String> dataMap = new HashMap<String, String>();
		mapper.setDKSV015401CC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		HashMap outputMap = new HashMap();
		invokeService(paramMap, dataMap, outputMap);
		mapper.getDKSV015401CC(paramBean, outputMap);

		return true;
	}

	
	

	/**
	 * リストの表示設定を行います。
	 * <br>
	 * @param paramBean 設定する一覧のBean情報
	 * @param serviceFormBean 設定する画面のServiceFormBean
	 * @throws UnsupportedEncodingException 例外
	 */
	private void setList(X31SDataBeanAccess serviceFormBean) throws UnsupportedEncodingException
	{
		X31SDataBeanAccessArray shosaiList = serviceFormBean.getDataBeanArray(HKAT_LIST);

		for (int i = 0; i < shosaiList.getCount(); i++)
		{
			X31SDataBeanAccess subbean = shosaiList.getDataBean(i);
			// 背景色の設定
			if (i % 2 == 1)
			{
				subbean.sendMessageString(L_COLOR_01, X31CWebConst.DATABEAN_SET_VALUE, "even");
			}
			else
			{
				subbean.sendMessageString(L_COLOR_01, X31CWebConst.DATABEAN_SET_VALUE, "odd");
			}

			if (0 == i)
			{
				// 更新年月日時分秒に１件目の配送更新年月日時分秒を設定
				serviceFormBean.sendMessageString(UPD_DTM, X31CWebConst.DATABEAN_SET_VALUE, 
													subbean.sendMessageString(HAISO_UPD_DTM_01, X31CWebConst.DATABEAN_GET_VALUE));

				// トムソンケース番号表示フラグを設定
				if (JDKCommonUtil.isNull(subbean.sendMessageString(KOJI_COMP_CD_01, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					serviceFormBean.sendMessageString(TCASE_NO_HJ_FLG, X31CWebConst.DATABEAN_SET_VALUE, "0");
				}
				else
				{
					serviceFormBean.sendMessageString(TCASE_NO_HJ_FLG, X31CWebConst.DATABEAN_SET_VALUE, "1");
				}
			}

			// 項番の設定
			subbean.sendMessageString(L_NO_01, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i + 1));

			// 出荷ロット番号機器通番
			subbean.sendMessageString(SHUKKA_LOT_KIKI_SEQ_01, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i + 1));

			// 型番号
			String takKikiNo = subbean.sendMessageString(TAKNKIKI_MODEL_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
			String hzkhnMdlNo = subbean.sendMessageString(HUZOKUHIN_MODEL_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
			String mdlNo = "";
			if (!JDKCommonUtil.isNull(takKikiNo))
			{
				mdlNo = takKikiNo;
			}
			else if (!JDKCommonUtil.isNull(hzkhnMdlNo))
			{
				mdlNo = hzkhnMdlNo;
			}
			subbean.sendMessageString(L_MDL_NO_01, X31CWebConst.DATABEAN_SET_VALUE, mdlNo);

			// 棚区分 3桁
			subbean.sendMessageString(L_SHELF_DIV_01, X31CWebConst.DATABEAN_SET_VALUE, 
										JDKWebCommon.substr(subbean.sendMessageString(L_SHELF_DIV_DISP_01, X31CWebConst.DATABEAN_GET_VALUE), 0, 3));
			// 商品名 8桁
			subbean.sendMessageString(L_GDS_NM_01, X31CWebConst.DATABEAN_SET_VALUE, 
										JDKWebCommon.substr(subbean.sendMessageString(L_GDS_NM_DISP_01, X31CWebConst.DATABEAN_GET_VALUE), 0, 8));
			// セット品型コード 15桁
			subbean.sendMessageString(L_SETHN_MDL_CD_01, X31CWebConst.DATABEAN_SET_VALUE, 
										JDKWebCommon.substr(subbean.sendMessageString(L_SETHN_MDL_CD_DISP_01, X31CWebConst.DATABEAN_GET_VALUE), 0, 15));
		}
		// 依頼件数の設定
		serviceFormBean.sendMessageString(REQ_CNT, X31CWebConst.DATABEAN_SET_VALUE, shosaiList.getCount().toString());
	}

	/**
	 * ページング情報の設定を行います。
	 * <br>
	 * @param serviceFormBean サービスフォームビーン
	 * @param screenId 設定する画面の画面ID
	 */
	private void setPaging(X31SDataBeanAccess serviceFormBean, String screenId)
	{
		// プロパティファイルより値を取得
		String maxShowCnt = JCCWebCommon.getSearchConst("DKW01502_MAX_SHOW_CNT");
		String rowPerPage = JCCWebCommon.getSearchConst("DKW01502_ROW_PER_PAGE");

		// ページング情報の設定
		HashMap<String, HashMap<String, Object>> pageMap = new HashMap<String, HashMap<String, Object>>();
		HashMap<String, Object> pageKoMap = new HashMap<String, Object>();
		// 共通情報のマッピング
		pageKoMap.put("func_code", "1");
		pageKoMap.put("search_type", "1");
		pageKoMap.put("max_search_num", maxShowCnt);
		pageKoMap.put("display_num", rowPerPage);
		pageMap.put("dammy", pageKoMap);

		// ページング情報の設定
		JCCWebCommon.upmapperPageLinkInfo(this,  "0", "dammy", pageMap, screenId);

		pageMap = new HashMap<String, HashMap<String, Object>>();
		pageKoMap = new HashMap<String, Object>();
		// 共通情報のマッピング
		pageKoMap.put("func_code", "1");
		pageKoMap.put("search_type", "1");
		pageKoMap.put("max_search_num", maxShowCnt);
		pageKoMap.put("display_num", rowPerPage);
		pageKoMap.put("total_search_num", serviceFormBean.getDataBeanArray(HKAT_LIST).getCount());
		pageKoMap.put("total_page_num", "1");
		pageMap.put("dammy", pageKoMap);

		// ページング情報の設定
		JCCWebCommon.downmapperPageLinkInfo(this,  "0", "dammy", pageMap, screenId);
	}

	/**
	 * 配送完了実績登録処理結果のエラーメッセージを設定する
	 * @param outputMap サービスの出力結果
	 * @param func_code 機能コード
	 * @return 設定した場合、true 設定をフレームワークに任せる場合、false
	 */
	@SuppressWarnings("unchecked")
	private boolean setErrMsg(HashMap outputMap, String func_code)
	{
		boolean existErr = false;
		HashMap errMap = null;
		if (!outputMap.containsKey("DKSV007601CC"))
		{
			return existErr;
		}

		errMap = (HashMap)outputMap.get("DKSV007601CC");
		ArrayList childList = null;
		
		if (null == errMap || !errMap.containsKey("EDK0011C080CBSMsg1List"))
		{
			return existErr;
		}

		childList = (ArrayList)errMap.get("EDK0011C080CBSMsg1List");
		for (int i = 0; i < childList.size(); i++)
		{
			String idx = Integer.toString(i);
			String showIdx = Integer.toString(i + 1);
			HashMap childMap = (HashMap)childList.get(i);

			String statCd = "";
			if (childMap.containsKey("returnCode"))
			{
				statCd = childMap.get("returnCode").toString();
			}

			// 詳細画面でのチェック
			if ("1050".equals(statCd))
			{
				if (childMap.containsValue("E1"))
				{
					existErr = true;
					// 製造番号を赤くする
					JCCWebCommon.setMessageInfo(this, EKB2460_NW, 
												new String [] { "セット品", "製造番号", showIdx }, 
												"L_SEIZO_NO" + idx);
				}
				if (childMap.containsValue("E2"))
				{
					existErr = true;
					// 製造番号を赤くする
					JCCWebCommon.setMessageInfo(this, EKB2470_NW, 
												new String [] { "セット品", "製造番号", showIdx }, 
												"L_SEIZO_NO" + idx);
				}
				if (childMap.containsValue("E3"))
				{
					existErr = true;
					// 製造番号を赤くする
					JCCWebCommon.setMessageInfo(this, EKB0940_KW, 
												new String [] { "製造", "重複", showIdx }, 
												"L_SEIZO_NO" + idx);
				}
				if (childMap.containsValue("E4"))
				{
					existErr = true;
					// セット品番号を赤くする
					JCCWebCommon.setMessageInfo(this, EKB2480_NW, 
												new String [] { "セット品", "セット品番号", showIdx }, 
												"L_SETHN_NO" + idx);
				}
				if (childMap.containsValue("E5"))
				{
					existErr = true;
					// セット品番号を赤くする
					JCCWebCommon.setMessageInfo(this, EKB2490_NW, 
												new String [] { "セット品", "セット品番号", showIdx }, 
												"L_SETHN_NO" + idx);
				}
				if (childMap.containsValue("E6"))
				{
					existErr = true;
					JCCWebCommon.setMessageInfo(this, EKB0910_NW, 
												new String [] { "機器の在庫数", "不足している", showIdx });
				}
				if (childMap.containsValue("E7"))
				{
					existErr = true;
					// トムソンケース番号を赤くする
					JCCWebCommon.setMessageInfo(this, EKB2480_NW, 
												new String [] { "工事会社経由の配送", "トムソンケース番号", showIdx }, 
												"L_TCASE_NO" + idx);
				}
				if (childMap.containsValue("E8"))
				{
					existErr = true;
					// トムソンケース番号を赤くする
					JCCWebCommon.setMessageInfo(this, EKB2490_NW, 
												new String [] { "工事会社経由の配送", "トムソンケース番号", showIdx }, 
												"L_TCASE_NO" + idx);
				}
			}
			if ("1100".equals(statCd))
			{
				if (childMap.containsValue("ED"))
				{
					existErr = true;
					JCCWebCommon.setMessageInfo(this, EKB0790_KW, 
												new String [] { "配送対象物品", "機器の情報", showIdx });
				}
				if (childMap.containsValue("EF"))
				{
					existErr = true;
					// 製造番号を赤くする
					JCCWebCommon.setMessageInfo(this, EKB0790_KW, 
												new String [] { "宅内機器", "製造番号", showIdx }, 
												"L_SEIZO_NO" + idx);
				}
				if (childMap.containsValue("EG"))
				{
					existErr = true;
					// セット品番号を赤くする
					JCCWebCommon.setMessageInfo(this, EKB0790_KW, 
												new String [] { "宅内機器セット品", "セット品番号", showIdx }, 
												"L_SETHN_NO" + idx);
				}
				if (childMap.containsValue("EH"))
				{
					existErr = true;
					JCCWebCommon.setMessageInfo(this, EKB0910_NW, 
												new String [] { "機器", "製造番号管理されていない", showIdx });
				}
				if (childMap.containsValue("EI"))
				{
					existErr = true;
					JCCWebCommon.setMessageInfo(this, EKB0910_NW, 
												new String [] { "機器", "製造番号管理されていない", showIdx });
				}
				if (childMap.containsValue("EJ"))
				{
					existErr = true;
					// 製造番号を赤くする
					JCCWebCommon.setMessageInfo(this, EKB0910_NW, 
												new String [] { "機器", "K-OPT所有以外の", showIdx }, 
												"L_SEIZO_NO" + idx);
				}
				if (childMap.containsValue("EK"))
				{
					existErr = true;
					// 製造番号を赤くする
					JCCWebCommon.setMessageInfo(this, EKB0910_NW, 
												new String [] { "機器", "廃棄されている", showIdx }, 
												"L_SEIZO_NO" + idx);
				}
				if (childMap.containsValue("EL"))
				{
					existErr = true;
					// 製造番号を赤くする
					JCCWebCommon.setMessageInfo(this, EKB0910_NW, 
												new String [] { "機器", "使用中の", showIdx }, 
												"L_SEIZO_NO" + idx);
				}
				if (childMap.containsValue("EM"))
				{
					existErr = true;
					// 製造番号を赤くする
					JCCWebCommon.setMessageInfo(this, EKB0910_NW, 
												new String [] { "機器", "セット品の", showIdx }, 
												"L_SEIZO_NO" + idx);
				}
				if (childMap.containsValue("EN"))
				{
					existErr = true;
					// 製造番号を赤くする
					JCCWebCommon.setMessageInfo(this, EKB0910_NW, 
												new String [] { "機器のMACアドレス", "未設定の", showIdx }, 
												"L_SEIZO_NO" + idx);
				}
				if (childMap.containsValue("EO"))
				{
					existErr = true;
					// 製造番号を赤くする
					JCCWebCommon.setMessageInfo(this, EKB0910_NW, 
												new String [] { "機器の在庫数", "不足している", showIdx }, 
												"L_SEIZO_NO" + idx);
				}
				if (childMap.containsValue("EP"))
				{
					existErr = true;
					// セット品番号を赤くする
					JCCWebCommon.setMessageInfo(this, EKB0780_KW, 
												new String [] { "セット品", "全て入力されていない", "在庫出荷機器引当" }, 
												"L_SETHN_NO" + idx);
				}
				if (childMap.containsValue("EQ"))
				{
					existErr = true;
					JCCWebCommon.setMessageInfo(this, EKB0290_JW, 
												new String [] { "対象機器", "棚移動指示されている在庫", "入力" });
				}
				if (childMap.containsValue("ER"))
				{
					existErr = true;
					JCCWebCommon.setMessageInfo(this, EKB0300_KW, 
												new String [] { "宅内機器", "製造番号", showIdx }, "L_SEIZO_NO" + idx);
				}
// ANK-3274-00-00 ADD START
				if (childMap.containsValue("ES"))
				{
					existErr = true;
					JCCWebCommon.setMessageInfo(this, EKBF220_KW, 
												new String [] { "対象機器", "廃棄棚", "入力", showIdx }, 
												"L_SEIZO_NO" + idx);
				}
// ANK-3274-00-00 ADD END
// ANK-3736-00-00 ADD START
				if (childMap.containsValue("ET"))
				{
					existErr = true;
					JCCWebCommon.setMessageInfo(this, EKBD940_KW, 
												new String [] { showIdx }, 
												"L_TCASE_NO" + idx);
				}
// ANK-3736-00-00 ADD END
			}
		}
		return existErr;
	}

	/**
	 * 画面遷移先を設定します。
	 * @param nextScreenId 遷移先画面ＩＤ
	 * @param nextScreenName 遷移先画面名
	 */
	private void setNextScreen(String nextScreenId, String nextScreenName)
	{
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();

		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, 
											X31CWebConst.DATABEAN_SET_VALUE, nextScreenId);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, 
											X31CWebConst.DATABEAN_SET_VALUE, nextScreenName);
	}
}
