/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JKUBatSetsubiCodeCnvUtil
*	ソースファイル名：JKUBatSetsubiCodeCnvUtil.java
*	作成者			：富士通
*	日付			：2011年08月30日
*＜機能概要＞
*	設備系システムコード変換部品クラス
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/08/30	富士通		新規作成
*	v53.00.00	2021/04/13   GDC)ジョバニー	マンション光コンセント方式への５G・１０Gコース追加
*	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.business.common;

import java.util.HashMap;

import eo.business.util.table.JBSbatKU_T_KJAK_EOH_NTMANS;
import eo.common.constant.JKUStrConst;
import eo.common.util.JKUCommonUtil;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;

/**
 * 設備系システムコードの変換を行うクラスです。<p>
 * <BR>
 * @author 富士通
 */
public class JKUBatSetsubiCodeCnvUtil
{

	/**
	 * 設備コードマップを変換、取得します。
	 * @param commonItem バッチ共通パラメータ電文
	 * @param kojiakNo	工事案件番号
	 * @param eoKokyakuMap eo顧客システムコードマップ
	 * @param dKuTKjakEohNtMans	テーブルアクセスクラス(工事案件＜光ネットマンション＞)
	 * @return 連携システムコードマップ
	 * @throws Exception
	 */
	public static HashMap<String, String> getSetsubiCodeMap(JBSbatCommonItem commonItem, String kojiakNo, HashMap<String, String> eoKokyakuMap, JBSbatSQLAccess dKuTKjakEohNtMans) throws Exception
	{
		// 工事案件番号で、工事案件＜eo光ネットマンション＞の検索を実行する
		JBSbatCommonDBInterface resultMansData = getEoHMans(commonItem, kojiakNo, dKuTKjakEohNtMans);
		
		if (null != resultMansData)
		{
			eoKokyakuMap.put(JKUStrConst.RNKI_SYS_MANS_TSN_STB_CD, resultMansData.getString(JBSbatKU_T_KJAK_EOH_NTMANS.MANS_TUSHIN_EQUIP_CD));
			eoKokyakuMap.put(JKUStrConst.RNKI_SYS_IP_HARAIDASHI, resultMansData.getString(JBSbatKU_T_KJAK_EOH_NTMANS.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(JBSbatKU_T_KJAK_EOH_NTMANS.TK_HOSHIKI_PATTERN_CD))
//					&& (JKUStrConst.TONAI_SPEED_CD_5G_5G.equals(resultMansData.getString(JBSbatKU_T_KJAK_EOH_NTMANS.TONAI_SPEED_CD))
//							|| JKUStrConst.TONAI_SPEED_CD_10G_10G.equals(resultMansData.getString(JBSbatKU_T_KJAK_EOH_NTMANS.TONAI_SPEED_CD))))
//			if ((JKUStrConst.TONAI_SPEED_CD_5G_5G.equals(resultMansData.getString(JBSbatKU_T_KJAK_EOH_NTMANS.TONAI_SPEED_CD))
//				 || JKUStrConst.TONAI_SPEED_CD_10G_10G.equals(resultMansData.getString(JBSbatKU_T_KJAK_EOH_NTMANS.TONAI_SPEED_CD))))
			if (JKUStrConst.CD01213_HHS_CSCHPSB.equals(resultMansData.getString(JBSbatKU_T_KJAK_EOH_NTMANS.TK_HOSHIKI_PATTERN_CD)))
			{
				eoKokyakuMap.put(JKUStrConst.RNKI_SYS_TK_HOSHIKI_PATTERN_CD,
						resultMansData.getString(JBSbatKU_T_KJAK_EOH_NTMANS.TK_HOSHIKI_PATTERN_CD));
				eoKokyakuMap.put(JKUStrConst.RNKI_SYS_TONAI_SPEED_CD, null);
			}
			else if ((JKUStrConst.TONAI_SPEED_CD_5G_5G.equals(resultMansData.getString(JBSbatKU_T_KJAK_EOH_NTMANS.TONAI_SPEED_CD))
					 || JKUStrConst.TONAI_SPEED_CD_10G_10G.equals(resultMansData.getString(JBSbatKU_T_KJAK_EOH_NTMANS.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(JBSbatKU_T_KJAK_EOH_NTMANS.TK_HOSHIKI_PATTERN_CD));
				eoKokyakuMap.put(JKUStrConst.RNKI_SYS_TONAI_SPEED_CD,
						resultMansData.getString(JBSbatKU_T_KJAK_EOH_NTMANS.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 commonItem バッチ共通パラメータ電文
	 * @param kojiakNo 工事案件番号
	 * @param eoKokyakuMap eo顧客システムコードマップ
	 * @param dKuTKjakEohNtMans	テーブルアクセスクラス(工事案件＜光ネットマンション＞)
	 * @return	工事契約サービスコード
	 * @throws Exception
	 */
	public static String getKjKeiSvcCd(JBSbatCommonItem commonItem, String kojiakNo, HashMap<String, String> eoKokyakuMap, JBSbatSQLAccess dKuTKjakEohNtMans) throws Exception
	{
		// 工事案件番号で、工事案件＜eo光ネットマンション＞の検索を実行する
		JBSbatCommonDBInterface resultMansData = getEoHMans(commonItem, kojiakNo, dKuTKjakEohNtMans);
		
		if (null != resultMansData)
		{
			eoKokyakuMap.put(JKUStrConst.RNKI_SYS_MANS_TSN_STB_CD, resultMansData.getString(JBSbatKU_T_KJAK_EOH_NTMANS.MANS_TUSHIN_EQUIP_CD));
			eoKokyakuMap.put(JKUStrConst.RNKI_SYS_IP_HARAIDASHI, resultMansData.getString(JBSbatKU_T_KJAK_EOH_NTMANS.IP_HRADSI_CD));

// ANK-4244-00-00 MOD START
// ANK-4493-00-00 MOD START
//			// ANK-3989-00-00 ADD START
//			if (JKUStrConst.CD01213_HKR_SOCKET.equals(resultMansData.getString(JBSbatKU_T_KJAK_EOH_NTMANS.TK_HOSHIKI_PATTERN_CD))
//					&& (JKUStrConst.TONAI_SPEED_CD_5G_5G.equals(resultMansData.getString(JBSbatKU_T_KJAK_EOH_NTMANS.TONAI_SPEED_CD))
//							|| JKUStrConst.TONAI_SPEED_CD_10G_10G.equals(resultMansData.getString(JBSbatKU_T_KJAK_EOH_NTMANS.TONAI_SPEED_CD))))
//			if ((JKUStrConst.TONAI_SPEED_CD_5G_5G.equals(resultMansData.getString(JBSbatKU_T_KJAK_EOH_NTMANS.TONAI_SPEED_CD))
//					 || JKUStrConst.TONAI_SPEED_CD_10G_10G.equals(resultMansData.getString(JBSbatKU_T_KJAK_EOH_NTMANS.TONAI_SPEED_CD))))
			if (JKUStrConst.CD01213_HHS_CSCHPSB.equals(resultMansData.getString(JBSbatKU_T_KJAK_EOH_NTMANS.TK_HOSHIKI_PATTERN_CD)))
			{
				eoKokyakuMap.put(JKUStrConst.RNKI_SYS_TK_HOSHIKI_PATTERN_CD,
						resultMansData.getString(JBSbatKU_T_KJAK_EOH_NTMANS.TK_HOSHIKI_PATTERN_CD));
				eoKokyakuMap.put(JKUStrConst.RNKI_SYS_TONAI_SPEED_CD, null);
			}
			else if ((JKUStrConst.TONAI_SPEED_CD_5G_5G.equals(resultMansData.getString(JBSbatKU_T_KJAK_EOH_NTMANS.TONAI_SPEED_CD))
					 || JKUStrConst.TONAI_SPEED_CD_10G_10G.equals(resultMansData.getString(JBSbatKU_T_KJAK_EOH_NTMANS.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(JBSbatKU_T_KJAK_EOH_NTMANS.TK_HOSHIKI_PATTERN_CD));
				eoKokyakuMap.put(JKUStrConst.RNKI_SYS_TONAI_SPEED_CD,
						resultMansData.getString(JBSbatKU_T_KJAK_EOH_NTMANS.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 commonItem バッチ共通パラメータ電文
	 * @param kojiakNo	工事案件番号
	 * @param dKuTKjakEohNtMans	テーブルアクセスクラス(工事案件＜光ネットマンション＞)
	 * @return	工事案件＜eo光ネットマンション＞検索結果
	 * @throws Exception
	 */
	private static JBSbatCommonDBInterface getEoHMans(JBSbatCommonItem commonItem, String kojiakNo, JBSbatSQLAccess dKuTKjakEohNtMans) throws Exception
	{		
		// 条件のマップを作成します	
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();	
		whereMap.setValue("KOJIAK_NO", kojiakNo);	
		// DBアクセスを実行します	
		JBSbatCommonDBInterface kojiAkMans = dKuTKjakEohNtMans.selectByPrimaryKeys(whereMap);
			
		// データが存在しない場合は値を返さない。	
		if (null == kojiAkMans)	
		{	
			return null;
		}
		
		return kojiAkMans;

	}
}
