/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JPCModelCommon
*   ソースファイル名：JPCModelCommon.java
*   作成者          ：富士通
*   日付            ：2011年04月01日
*＜機能概要＞
*   工事受付共通アクセッサー部品です。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/04/01   FJ          新規作成
*   v12.00.00   2015/03/04   FJ)阪口     【OM-2015-0000381】電話追加時に工事案件情報が書き換わらない
*   v40.00.00   2018/11/09   FJ)木村     【ANK-3412-00-00】５ギガ・１０ギガコース導入対応
*   v41.00.00   2019/01/08   FJ)周藤     【ANK-3387-00-00】マンションタイプ光コンセントサービス導入
*   v44.00.00   2019/06/04   FJ)木村     【ANK-3652-00-00】光コンセントフォロー対応
*   v51.00.00   2020/08/04   FJ)謝       【ANK-3885-00-00】光化マンションの自動設計対応
*   v51.00.01   2020/12/09   FJ)謝       【IT1-2020-0000076】対応
*   v53.0.0		2021/04/13	 GDC)ニール	 【ANK-3989-00-00】マンション光コンセント方式への５G・１０Gコース追加
*   v54.00.00   2021/08/13   GDC)オーヴィー  【ANK-4096-00-00】宅調宅工同時実施のための聞取り強化対応
*   v56.00.00	2021/09/15   FJ)永井     【ANK-4038-00-00】【eo定期】光ローゼット化対応
*   v61.00.00	2023/01/13   GDC)r.heredia	【ANK-4315-00-00】eoホームゲートウェイ導入対応 step2
**********************************************************************/

package eo.ejb.common;

import java.math.BigDecimal;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.model.base.CAANException;
import com.fujitsu.futurity.model.base.CAANFinderException;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;

import eo.common.util.JKUCheckSTBCount;
import eo.common.util.JKUCommonUtil;


/**
 * 工事受付共通アクセッサー部品です。<p>
 * サービスインターフェイスで実装します。
 * <BR>
 * @author 富士通
 */
public class JKUModelCommon extends JCCModelCommon
{

	/**
	 * 工事案件種別コード取得
	 * @param kojiUkCd    工事受付コード
	 * @param kojiUkDtlCd 工事受付詳細コード
	 * @param mnkhNo      面開発案件番号
	 * @param linkStbFlg  リンクSTBフラグ
	 * @param prcGrpCd    料金グループコード
	 * @param ponSbtCd    PON種別コード
	 * @param pcrsPonJokenCd    料金コースPON条件コード
	 * @param onuKokanYh    ONU交換要否
	 * @return 工事案件種別コード、見つからなかった場合は""
	 */
	public static String getKojiakSbtCd(String kojiUkCd, String kojiUkDtlCd,
			// ANK-4315-00-00 MOD START 
			//String mnkhNo, String linkStbFlg, String prcGrpCd, String ponSbtCd, String pcrsPonJokenCd)
			String mnkhNo, String linkStbFlg, String prcGrpCd, String ponSbtCd, String pcrsPonJokenCd,
			String onuKokanYh
			)
			// ANK-4315-00-00 MOD END
	{
		// ANK-4315-00-00 MOD START
		//return JKUejbCheckKojiakSbtCd.getKojiakSbtCd(kojiUkCd, kojiUkDtlCd, mnkhNo, linkStbFlg, prcGrpCd, ponSbtCd, pcrsPonJokenCd);
		return JKUejbCheckKojiakSbtCd.getKojiakSbtCd(kojiUkCd, kojiUkDtlCd, mnkhNo, linkStbFlg, prcGrpCd, ponSbtCd, pcrsPonJokenCd,
				onuKokanYh
		// ANK-4315-00-00 MOD END
				);
	}
	
	/**
	 * 工事案件種別コード取得（マンション）
	 * @param kojiUkCd    工事受付コード
	 * @param kojiUkDtlCd 工事受付詳細コード
	 * @param mnkhNo      面開発案件番号
	 * @param linkStbFlg  リンクSTBフラグ
	 * @param prcGrpCd    料金グループコード
	 * @param ponSbtCd    PON種別コード
	 * @param pcrsPonJokenCd   料金コースPON条件コード
	 * @param mansBukkenCd		マンション物件コード
	 * @param onuKokanYh    ONU交換要否
	 * @return 工事案件種別コード、見つからなかった場合は""
	 */
	public static String getKojiakSbtCd(String kojiUkCd, String kojiUkDtlCd, 
			// ANK-4315-00-00 MOD START
			//String mnkhNo, String linkStbFlg, String prcGrpCd, String ponSbtCd, String pcrsPonJokenCd, String mansBukkenCd)
			String mnkhNo, String linkStbFlg, String prcGrpCd, String ponSbtCd, String pcrsPonJokenCd, 
			String mansBukkenCd,
			String onuKokanYh
			)
			// ANK-4315-00-00 MOD END
	{
	    // ANK-4315-00-00 MOD START
		//return JKUejbCheckKojiakSbtCd.getKojiakSbtCd(kojiUkCd, kojiUkDtlCd, mnkhNo, linkStbFlg, prcGrpCd, ponSbtCd, pcrsPonJokenCd, mansBukkenCd);
		return JKUejbCheckKojiakSbtCd.getKojiakSbtCd(kojiUkCd, kojiUkDtlCd, mnkhNo, linkStbFlg, prcGrpCd, ponSbtCd, pcrsPonJokenCd, 
				mansBukkenCd, 
				onuKokanYh
				);
	    // ANK-4315-00-00 MOD END
	}


	/**
	 * PLCモデム台数取得
	 * @param kojiakNo
	 * @return HashMap key:         value
	 *                  KIKI_BUY     買取台数
	 *                  KIKI_RENT    レンタル台数
	 */
	public static HashMap<String, String> getPlcModemRentCount(String kojiakNo)
	{
		return JKUejbCheckUtil.getPlcModemRentCount(kojiakNo);
	}
	
