/*********************************************************************
*   All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JKKejbEKK1071C051Edit
*	ソースファイル名：JKKejbEKK1071C051Edit.java
*	作成者			：富士通
*	日付			：2011年07月14日
*＜機能概要＞
*	住所不備機器サービス契約情報審査部品クラス
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/07/14	富士通		新規作成
*	v5.00.00	2013/06/27	FJ) 沖田	IT1-2013-0001288
*
**********************************************************************/

package eo.ejb.common.edit;

import java.util.ArrayList;

import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.StatusCodes;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;

import eo.ejb.cbm.entity.KK1981ETMsg;
import eo.ejb.cbs.cbsmsg.EKK1071C051CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1071C051CBSMsg1List;
import eo.ejb.common.JKKModelCommon;

/**
 * <p>
 * 住所不備機器サービス契約情報審査部品クラスです。
 * </p>
 * @author 富士通
 */
public class JKKejbEKK1071C051Edit
{

	/** 審査チェック結果 OK */
	private static final String CHECK_OK = "00";

	/** 審査チェック結果 NG */
	private static final String CHECK_NG = "01";

	/** 審査チェック結果 WORNING */
	private static final String CHECK_WG = "02";
	
	/** 住所コード存在判定エラー */
	private static final String NG_ADCD = "01";
	
	/** 住所不備チェック内部エラーコード(郵便番号存在判定エラー) */
	private static final String NG_PCD = "02";

	/** 住所名称一致判定エラー */
	private static final String NG_MEISHO = "03";
	
	/** 都道府県名判定エラー */
	private static final String NG_STATE = "030";
	
	/** 市区町村名一致判定エラー */
	private static final String NG_CITY = "031";
	
	/** 番地号一致判定エラー */
	private static final String NG_BNCHIGO = "032";
	
	/** 住所マスタ最下層チェックワーニング */
	private static final String WG_AD_KASO = "06";
	
	/** 住所未確定フラグ（未確定） */
	private static final String MI_FIX_FLG_MI = "1";

	/** 手動入力フラグ（１） */
	private static final String MAN_INPUT_FLG_ONE = "1";

	/** 審査詳細種別コード(機器送付先住所不備チェック) */
	private static final String JGE_DTL_SBT_CD_SOFU_AD_HBI = "025";
	
	/** 審査詳細種別コード(端末設置場所住所不備チェック) */
	private static final String JGE_DTL_SBT_CD_SETI_AD_HBI = "026";
	
	/** 審査対象画面タブコード(機器送付先住所不備チェック) : ネット */
	private static final String JUDGE_TG_SCREEN_TAB_CD_NET = "07";
	
	/** 審査対象画面タブコード(機器送付先住所不備チェック) : テレビ */
	private static final String JUDGE_TG_SCREEN_TAB_CD_TV = "10";
	
	/** 審査対象画面タブコード(機器送付先住所不備チェック) : モバイル */
	private static final String JUDGE_TG_SCREEN_TAB_CD_MOBAIL = "11";

	/** 審査対象画面項目コード(機器送付先住所不備チェック) : 機器詳細情報*/
	private static final String UDGE_TG_SCREEN_KMK_CD = "009";
	
	/** 審査詳細メッセージID(機器送付先住所不備チェック) */
	private static final String JDG_DTL_MSG_ID = "EKB0720-KW";

	/** 審査詳細メッセージID(機器送付先住所不備チェック) */
	private static final String JDG_DTL_MSG_ID_AD = "EKB5400-KW";

	/** 審査詳細メッセージID(機器送付先住所不備チェック) */
	private static final String JDG_DTL_MSG_ID_EKBD290_Q = "EKBD290--Q";
	
	/** メッセージ埋込み文字(接頭語) */
	private static final String MSG_UMKM_MOJI_PREFIX = "住所マスタ,";
	
	/** メッセージ埋込み文字(機器送付先住所不備チェック) */
	private static final String MSG_UMKM_MOJI_ADCD_HBI_025 = "の機器送付先住所";
	
	/** メッセージ埋込み文字(機器送付先住所不備チェック) */
	private static final String MSG_UMKM_MOJI_PCD_HBI_025 = "の機器送付先住所_郵便番号";
	
	/** メッセージ埋込み文字(機器送付先住所不備チェック) */
	private static final String MSG_UMKM_MOJI_STATE_HBI_025 = "の機器送付先住所_都道府県";
	
