/*******************************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JEKU0041D010TPMA
*	ソースファイル名：JEKU0041D010TPMA.java
*	作成者			：富士通
*	日付			：2011年03月14日
*＜機能概要＞
*	工事案件＜ｅｏ光テレビ回線＞受付の独自処理を呼び出す部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	ｖ1.00.00
*	ｖ4.00.00	2012/06/13	FJ)日根		【ANK-0397-00-00】申込書番号の発番検討における対応について
*	ｖ4.00.00	2012/06/13	FJ)日根		【ANK-0398-00-00】住所管理に伴う「例外登録」の管理追加対応
*	ｖ4.00.00	2012/06/25	FJ)高橋		【ANK-0275-01-00】200Ｍ・１ギガｸﾞﾚｰﾄﾞｱｯﾌﾟｷｬﾝﾍﾟｰﾝ本格対応
*	ｖ5.00.00	2013/08/24	FJ)高橋		【OM-2013-0000830】
*	ｖ5.00.01	2013/08/29	FJ)高橋		【OM-2013-0001134】
*	ｖ31.00.00	2017/11/02	FJ)柳川		【ANK-3136-00-00】OPMSハードウエア保守切れ対応(STEP2-2)
*	ｖ56.00.00	2021/10/11	FJ)永井		【ANK-4038-00-00】【eo定期】光ローゼット化対応
*	v61.00.00	2023/01/13	GDC)r.heredia	【ANK-4315-00-00】eoホームゲートウェイ導入対応 step2
*
********************************************************************************/

package eo.ejb.cbs.mainproc;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
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.KK0251ETMsg;
import eo.ejb.cbm.entity.KU0011ETMsg;
import eo.ejb.cbm.entity.KU0041ETMsg;
import eo.ejb.cbm.entity.KU0081ETMsg;
import eo.ejb.cbm.entity.KU0091ETMsg;
import eo.ejb.cbm.entity.KU0101ETMsg;
import eo.ejb.cbm.entity.KU0141ETMsg;
import eo.ejb.cbs.cbsmsg.EKU0041D010CBSMsg;
import eo.ejb.common.JKUModelCommon;
import eo.ejb.common.JPCModelCommon;
import eo.ejb.common.db.JKUejbKU0011SecProc;
import eo.ejb.common.db.JKUejbKU0041SecProc;
import eo.ejb.common.db.JKUejbKU0081SecProc;
import eo.ejb.common.db.JKUejbKU0091SecProc;
import eo.ejb.common.db.JKUejbKU0101SecProc;
import eo.ejb.common.db.JKUejbKU0141SecProc;
import eo.ejb.common.edit.JKUejbNumberParts;

/**
 * <p>
 * 工事案件＜ｅｏ光テレビ回線＞受付の独自処理を呼び出す部品です。
 * </p>
 * @author 富士通
 */
public class JEKU0041D010TPMA implements TemplateMainHandler
{
	
	/** 再照査_工事案件整合性チェックエラー */
	private static final String KU0011_SEIGOSEI_ERR = "EC";
	/** 再照査_工事案件排他チェックエラー */
	private static final String KU0011_HAITA_ERR = "ED";
	/** 再照査_工事案件＜eo光テレビ回線＞存在チェックエラー */
	private static final String KU0041_NULL_ERR = "EE";
	/** 再照査_サービス契約_工事案件存在チェックエラー */
	private static final String KU0081_NULL_ERR = "EF";
	/** 再照査_サービス契約_工事案件整合性エラー */
	private static final String KU0081_SEIGOSEI_ENDYMD_ERR = "EI";
	/** 再照査_先行設計整合性チェックエラー */
	private static final String KU0101_SEIGOSEI_ERR = "EG";
	
	/** 登録不可データ */
	private static final String INS_ERROR = "error";	
	/** 通常登録 */
	private static final String INS_NORMAL = "normal";
	/** 最新基本工事更新 */
	private static final String INS_AND_UPD_RCT = "rct";
	
	/**
	 * コンストラクタです。
	 */
	public JEKU0041D010TPMA()
	{
		super();
	}
	