	/**
	 * 電話台数カウントを行います。
	 * @param cbsMsg ＣＢＳメッセージ
	 * @param kojiakNo 工事案件番号
	 * @return String 電話台数
	 */
	public static String getTelCnt(CAANMsg cbsMsg, String kojiakNo)
	{
		return JKUejbCheckUtil.getTelCnt(cbsMsg, kojiakNo);
		
	}
	
// OM-2015-0000381 ADD START
	/**
	 * 電話台数カウントを行います。（サービスIFのIN項目）
	 * @param cbsMsg ＣＢＳメッセージ
	 * @param kojiakNo 工事案件番号
	 * @return String 電話台数
	 */
	public static String getTelCntInMsg(CAANMsg cbsMsg, String kojiakNo)
	{
		return JKUejbCheckUtil.getTelCntInMsg(cbsMsg, kojiakNo);
		
	}
// OM-2015-0000381 ADD END
	
	/**
	 * 工事案件レコード１件取得
	 * @param kojiakNo
	 * @return 
	 */
	public static CAANMsg getKojiak(String kojiakNo)
	{
		return JKUejbGetKojiDataUtil.getKojiak(kojiakNo);
	}
	
	/**
	 * 申込明細指定の工事案件番号を取得します。
	 * @param oldMskmDtlNo
	 * @return CAANMsg[]
	 */
	public static CAANMsg[] getShiteiKojiakNo(String oldMskmDtlNo)
	{
		return JKUejbGetKojiDataUtil.getShiteiKojiakNo(oldMskmDtlNo);
	}

	/**
	 * 変更パターンごとの対象スキーマ情報を取得します。
	 * @param conditionMap 判定に使用する値
	 * @return 変更パターン、見つからなかった場合はnull
	 */
	public static HashMap<String, String> getSchemaUpdPattern(HashMap<String, String> conditionMap)
	{
		return JKUejbCheckSchemaUpdIns.getSchemaUpdPattern(conditionMap);
	}


	/**
	 * ｅｏ光ネットの登録対象スキーマ判定を行います。
	 * @param kojiakSbtCd 工事案件種別コード
	 * @return HashMap<String, String> key          value
	 *                                  SCHEMA名     SCHEMA_INS/SCHEMA_NONE
	 */
	public static HashMap<String, String> checkSchemaInsertNet(String kojiakSbtCd)
	{
		return JKUejbCheckSchemaUpdIns.checkSchemaInsertNet(kojiakSbtCd);
	}

	/**
	 * ｅｏ光ＴＶの登録対象スキーマ判定を行います。
	 * @param kojiakSbtCd 工事案件種別コード
	 * @return HashMap<String, String> key          value
	 *                                  SCHEMA名     SCHEMA_INS/SCHEMA_NONE
	 */
	public static HashMap<String, String> checkSchemaInsertTV(String kojiakSbtCd)
	{
		return JKUejbCheckSchemaUpdIns.checkSchemaInsertTV(kojiakSbtCd);
	}

	/**
	 * ｅｏ光ＴＶ回線の登録対象スキーマ判定を行います。
	 * @param kojiakSbtCd 工事案件種別コード
	 * @return HashMap<String, String> key          value
	 *                                  SCHEMA名     SCHEMA_INS/SCHEMA_NONE
	 */
	public static HashMap<String, String> checkSchemaInsertTVKaisen(String kojiakSbtCd)
	{
		return JKUejbCheckSchemaUpdIns.checkSchemaInsertTVKaisen(kojiakSbtCd);
	}

	/**
	 * ｅｏ光ネットマンション（イーサネット）の登録対象スキーマ判定を行います。
	 * @param kojiakSbtCd 工事案件種別コード
	 * @return HashMap<String, String> key          value
	 *                                  SCHEMA名     SCHEMA_INS/SCHEMA_NONE
	 */
	public static HashMap<String, String> checkSchemaInsertMnshnEnet(String kojiakSbtCd)
	{
		return JKUejbCheckSchemaUpdIns.checkSchemaInsertMnshnEnet(kojiakSbtCd);
	}

	/**
	 * ｅｏ光ネットマンション（光配線）の登録対象スキーマ判定を行います。
	 * @param kojiakSbtCd 工事案件種別コード
	 * @return HashMap<String, String> key          value
	 *                                  SCHEMA名     SCHEMA_INS/SCHEMA_NONE
	 */
	public static HashMap<String, String> checkSchemaInsertMnshnHikari(String kojiakSbtCd)
	{
		return JKUejbCheckSchemaUpdIns.checkSchemaInsertMnshnHikari(kojiakSbtCd);
	}

	/**
	 * ｅｏ光オフィスの登録対象スキーマ判定を行います。
	 * @param kojiakSbtCd 工事案件種別コード
	 * @return HashMap<String, String> key          value
	 *                         SCHEMA名     SCHEMA_INS/SCHEMA_NONE
	 */
	public static HashMap<String, String> checkSchemaInsertInetOffice(String kojiakSbtCd)
	{
		return JKUejbCheckSchemaUpdIns.checkSchemaInsertInetOffice(kojiakSbtCd);
	}

// ANK-3652-00-00 ADD START
	/**
	 * ｅｏ光ネットマンション（光コンセント）の登録対象スキーマ判定を行います。
	 * @param kojiakSbtCd 工事案件種別コード
	 * @return HashMap<String, String> key          value
	 *                                  SCHEMA名     SCHEMA_INS/SCHEMA_NONE
	 */
	public static HashMap<String, String> checkSchemaInsertMnshnHkrSocket(String kojiakSbtCd)
	{
		return JKUejbCheckSchemaUpdIns.checkSchemaInsertMnshnHkrSocket(kojiakSbtCd);
	}
// ANK-3652-00-00 ADD END
	
	/**
	 * STB台数をカウントします。
	 * @param kojiakNo 工事案件番号
	 * @param kojiakSbtCd 工事案件種別
	 * @return STB台数を格納したオブジェクト(JKUejbCheckSTBCount)
	 * @throws CAANException 
	 */
	public static JKUCheckSTBCount checkSTBCount(String kojiakNo, String kojiakSbtCd) throws CAANException
	{
		return new JKUejbCheckUtil().checkSTBCount(kojiakNo, kojiakSbtCd);
	}

	/**
	 *  <dd>メソッド名：経緯度の5系と6系の公共座標への変換
	 *  <dd>メソッド説明：経緯度を5系と6系の公共座標に変換する。
	 *  <dd>備考：
	 * @param colKdo 経度
	 * @param colIdo 緯度
	 * @return zahyo 公共座標(5系、6系)
	 */
	public static LinkedHashMap<String, BigDecimal> allZahyoBX(String colKdo, String colIdo)
	{
		return JKUCommonUtil.allZahyoBX(colKdo, colIdo);
	}
	