	/** メッセージ埋込み文字(機器送付先住所不備チェック) */
	private static final String MSG_UMKM_MOJI_CITY_HBI_025 = "の機器送付先住所_市区町村";
	
	/** メッセージ埋込み文字(機器送付先住所不備チェック) */
	private static final String MSG_UMKM_MOJI_BNCHIGO_HBI_025 = "の機器送付先住所_番地号";

	/** メッセージ埋込み文字(端末設置場所住所不備チェック) */
	private static final String MSG_UMKM_MOJI_ADCD_HBI_026 = "の機器設置先住所";
	
	/** メッセージ埋込み文字(端末設置場所住所不備チェック) */
	private static final String MSG_UMKM_MOJI_PCD_HBI_026 = "の機器設置先住所_郵便番号";
	
	/** メッセージ埋込み文字(端末設置場所住所不備チェック) */
	private static final String MSG_UMKM_MOJI_STATE_HBI_026 = "の機器設置先住所_都道府県";
	
	/** メッセージ埋込み文字(端末設置場所住所不備チェック) */
	private static final String MSG_UMKM_MOJI_CITY_HBI_026 = "の機器設置先住所_市区町村";
	
	/** メッセージ埋込み文字(端末設置場所住所不備チェック) */
	private static final String MSG_UMKM_MOJI_BNCHIGO_HBI_026 = "の機器設置先住所_番地号";

	/** メッセージ埋込み文字(端末設置場所住所不備チェック) */
	private static final String MSG_UMKM_MOJI_AD_HBI_WG_026 = "機器設置先住所";

	/** メッセージ埋込み文字(機器送付先住所不備チェック) */
	private static final String MSG_UMKM_MOJI_AD_HBI_WG_025 = "機器送付先住所";

	/** 料金グループコード(eo光ネットホームタイプ) */
	private static final String PRC_GRP_CD_02 = "02";
	
	/** 料金グループコード(eo光ネットメゾンタイプ) */
	private static final String PRC_GRP_CD_03 = "03";
	
	/** 料金グループコード(eo光ネットマンションタイプ) */
	private static final String PRC_GRP_CD_04 = "04";
	
	/** 料金グループコード(eoモバイル(Wi-Fi)) */
	private static final String PRC_GRP_CD_07 = "07";
	
	/** 料金グループコード(eoモバイル(EM)) */
	private static final String PRC_GRP_CD_08 = "08";

	/** 料金グループコード(eoモバイル(UQ-WiMAX)) */
	private static final String PRC_GRP_CD_09 = "09";
	
	/** 料金グループコード(eo光テレビ(K-CAT)) */
	private static final String PRC_GRP_CD_11 = "11";
	
	/** 料金グループコード(eo光テレビ(KCN)) */
	private static final String PRC_GRP_CD_12 = "12";
	
	/** 料金グループコード(eo光テレビ(再送信)) */
	private static final String PRC_GRP_CD_13 = "13";
	
	/** 埋め込み区切り文字 */
	private static final String UME_APD = "、";
	
	/** 住所チェックレベル（1：全て） */
	private static final String AD_CHK_LV_ONE = "1";


	/**
	 * コンストラクタです。
	 */
	public JKKejbEKK1071C051Edit()
	{
	}