	/**
	 * 主処理
	 * @param inCBSMsg
	 * @param inContext
	 * @throws CAANException 
	 */
	public void invoke(CAANMsg inCBSMsg, AgentDispatchContext inContext) throws CAANException
	{
		
		// 再照査を実行する
		if (true == reVerification(inCBSMsg, inContext))
		{
			return;
		}
		// 工事受付コード
		String kojiUkCd = inCBSMsg.getString(EKU0041D010CBSMsg.KOJI_UK_CD);
		// 工事受付詳細コード
		String kojiUkDtlCd = inCBSMsg.getString(EKU0041D010CBSMsg.KOJI_UK_DTAIL_CD);
		// 面開発案件番号
		String menkaihatAnkenNo = inCBSMsg.getString(EKU0041D010CBSMsg.MENKAIHAT_ANKEN_NO);
		// リンクSTBフラグ
		String linkStbFlg = "";
		// 料金グループコード
		String prcGrpCd = inCBSMsg.getString(EKU0041D010CBSMsg.PRC_GRP_CD);
		// PON種別コード
		String ponSbtCd = "";
		// 料金コースPON条件コード
		String pcrsPonJokenCd = "";
		// ANK-4315-00-00 ADD START
		// ONU交換要否
		String onuKokanYh = null;
		// ANK-4315-00-00 ADD END
		// サービス契約回線内訳番号
		String svcKeiKaisenUcwkNo = inCBSMsg.getString(EKU0041D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO);
		// 申込書明細番号
		String mkmsdtlNo = inCBSMsg.getString("mkmsdtl_no");
		// 工事案件番号
		String kojiakNo = null;
		
		// 最新基本工事取得
		String newestKojiakNo = JKUModelCommon.getNewestKihonKojiakNo(svcKeiKaisenUcwkNo, prcGrpCd);
		// 仕掛かり工事取得
		String skkrKojiakNo = JKUModelCommon.getShikakariKojiakNo(svcKeiKaisenUcwkNo, prcGrpCd, null);
		// 工事案件種別取得
		// ANK-4315-00-00 MOD START
//		String kojiakSbtCd = JKUModelCommon.getKojiakSbtCd(kojiUkCd, kojiUkDtlCd, menkaihatAnkenNo,
//				linkStbFlg, prcGrpCd, ponSbtCd, pcrsPonJokenCd);
		String kojiakSbtCd = JKUModelCommon.getKojiakSbtCd(kojiUkCd, kojiUkDtlCd, menkaihatAnkenNo,
				linkStbFlg, prcGrpCd, ponSbtCd, pcrsPonJokenCd,
				onuKokanYh
		);
		// ANK-4315-00-00 MOD END

		String insStat = insertKH(newestKojiakNo, skkrKojiakNo, kojiakSbtCd);
		
		if (INS_ERROR.equals(insStat))
		{
			inCBSMsg.set(EKU0041D010CBSMsg.MSKMSHO_NO_ERR, "EA");
			inCBSMsg.set(EKU0041D010CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return;
		}
		
		// 機能コード1以外の場合はチェックのみのため処理を終了する
		if (!JPCModelConstant.FUNC_CD_1.equals(inCBSMsg.getString(EKU0041D010CBSMsg.FUNC_CODE)))
		{
			return;
		}
		
		
		// 申込書明細番号チェック
		if (null == mkmsdtlNo || "".equals(mkmsdtlNo))
		{
			
			// 申込書番号が無い場合、最新工事案件番号を用いて採番を行う
			
			// 最新工事案件番号も無い場合エラーを設定する
			if (null == newestKojiakNo || "".equals(newestKojiakNo))
			{
				// 申込書番号エラーを設定
				inCBSMsg.set(EKU0041D010CBSMsg.MSKMSHO_NO_ERR, "EA");
				// ステータスを設定
				inCBSMsg.set(EKU0041D010CBSMsg.STATUS, StatusCodes.RELATION_ERR);
				return;
			}
			
			// 最新工事案件番号を用いて採番を行う
			kojiakNo = JKUejbNumberParts.getKojiakNoString(newestKojiakNo, inCBSMsg);
			
		}
		else
		{
			// 申込書番号が存在する場合
			
			// 工事案件番号採番
			kojiakNo = JKUejbNumberParts.getKojiakNo(inCBSMsg, inContext);
		}
		
		
		if (null == kojiakNo || "".equals(kojiakNo))
		{
			// 申込書番号エラーを設定
			inCBSMsg.set(EKU0041D010CBSMsg.MSKMSHO_NO_ERR, "EB");
			inCBSMsg.set(EKU0041D010CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return;
		}
		
		// 工事案件番号を設定する
		inCBSMsg.set(EKU0041D010CBSMsg.KOJIAK_NO, kojiakNo);
		// 工事案件種別を設定する
		inCBSMsg.set(EKU0041D010CBSMsg.KOJIAK_SBT_CD, kojiakSbtCd);
		
		// 登録対象のスキーマを取得する
		HashMap<String, String> rsltMap = JKUModelCommon.checkSchemaInsertTVKaisen(inCBSMsg.getString(EKU0041D010CBSMsg.KOJIAK_SBT_CD));

		// 同時代表工事案件番号を取得
		String dojiDaihyoKojiakNo = JKUModelCommon.getSimRepKojiakNoNotFindByPk(
				inCBSMsg.getString(EKU0041D010CBSMsg.KOJIAK_SBT_CD), inCBSMsg.getString(EKU0041D010CBSMsg.PRC_GRP_CD)
				, null, null, null, inCBSMsg.getString(EKU0041D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO));
		
		// 更新対象工事案件番号
		String updTrgtKojiakNo = JKUModelCommon.getUpdTrgtKojiakNo(
				inCBSMsg.getString(EKU0041D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO), prcGrpCd, null, null, kojiakSbtCd);
		
		if (JKUStrConst.SCHEMA_INS.equals(rsltMap.get(JKUStrConst.SCHEMA_KUJAK)))
		{
			
			// 工事案件登録フラグ
			boolean kojiakInsFlg = true;
			
			// 最新基本工事更新更新が必要な場合
			if (INS_AND_UPD_RCT.equals(insStat))
			{
				updTrgtKojiakNo = null;
			}
			
			// 工事案件を登録する
			kojiakInsFlg = insertKU0011(inCBSMsg, dojiDaihyoKojiakNo, updTrgtKojiakNo);
			
			// 登録処理中にエラーが発生したか
			if (!kojiakInsFlg)
			{
				// 発生した場合処理終了
				return;
			}
			
			// 最新基本工事更新更新が必要な場合
			if (INS_AND_UPD_RCT.equals(insStat))
			{
				updateMotoNewestKojiak(inCBSMsg, newestKojiakNo);
			}
			
			try
			{
				// 同時代表工事案件の更新処理
				if(!JKUModelCommon.updateDojiDaihyoKojiak(inCBSMsg.getString(EKU0041D010CBSMsg.KOJIAK_NO), dojiDaihyoKojiakNo, 
						inCBSMsg.getString(EKU0041D010CBSMsg.OPERATEDATETIME), inCBSMsg.getString(EKU0041D010CBSMsg.OPERATORID), inContext, true))
				{
					// 申込書番号エラーを設定
					inCBSMsg.set(EKU0041D010CBSMsg.MSKMSHO_NO_ERR, "EJ");
					// ステータスを設定
					inCBSMsg.set(EKU0041D010CBSMsg.STATUS, StatusCodes.RELATION_ERR);
					return;
				}
			}
			catch(CAANFinderException cfe)
			{
				inCBSMsg.set(EKU0041D010CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
				throw cfe;
			}
		}
		
		if (JKUStrConst.SCHEMA_INS.equals(rsltMap.get(JKUStrConst.SCHEMA_KJAK_TG_TKKIKI)))
		{
			// 工事案件対象宅内機器を登録する
			insertKU0141(inCBSMsg);
		}
		
		if (JKUStrConst.SCHEMA_INS.equals(rsltMap.get(JKUStrConst.SCHEMA_KUJAKSUB)))
		{
			// 工事案件＜ｅｏ光テレビ回線＞を登録する
			insertKU0041(inCBSMsg);
		}
		
		if (JKUStrConst.SCHEMA_INS.equals(rsltMap.get(JKUStrConst.SCHEMA_SVKEI_KOJIAK)))
		{
			// サービス契約_工事案件を登録する
			insertKU0081(inCBSMsg);
		}
		
		if (JKUStrConst.SCHEMA_INS.equals(rsltMap.get(JKUStrConst.SCHEMA_MSKM_DTL_KOJIAK)))
		{
			// 申込明細_工事案件を登録する
			insertKU0091(inCBSMsg);
		}
		
		if (JKUStrConst.SCHEMA_INS.equals(rsltMap.get(JKUStrConst.SCHEMA_SENKO_DSGN)))
		{
			
			try
			{
				// 同時代表工事案件の更新処理
				JKUModelCommon.updateDojiDaihyoSenkoDsgn(inCBSMsg.getString(EKU0041D010CBSMsg.KOJIAK_NO), 
						dojiDaihyoKojiakNo, inCBSMsg.getString(EKU0041D010CBSMsg.OPERATEDATETIME), 
						inCBSMsg.getString(EKU0041D010CBSMsg.OPERATORID), true);
			}
			catch(CAANFinderException cfe)
			{
				inCBSMsg.set(EKU0041D010CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
				throw cfe;
			}
			
			// 先行設計
			boolean senkouInsFlg = true;
			
			// 先行設計を登録する
			senkouInsFlg =  insertKU0101(inCBSMsg, dojiDaihyoKojiakNo, updTrgtKojiakNo);
			
			// 登録処理中にエラーが発生したか
			if(!senkouInsFlg)
			{
				// 発生した場合処理終了
				return;
			}
			
		}
		
		// アウトプット項目を設定する
		// 登録年月日時分秒(システム日付)
		inCBSMsg.set(EKU0041D010CBSMsg.ADD_DTM, inCBSMsg.getString(EKU0041D010CBSMsg.OPERATEDATETIME));
		// 登録オペレータアカウント(共通部：オペレータＩＤ)
		inCBSMsg.set(EKU0041D010CBSMsg.ADD_OPEACNT, inCBSMsg.getString(EKU0041D010CBSMsg.OPERATORID));
		// 更新年月日時分秒(システム日付)
		inCBSMsg.set(EKU0041D010CBSMsg.UPD_DTM, inCBSMsg.getString(EKU0041D010CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント(共通部：オペレータＩＤ)
		inCBSMsg.set(EKU0041D010CBSMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0041D010CBSMsg.OPERATORID));
		// 無効フラグ
		inCBSMsg.set(EKU0041D010CBSMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
	}
	
	/**
	 * 工事案件を登録します。
	 * @param inCBSMsg
	 * @param dojiDaihyoKojiakNo 同時代表工事案件番号
	 * @param updTrgtKojiakNo	更新対象工事案件番号
	 * @return boolean
	 * @throws CAANException 
	 */
	private boolean insertKU0011(CAANMsg inCBSMsg, String dojiDaihyoKojiakNo, String updTrgtKojiakNo) throws CAANException
	{
		// 工事案件のETメッセージを作成
		CAANMsg msgKU0011 = new CAANMsg(KU0011ETMsg.class.getName());
		
		String opedate = JKUModelCommon.getOpeDate(inCBSMsg, null);
		
		// 工事案件番号 （申込書番号から発番）
		msgKU0011.set(KU0011ETMsg.KOJIAK_NO, inCBSMsg.getString(EKU0041D010CBSMsg.KOJIAK_NO));
		
		if(JKUStrConst.CD00577_PLAN_CHG_KOJI_NON.equals(inCBSMsg.getString(EKU0041D010CBSMsg.KOJIAK_SBT_CD)))
		{
			// 工事案件ステータス （'登録済'）
			msgKU0011.set(KU0011ETMsg.KOJIAK_STAT, JKUStrConst.CD00474_TOROKU_ZM);
		}
		else
		{
			// 工事案件ステータス （'受付済み'）
			msgKU0011.set(KU0011ETMsg.KOJIAK_STAT, JKUStrConst.CD00474_UK_ZM);
		}
		
		// 工事案件ステータスの設定
		inCBSMsg.set(EKU0041D010CBSMsg.KOJIAK_STAT, msgKU0011.getString(KU0011ETMsg.KOJIAK_STAT));
		
		// 申込書到着年月日の設定
		// 申込書到着年月日がNULLの場合
		if(inCBSMsg.isNull(EKU0041D010CBSMsg.MSKMSHO_ARIV_YMD))
		{
			// 運用日付を設定する
			inCBSMsg.set(EKU0041D010CBSMsg.MSKMSHO_ARIV_YMD, opedate);
		}
		
		// 申込受付年月日の設定
		// 申込受付年月日がNULLの場合
		if(inCBSMsg.isNull(EKU0041D010CBSMsg.MSKM_UK_YMD))
		{
			// 運用日付を設定する
			inCBSMsg.set(EKU0041D010CBSMsg.MSKM_UK_YMD, opedate);
		}
		
		// SYSID
		msgKU0011.set(KU0011ETMsg.SYSID, inCBSMsg.getString(EKU0041D010CBSMsg.SYSID));
		// 連携サービス契約番号
		msgKU0011.set(KU0011ETMsg.RNKI_SVC_KEI_NO, inCBSMsg.getString(EKU0041D010CBSMsg.SVC_KEI_NO));
		// オーナー契約番号
		msgKU0011.set(KU0011ETMsg.OWNR_KEI_NO, inCBSMsg.getString(EKU0041D010CBSMsg.OWNR_KEI_NO));
		// P-ID
		msgKU0011.set(KU0011ETMsg.PID, inCBSMsg.getString(EKU0041D010CBSMsg.PID));
		// 請求契約番号
		msgKU0011.set(KU0011ETMsg.SEIKY_KEI_NO, inCBSMsg.getString(EKU0041D010CBSMsg.SEIKY_KEI_NO));
		// 工事案件種別コード
		msgKU0011.set(KU0011ETMsg.KOJIAK_SBT_CD, inCBSMsg.getString(EKU0041D010CBSMsg.KOJIAK_SBT_CD));
		// 料金グループコード
		msgKU0011.set(KU0011ETMsg.PRC_GRP_CD, inCBSMsg.getString(EKU0041D010CBSMsg.PRC_GRP_CD));
		// 料金コースコード
		msgKU0011.set(KU0011ETMsg.PCRS_CD, inCBSMsg.getString(EKU0041D010CBSMsg.PCRS_CD));
		// 更新対象工事案件番号
		msgKU0011.set(KU0011ETMsg.UPD_TRGT_KOJIAK_NO, updTrgtKojiakNo);
		// 追加サービス契約番号 
		msgKU0011.set(KU0011ETMsg.ADD_SVC_KEI_NO,
				JKUModelCommon.getAddSvcKeiNo(
						inCBSMsg.getString(EKU0041D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO),
						inCBSMsg.getString(EKU0041D010CBSMsg.SVC_CD),
						inCBSMsg.getString(EKU0041D010CBSMsg.KOJIAK_SBT_CD),
						dojiDaihyoKojiakNo));
		// 申込受付年月日
		msgKU0011.set(KU0011ETMsg.MSKM_UK_YMD, inCBSMsg.getString(EKU0041D010CBSMsg.MSKM_UK_YMD));
		// 申込書到着年月日
		msgKU0011.set(KU0011ETMsg.MSKMSHO_ARIV_YMD, inCBSMsg.getString(EKU0041D010CBSMsg.MSKMSHO_ARIV_YMD));
		// 場所番号
		msgKU0011.set(KU0011ETMsg.PLACE_NO, inCBSMsg.getString(EKU0041D010CBSMsg.PLACE_NO));
		// 工事希望年月日
		msgKU0011.set(KU0011ETMsg.KOJI_KIBO_YMD, inCBSMsg.getString(EKU0041D010CBSMsg.KOJI_KIBO_YMD));
		// 転宅先住所コード （設置場所住所コード）
		msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_AD_CD, inCBSMsg.getString(EKU0041D010CBSMsg.SETPLACE_AD_CD));
		// 転宅先郵便番号 （設置場所郵便番号）
		msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_PCD, inCBSMsg.getString(EKU0041D010CBSMsg.SETPLACE_PCD));
		// 転宅先都道府県名 （設置場所都道府県名）
		msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_STATE_NM, inCBSMsg.getString(EKU0041D010CBSMsg.SETPLACE_STATE_NM));
		// 転宅先市区町村名 （設置場所市区町村名）
		msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_CITY_NM, inCBSMsg.getString(EKU0041D010CBSMsg.SETPLACE_CITY_NM));
		// 転宅先大字通称名 （設置場所大字通称名）
		msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_OAZTSU_NM, inCBSMsg.getString(EKU0041D010CBSMsg.SETPLACE_OAZTSU_NM));
		// 転宅先字丁目名 （設置場所字丁目名）
		msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_AZCHO_NM, inCBSMsg.getString(EKU0041D010CBSMsg.SETPLACE_AZCHO_NM));
		// 転宅先住所番地号 （設置場所住所番地号）
		msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_AD_BNCHIGO, inCBSMsg.getString(EKU0041D010CBSMsg.SETPLACE_AD_BNCHIGO));
		// 転宅先住所補記・建物名 （設置場所住所補記・建物名）
		msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_ADRTTM, inCBSMsg.getString(EKU0041D010CBSMsg.SETPLACE_ADRTTM));
		// 転宅先住所補記・部屋番号 （設置場所住所補記・部屋番号）
		msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_ADRRM, inCBSMsg.getString(EKU0041D010CBSMsg.SETPLACE_ADRRM));
		// 申込者名
		msgKU0011.set(KU0011ETMsg.MSKMSHA_NM, inCBSMsg.getString(EKU0041D010CBSMsg.MSKMSHA_NM));
		// お客様名
		msgKU0011.set(KU0011ETMsg.CUST_NM, inCBSMsg.getString(EKU0041D010CBSMsg.CUST_NM));
		// お客様カナ名
		msgKU0011.set(KU0011ETMsg.CUST_KANA, inCBSMsg.getString(EKU0041D010CBSMsg.CUST_KANA));
		// お客様自宅電話番号
		msgKU0011.set(KU0011ETMsg.CUST_HOME_TELNO, inCBSMsg.getString(EKU0041D010CBSMsg.CUST_HOME_TEL_NO));
		// お客様携帯電話番号
		msgKU0011.set(KU0011ETMsg.CUST_KTAI_TELNO, inCBSMsg.getString(EKU0041D010CBSMsg.CUST_KTAI_TEL_NO));
		// お客様連絡先電話番号
		msgKU0011.set(KU0011ETMsg.CUST_RRKS_TELNO, inCBSMsg.getString(EKU0041D010CBSMsg.CUST_RRKS_TEL_NO));
		// 連絡先勤務先名
		msgKU0011.set(KU0011ETMsg.RRKS_OFFC_NM, inCBSMsg.getString(EKU0041D010CBSMsg.RRKS_OFFC_NM));
		// 契約者住所コード
		msgKU0011.set(KU0011ETMsg.KEISHA_AD_CD, inCBSMsg.getString(EKU0041D010CBSMsg.KEISHA_AD_CD));
		// 契約者郵便番号
		msgKU0011.set(KU0011ETMsg.KEISHA_PCD, inCBSMsg.getString(EKU0041D010CBSMsg.KEISHA_PCD));
		// 契約者都道府県名
		msgKU0011.set(KU0011ETMsg.KEISHA_STATE_NM, inCBSMsg.getString(EKU0041D010CBSMsg.KEISHA_STATE_NM));
		// 契約者市区町村名
		msgKU0011.set(KU0011ETMsg.KEISHA_CITY_NM, inCBSMsg.getString(EKU0041D010CBSMsg.KEISHA_CITY_NM));
		// 契約者大字通称名
		msgKU0011.set(KU0011ETMsg.KEISHA_OAZTSU_NM, inCBSMsg.getString(EKU0041D010CBSMsg.KEISHA_OAZTSU_NM));
		// 契約者字丁目名
		msgKU0011.set(KU0011ETMsg.KEISHA_AZCHO_NM, inCBSMsg.getString(EKU0041D010CBSMsg.KEISHA_AZCHO_NM));
		// 契約者住所番地号
		msgKU0011.set(KU0011ETMsg.KEISHA_AD_BNCHIGO, inCBSMsg.getString(EKU0041D010CBSMsg.KEISHA_AD_BNCHIGO));
		// 契約者住所補記・建物名
		msgKU0011.set(KU0011ETMsg.KEISHA_ADRTTM, inCBSMsg.getString(EKU0041D010CBSMsg.KEISHA_ADRTTM));
		// 契約者住所補記・部屋番号
		msgKU0011.set(KU0011ETMsg.KEISHA_ADRRM, inCBSMsg.getString(EKU0041D010CBSMsg.KEISHA_ADRRM));
		// 契約者住所手動入力フラグ
		msgKU0011.set(KU0011ETMsg.KEISHA_AD_MAN_INPUT_FLG, inCBSMsg.getString(EKU0041D010CBSMsg.KEISHA_AD_MAN_INPUT_FLG));
		// 転宅前住所コード
		msgKU0011.set(KU0011ETMsg.TENTAKU_BF_AD_CD, inCBSMsg.getString(EKU0041D010CBSMsg.TENTAKU_BF_AD_CD));
		// 転宅前郵便番号
		msgKU0011.set(KU0011ETMsg.TENTAKU_BF_PCD, inCBSMsg.getString(EKU0041D010CBSMsg.TENTAKU_BF_PCD));
		// 転宅前都道府県名
		msgKU0011.set(KU0011ETMsg.TENTAKU_BF_STATE_NM, inCBSMsg.getString(EKU0041D010CBSMsg.TENTAKU_BF_STATE_NM));
		// 転宅前市区町村名
		msgKU0011.set(KU0011ETMsg.TENTAKU_BF_CITY_NM, inCBSMsg.getString(EKU0041D010CBSMsg.TENTAKU_BF_CITY_NM));
		// 転宅前大字通称名
		msgKU0011.set(KU0011ETMsg.TENTAKU_BF_OAZTSU_NM, inCBSMsg.getString(EKU0041D010CBSMsg.TENTAKU_BF_OAZTSU_NM));
		// 転宅前字丁目名
		msgKU0011.set(KU0011ETMsg.TENTAKU_BF_AZCHO_NM, inCBSMsg.getString(EKU0041D010CBSMsg.TENTAKU_BF_AZCHO_NM));
		// 転宅前住所番地号
		msgKU0011.set(KU0011ETMsg.TENTAKU_BF_AD_BNCHIGO, inCBSMsg.getString(EKU0041D010CBSMsg.TENTAKU_BF_AD_BNCHIGO));
		// 転宅前住所補記・建物名
		msgKU0011.set(KU0011ETMsg.TENTAKU_BF_ADRTTM, inCBSMsg.getString(EKU0041D010CBSMsg.TENTAKU_BF_ADRTTM));
		// 転宅前住所補記・部屋番号
		msgKU0011.set(KU0011ETMsg.TENTAKU_BF_ADRRM, inCBSMsg.getString(EKU0041D010CBSMsg.TENTAKU_BF_ADRRM));
		// 関西電力お客様情報授受同意有無
		msgKU0011.set(KU0011ETMsg.KEPCO_CUSTINFO_JUJU_DOI_UM, inCBSMsg.getString(EKU0041D010CBSMsg.KEPCO_CTINFO_JUJU_DOI_UM));
		// 住所形態コード
		msgKU0011.set(KU0011ETMsg.AD_FORM_CD, inCBSMsg.getString(EKU0041D010CBSMsg.AD_FORM_CD));
		// 工事先住所未確定フラグ
		msgKU0011.set(KU0011ETMsg.KOJI_SAKI_AD_MI_FIX_FLG, inCBSMsg.getString(EKU0041D010CBSMsg.KOJI_SAKI_AD_MI_FIX_FLG));
		
		// 受付の場合は緯度経度をそのまま転記する
		
		// 経度
		msgKU0011.set(KU0011ETMsg.LGTD, inCBSMsg.getString(EKU0041D010CBSMsg.LGTD));
		// 緯度
		msgKU0011.set(KU0011ETMsg.LTTD, inCBSMsg.getString(EKU0041D010CBSMsg.LTTD));
		
		
		/** 座標取得処理 */
		
		LinkedHashMap<String, BigDecimal> zahyoMap = 
			JKUModelCommon.allZahyoBX(inCBSMsg.getString(EKU0041D010CBSMsg.LGTD), inCBSMsg.getString(EKU0041D010CBSMsg.LTTD));
		
		// 部品から取得したマップのエラー格納箇所に値が入っていた場合エラー
		if (null != zahyoMap.get(JKUStrConst.ZAHYO_SET_ERROR))
		{
			
			String zahyoErrorCheck = zahyoMap.get(JKUStrConst.ZAHYO_SET_ERROR).toString();
			
			if (JKUStrConst.ZAHYO_MAP_ERROR_NULL.equals(zahyoErrorCheck))
			{
				// 部品から「nullエラー」が返った場合、座標にはnullを設定する
				
				String strNullItem = null;
				
				// X座標6系 （緯度・経度より求める）
				msgKU0011.set(KU0011ETMsg.XZAHYO_6, strNullItem);
				// Y座標6系 （緯度・経度より求める）
				msgKU0011.set(KU0011ETMsg.YZAHYO_6, strNullItem);
				// X座標5系 （緯度・経度より求める）
				msgKU0011.set(KU0011ETMsg.XZAHYO_5, strNullItem);
				// Y座標5系 （緯度・経度より求める）
				msgKU0011.set(KU0011ETMsg.YZAHYO_5, strNullItem);
				
				// 受付の場合は緯度経度をそのまま転記する
				
			}
			else
			{
				// nullエラー以外のエラーの場合
				
				// 座標変換エラーを登録
				inCBSMsg.set(EKU0041D010CBSMsg.LTTD_ERR, "EK");
				inCBSMsg.set(EKU0041D010CBSMsg.LGTD_ERR, "EK");
				// ステータス
				inCBSMsg.set(EKU0041D010CBSMsg.STATUS, StatusCodes.RELATION_ERR);
				return false;
			}
			
		}
		else if(null == zahyoMap.get(JKUStrConst.ZAHYO_SET_ERROR))
		{
			// エラー無しの場合
			
			// XY座標を登録する
			
			// X座標6系 （緯度・経度より求める）
			msgKU0011.set(KU0011ETMsg.XZAHYO_6, JKUModelCommon.convDoubleToString(zahyoMap.get(JKUStrConst.ZAHYO_MAP_X_6)));
			// Y座標6系 （緯度・経度より求める）
			msgKU0011.set(KU0011ETMsg.YZAHYO_6, JKUModelCommon.convDoubleToString(zahyoMap.get(JKUStrConst.ZAHYO_MAP_Y_6)));
			// X座標5系 （緯度・経度より求める）
			msgKU0011.set(KU0011ETMsg.XZAHYO_5, JKUModelCommon.convDoubleToString(zahyoMap.get(JKUStrConst.ZAHYO_MAP_X_5)));
			// Y座標5系 （緯度・経度より求める）
			msgKU0011.set(KU0011ETMsg.YZAHYO_5, JKUModelCommon.convDoubleToString(zahyoMap.get(JKUStrConst.ZAHYO_MAP_Y_5)));
			
		}
		
		
		// 座標補正有無
		msgKU0011.set(KU0011ETMsg.ZAHYO_HOSEI_UM, inCBSMsg.getString(EKU0041D010CBSMsg.ZAHYO_HOSEI_UM));
		// 竣工予定年月日
		msgKU0011.set(KU0011ETMsg.SHUNKO_RSV_YMD, inCBSMsg.getString(EKU0041D010CBSMsg.SHUNKO_RSV_YMD));
		// 入居予定年月日
		msgKU0011.set(KU0011ETMsg.NYUKYO_RSV_YMD, inCBSMsg.getString(EKU0041D010CBSMsg.NYUKYO_RSV_YMD));
		// 引渡し予定年月日
		msgKU0011.set(KU0011ETMsg.HIKIWATASHI_RSV_YMD, inCBSMsg.getString(EKU0041D010CBSMsg.HIKIWATASHI_RSV_YMD));
		// 電力送電予定年月日
		msgKU0011.set(KU0011ETMsg.EPOWER_SODEN_RSV_YMD, inCBSMsg.getString(EKU0041D010CBSMsg.EPOWER_SODEN_RSV_YMD));
		// 新築物件コード
		String newConstBukkenCd = inCBSMsg.getString(EKU0041D010CBSMsg.NEWCONST_BUKKEN_CD);
		if (null == newConstBukkenCd || "".equals(newConstBukkenCd))
		{
			newConstBukkenCd = JKUStrConst.NEWCONST_BUKKEN_CD_DEF;
		}
		msgKU0011.set(KU0011ETMsg.NEWCONST_BUKKEN_CD, newConstBukkenCd);
		// 入居階数コード
		msgKU0011.set(KU0011ETMsg.NYUKYO_FLR_CNT_CD, inCBSMsg.getString(EKU0041D010CBSMsg.NYUKYO_FLR_CNT_CD));
		// 建築階数コード
		msgKU0011.set(KU0011ETMsg.KCKU_FLR_CNT_CD, inCBSMsg.getString(EKU0041D010CBSMsg.KCKU_FLR_CNT_CD));
		// 方角コード1
		msgKU0011.set(KU0011ETMsg.DIRECTION_CD_1, inCBSMsg.getString(EKU0041D010CBSMsg.DIRECTION_CD_1));
		// 方角コード2
		msgKU0011.set(KU0011ETMsg.DIRECTION_CD_2, inCBSMsg.getString(EKU0041D010CBSMsg.DIRECTION_CD_2));
		// 同時代表工事案件番号
		msgKU0011.set(KU0011ETMsg.DOJI_DAIHYO_KOJIAK_NO, dojiDaihyoKojiakNo);
		// 電話連絡希望年月日
		msgKU0011.set(KU0011ETMsg.TEL_RRK_KIBO_YMD, inCBSMsg.getString(EKU0041D010CBSMsg.TEL_RRK_KIBO_YMD));
		// 電話連絡希望時間帯コード
		msgKU0011.set(KU0011ETMsg.TEL_RRK_KIBO_TIME_CD, inCBSMsg.getString(EKU0041D010CBSMsg.TEL_RRK_KIBO_TIME_CD));
		// 宅内工事希望アポ期限年月日
		msgKU0011.set(KU0011ETMsg.TNKJ_KIBO_APO_KIGEN_YMD, inCBSMsg.getString(EKU0041D010CBSMsg.TNKJ_KIBO_APO_KIGEN_YMD));
		// 工事アポ連絡先指定コード
		msgKU0011.set(KU0011ETMsg.KOJI_APO_RRKS_SHITEI_CD, inCBSMsg.getString(EKU0041D010CBSMsg.KOJI_APO_RRKS_SHITEI_CD));
		// 工事アポ連絡先電話番号
		msgKU0011.set(KU0011ETMsg.KOJI_APO_RRKS_TELNO, inCBSMsg.getString(EKU0041D010CBSMsg.KOJI_APO_RRKS_TELNO));
		// 連絡手段コード
		msgKU0011.set(KU0011ETMsg.RRK_WAY_CD, inCBSMsg.getString(EKU0041D010CBSMsg.RRK_WAY_CD));
		// 連絡手段補記
		msgKU0011.set(KU0011ETMsg.RRK_WAY_HOKI, inCBSMsg.getString(EKU0041D010CBSMsg.RRK_WAY_HOKI));
		// 工事受付契機異動区分
		msgKU0011.set(KU0011ETMsg.KOJI_UK_OPTNTY_IDO_DIV, inCBSMsg.getString(EKU0041D010CBSMsg.KOJI_UK_OPTNTY_IDO_DIV));
		// 工事受付契機異動年月日時分秒
		msgKU0011.set(KU0011ETMsg.KOJI_UK_OPTNTY_IDO_DTM, inCBSMsg.getString(EKU0041D010CBSMsg.KOJI_UK_OPTNTY_IDO_DTM));
		// 工事案件受付ユーザーID
		msgKU0011.set(KU0011ETMsg.KOJIAK_UK_USER_ID, inCBSMsg.getString(EKU0041D010CBSMsg.OPERATORID));
		// 工事案件連絡事項
		msgKU0011.set(KU0011ETMsg.KOJIAK_RRK_JIKO, inCBSMsg.getString(EKU0041D010CBSMsg.KOJIAK_BIKO));
		// 工事案件備考1
		msgKU0011.set(KU0011ETMsg.KOJIAK_BIKO_1, inCBSMsg.getString(EKU0041D010CBSMsg.KOJIAK_BIKO_1));
		// 工事案件備考2
		msgKU0011.set(KU0011ETMsg.KOJIAK_BIKO_2, inCBSMsg.getString(EKU0041D010CBSMsg.KOJIAK_BIKO_2));
		// 関電営業所コード （関電営業所番号）
		msgKU0011.set(KU0011ETMsg.KEPCO_BUSIOFFICE_CD, inCBSMsg.getString(EKU0041D010CBSMsg.KEPCO_BUSIOFFICE_NO));
		
		// フラグ初期化処理
		// 最新基本工事フラグ,「最新基本工事でない」を設定
		msgKU0011.set(KU0011ETMsg.RCNT_KIHON_KOJI_FLG, JKUStrConst.CD00882_RCNT_KIHON_KOJI_NON);
		// 配送作成済みフラグ,「配送未作成」を設定
		msgKU0011.set(KU0011ETMsg.HAISO_SAKSEI_ZUMI_FLG, JKUStrConst.CD00898_HAISO_MI_SAKUSEI);
		// FCDS変更連携要否,「否」を設定
		msgKU0011.set(KU0011ETMsg.FCDS_CHGE_RNKI_YH, JKUStrConst.KH_FAIL);
		// FCDS解約連携要否,「否」を設定
		msgKU0011.set(KU0011ETMsg.FCDS_DSL_RNKI_YH, JKUStrConst.KH_FAIL);
		// Genesis変更連携要否,「否」を設定
		msgKU0011.set(KU0011ETMsg.GENESIS_CHGE_RNKI_YH, JKUStrConst.KH_FAIL);
		// Genesis解約連携要否,「否」を設定
		msgKU0011.set(KU0011ETMsg.GENESIS_DSL_RNKI_YH, JKUStrConst.KH_FAIL);
		// OPMS変更連携要否,「否」を設定
		msgKU0011.set(KU0011ETMsg.OPMS_CHGE_RNKI_YH, JKUStrConst.KH_FAIL);
		// 強制解約工事案件作成要否,「否」を設定
		msgKU0011.set(KU0011ETMsg.KSI_DSL_KOJIAK_SAKSEI_YH, JKUStrConst.KH_FAIL);
		// FCDS連携種別コード,「未連携」を設定
		msgKU0011.set(KU0011ETMsg.FCDS_RNKI_SBT_CD, JKUStrConst.CD00699_MIRENKEI);
		// Genesis連携種別コード,「未連携」を設定
		msgKU0011.set(KU0011ETMsg.GENESIS_RNKI_SBT_CD, JKUStrConst.CD00699_MIRENKEI);
		// 最終応答結果コード,「結果未受信」を設定
		msgKU0011.set(KU0011ETMsg.LAST_RSP_RSLT_CD, JKUStrConst.CD00694_LAST_RSP_MI_RCV);
		
		// 登録年月日時分秒
		msgKU0011.set(KU0011ETMsg.ADD_DTM, inCBSMsg.getString(EKU0041D010CBSMsg.OPERATEDATETIME));
		// 登録オペレータアカウント
		msgKU0011.set(KU0011ETMsg.ADD_OPEACNT, inCBSMsg.getString(EKU0041D010CBSMsg.OPERATORID));
		// 更新年月日時分秒
		msgKU0011.set(KU0011ETMsg.UPD_DTM, inCBSMsg.getString(EKU0041D010CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント
		msgKU0011.set(KU0011ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0041D010CBSMsg.OPERATORID));
		// 無効フラグ （'有効'）
		msgKU0011.set(KU0011ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
// ANK-3136-00-00 ADD START
		// 設備流用有無
		msgKU0011.set(KU0011ETMsg.EQUIP_RYUYO_UM, inCBSMsg.getString(EKU0041D010CBSMsg.EQUIP_RYUYO_UM));
		// VONU流用有無
		msgKU0011.set(KU0011ETMsg.VONU_RYUYO_UM, inCBSMsg.getString(EKU0041D010CBSMsg.VONU_RYUYO_UM));
		// 流用元工事案件番号
		msgKU0011.set(KU0011ETMsg.RYUYO_MOTO_KJAK_NO, inCBSMsg.getString(EKU0041D010CBSMsg.RYUYO_MOTO_KJAK_NO));
		// 設備流用工事完了希望年月日
		msgKU0011.set(KU0011ETMsg.SBRY_KJ_FIN_KIBOYMD, inCBSMsg.getString(EKU0041D010CBSMsg.SBRY_KJ_FIN_KIBOYMD));
		// 他システム連携_工事連絡先氏名
		msgKU0011.set(KU0011ETMsg.TSYRN_KJ_RRKS_NM, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_KJ_RRKS_NM));
		// 他システム連携_工事連絡先電話番号
		msgKU0011.set(KU0011ETMsg.TSYRN_KJ_RRKS_TLN, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_KJ_RRKS_TLN));
		// 他システム連携_宅内調査時連絡先氏名
		msgKU0011.set(KU0011ETMsg.TSYRN_TAKCHO_JI_RRKS_NM, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_TAKCHO_JI_RRKS_NM));
		// 他システム連携_宅内調査時連絡先電話番号
		msgKU0011.set(KU0011ETMsg.TSYRN_TAKCHO_JI_RRKS_TLN, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_TAKCHO_JI_RRKS_TLN));
		// 他システム連携_連絡希望日時
		msgKU0011.set(KU0011ETMsg.TSYRN_RRK_KIBO_DATE, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_RRK_KIBO_DATE));
		// 他システム連携_工事費用
		msgKU0011.set(KU0011ETMsg.TSYRN_KOJI_HI, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_KOJI_HI));
		// 他システム連携_宅内調査要否
		msgKU0011.set(KU0011ETMsg.TSYRN_TAKCHO_YH, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_TAKCHO_YH));
		// 他システム連携_承諾書要否
		msgKU0011.set(KU0011ETMsg.TSYRN_SDAKS_YH, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_SDAKS_YH));
		// 他システム連携_立会者名
		msgKU0011.set(KU0011ETMsg.TSYRN_TACHIAISHA_NM, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_TACHIAISHA_NM));
		// 他システム連携_引越し施策要否
		msgKU0011.set(KU0011ETMsg.TSYRN_HKKS_SISAK_YH, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_HKKS_SISAK_YH));
		// 他システム連携_建替時新設案件要否
		msgKU0011.set(KU0011ETMsg.TSYRN_TTK_JI_NSANK_YH, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_TTK_JI_NSANK_YH));
		// 他システム連携_地図有無
		msgKU0011.set(KU0011ETMsg.TSYRN_MAP_UM, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_MAP_UM));
		// 他システム連携_同時工事情報
		msgKU0011.set(KU0011ETMsg.TSYRN_DOJI_KOJI_INF, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_DOJI_KOJI_INF));
		// 他システム連携_既存契約情報
		msgKU0011.set(KU0011ETMsg.TSYRN_KZN_KEI_INF, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_KZN_KEI_INF));
		// 他システム連携_不備解消年月日
		msgKU0011.set(KU0011ETMsg.TSYRN_HBI_KAISHOU_YMD, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_HBI_KAISHOU_YMD));
		// 他システム連携_キャンペーン情報
		msgKU0011.set(KU0011ETMsg.TSYRN_CAMPAIGN_INF, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_CAMPAIGN_INF));
		// 宅内調査要否
		msgKU0011.set(KU0011ETMsg.TAKCHO_YH, inCBSMsg.getString(EKU0041D010CBSMsg.TAKCHO_YH));
		// 設計要否
		msgKU0011.set(KU0011ETMsg.DSGN_YH, inCBSMsg.getString(EKU0041D010CBSMsg.DSGN_YH));
