/*******************************************************************************
*	 All Rights reserved,Copyright (c) K-Opticom 
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JEKU0041C020TPMA
*	ソースファイル名：JEKU0041C020TPMA.java
*	作成者			：FJ
*	日付			：2011年09月21日
*＜機能概要＞
*	eo光テレビ回線を解約するサービスインターフェイス
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	ｖ1.00.00
*	ｖ4.00.00	2012/07/03	FJ)日根		【ANK-0398-00-00】住所管理に伴う「例外登録」の管理追加対応
*	ｖ5.00.00	2013/10/22	FJ)高橋		【OM-2013-0003548】
*	ｖ7.00.00	2014/03/11	FJ)高橋		【OM-2014-0000620】
*	ｖ31.00.00	2017/11/02	FJ)柳川		【ANK-3136-00-00】OPMSハードウエア保守切れ対応(STEP2-2)
*	ｖ31.00.01	2018/07/10	FJ)黒田(耕)	【IT2-2018-0000064】撤去工事のＶＯＮＵ流用有無が未連携
*	ｖ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 com.fujitsu.futurity.model.base.CAANException;
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.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.KU0111ETMsg;
import eo.ejb.cbs.cbsmsg.EKU0041C020CBSMsg;
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.JKUejbKU0111SecProc;
import eo.ejb.common.edit.JKUejbNumberParts;
import eo.common.constant.JKUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.util.JKUCheckSTBCount;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;


/**
 * <p>
 * 工事案件＜ｅｏ光テレビ回線＞解約の独自処理を呼び出す部品です。
 * </p>
 * @author 富士通
 */
public class JEKU0041C020TPMA implements TemplateMainHandler
{

	/**
	 * 工事受付、仕掛中ステータス
	 */
	private static final String[] UKKOJITYULIST = 
		{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};

	/**
	 * 仕掛中ステータス
	 */
	private static final String[] KOJITYULIST = 
		{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};

	/**
	 * 工事案件種別コード（解約時の仕掛中チェック用）
	 */
	private static final String[] KOJISBTLIST = 
		{JKUStrConst.CD00577_NEWESTA,
		JKUStrConst.CD00577_AD_CHG_NEWESTA,
		JKUStrConst.CD00577_AD_CHG_TEKKYO,
		JKUStrConst.CD00577_ISETSU,
		JKUStrConst.CD00577_LINK_STB,
		JKUStrConst.CD00577_MNKHT};
	
	/**
	 * コンストラクタです。
	 */
	public JEKU0041C020TPMA()
	{
		super();
	}
	
