/*******************************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JEKU0061C020TPMA
*	ソースファイル名：JEKU0061C020TPMA.java
*	作成者			：富士通
*	日付			：2011年09月21日
*＜機能概要＞
*	工事案件＜ｅｏ光ネットマンション＞解約の独自処理を呼び出す部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	ｖ1.00.00	2011/09/21	FJ)			新規作成
*	ｖ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/01	FJ)高橋		【OM-2013-0002821】
*	ｖ5.00.01	2013/10/22	FJ)高橋		【OM-2013-0003548】
*	ｖ7.00.00	2014/03/07	FJ)阪口		【OM-2014-0000692】
*	ｖ7.00.01	2014/03/11	FJ)高橋		【OM-2014-0000620】
*	ｖ10.00.00	2014/07/18	FJ)阪口		【ANK-1918-00-00】US管理対応
*	ｖ11.00.00	2014/11/18	FJ)阪口		【OM-2014-0003634】お客様情報変更時に自宅電話番号が設定されない
*	ｖ23.00.00	2015/12/14	FJ)山口		【ANK-2612-00-00】10Gコース導入対応
*	ｖ31.00.00	2017/11/06	FJ)周藤		【ANK-3136-00-00】OPMSハードウエア保守切れ対応
*	ｖ35.00.00	2017/12/14	FJ)柳川		【ANK-3334-01-00】OLT設定変更改善対応(追加対応）
*	ｖ41.00.00	2019/01/10	FJ)周藤		【ANK-3387-00-00】マンションタイプ光コンセントサービス導入
*	ｖ44.00.00	2019/06/17	FJ)木村		【ANK-3652-00-00】光コンセントフォロー対応
*   v53.0.0		2021/04/13	GDC)ニール	【ANK-3989-00-00】マンション光コンセント方式への５G・１０Gコース追加
*	v56.00.00	2021/09/15	FJ)永井		【ANK-4038-00-00】【eo定期】光ローゼット化対応
*	v60.00.00	2022/06/15	GDC)j.lawsin	【ANK-4244-00-00】【eo定期】MT既設賃貸対応
*   v60.00.00	2022/07/14	 GDC)j.zabala	「ANK-4269-00-00」マンション卸回線(WI-FIスキーム)の不備対応　STEP2
*   v61.00.00	2023/01/13	GDC)r.heredia	【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.KU0021ETMsg;
import eo.ejb.cbm.entity.KU0061ETMsg;
import eo.ejb.cbm.entity.KU0081ETMsg;
import eo.ejb.cbm.entity.KU0091ETMsg;
import eo.ejb.cbm.entity.KU0101ETMsg;
import eo.ejb.cbm.entity.KU0111ETMsg;
import eo.ejb.cbm.entity.KU0141ETMsg;
import eo.ejb.cbs.cbsmsg.EKU0061C020CBSMsg;
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.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>
 * 工事案件＜ｅｏ光ネットマンション＞解約の独自処理を呼び出す部品です。
 * </p>
 * @author 富士通
 */
public class JEKU0061C020TPMA implements TemplateMainHandler
{
	
	/**
	 * 処理判定用_契約判断結果
	 */
	/** マンション光回線(光コンセント以外) */
	private static final String MANS_HIKARI = "mans_hikari";
	/** マンションイーサ（その他光コンセントを除く光配線以外） */
	private static final String MANS_ETH = "mans_eth";
	/** メゾン */
	private static final String MZN = "mzn";
	
	/**
	 * コンストラクタです
	 */
	public JEKU0061C020TPMA()
	{
		super();
	}

