/*******************************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JEKU0021C020TPMA
*	ソースファイル名：JEKU0021C020TPMA.java
*	作成者			：FJ
*	日付			：2011年03月14日
*＜機能概要＞
*	工事案件＜eo光ネット＞解約の独自処理を呼び出す部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	ｖ1.00.00
*	ｖ3.00.00	2012/02/16	FJ)日根		【ANK-0025-00-00】ギガルータ対応
*	ｖ3.00.00	2012/02/16	FJ)日根		【ANK-0147-00-00】住変電話即時開通
*	ｖ4.00.00	2012/07/03	FJ)日根		【ANK-0079-00-00】同時番ポ希望日のICS自動反映
*	ｖ4.00.00	2012/07/03	FJ)日根		【ANK-0398-00-00】住所管理に伴う「例外登録」の管理追加対応
*	ｖ4.00.00	2012/07/03	FJ)日根		【ANK-0408-00-00】住変同時番ポ
*	ｖ5.00.00	2013/10/22	FJ)高橋		【OM-2013-0003548】
*	ｖ7.00.00	2014/03/11	FJ)高橋		【OM-2014-0000620】
*	ｖ11.00.00	2014/11/18	FJ)阪口		【OM-2014-0003634】お客様情報変更時に自宅電話番号が設定されない
*	ｖ23.00.00	2015/11/30	FJ)山口		【ANK-2612-00-00】10Gコース導入対応
*	ｖ31.00.00	2017/10/23	FJ)杉本		【ANK-3136-00-00】OPMSハードウエア保守切れ対応(STEP2-2)
*	ｖ35.00.00	2017/12/14	FJ)柳川		【ANK-3334-01-00】OLT設定変更改善対応(追加対応）
*	ｖ56.00.00	2021/09/15	FJ)永井		【ANK-4038-00-00】【eo定期】光ローゼット化対応
*	ｖ60.00.00	2022/07/14	GDC)j.zabala	「ANK-4269-00-00」マンション卸回線(WI-FIスキーム)の不備対応　STEP2
*	ｖ61.00.00	2023/02/28	GDC)ml.alcantara	【ANK-4315-00-00】eoホームゲートウェイ導入対応 Step2
*
********************************************************************************/
package eo.ejb.cbs.mainproc;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import com.fujitsu.futurity.model.base.CAANCreateException;
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.StatusCodes;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;
import com.fujitsu.futurity.model.ejb.common.fw.TemplateMainHandler;

import eo.common.constant.JKUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.ejb.cbm.entity.CK0011ETMsg;
import eo.ejb.cbm.entity.KK0021ETMsg;
import eo.ejb.cbm.entity.KK0081ETMsg;
import eo.ejb.cbm.entity.KK0251ETMsg;
import eo.ejb.cbm.entity.KK0321ETMsg;
import eo.ejb.cbm.entity.KK0841ETMsg;
import eo.ejb.cbm.entity.KU0011ETMsg;
import eo.ejb.cbm.entity.KU0011LE;
import eo.ejb.cbm.entity.KU0021ETMsg;
import eo.ejb.cbm.entity.KU0051ETMsg;
import eo.ejb.cbm.entity.KU0061ETMsg;
import eo.ejb.cbm.entity.KU0071ETMsg;
import eo.ejb.cbm.entity.KU0081ETMsg;
import eo.ejb.cbm.entity.KU0081LE;
import eo.ejb.cbm.entity.KU0091ETMsg;
import eo.ejb.cbm.entity.KU0101ETMsg;
import eo.ejb.cbm.entity.KU0101LE;
import eo.ejb.cbm.entity.KU0111ETMsg;
import eo.ejb.cbm.entity.KU0111LE;
import eo.ejb.cbm.entity.KU0141ETMsg;
import eo.ejb.cbs.cbsmsg.EKU0021C020CBSMsg;
import eo.ejb.common.JKUModelCommon;
import eo.ejb.common.JPCModelCommon;
import eo.ejb.common.db.JKUejbKU0011SecProc;
import eo.ejb.common.db.JKUejbKU0021SecProc;
import eo.ejb.common.db.JKUejbKU0051SecProc;
import eo.ejb.common.db.JKUejbKU0061SecProc;
import eo.ejb.common.db.JKUejbKU0081SecProc;
import eo.ejb.common.db.JKUejbKU0091SecProc;
import eo.ejb.common.db.JKUejbKU0101SecProc;
import eo.ejb.common.db.JKUejbKU0111SecProc;
import eo.ejb.common.db.JKUejbKU0141SecProc;
import eo.ejb.common.edit.JKUejbNumberParts;

/**
 * <p>
 * 工事案件＜eo光ネット＞解約の独自処理を呼び出す部品です。
 * </p>
 * @author 富士通
 */
public class JEKU0021C020TPMA implements TemplateMainHandler
{

	/**
	 * 関連エラーコード
	 */
	/** 解約時、工事案件存在エラー */
	private static final String RELATION_ERR_CD_DSL_SONZAI = "EA";
	/** 撤去時、工事案件存在エラー */
	private static final String RELATION_ERR_CD_TK_SONZAI = "EB";
	/** 撤去時、最新基本工事案件存在エラー */
	private static final String RELATION_ERR_CD_TK_RCNT = "EC";
	/** 排他エラー */
	private static final String RELATION_ERR_CD_HAITA = "EE";
	/** 撤去時、法人サービス契約＿工事案件存在エラー */
	private static final String RELATION_ERR_CD_TK_HOJIN = "EF";
	/** 切替サービス整合性エラー */
	private static final String RELATION_ERR_CD_SWCHSVC = "EG";
	/** 振舞パターンエラー */
	private static final String RELATION_ERR_CD_HRMI = "EH";
	/** サービス契約存在エラー */
	private static final String RELATION_ERR_CD_SVCKEI = "EI";
	/** 課金先存在エラー */
	private static final String RELATION_ERR_CD_KKNS = "EJ";
	/** お客様存在エラー */
	private static final String RELATION_ERR_CD_CUST = "EK";
	/** サービス追加(工事なし)工事案件存在エラー */
	private static final String RELATION_ERR_CD_SVCADD_KOJINON = "EL";
	/** 工事案件番号採番エラー */
	private static final String RELATION_ERR_CD_NUMBER = "EM";
	/** 更新エラー */
	private static final String RELATION_ERR_CD_UPD = "EN";
	/** 引継パターンエラー */
	private static final String RELATION_ERR_CD_HKTG = "EO";
	/** 住所変更中に電話単独への変更 */
	private static final String RELATION_ERR_CD_ADCHG = "EP";
	
	/**
	 * 引継チェック用定数
	 */
	
	/** 振舞パターン=NETorTEL→IO連携 */
	private static final String[] HKTG_CHECK_IO_RNKI = new String[]
	{
		JKUStrConst.HKTG_FIN,
		JKUStrConst.HKTG_CHU_FROM_HT,
		JKUStrConst.HKTG_CHU_FROM_IO
	};
	
	/** 振舞パターン=NETorTEL→IO連携以外 */
	private static final String[] HKTG_CHECK_IO_RNKI_IGAI = new String[]
	{
		JKUStrConst.HKTG_FIN,
		JKUStrConst.HKTG_CHU_FROM_HT,
		JKUStrConst.HKTG_CHU_FROM_IO,
		JKUStrConst.HKTG_CHU
	};
	

	
	/**
	 * コンストラクタです。
	 */
	public JEKU0021C020TPMA()
	{
		super();
	}