	/**
	 * 主処理
	 * @param inCBSMsg
	 * @param inContext
	 * @throws CAANException 
	 */
	public void invoke(CAANMsg inCBSMsg, AgentDispatchContext inContext) throws CAANException
	{
		String koji_uk_optnty_ido_div = inCBSMsg.getString(EKU0041C020CBSMsg.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 ktflg = "";
		//工事受付詳細コード
		String ukDtailCd = inCBSMsg.getString(EKU0041C020CBSMsg.KOJI_UK_DTAIL_CD);
		
		if(JKUStrConst.CD00885_DSL_KISN_NOKOSANAI.equals(ukDtailCd)
				|| JKUStrConst.CD00885_HIKKOSHI.equals(ukDtailCd))
		{
			ktflg = JKUStrConst.KT_FLG_T;
		}
		else if(JKUStrConst.CD00885_DSL_KISN_NOKOSU.equals(ukDtailCd))
		{
			ktflg = JKUStrConst.KT_FLG_K;
		}
		
		//工事案件情報リスト
		CAANMsg[] kojiakInfList = null;
		
		//撤去の場合
		if(JKUStrConst.KT_FLG_T.equals(ktflg))
		{
			kojiakInfList = getKojiakInfoTekkyo(inCBSMsg, inContext);
		}
		//解約の場合
		else if(JKUStrConst.KT_FLG_K.equals(ktflg))
		{
			kojiakInfList = getKojiakInfoKaiyaku(inCBSMsg, inContext);
		}
		
		if(kojiakInfList == null || kojiakInfList.length == 0)
		{
			//取得件数が0件の場合、エラー（エラー内容は工事案件情報取得処理にて設定）
			return;
		}
		
		
		//排他ロック：工事案件
		for(int i = 0; i < kojiakInfList.length; i++)
		{
			if(!JPCModelCommon.succeededExclusiveLock(kojiakInfList[i], inContext, JKUStrConst.SCHEMA_KU0011))
			{
				inCBSMsg.set(EKU0041C020CBSMsg.SVC_KEI_KAISEN_UCWK_NO_ERR, "EB");
				inCBSMsg.set(EKU0041C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
				return;
			}
		}
		
		//撤去の場合のみ、撤去工事仕掛中チェック、最新基本工事存在チェック
		if(JKUStrConst.KT_FLG_T.equals(ktflg))
		{
			String tmp_sts = "";
			String tmp_cd = "";
			for(int i = 0; i < kojiakInfList.length; i++)
			{
				tmp_sts = kojiakInfList[i].getString(KU0011ETMsg.KOJIAK_STAT);
				tmp_cd = kojiakInfList[i].getString(KU0011ETMsg.KOJIAK_SBT_CD);

				if(chkMatrix(UKKOJITYULIST, tmp_sts)
					&& (JKUStrConst.CD00577_KYOSEI_DSL.equals(tmp_cd)
						|| JKUStrConst.CD00577_TEKKYO_DSL.equals(tmp_cd)
						|| JKUStrConst.CD00577_AD_CHG_TEKKYO.equals(tmp_cd)))
				{
					inCBSMsg.set(EKU0041C020CBSMsg.SVC_KEI_KAISEN_UCWK_NO_ERR, "EC");
					inCBSMsg.set(EKU0041C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
					return;
				}
			}
			
			if (!getRcntKihonKojiakChk(kojiakInfList))
			{
				// 最新基本工事フラグが「1:最新基本工事」である工事案件情報が存在しない場合エラー
				inCBSMsg.set(EKU0041C020CBSMsg.SVC_KEI_KAISEN_UCWK_NO_ERR, "EJ");
				inCBSMsg.set(EKU0041C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
				return;
			}
		}
		
		// 撤去の場合のみ、更新対象の工事案件リストを再作成
		if(JKUStrConst.KT_FLG_T.equals(ktflg))
		{
			kojiakInfList = JKUModelCommon.getKojiakForTekkyo(inCBSMsg.getString(EKU0041C020CBSMsg.SVC_KEI_NO), kojiakInfList);
		}
		
		// ---工事案件情報に紐づくサービス契約_工事案件情報を取得する
		HashMap<String, CAANMsg[]> svcKeiKojiakMap = new HashMap<String, CAANMsg[]>();
		
		// 工事案件番号
		String kojiakNo = null;
		// サービス契約_工事案件副次処理部品
		JKUejbKU0081SecProc ku0081SecProc = new JKUejbKU0081SecProc();
		// サービス契約_工事案件の検索を実行する
		CAANMsg ku0081Msg = new CAANMsg(KU0081ETMsg.class.getName());
		
		for (int i = 0; i < kojiakInfList.length; ++i)
		{
			kojiakNo = kojiakInfList[i].getString(KU0011ETMsg.KOJIAK_NO);
			
			// 工事案件番号
			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);
			
			svcKeiKojiakMap.put(kojiakNo, ku0081MsgArray);
		}
		
		//振舞パターン取得
		List<String> hrmiPattern = JKUModelCommon.getUpdatePatternTV(kojiakInfList, svcKeiKojiakMap, ktflg);
		
		if(kojiakInfList == null || hrmiPattern == null || hrmiPattern.size() != kojiakInfList.length)
		{
			inCBSMsg.set(EKU0041C020CBSMsg.SVC_KEI_NO_ERR, "EE");
			inCBSMsg.set(EKU0041C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return;
		}
		
		//機能コードの確認（機能コードが「1」以外の場合、処理を終了する。）
		if(!JPCModelConstant.FUNC_CD_1.equals(inCBSMsg.getString(EKU0041C020CBSMsg.FUNC_CODE)))
		{
			return;
		}
		
		boolean chk = true;
		
		for(int i = 0; i < kojiakInfList.length; i++)
		{
			
			if(JKUStrConst.HRMI_PATTERN_TVK_01.equals(hrmiPattern.get(i)))
			{
				chk = updateKaiyakuUktk(inCBSMsg, inContext, kojiakInfList[i]);
			}
			else if(JKUStrConst.HRMI_PATTERN_TVK_02.equals(hrmiPattern.get(i)))
			{
				// 解約処理（最新基本工事）と同じ処理を実行する
				chk = updateKaiyakuSsn(inCBSMsg, inContext, kojiakInfList[i]);
			}
			else if(JKUStrConst.HRMI_PATTERN_TVK_03.equals(hrmiPattern.get(i)))
			{
				chk = updateKaiyakuSsn(inCBSMsg, inContext, kojiakInfList[i]);
			}
			else if(JKUStrConst.HRMI_PATTERN_TVK_04.equals(hrmiPattern.get(i)))
			{
				chk = updateKaiyakuGbrk(inCBSMsg, inContext, kojiakInfList[i]);
			}
			else if(JKUStrConst.HRMI_PATTERN_TVK_05.equals(hrmiPattern.get(i)))
			{
				chk = createTekkyoWithSvc(inCBSMsg, inContext, kojiakInfList[i]);
			}
			else if(JKUStrConst.HRMI_PATTERN_TVK_06.equals(hrmiPattern.get(i)))
			{
				chk = createTekkyoWithOutSvc(inCBSMsg, inContext, kojiakInfList[i]);
			}
			
			if(!chk)
			{
				return;
			}
		}
		
		// アウトプット項目を設定する
		// 登録年月日時分秒(システム日付)
		inCBSMsg.set(EKU0041C020CBSMsg.ADD_DTM, inCBSMsg.getString(EKU0041C020CBSMsg.OPERATEDATETIME));
		// 登録オペレータアカウント(共通部：オペレータＩＤ)
		inCBSMsg.set(EKU0041C020CBSMsg.ADD_OPEACNT, inCBSMsg.getString(EKU0041C020CBSMsg.OPERATORID));
		// 更新年月日時分秒(システム日付)
		inCBSMsg.set(EKU0041C020CBSMsg.UPD_DTM, inCBSMsg.getString(EKU0041C020CBSMsg.OPERATEDATETIME));
		// 更新オペレータアカウント(共通部：オペレータＩＤ)
		inCBSMsg.set(EKU0041C020CBSMsg.UPD_OPEACNT, inCBSMsg.getString(EKU0041C020CBSMsg.OPERATORID));
		// 無効フラグ
		inCBSMsg.set(EKU0041C020CBSMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);

	}
	
	/**
	 * 工事案件情報取得処理（撤去）
	 * @param inCBSMsg サービスインターフェイス入力電文
	 * @param inContext 
	 * @return CAANMsg[] 工事案件情報リスト
	 * @throws CAANException
	 */
	private CAANMsg[] getKojiakInfoTekkyo(CAANMsg inCBSMsg, AgentDispatchContext inContext) throws CAANException
	{
		CAANMsg[] kojiakInfList = 
			JKUModelCommon.getKU0011DoitsuKoji(inCBSMsg.getString(EKU0041C020CBSMsg.SVC_KEI_KAISEN_UCWK_NO), 
				inCBSMsg.getString(EKU0041C020CBSMsg.PRC_GRP_CD));
		
		if(kojiakInfList == null || kojiakInfList.length == 0)
		{
			inCBSMsg.set(EKU0041C020CBSMsg.SVC_KEI_KAISEN_UCWK_NO_ERR, "EA");
			inCBSMsg.set(EKU0041C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return null;
		}
		
		return kojiakInfList;
	}
	
	/**
	 * 工事案件情報取得処理（解約）
	 * @param inCBSMsg サービスインターフェイス入力電文
	 * @param inContext 
	 * @return CAANMsg[] 工事案件情報リスト
	 * @throws CAANException
	 */
	private CAANMsg[] getKojiakInfoKaiyaku(CAANMsg inCBSMsg, AgentDispatchContext inContext) throws CAANException
	{
		
		CAANMsg msgKU0081 = new CAANMsg(KU0081ETMsg.class.getName());
		
		msgKU0081.set(KU0081ETMsg.SVC_KEI_NO, inCBSMsg.getString(EKU0041C020CBSMsg.SVC_KEI_NO));
		msgKU0081.set(KU0081ETMsg.SVKEI_KOJIAK_TENDYMD, JKUStrConst.MAX_YMD);
		msgKU0081.set(KU0081ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		JKUejbKU0081SecProc secProc0081 = new JKUejbKU0081SecProc();
		
		CAANMsg[] msgKU0081List = secProc0081.findByCondition(msgKU0081);
		
		if(msgKU0081List == null)
		{
			inCBSMsg.set(EKU0041C020CBSMsg.SVC_KEI_NO_ERR, "EA");
			inCBSMsg.set(EKU0041C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return null;
		}
		
		List<CAANMsg> tmpList = new ArrayList<CAANMsg>();
		
		for(int i = 0; i < msgKU0081List.length; i++)
		{
			CAANMsg msgKU0011 = new CAANMsg(KU0011ETMsg.class.getName());
			
			msgKU0011.set(KU0011ETMsg.KOJIAK_NO, msgKU0081List[i].getString(KU0081ETMsg.KOJIAK_NO));
			
			JKUejbKU0011SecProc secProc0011 = new JKUejbKU0011SecProc();
			
			CAANMsg msgKU0011List = secProc0011.findByPrimaryKey(msgKU0011, true);
			
			if(msgKU0011List != null)
			{
				tmpList.add(msgKU0011List);
			}
		}
		
		if(tmpList.size() == 0)
		{
			inCBSMsg.set(EKU0041C020CBSMsg.SVC_KEI_NO_ERR, "EA");
			inCBSMsg.set(EKU0041C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return null;
		}
		
		CAANMsg[] msg = new CAANMsg[tmpList.size()];
		
		for(int i = 0; i < tmpList.size(); i++)
		{
			msg[i] = tmpList.get(i);
		}
		
		return msg;
	}
	
	
	/**
	 * 解約処理（受付済み）
	 * @param inCBSMsg サービスインターフェイス入力電文
	 * @param inContext 
	 * @param kojiakInfo 工事案件情報
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean updateKaiyakuUktk(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakInfo) throws CAANException
	{
		//運用日付
		String opedate = JKUModelCommon.getOpeDate(inCBSMsg, null);
		//システム日付（年月日時分秒）
		String sysdate = inCBSMsg.getString(EKU0041C020CBSMsg.OPERATEDATETIME);
		//オペレータID
		String operatorID = inCBSMsg.getString(EKU0041C020CBSMsg.OPERATORID);
		
		//工事案件：更新処理
		CAANMsg msgKU0011 = new CAANMsg(KU0011ETMsg.class.getName());
		
		msgKU0011.set(KU0011ETMsg.KOJIAK_NO, kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO));
		msgKU0011.set(KU0011ETMsg.KOJIAK_STAT, JKUStrConst.CD00474_CHUSHI);
		msgKU0011.set(KU0011ETMsg.RNKI_SVC_CANCEL_YMD, inCBSMsg.getString(EKU0041C020CBSMsg.SVC_DSL_YMD));
		msgKU0011.set(KU0011ETMsg.KOJIAK_CANCEL_YMD, opedate);
		msgKU0011.set(KU0011ETMsg.UPD_DTM, sysdate);
		msgKU0011.set(KU0011ETMsg.UPD_OPEACNT, operatorID);
		
		JKUejbKU0011SecProc ku0011secproc = new JKUejbKU0011SecProc();
		
		ku0011secproc.update(msgKU0011);
		
		//サービス契約＿工事案件：更新処理
		CAANMsg msgKU0081 = new CAANMsg(KU0081ETMsg.class.getName());
		
		msgKU0081.set(KU0081ETMsg.SVC_KEI_NO, inCBSMsg.getString(EKU0041C020CBSMsg.SVC_KEI_NO));
		msgKU0081.set(KU0081ETMsg.KOJIAK_NO, kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO));
		msgKU0081.set(KU0081ETMsg.SVKEI_KOJIAK_TENDYMD, opedate);
		msgKU0081.set(KU0081ETMsg.UPD_DTM, sysdate);
		msgKU0081.set(KU0081ETMsg.UPD_OPEACNT, operatorID);

		JKUejbKU0081SecProc ku0081secproc = new JKUejbKU0081SecProc();
		
		if(ku0081secproc.isExistsPrimaryKey(msgKU0081, true))
		{
			ku0081secproc.update(msgKU0081);
		}
		else
		{
			inCBSMsg.set(EKU0041C020CBSMsg.SVC_KEI_NO_ERR, "EF");
			inCBSMsg.set(EKU0041C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}
		
		//先行設計
		CAANMsg msgKU0101forsearch = new CAANMsg(KU0101ETMsg.class.getName());
		CAANMsg msgKU0101 = new CAANMsg(KU0101ETMsg.class.getName());
		
		msgKU0101forsearch.set(KU0101ETMsg.KOJIAK_NO, kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO));
		msgKU0101forsearch.set(KU0101ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		JKUejbKU0101SecProc ku0101secproc = new JKUejbKU0101SecProc();
		
		CAANMsg[] ku0101List = ku0101secproc.findByCondition(msgKU0101forsearch);
		
		if(ku0101List != null)
		{
			for(int i = 0; i < ku0101List.length; i++)
			{
				
				// 先行設計ステータス が（'受付済'）の場合のみ更新する
				if (JKUStrConst.SNKSKI_STAT_UK_ZM.equals(ku0101List[i].getString(KU0101ETMsg.SNKSKI_STAT)))
				{
					msgKU0101.set(KU0101ETMsg.SNKSKI_NO, ku0101List[i].getString(KU0101ETMsg.SNKSKI_NO));
					msgKU0101.set(KU0101ETMsg.SNKSKI_STAT, JKUStrConst.SNKSKI_STAT_CHUSHI);
					msgKU0101.set(KU0101ETMsg.KOJIAK_NO, ku0101List[i].getString(KU0101ETMsg.KOJIAK_NO));
					msgKU0101.set(KU0101ETMsg.SNKSKI_STP_YMD, JKUModelCommon.getOpeDate(inCBSMsg, null));
					msgKU0101.set(KU0101ETMsg.UPD_DTM, sysdate);
					msgKU0101.set(KU0101ETMsg.UPD_OPEACNT, operatorID);
					
					ku0101secproc.update(msgKU0101);
				}
				
			}
		}
		
		
		//設定工事
		CAANMsg msgKU0111forsearch = new CAANMsg(KU0111ETMsg.class.getName());
		CAANMsg msgKU0111 = new CAANMsg(KU0111ETMsg.class.getName());
		
		msgKU0111forsearch.set(KU0111ETMsg.KOJIAK_NO, kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO));
		msgKU0111forsearch.set(KU0111ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		JKUejbKU0111SecProc ku0111secproc = new JKUejbKU0111SecProc();
		
		CAANMsg[] ku0111List = ku0111secproc.findByCondition(msgKU0111forsearch);
		
		if(ku0111List != null)
		{
			for(int i = 0; i < ku0111List.length; i++)
			{
				msgKU0111.set(KU0111ETMsg.SETTE_KOJI_NO, ku0111List[i].getString(KU0111ETMsg.SETTE_KOJI_NO));
				msgKU0111.set(KU0111ETMsg.SETTE_KOJI_STAT, JKUStrConst.CD00477_CHUSHI);
				msgKU0111.set(KU0111ETMsg.KOJIAK_NO, ku0111List[i].getString(KU0111ETMsg.KOJIAK_NO));
				msgKU0111.set(KU0111ETMsg.SETTE_KOJI_CANCEL_DTM, JKUModelCommon.getOpeDateTime(inCBSMsg, null));
				msgKU0111.set(KU0111ETMsg.UPD_DTM, sysdate);
				msgKU0111.set(KU0111ETMsg.UPD_OPEACNT, operatorID);
				
				ku0111secproc.update(msgKU0111);
			}
		}
		return true;
	}
	
	/**
	 * 解約処理（最新基本工事）
	 * @param inCBSMsg サービスインターフェイス入力電文
	 * @param inContext 
	 * @param kojiakInfo 工事案件情報
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean updateKaiyakuSsn(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakInfo) throws CAANException
	{
		//運用日付
		String opedate = JKUModelCommon.getOpeDate(inCBSMsg, null);
		//システム日付（年月日時分秒）
		String sysdate = inCBSMsg.getString(EKU0041C020CBSMsg.OPERATEDATETIME);
		//オペレータID
		String operatorID = inCBSMsg.getString(EKU0041C020CBSMsg.OPERATORID);
		
		//工事案件：更新処理
		CAANMsg msgKU0011 = new CAANMsg(KU0011ETMsg.class.getName());
		
		msgKU0011.set(KU0011ETMsg.KOJIAK_NO, kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO));
		msgKU0011.set(KU0011ETMsg.RNKI_SVC_ENDYMD, inCBSMsg.getString(EKU0041C020CBSMsg.SVC_DSL_YMD));
		msgKU0011.set(KU0011ETMsg.UPD_DTM, sysdate);
		msgKU0011.set(KU0011ETMsg.UPD_OPEACNT, operatorID);
		
		JKUejbKU0011SecProc ku0011secproc = new JKUejbKU0011SecProc();
		
		ku0011secproc.update(msgKU0011);
		
		//サービス契約＿工事案件：更新処理
		CAANMsg msgKU0081 = new CAANMsg(KU0081ETMsg.class.getName());
		
		msgKU0081.set(KU0081ETMsg.SVC_KEI_NO, inCBSMsg.getString(EKU0041C020CBSMsg.SVC_KEI_NO));
		msgKU0081.set(KU0081ETMsg.KOJIAK_NO, kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO));
		msgKU0081.set(KU0081ETMsg.SVKEI_KOJIAK_TENDYMD, opedate);
		msgKU0081.set(KU0081ETMsg.UPD_DTM, sysdate);
		msgKU0081.set(KU0081ETMsg.UPD_OPEACNT, operatorID);

		JKUejbKU0081SecProc ku0081secproc = new JKUejbKU0081SecProc();
		
		if(ku0081secproc.isExistsPrimaryKey(msgKU0081, true))
		{
			ku0081secproc.update(msgKU0081);
		}
		else
		{
			inCBSMsg.set(EKU0041C020CBSMsg.SVC_KEI_NO_ERR, "EG");
			inCBSMsg.set(EKU0041C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}
		
		return true;
	}
	
	/**
	 * 解約処理（外部連携終了）
	 * @param inCBSMsg サービスインターフェイス入力電文
	 * @param inContext 
	 * @param kojiakInfo 工事案件情報
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean updateKaiyakuGbrk(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg kojiakInfo) throws CAANException
	{
		
		//運用日付
		String opedate = JKUModelCommon.getOpeDate(inCBSMsg, null);
		//システム日付（年月日時分秒）
		String sysdate = inCBSMsg.getString(EKU0041C020CBSMsg.OPERATEDATETIME);
		//オペレータID
		String operatorID = inCBSMsg.getString(EKU0041C020CBSMsg.OPERATORID);
		
		//サービス契約＿工事案件：更新処理
		CAANMsg msgKU0081 = new CAANMsg(KU0081ETMsg.class.getName());
		
		msgKU0081.set(KU0081ETMsg.SVC_KEI_NO, inCBSMsg.getString(EKU0041C020CBSMsg.SVC_KEI_NO));
		msgKU0081.set(KU0081ETMsg.KOJIAK_NO, kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO));
		msgKU0081.set(KU0081ETMsg.SVKEI_KOJIAK_TENDYMD, opedate);
		msgKU0081.set(KU0081ETMsg.UPD_DTM, sysdate);
		msgKU0081.set(KU0081ETMsg.UPD_OPEACNT, operatorID);

		JKUejbKU0081SecProc ku0081secproc = new JKUejbKU0081SecProc();
		
		if(ku0081secproc.isExistsPrimaryKey(msgKU0081, true))
		{
			ku0081secproc.update(msgKU0081);
		}
		else
		{
			inCBSMsg.set(EKU0041C020CBSMsg.SVC_KEI_NO_ERR, "EH");
			inCBSMsg.set(EKU0041C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}
		
		return true;
	}
	
	/**
	 * 回線撤去処理（撤去サービスあり）
	 * @param inCBSMsg サービスインターフェイス入力電文
	 * @param inContext 
	 * @param kojiakInfo 工事案件情報
	 * @return boolean
	 * @throws CAANException
	 */
	private boolean createTekkyoWithSvc(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(JPCModelCommon.isNullChk(inCBSMsg, inContext, kojiakNo))
		{
			inCBSMsg.set(EKU0041C020CBSMsg.MSKMSHO_NO_ERR, "EI");
			inCBSMsg.set(EKU0041C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}
		
		inCBSMsg.set(EKU0041C020CBSMsg.KOJIAK_NO, kojiakNo);
		
		//工事案件種別の取得
	    // ANK-4315-00-00 MOD START
//		String kojiakSbt = JKUModelCommon.getKojiakSbtCd(
//				inCBSMsg.getString(EKU0041C020CBSMsg.KOJI_UK_CD), 
//				inCBSMsg.getString(EKU0041C020CBSMsg.KOJI_UK_DTAIL_CD), 
//				null, 
//				"0", 
//				inCBSMsg.getString(EKU0041C020CBSMsg.PRC_GRP_CD), 
//				null, 
//				null);
		String kojiakSbt = JKUModelCommon.getKojiakSbtCd(
				inCBSMsg.getString(EKU0041C020CBSMsg.KOJI_UK_CD), 
				inCBSMsg.getString(EKU0041C020CBSMsg.KOJI_UK_DTAIL_CD), 
				null, 
				"0", 
				inCBSMsg.getString(EKU0041C020CBSMsg.PRC_GRP_CD), 
				null, 
				null,
				null
				);
		 // ANK-4315-00-00 MOD END
		
		if(JPCModelCommon.isNullChk(inCBSMsg, inContext, kojiakSbt))
		{
			inCBSMsg.set(EKU0041C020CBSMsg.MSKMSHO_NO_ERR, "EI");
			inCBSMsg.set(EKU0041C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}
		
		inCBSMsg.set(EKU0041C020CBSMsg.KOJIAK_SBT_CD, kojiakSbt);
		
		// 同時代表工事案件番号の取得
		String dojiDaihyoKojiakNo = JKUModelCommon.getSimRepKojiakNoNotFindByPk(
				inCBSMsg.getString(EKU0041C020CBSMsg.KOJIAK_SBT_CD), inCBSMsg.getString(EKU0041C020CBSMsg.PRC_GRP_CD)
				, null, null, null, inCBSMsg.getString(EKU0041C020CBSMsg.SVC_KEI_KAISEN_UCWK_NO));
		
		//運用日付
		String opedate = JKUModelCommon.getOpeDate(inCBSMsg, null);
		//システム日付（年月日時分秒）
		String sysdate = inCBSMsg.getString(EKU0041C020CBSMsg.OPERATEDATETIME);
		//オペレータID
		String operatorID = inCBSMsg.getString(EKU0041C020CBSMsg.OPERATORID);
		
		
		//工事案件：登録処理
		CAANMsg msgKU0011 = new CAANMsg(KU0011ETMsg.class.getName());
		
		msgKU0011.set(KU0011ETMsg.KOJIAK_NO, kojiakNo);
		msgKU0011.set(KU0011ETMsg.KOJIAK_STAT, JKUStrConst.CD00474_UK_ZM);
		msgKU0011.set(KU0011ETMsg.SYSID, inCBSMsg.getString(EKU0041C020CBSMsg.SYSID));
		msgKU0011.set(KU0011ETMsg.RNKI_SVC_KEI_NO, inCBSMsg.getString(EKU0041C020CBSMsg.SVC_KEI_NO));
		msgKU0011.set(KU0011ETMsg.OWNR_KEI_NO, kojiakInfo.getString(KU0011ETMsg.OWNR_KEI_NO));
		msgKU0011.set(KU0011ETMsg.SEIKY_KEI_NO, inCBSMsg.getString(EKU0041C020CBSMsg.SEIKY_KEI_NO));
		msgKU0011.set(KU0011ETMsg.KOJIAK_SBT_CD, kojiakSbt);
		msgKU0011.set(KU0011ETMsg.PRC_GRP_CD, inCBSMsg.getString(EKU0041C020CBSMsg.PRC_GRP_CD));
		msgKU0011.set(KU0011ETMsg.PCRS_CD, inCBSMsg.getString(EKU0041C020CBSMsg.PCRS_CD));
		msgKU0011.set(KU0011ETMsg.UPD_TRGT_KOJIAK_NO, kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO));
		msgKU0011.set(KU0011ETMsg.MSKM_UK_YMD, opedate);
		msgKU0011.set(KU0011ETMsg.MSKMSHO_ARIV_YMD, opedate);
		msgKU0011.set(KU0011ETMsg.PLACE_NO, inCBSMsg.getString(EKU0041C020CBSMsg.PLACE_NO));
		msgKU0011.set(KU0011ETMsg.KOJI_KIBO_YMD, inCBSMsg.getString(EKU0041C020CBSMsg.KOJI_KIBO_YMD));
		
		// 工事案件種別コードが住所変更(撤去)の場合
		if(JKUStrConst.CD00577_AD_CHG_TEKKYO.equals(inCBSMsg.getString(EKU0041C020CBSMsg.KOJIAK_SBT_CD)))
		{
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_AD_CD, inCBSMsg.getString(EKU0041C020CBSMsg.TENTAKU_SAKI_AD_CD));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_PCD, inCBSMsg.getString(EKU0041C020CBSMsg.TENTAKU_SAKI_PCD));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_STATE_NM, inCBSMsg.getString(EKU0041C020CBSMsg.TENTAKU_SAKI_STATE_NM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_CITY_NM, inCBSMsg.getString(EKU0041C020CBSMsg.TENTAKU_SAKI_CITY_NM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_OAZTSU_NM, inCBSMsg.getString(EKU0041C020CBSMsg.TENTAKU_SAKI_OAZTSU_NM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_AZCHO_NM, inCBSMsg.getString(EKU0041C020CBSMsg.TENTAKU_SAKI_AZCHO_NM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_AD_BNCHIGO, inCBSMsg.getString(EKU0041C020CBSMsg.TENTAKU_SAKI_AD_BNCHIGO));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_ADRTTM, inCBSMsg.getString(EKU0041C020CBSMsg.TENTAKU_SAKI_ADRTTM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_ADRRM, inCBSMsg.getString(EKU0041C020CBSMsg.TENTAKU_SAKI_ADRRM));
			
			msgKU0011.set(KU0011ETMsg.TENTAKU_BF_AD_CD, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_AD_CD));
			msgKU0011.set(KU0011ETMsg.TENTAKU_BF_PCD, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_PCD));
			msgKU0011.set(KU0011ETMsg.TENTAKU_BF_STATE_NM, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_STATE_NM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_BF_CITY_NM, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_CITY_NM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_BF_OAZTSU_NM, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_OAZTSU_NM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_BF_AZCHO_NM, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_AZCHO_NM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_BF_AD_BNCHIGO, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_AD_BNCHIGO));
			msgKU0011.set(KU0011ETMsg.TENTAKU_BF_ADRTTM, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_ADRTTM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_BF_ADRRM, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_ADRRM));
		}
		else
		{
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_AD_CD, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_AD_CD));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_PCD, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_PCD));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_STATE_NM, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_STATE_NM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_CITY_NM, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_CITY_NM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_OAZTSU_NM, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_OAZTSU_NM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_AZCHO_NM, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_AZCHO_NM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_AD_BNCHIGO, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_AD_BNCHIGO));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_ADRTTM, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_ADRTTM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_ADRRM, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_ADRRM));
		}
		
		msgKU0011.set(KU0011ETMsg.MSKMSHA_NM, inCBSMsg.getString(EKU0041C020CBSMsg.MSKMSHA_NM));
		msgKU0011.set(KU0011ETMsg.CUST_NM, inCBSMsg.getString(EKU0041C020CBSMsg.CUST_NM));
		msgKU0011.set(KU0011ETMsg.CUST_KANA, inCBSMsg.getString(EKU0041C020CBSMsg.CUST_KANA));
		msgKU0011.set(KU0011ETMsg.CUST_HOME_TELNO, inCBSMsg.getString(EKU0041C020CBSMsg.CUST_HOME_TEL_NO));
		msgKU0011.set(KU0011ETMsg.CUST_KTAI_TELNO, inCBSMsg.getString(EKU0041C020CBSMsg.CUST_KTAI_TEL_NO));
		msgKU0011.set(KU0011ETMsg.CUST_RRKS_TELNO, inCBSMsg.getString(EKU0041C020CBSMsg.CUST_RRKS_TEL_NO));
		msgKU0011.set(KU0011ETMsg.RRKS_OFFC_NM, inCBSMsg.getString(EKU0041C020CBSMsg.RRKS_OFFC_NM));
		msgKU0011.set(KU0011ETMsg.KEISHA_AD_CD, inCBSMsg.getString(EKU0041C020CBSMsg.KEISHA_AD_CD));
		msgKU0011.set(KU0011ETMsg.KEISHA_PCD, inCBSMsg.getString(EKU0041C020CBSMsg.KEISHA_PCD));
		msgKU0011.set(KU0011ETMsg.KEISHA_STATE_NM, inCBSMsg.getString(EKU0041C020CBSMsg.KEISHA_STATE_NM));
		msgKU0011.set(KU0011ETMsg.KEISHA_CITY_NM, inCBSMsg.getString(EKU0041C020CBSMsg.KEISHA_CITY_NM));
		msgKU0011.set(KU0011ETMsg.KEISHA_OAZTSU_NM, inCBSMsg.getString(EKU0041C020CBSMsg.KEISHA_OAZTSU_NM));
		msgKU0011.set(KU0011ETMsg.KEISHA_AZCHO_NM, inCBSMsg.getString(EKU0041C020CBSMsg.KEISHA_AZCHO_NM));
		msgKU0011.set(KU0011ETMsg.KEISHA_AD_BNCHIGO, inCBSMsg.getString(EKU0041C020CBSMsg.KEISHA_AD_BNCHIGO));
		msgKU0011.set(KU0011ETMsg.KEISHA_ADRTTM, inCBSMsg.getString(EKU0041C020CBSMsg.KEISHA_ADRTTM));
		msgKU0011.set(KU0011ETMsg.KEISHA_ADRRM, inCBSMsg.getString(EKU0041C020CBSMsg.KEISHA_ADRRM));
		msgKU0011.set(KU0011ETMsg.KEISHA_AD_MAN_INPUT_FLG, inCBSMsg.getString(EKU0041C020CBSMsg.KEISHA_AD_MAN_INPUT_FLG));
		msgKU0011.set(KU0011ETMsg.KOJI_SAKI_AD_MI_FIX_FLG, inCBSMsg.getString(EKU0041C020CBSMsg.KOJI_SAKI_AD_MI_FIX_FLG));
		msgKU0011.set(KU0011ETMsg.LGTD, kojiakInfo.getString(KU0011ETMsg.LGTD));
		msgKU0011.set(KU0011ETMsg.LTTD, kojiakInfo.getString(KU0011ETMsg.LTTD));
		msgKU0011.set(KU0011ETMsg.XZAHYO_6, kojiakInfo.getString(KU0011ETMsg.XZAHYO_6));
		msgKU0011.set(KU0011ETMsg.YZAHYO_6, kojiakInfo.getString(KU0011ETMsg.YZAHYO_6));
		msgKU0011.set(KU0011ETMsg.XZAHYO_5, kojiakInfo.getString(KU0011ETMsg.XZAHYO_5));
		msgKU0011.set(KU0011ETMsg.YZAHYO_5, kojiakInfo.getString(KU0011ETMsg.YZAHYO_5));
		msgKU0011.set(KU0011ETMsg.ZAHYO_HOSEI_UM, kojiakInfo.getString(KU0011ETMsg.ZAHYO_HOSEI_UM));
		msgKU0011.set(KU0011ETMsg.NYUKYO_FLR_CNT_CD, inCBSMsg.getString(EKU0041C020CBSMsg.NYUKYO_FLR_CNT_CD));
		msgKU0011.set(KU0011ETMsg.KCKU_FLR_CNT_CD, inCBSMsg.getString(EKU0041C020CBSMsg.KCKU_FLR_CNT_CD));
		msgKU0011.set(KU0011ETMsg.DIRECTION_CD_1, inCBSMsg.getString(EKU0041C020CBSMsg.DIRECTION_CD_1));
		msgKU0011.set(KU0011ETMsg.DIRECTION_CD_2, inCBSMsg.getString(EKU0041C020CBSMsg.DIRECTION_CD_2));
		msgKU0011.set(KU0011ETMsg.DOJI_DAIHYO_KOJIAK_NO, dojiDaihyoKojiakNo);
		msgKU0011.set(KU0011ETMsg.TEL_RRK_KIBO_YMD, inCBSMsg.getString(EKU0041C020CBSMsg.TEL_RRK_KIBO_YMD));
		msgKU0011.set(KU0011ETMsg.TEL_RRK_KIBO_TIME_CD, inCBSMsg.getString(EKU0041C020CBSMsg.TEL_RRK_KIBO_TIME_CD));
		msgKU0011.set(KU0011ETMsg.TAKCHO_KIBO_APO_KIGEN_YMD, inCBSMsg.getString(EKU0041C020CBSMsg.TAKCHO_KIBO_APO_KIGEN_YMD));
		msgKU0011.set(KU0011ETMsg.TNKJ_KIBO_APO_KIGEN_YMD, inCBSMsg.getString(EKU0041C020CBSMsg.TNKJ_KIBO_APO_KIGEN_YMD));
		msgKU0011.set(KU0011ETMsg.KOJI_APO_RRKS_SHITEI_CD, inCBSMsg.getString(EKU0041C020CBSMsg.KOJI_APO_RRKS_SHITEI_CD));
		msgKU0011.set(KU0011ETMsg.KOJI_APO_RRKS_TELNO, inCBSMsg.getString(EKU0041C020CBSMsg.KOJI_APO_RRKS_TELNO));
		msgKU0011.set(KU0011ETMsg.RRK_WAY_CD, inCBSMsg.getString(EKU0041C020CBSMsg.RRK_WAY_CD));
		msgKU0011.set(KU0011ETMsg.RRK_WAY_HOKI, inCBSMsg.getString(EKU0041C020CBSMsg.RRK_WAY_HOKI));
		msgKU0011.set(KU0011ETMsg.KOJI_UK_OPTNTY_IDO_DIV, inCBSMsg.getString(EKU0041C020CBSMsg.KOJI_UK_OPTNTY_IDO_DIV));
		msgKU0011.set(KU0011ETMsg.KOJI_UK_OPTNTY_IDO_DTM, inCBSMsg.getString(EKU0041C020CBSMsg.KOJI_UK_OPTNTY_IDO_DTM));
		msgKU0011.set(KU0011ETMsg.KOJIAK_UK_USER_ID, inCBSMsg.getString(EKU0041C020CBSMsg.OPERATORID));
		msgKU0011.set(KU0011ETMsg.KOJIAK_RRK_JIKO, inCBSMsg.getString(EKU0041C020CBSMsg.KOJIAK_BIKO));
		msgKU0011.set(KU0011ETMsg.KOJIAK_BIKO_1, inCBSMsg.getString(EKU0041C020CBSMsg.KOJIAK_BIKO_1));
		msgKU0011.set(KU0011ETMsg.KOJIAK_BIKO_2, inCBSMsg.getString(EKU0041C020CBSMsg.KOJIAK_BIKO_2));
		msgKU0011.set(KU0011ETMsg.KEPCO_BUSIOFFICE_CD, kojiakInfo.getString(KU0011ETMsg.KEPCO_BUSIOFFICE_CD));
		