	/**
	 * <p>
	 * 住所不備機器サービス契約情報審査チェック処理を行う。
	 * </p>
	 * @param inMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @return 審査チェック処理の結果
	 */
	public Object getAdHbiOkForKikgetvcKeiChkRslt(CAANMsg inMsg, AgentDispatchContext inContext)
	{
		// 審査チェック処理部品
		JKKejbKK1071Edit kk1071 = new JKKejbKK1071Edit();

		CAANMsg[] kktkSvcKeiList = inMsg.getCAANMsgList(EKK1071C051CBSMsg.EKK1071C051CBSMSG1LIST);
		// リストがnullまたは0件の場合はチェックしない
		if(kktkSvcKeiList == null || kktkSvcKeiList.length == 0)
		{
			return CHECK_OK;
		}

		// 審査詳細実施制御の結果からチェックの実施判定を行う（機器送付先住所不備チェック）
		String errResult = kk1071.getErrRsltKK1831(inMsg, inMsg.getString(EKK1071C051CBSMsg.JDG_JSSI_KINO_SKBT_CD), JGE_DTL_SBT_CD_SOFU_AD_HBI);

		// 審査詳細実施制御の結果からチェックの実施判定を行う（端末設置場所住所不備チェック）
		String errResult2 = kk1071.getErrRsltKK1831(inMsg, inMsg.getString(EKK1071C051CBSMsg.JDG_JSSI_KINO_SKBT_CD), JGE_DTL_SBT_CD_SETI_AD_HBI);

		// 埋め込み文字（機器提供サービスコード名）保持用リストの設定（送付先用）
		ArrayList<String> umeArraySend = new ArrayList<String>();

		// 埋め込み文字（機器提供サービスコード名）保持用リストの設定（設置先用）
		ArrayList<String> umeArraySet = new ArrayList<String>();

		// 埋め込み文字（接尾語）保持用項目の設定（送付先用）
		String umeSufixSend = null;

		// 埋め込み文字（接尾語）保持用項目の設定（設置先用）
		String umeSufixSet = null;
		
		// メッセージID
		String msgId1 = null;
		String msgId2 = null;

		// 審査.審査結果コード設定用
		String[] jdgResult = new String[2];
		
		for(int i = 0; i < kktkSvcKeiList.length; i++)
		{	
			// 実施要の場合は機器送付先住所不備チェックを行う
			if (errResult != null)
			{
				Object result = CHECK_OK;
				// 機器送付先住所手動入力フラグが"1"の場合は、番地号未入力チェック
				if (MAN_INPUT_FLG_ONE.equals(kktkSvcKeiList[i].getString(EKK1071C051CBSMsg1List.KIKI_SOHUS_AD_MAN_INPUT_FLG)))
				{
					// 機器送付先番地号が未入力の場合はチェック結果NG(住所名称一致判定)とする
					if (kktkSvcKeiList[i].isNull(EKK1071C051CBSMsg1List.KIKI_SOHUS_BNCHIGO))
					{
						result = NG_MEISHO;
					}
				}
				// 機器送付先住所手動入力フラグが"1"以外の場合は、住所不備チェック
				else
				{	
					// 引数設定
					String adCd = kktkSvcKeiList[i].getString(EKK1071C051CBSMsg1List.KIKI_SOHUS_AD_CD);
					String pcd = kktkSvcKeiList[i].getString(EKK1071C051CBSMsg1List.KIKI_SOHUS_PCD);
					String stateNm = kktkSvcKeiList[i].getString(EKK1071C051CBSMsg1List.KIKI_SOHUS_STATE_NM);
					String cityNm = kktkSvcKeiList[i].getString(EKK1071C051CBSMsg1List.KIKI_SOHUS_CITY_NM);
					String oaztsuNm = kktkSvcKeiList[i].getString(EKK1071C051CBSMsg1List.KIKI_SOHUS_OAZTSU_NM);
					String azchoNm = kktkSvcKeiList[i].getString(EKK1071C051CBSMsg1List.KIKI_SOHUS_AZCHO_NM);
					String banchiGo = kktkSvcKeiList[i].getString(EKK1071C051CBSMsg1List.KIKI_SOHUS_BNCHIGO);

					// 審査チェック処理部品を呼び出す。
					result = kk1071.adHbiCheck(inMsg, adCd, pcd, stateNm, cityNm, oaztsuNm, azchoNm, banchiGo);
				}

				String adCd = kktkSvcKeiList[i].getString(EKK1071C051CBSMsg1List.KIKI_SOHUS_AD_CD);
				String pcd = kktkSvcKeiList[i].getString(EKK1071C051CBSMsg1List.KIKI_SOHUS_PCD);
				String kikiSohusAdChkLv = kktkSvcKeiList[i].getString(EKK1071C051CBSMsg1List.KIKI_SOHUS_AD_CHK_LV);

				// 機器送付先住所の住所最下層チェックの実施
				if (CHECK_OK.equals(result))
				{
					// 機器送付先住所チェックレベルが"1"(全て)の場合
					if (AD_CHK_LV_ONE.equals(kikiSohusAdChkLv))
					{
						result = adCdMostBottomPriKikiSoufu(inMsg, kk1071, adCd, pcd);
					}
				}

				if (!CHECK_OK.equals(result))
				{
					// 住所コード、住所名称のNGの場合は埋め込み文字の接尾語を切り替える
					if (NG_ADCD.equals(result) || NG_MEISHO.equals(result))
					{
						umeSufixSend = MSG_UMKM_MOJI_ADCD_HBI_025;
						msgId1 = JDG_DTL_MSG_ID;
						errResult = CHECK_NG;
					}
					else if (WG_AD_KASO.equals(result))
					{
						umeSufixSend = MSG_UMKM_MOJI_AD_HBI_WG_025;
						msgId1 = JDG_DTL_MSG_ID_EKBD290_Q;
						errResult = CHECK_WG;
					}
					else if (NG_PCD.equals(result))
					{
						umeSufixSend = MSG_UMKM_MOJI_PCD_HBI_025;
						msgId1 = JDG_DTL_MSG_ID_AD;
						errResult = CHECK_NG;
					}
					else if (NG_STATE.equals(result))
					{
						umeSufixSend = MSG_UMKM_MOJI_STATE_HBI_025;
						msgId1 = JDG_DTL_MSG_ID_AD;
						errResult = CHECK_NG;
					}
					else if (NG_CITY.equals(result))
					{
						umeSufixSend = MSG_UMKM_MOJI_CITY_HBI_025;
						msgId1 = JDG_DTL_MSG_ID_AD;
						errResult = CHECK_NG;
					}
					else if (NG_BNCHIGO.equals(result))
					{
						umeSufixSend = MSG_UMKM_MOJI_BNCHIGO_HBI_025;
						msgId1 = JDG_DTL_MSG_ID_AD;
						errResult = CHECK_NG;
					}
					// 機器提供サービスコードの名称をリストに保持する
					umeArraySend.add(kk1071.getKktkSvcCdNm(kktkSvcKeiList[i].getString(EKK1071C051CBSMsg1List.KKTK_SVC_CD)));
				}
			}


			// 実施要の場合は端末設置場所住所不備チェックを行う
			if (errResult2 != null)
			{
				// 引数設定
				String adCdSet = kktkSvcKeiList[i].getString(EKK1071C051CBSMsg1List.KIKI_STC_SAKI_AD_CD);
				String pcdSet = kktkSvcKeiList[i].getString(EKK1071C051CBSMsg1List.KIKI_STC_SAKI_PCD);
				String stateNmSet = kktkSvcKeiList[i].getString(EKK1071C051CBSMsg1List.KIKI_STC_SAKI_STATE_NM);
				String cityNmSet = kktkSvcKeiList[i].getString(EKK1071C051CBSMsg1List.KIKI_STC_SAKI_CITY_NM);
				String oaztsuNmSet = kktkSvcKeiList[i].getString(EKK1071C051CBSMsg1List.KIKI_STC_SAKI_OAZTSU_NM);
				String azchoNmSet = kktkSvcKeiList[i].getString(EKK1071C051CBSMsg1List.KIKI_STC_SAKI_AZCHO_NM);
				String banchiGoSet = kktkSvcKeiList[i].getString(EKK1071C051CBSMsg1List.KIKI_STC_SAKI_BNCHIGO);
				String kikiStcSakiAdChkLv = kktkSvcKeiList[i].getString(EKK1071C051CBSMsg1List.KIKI_STC_SAKI_AD_CHK_LV);

				// 審査チェック処理部品の住所不備チェック処理を呼び出す。
				Object result2 = kk1071.adHbiCheck(inMsg, adCdSet, pcdSet, stateNmSet, cityNmSet, oaztsuNmSet, azchoNmSet, banchiGoSet);

				// 住所コード最下層チェックを行う
				if (CHECK_OK.equals(result2))
				{
					// 機器設置先住所チェックレベルが"1"(全て)の場合
					if (AD_CHK_LV_ONE.equals(kikiStcSakiAdChkLv))
					{
						result2 = adCdMostBottomPri(kktkSvcKeiList[i], kk1071, adCdSet, pcdSet);
					}
				}

				if(!CHECK_OK.equals(result2))
				{
					// 住所コード、住所名称のNGの場合は埋め込み文字の接尾語を切り替える
					if(NG_ADCD.equals(result2) || NG_MEISHO.equals(result2))
					{
						umeSufixSet = MSG_UMKM_MOJI_ADCD_HBI_026;
						msgId2 = JDG_DTL_MSG_ID;
						errResult2 = CHECK_NG;
					}
					else if (WG_AD_KASO.equals(result2))
					{
						umeSufixSet = MSG_UMKM_MOJI_AD_HBI_WG_026;
						msgId2= JDG_DTL_MSG_ID_EKBD290_Q;
						errResult2 = CHECK_WG;
					}
					else if (NG_PCD.equals(result2))
					{
						umeSufixSet = MSG_UMKM_MOJI_PCD_HBI_026;
						msgId2 = JDG_DTL_MSG_ID_AD;
						errResult2 = CHECK_NG;
					}
					else if (NG_STATE.equals(result2))
					{
						umeSufixSet = MSG_UMKM_MOJI_STATE_HBI_026;
						msgId2 = JDG_DTL_MSG_ID_AD;
						errResult2 = CHECK_NG;
					}
					else if (NG_CITY.equals(result2))
					{
						umeSufixSet = MSG_UMKM_MOJI_CITY_HBI_026;
						msgId2 = JDG_DTL_MSG_ID_AD;
						errResult2 = CHECK_NG;
					}
					else if (NG_BNCHIGO.equals(result2))
					{
						umeSufixSet = MSG_UMKM_MOJI_BNCHIGO_HBI_026;
						msgId2 = JDG_DTL_MSG_ID_AD;
						errResult2 = CHECK_NG;
					}
					// 機器提供サービスコードの名称をリストに保持する
					umeArraySet.add(kk1071.getKktkSvcCdNm(kktkSvcKeiList[i].getString(EKK1071C051CBSMsg1List.KKTK_SVC_CD)));
				}
			}
		}

		// 審査の結果がNGの場合（名称リストが設定されている場合）、審査詳細に登録する（送付先）
		if(umeArraySend.size() > 0)
		{
			createIsAdHbiOkForKikiSvcKei(inMsg, inContext, errResult, JGE_DTL_SBT_CD_SOFU_AD_HBI, umeArraySend, umeSufixSend, msgId1);
			jdgResult[0] = errResult;
		}

		// 審査の結果がNGの場合（名称リストが設定されている場合）、審査詳細に登録する（設置先）
		if(umeArraySet.size() > 0)
		{
			createIsAdHbiOkForKikiSvcKei(inMsg, inContext, errResult2, JGE_DTL_SBT_CD_SETI_AD_HBI, umeArraySet, umeSufixSet, msgId2);
			jdgResult[1] = errResult2;
		}

		return kk1071.getJudgeJudgeRsltCd(jdgResult);

	}
	
