/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JKUejbSetsubiCodeCnvUtil
*	ソースファイル名：JKUejbSetsubiCodeCnvUtil.java
*	作成者			：富士通
*	日付			：2011年09月01日
*＜機能概要＞
*	SIF用設備系システムコード変換部品クラス
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/09/01	富士通		新規作成
*	v53.00.00	2021/04/28	FJ)謝		【ANK-3989-00-00】マンション光コンセント方式への5G・10Gコース追加
*	v60.00.00	2022/06/21	 FJ)Arah	【ANK-4244-00-00】【eo定期】MT既設賃貸対応
*	v73.00.00	2024/10/21	FJ)丸田		【ANK-4493-00-00】【eo定期】 光配線マンションのコースアップ対応
**********************************************************************/
package eo.ejb.common;

import java.util.HashMap;

import com.fujitsu.futurity.model.base.CAANMsg;

import eo.common.constant.JKUStrConst;
import eo.common.util.JKUCommonUtil;
import eo.ejb.cbm.entity.KU0061ETMsg;
import eo.ejb.cbm.entity.KU0061LE;

/**
 * 設備系システムコードの変換を行うクラスです。<p>
 * <BR>
 * @author 富士通
 */
public class JKUejbSetsubiCodeCnvUtil
{
	
	/**
	 * 設備コードマップを変換、取得します。
	 * @param kojiakNo	工事案件番号
	 * @param eoKokyakuMap eo顧客システムコードマップ
	 * @return 連携システムコードマップ
	 */
	public static HashMap<String, String> getSetsubiCodeMap(String kojiakNo, HashMap<String, String> eoKokyakuMap)
	{
		// 工事案件番号で、工事案件＜eo光ネットマンション＞の検索を実行する
		CAANMsg resultMansData = getEoHMans(kojiakNo);
		
		if (null != resultMansData)
		{
			eoKokyakuMap.put(JKUStrConst.RNKI_SYS_MANS_TSN_STB_CD, resultMansData.getString(KU0061ETMsg.MANS_TUSHIN_EQUIP_CD));
			eoKokyakuMap.put(JKUStrConst.RNKI_SYS_IP_HARAIDASHI, resultMansData.getString(KU0061ETMsg.IP_HRADSI_CD));
// ANK-3989-00-00 ADD START
// ANK-4244-00-00 MOD START
// ANK-4493-00-00 MOD START
//			if (JKUStrConst.CD01213_HKR_SOCKET.equals(resultMansData.getString(KU0061ETMsg.TK_HOSHIKI_PATTERN_CD))
//					&& (JKUStrConst.TONAI_SPEED_CD_5G_5G.equals(resultMansData.getString(KU0061ETMsg.TONAI_SPEED_CD))
//							|| JKUStrConst.TONAI_SPEED_CD_10G_10G.equals(resultMansData.getString(KU0061ETMsg.TONAI_SPEED_CD))))
//			if ( (JKUStrConst.TONAI_SPEED_CD_5G_5G.equals(resultMansData.getString(KU0061ETMsg.TONAI_SPEED_CD))
//				 || JKUStrConst.TONAI_SPEED_CD_10G_10G.equals(resultMansData.getString(KU0061ETMsg.TONAI_SPEED_CD))))
			if (JKUStrConst.CD01213_HHS_CSCHPSB.equals(resultMansData.getString(KU0061ETMsg.TK_HOSHIKI_PATTERN_CD)))
			{
				eoKokyakuMap.put(JKUStrConst.RNKI_SYS_TK_HOSHIKI_PATTERN_CD,
						resultMansData.getString(KU0061ETMsg.TK_HOSHIKI_PATTERN_CD));
				eoKokyakuMap.put(JKUStrConst.RNKI_SYS_TONAI_SPEED_CD, null);
			}
			else if ( (JKUStrConst.TONAI_SPEED_CD_5G_5G.equals(resultMansData.getString(KU0061ETMsg.TONAI_SPEED_CD))
					 || JKUStrConst.TONAI_SPEED_CD_10G_10G.equals(resultMansData.getString(KU0061ETMsg.TONAI_SPEED_CD))))
// ANK-4493-00-00 MOD END
// ANK-4244-00-00 MOD END
			{
				eoKokyakuMap.put(JKUStrConst.RNKI_SYS_TK_HOSHIKI_PATTERN_CD,
						resultMansData.getString(KU0061ETMsg.TK_HOSHIKI_PATTERN_CD));
				eoKokyakuMap.put(JKUStrConst.RNKI_SYS_TONAI_SPEED_CD,
						resultMansData.getString(KU0061ETMsg.TONAI_SPEED_CD));
			} 
			else 
			{
				eoKokyakuMap.put(JKUStrConst.RNKI_SYS_TK_HOSHIKI_PATTERN_CD, null);
				eoKokyakuMap.put(JKUStrConst.RNKI_SYS_TONAI_SPEED_CD, null);
			}
// ANK-3989-00-00 ADD END
		}
		else
		{
			eoKokyakuMap.put(JKUStrConst.RNKI_SYS_MANS_TSN_STB_CD, null);
			eoKokyakuMap.put(JKUStrConst.RNKI_SYS_IP_HARAIDASHI, null);
// ANK-3989-00-00 ADD START
			eoKokyakuMap.put(JKUStrConst.RNKI_SYS_TK_HOSHIKI_PATTERN_CD, null);
			eoKokyakuMap.put(JKUStrConst.RNKI_SYS_TONAI_SPEED_CD, null);
// ANK-3989-00-00 ADD END
		}
		
		// 設備コードマップの取得を実行する
		return JKUCommonUtil.getSetsubiCodeMap(eoKokyakuMap);
	}
	