// ANK-3136-00-00 ADD START
		// 工事案件種別コードが撤去(解約)の場合
		if(JKUStrConst.CD00577_TEKKYO_DSL.equals(inCBSMsg.getString(EKU0041C020CBSMsg.KOJIAK_SBT_CD)))
		{
			msgKU0011.set(KU0011ETMsg.EQUIP_RYUYO_UM, inCBSMsg.getString(EKU0041C020CBSMsg.EQUIP_RYUYO_UM));
// IT2-2018-0000064 ADD START
			msgKU0011.set(KU0011ETMsg.VONU_RYUYO_UM, inCBSMsg.getString(EKU0041C020CBSMsg.VONU_RYUYO_UM));
// IT2-2018-0000064 ADD END
			msgKU0011.set(KU0011ETMsg.SBRY_KJ_FIN_KIBOYMD, inCBSMsg.getString(EKU0041C020CBSMsg.SBRY_KJ_FIN_KIBOYMD));
		}
		
		msgKU0011.set(KU0011ETMsg.TSYRN_KJ_RRKS_NM, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_KJ_RRKS_NM));
		msgKU0011.set(KU0011ETMsg.TSYRN_KJ_RRKS_TLN, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_KJ_RRKS_TLN));
		msgKU0011.set(KU0011ETMsg.TSYRN_TAKCHO_JI_RRKS_NM, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_TAKCHO_JI_RRKS_NM));
		msgKU0011.set(KU0011ETMsg.TSYRN_TAKCHO_JI_RRKS_TLN, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_TAKCHO_JI_RRKS_TLN));
		msgKU0011.set(KU0011ETMsg.TSYRN_RRK_KIBO_DATE, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_RRK_KIBO_DATE));
		msgKU0011.set(KU0011ETMsg.TSYRN_KOJI_HI, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_KOJI_HI));
		msgKU0011.set(KU0011ETMsg.TSYRN_TAKCHO_YH, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_TAKCHO_YH));
		msgKU0011.set(KU0011ETMsg.TSYRN_SDAKS_YH, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_SDAKS_YH));
		msgKU0011.set(KU0011ETMsg.TSYRN_TACHIAISHA_NM, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_TACHIAISHA_NM));
		msgKU0011.set(KU0011ETMsg.TSYRN_HKKS_SISAK_YH, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_HKKS_SISAK_YH));
		msgKU0011.set(KU0011ETMsg.TSYRN_TTK_JI_NSANK_YH, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_TTK_JI_NSANK_YH));
		msgKU0011.set(KU0011ETMsg.TSYRN_MAP_UM, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_MAP_UM));
		msgKU0011.set(KU0011ETMsg.TSYRN_DOJI_KOJI_INF, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_DOJI_KOJI_INF));
		msgKU0011.set(KU0011ETMsg.TSYRN_KZN_KEI_INF, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_KZN_KEI_INF));
		msgKU0011.set(KU0011ETMsg.TSYRN_HBI_KAISHOU_YMD, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_HBI_KAISHOU_YMD));
		msgKU0011.set(KU0011ETMsg.TSYRN_CAMPAIGN_INF, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_CAMPAIGN_INF));