	/**
	 * 主処理
	 * @param inCBSMsg
	 * @param inContext
	 * @throws CAANException
	 */
	public void invoke(CAANMsg inCBSMsg, AgentDispatchContext inContext) throws CAANException
	{
		String koji_uk_optnty_ido_div = inCBSMsg.getString(EKU0021C020CBSMsg.KOJI_UK_OPTNTY_IDO_DIV);
		
		// 工事受付契機異動区分が「強制解約確定」「強制解約(撤去)」「強制解約」の場合、処理を終了
		if(JKUStrConst.CD00576_KSI_DSL_FIX.equals(koji_uk_optnty_ido_div)
				|| JKUStrConst.CD00576_KSI_DSL_TEKKYO.equals(koji_uk_optnty_ido_div)
				|| JKUStrConst.CD00576_KSI_DSL.equals(koji_uk_optnty_ido_div))
		{
			// 処理しない
			return;
		}

		String koji_uk_dtail_cd = inCBSMsg.getString(EKU0021C020CBSMsg.KOJI_UK_DTAIL_CD);

		// 工事案件情報リストの作成を行う
		CAANMsg[] kojiakMsgList = null;
		
		//解約(回線残す)
		if(JKUStrConst.CD00885_DSL_KISN_NOKOSU.equals(koji_uk_dtail_cd))
		{
			kojiakMsgList = getDoitsuKojiSvcKeiNo(inCBSMsg.getString(EKU0021C020CBSMsg.SVC_KEI_NO), inCBSMsg.getString(EKU0021C020CBSMsg.SVC_CD));
			if (null == kojiakMsgList || 0 == kojiakMsgList.length)
			{
				// 工事案件情報が存在しない場合エラー
				inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_DSL_SONZAI);
				inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
				return;
			}
		}
		//解約(回線残さない)/住所変更
		else
		{
			kojiakMsgList = getKojiakTk(inCBSMsg.getString(EKU0021C020CBSMsg.SVC_KEI_KAISEN_UCWK_NO)
					, inCBSMsg.getString(EKU0021C020CBSMsg.PRC_GRP_CD));
			if (null == kojiakMsgList || 0 == kojiakMsgList.length)
			{
				// 工事案件情報が存在しない場合エラー
				inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_TK_SONZAI);
				inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
				return;
			}
			if (!getRcntKihonKojiakChk(kojiakMsgList))
			{
				// 最新基本工事フラグが「1:最新基本工事」である工事案件情報が存在しない場合エラー
				inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_TK_RCNT);
				inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
				return;
			}

			// 仕掛中撤去工事が存在する場合、宅内機器を更新し、終了する
			CAANMsg shikakariKojiak = getShikakariKojiakChk(kojiakMsgList);
			if (null != shikakariKojiak)
			{
				
				// 戻り値を返す
				
				// 工事案件番号
				inCBSMsg.set(EKU0021C020CBSMsg.KOJIAK_NO, shikakariKojiak.getString(KU0011ETMsg.KOJIAK_NO));
				// 工事案件種別コード
				inCBSMsg.set(EKU0021C020CBSMsg.KOJIAK_SBT_CD, shikakariKojiak.getString(KU0011ETMsg.KOJIAK_SBT_CD));
				// 登録年月日時分秒
				inCBSMsg.set(EKU0021C020CBSMsg.ADD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.OPERATEDATETIME));
				// 登録オペレータアカウント
				inCBSMsg.set(EKU0021C020CBSMsg.ADD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.OPERATORID));
				// 更新年月日時分秒
				inCBSMsg.set(EKU0021C020CBSMsg.UPD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.OPERATEDATETIME));
				// 更新オペレータアカウント
				inCBSMsg.set(EKU0021C020CBSMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.OPERATORID));
				// 無効フラグ
				inCBSMsg.set(EKU0021C020CBSMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
				
				// 機能コードが１でない場合終了
				if(!JPCModelConstant.FUNC_CD_1.equals(inCBSMsg.getString(EKU0021C020CBSMsg.FUNC_CODE)))
				{
					return;
				}
				
				// 排他モードタイムスタンプチェック
				if (!JPCModelCommon.succeededExclusiveLock(shikakariKojiak, inContext, JKUStrConst.SCHEMA_KU0011))
				{
					inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_HAITA);
					inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
					return;
				}
				
				// 仕掛中撤去工事に同一工事機器情報を追加する
				tekkyoKU0141Add(inCBSMsg,
						shikakariKojiak.getString(KU0011ETMsg.KOJIAK_NO),
						shikakariKojiak.getString(KU0011ETMsg.KOJIAK_SBT_CD));
				
				// 申込明細登録
				tekkyoKU0091(inCBSMsg);
				
				return;
			}
		}
		
		// 排他モードタイムスタンプチェック
		for(CAANMsg kojiakMsg : kojiakMsgList)
		{
			if (!JPCModelCommon.succeededExclusiveLock(kojiakMsg, inContext, JKUStrConst.SCHEMA_KU0011))
			{
				inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_HAITA);
				inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
				return;
			}
		}
		
		// 撤去の場合のみ、更新対象の工事案件リストを再作成
		if(!JKUStrConst.CD00885_DSL_KISN_NOKOSU.equals(koji_uk_dtail_cd))
		{
			for(int i = 0; i < kojiakMsgList.length; i++)
			{
				// 提供中法人サービス契約＿工事案件情報リストの取得
				CAANMsg[] hojinSvcList = JKUModelCommon.getTkHojinSvcKeiKojiak(kojiakMsgList[i].getString(KU0011ETMsg.KOJIAK_NO));
				if(hojinSvcList != null && 0 < hojinSvcList.length)
				{
					// 撤去時、提供中法人サービス契約＿工事案件情報が存在する場合エラー
					if(!JKUStrConst.CD00885_DSL_KISN_NOKOSU.equals(koji_uk_dtail_cd))
					{
						inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_TK_HOJIN);
						inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
						return;
					}
				}
			}
			
			kojiakMsgList = JKUModelCommon.getKojiakForTekkyo(inCBSMsg.getString(EKU0021C020CBSMsg.SVC_KEI_NO), kojiakMsgList);
		}

		// 工事案件情報リストの作成を行う
		List<CAANMsg[]> svcKeiMsgList = new ArrayList<CAANMsg[]>();
		List<CAANMsg> hojinSvcKeiMsgList = new ArrayList<CAANMsg>();
		List<String> updatePtnList = new ArrayList<String>();
		boolean kaisenFlg = false;
		String updPtn = "";

		// 新設系工事の完了フラグを取得
		boolean newestaFlg = getKaisenStatusNewesta(kojiakMsgList);
		
		for(int i = 0; i < kojiakMsgList.length; i++)
		{
			// 撤去時、最新基本工事以外は更新対象外
			if (!JKUStrConst.CD00885_DSL_KISN_NOKOSU.equals(koji_uk_dtail_cd)
					&& !JKUStrConst.CD00882_RCNT_KIHON_KOJI.equals(kojiakMsgList[i].getString(KU0011ETMsg.RCNT_KIHON_KOJI_FLG)))
			{
				svcKeiMsgList.add(null);
				hojinSvcKeiMsgList.add(null);
				updatePtnList.add("");
				continue;
			}

			if(!newestaFlg)
			{
				kaisenFlg = false;
			}
			else
			{
				// 個々の工事案件に対して撤去完了判定を取得
				kaisenFlg = getKaisenStatusTekkyo(kojiakMsgList[i], kojiakMsgList);
			}

			// 提供中サービス契約＿工事案件情報リストの取得
			svcKeiMsgList.add(JKUModelCommon.getTkSvcKeiKojiak(kojiakMsgList[i].getString(KU0011ETMsg.KOJIAK_NO)));

			// 提供中法人サービス契約＿工事案件情報リストの取得
			CAANMsg[] hojinSvcList = JKUModelCommon.getTkHojinSvcKeiKojiak(kojiakMsgList[i].getString(KU0011ETMsg.KOJIAK_NO));
			if(hojinSvcList != null && 0 < hojinSvcList.length)
			{
				// NULLでない場合、法人サービス契約＿工事案件を設定
				hojinSvcKeiMsgList.add(hojinSvcList[0]);
			}
			else
			{
				hojinSvcKeiMsgList.add(null);
			}

			
			// 振舞パターン取得処理
			updPtn = JKUModelCommon.getUpdatePatternHT(inCBSMsg
					, kojiakMsgList[i], svcKeiMsgList.get(i), hojinSvcKeiMsgList.get(i), kaisenFlg);
			
			// 切替サービスの不整合エラー
			if(JKUStrConst.HRMI_PATTERN_HT_20.equals(updPtn))
			{
				inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_SWCHSVC);
				inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
				return;
			}
			
			//振舞パターンのエラー判定
			if(JKUStrConst.HRMI_PATTERN_HT_19.equals(updPtn))
			{
				inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_HRMI);
				inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
				return;
			}
			
			updatePtnList.add(updPtn);
		}
		
		//解約時
		if(JKUStrConst.CD00885_DSL_KISN_NOKOSU.equals(koji_uk_dtail_cd))
		{
			// 振舞パターン
			String updatePtn = null;
			// サービス契約回線内訳番号
			String svcKeiKaisenUcwkNo = null;
			// 住所変更中ネット解約（NET+TEL契約中）チェック
			for(int i = 0; i < kojiakMsgList.length; i++)
			{
				updatePtn = updatePtnList.get(i);
				// 工事案件番号に紐付くサービス契約_工事案件のデータは複数件存在する場合でも
				// サービス契約回線内訳番号は同じなので一件目の番号を取得する
				svcKeiKaisenUcwkNo = svcKeiMsgList.get(i)[0].getString(KU0081ETMsg.SVC_KEI_KAISEN_UCWK_NO);
				
				// 振る舞いパターンが11:受付中までの工事案件(NET+TEL→TEL)または12:工事中の工事案件(NET+TEL→TEL)
				// 且つスキーマのサービス契約回線内訳番号とインプットのサービス契約内訳番号が異なる
				if((JKUStrConst.HRMI_PATTERN_HT_11.equals(updatePtn) || JKUStrConst.HRMI_PATTERN_HT_12.equals(updatePtn))
						&& !svcKeiKaisenUcwkNo.equals(inCBSMsg.getString(EKU0021C020CBSMsg.SVC_KEI_KAISEN_UCWK_NO)))
				{
					inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_ADCHG);
					inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
					return;
				}
			}
		}
		
		// 引継パターンエラーチェック
		
		//解約時
		if(JKUStrConst.CD00885_DSL_KISN_NOKOSU.equals(koji_uk_dtail_cd))
		{
			// サービス契約番号単位であるため、引数を元に判断する
			
			boolean rnkiFlg = false;
			for (int i = 0; i < updatePtnList.size(); ++i)
			{
				// ネット→IO連携が存在する場合のみ、特殊なチェックが必要になる
				if (JKUStrConst.HRMI_PATTERN_HT_06.equals(updatePtnList.get(i)))
				{
					rnkiFlg = true;
					break;
				}
			}
			
			if (true == rnkiFlg)
			{
				if (0 != JKUModelCommon.checkHktgPattern(inCBSMsg.getString(EKU0021C020CBSMsg.SVC_KEI_NO), HKTG_CHECK_IO_RNKI, false))
				{
					inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_HKTG);
					inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
					return;
				}
			}
			else
			{
				if (0 != JKUModelCommon.checkHktgPattern(inCBSMsg.getString(EKU0021C020CBSMsg.SVC_KEI_NO), HKTG_CHECK_IO_RNKI_IGAI, false))
				{
					inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_HKTG);
					inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
					return;
				}
			}
		}
		// 撤去時
		else
		{
			List<String> svcKeiNoList = new ArrayList<String>();
			List<CAANMsg> ku0081MsgList = new ArrayList<CAANMsg>();
			
			JKUejbKU0081SecProc ku0081SecProc = new JKUejbKU0081SecProc();
			CAANMsg ku0081Msg = null;
			CAANMsg[] ku0081MsgArray = null;
			
			// 工事案件に紐づくサービス契約_工事案件をリスト化する
			
			for(int i = 0; i < kojiakMsgList.length; ++i)
			{
				ku0081Msg = new CAANMsg(KU0081ETMsg.class.getName());
				// 工事案件番号
				ku0081Msg.set(KU0081ETMsg.KOJIAK_NO, kojiakMsgList[i].getString(KU0011ETMsg.KOJIAK_NO));
				// 無効フラグ
				ku0081Msg.set(KU0081ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
				ku0081MsgArray = ku0081SecProc.findByCondition(ku0081Msg);
				if (null != ku0081MsgArray && ku0081MsgArray.length != 0)
				{
					for (int j = 0; j < ku0081MsgArray.length; ++j)
					{
						ku0081MsgList.add(ku0081MsgArray[j]);
					}
				}
			}
			
			// サービス契約番号を、重複のないリストに変換する
			
			for (int i = 0; i < ku0081MsgList.size(); ++i)
			{
				if (-1 == svcKeiNoList.indexOf(ku0081MsgList.get(i).getString(KU0081ETMsg.SVC_KEI_NO)))
				{
					svcKeiNoList.add(ku0081MsgList.get(i).getString(KU0081ETMsg.SVC_KEI_NO));
				}
			}
			
			// 全てのサービス契約番号でチェックを実行する
			for (int i = 0; i < svcKeiNoList.size(); ++i)
			{
				if (0 != JKUModelCommon.checkHktgPattern(svcKeiNoList.get(i), HKTG_CHECK_IO_RNKI_IGAI, false))
				{
					inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_HKTG);
					inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
					return;
				}
			}
			
		}

		// 機能コードが１でない場合終了
		if(!JPCModelConstant.FUNC_CD_1.equals(inCBSMsg.getString(EKU0021C020CBSMsg.FUNC_CODE)))
		{
			return;
		}

		// アウトプット項目を設定する
		String sysDateTime = inCBSMsg.getString(EKU0021C020CBSMsg.OPERATEDATETIME);
		String opeId = inCBSMsg.getString(EKU0021C020CBSMsg.OPERATORID);
		
		// 登録年月日時分秒
		inCBSMsg.set(EKU0021C020CBSMsg.ADD_DTM, sysDateTime);
		// 登録オペレータアカウント
		inCBSMsg.set(EKU0021C020CBSMsg.ADD_OPEACNT, opeId);
		// 更新年月日時分秒
		inCBSMsg.set(EKU0021C020CBSMsg.UPD_DTM, sysDateTime);
		// 更新オペレータアカウント
		inCBSMsg.set(EKU0021C020CBSMsg.UPD_OPEACNT, opeId);
		// 無効フラグ
		inCBSMsg.set(EKU0021C020CBSMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		String updatePtn = "";
		boolean updRslt = false;

		for(int i = 0; i < kojiakMsgList.length; i++)
		{
			updRslt = false;
			updatePtn = updatePtnList.get(i);

			if(null == updatePtn || "".equals(updatePtn))
			{
				continue;
			}
			else if(JKUStrConst.HRMI_PATTERN_HT_01.equals(updatePtn))
			{
				updRslt = dslptn1(inCBSMsg, inContext, kojiakMsgList[i]);
			}
			else if(JKUStrConst.HRMI_PATTERN_HT_02.equals(updatePtn))
			{
				// 最新基本工事の工事案件(NET)と同じ処理を実行する
				updRslt = dslptn3(inCBSMsg, inContext, kojiakMsgList[i]);
			}
			else if(JKUStrConst.HRMI_PATTERN_HT_03.equals(updatePtn))
			{
				updRslt = dslptn3(inCBSMsg, inContext, kojiakMsgList[i]);
			}
			else if(JKUStrConst.HRMI_PATTERN_HT_04.equals(updatePtn))
			{
				updRslt = dslptn4(inCBSMsg, inContext, kojiakMsgList[i]);
			}
			else if(JKUStrConst.HRMI_PATTERN_HT_05.equals(updatePtn))
			{
				updRslt = dslptn5(inCBSMsg, inContext, kojiakMsgList[i], svcKeiMsgList.get(i));
			}
			else if(JKUStrConst.HRMI_PATTERN_HT_06.equals(updatePtn))
			{
				updRslt = dslptn6(inCBSMsg, inContext, kojiakMsgList[i], hojinSvcKeiMsgList.get(i));
			}
			else if(JKUStrConst.HRMI_PATTERN_HT_07.equals(updatePtn))
			{
				updRslt = dslptn7(inCBSMsg, inContext, kojiakMsgList[i], svcKeiMsgList.get(i));
			}
			else if(JKUStrConst.HRMI_PATTERN_HT_08.equals(updatePtn))
			{
				updRslt = dslptn8(inCBSMsg, inContext, kojiakMsgList[i]);
			}
			else if(JKUStrConst.HRMI_PATTERN_HT_09.equals(updatePtn))
			{
				// 最新基本工事の工事案件(TEL)と同じ処理を実行する
				updRslt = dslptn10(inCBSMsg, inContext, kojiakMsgList[i]);
			}
			else if(JKUStrConst.HRMI_PATTERN_HT_10.equals(updatePtn))
			{
				updRslt = dslptn10(inCBSMsg, inContext, kojiakMsgList[i]);
			}
			else if(JKUStrConst.HRMI_PATTERN_HT_11.equals(updatePtn))
			{
				updRslt = dslptn11(inCBSMsg, inContext, kojiakMsgList[i], svcKeiMsgList.get(i));
			}
			else if(JKUStrConst.HRMI_PATTERN_HT_12.equals(updatePtn))
			{
				updRslt = dslptn12(inCBSMsg, inContext, kojiakMsgList[i], svcKeiMsgList.get(i));
			}
			else if(JKUStrConst.HRMI_PATTERN_HT_13.equals(updatePtn))
			{
				updRslt = dslptn13(inCBSMsg, inContext, kojiakMsgList[i], svcKeiMsgList.get(i));
			}
			else if(JKUStrConst.HRMI_PATTERN_HT_14.equals(updatePtn))
			{
				updRslt = dslptn14(inCBSMsg, inContext, kojiakMsgList[i]);
			}
			else if(JKUStrConst.HRMI_PATTERN_HT_15.equals(updatePtn))
			{
				updRslt = dslptn15(inCBSMsg, inContext, kojiakMsgList[i]);
			}
			else if(JKUStrConst.HRMI_PATTERN_HT_16.equals(updatePtn))
			{
				updRslt = dslptn16(inCBSMsg, inContext, kojiakMsgList[i]);
			}
			else if(JKUStrConst.HRMI_PATTERN_HT_17.equals(updatePtn))
			{
				updRslt = dslptn17(inCBSMsg, inContext, kojiakMsgList[i]);
			}
			else if(JKUStrConst.HRMI_PATTERN_HT_18.equals(updatePtn))
			{
				updRslt = dslptn18(inCBSMsg, inContext, kojiakMsgList[i], svcKeiMsgList.get(i));
			}
			else if(JKUStrConst.HRMI_PATTERN_HT_19.equals(updatePtn))
			{
				//エラー
			}

			// 更新失敗時
			if(!updRslt)
			{
				return;
			}
		}
		
	}


	/**
	 * サービス契約番号から工事案件情報の一覧を取得する
	 * @param svcKeiNo
	 * @param svcCd
	 * @return CAANMsg[]
	 */
	private CAANMsg[] getDoitsuKojiSvcKeiNo(String svcKeiNo, String svcCd)
	{
		try
		{
			// 返却リスト
			List<CAANMsg> rsltMsgList = new ArrayList<CAANMsg>();

			// サービス契約＿工事案件
			CAANMsg inKU0081ETMsg = new CAANMsg(KU0081ETMsg.class.getName());
			KU0081LE le0081 = new KU0081LE();
			CAANMsg[] outKU0081ETMsg = null;

			// 工事案件
			CAANMsg inKU0011ETMsg = new CAANMsg(KU0011ETMsg.class.getName());
			KU0011LE le0011 = new KU0011LE();
			CAANMsg[] outKU0011ETMsg = null;

			// 1. 引数のサービス契約番号でサービス契約工事案件を取得する。
			inKU0081ETMsg.set(KU0081ETMsg.SVC_KEI_NO, svcKeiNo);
			inKU0081ETMsg.set(KU0081ETMsg.SVC_CD, svcCd);
			inKU0081ETMsg.set(KU0081ETMsg.SVKEI_KOJIAK_TENDYMD, JKUStrConst.MAX_YMD);
			inKU0081ETMsg.set(KU0081ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
			outKU0081ETMsg = le0081.findByCondition(inKU0081ETMsg);


			// 2. 取得した工事案件番号について重複を取り除く
			List<String> kojiakNoList = new ArrayList<String>();
			for(CAANMsg ku0081Msg: outKU0081ETMsg)
			{
				if (!kojiakNoList.contains(ku0081Msg.getString(KU0081ETMsg.KOJIAK_NO)))
				{
					kojiakNoList.add(ku0081Msg.getString(KU0081ETMsg.KOJIAK_NO));
				}
			}

			// 3. 2の工事案件番号から工事案件レコードを取得する
			for(String kojiakNo: kojiakNoList)
			{
				inKU0011ETMsg.set(KU0011ETMsg.KOJIAK_NO, kojiakNo);
				inKU0011ETMsg.set(KU0011ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
				outKU0011ETMsg = le0011.findByCondition(inKU0011ETMsg);

				if(null != outKU0011ETMsg && 0 < outKU0011ETMsg.length)
				{
					rsltMsgList.add(outKU0011ETMsg[0]);
				}
			}

			return (CAANMsg[])rsltMsgList.toArray(new CAANMsg[0]);
		}
		catch (CAANException ce)
		{
			return null;
		}
	}

	/**
	 * サービス契約回線内訳番号から工事案件情報の一覧を取得する
	 * @param svcKeiKaisenUcwkNo
	 * @param prcGrpCd
	 * @return CAANMsg[]
	 */
	private CAANMsg[] getKojiakTk(String svcKeiKaisenUcwkNo, String prcGrpCd)
	{
		return JKUModelCommon.getKU0011DoitsuKoji(svcKeiKaisenUcwkNo, prcGrpCd);
	}


	/**
	 * 工事案件情報の一覧に最新基本工事があるかのチェックを行う
	 * @param kojiakMsgList
	 * @return boolean True 存在する/False 存在しない
	 */
	private boolean getRcntKihonKojiakChk(CAANMsg[] kojiakMsgList)
	{

		for(CAANMsg kojiakMsg : kojiakMsgList)
		{
			if(JKUStrConst.CD00882_RCNT_KIHON_KOJI.equals(kojiakMsg.getString(KU0011ETMsg.RCNT_KIHON_KOJI_FLG)))
			{
				return true;
			}
		}

		return false;
	}


	/**
	 * 工事案件情報の一覧に仕掛工事があるかのチェックを行う
	 * @param kojiakMsgList
	 * @return 仕掛中の撤去工事
	 */
	private CAANMsg getShikakariKojiakChk(CAANMsg[] kojiakMsgList)
	{

		// 仕掛判定ステータス
		String[] shikakariKojiakStatus = new String[]{
				JKUStrConst.CD00474_UK_ZM
				, JKUStrConst.CD00474_IRI_ZM
				, JKUStrConst.CD00474_TAKNI_CHOSA_FIN_ZM
				, JKUStrConst.CD00474_KOCOMP_KETTEI_ZM
				, JKUStrConst.CD00474_TAKNI_CHOSA_RSV_ZM
				, JKUStrConst.CD00474_KR_KAGI_KAIHAT_IRI_ZM
				, JKUStrConst.CD00474_GEMBA_SAGYO_FIN_ZM};

		String kojiakSbtCd = "";
		String kojiakStat = "";

		for(CAANMsg kojiakMsg : kojiakMsgList)
		{
			kojiakSbtCd = kojiakMsg.getString(KU0011ETMsg.KOJIAK_SBT_CD);

			if(JKUStrConst.CD00577_KYOSEI_DSL.equals(kojiakSbtCd)
					|| JKUStrConst.CD00577_TEKKYO_DSL.equals(kojiakSbtCd)
					|| JKUStrConst.CD00577_AD_CHG_TEKKYO.equals(kojiakSbtCd))
			{

				kojiakStat = kojiakMsg.getString(KU0011ETMsg.KOJIAK_STAT);

				// 仕掛判定を行う
				for(String status : shikakariKojiakStatus)
				{
					if(status.equals(kojiakStat))
					{
						return kojiakMsg;
					}
				}
			}
		}

		return null;
	}

	/**
	 * 新設系工事の完了判定処理
	 * @param kojiakMsgList
	 * @return boolean
	 */
	private boolean getKaisenStatusNewesta(CAANMsg[] kojiakMsgList)
	{
		String kojiakSbtCd = "";
		boolean newestaFlg = false;
		for(CAANMsg kojiakMsg : kojiakMsgList)
		{
			kojiakSbtCd = kojiakMsg.getString(KU0011ETMsg.KOJIAK_SBT_CD);
			// ANK-4315-00-00 MOD START
		//	if(JKUStrConst.CD00577_NEWESTA.equals(kojiakSbtCd)
		//			|| JKUStrConst.CD00577_AD_CHG_NEWESTA.equals(kojiakSbtCd)
		//			|| JKUStrConst.CD00577_PLAN_CHG_SHUYO.equals(kojiakSbtCd)
		//			|| JKUStrConst.CD00577_MNKHT.equals(kojiakSbtCd))
			if(JKUStrConst.CD00577_NEWESTA.equals(kojiakSbtCd)
					|| JKUStrConst.CD00577_AD_CHG_NEWESTA.equals(kojiakSbtCd)
					|| JKUStrConst.CD00577_PLAN_CHG_SHUYO.equals(kojiakSbtCd)
					|| JKUStrConst.CD00577_MNKHT.equals(kojiakSbtCd)
					|| JKUStrConst.CD00577_ONU.equals(kojiakSbtCd))
			// ANK-4315-00-00 MOD END
			{
				if(JKUStrConst.CD00474_KOJI_FIN_ZM.equals(kojiakMsg.getString(KU0011ETMsg.KOJIAK_STAT)))
				{
					newestaFlg = true; 
					break;
				}
			}
		}

		return newestaFlg;

	}

	/**
	 * 回線存在状況取得処理
	 * @param kojiakMsg
	 * @param kojiakMsgList
	 * @return boolean
	 */
	private boolean getKaisenStatusTekkyo(CAANMsg kojiakMsg, CAANMsg[] kojiakMsgList)
	{
		String updTrgtKojiakNo = kojiakMsg.getString(KU0011ETMsg.KOJIAK_NO);
		String kojiakSbtCd = "";
		kojiakSbtCd = kojiakMsg.getString(KU0011ETMsg.KOJIAK_SBT_CD);
		
		String[] cd00577 = new String[]{JKUStrConst.CD00577_AD_CHG_TEKKYO
				, JKUStrConst.CD00577_TEKKYO_DSL
				, JKUStrConst.CD00577_KYOSEI_DSL
				, JKUStrConst.CD00577_ISETSU
				, JKUStrConst.CD00577_EOH_TEL_TNKJ
				, JKUStrConst.CD00577_PLAN_CHG_KOJI_NON};
		
		// 更新対象工事案件番号取得
		for(String cd : cd00577)
		{
			if(cd.equals(kojiakSbtCd))
			{
				updTrgtKojiakNo = kojiakMsg.getString(KU0011ETMsg.UPD_TRGT_KOJIAK_NO);
				break;
			}
		}

		for(CAANMsg msg : kojiakMsgList)
		{
			kojiakSbtCd = msg.getString(KU0011ETMsg.KOJIAK_SBT_CD);
			// ANK-4315-00-00 MOD START
		//	if(JKUStrConst.CD00577_KYOSEI_DSL.equals(kojiakSbtCd)
		//			|| JKUStrConst.CD00577_TEKKYO_DSL.equals(kojiakSbtCd)
		//			|| JKUStrConst.CD00577_AD_CHG_TEKKYO.equals(kojiakSbtCd)
		//			|| JKUStrConst.CD00577_PLAN_CHG_SHUYO.equals(kojiakSbtCd))
			if(JKUStrConst.CD00577_KYOSEI_DSL.equals(kojiakSbtCd)
					|| JKUStrConst.CD00577_TEKKYO_DSL.equals(kojiakSbtCd)
					|| JKUStrConst.CD00577_AD_CHG_TEKKYO.equals(kojiakSbtCd)
					|| JKUStrConst.CD00577_PLAN_CHG_SHUYO.equals(kojiakSbtCd)
					|| JKUStrConst.CD00577_ONU.equals(kojiakSbtCd))
			// ANK-4315-00-00 MOD END
			{
				if(updTrgtKojiakNo.equals(msg.getString(KU0011ETMsg.UPD_TRGT_KOJIAK_NO))
						&& JKUStrConst.CD00474_KOJI_FIN_ZM.equals(msg.getString(KU0011ETMsg.KOJIAK_STAT)))
				{
					return false;
				}
			}
		}

		return true;
	}


	/**
	 * 受付中までの工事案件(NET) 
	 * 振舞パターン@
	 * @param inCBSMsg
	 * @param inContext
	 * @param kojiakMsg
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean dslptn1(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakMsg) throws CAANException
	{
		// 工事案件番号取得
		String kojiakNo = kojiakMsg.getString(KU0011ETMsg.KOJIAK_NO);
		// サービス契約番号番号取得
		String svcKeiNo = inCBSMsg.getString(EKU0021C020CBSMsg.SVC_KEI_NO);
		
		// 工事案件更新
		if (!cancelKU0011(inCBSMsg, kojiakNo))
		{
			return false;
		}
		
		// サービス契約＿工事案件更新
		if (!dslKU0081(inCBSMsg, kojiakNo, svcKeiNo))
		{
			return false;
		}
		
		// 先行設計更新
		if (!cancelKU0101(inCBSMsg, kojiakNo))
		{
			return false;
		}
		
		// 設定工事更新
		if (!cancelKU0111(inCBSMsg, kojiakNo))
		{
			return false;
		}
		
		return true;
	}

	/**
	 * 最新基本工事の工事案件(NET) 
	 * 振舞パターンB
	 * @param inCBSMsg
	 * @param inContext
	 * @param kojiakMsg
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean dslptn3(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakMsg) throws CAANException
	{
		// 工事案件番号取得
		String kojiakNo = kojiakMsg.getString(KU0011ETMsg.KOJIAK_NO);
		// サービス契約番号番号取得
		String svcKeiNo = inCBSMsg.getString(EKU0021C020CBSMsg.SVC_KEI_NO);
		
		// 工事案件更新
		if (!dslKU0011(inCBSMsg, kojiakNo))
		{
			return false;
		}
		
		// サービス契約＿工事案件更新
		if (!dslKU0081(inCBSMsg, kojiakNo, svcKeiNo))
		{
			return false;
		}
		
		return true;
	}
	
	/**
	 * 外部連携終了の工事案件 
	 * 振舞パターンC
	 * @param inCBSMsg
	 * @param inContext
	 * @param kojiakMsg
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean dslptn4(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakMsg) throws CAANException
	{		
		// 工事案件番号取得
		String kojiakNo = kojiakMsg.getString(KU0011ETMsg.KOJIAK_NO);
		// サービス契約番号番号取得
		String svcKeiNo = inCBSMsg.getString(EKU0021C020CBSMsg.SVC_KEI_NO);
		
		// サービス契約＿工事案件更新
		if (!dslKU0081(inCBSMsg, kojiakNo, svcKeiNo))
		{
			return false;
		}
		
		return true;
	}
	
	/**
	 * 同一回線内サービス契約変更（NET連携→NET連携) 
	 * 振舞パターンD
	 * @param inCBSMsg
	 * @param inContext
	 * @param kojiakMsg
	 * @param svcKeiKojiakMsgList
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean dslptn5(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakMsg, CAANMsg[] svcKeiKojiakMsgList) throws CAANException
	{
		

		// 工事案件番号取得
		String kojiakNo = kojiakMsg.getString(KU0011ETMsg.KOJIAK_NO);
		// サービス契約番号取得
		String svcKeiNo = inCBSMsg.getString(EKU0021C020CBSMsg.SVC_KEI_NO);

		// 切替先のインターネットサービスを取得
		CAANMsg swchKU0081 = getSwchSvcKei(svcKeiKojiakMsgList, svcKeiNo, JKUStrConst.CD00130_NET);
		if(null == swchKU0081)
		{
			return false;
		}

		// 切替先の情報を取得しマップにセットする
		HashMap<String, String> mapKK0081 = new HashMap<String, String>();
		HashMap<String, String> mapCK0011 = new HashMap<String, String>();
		if(!setSwchMap(inCBSMsg, swchKU0081, mapKK0081, mapCK0011))
		{
			return false;
		}
		

		// サービス追加（工事なし）の工事案件情報を取得
		CAANMsg swchKU0011Msg = getAddMotoKojiak(inCBSMsg, swchKU0081.getString(KU0081ETMsg.SVC_KEI_NO), kojiakNo, kojiakMsg, true);
		if(null == swchKU0011Msg)
		{
			return false;
		}
		
		// 工事案件更新
		if(!netDslSwchKU0011(inCBSMsg, kojiakMsg, mapKK0081, mapCK0011, swchKU0081))
		{
			return false;
		}
		
		// 工事案件＜eo光ネット＞更新
		if(!netDslSwchNetKU0021(inCBSMsg, kojiakNo, swchKU0011Msg))
		{
			return false;
		}
		
		// サービス契約＿工事案件更新
		if(!dslKU0081(inCBSMsg, kojiakNo, svcKeiNo))
		{
			return false;
		}
		// 正常終了
		return true;
	}



	/**
	 * 同一回線内サービス契約変更（NETorTEL連携→IO連携) 
	 * 振舞パターンE
	 * @param inCBSMsg
	 * @param inContext
	 * @param kojiakMsg
	 * @param hojinSvcKeiKojiakMsg
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean dslptn6(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakMsg, CAANMsg hojinSvcKeiKojiakMsg) throws CAANException
	{

		// 工事案件番号取得
		String kojiakNo = kojiakMsg.getString(KU0011ETMsg.KOJIAK_NO);
		// サービス契約番号取得
		String svcKeiNo = inCBSMsg.getString(EKU0021C020CBSMsg.SVC_KEI_NO);

		// サービス追加（工事なし）の工事案件情報を取得
		CAANMsg swchKU0011Msg = getAddMotoKojiak(inCBSMsg, hojinSvcKeiKojiakMsg.getString(KU0071ETMsg.HJIN_EO_YKAE_SVKEI_NO), kojiakNo, kojiakMsg, false);
		if(null == swchKU0011Msg)
		{
			return false;
		}
		
		// 工事案件更新
		if(!netDslSwchOffcKU0011(inCBSMsg, kojiakNo, kojiakMsg, swchKU0011Msg))
		{
			return false;
		}
		
		// 工事案件＜eoオフィス＞登録
		if(!netDslSwchOffcKU0051(inCBSMsg, kojiakNo, swchKU0011Msg))
		{
			return false;
		}
		
		// サービス契約＿工事案件更新
		if(!dslKU0081(inCBSMsg, kojiakNo, svcKeiNo))
		{
			return false;
		}
		// 正常終了
		return true;
	}
	
	/**
	 * 回線撤去(提供中サービスあり) 
	 * 振舞パターンF
	 * @param inCBSMsg
	 * @param inContext
	 * @param kojiakMsg
	 * @param svcKeiKojiakMsgList
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean dslptn7(CAANMsg inCBSMsg, AgentDispatchContext inContext
			, CAANMsg kojiakMsg, CAANMsg[] svcKeiKojiakMsgList) throws CAANException
	{
		// 工事案件番号採番・設定
		String kojiak_no = JKUejbNumberParts.getKojiakNoString(kojiakMsg.getString(KU0011ETMsg.KOJIAK_NO), inCBSMsg);
		
		// 工事案件番号を採番できなかった場合はエラー
		if(null == kojiak_no || "".equals(kojiak_no))
		{
			inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_NUMBER);
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}
		// CBSメッセージに設定
		inCBSMsg.set(EKU0021C020CBSMsg.KOJIAK_NO, kojiak_no);
		
		// ANK-4315-00-00 MOD START
		// 工事案件種別コード取得・設定
	//	String kojiakSbtCd = JKUModelCommon.getKojiakSbtCd(inCBSMsg.getString(EKU0021C020CBSMsg.KOJI_UK_CD)
	//			, inCBSMsg.getString(EKU0021C020CBSMsg.KOJI_UK_DTAIL_CD)
	//			, inCBSMsg.getString(EKU0021C020CBSMsg.MENKAIHAT_ANKEN_NO)
	//			, null
	//			, inCBSMsg.getString(EKU0021C020CBSMsg.PRC_GRP_CD)
	//			, null
	//			, null);
		String kojiakSbtCd = JKUModelCommon.getKojiakSbtCd(inCBSMsg.getString(EKU0021C020CBSMsg.KOJI_UK_CD)
				, inCBSMsg.getString(EKU0021C020CBSMsg.KOJI_UK_DTAIL_CD)
				, inCBSMsg.getString(EKU0021C020CBSMsg.MENKAIHAT_ANKEN_NO)
				, null
				, inCBSMsg.getString(EKU0021C020CBSMsg.PRC_GRP_CD)
				, null
				, null
				, null);
		// ANK-4315-00-00 MOD END
		// CBSメッセージに設定
		inCBSMsg.set(EKU0021C020CBSMsg.KOJIAK_SBT_CD, kojiakSbtCd);
		
		// 同時代表工事案件番号の取得
		String dojiDaihyoKojiakNo = JKUModelCommon.getSimRepKojiakNoNotFindByPk(
				inCBSMsg.getString(EKU0021C020CBSMsg.KOJIAK_SBT_CD), inCBSMsg.getString(EKU0021C020CBSMsg.PRC_GRP_CD)
				, null, null, null, inCBSMsg.getString(EKU0021C020CBSMsg.SVC_KEI_KAISEN_UCWK_NO));
// ANK-4038-00-00 ADD START
		// サービス契約＿工事案件情報の一件目のサービス契約回線内訳番号でサービス契約回線内訳情報を取得
		CAANMsg svkeiKaisenUwMsg = JKUModelCommon.getSvkeiKaisenUwInfo(svcKeiKojiakMsgList[0].getString(KU0081ETMsg.SVC_KEI_KAISEN_UCWK_NO));
// ANK-4038-00-00 ADD END
		// 工事案件登録
// ANK-4038-00-00 MOD START
//		if(!tekkyoKU0011(inCBSMsg, kojiakMsg, dojiDaihyoKojiakNo))
		if(!tekkyoKU0011(inCBSMsg, kojiakMsg, dojiDaihyoKojiakNo, svkeiKaisenUwMsg))
// ANK-4038-00-00 MOD END
		{
			return false;
		}
		
		// 同時代表工事案件の更新処理
		if(!JKUModelCommon.updateDojiDaihyoKojiak(kojiak_no, dojiDaihyoKojiakNo, inCBSMsg.getString(EKU0021C020CBSMsg.OPERATEDATETIME), 
				inCBSMsg.getString(EKU0021C020CBSMsg.OPERATORID), inContext, true))
		{
			// 申込書番号エラーを設定
			inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_HAITA);
			// ステータスを設定
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}
		
		// 工事案件＜eo光ネット＞登録
		if(!tekkyoKU0021(inCBSMsg))
		{
			return false;
		}

		// サービス契約＿工事案件登録
		for(CAANMsg svcKeiKojiakMsg : svcKeiKojiakMsgList)
		{
			if(!tekkyoKU0081(inCBSMsg, svcKeiKojiakMsg))
			{
				return false;
			}
		}

		// 申込明細登録
		if(!tekkyoKU0091(inCBSMsg))
		{
			return false;
		}
		
		// 工事案件対象宅内機器登録
		if(!tekkyoKU0141(inCBSMsg))
		{
			return false;
		}

		return true;
	}
	
	/**
	 * 受付中までの工事案件(TEL) 
	 * 振舞パターンG
	 * @param inCBSMsg
	 * @param inContext
	 * @param kojiakMsg
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean dslptn8(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakMsg) throws CAANException
	{
		return dslptn1(inCBSMsg, inContext, kojiakMsg);
	}

	/**
	 * 最新基本工事の工事案件(TEL) 
	 * 振舞パターンI
	 * @param inCBSMsg
	 * @param inContext
	 * @param kojiakMsg
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean dslptn10(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakMsg) throws CAANException
	{
		return dslptn3(inCBSMsg, inContext, kojiakMsg);
	}
	
	/**
	 * 受付中までの工事案件(NET+TEL→TEL) 
	 * 振舞パターンJ
	 * @param inCBSMsg
	 * @param inContext
	 * @param kojiakMsg
	 * @param svcKeiKojiakMsgList
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean dslptn11(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakMsg, CAANMsg[] svcKeiKojiakMsgList) throws CAANException
	{
		// 工事案件番号取得
		String kojiakNo = kojiakMsg.getString(KU0011ETMsg.KOJIAK_NO);
		// サービス契約番号取得
		String svcKeiNo = inCBSMsg.getString(EKU0021C020CBSMsg.SVC_KEI_NO);

		// 切替先のインターネットサービスを取得
		CAANMsg swchKU0081 = getSwchSvcKei(svcKeiKojiakMsgList, svcKeiNo, JKUStrConst.CD00130_TEL);
		if(null == swchKU0081)
		{
			return false;
		}

		// 切替先の情報を取得しマップにセットする
		HashMap<String, String> mapKK0081 = new HashMap<String, String>();
		HashMap<String, String> mapCK0011 = new HashMap<String, String>();
		if(!setSwchMap(inCBSMsg, swchKU0081, mapKK0081, mapCK0011))
		{
			return false;
		}
		
		// 工事案件登録
		if(!netCancelTelKU0011(inCBSMsg, kojiakNo, mapKK0081, mapCK0011, swchKU0081))
		{
			return false;
		}
		
		// マンション物件コードがNULLはネット、NULLでない場合はマンション
		if (kojiakMsg.isNull(KU0011ETMsg.MANSION_BUKKEN_CD))
		{
			// 工事案件＜eo光ネット＞登録
			if(!netDslKU0021(inCBSMsg, kojiakNo))
			{
				return false;
			}
		}
		else
		{
			// 工事案件情報が存在しない場合エラー
			inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_DSL_SONZAI);
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}
		
		// サービス契約＿工事案件登録
		if(!dslKU0081(inCBSMsg, kojiakNo, svcKeiNo))
		{
			return false;
		}
		
		// 先行設計更新
		if(!netCancelTelKU0101(inCBSMsg, kojiakNo, mapKK0081, mapCK0011, swchKU0081))
		{
			return false;
		}
		
		// 正常終了
		return true;
	}
	
	/**
	 * 工事中の工事案件(NET+TEL→TEL) 
	 * ネット解約 (eo光ネット＋eo光電話契約)工事中の工事案件
	 * 振舞パターンK
	 * @param inCBSMsg
	 * @param inContext
	 * @param kojiakMsg
	 * @param svcKeiKojiakMsgList
	 * @return dslptn12
	 * @throws CAANException
	 */
	private boolean dslptn12(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakMsg, CAANMsg[] svcKeiKojiakMsgList) throws CAANException
	{
		// 工事案件番号取得
		String kojiakNo = kojiakMsg.getString(KU0011ETMsg.KOJIAK_NO);
		// サービス契約番号取得
		String svcKeiNo = inCBSMsg.getString(EKU0021C020CBSMsg.SVC_KEI_NO);

		// 切替先のインターネットサービスを取得
		CAANMsg swchKU0081 = getSwchSvcKei(svcKeiKojiakMsgList, svcKeiNo, JKUStrConst.CD00130_TEL);
		if(null == swchKU0081)
		{
			return false;
		}
		
		// 切替先の情報を取得しマップにセットする
		HashMap<String, String> mapKK0081 = new HashMap<String, String>();
		HashMap<String, String> mapCK0011 = new HashMap<String, String>();
		if(!setSwchMap(inCBSMsg, swchKU0081, mapKK0081, mapCK0011))
		{
			return false;
		}
		
		// 工事案件更新
		if(!netDslSwchKU0011(inCBSMsg, kojiakMsg, mapKK0081, mapCK0011, swchKU0081))
		{
			return false;
		}
		
		// マンション物件コードがNULLはネット、NULLでない場合はマンション
		if (kojiakMsg.isNull(KU0011ETMsg.MANSION_BUKKEN_CD))
		{
			// 工事案件＜eo光ネット＞更新
			if(!netDslKU0021(inCBSMsg, kojiakNo))
			{
				return false;
			}
		}
		else
		{
			// 工事案件情報が存在しない場合エラー
			inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_DSL_SONZAI);
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}
		
		// サービス契約＿工事案件更新
		if(!dslKU0081(inCBSMsg, kojiakNo, svcKeiNo))
		{
			return false;
		}
		// 正常終了
		return true;
	}
	
	
	/**
	 * 最新基本工事の工事案件(NET+TEL→TEL) 
	 * ネット解約 (eo光ネット＋eo光電話契約)最新基本工事の工事案件
	 * 振舞パターンL
	 * @param inCBSMsg
	 * @param inContext
	 * @param kojiakMsg
	 * @param svcKeiKojiakMsgList
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean dslptn13(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakMsg, CAANMsg[] svcKeiKojiakMsgList) throws CAANException
	{
		// 工事案件番号取得
		String kojiakNo = kojiakMsg.getString(KU0011ETMsg.KOJIAK_NO);
		// サービス契約番号取得
		String svcKeiNo = inCBSMsg.getString(EKU0021C020CBSMsg.SVC_KEI_NO);

		// 切替先のインターネットサービスを取得
		CAANMsg swchKU0081 = getSwchSvcKei(svcKeiKojiakMsgList, svcKeiNo, JKUStrConst.CD00130_TEL);
		if(null == swchKU0081)
		{
			return false;
		}
		
		// 切替先の情報を取得しマップにセットする
		HashMap<String, String> mapKK0081 = new HashMap<String, String>();
		HashMap<String, String> mapCK0011 = new HashMap<String, String>();
		if(!setSwchMap(inCBSMsg, swchKU0081, mapKK0081, mapCK0011))
		{
			return false;
		}
		
		// 工事案件更新
		if(!netDslSwchKU0011(inCBSMsg, kojiakMsg, mapKK0081, mapCK0011, swchKU0081))
		{
			return false;
		}
		
		// マンション物件コードがNULLはネット、NULLでない場合はマンション
		if (kojiakMsg.isNull(KU0011ETMsg.MANSION_BUKKEN_CD))
		{
			// 工事案件＜eo光ネット＞更新
			if(!rcntNetDslKU0021(inCBSMsg, kojiakNo))
			{
				return false;
			}
		}
		else
		{
			// 工事案件情報が存在しない場合エラー
			inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_DSL_SONZAI);
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}
		
		// サービス契約＿工事案件更新
		if(!dslKU0081(inCBSMsg, kojiakNo, svcKeiNo))
		{
			return false;
		}
		
// ANK-3334-01-00 MOD START
//		// 削除対象の工事案件のPON種別コードがGE-PONまたは10GE-PONの時
//// ANK-2612-00-00 MOD START
////		if(JKUStrConst.CD00211_GE_PON.equals(kojiakMsg.getString(KU0011ETMsg.PON_SBT_CD)))
//		if(JKUStrConst.CD00211_GE_PON.equals(kojiakMsg.getString(KU0011ETMsg.PON_SBT_CD))
//			|| JKUStrConst.CD00211_10GE_PON.equals(kojiakMsg.getString(KU0011ETMsg.PON_SBT_CD)))
//// ANK-2612-00-00 MOD END
		// 削除対象の工事案件の最新基本工事フラグが"1"のとき
		if(JKUStrConst.CD00882_RCNT_KIHON_KOJI.equals(kojiakMsg.getString(KU0011ETMsg.RCNT_KIHON_KOJI_FLG)))
// ANK-3334-01-00 MOD END
		{
			// 設定工事登録
			if(!rcntNetDslKU0111(inCBSMsg, kojiakNo, mapKK0081))
			{
				return false;
			}
		}
		// 正常終了
		return true;
	}
	
	/**
	 * 受付中までの工事案件(NET+TEL→NET) 
	 * 振舞パターンM
	 * @param inCBSMsg
	 * @param inContext
	 * @param kojiakMsg
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean dslptn14(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakMsg) throws CAANException
	{

		// 工事案件番号取得
		String kojiakNo = kojiakMsg.getString(KU0011ETMsg.KOJIAK_NO);
		// サービス契約番号取得
		String svcKeiNo = inCBSMsg.getString(EKU0021C020CBSMsg.SVC_KEI_NO);

		// マンション物件コードがNULLはネット、NULLでない場合はマンション
		if (kojiakMsg.isNull(KU0011ETMsg.MANSION_BUKKEN_CD))
		{
			// 工事案件＜eo光ネット＞更新
			if(!telDslKU0021(inCBSMsg, kojiakNo))
			{
				return false;
			}
		}
		else
		{
			// 工事案件＜eo光ネットマンション＞更新
			if(!telDslKU0061(inCBSMsg, kojiakNo))
			{
				return false;
			}
		}
			
		// サービス契約＿工事案件更新
		if(!dslKU0081(inCBSMsg, kojiakNo, svcKeiNo))
		{
			return false;
		}
		// 正常終了
		return true;
	}
	
	/**
	 * 工事中の工事案件(NET+TEL→NET) 
	 * 振舞パターンN
	 * @param inCBSMsg
	 * @param inContext
	 * @param kojiakMsg
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean dslptn15(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakMsg) throws CAANException
	{
		// 工事案件番号取得
		String kojiakNo = kojiakMsg.getString(KU0011ETMsg.KOJIAK_NO);
		// サービス契約番号取得
		String svcKeiNo = inCBSMsg.getString(EKU0021C020CBSMsg.SVC_KEI_NO);

		// 工事案件更新
		if(!telDslKU0011(inCBSMsg, kojiakNo))
		{
			return false;
		}
		
		// マンション物件コードがNULLはネット、NULLでない場合はマンション
		if (kojiakMsg.isNull(KU0011ETMsg.MANSION_BUKKEN_CD))
		{
			// 工事案件＜eo光ネット＞更新
			if(!telDslKU0021(inCBSMsg, kojiakNo))
			{
				return false;
			}
		}
		else
		{
			// 工事案件＜eo光ネットマンション＞更新
			if(!telDslKU0061(inCBSMsg, kojiakNo))
			{
				return false;
			}
		}
		
		// サービス契約＿工事案件更新
		if(!dslKU0081(inCBSMsg, kojiakNo, svcKeiNo))
		{
			return false;
		}
		// 正常終了
		return true;
	}
	
	/**
	 * 最新基本工事の工事案件(NET+TEL→NET) 
	 * 振舞パターンO
	 * @param inCBSMsg
	 * @param inContext
	 * @param kojiakMsg
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean dslptn16(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakMsg) throws CAANException
	{
		return dslptn15(inCBSMsg, inContext, kojiakMsg);
	}

	/**
	 * 回線撤去(提供中サービスなし） 
	 * 振舞パターンP
	 * @param inCBSMsg
	 * @param inContext
	 * @param kojiakMsg
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean dslptn17(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakMsg) throws CAANException
	{
		// 工事案件番号採番・設定
		String kojiak_no = JKUejbNumberParts.getKojiakNoString(kojiakMsg.getString(KU0011ETMsg.KOJIAK_NO), inCBSMsg);
		
		// 工事案件番号を採番できなかった場合はエラー
		if(null == kojiak_no || "".equals(kojiak_no))
		{
			inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_NUMBER);
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}
		// CBSメッセージに設定
		inCBSMsg.set(EKU0021C020CBSMsg.KOJIAK_NO, kojiak_no);

		// ANK-4315-00-00 MOD START
		// 工事案件種別コード取得・設定
	//	String kojiakSbtCd = JKUModelCommon.getKojiakSbtCd(inCBSMsg.getString(EKU0021C020CBSMsg.KOJI_UK_CD)
	//			, inCBSMsg.getString(EKU0021C020CBSMsg.KOJI_UK_DTAIL_CD)
	//			, inCBSMsg.getString(EKU0021C020CBSMsg.MENKAIHAT_ANKEN_NO)
	//			, null
	//			, inCBSMsg.getString(EKU0021C020CBSMsg.PRC_GRP_CD)
	//			, null
	//			, null);		
		String kojiakSbtCd = JKUModelCommon.getKojiakSbtCd(inCBSMsg.getString(EKU0021C020CBSMsg.KOJI_UK_CD)
				, inCBSMsg.getString(EKU0021C020CBSMsg.KOJI_UK_DTAIL_CD)
				, inCBSMsg.getString(EKU0021C020CBSMsg.MENKAIHAT_ANKEN_NO)
				, null
				, inCBSMsg.getString(EKU0021C020CBSMsg.PRC_GRP_CD)
				, null
				, null
				, null);
		// ANK-4315-00-00 MOD END
		// CBSメッセージに設定
		inCBSMsg.set(EKU0021C020CBSMsg.KOJIAK_SBT_CD, kojiakSbtCd);
		
		// 同時代表工事案件番号の取得
		String dojiDaihyoKojiakNo = JKUModelCommon.getSimRepKojiakNoNotFindByPk(
				inCBSMsg.getString(EKU0021C020CBSMsg.KOJIAK_SBT_CD), inCBSMsg.getString(EKU0021C020CBSMsg.PRC_GRP_CD)
				, null, null, null, inCBSMsg.getString(EKU0021C020CBSMsg.SVC_KEI_KAISEN_UCWK_NO));
		
// ANK-4038-00-00 ADD START
		// サービス契約回線内訳情報の取得
		CAANMsg svkeiKaisenUwMsg = JKUModelCommon.getSvkeiKaisenUwInfo(inCBSMsg.getString(EKU0021C020CBSMsg.SVC_KEI_KAISEN_UCWK_NO));
// ANK-4038-00-00 ADD END
		// 工事案件登録
// ANK-4038-00-00 MOD START
//		if(!tekkyoKU0011(inCBSMsg, kojiakMsg, dojiDaihyoKojiakNo))
		if(!tekkyoKU0011(inCBSMsg, kojiakMsg, dojiDaihyoKojiakNo, svkeiKaisenUwMsg))
// ANK-4038-00-00 MOD END
		{
			return false;
		}
		
		// 同時代表工事案件の更新処理
		if(!JKUModelCommon.updateDojiDaihyoKojiak(kojiak_no, dojiDaihyoKojiakNo, inCBSMsg.getString(EKU0021C020CBSMsg.OPERATEDATETIME), 
				inCBSMsg.getString(EKU0021C020CBSMsg.OPERATORID), inContext, true))
		{
			// 申込書番号エラーを設定
			inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_HAITA);
			// ステータスを設定
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}
		
		// 工事案件＜eo光ネット＞登録
		if(!tekkyoKU0021(inCBSMsg))
		{
			return false;
		}

		// サービス契約＿工事案件登録
		if(!tekkyoSvcNonKU0081(inCBSMsg, kojiakMsg.getString(KU0011ETMsg.RNKI_SVC_KEI_NO)))
		{
			return false;
		}

		// 申込明細登録
		if(!tekkyoKU0091(inCBSMsg))
		{
			return false;
		}
		
		// 工事案件対象宅内機器登録
		if(!tekkyoKU0141(inCBSMsg))
		{
			return false;
		}

		return true;
	}
	
	/**
	 * 受付中までの同一回線内サービス契約変更（NET連携→NET連携) 
	 * 振舞パターンQ
	 * @param inCBSMsg
	 * @param inContext
	 * @param kojiakMsg
	 * @param svcKeiKojiakMsgList
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean dslptn18(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakMsg, CAANMsg[] svcKeiKojiakMsgList) throws CAANException
	{
		// 工事案件番号取得
		String kojiakNo = kojiakMsg.getString(KU0011ETMsg.KOJIAK_NO);
		// サービス契約番号取得
		String svcKeiNo = inCBSMsg.getString(EKU0021C020CBSMsg.SVC_KEI_NO);

		// 切替先のインターネットサービスを取得
		CAANMsg swchKU0081 = getSwchSvcKei(svcKeiKojiakMsgList, svcKeiNo, JKUStrConst.CD00130_NET);
		if(null == swchKU0081)
		{
			return false;
		}
		
		// 切替先の情報を取得しマップにセットする
		HashMap<String, String> mapKK0081 = new HashMap<String, String>();
		HashMap<String, String> mapCK0011 = new HashMap<String, String>();
		if(!setSwchMap(inCBSMsg, swchKU0081, mapKK0081, mapCK0011))
		{
			return false;
		}

		// サービス追加（工事なし）の工事案件情報を取得
		CAANMsg swchKU0011Msg = getAddMotoKojiak(inCBSMsg, swchKU0081.getString(KU0081ETMsg.SVC_KEI_NO), kojiakNo, kojiakMsg, true);
		if(null == swchKU0011Msg)
		{
			return false;
		}
		
		
		// 工事案件更新
		if(!netCancelNetKU0011(inCBSMsg, kojiakNo, mapKK0081, mapCK0011, swchKU0081))
		{
			return false;
		}
		
		// 工事案件＜eo光ネット＞更新
		if(!netDslSwchNetKU0021(inCBSMsg, kojiakNo, swchKU0011Msg))
		{
			return false;
		}
		
		// サービス契約＿工事案件更新
		if(!dslKU0081(inCBSMsg, kojiakNo, svcKeiNo))
		{
			return false;
		}
		
		// 先行設計更新
		if(!netCancelTelKU0101(inCBSMsg, kojiakNo, mapKK0081, mapCK0011, swchKU0081))
		{
			return false;
		}
		
		// 正常終了
		return true;
	}
	
	/**
	 * 切替対象のサービス契約＿工事案件情報を取得します。
	 * @param svcKeiKojiakMsgList
	 * @param svcKeiNo
	 * @param swchSvcCd
	 * @return CAANMsg
	 */
	private CAANMsg getSwchSvcKei(CAANMsg[] svcKeiKojiakMsgList, String svcKeiNo, String swchSvcCd)
	{
		for(CAANMsg svcKeiKojiakMsg : svcKeiKojiakMsgList)
		{
			if(!svcKeiKojiakMsg.getString(KU0081ETMsg.SVC_KEI_NO).equals(svcKeiNo)
					&& swchSvcCd.equals(svcKeiKojiakMsg.getString(KU0081ETMsg.SVC_CD)))
			{
				return svcKeiKojiakMsg;
			}
		}
		return null;
	}
	
	/**
	 * 切替対象のサービス契約、お客様情報をマップにセットします。
	 * @param inCBSMsg
	 * @param swchKU0081
	 * @param mapKK0081
	 * @param mapCK0011
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean setSwchMap(CAANMsg inCBSMsg, CAANMsg swchKU0081, HashMap<String, String> mapKK0081,
			HashMap<String, String> mapCK0011) throws CAANException
	{

		// サービス契約情報を取得
		HashMap<String, String> rtnMapKK = JKUModelCommon.getSvcKeiInfo(swchKU0081.getString(KU0081ETMsg.SVC_KEI_NO));
		
		// サービス契約情報が取得できない場合
		if(null == rtnMapKK)
		{
			inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_SVCKEI);
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}
		// 課金先情報が取得できない場合
		if(null == rtnMapKK.get(KK0321ETMsg.SEIKY_KEI_NO))
		{
			inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_KKNS);
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}
		// 正常時、返却マップに格納
		mapKK0081.putAll(rtnMapKK);

		// SYSIDが異なる場合はお客様情報を取得
		if(!inCBSMsg.getString(EKU0021C020CBSMsg.SYSID).equals(swchKU0081.getString(KU0081ETMsg.SYSID)))
		{
			
			// お客様情報を取得
			HashMap<String, String> rtnMapCK = JKUModelCommon.getCustInfo(swchKU0081.getString(KU0081ETMsg.SYSID));
			// お客様情報が取得できない場合
			if(null == rtnMapCK)
			{
				inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_CUST);
				inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
				return false;
			}
			// 正常時、返却マップに格納
			mapCK0011.putAll(rtnMapCK);
		}
		
		return true;
	}
	
	/**
	 * 切替対象のプラン変更(工事なし)の工事案件情報を取得します
	 * @param inCBSMsg
	 * @param rnkiSvcKeiNo
	 * @param kojiakNo
	 * @param kojiakMsg
	 * @param kojinFlg
	 * @return CAANMsg
	 */
	private CAANMsg getAddMotoKojiak(CAANMsg inCBSMsg, String rnkiSvcKeiNo, String kojiakNo, CAANMsg kojiakMsg, boolean kojinFlg)
	{
		// 更新対象工事案件番号から追加工事を探す場合の工事案件種別
		String[] addMotoKojiList = new String[]{
				JKUStrConst.CD00577_AD_CHG_TEKKYO
				, JKUStrConst.CD00577_TEKKYO_DSL
				, JKUStrConst.CD00577_KYOSEI_DSL
				, JKUStrConst.CD00577_ISETSU
				, JKUStrConst.CD00577_EOH_TEL_TNKJ};
		
		String addMotoKojiakNo = kojiakNo;
		
		for(String kojiakSbt : addMotoKojiList)
		{
			// リストに格納された工事案件種別の場合は、更新対象工事案件番号から追加工事を探す
			if(kojiakSbt.equals(kojiakMsg.getString(KU0011ETMsg.KOJIAK_SBT_CD)))
			{
				addMotoKojiakNo = kojiakMsg.getString(KU0011ETMsg.UPD_TRGT_KOJIAK_NO);
			}
		}
		
		// サービス追加（工事なし）の工事案件情報を取得
		CAANMsg swchKU0011Msg = JKUModelCommon.getSvcAddKojiNonKojiakMsg(rnkiSvcKeiNo, addMotoKojiakNo, kojinFlg);

		// サービス追加（工事なし）の工事案件情報が取得できない場合
		if(null == swchKU0011Msg)
		{
			inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_SVCADD_KOJINON);
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return null;
		}
		
		return swchKU0011Msg;
	}
	
	/**
	 * 撤去_工事案件FP
	 * @param inCBSMsg
	 * @param inputMsgKU0011
	 * @param dojiDaihyoKojiakNo
	 * @param svkeiKaisenUwMsg
	 * @return boolean
	 * @throws CAANException
	 */