	/**
	 * <p>
	 * 住所コード最下層チェックを行う。(機器設置先住所)
	 * </p>
	 * @param inMsg       処理対象のメッセージキャリア
	 * @param kk1071      審査共通部品のインスタンス
	 * @param adCd        住所コード
	 * @param pcdSet      郵便番号
	 * @return 住所コード最下層チェック結果
	 */
	private Object adCdMostBottomPri(CAANMsg inMsg, JKKejbKK1071Edit kk1071, String adCd, String pcdSet)
	{
		// 機器設置先住所未確定フラグが"1"（未確定）の場合、チェック結果OKを返却する
		if (MI_FIX_FLG_MI.equals(inMsg.getString(EKK1071C051CBSMsg1List.KIKI_STC_AD_MI_FIX_FLG)))
		{
			return CHECK_OK;
		}

		// 機器設置先字丁目名が設定されている場合、チェック結果OKを返却する
		if (!inMsg.isNull(EKK1071C051CBSMsg1List.KIKI_STC_SAKI_AZCHO_NM))
		{
			return CHECK_OK;
		}

		// 住所コード最下層チェックを行う
		String resultBtm = kk1071.adCdMostBottom(inMsg, adCd, pcdSet);

		// チェック結果が警告の場合
		if (CHECK_WG.equals(resultBtm))
		{
			return WG_AD_KASO;
		}

		return CHECK_OK;
	}