	/**
	 * 工事契約サービスコード取得
	 * @param kojiakNo 工事案件番号
	 * @param eoKokyakuMap eo顧客システムコードマップ
	 * @return	工事契約サービスコード
	 */
	public static String getKjKeiSvcCd(String kojiakNo, HashMap<String, String> eoKokyakuMap)
	{
		// 工事案件番号で、工事案件＜eo光ネットマンション＞の検索を実行する
		CAANMsg resultMansData = getEoHMans(kojiakNo);
		
		if (null != resultMansData)
		{
			eoKokyakuMap.put(JKUStrConst.RNKI_SYS_MANS_TSN_STB_CD, resultMansData.getString(KU0061ETMsg.MANS_TUSHIN_EQUIP_CD));
			eoKokyakuMap.put(JKUStrConst.RNKI_SYS_IP_HARAIDASHI, resultMansData.getString(KU0061ETMsg.IP_HRADSI_CD));

// ANK-4244-00-00 MOD START
// ANK-3989-00-00 ADD START
// ANK-4493-00-00 MOD END
//			if (JKUStrConst.CD01213_HKR_SOCKET.equals(resultMansData.getString(KU0061ETMsg.TK_HOSHIKI_PATTERN_CD))
//					&& (JKUStrConst.TONAI_SPEED_CD_5G_5G.equals(resultMansData.getString(KU0061ETMsg.TONAI_SPEED_CD))
//							|| JKUStrConst.TONAI_SPEED_CD_10G_10G.equals(resultMansData.getString(KU0061ETMsg.TONAI_SPEED_CD))))
//			if ((JKUStrConst.TONAI_SPEED_CD_5G_5G.equals(resultMansData.getString(KU0061ETMsg.TONAI_SPEED_CD))
//				|| JKUStrConst.TONAI_SPEED_CD_10G_10G.equals(resultMansData.getString(KU0061ETMsg.TONAI_SPEED_CD))))
			if (JKUStrConst.CD01213_HHS_CSCHPSB.equals(resultMansData.getString(KU0061ETMsg.TK_HOSHIKI_PATTERN_CD)))
			{
				eoKokyakuMap.put(JKUStrConst.RNKI_SYS_TK_HOSHIKI_PATTERN_CD,
						resultMansData.getString(KU0061ETMsg.TK_HOSHIKI_PATTERN_CD));
				eoKokyakuMap.put(JKUStrConst.RNKI_SYS_TONAI_SPEED_CD, null);
			}
			else if ( (JKUStrConst.TONAI_SPEED_CD_5G_5G.equals(resultMansData.getString(KU0061ETMsg.TONAI_SPEED_CD))
					 || JKUStrConst.TONAI_SPEED_CD_10G_10G.equals(resultMansData.getString(KU0061ETMsg.TONAI_SPEED_CD))))
// ANK-4493-00-00 MOD END
// ANK-4244-00-00 MOD END
			{
				eoKokyakuMap.put(JKUStrConst.RNKI_SYS_TK_HOSHIKI_PATTERN_CD,
						resultMansData.getString(KU0061ETMsg.TK_HOSHIKI_PATTERN_CD));
				eoKokyakuMap.put(JKUStrConst.RNKI_SYS_TONAI_SPEED_CD,
						resultMansData.getString(KU0061ETMsg.TONAI_SPEED_CD));
			} 
			else 
			{
				eoKokyakuMap.put(JKUStrConst.RNKI_SYS_TK_HOSHIKI_PATTERN_CD, null);
				eoKokyakuMap.put(JKUStrConst.RNKI_SYS_TONAI_SPEED_CD, null);
			}
// ANK-3989-00-00 ADD END
		}
		else
		{
			eoKokyakuMap.put(JKUStrConst.RNKI_SYS_MANS_TSN_STB_CD, null);
			eoKokyakuMap.put(JKUStrConst.RNKI_SYS_IP_HARAIDASHI, null);
// ANK-3989-00-00 ADD START
			eoKokyakuMap.put(JKUStrConst.RNKI_SYS_TK_HOSHIKI_PATTERN_CD, null);
			eoKokyakuMap.put(JKUStrConst.RNKI_SYS_TONAI_SPEED_CD, null);
// ANK-3989-00-00 ADD END
		}
		
		return JKUCommonUtil.getKjKeiSvcCd(eoKokyakuMap);
	}
	
	/**
	 * 工事案件＜eo光ネットマンション＞検索
	 * @param kojiakNo
	 * @return	工事案件＜eo光ネットマンション＞検索結果
	 */
	private static CAANMsg getEoHMans(String kojiakNo)
	{
		KU0061LE leKU0061 = new KU0061LE();
		
		// 工事案件＜eo光ネットマンション＞のETメッセージを作成
		CAANMsg msgKU0061 = new CAANMsg(KU0061ETMsg.class.getName());
		
		// 工事案件番号
		msgKU0061.set(KU0061ETMsg.KOJIAK_NO, kojiakNo);
		
		// 検索実行
		return  leKU0061.findByPrimaryKey(msgKU0061);
	}
	
}
