/*********************************************************************
*   All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JKKejbKK0101ShosaChk
*   ソースファイル名：JKKejbKK0101ShosaChk.java
*   作成者          ：富士通
*   日付            ：2011年07月15日
*＜機能概要＞
*   eo光TV照査チェック部品クラス
*＜修正履歴＞
*   バージョン  修正日      修正者      修正内容
*   v1.00.00    2011/07/15  富士通      新規作成
*	v5.00.01	2013/02/07	FJ)寺園		ANK-1421-00-00
*	v5.00.02	2013/02/08	FJ)藤本		IT1-2013-0000148
*   v5.00.03    2013/02/21  FJ)寺本     OT-2013-0000090
*   v5.00.04    2013/03/04  FJ)福井     ST3-2013-0000507]
*   v5.00.05    2013/04/30  FJ)寺本     OT-2013-0000675
*  v31.00.00    2017/11/16  FJ) クウン 【ANK-3136-00-00】OPMSハードウエア保守切れ対応(STEP2-2)
**********************************************************************/

package eo.ejb.common.db;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.model.base.CAANMsg;

import eo.ejb.cbm.entity.KK0021ETMsg;
import eo.ejb.cbm.entity.KK0081ETMsg;
import eo.ejb.cbs.cbsmsg.EKK0101C012CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0101C012CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0101C013CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0101C013CBSMsg1List;

/**
 * <p>
 * サービス契約<eo光TV>の照査チェック部品クラスです。
 * </p>
 * @author 富士通
 */
public class JKKejbKK0101ShosaChk extends JKKejbShosaChkBase
{
	/**
	 * <p>
	 * コンストラクタ
	 * </p>
	 */
	public JKKejbKK0101ShosaChk()
	{
	}

	/**
	 * <p>
	 * サービス契約<eo光TV>の照査を行う
	 * </p>
	 * @param inCBSMsg 処理対象メッセージキャリア
	 * @param svcKeiNo サービス契約番号
	 * @param kidoCd 起動元コード
	 */
	public void chkShosa(CAANMsg inCBSMsg, String svcKeiNo, String kidoCd)
	{
		ArrayList<CAANMsg> list = new ArrayList<CAANMsg>();
		CAANMsg retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());

		// バッチの場合
		if (KIDOMOTO_CODE_BATCH.equals(kidoCd))
		{
			// セット申込チェック
			retMsg = new JKKejbKK0101SetMskmChk().setMskmCheck(inCBSMsg, svcKeiNo, kidoCd);
			list.add(retMsg);
		}

		// セット申込単独チェックフラグがセット申込の場合、処理を終了する。
		if(SET_MSKM_SNGL_CHK_FLG_SET.equals(inCBSMsg.getString(EKK0101C012CBSMsg.SET_MSKM_SNGL_CHK_FLG)))
		{
			inCBSMsg.set(EKK0101C012CBSMsg.EKK0101C012CBSMSG1LIST, (CAANMsg[])list.toArray(new CAANMsg[0]));

			return;
		}

		// サービス契約情報取得
		CAANMsg msg = getSvckei(inCBSMsg, svcKeiNo, kidoCd);
		// サービス契約情報が取得されなかった場合
		if (msg == null)
		{
			return;
		}

		//住居形態種別を取得（ホーム、メゾン、マンション）
		String type = getJyuKyoKeiType(msg.getString(KK0081ETMsg.TK_HOSHIKI_KEI_NO));
		// 住居形態種別が取得されなかった場合
		if (type == null)
		{
			return;
		}