	/**
	 * 宅内機器種別コード配列の取得
	 * @param prcGrpCd	料金グループコード
	 * @param kojiakSbtCd 工事案件種別コード
	 * @return	料金グループコードに紐づく宅内機器種別コードの配列
	 */
// ANK-3412-00-00 MOD START
//	public static String[] getTakniKikiSbtCdKoho(String prcGrpCd)
	public static String[] getTakniKikiSbtCdKoho(String prcGrpCd, String kojiakSbtCd)
// ANK-3412-00-00 MOD END
	{
// ANK-3412-00-00 MOD START
//		return JKUejbTakniKikiKoho.getTakniKikiSbtCdKoho(prcGrpCd);
		return JKUejbTakniKikiKoho.getTakniKikiSbtCdKoho(prcGrpCd, kojiakSbtCd);
// ANK-3412-00-00 MOD END
	}
	
	/**
	 * 除外対象判定
	 * @param prcGrpCd	料金グループコード
	 * @param kojiakSbtCd	工事案件種別コード
	 * @param taknkikiSbtCd		宅内機器種別コード
	 * @param taknkikiIdoCd		宅内機器異動コード
	 * @param taknKikiModelCd	宅内機器型式コード
	 * @return true:除外対象	false:追加対象
	 */
	public static boolean jgiTrgt(String prcGrpCd, String kojiakSbtCd, String taknkikiSbtCd, String taknkikiIdoCd, String taknKikiModelCd)
	{
		return JKUejbTakniKikiKoho.jgiTrgt(prcGrpCd, kojiakSbtCd, taknkikiSbtCd, taknkikiIdoCd, taknKikiModelCd);
	}
	
	/**
	 * 関電営業所番号を取得します。
	 * @param pcd 郵便番号
	 * @param ymd 基準日
	 * @return String 関電営業所番号
	 * @throws CAANException 
	 */
	public static String getKepcoBusiofficeCd(String pcd, String ymd) throws CAANException
	{
		return JKUejbGetKepcoBusiofficeCd.getKepcoBusiofficeCd(pcd, ymd);
	}
	
	/**
	 * 関電営業所番号を取得します。
	 * @param pcd 郵便番号
	 * @param ymd 基準日
	 * @param kepcoBusiofficeCd 関電営業所番号
	 * @return String 関電営業所番号
	 * @throws CAANException 
	 */
	public static String getKepcoBusiofficeCd(String pcd, String ymd, String kepcoBusiofficeCd) throws CAANException
	{
		return JKUejbGetKepcoBusiofficeCd.getKepcoBusiofficeCd(pcd, ymd, kepcoBusiofficeCd);
	}

	/**
	 * 最新基本工事案件番号を取得します。
	 * @param svcKeiKaisenUcwkNo サービス契約回線内訳番号
	 * @param prcGrpCd 料金グループコード
	 * @return String 最新基本工事案件番号
	 */
	public static String getNewestKihonKojiakNo(String svcKeiKaisenUcwkNo, String prcGrpCd)
	{

		return JKUejbGetKojiDataUtil.getNewestKihonKojiakNo(svcKeiKaisenUcwkNo, prcGrpCd);
	}
	
	/**
	 * 最新基本工事案件を取得します。
	 * @param svcKeiKaisenUcwkNo サービス契約回線内訳番号
	 * @param prcGrpCd 料金グループコード
	 * @return CAANMsg 最新基本工事案件メッセージ
	 */
	public static CAANMsg getNewestKihonKojiakMsg(String svcKeiKaisenUcwkNo, String prcGrpCd)
	{
		return JKUejbGetKojiDataUtil.getNewestKihonKojiakMsg(svcKeiKaisenUcwkNo, prcGrpCd);
	}
	
	/**
	 * 仕掛工事案件番号を取得します。
	 * @param svcKeiKaisenUcwkNo サービス契約回線内訳番号
	 * @param prcGrpCd 料金グループコード
	 * @param adChgTekkyoKjakNo 住所変更撤去工事案件番号
	 * @return String 仕掛工事案件番号
	 */
	public static String getShikakariKojiakNo(String svcKeiKaisenUcwkNo, String prcGrpCd, String adChgTekkyoKjakNo)
	{

		return JKUejbGetKojiDataUtil.getShikakariKojiakNo(svcKeiKaisenUcwkNo, prcGrpCd, adChgTekkyoKjakNo);

	}
	
	/**
	 * 仕掛工事案件を取得します。
	 * @param svcKeiKaisenUcwkNo サービス契約回線内訳番号
	 * @param prcGrpCd 料金グループコード
	 * @param adChgTekkyoKjakNo 住所変更撤去工事案件番号
	 * @return CAANMsg 仕掛工事案件メッセージ
	 */
	public static CAANMsg getShikakariKojiakMsg(String svcKeiKaisenUcwkNo, String prcGrpCd, String adChgTekkyoKjakNo)
	{
		return JKUejbGetKojiDataUtil.getShikakariKojiakMsg(svcKeiKaisenUcwkNo, prcGrpCd, adChgTekkyoKjakNo);
	}
	
	/**
	 * 更新対象工事案件番号取得処理
	 * @param svcKeiKaisenUcwkNo	サービス契約回線内訳番号
	 * @param prcGrpCd				料金グループコード
	 * @param updTrgtKojiakNo		更新対象工事案件番号：この項目がnullでない場合は、新たに検索を行わず、この項目を返す
	 * @param adChgTekkyoKjakNo 住所変更撤去工事案件番号
	 * @param kojiakSbtCd	工事案件種別コード
	 * @return	更新対象工事案件番号
	 */
	public static String getUpdTrgtKojiakNo(String svcKeiKaisenUcwkNo, String prcGrpCd, String updTrgtKojiakNo, String adChgTekkyoKjakNo, String kojiakSbtCd)
	{
		return JKUejbGetKojiDataUtil.getUpdTrgtKojiakNo(svcKeiKaisenUcwkNo, prcGrpCd, updTrgtKojiakNo, adChgTekkyoKjakNo, kojiakSbtCd);
	}
	