// ANK-4038-00-00 MOD START
//	private boolean tekkyoKU0011(CAANMsg inCBSMsg, CAANMsg inputMsgKU0011, String dojiDaihyoKojiakNo) throws CAANException
	private boolean tekkyoKU0011(CAANMsg inCBSMsg, CAANMsg inputMsgKU0011, String dojiDaihyoKojiakNo, CAANMsg svkeiKaisenUwMsg) throws CAANException
// ANK-4038-00-00 MOD END
	{
		JKUejbKU0011SecProc sp0011 = new JKUejbKU0011SecProc();
		
		// 工事案件のETメッセージを作成
		CAANMsg msgKU0011 = new CAANMsg(KU0011ETMsg.class.getName());

		// 以下更新項目設定
		// 工事案件番号
		msgKU0011.set(KU0011ETMsg.KOJIAK_NO, inCBSMsg.getString(EKU0021C020CBSMsg.KOJIAK_NO));
		// 工事案件ステータス
		msgKU0011.set(KU0011ETMsg.KOJIAK_STAT, JKUStrConst.CD00474_UK_ZM);
		// SYSID
		msgKU0011.set(KU0011ETMsg.SYSID, inCBSMsg.getString(EKU0021C020CBSMsg.SYSID));
		// 連携サービス契約番号
		msgKU0011.set(KU0011ETMsg.RNKI_SVC_KEI_NO, inputMsgKU0011.getString(KU0011ETMsg.RNKI_SVC_KEI_NO));
		// 請求契約番号
		msgKU0011.set(KU0011ETMsg.SEIKY_KEI_NO, inCBSMsg.getString(EKU0021C020CBSMsg.SEIKY_KEI_NO));
		// 工事案件種別コード
		msgKU0011.set(KU0011ETMsg.KOJIAK_SBT_CD, inCBSMsg.getString(EKU0021C020CBSMsg.KOJIAK_SBT_CD));
		// 料金グループコード
		msgKU0011.set(KU0011ETMsg.PRC_GRP_CD, inCBSMsg.getString(EKU0021C020CBSMsg.PRC_GRP_CD));
		// 料金コースコード
		msgKU0011.set(KU0011ETMsg.PCRS_CD, inCBSMsg.getString(EKU0021C020CBSMsg.PCRS_CD));
		// 料金プランコード
		msgKU0011.set(KU0011ETMsg.PPLAN_CD, inCBSMsg.getString(EKU0021C020CBSMsg.PPLAN_CD));
		// 割引タイプコード
		msgKU0011.set(KU0011ETMsg.WRIB_TYPE_CD, inCBSMsg.getString(EKU0021C020CBSMsg.WRIB_TYPE_CD));
		// 更新対象工事案件番号
		msgKU0011.set(KU0011ETMsg.UPD_TRGT_KOJIAK_NO, inputMsgKU0011.getString(KU0011ETMsg.KOJIAK_NO));
		// 申込受付年月日
		msgKU0011.set(KU0011ETMsg.MSKM_UK_YMD, JKUModelCommon.getOpeDate(new CAANMsg(), null));
		// 申込書到着年月日
		msgKU0011.set(KU0011ETMsg.MSKMSHO_ARIV_YMD, JKUModelCommon.getOpeDate(inCBSMsg, null));
		// 場所番号
		msgKU0011.set(KU0011ETMsg.PLACE_NO, inCBSMsg.getString(EKU0021C020CBSMsg.PLACE_NO));
		// 工事希望年月日
		msgKU0011.set(KU0011ETMsg.KOJI_KIBO_YMD, inCBSMsg.getString(EKU0021C020CBSMsg.KOJI_KIBO_YMD));
		
		// 工事案件種別コードが住所変更(撤去)の場合
		if(JKUStrConst.CD00577_AD_CHG_TEKKYO.equals(inCBSMsg.getString(EKU0021C020CBSMsg.KOJIAK_SBT_CD)))
		{
			// 転宅先住所コード
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_AD_CD, inCBSMsg.getString(EKU0021C020CBSMsg.TENTAKU_SAKI_AD_CD));
			// 転宅先郵便番号
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_PCD, inCBSMsg.getString(EKU0021C020CBSMsg.TENTAKU_SAKI_PCD));
			// 転宅先都道府県名
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_STATE_NM, inCBSMsg.getString(EKU0021C020CBSMsg.TENTAKU_SAKI_STATE_NM));
			// 転宅先市区町村名
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_CITY_NM, inCBSMsg.getString(EKU0021C020CBSMsg.TENTAKU_SAKI_CITY_NM));
			// 転宅先大字通称名
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_OAZTSU_NM, inCBSMsg.getString(EKU0021C020CBSMsg.TENTAKU_SAKI_OAZTSU_NM));
			// 転宅先字丁目名
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_AZCHO_NM, inCBSMsg.getString(EKU0021C020CBSMsg.TENTAKU_SAKI_AZCHO_NM));
			// 転宅先住所番地号
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_AD_BNCHIGO, inCBSMsg.getString(EKU0021C020CBSMsg.TENTAKU_SAKI_AD_BNCHIGO));
			// 転宅先住所補記・建物名
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_ADRTTM, inCBSMsg.getString(EKU0021C020CBSMsg.TENTAKU_SAKI_ADRTTM));
			// 転宅先住所補記・部屋番号
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_ADRRM, inCBSMsg.getString(EKU0021C020CBSMsg.TENTAKU_SAKI_ADRRM));
			
			// 転宅前住所コード
			msgKU0011.set(KU0011ETMsg.TENTAKU_BF_AD_CD, inCBSMsg.getString(EKU0021C020CBSMsg.SETPLACE_AD_CD));
			// 転宅前郵便番号
			msgKU0011.set(KU0011ETMsg.TENTAKU_BF_PCD, inCBSMsg.getString(EKU0021C020CBSMsg.SETPLACE_PCD));
			// 転宅前都道府県名
			msgKU0011.set(KU0011ETMsg.TENTAKU_BF_STATE_NM, inCBSMsg.getString(EKU0021C020CBSMsg.SETPLACE_STATE_NM));
			// 転宅前市区町村名
			msgKU0011.set(KU0011ETMsg.TENTAKU_BF_CITY_NM, inCBSMsg.getString(EKU0021C020CBSMsg.SETPLACE_CITY_NM));
			// 転宅前大字通称名
			msgKU0011.set(KU0011ETMsg.TENTAKU_BF_OAZTSU_NM, inCBSMsg.getString(EKU0021C020CBSMsg.SETPLACE_OAZTSU_NM));
			// 転宅前字丁目名
			msgKU0011.set(KU0011ETMsg.TENTAKU_BF_AZCHO_NM, inCBSMsg.getString(EKU0021C020CBSMsg.SETPLACE_AZCHO_NM));
			// 転宅前住所番地号
			msgKU0011.set(KU0011ETMsg.TENTAKU_BF_AD_BNCHIGO, inCBSMsg.getString(EKU0021C020CBSMsg.SETPLACE_AD_BNCHIGO));
			// 転宅前住所補記・建物名
			msgKU0011.set(KU0011ETMsg.TENTAKU_BF_ADRTTM, inCBSMsg.getString(EKU0021C020CBSMsg.SETPLACE_ADRTTM));
			// 転宅前住所補記・部屋番号
			msgKU0011.set(KU0011ETMsg.TENTAKU_BF_ADRRM, inCBSMsg.getString(EKU0021C020CBSMsg.SETPLACE_ADRRM));
		}
		else
		{
			// 転宅先住所コード
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_AD_CD, inCBSMsg.getString(EKU0021C020CBSMsg.SETPLACE_AD_CD));
			// 転宅先郵便番号
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_PCD, inCBSMsg.getString(EKU0021C020CBSMsg.SETPLACE_PCD));
			// 転宅先都道府県名
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_STATE_NM, inCBSMsg.getString(EKU0021C020CBSMsg.SETPLACE_STATE_NM));
			// 転宅先市区町村名
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_CITY_NM, inCBSMsg.getString(EKU0021C020CBSMsg.SETPLACE_CITY_NM));
			// 転宅先大字通称名
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_OAZTSU_NM, inCBSMsg.getString(EKU0021C020CBSMsg.SETPLACE_OAZTSU_NM));
			// 転宅先字丁目名
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_AZCHO_NM, inCBSMsg.getString(EKU0021C020CBSMsg.SETPLACE_AZCHO_NM));
			// 転宅先住所番地号
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_AD_BNCHIGO, inCBSMsg.getString(EKU0021C020CBSMsg.SETPLACE_AD_BNCHIGO));
			// 転宅先住所補記・建物名
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_ADRTTM, inCBSMsg.getString(EKU0021C020CBSMsg.SETPLACE_ADRTTM));
			// 転宅先住所補記・部屋番号
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_ADRRM, inCBSMsg.getString(EKU0021C020CBSMsg.SETPLACE_ADRRM));
		}
		
		// 申込者名
		msgKU0011.set(KU0011ETMsg.MSKMSHA_NM, inCBSMsg.getString(EKU0021C020CBSMsg.MSKMSHA_NM));
		// お客様名
		msgKU0011.set(KU0011ETMsg.CUST_NM, inCBSMsg.getString(EKU0021C020CBSMsg.CUST_NM));
		// お客様カナ名
		msgKU0011.set(KU0011ETMsg.CUST_KANA, inCBSMsg.getString(EKU0021C020CBSMsg.CUST_KANA));
		// お客様自宅電話番号
		msgKU0011.set(KU0011ETMsg.CUST_HOME_TELNO, inCBSMsg.getString(EKU0021C020CBSMsg.CUST_HOME_TEL_NO));
		// お客様携帯電話番号
		msgKU0011.set(KU0011ETMsg.CUST_KTAI_TELNO, inCBSMsg.getString(EKU0021C020CBSMsg.CUST_KTAI_TEL_NO));
		// お客様連絡先電話番号
		msgKU0011.set(KU0011ETMsg.CUST_RRKS_TELNO, inCBSMsg.getString(EKU0021C020CBSMsg.CUST_RRKS_TEL_NO));
		// 連絡先勤務先名
		msgKU0011.set(KU0011ETMsg.RRKS_OFFC_NM, inCBSMsg.getString(EKU0021C020CBSMsg.RRKS_OFFC_NM));
		// 契約者住所コード
		msgKU0011.set(KU0011ETMsg.KEISHA_AD_CD, inCBSMsg.getString(EKU0021C020CBSMsg.KEISHA_AD_CD));
		// 契約者郵便番号
		msgKU0011.set(KU0011ETMsg.KEISHA_PCD, inCBSMsg.getString(EKU0021C020CBSMsg.KEISHA_PCD));
		// 契約者都道府県名
		msgKU0011.set(KU0011ETMsg.KEISHA_STATE_NM, inCBSMsg.getString(EKU0021C020CBSMsg.KEISHA_STATE_NM));
		// 契約者市区町村名
		msgKU0011.set(KU0011ETMsg.KEISHA_CITY_NM, inCBSMsg.getString(EKU0021C020CBSMsg.KEISHA_CITY_NM));
		// 契約者大字通称名
		msgKU0011.set(KU0011ETMsg.KEISHA_OAZTSU_NM, inCBSMsg.getString(EKU0021C020CBSMsg.KEISHA_OAZTSU_NM));
		// 契約者字丁目名
		msgKU0011.set(KU0011ETMsg.KEISHA_AZCHO_NM, inCBSMsg.getString(EKU0021C020CBSMsg.KEISHA_AZCHO_NM));
		// 契約者住所番地号
		msgKU0011.set(KU0011ETMsg.KEISHA_AD_BNCHIGO, inCBSMsg.getString(EKU0021C020CBSMsg.KEISHA_AD_BNCHIGO));
		// 契約者住所補記・建物名
		msgKU0011.set(KU0011ETMsg.KEISHA_ADRTTM, inCBSMsg.getString(EKU0021C020CBSMsg.KEISHA_ADRTTM));
		// 契約者住所補記・部屋番号
		msgKU0011.set(KU0011ETMsg.KEISHA_ADRRM, inCBSMsg.getString(EKU0021C020CBSMsg.KEISHA_ADRRM));
		// 契約者住所手動入力フラグ
		msgKU0011.set(KU0011ETMsg.KEISHA_AD_MAN_INPUT_FLG, inCBSMsg.getString(EKU0021C020CBSMsg.KEISHA_AD_MAN_INPUT_FLG));
		// 住所形態コード
		msgKU0011.set(KU0011ETMsg.AD_FORM_CD, inCBSMsg.getString(EKU0021C020CBSMsg.AD_FORM_CD));
		// 工事先住所未確定フラグ
		msgKU0011.set(KU0011ETMsg.KOJI_SAKI_AD_MI_FIX_FLG, inCBSMsg.getString(EKU0021C020CBSMsg.KOJI_SAKI_AD_MI_FIX_FLG));
		// 経度
		msgKU0011.set(KU0011ETMsg.LGTD, inputMsgKU0011.getString(KU0011ETMsg.LGTD));
		// 緯度
		msgKU0011.set(KU0011ETMsg.LTTD, inputMsgKU0011.getString(KU0011ETMsg.LTTD));
		// X座標6系
		msgKU0011.set(KU0011ETMsg.XZAHYO_6, inputMsgKU0011.getString(KU0011ETMsg.XZAHYO_6));
		// Y座標6系
		msgKU0011.set(KU0011ETMsg.YZAHYO_6, inputMsgKU0011.getString(KU0011ETMsg.YZAHYO_6));
		// X座標5系
		msgKU0011.set(KU0011ETMsg.XZAHYO_5, inputMsgKU0011.getString(KU0011ETMsg.XZAHYO_5));
		// Y座標5系
		msgKU0011.set(KU0011ETMsg.YZAHYO_5, inputMsgKU0011.getString(KU0011ETMsg.YZAHYO_5));
		// 座標補正有無
		msgKU0011.set(KU0011ETMsg.ZAHYO_HOSEI_UM, inputMsgKU0011.getString(KU0011ETMsg.ZAHYO_HOSEI_UM));
		// 入居階数コード
		msgKU0011.set(KU0011ETMsg.NYUKYO_FLR_CNT_CD, inCBSMsg.getString(EKU0021C020CBSMsg.NYUKYO_FLR_CNT_CD));
		// 建築階数コード
		msgKU0011.set(KU0011ETMsg.KCKU_FLR_CNT_CD, inCBSMsg.getString(EKU0021C020CBSMsg.KCKU_FLR_CNT_CD));
		// 方角コード1
		msgKU0011.set(KU0011ETMsg.DIRECTION_CD_1, inCBSMsg.getString(EKU0021C020CBSMsg.DIRECTION_CD_1));
		// 方角コード2
		msgKU0011.set(KU0011ETMsg.DIRECTION_CD_2, inCBSMsg.getString(EKU0021C020CBSMsg.DIRECTION_CD_2));
		// 同時代表工事案件番号
		msgKU0011.set(KU0011ETMsg.DOJI_DAIHYO_KOJIAK_NO, dojiDaihyoKojiakNo);
		// 電話連絡希望年月日
		msgKU0011.set(KU0011ETMsg.TEL_RRK_KIBO_YMD, inCBSMsg.getString(EKU0021C020CBSMsg.TEL_RRK_KIBO_YMD));
		// 電話連絡希望時間帯コード
		msgKU0011.set(KU0011ETMsg.TEL_RRK_KIBO_TIME_CD, inCBSMsg.getString(EKU0021C020CBSMsg.TEL_RRK_KIBO_TIME_CD));
		// 宅内調査希望アポ期限年月日
		msgKU0011.set(KU0011ETMsg.TAKCHO_KIBO_APO_KIGEN_YMD, inCBSMsg.getString(EKU0021C020CBSMsg.TAKCHO_KIBO_APO_KIGEN_YMD));
		// 宅内工事希望アポ期限年月日
		msgKU0011.set(KU0011ETMsg.TNKJ_KIBO_APO_KIGEN_YMD, inCBSMsg.getString(EKU0021C020CBSMsg.TNKJ_KIBO_APO_KIGEN_YMD));
		// 工事アポ連絡先指定コード
		msgKU0011.set(KU0011ETMsg.KOJI_APO_RRKS_SHITEI_CD, inCBSMsg.getString(EKU0021C020CBSMsg.KOJI_APO_RRKS_SHITEI_CD));
		// 工事アポ連絡先電話番号
		msgKU0011.set(KU0011ETMsg.KOJI_APO_RRKS_TELNO, inCBSMsg.getString(EKU0021C020CBSMsg.KOJI_APO_RRKS_TELNO));
		// 連絡手段コード
		msgKU0011.set(KU0011ETMsg.RRK_WAY_CD, inCBSMsg.getString(EKU0021C020CBSMsg.RRK_WAY_CD));
		// 連絡手段補記
		msgKU0011.set(KU0011ETMsg.RRK_WAY_HOKI, inCBSMsg.getString(EKU0021C020CBSMsg.RRK_WAY_HOKI));
		// 工事受付契機異動区分
		msgKU0011.set(KU0011ETMsg.KOJI_UK_OPTNTY_IDO_DIV, inCBSMsg.getString(EKU0021C020CBSMsg.KOJI_UK_OPTNTY_IDO_DIV));
		// 工事受付契機異動年月日時分秒
		msgKU0011.set(KU0011ETMsg.KOJI_UK_OPTNTY_IDO_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.KOJI_UK_OPTNTY_IDO_DTM));
		// 工事案件受付ユーザーID
		msgKU0011.set(KU0011ETMsg.KOJIAK_UK_USER_ID, inCBSMsg.getString(EKU0021C020CBSMsg.OPERATORID));
		// 工事案件連絡事項
		msgKU0011.set(KU0011ETMsg.KOJIAK_RRK_JIKO, inCBSMsg.getString(EKU0021C020CBSMsg.KOJIAK_BIKO));
		// 工事案件備考1
		msgKU0011.set(KU0011ETMsg.KOJIAK_BIKO_1, inCBSMsg.getString(EKU0021C020CBSMsg.KOJIAK_BIKO_1));
		// 工事案件備考2
		msgKU0011.set(KU0011ETMsg.KOJIAK_BIKO_2, inCBSMsg.getString(EKU0021C020CBSMsg.KOJIAK_BIKO_2));
		// 関電営業所コード
		msgKU0011.set(KU0011ETMsg.KEPCO_BUSIOFFICE_CD, inputMsgKU0011.getString(KU0011ETMsg.KEPCO_BUSIOFFICE_CD));
		
		// フラグ初期化処理
		// 最新基本工事フラグ,「最新基本工事でない」を設定
		msgKU0011.set(KU0011ETMsg.RCNT_KIHON_KOJI_FLG, JKUStrConst.CD00882_RCNT_KIHON_KOJI_NON);
		// 配送作成済みフラグ,「配送未作成」を設定
		msgKU0011.set(KU0011ETMsg.HAISO_SAKSEI_ZUMI_FLG, JKUStrConst.CD00898_HAISO_MI_SAKUSEI);
		// FCDS変更連携要否,「否」を設定
		msgKU0011.set(KU0011ETMsg.FCDS_CHGE_RNKI_YH, JKUStrConst.KH_FAIL);
		// FCDS解約連携要否,「否」を設定
		msgKU0011.set(KU0011ETMsg.FCDS_DSL_RNKI_YH, JKUStrConst.KH_FAIL);
		// Genesis変更連携要否,「否」を設定
		msgKU0011.set(KU0011ETMsg.GENESIS_CHGE_RNKI_YH, JKUStrConst.KH_FAIL);
		// Genesis解約連携要否,「否」を設定
		msgKU0011.set(KU0011ETMsg.GENESIS_DSL_RNKI_YH, JKUStrConst.KH_FAIL);
		// OPMS変更連携要否,「否」を設定
		msgKU0011.set(KU0011ETMsg.OPMS_CHGE_RNKI_YH, JKUStrConst.KH_FAIL);
		// 強制解約工事案件作成要否,「否」を設定
		msgKU0011.set(KU0011ETMsg.KSI_DSL_KOJIAK_SAKSEI_YH, JKUStrConst.KH_FAIL);
		// FCDS連携種別コード,「未連携」を設定
		msgKU0011.set(KU0011ETMsg.FCDS_RNKI_SBT_CD, JKUStrConst.CD00699_MIRENKEI);
		// Genesis連携種別コード,「未連携」を設定
		msgKU0011.set(KU0011ETMsg.GENESIS_RNKI_SBT_CD, JKUStrConst.CD00699_MIRENKEI);
		// 最終応答結果コード,「結果未受信」を設定
		msgKU0011.set(KU0011ETMsg.LAST_RSP_RSLT_CD, JKUStrConst.CD00694_LAST_RSP_MI_RCV);
		
		// 登録年月日時分秒
		msgKU0011.set(KU0011ETMsg.ADD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.ADD_DTM)); 
		// 登録オペレータアカウント
		msgKU0011.set(KU0011ETMsg.ADD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.ADD_OPEACNT)); 
		// 更新年月日時分秒
		msgKU0011.set(KU0011ETMsg.UPD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_DTM)); 
		// 更新オペレータアカウント
		msgKU0011.set(KU0011ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_OPEACNT)); 
		// 無効フラグ
		msgKU0011.set(KU0011ETMsg.MK_FLG, inCBSMsg.getString(EKU0021C020CBSMsg.MK_FLG)); 