	/**
	 * 主処理
	 * @param inCBSMsg	CBSメッセージ
	 * @param inContext	ディスパッチコンテキスト
	 * @throws CAANException
	 */
	public void invoke(CAANMsg inCBSMsg, AgentDispatchContext inContext) throws CAANException
	{
		String koji_uk_optnty_ido_div = inCBSMsg.getString(EKU0061C020CBSMsg.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 kojiUkDtailCd = inCBSMsg.getString(EKU0061C020CBSMsg.KOJI_UK_DTAIL_CD);
		
		// 解約・撤去フラグ
		String ktFlg = null;
		
		// 工事受付詳細コードが解約（回線残さない）の場合
		// 工事受付詳細コードが引越しの場合
		if (JKUStrConst.CD00885_DSL_KISN_NOKOSANAI.equals(kojiUkDtailCd)
				|| JKUStrConst.CD00885_HIKKOSHI.equals(kojiUkDtailCd))
		{
			ktFlg = JKUStrConst.KT_FLG_T;
		}
		// 工事受付詳細コードが解約（回線残す）の場合
		else if (JKUStrConst.CD00885_DSL_KISN_NOKOSU.equals(kojiUkDtailCd))
		{
			ktFlg = JKUStrConst.KT_FLG_K;
		}
		
		// ---工事案件情報リストを取得する
		
		// 工事案件情報リスト
		CAANMsg[] kojiakInfoArray = null;
		
		// 撤去の場合
		if (JKUStrConst.KT_FLG_T.equals(ktFlg))
		{
			kojiakInfoArray = getKojiakInfoTekkyo(inCBSMsg, inContext);
		}
		// 解約の場合
		else if (JKUStrConst.KT_FLG_K.equals(ktFlg))
		{
			kojiakInfoArray = getKojiakInfoKaiyaku(inCBSMsg, inContext);
		}
		
		// 取得できなかった場合
		if (null == kojiakInfoArray || kojiakInfoArray.length == 0)
		{
			return;
		}
		
		// -------------------------------
		// --- チェック実行
		// -------------------------------
		
		// ---排他処理を実行する
		
		for (int i = 0; i < kojiakInfoArray.length; ++i)
		{
			if (!JPCModelCommon.succeededExclusiveLock(kojiakInfoArray[i], inContext, JKUStrConst.SCHEMA_KU0011))
			{
				// サービス契約回線内訳番号エラーを設定
				inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_KAISEN_UCWK_NO_ERR, "EB");
				// ステータスを設定
				inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
				return;
			}
		}
		
		// ---契約判定を行う
		
		String mansPattern = checkKeiyakuInCBSMsg(inCBSMsg);
		
		
		// マンションイーサネット（その他光コンセントを除く光配線以外）の場合は有効ステータスをマンション工事案件状態コードとする
		String ykStatColumn = KU0011ETMsg.KOJIAK_STAT;
		if (MANS_ETH.equals(mansPattern))
		{
			ykStatColumn = KU0011ETMsg.MANS_KOJIAK_STAT_CD;
		}
		
		// ---撤去工事仕掛中チェックを実行する
		
		// 撤去の場合
		if (JKUStrConst.KT_FLG_T.equals(ktFlg))
		{
			// 工事案件ステータス候補
			String[] checkStatusArray =
				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[] checkSbtArray =
				new String[] {	JKUStrConst.CD00577_KYOSEI_DSL,
								JKUStrConst.CD00577_TEKKYO_DSL,
								JKUStrConst.CD00577_AD_CHG_TEKKYO};
			
			// 最新基本工事案件存在フラグ
			boolean kihonFlg = false;
			for (int i = 0; i < kojiakInfoArray.length; ++i)
			{
				// 工事案件種別コード候補
				if (true == checkKomokuArray(kojiakInfoArray[i], KU0011ETMsg.KOJIAK_SBT_CD, checkSbtArray))
				{
					// 工事案件ステータス・マンション工事案件状態コードチェック
					if (true == checkKomokuArray(kojiakInfoArray[i], ykStatColumn, checkStatusArray))
					{
						// 戻り値を返して終了する
						CAANMsg shikakariKojiak = kojiakInfoArray[i];
						// 工事案件番号
						inCBSMsg.set(EKU0061C020CBSMsg.KOJIAK_NO, shikakariKojiak.getString(KU0011ETMsg.KOJIAK_NO));
						// 工事案件種別コード
						inCBSMsg.set(EKU0061C020CBSMsg.KOJIAK_SBT_CD, shikakariKojiak.getString(KU0011ETMsg.KOJIAK_SBT_CD));
						// 登録年月日時分秒
						inCBSMsg.set(EKU0061C020CBSMsg.ADD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
						// 登録オペレータアカウント
						inCBSMsg.set(EKU0061C020CBSMsg.ADD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
						// 更新年月日時分秒
						inCBSMsg.set(EKU0061C020CBSMsg.UPD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
						// 更新オペレータアカウント
						inCBSMsg.set(EKU0061C020CBSMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
						// 無効フラグ
						inCBSMsg.set(EKU0061C020CBSMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
						
						// 機能コード1以外の場合はチェックのみのため処理を終了する
						if (!JPCModelConstant.FUNC_CD_1.equals(inCBSMsg.getString(EKU0061C020CBSMsg.FUNC_CODE)))
						{
							return;
						}
						
						// 仕掛中撤去工事に同一工事機器情報を追加する
						tekkyoKU0141Add(inCBSMsg,
								shikakariKojiak.getString(KU0011ETMsg.KOJIAK_NO),
								shikakariKojiak.getString(KU0011ETMsg.KOJIAK_SBT_CD));
						
						// 申込明細_工事案件の登録
						insertKU0091(inCBSMsg, shikakariKojiak);
						
						return;
					}
				}
				
				// 最新基本工事チェック
				if (JKUStrConst.CD00882_RCNT_KIHON_KOJI.equals(kojiakInfoArray[i].getString(KU0011ETMsg.RCNT_KIHON_KOJI_FLG)))
				{
					kihonFlg = true;
				}
				
			}
			
			// 最新基本工事が存在しない場合
			if (false == kihonFlg)
			{
				// サービス契約回線内訳番号エラーを設定
				inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_KAISEN_UCWK_NO_ERR, "EN");
				// ステータスを設定
				inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
				return;
			}
			
		}
		
		// 撤去の場合のみ、更新対象の工事案件リストを再作成
		if(JKUStrConst.KT_FLG_T.equals(ktFlg))
		{
			kojiakInfoArray = JKUModelCommon.getKojiakForTekkyo(inCBSMsg.getString(EKU0061C020CBSMsg.SVC_KEI_NO), kojiakInfoArray);
		}
		
		// ---工事案件情報に紐づくサービス契約_工事案件情報を取得する
		HashMap<String, CAANMsg[]> svcKeiKojiakMap = new HashMap<String, CAANMsg[]>();
		
		for (int i = 0; i < kojiakInfoArray.length; ++i)
		{
			// 工事案件番号
			String kojiakNo = kojiakInfoArray[i].getString(KU0011ETMsg.KOJIAK_NO);
			// サービス契約_工事案件副次処理部品
			JKUejbKU0081SecProc ku0081SecProc = new JKUejbKU0081SecProc();
			// サービス契約_工事案件の検索を実行する
			CAANMsg ku0081Msg = new CAANMsg(KU0081ETMsg.class.getName());
			// 工事案件番号
			ku0081Msg.set(KU0081ETMsg.KOJIAK_NO, kojiakNo);
			// サービス契約_工事案件適用終了日
			ku0081Msg.set(KU0081ETMsg.SVKEI_KOJIAK_TENDYMD, JKUStrConst.MAX_YMD);
			// 無効フラグ
			ku0081Msg.set(KU0081ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
			
			CAANMsg[] ku0081MsgArray = ku0081SecProc.findByCondition(ku0081Msg);
			
			for (int j = 0; j < ku0081MsgArray.length; ++j)
			{
				// インプットのサービス契約番号とスキーマのサービス契約番号が異なる
				// 且つスキーマの解約外設備使用終了識別コードが"1"の時そのデータは除外する
				if (!inCBSMsg.getString(EKU0061C020CBSMsg.SVC_KEI_NO).equals(ku0081MsgArray[j].getString(KU0081ETMsg.SVC_KEI_NO))
						&& JKUStrConst.CD01591_USE_END.equals(ku0081MsgArray[j].getString(KU0081ETMsg.DSL_GAI_EQUIP_USE_END_SKCD)))
				{
					ku0081MsgArray[j].clear();
				}
			}
			
			svcKeiKojiakMap.put(kojiakNo, ku0081MsgArray);
		}
		
		boolean chushiCheck = false;
		
		// 工事受付詳細コードが解約（回線残す）の場合、工事中止チェックを行う
		if (JKUStrConst.CD00885_DSL_KISN_NOKOSU.equals(kojiUkDtailCd))
		{
			for (int i = 0; i < kojiakInfoArray.length; ++i)
			{
				// 工事案件ステータス・マンション工事案件状態コード
				String kojiakStat = kojiakInfoArray[i].getString(ykStatColumn);
				
				// 「中止」以外の場合、チェックフラグをＯＮする
				if (!JKUStrConst.CD00474_CHUSHI.equals(kojiakStat))
				{
					chushiCheck = true;
				}
			}
			
			// 全て「中止」の場合、処理を終了する
			if (!chushiCheck)
			{
				return;
			}
		}
		
		// ---振舞パターンを取得する
		
		List<String> updatePatternList = null;
		
// ANK-3387-00-00 MOD START
//		updatePatternList = JKUModelCommon.getUpdatePatternMT(kojiakInfoArray, svcKeiKojiakMap, ktFlg, 
//				inCBSMsg.getString(EKU0061C020CBSMsg.SVC_CD),
//				inCBSMsg.getString(EKU0061C020CBSMsg.MANSION_BUKKEN_CD),
//				inCBSMsg.getString(EKU0061C020CBSMsg.MANS_TUSHIN_EQUIP_CD));
		updatePatternList = JKUModelCommon.getUpdatePatternMT(kojiakInfoArray, svcKeiKojiakMap, ktFlg, 
				inCBSMsg.getString(EKU0061C020CBSMsg.SVC_CD),
				inCBSMsg.getString(EKU0061C020CBSMsg.MANSION_BUKKEN_CD),
				inCBSMsg.getString(EKU0061C020CBSMsg.MANS_TUSHIN_EQUIP_CD),
				inCBSMsg.getString(EKU0061C020CBSMsg.SVC_KEI_NO));
// ANK-3387-00-00 MOD END
		
		if (updatePatternList.size() != kojiakInfoArray.length)
		{
			// サービス契約番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "ED");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return;
		}
		
		//解約時
		if(JKUStrConst.CD00885_DSL_KISN_NOKOSU.equals(kojiUkDtailCd))
		{
			// 工事案件パターン
			String kojiakPattern = null;
			// サービス契約回線内訳番号
			String svcKeiKaisenUcwkNo = null;
			// 住所変更中ネット解約（NET+TEL契約中）チェック
			for(int i = 0; i < kojiakInfoArray.length; i++)
			{
				kojiakPattern = updatePatternList.get(i);
				// 工事案件番号に紐付くサービス契約_工事案件のデータは複数件存在する場合でも
				// サービス契約回線内訳番号は同じなので一件目の番号を取得する
				CAANMsg[] ku0081MsgArray = svcKeiKojiakMap.get(kojiakInfoArray[i].getString(KU0011ETMsg.KOJIAK_NO));
				svcKeiKaisenUcwkNo = ku0081MsgArray[0].getString(KU0081ETMsg.SVC_KEI_KAISEN_UCWK_NO);
				
				// 振る舞いパターン9:受付中までの工事案件(NET+TEL→TEL)または10:工事中の工事案件(NET+TEL→TEL)
				// 且つスキーマのサービス契約回線内訳番号とインプットのサービス契約内訳番号が異なる
				if((JKUStrConst.HRMI_PATTERN_MT_09.equals(kojiakPattern) || JKUStrConst.HRMI_PATTERN_MT_10.equals(kojiakPattern))
						&& !svcKeiKaisenUcwkNo.equals(inCBSMsg.getString(EKU0061C020CBSMsg.SVC_KEI_KAISEN_UCWK_NO)))
				{
					// サービス契約番号エラーを設定
					inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "ER");
					// ステータスを設定
					inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
					return;
				}
			}
		}
		
		// ---機能コードを確認する
		
		// 機能コード1以外の場合はチェックのみのため処理を終了する
		if (!JPCModelConstant.FUNC_CD_1.equals(inCBSMsg.getString(EKU0061C020CBSMsg.FUNC_CODE)))
		{
			return;
		}
		
		// -------------------------------
		// --- 更新処理
		// -------------------------------
		
		// ---更新処理を実行する
		
		// 工事案件パターン
		String kojiakPattern = null;
		// 工事案件
		CAANMsg kojiakInfo = null;
		
		// 全ての工事案件情報で実行する
		for (int i = 0; i < kojiakInfoArray.length; ++i)
		{
			// 対象の工事案件パターン
			kojiakPattern = updatePatternList.get(i);
			// 対象の工事案件情報
			kojiakInfo = kojiakInfoArray[i];
			
			// ---パターンによる分岐
			
			// 解約処理（受付済み：NET）
			if (JKUStrConst.HRMI_PATTERN_MT_01.equals(kojiakPattern))
			{
				if (false == updateUktkNet(inCBSMsg, inContext, kojiakInfo))
				{
					return;
				}
			}
			// 解約処理（仕掛中工事,最新基本工事：NET）
			else if (JKUStrConst.HRMI_PATTERN_MT_02.equals(kojiakPattern))
			{
				if (false == updateSkkrKojiNet(inCBSMsg, inContext, kojiakInfo))
				{
					return;
				}
			}
			// 解約処理（最新基本工事(イーサ)：NET）※未使用
			else if (JKUStrConst.HRMI_PATTERN_MT_03.equals(kojiakPattern))
			{
				if (false == updateKhnKojiNet(inCBSMsg, inContext, kojiakInfo))
				{
					return;
				}
			}
			// 解約処理（外部連携終了）
			else if (JKUStrConst.HRMI_PATTERN_MT_04.equals(kojiakPattern))
			{
				if (false == updateGaibu(inCBSMsg, inContext, kojiakInfo))
				{
					return;
				}
			}
			// 回線撤去処理（提供中サービスあり）
			else if (JKUStrConst.HRMI_PATTERN_MT_05.equals(kojiakPattern))
			{
				if (false == insertTekkyoWithSvc(inCBSMsg, inContext, kojiakInfo))
				{
					return;
				}
			}
			// 解約処理（受付済み:TEL）
			else if (JKUStrConst.HRMI_PATTERN_MT_06.equals(kojiakPattern))
			{
				if (false == updateUktkTel(inCBSMsg, inContext, kojiakInfo))
				{
					return;
				}
			}
			// 解約処理（仕掛中工事,最新基本工事：TEL）
			else if (JKUStrConst.HRMI_PATTERN_MT_07.equals(kojiakPattern))
			{
				if (false == updateSkkrKojiTel(inCBSMsg, inContext, kojiakInfo))
				{
					return;
				}
			}
			// 解約処理（最新基本工事(イーサ)：TEL）※未使用
			else if (JKUStrConst.HRMI_PATTERN_MT_08.equals(kojiakPattern))
			{
				if (false == updateKhnKojiTel(inCBSMsg, inContext, kojiakInfo))
				{
					return;
				}
			}
			// 解約処理（受付済み：NET（NET＋TEL））
			else if (JKUStrConst.HRMI_PATTERN_MT_09.equals(kojiakPattern))
			{
				if (false == updateUktkNet2(inCBSMsg, inContext, kojiakInfo))
				{
					return;
				}
			}
			// 解約処理（工事中：NET（NET+TEL））
			else if (JKUStrConst.HRMI_PATTERN_MT_10.equals(kojiakPattern))
			{
				if (false == updateKojiNet(inCBSMsg, inContext, kojiakInfo))
				{
					return;
				}
			}
			// 解約処理（最新基本工事：NET（NET+TEL））
			else if (JKUStrConst.HRMI_PATTERN_MT_11.equals(kojiakPattern))
			{
				if (false == updateKhnKojiNet2(inCBSMsg, inContext, kojiakInfo))
				{
					return;
				}
			}
			// 解約処理（受付済み：TEL（NET+TEL））
			else if (JKUStrConst.HRMI_PATTERN_MT_12.equals(kojiakPattern))
			{
				if (false == updateUktkTel2(inCBSMsg, inContext, kojiakInfo))
				{
					return;
				}
			}
			// 解約処理（工事中：TEL（TEL+NET））
			else if (JKUStrConst.HRMI_PATTERN_MT_13.equals(kojiakPattern))
			{
				if (false == updateKojiTel(inCBSMsg, inContext, kojiakInfo))
				{
					return;
				}
			}
			// 解約処理（最新基本工事：TEL（NET+TEL））
			else if (JKUStrConst.HRMI_PATTERN_MT_14.equals(kojiakPattern))
			{
				if (false == updateKhnKojiTel2(inCBSMsg, inContext, kojiakInfo))
				{
					return;
				}
			}
			// 回線撤去作業（提供中サービス無し）
			else if (JKUStrConst.HRMI_PATTERN_MT_15.equals(kojiakPattern))
			{
				if (false == insertTekkyoWithoutSvc(inCBSMsg, inContext, kojiakInfo))
				{
					return;
				}
			}
			// エラー
			else if (JKUStrConst.HRMI_PATTERN_MT_16.equals(kojiakPattern))
			{
				// サービス契約番号エラーを設定
				inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EE");
				// ステータスを設定
				inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
				return;
			}
		}
		
		// ---アウトプット項目の設定
		
		// 登録年月日時分秒
		inCBSMsg.set(EKU0061C020CBSMsg.ADD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 登録オペレータアカウント
		inCBSMsg.set(EKU0061C020CBSMsg.ADD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		// 更新年月日時分秒
		inCBSMsg.set(EKU0061C020CBSMsg.UPD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント
		inCBSMsg.set(EKU0061C020CBSMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		// 無効フラグ
		inCBSMsg.set(EKU0061C020CBSMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);

	}
	
	/**
	 * 工事案件情報取得処理（撤去）
	 * @param inCBSMsg	CBSメッセージ
	 * @param inContext	ディスパッチコンテキスト
	 * @return	工事案件情報配列
	 */
	private CAANMsg[] getKojiakInfoTekkyo(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// ---工事案件データ取得
		
		CAANMsg[] kojiakArray = JKUModelCommon.getKU0011DoitsuKoji(inCBSMsg.getString(EKU0061C020CBSMsg.SVC_KEI_KAISEN_UCWK_NO),
				inCBSMsg.getString(EKU0061C020CBSMsg.PRC_GRP_CD));
		
		// ---データ件数チェック
		
		if (null == kojiakArray || kojiakArray.length == 0)
		{
			// サービス契約回線内訳番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_KAISEN_UCWK_NO_ERR, "EA");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return null;
		}
		
		return kojiakArray;
	}
	
	/**
	 * 工事案件情報取得処理（解約）
	 * @param inCBSMsg	CBSメッセージ
	 * @param inContext	ディスパッチコンテキスト
	 * @return	工事案件情報配列
	 * @throws CAANException
	 */
	private CAANMsg[] getKojiakInfoKaiyaku(CAANMsg inCBSMsg, AgentDispatchContext inContext) throws CAANException
	{
		// ---サービス契約_工事案件データ取得
		
		JKUejbKU0081SecProc ku0081SecProc = new JKUejbKU0081SecProc();
		CAANMsg ku0081Msg = new CAANMsg(KU0081ETMsg.class.getName());
		
		// サービス契約番号
		ku0081Msg.set(KU0081ETMsg.SVC_KEI_NO, inCBSMsg.getString(EKU0061C020CBSMsg.SVC_KEI_NO));
		// サービス契約_工事案件適用終了年月日
		ku0081Msg.set(KU0081ETMsg.SVKEI_KOJIAK_TENDYMD, JKUStrConst.MAX_YMD);
		// 無効フラグ
		ku0081Msg.set(KU0081ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		// 検索を実行する
		CAANMsg[] ku0081MsgArray = ku0081SecProc.findByCondition(ku0081Msg);
		
		// ---工事案件データ取得
		
		JKUejbKU0011SecProc ku0011SecProc = new JKUejbKU0011SecProc();
		CAANMsg ku0011Msg = null;
		List<CAANMsg> kojiakInfoList = new ArrayList<CAANMsg>();
		
		if (null != ku0081MsgArray && ku0081MsgArray.length != 0)
		{
			for (int i = 0; i < ku0081MsgArray.length; ++i)
			{
				ku0011Msg = new CAANMsg(KU0011ETMsg.class.getName());
				// 工事案件番号
				ku0011Msg.set(KU0011ETMsg.KOJIAK_NO, ku0081MsgArray[i].getString(KU0081ETMsg.KOJIAK_NO));
				// 検索実行
				ku0011Msg = ku0011SecProc.findByPrimaryKey(ku0011Msg, true);
				
				//結果を設定する
				if (null != ku0011Msg)
				{
					kojiakInfoList.add(ku0011Msg);
				}
			}
		}
		
		// ---データ件数チェック
		
		if (kojiakInfoList.size() == 0)
		{
			// サービス契約番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EA");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return null;
		}
		
		// リストを配列化して返す
		return kojiakInfoList.toArray(new CAANMsg[kojiakInfoList.size()]);
	}
	
	/**
	 * 解約処理（受付済み：NET）
	 * @param inCBSMsg	CBSメッセージ
	 * @param inContext	ディスパッチコンテキスト
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateUktkNet(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakInfo) throws CAANException
	{
		
		// ---更新の実行
		
		// 工事案件
		if (false == updateKU0011_No1(inCBSMsg, kojiakInfo))
		{
			// 内部でのチェック無し
			return false;
		}
		// サービス契約_工事案件の更新
		if (false == updateKU0081_No1(inCBSMsg, kojiakInfo))
		{
			// 存在チェックエラー
			
			// サービス契約番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EF");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			
			return false;
		}
		// 先行設計の更新
		if (false == updateKU0101_No1(inCBSMsg, kojiakInfo))
		{
			// 内部でのチェック無し
			return false;
		}
		// 設定工事の更新
		if (false == updateKU0111_No1(inCBSMsg, kojiakInfo))
		{
			// 内部でのチェック無し
			return false;
		}
		
		return true;
	}
	
	/**
	 * 解約処理（仕掛中工事,最新基本工事：NET）
	 * @param inCBSMsg	CBSメッセージ
	 * @param inContext	ディスパッチコンテキスト
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateSkkrKojiNet(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakInfo) throws CAANException
	{
		// 工事案件の更新
		if (false == updateKU0011_No2(inCBSMsg, kojiakInfo))
		{
			// 内部でのチェック無し
			
			return false;
		}
		
		// サービス契約_工事案件の更新
		if (false == updateKU0081_No1(inCBSMsg, kojiakInfo))
		{
			// 存在チェックエラー
			
			// サービス契約番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EF");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}
		
		return true;
	}
	
	/**
	 * 解約処理（最新基本工事(イーサ)：NET）
	 * @param inCBSMsg	CBSメッセージ
	 * @param inContext	ディスパッチコンテキスト
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateKhnKojiNet(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakInfo) throws CAANException
	{
		// 工事案件の更新
		if (false == updateKU0011_No2(inCBSMsg, kojiakInfo))
		{
			// 内部でのチェック無し
			
			return false;
		}
		
		// サービス契約_工事案件の更新
		if (false == updateKU0081_No1(inCBSMsg, kojiakInfo))
		{
			// 存在チェックエラー
			
			// サービス契約番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EF");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}
		
		// ---マンションイーサネット（その他光コンセントを除く光配線以外）の場合のみ連携用データの作成を実行する
		
		String mansPattern = checkKeiyakuInCBSMsg(inCBSMsg);
		
		String newKojiakNo = null;
		if (MANS_ETH.equals(mansPattern))
		{
			// ---工事案件の登録
			
			newKojiakNo = insertKU0011_No7(inCBSMsg, kojiakInfo);
			if (null == newKojiakNo)
			{
				// 採番エラー
				inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EI");
				// ステータスを設定
				inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
				return false;
			}
			
			// ---工事案件＜eo光ネットマンション＞の登録
			
			if (false == insertKU0061_No4(inCBSMsg, kojiakInfo, newKojiakNo))
			{
				return false;
			}
			
			// ---サービス契約_工事案件の登録
			
			if (false == insertKU0081_No5(inCBSMsg, kojiakInfo, newKojiakNo))
			{
				return false;
			}
			
			// ---申込明細_工事案件の登録
			
			if (false == insertKU0091_No2(inCBSMsg, newKojiakNo))
			{
				return false;
			}
		}
		
		return true;
	}

	
	/**
	 * 解約処理（外部連携終了）
	 * @param inCBSMsg	CBSメッセージ
	 * @param inContext	ディスパッチコンテキスト
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateGaibu(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakInfo) throws CAANException
	{
		// サービス契約_工事案件の更新
		if (false == updateKU0081_No1(inCBSMsg, kojiakInfo))
		{
			// 存在チェックエラー
			
			// サービス契約番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EF");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			
			return false;
		}
		
		return true;
	}

	
	/**
	 * 回線撤去処理（提供中サービスあり）
	 * @param inCBSMsg	CBSメッセージ
	 * @param inContext	ディスパッチコンテキスト
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean insertTekkyoWithSvc(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakInfo) throws CAANException
	{
		// ---最新基本工事チェック
		
		// 最新基本情報の工事案件でなければ、処理を行わず終了する
		if (!JKUStrConst.CD00882_RCNT_KIHON_KOJI.equals(kojiakInfo.getString(KU0011ETMsg.RCNT_KIHON_KOJI_FLG)))
		{
			return true;
		}
		
		// ---工事案件番号を採番する
		
		// 共通部品を使用し、採番を行う
		String kojiakNo = JKUejbNumberParts.getKojiakNoString(kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO), inCBSMsg);
		
		if (null == kojiakNo || "".equals(kojiakNo))
		{
			// 申込書番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.MSKMSHO_NO_ERR, "EI");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}
		
		// 工事案件番号をCBSメッセージに設定する
		inCBSMsg.set(EKU0061C020CBSMsg.KOJIAK_NO, kojiakNo);
		
		// ---更新処理
		
		// 工事受付コード
		String kojiUkCd = inCBSMsg.getString(EKU0061C020CBSMsg.KOJI_UK_CD);
		// 工事受付詳細コード
		String kojiUkDtailCd = inCBSMsg.getString(EKU0061C020CBSMsg.KOJI_UK_DTAIL_CD);
		// 面開発案件番号
		String menkaihatAnkenNo = null;
		// リンクSTBフラグ
		String linkStbFlg = "0";
		// 料金グループコード
		String prcGrpCd = inCBSMsg.getString(EKU0061C020CBSMsg.PRC_GRP_CD);
		// PON種別コード
		String ponSbtCd = null;
		// 料金コースPON条件コード
		String pcrsPonJokenCd = null;
		// マンション物件コード
		String mansBukkenCd = inCBSMsg.getString(EKU0061C020CBSMsg.MANSION_BUKKEN_CD);
		// ANK-4315-00-00 ADD START
		// ONU交換要否
		String onuKokanYh = null;
		// ANK-4315-00-00 ADD END
		
		// 工事案件種別取得
		// ANK-4315-00-00 MOD START
//		String kojiakSbtCd = JKUModelCommon.getKojiakSbtCd(kojiUkCd, kojiUkDtailCd, menkaihatAnkenNo,
//				linkStbFlg, prcGrpCd, ponSbtCd, pcrsPonJokenCd, mansBukkenCd);
		String kojiakSbtCd = JKUModelCommon.getKojiakSbtCd(kojiUkCd, kojiUkDtailCd, menkaihatAnkenNo,
				linkStbFlg, prcGrpCd, ponSbtCd, pcrsPonJokenCd, mansBukkenCd,
				onuKokanYh
				);
		// ANK-4315-00-00 MOD END
		
		// 同時代表工事案件番号の取得
		String dojiDaihyoKojiakNo = JKUModelCommon.getSimRepKojiakNoNotFindByPk(
				kojiakSbtCd, inCBSMsg.getString(EKU0061C020CBSMsg.PRC_GRP_CD),
				inCBSMsg.getString(EKU0061C020CBSMsg.MANSION_BUKKEN_CD), inCBSMsg.getString(EKU0061C020CBSMsg.MANS_TUSHIN_EQUIP_CD),
				inCBSMsg.getString(EKU0061C020CBSMsg.IP_HRADSI_CD), inCBSMsg.getString(EKU0061C020CBSMsg.SVC_KEI_KAISEN_UCWK_NO));
		
		// 工事案件の登録
		if (false == insertKU0011_No3(inCBSMsg, kojiakInfo, dojiDaihyoKojiakNo))
		{
			// 内部でのチェック無し
			
			return false;
		}
		// 同時代表工事案件の更新
		if (false == updateKU0011_Dojidaihyo(inCBSMsg, inContext, kojiakInfo, dojiDaihyoKojiakNo))
		{
			// 同時代表工事案件更新失敗
			
			// 申込書番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.MSKMSHO_NO_ERR, "EQ");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}
		// 工事案件_光ネットマンションの登録
		if (false == insertKU0061_No1(inCBSMsg, kojiakInfo))
		{
			// 内部でのチェック無し
			
			return false;
		}
		// サービス契約_工事案件の更新
		if (false == insertKU0081_No2(inCBSMsg, kojiakInfo))
		{
			// 内部でのチェック無し
			
			return false;
		}
		
		// 同一工事対象のサービス契約_工事案件の更新
		JKUejbKU0081SecProc ku0081SecProc = new JKUejbKU0081SecProc();
		CAANMsg ku0081Msg = new CAANMsg(KU0081ETMsg.class.getName());
		// 工事案件番号
		ku0081Msg.set(KU0081ETMsg.KOJIAK_NO, kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO));
		// サービス契約＿工事案件適用終了年月日
		ku0081Msg.set(KU0081ETMsg.SVKEI_KOJIAK_TENDYMD, JKUStrConst.MAX_YMD);
		// 無効フラグ
		ku0081Msg.set(KU0081ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		CAANMsg[] ku0081MsgArray = ku0081SecProc.findByCondition(ku0081Msg);
		if (null != ku0081MsgArray && ku0081MsgArray.length > 1)
		{
			// サービスコードが異なる場合のみ更新を行う
			for (int i = 0; i < ku0081MsgArray.length; ++i)
			{
				if (null != ku0081MsgArray[i].getString(KU0081ETMsg.SVC_CD)
						&& !ku0081MsgArray[i].getString(KU0081ETMsg.SVC_CD).equals(inCBSMsg.getString(EKU0061C020CBSMsg.SVC_CD)))
				{
					if (false == insertKU0081_No3(inCBSMsg, kojiakInfo, ku0081MsgArray[i]))
					{
						// 内部でのチェック無し
						
						return false;
					}
				}
			}
		}
		
		// 工事案件対象宅内機器の登録
		if (false == insertKU0141(inCBSMsg, kojiakInfo))
		{
			// 内部でのチェック無し
			
			return false;
		}
		// 申込明細_工事案件の登録
		if (false == insertKU0091(inCBSMsg, kojiakInfo))
		{
			// 内部でのチェック無し
			
			return false;
		}
		
		return true;
	}
	
	/**
	 * 解約処理（受付済み：TEL)
	 * @param inCBSMsg	CBSメッセージ
	 * @param inContext	ディスパッチコンテキスト
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateUktkTel(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakInfo) throws CAANException
	{
		
		// 工事案件の更新
		if (false == updateKU0011_No1(inCBSMsg, kojiakInfo))
		{
			// 内部でのチェック無し
			
			return false;
		}
		// サービス契約_工事案件の更新
		if (false == updateKU0081_No1(inCBSMsg, kojiakInfo))
		{
			// 存在チェックエラー
			
			// サービス契約番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EF");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			
			return false;
		}
		// 先行設計の更新処理
		if (false == updateKU0101_No1(inCBSMsg, kojiakInfo))
		{
			// 内部でのチェック無し
			return false;
		}
		// 設定工事の更新
		if (false == updateKU0111_No1(inCBSMsg, kojiakInfo))
		{
			// 内部でのチェック無し
			return false;
		}
		
		return true;
	}
	
	/**
	 * 解約処理（仕掛中工事,最新基本工事：TEL）
	 * @param inCBSMsg	CBSメッセージ
	 * @param inContext	ディスパッチコンテキスト
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateSkkrKojiTel(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakInfo) throws CAANException
	{
		
		// 工事案件の更新
		if (false == updateKU0011_No2(inCBSMsg, kojiakInfo))
		{
			// 内部でのチェック無し
			
			return false;
		}
		
		// サービス契約_工事案件の更新
		if (false == updateKU0081_No1(inCBSMsg, kojiakInfo))
		{
			// 存在チェックエラー
			
			// サービス契約番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EF");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			
			return false;
		}
		
		return true;
	}
	
	/**
	 * 解約処理（最新基本工事(イーサ)：TEL）
	 * @param inCBSMsg	CBSメッセージ
	 * @param inContext	ディスパッチコンテキスト
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateKhnKojiTel(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakInfo) throws CAANException
	{
		
		// 工事案件の更新
		if (false == updateKU0011_No2(inCBSMsg, kojiakInfo))
		{
			// 内部でのチェック無し
			
			return false;
		}
		
		// サービス契約_工事案件の更新
		if (false == updateKU0081_No1(inCBSMsg, kojiakInfo))
		{
			// 存在チェックエラー
			
			// サービス契約番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EF");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			
			return false;
		}
		
		// ---マンションイーサネット（その他光コンセントを除く光配線以外）の場合のみ連携用データの作成を実行する
		
		String mansPattern = checkKeiyakuInCBSMsg(inCBSMsg);
		
		String newKojiakNo = null;
		if (MANS_ETH.equals(mansPattern))
		{
			// ---工事案件の登録
			
			newKojiakNo = insertKU0011_No7(inCBSMsg, kojiakInfo);
			if (null == newKojiakNo)
			{
				// 採番エラー
				inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EI");
				// ステータスを設定
				inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
				return false;
			}
			
			// ---工事案件＜eo光ネットマンション＞の登録
			
			if (false == insertKU0061_No4(inCBSMsg, kojiakInfo, newKojiakNo))
			{
				return false;
			}
			
			// ---サービス契約_工事案件の登録
			
			if (false == insertKU0081_No5(inCBSMsg, kojiakInfo, newKojiakNo))
			{
				return false;
			}
			
			// ---申込明細_工事案件の登録
			
			if (false == insertKU0091_No2(inCBSMsg, newKojiakNo))
			{
				return false;
			}
		}
		
		return true;
	}
	
	/**
	 * 解約処理（受付済み：NET（NET+TEL））
	 * @param inCBSMsg	CBSメッセージ
	 * @param inContext	ディスパッチコンテキスト
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateUktkNet2(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakInfo) throws CAANException
	{
		// ---更新情報の取得

		// サービス契約_工事案件情報を取得
		CAANMsg ku0081Msg = getTelKu0081(kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO),
				inCBSMsg.getString(EKU0061C020CBSMsg.SVC_KEI_NO));
		
		if (null == ku0081Msg)
		{
			// 存在チェックエラー
			
			// サービス契約番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EK");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			
			return false;
		}
		
		// サービス契約番号を元に取得するMap
		HashMap<String, String> svcKeiInfoMap = JKUModelCommon.getSvcKeiInfo(ku0081Msg.getString(KU0081ETMsg.SVC_KEI_NO));

		if (null == svcKeiInfoMap)
		{
			// 存在チェックエラー
			
			// サービス契約番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EL");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			
			return false;
		}
		// SYSIDを元に取得するMap
		HashMap<String, String> sysIdInfoMap = JKUModelCommon.getCustInfo(ku0081Msg.getString(KU0081ETMsg.SYSID));
		
		if (null == sysIdInfoMap)
		{
			// 存在チェックエラー
			
			// SYSIDエラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.SYSID_ERR, "EM");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			
			return false;
		}
		
		// ---更新実行
		
		// 工事案件の更新
		if (false == updateKU0011_No4(inCBSMsg, kojiakInfo, svcKeiInfoMap, sysIdInfoMap, ku0081Msg))
		{
			// 内部でのチェック無し
			
			return false;
		}
		
		// マンション物件コードがNULLはネット、NULLでない場合はマンション
		if (kojiakInfo.isNull(KU0011ETMsg.MANSION_BUKKEN_CD))
		{
			// 存在チェックエラー
			
			// サービス契約番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EA");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			
			return false;
		}
		else
		{
			// 工事案件_光ネットマンションの登録
			if (false == updateKU0061_No2(inCBSMsg, kojiakInfo))
			{
				// 存在チェックエラー
				
				// サービス契約番号エラーを設定
				inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EJ");
				// ステータスを設定
				inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
				
				return false;
			}
		}
			
		// サービス契約_工事案件の更新
		if (false == updateKU0081_No1(inCBSMsg, kojiakInfo))
		{
			// 存在チェックエラー
			
			// サービス契約番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EF");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			
			return false;
		}
		// 先行設計の更新
		if (false == updateKU0101_No2(inCBSMsg, kojiakInfo, svcKeiInfoMap, sysIdInfoMap, ku0081Msg))
		{
			// 内部でのチェック無し
			return false;
		}
		// 設定工事の更新
		if (false == updateKU0111_No3(inCBSMsg, kojiakInfo, svcKeiInfoMap))
		{
			// 内部でのチェック無し
			return false;
		}
		return true;
	}
	
	/**
	 * 解約処理（工事中：NET（NET+TEL））
	 * @param inCBSMsg	CBSメッセージ
	 * @param inContext	ディスパッチコンテキスト
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateKojiNet(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakInfo) throws CAANException
	{
		// ---更新情報の取得
		
		// サービス契約_工事案件情報を取得
		CAANMsg ku0081Msg = getTelKu0081(kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO),
				inCBSMsg.getString(EKU0061C020CBSMsg.SVC_KEI_NO));
		
		if (null == ku0081Msg)
		{
			// 存在チェックエラー
			
			// サービス契約番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EK");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			
			return false;
		}
		
		// サービス契約番号を元に取得するMap
		HashMap<String, String> svcKeiInfoMap = JKUModelCommon.getSvcKeiInfo(ku0081Msg.getString(KU0081ETMsg.SVC_KEI_NO));
		
		if (null == svcKeiInfoMap)
		{
			// 存在チェックエラー
			
			// サービス契約番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EL");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			
			return false;
		}
		
		// SYSIDを元に取得するMap
		HashMap<String, String> sysIdInfoMap = JKUModelCommon.getCustInfo(ku0081Msg.getString(KU0081ETMsg.SYSID));

		if (null == sysIdInfoMap)
		{
			// 存在チェックエラー
			
			// SYSIDエラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.SYSID_ERR, "EM");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			
			return false;
		}
		
		// ---更新実行
		
		// 工事案件の更新
		if (false == updateKU0011_No5(inCBSMsg, kojiakInfo, svcKeiInfoMap, sysIdInfoMap, ku0081Msg))
		{
			// 内部でのチェック無し
			
			return false;
		}
		
		// マンション物件コードがNULLはネット、NULLでない場合はマンション
		if (kojiakInfo.isNull(KU0011ETMsg.MANSION_BUKKEN_CD))
		{
			// 存在チェックエラー
			
			// サービス契約番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EA");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			
			return false;
		}
		else
		{
			// 工事案件_光ネットマンションの更新
			if (false == updateKU0061_No2(inCBSMsg, kojiakInfo))
			{
				// 存在チェックエラー
				
				// サービス契約番号エラーを設定
				inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EJ");
				// ステータスを設定
				inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
				
				return false;
			}
		}
			
		// サービス契約_工事案件の更新
		if (false == updateKU0081_No1(inCBSMsg, kojiakInfo))
		{
			// 存在チェックエラー
			
			// サービス契約番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EF");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			
			return false;
		}
		
		return true;
	}
	
	/**
	 * 解約処理（最新基本工事：NET（NET+TEL））
	 * @param inCBSMsg	CBSメッセージ
	 * @param inContext	ディスパッチコンテキスト
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateKhnKojiNet2(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakInfo) throws CAANException
	{
		// ---更新情報の取得
		
		// サービス契約_工事案件情報を取得
		CAANMsg ku0081Msg = getTelKu0081(kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO),
				inCBSMsg.getString(EKU0061C020CBSMsg.SVC_KEI_NO));
		
		if (null == ku0081Msg)
		{
			// 存在チェックエラー
			
			// サービス契約番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EK");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			
			return false;
		}
		
		// サービス契約番号を元に取得するMap
		HashMap<String, String> svcKeiInfoMap = JKUModelCommon.getSvcKeiInfo(ku0081Msg.getString(KU0081ETMsg.SVC_KEI_NO));
		
		if (null == svcKeiInfoMap)
		{
			// 存在チェックエラー
			
			// サービス契約番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EL");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			
			return false;
		}
		
		// SYSIDを元に取得するMap
		HashMap<String, String> sysIdInfoMap = JKUModelCommon.getCustInfo(ku0081Msg.getString(KU0081ETMsg.SYSID));
		
		if (null == sysIdInfoMap)
		{
			// 存在チェックエラー
			
			// SYSIDエラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.SYSID_ERR, "EM");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			
			return false;
		}
		
		// ---更新実行
		
		// 工事案件の更新
		if (false == updateKU0011_No5(inCBSMsg, kojiakInfo, svcKeiInfoMap, sysIdInfoMap, ku0081Msg))
		{
			// 内部でのチェック無し
			
			return false;
		}
		
		// マンション物件コードがNULLはネット、NULLでない場合はマンション
		if (kojiakInfo.isNull(KU0011ETMsg.MANSION_BUKKEN_CD))
		{
			// 存在チェックエラー
			
			// サービス契約番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EA");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			
			return false;
		}
		else
		{
			// 工事案件_光ネットマンションの登録
			if (false == updateKU0061_No5(inCBSMsg, kojiakInfo))
			{
				// 存在チェックエラー
				
				// サービス契約番号エラーを設定
				inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EJ");
				// ステータスを設定
				inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
				
				return false;
			}
		}
			
		// サービス契約_工事案件の更新
		if (false == updateKU0081_No1(inCBSMsg, kojiakInfo))
		{
			// 存在チェックエラー
			
			// サービス契約番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EF");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			
			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(kojiakInfo.getString(KU0011ETMsg.PON_SBT_CD)))
//		if(JKUStrConst.CD00211_GE_PON.equals(kojiakInfo.getString(KU0011ETMsg.PON_SBT_CD))
//			|| JKUStrConst.CD00211_10GE_PON.equals(kojiakInfo.getString(KU0011ETMsg.PON_SBT_CD)))
//// ANK-2612-00-00 MOD END
		// マンションイーサネット（その他光コンセントを除く光配線以外）以外の場合のみ連携用データの作成を実行する
		String mansPattern = checkKeiyakuInCBSMsg(inCBSMsg);
		
// ANK-3652-00-00 MOD START
		// 削除対象の工事案件の最新基本工事フラグが"1"で、マンションイーサネット（その他光コンセントを除く光配線以外）でないとき
//		if(JKUStrConst.CD00882_RCNT_KIHON_KOJI.equals(kojiakInfo.getString(KU0011ETMsg.RCNT_KIHON_KOJI_FLG)) && !(MANS_ETH.equals(mansPattern)))
		if(JKUStrConst.CD00882_RCNT_KIHON_KOJI.equals(kojiakInfo.getString(KU0011ETMsg.RCNT_KIHON_KOJI_FLG))
				&& (!(MANS_ETH.equals(mansPattern)) || ((MANS_ETH.equals(mansPattern)) && checkKeiHkrSocket(inCBSMsg))))
// ANK-3652-00-00 MOD END
// ANK-3334-01-00 MOD END
		{
			// 設定工事_工事案件の更新
			if (false == insertKU0111_No5(inCBSMsg, kojiakInfo, svcKeiInfoMap))
			{
				return false;
			}
		}
		
		return true;
	}
	
	/**
	 * 解約処理（受付済み：TEL（NET+TEL））
	 * @param inCBSMsg	CBSメッセージ
	 * @param inContext	ディスパッチコンテキスト
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateUktkTel2(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakInfo) throws CAANException
	{
		// マンション物件コードがNULLはネット、NULLでない場合はマンション
		if (kojiakInfo.isNull(KU0011ETMsg.MANSION_BUKKEN_CD))
		{
			// 工事案件_光ネットの登録
			if (false == updateKU0021(inCBSMsg, kojiakInfo))
			{
				// 存在チェックエラー
				
				// サービス契約番号エラーを設定
				inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EA");
				// ステータスを設定
				inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
				
				return false;
			}
		}
		else
		{
			// 工事案件_光ネットマンションの登録
			if (false == updateKU0061_No3(inCBSMsg, kojiakInfo))
			{
				// 存在チェックエラー
				
				// サービス契約番号エラーを設定
				inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EJ");
				// ステータスを設定
				inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
				
				return false;
			}
		}
		
		// サービス契約_工事案件の更新
		if (false == updateKU0081_No1(inCBSMsg, kojiakInfo))
		{
			// 存在チェックエラー
			
			// サービス契約番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EF");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			
			return false;
		}
		return true;
	}
	
	/**
	 * 解約処理（工事中：TEL（NET+TEL））
	 * @param inCBSMsg	CBSメッセージ
	 * @param inContext	ディスパッチコンテキスト
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateKojiTel(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakInfo) throws CAANException
	{
		// 工事案件の更新
		if (false == updateKU0011_No6(inCBSMsg, kojiakInfo))
		{
			// 内部でのチェック無し
			
			return false;
		}
		
		// マンション物件コードがNULLはネット、NULLでない場合はマンション
		if (kojiakInfo.isNull(KU0011ETMsg.MANSION_BUKKEN_CD))
		{
			// 工事案件_光ネットの登録
			if (false == updateKU0021(inCBSMsg, kojiakInfo))
			{
				// 存在チェックエラー
				
				// サービス契約番号エラーを設定
				inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EA");
				// ステータスを設定
				inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
				
				return false;
			}
		}
		else
		{
			// 工事案件_光ネットマンションの登録
			if (false == updateKU0061_No3(inCBSMsg, kojiakInfo))
			{
				// 存在チェックエラー
				
				// サービス契約番号エラーを設定
				inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EJ");
				// ステータスを設定
				inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
				
				return false;
			}
		}
		
		// サービス契約_工事案件の更新
		if (false == updateKU0081_No1(inCBSMsg, kojiakInfo))
		{
			// 存在チェックエラー
			
			// サービス契約番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EF");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			
			return false;
		}
		
		return true;
	}
	
	/**
	 * 解約処理（最新基本工事：TEL（NET+TEL））
	 * @param inCBSMsg	CBSメッセージ
	 * @param inContext	ディスパッチコンテキスト
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateKhnKojiTel2(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakInfo) throws CAANException
	{
		// 工事案件の更新処理
		if (false == updateKU0011_No6(inCBSMsg, kojiakInfo))
		{
			// 内部でのチェック無し
			
			return false;
		}
		
		// マンション物件コードがNULLはネット、NULLでない場合はマンション
		if (kojiakInfo.isNull(KU0011ETMsg.MANSION_BUKKEN_CD))
		{
			// 工事案件_光ネットの登録
			if (false == updateKU0021(inCBSMsg, kojiakInfo))
			{
				// 存在チェックエラー
				
				// サービス契約番号エラーを設定
				inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EA");
				// ステータスを設定
				inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
				
				return false;
			}
		}
		else
		{
			// 工事案件_光ネットマンションの登録
			if (false == updateKU0061_No3(inCBSMsg, kojiakInfo))
			{
				// 存在チェックエラー
				
				// サービス契約番号エラーを設定
				inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EJ");
				// ステータスを設定
				inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
				
				return false;
			}
		}
		
		// サービス契約_工事案件の更新
		if (false == updateKU0081_No1(inCBSMsg, kojiakInfo))
		{
			// 存在チェックエラー
			
			// サービス契約番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.SVC_KEI_NO_ERR, "EF");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			
			return false;
		}
		
		return true;
	}
	
	/**
	 * 回線撤去処理（提供中サービスなし）
	 * @param inCBSMsg	CBSメッセージ
	 * @param inContext	ディスパッチコンテキスト
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean insertTekkyoWithoutSvc(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakInfo) throws CAANException
	{
		// ---最新基本工事チェック
		
		// 最新基本情報の工事案件でなければ、処理を行わず終了する
		if (!JKUStrConst.CD00882_RCNT_KIHON_KOJI.equals(kojiakInfo.getString(KU0011ETMsg.RCNT_KIHON_KOJI_FLG)))
		{
			return true;
		}
		
		// ---工事案件番号を採番する
		
		// 共通部品を使用し、採番を行う
		String kojiakNo = JKUejbNumberParts.getKojiakNoString(kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO), inCBSMsg);
		
		if (null == kojiakNo || "".equals(kojiakNo))
		{
			// 申込書番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.MSKMSHO_NO_ERR, "EI");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}
		
		// 工事案件番号をCBSメッセージに設定する
		inCBSMsg.set(EKU0061C020CBSMsg.KOJIAK_NO, kojiakNo);
		
		// ---登録処理
		
		// 工事受付コード
		String kojiUkCd = inCBSMsg.getString(EKU0061C020CBSMsg.KOJI_UK_CD);
		// 工事受付詳細コード
		String kojiUkDtailCd = inCBSMsg.getString(EKU0061C020CBSMsg.KOJI_UK_DTAIL_CD);
		// 面開発案件番号
		String menkaihatAnkenNo = null;
		// リンクSTBフラグ
		String linkStbFlg = "0";
		// 料金グループコード
		String prcGrpCd = inCBSMsg.getString(EKU0061C020CBSMsg.PRC_GRP_CD);
		// PON種別コード
		String ponSbtCd = null;
		// 料金コースPON条件コード
		String pcrsPonJokenCd = null;
		// マンション物件コード
		String mansBukkenCd = inCBSMsg.getString(EKU0061C020CBSMsg.MANSION_BUKKEN_CD);
		// ANK-4315-00-00 ADD START
		// ONU交換要否
		String onuKokanYh = null;
		// ANK-4315-00-00 ADD END
		
		// 工事案件種別取得
		// ANK-4315-00-00 MOD START
//		String kojiakSbtCd = JKUModelCommon.getKojiakSbtCd(kojiUkCd, kojiUkDtailCd, menkaihatAnkenNo,
//				linkStbFlg, prcGrpCd, ponSbtCd, pcrsPonJokenCd, mansBukkenCd);
		String kojiakSbtCd = JKUModelCommon.getKojiakSbtCd(kojiUkCd, kojiUkDtailCd, menkaihatAnkenNo,
				linkStbFlg, prcGrpCd, ponSbtCd, pcrsPonJokenCd, mansBukkenCd,
				onuKokanYh
				);
		// ANK-4315-00-00 MOD END
		
		// 同時代表工事案件番号の取得
		String dojiDaihyoKojiakNo = JKUModelCommon.getSimRepKojiakNoNotFindByPk(
				kojiakSbtCd, inCBSMsg.getString(EKU0061C020CBSMsg.PRC_GRP_CD),
				inCBSMsg.getString(EKU0061C020CBSMsg.MANSION_BUKKEN_CD), inCBSMsg.getString(EKU0061C020CBSMsg.MANS_TUSHIN_EQUIP_CD),
				inCBSMsg.getString(EKU0061C020CBSMsg.IP_HRADSI_CD), inCBSMsg.getString(EKU0061C020CBSMsg.SVC_KEI_KAISEN_UCWK_NO));
		
		// 工事案件の登録
		if (false == insertKU0011_No3(inCBSMsg, kojiakInfo, dojiDaihyoKojiakNo))
		{
			// 内部でのチェック無し
			
			return false;
		}
		// 同時代表工事案件の更新
		if (false == updateKU0011_Dojidaihyo(inCBSMsg, inContext, kojiakInfo, dojiDaihyoKojiakNo))
		{
			// 同時代表工事案件更新失敗
			
			// 申込書番号エラーを設定
			inCBSMsg.set(EKU0061C020CBSMsg.MSKMSHO_NO_ERR, "EQ");
			// ステータスを設定
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}
		// 工事案件_光ネットマンションの登録
		if (false == insertKU0061_No1(inCBSMsg, kojiakInfo))
		{
			// 内部でのチェック無し
			
			return false;
		}
		// サービス契約_工事案件の登録
		if (false == insertKU0081_No4(inCBSMsg, kojiakInfo))
		{
			// 内部でのチェック無し
			
			return false;
		}
		// 工事案件対象宅内機器の登録
		if (false == insertKU0141(inCBSMsg, kojiakInfo))
		{
			// 内部でのチェック無し
			
			return false;
		}
		// 申込明細_工事案件の登録
		if (false == insertKU0091(inCBSMsg, kojiakInfo))
		{
			// 内部でのチェック無し
			
			return false;
		}
		
		return true;
	}
	
	/**
	 * 工事案件更新（工事案件@）
	 * @param inCBSMsg	CBSメッセージ
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateKU0011_No1(CAANMsg inCBSMsg, CAANMsg kojiakInfo) throws CAANException
	{
		// 工事案件副次処理部品
		JKUejbKU0011SecProc ku0011SecProc = new JKUejbKU0011SecProc();
		// 工事案件メッセージ
		CAANMsg ku0011Msg = new CAANMsg(KU0011ETMsg.class.getName());
		
		// 工事案件番号(工事案件情報の工事案件番号)
		ku0011Msg.set(KU0011ETMsg.KOJIAK_NO, kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO));
		
		// 更新対象を取得する
		ku0011Msg = ku0011SecProc.findByPrimaryKey(ku0011Msg, true);
		
		if (null == ku0011Msg)
		{
			return false;
		}
		
		// 契約判定
		String mansPattern = checkKeiyakuInCBSMsg(inCBSMsg);
		
		// マンションイーサネット（その他光コンセントを除く光配線以外）の場合
		if (MANS_ETH.equals(mansPattern))
		{
			// マンション工事案件状態コード(「900：中止」)
			ku0011Msg.set(KU0011ETMsg.MANS_KOJIAK_STAT_CD, JKUStrConst.MANS_KOJIAK_STAT_CD_CHUSHI);
		}
		// マンション光配線(光コンセント以外)、またはメゾンの場合
		else if (MANS_HIKARI.equals(mansPattern) || MZN.equals(mansPattern))
		{
			// 工事案件ステータス(「900：中止」)
			ku0011Msg.set(KU0011ETMsg.KOJIAK_STAT, JKUStrConst.CD00474_CHUSHI);
		}
		
		// 工事案件キャンセル年月日(部品：No.4)
		ku0011Msg.set(KU0011ETMsg.KOJIAK_CANCEL_YMD, JPCModelCommon.getOpeDate(inCBSMsg, null));
		// 更新年月日時分秒(システム日時)
		ku0011Msg.set(KU0011ETMsg.UPD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント(オペレータアカウント)
		ku0011Msg.set(KU0011ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		
		try
		{
			ku0011SecProc.update(ku0011Msg);
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}

		
		return true;
	}
	
	/**
	 * 工事案件更新（工事案件A）
	 * @param inCBSMsg	CBSメッセージ
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateKU0011_No2(CAANMsg inCBSMsg, CAANMsg kojiakInfo) throws CAANException
	{
		// 工事案件副次処理部品
		JKUejbKU0011SecProc ku0011SecProc = new JKUejbKU0011SecProc();
		// 工事案件メッセージ
		CAANMsg ku0011Msg = new CAANMsg(KU0011ETMsg.class.getName());
		
		// 工事案件番号(工事案件情報の工事案件番号を設定)
		ku0011Msg.set(KU0011ETMsg.KOJIAK_NO, kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO));
		
		// 更新対象取得
		ku0011Msg = ku0011SecProc.findByPrimaryKey(ku0011Msg, true);
		
		if (null == ku0011Msg)
		{
			return false;
		}
		// 連携サービス終了年月日
		ku0011Msg.set(KU0011ETMsg.RNKI_SVC_ENDYMD, inCBSMsg.getString(EKU0061C020CBSMsg.SVC_DSL_YMD));
		// 更新年月日時分秒(システム日時)
		ku0011Msg.set(KU0011ETMsg.UPD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント(オペレータアカウント)
		ku0011Msg.set(KU0011ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));

		try
		{
			ku0011SecProc.update(ku0011Msg);
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}
		
		return true;
	}
	
	/**
	 * 工事案件登録（工事案件B）
	 * @param inCBSMsg	CBSメッセージ
	 * @param kojiakInfo	工事案件情報
	 * @param dojiDaihyoKojiakNo	同時代表工事案件番号
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean insertKU0011_No3(CAANMsg inCBSMsg, CAANMsg kojiakInfo, String dojiDaihyoKojiakNo) throws CAANException
	{
		// 工事案件副次処理部品
		JKUejbKU0011SecProc ku0011SecProc = new JKUejbKU0011SecProc();
		// 工事案件メッセージ
		CAANMsg ku0011Msg = new CAANMsg(KU0011ETMsg.class.getName());
		
		// 工事案件番号(採番した工事案件番号)
		ku0011Msg.set(KU0011ETMsg.KOJIAK_NO, inCBSMsg.getString(EKU0061C020CBSMsg.KOJIAK_NO));
		
		// 契約判定
		String mansPattern = checkKeiyakuInCBSMsg(inCBSMsg);
		// マンションイーサネット（その他光コンセントを除く光配線以外）の場合
		if (MANS_ETH.equals(mansPattern))
		{
			// 工事案件ステータス(「120：登録済」)
			ku0011Msg.set(KU0011ETMsg.KOJIAK_STAT, JKUStrConst.CD00474_TOROKU_ZM);
			
			// マンション工事案件状態コード(「130：受付済」)
			ku0011Msg.set(KU0011ETMsg.MANS_KOJIAK_STAT_CD, JKUStrConst.MANS_KOJIAK_STAT_CD_UK_ZM);
		}
		// マンション光配線(光コンセント以外)、またはメゾンの場合
		else if (MANS_HIKARI.equals(mansPattern) || MZN.equals(mansPattern))
		{
			// 工事案件ステータス(「130：受付済」)
			ku0011Msg.set(KU0011ETMsg.KOJIAK_STAT, JKUStrConst.CD00474_UK_ZM);
		}
		
		// SYSID
		ku0011Msg.set(KU0011ETMsg.SYSID, inCBSMsg.getString(EKU0061C020CBSMsg.SYSID));
		// 連携サービス契約番号(工事案件情報の連携サービス契約番号を設定)
		ku0011Msg.set(KU0011ETMsg.RNKI_SVC_KEI_NO, kojiakInfo.getString(KU0011ETMsg.RNKI_SVC_KEI_NO));
		// オーナー契約番号
		ku0011Msg.set(KU0011ETMsg.OWNR_KEI_NO, inCBSMsg.getString(EKU0061C020CBSMsg.OWNR_KEI_NO));
		// P-ID
		ku0011Msg.set(KU0011ETMsg.PID, inCBSMsg.getString(EKU0061C020CBSMsg.PID));
		// 請求契約番号
		ku0011Msg.set(KU0011ETMsg.SEIKY_KEI_NO, inCBSMsg.getString(EKU0061C020CBSMsg.SEIKY_KEI_NO));
		
		// 工事受付コード
		String kojiUkCd = inCBSMsg.getString(EKU0061C020CBSMsg.KOJI_UK_CD);
		// 工事受付詳細コード
		String kojiUkDtailCd = inCBSMsg.getString(EKU0061C020CBSMsg.KOJI_UK_DTAIL_CD);
		
		// 面開発案件番号
		String menkaihatAnkenNo = null;
		// リンクSTBフラグ
		String linkStbFlg = "0";
		// 料金グループコード
		String prcGrpCd = inCBSMsg.getString(EKU0061C020CBSMsg.PRC_GRP_CD);
		// PON種別コード
		String ponSbtCd = null;
		// 料金コースPON条件コード
		String pcrsPonJokenCd = null;
		// マンション物件コード
		String mansBukkenCd = inCBSMsg.getString(EKU0061C020CBSMsg.MANSION_BUKKEN_CD);
		// ANK-4315-00-00 ADD START
		// ONU交換要否
		String onuKokanYh = null;
		// ANK-4315-00-00 ADD END
		
		// 工事案件種別取得
	    // ANK-4315-00-00 MOD START
		//String kojiakSbtCd = JKUModelCommon.getKojiakSbtCd(kojiUkCd, kojiUkDtailCd, menkaihatAnkenNo,
		//		linkStbFlg, prcGrpCd, ponSbtCd, pcrsPonJokenCd, mansBukkenCd);
		String kojiakSbtCd = JKUModelCommon.getKojiakSbtCd(kojiUkCd, kojiUkDtailCd, menkaihatAnkenNo,
				linkStbFlg, prcGrpCd, ponSbtCd, pcrsPonJokenCd, mansBukkenCd,
				onuKokanYh
				);
		// ANK-4315-00-00 MOD END
		// CBSメッセージに登録する
		inCBSMsg.set(EKU0061C020CBSMsg.KOJIAK_SBT_CD, kojiakSbtCd);
		// 工事案件種別コード(部品：No.5)
		ku0011Msg.set(KU0011ETMsg.KOJIAK_SBT_CD, kojiakSbtCd);
		
		// 料金グループコード
		ku0011Msg.set(KU0011ETMsg.PRC_GRP_CD, inCBSMsg.getString(EKU0061C020CBSMsg.PRC_GRP_CD));
		// 料金コースコード
		ku0011Msg.set(KU0011ETMsg.PCRS_CD, inCBSMsg.getString(EKU0061C020CBSMsg.PCRS_CD));
		// 料金プランコード
		ku0011Msg.set(KU0011ETMsg.PPLAN_CD, inCBSMsg.getString(EKU0061C020CBSMsg.PPLAN_CD));
		// 割引タイプコード
		ku0011Msg.set(KU0011ETMsg.WRIB_TYPE_CD, inCBSMsg.getString(EKU0061C020CBSMsg.WRIB_TYPE_CD));
		// 更新対象工事案件番号(工事案件情報の工事案件番号を設定)
		ku0011Msg.set(KU0011ETMsg.UPD_TRGT_KOJIAK_NO, kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO));
		// 申込受付年月日
		ku0011Msg.set(KU0011ETMsg.MSKM_UK_YMD, JPCModelCommon.getOpeDate(inCBSMsg, null));
		// 申込書到着年月日
		ku0011Msg.set(KU0011ETMsg.MSKMSHO_ARIV_YMD, JKUModelCommon.getOpeDate(inCBSMsg, null));
		// 場所番号
		ku0011Msg.set(KU0011ETMsg.PLACE_NO, inCBSMsg.getString(EKU0061C020CBSMsg.PLACE_NO));
		// 工事希望年月日
		ku0011Msg.set(KU0011ETMsg.KOJI_KIBO_YMD, inCBSMsg.getString(EKU0061C020CBSMsg.KOJI_KIBO_YMD));
		
		// 工事案件種別コードが住所変更(撤去)の場合
		if(JKUStrConst.CD00577_AD_CHG_TEKKYO.equals(inCBSMsg.getString(EKU0061C020CBSMsg.KOJIAK_SBT_CD)))
		{
			// 転宅先住所コード
			ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_AD_CD, inCBSMsg.getString(EKU0061C020CBSMsg.TENTAKU_SAKI_AD_CD));
			// 転宅先郵便番号
			ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_PCD, inCBSMsg.getString(EKU0061C020CBSMsg.TENTAKU_SAKI_PCD));
			// 転宅先都道府県名
			ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_STATE_NM, inCBSMsg.getString(EKU0061C020CBSMsg.TENTAKU_SAKI_STATE_NM));
			// 転宅先市区町村名
			ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_CITY_NM, inCBSMsg.getString(EKU0061C020CBSMsg.TENTAKU_SAKI_CITY_NM));
			// 転宅先大字通称名
			ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_OAZTSU_NM, inCBSMsg.getString(EKU0061C020CBSMsg.TENTAKU_SAKI_OAZTSU_NM));
			// 転宅先字丁目名
			ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_AZCHO_NM, inCBSMsg.getString(EKU0061C020CBSMsg.TENTAKU_SAKI_AZCHO_NM));
			// 転宅先住所番地号
			ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_AD_BNCHIGO, inCBSMsg.getString(EKU0061C020CBSMsg.TENTAKU_SAKI_AD_BNCHIGO));
			// 転宅先住所補記・建物名
			ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_ADRTTM, inCBSMsg.getString(EKU0061C020CBSMsg.TENTAKU_SAKI_ADRTTM));
			// 転宅先住所補記・部屋番号
			ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_ADRRM, inCBSMsg.getString(EKU0061C020CBSMsg.TENTAKU_SAKI_ADRRM));
			
			// 転宅前住所コード
			ku0011Msg.set(KU0011ETMsg.TENTAKU_BF_AD_CD, inCBSMsg.getString(EKU0061C020CBSMsg.SETPLACE_AD_CD));
			// 転宅前郵便番号
			ku0011Msg.set(KU0011ETMsg.TENTAKU_BF_PCD, inCBSMsg.getString(EKU0061C020CBSMsg.SETPLACE_PCD));
			// 転宅前都道府県名
			ku0011Msg.set(KU0011ETMsg.TENTAKU_BF_STATE_NM, inCBSMsg.getString(EKU0061C020CBSMsg.SETPLACE_STATE_NM));
			// 転宅前市区町村名
			ku0011Msg.set(KU0011ETMsg.TENTAKU_BF_CITY_NM, inCBSMsg.getString(EKU0061C020CBSMsg.SETPLACE_CITY_NM));
			// 転宅前大字通称名
			ku0011Msg.set(KU0011ETMsg.TENTAKU_BF_OAZTSU_NM, inCBSMsg.getString(EKU0061C020CBSMsg.SETPLACE_OAZTSU_NM));
			// 転宅前字丁目名
			ku0011Msg.set(KU0011ETMsg.TENTAKU_BF_AZCHO_NM, inCBSMsg.getString(EKU0061C020CBSMsg.SETPLACE_AZCHO_NM));
			// 転宅前住所番地号
			ku0011Msg.set(KU0011ETMsg.TENTAKU_BF_AD_BNCHIGO, inCBSMsg.getString(EKU0061C020CBSMsg.SETPLACE_AD_BNCHIGO));
			// 転宅前住所補記・建物名
			ku0011Msg.set(KU0011ETMsg.TENTAKU_BF_ADRTTM, inCBSMsg.getString(EKU0061C020CBSMsg.SETPLACE_ADRTTM));
			// 転宅前住所補記・部屋番号
			ku0011Msg.set(KU0011ETMsg.TENTAKU_BF_ADRRM, inCBSMsg.getString(EKU0061C020CBSMsg.SETPLACE_ADRRM));
// ANK-3136-00-00 ADD START
			// メゾンの場合
			if (MZN.equals(mansPattern))
			{
				// 他システム連携_工事連絡先氏名
				ku0011Msg.set(KU0011ETMsg.TSYRN_KJ_RRKS_NM, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_KJ_RRKS_NM));
				// 他システム連携_工事連絡先電話番号
				ku0011Msg.set(KU0011ETMsg.TSYRN_KJ_RRKS_TLN, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_KJ_RRKS_TLN));
				// 他システム連携_宅内調査時連絡先氏名
				ku0011Msg.set(KU0011ETMsg.TSYRN_TAKCHO_JI_RRKS_NM, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_TAKCHO_JI_RRKS_NM));
				// 他システム連携_宅内調査時連絡先電話番号
				ku0011Msg.set(KU0011ETMsg.TSYRN_TAKCHO_JI_RRKS_TLN, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_TAKCHO_JI_RRKS_TLN));
				// 他システム連携_連絡希望日時
				ku0011Msg.set(KU0011ETMsg.TSYRN_RRK_KIBO_DATE, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_RRK_KIBO_DATE));
				// 他システム連携_工事費用
				ku0011Msg.set(KU0011ETMsg.TSYRN_KOJI_HI, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_KOJI_HI));
				// 他システム連携_宅内調査要否
				ku0011Msg.set(KU0011ETMsg.TSYRN_TAKCHO_YH, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_TAKCHO_YH));
				// 他システム連携_承諾書要否
				ku0011Msg.set(KU0011ETMsg.TSYRN_SDAKS_YH, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_SDAKS_YH));
				// 他システム連携_立会者名
				ku0011Msg.set(KU0011ETMsg.TSYRN_TACHIAISHA_NM, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_TACHIAISHA_NM));
				// 他システム連携_引越し施策要否
				ku0011Msg.set(KU0011ETMsg.TSYRN_HKKS_SISAK_YH, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_HKKS_SISAK_YH));
				// 他システム連携_建替時新設案件要否
				ku0011Msg.set(KU0011ETMsg.TSYRN_TTK_JI_NSANK_YH, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_TTK_JI_NSANK_YH));
				// 他システム連携_地図有無
				ku0011Msg.set(KU0011ETMsg.TSYRN_MAP_UM, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_MAP_UM));
				// 他システム連携_同時工事情報
				ku0011Msg.set(KU0011ETMsg.TSYRN_DOJI_KOJI_INF, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_DOJI_KOJI_INF));
				// 他システム連携_既存契約情報
				ku0011Msg.set(KU0011ETMsg.TSYRN_KZN_KEI_INF, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_KZN_KEI_INF));
				// 他システム連携_不備解消年月日
				ku0011Msg.set(KU0011ETMsg.TSYRN_HBI_KAISHOU_YMD, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_HBI_KAISHOU_YMD));
				// 他システム連携_キャンペーン情報
				ku0011Msg.set(KU0011ETMsg.TSYRN_CAMPAIGN_INF, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_CAMPAIGN_INF));
			}
// ANK-3136-00-00 ADD END
		}
		else
		{
			// 転宅先住所コード
			ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_AD_CD, inCBSMsg.getString(EKU0061C020CBSMsg.SETPLACE_AD_CD));
			// 転宅先郵便番号
			ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_PCD, inCBSMsg.getString(EKU0061C020CBSMsg.SETPLACE_PCD));
			// 転宅先都道府県名
			ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_STATE_NM, inCBSMsg.getString(EKU0061C020CBSMsg.SETPLACE_STATE_NM));
			// 転宅先市区町村名
			ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_CITY_NM, inCBSMsg.getString(EKU0061C020CBSMsg.SETPLACE_CITY_NM));
			// 転宅先大字通称名
			ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_OAZTSU_NM, inCBSMsg.getString(EKU0061C020CBSMsg.SETPLACE_OAZTSU_NM));
			// 転宅先字丁目名
			ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_AZCHO_NM, inCBSMsg.getString(EKU0061C020CBSMsg.SETPLACE_AZCHO_NM));
			// 転宅先住所番地号
			ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_AD_BNCHIGO, inCBSMsg.getString(EKU0061C020CBSMsg.SETPLACE_AD_BNCHIGO));
			// 転宅先住所補記・建物名
			ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_ADRTTM, inCBSMsg.getString(EKU0061C020CBSMsg.SETPLACE_ADRTTM));
			// 転宅先住所補記・部屋番号
			ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_ADRRM, inCBSMsg.getString(EKU0061C020CBSMsg.SETPLACE_ADRRM));
// ANK-3136-00-00 ADD START
			// メゾンの場合
			if (MZN.equals(mansPattern))
			{
				// 設備流用有無
				ku0011Msg.set(KU0011ETMsg.EQUIP_RYUYO_UM, inCBSMsg.getString(EKU0061C020CBSMsg.EQUIP_RYUYO_UM));
				// 設備流用工事完了希望年月日
				ku0011Msg.set(KU0011ETMsg.SBRY_KJ_FIN_KIBOYMD, inCBSMsg.getString(EKU0061C020CBSMsg.SBRY_KJ_FIN_KIBOYMD));
				// 他システム連携_工事連絡先氏名
				ku0011Msg.set(KU0011ETMsg.TSYRN_KJ_RRKS_NM, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_KJ_RRKS_NM));
				// 他システム連携_工事連絡先電話番号
				ku0011Msg.set(KU0011ETMsg.TSYRN_KJ_RRKS_TLN, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_KJ_RRKS_TLN));
				// 他システム連携_宅内調査時連絡先氏名
				ku0011Msg.set(KU0011ETMsg.TSYRN_TAKCHO_JI_RRKS_NM, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_TAKCHO_JI_RRKS_NM));
				// 他システム連携_宅内調査時連絡先電話番号
				ku0011Msg.set(KU0011ETMsg.TSYRN_TAKCHO_JI_RRKS_TLN, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_TAKCHO_JI_RRKS_TLN));
				// 他システム連携_連絡希望日時
				ku0011Msg.set(KU0011ETMsg.TSYRN_RRK_KIBO_DATE, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_RRK_KIBO_DATE));
				// 他システム連携_工事費用
				ku0011Msg.set(KU0011ETMsg.TSYRN_KOJI_HI, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_KOJI_HI));
				// 他システム連携_宅内調査要否
				ku0011Msg.set(KU0011ETMsg.TSYRN_TAKCHO_YH, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_TAKCHO_YH));
				// 他システム連携_承諾書要否
				ku0011Msg.set(KU0011ETMsg.TSYRN_SDAKS_YH, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_SDAKS_YH));
				// 他システム連携_立会者名
				ku0011Msg.set(KU0011ETMsg.TSYRN_TACHIAISHA_NM, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_TACHIAISHA_NM));
				// 他システム連携_引越し施策要否
				ku0011Msg.set(KU0011ETMsg.TSYRN_HKKS_SISAK_YH, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_HKKS_SISAK_YH));
				// 他システム連携_建替時新設案件要否
				ku0011Msg.set(KU0011ETMsg.TSYRN_TTK_JI_NSANK_YH, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_TTK_JI_NSANK_YH));
				// 他システム連携_地図有無
				ku0011Msg.set(KU0011ETMsg.TSYRN_MAP_UM, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_MAP_UM));
				// 他システム連携_同時工事情報
				ku0011Msg.set(KU0011ETMsg.TSYRN_DOJI_KOJI_INF, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_DOJI_KOJI_INF));
				// 他システム連携_既存契約情報
				ku0011Msg.set(KU0011ETMsg.TSYRN_KZN_KEI_INF, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_KZN_KEI_INF));
				// 他システム連携_不備解消年月日
				ku0011Msg.set(KU0011ETMsg.TSYRN_HBI_KAISHOU_YMD, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_HBI_KAISHOU_YMD));
				// 他システム連携_キャンペーン情報
				ku0011Msg.set(KU0011ETMsg.TSYRN_CAMPAIGN_INF, inCBSMsg.getString(EKU0061C020CBSMsg.TSYRN_CAMPAIGN_INF));
			}
// ANK-3136-00-00 ADD END
		}
		
		// 申込者名
		ku0011Msg.set(KU0011ETMsg.MSKMSHA_NM, inCBSMsg.getString(EKU0061C020CBSMsg.MSKMSHA_NM));
		// お客様名
		ku0011Msg.set(KU0011ETMsg.CUST_NM, inCBSMsg.getString(EKU0061C020CBSMsg.CUST_NM));
		// お客様カナ名
		ku0011Msg.set(KU0011ETMsg.CUST_KANA, inCBSMsg.getString(EKU0061C020CBSMsg.CUST_KANA));
		// お客様自宅電話番号
		ku0011Msg.set(KU0011ETMsg.CUST_HOME_TELNO, inCBSMsg.getString(EKU0061C020CBSMsg.CUST_HOME_TEL_NO));
		// お客様携帯電話番号
		ku0011Msg.set(KU0011ETMsg.CUST_KTAI_TELNO, inCBSMsg.getString(EKU0061C020CBSMsg.CUST_KTAI_TEL_NO));
		// お客様連絡先電話番号
		ku0011Msg.set(KU0011ETMsg.CUST_RRKS_TELNO, inCBSMsg.getString(EKU0061C020CBSMsg.CUST_RRKS_TEL_NO));
		// 連絡先勤務先名
		ku0011Msg.set(KU0011ETMsg.RRKS_OFFC_NM, inCBSMsg.getString(EKU0061C020CBSMsg.RRKS_OFFC_NM));
		// 契約者住所コード
		ku0011Msg.set(KU0011ETMsg.KEISHA_AD_CD, inCBSMsg.getString(EKU0061C020CBSMsg.KEISHA_AD_CD));
		// 契約者郵便番号
		ku0011Msg.set(KU0011ETMsg.KEISHA_PCD, inCBSMsg.getString(EKU0061C020CBSMsg.KEISHA_PCD));
		// 契約者都道府県名
		ku0011Msg.set(KU0011ETMsg.KEISHA_STATE_NM, inCBSMsg.getString(EKU0061C020CBSMsg.KEISHA_STATE_NM));
		// 契約者市区町村名
		ku0011Msg.set(KU0011ETMsg.KEISHA_CITY_NM, inCBSMsg.getString(EKU0061C020CBSMsg.KEISHA_CITY_NM));
		// 契約者大字通称名
		ku0011Msg.set(KU0011ETMsg.KEISHA_OAZTSU_NM, inCBSMsg.getString(EKU0061C020CBSMsg.KEISHA_OAZTSU_NM));
		// 契約者字丁目名
		ku0011Msg.set(KU0011ETMsg.KEISHA_AZCHO_NM, inCBSMsg.getString(EKU0061C020CBSMsg.KEISHA_AZCHO_NM));
		// 契約者住所番地号
		ku0011Msg.set(KU0011ETMsg.KEISHA_AD_BNCHIGO, inCBSMsg.getString(EKU0061C020CBSMsg.KEISHA_AD_BNCHIGO));
		// 契約者住所補記・建物名
		ku0011Msg.set(KU0011ETMsg.KEISHA_ADRTTM, inCBSMsg.getString(EKU0061C020CBSMsg.KEISHA_ADRTTM));
		// 契約者住所補記・部屋番号
		ku0011Msg.set(KU0011ETMsg.KEISHA_ADRRM, inCBSMsg.getString(EKU0061C020CBSMsg.KEISHA_ADRRM));
		// 契約者住所手動入力フラグ
		ku0011Msg.set(KU0011ETMsg.KEISHA_AD_MAN_INPUT_FLG, inCBSMsg.getString(EKU0061C020CBSMsg.KEISHA_AD_MAN_INPUT_FLG));
		// マンション物件コード
		ku0011Msg.set(KU0011ETMsg.MANSION_BUKKEN_CD, inCBSMsg.getString(EKU0061C020CBSMsg.MANSION_BUKKEN_CD));
		// 住所形態コード
		ku0011Msg.set(KU0011ETMsg.AD_FORM_CD, inCBSMsg.getString(EKU0061C020CBSMsg.AD_FORM_CD));
		// 工事先住所未確定フラグ
		ku0011Msg.set(KU0011ETMsg.KOJI_SAKI_AD_MI_FIX_FLG, inCBSMsg.getString(EKU0061C020CBSMsg.KOJI_SAKI_AD_MI_FIX_FLG));		
		// 経度(工事案件情報の経度を設定)
		ku0011Msg.set(KU0011ETMsg.LGTD, kojiakInfo.getString(KU0011ETMsg.LGTD));
		// 緯度(工事案件情報の緯度を設定)
		ku0011Msg.set(KU0011ETMsg.LTTD, kojiakInfo.getString(KU0011ETMsg.LTTD));
		// X座標6系(工事案件情報のX座標6系を設定)
		ku0011Msg.set(KU0011ETMsg.XZAHYO_6, kojiakInfo.getString(KU0011ETMsg.XZAHYO_6));
		// Y座標6系(工事案件情報のY座標6系を設定)
		ku0011Msg.set(KU0011ETMsg.YZAHYO_6, kojiakInfo.getString(KU0011ETMsg.YZAHYO_6));
		// X座標5系(工事案件情報のX座標5系を設定)
		ku0011Msg.set(KU0011ETMsg.XZAHYO_5, kojiakInfo.getString(KU0011ETMsg.XZAHYO_5));
		// Y座標5系(工事案件情報のY座標5系を設定)
		ku0011Msg.set(KU0011ETMsg.YZAHYO_5, kojiakInfo.getString(KU0011ETMsg.YZAHYO_5));
		// 座標補正有無(工事案件情報の座標補正有無を設定)
		ku0011Msg.set(KU0011ETMsg.ZAHYO_HOSEI_UM, kojiakInfo.getString(KU0011ETMsg.ZAHYO_HOSEI_UM));
		// 入居階数コード
		ku0011Msg.set(KU0011ETMsg.NYUKYO_FLR_CNT_CD, inCBSMsg.getString(EKU0061C020CBSMsg.NYUKYO_FLR_CNT_CD));
		// 建築階数コード
		ku0011Msg.set(KU0011ETMsg.KCKU_FLR_CNT_CD, inCBSMsg.getString(EKU0061C020CBSMsg.KCKU_FLR_CNT_CD));
		// 方角コード1
		ku0011Msg.set(KU0011ETMsg.DIRECTION_CD_1, inCBSMsg.getString(EKU0061C020CBSMsg.DIRECTION_CD_1));
		// 方角コード2
		ku0011Msg.set(KU0011ETMsg.DIRECTION_CD_2, inCBSMsg.getString(EKU0061C020CBSMsg.DIRECTION_CD_2));
		// 同時代表工事案件番号(部品：No.3)
		ku0011Msg.set(KU0011ETMsg.DOJI_DAIHYO_KOJIAK_NO, dojiDaihyoKojiakNo);
		// 電話連絡希望年月日
		ku0011Msg.set(KU0011ETMsg.TEL_RRK_KIBO_YMD, inCBSMsg.getString(EKU0061C020CBSMsg.TEL_RRK_KIBO_YMD));
		// 電話連絡希望時間帯コード
		ku0011Msg.set(KU0011ETMsg.TEL_RRK_KIBO_TIME_CD, inCBSMsg.getString(EKU0061C020CBSMsg.TEL_RRK_KIBO_TIME_CD));
		// 宅内調査希望アポ期限年月日
		ku0011Msg.set(KU0011ETMsg.TAKCHO_KIBO_APO_KIGEN_YMD, inCBSMsg.getString(EKU0061C020CBSMsg.TAKCHO_KIBO_APO_KIGEN_YMD));
		// 宅内工事希望アポ期限年月日
		ku0011Msg.set(KU0011ETMsg.TNKJ_KIBO_APO_KIGEN_YMD, inCBSMsg.getString(EKU0061C020CBSMsg.TNKJ_KIBO_APO_KIGEN_YMD));
		// 工事アポ連絡先指定コード
		ku0011Msg.set(KU0011ETMsg.KOJI_APO_RRKS_SHITEI_CD, inCBSMsg.getString(EKU0061C020CBSMsg.KOJI_APO_RRKS_SHITEI_CD));
		// 工事アポ連絡先電話番号
		ku0011Msg.set(KU0011ETMsg.KOJI_APO_RRKS_TELNO, inCBSMsg.getString(EKU0061C020CBSMsg.KOJI_APO_RRKS_TELNO));
		// 連絡手段コード
		ku0011Msg.set(KU0011ETMsg.RRK_WAY_CD, inCBSMsg.getString(EKU0061C020CBSMsg.RRK_WAY_CD));
		// 連絡手段補記
		ku0011Msg.set(KU0011ETMsg.RRK_WAY_HOKI, inCBSMsg.getString(EKU0061C020CBSMsg.RRK_WAY_HOKI));
		// 工事受付契機異動区分
		ku0011Msg.set(KU0011ETMsg.KOJI_UK_OPTNTY_IDO_DIV, inCBSMsg.getString(EKU0061C020CBSMsg.KOJI_UK_OPTNTY_IDO_DIV));
		// 工事受付契機異動年月日時分秒
		ku0011Msg.set(KU0011ETMsg.KOJI_UK_OPTNTY_IDO_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.KOJI_UK_OPTNTY_IDO_DTM));
		// 工事案件受付ユーザーID(オペレータアカウント)
		ku0011Msg.set(KU0011ETMsg.KOJIAK_UK_USER_ID, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		// 工事案件連絡事項
		ku0011Msg.set(KU0011ETMsg.KOJIAK_RRK_JIKO, inCBSMsg.getString(EKU0061C020CBSMsg.KOJIAK_BIKO));
		// 工事案件備考1
		ku0011Msg.set(KU0011ETMsg.KOJIAK_BIKO_1, inCBSMsg.getString(EKU0061C020CBSMsg.KOJIAK_BIKO_1));
		// 工事案件備考2
		ku0011Msg.set(KU0011ETMsg.KOJIAK_BIKO_2, inCBSMsg.getString(EKU0061C020CBSMsg.KOJIAK_BIKO_2));
		// 関電営業所コード(工事案件情報の関電営業所コードを設定)
		ku0011Msg.set(KU0011ETMsg.KEPCO_BUSIOFFICE_CD, kojiakInfo.getString(KU0011ETMsg.KEPCO_BUSIOFFICE_CD));
		
		// フラグ初期化処理
		// 最新基本工事フラグ,「最新基本工事でない」を設定
		ku0011Msg.set(KU0011ETMsg.RCNT_KIHON_KOJI_FLG, JKUStrConst.CD00882_RCNT_KIHON_KOJI_NON);
		// 配送作成済みフラグ,「配送未作成」を設定
		ku0011Msg.set(KU0011ETMsg.HAISO_SAKSEI_ZUMI_FLG, JKUStrConst.CD00898_HAISO_MI_SAKUSEI);
		// FCDS変更連携要否,「否」を設定
		ku0011Msg.set(KU0011ETMsg.FCDS_CHGE_RNKI_YH, JKUStrConst.KH_FAIL);
		// FCDS解約連携要否,「否」を設定
		ku0011Msg.set(KU0011ETMsg.FCDS_DSL_RNKI_YH, JKUStrConst.KH_FAIL);
		// Genesis変更連携要否,「否」を設定
		ku0011Msg.set(KU0011ETMsg.GENESIS_CHGE_RNKI_YH, JKUStrConst.KH_FAIL);
		// Genesis解約連携要否,「否」を設定
		ku0011Msg.set(KU0011ETMsg.GENESIS_DSL_RNKI_YH, JKUStrConst.KH_FAIL);
		// OPMS変更連携要否,「否」を設定
		ku0011Msg.set(KU0011ETMsg.OPMS_CHGE_RNKI_YH, JKUStrConst.KH_FAIL);
		// 強制解約工事案件作成要否,「否」を設定
		ku0011Msg.set(KU0011ETMsg.KSI_DSL_KOJIAK_SAKSEI_YH, JKUStrConst.KH_FAIL);
		// FCDS連携種別コード,「未連携」を設定
		ku0011Msg.set(KU0011ETMsg.FCDS_RNKI_SBT_CD, JKUStrConst.CD00699_MIRENKEI);
		// Genesis連携種別コード,「未連携」を設定
		ku0011Msg.set(KU0011ETMsg.GENESIS_RNKI_SBT_CD, JKUStrConst.CD00699_MIRENKEI);
		// 最終応答結果コード,「結果未受信」を設定
		ku0011Msg.set(KU0011ETMsg.LAST_RSP_RSLT_CD, JKUStrConst.CD00694_LAST_RSP_MI_RCV);
		
		// 登録年月日時分秒(システム日時)
		ku0011Msg.set(KU0011ETMsg.ADD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 登録オペレータアカウント(オペレータアカウント)
		ku0011Msg.set(KU0011ETMsg.ADD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		// 更新年月日時分秒(システム日時)
		ku0011Msg.set(KU0011ETMsg.UPD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント(オペレータアカウント)
		ku0011Msg.set(KU0011ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		// 無効フラグ(「0：有効」)
		ku0011Msg.set(KU0011ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		// スマートバリュー契約有無(工事案件情報のスマートバリュー契約有無を設定)
		ku0011Msg.set(KU0011ETMsg.SMTVL_KEI_UM, kojiakInfo.getString(KU0011ETMsg.SMTVL_KEI_UM));
// ANK-4038-00-00 ADD START
		// サービス契約回線内訳情報の取得
		CAANMsg svkeiKaisenUwMsg = JKUModelCommon.getSvkeiKaisenUwInfo(inCBSMsg.getString(EKU0061C020CBSMsg.SVC_KEI_KAISEN_UCWK_NO));
		if (svkeiKaisenUwMsg != null)
		{
			// 予定ローゼット設置状態コード
			ku0011Msg.set(KU0011ETMsg.RSV_ROZETT_STC_STAT_CD, svkeiKaisenUwMsg.getString(KK0251ETMsg.ROZETT_STC_STAT_CD));
			// 予定コンセント設置内容コード
			ku0011Msg.set(KU0011ETMsg.RSV_CONSNT_STC_NYO_CD, svkeiKaisenUwMsg.getString(KK0251ETMsg.CONSNT_STC_NYO_CD));
		// ANK-4244-00-00 ADD START
			// 回線場所連番
			ku0011Msg.set(KU0011ETMsg.KAISEN_PLACE_RENBAN, svkeiKaisenUwMsg.getString(KK0251ETMsg.KAISEN_PLACE_RENBAN));
		// ANK-4244-00-00 ADD END
		}
// ANK-4038-00-00 ADD END
		
		// ANK-4269-00-00 ADD START
		HashMap<String, String> custInfoMap = JKUModelCommon.getCustInfo(inCBSMsg.getString(EKU0061C020CBSMsg.SYSID));
		if (custInfoMap != null)
		{
			// スキーム事業者コード
			ku0011Msg.set(KU0011ETMsg.SCM_JGS_CD, custInfoMap.get(CK0011ETMsg.SCM_JGS_CD));
			// スキームタイプコード
			ku0011Msg.set(KU0011ETMsg.SCM_TYPE_CD, custInfoMap.get(CK0011ETMsg.SCM_TYPE_CD));
		}
		// ANK-4269-00-00 ADD END
		
		try
		{
			ku0011SecProc.create(ku0011Msg);
		}
		catch (CAANCreateException cce)
		{
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.CREATE_DB_ERR);
			throw cce;
		}

		return true;
	}
	
	/**
	 * 工事案件更新（工事案件C）
	 * @param inCBSMsg	CBSメッセージ
	 * @param kojiakInfo	工事案件情報
	 * @param svcKeiInfoMap	サービス契約情報
	 * @param sysIdInfoMap	お客様情報
	 * @param svcKeiKjakInfo	サービス契約_工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateKU0011_No4(CAANMsg inCBSMsg, CAANMsg kojiakInfo,
			HashMap<String, String> svcKeiInfoMap, HashMap<String, String> sysIdInfoMap, CAANMsg svcKeiKjakInfo) throws CAANException
	{
		JKUejbKU0011SecProc ku0011SecProc = new JKUejbKU0011SecProc();
		CAANMsg ku0011Msg = new CAANMsg(KU0011ETMsg.class.getName());

		// 工事案件番号(工事案件情報の工事案件番号を設定)
		ku0011Msg.set(KU0011ETMsg.KOJIAK_NO, kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO));
		
		ku0011Msg = ku0011SecProc.findByPrimaryKey(ku0011Msg, true);
		
		if (null == ku0011Msg)
		{
			return false;
		}
		// SYSID(サービス契約＿工事案件情報から取得)
		ku0011Msg.set(KU0011ETMsg.SYSID, svcKeiKjakInfo.getString(KU0081ETMsg.SYSID));
		// 連携サービス契約番号(サービス契約＿工事案件情報から取得)
		ku0011Msg.set(KU0011ETMsg.RNKI_SVC_KEI_NO, svcKeiKjakInfo.getString(KU0081ETMsg.SVC_KEI_NO));
		// 請求契約番号(サービス契約情報から取得)
		ku0011Msg.set(KU0011ETMsg.SEIKY_KEI_NO, svcKeiInfoMap.get(KK0321ETMsg.SEIKY_KEI_NO));
		// 料金グループコード(サービス契約情報から取得)
		ku0011Msg.set(KU0011ETMsg.PRC_GRP_CD, svcKeiInfoMap.get(KK0081ETMsg.PRC_GRP_CD));
		// 料金コースコード(サービス契約情報から取得)
		ku0011Msg.set(KU0011ETMsg.PCRS_CD, svcKeiInfoMap.get(KK0081ETMsg.PCRS_CD));
		// 料金プランコード(サービス契約情報から取得)
		ku0011Msg.set(KU0011ETMsg.PPLAN_CD, svcKeiInfoMap.get(KK0081ETMsg.PPLAN_CD));
		
		// 割引タイプコード(サービス契約情報から取得 ※「即割」の場合のみ、設定する。)
		String wribType = null;
		if (JKUStrConst.CD00284_SOKUWARI.equals(svcKeiInfoMap.get(KK0841ETMsg.WRIB_TYPE_CD)))
		{
			wribType = JKUStrConst.CD00284_SOKUWARI;
		}
		ku0011Msg.set(KU0011ETMsg.WRIB_TYPE_CD, wribType);
		
		// 連携サービス開始年月日(サービス契約情報から取得)
		ku0011Msg.set(KU0011ETMsg.RNKI_SVC_STAYMD, svcKeiInfoMap.get(KK0081ETMsg.SVC_STA_YMD));
		// お客様名(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.CUST_NM, sysIdInfoMap.get(CK0011ETMsg.CUST_NM));
		// お客様カナ名(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.CUST_KANA, sysIdInfoMap.get(CK0011ETMsg.CUST_KANA));
		// お客様携帯電話番号(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.CUST_KTAI_TELNO, sysIdInfoMap.get(KU0011ETMsg.CUST_KTAI_TELNO));
		// お客様連絡先電話番号(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.CUST_RRKS_TELNO, sysIdInfoMap.get(CK0011ETMsg.KEISHA_TELNO));
		// 連絡先勤務先名(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.RRKS_OFFC_NM, svcKeiInfoMap.get(KK0021ETMsg.RRKS_OFFC_NM));
		// 契約者住所コード(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.KEISHA_AD_CD, sysIdInfoMap.get(CK0011ETMsg.KEISHA_AD_CD));
		// 契約者郵便番号(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.KEISHA_PCD, sysIdInfoMap.get(CK0011ETMsg.KEISHA_PCD));
		// 契約者都道府県名(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.KEISHA_STATE_NM, sysIdInfoMap.get(CK0011ETMsg.KEISHA_STATE_NM));
		// 契約者市区町村名(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.KEISHA_CITY_NM, sysIdInfoMap.get(CK0011ETMsg.KEISHA_CITY_NM));
		// 契約者大字通称名(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.KEISHA_OAZTSU_NM, sysIdInfoMap.get(CK0011ETMsg.KEISHA_OAZTSU_NM));
		// 契約者字丁目名(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.KEISHA_AZCHO_NM, sysIdInfoMap.get(CK0011ETMsg.KEISHA_AZCHO_NM));
		// 契約者住所番地号(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.KEISHA_AD_BNCHIGO, sysIdInfoMap.get(CK0011ETMsg.KEISHA_BNCHIGO));
		// 契約者住所補記・建物名(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.KEISHA_ADRTTM, sysIdInfoMap.get(CK0011ETMsg.KEISHA_ADRTTM));
		// 契約者住所補記・部屋番号(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.KEISHA_ADRRM, sysIdInfoMap.get(CK0011ETMsg.KEISHA_ADRRM));
		// 契約者住所手動入力フラグ(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.KEISHA_AD_MAN_INPUT_FLG, sysIdInfoMap.get(CK0011ETMsg.KEISHA_AD_MAN_INPUT_FLG));
		// 更新年月日時分秒(システム日時)
		ku0011Msg.set(KU0011ETMsg.UPD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント(オペレータアカウント)
		ku0011Msg.set(KU0011ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));

		// ANK-4269-00-00 ADD START
		HashMap<String, String> custInfoMap = JKUModelCommon.getCustInfo(svcKeiKjakInfo.getString(KU0081ETMsg.SYSID));
		if (custInfoMap != null)
		{
			// スキーム事業者コード
			ku0011Msg.set(KU0011ETMsg.SCM_JGS_CD, custInfoMap.get(CK0011ETMsg.SCM_JGS_CD));
			// スキームタイプコード
			ku0011Msg.set(KU0011ETMsg.SCM_TYPE_CD, custInfoMap.get(CK0011ETMsg.SCM_TYPE_CD));
		}
		// ANK-4269-00-00 ADD END
		
		try
		{
			ku0011SecProc.update(ku0011Msg);
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}

		return true;
	}
	
	/**
	 * 工事案件更新（工事案件D）
	 * @param inCBSMsg		CBSメッセージ
	 * @param kojiakInfo	工事案件情報
	 * @param svcKeiInfoMap	サービス契約情報
	 * @param sysIdInfoMap	お客様情報
	 * @param svckeiKjakInfo	サービス契約_工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateKU0011_No5(CAANMsg inCBSMsg, CAANMsg kojiakInfo,
			HashMap<String, String> svcKeiInfoMap, HashMap<String, String> sysIdInfoMap, CAANMsg svckeiKjakInfo) throws CAANException
	{
		JKUejbKU0011SecProc ku0011SecProc = new JKUejbKU0011SecProc();
		CAANMsg ku0011Msg = new CAANMsg(KU0011ETMsg.class.getName());

		// 工事案件番号(工事案件情報の工事案件番号を設定)
		ku0011Msg.set(KU0011ETMsg.KOJIAK_NO, kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO));
		ku0011Msg = ku0011SecProc.findByPrimaryKey(ku0011Msg, true);
		if (null == ku0011Msg)
		{
			return false;
		}
		// SYSID(サービス契約＿工事案件情報から取得)
		ku0011Msg.set(KU0011ETMsg.SYSID, svckeiKjakInfo.getString(KU0081ETMsg.SYSID));
		// 連携サービス契約番号(サービス契約＿工事案件情報から取得)
		ku0011Msg.set(KU0011ETMsg.RNKI_SVC_KEI_NO, svckeiKjakInfo.getString(KU0081ETMsg.SVC_KEI_NO));
		// 請求契約番号(サービス契約情報から取得)
		ku0011Msg.set(KU0011ETMsg.SEIKY_KEI_NO, svcKeiInfoMap.get(KK0321ETMsg.SEIKY_KEI_NO));
		// 料金グループコード(サービス契約情報から取得)
		ku0011Msg.set(KU0011ETMsg.PRC_GRP_CD, svcKeiInfoMap.get(KK0081ETMsg.PRC_GRP_CD));
		// 料金コースコード(サービス契約情報から取得)
		ku0011Msg.set(KU0011ETMsg.PCRS_CD, svcKeiInfoMap.get(KK0081ETMsg.PCRS_CD));
		// 料金プランコード(サービス契約情報から取得)
		ku0011Msg.set(KU0011ETMsg.PPLAN_CD, svcKeiInfoMap.get(KK0081ETMsg.PPLAN_CD));
		// 割引タイプコード(サービス契約情報から取得 ※「即割」の場合のみ、設定する。)
		String wribType = null;
		if (JKUStrConst.CD00284_SOKUWARI.equals(svcKeiInfoMap.get(KK0841ETMsg.WRIB_TYPE_CD)))
		{
			wribType = JKUStrConst.CD00284_SOKUWARI;
		}
		ku0011Msg.set(KU0011ETMsg.WRIB_TYPE_CD, wribType);
		
		// OPMS変更連携要否(「1：要」)
		ku0011Msg.set(KU0011ETMsg.OPMS_CHGE_RNKI_YH, JKUStrConst.KH_PSG);

		// ANK-4269-00-00 ADD START
		// お客様情報の取得処理
		HashMap<String, String> custInfoMap = JKUModelCommon.getCustInfo(svckeiKjakInfo.getString(KU0081ETMsg.SYSID));
		// スキーム事業者コード
		String scmJgsCd = "";
		if (custInfoMap != null)
		{
			scmJgsCd = custInfoMap.get(CK0011ETMsg.SCM_JGS_CD);
		}
		// ANK-4269-00-00 ADD END
		
// ANK-3652-00-00 MOD START
//		// マンション光配線(光コンセント以外)、メゾンタイプは処理を実行する
//		if (MZN.equals(checkKeiyakuInCBSMsg(inCBSMsg))
//				|| MANS_HIKARI.equals(checkKeiyakuInCBSMsg(inCBSMsg)))
		// マンション光配線(光コンセントを含む)、メゾンタイプは処理を実行する
		if (MZN.equals(checkKeiyakuInCBSMsg(inCBSMsg))
				|| MANS_HIKARI.equals(checkKeiyakuInCBSMsg(inCBSMsg))
				|| (MANS_ETH.equals(checkKeiyakuInCBSMsg(inCBSMsg)) && checkKeiHkrSocket(inCBSMsg)))
// ANK-3652-00-00 MOD END
		{
			// ---FCDS変更連携要否更新有無
			
			CAANMsg custCAANMsg = new CAANMsg();
			custCAANMsg.setMsgDataOfAll(sysIdInfoMap);
			
			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, null, scmJgsCd});
			// ANK-4269-00-00 ADD END
			
			boolean fcdsCheckResult = JKUModelCommon.checkRnkiSysFlgUpd(kojiakInfo, custCAANMsg, fcdsCheckList);
			
			// FCDS変更連携要否('要'　FCDS項目に変更があった場合)
			if (true == fcdsCheckResult)
			{
				ku0011Msg.set(KU0011ETMsg.FCDS_CHGE_RNKI_YH, JKUModelCommon.getChgRnkiYh(kojiakInfo, JKUStrConst.RNKI_SYSTEM_FCDS));
			}
		}
		// 連携サービス開始年月日(サービス契約情報から取得)
		ku0011Msg.set(KU0011ETMsg.RNKI_SVC_STAYMD, svcKeiInfoMap.get(KK0081ETMsg.SVC_STA_YMD));
		// お客様名(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.CUST_NM, sysIdInfoMap.get(CK0011ETMsg.CUST_NM));
		// お客様カナ名(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.CUST_KANA, sysIdInfoMap.get(CK0011ETMsg.CUST_KANA));
		// お客様携帯電話番号(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.CUST_KTAI_TELNO, sysIdInfoMap.get(KU0011ETMsg.CUST_KTAI_TELNO));
		// お客様連絡先電話番号(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.CUST_RRKS_TELNO, sysIdInfoMap.get(CK0011ETMsg.KEISHA_TELNO));
		// 連絡先勤務先名(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.RRKS_OFFC_NM, svcKeiInfoMap.get(KK0021ETMsg.RRKS_OFFC_NM));
		// 契約者住所コード(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.KEISHA_AD_CD, sysIdInfoMap.get(CK0011ETMsg.KEISHA_AD_CD));
		// 契約者郵便番号(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.KEISHA_PCD, sysIdInfoMap.get(CK0011ETMsg.KEISHA_PCD));
		// 契約者都道府県名(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.KEISHA_STATE_NM, sysIdInfoMap.get(CK0011ETMsg.KEISHA_STATE_NM));
		// 契約者市区町村名(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.KEISHA_CITY_NM, sysIdInfoMap.get(CK0011ETMsg.KEISHA_CITY_NM));
		// 契約者大字通称名(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.KEISHA_OAZTSU_NM, sysIdInfoMap.get(CK0011ETMsg.KEISHA_OAZTSU_NM));
		// 契約者字丁目名(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.KEISHA_AZCHO_NM, sysIdInfoMap.get(CK0011ETMsg.KEISHA_AZCHO_NM));
		// 契約者住所番地号(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.KEISHA_AD_BNCHIGO, sysIdInfoMap.get(CK0011ETMsg.KEISHA_BNCHIGO));
		// 契約者住所補記・建物名(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.KEISHA_ADRTTM, sysIdInfoMap.get(CK0011ETMsg.KEISHA_ADRTTM));
		// 契約者住所補記・部屋番号(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.KEISHA_ADRRM, sysIdInfoMap.get(CK0011ETMsg.KEISHA_ADRRM));
		// 契約者住所手動入力フラグ(お客様情報から取得)
		ku0011Msg.set(KU0011ETMsg.KEISHA_AD_MAN_INPUT_FLG, sysIdInfoMap.get(CK0011ETMsg.KEISHA_AD_MAN_INPUT_FLG));
		// 更新年月日時分秒(システム日時)
		ku0011Msg.set(KU0011ETMsg.UPD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント(オペレータアカウント)
		ku0011Msg.set(KU0011ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		
		// ANK-4269-00-00 ADD START
		if (custInfoMap != null)
		{
			// スキーム事業者コード
			ku0011Msg.set(KU0011ETMsg.SCM_JGS_CD, custInfoMap.get(CK0011ETMsg.SCM_JGS_CD));
			// スキームタイプコード
			ku0011Msg.set(KU0011ETMsg.SCM_TYPE_CD, custInfoMap.get(CK0011ETMsg.SCM_TYPE_CD));
		}
		// ANK-4269-00-00 ADD END
		
		try
		{
			ku0011SecProc.update(ku0011Msg);
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}

		return true;
	}
	
	
	/**
	 * 工事案件更新（工事案件E）
	 * @param inCBSMsg	CBSメッセージ
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateKU0011_No6(CAANMsg inCBSMsg, CAANMsg kojiakInfo) throws CAANException
	{
		// 工事案件副次処理部品
		JKUejbKU0011SecProc ku0011SecProc = new JKUejbKU0011SecProc();
		// 工事案件メッセージ
		CAANMsg ku0011Msg = new CAANMsg(KU0011ETMsg.class.getName());

		// 工事案件番号(工事案件情報の工事案件番号)
		ku0011Msg.set(KU0011ETMsg.KOJIAK_NO, kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO));
		
		// 更新対象を取得する
		ku0011Msg = ku0011SecProc.findByPrimaryKey(ku0011Msg, true);
		
		if (null == ku0011Msg)
		{
			return false;
		}
		// OPMS変更連携要否(「1：要」)
		ku0011Msg.set(KU0011ETMsg.OPMS_CHGE_RNKI_YH, JKUStrConst.KH_PSG);
		// 更新年月日時分秒(システム日時)
		ku0011Msg.set(KU0011ETMsg.UPD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント(オペレータアカウント)
		ku0011Msg.set(KU0011ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		
		try
		{
			ku0011SecProc.update(ku0011Msg);
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}
		return true;
	}
	
	/**
	 * 工事案件更新（工事案件F）
	 * @param inCBSMsg	CBSメッセージ
	 * @param kojiakInfo	工事案件情報
	 * @return	工事案件番号
	 * @throws CAANException
	 */
	private String insertKU0011_No7(CAANMsg inCBSMsg, CAANMsg kojiakInfo) throws CAANException
	{
		// 工事案件副次処理部品
		JKUejbKU0011SecProc ku0011SecProc = new JKUejbKU0011SecProc();
		// 工事案件メッセージ
		CAANMsg ku0011Msg = new CAANMsg(KU0011ETMsg.class.getName());

		// 工事案件番号採番
		String newKojiakNo = JKUejbNumberParts.getKojiakNoString(kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO), inCBSMsg);
		if (null == newKojiakNo || "".equals(newKojiakNo))
		{
			return null;
		}
		// 工事案件番号(最新基本工事案件番号を元に採番)
		ku0011Msg.set(KU0011ETMsg.KOJIAK_NO, newKojiakNo);
		// 工事案件ステータス(120:登録済)
		ku0011Msg.set(KU0011ETMsg.KOJIAK_STAT, JKUStrConst.CD00474_TOROKU_ZM);
		// 申込書到着年月日
		ku0011Msg.set(KU0011ETMsg.MSKMSHO_ARIV_YMD, JKUModelCommon.getOpeDate(inCBSMsg, null));
		// SYSID(最新基本工事案件の同一名項目の内容)
		ku0011Msg.set(KU0011ETMsg.SYSID, kojiakInfo.getString(KU0011ETMsg.SYSID));
		// 連携サービス契約番号(最新基本工事案件の同一名項目の内容)
		ku0011Msg.set(KU0011ETMsg.RNKI_SVC_KEI_NO, kojiakInfo.getString(KU0011ETMsg.RNKI_SVC_KEI_NO));
		// オーナー契約番号(最新基本工事案件の同一名項目の内容)
		ku0011Msg.set(KU0011ETMsg.OWNR_KEI_NO, kojiakInfo.getString(KU0011ETMsg.OWNR_KEI_NO));
		// P-ID(最新基本工事案件の同一名項目の内容)
		ku0011Msg.set(KU0011ETMsg.PID, kojiakInfo.getString(KU0011ETMsg.PID));
		// 請求契約番号(最新基本工事案件の同一名項目の内容)
		ku0011Msg.set(KU0011ETMsg.SEIKY_KEI_NO, kojiakInfo.getString(KU0011ETMsg.SEIKY_KEI_NO));
		// 工事案件種別コード(撤去(解約))
		ku0011Msg.set(KU0011ETMsg.KOJIAK_SBT_CD, JKUStrConst.CD00577_TEKKYO_DSL);
		// 料金グループコード(最新基本工事案件の同一名項目の内容)
		ku0011Msg.set(KU0011ETMsg.PRC_GRP_CD, kojiakInfo.getString(KU0011ETMsg.PRC_GRP_CD));
		// 料金コースコード(最新基本工事案件の同一名項目の内容)
		ku0011Msg.set(KU0011ETMsg.PCRS_CD, kojiakInfo.getString(KU0011ETMsg.PCRS_CD));
		// 料金プランコード(最新基本工事案件の同一名項目の内容)
		ku0011Msg.set(KU0011ETMsg.PPLAN_CD, kojiakInfo.getString(KU0011ETMsg.PPLAN_CD));
		// 割引タイプコード(最新基本工事案件の同一名項目の内容)
		ku0011Msg.set(KU0011ETMsg.WRIB_TYPE_CD, kojiakInfo.getString(KU0011ETMsg.WRIB_TYPE_CD));
		// 更新対象工事案件番号(最新基本工事案件番号)
		ku0011Msg.set(KU0011ETMsg.UPD_TRGT_KOJIAK_NO, kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO));
		// 最新基本工事フラグ,「最新基本工事でない」を設定
		ku0011Msg.set(KU0011ETMsg.RCNT_KIHON_KOJI_FLG, JKUStrConst.CD00882_RCNT_KIHON_KOJI_NON);
		// 申込受付年月日
		ku0011Msg.set(KU0011ETMsg.MSKM_UK_YMD, JPCModelCommon.getOpeDate(inCBSMsg, null));
		// 連携サービス開始年月日(最新基本工事案件の同一名項目の内容)
		ku0011Msg.set(KU0011ETMsg.RNKI_SVC_STAYMD, kojiakInfo.getString(KU0011ETMsg.RNKI_SVC_STAYMD));
		// 連携サービス終了年月日
		ku0011Msg.set(KU0011ETMsg.RNKI_SVC_ENDYMD, inCBSMsg.getString(EKU0061C020CBSMsg.SVC_DSL_YMD));
		// 転宅先住所コード
		ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_AD_CD, inCBSMsg.getString(EKU0061C020CBSMsg.SETPLACE_AD_CD));
		// 転宅先郵便番号
		ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_PCD, inCBSMsg.getString(EKU0061C020CBSMsg.SETPLACE_PCD));
		// 転宅先都道府県名
		ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_STATE_NM, inCBSMsg.getString(EKU0061C020CBSMsg.SETPLACE_STATE_NM));
		// 転宅先市区町村名
		ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_CITY_NM, inCBSMsg.getString(EKU0061C020CBSMsg.SETPLACE_CITY_NM));
		// 転宅先大字通称名
		ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_OAZTSU_NM, inCBSMsg.getString(EKU0061C020CBSMsg.SETPLACE_OAZTSU_NM));
		// 転宅先字丁目名
		ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_AZCHO_NM, inCBSMsg.getString(EKU0061C020CBSMsg.SETPLACE_AZCHO_NM));
		// 転宅先住所番地号
		ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_AD_BNCHIGO, inCBSMsg.getString(EKU0061C020CBSMsg.SETPLACE_AD_BNCHIGO));
		// 転宅先住所補記・建物名
		ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_ADRTTM, inCBSMsg.getString(EKU0061C020CBSMsg.SETPLACE_ADRTTM));
		// 転宅先住所補記・部屋番号
		ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_ADRRM, inCBSMsg.getString(EKU0061C020CBSMsg.SETPLACE_ADRRM));
		// 住所変更確定年月日時分秒(最新基本工事案件の同一名項目の内容)
		ku0011Msg.set(KU0011ETMsg.AD_CHG_FIX_DTM, kojiakInfo.getString(KU0011ETMsg.AD_CHG_FIX_DTM));
		// 申込者名
		ku0011Msg.set(KU0011ETMsg.MSKMSHA_NM, inCBSMsg.getString(EKU0061C020CBSMsg.MSKMSHA_NM));
		// お客様名
		ku0011Msg.set(KU0011ETMsg.CUST_NM, inCBSMsg.getString(EKU0061C020CBSMsg.CUST_NM));
		// お客様カナ名
		ku0011Msg.set(KU0011ETMsg.CUST_KANA, inCBSMsg.getString(EKU0061C020CBSMsg.CUST_KANA));
		// お客様自宅電話番号
		ku0011Msg.set(KU0011ETMsg.CUST_HOME_TELNO, inCBSMsg.getString(EKU0061C020CBSMsg.CUST_HOME_TEL_NO));
		// お客様携帯電話番号
		ku0011Msg.set(KU0011ETMsg.CUST_KTAI_TELNO, inCBSMsg.getString(EKU0061C020CBSMsg.CUST_KTAI_TEL_NO));
		// お客様連絡先電話番号
		ku0011Msg.set(KU0011ETMsg.CUST_RRKS_TELNO, inCBSMsg.getString(EKU0061C020CBSMsg.CUST_RRKS_TEL_NO));
		// 連絡先勤務先名
		ku0011Msg.set(KU0011ETMsg.RRKS_OFFC_NM, inCBSMsg.getString(EKU0061C020CBSMsg.RRKS_OFFC_NM));
		// 開通後電話利用希望有無(最新基本工事案件の同一名項目の内容)
		ku0011Msg.set(KU0011ETMsg.OPEN_AF_TEL_USE_KIBO_UM, kojiakInfo.getString(KU0011ETMsg.OPEN_AF_TEL_USE_KIBO_UM));
		// 契約者住所コード
		ku0011Msg.set(KU0011ETMsg.KEISHA_AD_CD, inCBSMsg.getString(EKU0061C020CBSMsg.KEISHA_AD_CD));
		// 契約者郵便番号
		ku0011Msg.set(KU0011ETMsg.KEISHA_PCD, inCBSMsg.getString(EKU0061C020CBSMsg.KEISHA_PCD));
		// 契約者都道府県名
		ku0011Msg.set(KU0011ETMsg.KEISHA_STATE_NM, inCBSMsg.getString(EKU0061C020CBSMsg.KEISHA_STATE_NM));
		// 契約者市区町村名
		ku0011Msg.set(KU0011ETMsg.KEISHA_CITY_NM, inCBSMsg.getString(EKU0061C020CBSMsg.KEISHA_CITY_NM));
		// 契約者大字通称名
		ku0011Msg.set(KU0011ETMsg.KEISHA_OAZTSU_NM, inCBSMsg.getString(EKU0061C020CBSMsg.KEISHA_OAZTSU_NM));
		// 契約者字丁目名
		ku0011Msg.set(KU0011ETMsg.KEISHA_AZCHO_NM, inCBSMsg.getString(EKU0061C020CBSMsg.KEISHA_AZCHO_NM));
		// 契約者住所番地号
		ku0011Msg.set(KU0011ETMsg.KEISHA_AD_BNCHIGO, inCBSMsg.getString(EKU0061C020CBSMsg.KEISHA_AD_BNCHIGO));
		// 契約者住所補記・建物名
		ku0011Msg.set(KU0011ETMsg.KEISHA_ADRTTM, inCBSMsg.getString(EKU0061C020CBSMsg.KEISHA_ADRTTM));
		// 契約者住所補記・部屋番号
		ku0011Msg.set(KU0011ETMsg.KEISHA_ADRRM, inCBSMsg.getString(EKU0061C020CBSMsg.KEISHA_ADRRM));
		// 契約者住所手動入力フラグ
		ku0011Msg.set(KU0011ETMsg.KEISHA_AD_MAN_INPUT_FLG, inCBSMsg.getString(EKU0061C020CBSMsg.KEISHA_AD_MAN_INPUT_FLG));
		// 関西電力お客様情報授受同意有無(最新基本工事案件の同一名項目の内容)
		ku0011Msg.set(KU0011ETMsg.KEPCO_CUSTINFO_JUJU_DOI_UM, kojiakInfo.getString(KU0011ETMsg.KEPCO_CUSTINFO_JUJU_DOI_UM));
		// マンション物件コード
		ku0011Msg.set(KU0011ETMsg.MANSION_BUKKEN_CD, inCBSMsg.getString(EKU0061C020CBSMsg.MANSION_BUKKEN_CD));
		// 住所形態コード
		ku0011Msg.set(KU0011ETMsg.AD_FORM_CD, inCBSMsg.getString(EKU0061C020CBSMsg.AD_FORM_CD));
		// 区画整理中フラグ(最新基本工事案件の同一名項目の内容)
		ku0011Msg.set(KU0011ETMsg.KUKAKU_SEIRI_CHU_FLG, kojiakInfo.getString(KU0011ETMsg.KUKAKU_SEIRI_CHU_FLG));
		// 工事先住所未確定フラグ
		ku0011Msg.set(KU0011ETMsg.KOJI_SAKI_AD_MI_FIX_FLG, inCBSMsg.getString(EKU0061C020CBSMsg.KOJI_SAKI_AD_MI_FIX_FLG));
		// 経度(最新基本工事案件の同一名項目の内容)
		ku0011Msg.set(KU0011ETMsg.LGTD, kojiakInfo.getString(KU0011ETMsg.LGTD));
		// 緯度(最新基本工事案件の同一名項目の内容)
		ku0011Msg.set(KU0011ETMsg.LTTD, kojiakInfo.getString(KU0011ETMsg.LTTD));
		// X座標6系(最新基本工事案件の同一名項目の内容)
		ku0011Msg.set(KU0011ETMsg.XZAHYO_6, kojiakInfo.getString(KU0011ETMsg.XZAHYO_6));
		// Y座標6系(最新基本工事案件の同一名項目の内容)
		ku0011Msg.set(KU0011ETMsg.YZAHYO_6, kojiakInfo.getString(KU0011ETMsg.YZAHYO_6));
		// X座標5系(最新基本工事案件の同一名項目の内容)
		ku0011Msg.set(KU0011ETMsg.XZAHYO_5, kojiakInfo.getString(KU0011ETMsg.XZAHYO_5));
		// Y座標5系(最新基本工事案件の同一名項目の内容)
		ku0011Msg.set(KU0011ETMsg.YZAHYO_5, kojiakInfo.getString(KU0011ETMsg.YZAHYO_5));
		// 座標補正有無(最新基本工事案件の同一名項目の内容)
		ku0011Msg.set(KU0011ETMsg.ZAHYO_HOSEI_UM, kojiakInfo.getString(KU0011ETMsg.ZAHYO_HOSEI_UM));
		// 連絡手段コード
		ku0011Msg.set(KU0011ETMsg.RRK_WAY_CD, inCBSMsg.getString(EKU0061C020CBSMsg.RRK_WAY_CD));
		// 連絡手段補記
		ku0011Msg.set(KU0011ETMsg.RRK_WAY_HOKI, inCBSMsg.getString(EKU0061C020CBSMsg.RRK_WAY_HOKI));
		// 工事受付契機異動区分
		ku0011Msg.set(KU0011ETMsg.KOJI_UK_OPTNTY_IDO_DIV, inCBSMsg.getString(EKU0061C020CBSMsg.KOJI_UK_OPTNTY_IDO_DIV));
		// 工事受付契機異動年月日時分秒
		ku0011Msg.set(KU0011ETMsg.KOJI_UK_OPTNTY_IDO_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.KOJI_UK_OPTNTY_IDO_DTM));
		// 登録年月日時分秒(システム日付)
		ku0011Msg.set(KU0011ETMsg.ADD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 登録オペレータアカウント(オペレータアカウント)
		ku0011Msg.set(KU0011ETMsg.ADD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		// 更新年月日時分秒(システム日付)
		ku0011Msg.set(KU0011ETMsg.UPD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント(オペレータアカウント)
		ku0011Msg.set(KU0011ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		// 無効フラグ(0:有効)
		ku0011Msg.set(KU0011ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);

		// ANK-4269-00-00 ADD START
		HashMap<String, String> custInfoMap = JKUModelCommon.getCustInfo(kojiakInfo.getString(KU0011ETMsg.SYSID));
		if (custInfoMap != null)
		{
			// スキーム事業者コード
			ku0011Msg.set(KU0011ETMsg.SCM_JGS_CD, custInfoMap.get(CK0011ETMsg.SCM_JGS_CD));
			// スキームタイプコード
			ku0011Msg.set(KU0011ETMsg.SCM_TYPE_CD, custInfoMap.get(CK0011ETMsg.SCM_TYPE_CD));
		}
		// ANK-4269-00-00 ADD END
		
		try
		{
			ku0011SecProc.create(ku0011Msg);
		}
		catch (CAANCreateException cce)
		{
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.CREATE_DB_ERR);
			throw cce;
		}
		
		return newKojiakNo;
	}
	
	/**
	 * 同時代表工事案件の更新を実行する
	 * @param inCBSMsg
	 * @param inContext
	 * @param kojiakInfo
	 * @param dojiDaihyoKojiakNo
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateKU0011_Dojidaihyo(CAANMsg inCBSMsg, AgentDispatchContext inContext,
			CAANMsg kojiakInfo, String dojiDaihyoKojiakNo) throws CAANException
	{
		String kojiakNo = inCBSMsg.getString(EKU0061C020CBSMsg.KOJIAK_NO);
		
		try
		{
			// 同時代表工事案件の更新処理
			return JKUModelCommon.updateDojiDaihyoKojiak(kojiakNo, dojiDaihyoKojiakNo, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME), 
					inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID), inContext, true);
		}
		catch(CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}
	}
	
	/**
	 * 工事案件＜eo光ネット＞更新）
	 * @param inCBSMsg		CBSメッセージ
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateKU0021(CAANMsg inCBSMsg, CAANMsg kojiakInfo) throws CAANException
	{
		JKUejbKU0021SecProc KU0021SecProc = new JKUejbKU0021SecProc();
		CAANMsg KU0021Msg = new CAANMsg(KU0021ETMsg.class.getName());

		// 工事案件番号(工事案件情報の工事案件番号)
		KU0021Msg.set(KU0021ETMsg.KOJIAK_NO, kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO));
		
		KU0021Msg = KU0021SecProc.findByPrimaryKey(KU0021Msg, true);
		
		if (null == KU0021Msg)
		{
			return false;
		}
		
		// eo光電話宅内工事有無(「0：無」)
		KU0021Msg.set(KU0021ETMsg.EOH_TEL_TAKNIKJ_UM, "0");
		// eo光電話番号1(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.EOH_TELNO_1, "");
		// 番ポ有無1(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.BMP_UM_1, "");
		// 番ポ予定年月日1(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.BMP_RSV_YMD_1, "");
		// 番ポ元通信事業者コード1(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.BMP_MOTO_TUSHIN_JGS_CD_1, "");
		// 同番移転有無1(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.DOBANITEN_UM_1, "");
		// 番ポ工事要否1(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.BMP_KOJI_YH_1, "");
		// eo光電話番号2(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.EOH_TELNO_2, "");
		// 番ポ有無2(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.BMP_UM_2, "");
		// 番ポ予定年月日2(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.BMP_RSV_YMD_2, "");
		// 番ポ元通信事業者コード2(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.BMP_MOTO_TUSHIN_JGS_CD_2, "");
		// 同番移転有無2(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.DOBANITEN_UM_2, "");
		// 番ポ工事要否2(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.BMP_KOJI_YH_2, "");
		// eo光電話番号3(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.EOH_TELNO_3, "");
		// 番ポ有無3(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.BMP_UM_3, "");
		// 番ポ予定年月日3(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.BMP_RSV_YMD_3, "");
		// 番ポ元通信事業者コード3(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.BMP_MOTO_TUSHIN_JGS_CD_3, "");
		// 同番移転有無3(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.DOBANITEN_UM_3, "");
		// 番ポ工事要否3(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.BMP_KOJI_YH_3, "");
		// eo光電話番号4(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.EOH_TELNO_4, "");
		// 番ポ有無4(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.BMP_UM_4, "");
		// 番ポ予定年月日4(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.BMP_RSV_YMD_4, "");
		// 番ポ元通信事業者コード4(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.BMP_MOTO_TUSHIN_JGS_CD_4, "");
		// 同番移転有無4(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.DOBANITEN_UM_4, "");
		// 番ポ工事要否4(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.BMP_KOJI_YH_4, "");
		// eo光電話番号5(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.EOH_TELNO_5, "");
		// 番ポ有無5(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.BMP_UM_5, "");
		// 番ポ予定年月日5(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.BMP_RSV_YMD_5, "");
		// 番ポ元通信事業者コード5(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.BMP_MOTO_TUSHIN_JGS_CD_5, "");
		// 同番移転有無5(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.DOBANITEN_UM_5, "");
		// 番ポ工事要否5(「""：空文字」)
		KU0021Msg.set(KU0021ETMsg.BMP_KOJI_YH_5, "");
		// eo光電話台数(「0」)
		KU0021Msg.set(KU0021ETMsg.EOH_TEL_CNT, "0");
		// 更新年月日時分秒(システム日付)
		KU0021Msg.set(KU0021ETMsg.UPD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント(共通部：オペレータＩＤ)
		KU0021Msg.set(KU0021ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));

		try
		{
		KU0021SecProc.update(KU0021Msg);
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}

		return true;
	}
	
	/**
	 * 工事案件＜eo光ネットマンション＞登録（工事案件＜eo光ネットマンション＞@）
	 * @param inCBSMsg		CBSメッセージ
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean insertKU0061_No1(CAANMsg inCBSMsg, CAANMsg kojiakInfo) throws CAANException
	{
		JKUejbKU0061SecProc ku0061SecProc = new JKUejbKU0061SecProc();
		CAANMsg ku0061Msg = new CAANMsg(KU0061ETMsg.class.getName());

		// 工事案件番号(採番した工事案件番号)
		ku0061Msg.set(KU0061ETMsg.KOJIAK_NO, inCBSMsg.getString(EKU0061C020CBSMsg.KOJIAK_NO));
		// 工事範囲コード
		ku0061Msg.set(KU0061ETMsg.KOJI_SCOPE_CD, inCBSMsg.getString(EKU0061C020CBSMsg.KOJI_SCOPE_CD));
		// 解約希望年月日
		ku0061Msg.set(KU0061ETMsg.DSL_KIBO_YMD, inCBSMsg.getString(EKU0061C020CBSMsg.DSL_KIBO_YMD));
		// 移設コード
		ku0061Msg.set(KU0061ETMsg.ISETSU_CD, inCBSMsg.getString(EKU0061C020CBSMsg.ISETSU_CD));
		// 追加元サービス契約番号
		ku0061Msg.set(KU0061ETMsg.ADD_MOTO_SVC_KEI_NO, inCBSMsg.getString(EKU0061C020CBSMsg.ADD_MOTO_SVC_KEI_NO));
		// 電波障害案件種別コード
		ku0061Msg.set(KU0061ETMsg.DMPSANK_SBT_CD, inCBSMsg.getString(EKU0061C020CBSMsg.DMPSANK_SBT_CD));
		// マンションID
		ku0061Msg.set(KU0061ETMsg.MANSION_ID, inCBSMsg.getString(EKU0061C020CBSMsg.MANSION_ID));
		// 回線使用契約番号
		ku0061Msg.set(KU0061ETMsg.KAISEN_USE_KEI_NO, inCBSMsg.getString(EKU0061C020CBSMsg.KAISEN_USE_KEI_NO));
		// IP払出コード
		ku0061Msg.set(KU0061ETMsg.IP_HRADSI_CD, inCBSMsg.getString(EKU0061C020CBSMsg.IP_HRADSI_CD));
		// マンション通信設備コード
		ku0061Msg.set(KU0061ETMsg.MANS_TUSHIN_EQUIP_CD, inCBSMsg.getString(EKU0061C020CBSMsg.MANS_TUSHIN_EQUIP_CD));
		// マンション設備システム連携用記事欄
		ku0061Msg.set(KU0061ETMsg.MANSSBSYS_RNKI_KIJIRAN, inCBSMsg.getString(EKU0061C020CBSMsg.MANSSBSYS_RNKI_KIJIRAN));

		// 登録年月日時分秒(システム日付)
		ku0061Msg.set(KU0061ETMsg.ADD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 登録オペレータアカウント(共通部：オペレータＩＤ)
		ku0061Msg.set(KU0061ETMsg.ADD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		// 更新年月日時分秒(システム日付)
		ku0061Msg.set(KU0061ETMsg.UPD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント(共通部：オペレータＩＤ)
		ku0061Msg.set(KU0061ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		// 無効フラグ(「0：有効」)
		ku0061Msg.set(KU0061ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		// マンション部屋通信機器種別コード
		ku0061Msg.set(KU0061ETMsg.MANS_RM_TUSHIN_KIKI_SBT_CD, inCBSMsg.getString(EKU0061C020CBSMsg.MANS_RM_TUSHIN_KIKI_SBT_CD));

// ANK-3387-00-00 ADD START
		// 提供方式パターンコード
		String tkHoshikiPatternCd = JKUModelCommon.getTkHoshikiPatternCd(inCBSMsg.getString(EKU0061C020CBSMsg.SVC_KEI_NO));
		ku0061Msg.set(KU0061ETMsg.TK_HOSHIKI_PATTERN_CD, tkHoshikiPatternCd);
// ANK-3387-00-00 ADD END
		
		// ANK-3989-00-00 ADD START
		// 棟内速度コード
		String tonaiSpeedCd = JKUModelCommon.getTonaiSpeedCd(inCBSMsg.getString(EKU0061C020CBSMsg.SVC_KEI_NO));
		ku0061Msg.set(KU0061ETMsg.TONAI_SPEED_CD, tonaiSpeedCd);
		// ANK-3989-00-00 ADD END
		
		try
		{
			ku0061SecProc.create(ku0061Msg);
		}
		catch (CAANCreateException cce)
		{
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.CREATE_DB_ERR);
			throw cce;
		}

		
		return true;
	}
	
	/**
	 * 工事案件＜eo光ネットマンション＞更新（工事案件＜eo光ネットマンション＞A）
	 * @param inCBSMsg		CBSメッセージ
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateKU0061_No2(CAANMsg inCBSMsg, CAANMsg kojiakInfo) throws CAANException
	{
		JKUejbKU0061SecProc ku0061SecProc = new JKUejbKU0061SecProc();
		CAANMsg ku0061Msg = new CAANMsg(KU0061ETMsg.class.getName());

		// 工事案件番号(工事案件情報の工事案件番号)
		ku0061Msg.set(KU0061ETMsg.KOJIAK_NO, kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO));
		
		ku0061Msg = ku0061SecProc.findByPrimaryKey(ku0061Msg, true);
		
		if (null == ku0061Msg)
		{
			return false;
		}
		// ファミリーパック契約有無(「0：無」)
		ku0061Msg.set(KU0061ETMsg.FAMIPA_KEI_UM, JKUStrConst.UM_NON);
		// PLCモデムレンタル台数(「0」)
		ku0061Msg.set(KU0061ETMsg.PLC_MODEM_RENT_CNT, "0");
		// PLCモデム買取台数(「0」)
		ku0061Msg.set(KU0061ETMsg.PLC_MODEM_KAITORI_CNT, "0");
		// 更新年月日時分秒(システム日付)
		ku0061Msg.set(KU0061ETMsg.UPD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント(共通部：オペレータＩＤ)
		ku0061Msg.set(KU0061ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		// スマートリンクオプション契約有無(「0：無」)
		ku0061Msg.set(KU0061ETMsg.SMLN_OP_KEI_UM, JKUStrConst.UM_NON);

		try
		{
			ku0061SecProc.update(ku0061Msg);
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}

		
		return true;
	}
	
	/**
	 * 工事案件＜eo光ネットマンション＞更新（工事案件＜eo光ネットマンション＞B）
	 * @param inCBSMsg		CBSメッセージ
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateKU0061_No3(CAANMsg inCBSMsg, CAANMsg kojiakInfo) throws CAANException
	{
		JKUejbKU0061SecProc ku0061SecProc = new JKUejbKU0061SecProc();
		CAANMsg ku0061Msg = new CAANMsg(KU0061ETMsg.class.getName());

		// 工事案件番号(工事案件情報の工事案件番号)
		ku0061Msg.set(KU0061ETMsg.KOJIAK_NO, kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO));
		
		ku0061Msg = ku0061SecProc.findByPrimaryKey(ku0061Msg, true);
		
		if (null == ku0061Msg)
		{
			return false;
		}
		
		// eo光電話宅内工事有無(「0：無」)
		ku0061Msg.set(KU0061ETMsg.EOH_TEL_TAKNIKJ_UM, "0");
		// eo光電話番号1(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.EOH_TELNO_1, "");
		// 番ポ有無1(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.BMP_UM_1, "");
		// 番ポ予定年月日1(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.BMP_RSV_YMD_1, "");
		// 番ポ元通信事業者コード1(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.BMP_MOTO_TUSHIN_JGS_CD_1, "");
		// 同番移転有無1(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.DOBANITEN_UM_1, "");
		// 番ポ工事要否1(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.BMP_KOJI_YH_1, "");
		// eo光電話番号2(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.EOH_TELNO_2, "");
		// 番ポ有無2(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.BMP_UM_2, "");
		// 番ポ予定年月日2(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.BMP_RSV_YMD_2, "");
		// 番ポ元通信事業者コード2(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.BMP_MOTO_TUSHIN_JGS_CD_2, "");
		// 同番移転有無2(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.DOBANITEN_UM_2, "");
		// 番ポ工事要否2(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.BMP_KOJI_YH_2, "");
		// eo光電話番号3(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.EOH_TELNO_3, "");
		// 番ポ有無3(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.BMP_UM_3, "");
		// 番ポ予定年月日3(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.BMP_RSV_YMD_3, "");
		// 番ポ元通信事業者コード3(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.BMP_MOTO_TUSHIN_JGS_CD_3, "");
		// 同番移転有無3(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.DOBANITEN_UM_3, "");
		// 番ポ工事要否3(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.BMP_KOJI_YH_3, "");
		// eo光電話番号4(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.EOH_TELNO_4, "");
		// 番ポ有無4(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.BMP_UM_4, "");
		// 番ポ予定年月日4(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.BMP_RSV_YMD_4, "");
		// 番ポ元通信事業者コード4(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.BMP_MOTO_TUSHIN_JGS_CD_4, "");
		// 同番移転有無4(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.DOBANITEN_UM_4, "");
		// 番ポ工事要否4(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.BMP_KOJI_YH_4, "");
		// eo光電話番号5(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.EOH_TELNO_5, "");
		// 番ポ有無5(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.BMP_UM_5, "");
		// 番ポ予定年月日5(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.BMP_RSV_YMD_5, "");
		// 番ポ元通信事業者コード5(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.BMP_MOTO_TUSHIN_JGS_CD_5, "");
		// 同番移転有無5(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.DOBANITEN_UM_5, "");
		// 番ポ工事要否5(「""：空文字」)
		ku0061Msg.set(KU0061ETMsg.BMP_KOJI_YH_5, "");
		// eo光電話台数(「0」)
		ku0061Msg.set(KU0061ETMsg.EOH_TEL_CNT, "0");
		// 更新年月日時分秒(システム日付)
		ku0061Msg.set(KU0061ETMsg.UPD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント(共通部：オペレータＩＤ)
		ku0061Msg.set(KU0061ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));

		try
		{
		ku0061SecProc.update(ku0061Msg);
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}

		return true;
	}
	
	/**
	 * 工事案件＜eo光ネットマンション＞更新（工事案件＜eo光ネットマンション＞C）
	 * @param inCBSMsg		CBSメッセージ
	 * @param kojiakInfo	工事案件情報
	 * @param newKojiakNo	新規工事案件番号
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean insertKU0061_No4(CAANMsg inCBSMsg, CAANMsg kojiakInfo, String newKojiakNo) throws CAANException
	{
		JKUejbKU0061SecProc ku0061SecProc = new JKUejbKU0061SecProc();
		CAANMsg ku0061Msg = new CAANMsg(KU0061ETMsg.class.getName());

		// 工事案件番号(工事案件情報の工事案件番号)
		ku0061Msg.set(KU0061ETMsg.KOJIAK_NO, kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO));
		
		ku0061Msg = ku0061SecProc.findByPrimaryKey(ku0061Msg, true);
		
		if (null == ku0061Msg)
		{
			return false;
		}

		// 工事案件番号
		ku0061Msg.set(KU0061ETMsg.KOJIAK_NO, newKojiakNo);
		// マンションID
		ku0061Msg.set(KU0061ETMsg.MANSION_ID, inCBSMsg.getString(EKU0061C020CBSMsg.MANSION_ID));
		// 回線使用契約番号
		ku0061Msg.set(KU0061ETMsg.KAISEN_USE_KEI_NO, inCBSMsg.getString(EKU0061C020CBSMsg.KAISEN_USE_KEI_NO));
		// IP払出コード
		ku0061Msg.set(KU0061ETMsg.IP_HRADSI_CD, inCBSMsg.getString(EKU0061C020CBSMsg.IP_HRADSI_CD));
		// マンション通信設備コード
		ku0061Msg.set(KU0061ETMsg.MANS_TUSHIN_EQUIP_CD, inCBSMsg.getString(EKU0061C020CBSMsg.MANS_TUSHIN_EQUIP_CD));
		// マンション設備システム連携用記事欄
		ku0061Msg.set(KU0061ETMsg.MANSSBSYS_RNKI_KIJIRAN, inCBSMsg.getString(EKU0061C020CBSMsg.MANSSBSYS_RNKI_KIJIRAN));
		// 登録年月日時分秒(システム日付)
		ku0061Msg.set(KU0061ETMsg.ADD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 登録オペレータアカウント(共通部：オペレータＩＤ)
		ku0061Msg.set(KU0061ETMsg.ADD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		// 更新年月日時分秒(システム日付)
		ku0061Msg.set(KU0061ETMsg.UPD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント(共通部：オペレータＩＤ)
		ku0061Msg.set(KU0061ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		// 無効フラグ(「0：有効」)
		ku0061Msg.set(KU0061ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		try
		{
			ku0061SecProc.create(ku0061Msg);
		}
		catch (CAANCreateException cce)
		{
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.CREATE_DB_ERR);
			throw cce;
		}

		return true;
	}
	
	/**
	 * 工事案件＜eo光ネットマンション＞更新（工事案件＜eo光ネットマンション＞D）
	 * @param inCBSMsg		CBSメッセージ
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateKU0061_No5(CAANMsg inCBSMsg, CAANMsg kojiakInfo) throws CAANException
	{
		JKUejbKU0061SecProc ku0061SecProc = new JKUejbKU0061SecProc();
		CAANMsg ku0061Msg = new CAANMsg(KU0061ETMsg.class.getName());

		// 工事案件番号(工事案件情報の工事案件番号)
		ku0061Msg.set(KU0061ETMsg.KOJIAK_NO, kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO));
		
		ku0061Msg = ku0061SecProc.findByPrimaryKey(ku0061Msg, true);
		
		if (null == ku0061Msg)
		{
			return false;
		}
		
		// 以下更新項目設定
		// ファミリーパック契約有無(「0：無」)
		ku0061Msg.set(KU0061ETMsg.FAMIPA_KEI_UM, JKUStrConst.UM_NON);
		// PLCモデムレンタル台数(「0」)
		ku0061Msg.set(KU0061ETMsg.PLC_MODEM_RENT_CNT, "0");
		// PLCモデム買取台数(「0」)
		ku0061Msg.set(KU0061ETMsg.PLC_MODEM_KAITORI_CNT, "0");
		// 旧料金コースコード
		ku0061Msg.set(KU0061ETMsg.OLD_PCRS_CD, inCBSMsg.getString(EKU0061C020CBSMsg.PCRS_CD));
		// 旧料金プランコード
		ku0061Msg.set(KU0061ETMsg.OLD_PPLAN_CD, inCBSMsg.getString(EKU0061C020CBSMsg.PPLAN_CD));
		// 旧割引タイプコード
		ku0061Msg.set(KU0061ETMsg.OLD_WRIB_TYPE_CD, inCBSMsg.getString(EKU0061C020CBSMsg.WRIB_TYPE_CD));
		// 更新年月日時分秒(システム日付)
		ku0061Msg.set(KU0061ETMsg.UPD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント(共通部：オペレータＩＤ)
		ku0061Msg.set(KU0061ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		// スマートリンクオプション契約有無(「0：無」)
		ku0061Msg.set(KU0061ETMsg.SMLN_OP_KEI_UM, JKUStrConst.UM_NON);

		try
		{
			ku0061SecProc.update(ku0061Msg);
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}

		
		return true;
	}
	
	/**
	 * サービス契約_工事案件更新（サービス契約_工事案件@）
	 * @param inCBSMsg		CBSメッセージ
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateKU0081_No1(CAANMsg inCBSMsg, CAANMsg kojiakInfo) throws CAANException
	{
		JKUejbKU0081SecProc ku0081SecProc = new JKUejbKU0081SecProc();
		CAANMsg ku0081Msg = new CAANMsg(KU0081ETMsg.class.getName());

		
		// サービス契約番号
		ku0081Msg.set(KU0081ETMsg.SVC_KEI_NO, inCBSMsg.getString(EKU0061C020CBSMsg.SVC_KEI_NO));
		// 工事案件番号(工事案件情報の工事案件番号を設定)
		ku0081Msg.set(KU0081ETMsg.KOJIAK_NO, kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO));
		
		ku0081Msg = ku0081SecProc.findByPrimaryKey(ku0081Msg, true);
		
		if (null == ku0081Msg)
		{
			return false;
		}
		
		// 工事受付契機異動区分が「00019：住所変更・登録」かつマンション光配線でない場合はUS連携フラグを更新
		// その他の場合はサービス契約_工事案件適用終了年月日を運用日付で更新
		if (JKUStrConst.CD00576_AD_CHG_TOROKU.equals(inCBSMsg.getString(EKU0061C020CBSMsg.KOJI_UK_OPTNTY_IDO_DIV))
				&& !MANS_HIKARI.equals(checkKeiyakuInCBSMsg(inCBSMsg)))
		{
			// 解約外設備使用終了識別コード
			ku0081Msg.set(KU0081ETMsg.DSL_GAI_EQUIP_USE_END_SKCD, JKUStrConst.CD01591_USE_END);
		}
		else
		{
			// サービス契約_工事案件適用終了年月日(部品：No.4)
			ku0081Msg.set(KU0081ETMsg.SVKEI_KOJIAK_TENDYMD, JPCModelCommon.getOpeDate(inCBSMsg, null));
		}
		// 更新年月日時分秒(システム日時)
		ku0081Msg.set(KU0081ETMsg.UPD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント(オペレータアカウント)
		ku0081Msg.set(KU0081ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));

		try
		{
			ku0081SecProc.update(ku0081Msg);
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}

		return true;
	}
	
	/**
	 * サービス契約_工事案件登録（サービス契約_工事案件A）
	 * @param inCBSMsg		CBSメッセージ
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean insertKU0081_No2(CAANMsg inCBSMsg, CAANMsg kojiakInfo) throws CAANException
	{
		JKUejbKU0081SecProc ku0081SecProc = new JKUejbKU0081SecProc();
		CAANMsg ku0081Msg = new CAANMsg(KU0081ETMsg.class.getName());

		// サービス契約番号
		ku0081Msg.set(KU0081ETMsg.SVC_KEI_NO, inCBSMsg.getString(EKU0061C020CBSMsg.SVC_KEI_NO));
		// 工事案件番号(採番した工事案件番号)
		ku0081Msg.set(KU0081ETMsg.KOJIAK_NO, inCBSMsg.getString(EKU0061C020CBSMsg.KOJIAK_NO));
		// サービスコード
		ku0081Msg.set(KU0081ETMsg.SVC_CD, inCBSMsg.getString(EKU0061C020CBSMsg.SVC_CD));
		// SYSID
		ku0081Msg.set(KU0081ETMsg.SYSID, inCBSMsg.getString(EKU0061C020CBSMsg.SYSID));
		// サービス契約回線内訳番号
		ku0081Msg.set(KU0081ETMsg.SVC_KEI_KAISEN_UCWK_NO, inCBSMsg.getString(EKU0061C020CBSMsg.SVC_KEI_KAISEN_UCWK_NO));
		// サービス契約_工事案件適用開始年月日(部品：No.4)
		ku0081Msg.set(KU0081ETMsg.SVKEI_KOJIAK_TSTAYMD, JPCModelCommon.getOpeDate(inCBSMsg, null));
		// サービス契約_工事案件適用終了年月日(「20991231」)
		ku0081Msg.set(KU0081ETMsg.SVKEI_KOJIAK_TENDYMD, JKUStrConst.MAX_YMD);
		// 登録年月日時分秒(システム日時)
		ku0081Msg.set(KU0081ETMsg.ADD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 登録オペレータアカウント(オペレータアカウント)
		ku0081Msg.set(KU0081ETMsg.ADD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		// 更新年月日時分秒(システム日時)
		ku0081Msg.set(KU0081ETMsg.UPD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント(オペレータアカウント)
		ku0081Msg.set(KU0081ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		// 無効フラグ(「0：有効」)
		ku0081Msg.set(KU0081ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		try
		{
			ku0081SecProc.create(ku0081Msg);
		}
		catch (CAANCreateException cce)
		{
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.CREATE_DB_ERR);
			throw cce;
		}

		return true;
	}
	
	/**
	 * サービス契約_工事案件更新（サービス契約_工事案件B）
	 * @param inCBSMsg		CBSメッセージ
	 * @param kojiakInfo	工事案件情報
	 * @param svcKeiInfo	サービス契約_工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean insertKU0081_No3(CAANMsg inCBSMsg, CAANMsg kojiakInfo, CAANMsg svcKeiInfo) throws CAANException
	{
		
		JKUejbKU0081SecProc ku0081SecProc = new JKUejbKU0081SecProc();
		CAANMsg ku0081Msg = new CAANMsg(KU0081ETMsg.class.getName());

		// サービス契約番号(サービス契約＿工事案件情報のサービス契約番号)
		ku0081Msg.set(KU0081ETMsg.SVC_KEI_NO, svcKeiInfo.getString(KU0081ETMsg.SVC_KEI_NO));
		// 工事案件番号(採番した工事案件番号)
		ku0081Msg.set(KU0081ETMsg.KOJIAK_NO, inCBSMsg.getString(EKU0061C020CBSMsg.KOJIAK_NO));
		// サービスコード(サービス契約＿工事案件情報のサービスコード)
		ku0081Msg.set(KU0081ETMsg.SVC_CD, svcKeiInfo.getString(KU0081ETMsg.SVC_CD));
		// SYSID(サービス契約＿工事案件情報のSYSID)
		ku0081Msg.set(KU0081ETMsg.SYSID, svcKeiInfo.getString(KU0081ETMsg.SYSID));
		// サービス契約回線内訳番号
		ku0081Msg.set(KU0081ETMsg.SVC_KEI_KAISEN_UCWK_NO, inCBSMsg.getString(EKU0061C020CBSMsg.SVC_KEI_KAISEN_UCWK_NO));
		// サービス契約_工事案件適用開始年月日(部品：No.4)
		ku0081Msg.set(KU0081ETMsg.SVKEI_KOJIAK_TSTAYMD, JPCModelCommon.getOpeDate(inCBSMsg, null));
		// サービス契約_工事案件適用終了年月日(「20991231」)
		ku0081Msg.set(KU0081ETMsg.SVKEI_KOJIAK_TENDYMD, JKUStrConst.MAX_YMD);
		// 登録年月日時分秒(システム日時)
		ku0081Msg.set(KU0081ETMsg.ADD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 登録オペレータアカウント(オペレータアカウント)
		ku0081Msg.set(KU0081ETMsg.ADD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		// 更新年月日時分秒(システム日時)
		ku0081Msg.set(KU0081ETMsg.UPD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント(オペレータアカウント)
		ku0081Msg.set(KU0081ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		// 無効フラグ(「0：有効」)
		ku0081Msg.set(KU0081ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);

		try
		{
			ku0081SecProc.create(ku0081Msg);
		}
		catch (CAANCreateException cce)
		{
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.CREATE_DB_ERR);
			throw cce;
		}

		return true;
	}
	
	/**
	 * サービス契約_工事案件登録（サービス契約_工事案件C）
	 * @param inCBSMsg		CBSメッセージ
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean insertKU0081_No4(CAANMsg inCBSMsg, CAANMsg kojiakInfo) throws CAANException
	{
		JKUejbKU0081SecProc ku0081SecProc = new JKUejbKU0081SecProc();
		CAANMsg ku0081Msg = new CAANMsg(KU0081ETMsg.class.getName());

		// サービス契約番号
		ku0081Msg.set(KU0081ETMsg.SVC_KEI_NO, inCBSMsg.getString(EKU0061C020CBSMsg.SVC_KEI_NO));
		// 工事案件番号(採番した工事案件番号)
		ku0081Msg.set(KU0081ETMsg.KOJIAK_NO, inCBSMsg.getString(EKU0061C020CBSMsg.KOJIAK_NO));
		// サービスコード
		ku0081Msg.set(KU0081ETMsg.SVC_CD, inCBSMsg.getString(EKU0061C020CBSMsg.SVC_CD));
		// SYSID
		ku0081Msg.set(KU0081ETMsg.SYSID, inCBSMsg.getString(EKU0061C020CBSMsg.SYSID));
		// サービス契約回線内訳番号
		ku0081Msg.set(KU0081ETMsg.SVC_KEI_KAISEN_UCWK_NO, inCBSMsg.getString(EKU0061C020CBSMsg.SVC_KEI_KAISEN_UCWK_NO));
		// サービス契約_工事案件適用開始年月日(部品：No.4)
		ku0081Msg.set(KU0081ETMsg.SVKEI_KOJIAK_TSTAYMD, JPCModelCommon.getOpeDate(inCBSMsg, null));
		// サービス契約_工事案件適用終了年月日(部品：No.4)
		ku0081Msg.set(KU0081ETMsg.SVKEI_KOJIAK_TENDYMD, JPCModelCommon.getOpeDate(inCBSMsg, null));
		// 登録年月日時分秒(システム日時)
		ku0081Msg.set(KU0081ETMsg.ADD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 登録オペレータアカウント(オペレータアカウント)
		ku0081Msg.set(KU0081ETMsg.ADD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		// 更新年月日時分秒(システム日時)
		ku0081Msg.set(KU0081ETMsg.UPD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント(オペレータアカウント)
		ku0081Msg.set(KU0081ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		// 無効フラグ(「0：有効」)
		ku0081Msg.set(KU0081ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		try
		{
			ku0081SecProc.create(ku0081Msg);
		}
		catch (CAANCreateException cce)
		{
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.CREATE_DB_ERR);
			throw cce;
		}

		return true;
	}
	
	/**
	 * サービス契約_工事案件登録（サービス契約_工事案件D）
	 * @param inCBSMsg		CBSメッセージ
	 * @param kojiakInfo	工事案件情報
	 * @param newKojiakNo	新規工事案件番号
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean insertKU0081_No5(CAANMsg inCBSMsg, CAANMsg kojiakInfo, String newKojiakNo) throws CAANException
	{
		JKUejbKU0081SecProc ku0081SecProc = new JKUejbKU0081SecProc();
		CAANMsg ku0081Msg = new CAANMsg(KU0081ETMsg.class.getName());

		
		// サービス契約番号
		ku0081Msg.set(KU0081ETMsg.SVC_KEI_NO, inCBSMsg.getString(EKU0061C020CBSMsg.SVC_KEI_NO));
		// 工事案件番号(工事案件情報の工事案件番号を設定)
		ku0081Msg.set(KU0081ETMsg.KOJIAK_NO, kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO));
		
		ku0081Msg = ku0081SecProc.findByPrimaryKey(ku0081Msg, true);
		
		if (null == ku0081Msg)
		{
			return false;
		}
		
		// 工事案件番号
		ku0081Msg.set(KU0061ETMsg.KOJIAK_NO, newKojiakNo);
		// 登録年月日時分秒(システム日付)
		ku0081Msg.set(KU0061ETMsg.ADD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 登録オペレータアカウント(共通部：オペレータＩＤ)
		ku0081Msg.set(KU0061ETMsg.ADD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		// 更新年月日時分秒(システム日付)
		ku0081Msg.set(KU0061ETMsg.UPD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント(共通部：オペレータＩＤ)
		ku0081Msg.set(KU0061ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		// 無効フラグ(「0：有効」)
		ku0081Msg.set(KU0061ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		try
		{
			ku0081SecProc.create(ku0081Msg);
		}
		catch (CAANCreateException cce)
		{
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.CREATE_DB_ERR);
			throw cce;
		}
		
		return true;
	}

	/**
	 * 先行設計更新（先行設計@）
	 * @param inCBSMsg		CBSメッセージ
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateKU0101_No1(CAANMsg inCBSMsg, CAANMsg kojiakInfo) throws CAANException
	{
		JKUejbKU0101SecProc ku0101SecProc = new JKUejbKU0101SecProc();
		CAANMsg ku0101Msg = new CAANMsg(KU0101ETMsg.class.getName());

		// 工事案件番号(取得データの工事案件番号)
		ku0101Msg.set(KU0101ETMsg.KOJIAK_NO, kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO));
		// 無効フラグ
		ku0101Msg.set(KU0101ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		CAANMsg[] ku0101MsgArray = ku0101SecProc.findByCondition(ku0101Msg);
		
		if (null == ku0101MsgArray || ku0101MsgArray.length == 0)
		{
			return true;
		}
		
		for (int i = 0; i < ku0101MsgArray.length; ++i)
		{
			ku0101Msg = ku0101MsgArray[i];
			
			if (false == JKUStrConst.SNKSKI_STAT_UK_ZM.equals(ku0101Msg.getString(KU0101ETMsg.SNKSKI_STAT)))
			{
				continue;
			}
			// 先行設計ステータス(「150：中止」)
			ku0101Msg.set(KU0101ETMsg.SNKSKI_STAT, JKUStrConst.SNKSKI_STAT_CHUSHI);
			
			// 先行設計中止年月日
			ku0101Msg.set(KU0101ETMsg.SNKSKI_STP_YMD, JKUModelCommon.getOpeDate(inCBSMsg, null));
			// 更新年月日時分秒(システム日時)
			ku0101Msg.set(KU0101ETMsg.UPD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
			// 更新オペレータアカウント(オペレータアカウント)
			ku0101Msg.set(KU0101ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
			
			try
			{
				ku0101SecProc.update(ku0101Msg);
			}
			catch (CAANFinderException cfe)
			{
				inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
				throw cfe;
			}
		}


		return true;
	}
	
	/**
	 * 先行設計更新（先行設計A）
	 * @param inCBSMsg		CBSメッセージ
	 * @param kojiakInfo	工事案件情報
	 * @param svcKeiInfoMap	サービス契約情報
	 * @param sysIdInfoMap	お客様情報
	 * @param svcKeiKjakInfo	サービス契約_工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateKU0101_No2(CAANMsg inCBSMsg, CAANMsg kojiakInfo,
			HashMap<String, String> svcKeiInfoMap, HashMap<String, String> sysIdInfoMap, CAANMsg svcKeiKjakInfo) throws CAANException
	{
		JKUejbKU0101SecProc ku0101SecProc = new JKUejbKU0101SecProc();
		CAANMsg ku0101Msg = new CAANMsg(KU0101ETMsg.class.getName());

		
		// 工事案件番号(取得データの工事案件番号)
		ku0101Msg.set(KU0101ETMsg.KOJIAK_NO, kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO));
		// 無効フラグ
		ku0101Msg.set(KU0101ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		CAANMsg[] ku0101MsgArray = ku0101SecProc.findByCondition(ku0101Msg);
		
		if (null == ku0101MsgArray || ku0101MsgArray.length == 0)
		{
			return true;
		}
		for (int i = 0; i < ku0101MsgArray.length; ++i)
		{
			ku0101Msg = ku0101MsgArray[i];
			
			if (false == JKUStrConst.SNKSKI_STAT_UK_ZM.equals(ku0101Msg.getString(KU0101ETMsg.SNKSKI_STAT)))
			{
				continue;
			}
			
			// 料金グループコード(サービス契約情報から取得)
			ku0101Msg.set(KU0101ETMsg.PRC_GRP_CD, svcKeiInfoMap.get(KK0081ETMsg.PRC_GRP_CD));
			// 新料金コースコード(サービス契約情報から取得)
			ku0101Msg.set(KU0101ETMsg.NEW_PCRS_CD, svcKeiInfoMap.get(KK0081ETMsg.PCRS_CD));
			// 新割引タイプコード(サービス契約情報から取得 ※「即割」の場合のみ、設定する。 )
			String wribType = null;
			if (JKUStrConst.CD00284_SOKUWARI.equals(svcKeiInfoMap.get(KK0841ETMsg.WRIB_TYPE_CD)))
			{
				wribType =  JKUStrConst.CD00284_SOKUWARI;
			}
			ku0101Msg.set(KU0101ETMsg.NEW_WRIB_TYPE_CD, wribType);
			// 申込明細番号
			ku0101Msg.set(KU0101ETMsg.MSKM_DTL_NO, inCBSMsg.getString(EKU0061C020CBSMsg.MSKM_DTL_NO));
			// サービス契約番号(サービス契約＿工事案件情報から取得)
			ku0101Msg.set(KU0101ETMsg.SVC_KEI_NO, svcKeiKjakInfo.getString(KU0081ETMsg.SVC_KEI_NO));
			// SYSID(サービス契約＿工事案件情報から取得)
			ku0101Msg.set(KU0101ETMsg.SYSID, svcKeiKjakInfo.getString(KU0081ETMsg.SYSID));
			// お客様名(お客様情報から取得)
			ku0101Msg.set(KU0101ETMsg.CUST_NM, sysIdInfoMap.get(CK0011ETMsg.CUST_NM));
			// お客様カナ名(お客様情報から取得)
			ku0101Msg.set(KU0101ETMsg.CUST_KANA, sysIdInfoMap.get(CK0011ETMsg.CUST_KANA));
			// お客様連絡先電話番号(お客様情報から取得)
			ku0101Msg.set(KU0101ETMsg.CUST_RRKS_TELNO, sysIdInfoMap.get(KU0011ETMsg.CUST_HOME_TELNO));
			// お客様連絡先携帯電話番号(お客様情報から取得)
			ku0101Msg.set(KU0101ETMsg.CUST_RRKS_KTAI_TELNO, sysIdInfoMap.get(CK0011ETMsg.KEISHA_TELNO));
			// 更新年月日時分秒(システム日時)
			ku0101Msg.set(KU0101ETMsg.UPD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
			// 更新オペレータアカウント(オペレータアカウント)
			ku0101Msg.set(KU0101ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));

			try
			{
				ku0101SecProc.update(ku0101Msg);
			}
			catch (CAANFinderException cfe)
			{
				inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
				throw cfe;
			}
		}
		
		return true;
	}
	
	/**
	 * 設定工事更新（設定工事@）
	 * @param inCBSMsg		CBSメッセージ
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateKU0111_No1(CAANMsg inCBSMsg, CAANMsg kojiakInfo) throws CAANException
	{
		JKUejbKU0111SecProc ku0111SecProc = new JKUejbKU0111SecProc();
		CAANMsg ku0111Msg = new CAANMsg(KU0111ETMsg.class.getName());
		// 工事案件番号(取得データの工事案件番号)
		ku0111Msg.set(KU0111ETMsg.KOJIAK_NO, kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO));
		// 無効フラグ
		ku0111Msg.set(KU0111ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		CAANMsg[] ku0111MsgArray = ku0111SecProc.findByCondition(ku0111Msg);
		
		if (null == ku0111MsgArray || ku0111MsgArray.length == 0)
		{
			return true;
		}
		
		for (int i = 0; i < ku0111MsgArray.length; ++i)
		{
			ku0111Msg = ku0111MsgArray[i];
			
			// 設定工事ステータス(「900：中止」)
			ku0111Msg.set(KU0111ETMsg.SETTE_KOJI_STAT, JKUStrConst.CD00477_CHUSHI);
			// 設定工事キャンセル年月日時分秒
			ku0111Msg.set(KU0111ETMsg.SETTE_KOJI_CANCEL_DTM, JKUModelCommon.getOpeDateTime(inCBSMsg, null));
			// 更新年月日時分秒(システム日時)
			ku0111Msg.set(KU0111ETMsg.UPD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
			// 更新オペレータアカウント(オペレータアカウント)
			ku0111Msg.set(KU0111ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
			
			try
			{
				ku0111SecProc.update(ku0111Msg);
			}
			catch (CAANFinderException cfe)
			{
				inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
				throw cfe;
			}

		}
		
		return true;
	}
	
	/**
	 * 設定工事更新（設定工事B）
	 * @param inCBSMsg		CBSメッセージ
	 * @param kojiakInfo	工事案件情報
	 * @param svcKeiInfoMap	サービス契約情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateKU0111_No3(CAANMsg inCBSMsg, CAANMsg kojiakInfo, HashMap<String, String> svcKeiInfoMap) throws CAANException
	{
		JKUejbKU0111SecProc ku0111SecProc = new JKUejbKU0111SecProc();
		CAANMsg ku0111Msg = new CAANMsg(KU0111ETMsg.class.getName());
		// 工事案件番号(取得データの工事案件番号)
		ku0111Msg.set(KU0111ETMsg.KOJIAK_NO, kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO));
		// 無効フラグ
		ku0111Msg.set(KU0111ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		CAANMsg[] ku0111MsgArray = ku0111SecProc.findByCondition(ku0111Msg);
		
		if (null == ku0111MsgArray || ku0111MsgArray.length == 0)
		{
			return true;
		}
		
		for (int i = 0; i < ku0111MsgArray.length; ++i)
		{
			ku0111Msg = ku0111MsgArray[i];
			
			// 新料金コースコード(サービス契約＿工事案件情報から取得)
			ku0111Msg.set(KU0111ETMsg.NEW_PCRS_CD, svcKeiInfoMap.get(KK0081ETMsg.PRC_GRP_CD));
			// 新割引タイプコード(サービス契約＿工事案件情報から取得)
			// 新割引タイプコード(サービス契約情報から取得 ※「即割」の場合のみ、設定する。 )
			String wribType = null;
			if (JKUStrConst.CD00284_SOKUWARI.equals(svcKeiInfoMap.get(KK0841ETMsg.WRIB_TYPE_CD)))
			{
				wribType = JKUStrConst.CD00284_SOKUWARI;
			}
			ku0111Msg.set(KU0101ETMsg.NEW_WRIB_TYPE_CD, wribType);
			// 更新年月日時分秒(システム日時)
			ku0111Msg.set(KU0111ETMsg.UPD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
			// 更新オペレータアカウント(オペレータアカウント)
			ku0111Msg.set(KU0111ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
			
			try
			{
				ku0111SecProc.update(ku0111Msg);
			}
			catch (CAANFinderException cfe)
			{
				inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
				throw cfe;
			}

		}


		return true;
	}
		
	/**
	 * 設定工事登録（設定工事D）
	 * @param inCBSMsg		CBSメッセージ
	 * @param kojiakInfo	工事案件情報
	 * @param svcKeiInfoMap	サービス契約情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean insertKU0111_No5(CAANMsg inCBSMsg, CAANMsg kojiakInfo, HashMap<String, String> svcKeiInfoMap) throws CAANException
	{
		JKUejbKU0111SecProc ku0111SecProc = new JKUejbKU0111SecProc();
		
		// Create用メッセージ
		CAANMsg msgKU0111ForCreate = new CAANMsg(KU0111ETMsg.class.getName());
		// Update用メッセージ
		CAANMsg msgKU0111ForUpdate = new CAANMsg(KU0111ETMsg.class.getName());
		// 更新フラグ
		boolean updFlg = false;
		
		String kojiakNo = kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO);
		
		// 工事案件番号(取得データの工事案件番号)
		msgKU0111ForUpdate.set(KU0111ETMsg.KOJIAK_NO, kojiakNo);
		// 無効フラグ
		msgKU0111ForUpdate.set(KU0111ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		CAANMsg[] ku0111MsgArray = ku0111SecProc.findByCondition(msgKU0111ForUpdate);
		
		try
		{
			for (int i = 0; i < ku0111MsgArray.length; ++i)
			{
				// 更新元のレコード設定
				msgKU0111ForUpdate = ku0111MsgArray[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(EKU0061C020CBSMsg.OPERATEDATETIME)); 
					// 更新オペレータアカウント
					msgKU0111ForUpdate.set(KU0111ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
					
					ku0111SecProc.update(msgKU0111ForUpdate);
					
					// 更新フラグを立てる
					updFlg = true;
				}
			}
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}

		// 設定工事番号を採番する
		String setteKojiNo = JKUejbNumberParts.getSetteKojiNo(inCBSMsg);
		
		// 設定工事番号
		msgKU0111ForCreate.set(KU0111ETMsg.SETTE_KOJI_NO, setteKojiNo);
		
		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(EKU0061C020CBSMsg.PCRS_CD));
		// 旧割引タイプコード
		msgKU0111ForCreate.set(KU0111ETMsg.OLD_WRIB_TYPE_CD, inCBSMsg.getString(EKU0061C020CBSMsg.WRIB_TYPE_CD));
		// 新料金コースコード
		msgKU0111ForCreate.set(KU0111ETMsg.NEW_PCRS_CD, svcKeiInfoMap.get(KK0081ETMsg.PCRS_CD));
		
		// 新割引タイプコード
		String wrib_type_cd = null;
		if(JKUStrConst.CD00284_SOKUWARI.equals(svcKeiInfoMap.get(KK0841ETMsg.WRIB_TYPE_CD)))
		{
			wrib_type_cd = svcKeiInfoMap.get(KK0841ETMsg.WRIB_TYPE_CD);
		}
		msgKU0111ForCreate.set(KU0111ETMsg.NEW_WRIB_TYPE_CD, wrib_type_cd);
		
		// マンション部屋通信機器種別コード
		msgKU0111ForCreate.set(KU0111ETMsg.MANS_RM_TUSHIN_KIKI_SBT_CD, inCBSMsg.getString(EKU0061C020CBSMsg.MANS_RM_TUSHIN_KIKI_SBT_CD));
		// 更新対象工事案件番号
		msgKU0111ForCreate.set(KU0111ETMsg.UPD_TRGT_KOJIAK_NO, kojiakNo);
		// サービス契約番号
		msgKU0111ForCreate.set(KU0111ETMsg.SVC_KEI_NO, inCBSMsg.getString(EKU0061C020CBSMsg.SVC_KEI_NO));
		// 設定工事受付年月日時分秒 
		msgKU0111ForCreate.set(KU0111ETMsg.SETTE_KOJI_UK_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME).substring(0, 14));
		// 設定工事依頼年月日 
		msgKU0111ForCreate.set(KU0111ETMsg.SETTE_KOJI_REQYMD, JKUModelCommon.getOpeDate(inCBSMsg, null));
		// 設定工事コード
		msgKU0111ForCreate.set(KU0111ETMsg.SETTE_KOJI_CD, JKUStrConst.CD00579_PON_SET);
		// 連携先連携種別コード(「0：未連携」)
		msgKU0111ForCreate.set(KU0111ETMsg.RNKS_RENKEI_SBT_CD, JKUStrConst.CD00699_MIRENKEI);
		// 登録年月日時分秒(システム日付)
		msgKU0111ForCreate.set(KU0111ETMsg.ADD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 登録オペレータアカウント(共通部：オペレータＩＤ)
		msgKU0111ForCreate.set(KU0111ETMsg.ADD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		// 更新年月日時分秒(システム日付)
		msgKU0111ForCreate.set(KU0111ETMsg.UPD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント(共通部：オペレータＩＤ)
		msgKU0111ForCreate.set(KU0111ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		// 無効フラグ(「0：有効」)
		msgKU0111ForCreate.set(KU0111ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		try
		{
			ku0111SecProc.create(msgKU0111ForCreate);
		}
		catch (CAANCreateException cce)
		{
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.CREATE_DB_ERR);
			throw cce;
		}
		
		return true;
	}
	
	/**
	 * 工事案件対象宅内機器登録（工事案件対象宅内機器）
	 * @param inCBSMsg		CBSメッセージ
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean insertKU0141(CAANMsg inCBSMsg, CAANMsg kojiakInfo) throws CAANException
	{
		// 工事案件番号
		String kojiakNo = inCBSMsg.getString(EKU0061C020CBSMsg.KOJIAK_NO);
		// 工事案件種別
		String kojiakSbtCd = inCBSMsg.getString(EKU0061C020CBSMsg.KOJIAK_SBT_CD);
		// 料金グループコード
		String prcGrpCd = inCBSMsg.getString(EKU0061C020CBSMsg.PRC_GRP_CD);
		
		JKUModelCommon.updTaknkiki(kojiakNo, inCBSMsg, null, kojiakSbtCd, prcGrpCd, false);

		return true;
	}
	
	/**
	 * 申込明細_工事案件登録（申込明細）
	 * @param inCBSMsg		CBSメッセージ
	 * @param kojiakInfo	工事案件情報
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean insertKU0091(CAANMsg inCBSMsg, CAANMsg kojiakInfo) throws CAANException
	{
		JKUejbKU0091SecProc ku0091SecProc = new JKUejbKU0091SecProc();
		CAANMsg msgKU0091 = new CAANMsg(KU0091ETMsg.class.getName());

		// 申込明細番号
		msgKU0091.set(KU0091ETMsg.MSKM_DTL_NO, inCBSMsg.getString(EKU0061C020CBSMsg.MSKM_DTL_NO));
		// 工事案件番号(採番した工事案件番号)
		msgKU0091.set(KU0091ETMsg.KOJIAK_NO, inCBSMsg.getString(EKU0061C020CBSMsg.KOJIAK_NO));
		msgKU0091 = ku0091SecProc.findByPrimaryKey(msgKU0091, false);
		
		if (null != msgKU0091)
		{
			return true;
		}
		
		msgKU0091 = new CAANMsg(KU0091ETMsg.class.getName());
		
		// 申込明細番号
		msgKU0091.set(KU0091ETMsg.MSKM_DTL_NO, inCBSMsg.getString(EKU0061C020CBSMsg.MSKM_DTL_NO));
		// 工事案件番号(採番した工事案件番号)
		msgKU0091.set(KU0091ETMsg.KOJIAK_NO, inCBSMsg.getString(EKU0061C020CBSMsg.KOJIAK_NO));
		// 申込明細_工事案件適用開始年月日(部品：No.4)
		msgKU0091.set(KU0091ETMsg.MSKM_DTL_KOJIAK_TSTAYMD, JPCModelCommon.getOpeDate(inCBSMsg, null));
		// 申込明細_工事案件適用終了年月日(「20991231」)
		msgKU0091.set(KU0091ETMsg.MSKM_DTL_KOJIAK_TENDYMD, JKUStrConst.MAX_YMD);
		// 登録年月日時分秒(システム日時)
		msgKU0091.set(KU0091ETMsg.ADD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 登録オペレータアカウント(オペレータアカウント)
		msgKU0091.set(KU0091ETMsg.ADD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		// 更新年月日時分秒(システム日時)
		msgKU0091.set(KU0091ETMsg.UPD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント(オペレータアカウント)
		msgKU0091.set(KU0091ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		// 無効フラグ(「0：有効」)
		msgKU0091.set(KU0091ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);

		try
		{
			ku0091SecProc.create(msgKU0091);
		}
		catch (CAANCreateException cce)
		{
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.CREATE_DB_ERR);
			throw cce;
		}
		
		return true;
	}
	
	/**
	 * 申込明細_工事案件登録（申込明細A）
	 * @param inCBSMsg		CBSメッセージ
	 * @param newKojiakNo	新規工事案件番号
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean insertKU0091_No2(CAANMsg inCBSMsg, String newKojiakNo) throws CAANException
	{
		JKUejbKU0091SecProc ku0091SecProc = new JKUejbKU0091SecProc();
		CAANMsg msgKU0091 = new CAANMsg(KU0091ETMsg.class.getName());

		// 申込明細番号
		msgKU0091.set(KU0091ETMsg.MSKM_DTL_NO, inCBSMsg.getString(EKU0061C020CBSMsg.MSKM_DTL_NO));
		// 工事案件番号(新規工事案件番号)
		msgKU0091.set(KU0091ETMsg.KOJIAK_NO, newKojiakNo);
		msgKU0091 = ku0091SecProc.findByPrimaryKey(msgKU0091, false);
		
		if (null != msgKU0091)
		{
			return true;
		}
		
		msgKU0091 = new CAANMsg(KU0091ETMsg.class.getName());
		
		// 申込明細番号
		msgKU0091.set(KU0091ETMsg.MSKM_DTL_NO, inCBSMsg.getString(EKU0061C020CBSMsg.MSKM_DTL_NO));
		// 工事案件番号(新規工事案件番号)
		msgKU0091.set(KU0091ETMsg.KOJIAK_NO, newKojiakNo);
		// 申込明細_工事案件適用開始年月日(部品：No.4)
		msgKU0091.set(KU0091ETMsg.MSKM_DTL_KOJIAK_TSTAYMD, JPCModelCommon.getOpeDate(inCBSMsg, null));
		// 申込明細_工事案件適用終了年月日(「20991231」)
		msgKU0091.set(KU0091ETMsg.MSKM_DTL_KOJIAK_TENDYMD, JKUStrConst.MAX_YMD);
		// 登録年月日時分秒(システム日時)
		msgKU0091.set(KU0091ETMsg.ADD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 登録オペレータアカウント(オペレータアカウント)
		msgKU0091.set(KU0091ETMsg.ADD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		// 更新年月日時分秒(システム日時)
		msgKU0091.set(KU0091ETMsg.UPD_DTM, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント(オペレータアカウント)
		msgKU0091.set(KU0091ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0061C020CBSMsg.OPERATORID));
		// 無効フラグ(「0：有効」)
		msgKU0091.set(KU0091ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);

		try
		{
			ku0091SecProc.create(msgKU0091);
		}
		catch (CAANCreateException cce)
		{
			inCBSMsg.set(EKU0061C020CBSMsg.STATUS, StatusCodes.CREATE_DB_ERR);
			throw cce;
		}
		
		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(EKU0061C020CBSMsg.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);
	}
	
	/**
	 * メッセージの項目が、配列のいずれかと合致するものであるかをチェックする
	 * @param msg	チェック対象のメッセージ
	 * @param key	チェック対象のキー
	 * @param checkArray	突合を行う配列
	 * @return	合致する場合true
	 */
	private boolean checkKomokuArray(CAANMsg msg, String key, String[] checkArray)
	{
		if (null == msg || null == key)
		{
			return false;
		}
		if (null == checkArray || checkArray.length == 0)
		{
			return false;
		}
		
		String checkStr = msg.getString(key);
		
		if (null == checkStr)
		{
			return false;
		}
		
		for (int i = 0; i < checkArray.length; ++i)
		{
			if (checkStr.equals(checkArray[i]))
			{
				return true;
			}
		}
		
		return false;
	}
	
	/**
	 * CBSメッセージから、処理判定用の契約を返します。
	 * @param inCBSMsg	CBSメッセージ
	 * @return	判断結果（private定数）
	 * @throws CAANException 
	 */
// ANK-3387-00-00 MOD START
//	private String checkKeiyakuInCBSMsg(CAANMsg inCBSMsg)
//	{
//		return checkKeiyaku(inCBSMsg.getString(EKU0061C020CBSMsg.MANSION_BUKKEN_CD), inCBSMsg.getString(EKU0061C020CBSMsg.MANS_TUSHIN_EQUIP_CD));
	private String checkKeiyakuInCBSMsg(CAANMsg inCBSMsg) throws CAANException
	{
		// 提供方式パターンコード取得
		String tkHoshikiPatternCd = JKUModelCommon.getTkHoshikiPatternCd(inCBSMsg.getString(EKU0061C020CBSMsg.SVC_KEI_NO));
		
		return checkKeiyaku(inCBSMsg.getString(EKU0061C020CBSMsg.MANSION_BUKKEN_CD)
				, inCBSMsg.getString(EKU0061C020CBSMsg.MANS_TUSHIN_EQUIP_CD)
				, tkHoshikiPatternCd);
// ANK-3387-00-00 MOD END
	}

	/**
	 * マンション物件コード、マンション通信設備コードから、処理判定用の契約を返します。
	 * @param mansionBukkenCd	マンション物件コード
	 * @param mansTushinEquipCd	マンション通信設備コード
	 * @param tkHoshikiPatternCd	提供方式パターンコード
	 * @return	判断結果（private定数）
	 */
// ANK-3387-00-00 MOD START
//	private String checkKeiyaku(String mansionBukkenCd, String mansTushinEquipCd)
	private String checkKeiyaku(String mansionBukkenCd, String mansTushinEquipCd, String tkHoshikiPatternCd)
// ANK-3387-00-00 MOD END
	{
		String retStr = null;
		
		// マンション物件コードがメゾンの場合
		if (JKUStrConst.MANS_BUKKEN_CD_MZN.equals(mansionBukkenCd))
		{
			// メゾンを返します。
			retStr = MZN;
		}
		// 単関連が存在するため、マンション物件コードはマンションである
		else
		{
// ANK-3387-00-00 MOD START
//			// 光配線の場合
//			if (JKUStrConst.MANS_TUSHIN_EQ_CD_HIKARI.equals(mansTushinEquipCd))
			// 光配線かつ、提供方式パターンコードが光コンセント以外の場合
			if (JKUStrConst.MANS_TUSHIN_EQ_CD_HIKARI.equals(mansTushinEquipCd)
					&& !JKUStrConst.CD01213_HKR_SOCKET.equals(tkHoshikiPatternCd))
// ANK-3387-00-00 MOD END
			{
				retStr = MANS_HIKARI;
			}
			// イーサその他光配線以外
			else
			{
				retStr = MANS_ETH;
			}
		}
		
		return retStr;
	}
	
// ANK-3652-00-00 ADD START
	/**
	 * CBSメッセージから光コンセントの契約か判定し結果を返します。
	 * @param inCBSMsg	CBSメッセージ
	 * @return	判定結果
	 */
	private boolean checkKeiHkrSocket(CAANMsg inCBSMsg) throws CAANException
	{
		// 提供方式パターンコード取得
		String tkHoshikiPatternCd = JKUModelCommon.getTkHoshikiPatternCd(inCBSMsg.getString(EKU0061C020CBSMsg.SVC_KEI_NO));
		
		// 提供方式パターンコードが『51：光コンセント』の場合
		if (JKUStrConst.CD01213_HKR_SOCKET.equals(tkHoshikiPatternCd))
		{
			return true;
		}
		return false;
	}
// ANK-3652-00-00 ADD END
	
	/**
	 * 電話契約のサービス契約_工事案件取得
	 * @param kojiakNo	更新対象の工事案件番号
	 * @param svcKeiNo	ネット契約のサービス契約番号
	 * @return	電話契約のサービス契約_工事案件
	 * @throws CAANException
	 */
	private CAANMsg getTelKu0081(String kojiakNo, String svcKeiNo) throws CAANException
	{
		// ---工事案件番号を元に検索
		
		CAANMsg ku0081Msg = new CAANMsg(KU0081ETMsg.class.getName());
		
		// 工事案件番号
		ku0081Msg.set(KU0081ETMsg.KOJIAK_NO, kojiakNo);
		// サービスコード
		ku0081Msg.set(KU0081ETMsg.SVC_CD, JKUStrConst.CD00130_TEL);
		// 無効フラグ
		ku0081Msg.set(KU0081ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		CAANMsg[] ku0081MsgArray = new JKUejbKU0081SecProc().findByCondition(ku0081Msg);
		
		// --- サービス契約番号が異なる場合は、サービス契約番号を返して終了する
		
		for (int i = 0; i < ku0081MsgArray.length; ++i)
		{
			if (false == ku0081MsgArray[i].getString(KU0081ETMsg.SVC_KEI_NO).equals(svcKeiNo))
			{
				return ku0081MsgArray[i];
			}
		}
		
		return null;
	}
}