	/**
	 * 更新対象工事案件取得処理
	 * @param svcKeiKaisenUcwkNo	サービス契約回線内訳番号
	 * @param prcGrpCd				料金グループコード
	 * @param adChgTekkyoKjakNo 住所変更撤去工事案件番号
	 * @param kojiakSbtCd	工事案件種別コード
	 * @return	更新対象工事案件
	 */
	public static CAANMsg getUpdTrgtKojiakMsg(String svcKeiKaisenUcwkNo, String prcGrpCd, String adChgTekkyoKjakNo, String kojiakSbtCd)
	{
		return JKUejbGetKojiDataUtil.getUpdTrgtKojiakMsg(svcKeiKaisenUcwkNo, prcGrpCd, adChgTekkyoKjakNo, kojiakSbtCd);
	}
	
	/**
	 * 項目の比較と設定（CAANMsg)
	 * @param oldMsg 比較更新先データ
	 * @param newMsg 比較更新元データ
	 * @param taishoList 比較紐づけリスト
	 * @return 比較結果
	 */
	public static boolean setCAANMsg(CAANMsg oldMsg, CAANMsg newMsg, List<String[]> taishoList)
	{
		return JKUejbShohenko.setCAANMsg(oldMsg, newMsg, taishoList);
	}
	
	/**
	 * 項目の比較（CAANMsg)
	 * @param oldMsg 比較更新先データ
	 * @param newMsg 比較更新元データ
	 * @param checkListForRnkiSys 比較紐づけリスト
	 * @return 比較結果
	 */
	public static boolean checkRnkiSysFlgUpd(CAANMsg oldMsg, CAANMsg newMsg, List<String[]> checkListForRnkiSys)
	{
		return JKUejbShohenko.checkRnkiSysFlgUpd(oldMsg, newMsg, checkListForRnkiSys);
	}
	

	/**
	 * 更新対象工事案件Mapリストに項目を追加する
	 * @param kojiakNo		工事案件番号
	 * @param updOpmsFlg	OPMS連携要否
	 * @param kojiakNoList	更新対象工事案件Mapリスト
	 * @return 実行結果
	 */
	public static boolean setListKojiakNo(String kojiakNo, boolean updOpmsFlg, List<Map<String, String>> kojiakNoList)
	{
		return JKUejbShohenko.setListKojiakNo(kojiakNo, updOpmsFlg, kojiakNoList);
	}
	
	/**
	 * 更新対象工事案件Mapリストに対象の工事案件が存在するかをチェックする
	 * @param kojiakNo	工事案件番号
	 * @param kojiakNoList	更新対象工事案件Mapリスト
	 * @return true:存在する、false:存在しない
	 */
	public static boolean checkListKojiakNo(String kojiakNo, List<Map<String, String>> kojiakNoList)
	{
		return JKUejbShohenko.checkListKojiakNo(kojiakNo, kojiakNoList);
	}
	
	/**
	 * 更新対象工事案件Mapリストの対照の工事案件が他システム連携を行う必要があるかをチェックする
	 * @param kojiakNo		工事案件番号
	 * @param kojiakNoList	更新対象工事案件Mapリスト
	 * @param rnkiSys		連携する他システム
	 * @return true:他システム連携必要、false:他システム連携不要
	 */
	public static boolean checkListUpfFlg(String kojiakNo, List<Map<String, String>> kojiakNoList, String rnkiSys)
	{
		return JKUejbShohenko.checkListUpfFlg(kojiakNo, kojiakNoList, rnkiSys);
	}

	/**
	 * 宅内機器登録更新処理
	 * @param kojiakNo			工事案件番号
	 * @param inCBSMsg			CBSメッセージ
	 * @param ku0141MsgArray	工事案件宅内機器スキーマ情報
	 * @param kojiakSbtCd		工事案件種別コード
	 * @param prcGrpCd			料金グループコード
	 * @param addFlg			追加処理フラグ（true=更新、削除動作を行わない）
	 * @return	更新連携要否リスト
	 * @throws CAANException
	 */
	public static List<Map<String, String>> updTaknkiki(String kojiakNo, CAANMsg inCBSMsg, CAANMsg[] ku0141MsgArray,
			String kojiakSbtCd, String prcGrpCd, boolean addFlg) throws CAANException
	{
		return JKUejbTaknkikiCtrlUtil.updTaknkiki(kojiakNo, inCBSMsg, ku0141MsgArray, kojiakSbtCd, prcGrpCd, addFlg);
	}
	
	/**
	 * 工事案件番号宅内機器リスト作成
	 * @param changeDataMsg	 更新対象となる宅内機器リスト
	 * @return	工事案件番号単位でリスト化された宅内機器リスト
	 */
	public static List<List<CAANMsg>> getKojiAkNoTakKikiList(List<CAANMsg> changeDataMsg)
	{
		return JKUejbShohenko.getKojiAkNoTakKikiList(changeDataMsg);
	}
	
	/**
	 * 文字列比較
	 * @param arg0 比較文字列１
	 * @param arg1 比較文字列２
	 * @return boolean true:変更あり　false:変更なし
	 */
	public static boolean isChanged(String arg0, String arg1)
	{
		return JKUejbShohenko.isChanged(arg0, arg1);
	}
	
	/**
	 * 申込明細_工事案件追加対象工事案件番号リスト作成
	 * @param kojiAkNoList 必要分を取得するための工事案件番号リスト
	 * @param addNoList 登録対象工事案件番号リスト
	 */
	public static void setMskmDtlNoKojiakNoList(List<String> kojiAkNoList, List<String> addNoList)
	{
		JKUejbShohenko.setMskmDtlNoKojiakNoList(kojiAkNoList, addNoList);
	}
	
	/**
	 * 最新工事案件番号取得
	 * @param kojiAkNoList 工事案件番号リスト
	 * @return 最新基本工事工事案件番号リスト
	 * @throws CAANException
	 */
	public static List<String> getNewestKojiakNo(List<String> kojiAkNoList) throws CAANException
	{
		return JKUejbShohenko.getNewestKojiakNo(kojiAkNoList);
	}
	