// ANK-3136-00-00 ADD START
		// 工事案件種別コードが撤去(解約)の場合
		if(JKUStrConst.CD00577_TEKKYO_DSL.equals(inCBSMsg.getString(EKU0021C020CBSMsg.KOJIAK_SBT_CD)))
		{
			// 設備流用有無
			msgKU0011.set(KU0011ETMsg.EQUIP_RYUYO_UM, inCBSMsg.getString(EKU0021C020CBSMsg.EQUIP_RYUYO_UM));
			// 設備流用工事完了希望年月日
			msgKU0011.set(KU0011ETMsg.SBRY_KJ_FIN_KIBOYMD, inCBSMsg.getString(EKU0021C020CBSMsg.SBRY_KJ_FIN_KIBOYMD));
		}
		// 他システム連携_宅工事連絡先氏名
		msgKU0011.set(KU0011ETMsg.TSYRN_KJ_RRKS_NM, inCBSMsg.getString(EKU0021C020CBSMsg.TSYRN_KJ_RRKS_NM));
		// 他システム連携_宅工事連絡先電話番号
		msgKU0011.set(KU0011ETMsg.TSYRN_KJ_RRKS_TLN, inCBSMsg.getString(EKU0021C020CBSMsg.TSYRN_KJ_RRKS_TLN));
		// 他システム連携_宅内調査時連絡先氏名
		msgKU0011.set(KU0011ETMsg.TSYRN_TAKCHO_JI_RRKS_NM, inCBSMsg.getString(EKU0021C020CBSMsg.TSYRN_TAKCHO_JI_RRKS_NM));
		// 他システム連携_宅内調査時連絡先電話番号
		msgKU0011.set(KU0011ETMsg.TSYRN_TAKCHO_JI_RRKS_TLN, inCBSMsg.getString(EKU0021C020CBSMsg.TSYRN_TAKCHO_JI_RRKS_TLN));
		// 他システム連携_連絡希望日時
		msgKU0011.set(KU0011ETMsg.TSYRN_RRK_KIBO_DATE, inCBSMsg.getString(EKU0021C020CBSMsg.TSYRN_RRK_KIBO_DATE));
		// 他システム連携_工事費用
		msgKU0011.set(KU0011ETMsg.TSYRN_KOJI_HI, inCBSMsg.getString(EKU0021C020CBSMsg.TSYRN_KOJI_HI));
		// 他システム連携_宅内調査要否
		msgKU0011.set(KU0011ETMsg.TSYRN_TAKCHO_YH, inCBSMsg.getString(EKU0021C020CBSMsg.TSYRN_TAKCHO_YH));
		// 他システム連携_承諾書要否
		msgKU0011.set(KU0011ETMsg.TSYRN_SDAKS_YH, inCBSMsg.getString(EKU0021C020CBSMsg.TSYRN_SDAKS_YH));
		// 他システム連携_立会者名
		msgKU0011.set(KU0011ETMsg.TSYRN_TACHIAISHA_NM, inCBSMsg.getString(EKU0021C020CBSMsg.TSYRN_TACHIAISHA_NM));
		// 他システム連携_引越し施策要否
		msgKU0011.set(KU0011ETMsg.TSYRN_HKKS_SISAK_YH, inCBSMsg.getString(EKU0021C020CBSMsg.TSYRN_HKKS_SISAK_YH));
		// 他システム連携_建替時新設案件要否
		msgKU0011.set(KU0011ETMsg.TSYRN_TTK_JI_NSANK_YH, inCBSMsg.getString(EKU0021C020CBSMsg.TSYRN_TTK_JI_NSANK_YH));
		// 他システム連携_地図有無
		msgKU0011.set(KU0011ETMsg.TSYRN_MAP_UM, inCBSMsg.getString(EKU0021C020CBSMsg.TSYRN_MAP_UM));
		// 他システム連携_同時工事情報
		msgKU0011.set(KU0011ETMsg.TSYRN_DOJI_KOJI_INF, inCBSMsg.getString(EKU0021C020CBSMsg.TSYRN_DOJI_KOJI_INF));
		// 他システム連携_既存契約情報
		msgKU0011.set(KU0011ETMsg.TSYRN_KZN_KEI_INF, inCBSMsg.getString(EKU0021C020CBSMsg.TSYRN_KZN_KEI_INF));
		// 他システム連携_不備解消年月日
		msgKU0011.set(KU0011ETMsg.TSYRN_HBI_KAISHOU_YMD, inCBSMsg.getString(EKU0021C020CBSMsg.TSYRN_HBI_KAISHOU_YMD));
		// 他システム連携_キャンペーン情報
		msgKU0011.set(KU0011ETMsg.TSYRN_CAMPAIGN_INF, inCBSMsg.getString(EKU0021C020CBSMsg.TSYRN_CAMPAIGN_INF));
