/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JETU0011D010TPMA
*	ソースファイル名：JETU0011D010TPMA.java
*	作成者			：FJ
*	日付			：2012年02月22日
*＜機能概要＞
*	番ポ工事登録サービスインターフェイスCBS主処理部品
*	番ポ工事情報の登録時に、登録情報を編集する。
*	
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v3.00.00	2012/01/18	FJ)楠神		新規作成
*	v3.00.00	2012/03/17	FJ)楠神		ANK-0045-00-00
*	v6.00.00	2013/12/17	FJ)安田		ANK-1746-00-00
*	v72.00.00	2024/11/27	FJ)謝		ANK-4494-27-00_【双方向番ポ対応】オーダ流通S向け番ポ工事編集仕様の変更対応
*	v75.00.00	2025/05/26	FJ)金		ANK-4685-00-00_【eo】双方向番ポSTEP3
**********************************************************************/

package eo.ejb.cbs.mainproc;

import com.fujitsu.futurity.model.base.CAANException;
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 com.fujitsu.futurity.model.ejb.common.fw.TemplateMainHandler;

import eo.common.constant.JTUStrConst;
import eo.ejb.cbm.entity.ZM0321ETMsg;
import eo.ejb.cbs.cbsmsg.ETU0011D010CBSMsg;
import eo.ejb.common.db.JTUejbZM0321SecProc;

/**
 * <p>
 * 番ポ工事登録独自処理部品です。
 * </p>
 * @author FJ
 */
public class JETU0011D010TPMA implements TemplateMainHandler 
{
	/**
	 * 処理パターン
	 */
	/** 処理@ */
	private static final String PTN_1 = "1";
	/** 処理A */
	private static final String PTN_2 = "2";
	/** 処理B */
	private static final String PTN_3 = "3";
	/** 処理C */
	private static final String PTN_4 = "4";
	
	/**
	 * 単項目チェックエラー
	 */
	/** エラーフラグ */
	private static final String SINGLEDATA_ERR_E9 = "E9";
	/** 最大桁数 */
	private static final int MAX_LENGTH = 100;
	/**
	 * コンストラクタです。
	 */
	public JETU0011D010TPMA()
	{
		super();
	}

	/**
	 * <p>
	 * 番ポ工事情報の登録時に、登録情報を編集する。<br>
	 * </p>
	 * @param inCBSMsg CBSメッセージ
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @throws CAANException
	 */
	public void invoke(CAANMsg inCBSMsg, AgentDispatchContext inContext) throws CAANException
	{
		String dobanitenUm = inCBSMsg.getString(ETU0011D010CBSMsg.DOBANITEN_UM);
		String dojiKojiUm = inCBSMsg.getString(ETU0011D010CBSMsg.DOJI_KOJI_UM);
// ANK-4494-27-00 ADD START
		String bmpMskmshoTypeCd = inCBSMsg.getString(ETU0011D010CBSMsg.BMP_MSKMSHO_TYPE_CD);
		
		// 廃止登録の場合は処理終了
		if (JTUStrConst.BMP_REQ_NAIYO_HAISHI.equals(bmpMskmshoTypeCd))
		{
			return;
		}
// ANK-4494-27-00 ADD END
		
		//メッセージ
		String msg_doban = "";
		
		//記事欄
		String kijiran = "";
		
		//処理パターン
		String ptn = "";
		
		//処理パターン判定
		if(JTUStrConst.DOBANITEN_UM_N.equals(dobanitenUm) 
				&& JTUStrConst.UM_NON.equals(dojiKojiUm))
		{
			ptn = PTN_1;
		}
		else if((JTUStrConst.DOBANITEN_UM_Y.equals(dobanitenUm)) 
				&& JTUStrConst.UM_NON.equals(dojiKojiUm))
		{
			ptn = PTN_2;
		}
		else if(JTUStrConst.DOBANITEN_UM_N.equals(dobanitenUm) 
				&& JTUStrConst.UM_YK.equals(dojiKojiUm))
		{
			ptn = PTN_3;
		}
		else if((JTUStrConst.DOBANITEN_UM_Y.equals(dobanitenUm)) 
				&& JTUStrConst.UM_YK.equals(dojiKojiUm))
		{
			ptn = PTN_4;
		}
		else
		{
			return;
		}

		//処理@の場合、処理終了
		if(PTN_1.equals(ptn))
		{
			return;
		}
		
		//メッセージの取得
		if(PTN_2.equals(ptn) || PTN_4.equals(ptn))
		{
			msg_doban = getMsgDobaniten();
		}
		
		kijiran = inCBSMsg.getString(ETU0011D010CBSMsg.MSKMJIG_KIJIRAN_1);
		
		if(kijiran == null)
		{
			kijiran = "";
		}
		
		if(PTN_2.equals(ptn))
		{
			setData(inCBSMsg);
			inCBSMsg.set(ETU0011D010CBSMsg.MSKMJIG_KIJIRAN_1, msg_doban + kijiran);
		}
		else if(PTN_3.equals(ptn))
		{
			inCBSMsg.set(ETU0011D010CBSMsg.MSKMJIG_KIJIRAN_1, kijiran);
		}
		else if(PTN_4.equals(ptn))
		{
			setData(inCBSMsg);
			inCBSMsg.set(ETU0011D010CBSMsg.MSKMJIG_KIJIRAN_1,msg_doban + kijiran);
		}
		
		kijiran = inCBSMsg.getString(ETU0011D010CBSMsg.MSKMJIG_KIJIRAN_1);
		
		if(kijiran.length() > MAX_LENGTH)
		{
			inCBSMsg.set(ETU0011D010CBSMsg.MSKMJIG_KIJIRAN_1_ERR, SINGLEDATA_ERR_E9);
			inCBSMsg.set(ETU0011D010CBSMsg.STATUS, StatusCodes.ITEM_RELATION_ERR);
			return;
		}
	}
	