	/**
	 * 仕掛中、最新、住変（新設）である場合trueを返す
	 * @param ku0011Msg	工事案件データ
	 * @return	判定結果
	 */
	public static boolean isSkkrOrSaishinKojiak(CAANMsg ku0011Msg)
	{
		return JKUejbShohenko.isSkkrOrSaishinKojiak(ku0011Msg);
	}
	
	/**
	 * 機器変更用仕掛判定
	 * @param ku0011Msg	工事案件データ
	 * @return	判定結果
	 */
	public static boolean isKikiHenkouSkkrKojiak(CAANMsg ku0011Msg)
	{
		return JKUejbShohenko.isKikiHenkouSkkrKojiak(ku0011Msg);
	}
	
	/**
	 * 現場作業が終了していない仕掛中の工事案件である場合trueを返す
	 * @param ku0011Msg	工事案件データ
	 * @return	判定結果
	 */
	public static boolean isSkkrKojiak(CAANMsg ku0011Msg)
	{
		return JKUejbShohenko.isSkkrKojiak(ku0011Msg);
	}
	
	/**
	 * 住所変更確定処理時仕掛中の工事案件である場合trueを返す
	 * @param ku0011Msg	工事案件データ
	 * @return	判定結果
	 */
	public static boolean isSkkrKojiakJyusyoHenkou(CAANMsg ku0011Msg)
	{
		return JKUejbShohenko.isSkkrKojiakJyusyoHenkou(ku0011Msg);
	}
	
	/**
	 * 指定された長さまで末尾に半角スペースを充填します。
	 * <br>
	 * @param arg0 調整する文字列
	 * @param arg1 調整する長さ
	 * @return String 充填後の文字列
	 */
	public static String padSpace(String arg0, int arg1) 
	{
		return JKUejbShohenko.padSpace(arg0, arg1);
	}
	
	/**
	 * 設備コードマップを変換、取得します。
	 * @param kojiakNo	工事案件番号
	 * @param eoKokyakuMap eo顧客システムコードマップ
	 * @return 連携システムコードマップ
	 */
	public static HashMap<String, String> getSetsubiCodeMap(String kojiakNo, HashMap<String, String> eoKokyakuMap)
	{
		return JKUejbSetsubiCodeCnvUtil.getSetsubiCodeMap(kojiakNo, eoKokyakuMap);
	}
	
	/**
	 * 工事契約サービスコード取得
	 * @param kojiakNo 工事案件番号
	 * @param eoKokyakuMap eo顧客システムコードマップ
	 * @return	工事契約サービスコード
	 */
	public static String getKjKeiSvcCd(String kojiakNo, HashMap<String, String> eoKokyakuMap)
	{
		return JKUejbSetsubiCodeCnvUtil.getKjKeiSvcCd(kojiakNo, eoKokyakuMap);
	}
	
	/**
	 * 同時代表工事案件番号取得
	 * 取得に必要な項目は、工事案件番号に紐づく工事案件データから取得します。
	 * @param kojiakNo            工事案件番号
	 * @param svcKeiKaisenUcwkNo  サービス契約回線内訳番号
	 * @param prcGrpCd            料金グループコード
	 * @return 同時代表工事案件番号、見つからなかった場合null
	 * @throws CAANException
	 */
	public static String getSimRepKojiakNo(String kojiakNo, String svcKeiKaisenUcwkNo) throws CAANException
	{
		return JKUejbDaihyouKojiakNoAcqUtil.getSimRepKojiakNo(kojiakNo, svcKeiKaisenUcwkNo);
	}
	
	/**
	 * 同時代表工事案件番号取得<br>
	 * 工事案件番号による検索を行わなわず、同時代表工事案件番号を取得します。
	 * @param kojiakSbtCd	工事案件種別コード
	 * @param prcGrpCd		料金グループコード
	 * @param mansBukkenCd	マンション物件コード
	 * @param mansTsnStbCd	マンション通信設備コード
	 * @param iPHaraidashiCd	IP払出コード
	 * @param svcKeiKaisenUcwkCd	サービス契約回線内訳コード
	 * @return	同時代表工事案件番号、見つからなかった場合null
	 * @throws CAANException
	 */
	public static String getSimRepKojiakNoNotFindByPk(String kojiakSbtCd, String prcGrpCd, String mansBukkenCd,
			String mansTsnStbCd, String iPHaraidashiCd, String svcKeiKaisenUcwkCd) throws CAANException
	{
		return JKUejbDaihyouKojiakNoAcqUtil.getSimRepKojiakNoNotFindByPk(kojiakSbtCd, prcGrpCd, mansBukkenCd,
				mansTsnStbCd, iPHaraidashiCd, svcKeiKaisenUcwkCd);
	}
	
	/**
	 * 同一サービス契約回線内訳番号のうち相関ルールに従い同一工事となる工事案件を取得します。
	 * @param svcKeiKaisenUcwkNo サービス契約回線内訳番号
	 * @param prcGrpCd 料金グループコード
	 * @return CAANMsg[] 工事案件（同一工事対象の場合は合わせて取得する）
	 */
	public static CAANMsg[] getKU0011DoitsuKoji(String svcKeiKaisenUcwkNo, String prcGrpCd)
	{
		return JKUejbGetKojiDataUtil.getKU0011DoitsuKoji(svcKeiKaisenUcwkNo, prcGrpCd);
	}

	/**
	 * 提供中サービス契約＿工事案件情報リスト取得します。
	 * @param kojiakNo 工事案件番号
	 * @return CAANMsg[] 提供中サービス契約＿工事案件情報リスト
	 */
	public static CAANMsg[] getTkSvcKeiKojiak(String kojiakNo)
	{
		return JKUejbGetKojiDataUtil.getTkSvcKeiKojiak(kojiakNo);
	}
	
	/**
	 * 提供中法人サービス契約＿工事案件情報リスト取得します。
	 * @param kojiakNo 工事案件番号
	 * @return CAANMsg[] 提供中法人サービス契約＿工事案件情報リスト
	 */
	public static CAANMsg[] getTkHojinSvcKeiKojiak(String kojiakNo)
	{
		return JKUejbGetKojiDataUtil.getTkHojinSvcKeiKojiak(kojiakNo);
	}
	