// ANK-3136-00-00 ADD END
		
		// フラグ初期化処理
		// 最新基本工事フラグ,「最新基本工事でない」を設定
		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, sysdate);
		msgKU0011.set(KU0011ETMsg.ADD_OPEACNT, operatorID);
		msgKU0011.set(KU0011ETMsg.UPD_DTM, sysdate);
		msgKU0011.set(KU0011ETMsg.UPD_OPEACNT, operatorID);
		msgKU0011.set(KU0011ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
// ANK-4038-00-00 ADD START
		// サービス契約回線内訳情報の取得
		CAANMsg svkeiKaisenUwMsg = JKUModelCommon.getSvkeiKaisenUwInfo(inCBSMsg.getString(EKU0041C020CBSMsg.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
		
		JKUejbKU0011SecProc ku0011secproc = new JKUejbKU0011SecProc();
		
		ku0011secproc.create(msgKU0011);
		
		// 同時代表工事案件の更新処理
		if(!JKUModelCommon.updateDojiDaihyoKojiak(kojiakNo, dojiDaihyoKojiakNo, inCBSMsg.getString(EKU0041C020CBSMsg.OPERATEDATETIME), 
				inCBSMsg.getString(EKU0041C020CBSMsg.OPERATORID), inContext, true))
		{
			// 申込書番号エラーを設定
			inCBSMsg.set(EKU0041C020CBSMsg.MSKMSHO_NO_ERR, "EK");
			// ステータスを設定
			inCBSMsg.set(EKU0041C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}
		
		//工事案件対象宅内機器：登録処理
		// 工事案件種別
		String kojiakSbtCd = inCBSMsg.getString(EKU0041C020CBSMsg.KOJIAK_SBT_CD);
		// 料金グループコード
		String prcGrpCd = inCBSMsg.getString(EKU0041C020CBSMsg.PRC_GRP_CD);
		
		JKUModelCommon.updTaknkiki(kojiakNo, inCBSMsg, null, kojiakSbtCd, prcGrpCd, false);
		
		
		//工事案件＜eo光テレビ回線＞：登録処理
		CAANMsg msgKU0041 = new CAANMsg(KU0041ETMsg.class.getName());
		
		msgKU0041.set(KU0041ETMsg.KOJIAK_NO, kojiakNo);
		msgKU0041.set(KU0041ETMsg.KOJI_SCOPE_CD, inCBSMsg.getString(EKU0041C020CBSMsg.KOJI_SCOPE_CD));
		
		JKUCheckSTBCount stbcnt = JKUModelCommon.checkSTBCount(kojiakNo, kojiakSbt);

		msgKU0041.set(KU0041ETMsg.STB_KEI_CNT, stbcnt.getStbNewKeiCnt());
		msgKU0041.set(KU0041ETMsg.DMPS_ANKEN_NO, inCBSMsg.getString(EKU0041C020CBSMsg.DMPS_ANKEN_NO));
		msgKU0041.set(KU0041ETMsg.DMPSANK_SBT_CD, inCBSMsg.getString(EKU0041C020CBSMsg.DMPSANK_SBT_CD));
		msgKU0041.set(KU0041ETMsg.DSL_KIBO_YMD, inCBSMsg.getString(EKU0041C020CBSMsg.DSL_KIBO_YMD));
		msgKU0041.set(KU0041ETMsg.ISETSU_CD, inCBSMsg.getString(EKU0041C020CBSMsg.ISETSU_CD));
		msgKU0041.set(KU0041ETMsg.ADD_DTM, sysdate);
		msgKU0041.set(KU0041ETMsg.ADD_OPEACNT, operatorID);
		msgKU0041.set(KU0041ETMsg.UPD_DTM, sysdate);
		msgKU0041.set(KU0041ETMsg.UPD_OPEACNT, operatorID);
		msgKU0041.set(KU0041ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		JKUejbKU0041SecProc ku0041secproc = new JKUejbKU0041SecProc();
		
		ku0041secproc.create(msgKU0041);
		
		//サービス契約＿工事案件：登録処理
		CAANMsg msgKU0081 = new CAANMsg(KU0081ETMsg.class.getName());
		
		msgKU0081.set(KU0081ETMsg.SVC_KEI_NO, inCBSMsg.getString(EKU0041C020CBSMsg.SVC_KEI_NO));
		msgKU0081.set(KU0081ETMsg.KOJIAK_NO, kojiakNo);
		msgKU0081.set(KU0081ETMsg.SVC_CD, inCBSMsg.getString(EKU0041C020CBSMsg.SVC_CD));
		msgKU0081.set(KU0081ETMsg.SYSID, inCBSMsg.getString(EKU0041C020CBSMsg.SYSID));
		msgKU0081.set(KU0081ETMsg.SVC_KEI_KAISEN_UCWK_NO, inCBSMsg.getString(EKU0041C020CBSMsg.SVC_KEI_KAISEN_UCWK_NO));
		msgKU0081.set(KU0081ETMsg.SVKEI_KOJIAK_TSTAYMD, opedate);
		msgKU0081.set(KU0081ETMsg.SVKEI_KOJIAK_TENDYMD, JKUStrConst.MAX_YMD);
		msgKU0081.set(KU0081ETMsg.ADD_DTM, sysdate);
		msgKU0081.set(KU0081ETMsg.ADD_OPEACNT, operatorID);
		msgKU0081.set(KU0081ETMsg.UPD_DTM, sysdate);
		msgKU0081.set(KU0081ETMsg.UPD_OPEACNT, operatorID);
		msgKU0081.set(KU0081ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);

		JKUejbKU0081SecProc ku0081secproc = new JKUejbKU0081SecProc();
		
		ku0081secproc.create(msgKU0081);
		

		//申込明細＿工事案件：登録処理
		CAANMsg msgKU0091 = new CAANMsg(KU0091ETMsg.class.getName());
		
		msgKU0091.set(KU0091ETMsg.MSKM_DTL_NO, inCBSMsg.getString(EKU0041C020CBSMsg.MSKM_DTL_NO));
		msgKU0091.set(KU0091ETMsg.KOJIAK_NO, kojiakNo);
		msgKU0091.set(KU0091ETMsg.MSKM_DTL_KOJIAK_TSTAYMD, opedate);
		msgKU0091.set(KU0091ETMsg.MSKM_DTL_KOJIAK_TENDYMD, JKUStrConst.MAX_YMD);
		msgKU0091.set(KU0091ETMsg.ADD_DTM, sysdate);
		msgKU0091.set(KU0091ETMsg.ADD_OPEACNT, operatorID);
		msgKU0091.set(KU0091ETMsg.UPD_DTM, sysdate);
		msgKU0091.set(KU0091ETMsg.UPD_OPEACNT, operatorID);
		msgKU0091.set(KU0091ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		JKUejbKU0091SecProc ku0091secproc = new JKUejbKU0091SecProc();
		if(!ku0091secproc.isExistsPrimaryKey(msgKU0091, true))
		{
			ku0091secproc.create(msgKU0091);
		}

		return true;
	}
	
	
	
	/**
	 * 回線撤去（撤去サービスなし）
	 * @param inCBSMsg サービスインターフェイス入力電文
	 * @param inContext 
	 * @param kojiakInfo 工事案件情報
	 * @return boolean True 正常/False エラー
	 * @exception CAANException
	 */
	private boolean createTekkyoWithOutSvc(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(JPCModelCommon.isNullChk(inCBSMsg, inContext, kojiakNo))
		{
			inCBSMsg.set(EKU0041C020CBSMsg.MSKMSHO_NO_ERR, "EI");
			inCBSMsg.set(EKU0041C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}
		
		inCBSMsg.set(EKU0041C020CBSMsg.KOJIAK_NO, kojiakNo);
		
		//工事案件種別の取得
	    // ANK-4315-00-00 MOD START
//		String kojiakSbt = JKUModelCommon.getKojiakSbtCd(
//				inCBSMsg.getString(EKU0041C020CBSMsg.KOJI_UK_CD), 
//				inCBSMsg.getString(EKU0041C020CBSMsg.KOJI_UK_DTAIL_CD), 
//				null, 
//				"0", 
//				inCBSMsg.getString(EKU0041C020CBSMsg.PRC_GRP_CD), 
//				null, 
//				null);
		String kojiakSbt = JKUModelCommon.getKojiakSbtCd(
				inCBSMsg.getString(EKU0041C020CBSMsg.KOJI_UK_CD), 
				inCBSMsg.getString(EKU0041C020CBSMsg.KOJI_UK_DTAIL_CD), 
				null, 
				"0", 
				inCBSMsg.getString(EKU0041C020CBSMsg.PRC_GRP_CD), 
				null, 
				null,
				null
				);
			// ANK-4315-00-00 MOD END
		
		if(JPCModelCommon.isNullChk(inCBSMsg, inContext, kojiakSbt))
		{
			inCBSMsg.set(EKU0041C020CBSMsg.MSKMSHO_NO_ERR, "EI");
			inCBSMsg.set(EKU0041C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}
		
		inCBSMsg.set(EKU0041C020CBSMsg.KOJIAK_SBT_CD, kojiakSbt);
		
		// 同時代表工事案件番号の取得
		String dojiDaihyoKojiakNo = JKUModelCommon.getSimRepKojiakNoNotFindByPk(
				inCBSMsg.getString(EKU0041C020CBSMsg.KOJIAK_SBT_CD), inCBSMsg.getString(EKU0041C020CBSMsg.PRC_GRP_CD)
				, null, null, null, inCBSMsg.getString(EKU0041C020CBSMsg.SVC_KEI_KAISEN_UCWK_NO));
		
		//運用日付
		String opedate = JKUModelCommon.getOpeDate(inCBSMsg, null);
		//システム日付（年月日時分秒）
		String sysdate = inCBSMsg.getString(EKU0041C020CBSMsg.OPERATEDATETIME);
		//オペレータID
		String operatorID = inCBSMsg.getString(EKU0041C020CBSMsg.OPERATORID);
		
		
		//工事案件：登録処理
		CAANMsg msgKU0011 = new CAANMsg(KU0011ETMsg.class.getName());
		
		msgKU0011.set(KU0011ETMsg.KOJIAK_NO, kojiakNo);
		msgKU0011.set(KU0011ETMsg.KOJIAK_STAT, JKUStrConst.CD00474_UK_ZM);
		msgKU0011.set(KU0011ETMsg.SYSID, inCBSMsg.getString(EKU0041C020CBSMsg.SYSID));
		msgKU0011.set(KU0011ETMsg.RNKI_SVC_KEI_NO, inCBSMsg.getString(EKU0041C020CBSMsg.SVC_KEI_NO));
		msgKU0011.set(KU0011ETMsg.OWNR_KEI_NO, kojiakInfo.getString(KU0011ETMsg.OWNR_KEI_NO));
		msgKU0011.set(KU0011ETMsg.SEIKY_KEI_NO, inCBSMsg.getString(EKU0041C020CBSMsg.SEIKY_KEI_NO));
		msgKU0011.set(KU0011ETMsg.KOJIAK_SBT_CD, kojiakSbt);
		msgKU0011.set(KU0011ETMsg.PRC_GRP_CD, inCBSMsg.getString(EKU0041C020CBSMsg.PRC_GRP_CD));
		msgKU0011.set(KU0011ETMsg.PCRS_CD, inCBSMsg.getString(EKU0041C020CBSMsg.PCRS_CD));
		msgKU0011.set(KU0011ETMsg.UPD_TRGT_KOJIAK_NO, kojiakInfo.getString(KU0011ETMsg.KOJIAK_NO));
		msgKU0011.set(KU0011ETMsg.MSKM_UK_YMD, opedate);
		msgKU0011.set(KU0011ETMsg.MSKMSHO_ARIV_YMD, opedate);
		msgKU0011.set(KU0011ETMsg.PLACE_NO, inCBSMsg.getString(EKU0041C020CBSMsg.PLACE_NO));
		msgKU0011.set(KU0011ETMsg.KOJI_KIBO_YMD, inCBSMsg.getString(EKU0041C020CBSMsg.KOJI_KIBO_YMD));
		
		// 工事案件種別コードが住所変更(撤去)の場合
		if(JKUStrConst.CD00577_AD_CHG_TEKKYO.equals(inCBSMsg.getString(EKU0041C020CBSMsg.KOJIAK_SBT_CD)))
		{
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_AD_CD, inCBSMsg.getString(EKU0041C020CBSMsg.TENTAKU_SAKI_AD_CD));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_PCD, inCBSMsg.getString(EKU0041C020CBSMsg.TENTAKU_SAKI_PCD));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_STATE_NM, inCBSMsg.getString(EKU0041C020CBSMsg.TENTAKU_SAKI_STATE_NM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_CITY_NM, inCBSMsg.getString(EKU0041C020CBSMsg.TENTAKU_SAKI_CITY_NM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_OAZTSU_NM, inCBSMsg.getString(EKU0041C020CBSMsg.TENTAKU_SAKI_OAZTSU_NM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_AZCHO_NM, inCBSMsg.getString(EKU0041C020CBSMsg.TENTAKU_SAKI_AZCHO_NM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_AD_BNCHIGO, inCBSMsg.getString(EKU0041C020CBSMsg.TENTAKU_SAKI_AD_BNCHIGO));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_ADRTTM, inCBSMsg.getString(EKU0041C020CBSMsg.TENTAKU_SAKI_ADRTTM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_ADRRM, inCBSMsg.getString(EKU0041C020CBSMsg.TENTAKU_SAKI_ADRRM));
			
			msgKU0011.set(KU0011ETMsg.TENTAKU_BF_AD_CD, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_AD_CD));
			msgKU0011.set(KU0011ETMsg.TENTAKU_BF_PCD, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_PCD));
			msgKU0011.set(KU0011ETMsg.TENTAKU_BF_STATE_NM, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_STATE_NM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_BF_CITY_NM, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_CITY_NM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_BF_OAZTSU_NM, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_OAZTSU_NM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_BF_AZCHO_NM, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_AZCHO_NM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_BF_AD_BNCHIGO, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_AD_BNCHIGO));
			msgKU0011.set(KU0011ETMsg.TENTAKU_BF_ADRTTM, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_ADRTTM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_BF_ADRRM, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_ADRRM));
		}
		else
		{
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_AD_CD, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_AD_CD));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_PCD, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_PCD));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_STATE_NM, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_STATE_NM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_CITY_NM, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_CITY_NM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_OAZTSU_NM, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_OAZTSU_NM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_AZCHO_NM, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_AZCHO_NM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_AD_BNCHIGO, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_AD_BNCHIGO));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_ADRTTM, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_ADRTTM));
			msgKU0011.set(KU0011ETMsg.TENTAKU_SAKI_ADRRM, inCBSMsg.getString(EKU0041C020CBSMsg.SETPLACE_ADRRM));
		}
		
		msgKU0011.set(KU0011ETMsg.MSKMSHA_NM, inCBSMsg.getString(EKU0041C020CBSMsg.MSKMSHA_NM));
		msgKU0011.set(KU0011ETMsg.CUST_NM, inCBSMsg.getString(EKU0041C020CBSMsg.CUST_NM));
		msgKU0011.set(KU0011ETMsg.CUST_KANA, inCBSMsg.getString(EKU0041C020CBSMsg.CUST_KANA));
		msgKU0011.set(KU0011ETMsg.CUST_HOME_TELNO, inCBSMsg.getString(EKU0041C020CBSMsg.CUST_HOME_TEL_NO));
		msgKU0011.set(KU0011ETMsg.CUST_KTAI_TELNO, inCBSMsg.getString(EKU0041C020CBSMsg.CUST_KTAI_TEL_NO));
		msgKU0011.set(KU0011ETMsg.CUST_RRKS_TELNO, inCBSMsg.getString(EKU0041C020CBSMsg.CUST_RRKS_TEL_NO));
		msgKU0011.set(KU0011ETMsg.RRKS_OFFC_NM, inCBSMsg.getString(EKU0041C020CBSMsg.RRKS_OFFC_NM));
		msgKU0011.set(KU0011ETMsg.KEISHA_AD_CD, inCBSMsg.getString(EKU0041C020CBSMsg.KEISHA_AD_CD));
		msgKU0011.set(KU0011ETMsg.KEISHA_PCD, inCBSMsg.getString(EKU0041C020CBSMsg.KEISHA_PCD));
		msgKU0011.set(KU0011ETMsg.KEISHA_STATE_NM, inCBSMsg.getString(EKU0041C020CBSMsg.KEISHA_STATE_NM));
		msgKU0011.set(KU0011ETMsg.KEISHA_CITY_NM, inCBSMsg.getString(EKU0041C020CBSMsg.KEISHA_CITY_NM));
		msgKU0011.set(KU0011ETMsg.KEISHA_OAZTSU_NM, inCBSMsg.getString(EKU0041C020CBSMsg.KEISHA_OAZTSU_NM));
		msgKU0011.set(KU0011ETMsg.KEISHA_AZCHO_NM, inCBSMsg.getString(EKU0041C020CBSMsg.KEISHA_AZCHO_NM));
		msgKU0011.set(KU0011ETMsg.KEISHA_AD_BNCHIGO, inCBSMsg.getString(EKU0041C020CBSMsg.KEISHA_AD_BNCHIGO));
		msgKU0011.set(KU0011ETMsg.KEISHA_ADRTTM, inCBSMsg.getString(EKU0041C020CBSMsg.KEISHA_ADRTTM));
		msgKU0011.set(KU0011ETMsg.KEISHA_ADRRM, inCBSMsg.getString(EKU0041C020CBSMsg.KEISHA_ADRRM));
		msgKU0011.set(KU0011ETMsg.KEISHA_AD_MAN_INPUT_FLG, inCBSMsg.getString(EKU0041C020CBSMsg.KEISHA_AD_MAN_INPUT_FLG));
		msgKU0011.set(KU0011ETMsg.KOJI_SAKI_AD_MI_FIX_FLG, inCBSMsg.getString(EKU0041C020CBSMsg.KOJI_SAKI_AD_MI_FIX_FLG));
		msgKU0011.set(KU0011ETMsg.LGTD, kojiakInfo.getString(KU0011ETMsg.LGTD));
		msgKU0011.set(KU0011ETMsg.LTTD, kojiakInfo.getString(KU0011ETMsg.LTTD));
		msgKU0011.set(KU0011ETMsg.XZAHYO_6, kojiakInfo.getString(KU0011ETMsg.XZAHYO_6));
		msgKU0011.set(KU0011ETMsg.YZAHYO_6, kojiakInfo.getString(KU0011ETMsg.YZAHYO_6));
		msgKU0011.set(KU0011ETMsg.XZAHYO_5, kojiakInfo.getString(KU0011ETMsg.XZAHYO_5));
		msgKU0011.set(KU0011ETMsg.YZAHYO_5, kojiakInfo.getString(KU0011ETMsg.YZAHYO_5));
		msgKU0011.set(KU0011ETMsg.ZAHYO_HOSEI_UM, kojiakInfo.getString(KU0011ETMsg.ZAHYO_HOSEI_UM));
		msgKU0011.set(KU0011ETMsg.NYUKYO_FLR_CNT_CD, inCBSMsg.getString(EKU0041C020CBSMsg.NYUKYO_FLR_CNT_CD));
		msgKU0011.set(KU0011ETMsg.KCKU_FLR_CNT_CD, inCBSMsg.getString(EKU0041C020CBSMsg.KCKU_FLR_CNT_CD));
		msgKU0011.set(KU0011ETMsg.DIRECTION_CD_1, inCBSMsg.getString(EKU0041C020CBSMsg.DIRECTION_CD_1));
		msgKU0011.set(KU0011ETMsg.DIRECTION_CD_2, inCBSMsg.getString(EKU0041C020CBSMsg.DIRECTION_CD_2));
		msgKU0011.set(KU0011ETMsg.DOJI_DAIHYO_KOJIAK_NO, dojiDaihyoKojiakNo);
		msgKU0011.set(KU0011ETMsg.TEL_RRK_KIBO_YMD, inCBSMsg.getString(EKU0041C020CBSMsg.TEL_RRK_KIBO_YMD));
		msgKU0011.set(KU0011ETMsg.TEL_RRK_KIBO_TIME_CD, inCBSMsg.getString(EKU0041C020CBSMsg.TEL_RRK_KIBO_TIME_CD));
		msgKU0011.set(KU0011ETMsg.TAKCHO_KIBO_APO_KIGEN_YMD, inCBSMsg.getString(EKU0041C020CBSMsg.TAKCHO_KIBO_APO_KIGEN_YMD));
		msgKU0011.set(KU0011ETMsg.TNKJ_KIBO_APO_KIGEN_YMD, inCBSMsg.getString(EKU0041C020CBSMsg.TNKJ_KIBO_APO_KIGEN_YMD));
		msgKU0011.set(KU0011ETMsg.KOJI_APO_RRKS_SHITEI_CD, inCBSMsg.getString(EKU0041C020CBSMsg.KOJI_APO_RRKS_SHITEI_CD));
		msgKU0011.set(KU0011ETMsg.KOJI_APO_RRKS_TELNO, inCBSMsg.getString(EKU0041C020CBSMsg.KOJI_APO_RRKS_TELNO));
		msgKU0011.set(KU0011ETMsg.RRK_WAY_CD, inCBSMsg.getString(EKU0041C020CBSMsg.RRK_WAY_CD));
		msgKU0011.set(KU0011ETMsg.RRK_WAY_HOKI, inCBSMsg.getString(EKU0041C020CBSMsg.RRK_WAY_HOKI));
		msgKU0011.set(KU0011ETMsg.KOJI_UK_OPTNTY_IDO_DIV, inCBSMsg.getString(EKU0041C020CBSMsg.KOJI_UK_OPTNTY_IDO_DIV));
		msgKU0011.set(KU0011ETMsg.KOJI_UK_OPTNTY_IDO_DTM, inCBSMsg.getString(EKU0041C020CBSMsg.KOJI_UK_OPTNTY_IDO_DTM));
		msgKU0011.set(KU0011ETMsg.KOJIAK_UK_USER_ID, inCBSMsg.getString(EKU0041C020CBSMsg.OPERATORID));
		msgKU0011.set(KU0011ETMsg.KOJIAK_RRK_JIKO, inCBSMsg.getString(EKU0041C020CBSMsg.KOJIAK_BIKO));
		msgKU0011.set(KU0011ETMsg.KOJIAK_BIKO_1, inCBSMsg.getString(EKU0041C020CBSMsg.KOJIAK_BIKO_1));
		msgKU0011.set(KU0011ETMsg.KOJIAK_BIKO_2, inCBSMsg.getString(EKU0041C020CBSMsg.KOJIAK_BIKO_2));
		msgKU0011.set(KU0011ETMsg.KEPCO_BUSIOFFICE_CD, kojiakInfo.getString(KU0011ETMsg.KEPCO_BUSIOFFICE_CD));
		