	/**
	 * <p>
	 * 住所コード最下層チェックを行う。(機器送付先住所)
	 * </p>
	 * @param inMsg       処理対象のメッセージキャリア
	 * @param kk1071      審査共通部品のインスタンス
	 * @param adCd        住所コード
	 * @param pcdSet      郵便番号
	 * @return 住所コード最下層チェック結果
	 */
	private Object adCdMostBottomPriKikiSoufu(CAANMsg inMsg, JKKejbKK1071Edit kk1071, String adCd, String pcdSet)
	{
		// 機器送付先字丁目名が設定されている場合、チェック結果OKを返却する
		if (!inMsg.isNull(EKK1071C051CBSMsg1List.KIKI_SOHUS_AZCHO_NM))
		{
			return CHECK_OK;
		}

		// 住所コード最下層チェックを行う
		String resultBtm = kk1071.adCdMostBottom(inMsg, adCd, pcdSet);

		// チェック結果が警告の場合
		if (CHECK_WG.equals(resultBtm))
		{
			return WG_AD_KASO;
		}

		return CHECK_OK;
	}

	/**
	 * <p>
	 * 審査詳細の登録を行います（住所不備機器サービス契約情報審査チェック）。
	 * </p>
	 * @param inMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @param errRsltCd エラー結果コード
	 * @param jgeDtlSbtCd 審査詳細種別コード
	 * @param umeArray メッセージ埋め込み文字のリスト
	 * @param umeSufix メッセージ埋め込み文字の接尾語
	 * @param msgId    メッセージID
	 */
	public void createIsAdHbiOkForKikiSvcKei(CAANMsg inMsg, AgentDispatchContext inContext, String errRsltCd, String jgeDtlSbtCd,
			ArrayList<String> umeArray, String umeSufix, String msgId)
	{
		// 審査詳細の登録用のメッセージを作成
		CAANMsg inETMsg = new CAANMsg(KK1981ETMsg.class.getName());

		inETMsg.set(KK1981ETMsg.JUDGE_NO, inMsg.getString(EKK1071C051CBSMsg.JUDGE_NO));
		inETMsg.set(KK1981ETMsg.JDG_DTL_SBT_CD, jgeDtlSbtCd);
		
		// 審査対象画面タブコード判定を行う
		String rkgroupCd = inMsg.getString(EKK1071C051CBSMsg.PRC_GRP_CD);
		
		if(PRC_GRP_CD_02.equals(rkgroupCd) || PRC_GRP_CD_03.equals(rkgroupCd) || PRC_GRP_CD_04.equals(rkgroupCd))
		{
			inETMsg.set(KK1981ETMsg.JUDGE_TG_SCREEN_TAB_CD, JUDGE_TG_SCREEN_TAB_CD_NET);
		}
		else if(PRC_GRP_CD_07.equals(rkgroupCd) || PRC_GRP_CD_08.equals(rkgroupCd) || PRC_GRP_CD_09.equals(rkgroupCd))
		{
			inETMsg.set(KK1981ETMsg.JUDGE_TG_SCREEN_TAB_CD, JUDGE_TG_SCREEN_TAB_CD_MOBAIL);
		}
		else if(PRC_GRP_CD_11.equals(rkgroupCd) || PRC_GRP_CD_12.equals(rkgroupCd) || PRC_GRP_CD_13.equals(rkgroupCd))
		{
			inETMsg.set(KK1981ETMsg.JUDGE_TG_SCREEN_TAB_CD, JUDGE_TG_SCREEN_TAB_CD_TV);
		}

		inETMsg.set(KK1981ETMsg.JUDGE_TG_SCREEN_KMK_CD, UDGE_TG_SCREEN_KMK_CD);
		inETMsg.set(KK1981ETMsg.JUDGE_YMD, JKKModelCommon.getOpeDate(inMsg));
		inETMsg.set(KK1981ETMsg.JUDGE_JUDGE_RSLT_CD, errRsltCd);
		inETMsg.set(KK1981ETMsg.JDG_DTL_MSG_ID, msgId);

		StringBuilder bldUmeWord = new StringBuilder();
		if (msgId.equals(JDG_DTL_MSG_ID_EKBD290_Q))
		{
			bldUmeWord.append(umeSufix);
		}
		else
		{
			if (msgId.equals(JDG_DTL_MSG_ID))
			{
				bldUmeWord.append(MSG_UMKM_MOJI_PREFIX);
			}
			bldUmeWord.append(umeArray.get(0));
			for (int i = 1; i < umeArray.size(); i++)
			{
				bldUmeWord.append(UME_APD);
				bldUmeWord.append(umeArray.get(i));
			}
			bldUmeWord.append(umeSufix);
		}

		// 埋め込み文字の設定
		inETMsg.set(KK1981ETMsg.MSG_UMKM_MOJI, bldUmeWord.toString());

		// 登録処理の実施
		boolean createFlg = new JKKejbKK1071Edit().createJudgeDtl(inMsg, inETMsg);

		// PKが重複していた場合は関連制約エラーとする
		if (!createFlg)
		{
			inMsg.set(EKK1071C051CBSMsg.JUDGE_NO_ERR, "EB");
			inMsg.set(EKK1071C051CBSMsg.STATUS, StatusCodes.RELATION_ERR);
		}

	}

}