	/**
	 * サービス契約情報の取得処理
	 * @param svc_kei_no
	 * @return HashMap<String, String>
	 * @throws CAANException
	 */
	public static HashMap<String, String> getSvcKeiInfo(String svc_kei_no) throws CAANException
	{
		return JKUejbGetKojiDataUtil.getSvcKeiInfo(svc_kei_no);
	}
	
	/**
	 * お客様情報の取得処理
	 * @param sysId
	 * @return HashMap<String, String>
	 * @throws CAANException
	 */
	public static HashMap<String, String> getCustInfo(String sysId) throws CAANException
	{
		return JKUejbGetKojiDataUtil.getCustInfo(sysId);
	}
	
	/**
	 * サービス追加（工事なし）の工事案件情報を取得
	 * @param svcKeiNo
	 * @param updTrgtKojiakNo
	 * @param kojinFlg
	 * @return CAANMsg
	 */
	public static CAANMsg getSvcAddKojiNonKojiakMsg(String svcKeiNo, String updTrgtKojiakNo, boolean kojinFlg)
	{
		return JKUejbGetKojiDataUtil.getSvcAddKojiNonKojiakMsg(svcKeiNo, updTrgtKojiakNo, kojinFlg);
	}
	
	/**
	 * 振舞パターン取得部品（eo光ネットマンション）
	 * @param kojiakInfoList	工事案件情報リスト
	 * @param svcKeiKojiakMap	サービス契約工事案件情報
	 * @param ktFlg				解約・撤去フラグ
	 * @param svcCd				サービスコード
	 * @param mansionBukkenCd	マンション物件コード
	 * @param mansTushinEquipCd	マンション通信設備コード
	 * @param svcKeiNo			サービス契約番号
	 * @return	振舞パターンリスト
	 * @throws CAANException
	 */
// ANK-3387-00-00 MOD START
//	public static List<String> getUpdatePatternMT(CAANMsg[] kojiakInfoList
//			, HashMap<String, CAANMsg[]> svcKeiKojiakMap, String ktFlg, String svcCd, String mansionBukkenCd, String mansTushinEquipCd) throws CAANException
//	{
//		return JKUejbGetUpdatePattern.getUpdatePatternMT(kojiakInfoList, svcKeiKojiakMap, ktFlg, svcCd, mansionBukkenCd, mansTushinEquipCd);
//	}
	public static List<String> getUpdatePatternMT(CAANMsg[] kojiakInfoList
			, HashMap<String, CAANMsg[]> svcKeiKojiakMap, String ktFlg, String svcCd, String mansionBukkenCd, String mansTushinEquipCd, String svcKeiNo) throws CAANException
	{
		return JKUejbGetUpdatePattern.getUpdatePatternMT(kojiakInfoList, svcKeiKojiakMap, ktFlg, svcCd, mansionBukkenCd, mansTushinEquipCd, svcKeiNo);
	}
// ANK-3387-00-00 MOD END
	
	/**
	 * 振舞パターン取得部品（eo光テレビ、eo光テレビ回線）
	 * @param kojiakInfoList	工事案件情報リスト
	 * @param svcKeiKojiakMap	サービス契約工事案件情報
	 * @param ktFlg				解約・撤去フラグ
	 * @return	振舞パターンリスト
	 * @throws CAANException
	 */
	public static List<String> getUpdatePatternTV(CAANMsg[] kojiakInfoList
			, HashMap<String, CAANMsg[]> svcKeiKojiakMap, String ktFlg) throws CAANException
	{
		return JKUejbGetUpdatePattern.getUpdatePatternTV(kojiakInfoList, svcKeiKojiakMap, ktFlg);
	}
	
	/**
	 * 振舞パターン取得部品（eo光ネット）
	 * @param inCBSMsg
	 * @param targetKojiakMsg
	 * @param svkeiKjakList
	 * @param hojinsvkeiKjak
	 * @param kaisenFlg
	 * @return String
	 */
	public static String getUpdatePatternHT(CAANMsg inCBSMsg, CAANMsg targetKojiakMsg
			, CAANMsg[] svkeiKjakList, CAANMsg hojinsvkeiKjak, boolean kaisenFlg)
	{
		return JKUejbGetUpdatePattern.getUpdatePatternHT(inCBSMsg, targetKojiakMsg, svkeiKjakList, hojinsvkeiKjak, kaisenFlg);
	}
	
	/**
	 * 同時代表工事更新工事案件
	 * @param kojiakNo	工事案件番号
	 * @param dojiDaihyoKojiakNo	同時代表工事案件番号
	 * @param operateDatetime 更新年月日時分秒
	 * @param operatorId 更新オペレータアカウント
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @param ukFlg 受付フラグ
	 * @return boolean
	 * @throws CAANException
	 */
	public static boolean updateDojiDaihyoKojiak(String kojiakNo, String dojiDaihyoKojiakNo, String operateDatetime,
			String operatorId, AgentDispatchContext inContext, boolean ukFlg) throws CAANException
	{
		return JKUejbDaihyouKojiakNoAcqUtil.updateDojiDaihyoKojiak(kojiakNo, dojiDaihyoKojiakNo, operateDatetime,
				operatorId, inContext, ukFlg);
	}
	
	/**
	 * 同時代表工事更新先行設計
	 * @param kojiakNo	工事案件番号
	 * @param dojiDaihyoKojiakNo	同時代表工事案件番号
	 * @param operateDatetime 更新年月日時分秒
	 * @param operatorId 更新オペレータアカウント
	 * @param ukFlg 受付フラグ true:受付系(同時代表工事案件番号を引数の工事案件番号で更新) false:解約系(同時代表工事案件番号を空白で更新)
	 * @return boolean
	 * @throws CAANException
	 */
	public static boolean updateDojiDaihyoSenkoDsgn(String kojiakNo, String dojiDaihyoKojiakNo, 
			String operateDatetime, String operatorId, boolean ukFlg) throws CAANException
	{
		return JKUejbDaihyouKojiakNoAcqUtil.updateDojiDaihyoSenkoDsgn(kojiakNo, dojiDaihyoKojiakNo, operateDatetime,
				operatorId, ukFlg);
	}
	