// ANK-3136-00-00 ADD START
		// 工事案件種別コードが撤去(解約)の場合
		if(JKUStrConst.CD00577_TEKKYO_DSL.equals(inCBSMsg.getString(EKU0041C020CBSMsg.KOJIAK_SBT_CD)))
		{
			msgKU0011.set(KU0011ETMsg.EQUIP_RYUYO_UM, inCBSMsg.getString(EKU0041C020CBSMsg.EQUIP_RYUYO_UM));
// IT2-2018-0000064 ADD START
			msgKU0011.set(KU0011ETMsg.VONU_RYUYO_UM, inCBSMsg.getString(EKU0041C020CBSMsg.VONU_RYUYO_UM));
// IT2-2018-0000064 ADD END
			msgKU0011.set(KU0011ETMsg.SBRY_KJ_FIN_KIBOYMD, inCBSMsg.getString(EKU0041C020CBSMsg.SBRY_KJ_FIN_KIBOYMD));
		}
			
		msgKU0011.set(KU0011ETMsg.TSYRN_KJ_RRKS_NM, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_KJ_RRKS_NM));
		msgKU0011.set(KU0011ETMsg.TSYRN_KJ_RRKS_TLN, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_KJ_RRKS_TLN));
		msgKU0011.set(KU0011ETMsg.TSYRN_TAKCHO_JI_RRKS_NM, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_TAKCHO_JI_RRKS_NM));
		msgKU0011.set(KU0011ETMsg.TSYRN_TAKCHO_JI_RRKS_TLN, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_TAKCHO_JI_RRKS_TLN));
		msgKU0011.set(KU0011ETMsg.TSYRN_RRK_KIBO_DATE, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_RRK_KIBO_DATE));
		msgKU0011.set(KU0011ETMsg.TSYRN_KOJI_HI, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_KOJI_HI));
		msgKU0011.set(KU0011ETMsg.TSYRN_TAKCHO_YH, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_TAKCHO_YH));
		msgKU0011.set(KU0011ETMsg.TSYRN_SDAKS_YH, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_SDAKS_YH));
		msgKU0011.set(KU0011ETMsg.TSYRN_TACHIAISHA_NM, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_TACHIAISHA_NM));
		msgKU0011.set(KU0011ETMsg.TSYRN_HKKS_SISAK_YH, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_HKKS_SISAK_YH));
		msgKU0011.set(KU0011ETMsg.TSYRN_TTK_JI_NSANK_YH, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_TTK_JI_NSANK_YH));
		msgKU0011.set(KU0011ETMsg.TSYRN_MAP_UM, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_MAP_UM));
		msgKU0011.set(KU0011ETMsg.TSYRN_DOJI_KOJI_INF, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_DOJI_KOJI_INF));
		msgKU0011.set(KU0011ETMsg.TSYRN_KZN_KEI_INF, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_KZN_KEI_INF));
		msgKU0011.set(KU0011ETMsg.TSYRN_HBI_KAISHOU_YMD, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_HBI_KAISHOU_YMD));
		msgKU0011.set(KU0011ETMsg.TSYRN_CAMPAIGN_INF, inCBSMsg.getString(EKU0041C020CBSMsg.TSYRN_CAMPAIGN_INF));