		// 申込年月日期間超過チェック
		retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
		retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_001);
		retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkChokMoshikomiYmdPrd(inCBSMsg, msg.getString(KK0081ETMsg.MSKM_DTL_NO), kidoCd));
		list.add(retMsg);

		// ホームの場合
		if (JYUKOKEITAI_HOME.equals(type))
		{
			// 同一利用場所使用サービス整合性チェック
			retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_027);
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkUseSvcSeiDouitsu(inCBSMsg, svcKeiNo, msg.getString(KK0081ETMsg.MSKM_DTL_NO), kidoCd));
			list.add(retMsg);
		}

		// マンションまたはメゾンの場合
		if (JYUKOKEITAI_MEZON.equals(type) || JYUKOKEITAI_MANSHON.equals(type))
		{
			// サービス開始希望年月日未来日チェック
			retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_003);
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkFutureSvcStaKiboYmd(inCBSMsg, msg.getString(KK0081ETMsg.SVC_USE_STA_KIBO_YMD), kidoCd));
			list.add(retMsg);
			// 部屋番号重複チェック
			retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_021);
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkDbleAdrrm(inCBSMsg, svcKeiNo, msg.getString(KK0081ETMsg.SYSID), kidoCd));
			list.add(retMsg);
			// サービス契約総戸数チェック
			retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_039);
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkSvcKeiAllHouseNum(inCBSMsg, msg, kidoCd));
			list.add(retMsg);
			// マンション照査状態チェック
			retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_056);
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkMansionShosa(inCBSMsg, msg.getString(KK0081ETMsg.TK_HOSHIKI_KEI_NO)));
			list.add(retMsg);
		}

		// マンションの場合
		if (JYUKOKEITAI_MANSHON.equals(type))
		{
			// サービス開始希望年月日設定チェック
			retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_002);
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkSetSvcStaKiboYmd(inCBSMsg, msg.getString(KK0081ETMsg.SVC_USE_STA_KIBO_YMD)));
			list.add(retMsg);
		}

		// オンラインかつホームの場合
		if (KIDOMOTO_CODE_ONLINE.equals(kidoCd) && JYUKOKEITAI_HOME.equals(type))
		{
				// 入居予定年月日未来日チェック
				retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
				retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_024);
				retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkFutureNyukyoRsvYmd(inCBSMsg, svcKeiNo, msg.getString(KK0081ETMsg.MENKAIHAT_ANKEN_NO), kidoCd));
				list.add(retMsg);
		}
		
		// オンラインの場合
		if (KIDOMOTO_CODE_ONLINE.equals(kidoCd))
		{
			// 未照査サービス契約存在チェック
			retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_029);
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkSonzaiSvcMiSyosa(inCBSMsg, msg.getString(KK0081ETMsg.MSKM_DTL_NO), kidoCd));
			list.add(retMsg);
		}

		// バッチの場合
		if (KIDOMOTO_CODE_BATCH.equals(kidoCd))
		{
			// ホームの場合のみチェックする
			if (JYUKOKEITAI_HOME.equals(type))
			{
				// 面開発案件チェック
				retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
				retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_004);
				retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkMenkaihatsu(inCBSMsg, msg.getString(KK0081ETMsg.MENKAIHAT_ANKEN_NO)));
				list.add(retMsg);
			}
			
			// オプション引継希望チェック
			retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_020);
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkKiboOpHktgi(inCBSMsg, msg.getString(KK0081ETMsg.MSKM_DTL_NO), kidoCd));
			list.add(retMsg);
			// 照査不可サービス契約存在チェック
			retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_036);
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkNotSvcKeiSyosa(inCBSMsg, msg.getString(KK0081ETMsg.MSKM_DTL_NO), kidoCd));
			list.add(retMsg);
		}

		// 提供外機器存在チェック
		retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
		retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_006);
		retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkSonzaiTkGaiKiki(inCBSMsg, svcKeiNo, kidoCd));
		list.add(retMsg);
		// 機器提供サービス契約数下限チェック（ＰＬＣ以外）
		retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
		retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_007);
		retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkLowlKktkSvcKei(inCBSMsg, svcKeiNo, kidoCd, KKTK_SVC_CD_KBN_1));
		list.add(retMsg);
		
		// オンラインの場合
		if (KIDOMOTO_CODE_ONLINE.equals(kidoCd))
		{
			// 機器提供サービス契約数下限チェック（ＰＬＣ）
			retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_061);
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkLowlKktkSvcKei(inCBSMsg, svcKeiNo, kidoCd, KKTK_SVC_CD_KBN_2));
			list.add(retMsg);
			
			// 審査OKチェック
			retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_063);
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkShinsaOK(inCBSMsg, svcKeiNo));
			list.add(retMsg);
		}
		
		// 機器提供サービス契約数上限チェック
		retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
		retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_008);
		retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkUpplKktkSvcKei(inCBSMsg, svcKeiNo, kidoCd, null));
		list.add(retMsg);
		// 提供外オプション存在チェック
		retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
		retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_010);
		retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkSonzaiTkGaiOp(inCBSMsg, svcKeiNo, kidoCd));
		list.add(retMsg);
		// オプションサービス契約数下限チェック
		retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
		retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_011);
		retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkLowlOpSvcKei(inCBSMsg, svcKeiNo, kidoCd));
		list.add(retMsg);
		// オプションサービス契約数上限チェック
		retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
		retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_012);
		retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkUpplOpSvcKei(inCBSMsg, svcKeiNo, kidoCd));
		list.add(retMsg);
		// 督促状態チェック
		retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
		retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_017);
		retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkStatTokusoku(inCBSMsg, svcKeiNo, kidoCd));
		list.add(retMsg);
		// お客様退会チェック