	/**
	 * 住所変更確定処理対象工事案件情報取得処理
	 * @param kojiakNo	対象工事案件番号
	 * @return	処理対象工事案件情報
	 * @throws CAANException
	 */
	public static CAANMsg getAdChgFixTaishoKojiakInfo(String kojiakNo) throws CAANException
	{
		return JKUejbAdChgFix.getAdChgFixTaishoKojiakInfo(kojiakNo);
	}
	
	/**
	 * 最新基本工事案件情報取得処理
	 * @param svcKeiNo	サービス契約番号
	 * @return	更新対象工事案件情報
	 * @throws CAANException
	 */
	public static CAANMsg getAdChgRcntKihonKojiak(String svcKeiNo) throws CAANException
	{
		return JKUejbAdChgFix.getAdChgRcntKihonKojiak(svcKeiNo);
	}
	
	/**
	 * 住所変更確定処理整合性チェック（マンションチェック）
	 * @param ku0011Msg	工事案件情報
	 * @return	マンションの工事案件情報である場合false
	 */
	public static boolean checkMansion(CAANMsg ku0011Msg)
	{
		return JKUejbAdChgFix.checkMansion(ku0011Msg);
	}
	
	/**
	 * 工事案件更新_住所変更確定処理
	 * @param taishoKojiakInfo		住所変更確定処理対象工事案件情報
	 * @param newestKojiakNo		最新基本工事案件番号
	 * @param adChgFixDtm			住所変更確定年月日時分秒
	 * @param kojiUkOptntyIdoDtm	工事受付契機異動年月日時分秒
	 * @param operateDateTime		運用日時
	 * @param operatorId			オペレータID
	 * @return	実行結果
	 * @throws CAANFinderException
	 */
	public static boolean updateAdChgFixKU0011(CAANMsg taishoKojiakInfo, String newestKojiakNo, String adChgFixDtm, String kojiUkOptntyIdoDtm,
			String operateDateTime, String operatorId) throws CAANFinderException
	{
		return JKUejbAdChgFix.updateAdChgFixKU0011(taishoKojiakInfo, newestKojiakNo, adChgFixDtm, kojiUkOptntyIdoDtm,
				operateDateTime, operatorId);
	}
	
	/**
	 * 申込明細_工事案件登録_住所変更確定処理
	 * @param taishoKojiakNo	処理対象工事案件番号
	 * @param mskmDtlNo			申込明細番号
	 * @param operateDateTime	運用日時
	 * @param operatorId		オペレータID
	 * @param inCBSMsg			CBSメッセージ
	 * @return	実行結果
	 * @throws CAANException
	 */
	public static boolean insertAdChgFixKU0091(String taishoKojiakNo, String mskmDtlNo,
			String operateDateTime, String operatorId, CAANMsg inCBSMsg) throws CAANException
	{
		return JKUejbAdChgFix.insertAdChgFixKU0091(taishoKojiakNo, mskmDtlNo, operateDateTime, operatorId, inCBSMsg);
	}
	
	/**
	 * 工事案件引継パターン判別処理
	 * @param svcKeiNo	サービス契約番号
	 * @param errorPatternArray	エラーパターン配列
	 * @param hojinFlg	法人フラグ
	 * @return	処理結果 (0:エラー無し、-1:整合性エラー、1:エラーパターン合致エラー)
	 * @throws CAANException
	 */
	public static int checkHktgPattern(String svcKeiNo, String[] errorPatternArray, boolean hojinFlg) throws CAANException
	{
		return JKUejbCheckHktg.checkHktgPattern(svcKeiNo, errorPatternArray, hojinFlg);
	}
	
	/**
	 * KCNSTB申込台数とKCNSTB種別コード整合性チェック
	 * @param cbsMsg CBSメッセージ
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @return boolean
	 */
	public static boolean checkKcnStb(CAANMsg cbsMsg, AgentDispatchContext inContext)
	{
		return JKUejbCheckUtil.checkKcnStb(cbsMsg, inContext);
	}
	
	/**
	 * KCNSTB申込台数とKCNHDR_STB申込台数とKCNSTB契約台数の取得
	 * @param kcnStbMskmCnt KCNSTB申込台数
	 * @param kcnStbKindCd KCNSTB種別コード
	 * @param kojiakSbtCd 工事案件種別コード
	 * @return boolean
	 */
	public static HashMap<String, String> getKCNSTBCount(String kcnStbMskmCnt, String kcnStbKindCd, String kojiakSbtCd)
	{
		return JKUejbCheckUtil.getKCNSTBCount(kcnStbMskmCnt, kcnStbKindCd, kojiakSbtCd);
	}
	
	/**
	 * 追加サービス契約番号取得処理
	 * @param svcKeiKaisenUcwkNo	サービス契約回線内訳番号
	 * @param svcCd					サービスコード
	 * @param kojiakSbtCd			工事案件種別コード
	 * @param simRepKojiakNo		同時代表工事案件番号
	 * @return	追加サービス契約番号
	 * @throws CAANException
	 */
	public static String getAddSvcKeiNo(String svcKeiKaisenUcwkNo, String svcCd, String kojiakSbtCd, String simRepKojiakNo) throws CAANException
	{
		return JKUejbGetAddSvcKeiNo.getAddSvcKeiNo(svcKeiKaisenUcwkNo, svcCd, kojiakSbtCd, simRepKojiakNo);
	}
	
	/**
	 * 追加サービス契約番号取得処理
	 * @param svcKeiKaisenUcwkNo	サービス契約回線内訳番号
	 * @param svcCd					サービスコード
	 * @return	追加サービス契約番号
	 * @throws CAANException
	 */
	public static String getAddSvcKeiNo(String svcKeiKaisenUcwkNo, String svcCd) throws CAANException
	{
		return JKUejbGetAddSvcKeiNo.getAddSvcKeiNo(svcKeiKaisenUcwkNo, svcCd);
	}
	
	/**
	 * オンライン運用日時取得処理
	 * @param arg0 CBSメッセージ
	 * @param arg1 システムID　例)"KK"等、またはnull
	 * @return YYYYMMDDhhmmss形式の運用日時
	 */
	public static Object getOpeDateTimeKU(CAANMsg arg0, AgentDispatchContext arg1)
	{
		return getOpeDateTime(arg0, arg1, null);
	}
	
