/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名			：JBSbatKUEbisMksyichiAkiIfAdd
*	ソースファイル名		：JBSbatKUEbisMksyichiAkiIfAdd.java
*	作成者			：　GDC)J.Hortilano
*	作成日			：2021年09月10日
*＜機能概要＞
*　 eBIS申込収容位置空き情報データファイルをもとに申込収容位置空き情報スキーマの登録を行う。
*＜修正履歴＞
*	バージョン		修正日		修正者			修正内容
*  v56.00.00    2021/09/02  GDC)J.Hortilano     【ANK-4038-00-00】光ローゼット化対応
*
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;
import java.util.concurrent.TimeUnit;

import eo.business.common.JACbatDebugLogUtil;
import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.util.file.JBSbatKUIFE078;
import eo.business.util.table.JBSbatKU_T_MKSYICHI_AKI_IF;
import eo.business.util.table.JBSbatKU_T_SVKEI_KOJIAK;
import eo.common.constant.JACStrConst;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.util.JBSbatCheckUtil;

/**
 * eBIS申込収容位置空き情報登録
 * @author j.hortilano
 *
 */
public class JBSbatKUEbisMksyichiAkiIfAdd extends JBSbatBusinessService {
	
	/** サービス契約_工事案件 */
	private static final String D_TBL_NAME_KU_T_SVKEI_KOJIAK = "KU_T_SVKEI_KOJIAK";
	
	/** コード名称管理 */
	private static final String D_TBL_NAME_ZM_M_CD_NM_KANRI = "ZM_M_CD_NM_KANRI";
	
	/** 申込収容位置空き情報 */
	private static final String D_TBL_NAME_KU_T_MKSYICHI_AKI_IF = "KU_T_MKSYICHI_AKI_IF";
	
	/** SQL定義キー(KU_SELECT_001)*/
	private static final String ZM_M_CD_NM_KANRI_KU_SELECT_001 = "KU_SELECT_001";
	
	/** SQL定義キー(KU_SELECT_010)*/
	private static final String KU_T_SVKEI_KOJIAK_KU_SELECT_010 = "KU_SELECT_010";
	
	/** テーブルアクセスクラス(コード名称管理)*/
	private JBSbatSQLAccess db_ZM_M_CD_NM_KANRI = null;
	
	/** テーブルアクセスクラス(サービス契約_工事案件)*/
	private JBSbatSQLAccess db_KU_T_SVKEI_KOJIAK = null;
	
	/** テーブルアクセスクラス(申込収容位置空き情報)*/
	private JBSbatSQLAccess db_KU_T_MKSYICHI_AKI_IF = null;
	
	
	/** 必須チェック：EKUB0700TW(警告) */
	private static final String MESS_ID_EKUB0700TW = "EKUB0700TW";
	
	/** 桁数チェック：EKUB0710TW(警告) */
	private static final String MESS_ID_EKUB0710TW = "EKUB0710TW";
	
	/** 属性チェック：EKUB0690TW(警告) */
	private static final String MESS_ID_EKUB0690TW = "EKUB0690TW";
	
	/** 存在チェック１：EKUB0650KW(警告) */
	private static final String MESS_ID_EKUB0650KW = "EKUB0650KW";
	
	/** コード定義存在チェック：EKUB0660TW(警告) */
	private static final String MESS_ID_EKUB0660TW = "EKUB0660TW";
	
	/** エラーレコード出力用：EKKB1270CW(警告) */
	private static final String MESS_ID_EKKB1270CW = "EKKB1270CW";
	
	/** 申込番号 */
	private static final String MESS_MSKM_NO = "申込番号";
	
	/** 親機種別コード */
	private static final String MESS_OYA_KIKI_SBT_CD = "親機種別コード";
	
	/** CT番号 */
	private static final String MESS_CT_NO = "CT番号";
	
	/** CT空き有無 */
	private static final String MESS_CT_AKI_UM = "CT空き有無";
	
//	/** サービス契約回線内訳番号 */
//	private static final String MESS_SVC_KEI_KAISEN_UCWK_NO = "サービス契約回線内訳番号";
	
	
	/** 親機種別コード */
	private static final String CODE_TYPE_CD01774 = "CD01774";
	