	/**
	 * メッセージを業務パラメタから取得する。（同番移転中について）
	 * @throws CAANException
	 * @return メッセージ
	 * 
	 */
	private String getMsgDobaniten() throws CAANException
	{
		
		//業務パラメタ副次処理部品
		JTUejbZM0321SecProc zm0321secproc = new JTUejbZM0321SecProc();
		
		CAANMsg msg = new CAANMsg(ZM0321ETMsg.class.getName());
		
		msg.set(ZM0321ETMsg.WORK_PARAM_ID, JTUStrConst.WORK_PARAM_ID_BMP_KOJI_MSG001);
		
		msg = zm0321secproc.findByPrimaryKey(msg, true);
		
		if(msg == null)
		{
			return "";
		}
		
		String rslt = msg.getString(ZM0321ETMsg.WORK_PARAM_SETTE_VALUE);
		
		if(rslt == null)
		{
			return "";
		}
		
		return rslt;
	}
	
	/**
	 * インプット内容を編集する。
	 * @param inCBSMsg 
	 * 
	 */
	private void setData(CAANMsg inCBSMsg)
	{
		// ANK-4685-00-00 DEL START
//		//加入権移転先住所　←　設置場所住所
//		inCBSMsg.set(ETU0011D010CBSMsg.KNKN_ITNSAD_MAN_INPUT_FLG, inCBSMsg.getString(ETU0011D010CBSMsg.SETPLACE_AD_MAN_INPUT_FLG));
//		inCBSMsg.set(ETU0011D010CBSMsg.KANYKN_ITENS_AD_CD, inCBSMsg.getString(ETU0011D010CBSMsg.SETPLACE_AD_CD));
//		inCBSMsg.set(ETU0011D010CBSMsg.KANYKN_ITENS_PCD, inCBSMsg.getString(ETU0011D010CBSMsg.SETPLACE_PCD));
//		inCBSMsg.set(ETU0011D010CBSMsg.KANYKN_ITENS_STATE_NM, inCBSMsg.getString(ETU0011D010CBSMsg.SETPLACE_STATE_NM));
//		inCBSMsg.set(ETU0011D010CBSMsg.KANYKN_ITENS_CITY_NM, inCBSMsg.getString(ETU0011D010CBSMsg.SETPLACE_CITY_NM));
//		inCBSMsg.set(ETU0011D010CBSMsg.KANYKN_ITENS_OAZTSU_NM, inCBSMsg.getString(ETU0011D010CBSMsg.SETPLACE_OAZTSU_NM));
//		inCBSMsg.set(ETU0011D010CBSMsg.KANYKN_ITENS_AZCHO_NM, inCBSMsg.getString(ETU0011D010CBSMsg.SETPLACE_AZCHO_NM));
//		inCBSMsg.set(ETU0011D010CBSMsg.KANYKN_ITENS_BNCHIGO, inCBSMsg.getString(ETU0011D010CBSMsg.SETPLACE_BNCHIGO));
//		inCBSMsg.set(ETU0011D010CBSMsg.KANYKN_ITENS_ADRTTM, inCBSMsg.getString(ETU0011D010CBSMsg.SETPLACE_ADRTTM));
//		inCBSMsg.set(ETU0011D010CBSMsg.KANYKN_ITENS_ADRRM, inCBSMsg.getString(ETU0011D010CBSMsg.SETPLACE_ADRRM));
		// ANK-4685-00-00 DEL END
		//設置場所住所　←　NTT契約者住所
		inCBSMsg.set(ETU0011D010CBSMsg.SETPLACE_AD_MAN_INPUT_FLG, inCBSMsg.getString(ETU0011D010CBSMsg.NKYS_AD_MAN_INPUT_FLG));
		inCBSMsg.set(ETU0011D010CBSMsg.SETPLACE_AD_CD, inCBSMsg.getString(ETU0011D010CBSMsg.NTT_KEISHA_AD_CD));
		inCBSMsg.set(ETU0011D010CBSMsg.SETPLACE_PCD, inCBSMsg.getString(ETU0011D010CBSMsg.NTT_KEISHA_PCD));
		inCBSMsg.set(ETU0011D010CBSMsg.SETPLACE_STATE_NM, inCBSMsg.getString(ETU0011D010CBSMsg.NTT_KEISHA_STATE_NM));
		inCBSMsg.set(ETU0011D010CBSMsg.SETPLACE_CITY_NM, inCBSMsg.getString(ETU0011D010CBSMsg.NTT_KEISHA_CITY_NM));
		inCBSMsg.set(ETU0011D010CBSMsg.SETPLACE_OAZTSU_NM, inCBSMsg.getString(ETU0011D010CBSMsg.NTT_KEISHA_OAZTSU_NM));
		inCBSMsg.set(ETU0011D010CBSMsg.SETPLACE_AZCHO_NM, inCBSMsg.getString(ETU0011D010CBSMsg.NTT_KEISHA_AZCHO_NM));
		inCBSMsg.set(ETU0011D010CBSMsg.SETPLACE_BNCHIGO, inCBSMsg.getString(ETU0011D010CBSMsg.NTT_KEISHA_BNCHIGO));
		inCBSMsg.set(ETU0011D010CBSMsg.SETPLACE_ADRTTM, inCBSMsg.getString(ETU0011D010CBSMsg.NTT_KEISHA_ADRTTM));
		inCBSMsg.set(ETU0011D010CBSMsg.SETPLACE_ADRRM, inCBSMsg.getString(ETU0011D010CBSMsg.NTT_KEISHA_ADRRM));
	}
	
}