// ANK-3136-00-00 ADD END
// ANK-4038-00-00 ADD START
		// サービス契約回線内訳情報の取得
		CAANMsg svkeiKaisenUwMsg = JKUModelCommon.getSvkeiKaisenUwInfo(inCBSMsg.getString(EKU0041D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO));
		if (svkeiKaisenUwMsg != null)
		{
			// 予定ローゼット設置状態コード
			msgKU0011.set(KU0011ETMsg.RSV_ROZETT_STC_STAT_CD, svkeiKaisenUwMsg.getString(KK0251ETMsg.ROZETT_STC_STAT_CD));
			// 予定コンセント設置内容コード
			msgKU0011.set(KU0011ETMsg.RSV_CONSNT_STC_NYO_CD, svkeiKaisenUwMsg.getString(KK0251ETMsg.CONSNT_STC_NYO_CD));
		}
// ANK-4038-00-00 ADD END
		
		try
		{
			new JKUejbKU0011SecProc().create(msgKU0011);
		}
		catch (CAANCreateException cce)
		{
			inCBSMsg.set(EKU0041D010CBSMsg.STATUS, StatusCodes.CREATE_DB_ERR);
		}
		
		return true;
	}
	
	/**
	 * 工事登録_元最新基本工事案件更新
	 * @param inCBSMsg	CBSメッセージ
	 * @param newestKojiakNo	最新基本工事案件番号
	 * @throws CAANException
	 */
	private void updateMotoNewestKojiak(CAANMsg inCBSMsg, String newestKojiakNo) throws CAANException
	{
		// 副次処理部品
		JKUejbKU0011SecProc ku0011SecProc = new JKUejbKU0011SecProc();
		// 工事案件のETメッセージを作成
		CAANMsg msgKU0011 = new CAANMsg(KU0011ETMsg.class.getName());
		
		// 工事案件番号
		msgKU0011.set(KU0011ETMsg.KOJIAK_NO, newestKojiakNo);
		
		// 最新基本工事フラグ,「最新基本工事でない」を設定
		msgKU0011.set(KU0011ETMsg.RCNT_KIHON_KOJI_FLG, JKUStrConst.CD00882_RCNT_KIHON_KOJI_NON);
		// 更新年月日時分秒
		msgKU0011.set(KU0011ETMsg.UPD_DTM, inCBSMsg.getString(EKU0041D010CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント
		msgKU0011.set(KU0011ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0041D010CBSMsg.OPERATORID));
		
		try
		{
			ku0011SecProc.update(msgKU0011);
		}
		catch (CAANFinderException cce)
		{
			inCBSMsg.set(EKU0041D010CBSMsg.STATUS, StatusCodes.CREATE_DB_ERR);
			throw cce;
		}
	}
	
	/**
	 * 工事案件対象宅内機器を登録します。
	 * @param inCBSMsg
	 * @throws CAANException
	 */
	private void insertKU0141(CAANMsg inCBSMsg) throws CAANException
	{
		// 工事案件番号
		String kojiakNo = inCBSMsg.getString(EKU0041D010CBSMsg.KOJIAK_NO);
		// 工事案件種別
		String kojiakSbtCd = inCBSMsg.getString(EKU0041D010CBSMsg.KOJIAK_SBT_CD);
		// 料金グループコード
		String prcGrpCd = inCBSMsg.getString(EKU0041D010CBSMsg.PRC_GRP_CD);
		JKUModelCommon.updTaknkiki(kojiakNo, inCBSMsg, null, kojiakSbtCd, prcGrpCd, false);

	}
	
	/**
	 * 工事案件eo光テレビ回線を登録します。
	 * @param cbsMsg
	 * @throws CAANException 
	 */
	private void insertKU0041(CAANMsg cbsMsg) throws CAANException
	{
		
		// 工事案件＜ｅｏ光テレビ回線＞のETメッセージを作成
		CAANMsg msgKU0041 = new CAANMsg(KU0041ETMsg.class.getName());
		
		// KCNSTBマップ
		HashMap<String, String> rsltMap = new HashMap<String, String>();
		
		rsltMap = JKUModelCommon.getKCNSTBCount(cbsMsg.getString(EKU0041D010CBSMsg.KCN_STB_MSKM_CNT)
				, cbsMsg.getString(EKU0041D010CBSMsg.KCN_STB_KIND_CD)
				, cbsMsg.getString(EKU0041D010CBSMsg.KOJIAK_SBT_CD));
		
		String stbMskmCnt = rsltMap.get(KU0041ETMsg.STB_MSKM_CNT);
		String hdrStbMskmCnt = rsltMap.get(KU0041ETMsg.HDR_STB_MSKM_CNT);
		String stbKeiCnt = rsltMap.get(KU0041ETMsg.STB_KEI_CNT);
		
		// 工事案件番号 （申込書番号から発番）
		msgKU0041.set(KU0041ETMsg.KOJIAK_NO, cbsMsg.getString(EKU0041D010CBSMsg.KOJIAK_NO));
		// 工事範囲コード
		msgKU0041.set(KU0041ETMsg.KOJI_SCOPE_CD, cbsMsg.getString(EKU0041D010CBSMsg.KOJI_SCOPE_CD));
		// 復活案件フラグ
		String hukkatAnkenFlg = cbsMsg.getString(EKU0041D010CBSMsg.HUKKAT_ANKEN_FLG);
		if (null == hukkatAnkenFlg || "".equals(hukkatAnkenFlg))
		{
			hukkatAnkenFlg = JKUStrConst.HUKKAT_ANKEN_FLG_NON;
		}
		msgKU0041.set(KU0041ETMsg.HUKKAT_ANKEN_FLG, hukkatAnkenFlg);
		// 同一設備再申込コード
		msgKU0041.set(KU0041ETMsg.SAME_EQUIP_RE_MSKM_CD, cbsMsg.getString(EKU0041D010CBSMsg.SAME_EQUIP_RE_MSKM_CD));
		// STB申込台数
		msgKU0041.set(KU0041ETMsg.STB_MSKM_CNT, stbMskmCnt);
		// HDR_STB申込台数
		msgKU0041.set(KU0041ETMsg.HDR_STB_MSKM_CNT, hdrStbMskmCnt);
		// STB契約台数
		msgKU0041.set(KU0041ETMsg.STB_KEI_CNT, stbKeiCnt);
		// 電波障害案件番号
		msgKU0041.set(KU0041ETMsg.DMPS_ANKEN_NO, cbsMsg.getString(EKU0041D010CBSMsg.DMPS_ANKEN_NO));
		// 電波障害案件種別コード
		msgKU0041.set(KU0041ETMsg.DMPSANK_SBT_CD, cbsMsg.getString(EKU0041D010CBSMsg.DMPSANK_SBT_CD));
		// 移設コード
		msgKU0041.set(KU0041ETMsg.ISETSU_CD, cbsMsg.getString(EKU0041D010CBSMsg.ISETSU_CD));
		// 登録年月日時分秒
		msgKU0041.set(KU0041ETMsg.ADD_DTM, cbsMsg.getString(EKU0041D010CBSMsg.OPERATEDATETIME));
		// 登録オペレータアカウント
		msgKU0041.set(KU0041ETMsg.ADD_OPEACNT, cbsMsg.getString(EKU0041D010CBSMsg.OPERATORID));
		// 更新年月日時分秒
		msgKU0041.set(KU0041ETMsg.UPD_DTM, cbsMsg.getString(EKU0041D010CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント
		msgKU0041.set(KU0041ETMsg.UPD_OPEACNT, cbsMsg.getString(EKU0041D010CBSMsg.OPERATORID));
		// 無効フラグ （'有効'）
		msgKU0041.set(KU0041ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		try
		{
			new JKUejbKU0041SecProc().create(msgKU0041);
		}
		catch (CAANCreateException cce)
		{
			cbsMsg.set(EKU0041D010CBSMsg.STATUS, StatusCodes.CREATE_DB_ERR);
		}
	}
	
	/**
	 * サービス契約_工事案件を登録します。
	 * @param cbsMsg
	 */
	private void insertKU0081(CAANMsg cbsMsg)
	{
		// サービス契約_工事案件のETメッセージを作成
		CAANMsg msgKU0081 = new CAANMsg(KU0081ETMsg.class.getName());
		
		// サービス契約番号
		msgKU0081.set(KU0081ETMsg.SVC_KEI_NO, cbsMsg.getString(EKU0041D010CBSMsg.SVC_KEI_NO));
		// 工事案件番号 （申込書番号から発番）
		msgKU0081.set(KU0081ETMsg.KOJIAK_NO, cbsMsg.getString(EKU0041D010CBSMsg.KOJIAK_NO));
		// サービスコード
		msgKU0081.set(KU0081ETMsg.SVC_CD, cbsMsg.getString(EKU0041D010CBSMsg.SVC_CD));
		// SYSID
		msgKU0081.set(KU0081ETMsg.SYSID, cbsMsg.getString(EKU0041D010CBSMsg.SYSID));
		// サービス契約回線内訳番号
		msgKU0081.set(KU0081ETMsg.SVC_KEI_KAISEN_UCWK_NO, cbsMsg.getString(EKU0041D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO));
		// サービス契約_工事案件適用開始年月日 （運用日付）
		msgKU0081.set(KU0081ETMsg.SVKEI_KOJIAK_TSTAYMD, JKUModelCommon.getOpeDate(cbsMsg, null));
		// サービス契約_工事案件適用終了年月日
		msgKU0081.set(KU0081ETMsg.SVKEI_KOJIAK_TENDYMD, JKUStrConst.MAX_YMD);
		// 登録年月日時分秒
		msgKU0081.set(KU0081ETMsg.ADD_DTM, cbsMsg.getString(EKU0041D010CBSMsg.OPERATEDATETIME));
		// 登録オペレータアカウント
		msgKU0081.set(KU0081ETMsg.ADD_OPEACNT, cbsMsg.getString(EKU0041D010CBSMsg.OPERATORID));
		// 更新年月日時分秒
		msgKU0081.set(KU0081ETMsg.UPD_DTM, cbsMsg.getString(EKU0041D010CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント
		msgKU0081.set(KU0081ETMsg.UPD_OPEACNT, cbsMsg.getString(EKU0041D010CBSMsg.OPERATORID));
		// 無効フラグ （'有効'）
		msgKU0081.set(KU0081ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		try
		{
			new JKUejbKU0081SecProc().create(msgKU0081);
		}
		catch (CAANCreateException cce)
		{
			cbsMsg.set(EKU0041D010CBSMsg.STATUS, StatusCodes.CREATE_DB_ERR);
		}
		
	}
	
	/**
	 * 申込明細_工事案件を登録します。
	 * @param cbsMsg
	 */
	private void insertKU0091(CAANMsg cbsMsg)
	{
		// 申込明細_工事案件のETメッセージを作成
		CAANMsg msgKU0091 = new CAANMsg(KU0091ETMsg.class.getName());
		
		// 申込明細番号 （申込明細番号）
		msgKU0091.set(KU0091ETMsg.MSKM_DTL_NO, cbsMsg.getString(EKU0041D010CBSMsg.MSKM_DTL_NO));
		// 工事案件番号 （申込書番号から発番）
		msgKU0091.set(KU0091ETMsg.KOJIAK_NO, cbsMsg.getString(EKU0041D010CBSMsg.KOJIAK_NO));
		// 申込明細_工事案件適用開始年月日 （運用日付）
		msgKU0091.set(KU0091ETMsg.MSKM_DTL_KOJIAK_TSTAYMD, JKUModelCommon.getOpeDate(cbsMsg, null));
		// 申込明細_工事案件適用終了年月日
		msgKU0091.set(KU0091ETMsg.MSKM_DTL_KOJIAK_TENDYMD, JKUStrConst.MAX_YMD);
		// 登録年月日時分秒
		msgKU0091.set(KU0091ETMsg.ADD_DTM, cbsMsg.getString(EKU0041D010CBSMsg.OPERATEDATETIME));
		// 登録オペレータアカウント
		msgKU0091.set(KU0091ETMsg.ADD_OPEACNT, cbsMsg.getString(EKU0041D010CBSMsg.OPERATORID));
		// 更新年月日時分秒
		msgKU0091.set(KU0091ETMsg.UPD_DTM, cbsMsg.getString(EKU0041D010CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント
		msgKU0091.set(KU0091ETMsg.UPD_OPEACNT, cbsMsg.getString(EKU0041D010CBSMsg.OPERATORID));
		// 無効フラグ （'有効'）
		msgKU0091.set(KU0091ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		try
		{
			new JKUejbKU0091SecProc().create(msgKU0091);
		}
		catch (CAANCreateException cce)
		{
			cbsMsg.set(EKU0041D010CBSMsg.STATUS, StatusCodes.CREATE_DB_ERR);
		}
	}
	
	/**
	 * 先行設計を登録します。
	 * @param cbsMsg
	 * @param dojiDaihyoKojiakNo 同時代表工事案件番号
	 * @param updTrgtKojiakNo	更新対象工事案件番号
	 * @return boolean
	 * @throws CAANException 
	 */
	private boolean insertKU0101(CAANMsg cbsMsg, String dojiDaihyoKojiakNo, String updTrgtKojiakNo) throws CAANException
	{
		// 先行設計のETメッセージを作成
		CAANMsg msgKU0101 = new CAANMsg(KU0101ETMsg.class.getName());
		
		// 先行設計番号
		String snkSkiNo = null;
		
		// 先行設計ステータス （'受付済'）
		msgKU0101.set(KU0101ETMsg.SNKSKI_STAT, JKUStrConst.SNKSKI_STAT_UK_ZM);
		// 工事案件番号 （申込書番号から発番）
		msgKU0101.set(KU0101ETMsg.KOJIAK_NO, cbsMsg.getString(EKU0041D010CBSMsg.KOJIAK_NO));
		// 料金グループコード
		msgKU0101.set(KU0101ETMsg.PRC_GRP_CD, cbsMsg.getString(EKU0041D010CBSMsg.PRC_GRP_CD));
		// 新料金コースコード
		msgKU0101.set(KU0101ETMsg.NEW_PCRS_CD, cbsMsg.getString(EKU0041D010CBSMsg.PCRS_CD));
		// 先行設計受付年月日
		msgKU0101.set(KU0101ETMsg.SNKSKI_UK_YMD, JKUModelCommon.getOpeDate(cbsMsg, null));
		
		
		/** 座標取得処理 */
		
		LinkedHashMap<String, BigDecimal> zahyoMap = 
			JKUModelCommon.allZahyoBX(cbsMsg.getString(EKU0041D010CBSMsg.LGTD), cbsMsg.getString(EKU0041D010CBSMsg.LTTD));
		
		// 部品から取得したマップのエラー格納箇所に値が入っていた場合エラー
		if (null != zahyoMap.get(JKUStrConst.ZAHYO_SET_ERROR))
		{
			
			String zahyoErrorCheck = zahyoMap.get(JKUStrConst.ZAHYO_SET_ERROR).toString();
			
			if (JKUStrConst.ZAHYO_MAP_ERROR_NULL.equals(zahyoErrorCheck))
			{
				// 部品から「nullエラー」が返った場合、座標にはnullを設定する
				
				String strNullItem = null;
				
				// X座標6系 （緯度・経度より求める）
				msgKU0101.set(KU0101ETMsg.XZAHYO_6, strNullItem);
				// Y座標6系 （緯度・経度より求める）
				msgKU0101.set(KU0101ETMsg.YZAHYO_6, strNullItem);
				// X座標5系 （緯度・経度より求める）
				msgKU0101.set(KU0101ETMsg.XZAHYO_5, strNullItem);
				// Y座標5系 （緯度・経度より求める）
				msgKU0101.set(KU0101ETMsg.YZAHYO_5, strNullItem);
				
			}
			else
			{
				// nullエラー以外のエラーの場合
				
				// 座標変換エラーを登録
				cbsMsg.set(EKU0041D010CBSMsg.LTTD_ERR, "EK");
				cbsMsg.set(EKU0041D010CBSMsg.LGTD_ERR, "EK");
				// ステータス
				cbsMsg.set(EKU0041D010CBSMsg.STATUS, StatusCodes.RELATION_ERR);
				return false;
			}
			
		}
		else if(null == zahyoMap.get(JKUStrConst.ZAHYO_SET_ERROR))
		{
			// エラー無しの場合
			
			// XY座標を登録する
			
			// X座標6系 （緯度・経度より求める）
			msgKU0101.set(KU0101ETMsg.XZAHYO_6, JKUModelCommon.convDoubleToString(zahyoMap.get(JKUStrConst.ZAHYO_MAP_X_6)));
			// Y座標6系 （緯度・経度より求める）
			msgKU0101.set(KU0101ETMsg.YZAHYO_6, JKUModelCommon.convDoubleToString(zahyoMap.get(JKUStrConst.ZAHYO_MAP_Y_6)));
			// X座標5系 （緯度・経度より求める）
			msgKU0101.set(KU0101ETMsg.XZAHYO_5, JKUModelCommon.convDoubleToString(zahyoMap.get(JKUStrConst.ZAHYO_MAP_X_5)));
			// Y座標5系 （緯度・経度より求める）
			msgKU0101.set(KU0101ETMsg.YZAHYO_5, JKUModelCommon.convDoubleToString(zahyoMap.get(JKUStrConst.ZAHYO_MAP_Y_5)));
			
		}
		
		
		
		// 場所番号
		msgKU0101.set(KU0101ETMsg.PLACE_NO, cbsMsg.getString(EKU0041D010CBSMsg.PLACE_NO));
		// 設置場所住所コード
		msgKU0101.set(KU0101ETMsg.SETPLACE_AD_CD, cbsMsg.getString(EKU0041D010CBSMsg.SETPLACE_AD_CD));
		// 設置場所郵便番号
		msgKU0101.set(KU0101ETMsg.SETPLACE_PCD, cbsMsg.getString(EKU0041D010CBSMsg.SETPLACE_PCD));
		// 設置場所都道府県名
		msgKU0101.set(KU0101ETMsg.SETPLACE_STATE_NM, cbsMsg.getString(EKU0041D010CBSMsg.SETPLACE_STATE_NM));
		// 設置場所市区町村名
		msgKU0101.set(KU0101ETMsg.SETPLACE_CITY_NM, cbsMsg.getString(EKU0041D010CBSMsg.SETPLACE_CITY_NM));
		// 設置場所大字通称名
		msgKU0101.set(KU0101ETMsg.SETPLACE_OAZTSU_NM, cbsMsg.getString(EKU0041D010CBSMsg.SETPLACE_OAZTSU_NM));
		// 設置場所字丁目名
		msgKU0101.set(KU0101ETMsg.SETPLACE_AZCHO_NM, cbsMsg.getString(EKU0041D010CBSMsg.SETPLACE_AZCHO_NM));
		// 設置場所住所番地号
		msgKU0101.set(KU0101ETMsg.SETPLACE_AD_BNCHIGO, cbsMsg.getString(EKU0041D010CBSMsg.SETPLACE_AD_BNCHIGO));
		// 設置場所住所補記・建物名
		msgKU0101.set(KU0101ETMsg.SETPLACE_ADRTTM, cbsMsg.getString(EKU0041D010CBSMsg.SETPLACE_ADRTTM));
		// 設置場所住所補記・部屋番号
		msgKU0101.set(KU0101ETMsg.SETPLACE_ADRRM, cbsMsg.getString(EKU0041D010CBSMsg.SETPLACE_ADRRM));
		// 申込明細番号
		msgKU0101.set(KU0101ETMsg.MSKM_DTL_NO, cbsMsg.getString(EKU0041D010CBSMsg.MSKM_DTL_NO));
		// サービス契約番号
		msgKU0101.set(KU0101ETMsg.SVC_KEI_NO, cbsMsg.getString(EKU0041D010CBSMsg.SVC_KEI_NO));
		// オーナー契約番号
		msgKU0101.set(KU0101ETMsg.OWNR_KEI_NO, cbsMsg.getString(EKU0041D010CBSMsg.OWNR_KEI_NO));
		// P-ID
		msgKU0101.set(KU0101ETMsg.PID, cbsMsg.getString(EKU0041D010CBSMsg.PID));
		// 同時代表工事案件番号
		msgKU0101.set(KU0101ETMsg.DOJI_DAIHYO_KOJIAK_NO, dojiDaihyoKojiakNo);
		// 追加サービス契約番号
		msgKU0101.set(KU0101ETMsg.ADD_SVC_KEI_NO,
				JKUModelCommon.getAddSvcKeiNo(
						cbsMsg.getString(EKU0041D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO),
						cbsMsg.getString(EKU0041D010CBSMsg.SVC_CD),
						cbsMsg.getString(EKU0041D010CBSMsg.KOJIAK_SBT_CD),
						dojiDaihyoKojiakNo));
		// 元工事案件番号（引数：更新対象工事案件番号）
		msgKU0101.set(KU0101ETMsg.MOTO_KOJIAK_NO, updTrgtKojiakNo);
		// SYSID
		msgKU0101.set(KU0101ETMsg.SYSID, cbsMsg.getString(EKU0041D010CBSMsg.SYSID));
		// お客様名
		msgKU0101.set(KU0101ETMsg.CUST_NM, cbsMsg.getString(EKU0041D010CBSMsg.CUST_NM));
		// お客様カナ名
		msgKU0101.set(KU0101ETMsg.CUST_KANA, cbsMsg.getString(EKU0041D010CBSMsg.CUST_KANA));
		// お客様連絡先電話番号
		msgKU0101.set(KU0101ETMsg.CUST_RRKS_TELNO, cbsMsg.getString(EKU0041D010CBSMsg.CUST_RRKS_TEL_NO));
		// お客様連絡先携帯電話番号 （お客様携帯電話番号）
		msgKU0101.set(KU0101ETMsg.CUST_RRKS_KTAI_TELNO, cbsMsg.getString(EKU0041D010CBSMsg.CUST_KTAI_TEL_NO));
		// 回線場所電話番号
		msgKU0101.set(KU0101ETMsg.KAISEN_PLACE_TELNO, cbsMsg.getString(EKU0041D010CBSMsg.KAISEN_PLACE_TELNO));
		// 建築階数コード
		msgKU0101.set(KU0101ETMsg.KCKU_FLR_CNT_CD, cbsMsg.getString(EKU0041D010CBSMsg.KCKU_FLR_CNT_CD));
		// 座標補正有無
		msgKU0101.set(KU0101ETMsg.ZAHYO_HOSEI_UM, cbsMsg.getString(EKU0041D010CBSMsg.ZAHYO_HOSEI_UM));
		// 電波障害案件種別コード
		msgKU0101.set(KU0101ETMsg.DMPSANK_SBT_CD, cbsMsg.getString(EKU0041D010CBSMsg.DMPSANK_SBT_CD));
		// 電波障害案件番号
		msgKU0101.set(KU0101ETMsg.DMPS_ANKEN_NO, cbsMsg.getString(EKU0041D010CBSMsg.DMPS_ANKEN_NO));
		// 登録年月日時分秒
		msgKU0101.set(KU0101ETMsg.ADD_DTM, cbsMsg.getString(EKU0041D010CBSMsg.OPERATEDATETIME));
		// 登録オペレータアカウント
		msgKU0101.set(KU0101ETMsg.ADD_OPEACNT, cbsMsg.getString(EKU0041D010CBSMsg.OPERATORID));
		// 更新年月日時分秒
		msgKU0101.set(KU0101ETMsg.UPD_DTM, cbsMsg.getString(EKU0041D010CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント
		msgKU0101.set(KU0101ETMsg.UPD_OPEACNT, cbsMsg.getString(EKU0041D010CBSMsg.OPERATORID));
		// 無効フラグ （'有効'）
		msgKU0101.set(KU0101ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		try
		{
			// 先行設計番号を採番する
			snkSkiNo = JKUejbNumberParts.getSnkskiNo(cbsMsg);
			// 先行設計番号 （採番）
			msgKU0101.set(KU0101ETMsg.SNKSKI_NO, snkSkiNo);
			// 先行設計種別コード （'局設備先行設計'）
			msgKU0101.set(KU0101ETMsg.SNKSKI_SBT_CD, JKUStrConst.CD00578_KYOKU_EQUIP_SNKSKI);
			new JKUejbKU0101SecProc().create(msgKU0101);
			
			// 先行設計番号を採番する
			snkSkiNo = JKUejbNumberParts.getSnkskiNo(cbsMsg);
			// 先行設計番号 （採番）
			msgKU0101.set(KU0101ETMsg.SNKSKI_NO, snkSkiNo);
			// 先行設計種別コード （'線路先行設計'）
			msgKU0101.set(KU0101ETMsg.SNKSKI_SBT_CD, JKUStrConst.CD00578_LINE_SNKSKI);
			new JKUejbKU0101SecProc().create(msgKU0101);
		}
		catch (CAANCreateException cce)
		{
			cbsMsg.set(EKU0041D010CBSMsg.STATUS, StatusCodes.CREATE_DB_ERR);
		}
		
		return true;
	}
	
	/**
	 * 登録可否
	 * @param newestKojiakNo
	 * @param skkrKojiakNo
	 * @param kojiakSbtCd
	 * @return 登録可否ステータス
	 */
	private String insertKH(String newestKojiakNo, String skkrKojiakNo, String kojiakSbtCd)
	{
		// 仕掛工事の存在有無
		if(skkrKojiakNo != null)
		{
			// 工事案件種別コードが移設であるかどうか
			if(JKUStrConst.CD00577_ISETSU.equals(kojiakSbtCd))
			{
				return INS_NORMAL;
			}
			else
			{
				return INS_ERROR;
			}
		}
		else
		{
			// 最新基本工事の存在有無
			if(newestKojiakNo != null)
			{
				// 工事案件種別コードが新設、
				if(JKUStrConst.CD00577_NEWESTA.equals(kojiakSbtCd))
				{
					// 最新基本工事に対する撤去(解約)または強制解約で
					// 工事完了しているものがあるかのチェック
					if(JKUModelCommon.existsFinDslKojiak(newestKojiakNo, false))
					{
						return INS_AND_UPD_RCT;
					}
					else
					{
						return INS_ERROR;
					}
				}
				// 工事案件種別コードが リンクSTBまたは面開発
				else if(JKUStrConst.CD00577_LINK_STB.equals(kojiakSbtCd) || JKUStrConst.CD00577_MNKHT.equals(kojiakSbtCd))
				{
					return INS_ERROR;
				}
				else
				{
					return INS_NORMAL;
				}
			}
			else
			{
				return INS_NORMAL;
			}
		}
	}

	/**
	 * 再照査
	 * @param inCBSMsg	CBSメッセージ
	 * @param inContext	ディスパッチコンテキスト
	 * @return	true:再照査完了 false:再照査対象外
	 * @throws CAANException
	 */
	private boolean reVerification(CAANMsg inCBSMsg, AgentDispatchContext inContext) throws CAANException
	{
		// ---------------------
		// ---再照査チェック
		// ---------------------
		
		// ---入力値のチェック
		
		// 工事受付コードが回線使う、工事受付詳細コードが新規の場合のみが、再照査対象である
		if (false == JKUStrConst.CD99991_KISN_USE.equals(inCBSMsg.getString(EKU0041D010CBSMsg.KOJI_UK_CD))
				|| false == JKUStrConst.CD00885_NEW.equals(inCBSMsg.getString(EKU0041D010CBSMsg.KOJI_UK_DTAIL_CD)))
		{
			// 再照査対象外
			return false;
		}
		
		// 工事受付契機異動区分が「00019：住所変更・登録」の場合
		if(JKUStrConst.CD00576_AD_CHG_TOROKU.equals(inCBSMsg.getString(EKU0041D010CBSMsg.KOJI_UK_OPTNTY_IDO_DIV)))
		{
			// 再照査対象外
			return false;
		}
		
		// ---サービス契約_工事案件の存在チェック
		
		// サービス契約_工事案件の検索を実行する
		JKUejbKU0081SecProc ku0081SecProc = new JKUejbKU0081SecProc();
		CAANMsg ku0081Msg = new CAANMsg(KU0081ETMsg.class.getName());
		// サービス契約番号
		ku0081Msg.set(KU0081ETMsg.SVC_KEI_NO, inCBSMsg.getString(EKU0041D010CBSMsg.SVC_KEI_NO));
		// サービス契約回線内訳番号
		ku0081Msg.set(KU0081ETMsg.SVC_KEI_KAISEN_UCWK_NO, inCBSMsg.getString(EKU0041D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO));
		// 無効フラグ
		ku0081Msg.set(KU0081ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		CAANMsg[] ku0081MsgArray = ku0081SecProc.findByCondition(ku0081Msg);
		
		// 結果が存在しない場合は、再照査対象外
		if (null == ku0081MsgArray || 0 == ku0081MsgArray.length)
		{
			return false;
		}
		
		// ---------------------
		// ---整合性チェック
		// ---------------------
		
		// ---サービス契約_工事案件の整合性チェック
		
		// 取得したサービス契約_工事案件の中に、適用終了年月日が初期値のものがあればエラー
		for (int i = 0; i < ku0081MsgArray.length; ++i)
		{
			if (JKUStrConst.MAX_YMD.equals(ku0081MsgArray[i].getString(KU0081ETMsg.SVKEI_KOJIAK_TENDYMD)))
			{
				// エラーを設定して終了する
				setRelationError(inCBSMsg, EKU0041D010CBSMsg.SVC_KEI_NO_ERR, KU0081_SEIGOSEI_ENDYMD_ERR);
				return true;
			}
		}
		
		// ---工事案件情報の取得
		
		// 工事案件の検索を実行する
		JKUejbKU0011SecProc ku0011SecProc = new JKUejbKU0011SecProc();
		List<CAANMsg> ku0011MsgList = new ArrayList<CAANMsg>();
		
		for(int i = 0; i < ku0081MsgArray.length; ++i)
		{
			CAANMsg 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)
			{
				// エラーを設定して終了する
				setRelationError(inCBSMsg, EKU0041D010CBSMsg.SVC_KEI_NO_ERR, KU0011_SEIGOSEI_ERR);
				return true;
			}
			ku0011MsgList.add(ku0011Msg);
		}
		
		// ---工事案件の整合性チェック
		
		// 条件に合致する工事案件情報をリスト化する
		// 工事案件種別合致フラグ
		boolean kojiakSbtFlg = false;
		List<CAANMsg> tempKu0011MsgList = new ArrayList<CAANMsg>();
		for (int i = 0; i < ku0011MsgList.size(); ++i)
		{
			// 工事案件種別
			String kojiakSbtCd = ku0011MsgList.get(i).getString(KU0011ETMsg.KOJIAK_SBT_CD);
			
			// 工事案件種別が「001:新設」「008:リンクSTB」「012:面開発」のいずれか
			if (JKUStrConst.CD00577_NEWESTA.equals(kojiakSbtCd)
					|| JKUStrConst.CD00577_LINK_STB.equals(kojiakSbtCd)
					|| JKUStrConst.CD00577_MNKHT.equals(kojiakSbtCd))
			{
				// 工事案件種別が条件に合致するデータが2件以上存在する場合
				if (true == kojiakSbtFlg)
				{
					// エラーを設定して終了する
					setRelationError(inCBSMsg, EKU0041D010CBSMsg.SVC_KEI_NO_ERR, KU0011_SEIGOSEI_ERR);
					return true;
				}
				// 工事案件種別合致フラグをtrueにする
				kojiakSbtFlg = true;
				
				// 工事案件ステータスが中止の場合
				if (JKUStrConst.CD00474_CHUSHI.equals(ku0011MsgList.get(i).getString(KU0011ETMsg.KOJIAK_STAT)))
				{
					// 工事案件依頼年月日がnullもしくは初期値の場合
					if (null == ku0011MsgList.get(i).getString(KU0011ETMsg.KOJIAK_REQYMD)
							|| JKUStrConst.MAX_YMD.equals(ku0011MsgList.get(i).getString(KU0011ETMsg.KOJIAK_REQYMD)))
					{
						// チェック用リストに設定する
						tempKu0011MsgList.add(ku0011MsgList.get(i));
					}
				}
			}
		}
		
		// 条件に合致する工事案件情報が1件ではない場合
		if (1 != tempKu0011MsgList.size())
		{
			// エラーを設定して終了する
			setRelationError(inCBSMsg, EKU0041D010CBSMsg.SVC_KEI_NO_ERR, KU0011_SEIGOSEI_ERR);
			return true;
		}
		
		// 更新対象工事案件データを取得する
		CAANMsg ku0011Msg = tempKu0011MsgList.get(0);
		// 更新対象工事案件番号
		String taishoKojiakNo = ku0011Msg.getString(KU0011ETMsg.KOJIAK_NO);
		
		// ---CBSメッセージに工事案件番号を設定する
		
		inCBSMsg.set(EKU0041D010CBSMsg.KOJIAK_NO, taishoKojiakNo);
		
		// ---工事案件排他処理
		
		// 排他処理
		if (false == JPCModelCommon.succeededExclusiveLock(ku0011Msg, inContext, JKUStrConst.SCHEMA_KU0011))
		{
			// エラーを設定して終了する
			setRelationError(inCBSMsg, EKU0041D010CBSMsg.SVC_KEI_NO_ERR, KU0011_HAITA_ERR);
			return true;
		}
		
		// ---先行設計の整合性チェック
		
		// 先行設計を検索する
		JKUejbKU0101SecProc ku0101SecProc = new JKUejbKU0101SecProc();
		CAANMsg ku0101Msg = new CAANMsg(KU0101ETMsg.class.getName());
		// 工事案件番号
		ku0101Msg.set(KU0101ETMsg.KOJIAK_NO, taishoKojiakNo);
		// 無効フラグ
		ku0101Msg.set(KU0101ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		CAANMsg[] ku0101MsgArray = ku0101SecProc.findByCondition(ku0101Msg);
		
		// 更新対象が存在する場合、ステータスのチェックと更新対象先行設計番号のリスト化を実行する
		List<String> snkskNoList = new ArrayList<String>();
		if (null != ku0101MsgArray && ku0101MsgArray.length != 0)
		{
			for (int i = 0; i < ku0101MsgArray.length; ++i)
			{
				// ステータスが中止以外の場合
				if (false == JKUStrConst.SNKSKI_STAT_CHUSHI.equals(ku0101MsgArray[i].getString(KU0101ETMsg.SNKSKI_STAT)))
				{
					// エラーを設定して終了する
					setRelationError(inCBSMsg, EKU0041D010CBSMsg.SVC_KEI_NO_ERR, KU0101_SEIGOSEI_ERR);
					return true;
				}
				
				// 更新対象先行設計番号を追加する
				snkskNoList.add(ku0101MsgArray[i].getString(KU0101ETMsg.SNKSKI_NO));
			}
		}
		
		// ---サービス契約_工事案件の存在チェック
		
		ku0081Msg = new CAANMsg(KU0081ETMsg.class.getName());
		// サービス契約番号
		ku0081Msg.set(KU0081ETMsg.SVC_KEI_NO, inCBSMsg.getString(EKU0041D010CBSMsg.SVC_KEI_NO));
		// 工事案件番号
		ku0081Msg.set(KU0081ETMsg.KOJIAK_NO, taishoKojiakNo);
		
		ku0081Msg = ku0081SecProc.findByPrimaryKey(ku0081Msg, true);
		
		if (null == ku0081Msg)
		{
			// エラーを設定して終了する
			setRelationError(inCBSMsg, EKU0041D010CBSMsg.SVC_KEI_NO_ERR, KU0081_NULL_ERR);
			return true;
		}
		
		// ---工事案件＜eo光テレビ回線＞の存在チェック
		JKUejbKU0041SecProc ku0041SecProc = new JKUejbKU0041SecProc();
		CAANMsg ku0041Msg = new CAANMsg(KU0041ETMsg.class.getName());
		// 工事案件番号
		ku0041Msg.set(KU0041ETMsg.KOJIAK_NO, taishoKojiakNo);
		
		ku0041Msg = ku0041SecProc.findByPrimaryKey(ku0041Msg, true);
		
		if (null == ku0041Msg)
		{
			// エラーを設定して終了する
			setRelationError(inCBSMsg, EKU0041D010CBSMsg.SVC_KEI_NO_ERR, KU0041_NULL_ERR);
			return true;
		}
		
		// ---------------------
		// ---再照査更新実行
		// ---------------------
		
		updateRev(inCBSMsg, taishoKojiakNo, snkskNoList, inContext);
		
		// ---アウトプットの設定を行う
		
		// 登録年月日時分秒(システム日付)
		inCBSMsg.set(EKU0041D010CBSMsg.ADD_DTM, inCBSMsg.getString(EKU0041D010CBSMsg.OPERATEDATETIME));
		// 登録オペレータアカウント(共通部：オペレータＩＤ)
		inCBSMsg.set(EKU0041D010CBSMsg.ADD_OPEACNT, inCBSMsg.getString(EKU0041D010CBSMsg.OPERATORID));
		// 更新年月日時分秒(システム日付)
		inCBSMsg.set(EKU0041D010CBSMsg.UPD_DTM, inCBSMsg.getString(EKU0041D010CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント(共通部：オペレータＩＤ)
		inCBSMsg.set(EKU0041D010CBSMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0041D010CBSMsg.OPERATORID));
		// 無効フラグ
		inCBSMsg.set(EKU0041D010CBSMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		return true;
	}
	
	/**
	 * 再照査更新
	 * @param inCBSMsg	CBSメッセージ
	 * @param taishoKojiakNo	更新対象工事案件番号
	 * @param snkskNoList	更新対象先行設計番号リスト
	 * @param inContext	ディスパッチコンテキスト
	 * @return	実行結果
	 * @throws CAANException
	 */
	private boolean updateRev(CAANMsg inCBSMsg, String taishoKojiakNo, List<String> snkskNoList, 
			AgentDispatchContext inContext) throws CAANException
	{
		// 機能コード1以外の場合はチェックのみのため処理を終了する
		if (!JPCModelConstant.FUNC_CD_1.equals(inCBSMsg.getString(EKU0041D010CBSMsg.FUNC_CODE)))
		{
			return true;
		}
		
		// 工事受付コード
		String kojiUkCd = inCBSMsg.getString(EKU0041D010CBSMsg.KOJI_UK_CD);
		// 工事受付詳細コード
		String kojiUkDtlCd = inCBSMsg.getString(EKU0041D010CBSMsg.KOJI_UK_DTAIL_CD);
		// 面開発案件番号
		String menkaihatAnkenNo = inCBSMsg.getString(EKU0041D010CBSMsg.MENKAIHAT_ANKEN_NO);
		// リンクSTBフラグ
		String linkStbFlg = "";
		// 料金グループコード
		String prcGrpCd = inCBSMsg.getString(EKU0041D010CBSMsg.PRC_GRP_CD);
		// PON種別コード
		String ponSbtCd = "";
		// 料金コースPON条件コード
		String pcrsPonJokenCd = "";
		// ANK-4315-00-00 ADD START
		// ONU交換要否
		String onuKokanYh = null;
		// ANK-4315-00-00 ADD END
		// サービス契約回線内訳番号
		String svcKeiKaisenUcwkNo = inCBSMsg.getString(EKU0041D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO);
		// 座標登録フラグ
		boolean zahyoInpFlg = false;
		// 文字列NULL値
		String strNullVal = null;
		
		// 工事案件種別取得
	    // ANK-4315-00-00 MOD START
//		String kojiakSbtCd = JKUModelCommon.getKojiakSbtCd(kojiUkCd, kojiUkDtlCd, menkaihatAnkenNo,
//				linkStbFlg, prcGrpCd, ponSbtCd, pcrsPonJokenCd);
		String kojiakSbtCd = JKUModelCommon.getKojiakSbtCd(kojiUkCd, kojiUkDtlCd, menkaihatAnkenNo,
				linkStbFlg, prcGrpCd, ponSbtCd, pcrsPonJokenCd,
				onuKokanYh
		);
	   // ANK-4315-00-00 MOD END
	   	
		// 工事案件種別を設定する
		inCBSMsg.set(EKU0041D010CBSMsg.KOJIAK_SBT_CD, kojiakSbtCd);
		
		/** 座標取得処理 */
		
		LinkedHashMap<String, BigDecimal> zahyoMap = 
			JKUModelCommon.allZahyoBX(inCBSMsg.getString(EKU0041D010CBSMsg.LGTD), inCBSMsg.getString(EKU0041D010CBSMsg.LTTD));
		
		// 部品から取得したマップのエラー格納箇所に値が入っていた場合エラー
		if (null != zahyoMap.get(JKUStrConst.ZAHYO_SET_ERROR))
		{
			
			String zahyoErrorCheck = zahyoMap.get(JKUStrConst.ZAHYO_SET_ERROR).toString();
			
			if (JKUStrConst.ZAHYO_MAP_ERROR_NULL.equals(zahyoErrorCheck))
			{
				// 部品から「nullエラー」が返った場合、座標にはnullを設定する
				zahyoInpFlg = false;
				
			}
			else
			{
				// nullエラー以外のエラーの場合
				
				// 座標変換エラーを登録
				inCBSMsg.set(EKU0041D010CBSMsg.LTTD_ERR, "EK");
				inCBSMsg.set(EKU0041D010CBSMsg.LGTD_ERR, "EK");
				// ステータス
				inCBSMsg.set(EKU0041D010CBSMsg.STATUS, StatusCodes.RELATION_ERR);
				return false;
			}
			
		}
		else if(null == zahyoMap.get(JKUStrConst.ZAHYO_SET_ERROR))
		{
			// エラー無しの場合
			zahyoInpFlg = true;
			
		}
		
		// 同時代表工事案件番号を取得
		String dojiDaihyoKojiakNo = JKUModelCommon.getSimRepKojiakNoNotFindByPk(
				inCBSMsg.getString(EKU0041D010CBSMsg.KOJIAK_SBT_CD), prcGrpCd, null, null, null, svcKeiKaisenUcwkNo);
		
		// --- 工事案件の更新
		
		JKUejbKU0011SecProc ku0011SecProc = new JKUejbKU0011SecProc();
		CAANMsg ku0011Msg = new CAANMsg(KU0011ETMsg.class.getName());
		
		// 工事案件番号(引数の工事案件番号)
		ku0011Msg.set(KU0011ETMsg.KOJIAK_NO, taishoKojiakNo);
		// 工事案件ステータス(130:受付済)
		ku0011Msg.set(KU0011ETMsg.KOJIAK_STAT, JKUStrConst.CD00474_UK_ZM);
		// 工事案件ステータスをアウト項目に設定
		inCBSMsg.set(EKU0041D010CBSMsg.KOJIAK_STAT, JKUStrConst.CD00474_UK_ZM);
		// SYSID
		ku0011Msg.set(KU0011ETMsg.SYSID, inCBSMsg.getString(EKU0041D010CBSMsg.SYSID));
		// 連携サービス契約番号
		ku0011Msg.set(KU0011ETMsg.RNKI_SVC_KEI_NO, inCBSMsg.getString(EKU0041D010CBSMsg.SVC_KEI_NO));
		// オーナー契約番号
		ku0011Msg.set(KU0011ETMsg.OWNR_KEI_NO, inCBSMsg.getString(EKU0041D010CBSMsg.OWNR_KEI_NO));
		// P-ID
		ku0011Msg.set(KU0011ETMsg.PID, inCBSMsg.getString(EKU0041D010CBSMsg.PID));
		// 請求契約番号
		ku0011Msg.set(KU0011ETMsg.SEIKY_KEI_NO, inCBSMsg.getString(EKU0041D010CBSMsg.SEIKY_KEI_NO));
		// 工事案件種別コード
		ku0011Msg.set(KU0011ETMsg.KOJIAK_SBT_CD, inCBSMsg.getString(EKU0041D010CBSMsg.KOJIAK_SBT_CD));
		// 料金グループコード
		ku0011Msg.set(KU0011ETMsg.PRC_GRP_CD, inCBSMsg.getString(EKU0041D010CBSMsg.PRC_GRP_CD));
		// 料金コースコード
		ku0011Msg.set(KU0011ETMsg.PCRS_CD, inCBSMsg.getString(EKU0041D010CBSMsg.PCRS_CD));
		// 更新対象工事案件番号 （現在の最新基本の工事案件番号）
		// サービス契約番号でサービス契約工事案件を検索し、取得した工事案件で工事案件を検索する
		// 取得した工事案件の最新基本工事フラグが'1'の場合、その工事案件番号を設定する。
		String updTrgtKojiakNo = JKUModelCommon.getNewestKihonKojiakNo(
				inCBSMsg.getString(EKU0041D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO),
				inCBSMsg.getString(EKU0041D010CBSMsg.PRC_GRP_CD));
		ku0011Msg.set(KU0011ETMsg.UPD_TRGT_KOJIAK_NO, updTrgtKojiakNo);
		// 連携サービス終了年月日("":空欄)
		ku0011Msg.set(KU0011ETMsg.RNKI_SVC_ENDYMD, "");
		// 連携サービスキャンセル年月日("":空欄)
		ku0011Msg.set(KU0011ETMsg.RNKI_SVC_CANCEL_YMD, "");
		// 追加サービス契約番号 
		ku0011Msg.set(KU0011ETMsg.ADD_SVC_KEI_NO,
				JKUModelCommon.getAddSvcKeiNo(
						inCBSMsg.getString(EKU0041D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO),
						inCBSMsg.getString(EKU0041D010CBSMsg.SVC_CD),
						inCBSMsg.getString(EKU0041D010CBSMsg.KOJIAK_SBT_CD),
						dojiDaihyoKojiakNo));
		// 申込受付年月日
		ku0011Msg.set(KU0011ETMsg.MSKM_UK_YMD, inCBSMsg.getString(EKU0041D010CBSMsg.MSKM_UK_YMD));
		// 申込書到着年月日
		ku0011Msg.set(KU0011ETMsg.MSKMSHO_ARIV_YMD, inCBSMsg.getString(EKU0041D010CBSMsg.MSKMSHO_ARIV_YMD));
		// 場所番号
		ku0011Msg.set(KU0011ETMsg.PLACE_NO, inCBSMsg.getString(EKU0041D010CBSMsg.PLACE_NO));
		// 工事希望年月日
		ku0011Msg.set(KU0011ETMsg.KOJI_KIBO_YMD, inCBSMsg.getString(EKU0041D010CBSMsg.KOJI_KIBO_YMD));
		// 転宅先住所コード （設置場所住所コード）
		ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_AD_CD, inCBSMsg.getString(EKU0041D010CBSMsg.SETPLACE_AD_CD));
		// 転宅先郵便番号 （設置場所郵便番号）
		ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_PCD, inCBSMsg.getString(EKU0041D010CBSMsg.SETPLACE_PCD));
		// 転宅先都道府県名 （設置場所都道府県名）
		ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_STATE_NM, inCBSMsg.getString(EKU0041D010CBSMsg.SETPLACE_STATE_NM));
		// 転宅先市区町村名 （設置場所市区町村名）
		ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_CITY_NM, inCBSMsg.getString(EKU0041D010CBSMsg.SETPLACE_CITY_NM));
		// 転宅先大字通称名 （設置場所大字通称名）
		ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_OAZTSU_NM, inCBSMsg.getString(EKU0041D010CBSMsg.SETPLACE_OAZTSU_NM));
		// 転宅先字丁目名 （設置場所字丁目名）
		ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_AZCHO_NM, inCBSMsg.getString(EKU0041D010CBSMsg.SETPLACE_AZCHO_NM));
		// 転宅先住所番地号 （設置場所住所番地号）
		ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_AD_BNCHIGO, inCBSMsg.getString(EKU0041D010CBSMsg.SETPLACE_AD_BNCHIGO));
		// 転宅先住所補記・建物名 （設置場所住所補記・建物名）
		ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_ADRTTM, inCBSMsg.getString(EKU0041D010CBSMsg.SETPLACE_ADRTTM));
		// 転宅先住所補記・部屋番号 （設置場所住所補記・部屋番号）
		ku0011Msg.set(KU0011ETMsg.TENTAKU_SAKI_ADRRM, inCBSMsg.getString(EKU0041D010CBSMsg.SETPLACE_ADRRM));
		// 申込者名
		ku0011Msg.set(KU0011ETMsg.MSKMSHA_NM, inCBSMsg.getString(EKU0041D010CBSMsg.MSKMSHA_NM));
		// お客様名
		ku0011Msg.set(KU0011ETMsg.CUST_NM, inCBSMsg.getString(EKU0041D010CBSMsg.CUST_NM));
		// お客様カナ名
		ku0011Msg.set(KU0011ETMsg.CUST_KANA, inCBSMsg.getString(EKU0041D010CBSMsg.CUST_KANA));
		// お客様自宅電話番号
		ku0011Msg.set(KU0011ETMsg.CUST_HOME_TELNO, inCBSMsg.getString(EKU0041D010CBSMsg.CUST_HOME_TEL_NO));
		// お客様携帯電話番号
		ku0011Msg.set(KU0011ETMsg.CUST_KTAI_TELNO, inCBSMsg.getString(EKU0041D010CBSMsg.CUST_KTAI_TEL_NO));
		// お客様連絡先電話番号
		ku0011Msg.set(KU0011ETMsg.CUST_RRKS_TELNO, inCBSMsg.getString(EKU0041D010CBSMsg.CUST_RRKS_TEL_NO));
		// 連絡先勤務先名
		ku0011Msg.set(KU0011ETMsg.RRKS_OFFC_NM, inCBSMsg.getString(EKU0041D010CBSMsg.RRKS_OFFC_NM));
		// 契約者住所コード
		ku0011Msg.set(KU0011ETMsg.KEISHA_AD_CD, inCBSMsg.getString(EKU0041D010CBSMsg.KEISHA_AD_CD));
		// 契約者郵便番号
		ku0011Msg.set(KU0011ETMsg.KEISHA_PCD, inCBSMsg.getString(EKU0041D010CBSMsg.KEISHA_PCD));
		// 契約者都道府県名
		ku0011Msg.set(KU0011ETMsg.KEISHA_STATE_NM, inCBSMsg.getString(EKU0041D010CBSMsg.KEISHA_STATE_NM));
		// 契約者市区町村名
		ku0011Msg.set(KU0011ETMsg.KEISHA_CITY_NM, inCBSMsg.getString(EKU0041D010CBSMsg.KEISHA_CITY_NM));
		// 契約者大字通称名
		ku0011Msg.set(KU0011ETMsg.KEISHA_OAZTSU_NM, inCBSMsg.getString(EKU0041D010CBSMsg.KEISHA_OAZTSU_NM));
		// 契約者字丁目名
		ku0011Msg.set(KU0011ETMsg.KEISHA_AZCHO_NM, inCBSMsg.getString(EKU0041D010CBSMsg.KEISHA_AZCHO_NM));
		// 契約者住所番地号
		ku0011Msg.set(KU0011ETMsg.KEISHA_AD_BNCHIGO, inCBSMsg.getString(EKU0041D010CBSMsg.KEISHA_AD_BNCHIGO));
		// 契約者住所補記・建物名
		ku0011Msg.set(KU0011ETMsg.KEISHA_ADRTTM, inCBSMsg.getString(EKU0041D010CBSMsg.KEISHA_ADRTTM));
		// 契約者住所補記・部屋番号
		ku0011Msg.set(KU0011ETMsg.KEISHA_ADRRM, inCBSMsg.getString(EKU0041D010CBSMsg.KEISHA_ADRRM));
		// 契約者住所手動入力フラグ
		ku0011Msg.set(KU0011ETMsg.KEISHA_AD_MAN_INPUT_FLG, inCBSMsg.getString(EKU0041D010CBSMsg.KEISHA_AD_MAN_INPUT_FLG));
		// 転宅前住所コード
		ku0011Msg.set(KU0011ETMsg.TENTAKU_BF_AD_CD, inCBSMsg.getString(EKU0041D010CBSMsg.TENTAKU_BF_AD_CD));
		// 転宅前郵便番号
		ku0011Msg.set(KU0011ETMsg.TENTAKU_BF_PCD, inCBSMsg.getString(EKU0041D010CBSMsg.TENTAKU_BF_PCD));
		// 転宅前都道府県名
		ku0011Msg.set(KU0011ETMsg.TENTAKU_BF_STATE_NM, inCBSMsg.getString(EKU0041D010CBSMsg.TENTAKU_BF_STATE_NM));
		// 転宅前市区町村名
		ku0011Msg.set(KU0011ETMsg.TENTAKU_BF_CITY_NM, inCBSMsg.getString(EKU0041D010CBSMsg.TENTAKU_BF_CITY_NM));
		// 転宅前大字通称名
		ku0011Msg.set(KU0011ETMsg.TENTAKU_BF_OAZTSU_NM, inCBSMsg.getString(EKU0041D010CBSMsg.TENTAKU_BF_OAZTSU_NM));
		// 転宅前字丁目名
		ku0011Msg.set(KU0011ETMsg.TENTAKU_BF_AZCHO_NM, inCBSMsg.getString(EKU0041D010CBSMsg.TENTAKU_BF_AZCHO_NM));
		// 転宅前住所番地号
		ku0011Msg.set(KU0011ETMsg.TENTAKU_BF_AD_BNCHIGO, inCBSMsg.getString(EKU0041D010CBSMsg.TENTAKU_BF_AD_BNCHIGO));
		// 転宅前住所補記・建物名
		ku0011Msg.set(KU0011ETMsg.TENTAKU_BF_ADRTTM, inCBSMsg.getString(EKU0041D010CBSMsg.TENTAKU_BF_ADRTTM));
		// 転宅前住所補記・部屋番号
		ku0011Msg.set(KU0011ETMsg.TENTAKU_BF_ADRRM, inCBSMsg.getString(EKU0041D010CBSMsg.TENTAKU_BF_ADRRM));
		// 関西電力お客様情報授受同意有無
		ku0011Msg.set(KU0011ETMsg.KEPCO_CUSTINFO_JUJU_DOI_UM, inCBSMsg.getString(EKU0041D010CBSMsg.KEPCO_CTINFO_JUJU_DOI_UM));
		// 住所形態コード
		ku0011Msg.set(KU0011ETMsg.AD_FORM_CD, inCBSMsg.getString(EKU0041D010CBSMsg.AD_FORM_CD));
		// 工事先住所未確定フラグ
		ku0011Msg.set(KU0011ETMsg.KOJI_SAKI_AD_MI_FIX_FLG, inCBSMsg.getString(EKU0041D010CBSMsg.KOJI_SAKI_AD_MI_FIX_FLG));
		// 経度
		ku0011Msg.set(KU0011ETMsg.LGTD, inCBSMsg.getString(EKU0041D010CBSMsg.LGTD));
		// 緯度
		ku0011Msg.set(KU0011ETMsg.LTTD, inCBSMsg.getString(EKU0041D010CBSMsg.LTTD));
		if(zahyoInpFlg)
		{
			// X座標6系 （緯度・経度より求める）
			ku0011Msg.set(KU0011ETMsg.XZAHYO_6, JKUModelCommon.convDoubleToString(zahyoMap.get(JKUStrConst.ZAHYO_MAP_X_6)));
			// Y座標6系 （緯度・経度より求める）
			ku0011Msg.set(KU0011ETMsg.YZAHYO_6, JKUModelCommon.convDoubleToString(zahyoMap.get(JKUStrConst.ZAHYO_MAP_Y_6)));
			// X座標5系 （緯度・経度より求める）
			ku0011Msg.set(KU0011ETMsg.XZAHYO_5, JKUModelCommon.convDoubleToString(zahyoMap.get(JKUStrConst.ZAHYO_MAP_X_5)));
			// Y座標5系 （緯度・経度より求める）
			ku0011Msg.set(KU0011ETMsg.YZAHYO_5, JKUModelCommon.convDoubleToString(zahyoMap.get(JKUStrConst.ZAHYO_MAP_Y_5)));
		}
		else
		{
			// X座標6系 （NULLを設定）
			ku0011Msg.set(KU0011ETMsg.XZAHYO_6, strNullVal);
			// Y座標6系 （NULLを設定）
			ku0011Msg.set(KU0011ETMsg.YZAHYO_6, strNullVal);
			// X座標5系 （NULLを設定）
			ku0011Msg.set(KU0011ETMsg.XZAHYO_5, strNullVal);
			// Y座標5系 （NULLを設定）
			ku0011Msg.set(KU0011ETMsg.YZAHYO_5, strNullVal);
		}
		// 座標補正有無
		ku0011Msg.set(KU0011ETMsg.ZAHYO_HOSEI_UM, inCBSMsg.getString(EKU0041D010CBSMsg.ZAHYO_HOSEI_UM));
		// 竣工予定年月日
		ku0011Msg.set(KU0011ETMsg.SHUNKO_RSV_YMD, inCBSMsg.getString(EKU0041D010CBSMsg.SHUNKO_RSV_YMD));
		// 入居予定年月日
		ku0011Msg.set(KU0011ETMsg.NYUKYO_RSV_YMD, inCBSMsg.getString(EKU0041D010CBSMsg.NYUKYO_RSV_YMD));
		// 引渡し予定年月日
		ku0011Msg.set(KU0011ETMsg.HIKIWATASHI_RSV_YMD, inCBSMsg.getString(EKU0041D010CBSMsg.HIKIWATASHI_RSV_YMD));
		// 電力送電予定年月日
		ku0011Msg.set(KU0011ETMsg.EPOWER_SODEN_RSV_YMD, inCBSMsg.getString(EKU0041D010CBSMsg.EPOWER_SODEN_RSV_YMD));
		// 新築物件コード
		String newConstBukkenCd = inCBSMsg.getString(EKU0041D010CBSMsg.NEWCONST_BUKKEN_CD);
		if (null == newConstBukkenCd || "".equals(newConstBukkenCd))
		{
			newConstBukkenCd = JKUStrConst.NEWCONST_BUKKEN_CD_DEF;
		}
		ku0011Msg.set(KU0011ETMsg.NEWCONST_BUKKEN_CD, newConstBukkenCd);
		// 入居階数コード
		ku0011Msg.set(KU0011ETMsg.NYUKYO_FLR_CNT_CD, inCBSMsg.getString(EKU0041D010CBSMsg.NYUKYO_FLR_CNT_CD));
		// 建築階数コード
		ku0011Msg.set(KU0011ETMsg.KCKU_FLR_CNT_CD, inCBSMsg.getString(EKU0041D010CBSMsg.KCKU_FLR_CNT_CD));
		// 方角コード1
		ku0011Msg.set(KU0011ETMsg.DIRECTION_CD_1, inCBSMsg.getString(EKU0041D010CBSMsg.DIRECTION_CD_1));
		// 方角コード2
		ku0011Msg.set(KU0011ETMsg.DIRECTION_CD_2, inCBSMsg.getString(EKU0041D010CBSMsg.DIRECTION_CD_2));
		// 同時代表工事案件番号
		ku0011Msg.set(KU0011ETMsg.DOJI_DAIHYO_KOJIAK_NO, dojiDaihyoKojiakNo);
		// 電話連絡希望年月日
		ku0011Msg.set(KU0011ETMsg.TEL_RRK_KIBO_YMD, inCBSMsg.getString(EKU0041D010CBSMsg.TEL_RRK_KIBO_YMD));
		// 電話連絡希望時間帯コード
		ku0011Msg.set(KU0011ETMsg.TEL_RRK_KIBO_TIME_CD, inCBSMsg.getString(EKU0041D010CBSMsg.TEL_RRK_KIBO_TIME_CD));
		// 宅内工事希望アポ期限年月日
		ku0011Msg.set(KU0011ETMsg.TNKJ_KIBO_APO_KIGEN_YMD, inCBSMsg.getString(EKU0041D010CBSMsg.TNKJ_KIBO_APO_KIGEN_YMD));
		// 工事アポ連絡先指定コード
		ku0011Msg.set(KU0011ETMsg.KOJI_APO_RRKS_SHITEI_CD, inCBSMsg.getString(EKU0041D010CBSMsg.KOJI_APO_RRKS_SHITEI_CD));
		// 工事アポ連絡先電話番号
		ku0011Msg.set(KU0011ETMsg.KOJI_APO_RRKS_TELNO, inCBSMsg.getString(EKU0041D010CBSMsg.KOJI_APO_RRKS_TELNO));
		// 連絡手段コード
		ku0011Msg.set(KU0011ETMsg.RRK_WAY_CD, inCBSMsg.getString(EKU0041D010CBSMsg.RRK_WAY_CD));
		// 連絡手段補記
		ku0011Msg.set(KU0011ETMsg.RRK_WAY_HOKI, inCBSMsg.getString(EKU0041D010CBSMsg.RRK_WAY_HOKI));
		// 工事受付契機異動区分
		ku0011Msg.set(KU0011ETMsg.KOJI_UK_OPTNTY_IDO_DIV, inCBSMsg.getString(EKU0041D010CBSMsg.KOJI_UK_OPTNTY_IDO_DIV));
		// 工事案件受付ユーザーID
		ku0011Msg.set(KU0011ETMsg.KOJIAK_UK_USER_ID, inCBSMsg.getString(EKU0041D010CBSMsg.OPERATORID));
		// 工事案件連絡事項
		ku0011Msg.set(KU0011ETMsg.KOJIAK_RRK_JIKO, inCBSMsg.getString(EKU0041D010CBSMsg.KOJIAK_BIKO));
		// 工事案件備考1
		ku0011Msg.set(KU0011ETMsg.KOJIAK_BIKO_1, inCBSMsg.getString(EKU0041D010CBSMsg.KOJIAK_BIKO_1));
		// 工事案件備考2
		ku0011Msg.set(KU0011ETMsg.KOJIAK_BIKO_2, inCBSMsg.getString(EKU0041D010CBSMsg.KOJIAK_BIKO_2));
		// 関電営業所コード （関電営業所番号）
		ku0011Msg.set(KU0011ETMsg.KEPCO_BUSIOFFICE_CD, inCBSMsg.getString(EKU0041D010CBSMsg.KEPCO_BUSIOFFICE_NO));
		
		// 工事案件キャンセル年月日("":空欄)
		ku0011Msg.set(KU0011ETMsg.KOJIAK_CANCEL_YMD, "");
		
		// フラグ初期化処理
		// 最新基本工事フラグ,「最新基本工事でない」を設定
		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.UPD_DTM, inCBSMsg.getString(EKU0041D010CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント(オペレータアカウント)
		ku0011Msg.set(KU0011ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0041D010CBSMsg.OPERATORID));
		
// ANK-3136-00-00 ADD START
		// 設備流用有無
		ku0011Msg.set(KU0011ETMsg.EQUIP_RYUYO_UM, inCBSMsg.getString(EKU0041D010CBSMsg.EQUIP_RYUYO_UM));
		// VONU流用有無
		ku0011Msg.set(KU0011ETMsg.VONU_RYUYO_UM, inCBSMsg.getString(EKU0041D010CBSMsg.VONU_RYUYO_UM));
		// 流用元工事案件番号
		ku0011Msg.set(KU0011ETMsg.RYUYO_MOTO_KJAK_NO, inCBSMsg.getString(EKU0041D010CBSMsg.RYUYO_MOTO_KJAK_NO));
		// 設備流用工事完了希望年月日
		ku0011Msg.set(KU0011ETMsg.SBRY_KJ_FIN_KIBOYMD, inCBSMsg.getString(EKU0041D010CBSMsg.SBRY_KJ_FIN_KIBOYMD));
		// 他システム連携_工事連絡先氏名
		ku0011Msg.set(KU0011ETMsg.TSYRN_KJ_RRKS_NM, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_KJ_RRKS_NM));
		// 他システム連携_工事連絡先電話番号
		ku0011Msg.set(KU0011ETMsg.TSYRN_KJ_RRKS_TLN, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_KJ_RRKS_TLN));
		// 他システム連携_宅内調査時連絡先氏名
		ku0011Msg.set(KU0011ETMsg.TSYRN_TAKCHO_JI_RRKS_NM, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_TAKCHO_JI_RRKS_NM));
		// 他システム連携_宅内調査時連絡先電話番号
		ku0011Msg.set(KU0011ETMsg.TSYRN_TAKCHO_JI_RRKS_TLN, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_TAKCHO_JI_RRKS_TLN));
		// 他システム連携_連絡希望日時
		ku0011Msg.set(KU0011ETMsg.TSYRN_RRK_KIBO_DATE, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_RRK_KIBO_DATE));
		// 他システム連携_工事費用
		ku0011Msg.set(KU0011ETMsg.TSYRN_KOJI_HI, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_KOJI_HI));
		// 他システム連携_宅内調査要否
		ku0011Msg.set(KU0011ETMsg.TSYRN_TAKCHO_YH, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_TAKCHO_YH));
		// 他システム連携_承諾書要否
		ku0011Msg.set(KU0011ETMsg.TSYRN_SDAKS_YH, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_SDAKS_YH));
		// 他システム連携_立会者名
		ku0011Msg.set(KU0011ETMsg.TSYRN_TACHIAISHA_NM, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_TACHIAISHA_NM));
		// 他システム連携_引越し施策要否
		ku0011Msg.set(KU0011ETMsg.TSYRN_HKKS_SISAK_YH, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_HKKS_SISAK_YH));
		// 他システム連携_建替時新設案件要否
		ku0011Msg.set(KU0011ETMsg.TSYRN_TTK_JI_NSANK_YH, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_TTK_JI_NSANK_YH));
		// 他システム連携_地図有無
		ku0011Msg.set(KU0011ETMsg.TSYRN_MAP_UM, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_MAP_UM));
		// 他システム連携_同時工事情報
		ku0011Msg.set(KU0011ETMsg.TSYRN_DOJI_KOJI_INF, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_DOJI_KOJI_INF));
		// 他システム連携_既存契約情報
		ku0011Msg.set(KU0011ETMsg.TSYRN_KZN_KEI_INF, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_KZN_KEI_INF));
		// 他システム連携_不備解消年月日
		ku0011Msg.set(KU0011ETMsg.TSYRN_HBI_KAISHOU_YMD, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_HBI_KAISHOU_YMD));
		// 他システム連携_キャンペーン情報
		ku0011Msg.set(KU0011ETMsg.TSYRN_CAMPAIGN_INF, inCBSMsg.getString(EKU0041D010CBSMsg.TSYRN_CAMPAIGN_INF));