//		retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
//		retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_018);
//		retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkTaikaiCust(inCBSMsg, msg.getString(KK0081ETMsg.SYSID), kidoCd));
//		list.add(retMsg);
		// 利用場所番地未確定チェック
		retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
		retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_025);
		retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkMiFixUsePlaceBachi(inCBSMsg, svcKeiNo, kidoCd));
		list.add(retMsg);
		// 利用場所警告エリアチェック
		String[] useAreaChk = chkWarUsePlaceArea(inCBSMsg, svcKeiNo, msg.getString(KK0081ETMsg.SVC_CD), 
				msg.getString(KK0081ETMsg.PRC_GRP_CD), msg.getString(KK0081ETMsg.PCRS_CD), msg.getString(KK0081ETMsg.PPLAN_CD), 
				msg.getString(KK0081ETMsg.TK_HOSHIKI_KEI_NO), msg.getString(KK0081ETMsg.MENKAIHAT_ANKEN_NO), kidoCd, type);

		retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
		retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_026);
		retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, useAreaChk[0]);
		retMsg.set(EKK0101C012CBSMsg1List.CHK_SBT_CD, useAreaChk[1]);
		list.add(retMsg);
		// 申込書番号重複チェック
		retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
		retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_028);
		retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkDuplicateMskmshoNo(inCBSMsg, msg.getString(KK0081ETMsg.MSKM_DTL_NO)));
		list.add(retMsg);
		
		// 申込書明細番号不整合チェック
		retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
		retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_044);
		retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkMskmshoDtlNo(inCBSMsg, msg.getString(KK0081ETMsg.SYSID), msg.getString(KK0081ETMsg.MSKM_DTL_NO), kidoCd));
		list.add(retMsg);

		// 審査結果補記チェック（照査OK）
		retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
		retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_040);
		retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkSinsaHokiChkShosa(inCBSMsg, msg.getString(KK0081ETMsg.SKEKKA_HOKI_CD)));
		list.add(retMsg);

		// ホームかメゾンの場合
		if (JYUKOKEITAI_HOME.equals(type) || JYUKOKEITAI_MEZON.equals(type))
		{
			// エリアチェック審査結果チェック
			retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_042);
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkAreaChkSinsaKekka(inCBSMsg, svcKeiNo));
			list.add(retMsg);
		}

		// リンクSTB配送区分チェック
		// オンラインマンションの場合
		if (KIDOMOTO_CODE_ONLINE.equals(kidoCd) && JYUKOKEITAI_MANSHON.equals(type)) {
			retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_064);
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkLinkStbHaisoDiv(inCBSMsg, svcKeiNo, kidoCd));
			list.add(retMsg);
		}

		//---------v31.00.00 ANK-3136-00-00_ADD START---------//
		// サービス契約.申込明細番号取得
		String mskmDtlNo = msg.getString(KK0081ETMsg.MSKM_DTL_NO);
		// 申込明細カレント情報取得
		CAANMsg mskmDtlList = getMskmDtl(inCBSMsg, mskmDtlNo, kidoCd);
		//設備流用有無取得
		String equipRyuyouUm = mskmDtlList.getString(KK0021ETMsg.EQUIP_RYUYO_UM);
		//設備流用元工事案件番号
		String ryuyoMtKjakNo = mskmDtlList.getString(KK0021ETMsg.RYUYO_MOTO_KJAK_NO);
		//サービス契約.サービスコード
		String svcCd = msg.getString(KK0081ETMsg.SVC_CD);
		
		if (EQUIP_RYUYO_UMU_ARI.equals(equipRyuyouUm))
		{
			//サービス契約照査チェック部品スーパークラス.同一回線内工事案件存在チェック
			retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_068);
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkExistsDitKaisenKojiak(inCBSMsg, svcCd , svcKeiNo, kidoCd));
			list.add(retMsg);
			
			//サービス契約照査チェック部品スーパークラス.ONU-VONU機器存在チェック
			retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_069);
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkExistsOnuVonuKk(inCBSMsg, svcCd , svcKeiNo, kidoCd));
			list.add(retMsg);
			
			//サービス契約照査チェック部品スーパークラス.マンション物件チェック
			retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_074);
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkMansBuken(inCBSMsg, ryuyoMtKjakNo, kidoCd));
			list.add(retMsg);
			
			//サービス契約照査チェック部品スーパークラス.工事案件最新基本工事チェック
			retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_070);
			retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, chkExistsKojiakRcntKihonKoji(inCBSMsg, ryuyoMtKjakNo, kidoCd));
			list.add(retMsg);
			
			//サービス契約照査チェック部品スーパークラス.流用元機器返品チェック
			retMsg = new CAANMsg(EKK0101C012CBSMsg1List.class.getName());
			HashMap<String, String> rstRyuyoMtKikiHenbinCk = chkExistsRyuyoMotoKikiHenpin(inCBSMsg, svcCd , ryuyoMtKjakNo, kidoCd);
			// リターンコード取得
			String returnCd = rstRyuyoMtKikiHenbinCk.get(RETURN_CD);
			// リターンコードが1_異常（予約適用中）
			if(RETURN_NG_1.equals(returnCd))
			{
				retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_071);
				retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, returnCd);
			}
			// リターンコードが2_異常（返品機器）
			else if (RETURN_NG_2.equals(returnCd))
			{
				retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_072);
				retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, RETURN_NG_1);
			}
			// リターンコードが0_正常
			else if (RETURN_NG_0_RSL_SEIJO.equals(returnCd))
			{
				retMsg.set(EKK0101C012CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_072);
				retMsg.set(EKK0101C012CBSMsg1List.SHOSA_RLT_CD, returnCd);
			}

			list.add(retMsg);
		}
		//---------v31.00.00 ANK-3136-00-00_ADD END-----------//
		inCBSMsg.set(EKK0101C012CBSMsg.EKK0101C012CBSMSG1LIST, (CAANMsg[])list.toArray(new CAANMsg[0]));

		return;
	}

	/**
	 * <p>
	 * サービス契約<eo光TV>の照査（NG登録）を行う
	 * </p>
	 * @param inCBSMsg 処理対象メッセージキャリア
	 * @param svcKeiNo サービス契約番号
	 * @param kidoCd 起動元コード
	 */
	public void chkShosaNg(CAANMsg inCBSMsg, String svcKeiNo, String kidoCd)
	{
		ArrayList<CAANMsg> list = new ArrayList<CAANMsg>();
		CAANMsg retMsg = new CAANMsg(EKK0101C013CBSMsg1List.class.getName());

		// サービス契約情報取得
		CAANMsg msg = getSvckei(inCBSMsg, svcKeiNo, kidoCd);
		// サービス契約情報が取得されなかった場合
		if (msg == null)
		{
			return;
		}

		//住居形態種別を取得（ホーム、メゾン、マンション）
		String type = getJyuKyoKeiType(msg.getString(KK0081ETMsg.TK_HOSHIKI_KEI_NO));
		// 住居形態種別が取得されなかった場合
		if (type == null)
		{
			return;
		}

		// オンラインの場合
		if (KIDOMOTO_CODE_ONLINE.equals(kidoCd))
		{
			// オプション引継チェック
			retMsg = new CAANMsg(EKK0101C013CBSMsg1List.class.getName());
			retMsg.set(EKK0101C013CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_019);
			retMsg.set(EKK0101C013CBSMsg1List.SHOSA_RLT_CD, chkOpHktgi(inCBSMsg, svcKeiNo, kidoCd));
			list.add(retMsg);

			//  審査結果補記チェック（照査NG）
			retMsg = new CAANMsg(EKK0101C013CBSMsg1List.class.getName());
			retMsg.set(EKK0101C013CBSMsg1List.SHOSA_TRG_CD, SHOSACHK_TRG_041);
			retMsg.set(EKK0101C013CBSMsg1List.SHOSA_RLT_CD, chkSinsaHokiChkShosaNg(inCBSMsg, msg.getString(KK0081ETMsg.SKEKKA_HOKI_CD)));
			list.add(retMsg);
		}
		inCBSMsg.set(EKK0101C013CBSMsg.EKK0101C013CBSMSG1LIST, (CAANMsg[])list.toArray(new CAANMsg[0]));

		return;
	}
}