	/**
	 * 他システム（OPMS以外）の連携要否を要としてよいかの判定を行い、要否を返す。
	 * @param ku0011Msg		判定に使用する工事案件
	 * @param rnkiSys		連携システム
	 * @return	判定結果
	 */
	public static String getChgRnkiYh(CAANMsg ku0011Msg, String rnkiSys)
	{
		return JKUejbShohenko.getChgRnkiYh(ku0011Msg, rnkiSys);
	}
	
	/**
	 * 他システム（OPMS以外）の連携要否を要としてよいかの判定を行い、要否を返す。
	 * @param kojiakNo	判定に使用する工事案件を取得するための工事案件番号
	 * @param rnkiSys	連携システム
	 * @return	判定結果
	 * @throws CAANException
	 */
	public static String getChgRnkiYh(String kojiakNo, String rnkiSys) throws CAANException
	{
		return JKUejbShohenko.getChgRnkiYh(kojiakNo, rnkiSys);
	}
	
	/**
	 * 住変系の工事案件かどうかの判断
	 * @param kojiakSbtCd
	 * @return true:住変系 false:住変系でない
	 */
	public static boolean isAdChgeAk(String kojiakSbtCd)
	{
		return JKUejbShohenko.isAdChgeAk(kojiakSbtCd);
	}
	
	/**
	 * 撤去(解約)または強制解約で工事完了しているものがあるかのチェック
	 * @param newestKojiakNo	最新基本工事案件
	 * @param mansEthFlg	マンションイーサ（その他光配線以外）フラグ
	 * @return	チェック結果
	 */
	public static boolean existsFinDslKojiak(String newestKojiakNo, boolean mansEthFlg)
	{
		return JKUejbGetKojiDataUtil.existsFinDslKojiak(newestKojiakNo, mansEthFlg);
	}
	
	/**
	 * 工事案件リストから撤去対象の工事案件を取得する
	 * @param svcKeiNo	サービス契約番号
	 * @param kojiakInfList	工事案件リスト
	 * @return	工事案件リスト
	 */
	public static CAANMsg[] getKojiakForTekkyo(String svcKeiNo, CAANMsg[] kojiakInfList)
	{
		return JKUejbGetKojiDataUtil.getKojiakForTekkyo(svcKeiNo, kojiakInfList);
	}
	
	/**
	 * 工事案件ステータスとマンション工事案件状態コードのうち有効な方を判定し返却する
	 * @param kojiakStat	工事案件ステータス
	 * @param mansKojiakStatCd マンション工事案件状態コード
	 * @return	工事案件ステータスorマンション工事案件状態コード
	 */
	public static String getYkKojiakStat(String kojiakStat, String mansKojiakStatCd)
	{
		return JKUejbCheckUtil.getYkKojiakStat(kojiakStat, mansKojiakStatCd);
	}
// ANK-3387-00-00 ADD START
	/**
	 * サービス契約番号から提供方式パターンコードを取得し返却する
	 * @param svcKeiNo	サービス契約番号
	 * @return	提供方式パターンコード
	 */
	public static String getTkHoshikiPatternCd(String svcKeiNo) throws CAANException
	{
		return JKUejbGetTkHoshikiPatternCd.getTkHoshikiPatternCd(svcKeiNo);
	}
// ANK-3387-00-00 ADD END
// IT1-2020-0000076 MOD START
//// ANK-3885-00-00 ADD START
//	/**
//	 * サービス契約番号から光配線1Gのみフラグを取得し返却する
//	 * @param svcKeiNo サービス契約番号
//	 * @return 光配線1Gのみフラグ
//	 */
//	public static String JKUejbGetHhs1gonlyFlg(String svcKeiNo) throws CAANException
//	{
//		return JKUejbGetHhs1gonlyFlg.getHhs1gonlyFlg(svcKeiNo);
//	}
//// ANK-3885-00-00 ADD END
	/**
	 * 回線使用契約番号から光配線1Gのみフラグを取得し返却する
	 * @param kaisenUseKeiNo 回線使用契約番号
	 * @return 光配線1Gのみフラグ
	 */
	public static String getHhs1gonlyFlg(String kaisenUseKeiNo) throws CAANException
	{
		return JKUejbGetHhs1gonlyFlg.getHhs1gonlyFlg(kaisenUseKeiNo);
	}
	/**
	 * 回線使用契約番号から提供方式パターンコードを取得し返却する
	 * @param kaisenUseKeiNo	回線使用契約番号
	 * @return	提供方式パターンコード
	 */
	public static String getTkHoshikiPatternCdKs(String kaisenUseKeiNo) throws CAANException
	{
		return JKUejbGetTkHoshikiPatternCd.getTkHoshikiPatternCdKs(kaisenUseKeiNo);
	}
// IT1-2020-0000076 MOD END

	// ANK-3989-00-00 ADD START
	public static String getTonaiSpeedCd(String svcKeiNo) throws CAANException
	{
		return JKUejbGetTonaiSpeedCd.getTonaiSpeedCd(svcKeiNo);
	}
	
	public static String getTonaiSpeedCdKs(String kaisenUseKeiNo) throws CAANException
	{
		return JKUejbGetTonaiSpeedCd.getTonaiSpeedCdKs(kaisenUseKeiNo);
	}
	// ANK-3989-00-00 ADD END
	
	// ANK-4096-00-00 ADD START
	/**
	 * 申込明細番号から申込明細情報を取得して返却します。
	 * @param mskmDtlNo 申込明細番号
	 * @return 申込明細情報
	 * @throws CAANException
	 */
	public static CAANMsg getMskmDtlInfo(String mskmDtlNo) throws CAANException
	{
		return JKUejbGetMskmDtlInfo.getMskmDtlInfo(mskmDtlNo);
	}
	// ANK-4096-00-00 ADD END
// ANK-4038-00-00 ADD START
	/**
 	 * サービス契約回線内訳番号から契約回線内訳情報を取得して返却します。
	 * @param svkeiKaisenUwNo サービス契約回線内訳番号
	 * @return 契約回線内訳情報
	 * @throws CAANException
	 */
	public static CAANMsg getSvkeiKaisenUwInfo(String svkeiKaisenUwNo) throws CAANException
	{
		return JKUejbGetSvkeiKaisenUwInfo.getSvkeiKaisenUwInfo(svkeiKaisenUwNo);
	}
// ANK-4038-00-00 ADD END
}