	/** CT空き有無 */
	private static final String CODE_TYPE_CD00002 = "CD00002";
	
	
	private ArrayList<String> svcKeiKaisenUcwkNoList = new ArrayList<String>();
	
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception 
	{
		
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		
		super.logPrint.printDebugLog("[S][initial]");
		
		// DBアクセスクラスを生成します
		db_ZM_M_CD_NM_KANRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_CD_NM_KANRI);
		db_KU_T_SVKEI_KOJIAK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_SVKEI_KOJIAK);
		db_KU_T_MKSYICHI_AKI_IF = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_MKSYICHI_AKI_IF);
		
		super.logPrint.printDebugLog("[E][initial]");
	}
	
	
	/** 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		
		String systemDate = JCCBatCommon.getSysDateTimeStamp();
		
		super.logPrint.printDebugLog("[S][execute] [systemDate=" + systemDate + "]");
		
		// 出力電文を生成する。
		JBSbatOutputItem outputItem = new JBSbatOutputItem();
		
		String mskmNo = (String)inMap.get(JBSbatKUIFE078.MSKM_NO);
		String oyaKikiSbtCd = (String)inMap.get(JBSbatKUIFE078.OYA_KIKI_SBT_CD);
		String ctNo = (String)inMap.get(JBSbatKUIFE078.CT_NO);
		String ctAkiUm = (String)inMap.get(JBSbatKUIFE078.CT_AKI_UM);
		
		// 1.主処理(アプリ)
		// (a-1)単項目チェック
		if(!singleItemCheck(mskmNo, oyaKikiSbtCd, ctNo, ctAkiUm))
		{
			super.logPrint.printBusinessErrorLog(MESS_ID_EKKB1270CW, new String[]{getErrRecordString(inMap)});
			super.commonItem.setErrFlg(true);
			return new JBSbatOutputItem();
		}
		
		JBSbatCommonDBInterface outKU_T_SVKEI_KOJIAK_KU_SELECT_010DbMap = null;
		
		// ※1 SQL定義（KU_SELECT_010）を実行して、サービス契約_工事案件のサービス契約回線内訳番号を取得する。
		executeKU_T_SVKEI_KOJIAK_KU_SELECT_010(mskmNo);
		outKU_T_SVKEI_KOJIAK_KU_SELECT_010DbMap = db_KU_T_SVKEI_KOJIAK.selectNext();
		
		String svcKeiKaisenUcwkNo = "";
		
		if (null != outKU_T_SVKEI_KOJIAK_KU_SELECT_010DbMap)
		{
			svcKeiKaisenUcwkNo = outKU_T_SVKEI_KOJIAK_KU_SELECT_010DbMap.getString(JBSbatKU_T_SVKEI_KOJIAK.SVC_KEI_KAISEN_UCWK_NO);
		}
		else
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][singleCheckKUIFE078_SVC_KEI_KAISEN_UCWK_NO][存在チェック１]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][singleCheckKUIFE078_SVC_KEI_KAISEN_UCWK_NO]");
//			throw new JBSbatBusinessException(MESS_ID_EKUB0650KW, new String[]{MESS_SVC_KEI_KAISEN_UCWK_NO, "サービス契約_工事案件", svcKeiKaisenUcwkNo});
			super.logPrint.printBusinessErrorLog(MESS_ID_EKUB0650KW, new String[]{"サービス契約_工事案件", "工事案件番号", mskmNo});
			super.logPrint.printBusinessErrorLog(MESS_ID_EKKB1270CW, new String[]{getErrRecordString(inMap)});
			super.commonItem.setErrFlg(true);
			return new JBSbatOutputItem();
		}
		
		
		// (a-2)関連チェック
		// 親機種別コード
		executeZM_M_CD_NM_KANRI_KU_SELECT_001(CODE_TYPE_CD01774, oyaKikiSbtCd);
		JBSbatCommonDBInterface outCD01774DbMap = db_ZM_M_CD_NM_KANRI.selectNext();
		
		if (null == outCD01774DbMap || outCD01774DbMap.getMapSize() <= 0)
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][singleCheckKUIFE078_OYA_KIKI_SBT_CD][コード定義存在チェック]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][singleCheckKUIFE078_OYA_KIKI_SBT_CD]");
//			throw new JBSbatBusinessException(MESS_ID_EKUB0660TW, new String[]{MESS_OYA_KIKI_SBT_CD, oyaKikiSbtCd});
			super.logPrint.printBusinessErrorLog(MESS_ID_EKUB0660TW, new String[]{MESS_OYA_KIKI_SBT_CD, oyaKikiSbtCd});
			super.logPrint.printBusinessErrorLog(MESS_ID_EKKB1270CW, new String[]{getErrRecordString(inMap)});
			super.commonItem.setErrFlg(true);
			return new JBSbatOutputItem();
		}
		
		executeZM_M_CD_NM_KANRI_KU_SELECT_001(CODE_TYPE_CD00002, ctAkiUm);
		JBSbatCommonDBInterface outCD00002DbMap = db_ZM_M_CD_NM_KANRI.selectNext();
		
		// CT空き有無
		if (null == outCD00002DbMap || outCD00002DbMap.getMapSize() <= 0)
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][singleCheckKUIFE078_CT_AKI_UM][コード定義存在チェック]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][singleCheckKUIFE078_CT_AKI_UM]");
//			throw new JBSbatBusinessException(MESS_ID_EKUB0660TW, new String[]{MESS_CT_AKI_UM, ctAkiUm});
			super.logPrint.printBusinessErrorLog(MESS_ID_EKUB0660TW, new String[]{MESS_CT_AKI_UM, ctAkiUm});
			super.logPrint.printBusinessErrorLog(MESS_ID_EKKB1270CW, new String[]{getErrRecordString(inMap)});
			super.commonItem.setErrFlg(true);
			return new JBSbatOutputItem();
		}
		
		
		if (svcKeiKaisenUcwkNoList.contains(svcKeiKaisenUcwkNo))
		{
			TimeUnit.SECONDS.sleep(1);
			systemDate = JCCBatCommon.getSysDateTimeStamp();
		}
		
		
		// (c).上記(a)のチェックでエラーが発生しない場合、申込収容位置空き情報スキーマの登録を行う。
		executeKU_T_MKSYICHI_AKI_IF_INSERT_byPK(svcKeiKaisenUcwkNo, systemDate, mskmNo, oyaKikiSbtCd, ctNo, ctAkiUm);
		
		svcKeiKaisenUcwkNoList.add(svcKeiKaisenUcwkNo);
		
		super.logPrint.printDebugLog("[E][execute]");
		
		return outputItem;
	}


	private String getErrRecordString(JBSbatServiceInterfaceMap inMap)
			throws Exception {
		StringBuffer buf = new StringBuffer();
		buf.append("エラーレコード：");
		buf.append("\"" + inMap.getString(JBSbatKUIFE078.MSKM_NO) + "\",");
		buf.append("\"" + inMap.getString(JBSbatKUIFE078.OYA_KIKI_SBT_CD) + "\",");
		buf.append("\"" + inMap.getString(JBSbatKUIFE078.CT_NO) + "\",");
		buf.append("\"" + inMap.getString(JBSbatKUIFE078.CT_AKI_UM) + "\"");
		String inputRecord = buf.toString();
		return inputRecord;
	}
	
	/**
	 * 業務サービス終了処理
	 * @throws Exception 同一サービス契約回線内訳番号が存在する場合、1秒後に登録処理を実行する。
	 */
	public void terminal() throws Exception 
	{	
		super.logPrint.printDebugLog("[S][terminal]");
		
		// DBアクセスクラスをクローズします
		if (db_ZM_M_CD_NM_KANRI != null)
		{
			db_ZM_M_CD_NM_KANRI.close();
		}
		
		if (db_KU_T_SVKEI_KOJIAK != null)
		{
			db_KU_T_SVKEI_KOJIAK.close();
		}
		
		if (db_KU_T_MKSYICHI_AKI_IF != null)
		{
			db_KU_T_MKSYICHI_AKI_IF.close();
		}
		
		super.logPrint.printDebugLog("[E][terminal]");
	}
	
	
	/**
	 * 単項目チェック
	 * @param mskmNo 申込番号
	 * @param oyaKikiSbtCd 親機種別コード
	 * @param ctNo CT番号
	 * @param ctAkiUm CT空き有無
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private boolean singleItemCheck(String mskmNo, String oyaKikiSbtCd, String ctNo, String ctAkiUm) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][singleItemCheck]");
		
		// 単項目チェックを行います
		String strValue = null;

		// 申込番号チェック
		strValue = mskmNo;
		
		// 必須チェック
		if(strValue == null || strValue.equals(JACStrConst.KARA_MOJI))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][singleCheckKUIFE078_MSKM_NO][" + MESS_MSKM_NO + "が空白・NULL]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][singleCheckKUIFE078_MSKM_NO]");
//			throw new JBSbatBusinessException(MESS_ID_EKUB0700TW, new String[]{MESS_MSKM_NO});
			super.logPrint.printBusinessErrorLog(MESS_ID_EKUB0700TW, new String[]{MESS_MSKM_NO});
			return false;
		}
		// 桁数チェック
		if(!strValue.equals(JACStrConst.KARA_MOJI) && strValue.length() != 10)
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][singleCheckKUIFE078_MSKM_NO][" + MESS_MSKM_NO + "≠空文字　かつ　" + MESS_MSKM_NO + "の桁数≠10]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][singleCheckKUIFE078_MSKM_NO]");
			//throw new JBSbatBusinessException(MESS_ID_EKUB0710TW, new String[]{MESS_MSKM_NO, strValue});
			super.logPrint.printBusinessErrorLog(MESS_ID_EKUB0710TW, new String[]{MESS_MSKM_NO, strValue});
			return false;
		}
		// 属性チェック
		if(!strValue.equals(JACStrConst.KARA_MOJI) && !JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][singleCheckKUIFE078_MSKM_NO][" + MESS_MSKM_NO + "≠空文字　かつ　" + MESS_MSKM_NO + "≠半角英数字１]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][singleCheckKUIFE078_MSKM_NO]");
//			throw new JBSbatBusinessException(MESS_ID_EKUB0690TW, new String[]{MESS_MSKM_NO, strValue});
			super.logPrint.printBusinessErrorLog(MESS_ID_EKUB0690TW, new String[]{MESS_MSKM_NO, strValue});
			return false;
		}
		
		
		// 親機種別コードチェック
		strValue = oyaKikiSbtCd;
		
		// 必須チェック
		if(strValue == null || strValue.equals(JACStrConst.KARA_MOJI))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][singleCheckKUIFE078_OYA_KIKI_SBT_CD][" + MESS_OYA_KIKI_SBT_CD + "が空白・NULL]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][singleCheckKUIFE078_OYA_KIKI_SBT_CD]");
//			throw new JBSbatBusinessException(MESS_ID_EKUB0700TW, new String[]{MESS_OYA_KIKI_SBT_CD});
			super.logPrint.printBusinessErrorLog(MESS_ID_EKUB0700TW, new String[]{MESS_OYA_KIKI_SBT_CD});
			return false;
		}
		// 桁数チェック
		if(!strValue.equals(JACStrConst.KARA_MOJI) && strValue.length() != 2)
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][singleCheckKUIFE078_OYA_KIKI_SBT_CD][" + MESS_OYA_KIKI_SBT_CD + "≠空文字　かつ　" + MESS_OYA_KIKI_SBT_CD + "の桁数≠2]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][singleCheckKUIFE078_OYA_KIKI_SBT_CD]");
//			throw new JBSbatBusinessException(MESS_ID_EKUB0710TW, new String[]{MESS_OYA_KIKI_SBT_CD, strValue});
			super.logPrint.printBusinessErrorLog(MESS_ID_EKUB0710TW, new String[]{MESS_OYA_KIKI_SBT_CD, strValue});
			return false;
		}
		// 属性チェック
		if(!strValue.equals(JACStrConst.KARA_MOJI) && !JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][singleCheckKUIFE078_OYA_KIKI_SBT_CD][" + MESS_OYA_KIKI_SBT_CD + "≠空文字　かつ　" + MESS_OYA_KIKI_SBT_CD + "≠半角英数字１]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][singleCheckKUIFE078_OYA_KIKI_SBT_CD]");
//			throw new JBSbatBusinessException(MESS_ID_EKUB0690TW, new String[]{MESS_OYA_KIKI_SBT_CD, strValue});
			super.logPrint.printBusinessErrorLog(MESS_ID_EKUB0690TW, new String[]{MESS_OYA_KIKI_SBT_CD, strValue});
			return false;
		}
		
		
		// CT番号チェック
		strValue = ctNo;
		
		// 必須チェック
		if(strValue == null || strValue.equals(JACStrConst.KARA_MOJI))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][singleCheckKUIFE078_CT_NO][" + MESS_CT_NO + "が空白・NULL]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][singleCheckKUIFE078_CT_NO]");
//			throw new JBSbatBusinessException(MESS_ID_EKUB0700TW, new String[]{MESS_CT_NO});
			super.logPrint.printBusinessErrorLog(MESS_ID_EKUB0700TW, new String[]{MESS_CT_NO});
			return false;
		}
		// 桁数チェック
		if(!strValue.equals(JACStrConst.KARA_MOJI) && strValue.length() > 2)
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][singleCheckKUIFE078_CT_NO][" + MESS_CT_NO + "≠空文字　かつ　" + MESS_CT_NO + "の桁数≠3]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][singleCheckKUIFE078_CT_NO]");
//			throw new JBSbatBusinessException(MESS_ID_EKUB0710TW, new String[]{MESS_CT_NO, strValue});
			super.logPrint.printBusinessErrorLog(MESS_ID_EKUB0710TW, new String[]{MESS_CT_NO, strValue});
			return false;
		}
		// 属性チェック
		if(!strValue.equals(JACStrConst.KARA_MOJI) && !JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][singleCheckKUIFE078_CT_NO][" + MESS_CT_NO + "≠空文字　かつ　" + MESS_CT_NO + "≠半角英数字１]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][singleCheckKUIFE078_CT_NO]");
//			throw new JBSbatBusinessException(MESS_ID_EKUB0690TW, new String[]{MESS_CT_NO, strValue});
			super.logPrint.printBusinessErrorLog(MESS_ID_EKUB0690TW, new String[]{MESS_CT_NO, strValue});
			return false;
		}
		
		
		// CT空き有無チェック
		strValue = ctAkiUm;
		
		// 必須チェック
		if(strValue == null || strValue.equals(JACStrConst.KARA_MOJI))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][singleCheckKUIFE078_CT_AKI_UM][" + MESS_CT_AKI_UM + "が空白・NULL]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][singleCheckKUIFE078_CT_AKI_UM]");
//			throw new JBSbatBusinessException(MESS_ID_EKUB0700TW, new String[]{MESS_CT_AKI_UM});
			super.logPrint.printBusinessErrorLog(MESS_ID_EKUB0700TW, new String[]{MESS_CT_AKI_UM});
			return false;
		}
		// 桁数チェック
		if(!strValue.equals(JACStrConst.KARA_MOJI) && strValue.length() != 1)
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][singleCheckKUIFE078_CT_AKI_UM][" + MESS_CT_AKI_UM + "≠空文字　かつ　" + MESS_CT_AKI_UM + "の桁数≠1]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][singleCheckKUIFE078_CT_AKI_UM]");
//			throw new JBSbatBusinessException(MESS_ID_EKUB0710TW, new String[]{MESS_CT_AKI_UM, strValue});
			super.logPrint.printBusinessErrorLog(MESS_ID_EKUB0710TW, new String[]{MESS_CT_AKI_UM, strValue});
			return false;
		}
		// 属性チェック
		if(!strValue.equals(JACStrConst.KARA_MOJI) && !JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][singleCheckKUIFE078_CT_AKI_UM][" + MESS_CT_AKI_UM + "≠空文字　かつ　" + MESS_CT_AKI_UM + "≠半角英数字１]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][singleCheckKUIFE078_CT_AKI_UM]");
//			throw new JBSbatBusinessException(MESS_ID_EKUB0690TW, new String[]{MESS_CT_AKI_UM, strValue});
			super.logPrint.printBusinessErrorLog(MESS_ID_EKUB0690TW, new String[]{MESS_CT_AKI_UM, strValue});
			return false;
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][singleItemCheck");
		return true;
	}
	
	
	/**
	 * コード種別コード、コード区分からコード適用開始年月日、コード適用終了年月日の範囲内のレコードを取得する。
	 * @param codeType コード種別
	 * @param codeVaue コード値
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZM_M_CD_NM_KANRI_KU_SELECT_001(String codeType, String codeVaue) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(codeType);
		paramList.setValue(codeVaue);
		paramList.setValue(this.opeDate);
		
		super.logPrint.printDebugLog("[L][paramList=" + paramList.getMap().toString() + "]");
		
		// DBアクセスを実行します
		db_ZM_M_CD_NM_KANRI.selectBySqlDefine(paramList, ZM_M_CD_NM_KANRI_KU_SELECT_001);
	}
	
	
	/**
	 * eBIS申込収容位置空き情報に登録するため、工事案件番号からサービス回線内訳番号を取得する。
	 * @param mskmNo 申込番号
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKU_T_SVKEI_KOJIAK_KU_SELECT_010(String mskmNo) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(mskmNo);
		
		super.logPrint.printDebugLog("[L][paramList=" + paramList.getMap().toString() + "]");
		
		// DBアクセスを実行します
		db_KU_T_SVKEI_KOJIAK.selectBySqlDefine(paramList, KU_T_SVKEI_KOJIAK_KU_SELECT_010);
	}
	
	
	/**
	 * 今回登録対象のサービス契約回線内訳番号を、今まで登録した（キャッシュした）サービス契約回線内訳番号と比較し、
	 * 同一サービス契約回線内訳番号が存在する場合、1秒後に登録処理を実行する。
	 * @param svcKeiKaisenUcwkNo サービス契約回線内訳番号
	 * @param systemDate 世代登録年月日時分秒
	 * @param kojiakNo 工事案件番号
	 * @param oyaKikiSbtCd 親機種別コード
	 * @param ctNo CT番号
	 * @param ctAkiUm CT空き有無
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKU_T_MKSYICHI_AKI_IF_INSERT_byPK(
			String svcKeiKaisenUcwkNo, 
			String systemDate, 
			String kojiakNo, 
			String oyaKikiSbtCd, 
			String ctNo, 
			String ctAkiUm) throws Exception
	{	
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		
		setMap.setValue(JBSbatKU_T_MKSYICHI_AKI_IF.SVC_KEI_KAISEN_UCWK_NO, svcKeiKaisenUcwkNo);
		setMap.setValue(JBSbatKU_T_MKSYICHI_AKI_IF.GENE_ADD_DTM, systemDate);
		setMap.setValue(JBSbatKU_T_MKSYICHI_AKI_IF.KOJIAK_NO, kojiakNo);
		setMap.setValue(JBSbatKU_T_MKSYICHI_AKI_IF.OYA_KIKI_SBT_CD, oyaKikiSbtCd);
		setMap.setValue(JBSbatKU_T_MKSYICHI_AKI_IF.CT_NO, ctNo);
		setMap.setValue(JBSbatKU_T_MKSYICHI_AKI_IF.CT_AKI_UM, ctAkiUm);
		
		super.logPrint.printDebugLog("[L][setMap=" + setMap.getMap().toString() + "]");
		
		// DBアクセスを実行します
		db_KU_T_MKSYICHI_AKI_IF.insertByPrimaryKeys(setMap);
	}
}