// ANK-3136-00-00 ADD END
// ANK-4038-00-00 ADD START
		// サービス契約回線内訳情報の取得
		CAANMsg svkeiKaisenUwMsg = JKUModelCommon.getSvkeiKaisenUwInfo(inCBSMsg.getString(EKU0041D010CBSMsg.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-4038-00-00 ADD END
		
		try
		{
			ku0011SecProc.update(ku0011Msg);
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0041D010CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}
		
		try
		{
			// 同時代表工事案件の更新処理
			if(!JKUModelCommon.updateDojiDaihyoKojiak(taishoKojiakNo, dojiDaihyoKojiakNo, 
					inCBSMsg.getString(EKU0041D010CBSMsg.OPERATEDATETIME), inCBSMsg.getString(EKU0041D010CBSMsg.OPERATORID), inContext, true))
			{
				// エラーを設定して終了する
				setRelationError(inCBSMsg, EKU0041D010CBSMsg.SVC_KEI_NO_ERR, KU0011_HAITA_ERR);
				return false;
			}
		}
		catch(CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0041D010CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}

		// ---工事案件対象宅内機器の更新

		// 工事案件に紐づく宅内機器
		CAANMsg ku0141Msg = new CAANMsg(KU0141ETMsg.class.getName());
		ku0141Msg.set(KU0141ETMsg.KOJIAK_NO, taishoKojiakNo);
		ku0141Msg.set(KU0141ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		CAANMsg[] ku0141MsgArray = new JKUejbKU0141SecProc().findByCondition(ku0141Msg);
		
		// 共通部品を利用した更新
		JKUModelCommon.updTaknkiki(taishoKojiakNo, inCBSMsg, ku0141MsgArray, kojiakSbtCd, prcGrpCd, false);
		
		// ---工事案件＜eo光テレビ回線＞の更新
		
		JKUejbKU0041SecProc ku0041SecProc = new JKUejbKU0041SecProc();
		CAANMsg ku0041Msg = new CAANMsg(KU0041ETMsg.class.getName());
		
		// KCNSTBマップ
		HashMap<String, String> rsltMap = new HashMap<String, String>();
		
		rsltMap = JKUModelCommon.getKCNSTBCount(inCBSMsg.getString(EKU0041D010CBSMsg.KCN_STB_MSKM_CNT)
				, inCBSMsg.getString(EKU0041D010CBSMsg.KCN_STB_KIND_CD)
				, inCBSMsg.getString(EKU0041D010CBSMsg.KOJIAK_SBT_CD));
		
		String stbMskmCnt = rsltMap.get(KU0041ETMsg.STB_MSKM_CNT);
		String hdrStbMskmCnt = rsltMap.get(KU0041ETMsg.HDR_STB_MSKM_CNT);
		String stbKeiCnt = rsltMap.get(KU0041ETMsg.STB_KEI_CNT);
		
		// 工事案件番号(引数の工事案件)
		ku0041Msg.set(KU0041ETMsg.KOJIAK_NO, taishoKojiakNo);
		// 工事範囲コード
		ku0041Msg.set(KU0041ETMsg.KOJI_SCOPE_CD, inCBSMsg.getString(EKU0041D010CBSMsg.KOJI_SCOPE_CD));
		// 強制解約指示年月日("":空欄)
		ku0041Msg.set(KU0041ETMsg.KYOSEI_DSL_SJI_YMD, "");
		// 復活案件フラグ
		String hukkatAnkenFlg = inCBSMsg.getString(EKU0041D010CBSMsg.HUKKAT_ANKEN_FLG);
		if (null == hukkatAnkenFlg || "".equals(hukkatAnkenFlg))
		{
			hukkatAnkenFlg = JKUStrConst.HUKKAT_ANKEN_FLG_NON;
		}
		ku0041Msg.set(KU0041ETMsg.HUKKAT_ANKEN_FLG, hukkatAnkenFlg);
		// 同一設備再申込コード
		ku0041Msg.set(KU0041ETMsg.SAME_EQUIP_RE_MSKM_CD, inCBSMsg.getString(EKU0041D010CBSMsg.SAME_EQUIP_RE_MSKM_CD));
		// STB申込台数
		ku0041Msg.set(KU0041ETMsg.STB_MSKM_CNT, stbMskmCnt);
		// HDR_STB申込台数
		ku0041Msg.set(KU0041ETMsg.HDR_STB_MSKM_CNT, hdrStbMskmCnt);
		// STB契約台数
		ku0041Msg.set(KU0041ETMsg.STB_KEI_CNT, stbKeiCnt);
		// 電波障害案件番号
		ku0041Msg.set(KU0041ETMsg.DMPS_ANKEN_NO, inCBSMsg.getString(EKU0041D010CBSMsg.DMPS_ANKEN_NO));
		// 電波障害案件種別コード
		ku0041Msg.set(KU0041ETMsg.DMPSANK_SBT_CD, inCBSMsg.getString(EKU0041D010CBSMsg.DMPSANK_SBT_CD));
		// 移設コード
		ku0041Msg.set(KU0041ETMsg.ISETSU_CD, inCBSMsg.getString(EKU0041D010CBSMsg.ISETSU_CD));
		// 更新年月日時分秒(システム日付)
		ku0041Msg.set(KU0041ETMsg.UPD_DTM, inCBSMsg.getString(EKU0041D010CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント(オペレータアカウント)
		ku0041Msg.set(KU0041ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0041D010CBSMsg.OPERATORID));

		try
		{
			ku0041SecProc.update(ku0041Msg);
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0041D010CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}

		// サービス契約_工事案件の更新
		
		JKUejbKU0081SecProc ku0081SecProc = new JKUejbKU0081SecProc();
		CAANMsg ku0081Msg = new CAANMsg(KU0081ETMsg.class.getName());
		
		// サービス契約番号
		ku0081Msg.set(KU0081ETMsg.SVC_KEI_NO, inCBSMsg.getString(EKU0041D010CBSMsg.SVC_KEI_NO));
		// 工事案件番号(引数の工事案件)
		ku0081Msg.set(KU0081ETMsg.KOJIAK_NO, taishoKojiakNo);
		// サービスコード
		ku0081Msg.set(KU0081ETMsg.SVC_CD, inCBSMsg.getString(EKU0041D010CBSMsg.SVC_CD));
		// SYSID
		ku0081Msg.set(KU0081ETMsg.SYSID, inCBSMsg.getString(EKU0041D010CBSMsg.SYSID));
		// サービス契約回線内訳番号
		ku0081Msg.set(KU0081ETMsg.SVC_KEI_KAISEN_UCWK_NO, inCBSMsg.getString(EKU0041D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO));
		// サービス契約_工事案件適用開始年月日 （運用日付）
		ku0081Msg.set(KU0081ETMsg.SVKEI_KOJIAK_TSTAYMD, JKUModelCommon.getOpeDate(inCBSMsg, null));
		// サービス契約_工事案件適用終了年月日
		ku0081Msg.set(KU0081ETMsg.SVKEI_KOJIAK_TENDYMD, JKUStrConst.MAX_YMD);
		// 更新年月日時分秒
		ku0081Msg.set(KU0081ETMsg.UPD_DTM, inCBSMsg.getString(EKU0041D010CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント
		ku0081Msg.set(KU0081ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0041D010CBSMsg.OPERATORID));
		
		try
		{
			ku0081SecProc.update(ku0081Msg);
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0041D010CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}
		
		if(snkskNoList.size() != 0)
		{
			try
			{
				// 同時代表工事案件の更新処理
				JKUModelCommon.updateDojiDaihyoSenkoDsgn(taishoKojiakNo, dojiDaihyoKojiakNo, 
						inCBSMsg.getString(EKU0041D010CBSMsg.OPERATEDATETIME), 
						inCBSMsg.getString(EKU0041D010CBSMsg.OPERATORID), true);
			}
			catch(CAANFinderException cfe)
			{
				inCBSMsg.set(EKU0041D010CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
				throw cfe;
			}
		}
		
		// ---先行設計の更新
		JKUejbKU0101SecProc ku0101SecProc = new JKUejbKU0101SecProc();
		try
		{
			for (int i = 0; i < snkskNoList.size(); ++i)
			{
				CAANMsg ku0101Msg = new CAANMsg(KU0101ETMsg.class.getName());
				
				// 先行設計番号(引数の先行設計番号リストの値)
				ku0101Msg.set(KU0101ETMsg.SNKSKI_NO, snkskNoList.get(i));
				// 先行設計ステータス （'受付済'）
				ku0101Msg.set(KU0101ETMsg.SNKSKI_STAT, JKUStrConst.SNKSKI_STAT_UK_ZM);
				// 料金グループコード
				ku0101Msg.set(KU0101ETMsg.PRC_GRP_CD, inCBSMsg.getString(EKU0041D010CBSMsg.PRC_GRP_CD));
				// 新料金コースコード
				ku0101Msg.set(KU0101ETMsg.NEW_PCRS_CD, inCBSMsg.getString(EKU0041D010CBSMsg.PCRS_CD));
				if(zahyoInpFlg)
				{
					// X座標6系 （緯度・経度より求める）
					ku0101Msg.set(KU0011ETMsg.XZAHYO_6, JKUModelCommon.convDoubleToString(zahyoMap.get(JKUStrConst.ZAHYO_MAP_X_6)));
					// Y座標6系 （緯度・経度より求める）
					ku0101Msg.set(KU0011ETMsg.YZAHYO_6, JKUModelCommon.convDoubleToString(zahyoMap.get(JKUStrConst.ZAHYO_MAP_Y_6)));
					// X座標5系 （緯度・経度より求める）
					ku0101Msg.set(KU0011ETMsg.XZAHYO_5, JKUModelCommon.convDoubleToString(zahyoMap.get(JKUStrConst.ZAHYO_MAP_X_5)));
					// Y座標5系 （緯度・経度より求める）
					ku0101Msg.set(KU0011ETMsg.YZAHYO_5, JKUModelCommon.convDoubleToString(zahyoMap.get(JKUStrConst.ZAHYO_MAP_Y_5)));
				}
				else
				{
					// X座標6系 （NULLを設定）
					ku0101Msg.set(KU0011ETMsg.XZAHYO_6, strNullVal);
					// Y座標6系 （NULLを設定）
					ku0101Msg.set(KU0011ETMsg.YZAHYO_6, strNullVal);
					// X座標5系 （NULLを設定）
					ku0101Msg.set(KU0011ETMsg.XZAHYO_5, strNullVal);
					// Y座標5系 （NULLを設定）
					ku0101Msg.set(KU0011ETMsg.YZAHYO_5, strNullVal);
				}
				// 場所番号
				ku0101Msg.set(KU0101ETMsg.PLACE_NO, inCBSMsg.getString(EKU0041D010CBSMsg.PLACE_NO));
				// 設置場所住所コード
				ku0101Msg.set(KU0101ETMsg.SETPLACE_AD_CD, inCBSMsg.getString(EKU0041D010CBSMsg.SETPLACE_AD_CD));
				// 設置場所郵便番号
				ku0101Msg.set(KU0101ETMsg.SETPLACE_PCD, inCBSMsg.getString(EKU0041D010CBSMsg.SETPLACE_PCD));
				// 設置場所都道府県名
				ku0101Msg.set(KU0101ETMsg.SETPLACE_STATE_NM, inCBSMsg.getString(EKU0041D010CBSMsg.SETPLACE_STATE_NM));
				// 設置場所市区町村名
				ku0101Msg.set(KU0101ETMsg.SETPLACE_CITY_NM, inCBSMsg.getString(EKU0041D010CBSMsg.SETPLACE_CITY_NM));
				// 設置場所大字通称名
				ku0101Msg.set(KU0101ETMsg.SETPLACE_OAZTSU_NM, inCBSMsg.getString(EKU0041D010CBSMsg.SETPLACE_OAZTSU_NM));
				// 設置場所字丁目名
				ku0101Msg.set(KU0101ETMsg.SETPLACE_AZCHO_NM, inCBSMsg.getString(EKU0041D010CBSMsg.SETPLACE_AZCHO_NM));
				// 設置場所住所番地号
				ku0101Msg.set(KU0101ETMsg.SETPLACE_AD_BNCHIGO, inCBSMsg.getString(EKU0041D010CBSMsg.SETPLACE_AD_BNCHIGO));
				// 設置場所住所補記・建物名
				ku0101Msg.set(KU0101ETMsg.SETPLACE_ADRTTM, inCBSMsg.getString(EKU0041D010CBSMsg.SETPLACE_ADRTTM));
				// 設置場所住所補記・部屋番号
				ku0101Msg.set(KU0101ETMsg.SETPLACE_ADRRM, inCBSMsg.getString(EKU0041D010CBSMsg.SETPLACE_ADRRM));
				// 申込明細番号
				ku0101Msg.set(KU0101ETMsg.MSKM_DTL_NO, inCBSMsg.getString(EKU0041D010CBSMsg.MSKM_DTL_NO));
				// サービス契約番号
				ku0101Msg.set(KU0101ETMsg.SVC_KEI_NO, inCBSMsg.getString(EKU0041D010CBSMsg.SVC_KEI_NO));
				// オーナー契約番号
				ku0101Msg.set(KU0101ETMsg.OWNR_KEI_NO, inCBSMsg.getString(EKU0041D010CBSMsg.OWNR_KEI_NO));
				// P-ID
				ku0101Msg.set(KU0101ETMsg.PID, inCBSMsg.getString(EKU0041D010CBSMsg.PID));
				
				// 同時代表工事案件番号
				ku0101Msg.set(KU0101ETMsg.DOJI_DAIHYO_KOJIAK_NO, dojiDaihyoKojiakNo);
				// 追加サービス契約番号
				ku0101Msg.set(KU0101ETMsg.ADD_SVC_KEI_NO,
						JKUModelCommon.getAddSvcKeiNo(
								inCBSMsg.getString(EKU0041D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO),
								inCBSMsg.getString(EKU0041D010CBSMsg.SVC_CD),
								inCBSMsg.getString(EKU0041D010CBSMsg.KOJIAK_SBT_CD),
								dojiDaihyoKojiakNo));
				// 元工事案件番号
				String motoKojiakNo = JKUModelCommon.getNewestKihonKojiakNo(
						inCBSMsg.getString(EKU0041D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO),
						inCBSMsg.getString(EKU0041D010CBSMsg.PRC_GRP_CD));
				ku0101Msg.set(KU0101ETMsg.MOTO_KOJIAK_NO, motoKojiakNo);
				// SYSID
				ku0101Msg.set(KU0101ETMsg.SYSID, inCBSMsg.getString(EKU0041D010CBSMsg.SYSID));
				// お客様名
				ku0101Msg.set(KU0101ETMsg.CUST_NM, inCBSMsg.getString(EKU0041D010CBSMsg.CUST_NM));
				// お客様カナ名
				ku0101Msg.set(KU0101ETMsg.CUST_KANA, inCBSMsg.getString(EKU0041D010CBSMsg.CUST_KANA));
				// お客様連絡先電話番号
				ku0101Msg.set(KU0101ETMsg.CUST_RRKS_TELNO, inCBSMsg.getString(EKU0041D010CBSMsg.CUST_RRKS_TEL_NO));
				// お客様連絡先携帯電話番号 （お客様携帯電話番号）
				ku0101Msg.set(KU0101ETMsg.CUST_RRKS_KTAI_TELNO, inCBSMsg.getString(EKU0041D010CBSMsg.CUST_KTAI_TEL_NO));
				// 回線場所電話番号
				ku0101Msg.set(KU0101ETMsg.KAISEN_PLACE_TELNO, inCBSMsg.getString(EKU0041D010CBSMsg.KAISEN_PLACE_TELNO));
				// 建築階数コード
				ku0101Msg.set(KU0101ETMsg.KCKU_FLR_CNT_CD, inCBSMsg.getString(EKU0041D010CBSMsg.KCKU_FLR_CNT_CD));
				// 座標補正有無
				ku0101Msg.set(KU0101ETMsg.ZAHYO_HOSEI_UM, inCBSMsg.getString(EKU0041D010CBSMsg.ZAHYO_HOSEI_UM));
				// 電波障害案件種別コード
				ku0101Msg.set(KU0101ETMsg.DMPSANK_SBT_CD, inCBSMsg.getString(EKU0041D010CBSMsg.DMPSANK_SBT_CD));
				// 先行設計中止年月日("":空欄)
				ku0101Msg.set(KU0101ETMsg.SNKSKI_STP_YMD, "");
				// 電波障害案件番号
				ku0101Msg.set(KU0101ETMsg.DMPS_ANKEN_NO, inCBSMsg.getString(EKU0041D010CBSMsg.DMPS_ANKEN_NO));
				// 更新年月日時分秒(システム日付)
				ku0101Msg.set(KU0101ETMsg.UPD_DTM, inCBSMsg.getString(EKU0041D010CBSMsg.OPERATEDATETIME));
				// 更新オペレータアカウント(オペレータアカウント)
				ku0101Msg.set(KU0101ETMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0041D010CBSMsg.OPERATORID));

				ku0101SecProc.update(ku0101Msg);

			}
		}
		catch (CAANFinderException cfe)
		{
			inCBSMsg.set(EKU0041D010CBSMsg.STATUS, StatusCodes.UPDATE_DB_ERR);
			throw cfe;
		}
		
		return true;
	}
	
	/**
	 * リレーションエラーを設定します
	 * @param inCBSMsg		CBSメッセージ
	 * @param errContents	エラーを設定する項目
	 * @param errCd			設定するエラーコード
	 */
	private void setRelationError(CAANMsg inCBSMsg, String errContents, String errCd)
	{
		// エラーを設定する
		inCBSMsg.set(errContents, errCd);
		// ステータスを設定する
		inCBSMsg.set(EKU0041D010CBSMsg.STATUS, StatusCodes.RELATION_ERR);
	}
}