// ANK-3136-00-00 ADD END
		
		// フラグ初期化処理
		// 最新基本工事フラグ,「最新基本工事でない」を設定
		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, sysdate);
		msgKU0011.set(KU0011ETMsg.ADD_OPEACNT, operatorID);
		msgKU0011.set(KU0011ETMsg.UPD_DTM, sysdate);
		msgKU0011.set(KU0011ETMsg.UPD_OPEACNT, operatorID);
		msgKU0011.set(KU0011ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
// ANK-4038-00-00 ADD START
		// サービス契約回線内訳情報の取得
		CAANMsg svkeiKaisenUwMsg = JKUModelCommon.getSvkeiKaisenUwInfo(inCBSMsg.getString(EKU0041C020CBSMsg.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
		
		JKUejbKU0011SecProc ku0011secproc = new JKUejbKU0011SecProc();
		
		ku0011secproc.create(msgKU0011);
		
		// 同時代表工事案件の更新処理
		if(!JKUModelCommon.updateDojiDaihyoKojiak(kojiakNo, dojiDaihyoKojiakNo, inCBSMsg.getString(EKU0041C020CBSMsg.OPERATEDATETIME), 
				inCBSMsg.getString(EKU0041C020CBSMsg.OPERATORID), inContext, true))
		{
			// 申込書番号エラーを設定
			inCBSMsg.set(EKU0041C020CBSMsg.MSKMSHO_NO_ERR, "EK");
			// ステータスを設定
			inCBSMsg.set(EKU0041C020CBSMsg.STATUS, StatusCodes.RELATION_ERR);
			return false;
		}
		
		//工事案件対象宅内機器：登録処理
		// 工事案件種別
		String kojiakSbtCd = inCBSMsg.getString(EKU0041C020CBSMsg.KOJIAK_SBT_CD);
		// 料金グループコード
		String prcGrpCd = inCBSMsg.getString(EKU0041C020CBSMsg.PRC_GRP_CD);
		
		JKUModelCommon.updTaknkiki(kojiakNo, inCBSMsg, null, kojiakSbtCd, prcGrpCd, false);
		
		
		//工事案件＜eo光テレビ回線＞：登録処理
		CAANMsg msgKU0041 = new CAANMsg(KU0041ETMsg.class.getName());
		
		msgKU0041.set(KU0041ETMsg.KOJIAK_NO, kojiakNo);
		msgKU0041.set(KU0041ETMsg.KOJI_SCOPE_CD, inCBSMsg.getString(EKU0041C020CBSMsg.KOJI_SCOPE_CD));
		
		JKUCheckSTBCount stbcnt = JKUModelCommon.checkSTBCount(kojiakNo, kojiakSbt);

		msgKU0041.set(KU0041ETMsg.STB_KEI_CNT, stbcnt.getStbNewKeiCnt());
		msgKU0041.set(KU0041ETMsg.DMPS_ANKEN_NO, inCBSMsg.getString(EKU0041C020CBSMsg.DMPS_ANKEN_NO));
		msgKU0041.set(KU0041ETMsg.DMPSANK_SBT_CD, inCBSMsg.getString(EKU0041C020CBSMsg.DMPSANK_SBT_CD));
		msgKU0041.set(KU0041ETMsg.DSL_KIBO_YMD, inCBSMsg.getString(EKU0041C020CBSMsg.DSL_KIBO_YMD));
		msgKU0041.set(KU0041ETMsg.ISETSU_CD, inCBSMsg.getString(EKU0041C020CBSMsg.ISETSU_CD));
		msgKU0041.set(KU0041ETMsg.ADD_DTM, sysdate);
		msgKU0041.set(KU0041ETMsg.ADD_OPEACNT, operatorID);
		msgKU0041.set(KU0041ETMsg.UPD_DTM, sysdate);
		msgKU0041.set(KU0041ETMsg.UPD_OPEACNT, operatorID);
		msgKU0041.set(KU0041ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		JKUejbKU0041SecProc ku0041secproc = new JKUejbKU0041SecProc();
		
		ku0041secproc.create(msgKU0041);
		
		//サービス契約＿工事案件：登録処理
		CAANMsg msgKU0081 = new CAANMsg(KU0081ETMsg.class.getName());
		
		msgKU0081.set(KU0081ETMsg.SVC_KEI_NO, inCBSMsg.getString(EKU0041C020CBSMsg.SVC_KEI_NO));
		msgKU0081.set(KU0081ETMsg.KOJIAK_NO, kojiakNo);
		msgKU0081.set(KU0081ETMsg.SVC_CD, inCBSMsg.getString(EKU0041C020CBSMsg.SVC_CD));
		msgKU0081.set(KU0081ETMsg.SYSID, inCBSMsg.getString(EKU0041C020CBSMsg.SYSID));
		msgKU0081.set(KU0081ETMsg.SVC_KEI_KAISEN_UCWK_NO, inCBSMsg.getString(EKU0041C020CBSMsg.SVC_KEI_KAISEN_UCWK_NO));
		msgKU0081.set(KU0081ETMsg.SVKEI_KOJIAK_TSTAYMD, opedate);
		
		msgKU0081.set(KU0081ETMsg.SVKEI_KOJIAK_TENDYMD, opedate);
		
		msgKU0081.set(KU0081ETMsg.ADD_DTM, sysdate);
		msgKU0081.set(KU0081ETMsg.ADD_OPEACNT, operatorID);
		msgKU0081.set(KU0081ETMsg.UPD_DTM, sysdate);
		msgKU0081.set(KU0081ETMsg.UPD_OPEACNT, operatorID);
		msgKU0081.set(KU0081ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);

		JKUejbKU0081SecProc ku0081secproc = new JKUejbKU0081SecProc();
		
		ku0081secproc.create(msgKU0081);
		

		//申込明細＿工事案件：登録処理
		CAANMsg msgKU0091 = new CAANMsg(KU0091ETMsg.class.getName());
		
		msgKU0091.set(KU0091ETMsg.MSKM_DTL_NO, inCBSMsg.getString(EKU0041C020CBSMsg.MSKM_DTL_NO));
		msgKU0091.set(KU0091ETMsg.KOJIAK_NO, kojiakNo);
		msgKU0091.set(KU0091ETMsg.MSKM_DTL_KOJIAK_TSTAYMD, opedate);
		msgKU0091.set(KU0091ETMsg.MSKM_DTL_KOJIAK_TENDYMD, JKUStrConst.MAX_YMD);
		msgKU0091.set(KU0091ETMsg.ADD_DTM, sysdate);
		msgKU0091.set(KU0091ETMsg.ADD_OPEACNT, operatorID);
		msgKU0091.set(KU0091ETMsg.UPD_DTM, sysdate);
		msgKU0091.set(KU0091ETMsg.UPD_OPEACNT, operatorID);
		msgKU0091.set(KU0091ETMsg.MK_FLG, JKUStrConst.MK_FLG_YUKO);
		
		JKUejbKU0091SecProc ku0091secproc = new JKUejbKU0091SecProc();
		if(!ku0091secproc.isExistsPrimaryKey(msgKU0091, true))
		{
			ku0091secproc.create(msgKU0091);
		}

		return true;
		
		
	}
	
	
	/**
	 * 工事案件情報の一覧に最新基本工事があるかのチェックを行う
	 * @param kojiakMsgList
	 * @return boolean True 存在する/False 存在しない
	 */
	private boolean getRcntKihonKojiakChk(CAANMsg[] kojiakMsgList)
	{

		for(CAANMsg kojiakMsg : kojiakMsgList)
		{
			if(JKUStrConst.CD00882_RCNT_KIHON_KOJI.equals(kojiakMsg.getString(KU0011ETMsg.RCNT_KIHON_KOJI_FLG)))
			{
				return true;
			}
		}

		return false;
	}
	
	/**
	 * String[]への存在チェック
	 * @param matrix
	 * @param str
	 * @return boolean
	 */
	private static boolean chkMatrix(String[] matrix, String str)
	{
		for(int i = 0; i < matrix.length; i++)
		{
			if(matrix[i].equals(str))
			{
				return true;
			}
		}
		return false;
	}	
}