// ANK-3136-00-00 ADD END
// ANK-4038-00-00 ADD START
		if (svkeiKaisenUwMsg != null)
		{
			// 予定ローゼット設置状態コード
			msgKU0011.set(KU0011ETMsg.RSV_ROZETT_STC_STAT_CD, svkeiKaisenUwMsg.getString(KK0251ETMsg.ROZETT_STC_STAT_CD));
			// 予定コンセント設置内容コード
			msgKU0011.set(KU0011ETMsg.RSV_CONSNT_STC_NYO_CD, svkeiKaisenUwMsg.getString(KK0251ETMsg.CONSNT_STC_NYO_CD));
		}
// ANK-4038-00-00 ADD END
		
		// ANK-4269-00-00 ADD START
		HashMap<String, String> custMap = JKUModelCommon.getCustInfo(inCBSMsg.getString(EKU0021C020CBSMsg.SYSID));
		if (custMap != null) 
		{
			// スキームタイプコード
			msgKU0011.set(KU0011ETMsg.SCM_TYPE_CD, custMap.get(CK0011ETMsg.SCM_TYPE_CD));
			// スキーム事業者コード
			msgKU0011.set(KU0011ETMsg.SCM_JGS_CD, custMap.get(CK0011ETMsg.SCM_JGS_CD));
		}
		// ANK-4269-00-00 ADD END
		
		try
		{
			sp0011.create(msgKU0011);
		}
		catch (CAANCreateException cce)
		{
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.CREATE_DB_ERR);
			throw cce;
		}
		
		// 正常終了
		return true;

	}


	/**
	 * ネットキャンセルＴＥＬ切替_工事案件J
	 * @param inCBSMsg
	 * @param kojiakNo
	 * @param svcKeiMap
	 * @param custMap
	 * @param swchSvcKeiKojiakMsg
	 * @return boolean
	 * @throws CAANFinderException
	 */
	private boolean netCancelTelKU0011(CAANMsg inCBSMsg, String kojiakNo, HashMap<String, String> svcKeiMap
			, HashMap<String, String> custMap, CAANMsg swchSvcKeiKojiakMsg) throws CAANFinderException
	{
		JKUejbKU0011SecProc sp0011 = new JKUejbKU0011SecProc();

		// 工事案件のETメッセージを作成
		CAANMsg msgKU0011 = new CAANMsg(KU0011ETMsg.class.getName());

		// 以下更新項目設定

		// 工事案件番号
		msgKU0011.set(KU0011ETMsg.KOJIAK_NO, kojiakNo);
		// SYSID
		msgKU0011.set(KU0011ETMsg.SYSID, swchSvcKeiKojiakMsg.getString(KU0081ETMsg.SYSID));
		// 連携サービス契約番号
		msgKU0011.set(KU0011ETMsg.RNKI_SVC_KEI_NO, swchSvcKeiKojiakMsg.getString(KU0081ETMsg.SVC_KEI_NO));
		// 請求契約番号
		msgKU0011.set(KU0011ETMsg.SEIKY_KEI_NO, svcKeiMap.get(KK0321ETMsg.SEIKY_KEI_NO));
		// 料金グループコード
		msgKU0011.set(KU0011ETMsg.PRC_GRP_CD, svcKeiMap.get(KK0081ETMsg.PRC_GRP_CD));
		// 料金コースコード
		msgKU0011.set(KU0011ETMsg.PCRS_CD, svcKeiMap.get(KK0081ETMsg.PCRS_CD));
		// 料金プランコード
		msgKU0011.set(KU0011ETMsg.PPLAN_CD, svcKeiMap.get(KK0081ETMsg.PPLAN_CD));
		
		if(JKUStrConst.CD00284_SOKUWARI.equals(svcKeiMap.get(KK0841ETMsg.WRIB_TYPE_CD)))
		{
			// 割引タイプコード
			msgKU0011.set(KU0011ETMsg.WRIB_TYPE_CD, svcKeiMap.get(KK0841ETMsg.WRIB_TYPE_CD));
		}
		// 連絡先勤務先名
		msgKU0011.set(KU0011ETMsg.RRKS_OFFC_NM, svcKeiMap.get(KK0021ETMsg.RRKS_OFFC_NM));

		if(!custMap.isEmpty())
		{
			// お客様名
			msgKU0011.set(KU0011ETMsg.CUST_NM, custMap.get(CK0011ETMsg.CUST_NM));
			// お客様カナ名
			msgKU0011.set(KU0011ETMsg.CUST_KANA, custMap.get(CK0011ETMsg.CUST_KANA));
			// お客様携帯電話番号
			msgKU0011.set(KU0011ETMsg.CUST_KTAI_TELNO, custMap.get(KU0011ETMsg.CUST_KTAI_TELNO));
			// お客様連絡先電話番号
			msgKU0011.set(KU0011ETMsg.CUST_RRKS_TELNO, custMap.get(CK0011ETMsg.KEISHA_TELNO));
			// 契約者住所コード
			msgKU0011.set(KU0011ETMsg.KEISHA_AD_CD, custMap.get(CK0011ETMsg.KEISHA_AD_CD));
			// 契約者郵便番号
			msgKU0011.set(KU0011ETMsg.KEISHA_PCD, custMap.get(CK0011ETMsg.KEISHA_PCD));
			// 契約者都道府県名
			msgKU0011.set(KU0011ETMsg.KEISHA_STATE_NM, custMap.get(CK0011ETMsg.KEISHA_STATE_NM));
			// 契約者市区町村名
			msgKU0011.set(KU0011ETMsg.KEISHA_CITY_NM, custMap.get(CK0011ETMsg.KEISHA_CITY_NM));
			// 契約者大字通称名
			msgKU0011.set(KU0011ETMsg.KEISHA_OAZTSU_NM, custMap.get(CK0011ETMsg.KEISHA_OAZTSU_NM));
			// 契約者字丁目名
			msgKU0011.set(KU0011ETMsg.KEISHA_AZCHO_NM, custMap.get(CK0011ETMsg.KEISHA_AZCHO_NM));
			// 契約者住所番地号
			msgKU0011.set(KU0011ETMsg.KEISHA_AD_BNCHIGO, custMap.get(CK0011ETMsg.KEISHA_BNCHIGO));
			// 契約者住所補記・建物名
			msgKU0011.set(KU0011ETMsg.KEISHA_ADRTTM, custMap.get(CK0011ETMsg.KEISHA_ADRTTM));
			// 契約者住所補記・部屋番号
			msgKU0011.set(KU0011ETMsg.KEISHA_ADRRM, custMap.get(CK0011ETMsg.KEISHA_ADRRM));
			// 契約者住所手動入力フラグ
			msgKU0011.set(KU0011ETMsg.KEISHA_AD_MAN_INPUT_FLG, custMap.get(CK0011ETMsg.KEISHA_AD_MAN_INPUT_FLG));
			// ANK-4269-00-00 ADD START
			// スキームタイプコード
			msgKU0011.set(KU0011ETMsg.SCM_TYPE_CD, custMap.get(CK0011ETMsg.SCM_TYPE_CD));
			// スキーム事業者コード
			msgKU0011.set(KU0011ETMsg.SCM_JGS_CD, custMap.get(CK0011ETMsg.SCM_JGS_CD));
			// ANK-4269-00-00 ADD END
		}
		// 更新年月日時分秒
		msgKU0011.set(KU0011ETMsg.UPD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_DTM)); 
		// 更新オペレータアカウント
		msgKU0011.set(KU0011ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_OPEACNT)); 

		try
		{
			sp0011.update(msgKU0011);
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}
		
		// 正常終了
		return true;
	}


	/**
	 * ネットキャンセルネット切替_工事案件Q
	 * @param inCBSMsg
	 * @param kojiakNo
	 * @param svcKeiMap
	 * @param custMap
	 * @param svcKeiKojiakSwchMsg
	 * @return boolean
	 * @throws CAANFinderException
	 */
	private boolean netCancelNetKU0011(CAANMsg inCBSMsg, String kojiakNo, HashMap<String, String> svcKeiMap
			, HashMap<String, String> custMap, CAANMsg svcKeiKojiakSwchMsg) throws CAANFinderException
	{
		JKUejbKU0011SecProc sp0011 = new JKUejbKU0011SecProc();

		// 工事案件のETメッセージを作成
		CAANMsg msgKU0011 = new CAANMsg(KU0011ETMsg.class.getName());

		// 以下更新項目設定
		// 工事案件番号
		msgKU0011.set(KU0011ETMsg.KOJIAK_NO, kojiakNo);
		// SYSID
		msgKU0011.set(KU0011ETMsg.SYSID,  svcKeiKojiakSwchMsg.getString(KU0081ETMsg.SYSID));
		// 連携サービス契約番号
		msgKU0011.set(KU0011ETMsg.RNKI_SVC_KEI_NO, svcKeiKojiakSwchMsg.getString(KU0081ETMsg.SVC_KEI_NO));
		// 請求契約番号
		msgKU0011.set(KU0011ETMsg.SEIKY_KEI_NO, svcKeiMap.get(KK0321ETMsg.SEIKY_KEI_NO));
		// 料金グループコード
		msgKU0011.set(KU0011ETMsg.PRC_GRP_CD, svcKeiMap.get(KK0081ETMsg.PRC_GRP_CD));
		// 料金コースコード
		msgKU0011.set(KU0011ETMsg.PCRS_CD, svcKeiMap.get(KK0081ETMsg.PCRS_CD));
		// 料金プランコード
		msgKU0011.set(KU0011ETMsg.PPLAN_CD, svcKeiMap.get(KK0081ETMsg.PPLAN_CD));

		// 割引タイプコード
		String wrib_type_cd = null;
		if(JKUStrConst.CD00284_SOKUWARI.equals(svcKeiMap.get(KK0841ETMsg.WRIB_TYPE_CD)))
		{
			wrib_type_cd = svcKeiMap.get(KK0841ETMsg.WRIB_TYPE_CD);
		}
		msgKU0011.set(KU0011ETMsg.WRIB_TYPE_CD, wrib_type_cd);

		// OPMS変更連携要否
		msgKU0011.set(KU0011ETMsg.OPMS_CHGE_RNKI_YH, JKUStrConst.KH_PSG);

		// 連絡先勤務先名
		msgKU0011.set(KU0011ETMsg.RRKS_OFFC_NM, svcKeiMap.get(KK0021ETMsg.RRKS_OFFC_NM));

		if(!custMap.isEmpty())
		{
			// お客様名
			msgKU0011.set(KU0011ETMsg.CUST_NM, custMap.get(CK0011ETMsg.CUST_NM));
			// お客様カナ名
			msgKU0011.set(KU0011ETMsg.CUST_KANA, custMap.get(CK0011ETMsg.CUST_KANA));
			// お客様携帯電話番号
			msgKU0011.set(KU0011ETMsg.CUST_KTAI_TELNO, custMap.get(KU0011ETMsg.CUST_KTAI_TELNO));
			// お客様連絡先電話番号
			msgKU0011.set(KU0011ETMsg.CUST_RRKS_TELNO, custMap.get(CK0011ETMsg.KEISHA_TELNO));
			// 契約者住所コード
			msgKU0011.set(KU0011ETMsg.KEISHA_AD_CD, custMap.get(CK0011ETMsg.KEISHA_AD_CD));
			// 契約者郵便番号
			msgKU0011.set(KU0011ETMsg.KEISHA_PCD, custMap.get(CK0011ETMsg.KEISHA_PCD));
			// 契約者都道府県名
			msgKU0011.set(KU0011ETMsg.KEISHA_STATE_NM, custMap.get(CK0011ETMsg.KEISHA_STATE_NM));
			// 契約者市区町村名
			msgKU0011.set(KU0011ETMsg.KEISHA_CITY_NM, custMap.get(CK0011ETMsg.KEISHA_CITY_NM));
			// 契約者大字通称名
			msgKU0011.set(KU0011ETMsg.KEISHA_OAZTSU_NM, custMap.get(CK0011ETMsg.KEISHA_OAZTSU_NM));
			// 契約者字丁目名
			msgKU0011.set(KU0011ETMsg.KEISHA_AZCHO_NM, custMap.get(CK0011ETMsg.KEISHA_AZCHO_NM));
			// 契約者住所番地号
			msgKU0011.set(KU0011ETMsg.KEISHA_AD_BNCHIGO, custMap.get(CK0011ETMsg.KEISHA_BNCHIGO));
			// 契約者住所補記・建物名
			msgKU0011.set(KU0011ETMsg.KEISHA_ADRTTM, custMap.get(CK0011ETMsg.KEISHA_ADRTTM));
			// 契約者住所補記・部屋番号
			msgKU0011.set(KU0011ETMsg.KEISHA_ADRRM, custMap.get(CK0011ETMsg.KEISHA_ADRRM));
			// 契約者住所手動入力フラグ
			msgKU0011.set(KU0011ETMsg.KEISHA_AD_MAN_INPUT_FLG, custMap.get(CK0011ETMsg.KEISHA_AD_MAN_INPUT_FLG));
			
			// ANK-4269-00-00 ADD START
			// スキームタイプコード
			msgKU0011.set(KU0011ETMsg.SCM_TYPE_CD, custMap.get(CK0011ETMsg.SCM_TYPE_CD));
			// スキーム事業者コード
			msgKU0011.set(KU0011ETMsg.SCM_JGS_CD, custMap.get(CK0011ETMsg.SCM_JGS_CD));
			// ANK-4269-00-00 ADD END
		}

		// 更新年月日時分秒
		msgKU0011.set(KU0011ETMsg.UPD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_DTM)); 
		// 更新オペレータアカウント
		msgKU0011.set(KU0011ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_OPEACNT)); 

		try
		{
			sp0011.update(msgKU0011);
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}
		
		// 正常終了
		return true;
	}

	/**
	 * ネット解約連携切替_工事案件DKL
	 * @param inCBSMsg
	 * @param kojiakMsg
	 * @param svcKeiMap
	 * @param custMap
	 * @param svcKeiKojiakSwchMsg
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean netDslSwchKU0011(CAANMsg inCBSMsg, CAANMsg kojiakMsg, HashMap<String, String> svcKeiMap
			, HashMap<String, String> custMap, CAANMsg svcKeiKojiakSwchMsg) throws CAANException
	{
		JKUejbKU0011SecProc sp0011 = new JKUejbKU0011SecProc();

		// 工事案件のETメッセージを作成
		CAANMsg msgKU0011 = new CAANMsg(KU0011ETMsg.class.getName());
		
		// 工事案件番号
		String kojiakNo = kojiakMsg.getString(KU0011ETMsg.KOJIAK_NO);
		
		// 以下更新項目設定

		// 工事案件番号
		msgKU0011.set(KU0011ETMsg.KOJIAK_NO, kojiakNo);
		// SYSID
		msgKU0011.set(KU0011ETMsg.SYSID,  svcKeiKojiakSwchMsg.getString(KU0081ETMsg.SYSID));
		// 連携サービス契約番号
		msgKU0011.set(KU0011ETMsg.RNKI_SVC_KEI_NO, svcKeiKojiakSwchMsg.getString(KU0081ETMsg.SVC_KEI_NO));
		// 請求契約番号
		msgKU0011.set(KU0011ETMsg.SEIKY_KEI_NO, svcKeiMap.get(KK0321ETMsg.SEIKY_KEI_NO));
		// 料金グループコード
		msgKU0011.set(KU0011ETMsg.PRC_GRP_CD, svcKeiMap.get(KK0081ETMsg.PRC_GRP_CD));
		// 料金コースコード
		msgKU0011.set(KU0011ETMsg.PCRS_CD, svcKeiMap.get(KK0081ETMsg.PCRS_CD));
		// 料金プランコード
		msgKU0011.set(KU0011ETMsg.PPLAN_CD, svcKeiMap.get(KK0081ETMsg.PPLAN_CD));

		// 割引タイプコード
		String wrib_type_cd = null;
		if(JKUStrConst.CD00284_SOKUWARI.equals(svcKeiMap.get(KK0841ETMsg.WRIB_TYPE_CD)))
		{
			wrib_type_cd = svcKeiMap.get(KK0841ETMsg.WRIB_TYPE_CD);
		}
		msgKU0011.set(KU0011ETMsg.WRIB_TYPE_CD, wrib_type_cd);

		// OPMS変更連携要否
		msgKU0011.set(KU0011ETMsg.OPMS_CHGE_RNKI_YH, JKUStrConst.KH_PSG);

		// 連絡先勤務先名
		msgKU0011.set(KU0011ETMsg.RRKS_OFFC_NM, svcKeiMap.get(KK0021ETMsg.RRKS_OFFC_NM));

		if(!custMap.isEmpty())
		{
			CAANMsg custCAANMsg = new CAANMsg();
			custCAANMsg.setMsgDataOfAll(custMap);
			
			// ---FCDS変更連携要否更新有無
			
			List<String[]> fcdsCheckList = new ArrayList<String[]>();
			// お客様名
			fcdsCheckList.add(new String[] {KU0011ETMsg.CUST_NM, CK0011ETMsg.CUST_NM, null});
			// ANK-4269-00-00 ADD START
			// スキーム事業者コード
			fcdsCheckList.add(new String[] {KU0011ETMsg.SCM_JGS_CD, CK0011ETMsg.SCM_JGS_CD, null});
			// ANK-4269-00-00 ADD END
			
			boolean fcdsCheckResult = JKUModelCommon.checkRnkiSysFlgUpd(kojiakMsg, custCAANMsg, fcdsCheckList);
			
			// ---Genesis変更連携要否更新有無
			
			List<String[]> genesisCheckList = new ArrayList<String[]>();
			// SYSID【比較対象】
			genesisCheckList.add(new String[] {KU0011ETMsg.SYSID, CK0011ETMsg.SYSID, null});
			// お客様名【比較対象】
			genesisCheckList.add(new String[] {KU0011ETMsg.CUST_NM, CK0011ETMsg.CUST_NM, null});
			// お客様カナ名【比較対象】
			genesisCheckList.add(new String[] {KU0011ETMsg.CUST_KANA, CK0011ETMsg.CUST_KANA, null});
			// お客様携帯電話番号【比較対象】
			genesisCheckList.add(new String[] {KU0011ETMsg.CUST_KTAI_TELNO, KU0011ETMsg.CUST_KTAI_TELNO, null});
			// お客様連絡先電話番号【比較対象】
			genesisCheckList.add(new String[] {KU0011ETMsg.CUST_RRKS_TELNO, CK0011ETMsg.KEISHA_TELNO, null});
			// ANK-4269-00-00 ADD START
			// スキーム事業者コード
			genesisCheckList.add(new String[] {KU0011ETMsg.SCM_JGS_CD, CK0011ETMsg.SCM_JGS_CD, null});
			// ANK-4269-00-00 ADD END
			
			boolean genesisCheckResult = JKUModelCommon.checkRnkiSysFlgUpd(kojiakMsg, custCAANMsg, genesisCheckList);
			
			// ---お客様情報を設定する
			
			// お客様名
			msgKU0011.set(KU0011ETMsg.CUST_NM, custMap.get(CK0011ETMsg.CUST_NM));
			// お客様カナ名
			msgKU0011.set(KU0011ETMsg.CUST_KANA, custMap.get(CK0011ETMsg.CUST_KANA));
			// お客様携帯電話番号
			msgKU0011.set(KU0011ETMsg.CUST_KTAI_TELNO, custMap.get(KU0011ETMsg.CUST_KTAI_TELNO));
			// お客様連絡先電話番号
			msgKU0011.set(KU0011ETMsg.CUST_RRKS_TELNO, custMap.get(CK0011ETMsg.KEISHA_TELNO));
			// 契約者住所コード
			msgKU0011.set(KU0011ETMsg.KEISHA_AD_CD, custMap.get(CK0011ETMsg.KEISHA_AD_CD));
			// 契約者郵便番号
			msgKU0011.set(KU0011ETMsg.KEISHA_PCD, custMap.get(CK0011ETMsg.KEISHA_PCD));
			// 契約者都道府県名
			msgKU0011.set(KU0011ETMsg.KEISHA_STATE_NM, custMap.get(CK0011ETMsg.KEISHA_STATE_NM));
			// 契約者市区町村名
			msgKU0011.set(KU0011ETMsg.KEISHA_CITY_NM, custMap.get(CK0011ETMsg.KEISHA_CITY_NM));
			// 契約者大字通称名
			msgKU0011.set(KU0011ETMsg.KEISHA_OAZTSU_NM, custMap.get(CK0011ETMsg.KEISHA_OAZTSU_NM));
			// 契約者字丁目名
			msgKU0011.set(KU0011ETMsg.KEISHA_AZCHO_NM, custMap.get(CK0011ETMsg.KEISHA_AZCHO_NM));
			// 契約者住所番地号
			msgKU0011.set(KU0011ETMsg.KEISHA_AD_BNCHIGO, custMap.get(CK0011ETMsg.KEISHA_BNCHIGO));
			// 契約者住所補記・建物名
			msgKU0011.set(KU0011ETMsg.KEISHA_ADRTTM, custMap.get(CK0011ETMsg.KEISHA_ADRTTM));
			// 契約者住所補記・部屋番号
			msgKU0011.set(KU0011ETMsg.KEISHA_ADRRM, custMap.get(CK0011ETMsg.KEISHA_ADRRM));
			// 契約者住所手動入力フラグ
			msgKU0011.set(KU0011ETMsg.KEISHA_AD_MAN_INPUT_FLG, custMap.get(CK0011ETMsg.KEISHA_AD_MAN_INPUT_FLG));
			
			// ANK-4269-00-00 ADD START
			// スキームタイプコード
			msgKU0011.set(KU0011ETMsg.SCM_TYPE_CD, custMap.get(CK0011ETMsg.SCM_TYPE_CD));
			// スキーム事業者コード
			msgKU0011.set(KU0011ETMsg.SCM_JGS_CD, custMap.get(CK0011ETMsg.SCM_JGS_CD));
			// ANK-4269-00-00 ADD END
			
			// FCDS変更連携要否('要'　FCDS項目に変更があった場合)
			if (true == fcdsCheckResult)
			{
				msgKU0011.set(KU0011ETMsg.FCDS_CHGE_RNKI_YH, JKUModelCommon.getChgRnkiYh(kojiakMsg, JKUStrConst.RNKI_SYSTEM_FCDS));
			}
			
			// Genesis変更連携要否('要'　Genesis項目に変更があった場合)
			if (true == genesisCheckResult)
			{
				msgKU0011.set(KU0011ETMsg.GENESIS_CHGE_RNKI_YH, JKUModelCommon.getChgRnkiYh(kojiakMsg, JKUStrConst.RNKI_SYSTEM_GENESIS));
			}
			
		}
		
		// 更新年月日時分秒
		msgKU0011.set(KU0011ETMsg.UPD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_DTM)); 
		// 更新オペレータアカウント
		msgKU0011.set(KU0011ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_OPEACNT)); 
		
		try
		{
			sp0011.update(msgKU0011);
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}
		
		// 正常終了
		return true;
	}

	/**
	 * ネット解約オフィス切替_工事案件E
	 * @param inCBSMsg
	 * @param kojiakNo
	 * @param kojiakMsg
	 * @param kojiakSwchMsg
	 * @return boolean
	 * @throws CAANFinderException
	 */
	private boolean netDslSwchOffcKU0011(CAANMsg inCBSMsg, String kojiakNo, CAANMsg kojiakMsg, CAANMsg kojiakSwchMsg) throws CAANFinderException
	{
		JKUejbKU0011SecProc sp0011 = new JKUejbKU0011SecProc();

		// 工事案件のETメッセージを作成
		CAANMsg msgKU0011 = new CAANMsg(KU0011ETMsg.class.getName());

		// 以下更新項目設定
		// 工事案件番号
		msgKU0011.set(KU0011ETMsg.KOJIAK_NO, kojiakNo);
		// SYSID
		msgKU0011.set(KU0011ETMsg.SYSID, kojiakSwchMsg.getString(KU0011ETMsg.SYSID));
		// 連携サービス契約番号
		msgKU0011.set(KU0011ETMsg.RNKI_SVC_KEI_NO, kojiakSwchMsg.getString(KU0011ETMsg.RNKI_SVC_KEI_NO));
		// 請求契約番号
		msgKU0011.set(KU0011ETMsg.SEIKY_KEI_NO, kojiakSwchMsg.getString(KU0011ETMsg.SEIKY_KEI_NO));
		// 料金グループコード
		msgKU0011.set(KU0011ETMsg.PRC_GRP_CD, "");
		// 料金コースコード
		msgKU0011.set(KU0011ETMsg.PCRS_CD, "");
		// 料金プランコード
		msgKU0011.set(KU0011ETMsg.PPLAN_CD, "");
		// 割引タイプコード
		msgKU0011.set(KU0011ETMsg.WRIB_TYPE_CD, "");
		// 法人料金グループコード
		msgKU0011.set(KU0011ETMsg.HOJIN_PRC_GRP_CD, kojiakSwchMsg.getString(KU0011ETMsg.HOJIN_PRC_GRP_CD));
		// 法人料金コースコード
		msgKU0011.set(KU0011ETMsg.HOJIN_PCRS_CD, kojiakSwchMsg.getString(KU0011ETMsg.HOJIN_PCRS_CD));
		// 法人料金プランコード
		msgKU0011.set(KU0011ETMsg.HOJIN_PPLAN_CD, kojiakSwchMsg.getString(KU0011ETMsg.HOJIN_PPLAN_CD));
		// OPMS変更連携要否
		msgKU0011.set(KU0011ETMsg.OPMS_CHGE_RNKI_YH, JKUStrConst.KH_PSG);
		// 場所番号
		msgKU0011.set(KU0011ETMsg.PLACE_NO, kojiakSwchMsg.getString(KU0011ETMsg.PLACE_NO));
		// 転宅先住所コード
		msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_AD_CD, kojiakSwchMsg.getString(KU0011ETMsg.TENTAKU_SAKI_AD_CD));
		// 転宅先郵便番号
		msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_PCD, kojiakSwchMsg.getString(KU0011ETMsg.TENTAKU_SAKI_PCD));
		// 転宅先都道府県名
		msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_STATE_NM, kojiakSwchMsg.getString(KU0011ETMsg.TENTAKU_SAKI_STATE_NM));
		// 転宅先市区町村名
		msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_CITY_NM, kojiakSwchMsg.getString(KU0011ETMsg.TENTAKU_SAKI_CITY_NM));
		// 転宅先大字通称名
		msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_OAZTSU_NM, kojiakSwchMsg.getString(KU0011ETMsg.TENTAKU_SAKI_OAZTSU_NM));
		// 転宅先字丁目名
		msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_AZCHO_NM, kojiakSwchMsg.getString(KU0011ETMsg.TENTAKU_SAKI_AZCHO_NM));
		// 転宅先住所番地号
		msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_AD_BNCHIGO, kojiakSwchMsg.getString(KU0011ETMsg.TENTAKU_SAKI_AD_BNCHIGO));
		// 転宅先住所補記・建物名
		msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_ADRTTM, kojiakSwchMsg.getString(KU0011ETMsg.TENTAKU_SAKI_ADRTTM));
		// 転宅先住所補記・部屋番号
		msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_ADRRM, kojiakSwchMsg.getString(KU0011ETMsg.TENTAKU_SAKI_ADRRM));
		// お客様名
		msgKU0011.set(KU0011ETMsg.CUST_NM, kojiakSwchMsg.getString(KU0011ETMsg.CUST_NM));
		// お客様カナ名
		msgKU0011.set(KU0011ETMsg.CUST_KANA, kojiakSwchMsg.getString(KU0011ETMsg.CUST_KANA));
		// お客様自宅電話番号
		msgKU0011.set(KU0011ETMsg.CUST_HOME_TELNO, kojiakSwchMsg.getString(KU0011ETMsg.CUST_HOME_TELNO));
		// お客様携帯電話番号
		msgKU0011.set(KU0011ETMsg.CUST_KTAI_TELNO, kojiakSwchMsg.getString(KU0011ETMsg.CUST_KTAI_TELNO));
		// お客様連絡先電話番号
		msgKU0011.set(KU0011ETMsg.CUST_RRKS_TELNO, kojiakSwchMsg.getString(KU0011ETMsg.CUST_RRKS_TELNO));
		// 連絡先勤務先名
		msgKU0011.set(KU0011ETMsg.RRKS_OFFC_NM, kojiakSwchMsg.getString(KU0011ETMsg.RRKS_OFFC_NM));
		// 開通後電話利用希望有無
		msgKU0011.set(KU0011ETMsg.OPEN_AF_TEL_USE_KIBO_UM, kojiakSwchMsg.getString(KU0011ETMsg.OPEN_AF_TEL_USE_KIBO_UM));
		// 契約者住所コード
		msgKU0011.set(KU0011ETMsg.KEISHA_AD_CD, kojiakSwchMsg.getString(KU0011ETMsg.KEISHA_AD_CD));
		// 契約者郵便番号
		msgKU0011.set(KU0011ETMsg.KEISHA_PCD, kojiakSwchMsg.getString(KU0011ETMsg.KEISHA_PCD));
		// 契約者都道府県名
		msgKU0011.set(KU0011ETMsg.KEISHA_STATE_NM, kojiakSwchMsg.getString(KU0011ETMsg.KEISHA_STATE_NM));
		// 契約者市区町村名
		msgKU0011.set(KU0011ETMsg.KEISHA_CITY_NM, kojiakSwchMsg.getString(KU0011ETMsg.KEISHA_CITY_NM));
		// 契約者大字通称名
		msgKU0011.set(KU0011ETMsg.KEISHA_OAZTSU_NM, kojiakSwchMsg.getString(KU0011ETMsg.KEISHA_OAZTSU_NM));
		// 契約者字丁目名
		msgKU0011.set(KU0011ETMsg.KEISHA_AZCHO_NM, kojiakSwchMsg.getString(KU0011ETMsg.KEISHA_AZCHO_NM));
		// 契約者住所番地号
		msgKU0011.set(KU0011ETMsg.KEISHA_AD_BNCHIGO, kojiakSwchMsg.getString(KU0011ETMsg.KEISHA_AD_BNCHIGO));
		// 契約者住所補記・建物名
		msgKU0011.set(KU0011ETMsg.KEISHA_ADRTTM, kojiakSwchMsg.getString(KU0011ETMsg.KEISHA_ADRTTM));
		// 契約者住所補記・部屋番号
		msgKU0011.set(KU0011ETMsg.KEISHA_ADRRM, kojiakSwchMsg.getString(KU0011ETMsg.KEISHA_ADRRM));
		// 契約者住所手動入力フラグ
		msgKU0011.set(KU0011ETMsg.KEISHA_AD_MAN_INPUT_FLG, kojiakSwchMsg.getString(KU0011ETMsg.KEISHA_AD_MAN_INPUT_FLG));
		// オプションサービス契約引継ぎフラグ
		msgKU0011.set(KU0011ETMsg.OPSVKEI_HKTGI_FLG, kojiakSwchMsg.getString(KU0011ETMsg.OPSVKEI_HKTGI_FLG));
		// 追加元料金グループコード
		msgKU0011.set(KU0011ETMsg.ADD_MOTO_PRC_GRP_CD, kojiakMsg.getString(KU0011ETMsg.PRC_GRP_CD));
		// 追加元料金コースコード
		msgKU0011.set(KU0011ETMsg.ADD_MOTO_PCRS_CD, kojiakMsg.getString(KU0011ETMsg.PCRS_CD));
		// 追加元料金プランコード
		msgKU0011.set(KU0011ETMsg.ADD_MOTO_PPLAN_CD, kojiakMsg.getString(KU0011ETMsg.PPLAN_CD));
		// 追加元割引タイプコード
		msgKU0011.set(KU0011ETMsg.ADD_MOTO_WRIB_TYPE_CD, kojiakMsg.getString(KU0011ETMsg.WRIB_TYPE_CD));
		// 追加元工事案件種別コード
		msgKU0011.set(KU0011ETMsg.ADD_MOTO_KOJIAK_SBT_CD, kojiakMsg.getString(KU0011ETMsg.KOJIAK_SBT_CD));
		// 工事案件受付ユーザーID
		msgKU0011.set(KU0011ETMsg.KOJIAK_UK_USER_ID, inCBSMsg.getString(EKU0021C020CBSMsg.OPERATORID));

		// 更新年月日時分秒
		msgKU0011.set(KU0011ETMsg.UPD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_DTM)); 
		// 更新オペレータアカウント
		msgKU0011.set(KU0011ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_OPEACNT)); 

		try
		{
			sp0011.update(msgKU0011);
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}
		
		// 正常終了
		return true;
	}



	/**
	 * ＴＥＬ解約_工事案件NO
	 * @param inCBSMsg
	 * @param kojiakNo
	 * @return boolean
	 * @throws CAANFinderException
	 */
	private boolean telDslKU0011(CAANMsg inCBSMsg, String kojiakNo) throws CAANFinderException
	{
		JKUejbKU0011SecProc sp0011 = new JKUejbKU0011SecProc();

		// 工事案件のETメッセージを作成
		CAANMsg msgKU0011 = new CAANMsg(KU0011ETMsg.class.getName());

		// 以下更新項目設定
		// 工事案件番号
		msgKU0011.set(KU0011ETMsg.KOJIAK_NO, kojiakNo);
		// OPMS変更連携要否
		msgKU0011.set(KU0011ETMsg.OPMS_CHGE_RNKI_YH, JKUStrConst.KH_PSG);
		
		// 更新年月日時分秒
		msgKU0011.set(KU0011ETMsg.UPD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_DTM)); 
		// 更新オペレータアカウント
		msgKU0011.set(KU0011ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_OPEACNT)); 

		try
		{
			sp0011.update(msgKU0011);
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}
		
		// 正常終了
		return true;
	}

	/**
	 * 単独契約キャンセル_工事案件@G
	 * @param inCBSMsg
	 * @param kojiakNo
	 * @return boolean
	 * @throws CAANFinderException
	 */
	private boolean cancelKU0011(CAANMsg inCBSMsg, String kojiakNo) throws CAANFinderException
	{
		JKUejbKU0011SecProc sp0011 = new JKUejbKU0011SecProc();

		// 工事案件のETメッセージを作成
		CAANMsg msgKU0011 = new CAANMsg(KU0011ETMsg.class.getName());

		// 以下更新項目設定
		// 工事案件番号
		msgKU0011.set(KU0011ETMsg.KOJIAK_NO, kojiakNo);
		// 工事案件ステータス
		msgKU0011.set(KU0011ETMsg.KOJIAK_STAT, JKUStrConst.CD00474_CHUSHI);
		// 連携サービスキャンセル年月日
		msgKU0011.set(KU0011ETMsg.RNKI_SVC_CANCEL_YMD, inCBSMsg.getString(EKU0021C020CBSMsg.SVC_DSL_YMD));
		// 工事案件キャンセル年月日
		msgKU0011.set(KU0011ETMsg.KOJIAK_CANCEL_YMD, JKUModelCommon.getOpeDate(inCBSMsg, null));
		
		// 更新年月日時分秒
		msgKU0011.set(KU0011ETMsg.UPD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_DTM)); 
		// 更新オペレータアカウント
		msgKU0011.set(KU0011ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_OPEACNT)); 

		try
		{
			sp0011.update(msgKU0011);
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}
		
		// 正常終了
		return true;
	}

	/**
	 * 単独契約解約_工事案件BI
	 * @param inCBSMsg
	 * @param kojiakNo
	 * @return boolean
	 * @throws CAANFinderException
	 */
	private boolean dslKU0011(CAANMsg inCBSMsg, String kojiakNo) throws CAANFinderException
	{
		JKUejbKU0011SecProc sp0011 = new JKUejbKU0011SecProc();

		// 工事案件のETメッセージを作成
		CAANMsg msgKU0011 = new CAANMsg(KU0011ETMsg.class.getName());

		// 以下更新項目設定
		// 工事案件番号
		msgKU0011.set(KU0011ETMsg.KOJIAK_NO, kojiakNo);
		// 連携サービス終了年月日
		msgKU0011.set(KU0011ETMsg.RNKI_SVC_ENDYMD, inCBSMsg.getString(EKU0021C020CBSMsg.SVC_DSL_YMD));

		// 更新年月日時分秒
		msgKU0011.set(KU0011ETMsg.UPD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_DTM)); 
		// 更新オペレータアカウント
		msgKU0011.set(KU0011ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_OPEACNT)); 

		try
		{
			sp0011.update(msgKU0011);
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}
		
		// 正常終了
		return true;
	}
	
	/**
	 * 撤去_eo光ネットFP
	 * @param inCBSMsg
	 * @return boolean
	 * @throws CAANCreateException
	 */
	private boolean tekkyoKU0021(CAANMsg inCBSMsg) throws CAANCreateException
	{
		JKUejbKU0021SecProc sp0021 = new JKUejbKU0021SecProc();

		// 工事案件＜eo光ネット＞のETメッセージを作成
		CAANMsg msgKU0021 = new CAANMsg(KU0021ETMsg.class.getName());

		// 以下更新項目設定
		// 工事案件番号
		msgKU0021.set(KU0021ETMsg.KOJIAK_NO, inCBSMsg.getString(EKU0021C020CBSMsg.KOJIAK_NO));
		// 工事範囲コード
		msgKU0021.set(KU0021ETMsg.KOJI_SCOPE_CD, inCBSMsg.getString(EKU0021C020CBSMsg.KOJI_SCOPE_CD));
		// 解約希望年月日
		msgKU0021.set(KU0021ETMsg.DSL_KIBO_YMD, inCBSMsg.getString(EKU0021C020CBSMsg.DSL_KIBO_YMD));
		// eo光電話番号1
		msgKU0021.set(KU0021ETMsg.EOH_TELNO_1, inCBSMsg.getString(EKU0021C020CBSMsg.EOH_TEL_NO_1));
		// eo光電話番号2
		msgKU0021.set(KU0021ETMsg.EOH_TELNO_2, inCBSMsg.getString(EKU0021C020CBSMsg.EOH_TEL_NO_2));
		// eo光電話番号3
		msgKU0021.set(KU0021ETMsg.EOH_TELNO_3, inCBSMsg.getString(EKU0021C020CBSMsg.EOH_TEL_NO_3));
		// eo光電話番号4
		msgKU0021.set(KU0021ETMsg.EOH_TELNO_4, inCBSMsg.getString(EKU0021C020CBSMsg.EOH_TEL_NO_4));
		// eo光電話番号5
		msgKU0021.set(KU0021ETMsg.EOH_TELNO_5, inCBSMsg.getString(EKU0021C020CBSMsg.EOH_TEL_NO_5));
		// 移設コード
		msgKU0021.set(KU0021ETMsg.ISETSU_CD, inCBSMsg.getString(EKU0021C020CBSMsg.ISETSU_CD));
		// 面開発案件番号
		msgKU0021.set(KU0021ETMsg.MENKAIHAT_ANKEN_NO, inCBSMsg.getString(EKU0021C020CBSMsg.MENKAIHAT_ANKEN_NO));
		// 面開発工事コード
		msgKU0021.set(KU0021ETMsg.MNKHT_KOJI_CD, inCBSMsg.getString(EKU0021C020CBSMsg.MNKHT_KOJI_CD));
		// 電波障害案件種別コード
		msgKU0021.set(KU0021ETMsg.DMPSANK_SBT_CD, inCBSMsg.getString(EKU0021C020CBSMsg.DMPSANK_SBT_CD));
		
		// 登録年月日時分秒
		msgKU0021.set(KU0021ETMsg.ADD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.ADD_DTM)); 
		// 登録オペレータアカウント
		msgKU0021.set(KU0021ETMsg.ADD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.ADD_OPEACNT)); 
		// 更新年月日時分秒
		msgKU0021.set(KU0021ETMsg.UPD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_DTM)); 
		// 更新オペレータアカウント
		msgKU0021.set(KU0021ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_OPEACNT)); 
		// 無効フラグ
		msgKU0021.set(KU0021ETMsg.MK_FLG, inCBSMsg.getString(EKU0021C020CBSMsg.MK_FLG)); 
		

		try
		{
			sp0021.create(msgKU0021);
		}
		catch (CAANCreateException cce)
		{
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.CREATE_DB_ERR);
			throw cce;
		}
		
		// 正常終了
		return true;
	}

	/**
	 * ネット解約_eo光ネットJK
	 * @param inCBSMsg
	 * @param kojiakNo
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean netDslKU0021(CAANMsg inCBSMsg, String kojiakNo) throws CAANException
	{
		JKUejbKU0021SecProc sp0021 = new JKUejbKU0021SecProc();

		// 工事案件＜eo光ネット＞のETメッセージを作成
		CAANMsg msgKU0021 = new CAANMsg(KU0021ETMsg.class.getName());

		// 工事案件番号
		msgKU0021.set(KU0021ETMsg.KOJIAK_NO, kojiakNo);
		
		// 存在チェック
		if(!sp0021.isExistsPrimaryKey(msgKU0021, true))
		{
			inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_UPD);
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}

		// 以下更新項目設定
		// ファミリーパック契約有無
		msgKU0021.set(KU0021ETMsg.FAMIPA_KEI_UM, JKUStrConst.UM_NON);
		// PLCモデムレンタル台数
		msgKU0021.set(KU0021ETMsg.PLC_MODEM_RENT_CNT, "0");
		// PLCモデム買取台数
		msgKU0021.set(KU0021ETMsg.PLC_MODEM_KAITORI_CNT, "0");


		// 更新年月日時分秒
		msgKU0021.set(KU0021ETMsg.UPD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_DTM)); 
		// 更新オペレータアカウント
		msgKU0021.set(KU0021ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_OPEACNT)); 
		
		try
		{
			sp0021.update(msgKU0021);
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}
		
		// 正常終了
		return true;
	}
	
	/**
	 * 最新基本工事ネット解約_eo光ネットL
	 * @param inCBSMsg
	 * @param kojiakNo
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean rcntNetDslKU0021(CAANMsg inCBSMsg, String kojiakNo) throws CAANException
	{
		JKUejbKU0021SecProc sp0021 = new JKUejbKU0021SecProc();

		// 工事案件＜eo光ネット＞のETメッセージを作成
		CAANMsg msgKU0021 = new CAANMsg(KU0021ETMsg.class.getName());

		// 工事案件番号
		msgKU0021.set(KU0021ETMsg.KOJIAK_NO, kojiakNo);
		
		// 存在チェック
		if(!sp0021.isExistsPrimaryKey(msgKU0021, true))
		{
			inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_UPD);
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}
		
		// 以下更新項目設定
		// ファミリーパック契約有無
		msgKU0021.set(KU0021ETMsg.FAMIPA_KEI_UM, JKUStrConst.UM_NON);
		// PLCモデムレンタル台数
		msgKU0021.set(KU0021ETMsg.PLC_MODEM_RENT_CNT, "0");
		// PLCモデム買取台数
		msgKU0021.set(KU0021ETMsg.PLC_MODEM_KAITORI_CNT, "0");
		// 旧料金コースコード
		msgKU0021.set(KU0021ETMsg.OLD_PCRS_CD, inCBSMsg.getString(EKU0021C020CBSMsg.PCRS_CD));
		// 旧料金プランコード
		msgKU0021.set(KU0021ETMsg.OLD_PPLAN_CD, inCBSMsg.getString(EKU0021C020CBSMsg.PPLAN_CD));
		// 旧割引タイプコード
		msgKU0021.set(KU0021ETMsg.OLD_WRIB_TYPE_CD, inCBSMsg.getString(EKU0021C020CBSMsg.WRIB_TYPE_CD));
		
		// 更新年月日時分秒
		msgKU0021.set(KU0021ETMsg.UPD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_DTM)); 
		// 更新オペレータアカウント
		msgKU0021.set(KU0021ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_OPEACNT)); 
		
		try
		{
			sp0021.update(msgKU0021);
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}
		
		// 正常終了
		return true;
	}
	
	/**
	 * ネット解約ネット切替_eo光ネットDQ
	 * @param inCBSMsg
	 * @param kojiakNo
	 * @param swchKU0011Msg
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean netDslSwchNetKU0021(CAANMsg inCBSMsg, String kojiakNo, CAANMsg swchKU0011Msg) throws CAANException
	{
		JKUejbKU0021SecProc sp0021 = new JKUejbKU0021SecProc();

		// 更新元工事案件＜eo光ネット＞を取得
		CAANMsg inKU0021ETMsg = new CAANMsg(KU0021ETMsg.class.getName());
		CAANMsg swchKojiakNetMsg = null;
		inKU0021ETMsg.set(KU0021ETMsg.KOJIAK_NO, swchKU0011Msg.getString(KU0011ETMsg.KOJIAK_NO));
		swchKojiakNetMsg = sp0021.findByPrimaryKey(inKU0021ETMsg, true);
		if(null == swchKojiakNetMsg)
		{
			// サービス追加(工事なし)の工事案件がない場合はエラー
			inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_SVCADD_KOJINON);
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}
		
		// 工事案件＜eo光ネット＞のETメッセージを作成
		CAANMsg msgKU0021 = new CAANMsg(KU0021ETMsg.class.getName());

		// 工事案件番号
		msgKU0021.set(KU0021ETMsg.KOJIAK_NO, kojiakNo);
		
		// 存在チェック
		if(!sp0021.isExistsPrimaryKey(msgKU0021, true))
		{
			inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_UPD);
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}

		// 以下更新項目設定
		// PCセットアップ有無
		msgKU0021.set(KU0021ETMsg.PC_SETUP_UM, swchKojiakNetMsg.getString(KU0021ETMsg.PC_SETUP_UM));
		// eo光電話宅内工事有無
		msgKU0021.set(KU0021ETMsg.EOH_TEL_TAKNIKJ_UM, swchKojiakNetMsg.getString(KU0021ETMsg.EOH_TEL_TAKNIKJ_UM));
		// ファミリーパック契約有無
		msgKU0021.set(KU0021ETMsg.FAMIPA_KEI_UM, swchKojiakNetMsg.getString(KU0021ETMsg.FAMIPA_KEI_UM));
		// お客様SOS利用有無
		msgKU0021.set(KU0021ETMsg.CUST_SOS_USE_UM, swchKojiakNetMsg.getString(KU0021ETMsg.CUST_SOS_USE_UM));
		// eo光電話番号1
		msgKU0021.set(KU0021ETMsg.EOH_TELNO_1, swchKojiakNetMsg.getString(KU0021ETMsg.EOH_TELNO_1));
		// 番ポ有無1
		msgKU0021.set(KU0021ETMsg.BMP_UM_1, swchKojiakNetMsg.getString(KU0021ETMsg.BMP_UM_1));
		// 番ポ予定年月日1
		msgKU0021.set(KU0021ETMsg.BMP_RSV_YMD_1, swchKojiakNetMsg.getString(KU0021ETMsg.BMP_RSV_YMD_1));
		// 番ポ元通信事業者コード1
		msgKU0021.set(KU0021ETMsg.BMP_MOTO_TUSHIN_JGS_CD_1, swchKojiakNetMsg.getString(KU0021ETMsg.BMP_MOTO_TUSHIN_JGS_CD_1));
		// 同番移転有無1
		msgKU0021.set(KU0021ETMsg.DOBANITEN_UM_1, swchKojiakNetMsg.getString(KU0021ETMsg.DOBANITEN_UM_1));
		// 番ポ工事要否1
		msgKU0021.set(KU0021ETMsg.BMP_KOJI_YH_1, swchKojiakNetMsg.getString(KU0021ETMsg.BMP_KOJI_YH_1));
		// eo光電話番号2
		msgKU0021.set(KU0021ETMsg.EOH_TELNO_2, swchKojiakNetMsg.getString(KU0021ETMsg.EOH_TELNO_2));
		// 番ポ有無2
		msgKU0021.set(KU0021ETMsg.BMP_UM_2, swchKojiakNetMsg.getString(KU0021ETMsg.BMP_UM_2));
		// 番ポ予定年月日2
		msgKU0021.set(KU0021ETMsg.BMP_RSV_YMD_2, swchKojiakNetMsg.getString(KU0021ETMsg.BMP_RSV_YMD_2));
		// 番ポ元通信事業者コード2
		msgKU0021.set(KU0021ETMsg.BMP_MOTO_TUSHIN_JGS_CD_2, swchKojiakNetMsg.getString(KU0021ETMsg.BMP_MOTO_TUSHIN_JGS_CD_2));
		// 同番移転有無2
		msgKU0021.set(KU0021ETMsg.DOBANITEN_UM_2, swchKojiakNetMsg.getString(KU0021ETMsg.DOBANITEN_UM_2));
		// 番ポ工事要否2
		msgKU0021.set(KU0021ETMsg.BMP_KOJI_YH_2, swchKojiakNetMsg.getString(KU0021ETMsg.BMP_KOJI_YH_2));
		// eo光電話番号3
		msgKU0021.set(KU0021ETMsg.EOH_TELNO_3, swchKojiakNetMsg.getString(KU0021ETMsg.EOH_TELNO_3));
		// 番ポ有無3
		msgKU0021.set(KU0021ETMsg.BMP_UM_3, swchKojiakNetMsg.getString(KU0021ETMsg.BMP_UM_3));
		// 番ポ予定年月日3
		msgKU0021.set(KU0021ETMsg.BMP_RSV_YMD_3, swchKojiakNetMsg.getString(KU0021ETMsg.BMP_RSV_YMD_3));
		// 番ポ元通信事業者コード3
		msgKU0021.set(KU0021ETMsg.BMP_MOTO_TUSHIN_JGS_CD_3, swchKojiakNetMsg.getString(KU0021ETMsg.BMP_MOTO_TUSHIN_JGS_CD_3));
		// 同番移転有無3
		msgKU0021.set(KU0021ETMsg.DOBANITEN_UM_3, swchKojiakNetMsg.getString(KU0021ETMsg.DOBANITEN_UM_3));
		// 番ポ工事要否3
		msgKU0021.set(KU0021ETMsg.BMP_KOJI_YH_3, swchKojiakNetMsg.getString(KU0021ETMsg.BMP_KOJI_YH_3));
		// eo光電話番号4
		msgKU0021.set(KU0021ETMsg.EOH_TELNO_4, swchKojiakNetMsg.getString(KU0021ETMsg.EOH_TELNO_4));
		// 番ポ有無4
		msgKU0021.set(KU0021ETMsg.BMP_UM_4, swchKojiakNetMsg.getString(KU0021ETMsg.BMP_UM_4));
		// 番ポ予定年月日4
		msgKU0021.set(KU0021ETMsg.BMP_RSV_YMD_4, swchKojiakNetMsg.getString(KU0021ETMsg.BMP_RSV_YMD_4));
		// 番ポ元通信事業者コード4
		msgKU0021.set(KU0021ETMsg.BMP_MOTO_TUSHIN_JGS_CD_4, swchKojiakNetMsg.getString(KU0021ETMsg.BMP_MOTO_TUSHIN_JGS_CD_4));
		// 同番移転有無4
		msgKU0021.set(KU0021ETMsg.DOBANITEN_UM_4, swchKojiakNetMsg.getString(KU0021ETMsg.DOBANITEN_UM_4));
		// 番ポ工事要否4
		msgKU0021.set(KU0021ETMsg.BMP_KOJI_YH_4, swchKojiakNetMsg.getString(KU0021ETMsg.BMP_KOJI_YH_4));
		// eo光電話番号5
		msgKU0021.set(KU0021ETMsg.EOH_TELNO_5, swchKojiakNetMsg.getString(KU0021ETMsg.EOH_TELNO_5));
		// 番ポ有無5
		msgKU0021.set(KU0021ETMsg.BMP_UM_5, swchKojiakNetMsg.getString(KU0021ETMsg.BMP_UM_5));
		// 番ポ予定年月日5
		msgKU0021.set(KU0021ETMsg.BMP_RSV_YMD_5, swchKojiakNetMsg.getString(KU0021ETMsg.BMP_RSV_YMD_5));
		// 番ポ元通信事業者コード5
		msgKU0021.set(KU0021ETMsg.BMP_MOTO_TUSHIN_JGS_CD_5, swchKojiakNetMsg.getString(KU0021ETMsg.BMP_MOTO_TUSHIN_JGS_CD_5));
		// 同番移転有無5
		msgKU0021.set(KU0021ETMsg.DOBANITEN_UM_5, swchKojiakNetMsg.getString(KU0021ETMsg.DOBANITEN_UM_5));
		// 番ポ工事要否5
		msgKU0021.set(KU0021ETMsg.BMP_KOJI_YH_5, swchKojiakNetMsg.getString(KU0021ETMsg.BMP_KOJI_YH_5));
		// PLCモデムレンタル台数
		msgKU0021.set(KU0021ETMsg.PLC_MODEM_RENT_CNT, swchKojiakNetMsg.getString(KU0021ETMsg.PLC_MODEM_RENT_CNT));
		// PLCモデム買取台数
		msgKU0021.set(KU0021ETMsg.PLC_MODEM_KAITORI_CNT, swchKojiakNetMsg.getString(KU0021ETMsg.PLC_MODEM_KAITORI_CNT));
		// eo光電話台数
		msgKU0021.set(KU0021ETMsg.EOH_TEL_CNT, swchKojiakNetMsg.getString(KU0021ETMsg.EOH_TEL_CNT));
		// 移設コード
		msgKU0021.set(KU0021ETMsg.ISETSU_CD, swchKojiakNetMsg.getString(KU0021ETMsg.ISETSU_CD));
		// 旧料金コースコード
		msgKU0021.set(KU0021ETMsg.OLD_PCRS_CD, swchKojiakNetMsg.getString(KU0021ETMsg.OLD_PCRS_CD));
		// 旧料金プランコード
		msgKU0021.set(KU0021ETMsg.OLD_PPLAN_CD, swchKojiakNetMsg.getString(KU0021ETMsg.OLD_PPLAN_CD));
		// 旧割引タイプコード
		msgKU0021.set(KU0021ETMsg.OLD_WRIB_TYPE_CD, swchKojiakNetMsg.getString(KU0021ETMsg.OLD_WRIB_TYPE_CD));
		// 追加元サービス契約番号
		msgKU0021.set(KU0021ETMsg.ADD_MOTO_SVC_KEI_NO, swchKojiakNetMsg.getString(KU0021ETMsg.ADD_MOTO_SVC_KEI_NO));

		// 更新年月日時分秒
		msgKU0021.set(KU0021ETMsg.UPD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_DTM)); 
		// 更新オペレータアカウント
		msgKU0021.set(KU0021ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_OPEACNT)); 

		try
		{
			sp0021.update(msgKU0021);
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}
		
		// 正常終了
		return true;
	}

	/**
	 * ＴＥＬ解約_eo光ネットMNO
	 * @param inCBSMsg
	 * @param kojiakNo
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean telDslKU0021(CAANMsg inCBSMsg, String kojiakNo) throws CAANException
	{
		JKUejbKU0021SecProc sp0021 = new JKUejbKU0021SecProc();
		
		// 工事案件＜eo光ネット＞のETメッセージを作成
		CAANMsg msgKU0021 = new CAANMsg(KU0021ETMsg.class.getName());

		// 工事案件番号
		msgKU0021.set(KU0021ETMsg.KOJIAK_NO, kojiakNo);
		
		// 存在チェック
		if(!sp0021.isExistsPrimaryKey(msgKU0021, true))
		{
			inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_UPD);
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}

		// 以下更新項目設定
		// eo光電話宅内工事有無
		msgKU0021.set(KU0021ETMsg.EOH_TEL_TAKNIKJ_UM, JKUStrConst.UM_NON);
		// eo光電話番号1
		msgKU0021.set(KU0021ETMsg.EOH_TELNO_1, "");
		// 番ポ有無1
		msgKU0021.set(KU0021ETMsg.BMP_UM_1, "");
		// 番ポ予定年月日1
		msgKU0021.set(KU0021ETMsg.BMP_RSV_YMD_1, "");
		// 番ポ元通信事業者コード1
		msgKU0021.set(KU0021ETMsg.BMP_MOTO_TUSHIN_JGS_CD_1, "");
		// 同番移転有無1
		msgKU0021.set(KU0021ETMsg.DOBANITEN_UM_1, "");
		// 番ポ工事要否1
		msgKU0021.set(KU0021ETMsg.BMP_KOJI_YH_1, "");
		// eo光電話番号2
		msgKU0021.set(KU0021ETMsg.EOH_TELNO_2, "");
		// 番ポ有無2
		msgKU0021.set(KU0021ETMsg.BMP_UM_2, "");
		// 番ポ予定年月日2
		msgKU0021.set(KU0021ETMsg.BMP_RSV_YMD_2, "");
		// 番ポ元通信事業者コード2
		msgKU0021.set(KU0021ETMsg.BMP_MOTO_TUSHIN_JGS_CD_2, "");
		// 同番移転有無2
		msgKU0021.set(KU0021ETMsg.DOBANITEN_UM_2, "");
		// 番ポ工事要否2
		msgKU0021.set(KU0021ETMsg.BMP_KOJI_YH_2, "");
		// eo光電話番号3
		msgKU0021.set(KU0021ETMsg.EOH_TELNO_3, "");
		// 番ポ有無3
		msgKU0021.set(KU0021ETMsg.BMP_UM_3, "");
		// 番ポ予定年月日3
		msgKU0021.set(KU0021ETMsg.BMP_RSV_YMD_3, "");
		// 番ポ元通信事業者コード3
		msgKU0021.set(KU0021ETMsg.BMP_MOTO_TUSHIN_JGS_CD_3, "");
		// 同番移転有無3
		msgKU0021.set(KU0021ETMsg.DOBANITEN_UM_3, "");
		// 番ポ工事要否3
		msgKU0021.set(KU0021ETMsg.BMP_KOJI_YH_3, "");
		// eo光電話番号4
		msgKU0021.set(KU0021ETMsg.EOH_TELNO_4, "");
		// 番ポ有無4
		msgKU0021.set(KU0021ETMsg.BMP_UM_4, "");
		// 番ポ予定年月日4
		msgKU0021.set(KU0021ETMsg.BMP_RSV_YMD_4, "");
		// 番ポ元通信事業者コード4
		msgKU0021.set(KU0021ETMsg.BMP_MOTO_TUSHIN_JGS_CD_4, "");
		// 同番移転有無4
		msgKU0021.set(KU0021ETMsg.DOBANITEN_UM_4, "");
		// 番ポ工事要否4
		msgKU0021.set(KU0021ETMsg.BMP_KOJI_YH_4, "");
		// eo光電話番号5
		msgKU0021.set(KU0021ETMsg.EOH_TELNO_5, "");
		// 番ポ有無5
		msgKU0021.set(KU0021ETMsg.BMP_UM_5, "");
		// 番ポ予定年月日5
		msgKU0021.set(KU0021ETMsg.BMP_RSV_YMD_5, "");
		// 番ポ元通信事業者コード5
		msgKU0021.set(KU0021ETMsg.BMP_MOTO_TUSHIN_JGS_CD_5, "");
		// 同番移転有無5
		msgKU0021.set(KU0021ETMsg.DOBANITEN_UM_5, "");
		// 番ポ工事要否5
		msgKU0021.set(KU0021ETMsg.BMP_KOJI_YH_5, "");
		// eo光電話台数
		msgKU0021.set(KU0021ETMsg.EOH_TEL_CNT, "0");

		// 更新年月日時分秒
		msgKU0021.set(KU0021ETMsg.UPD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_DTM)); 
		// 更新オペレータアカウント
		msgKU0021.set(KU0021ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_OPEACNT)); 

		try
		{
			sp0021.update(msgKU0021);
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}
		
		// 正常終了
		return true;
	}
	
	/**
	 * ＴＥＬ解約_eo光ネットマンションMNO
	 * @param inCBSMsg
	 * @param kojiakNo
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean telDslKU0061(CAANMsg inCBSMsg, String kojiakNo) throws CAANException
	{
		JKUejbKU0061SecProc sp0061 = new JKUejbKU0061SecProc();
		
		// 工事案件＜eo光ネット＞のETメッセージを作成
		CAANMsg msgKU0061 = new CAANMsg(KU0061ETMsg.class.getName());

		// 工事案件番号
		msgKU0061.set(KU0061ETMsg.KOJIAK_NO, kojiakNo);
		
		// 存在チェック
		if(!sp0061.isExistsPrimaryKey(msgKU0061, true))
		{
			inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_DSL_SONZAI);
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}

		// 以下更新項目設定
		// eo光電話宅内工事有無
		msgKU0061.set(KU0061ETMsg.EOH_TEL_TAKNIKJ_UM, JKUStrConst.UM_NON);
		// eo光電話番号1
		msgKU0061.set(KU0061ETMsg.EOH_TELNO_1, "");
		// 番ポ有無1
		msgKU0061.set(KU0061ETMsg.BMP_UM_1, "");
		// 番ポ予定年月日1
		msgKU0061.set(KU0061ETMsg.BMP_RSV_YMD_1, "");
		// 番ポ元通信事業者コード1
		msgKU0061.set(KU0061ETMsg.BMP_MOTO_TUSHIN_JGS_CD_1, "");
		// 同番移転有無1
		msgKU0061.set(KU0061ETMsg.DOBANITEN_UM_1, "");
		// 番ポ工事要否1
		msgKU0061.set(KU0061ETMsg.BMP_KOJI_YH_1, "");
		// eo光電話番号2
		msgKU0061.set(KU0061ETMsg.EOH_TELNO_2, "");
		// 番ポ有無2
		msgKU0061.set(KU0061ETMsg.BMP_UM_2, "");
		// 番ポ予定年月日2
		msgKU0061.set(KU0061ETMsg.BMP_RSV_YMD_2, "");
		// 番ポ元通信事業者コード2
		msgKU0061.set(KU0061ETMsg.BMP_MOTO_TUSHIN_JGS_CD_2, "");
		// 同番移転有無2
		msgKU0061.set(KU0061ETMsg.DOBANITEN_UM_2, "");
		// 番ポ工事要否2
		msgKU0061.set(KU0061ETMsg.BMP_KOJI_YH_2, "");
		// eo光電話番号3
		msgKU0061.set(KU0061ETMsg.EOH_TELNO_3, "");
		// 番ポ有無3
		msgKU0061.set(KU0061ETMsg.BMP_UM_3, "");
		// 番ポ予定年月日3
		msgKU0061.set(KU0061ETMsg.BMP_RSV_YMD_3, "");
		// 番ポ元通信事業者コード3
		msgKU0061.set(KU0061ETMsg.BMP_MOTO_TUSHIN_JGS_CD_3, "");
		// 同番移転有無3
		msgKU0061.set(KU0061ETMsg.DOBANITEN_UM_3, "");
		// 番ポ工事要否3
		msgKU0061.set(KU0061ETMsg.BMP_KOJI_YH_3, "");
		// eo光電話番号4
		msgKU0061.set(KU0061ETMsg.EOH_TELNO_4, "");
		// 番ポ有無4
		msgKU0061.set(KU0061ETMsg.BMP_UM_4, "");
		// 番ポ予定年月日4
		msgKU0061.set(KU0061ETMsg.BMP_RSV_YMD_4, "");
		// 番ポ元通信事業者コード4
		msgKU0061.set(KU0061ETMsg.BMP_MOTO_TUSHIN_JGS_CD_4, "");
		// 同番移転有無4
		msgKU0061.set(KU0061ETMsg.DOBANITEN_UM_4, "");
		// 番ポ工事要否4
		msgKU0061.set(KU0061ETMsg.BMP_KOJI_YH_4, "");
		// eo光電話番号5
		msgKU0061.set(KU0061ETMsg.EOH_TELNO_5, "");
		// 番ポ有無5
		msgKU0061.set(KU0061ETMsg.BMP_UM_5, "");
		// 番ポ予定年月日5
		msgKU0061.set(KU0061ETMsg.BMP_RSV_YMD_5, "");
		// 番ポ元通信事業者コード5
		msgKU0061.set(KU0061ETMsg.BMP_MOTO_TUSHIN_JGS_CD_5, "");
		// 同番移転有無5
		msgKU0061.set(KU0061ETMsg.DOBANITEN_UM_5, "");
		// 番ポ工事要否5
		msgKU0061.set(KU0061ETMsg.BMP_KOJI_YH_5, "");
		// eo光電話台数
		msgKU0061.set(KU0061ETMsg.EOH_TEL_CNT, "0");

		// 更新年月日時分秒
		msgKU0061.set(KU0061ETMsg.UPD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_DTM)); 
		// 更新オペレータアカウント
		msgKU0061.set(KU0061ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_OPEACNT)); 

		try
		{
			sp0061.update(msgKU0061);
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}
		
		// 正常終了
		return true;
	}

	/**
	 * ネット解約オフィス切替_eoオフィスE
	 * @param inCBSMsg
	 * @param kojiakNo
	 * @param swchKojiakMsg
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean netDslSwchOffcKU0051(CAANMsg inCBSMsg, String kojiakNo, CAANMsg swchKojiakMsg) throws CAANException
	{
		JKUejbKU0051SecProc sp0051 = new JKUejbKU0051SecProc();

		// 更新元工事案件＜eoオフィス＞を取得
		CAANMsg inKU0051ETMsg = new CAANMsg(KU0051ETMsg.class.getName());
		CAANMsg swchKojiakOffcMsg = null;
		inKU0051ETMsg.set(KU0051ETMsg.KOJIAK_NO, swchKojiakMsg.getString(KU0011ETMsg.KOJIAK_NO));
		swchKojiakOffcMsg = sp0051.findByPrimaryKey(inKU0051ETMsg, true);
		
		if(null == swchKojiakOffcMsg)
		{
			// サービス追加(工事なし)の工事案件がない場合はエラー
			inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_SVCADD_KOJINON);
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}
		
		// 工事案件＜eoオフィス＞のETメッセージを作成
		CAANMsg msgKU0051 = new CAANMsg(KU0051ETMsg.class.getName());

		// 工事案件番号
		msgKU0051.set(KU0051ETMsg.KOJIAK_NO, kojiakNo);
		
		// 存在チェック
		boolean isExist = sp0051.isExistsPrimaryKey(msgKU0051, true);

		// 以下更新項目設定
		// eo光電話宅内工事有無
		msgKU0051.set(KU0051ETMsg.EOH_TEL_TAKNIKJ_UM, swchKojiakOffcMsg.getString(KU0051ETMsg.EOH_TEL_TAKNIKJ_UM));
		// お客様SOS利用有無
		msgKU0051.set(KU0051ETMsg.CUST_SOS_USE_UM, swchKojiakOffcMsg.getString(KU0051ETMsg.CUST_SOS_USE_UM));
		// 復活案件フラグ
		msgKU0051.set(KU0051ETMsg.HUKKAT_ANKEN_FLG, swchKojiakOffcMsg.getString(KU0051ETMsg.HUKKAT_ANKEN_FLG));
		// 旧法人料金コースコード
		msgKU0051.set(KU0051ETMsg.OLD_HOJIN_PCRS_CD, swchKojiakOffcMsg.getString(KU0051ETMsg.OLD_HOJIN_PCRS_CD));
		// 旧法人料金プランコード
		msgKU0051.set(KU0051ETMsg.OLD_HOJIN_PPLAN_CD, swchKojiakOffcMsg.getString(KU0051ETMsg.OLD_HOJIN_PPLAN_CD));
		// 追加元サービス契約番号
		msgKU0051.set(KU0051ETMsg.ADD_MOTO_SVC_KEI_NO, swchKojiakOffcMsg.getString(KU0051ETMsg.ADD_MOTO_SVC_KEI_NO));
		// 更新年月日時分秒
		msgKU0051.set(KU0051ETMsg.UPD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_DTM));
		// 更新オペレータアカウント
		msgKU0051.set(KU0051ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_OPEACNT));

		try
		{
			if(isExist)
			{
				sp0051.update(msgKU0051);
			}
			else
			{
				// 登録年月日時分秒
				msgKU0051.set(KU0051ETMsg.ADD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.ADD_DTM)); 
				// 登録オペレータアカウント
				msgKU0051.set(KU0051ETMsg.ADD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.ADD_OPEACNT)); 
				// 無効フラグ
				msgKU0051.set(KU0051ETMsg.MK_FLG, inCBSMsg.getString(EKU0021C020CBSMsg.MK_FLG)); 
				
				new JKUejbKU0051SecProc().create(msgKU0051);
			}
			
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}
		catch (CAANCreateException cce)
		{
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.CREATE_DB_ERR);
			throw cce;
		}
		
		// 正常終了
		return true;
	}


	/**
	 * 撤去_サービス契約F
	 * @param inCBSMsg
	 * @param svcKeiKojiakMsg
	 * @return boolean
	 * @throws CAANCreateException
	 */
	private boolean tekkyoKU0081(CAANMsg inCBSMsg, CAANMsg svcKeiKojiakMsg) throws CAANCreateException
	{
		JKUejbKU0081SecProc sp0081 = new JKUejbKU0081SecProc();

		// サービス契約＿工事案件のETメッセージを作成
		CAANMsg msgKU0081 = new CAANMsg(KU0081ETMsg.class.getName());

		// 以下更新項目設定
		// サービス契約番号
		msgKU0081.set(KU0081ETMsg.SVC_KEI_NO, svcKeiKojiakMsg.getString(KU0081ETMsg.SVC_KEI_NO));
		// 工事案件番号
		msgKU0081.set(KU0081ETMsg.KOJIAK_NO, inCBSMsg.getString(EKU0021C020CBSMsg.KOJIAK_NO));
		// サービスコード
		msgKU0081.set(KU0081ETMsg.SVC_CD, svcKeiKojiakMsg.getString(KU0081ETMsg.SVC_CD));
		// SYSID
		msgKU0081.set(KU0081ETMsg.SYSID, svcKeiKojiakMsg.getString(KU0081ETMsg.SYSID));
		// サービス契約回線内訳番号
		msgKU0081.set(KU0081ETMsg.SVC_KEI_KAISEN_UCWK_NO, svcKeiKojiakMsg.getString(KU0081ETMsg.SVC_KEI_KAISEN_UCWK_NO));
		// サービス契約_工事案件適用開始年月日
		msgKU0081.set(KU0081ETMsg.SVKEI_KOJIAK_TSTAYMD, JKUModelCommon.getOpeDate(inCBSMsg, null));
		// サービス契約_工事案件適用終了年月日
		msgKU0081.set(KU0081ETMsg.SVKEI_KOJIAK_TENDYMD, JKUStrConst.MAX_YMD);

		// 登録年月日時分秒
		msgKU0081.set(KU0081ETMsg.ADD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.ADD_DTM)); 
		// 登録オペレータアカウント
		msgKU0081.set(KU0081ETMsg.ADD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.ADD_OPEACNT)); 
		// 更新年月日時分秒
		msgKU0081.set(KU0081ETMsg.UPD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_DTM)); 
		// 更新オペレータアカウント
		msgKU0081.set(KU0081ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_OPEACNT)); 
		// 無効フラグ
		msgKU0081.set(KU0081ETMsg.MK_FLG, inCBSMsg.getString(EKU0021C020CBSMsg.MK_FLG)); 
		
		try
		{
			sp0081.create(msgKU0081);
		}
		catch (CAANCreateException cce)
		{
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.CREATE_DB_ERR);
			throw cce;
		}
		
		// 正常終了
		return true;
	}
	
	/**
	 * 撤去_サービス契約P
	 * @param inCBSMsg
	 * @param svcKeiNo
	 * @return boolean
	 * @throws CAANCreateException
	 */
	private boolean tekkyoSvcNonKU0081(CAANMsg inCBSMsg, String svcKeiNo) throws CAANCreateException
	{
		JKUejbKU0081SecProc sp0081 = new JKUejbKU0081SecProc();

		// サービス契約＿工事案件のETメッセージを作成
		CAANMsg msgKU0081 = new CAANMsg(KU0081ETMsg.class.getName());

		// 以下更新項目設定
		// サービス契約番号
		msgKU0081.set(KU0081ETMsg.SVC_KEI_NO, svcKeiNo);
		// 工事案件番号
		msgKU0081.set(KU0081ETMsg.KOJIAK_NO, inCBSMsg.getString(EKU0021C020CBSMsg.KOJIAK_NO));
		// サービスコード
		msgKU0081.set(KU0081ETMsg.SVC_CD, inCBSMsg.getString(EKU0021C020CBSMsg.SVC_CD));
		// SYSID
		msgKU0081.set(KU0081ETMsg.SYSID, inCBSMsg.getString(EKU0021C020CBSMsg.SYSID));
		// サービス契約回線内訳番号
		msgKU0081.set(KU0081ETMsg.SVC_KEI_KAISEN_UCWK_NO, inCBSMsg.getString(EKU0021C020CBSMsg.SVC_KEI_KAISEN_UCWK_NO));
		// サービス契約_工事案件適用開始年月日
		msgKU0081.set(KU0081ETMsg.SVKEI_KOJIAK_TSTAYMD, JKUModelCommon.getOpeDate(inCBSMsg, null));
		// サービス契約_工事案件適用終了年月日
		msgKU0081.set(KU0081ETMsg.SVKEI_KOJIAK_TENDYMD, JKUModelCommon.getOpeDate(inCBSMsg, null));

		// 登録年月日時分秒
		msgKU0081.set(KU0081ETMsg.ADD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.ADD_DTM)); 
		// 登録オペレータアカウント
		msgKU0081.set(KU0081ETMsg.ADD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.ADD_OPEACNT)); 
		// 更新年月日時分秒
		msgKU0081.set(KU0081ETMsg.UPD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_DTM)); 
		// 更新オペレータアカウント
		msgKU0081.set(KU0081ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_OPEACNT)); 
		// 無効フラグ
		msgKU0081.set(KU0081ETMsg.MK_FLG, inCBSMsg.getString(EKU0021C020CBSMsg.MK_FLG)); 
		
		try
		{
			sp0081.create(msgKU0081);
		}
		catch (CAANCreateException cce)
		{
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.CREATE_DB_ERR);
			throw cce;
		}
		
		// 正常終了
		return true;
	}

	/**
	 * 解約_サービス契約BCDEGIJKLMNOQ
	 * @param inCBSMsg
	 * @param kojiakNo
	 * @param svcKeiNo
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean dslKU0081(CAANMsg inCBSMsg, String kojiakNo, String svcKeiNo) throws CAANException
	{
		JKUejbKU0081SecProc sp0081 = new JKUejbKU0081SecProc();

		// サービス契約＿工事案件のETメッセージを作成
		CAANMsg msgKU0081 = new CAANMsg(KU0081ETMsg.class.getName());

		// サービス契約番号
		msgKU0081.set(KU0081ETMsg.SVC_KEI_NO, svcKeiNo);
		// 工事案件番号
		msgKU0081.set(KU0081ETMsg.KOJIAK_NO, kojiakNo);
		
		// 存在チェック
		if(!sp0081.isExistsPrimaryKey(msgKU0081, true))
		{
			inCBSMsg.set(EKU0021C020CBSMsg.MSKMSHO_NO_ERR, RELATION_ERR_CD_UPD);
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}
		
		
		// 以下更新項目設定
		// サービス契約_工事案件適用終了年月日
		msgKU0081.set(KU0081ETMsg.SVKEI_KOJIAK_TENDYMD, JKUModelCommon.getOpeDate(inCBSMsg, null));

		// 更新年月日時分秒
		msgKU0081.set(KU0081ETMsg.UPD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_DTM)); 
		// 更新オペレータアカウント
		msgKU0081.set(KU0081ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_OPEACNT)); 

		try
		{
			sp0081.update(msgKU0081);
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}
		
		// 正常終了
		return true;
	}

	/**
	 * 撤去_申込明細FP
	 * @param inCBSMsg
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean tekkyoKU0091(CAANMsg inCBSMsg) throws CAANException
	{
		JKUejbKU0091SecProc sp0091 = new JKUejbKU0091SecProc();
		
		// 申込明細のETメッセージを作成
		CAANMsg msgKU0091 = new CAANMsg(KU0091ETMsg.class.getName());

		// 以下更新項目設定
		// 申込明細番号
		msgKU0091.set(KU0091ETMsg.MSKM_DTL_NO, inCBSMsg.getString(EKU0021C020CBSMsg.MSKM_DTL_NO));
		// 工事案件番号
		msgKU0091.set(KU0091ETMsg.KOJIAK_NO, inCBSMsg.getString(EKU0021C020CBSMsg.KOJIAK_NO));
		// 申込明細_工事案件適用開始年月日
		msgKU0091.set(KU0091ETMsg.MSKM_DTL_KOJIAK_TSTAYMD, JKUModelCommon.getOpeDate(inCBSMsg, null));
		// 申込明細_工事案件適用終了年月日
		msgKU0091.set(KU0091ETMsg.MSKM_DTL_KOJIAK_TENDYMD, JKUStrConst.MAX_YMD);

		// 登録年月日時分秒
		msgKU0091.set(KU0091ETMsg.ADD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.ADD_DTM)); 
		// 登録オペレータアカウント
		msgKU0091.set(KU0091ETMsg.ADD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.ADD_OPEACNT)); 
		// 更新年月日時分秒
		msgKU0091.set(KU0091ETMsg.UPD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_DTM)); 
		// 更新オペレータアカウント
		msgKU0091.set(KU0091ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_OPEACNT)); 
		// 無効フラグ
		msgKU0091.set(KU0091ETMsg.MK_FLG, inCBSMsg.getString(EKU0021C020CBSMsg.MK_FLG)); 
		
		try
		{
			// 存在する場合があるの重複確認を行う
			if(!sp0091.isExistsPrimaryKey(msgKU0091, false))
			{
				sp0091.create(msgKU0091);
			}
		}
		catch (CAANCreateException cce)
		{
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.CREATE_DB_ERR);
			throw cce;
		}

		// 正常終了
		return true;
	}

	/**
	 * キャンセル_先行設計@G
	 * @param inCBSMsg
	 * @param kojiakNo
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean cancelKU0101(CAANMsg inCBSMsg, String kojiakNo) throws CAANException
	{
		JKUejbKU0101SecProc sp0101 = new JKUejbKU0101SecProc();
		
		// 先行設計のETメッセージを作成
		CAANMsg msgKU0101 = new CAANMsg(KU0101ETMsg.class.getName());
		
		// KEY設定
		msgKU0101.set(KU0101ETMsg.KOJIAK_NO, kojiakNo);
		//msgKU0101.set(KU0101ETMsg.SNKSKI_STAT, JKUStrConst.SNKSKI_STAT_UK_ZM);
		msgKU0101.set(KU0101ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		// 更新対象のレコード取得
		CAANMsg[] outETMsg = new KU0101LE().findByCondition(msgKU0101);	

		try
		{	
			for (int i = 0; i < outETMsg.length; i++)
			{	
				// 更新元のレコード設定
				msgKU0101 = outETMsg[i];
				
				// 先行設計ステータス が（'受付済'）の場合のみ更新する
				if (JKUStrConst.SNKSKI_STAT_UK_ZM.equals(msgKU0101.getString(KU0101ETMsg.SNKSKI_STAT)))
				{
					// 以下更新項目設定
					// 先行設計ステータス
					msgKU0101.set(KU0101ETMsg.SNKSKI_STAT, JKUStrConst.SNKSKI_STAT_CHUSHI);
					// 先行設計中止年月日
					msgKU0101.set(KU0101ETMsg.SNKSKI_STP_YMD, JKUModelCommon.getOpeDate(inCBSMsg, null));

					// 更新年月日時分秒
					msgKU0101.set(KU0101ETMsg.UPD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_DTM)); 
					// 更新オペレータアカウント
					msgKU0101.set(KU0101ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_OPEACNT)); 
		
					sp0101.update(msgKU0101);
				}
			}
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}

		// 正常終了
		return true;
	}

	/**
	 * ネットキャンセルＴＥＬ切替_先行設計J
	 * @param inCBSMsg
	 * @param kojiakNo
	 * @param svcKeiMap
	 * @param custMap
	 * @param swchSvcKeiKojiakMsg
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean netCancelTelKU0101(CAANMsg inCBSMsg, String kojiakNo
			, HashMap<String, String> svcKeiMap, HashMap<String, String> custMap, CAANMsg swchSvcKeiKojiakMsg) throws CAANException
	{
		JKUejbKU0101SecProc sp0101 = new JKUejbKU0101SecProc();
		
		// 先行設計のETメッセージを作成
		CAANMsg msgKU0101 = new CAANMsg(KU0101ETMsg.class.getName());
		
		// KEY設定
		msgKU0101.set(KU0101ETMsg.KOJIAK_NO, kojiakNo);
		//msgKU0101.set(KU0101ETMsg.SNKSKI_STAT, JKUStrConst.SNKSKI_STAT_UK_ZM);
		msgKU0101.set(KU0101ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		// 更新対象のレコード取得
		CAANMsg[] outETMsg = new KU0101LE().findByCondition(msgKU0101);	
		
		try
		{
			for (int i = 0; i < outETMsg.length; i++)
			{		
				// 更新元のレコード設定
				msgKU0101 = outETMsg[i];
				
				// 先行設計ステータス が（'受付済'）の場合のみ更新する
				if (JKUStrConst.SNKSKI_STAT_UK_ZM.equals(msgKU0101.getString(KU0101ETMsg.SNKSKI_STAT)))
				{
					// 以下更新項目設定
					
					// 料金グループコード
					msgKU0101.set(KU0101ETMsg.PRC_GRP_CD, svcKeiMap.get(KK0081ETMsg.PRC_GRP_CD));
					// 新料金コースコード
					msgKU0101.set(KU0101ETMsg.NEW_PCRS_CD, svcKeiMap.get(KK0081ETMsg.PCRS_CD));
					// 新割引タイプコード
					String wrib_type_cd = null;
					if(JKUStrConst.CD00284_SOKUWARI.equals(svcKeiMap.get(KK0841ETMsg.WRIB_TYPE_CD)))
					{
						wrib_type_cd = svcKeiMap.get(KK0841ETMsg.WRIB_TYPE_CD);
					}
					msgKU0101.set(KU0101ETMsg.NEW_WRIB_TYPE_CD, wrib_type_cd);
					// 申込明細番号
					msgKU0101.set(KU0101ETMsg.MSKM_DTL_NO, inCBSMsg.getString(EKU0021C020CBSMsg.MSKM_DTL_NO));
					// サービス契約番号
					msgKU0101.set(KU0101ETMsg.SVC_KEI_NO, swchSvcKeiKojiakMsg.getString(KU0081ETMsg.SVC_KEI_NO));
					// SYSID
					msgKU0101.set(KU0101ETMsg.SYSID, swchSvcKeiKojiakMsg.getString(KU0081ETMsg.SYSID));
					
					if(!custMap.isEmpty())
					{
						// お客様名
						msgKU0101.set(KU0101ETMsg.CUST_NM, custMap.get(CK0011ETMsg.CUST_NM));
						// お客様カナ名
						msgKU0101.set(KU0101ETMsg.CUST_KANA, custMap.get(CK0011ETMsg.CUST_KANA));
						// お客様連絡先電話番号
						msgKU0101.set(KU0101ETMsg.CUST_RRKS_TELNO, custMap.get(CK0011ETMsg.KEISHA_TELNO));
						// お客様連絡先携帯電話番号
						msgKU0101.set(KU0101ETMsg.CUST_RRKS_KTAI_TELNO, custMap.get(KU0011ETMsg.CUST_KTAI_TELNO));
					}
					// 更新年月日時分秒
					msgKU0101.set(KU0101ETMsg.UPD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_DTM)); 
					// 更新オペレータアカウント
					msgKU0101.set(KU0101ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_OPEACNT)); 
			
					sp0101.update(msgKU0101);
					
				}
				
			}
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}
		// 正常終了
		return true;
	}

	/**
	 * キャンセル_設定工事@G
	 * @param inCBSMsg
	 * @param kojiakNo
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean cancelKU0111(CAANMsg inCBSMsg, String kojiakNo) throws CAANException
	{
		JKUejbKU0111SecProc sp0111 = new JKUejbKU0111SecProc();
		
		// 設定工事のETメッセージを作成
		CAANMsg msgKU0111 = new CAANMsg(KU0111ETMsg.class.getName());

		// KEY設定
		msgKU0111.set(KU0111ETMsg.KOJIAK_NO, kojiakNo);
		
		msgKU0111.set(KU0111ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		// 更新対象のレコード取得
		CAANMsg[] outETMsg = new KU0111LE().findByCondition(msgKU0111);
		
		try
		{	
			for (int i = 0; i < outETMsg.length; i++)
			{	
				
				// 更新元のレコード設定
				msgKU0111 = outETMsg[i];
				
				// 設定工事ステータス が（'受付済'）の場合のみ更新する
				if (JKUStrConst.SNKSKI_STAT_UK_ZM.equals(msgKU0111.getString(KU0111ETMsg.SETTE_KOJI_STAT)))
				{
					
					// 以下更新項目設定
					// 設定工事ステータス
					msgKU0111.set(KU0111ETMsg.SETTE_KOJI_STAT, JKUStrConst.CD00477_CHUSHI);
					// 設定工事キャンセル年月日時分秒
					msgKU0111.set(KU0111ETMsg.SETTE_KOJI_CANCEL_DTM, JKUModelCommon.getOpeDateTime(inCBSMsg, null));
					
					// 更新年月日時分秒
					msgKU0111.set(KU0111ETMsg.UPD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_DTM)); 
					// 更新オペレータアカウント
					msgKU0111.set(KU0111ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_OPEACNT)); 
					
					sp0111.update(msgKU0111);
					
				}
				
			}
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}
		
		// 正常終了
		return true;
	}
	
	/**
	 * 最新基本工事ネット解約_eo光ネット_設定工事L
	 * @param inCBSMsg
	 * @param kojiakNo
	 * @param svcKeiMap
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean rcntNetDslKU0111(CAANMsg inCBSMsg, String kojiakNo, HashMap<String, String> svcKeiMap) throws CAANException
	{
		JKUejbKU0111SecProc sp0111 = new JKUejbKU0111SecProc();
		
		// Create用メッセージ
		CAANMsg msgKU0111ForCreate = new CAANMsg(KU0111ETMsg.class.getName());
		// Update用メッセージ
		CAANMsg msgKU0111ForUpdate = new CAANMsg(KU0111ETMsg.class.getName());
		// 更新フラグ
		boolean updFlg = false;
		
		// KEY設定
		msgKU0111ForUpdate.set(KU0111ETMsg.KOJIAK_NO, kojiakNo);
		
		msgKU0111ForUpdate.set(KU0111ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		// 更新対象のレコード取得
		CAANMsg[] outETMsg = new KU0111LE().findByCondition(msgKU0111ForUpdate);
		
		try
		{	
			for (int i = 0; i < outETMsg.length; i++)
			{	
				
				// 更新元のレコード設定
				msgKU0111ForUpdate = outETMsg[i];
				// 設定工事ステータス
				String setteKojiStat = msgKU0111ForUpdate.getString(KU0111ETMsg.SETTE_KOJI_STAT);
				// 設定工事コード
				String setteKojiCd = msgKU0111ForUpdate.getString(KU0111ETMsg.SETTE_KOJI_CD);
				
				// 設定工事ステータスが「130:受付済」 且つ 設定工事コードが「1:マンション設定工事」または「2:PON設定」
				if (JKUStrConst.CD00477_UK_ZM.equals(setteKojiStat)
						&& (JKUStrConst.CD00579_MANS_SET_KOJI.equals(setteKojiCd)
						|| JKUStrConst.CD00579_PON_SET.equals(setteKojiCd)))
				{
					// 以下更新項目設定
					// 設定工事ステータス(「110:なし」)
					msgKU0111ForUpdate.set(KU0111ETMsg.SETTE_KOJI_STAT, JKUStrConst.CD00477_NASHI);
					// 更新年月日時分秒
					msgKU0111ForUpdate.set(KU0111ETMsg.UPD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_DTM)); 
					// 更新オペレータアカウント
					msgKU0111ForUpdate.set(KU0111ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.UPD_OPEACNT));
					
					sp0111.update(msgKU0111ForUpdate);
					
					// 更新フラグを立てる
					updFlg = true;
				}
			}
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}
		
		// 以下更新項目設定
		
		// 設定工事番号を採番する
		String setteKojiNo = JKUejbNumberParts.getSetteKojiNo(inCBSMsg);
		
		// 設定工事番号 （採番）
		msgKU0111ForCreate.set(KU0111ETMsg.SETTE_KOJI_NO, setteKojiNo);
		// 設定工事コード （'PON設定'）
		msgKU0111ForCreate.set(KU0111ETMsg.SETTE_KOJI_CD, JKUStrConst.CD00579_PON_SET);
		
		if(updFlg)
		{
			// 設定工事ステータス(「110:なし」)
			msgKU0111ForCreate.set(KU0111ETMsg.SETTE_KOJI_STAT, JKUStrConst.CD00477_NASHI);
		}
		else
		{
			// 設定工事ステータス(「130:受付済」)
			msgKU0111ForCreate.set(KU0111ETMsg.SETTE_KOJI_STAT, JKUStrConst.CD00477_UK_ZM);
		}
		
		// 工事案件番号 （申込書番号から発番）
		msgKU0111ForCreate.set(KU0111ETMsg.KOJIAK_NO, kojiakNo);
		// 旧料金コースコード
		msgKU0111ForCreate.set(KU0111ETMsg.OLD_PCRS_CD, inCBSMsg.getString(EKU0021C020CBSMsg.PCRS_CD));
		// 旧割引タイプコード
		msgKU0111ForCreate.set(KU0111ETMsg.OLD_WRIB_TYPE_CD, inCBSMsg.getString(EKU0021C020CBSMsg.WRIB_TYPE_CD));
		// 新料金コースコード
		msgKU0111ForCreate.set(KU0111ETMsg.NEW_PCRS_CD, svcKeiMap.get(KK0081ETMsg.PCRS_CD));
		
		// 新割引タイプコード
		String wrib_type_cd = null;
		if(JKUStrConst.CD00284_SOKUWARI.equals(svcKeiMap.get(KK0841ETMsg.WRIB_TYPE_CD)))
		{
			wrib_type_cd = svcKeiMap.get(KK0841ETMsg.WRIB_TYPE_CD);
		}
		msgKU0111ForCreate.set(KU0111ETMsg.NEW_WRIB_TYPE_CD, wrib_type_cd);
		
		// 更新対象工事案件番号
		msgKU0111ForCreate.set(KU0111ETMsg.UPD_TRGT_KOJIAK_NO, kojiakNo);
		// サービス契約番号
		msgKU0111ForCreate.set(KU0111ETMsg.SVC_KEI_NO, inCBSMsg.getString(EKU0021C020CBSMsg.SVC_KEI_NO));
		// 設定工事受付年月日時分秒 
		msgKU0111ForCreate.set(KU0111ETMsg.SETTE_KOJI_UK_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.OPERATEDATETIME).substring(0, 14));
		// 設定工事依頼年月日 
		msgKU0111ForCreate.set(KU0111ETMsg.SETTE_KOJI_REQYMD, JKUModelCommon.getOpeDate(inCBSMsg, null));
		// 連携先連携種別コード
		msgKU0111ForCreate.set(KU0111ETMsg.RNKS_RENKEI_SBT_CD, JKUStrConst.CD00699_MIRENKEI);
		// 登録年月日時分秒
		msgKU0111ForCreate.set(KU0111ETMsg.ADD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.OPERATEDATETIME));
		// 登録オペレータアカウント
		msgKU0111ForCreate.set(KU0111ETMsg.ADD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.OPERATORID));
		// 更新年月日時分秒
		msgKU0111ForCreate.set(KU0111ETMsg.UPD_DTM, inCBSMsg.getString(EKU0021C020CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント
		msgKU0111ForCreate.set(KU0111ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0021C020CBSMsg.OPERATORID));
		// 無効フラグ （'有効'）
		msgKU0111ForCreate.set(KU0111ETMsg.MK_FLG,  JKUStrConst.MK_FLG_YUKO);

		try
		{
			sp0111.create(msgKU0111ForCreate);
		}
		catch (CAANCreateException cce)
		{
			inCBSMsg.set(EKU0021C020CBSMsg.STATUS, StatusCodes.CREATE_DB_ERR);
			throw cce;
		}
		
		// 正常終了
		return true;
	}
	
	/**
	 * 撤去_宅内機器FP
	 * @param inCBSMsg
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean tekkyoKU0141(CAANMsg inCBSMsg) throws CAANException
	{
		// 工事案件番号
		String kojiakNo = inCBSMsg.getString(EKU0021C020CBSMsg.KOJIAK_NO);
		// 工事案件種別
		String kojiakSbtCd = inCBSMsg.getString(EKU0021C020CBSMsg.KOJIAK_SBT_CD);
		// 料金グループコード
		String prcGrpCd = inCBSMsg.getString(EKU0021C020CBSMsg.PRC_GRP_CD);
		
		JKUModelCommon.updTaknkiki(kojiakNo, inCBSMsg, null, kojiakSbtCd, prcGrpCd, false);
		
		// 正常終了
		return true;
	}
	
	/**
	 * 撤去_宅内機器（同一工事機器情報追加）
	 * @param inCBSMsg
	 * @param kojiakNo 工事案件番号
	 * @param kojiakSbtCd	工事案件種別コード
	 * @throws CAANException 
	 */
	private void tekkyoKU0141Add(CAANMsg inCBSMsg, String kojiakNo, String kojiakSbtCd) throws CAANException
	{
		// 料金グループコード
		String prcGrpCd = inCBSMsg.getString(EKU0021C020CBSMsg.PRC_GRP_CD);
		
		// 工事案件に紐づく宅内機器
		CAANMsg ku0141Msg = new CAANMsg(KU0141ETMsg.class.getName());
		ku0141Msg.set(KU0141ETMsg.KOJIAK_NO, kojiakNo);
		ku0141Msg.set(KU0141ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		CAANMsg[] ku0141MsgArray = new JKUejbKU0141SecProc().findByCondition(ku0141Msg);
		
		JKUModelCommon.updTaknkiki(kojiakNo, inCBSMsg, ku0141MsgArray, kojiakSbtCd, prcGrpCd, false);
	}

}
