/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom						 *
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKTgSvcKeiUcwkChsht
*	ソースファイル名	：JBSbatKKTgSvcKeiUcwkChsht.java
*	作成者				：富士通　
*	作成日				：2011年06月16日
*＜機能概要＞
*　対象サービス契約内訳抽出部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/06/16  FJ)久保田	新規作成
*	v1.01.00	2011/11/12  FJ)久保田	IT2-2011-000206障害対応
*	v1.02.00	2011/11/17  FJ)倉上		IT2-2011-000225障害対応
*	v1.03.00	2011/11/25  FJ)倉上		IT2-2011-000276障害対応
*	v1.04.00	2011/12/19  FJ)久保田	ST2-2011-000038障害対応
*	v2.00.00	2012/01/14  FJ)久保田	ST2-2011-000067障害対応
*	v2.01.00	2012/02/08  FJ)久保田	ST2-2011-000150障害対応
*	v2.02.00	2012/02/09  FJ)久保田	ST2-2012-000176障害対応
*	v3.00.00	2012/06/26  FJ)久保田	【SGY-2012-0000037】住所変更対応
*	v3.01.00	2012/06/28  FJ)久保田	【TAI-2012-0000043】SQL規約チェック対応
*	v3.02.00	2012/07/24  FJ)倉上		【ST2-2012-0001393】障害対応
*	v3.03.00	2012/09/27  FJ)藤本		【ST1-2012-0000634】障害対応
*	v3.04.00	2012/10/05  FJ)藤本		【ST1-2012-0000688】障害対応
*   v3.05.00	2012/11/01  FJ)古内		【IT1-2012-0001864】障害対応
*   v4.00.00	2012/11/14  FJ)岡田		【ST1-2012-0000918】障害対応
*   v4.01.00	2012/12/03  FJ)岡田		【IT2-2012-0001951】障害対応
*   v4.02.00	2013/01/30  FJ)藤本		【ST3-2013-0000282】障害対応
*   v4.03.00	2013/03/21  FJ)岡田		【IT1-2013-0000498】横展開対応
*   v5.00.00	2013/04/17  FJ)藤本		【IT2-2013-0000387】横展開対応
*   v5.00.01	2013/05/21  FJ)藤本		【IT1-2013-0001212】障害対応
*   v5.00.02	2013/06/11  FJ)藤本		【TG1-2013-0000624】障害対応
*   v5.00.03	2013/06/13  FJ)藤本		【LT-2013-0000050】障害対応
*   v5.00.04	2013/08/03  FJ)藤本		【LT-2013-0000652】障害対応
*   v5.00.05	2013/09/06  FJ)中作		【OM-2013-0001697】障害対応
*   v5.00.06	2013/09/13  FJ)中作		【OM-2013-0000934】障害対応
*   v5.00.07	2013/09/18  FJ)柳		【OM-2013-0000844】障害対応
*   v5.00.08	2013/09/19  FJ)中作		【OM-2013-0002352】障害対応
*   v5.00.09	2013/11/22  FJ)中作		【OM-2013-0004258】障害対応
*   v7.00.00	2013/11/19  FJ)桑島		【ANK-1578-00-00】多機能ルーター対応
*   v7.00.01	2013/12/16  FJ)桑島		【IT1-2013-0001700】多機能ルーター修正対応
*   v7.00.02	2014/01/13  FJ)中作		【IT1-2014-0000005】障害対応
*   v7.00.03	2014/01/21  FJ)中作		【IT2-2014-0000056】障害対応
*   v7.00.04	2014/02/12  FJ)中作		【OM-2014-0000527】障害対応
*   v7.00.05	2014/02/24  FJ)中作		【OM-2014-0000669】障害対応
*   v7.00.06	2014/03/19  FJ)中作		【OM-2014-0001121】障害対応
*	v8.00.00	2014/03/20  FJ)岡田		【ANK-1855-00-00】契約形態が「締結済」の場合に開通前の番ポ無し⇒番ポ有などの登録不可対応
*	v8.00.01	2014/05/07  FJ)中作		【OM-2014-0001668】障害対応
*	v8.00.02	2014/05/14  FJ)中作		【OM-2014-0001679】障害対応
*	v8.00.03	2014/06/10  FJ)団		【OM-2014-0002094】障害対応
*	v8.00.04	2014/06/11  FJ)石原		【OM-2014-0001730】障害対応
*	v8.00.05	2014/06/13	FJ)石原		【IT1-2014-0000148】障害対応
*	v8.00.06	2014/06/16	FJ)石原		【OM-2014-0002038】障害対応
*	v8.00.07	2014/06/27	FJ)小野		【OM-2014-0002278】障害対応
*	v9.00.00	2014/07/10	FJ)湯元		【OM-2014-0002318】障害対応
*	v9.00.01	2014/07/11	FJ)中山		【OM-2014-0002325】障害対応
*	v9.00.02	2014/07/22	FJ)湯元		【OM-2014-0002352】障害対応
*	v9.00.03	2014/07/23	FJ)中山		【OM-2014-0002567】障害対応
*	v9.00.04	2014/07/28	FJ)石田		【OM-2014-0002494】障害対応
*	v10.00.00	2014/07/28  FJ)高井		【ANK-1918-00-00】対応
*	v10.00.01	2014/08/03  FJ)三原		【ANK-1918-00-00】対応
*	v10.00.02	2014/10/21  FJ)森本		【OM-2014-0003409】障害対応
*   v12.00.00   2015/02/06  FJ)徳永     【OM-2015-0000139】障害対応
*   v22.00.00   2016/01/13  FJ)米谷     【OM-2016-0000005】障害対応
*	v22.00.01	2015/11/25	FJ)金本		【ANK-2732-00-00】プロジェクト正常化施策 ソースの可読性向上
*	v22.00.02	2016/01/16	FJ)張本		【ANK-2732-00-00】プロジェクト正常化施策 ソースの可読性向上
*	v61.00.00	2023/04/17	FJ)孫		【ANK-4315-00-00】【eo定期】 eoホームゲートウェイ導入対応
*********************************************************************/
package eo.business.service;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.rule.common.JRuleXMLHandler;
import com.fujitsu.futurity.rule.xml.compare.JRuleXMLPattern;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JBSbatKKConst;
import eo.business.common.JCCBatCommon;
import eo.business.common.JKKBatConst;
import eo.business.common.JKKBatOutputUtil;
import eo.business.util.file.JBSbatKKIFM039;
import eo.business.util.file.JBSbatKKIFM050;
import eo.business.util.file.JBSbatKKIFM501;
import eo.business.util.file.JBSbatKKIFM569006;
import eo.business.util.table.JBSbatCH_T_TOKUSOKU;
import eo.business.util.table.JBSbatDK_T_HAISO;
import eo.business.util.table.JBSbatDK_T_HAISO_TG_BPIN;
import eo.business.util.table.JBSbatKK_T_ADSL_KOJI;
import eo.business.util.table.JBSbatKK_T_KKTK_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_SVC_KEI_UCWK;
import eo.business.util.table.JBSbatKK_T_SVKEIUW_EOH_TEL;
import eo.business.util.table.JBSbatKK_T_SVKEI_KAISEN_UW;
import eo.business.util.table.JBSbatKU_T_KOJIAK;
import eo.business.util.table.JBSbatTU_T_BMP_KOJI;
import eo.framework.application.JBSbatBusinessException;
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.JBSbatDateUtil;
import eo.framework.util.JBSbatStringUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKTgSvcKeiUcwkChsht extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(課金先)*/
	private static final String D_TBL_NAME_KK_T_KAKINS = "KK_T_KAKINS";

	/** テーブル(サービス契約内訳)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI_UCWK = "KK_T_SVC_KEI_UCWK";

	/** テーブル(回線対象サービス契約)*/
	private static final String D_TBL_NAME_KK_T_KAISEN_TG_SVKEI = "KK_T_KAISEN_TG_SVKEI";

	/** テーブル(工事案件)*/
	private static final String D_TBL_NAME_KU_T_KOJIAK = "KU_T_KOJIAK";

	/** テーブル(サービス契約内訳＜ｅｏ光電話＞)*/
	private static final String D_TBL_NAME_KK_T_SVKEIUW_EOH_TEL = "KK_T_SVKEIUW_EOH_TEL";

	/** テーブル(サービス契約)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";

	/** テーブル(ＡＤＳＬ工事)*/
	private static final String D_TBL_NAME_KK_T_ADSL_KOJI = "KK_T_ADSL_KOJI";
	
	/** テーブル(配送)*/
	private static final String D_TBL_NAME_DK_T_HAISO = "DK_T_HAISO";

	/** テーブル(番ポ工事)*/
	private static final String D_TBL_NAME_TU_T_BMP_KOJI = "TU_T_BMP_KOJI";

	/** テーブル(機器提供サービス契約)*/
	private static final String D_TBL_NAME_KK_T_KKTK_SVC_KEI = "KK_T_KKTK_SVC_KEI";

	/** テーブル(工事完了ワーク)*/
	private static final String D_TBL_NAME_KK_T_KJ_FIN_WK = "KK_T_KJ_FIN_WK";

	/** テーブル(サービス契約回線内訳)*/
	private static final String D_TBL_NAME_KK_T_SVKEI_KAISEN_UW = "KK_T_SVKEI_KAISEN_UW";

	/** SQL定義キー(KK_SELECT_046)*/
	private static final String KK_T_KAKINS_KK_SELECT_046 = "KK_SELECT_046";

	/** SQL定義キー(KK_SELECT_003)*/
	private static final String KK_T_KAISEN_TG_SVKEI_KK_SELECT_003 = "KK_SELECT_003";
	
	/** SQL定義キー(KK_SELECT_005)*/
	private static final String KU_T_KOJIAK_KK_SELECT_005 = "KK_SELECT_005";

	/** SQL定義キー(KK_SELECT_070)*/
	private static final String KK_T_SVC_KEI_UCWK_KK_SELECT_070 = "KK_SELECT_070";

	/** SQL定義キー(KK_SELECT_015)*/
	private static final String KK_T_SVKEIUW_EOH_TEL_KK_SELECT_015 = "KK_SELECT_015";

	/** SQL定義キー(KK_SELECT_011)*/
	private static final String TU_T_BMP_KOJI_KK_SELECT_011 = "KK_SELECT_011";

	/** SQL定義キー(KK_SELECT_016)*/
	private static final String KK_T_SVKEIUW_EOH_TEL_KK_SELECT_016 = "KK_SELECT_016";
	
/* ++++++++++ v8.00.04 削除開始 ++++++++++ */
//	/** SQL定義キー(KK_SELECT_115)*/
//	private static final String KK_T_KKTK_SVC_KEI_KK_SELECT_115 = "KK_SELECT_115";
/* ++++++++++ v8.00.04 削除終了 ++++++++++ */
	
	/** SQL定義キー(KK_SELECT_037)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_037 = "KK_SELECT_037";

	/** SQL定義キー(KK_SELECT_001)*/
	private static final String KK_T_ADSL_KOJI_KK_SELECT_001 = "KK_SELECT_001";

	/** SQL定義キー(KK_SELECT_008)*/
	private static final String DK_T_HAISO_KK_SELECT_008 = "KK_SELECT_008";

	/** SQL定義キー(KK_SELECT_001)*/
	private static final String TU_T_BMP_KOJI_KK_SELECT_001 = "KK_SELECT_001";

/* ++++++++++ v8.00.04 削除開始 ++++++++++ */
//	/** SQL定義キー(KK_SELECT_045)*/
//	private static final String KK_T_KKTK_SVC_KEI_KK_SELECT_045 = "KK_SELECT_045";
/* ++++++++++ v8.00.04 削除終了 ++++++++++ */
	
	/** SQL定義キー(KK_SELECT_014)*/
	private static final String KK_T_KJ_FIN_WK_KK_SELECT_014 = "KK_SELECT_014";

/* ++++++++++ v8.00.04 削除開始 ++++++++++ */
//	/** SQL定義キー(KK_SELECT_006)*/
//	private static final String KK_T_SVKEI_KAISEN_UW_KK_SELECT_006 = "KK_SELECT_006";
/* ++++++++++ v8.00.04 削除終了 ++++++++++ */
	
/* ++++++++++ v8.00.04 追加開始 ++++++++++ */
	/** SQL定義キー(KK_SELECT_044)*/
	private static final String KK_T_SVKEIUW_EOH_TEL_KK_SELECT_044 = "KK_SELECT_044";
/* ++++++++++ v8.00.04 追加終了 ++++++++++ */
	
// ANK-4315-00-00 ADD START
	/** SQL定義キー(KK_SELECT_053)*/
	private static final String KU_T_KOJIAK_KK_SELECT_053 = "KK_SELECT_053";
// ANK-4315-00-00 ADD END
	/** テーブルアクセスクラス(課金先)*/
	private JBSbatSQLAccess db_KK_T_KAKINS = null;

	/** テーブルアクセスクラス(サービス契約内訳)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI_UCWK = null;

	/** テーブルアクセスクラス(回線対象サービス契約)*/
	private JBSbatSQLAccess db_KK_T_KAISEN_TG_SVKEI = null;
	
	/** テーブルアクセスクラス(工事案件)*/
	private JBSbatSQLAccess db_KU_T_KOJIAK = null;

	/** テーブルアクセスクラス(サービス契約内訳＜ｅｏ光電話＞)*/
	private JBSbatSQLAccess db_KK_T_SVKEIUW_EOH_TEL = null;

	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;

	/** テーブルアクセスクラス(ＡＤＳＬ工事)*/
	private JBSbatSQLAccess db_KK_T_ADSL_KOJI = null;
	
	/** テーブルアクセスクラス(配送)*/
	private JBSbatSQLAccess db_DK_T_HAISO = null;

	/** テーブルアクセスクラス(番ポ工事)*/
	private JBSbatSQLAccess db_TU_T_BMP_KOJI = null;

	/** テーブルアクセスクラス(機器提供サービス契約)*/
	private JBSbatSQLAccess db_KK_T_KKTK_SVC_KEI = null;
	
	/** テーブルアクセスクラス(機器提供サービス契約)*/
	private JBSbatSQLAccess db_KK_T_KKTK_SVC_KEI_115 = null;
	
	/** テーブルアクセスクラス(工事完了ワーク)*/
	private JBSbatSQLAccess db_KK_T_KJ_FIN_WK = null;

	/** テーブルアクセスクラス(サービス契約回線内訳)*/
	private JBSbatSQLAccess db_KK_T_SVKEI_KAISEN_UW = null;
// ANK-4315-00-00 ADD START
	/** テーブルアクセスクラス(工事案件(ONU交換工事))*/
	private JBSbatSQLAccess db_KU_T_KOJIAK_53 = null;
// ANK-4315-00-00 ADD END
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/**
	 *  サービス契約番号
	 */
	protected String svcKeiNo = "";
	
	/**
	 *  サービス契約内訳番号
	 */
	protected String svcKeiUcwkNo = "";
	
	/**
	 *  世代登録年月日時分秒(サービス契約内訳)
	 */
	protected String svcKeiUcwkGeneAdd = "";

	/**
	 *  サービスコード
	 */
	protected String svcCd = "";
	
	/**
	 *  料金グループコード
	 */
	protected String prcGrpCd = "";
	
	/**
	 *  サービス利用希望年月日
	 */
	protected String svcUseStaKiboYmd = "";
	
	/**
	 *  異動区分
	 */
	protected String idoDiv = "";
	
	/**
	 *  申込明細番号
	 */
	protected String mskmDtlNo = "";
	
	/**
	 *  ＳＹＳＩＤ
	 */
	protected String sysid = "";
	
	/**
	 *  料金コースコード
	 */
	protected String pcrsCd = "";
	
	/**
	 *  料金プランコード
	 */
	protected String pplanCd = "";

	/* ++++++++++ v22.00.02 削除開始 ++++++++++ */
//	/**
//	 *  基準年月日
//	 */
//	protected String kjnYmd = "";
	/* ++++++++++ v22.00.02 削除終了 ++++++++++ */
	
	/**
	 *  回線提供会社コード
	 */
	protected String kaisenTkCompCd = "";
	
	/**
	 *  基準日
	 */
	protected String stdDt = "";
	
	/**
	 *  基準日からの相対日
	 */
	protected String relativeDateCount = "";
	
	/**
	 *  実日/営業日
	 */
	protected String countMethod = "";
	
	/**
	 *  優先基準日
	 */
	protected String priorityStdDt = "";
	
	/**
	 *  工事案件種別コード
	 */
	protected String kojiakSbtCd = "";
	
	/**
	 *  工事案件ステータス
	 */
	protected String kojiakStat = "";
	
	/* ++++++++++ v10.00.00 追加開始 ++++++++++ */
	/**
	 *  マンション工事案件状態コード
	 */
	protected String mansKojiakStatCd = "";
	/* ++++++++++ v10.00.00 追加終了 ++++++++++ */
	
	/**
	 *  工事案件実施年月日
	 */
	protected String kojiakJssiYmd = "";
	
	/**
	 *  OPMS工事案件結果コード
	 */
	protected String opmsKojiakRsltCd = "";
	
	/* ++++++++++ v12.00.00 追加開始 ++++++++++ */
	/**
	 *  電話に紐付く機器の工事案件種別コード
	 */
	protected String vaKojiakSbtCd = "";
	
	/**
	 *  電話に紐付く機器の工事案件ステータス
	 */
	protected String vaKojiakStat = "";
	
	/**
	 *  電話に紐付く機器のマンション工事案件状態コード
	 */
	protected String vaMansKojiakStatCd = "";
	
	/**
	 *  電話に紐付く機器の工事案件実施年月日
	 */
	protected String vaKojiakJssiYmd = "";
	
	/**
	 *  電話に紐付く機器のOPMS工事案件結果コード
	 */
	protected String vaOpmsKojiakRsltCd = "";	
	/* ++++++++++ v12.00.00 追加終了 ++++++++++ */
	
	/* ++++++++++ v22.00.02 削除開始 ++++++++++ */
//	/**
//	 *  優先基準日
//	 */
//	protected String priorityStdYmd = "";
	/* ++++++++++ v22.00.02 削除終了 ++++++++++ */
	
	/**
	 *  VA出荷日
	 */
	protected String vaShkaYmd = "";
	
	/**
	 *  VLANID取得日
	 */
	protected String vlanIdStkuYmd = "";
	
	/**
	 *  初回CDR発生年月日
	 */
	protected String firstCdrHasseiYmd = "";

	// ++++++++++ v22.00.02 追加開始 ++++++++++
	/**
	 *  対象サービス契約抽出ファイル出力フラグ
	 */
	protected boolean kkifm050OutputFlg = false;
	// ++++++++++ v22.00.02 追加終了 ++++++++++
	
	/**
	 *  工事進捗遅延対象ファイル出力フラグ
	 */
	protected boolean kkifm039OutputFlg = false;
	
	// ++++++++++ v8.00.05 修正開始 ++++++++++
	/**
	 *  機器オプションサービス契約（ＶＡ）抽出ファイル出力フラグ
	 */
	protected boolean kkifm569006OutputFlg = false;
	
	/**
	 * 入出力インターフェースオブジェクトを生成
	 */
	JBSbatOutputItem outMapItem = null;
	// ++++++++++ v8.00.05 修正終了 ++++++++++
	
	// ++++++++++ v9.00.02 追加開始 ++++++++++
	/**
	 *  サービス利用希望年月日（提供方式．サービス開始日）フラグ
	 */
	protected boolean svcUseStaKiboFlg = false;
	// ++++++++++ v9.00.02 追加終了 ++++++++++

	/**
	 *  機器提供サービス契約番号
	 */
	protected String kktkSvcKeiNo = "";
	
	/**
	 *  機器変更番号
	 */
	protected String kikiChgNo = "";
	
	/**
	 *  電話VLAN-ID取込年月日
	 */
	protected String telVlanIdTrkmYmd = "";
	
	/**
	 *  提供方式契約番号
	 */
	protected String tkHoshikiKeiNo = "";
	
	/**
	 *  提供方式契約．サービス開始日
	 */
	protected String tkHoshikiKeiSvcStaYmd = "";
	
	/**
	 *  マンション物件番号
	 */
	protected String mansionBukkenNo = "";
	
	/** 工事完了結果（翌日反映）情報ファイル(KKIFM051004)*/
	private static final String FILE_KKIFM051004 = "KKIFM051004.csv";
	
	/** エンコード */
	private static final String ENCODE = "Shift-JIS";
	
	/** 工事無し*/
	private static final String KOJI_NASHI = "0";
	
	/** 工事有*/
	private static final String KOJI_ARI = "1";
	
	/**
	 *  ファイルパス
	 */
	protected String file_path = "";
	
	/**
	 * 工事完了翌日取込ファイル情報
	 */
	ArrayList<String> file_data_list = null;
	
	/**
	 * 申込時点の異動区分
	 */
	protected String ido_div_init = "";
	
	// ++++++++++ v12.00.00 削除開始 ++++++++++
//	// ++++++++++ v8.00.06 修正開始 ++++++++++
//	protected String kojiakNo = "";
//	// ++++++++++ v8.00.06 修正開始 ++++++++++
	// ++++++++++ v12.00.00 削除終了 ++++++++++
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		
		// フルパスを生成。
		// ++++++++++ v8.00.05 修正開始 ++++++++++
		String[] free_item = commonItem.getFreeItem().split(";");
		
		file_path = free_item[0] + FILE_KKIFM051004;
		// ++++++++++ v8.00.05 修正終了 ++++++++++
		
		// DBアクセスクラスを生成します
		db_KK_T_KAKINS = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KAKINS);
		db_KK_T_SVC_KEI_UCWK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI_UCWK);
		db_KU_T_KOJIAK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_KOJIAK);
		db_KK_T_SVKEIUW_EOH_TEL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVKEIUW_EOH_TEL);
		db_KK_T_KAISEN_TG_SVKEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KAISEN_TG_SVKEI);
		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		db_KK_T_ADSL_KOJI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_ADSL_KOJI);
		db_DK_T_HAISO = new JBSbatSQLAccess(commonItem, D_TBL_NAME_DK_T_HAISO);
		db_TU_T_BMP_KOJI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_TU_T_BMP_KOJI);
		db_KK_T_KKTK_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KKTK_SVC_KEI);
		db_KK_T_KKTK_SVC_KEI_115 = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KKTK_SVC_KEI);
		db_KK_T_KJ_FIN_WK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KJ_FIN_WK);
		db_KK_T_SVKEI_KAISEN_UW = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVKEI_KAISEN_UW);
// ANK-4315-00-00 ADD START
		db_KU_T_KOJIAK_53 = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_KOJIAK);
// ANK-4315-00-00 ADD END
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		// 工事完了翌日取込ファイル情報を読み込みます。
		file_data_list = getInputFile(file_path);
		
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		super.logPrint.printDebugLog("execute_START");
		
		// 初期検索結果情報の取得
		getKkSelect011Info(inMap);
		
		// サービス契約番号より督促ステータスの検索を行う。
		String[] param = {svcKeiNo, super.opeDate, super.opeDate};
		this.executeKK_T_KAKINS_KK_SELECT_046(param);
		JBSbatCommonDBInterface kakins_map = db_KK_T_KAKINS.selectNext();
		if(null != kakins_map)
		{
			// 督促ステータス「20：利用停止済」以上のデータが存在する場合、サービス開始対象外とする。
			super.logPrint.printDebugLog("▼サービス開始対象外："  + svcKeiNo + "　督促ステータス：" + kakins_map.getString(JBSbatCH_T_TOKUSOKU.TOKUSOKU_STAT));
			super.logPrint.printDebugLog("execute_END");
			return null;
		}
		
		// ルール呼出用条件データの取得を行う。
		// SQL実行結果取得用mapを生成（回線対象サービス契約）
		JBSbatCommonDBInterface kaisenTgSvkeiMap = new JBSbatCommonDBInterface(); 
		
		// SQL定義キー（KK_T_KAISEN_TG_SVKEI.KK_SELECT_003）を実行する
		// 下記パラメータを設定
		// (1)サービス契約番号 = KK_T_SVC_KEI.KK_SELECT_036.SVC_KEI_NO
		// (2)予約適用年月日 = バッチ共通パラメータ．バッチ運用日
		// (3)予約適用年月日 = バッチ共通パラメータ．バッチ運用日
		String [] selectParam = {svcKeiNo, commonItem.getOpeDate()};
		super.logPrint.printDebugLog("selectParam(サービス契約番号)：" +  selectParam[0]);
		super.logPrint.printDebugLog("selectParam(予約適用年月日)：：" +  selectParam[1]);
		executeKK_T_KAISEN_TG_SVKEI_KK_SELECT_003(selectParam);
		
		ArrayList<ArrayList<HashMap<String, Object>>> outMsgList = new ArrayList<ArrayList<HashMap<String, Object>>>();
		
		// 検索結果を取得する
		for(kaisenTgSvkeiMap = db_KK_T_KAISEN_TG_SVKEI.selectNext(); null != kaisenTgSvkeiMap ; kaisenTgSvkeiMap = db_KK_T_KAISEN_TG_SVKEI.selectNext())
		{
			// ++++++++++ v9.00.01 追加開始 ++++++++++
			// 初期化
			// 基準日、VA出荷日
			// ++++++++++ v22.00.02 削除開始 ++++++++++
//			kjnYmd = "";
			// ++++++++++ v22.00.02 削除終了 ++++++++++
			vaShkaYmd ="";
			// ++++++++++ v9.00.01 追加終了 ++++++++++
			// ++++++++++ v9.00.02 追加開始 ++++++++++
			svcUseStaKiboFlg = false;
			// ++++++++++ v9.00.02 追加終了 ++++++++++
			// ++++++++++ v12.00.00 削除開始 ++++++++++
//			// ++++++++++ v9.00.03 追加開始 ++++++++++
//			kojiakNo = "";
//			// ++++++++++ v9.00.03 追加終了 ++++++++++
			// ++++++++++ v12.00.00 削除終了 ++++++++++
			// 検索結果情報の取得
			kaisenTkCompCd = "";
			
			kaisenTkCompCd = JBSbatStringUtil.Rtrim(kaisenTgSvkeiMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_TK_COMP_CD)); 
			
			telVlanIdTrkmYmd = "";	// 電話VLAN-ID取込年月日
			
			telVlanIdTrkmYmd = JBSbatStringUtil.Rtrim(kaisenTgSvkeiMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.TEL_VLAN_ID_TRKM_YMD)); 
			
			// マンション物件コード
			mansionBukkenNo = "";
			
			mansionBukkenNo = JBSbatStringUtil.Rtrim(kaisenTgSvkeiMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.MANSION_BUKKEN_NO)); 
			
// ANK-4315-00-00 MOD START
//			// SQL実行結果取得用mapを生成（サービス契約）
//			JBSbatCommonDBInterface kojiakMap = new JBSbatCommonDBInterface(); 
//			
//			// ルール呼出用条件データの取得を行う。
//			// SQL定義キー（KK_T_SVC_KEI.KK_SELECT_038）を実行する
//			// 下記パラメータを設定
//			// (1)サービス契約番号       = KKIFM051.SVC_KEI_NO
//			// (2)サービス契約_工事案件適用開始年月日 = バッチ共通パラメータ．バッチ運用日
//			// (3)サービス契約_工事案件適用終了年月日 = バッチ共通パラメータ．バッチ運用日
//			String[] selectParam1 = {svcKeiNo, super.opeDate, super.opeDate, super.opeDate};
//			
//			executeKU_T_KOJIAK_KK_SELECT_005(selectParam1);
//			kojiakMap = db_KU_T_KOJIAK.selectNext();
			JBSbatCommonDBInterface kojiakMap = null;
			// 異動区分 = 受付時の異動区分を検索し設定する。
			String[] svkeiuwParam = {svcKeiUcwkNo, super.opeDate};
			this.executeKK_T_SVC_KEI_UCWK_KK_SELECT_070(svkeiuwParam);
			JBSbatCommonDBInterface svkeiuwMap = db_KK_T_SVC_KEI_UCWK.selectNext();
			if(null != svkeiuwMap)
			{
				// 取得した異動区分が「光電話・番号追加」の場合は工事案件種別が「ONU交換工事」の工事案件情報を取得する。
				if (JBSbatKKConst.CD00576_IDO_DIV_00041.equals(JBSbatStringUtil.Rtrim(svkeiuwMap.getString(JBSbatKK_T_SVC_KEI_UCWK.IDO_DIV))))
				{
					String[] kojiakParam = {super.opeDate, super.opeDate, JBSbatStringUtil.Rtrim(svkeiuwMap.getString(JBSbatKK_T_SVC_KEI_UCWK.MSKM_DTL_NO))};
					this.executeKU_T_KOJIAK_KK_SELECT_053(kojiakParam);
					kojiakMap = db_KU_T_KOJIAK_53.selectNext();
				}
			}
			if(null == kojiakMap)
			{
				// ルール呼出用条件データの取得を行う。
				// SQL定義キー（KU_T_KOJIAK.KK_SELECT_005）を実行する
				// 下記パラメータを設定
				// (1)サービス契約番号       = KKIFM051.SVC_KEI_NO
				// (2)サービス契約_工事案件適用開始年月日 = バッチ共通パラメータ．バッチ運用日
				// (3)サービス契約_工事案件適用終了年月日 = バッチ共通パラメータ．バッチ運用日
				String[] selectParam1 = {svcKeiNo, super.opeDate, super.opeDate, super.opeDate};
				executeKU_T_KOJIAK_KK_SELECT_005(selectParam1);
				kojiakMap = db_KU_T_KOJIAK.selectNext();
			}
// ANK-4315-00-00 MOD END
			
			// ++++++++++ v12.00.00 修正開始 ++++++++++
//			// ++++++++++ v8.00.06 修正開始 ++++++++++
//			// 配送対象物品から工事案件番号の取得を行う。
//			getKojiakNo();
			// サービス契約内訳＜eo光電話＞のVA機器変更番号が設定されている最古のレコードより
			// 紐付く機器の配送対象物品.工事案件番号を取得
			String kojiakNo = getKojiakNo();
			// ++++++++++ v12.00.00 修正終了 ++++++++++
			
			JBSbatCommonDBInterface kojiakMap2 = null; 
			
			if(kojiakNo != null && !"".equals(kojiakNo))
			{
				// 工事案件のPK検索を行います。
				String[] whereParam1 = {kojiakNo};
				
				kojiakMap2 = this.executeKU_T_KOJIAK_PKSELECT(whereParam1);
			}
			
			//検索結果情報をフィールド変数に設定
			//setKojiakInfo(kojiakMap);
			setKojiakInfo(kojiakMap, kojiakMap2);
			// ++++++++++ v8.00.06 修正終了 ++++++++++
			
			// ルールの呼出を行う。
			outMsgList = callRule0073001();
			
			// ++++++++++ v22.00.02 変更開始 ++++++++++
//			// ルール呼出結果による判定用データの取得を行う。
//			getRule0073001Info(outMsgList);
			// ルール呼出結果による基準日の取得を行う。
			String kjnYmd = getRule0073KjnYmd(outMsgList);
			// ++++++++++ v22.00.02 変更終了 ++++++++++
			
			// 出力共通電文を生成する。
			JBSbatOutputItem outputBean = new JBSbatOutputItem();
			
			// ルール呼出結果による判定
			// ++++++++++ v22.00.02 変更開始 ++++++++++
//			if(isOutputKkifm050())
			if(kjnYmd != null)
			// ++++++++++ v22.00.02 変更終了 ++++++++++
			{
				// ++++++++++ v22.00.02 削除開始 ++++++++++
//				// マンション／メゾンの場合
//				if(!"".equals(tkHoshikiKeiNo))
//				{
//					// サービス利用希望年月日、提供方式契約．サービス開始日による
//					// 基準日の補正を行う。
//					this.mansionMaisonKjnYmdHosei();
//					
//					// 補正した基準日 >= 運用年月日 + 1日の場合サービス開始対象外とする。
//					if(Integer.parseInt(kjnYmd) > Integer.parseInt(JBSbatDateUtil.adjustDate(super.opeDate, Integer.parseInt("1"))))
//					{
//						return null;
//					}
//				}
				// ++++++++++ v22.00.02 削除終了 ++++++++++
				
				// 工事案件実施年月日による判定を行う。
				// ++++++++++ v22.00.02 変更開始 ++++++++++
//				if(isSvcStaTaisho())
				if(kkifm050OutputFlg)
				// ++++++++++ v22.00.02 変更終了 ++++++++++
				{
					// 対象サービス契約抽出ファイルのファイル出力
					// ++++++++++ v22.00.02 変更開始 ++++++++++
//					outputBean = createKkifm050(outputBean);
					createKkifm050(outputBean, kjnYmd);
					// ++++++++++ v22.00.02 変更終了 ++++++++++
				}
				
				// ++++++++++ v9.00.02 追加開始 ++++++++++
				// サービス利用希望年月日、提供方式．サービス開始日で置き換えた場合は
				// 初回ＣＤＲによる補正として扱わない
				if(!svcUseStaKiboFlg)
				{
				// ++++++++++ v9.00.02 追加終了 ++++++++++
					if(kkifm039OutputFlg)
					{
						// ++++++++++ v22.00.02 変更開始 ++++++++++
//						outputBean = createKkifm039(outputBean);
						createKkifm039(outputBean, kjnYmd);
						// ++++++++++ v22.00.02 変更終了 ++++++++++
					}
				// ++++++++++ v9.00.02 追加開始 ++++++++++
				}
				// ++++++++++ v9.00.02 追加終了 ++++++++++
				
				// ++++++++++ v9.00.02 追加開始 ++++++++++
				// サービス利用希望年月日、提供方式．サービス開始日で置き換えた場合は
				// 初回ＣＤＲによる補正として扱わない
				if(!svcUseStaKiboFlg)
				{
				// ++++++++++ v9.00.02 追加終了 ++++++++++
				// ++++++++++ v8.00.05 修正開始 ++++++++++
					if (kkifm569006OutputFlg)
					{
						// 機器オプションサービス契約（ＶＡ）抽出ファイル出力
						// ++++++++++ v22.00.02 変更開始 ++++++++++
//						createKkifm569006();
						createKkifm569006(kjnYmd);
						// ++++++++++ v22.00.02 変更終了 ++++++++++
					}
				// ++++++++++ v8.00.05 修正終了 ++++++++++
				// ++++++++++ v9.00.02 追加開始 ++++++++++
				}
				// ++++++++++ v9.00.02 追加終了 ++++++++++
				
				super.logPrint.printDebugLog("execute_END");
				return outputBean;
			}
			// ++++++++++ v22.00.02 削除開始 ++++++++++
//			else
//			{
//				if(kkifm039OutputFlg)
//				{
//					outputBean = createKkifm039(outputBean);
//					super.logPrint.printDebugLog("execute_END");
//					return outputBean;
//				}
//			}
			// ++++++++++ v22.00.02 削除終了 ++++++++++
		}

		return null;
		
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_KAKINS.close();
		db_KK_T_SVC_KEI_UCWK.close();
		db_KU_T_KOJIAK.close();
		db_KK_T_SVKEIUW_EOH_TEL.close();
		db_KK_T_KAISEN_TG_SVKEI.close();
		db_KK_T_SVC_KEI.close();
		db_KK_T_ADSL_KOJI.close();
		db_DK_T_HAISO.close();
		db_TU_T_BMP_KOJI.close();
		db_KK_T_KKTK_SVC_KEI.close();
		db_KK_T_KKTK_SVC_KEI_115.close();
		db_KK_T_KJ_FIN_WK.close();
		db_KK_T_SVKEI_KAISEN_UW.close();
// ANK-4315-00-00 ADD START
		db_KU_T_KOJIAK_53.close();
// ANK-4315-00-00 ADD END
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		
		// ++++++++++ v8.00.05 修正開始 ++++++++++
		if (outMapItem != null)
		{
			// フリー項目よりファイル出力先、ファイル名を取得し、出力する。
			String[] free_item = commonItem.getFreeItem().split(JKKBatConst.S_PARAM_DELIM);
			
			JKKBatOutputUtil.editOutFile(super.commonItem, outMapItem, "KKIFM569006", free_item[0], free_item[1]);
		}
		// ++++++++++ v8.00.05 修正終了 ++++++++++
		
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * SQLKEY(KK_SELECT_046)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 *		 	課金先適用開始年月日
	 *		 	課金先適用終了年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_KAKINS_KK_SELECT_046(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_KK_T_KAKINS.selectBySqlDefine(paramList, KK_T_KAKINS_KK_SELECT_046);
	}

	/**
	 * SQLKEY(KK_SELECT_005)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 *		 	予約適用年月日
	 *		 	申込明細_工事案件適用開始年月日
	 *		 	申込明細_工事案件適用終了年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKU_T_KOJIAK_KK_SELECT_005(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());

		// DBアクセスを実行します
		db_KU_T_KOJIAK.selectBySqlDefine(paramList, KU_T_KOJIAK_KK_SELECT_005);
	}
	
	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	KOJIAK_NO
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return JBSbatCommonDBInterface 検索の結果。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeKU_T_KOJIAK_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("KOJIAK_NO", whereParam[0]);

		// DBアクセスを実行します
		return db_KU_T_KOJIAK.selectByPrimaryKeys(whereMap);
	}
	
	/**
	 * SQLKEY(KK_SELECT_070)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	SVC_KEI_UCWK_NO
	 *		 	RSV_APLY_YMD
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVC_KEI_UCWK_KK_SELECT_070(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI_UCWK.selectBySqlDefine(paramList, KK_T_SVC_KEI_UCWK_KK_SELECT_070);
	}

	/**
	 * SQLKEY(KK_SELECT_003)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 *		 	運用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_KAISEN_TG_SVKEI_KK_SELECT_003(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_KAISEN_TG_SVKEI.selectBySqlDefine(paramList, KK_T_KAISEN_TG_SVKEI_KK_SELECT_003);
	}

/* ++++++++++ v8.00.04 削除開始 ++++++++++ */
//	/**
//	 * SQLKEY(KK_SELECT_115)でDBアクセスを行います。<br>
//	 * <p>
//	 * <b>処理フロー</b><br>
//	 * <pre>
//	 * 1.引数でバイント変数を設定します。<br>
//	 *
//	 * 2.DBアクセスを実行します。<br>
//	 * 
//	 * 3.メソッドの呼び出し方です。<br>
//	 *		引数:
//	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
//	 *		 	予約適用年月日
//	 *		 	サービス契約内訳番号
//	 *		 	世代登録年月日時分秒
//	 * </pre>
//	 * <p>
//	 * @param param バイント変数の値配列。
//	 * @throws Exception 業務サービス内で発生した例外全般。
//	 */
//	private void executeKK_T_KKTK_SVC_KEI_KK_SELECT_115(Object[] param) throws Exception
//	{
//		// バイント変数のリストを生成します
//		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
//		paramList.setValue(param[0].toString());
//		paramList.setValue(param[1].toString());
//		paramList.setValue(param[2].toString());
//
//		// DBアクセスを実行します
//		db_KK_T_KKTK_SVC_KEI_115.selectBySqlDefine(paramList, KK_T_KKTK_SVC_KEI_KK_SELECT_115);
//	}
/* ++++++++++ v8.00.04 削除終了 ++++++++++ */

	/**
	 * SQLKEY(KK_SELECT_037)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 *		 	予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVC_KEI_KK_SELECT_037(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_037);
	}

	/**
	 * SQLKEY(KK_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_ADSL_KOJI_KK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_T_ADSL_KOJI.selectBySqlDefine(paramList, KK_T_ADSL_KOJI_KK_SELECT_001);
	}

	/**
	 * SQLKEY(KK_SELECT_015)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約内訳番号
	 *		 	予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVKEIUW_EOH_TEL_KK_SELECT_015(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SVKEIUW_EOH_TEL.selectBySqlDefine(paramList, KK_T_SVKEIUW_EOH_TEL_KK_SELECT_015);
	}
	
	/**
	 * SQLKEY(KK_SELECT_011)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	SVC_KEI_UCWK_NO
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeTU_T_BMP_KOJI_KK_SELECT_011(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_TU_T_BMP_KOJI.selectBySqlDefine(paramList, TU_T_BMP_KOJI_KK_SELECT_011);
	}
	
	/**
	 * SQLKEY(KK_SELECT_008)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	機器提供サービス契約番号
	 *		 	機器変更番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeDK_T_HAISO_KK_SELECT_008(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_DK_T_HAISO.selectBySqlDefine(paramList, DK_T_HAISO_KK_SELECT_008);
	}

/* ++++++++++ v8.00.04 削除開始 ++++++++++ */
//	/**
//	 * SQLKEY(KK_SELECT_006)でDBアクセスを行います。<br>
//	 * <p>
//	 * <b>処理フロー</b><br>
//	 * <pre>
//	 * 1.引数でバイント変数を設定します。<br>
//	 *
//	 * 2.DBアクセスを実行します。<br>
//	 * 
//	 * 3.メソッドの呼び出し方です。<br>
//	 *		引数:
//	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
//	 *		 	サービス契約番号
//	 *		 	回線内訳使用開始年月日
//	 * </pre>
//	 * <p>
//	 * @param param バイント変数の値配列。
//	 * @throws Exception 業務サービス内で発生した例外全般。
//	 */
//	private void executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_006(Object[] param) throws Exception
//	{
//		// バイント変数のリストを生成します
//		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
//		paramList.setValue(param[0].toString());
//		paramList.setValue(param[1].toString());
//
//		// DBアクセスを実行します
//		db_KK_T_SVKEI_KAISEN_UW.selectBySqlDefine(paramList, KK_T_SVKEI_KAISEN_UW_KK_SELECT_006);
//	}
/* ++++++++++ v8.00.04 削除終了 ++++++++++ */
	
	/**
	 * SQLKEY(TU_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約内訳番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeTU_T_BMP_KOJI_KK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_TU_T_BMP_KOJI.selectBySqlDefine(paramList, TU_T_BMP_KOJI_KK_SELECT_001);
	}

	/**
	 * SQLKEY(KK_SELECT_016)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約内訳番号
	 *		 	予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVKEIUW_EOH_TEL_KK_SELECT_016(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SVKEIUW_EOH_TEL.selectBySqlDefine(paramList, KK_T_SVKEIUW_EOH_TEL_KK_SELECT_016);
	}
	
/* ++++++++++ v8.00.04 削除開始 ++++++++++ */
//	/**
//	 * SQLKEY(KK_SELECT_045)でDBアクセスを行います。<br>
//	 * <p>
//	 * <b>処理フロー</b><br>
//	 * <pre>
//	 * 1.引数でバイント変数を設定します。<br>
//	 *
//	 * 2.DBアクセスを実行します。<br>
//	 * 
//	 * 3.メソッドの呼び出し方です。<br>
//	 *		引数:
//	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
//	 *		 	サービス契約番号
//	 *		 	予約適用年月日
//	 * </pre>
//	 * <p>
//	 * @param param バイント変数の値配列。
//	 * @throws Exception 業務サービス内で発生した例外全般。
//	 */
//	private void executeKK_T_KKTK_SVC_KEI_KK_SELECT_045(Object[] param) throws Exception
//	{
//		// バイント変数のリストを生成します
//		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
//		paramList.setValue(param[0].toString());
//		paramList.setValue(param[1].toString());
//
//		// DBアクセスを実行します
//		db_KK_T_KKTK_SVC_KEI.selectBySqlDefine(paramList, KK_T_KKTK_SVC_KEI_KK_SELECT_045);
//	}
/* ++++++++++ v8.00.04 削除終了 ++++++++++ */
	
/* ++++++++++ v8.00.04 追加開始 ++++++++++ */
	/**
	 * SQLKEY(KK_SELECT_044)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	予約適用年月日
	 *		 	サービス契約内訳
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVKEIUW_EOH_TEL_KK_SELECT_044(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SVKEIUW_EOH_TEL.selectBySqlDefine(paramList, KK_T_SVKEIUW_EOH_TEL_KK_SELECT_044);
	}
	
	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SVC_KEI_UCWK_NO
	 *		 	GENE_ADD_DTM
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return JBSbatCommonDBInterface 検索の結果。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeKK_T_SVC_KEI_UCWK_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SVC_KEI_UCWK_NO", whereParam[0]);
		whereMap.setValue("GENE_ADD_DTM", whereParam[1]);

		// DBアクセスを実行します
		return db_KK_T_SVC_KEI_UCWK.selectByPrimaryKeys(whereMap);
	}	
/* ++++++++++ v8.00.04 追加終了 ++++++++++ */
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * 
	 * 初期検索結果情報の取得を行います。
	 * 
	 * @param inMap 初期検索結果情報。
	 * @throws Exception メソッド内で発生した例外全般。
	 */
	private void getKkSelect011Info(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		
		// フィールド変数の初期化
		svcKeiNo         = "";
		svcKeiUcwkNo     = "";
		svcKeiUcwkGeneAdd = "";
		svcCd            = "";
		prcGrpCd         = "";
		svcUseStaKiboYmd = "";
		idoDiv           = "";
		mskmDtlNo        = "";
		sysid            = "";
		pcrsCd           = "";
		pplanCd          = "";
		tkHoshikiKeiNo   = "";
		tkHoshikiKeiSvcStaYmd = "";
		
		svcKeiNo         = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM501.SVC_KEI_NO));				// サービス契約番号
		svcKeiUcwkNo     = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM501.SVC_KEI_UCWK_NO));		// サービス契約内訳番号
		svcKeiUcwkGeneAdd     = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM501.SVC_KEI_UCWK_GENE_ADD));	// 世代登録年月日時分秒(サービス契約内訳)
		svcCd            = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM501.SVC_CD));						// サービスコード
		prcGrpCd         = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM501.PRC_GRP_CD));					// 料金グループコード
		svcUseStaKiboYmd = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM501.SVC_USE_STA_KIBO_YMD));		// サービス利用希望年月日
		idoDiv           = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM501.IDO_DIV));				// 異動区分
		mskmDtlNo        = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM501.MSKM_DTL_NO));			// 申込明細番号
		sysid            = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM501.SYSID));						// ＳＹＳＩＤ
		pcrsCd           = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM501.PCRS_CD));				// 料金コースコード
		pplanCd          = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM501.PPLAN_CD));				// 料金プランコード
		tkHoshikiKeiNo   = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM501.TK_HOSHIKI_KEI_NO));	// 提供方式契約番号
		tkHoshikiKeiSvcStaYmd = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM501.SVC_STA_YMD));		// サービス開始日(提供方式契約)
	}
	
	/**
	 * 
	 * ルールの呼出を行います。
	 * 
	 * @return outMsgList ArrayList<ArrayList<HashMap<String, Object>>>
	 * @throws Exception 
	 */
	private ArrayList<ArrayList<HashMap<String, Object>>> callRule0073001() throws Exception
	{
		
		ArrayList<ArrayList<HashMap<String, Object>>> outMsgList = new ArrayList<ArrayList<HashMap<String, Object>>>();
		
		super.logPrint.printDebugLog("相関ルール呼出パラ（サービスコード）：：：：：：：" +  svcCd);
		super.logPrint.printDebugLog("相関ルール呼出パラ（回線提供会社コード）：：：：：" +  kaisenTkCompCd);
		
		// 4.1.呼出相関ルール[RULE0073:サービス開始日設定定義(サービス)]を呼び出す。
		HashMap<String, Object> map = new HashMap<String, Object>();
		// 各パラメータを設定
		if(!"".equals(svcCd))
		{
			// (1)サービスコード     = KK_T_SVC_KEI.KK_SELECT_036.SVC_CD
			map.put("SVC_CD", svcCd);
		}
		
		// ++++++++++ v22.00.01 変更開始 ++++++++++
//		if("01".equals(svcCd) || "02".equals(svcCd) || "03".equals(svcCd))
		if(JBSbatKKConst.SVC_CD_IN_SVC.equals(svcCd) || JBSbatKKConst.SVC_CD_TEL_SVC.equals(svcCd) || JBSbatKKConst.SVC_CD_TV_SVC.equals(svcCd))
		// ++++++++++ v22.00.01 変更終了 +++++++++
		{
			if(!"".equals(kaisenTkCompCd))
			{
				// (2)回線提供会社コード = KK_T_KAISEN_TG_SVKEI.KK_SELECT_003.KAISEN_TK_COMP_CD
				map.put("KAISEN_TK_COMP_CD", kaisenTkCompCd);
			}
		}
		
		// ++++++++++ v22.00.01 変更開始 ++++++++++
//		if("01".equals(svcCd) && "01".equals(kaisenTkCompCd))
		if(JBSbatKKConst.SVC_CD_IN_SVC.equals(svcCd) && JBSbatKKConst.CD00092_KAISEN_TK_COMP_CD_01.equals(kaisenTkCompCd))
		// ++++++++++ v22.00.01 変更終了 +++++++++
		{
			if(!"".equals(prcGrpCd))
			{
				// (3)料金グループコード = KK_T_SVC_KEI.KK_SELECT_036.PRC_GRP_CD
				map.put("PRC_GRP_CD", prcGrpCd);
			}
		}
		
		// 工事有無判定結果の呼出
		String kojiUm = setKojiUm();
		
		super.logPrint.printDebugLog("工事有無---->" + kojiUm + "<---");
		
		// (4)工事有無 
		map.put("KOJI_UM", kojiUm);
		
		String bmp_um = "";
		
		// サービスコードが電話サービス且つ回線提供会社コードがK-OPTの場合
		// ++++++++++ v22.00.01 変更開始 ++++++++++
//		if("02".equals(svcCd) && "01".equals(kaisenTkCompCd))
		if(JBSbatKKConst.SVC_CD_TEL_SVC.equals(svcCd) && JBSbatKKConst.CD00092_KAISEN_TK_COMP_CD_01.equals(kaisenTkCompCd))
		// ++++++++++ v22.00.01 変更終了 +++++++++
		{
			// 検索条件としてサービス契約内訳番号を設定。
			String [] selectParam = {svcKeiUcwkNo, commonItem.getOpeDate()};
			
			// サービス契約内訳<eo光電話>検索処理の実行。
			executeKK_T_SVKEIUW_EOH_TEL_KK_SELECT_015(selectParam);
			
			JBSbatCommonDBInterface outMap = db_KK_T_SVKEIUW_EOH_TEL.selectNext();
			
			if(null == outMap)
			{
				// (6)番ポ有無 = 無（固定値）
				// ++++++++++ v22.00.01 変更開始 ++++++++++
//				map.put("BMP_UM", "0");
//				bmp_um = "0";
				map.put("BMP_UM", JBSbatKKConst.CD00002_UMU_0);
				bmp_um = JBSbatKKConst.CD00002_UMU_0;
				// ++++++++++ v22.00.01 変更終了 +++++++++
			}
			else
			{
				// 検索結果から「番ポ有無」を取得します。
				bmp_um = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SVKEIUW_EOH_TEL.BMP_UM)) ;
				
				if("".equals(bmp_um))
				{
					// (6)番ポ有無 = 無（固定値）
					// ++++++++++ v22.00.01 変更開始 ++++++++++
//					map.put("BMP_UM", "0");
					map.put("BMP_UM", JBSbatKKConst.CD00002_UMU_0);
					// ++++++++++ v22.00.01 変更終了 +++++++++
				}
				else
				{
					// 取得した「番ポ有無」を設定。
					map.put("BMP_UM", bmp_um);
				}
			}
		}
		
		// 番ポ有の場合
		// ++++++++++ v22.00.01 変更開始 ++++++++++
//		if("1".equals(bmp_um))
		if(JBSbatKKConst.CD00002_UMU_1.equals(bmp_um))
		// ++++++++++ v22.00.01 変更終了 +++++++++
		{
			// 番ポ工事の存在チェックを行い、存在しない場合、番ポなしとする。
			if(!this.hasBmpKoji())
			{
				// ++++++++++ v22.00.01 変更開始 ++++++++++
//				bmp_um = "0";
				bmp_um = JBSbatKKConst.CD00002_UMU_0;
				// ++++++++++ v22.00.01 変更終了 +++++++++
				map.put("BMP_UM", bmp_um);
			}
		}
		
		super.logPrint.printDebugLog("相関ルール呼出パラ（番ポ有無）：：：：：：：" + bmp_um);
		
		// 異動区分 = 受付時の異動区分を検索し設定する。
		String[] param = {svcKeiUcwkNo, super.opeDate};
		this.executeKK_T_SVC_KEI_UCWK_KK_SELECT_070(param);
		JBSbatCommonDBInterface svc_kei_ucwk_map = db_KK_T_SVC_KEI_UCWK.selectNext();
		
		//世代の一番古い異動区分
		ido_div_init = "";
		
		if(null != svc_kei_ucwk_map)
		{
			// 取得した異動区分が「00019：住所変更・登録」または、「00042：光電話・番号変更」の場合は
			//   「00001：新規契約」に置き換える。
			ido_div_init = JBSbatStringUtil.Rtrim(svc_kei_ucwk_map.getString(JBSbatKK_T_SVC_KEI_UCWK.IDO_DIV));
			
			super.logPrint.printDebugLog(
					"KK_T_SVC_KEI_UCWK_KK_SELECT_070　受付時の異動区分（サービス契約内訳番号のMIN）：" + ido_div_init);
			
			// ++++++++++ v22.00.01 変更開始 ++++++++++
//			if ("00019".equals(ido_div_init) || "00042".equals(ido_div_init))
			if (JBSbatKKConst.CD00576_IDO_DIV_00019.equals(ido_div_init) || JBSbatKKConst.CD00576_IDO_DIV_00042.equals(ido_div_init))
			// ++++++++++ v22.00.01 変更終了 +++++++++
			{
				// ++++++++++ v22.00.01 変更開始 ++++++++++
//				ido_div_init = "00001";
				ido_div_init = JBSbatKKConst.CD00576_IDO_DIV_00001;
				// ++++++++++ v22.00.01 変更終了 +++++++++
				super.logPrint.printDebugLog("異動区分が「00019：住所変更・登録」または、" +
						"「00042：光電話・番号変更」の場合「00001：新規契約」に置き換え");
			}
			map.put("IDO_DIV", ido_div_init);
			
			super.logPrint.printDebugLog("相関ルール呼出パラ（異動区分）：：：：：：：" + ido_div_init);
		}
		
		kktkSvcKeiNo = "";	// 機器提供サービス契約番号
		kikiChgNo    = "";	// 機器変更番号
		
		// サービスコードが電話サービス且つ回線提供会社コードがK-OPT且つ番ポ有無が無の場合
		// ++++++++++ v22.00.01 変更開始 ++++++++++
//		if ("02".equals(svcCd) && "01".equals(kaisenTkCompCd) && "0".equals(bmp_um))
		if (JBSbatKKConst.SVC_CD_TEL_SVC.equals(svcCd) && JBSbatKKConst.CD00092_KAISEN_TK_COMP_CD_01.equals(kaisenTkCompCd) && JBSbatKKConst.CD00002_UMU_0.equals(bmp_um))
		// ++++++++++ v22.00.01 変更終了 +++++++++
		{
/* ++++++++++ v8.00.04 削除開始 ++++++++++ */
//			// 機器出荷有無
//			String kkshkaUm = "";
//			
//			// 検索条件としてバッチ運用日、サービス契約内訳番号、世代年月日時分秒を設定。
//			String [] selectParam = {commonItem.getOpeDate(), svcKeiUcwkNo, svcKeiUcwkGeneAdd};
//			
//			super.logPrint.printDebugLog("selectParam_KK_SELECT_115(サービス契約内訳番号)：" +  selectParam[1]);
//			super.logPrint.printDebugLog("selectParam_KK_SELECT_115(世代登録年月日時分秒)：" +  selectParam[2]);
//			
//			// 工事なしの場合
//			if("0".equals(kojiUm))
//			{
//				super.logPrint.printDebugLog("工事なし-------------->" + kojiUm);
//				
//				//配送完了年月日
//				String haisoFinYmd = getHaisoFinYmd();
//				
//				// 機器提供サービス契約検索処理の実行。
//				executeKK_T_KKTK_SVC_KEI_KK_SELECT_115(selectParam);
//				
//				JBSbatCommonDBInterface outMap = db_KK_T_KKTK_SVC_KEI_115.selectNext();
//				
//				// 検索結果なしの場合
//				if (null == outMap)
//				{
//					super.logPrint.printDebugLog("工事なし：：：：：：：" + kojiUm + "配送データなし");
//					super.logPrint.printDebugLog("相関ルール呼出パラ（機器出荷有無）：：：：：：：" + kkshkaUm);
//				}
//				
//				// 検索結果ありの場合
//				else
//				{
//					// 配送ステータス
//					String haisoStat = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatDK_T_HAISO.HAISO_STAT));
//					super.logPrint.printDebugLog("工事なし--配送ステータス------------------->" + haisoStat);
//					
//					// 配送ステータス
//					// "003:出荷済"または、"004:完了済"
//					if("003".equals(haisoStat) || "004".equals(haisoStat))
//					{
//						// 検索結果から「機器提供サービス契約番号」を取得します。
//						kktkSvcKeiNo = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_NO));
//						
//						// 検索結果から「機器変更番号」を取得します。
//						kikiChgNo = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_KKTK_SVC_KEI.KIKI_CHG_NO));
//						
//						//"機器配送有"であっても、配送完了年月日 <= 照査年月日 の場合、"機器配送無"とする。
//						
//						//配送完了年月日
//						String haisoFinYmd = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatDK_T_HAISO.HAISO_FIN_YMD));
//						
//						//照査年月日
//						String shosaYmd = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SVC_KEI_UCWK.SHOSA_YMD));
//						
//						super.logPrint.printDebugLog("工事なし--配送完了年月日------------------->" + haisoFinYmd);
//						super.logPrint.printDebugLog("工事なし--照査年月日------------------->" + shosaYmd);
//						super.logPrint.printDebugLog("工事なし--異動区分------------------->" + ido_div_init);
//						
//						// 異動区分="00002:サービス追加"または、"00041:光電話・番号追加"
//						if("00002".equals(ido_div_init) || "00041".equals(ido_div_init))
//						{
//							// 配送完了年月日+10日
//							String haisoFinYmd10 = JBSbatDateUtil.adjustDate(haisoFinYmd, 10);
//							
//							super.logPrint.printDebugLog("配送完了年月日+10日------------------->" + haisoFinYmd10);
//							super.logPrint.printDebugLog("運用日------------------->" + opeDate);
//							
//							// 多機能配送完了チェック
//							// 配送完了年月日+10日 >= 運用日
//							if(Integer.parseInt(haisoFinYmd10) >= Integer.parseInt(opeDate))
//							{
//								// 機器出荷あり
//								kkshkaUm = "1";
//								super.logPrint.printDebugLog("★★★配送未完了");
//							}
//							// 1番号サービス開始済
//							else
//							{
//								// 機器出荷なし
//								kkshkaUm = "0";
//								super.logPrint.printDebugLog("★★★配送完了済");
//							}
//						}
//						else
//						{
//							//配送完了年月日と照査年月日が空でない場合
//							if(!"".equals(haisoFinYmd) && !"".equals(shosaYmd))
//							{
//								//配送完了年月日 <= 照査年月日 の場合、"機器配送無"とする。
//								if(Integer.parseInt(haisoFinYmd) <= Integer.parseInt(shosaYmd))
//								{
//									// 機器出荷なし
//									kkshkaUm = "0";
//									super.logPrint.printDebugLog("工事なし：：：：：：：" + kojiUm + "配送完了年月日 <= 照査年月日 の場合");
//									super.logPrint.printDebugLog("相関ルール呼出パラ（機器出荷有無）：：：：：：：" + kkshkaUm);
//									
//								}
//								else
//								{
//									// 機器出荷あり
//									kkshkaUm = "1";
//									super.logPrint.printDebugLog("工事なし：：：：：：：" + kojiUm + "配送完了年月日 <= 照査年月日 以外");
//									super.logPrint.printDebugLog("相関ルール呼出パラ（機器出荷有無）：：：：：：：" + kkshkaUm);
//								}
//							}
//						}
//					}
//				}
//			}
//			// 工事あり
//			else
//			{
//				super.logPrint.printDebugLog("工事あり--------工事案件ステータス------>" + kojiakStat);
//				// 工事案件ステータス
//				// "160:工事会社決定済","170:宅内機器予定登録済"
//				// "180:仮鍵開発行依頼済,"190:現場作業完了済"
//				// "200:工事完了済"
//				if("160".equals(kojiakStat) || "170".equals(kojiakStat)
//						|| "180".equals(kojiakStat) || "190".equals(kojiakStat)
//						|| "200".equals(kojiakStat))
//				{
//					// 機器提供サービス契約検索処理の実行。
//					executeKK_T_KKTK_SVC_KEI_KK_SELECT_115(selectParam);
//					
//					JBSbatCommonDBInterface outMap = db_KK_T_KKTK_SVC_KEI_115.selectNext();
//					
//					// 検索結果なしの場合
//					if (null == outMap)
//					{
//						super.logPrint.printDebugLog("工事あり：：：：：：：" + kojiUm + "配送データなし");
//						super.logPrint.printDebugLog("相関ルール呼出パラ（機器出荷有無）：：：：：：：" + kkshkaUm);
//					}
//					// 検索結果ありの場合
//					else
//					{
//						// 配送ステータス
//						String haisoStat = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatDK_T_HAISO.HAISO_STAT));
//						
//						super.logPrint.printDebugLog("工事あり--配送ステータス------------------->" + haisoStat);
//						
//						// 配送ステータス
//						// "003:出荷済"または、"004:完了済"
//						if("003".equals(haisoStat) || "004".equals(haisoStat))
//						{
//							// 検索結果から「機器提供サービス契約番号」を取得します。
//							kktkSvcKeiNo = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_NO));
//							
//							// 検索結果から「機器変更番号」を取得します。
//							kikiChgNo = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_KKTK_SVC_KEI.KIKI_CHG_NO));
//							
//							// 異動区分="00002:サービス追加"または、"00041:光電話・番号追加"
//							if("00002".equals(ido_div_init) || "00041".equals(ido_div_init))
//							{
//								//配送完了年月日
//								String haisoFinYmd = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatDK_T_HAISO.HAISO_FIN_YMD));
//								
//								//照査年月日
//								String shosaYmd = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SVC_KEI_UCWK.SHOSA_YMD));
//								
//								// 配送完了年月日+10日
//								String haisoFinYmd10 = JBSbatDateUtil.adjustDate(haisoFinYmd, 10);
//								
//								super.logPrint.printDebugLog("★★★配送完了年月日+10日------------------->" + haisoFinYmd10);
//								super.logPrint.printDebugLog("★★★運用日------------------->" + opeDate);
//								
//								// 多機能配送完了チェック
//								// 配送完了年月日+10日 >= 運用日
//								if(Integer.parseInt(haisoFinYmd10) >= Integer.parseInt(opeDate))
//								{
//									// 機器出荷あり
//									kkshkaUm = "1";
//									super.logPrint.printDebugLog("工事あり★★★配送未完了");
//								}
//								// 1番号サービス開始済
//								else
//								{
//									// 機器出荷なし
//									kkshkaUm = "0";
//									super.logPrint.printDebugLog("工事あり★★★配送完了済");
//								}
//							}
//							else
//							{
//								// 機器出荷あり
//								kkshkaUm = "1";
//							}
//						}
//					}
//				}
//			}
/* ++++++++++ v8.00.04 削除終了 ++++++++++ */

/* ++++++++++ v8.00.04 修正開始 ++++++++++ */
			// (8)機器出荷有無 = kkshkaUm（確認結果）
			map.put("KKSHKA_UM", getKikiShkaUm(kojiUm));
/* ++++++++++ v8.00.04 修正終了 ++++++++++ */
			
			super.logPrint.printDebugLog("機器提供サービス契約番号------->" + kktkSvcKeiNo);
			super.logPrint.printDebugLog("機器変更番号------------------->" + kikiChgNo);
			super.logPrint.printDebugLog("サービス契約内訳番号----------->" + svcKeiUcwkNo);
		}
		
		JRuleXMLHandler xmlHandler = JCCBatCommon.createSokanRuleEngine("RULE0073001", JRuleXMLPattern.SINGLE_MODE_TYPE);
		outMsgList = JCCBatCommon.getCheckResultArray(xmlHandler, map);
		
		return outMsgList;
	}
	
	/**
	 * 
	 * ルール呼出結果による判定用データの取得を行い基準日を取得します。
	 * 
	 * @param  outMsgList ルール呼出結果の値。
	 * @return String　基準日
	 * @throws Exception  メソッド内で発生した例外全般。
	 */
	/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//	private void getRule0073001Info(ArrayList<ArrayList<HashMap<String, Object>>> outMsgList) throws Exception
	private String getRule0073KjnYmd(ArrayList<ArrayList<HashMap<String, Object>>> outMsgList) throws Exception
	/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
	{
		// ルール判定結果による基準日などを初期化
		/* ++++++++++ v22.00.02 追加開始 ++++++++++ */
		String kjnYmd = "";
		/* ++++++++++ v22.00.02 追加終了 ++++++++++ */
//		kjnYmd = "";
		/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//		priorityStdYmd = "";
		String priorityStdYmd = "";
		/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
		vlanIdStkuYmd  = "";
//		vaShkaYmd = "";
		
		// フィールド変数の初期化
		stdDt             = "";
		relativeDateCount = "";
		countMethod       = "";
		priorityStdDt     = "";
		
		if(null != outMsgList.get(0))
		{
			
			// 各ルール結果を取得する。
			stdDt             = (String)outMsgList.get(0).get(0).get("STD_DT");						// 基準日
			relativeDateCount = (String)outMsgList.get(0).get(0).get("RELATIVE_DATE_COUNT");		// 基準日からの相対日
			countMethod       = (String)outMsgList.get(0).get(0).get("COUNT_METHOD");				// 実日/営業日
			priorityStdDt     = (String)outMsgList.get(0).get(0).get("PRIORITY_STD_DT");			// 優先基準日
			
			super.logPrint.printDebugLog("相関ルール呼出結果（基準日）：：：：：：：" +  stdDt);
			super.logPrint.printDebugLog("相関ルール呼出結果（基準日からの相対日）：" +  relativeDateCount);
			super.logPrint.printDebugLog("相関ルール呼出結果（実日/営業日 ）：：：：" +  countMethod);
			super.logPrint.printDebugLog("相関ルール呼出結果（優先基準日）：：：：：" +  priorityStdDt);
			
			// 呼び出したルール[RULE0073:サービス開始日設定定義(サービス)]の結果を元に判定用データの取得を行う。
			// 5.1.1.基準日が"0:照査年月日"の場合
			if("0".equals(stdDt))
			{
				// 照査年月日の取得
				/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//				getShosaYmd();
				kjnYmd = getShosaYmd();
				/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
			}
			// 5.1.2.基準日が"1:工事完了年月日"の場合
			else if("1".equals(stdDt))
			{
				// 処理対象外のため、次データへ進む。
			}
			// 5.1.3.基準日が"3:配送完了年月日"の場合
			else if("3".equals(stdDt))
			{
/* ++++++++++ v8.00.04 削除開始 ++++++++++ */
				// 削除理由「getKikiShkaUm」メソッド内で取得しているため。
				// 配送完了年月日の取得
//				getHaisoFinYmd();
/* ++++++++++ v8.00.04 削除開始 ++++++++++ */
				/* ++++++++++ v22.00.02 追加開始 ++++++++++ */
				kjnYmd = vaShkaYmd;
				/* ++++++++++ v22.00.02 追加終了 ++++++++++ */
				
				super.logPrint.printDebugLog("配送完了年月日---基準日--->" + kjnYmd);
			}
			// 5.1.4.基準日が"4:NTT局内工事年月日"の場合
			else if("4".equals(stdDt))
			{
				// NTT局内工事年月日の取得
				/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//				getNttKyokuNaiKojiYmd();
				kjnYmd = getNttKyokuNaiKojiYmd();
				/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
			}
			// 5.1.5.基準日が"5:番ポ工事完了日"の場合
			else if("5".equals(stdDt))
			{
				// 番ポ工事完了日の取得
				/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//				getBmpKojiFinYmd();
				kjnYmd = getBmpKojiFinYmd();
				/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
			}
			else
			{
				// 処理対象外として、次データへ進む。
			}
			
			// 5.2.1.優先基準日が"1:サービス開始希望日との大きい方"の場合
			if("1".equals(priorityStdDt))
			{
				// サービス利用希望年月日の取得
				/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//				getSvcUseStaKiboYmd();
				priorityStdYmd = getSvcUseStaKiboYmd();
				/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
			}
			// 5.2.2.優先基準日が"2:VLAN-ID取込日との大きい方"の場合
			else if("2".equals(priorityStdDt))
			{
				// 電話用VLANオーダ結果取込年月日時分秒の取得
				/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//				getTelVlanOdrRsltTrkmDtm();
				priorityStdYmd = getTelVlanOdrRsltTrkmDtm();
				/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
			}
			// 5.2.3.優先基準日が"3:運用日"の場合
			else if("3".equals(priorityStdDt))
			{
				// 運用日の設定
				/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//				getOpeDatePlus0();
				priorityStdYmd = getOpeDatePlus0();
				/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
			}
			// 5.2.4.優先基準日が"6:運用日+10日"の場合
			else if("6".equals(priorityStdDt))
			{
				// 運用日+10日の設定
				/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//				getOpeDatePlus10();
				priorityStdYmd = getOpeDatePlus10();
				/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
			}
			else
			{
				// 処理対象外として、次データへ進む。
			}
		}
		else
		{
			super.logPrint.printDebugLog("相関ルール呼出結果（基準日）：：：：：：：" +  stdDt);
		}

		/* ++++++++++ v22.00.02 追加開始 ++++++++++ */
		return getOutputKjnYmd(kjnYmd, priorityStdYmd);
		/* ++++++++++ v22.00.02 追加終了 ++++++++++ */
	}
	
	/**
	 * 
	 * サービス契約内訳.照査年月日の取得を行います。
	 * 
	 * @throws Exception  メソッド内で発生した例外全般。
	 */
	/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//	private void getShosaYmd() throws Exception
	private String getShosaYmd() throws Exception
	/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
	{
		// フィールド変数の初期化
		/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//		kjnYmd = "";
		String kjnYmd = "";
		/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
		
		super.logPrint.printDebugLog("サービス契約内訳番号--->" +  svcKeiUcwkNo);
		super.logPrint.printDebugLog("世代年月日自分秒--->" +  svcKeiUcwkGeneAdd);
		
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		
		whereMap.setValue(JBSbatKK_T_SVC_KEI_UCWK.SVC_KEI_UCWK_NO, svcKeiUcwkNo);
		whereMap.setValue(JBSbatKK_T_SVC_KEI_UCWK.GENE_ADD_DTM, svcKeiUcwkGeneAdd);
		
		// 主キー検索を行います
		JBSbatCommonDBInterface ucwkMap = db_KK_T_SVC_KEI_UCWK.selectByPrimaryKeys(whereMap);
		
		if(null != ucwkMap)
		{
			// 検索結果の照査年月日をフィールド変数に設定する。
			kjnYmd = JBSbatStringUtil.Rtrim(ucwkMap.getString(JBSbatKK_T_SVC_KEI.SHOSA_YMD));
		}
		else
		{
			super.logPrint.printDebugLog("【サービス契約内訳】検索結果なし--->" + svcKeiUcwkNo + "---->" + svcKeiUcwkGeneAdd);
		}
		/* ++++++++++ v22.00.02 追加開始 ++++++++++ */
		return kjnYmd;
		/* ++++++++++ v22.00.02 追加終了 ++++++++++ */
	}
	
/* ++++++++++ v8.00.04 削除開始 ++++++++++ */
//	/**
//	 * 
//	 * 配送完了年月日の取得を行います。
//	 * 
//	 * @throws Exception  メソッド内で発生した例外全般。
//	 */
//	private void getHaisoFinYmd() throws Exception
//	{
//		super.logPrint.printDebugLog("getHaisoFinYmd_START");
//		
//		// フィールド変数の初期化
//		kjnYmd = "";
//		vaShkaYmd = "";
//		
//		// 検索条件として機器提供サービス契約番号、機器変更番号を設定。
//		String [] selectParam = {kktkSvcKeiNo, kikiChgNo};
//		super.logPrint.printDebugLog("selectParam(機器提供サービス契約番号)：" +  selectParam[0]);
//		super.logPrint.printDebugLog("selectParam(機器変更番号)            ：" +  selectParam[1]);
//		
//		// サービス契約検索処理の実行。
//		executeDK_T_HAISO_KK_SELECT_008(selectParam);
//		
//		JBSbatCommonDBInterface outMap = db_DK_T_HAISO.selectNext();
//		
//		if (null == outMap)
//		{
//			super.logPrint.printDebugLog("outMap IS NULL");
//		}
//		else
//		{
//			// 検索結果の配送完了年月日をフィールド変数に設定する。
//			kjnYmd = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatDK_T_HAISO.HAISO_FIN_YMD)); 
//			
//			if (!"".equals(kjnYmd))
//			{
//				vaShkaYmd = kjnYmd; 
//				
//				super.logPrint.printDebugLog("基準日：：" +  kjnYmd);
//				super.logPrint.printDebugLog("VA出荷日：" +  vaShkaYmd);
//			}
//			else
//			{
//				super.logPrint.printDebugLog("JBSbatDK_T_HAISO.HAISO_FIN_YMD IS NULL");
//			}
//		}
//		
//		super.logPrint.printDebugLog("getHaisoFinYmd_END");
//	}
/* ++++++++++ v8.00.04 削除終了 ++++++++++ */
	/**
	 * 
	 * NTT局内工事年月日の取得を行います。
	 * 
	 * @throws Exception  メソッド内で発生した例外全般。
	 */
	/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//	private void getNttKyokuNaiKojiYmd() throws Exception
	private String getNttKyokuNaiKojiYmd() throws Exception
	/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
	{
		// フィールド変数の初期化
		/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//		kjnYmd = "";
		String kjnYmd = "";
		/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
		
		// SQL実行結果取得用mapを生成（ADSL工事）
		JBSbatCommonDBInterface adslKojiMap = new JBSbatCommonDBInterface(); 
		
		// SQL定義キー（KK_T_ADSL_KOJI.KK_SELECT_001）を実行する
		// 下記パラメータを設定
		// (1)サービス契約番号 = KK_T_SVC_KEI.KK_SELECT_036.SVC_KEI_NO
		String [] selectParam = {svcKeiNo};
		super.logPrint.printDebugLog("selectParam(サービス契約番号)：" +  selectParam[0]);
		executeKK_T_ADSL_KOJI_KK_SELECT_001(selectParam);
		// 実行結果より下記項目を取得し、基準日として設定
		// 検索結果を取得する
		for(adslKojiMap = db_KK_T_ADSL_KOJI.selectNext(); null != adslKojiMap ; adslKojiMap = db_KK_T_ADSL_KOJI.selectNext())
		{
			// 検索結果の NTT局内工事年月日を基準日として設定する。
			kjnYmd = JBSbatStringUtil.Rtrim(adslKojiMap.getString(JBSbatKK_T_ADSL_KOJI.NTT_KYOKU_NAI_KOJI_YMD)); 
		}
		/* ++++++++++ v22.00.02 追加開始 ++++++++++ */
		return kjnYmd;
		/* ++++++++++ v22.00.02 追加終了 ++++++++++ */
	}
	
	/**
	 * 
	 * 番ポ工事完了日の取得を行います。
	 * @throws Exception 
	 * 
	 * @throws Exception  メソッド内で発生した例外全般。
	 */
	/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//	private void getBmpKojiFinYmd() throws Exception
	private String getBmpKojiFinYmd() throws Exception
	/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
	{
		// フィールド変数の初期化
		/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//		kjnYmd = "";
		String kjnYmd = "";
		/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
		
		// SQL実行結果取得用mapを生成（番ポ工事）
		JBSbatCommonDBInterface bmpKojiMap = new JBSbatCommonDBInterface(); 
		
		// SQL定義キー（TU_T_BMP_KOJI.TU_SELECT_001）を実行する
		// 下記パラメータを設定
		// (1)サービス契約内訳番号 = KK_T_SVC_KEI_UCWK.KK_SELECT_011.SVC_KEI_UCWK_NO
		String [] selectParam = {svcKeiUcwkNo};
		super.logPrint.printDebugLog("selectParam(サービス契約内訳番号)：" +  selectParam[0]);
		executeTU_T_BMP_KOJI_KK_SELECT_001(selectParam);
		// 実行結果より下記項目を取得し、基準日として設定
		// 検索結果を取得する
		for(bmpKojiMap = db_TU_T_BMP_KOJI.selectNext(); null != bmpKojiMap ; bmpKojiMap = db_TU_T_BMP_KOJI.selectNext())
		{
			// 検索結果の番ポ工事完了日を基準日として設定する。
			kjnYmd = JBSbatStringUtil.Rtrim(bmpKojiMap.getString(JBSbatTU_T_BMP_KOJI.BMP_KOJI_FIN_YMD)); 
		}
		/* ++++++++++ v22.00.02 追加開始 ++++++++++ */
		return kjnYmd;
		/* ++++++++++ v22.00.02 追加終了 ++++++++++ */
	}
	
	/**
	 * 
	 * サービス利用希望年月日の取得を行います。
	 * 
	 * @throws Exception  メソッド内で発生した例外全般。
	 */
	/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//	private void getSvcUseStaKiboYmd() throws Exception
	private String getSvcUseStaKiboYmd() throws Exception
	/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
	{
		// フィールド変数の初期化
		/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//		priorityStdYmd = "";
		String priorityStdYmd = "";
		/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
		
		// SQL実行結果取得用mapを生成（サービス契約）
		JBSbatCommonDBInterface svcKeiMap = new JBSbatCommonDBInterface(); 
		
		// SQL定義キー（KK_T_SVC_KEI.KK_SELECT_037）を実行する
		// 下記パラメータを設定
		// (1)サービス契約番号 = KK_T_SVC_KEI.KK_SELECT_036.SVC_KEI_NO
		// (2)予約適用年月日   = バッチ運用日
		String [] selectParam = {svcKeiNo, commonItem.getOpeDate()};
		super.logPrint.printDebugLog("selectParam(サービス契約番号)：" +  selectParam[0]);
		super.logPrint.printDebugLog("selectParam(予約適用年月日)：：" +  selectParam[1]);
		executeKK_T_SVC_KEI_KK_SELECT_037(selectParam);
		// 実行結果より下記項目を取得し、基準日として設定
		// 検索結果を取得する
		for(svcKeiMap = db_KK_T_SVC_KEI.selectNext(); null != svcKeiMap ; svcKeiMap = db_KK_T_SVC_KEI.selectNext())
		{
			// 検索結果の サービス利用希望年月日を基準日として設定する。
			priorityStdYmd = JBSbatStringUtil.Rtrim(svcKeiMap.getString(JBSbatKK_T_SVC_KEI.SVC_USE_STA_KIBO_YMD)); 
			super.logPrint.printDebugLog("サービス利用希望年月日：" +  priorityStdYmd);
		}
		/* ++++++++++ v22.00.02 追加開始 ++++++++++ */
		return priorityStdYmd;
		/* ++++++++++ v22.00.02 追加終了 ++++++++++ */
	}
	
	/**
	 * 
	 * 電話用VLANオーダ結果取込年月日時分秒の取得を行います。
	 * 
	 * @throws Exception  メソッド内で発生した例外全般。
	 */
	/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//	private void getTelVlanOdrRsltTrkmDtm() throws Exception
	private String getTelVlanOdrRsltTrkmDtm() throws Exception
	/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
	{
		// フィールド変数の初期化
		/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//		priorityStdYmd = "";
		String priorityStdYmd = "";
		/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
		vlanIdStkuYmd  = "";
		
		// サービス契約回線内訳.電話VLAN-ID取込年月日が設定されている場合、優先基準日として設定します。
		if (!"".equals(telVlanIdTrkmYmd))
		{
			priorityStdYmd = telVlanIdTrkmYmd;
			vlanIdStkuYmd  = priorityStdYmd;
			super.logPrint.printDebugLog("優先基準日：：：：" + priorityStdYmd);
			super.logPrint.printDebugLog("VLANID取得年月日：" + vlanIdStkuYmd);
		}
		/* ++++++++++ v22.00.02 追加開始 ++++++++++ */
		return priorityStdYmd;
		/* ++++++++++ v22.00.02 追加終了 ++++++++++ */
	}
	
	
	/**
	 * 
	 * 運用日の設定を行います。
	 * 
	 * @throws Exception  メソッド内で発生した例外全般。
	 */
	/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//	private void getOpeDatePlus0() throws Exception
	private String getOpeDatePlus0() throws Exception
	/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
	{
		// フィールド変数の初期化
		/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//		priorityStdYmd = "";
		String priorityStdYmd = "";
		/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
		
		priorityStdYmd = commonItem.getOpeDate();
		super.logPrint.printDebugLog("getOpeDatePlus10　優先基準日：：：：" + priorityStdYmd);
		
		/* ++++++++++ v22.00.02 追加開始 ++++++++++ */
		return priorityStdYmd;
		/* ++++++++++ v22.00.02 追加終了 ++++++++++ */

	}	
	
	/**
	 * 
	 * 運用日+10日の設定を行います。
	 * 
	 * @throws Exception  メソッド内で発生した例外全般。
	 */
	/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//	private void getOpeDatePlus10() throws Exception
	private String getOpeDatePlus10() throws Exception
	/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
	{
		// フィールド変数の初期化
		/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//		priorityStdYmd = "";
		String priorityStdYmd = "";
		/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
		
		priorityStdYmd = JBSbatDateUtil.adjustDate(commonItem.getOpeDate(), Integer.parseInt("10"));
		super.logPrint.printDebugLog("getOpeDatePlus10　優先基準日：：：：" + priorityStdYmd);

		/* ++++++++++ v22.00.02 追加開始 ++++++++++ */
		return priorityStdYmd;
		/* ++++++++++ v22.00.02 追加終了 ++++++++++ */
	}
	
	/**
	 * 
	 * 
	 * ルール呼出結果による中間ファイル出力判定を行い、基準日を取得します。
	 * 
	 * @return String　基準日
	 * @throws Exception  メソッド内で発生した例外全般。
	 */
	// ++++++++++ v22.00.02 変更開始 ++++++++++
//	private boolean isOutputKkifm050() throws Exception
	private String getOutputKjnYmd(String kjnYmd, String priorityStdYmd) throws Exception
	// ++++++++++ v22.00.02 変更終了 ++++++++++
	{
		kkifm039OutputFlg = false;
		// ++++++++++ v9.00.00 追加開始 ++++++++++
		kkifm569006OutputFlg = false;
		// ++++++++++ v9.00.00 追加終了 ++++++++++
		/* ++++++++++ v22.00.02 追加開始 ++++++++++ */
		boolean isOutputKkifm050 = false;
		/* ++++++++++ v22.00.02 追加終了 ++++++++++ */
		
		if(!"".equals(kjnYmd) && !"".equals(relativeDateCount))
		{
			// 提供方式契約番号が設定されているかつ、提供方式契約．サービス開始日が未設定の場合
			if(!"".equals(tkHoshikiKeiNo) && "".equals(tkHoshikiKeiSvcStaYmd))
			{
				super.logPrint.printDebugLog("◆マンション：提供方式契約番号有り&提供方式契約サービス開始日が未設定：サービス開始対象外");
				// サービス開始対象外とする。
				/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//				return false;
				return null;
				/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
			}
			
			//取得した基準日に基準日からの相対日を追加する。
			kjnYmd = JBSbatDateUtil.adjustDate(kjnYmd, Integer.parseInt(relativeDateCount));
			super.logPrint.printDebugLog("基準日＋相対日  ：" +  kjnYmd);
			
			
			// 6.1.ルール結果.基準日が"3:配送年月日"かつ"5:VLAN-ID取込日、サービス開始年月日との大きい方"でなく、優先基準日が"0:なし"の場合
			if((!"3".equals(stdDt) && !"5".equals(stdDt)) && "0".equals(priorityStdDt))
			{
				super.logPrint.printDebugLog("運用年月日 + 1日：" +  Integer.parseInt(JBSbatDateUtil.adjustDate(commonItem.getOpeDate(), Integer.parseInt("1"))));
				
				// 基準日+基準日からの相対日(実日もしくは営業日) <= 運用年月日 + 1日 であれば、サービス開始登録対象とする。
				if(Integer.parseInt(kjnYmd) 
					<= Integer.parseInt(JBSbatDateUtil.adjustDate(commonItem.getOpeDate(), Integer.parseInt("1"))))
				{
					/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//					return true;
					isOutputKkifm050 = true;
					/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
				}
			}
			// 6.2.優先基準日が設定されていた場合
			else
			{
				// 検索条件としてサービス契約内訳番号を設定。
				String [] selectParam = {svcKeiUcwkNo, commonItem.getOpeDate()};
				
				// サービス契約内訳<eo光電話>検索処理の実行。
				executeKK_T_SVKEIUW_EOH_TEL_KK_SELECT_016(selectParam);
				
				JBSbatCommonDBInterface outMap = db_KK_T_SVKEIUW_EOH_TEL.selectNext();
				
				firstCdrHasseiYmd = "";
				
				if(null != outMap && !"".equals(JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SVKEIUW_EOH_TEL.FIRST_CDR_HASSEI_YMD))))
				{
					
					// 検索結果から「初回CDR発生年月日」を取得します。
					firstCdrHasseiYmd = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SVKEIUW_EOH_TEL.FIRST_CDR_HASSEI_YMD)) ;
					super.logPrint.printDebugLog("firstCdrHasseiYmd：" +  firstCdrHasseiYmd);
				}
				else
				{
					super.logPrint.printDebugLog("初回CDR発生年月日設定値なし");
				}
				
				//初回CDR発生年月日の利用フラグの初期化
				boolean firstCdrHasseiYmd_useFlg = false;
				
				// ルール結果.基準日が"3:配送年月日"、優先基準日が"2:VLAN-ID取込日"の場合
				if("3".equals(stdDt) && "2".equals(priorityStdDt))
				{
					super.logPrint.printDebugLog("vaShkaYmd：：：" +  vaShkaYmd);
					super.logPrint.printDebugLog("vlanIdStkuYmd：" +  vlanIdStkuYmd);
					
					// VA出荷日とVLANID取得日が設定されている場合
					if(!"".equals(vaShkaYmd) && !"".equals(vlanIdStkuYmd))
					{
						String kariStaYmd = "";
						// VA出荷日+基準日からの相対日(実日もくしは営業日) >= VLANID取得日の場合
						if(Integer.parseInt(kjnYmd) >= Integer.parseInt(vlanIdStkuYmd))
						{
							//仮開始日として、VA出荷日+基準日からの相対日(実日もくしか営業日)を設定
							kariStaYmd = kjnYmd;
						}
						// VA出荷日+基準日からの相対日(実日もくしは営業日) < VLANID取得日の場合
						else
						{
							//仮開始日として、VLANID取得日を設定
							kariStaYmd = vlanIdStkuYmd;
						}
						super.logPrint.printDebugLog("仮開始日 ：：：：" +  kariStaYmd);
						super.logPrint.printDebugLog("初回CDR発生年月日：" +  firstCdrHasseiYmd);
						
						if (!"".equals(firstCdrHasseiYmd))
						{
							// 仮開始日 <= 初回CDR発生年月日の場合
							if(Integer.parseInt(kariStaYmd) <= Integer.parseInt(firstCdrHasseiYmd))
							{
								//基準日として仮開始日を設定
								kjnYmd = kariStaYmd;
							}
							// 仮開始日 > 初回CDR発生年月日の場合
							else
							{
								//基準日として初回CDR発生年月日を設定
								kjnYmd = firstCdrHasseiYmd;
								//初回CDR発生年月日の利用フラグを設定
								firstCdrHasseiYmd_useFlg = true;
							}
							super.logPrint.printDebugLog("基準日（kjnYmd）：：：" +  kjnYmd);
							super.logPrint.printDebugLog("運用年月日+1日：" +  JBSbatDateUtil.adjustDate(commonItem.getOpeDate(), Integer.parseInt("1")));
							// 基準日 <= 運用年月日 + 1日であれば、サービス開始登録対象とする。
							if(Integer.parseInt(kjnYmd) <= Integer.parseInt(JBSbatDateUtil.adjustDate(commonItem.getOpeDate(), Integer.parseInt("1"))))
							{
								if(firstCdrHasseiYmd_useFlg)
								{
									// 工事進捗遅延対象ファイル出力フラグを設定する。
									kkifm039OutputFlg = true;
									
									// ++++++++++ v8.00.05 修正開始 ++++++++++
									// 機器オプションサービス契約（ＶＡ）抽出ファイル出力フラグを設定する。
									kkifm569006OutputFlg = true;
									// ++++++++++ v8.00.05 修正終了 ++++++++++
									
									super.logPrint.printDebugLog("KKIFM039_Output：" +  svcKeiNo);
								}
								/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//								return true;
								isOutputKkifm050 = true;
								/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
							}
						}
						// 初回CDR発生年月日設定なし
						else
						{
							// 仮開始日 <= 運用年月日 + 1日であれば、サービス開始登録対象とする。
							if(Integer.parseInt(kariStaYmd) 
									<= Integer.parseInt(JBSbatDateUtil.adjustDate(commonItem.getOpeDate(), Integer.parseInt("1"))))
							{
								kjnYmd = kariStaYmd;
								/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//								return true;
								isOutputKkifm050 = true;
								/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
							}
						}
					}
				}
				// ルール結果.基準日が"3:配送年月日"または"5:番ポ工事完了年月日"、優先基準日が"0:なし"の場合　または
				// ルール結果.基準日が"0:照査年月日"、優先基準日が"6:運用日+10日"の場合　（※１パターン）
				else if((("3".equals(stdDt) || "5".equals(stdDt)) && "0".equals(priorityStdDt)) || ("0".equals(stdDt) && "6".equals(priorityStdDt)))
				{
					super.logPrint.printDebugLog("vaShkaYmd：：：" +  vaShkaYmd);
					super.logPrint.printDebugLog("vlanIdStkuYmd：" +  vlanIdStkuYmd);
					
					if (!"".equals(firstCdrHasseiYmd))
					{
						super.logPrint.printDebugLog("基準日（kjnYmd）：：：" +  kjnYmd);
						super.logPrint.printDebugLog("初回CDR発生年月日：" +  firstCdrHasseiYmd);
						
						// +++++++++++++ v8.00.03 修正開始 ++++++++++++++++++++
						// 基準日 = "5:番ポ工事完了年月日"
//						if("5".equals(stdDt))
//						{
//							// 配送完了年月日取得
//							// 配送完了年月日+10日
//							String haisoFinYmd = getHaisoFinYmdPlus10();
//							
//							super.logPrint.printDebugLog("★配送完了年月日+10日：：：" +  haisoFinYmd);
//							
//							// 配送完了
//							if(!"".equals(haisoFinYmd))
//							{
//								// 配送完了+10日>初回CDR発生年月日
//								if(Integer.parseInt(haisoFinYmd) > Integer.parseInt(firstCdrHasseiYmd))
//								{
//									// 配送完了+10日に初回CDR発生年月日を設定
//									haisoFinYmd = firstCdrHasseiYmd;
//									
//									//初回CDR発生年月日の利用フラグを設定
//									firstCdrHasseiYmd_useFlg = true;
//									
//								}
//							}
//							
//							// 電話用VLANオーダ結果取込年月日時分秒の取得
//							getTelVlanOdrRsltTrkmDtm();
//							
//							// VLAN-ID取得日が空白処理対象外
//							if("".equals(vlanIdStkuYmd))
//							{
//								super.logPrint.printDebugLog("★VLAN-ID取得日が空白処理対象外：：：" +  svcKeiNo);
//								
//								return false;
//							}
//							
//							super.logPrint.printDebugLog("★VLAN-ID取得日：：：" +  priorityStdYmd);
//							
//							// 基準日を補正します
//							// VLAN-ID取込済
//							if(!"".equals(priorityStdYmd))
//							{
//								// 基準日 < VLAN-ID取得日の場合
//								if(Integer.parseInt(kjnYmd) < Integer.parseInt(priorityStdYmd))
//								{
//									// VLAN-ID取得日を基準日とします
//									kjnYmd = priorityStdYmd;
//								}
//							}
//							
//							// 配送完了
//							if(!"".equals(haisoFinYmd))
//							{
//								// 基準日 < 配送完了年月日+10日の場合、配送完了年月日+10日を基準日とします
//								if(Integer.parseInt(kjnYmd) < Integer.parseInt(haisoFinYmd))
//								{
//									// 配送完了年月日+10日を基準日とします
//									kjnYmd = haisoFinYmd;
//								}
//								else
//								{
//									// 初回CDR発生年月日の利用フラグ
//									firstCdrHasseiYmd_useFlg = false;
//								}
//							}
//							
//							// 基準日 <= 運用年月日 + 1日であれば、サービス開始登録対象とする。
//							if(Integer.parseInt(kjnYmd) <= Integer.parseInt(JBSbatDateUtil.adjustDate(commonItem.getOpeDate(), Integer.parseInt("1"))))
//							{
//								//初回CDR発生年月日を利用している場合
//								if(firstCdrHasseiYmd_useFlg)
//								{
//									// 工事進捗遅延対象ファイル出力フラグを設定する。
//									kkifm039OutputFlg = true;
//									super.logPrint.printDebugLog("KKIFM039_Output：" +  svcKeiNo);
//								}
//								
//								return true;
//							}
//							
//						}
//						else
//						{
//							// 基準日 > 初回CDR発生年月日の場合
//							if(Integer.parseInt(kjnYmd) > Integer.parseInt(firstCdrHasseiYmd))
//							{
//								//基準日として初回CDR発生年月日を設定
//								kjnYmd = firstCdrHasseiYmd;
//								//初回CDR発生年月日の利用フラグを設定
//								firstCdrHasseiYmd_useFlg = true;
//							}
//							super.logPrint.printDebugLog("基準日（kjnYmd）：：：" +  kjnYmd);
//							super.logPrint.printDebugLog("運用年月日+1日：" +  JBSbatDateUtil.adjustDate(commonItem.getOpeDate(), Integer.parseInt("1")));
//							// 基準日 <= 運用年月日 + 1日であれば、サービス開始登録対象とする。
//							if(Integer.parseInt(kjnYmd) <= Integer.parseInt(JBSbatDateUtil.adjustDate(commonItem.getOpeDate(), Integer.parseInt("1"))))
//							{
//								//初回CDR発生年月日を利用している場合
//								if(firstCdrHasseiYmd_useFlg)
//								{
//									// 工事進捗遅延対象ファイル出力フラグを設定する。
//									kkifm039OutputFlg = true;
//									super.logPrint.printDebugLog("KKIFM039_Output：" +  svcKeiNo);
//								}
//								return true;
//							}
//						}
						// 基準日 > 初回CDR発生年月日の場合
						if(Integer.parseInt(kjnYmd) > Integer.parseInt(firstCdrHasseiYmd))
						{
							//基準日として初回CDR発生年月日を設定
							kjnYmd = firstCdrHasseiYmd;
							//初回CDR発生年月日の利用フラグを設定
							firstCdrHasseiYmd_useFlg = true;
						}
						super.logPrint.printDebugLog("基準日（kjnYmd）：：：" +  kjnYmd);
						super.logPrint.printDebugLog("運用年月日+1日：" +  JBSbatDateUtil.adjustDate(commonItem.getOpeDate(), Integer.parseInt("1")));
						// 基準日 <= 運用年月日 + 1日であれば、サービス開始登録対象とする。
						if(Integer.parseInt(kjnYmd) <= Integer.parseInt(JBSbatDateUtil.adjustDate(commonItem.getOpeDate(), Integer.parseInt("1"))))
						{
							//初回CDR発生年月日を利用している場合
							if(firstCdrHasseiYmd_useFlg)
							{
								// 工事進捗遅延対象ファイル出力フラグを設定する。
								kkifm039OutputFlg = true;
								
								// ++++++++++ v8.00.05 修正開始 ++++++++++
								// 機器オプションサービス契約（ＶＡ）抽出ファイル出力フラグを設定する。
								kkifm569006OutputFlg = true;
								// ++++++++++ v8.00.05 修正終了 ++++++++++
								
								super.logPrint.printDebugLog("KKIFM039_Output：" +  svcKeiNo);
							}
							/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//							return true;
							isOutputKkifm050 = true;
							/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
						}
						// +++++++++++++ v8.00.03 修正終了 ++++++++++++++++++++
					}
					else
					{
						super.logPrint.printDebugLog("★ルール結果---->基準日★：" +  stdDt);
						super.logPrint.printDebugLog("★優先基準日★：" +  priorityStdDt);
						super.logPrint.printDebugLog("★基準日★：" +  kjnYmd);
						super.logPrint.printDebugLog("★サービス契約内訳番号★：" +  svcKeiUcwkNo);
						super.logPrint.printDebugLog("★申込時点 異動区分★：" +  ido_div_init);
						
						// 基準日 = "5:番ポ工事完了年月日"
						if("5".equals(stdDt))
						{
							// +++++++++++++ v8.00.03 削除開始 ++++++++++++++++++++
//							// 電話用VLANオーダ結果取込年月日時分秒の取得
//							getTelVlanOdrRsltTrkmDtm();
//							
//							// VLAN-ID取得日が空白処理対象外
//							if("".equals(vlanIdStkuYmd))
//							{
//								super.logPrint.printDebugLog("★VLAN-ID取得日が空白処理対象外：：：" +  svcKeiNo);
//								
//								return false;
//							}
//							
//							// 配送完了年月日取得
//							// 配送完了年月日+10日
//							String haisoFinYmd = getHaisoFinYmdPlus10();
//							
//							super.logPrint.printDebugLog("★配送完了年月日+10日：：：" +  haisoFinYmd);
//							super.logPrint.printDebugLog("★VLAN-ID取得日：：：" +  priorityStdYmd);
//							
//							// 基準日を補正します
//							// VLAN-ID取込済
//							if(!"".equals(priorityStdYmd))
//							{
//								// 基準日 < VLAN-ID取得日の場合
//								if(Integer.parseInt(kjnYmd) < Integer.parseInt(priorityStdYmd))
//								{
//									// VLAN-ID取得日を基準日とします
//									kjnYmd = priorityStdYmd;
//								}
//							}
//							
//							// 配送完了
//							if(!"".equals(haisoFinYmd))
//							{
//								// 基準日 < 配送完了年月日+10日の場合、配送完了年月日+10日を基準日とします
//								if(Integer.parseInt(kjnYmd) < Integer.parseInt(haisoFinYmd))
//								{
//									// 配送完了年月日+10日を基準日とします
//									kjnYmd = haisoFinYmd;
//								}
//							}
							// +++++++++++++ v8.00.03 削除終了 ++++++++++++++++++++
							
							// 基準日+基準日からの相対日(実日もしくは営業日) <= 運用年月日 + 1日 であれば、サービス開始登録対象とする。
							if(Integer.parseInt(kjnYmd) 
								<= Integer.parseInt(JBSbatDateUtil.adjustDate(commonItem.getOpeDate(), Integer.parseInt("1"))))
							{
								/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//								return true;
								isOutputKkifm050 = true;
								/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
							}
						}
						else
						{
							// 異動区分 ="00001:新規契約"、"00002:サービス追加"、"光電話・番号追加"
							// ++++++++++ v22.00.01 変更開始 ++++++++++
//							if("00001".equals(ido_div_init) || "00002".equals(ido_div_init) || "00041".equals(ido_div_init))
							if(JBSbatKKConst.CD00576_IDO_DIV_00001.equals(ido_div_init) || JBSbatKKConst.CD00576_IDO_DIV_00002.equals(ido_div_init) || JBSbatKKConst.CD00576_IDO_DIV_00041.equals(ido_div_init))
							// ++++++++++ v22.00.01 変更終了 +++++++++
							{
								// 優先基準日 != "2"
								if(!"2".equals(priorityStdDt))
								{
									// 電話用VLANオーダ結果取込年月日時分秒の取得
									/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//									getTelVlanOdrRsltTrkmDtm();
									priorityStdYmd = getTelVlanOdrRsltTrkmDtm();
									/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
									
									// VLAN-ID取得日が空白処理対象外
									if("".equals(vlanIdStkuYmd))
									{
										super.logPrint.printDebugLog("◆VLAN-ID取得日が空白処理対象外：：：" +  svcKeiNo);
										
										/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//										return false;
										return null;
										/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
									}
								}
								
								// VLAN-ID取込年月日
								if(!"".equals(priorityStdYmd))
								{
									//基準日+基準日からの相対日(実日もくしか営業日) か 優先基準日の大きな日付 <= 運用年月日 + 1日であれば、
									//サービス開始登録対象とする。
									String checkYmd = "";
									if(Integer.parseInt(kjnYmd) >= Integer.parseInt(priorityStdYmd))
									{
										checkYmd = kjnYmd;
									}
									else
									{
										checkYmd = priorityStdYmd;
									}
									
/* ++++++++++ v8.00.04 追加開始 ++++++++++ */
									
									/* ++++++++++ v8.00.07 追加開始 ++++++++++ */
									String haisoYmd = getHaisoFinYmd();
									/* ++++++++++ v8.00.07 追加終了 ++++++++++ */
									
									/* ++++++++++ v8.00.07 修正開始 ++++++++++ */
									// 配送完了年月日取得
									// 配送完了年月日+10日
//									String haisoFinYmd = JBSbatDateUtil.adjustDate(kjnYmd, 10);
									String haisoFinYmd = JBSbatDateUtil.adjustDate(haisoYmd, 10);
									/* ++++++++++ v8.00.07 修正終了 ++++++++++ */
									
									// 配送完了
									if(!"".equals(haisoFinYmd))
									{
										// 基準日 < 配送完了年月日+10日の場合、配送完了年月日+10日を基準日とします
										if(Integer.parseInt(checkYmd) < Integer.parseInt(haisoFinYmd))
										{
											// 配送完了年月日+10日を基準日とします
											checkYmd = haisoFinYmd;
										}
									}
/* ++++++++++ v8.00.04 追加終了 ++++++++++ */
									super.logPrint.printDebugLog("仮開始日（checkYmd）：：：" +  checkYmd);
									super.logPrint.printDebugLog("運用年月日+1日：" +  JBSbatDateUtil.adjustDate(commonItem.getOpeDate(), Integer.parseInt("1")));
									
									// 基準日+基準日からの相対日(実日もしくは営業日) <= 運用年月日 + 1日 であれば、サービス開始登録対象とする。
									if(Integer.parseInt(checkYmd) 
											<= Integer.parseInt(JBSbatDateUtil.adjustDate(commonItem.getOpeDate(), Integer.parseInt("1"))))
									{
										kjnYmd = checkYmd;
										/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//										return true;
										isOutputKkifm050 = true;
										/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
									}
								}
							}
							else
							{
								// 基準日+基準日からの相対日(実日もしくは営業日) <= 運用年月日 + 1日 であれば、サービス開始登録対象とする。
								if(Integer.parseInt(kjnYmd) 
									<= Integer.parseInt(JBSbatDateUtil.adjustDate(commonItem.getOpeDate(), Integer.parseInt("1"))))
								{
									/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//									return true;
									isOutputKkifm050 = true;
									/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
								}
							}
						}
					}
				}
				// 上記ルール結果以外の場合
				else
				{
					super.logPrint.printDebugLog("priorityStdYmd：" +  priorityStdYmd);
					//優先基準日に日付が設定されている場合
					if(!"".equals(priorityStdYmd))
					{
						//基準日+基準日からの相対日(実日もくしか営業日) か 優先基準日の大きな日付 <= 運用年月日 + 1日であれば、
						//サービス開始登録対象とする。
						String checkYmd = "";
						if(Integer.parseInt(kjnYmd) >= Integer.parseInt(priorityStdYmd))
						{
							checkYmd = kjnYmd;
						}
						else
						{
							checkYmd = priorityStdYmd;
						}
						
						super.logPrint.printDebugLog("仮開始日（checkYmd）：：：" +  checkYmd);
						super.logPrint.printDebugLog("運用年月日+1日：" +  JBSbatDateUtil.adjustDate(commonItem.getOpeDate(), Integer.parseInt("1")));
						
						if(Integer.parseInt(checkYmd) 
								<= Integer.parseInt(JBSbatDateUtil.adjustDate(commonItem.getOpeDate(), Integer.parseInt("1"))))
						{
							kjnYmd = checkYmd;
							/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//							return true;
							isOutputKkifm050 = true;
							/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
						}
					}
				}
			}
		}
		/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//		super.logPrint.printDebugLog("◆ルール呼出結果:サービス開始対象外");
//		return false;
		if (!isOutputKkifm050)
		{
			super.logPrint.printDebugLog("◆ルール呼出結果:サービス開始対象外");
			return null;
		}

		// マンション／メゾンの場合
		if (!"".equals(tkHoshikiKeiNo))
		{
			// サービス利用希望年月日、提供方式契約．サービス開始日による
			// 基準日の補正を行う。
			kjnYmd = mansionMaisonKjnYmdHosei(kjnYmd);

			// 補正した基準日 >= 運用年月日 + 1日の場合サービス開始対象外とする。
			if (Integer.parseInt(kjnYmd) > Integer.parseInt(JBSbatDateUtil.adjustDate(super.opeDate, Integer.parseInt("1"))))
			{
				return null;
			}
		}

		// 工事案件実施年月日による判定を行う。
		kjnYmd = getSvcStaTaishoKjnYmd(kjnYmd);
		
		return kjnYmd;
		/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
	}
	
	// +++++++++++++ v8.00.03 削除開始 ++++++++++++++++++++
//	/**
//	 * 
//	 * 配送完了年月日+10日の取得を行います。
//	 * @throws Exception 
//	 * 
//	 * 
//	 */
//	private String getHaisoFinYmdPlus10() throws Exception 
//	{
//		String result = "";
//		
//		// 検索条件としてバッチ運用日、サービス契約内訳番号、世代年月日時分秒を設定。
//		String [] selectParam = {commonItem.getOpeDate(), svcKeiUcwkNo, svcKeiUcwkGeneAdd};
//		
//		super.logPrint.printDebugLog("selectParam_KK_SELECT_115(サービス契約内訳番号)：" +  selectParam[1]);
//		super.logPrint.printDebugLog("selectParam_KK_SELECT_115(世代登録年月日時分秒)：" +  selectParam[2]);
//		
//		// 機器提供サービス契約検索処理の実行。
//		executeKK_T_KKTK_SVC_KEI_KK_SELECT_115(selectParam);
//		
//		JBSbatCommonDBInterface outMap = db_KK_T_KKTK_SVC_KEI_115.selectNext();
//		
//		// 検索結果あり
//		if(null != outMap)
//		{
//			// 検索結果から「機器提供サービス契約番号」を取得します。
//			kktkSvcKeiNo = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_NO));
//			
//			// 検索結果から「機器変更番号」を取得します。
//			kikiChgNo = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_KKTK_SVC_KEI.KIKI_CHG_NO));
//			
//			
//			// 検索条件として機器提供サービス契約番号、機器変更番号を設定。
//			String [] selectParam1 = {kktkSvcKeiNo, kikiChgNo};
//			super.logPrint.printDebugLog("selectParam(機器提供サービス契約番号)：" +  selectParam[0]);
//			super.logPrint.printDebugLog("selectParam(機器変更番号)            ：" +  selectParam[1]);
//			
//			// サービス契約検索処理の実行。
//			executeDK_T_HAISO_KK_SELECT_008(selectParam1);
//			
//			JBSbatCommonDBInterface outMapHaiso = db_DK_T_HAISO.selectNext();
//			
//			// 検索結果あり
//			if(null != outMapHaiso)
//			{
//				//配送完了年月日
//				result = JBSbatStringUtil.Rtrim(outMapHaiso.getString(JBSbatDK_T_HAISO.HAISO_FIN_YMD));
//				
//				if(!"".equals(result))
//				{
//					// 配送完了年月日+10日
//					result = JBSbatDateUtil.adjustDate(result, 10);
//				}
//			}
//		}
//		
//		return result;
//	}
	// +++++++++++++ v8.00.03 削除終了 ++++++++++++++++++++

	/**
	 * 
	 * 対象サービス契約抽出ファイルの出力を行います。
	 * 
	 * @return outputBean JBSbatOutputItem
	 * @throws Exception  メソッド内で発生した例外全般。
	 */
	/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//	private JBSbatOutputItem createKkifm050(JBSbatOutputItem outputBean) throws Exception
	private void createKkifm050(JBSbatOutputItem outputBean, String kjnYmd) throws Exception
	/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
	{
		
		super.logPrint.printDebugLog("◇対象サービス契約抽出ファイルの出力：" +  svcKeiUcwkNo);
		//入出力インターフェースオブジェクトを生成
		JBSbatServiceInterfaceMap outmap = new JBSbatServiceInterfaceMap();
		
		//項目を設定
		outmap.setString(JBSbatKKIFM050.SRI_YMD, commonItem.getOpeDate());		// 処理年月日
		// ++++++++++ v22.00.01 変更開始 ++++++++++
//		outmap.setString(JBSbatKKIFM050.SVC_KIS_SRSB_CD, "10");					// サービス開始処理種別コード
//		outmap.setString(JBSbatKKIFM050.SVC_KIS_SRTI_CD, "20");					// サービス開始処理単位コード
		outmap.setString(JBSbatKKIFM050.SVC_KIS_SRSB_CD, JBSbatKKConst.KKIFM030_SVC_KIS_SRSB_CD_10);	// サービス開始処理種別コード
		outmap.setString(JBSbatKKIFM050.SVC_KIS_SRTI_CD, JBSbatKKConst.KKIFM030_SVC_KIS_SRTI_CD_20);	// サービス開始処理単位コード
		// ++++++++++ v22.00.01 変更終了 +++++++++
		outmap.setString(JBSbatKKIFM050.SVC_KEI_NO, "");						// サービス契約番号
		outmap.setString(JBSbatKKIFM050.SVC_KEI_UCWK_NO, svcKeiUcwkNo);			// サービス契約内訳番号
		outmap.setString(JBSbatKKIFM050.KJN_YMD, kjnYmd);						// 基準年月日
		
		//出力フラグを設定
		outmap.setOutFlg(true);
		//出力共通電文に入出力インターフェースを設定する。
		outputBean.addOutMapList(outmap);
		/* ++++++++++ v22.00.02 削除開始 ++++++++++ */
//		//出力共通電文を返却
//		return outputBean;
		/* ++++++++++ v22.00.02 削除終了 ++++++++++ */
	}
	
	/**
	 * 
	 * 検索結果の情報をフィールド変数に転記します。
	 * 
	 * @param  kojiakMap JBSbatCommonDBInterface
	 * @param  kojiakMap2 JBSbatCommonDBInterface
	 * @throws Exception メソッド内で発生した例外全般。
	 */
	private void setKojiakInfo(JBSbatCommonDBInterface kojiakMap, JBSbatCommonDBInterface kojiakMap2) throws Exception 
	{
		// フィールド変数の初期化
		kojiakSbtCd = "";
		kojiakStat = "";
		kojiakJssiYmd = "";
		opmsKojiakRsltCd = "";
		/* ++++++++++ v10.00.00 追加開始 ++++++++++ */
		mansKojiakStatCd = "";
		/* ++++++++++ v10.00.00 追加終了 ++++++++++ */
		/* ++++++++++ v12.00.00 追加開始 ++++++++++ */
		vaKojiakSbtCd = "";
		vaKojiakStat = "";
		vaKojiakJssiYmd = "";
		vaOpmsKojiakRsltCd = "";
		vaMansKojiakStatCd = "";
		/* ++++++++++ v12.00.00 追加終了 ++++++++++ */
		
		if(null != kojiakMap)
		{
			kojiakSbtCd         = JBSbatStringUtil.Rtrim(kojiakMap.getString(JBSbatKU_T_KOJIAK.KOJIAK_SBT_CD));		// 工事案件種別コード
			kojiakStat          = JBSbatStringUtil.Rtrim(kojiakMap.getString(JBSbatKU_T_KOJIAK.KOJIAK_STAT));		// 工事案件ステータス
			kojiakJssiYmd       = JBSbatStringUtil.Rtrim(kojiakMap.getString(JBSbatKU_T_KOJIAK.KOJIAK_JSSI_YMD));	// 工事案件実施年月日
			opmsKojiakRsltCd    = JBSbatStringUtil.Rtrim(kojiakMap.getString(JBSbatKU_T_KOJIAK.OPMS_KOJIAK_RSLT_CD));// OPMS工事案件結果コード
			/* ++++++++++ v10.00.00 追加開始 ++++++++++ */
			mansKojiakStatCd  = JBSbatStringUtil.Rtrim(kojiakMap.getString(JBSbatKU_T_KOJIAK.MANS_KOJIAK_STAT_CD));		// マンション工事案件状態コード
			/* ++++++++++ v10.00.00 追加終了 ++++++++++ */
			super.logPrint.printDebugLog("サービス契約に紐付く工事案件種別コード：：" +  kojiakSbtCd);
			super.logPrint.printDebugLog("サービス契約に紐付く工事案件ステータス：：" +  kojiakStat);
			/* ++++++++++ v10.00.00 追加開始 ++++++++++ */
			super.logPrint.printDebugLog("サービス契約に紐付くﾏﾝｼｮﾝ工事案件状態 ：：" +  mansKojiakStatCd);
			/* ++++++++++ v10.00.00 追加終了 ++++++++++ */
			super.logPrint.printDebugLog("サービス契約に紐付く工事案件実施年月日：：" +  kojiakJssiYmd);
			super.logPrint.printDebugLog("サービス契約に紐付くOPMS工事案件結果  ：：" +  opmsKojiakRsltCd);
		}
		// ++++++++++ v8.00.06 修正開始 ++++++++++
		if(null != kojiakMap2)
		{
			// ++++++++++ v12.00.00 修正開始 ++++++++++
//			// kojiakMapから取得した値を上書く形でも問題ない。（kojiakMap、kojiakMap2の両方が存在する場合は、kojiakMapは過去の工事情報であるため）
//			kojiakSbtCd         = JBSbatStringUtil.Rtrim(kojiakMap2.getString(JBSbatKU_T_KOJIAK.KOJIAK_SBT_CD));		// 工事案件種別コード
//			kojiakStat          = JBSbatStringUtil.Rtrim(kojiakMap2.getString(JBSbatKU_T_KOJIAK.KOJIAK_STAT));			// 工事案件ステータス
//			kojiakJssiYmd       = JBSbatStringUtil.Rtrim(kojiakMap2.getString(JBSbatKU_T_KOJIAK.KOJIAK_JSSI_YMD));		// 工事案件実施年月日
//			opmsKojiakRsltCd    = JBSbatStringUtil.Rtrim(kojiakMap2.getString(JBSbatKU_T_KOJIAK.OPMS_KOJIAK_RSLT_CD));	// OPMS工事案件結果コード
//			/* ++++++++++ v10.00.00 追加開始 ++++++++++ */
//			mansKojiakStatCd  = JBSbatStringUtil.Rtrim(kojiakMap2.getString(JBSbatKU_T_KOJIAK.MANS_KOJIAK_STAT_CD));	// マンション工事案件状態コード
//			/* ++++++++++ v10.00.00 追加終了 ++++++++++ */
//			super.logPrint.printDebugLog("工事案件種別コード：：" +  kojiakSbtCd);
//			super.logPrint.printDebugLog("工事案件ステータス：：" +  kojiakStat);
//			/* ++++++++++ v10.00.00 追加開始 ++++++++++ */
//			super.logPrint.printDebugLog("マンション工事案件状態コード：：" +  mansKojiakStatCd);
//			/* ++++++++++ v10.00.00 追加終了 ++++++++++ */
//			super.logPrint.printDebugLog("工事案件実施年月日：：" +  kojiakJssiYmd);
//			super.logPrint.printDebugLog("OPMS工事案件結果コード：：" +  opmsKojiakRsltCd);
			vaKojiakSbtCd       = JBSbatStringUtil.Rtrim(kojiakMap2.getString(JBSbatKU_T_KOJIAK.KOJIAK_SBT_CD));		// 工事案件種別コード
			vaKojiakStat        = JBSbatStringUtil.Rtrim(kojiakMap2.getString(JBSbatKU_T_KOJIAK.KOJIAK_STAT));			// 工事案件ステータス
			vaKojiakJssiYmd     = JBSbatStringUtil.Rtrim(kojiakMap2.getString(JBSbatKU_T_KOJIAK.KOJIAK_JSSI_YMD));		// 工事案件実施年月日
			vaOpmsKojiakRsltCd  = JBSbatStringUtil.Rtrim(kojiakMap2.getString(JBSbatKU_T_KOJIAK.OPMS_KOJIAK_RSLT_CD));	// OPMS工事案件結果コード
			vaMansKojiakStatCd  = JBSbatStringUtil.Rtrim(kojiakMap2.getString(JBSbatKU_T_KOJIAK.MANS_KOJIAK_STAT_CD));	// マンション工事案件状態コード
			super.logPrint.printDebugLog("電話に紐付く機器の工事案件種別コード  ：：" +  vaKojiakSbtCd);
			super.logPrint.printDebugLog("電話に紐付く機器の工事案件ステータス  ：：" +  vaKojiakStat);
			super.logPrint.printDebugLog("電話に紐付く機器のﾏﾝｼｮﾝ工事案件状態   ：：" +  vaMansKojiakStatCd);
			super.logPrint.printDebugLog("電話に紐付く機器の工事案件実施年月日  ：：" +  vaKojiakJssiYmd);
			super.logPrint.printDebugLog("電話に紐付く機器のOPMS工事案件結果    ：：" +  vaOpmsKojiakRsltCd);
			// ++++++++++ v12.00.00 修正終了 ++++++++++
		}
		// ++++++++++ v8.00.06 修正終了 ++++++++++
	}
	
	/**
	 * 
	 * 工事進捗遅延対象ファイルの出力を行います。
	 * 
	 * @return outputBean JBSbatOutputItem
	 * @throws Exception  メソッド内で発生した例外全般。
	 */
	/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//	private JBSbatOutputItem createKkifm039(JBSbatOutputItem outputBean) throws Exception 
	private void createKkifm039(JBSbatOutputItem outputBean, String kjnYmd) throws Exception 
	/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
	{
		super.logPrint.printDebugLog("◇工事進捗遅延対象ファイルの出力：" +  svcKeiNo);
		//入出力インターフェースオブジェクトを生成
		JBSbatServiceInterfaceMap outmap = new JBSbatServiceInterfaceMap();
		
		//項目を設定
		outmap.setString(JBSbatKKIFM039.SVC_KEI_NO, svcKeiNo);						// サービス契約番号
		outmap.setString(JBSbatKKIFM039.HSI_YMD, JBSbatDateUtil.getSystemDate());	// 補正年月日
		outmap.setString(JBSbatKKIFM039.SYSID, sysid);								// ＳＹＳＩＤ
		outmap.setString(JBSbatKKIFM039.SVC_STA_YMD, kjnYmd);						// サービス開始年月日
		outmap.setString(JBSbatKKIFM039.HKM_SVC_CHRG_STAYMD, "");					// 変更前サービス課金開始年月日
		outmap.setString(JBSbatKKIFM039.HKG_SVC_CHRG_STAYMD, "");					// 変更後サービス課金開始年月日
		// ++++++++++ v22.00.01 変更開始 ++++++++++
//		outmap.setString(JBSbatKKIFM039.HNK_KIN_CD, "30");							// 変更起因コード
		outmap.setString(JBSbatKKIFM039.HNK_KIN_CD, JBSbatKKConst.KKIFM039_HNK_KIN_CD_30);	// 変更起因コード
		// ++++++++++ v22.00.01 変更終了 +++++++++
		outmap.setString(JBSbatKKIFM039.SVC_CD, svcCd);								// サービスコード
		outmap.setString(JBSbatKKIFM039.PRC_GRP_CD, prcGrpCd);						// 料金グループコード
		outmap.setString(JBSbatKKIFM039.PCRS_CD, pcrsCd);							// 料金コースコード
		outmap.setString(JBSbatKKIFM039.PPLAN_CD, pplanCd);							// 料金プランコード
		
		//出力フラグを設定
		outmap.setOutFlg(true);
		//出力共通電文に入出力インターフェースを設定する。
		outputBean.addOutMapList_2(outmap);
		/* ++++++++++ v22.00.02 削除開始 ++++++++++ */
//		//出力共通電文を返却
//		return outputBean;
		/* ++++++++++ v22.00.02 削除終了 ++++++++++ */
	}
	
	/**
	 * RULE073結果によりサービス開始対象となった場合に工事案件より工事案件実施年月日で
	 * サービス開始対象かどうかの判定を行い、基準日を取得します。
	 * 
	 * @return String　基準日
	 * @throws Exception 
	 */
	/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//	private boolean isSvcStaTaisho() throws Exception
	private String getSvcStaTaishoKjnYmd(String kjnYmd) throws Exception
	/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
	{
		/* ++++++++++ v22.00.02 追加開始 ++++++++++ */
		kkifm050OutputFlg = false;
		/* ++++++++++ v22.00.02 追加終了 ++++++++++ */
		/* ++++++++++ v10.00.02 削除開始 ++++++++++ */
//		// マンションの場合(光配線)サービス使用開始希望日で開始する
//		if(isMansionBukken())
//		{
//			super.logPrint.printDebugLog("★マンション物件---->" + svcKeiNo);
//			
//			return true;
//		}
		/* ++++++++++ v10.00.02 削除終了 ++++++++++ */
		
		// サービス開始対象となった場合に工事案件．工事案件実施年月日
		if("".equals(kojiakSbtCd))
		{
			// 工事案件がない場合は対象。
			/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//			return true;
			kkifm050OutputFlg = true;
			return kjnYmd;
			/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
		}
		// ***** IT1-2012-0001864 追加 START *****
		// ++++++++++ v22.00.01 変更開始 ++++++++++
//		else if ("010".equals(kojiakSbtCd) || "011".equals(kojiakSbtCd)) {
		else if (JBSbatKKConst.KOJIAK_SBT_CD_PLAN_CHG_KOJI_NON.equals(kojiakSbtCd) || JBSbatKKConst.KOJIAK_SBT_CD_SVC_ADD_KOJI_NON.equals(kojiakSbtCd)) {
		// ++++++++++ v22.00.01 変更終了 +++++++++
			
			// 工事案件種別：「010（プラン変更(工事なし)）」、「011（サービス追加(工事なし)）」の場合は工事がない。
			/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//			return true;
			kkifm050OutputFlg = true;
			return kjnYmd;
			/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
		}
		/* ++++++++++ v10.00.00 追加開始 ++++++++++ */
		// ++++++++++ v22.00.01 変更開始 ++++++++++
//		else if ("120".equals(kojiakStat) && !"".equals(mansKojiakStatCd))
		else if (JBSbatKKConst.CD00474_KOJIAK_STAT_120.equals(kojiakStat) && !"".equals(mansKojiakStatCd))
		// ++++++++++ v22.00.01 変更終了 +++++++++
		{
			// ++++++++++ v22.00.01 変更開始 ++++++++++
//			if ("".equals(mansKojiakStatCd) || "110".equals(mansKojiakStatCd) || "120".equals(mansKojiakStatCd)) {
			if ("".equals(mansKojiakStatCd) || JBSbatKKConst.CD01651_MANS_KOJIAK_STAT_CD_110.equals(mansKojiakStatCd) || JBSbatKKConst.CD01651_MANS_KOJIAK_STAT_CD_120.equals(mansKojiakStatCd)) {
			// ++++++++++ v22.00.01 変更終了 +++++++++
				
				// 工事案件ステータス：「110（なし）」、「120(登録済み)」の場合は工事がない
				/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//				return true;
				kkifm050OutputFlg = true;
				return kjnYmd;
				/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
			}
			// ***** IT1-2012-0001864 追加 END *****
			else
			{
				// 工事案件実施年月日が未設定の場合は対象外。
				if("".equals(kojiakJssiYmd))
				{
					super.logPrint.printDebugLog("◆マンション：工事案件実施年月日が未設定：サービス開始対象外");
					/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//					return false;
					return kjnYmd;
					/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
				}
				else
				{
					// 工事案件実施年月日が設定されている場合に以下の場合は対象外とする。
					// 工事案件ステータス≠200(工事完了済)またはOPMS工事案件結果コード≠1(OK)
					// ++++++++++ v22.00.01 変更開始 ++++++++++
//					if(!"200".equals(mansKojiakStatCd) || !"1".equals(opmsKojiakRsltCd))
					if(!JBSbatKKConst.CD01651_MANS_KOJIAK_STAT_CD_200.equals(mansKojiakStatCd) || !JBSbatKKConst.CD00800_OPMS_KOJIAK_RSLT_CD_1.equals(opmsKojiakRsltCd))
					// ++++++++++ v22.00.01 変更終了 +++++++++
					{
						super.logPrint.printDebugLog("◆マンション：工事未完了またはOPMS工事案件結果NG：サービス開始対象外");
						/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//						return false;
						return kjnYmd;
						/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
					}
				}
				
				// 基準日より工事案件実施年月日が未来日の場合
				if(0 > kjnYmd.compareTo(kojiakJssiYmd))
				{
					// 工事案件実施年月日で基準日を置き換える。
					kjnYmd = kojiakJssiYmd;
					// ++++++++++ v9.00.02 追加開始 ++++++++++
					svcUseStaKiboFlg = true;
					// ++++++++++ v9.00.02 追加終了 ++++++++++
					/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//					return true;
					kkifm050OutputFlg = true;
					return kjnYmd;
					/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
				}
				else
				{
					/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//					return true;
					kkifm050OutputFlg = true;
					return kjnYmd;
					/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
				}
			}
		}
		/* ++++++++++ v10.00.00 追加終了 ++++++++++ */
		// ++++++++++ v22.00.01 変更開始 ++++++++++
//		else if ("".equals(kojiakStat) || "110".equals(kojiakStat) || "120".equals(kojiakStat)) {
		else if ("".equals(kojiakStat) || JBSbatKKConst.CD00474_KOJIAK_STAT_110.equals(kojiakStat) || JBSbatKKConst.CD00474_KOJIAK_STAT_120.equals(kojiakStat)) {
		// ++++++++++ v22.00.01 変更終了 +++++++++
			
			// 工事案件ステータス：「110（なし）」、「120(登録済み)」の場合は工事がない
			/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//			return true;
			kkifm050OutputFlg = true;
			return kjnYmd;
			/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
		}
		// ***** IT1-2012-0001864 追加 END *****
		else
		{
			// 工事案件実施年月日が未設定の場合は対象外。
			if("".equals(kojiakJssiYmd))
			{
				super.logPrint.printDebugLog("◆工事案件実施年月日が未設定：サービス開始対象外");
				/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//				return false;
				return kjnYmd;
				/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
			}
			else
			{
				// 工事案件実施年月日が設定されている場合に以下の場合は対象外とする。
				// 工事案件ステータス≠200(工事完了済)またはOPMS工事案件結果コード≠1(OK)
				// ++++++++++ v22.00.01 変更開始 ++++++++++
//				if(!"200".equals(kojiakStat) || !"1".equals(opmsKojiakRsltCd))
				if(!JBSbatKKConst.CD00474_KOJIAK_STAT_200.equals(kojiakStat) || !JBSbatKKConst.CD00800_OPMS_KOJIAK_RSLT_CD_1.equals(opmsKojiakRsltCd))
				// ++++++++++ v22.00.01 変更終了 +++++++++
				{
					super.logPrint.printDebugLog("◆工事未完了またはOPMS工事案件結果NG：サービス開始対象外");
					/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//					return false;
					return kjnYmd;
					/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
				}
			}
			// ++++++++++ v12.00.00 追加開始 ++++++++++
			// 電話に紐付く機器の工事案件種別が空ではない（工事会社配送）
			if (!"".equals(vaKojiakSbtCd))
			{
				// 配送に紐付くの工事案件実施年月日が未設定の場合
				if ("".equals(vaKojiakJssiYmd))
				{
					// サービス開始対象外とする。
					super.logPrint.printDebugLog("◆電話に紐付く機器の工事が未完了：サービス開始対象外");
					/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//					return false;
					return kjnYmd;
					/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
				}
				// 配送に紐付くの工事が完了している場合
				else
				{
					// サービス契約に紐付く工事案件実施年月日より
					// 配送に紐付くの工事案件実施年月日が大きい場合
					if (0 > kojiakJssiYmd.compareTo(vaKojiakJssiYmd))
					{
						// 工事案件実施年月日を置き換える。
						kojiakJssiYmd = vaKojiakJssiYmd;
					}
				}
			}
			// ++++++++++ v12.00.00 追加終了 ++++++++++
			
			// 基準日より工事案件実施年月日が未来日の場合
			if(0 > kjnYmd.compareTo(kojiakJssiYmd))
			{
				// 工事案件実施年月日で基準日を置き換える。
				kjnYmd = kojiakJssiYmd;
				// ++++++++++ v9.00.02 追加開始 ++++++++++
				svcUseStaKiboFlg = true;
				// ++++++++++ v9.00.02 追加終了 ++++++++++
				/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//				return true;
				kkifm050OutputFlg = true;
				return kjnYmd;
				/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
			}
			else
			{
				/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//				return true;
				kkifm050OutputFlg = true;
				return kjnYmd;
				/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
			}
		}
	}
	
	/* ++++++++++ v10.00.02 削除開始 ++++++++++ */
//	/**
//	 * マンション物件か判定します。
//	 * @return boolean true:マンション
//	 *                  false:マンション以外
//	 * @throws Exception 
//	 * 
//	 */
//	private boolean isMansionBukken() throws Exception
//	{
//		super.logPrint.printDebugLog("★マンション物件番号-->" + mansionBukkenNo);
//		
//		// マンション物件番号でマンション物件検索
//		if(!"".equals(mansionBukkenNo))
//		{
//			JBSbatCommonDBInterface dbMapMansion = executeKK_T_MANSION_BUKKEN_PKSELECT(new Object[]{mansionBukkenNo});
//			
//			if(null != dbMapMansion)
//			{
//				// マンション物件コード
//				String mansionBukkenCd = dbMapMansion.getString(JBSbatKK_T_MANSION_BUKKEN.MANSION_BUKKEN_CD);
//				
//				super.logPrint.printDebugLog("★マンション物件コード==>" + mansionBukkenCd);
//				// マンション物件コード="001:マンション"
//				if("001".equals(mansionBukkenCd))
//				{
//					return true;
//				}
//			}
//		}
//		
//		return false;
//	}
	/* ++++++++++ v10.00.02 削除終了 ++++++++++ */

	/**
	 * マンション／メゾンの場合にRULE073にて決定された基準日に対して
	 * サービス利用希望年月日、提供方式契約．サービス開始日より補正を行う。
	 * 
	 * @return true：対象、false：対象外
	 */
	/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//	private void mansionMaisonKjnYmdHosei()
	private String mansionMaisonKjnYmdHosei(String kjnYmd)
	/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
	{
		// サービス利用希望年月日が設定されている場合
		/* ++++++++++ v10.00.01 削除開始 ++++++++++ */
		//if(!"".equals(svcUseStaKiboYmd))
		//{
		//	// サービス利用希望年月日のほうが設定された基準日より大きい場合
		//	if(Integer.parseInt(svcUseStaKiboYmd) >= Integer.parseInt(kjnYmd))
		//	{
		//		// 基準日をサービス利用希望年月日で置き換える。
		//		kjnYmd = svcUseStaKiboYmd;
		//		// ++++++++++ v9.00.02 追加開始 ++++++++++
		//		svcUseStaKiboFlg = true;
		//		// ++++++++++ v9.00.02 追加終了 ++++++++++
		//	}
		//}
		/* ++++++++++ v10.00.01 削除終了 ++++++++++ */		
		// 提供方式契約．サービス開始日のほうが設定された基準日より大きい場合
		if(Integer.parseInt(tkHoshikiKeiSvcStaYmd) >= Integer.parseInt(kjnYmd))
		{
			// 基準日を提供方式契約．サービス開始日で置き換える。
			kjnYmd = tkHoshikiKeiSvcStaYmd;
			// ++++++++++ v9.00.02 追加開始 ++++++++++
			svcUseStaKiboFlg = true;
			// ++++++++++ v9.00.02 追加終了 ++++++++++
		}
		
		super.logPrint.printDebugLog("提供方式契約．サービス開始日：" +  tkHoshikiKeiSvcStaYmd);
		super.logPrint.printDebugLog("補正　　基準日：" +  kjnYmd);
		// ++++++++++ v22.00.02 追加開始 ++++++++++
		return kjnYmd;
		// ++++++++++ v22.00.02 追加終了 ++++++++++
	}
	
	/**
	 * サービス契約内訳番号より番ポ工事の存在有無を判定する。
	 * 検索結果あればtrue、なければfalse
	 * 
	 * @return boolean
	 * @throws Exception  メソッド内で発生した例外全般。
	 */
	private boolean hasBmpKoji() throws Exception
	{
		String [] param = {svcKeiUcwkNo};
		this.executeTU_T_BMP_KOJI_KK_SELECT_011(param);
		JBSbatCommonDBInterface tu_t_bmp_koji = db_TU_T_BMP_KOJI.selectNext();
		if(null != tu_t_bmp_koji)
		{
			return true;
		}
		return false;
	}
	
	/**
	 * 工事完了情報（翌日反映）ファイルを読み込みます。<br>
	 * <p>
	 * @param file_name ファイル名(フルパス)
	 * @return 工事完了情報（翌日反映）ファイルデータ
	 * @throws JBSbatBusinessException 
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */	
	private ArrayList<String> getInputFile(String file_name) throws JBSbatBusinessException, IOException
	{
		
		// ファイル情報保持
		ArrayList<String> data_list = new ArrayList<String>();
		BufferedReader br = null;
		
		// 工事完了情報（翌日反映）ファイルを読み込みます。
		try
		{
			InputStreamReader is = new InputStreamReader(new FileInputStream(file_name), ENCODE);
			br = new BufferedReader(is);
			
			while (br.ready())
			{
				// 1行読込み
				data_list.add(br.readLine());
			}
		}
		catch (IOException e)
		{
			// 工事完了情報（翌日反映）ファイルがない場合はエラー。
			throw new JBSbatBusinessException("EKKB0020CE", new String[]{file_name});
		}
		finally
		{
			if (null != br)
			{
				br.close();
			}
		}
		return data_list;
	}
	
	/**
	 * 
	 * 工事有無判定結果を返却します。
	 * 
	 * @throws Exception メソッド内で発生した例外全般。
	 */
	private String setKojiUm() throws Exception
	{
		super.logPrint.printDebugLog("工事案件種別コード--->" + kojiakSbtCd + "<---");
		
		super.logPrint.printDebugLog("工事案件ステータス--->" + kojiakStat + "<---");
		/* ++++++++++ v10.00.00 追加開始 ++++++++++ */
		super.logPrint.printDebugLog("マンション工事案件状態コード--->" + mansKojiakStatCd + "<---");
		/* ++++++++++ v10.00.00 追加終了 ++++++++++ */
		
		// 工事有無情報取得結果がない場合。
		if("".equals(kojiakSbtCd) && "".equals(kojiakStat))
		{
			return KOJI_NASHI;
		}
		
		// 工事有無情報取得結果がない場合。
		// 工事案件種別コードが「010(プラン変更(工事無し))、011(サービス追加(工事なし))」の場合
		// ++++++++++ v22.00.01 変更開始 ++++++++++
//		if("".equals(kojiakSbtCd) || "010".equals(kojiakSbtCd) || "011".equals(kojiakSbtCd))
		if("".equals(kojiakSbtCd) || JBSbatKKConst.KOJIAK_SBT_CD_PLAN_CHG_KOJI_NON.equals(kojiakSbtCd) || JBSbatKKConst.KOJIAK_SBT_CD_SVC_ADD_KOJI_NON.equals(kojiakSbtCd))
		// ++++++++++ v22.00.01 変更終了 +++++++++
		{
			// (4)工事有無 = ０：工事なし（固定値）
			return KOJI_NASHI;
		}
		/* ++++++++++ v10.00.00 追加開始 ++++++++++ */
		else
		{
			// ++++++++++ v22.00.01 変更開始 ++++++++++
//			if ("120".equals(kojiakStat) && !"".equals(mansKojiakStatCd)) {
			if (JBSbatKKConst.CD00474_KOJIAK_STAT_120.equals(kojiakStat) && !"".equals(mansKojiakStatCd)) {
			// ++++++++++ v22.00.01 変更終了 +++++++++
				// マンション工事案件状態コードの確認
				// 110	なし
				// 120	登録済
				// ++++++++++ v22.00.01 変更開始 ++++++++++
//				if ("110".equals(mansKojiakStatCd) || "120".equals(mansKojiakStatCd)) {
				if (JBSbatKKConst.CD01651_MANS_KOJIAK_STAT_CD_110.equals(mansKojiakStatCd) ||  JBSbatKKConst.CD01651_MANS_KOJIAK_STAT_CD_120.equals(mansKojiakStatCd)) {	
				// ++++++++++ v22.00.01 変更終了 +++++++++
					// (4)工事有無 = ０：工事なし（固定値）
					return KOJI_NASHI;
				}
				else
				{
					// 200	工事完了済
					// ++++++++++ v22.00.01 変更開始 ++++++++++
//					if ("200".equals(mansKojiakStatCd))
					if (JBSbatKKConst.CD01651_MANS_KOJIAK_STAT_CD_200.equals(mansKojiakStatCd))
					// ++++++++++ v22.00.01 変更終了 +++++++++
					{
						// 検索条件保持
						JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
						
						// サービス契約番号の設定
						whereMap.setValue(svcKeiNo);
						
						//工事完了ワークを検索し同一サービス契約番号が存在した場合
						int count = db_KK_T_KJ_FIN_WK.executeBySqlDefine(whereMap, KK_T_KJ_FIN_WK_KK_SELECT_014);
						
						// 検索結果が存在する場合（工事あり）
						if (0 != count){
							super.logPrint.printDebugLog("工事完了ワークを検索し同一サービス契約番号があり--->" + count + "<---");
							// (4)工事有無 = １：工事あり（固定値）
							return KOJI_ARI;
						}
						else
						{
							// 工事完了翌日取込ファイル読込み。
							if (isKojiFinInfo())
							{
								super.logPrint.printDebugLog("工事完了翌日取込ファイル読込み--->" + count + "<---");
								// (4)工事有無 = １：工事あり（固定値）
								return KOJI_ARI;
							}
							else
							{
								super.logPrint.printDebugLog("工事完了ワークを検索し同一サービス契約番号が存在しない場合--->" + count + "<---");
								// 工事完了ワークを検索し同一サービス契約番号が存在しない場合
								// (4)工事有無 = ０：工事なし（固定値）
								return KOJI_NASHI;
							}
						}
					}
					else
					{
						// (4)工事有無 = １：工事あり（固定値）
						return KOJI_ARI;
					}
				}
			}
		/* ++++++++++ v10.00.00 追加終了 ++++++++++ */
			else
			{
				// 工事案件ステータスの確認
				// 110	なし
				// 120	登録済
				// ++++++++++ v22.00.01 変更開始 ++++++++++
//				if ("110".equals(kojiakStat) || "120".equals(kojiakStat)) {
				if (JBSbatKKConst.CD00474_KOJIAK_STAT_110.equals(kojiakStat) || JBSbatKKConst.CD00474_KOJIAK_STAT_120.equals(kojiakStat)) {
				// ++++++++++ v22.00.01 変更終了 +++++++++
					// (4)工事有無 = ０：工事なし（固定値）
					return KOJI_NASHI;
				}
				else
				{
					// 200	工事完了済
					// ++++++++++ v22.00.01 変更開始 ++++++++++
//					if ("200".equals(kojiakStat))
					if (JBSbatKKConst.CD00474_KOJIAK_STAT_200.equals(kojiakStat))
					// ++++++++++ v22.00.01 変更終了 +++++++++
					{
						// 検索条件保持
						JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
						
						// サービス契約番号の設定
						whereMap.setValue(svcKeiNo);
						
						//工事完了ワークを検索し同一サービス契約番号が存在した場合
						int count = db_KK_T_KJ_FIN_WK.executeBySqlDefine(whereMap, KK_T_KJ_FIN_WK_KK_SELECT_014);
						
						// 検索結果が存在する場合（工事あり）
						if (0 != count){
							super.logPrint.printDebugLog("工事完了ワークを検索し同一サービス契約番号があり--->" + count + "<---");
							// (4)工事有無 = １：工事あり（固定値）
							return KOJI_ARI;
						}
						else
						{
							// 工事完了翌日取込ファイル読込み。
							if (isKojiFinInfo())
							{
								super.logPrint.printDebugLog("工事完了翌日取込ファイル読込み--->" + count + "<---");
								// (4)工事有無 = １：工事あり（固定値）
								return KOJI_ARI;
							}
							else
							{
								super.logPrint.printDebugLog("工事完了ワークを検索し同一サービス契約番号が存在しない場合--->" + count + "<---");
								// 工事完了ワークを検索し同一サービス契約番号が存在しない場合
								// (4)工事有無 = ０：工事なし（固定値）
								return KOJI_NASHI;
							}
						}
					}
					else
					{
						// (4)工事有無 = １：工事あり（固定値）
						return KOJI_ARI;
					}
				}
			}
		}
	}
	
	/**
	 * 工事完了情報存在チェック。<br>
	 * <p>
	 * @throws JBSbatBusinessException 
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */	
	private boolean isKojiFinInfo() throws JBSbatBusinessException, IOException
	{
		String data_work = "";										// 工事関連情報受ファイル1行データ保持
		
		// 工事完了翌日取込ファイル情報件数分の繰返し
		for (int i = 0; i < file_data_list.size(); i++)
		{
			// １行目を取得
			data_work = file_data_list.get(i);
			
			// データを分解
			String[] data = data_work.split(",", -1);
			
			super.logPrint.printDebugLog("中間ファイル項目の先頭にサービス契約番号--->" + data[0] + "<---");
			super.logPrint.printDebugLog("処理対象サービス契約番号--->" + svcKeiNo + "<---");
			// 中間ファイル項目の先頭にサービス契約番号が設定されている。
			// 処理中のサービス契約番号と同じ場合trueを返却。
			if (svcKeiNo.equals(data[0])){
				return true;
			}
		}
		return false;
	}
	
/* ++++++++++ v8.00.04 追加開始 ++++++++++ */
	/**
	 * 機器出荷有無の取得。<br>
	 * <p>
	 * @param  kojiUm   工事有無　０：工事なし、１：工事あり
	 * @throws Exception  Exception メソッド内で発生した例外全般。
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */	
	private String getKikiShkaUm(String kojiUm) throws Exception
	{
		String kkshkaUm     = "";		// 機器出荷有無
		String haisoFinYmd  = "";		// 配送完了日
		boolean haisoUmFlg = false;	// 配送有無フラグ
		
		// SQL実行結果取得用mapを生成（機器提供サービス契約）
		JBSbatCommonDBInterface kktkSvcKeiMap = new JBSbatCommonDBInterface(); 
		
		// SQL実行結果取得用mapを生成（配送情報）
		JBSbatCommonDBInterface outMap = new JBSbatCommonDBInterface(); 
		
		// VA機器変更番号が設定されている最古のレコードより出荷済検索
		executeKK_T_SVKEIUW_EOH_TEL_KK_SELECT_044(new Object[]{super.opeDate, svcKeiUcwkNo});
		
		// 検索結果を取得する
		for(kktkSvcKeiMap = db_KK_T_SVKEIUW_EOH_TEL.selectNext(); null != kktkSvcKeiMap ; kktkSvcKeiMap = db_KK_T_SVKEIUW_EOH_TEL.selectNext())
		{
			// ++++++++++ v9.00.04 追加開始 ++++++++++ //
			// ++++++++++ v22.00.00 修正開始 ++++++++++
//			//サービス開始日の設定において照査日+10日との比較対象をVA機器変更番号が設定されている最古のレコードとする。
//			if (haisoUmFlg)
			// サービス契約内訳<eo光電話>の最古のレコードから順に紐づく機器(VA機器変更番号)の配送を検索し
			// 配送完了日が取得できた時点でループ処理を終了する。
			if(!"".equals(haisoFinYmd))
			// ++++++++++ v22.00.00 修正終了 ++++++++++
			{
				break;
			}
			// ++++++++++ v9.00.04 追加終了 ++++++++++ //
			
			// 機器提供サービス契約番号
			String tmpKktkSvcKeiNo = JBSbatStringUtil.Rtrim(kktkSvcKeiMap.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_NO));
			
			// 機器変更番号
			String tmpKikiChgNo = JBSbatStringUtil.Rtrim(kktkSvcKeiMap.getString(JBSbatKK_T_KKTK_SVC_KEI.KIKI_CHG_NO));
			
			// 検索条件として機器提供サービス契約番号、機器変更番号を設定。
			String [] selectParam = {tmpKktkSvcKeiNo, tmpKikiChgNo};
			super.logPrint.printDebugLog("selectParam(機器提供サービス契約番号)：" +  selectParam[0]);
			super.logPrint.printDebugLog("selectParam(機器変更番号)            ：" +  selectParam[1]);
			
			// 配送検索処理の実行。
			executeDK_T_HAISO_KK_SELECT_008(selectParam);
			
			for (outMap = db_DK_T_HAISO.selectNext(); null != outMap ; outMap = db_DK_T_HAISO.selectNext())
			{
				// 配送レコードが取得できた場合
				if (null != outMap)
				{
					super.logPrint.printDebugLog("配送ステータス：" +  JBSbatStringUtil.Rtrim(outMap.getString(JBSbatDK_T_HAISO.HAISO_STAT)));
					
					// ++++++++++ v22.00.00 追加開始 ++++++++++
					// 配送情報あり。
					haisoUmFlg = true;
					// ++++++++++ v22.00.00 追加終了 ++++++++++
					
					// 配送ステータスが「004：完了済」の場合
					// ++++++++++ v22.00.01 変更開始 ++++++++++
//					if ("004".equals(JBSbatStringUtil.Rtrim(outMap.getString(JBSbatDK_T_HAISO.HAISO_STAT))))
					if (JBSbatKKConst.CD00009_HAISO_STAT_004.equals(JBSbatStringUtil.Rtrim(outMap.getString(JBSbatDK_T_HAISO.HAISO_STAT))))
					// ++++++++++ v22.00.01 変更終了 +++++++++
					{
						// 検索結果の配送完了年月日をフィールド変数に設定する。
						haisoFinYmd = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatDK_T_HAISO.HAISO_FIN_YMD)); 
						
						// 履歴データに紐付く配送完了日を基準日に設定する。
						/* ++++++++++ v22.00.02 削除開始 ++++++++++ */
//						kjnYmd = haisoFinYmd;
						/* ++++++++++ v22.00.02 削除終了 ++++++++++ */
						vaShkaYmd = haisoFinYmd;
						// ++++++++++ v22.00.00 追加開始 ++++++++++
						break;
						// ++++++++++ v22.00.00 追加終了 ++++++++++
					}
					
					// ++++++++++ v22.00.00 削除開始 ++++++++++
//					// 配送情報あり。
//					haisoUmFlg = true;
//					break;
					// ++++++++++ v22.00.00 削除終了 ++++++++++
				}
			}
		}
		
		super.logPrint.printDebugLog("配送完了年月日：：" +  haisoFinYmd);
		super.logPrint.printDebugLog("VA出荷日：" +  vaShkaYmd);
		super.logPrint.printDebugLog("機器出荷有無：" +  haisoUmFlg);
		
		// 配送機器が存在しない場合
		if (!haisoUmFlg)
		{
			// 機器出荷なし
			kkshkaUm = "0";
			return kkshkaUm;
		}
		else
		{
			// 機器出荷ありだが未配送の場合
			if("".equals(haisoFinYmd))
			{
				// 機器出荷あり
				kkshkaUm = "1";
				return kkshkaUm;
			}
		}
		
		// サービス契約内訳取得
		JBSbatCommonDBInterface dbSvcUcwk = executeKK_T_SVC_KEI_UCWK_PKSELECT(new Object[]{svcKeiUcwkNo, svcKeiUcwkGeneAdd});
		
		// 照査年月日
		String shosaYmd = JBSbatStringUtil.Rtrim(dbSvcUcwk.getString(JBSbatKK_T_SVC_KEI_UCWK.SHOSA_YMD));
		super.logPrint.printDebugLog("サービス契約内訳番号--->"+ svcKeiUcwkNo);
		super.logPrint.printDebugLog("サービス契約内訳.照査年月日--->"+ shosaYmd);
		
		// 工事なしの場合
		if("0".equals(kojiUm))
		{
			super.logPrint.printDebugLog("工事なし-------------->" + kojiUm);
			
			// ++++++++++ v9.00.04 修正開始 ++++++++++ //
			// 機器出荷有無の判定処理は新規申込の場合も必要であるため
			// 異動区分="00002:サービス追加"または、"00041:光電話・番号追加"または、"00001:新規申込"
			// if("00002".equals(ido_div_init) || "00041".equals(ido_div_init))
			// ++++++++++ v22.00.01 変更開始 ++++++++++
//			if("00002".equals(ido_div_init) || "00041".equals(ido_div_init) || "00001".equals(ido_div_init))
			if(JBSbatKKConst.CD00576_IDO_DIV_00002.equals(ido_div_init) || JBSbatKKConst.CD00576_IDO_DIV_00041.equals(ido_div_init) || JBSbatKKConst.CD00576_IDO_DIV_00001.equals(ido_div_init))
			// ++++++++++ v22.00.01 変更終了 +++++++++
			// ++++++++++ v9.00.04 修正終了 ++++++++++ //
			{
				// 配送完了年月日+10日
				String haisoFinYmd10 = JBSbatDateUtil.adjustDate(haisoFinYmd, 10);
				
				super.logPrint.printDebugLog("配送完了年月日+10日------------------->" + haisoFinYmd10);
				
				// 多機能配送完了チェック
				// 配送完了年月日+10日 >= 照査年月日
				if(Integer.parseInt(haisoFinYmd10) >= Integer.parseInt(shosaYmd))
				{
					// 機器出荷あり
					kkshkaUm = "1";
					super.logPrint.printDebugLog("配送未完了");
				}
				// 1番号サービス開始済
				else
				{
					// 機器出荷なし
					kkshkaUm = "0";
					super.logPrint.printDebugLog("配送完了済");
				}
			}
			else
			{
				super.logPrint.printDebugLog("工事なし機器出荷あり");
				// 機器出荷あり
				kkshkaUm = "1";
			}
		}
		// 工事あり
		else
		{
			super.logPrint.printDebugLog("工事あり--------工事案件ステータス------>" + kojiakStat);
			/* ++++++++++ v10.00.00 追加開始 ++++++++++ */
			super.logPrint.printDebugLog("工事あり--------マンション工事案件状態コード--->" + mansKojiakStatCd);
			/* ++++++++++ v10.00.00 追加終了 ++++++++++ */
			
			// 工事案件ステータス
			// "160:工事会社決定済","170:宅内機器予定登録済"
			// "180:仮鍵開発行依頼済,"190:現場作業完了済"
			// "200:工事完了済"
			/* ++++++++++ v10.00.00 変更開始 ++++++++++ */
//			if("160".equals(kojiakStat) || "170".equals(kojiakStat)
//					|| "180".equals(kojiakStat) || "190".equals(kojiakStat)
//					|| "200".equals(kojiakStat))
			// ++++++++++ v22.00.01 変更開始 ++++++++++
//			if(("160".equals(kojiakStat) || "170".equals(kojiakStat)
//			|| "180".equals(kojiakStat) || "190".equals(kojiakStat)
//			|| "200".equals(kojiakStat))
//
//			|| (("120".equals(kojiakStat)
//			&&
//			  ("160".equals(mansKojiakStatCd) || "170".equals(mansKojiakStatCd)
//			|| "180".equals(mansKojiakStatCd) || "190".equals(mansKojiakStatCd)
//			|| "200".equals(mansKojiakStatCd)))))
			if((JBSbatKKConst.CD00474_KOJIAK_STAT_160.equals(kojiakStat) || JBSbatKKConst.CD00474_KOJIAK_STAT_170.equals(kojiakStat)
			|| JBSbatKKConst.CD00474_KOJIAK_STAT_180.equals(kojiakStat) || JBSbatKKConst.CD00474_KOJIAK_STAT_190.equals(kojiakStat)
			|| JBSbatKKConst.CD00474_KOJIAK_STAT_200.equals(kojiakStat))

			|| ((JBSbatKKConst.CD00474_KOJIAK_STAT_120.equals(kojiakStat)
			&&
			  (JBSbatKKConst.CD01651_MANS_KOJIAK_STAT_CD_160.equals(mansKojiakStatCd) || "170".equals(mansKojiakStatCd)
			|| "180".equals(mansKojiakStatCd) || "190".equals(mansKojiakStatCd)
			|| JBSbatKKConst.CD01651_MANS_KOJIAK_STAT_CD_200.equals(mansKojiakStatCd)))))
			// ++++++++++ v22.00.01 変更終了 +++++++++
				/* ++++++++++ v10.00.00 変更終了 ++++++++++ */
			{
				
				// ++++++++++ v9.00.04 修正開始 ++++++++++ //
				// 機器出荷有無の判定処理は新規申込の場合も必要であるため
				// 異動区分="00002:サービス追加"または、"00041:光電話・番号追加"または、"00001:新規申込"
				// if("00002".equals(ido_div_init) || "00041".equals(ido_div_init))
				// ++++++++++ v22.00.01 変更開始 ++++++++++
//				if("00002".equals(ido_div_init) || "00041".equals(ido_div_init) || "00001".equals(ido_div_init))
				if(JBSbatKKConst.CD00576_IDO_DIV_00002.equals(ido_div_init) || JBSbatKKConst.CD00576_IDO_DIV_00041.equals(ido_div_init) || JBSbatKKConst.CD00576_IDO_DIV_00001.equals(ido_div_init))
				// ++++++++++ v22.00.01 変更終了 +++++++++
				// ++++++++++ v9.00.04 修正終了 ++++++++++ //
				{
					// 配送完了年月日+10日
					String haisoFinYmd10 = JBSbatDateUtil.adjustDate(haisoFinYmd, 10);
					
					super.logPrint.printDebugLog("配送完了年月日+10日------------------->" + haisoFinYmd10);
					
					// 多機能配送完了チェック
					// 配送完了年月日+10日 >= 照査年月日
					if(Integer.parseInt(haisoFinYmd10) >= Integer.parseInt(shosaYmd))
					{
						// 機器出荷あり
						kkshkaUm = "1";
						super.logPrint.printDebugLog("工事あり配送未完了");
					}
					// 1番号サービス開始済
					else
					{
						// 機器出荷なし
						kkshkaUm = "0";
						super.logPrint.printDebugLog("工事あり配送完了済");
					}
				}
				else
				{
					// 機器出荷あり
					kkshkaUm = "1";
				}
			}
		}
		
		return kkshkaUm;
	}	
/* ++++++++++ v8.00.04 追加終了 ++++++++++ */
	
	// ++++++++++ v8.00.05 修正開始 ++++++++++
	/**
	 * eo光電話・番号追加時、サービス開始日の補正が発生した場合、
	 * 機器オプションサービス契約（ＶＡ）抽出ファイルを出力します。
	 * 
	 * @throws Exception 
	 */
	/* ++++++++++ v22.00.02 変更開始 ++++++++++ */
//	private void createKkifm569006() throws Exception
	private void createKkifm569006(String kjnYmd) throws Exception
	/* ++++++++++ v22.00.02 変更終了 ++++++++++ */
	{
		super.logPrint.printDebugLog("◇機器オプションサービス契約（ＶＡ）抽出ファイル出力：" +  svcKeiNo);
		//入出力インターフェースオブジェクトを生成
		if (outMapItem == null)
		{
			outMapItem = new JBSbatOutputItem();
		}
		
		JBSbatServiceInterfaceMap outMapKKIFM569006 = new JBSbatServiceInterfaceMap();
		
		String[] svcKeiUcwk_param = new String[2];
		
		// サービス契約内訳（旧コース分）検索キー設定
		svcKeiUcwk_param[0] = svcKeiUcwkNo;			// サービス契約内訳番号(サービス契約内訳）
		svcKeiUcwk_param[1] = svcKeiUcwkGeneAdd;	// 世代登録年月日時分秒(サービス契約内訳）
		
		// サービス契約内訳のPK検索を行います
		JBSbatCommonDBInterface svcKeiUcwk_map = executeKK_T_SVC_KEI_UCWK_PKSELECT(svcKeiUcwk_param);
		
		// 抽出ファイルの各項目を設定
		// サービス契約番号
		outMapKKIFM569006.setString(JBSbatKKIFM569006.SVC_KEI_NO, svcKeiNo);
		
		// 工事遅延補正年月日
		outMapKKIFM569006.setString(JBSbatKKIFM569006.KOJI_DLY_HOSEI_YMD, super.opeDate);
		
		// 補正前サービス課金開始年月日
		outMapKKIFM569006.setString(JBSbatKKIFM569006.HOSEI_BF_SVC_CHRG_STAYMD, JBSbatStringUtil.Rtrim(svcKeiUcwk_map.getString(JBSbatKK_T_SVC_KEI_UCWK.SVC_STA_YMD)));
		
		// 補正後サービス課金開始年月日
		outMapKKIFM569006.setString(JBSbatKKIFM569006.HOSEI_AF_SVC_CHRG_STAYMD, kjnYmd);
		
		// サービス課金開始年月日変更理由コード
		// ++++++++++ v22.00.01 変更開始 ++++++++++
//		outMapKKIFM569006.setString(JBSbatKKIFM569006.SVC_CHRG_STAYMD_CHGRE_CD, "30");
		outMapKKIFM569006.setString(JBSbatKKIFM569006.SVC_CHRG_STAYMD_CHGRE_CD, JBSbatKKConst.CD00869_SVC_CHRG_STAYMD_CHGRE_CD_30);
		// ++++++++++ v22.00.01 変更終了 +++++++++
		
		// 無効フラグ
		// ++++++++++ v22.00.01 変更開始 ++++++++++
//		outMapKKIFM569006.setString(JBSbatKKIFM569006.MK_FLG, "0");
		outMapKKIFM569006.setString(JBSbatKKIFM569006.MK_FLG, JBSbatKKConst.MK_FLG_YK);
		// ++++++++++ v22.00.01 変更終了 +++++++++
		
		// 抽出区分(2:ファイル)
		// ++++++++++ v22.00.01 変更開始 ++++++++++
//		outMapKKIFM569006.setString(JBSbatKKIFM569006.CHSHT_DIV, "2");
		outMapKKIFM569006.setString(JBSbatKKIFM569006.CHSHT_DIV, JBSbatKKConst.KKIFM569_CHSHT_DIV_2);
		// ++++++++++ v22.00.01 変更終了 +++++++++
		
		//出力共通電文に入出力インターフェースを設定する。
		outMapItem.addOutMapList(outMapKKIFM569006);
		
	}
	// ++++++++++ v8.00.05 修正終了 ++++++++++
	
	
	// ++++++++++ v8.00.06 修正開始 ++++++++++
	/**
	 * 配送対象物品から工事案件番号の取得。<br>
	 * <p>
	 * @return String 工事案件番号。
	 * @throws Exception  Exception メソッド内で発生した例外全般。
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */	
	// ++++++++++ v12.00.00 修正開始 ++++++++++
//	private void getKojiakNo() throws Exception
	private String getKojiakNo() throws Exception
	// ++++++++++ v12.00.00 修正開始 ++++++++++
	{
		// ++++++++++ v12.00.00 追加開始 ++++++++++
		String kojiakNo = "";
		// ++++++++++ v12.00.00 追加終了 ++++++++++		
		// SQL実行結果取得用mapを生成（機器提供サービス契約）
		JBSbatCommonDBInterface kktkSvcKeiMap = new JBSbatCommonDBInterface(); 
		
		// SQL実行結果取得用mapを生成（配送情報）
		JBSbatCommonDBInterface outMap = new JBSbatCommonDBInterface(); 
		
		// VA機器変更番号が設定されている最古のレコードより出荷済検索
		executeKK_T_SVKEIUW_EOH_TEL_KK_SELECT_044(new Object[]{super.opeDate, svcKeiUcwkNo});
		
		// 検索結果を取得する
		for(kktkSvcKeiMap = db_KK_T_SVKEIUW_EOH_TEL.selectNext(); null != kktkSvcKeiMap ; kktkSvcKeiMap = db_KK_T_SVKEIUW_EOH_TEL.selectNext())
		{
			// 機器提供サービス契約番号
			String tmpKktkSvcKeiNo = JBSbatStringUtil.Rtrim(kktkSvcKeiMap.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_NO));
			
			// 機器変更番号
			String tmpKikiChgNo = JBSbatStringUtil.Rtrim(kktkSvcKeiMap.getString(JBSbatKK_T_KKTK_SVC_KEI.KIKI_CHG_NO));
			
			// 検索条件として機器提供サービス契約番号、機器変更番号を設定。
			String [] selectParam = {tmpKktkSvcKeiNo, tmpKikiChgNo};
			super.logPrint.printDebugLog("selectParam(機器提供サービス契約番号)：" +  selectParam[0]);
			super.logPrint.printDebugLog("selectParam(機器変更番号)            ：" +  selectParam[1]);
			
			// 配送検索処理の実行。
			executeDK_T_HAISO_KK_SELECT_008(selectParam);
			
			for (outMap = db_DK_T_HAISO.selectNext(); null != outMap ; outMap = db_DK_T_HAISO.selectNext())
			{
				// 配送レコードが取得できた場合
				if (null != outMap)
				{
					// 配送ステータスが「004：完了済」の場合
					// ++++++++++ v22.00.01 変更開始 ++++++++++
//					if ("004".equals(JBSbatStringUtil.Rtrim(outMap.getString(JBSbatDK_T_HAISO.HAISO_STAT))))
					if (JBSbatKKConst.CD00009_HAISO_STAT_004.equals(JBSbatStringUtil.Rtrim(outMap.getString(JBSbatDK_T_HAISO.HAISO_STAT))))
					// ++++++++++ v22.00.01 変更終了 +++++++++
					{
						kojiakNo = outMap.getString(JBSbatDK_T_HAISO_TG_BPIN.KOJIAK_NO);
						
						break;
					}
				}
			}
		}
		// ++++++++++ v12.00.00 追加開始 ++++++++++
		return kojiakNo;
		// ++++++++++ v12.00.00 追加終了 ++++++++++
	}
	// ++++++++++ v8.00.06 修正終了 ++++++++++
	
	
	/* ++++++++++ v8.00.07 追加開始 ++++++++++ */
	/**
	 * 配送完了日の取得。<br>
	 * <p>
	 * @throws Exception  Exception メソッド内で発生した例外全般。
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */	
	private String getHaisoFinYmd() throws Exception
	{
		String haisoFinYmd  = "";		// 配送完了日
		
		// SQL実行結果取得用mapを生成（機器提供サービス契約）
		JBSbatCommonDBInterface kktkSvcKeiMap = new JBSbatCommonDBInterface(); 
		
		// SQL実行結果取得用mapを生成（配送情報）
		JBSbatCommonDBInterface outMap = new JBSbatCommonDBInterface(); 
		
		// VA機器変更番号が設定されている最古のレコードより出荷済検索
		executeKK_T_SVKEIUW_EOH_TEL_KK_SELECT_044(new Object[]{super.opeDate, svcKeiUcwkNo});
		
		// ++++++++++ v22.00.00 削除開始 ++++++++++
//		// ++++++++++ v9.00.04 追加開始 ++++++++++ //
//		boolean haisoUmFlg = false;	// 配送有無フラグ
//		// ++++++++++ v9.00.04 追加終了 ++++++++++ //
		// ++++++++++ v22.00.00 削除終了 ++++++++++
		// 検索結果を取得する
		for(kktkSvcKeiMap = db_KK_T_SVKEIUW_EOH_TEL.selectNext(); null != kktkSvcKeiMap ; kktkSvcKeiMap = db_KK_T_SVKEIUW_EOH_TEL.selectNext())
		{

			// ++++++++++ v9.00.04 追加開始 ++++++++++ //
			// ++++++++++ v22.00.00 修正開始 ++++++++++
//			// サービス開始日の設定において照査日+10日との比較対象をVA機器変更番号が設定されている最古のレコードとする。
//			if (haisoUmFlg)
			// サービス契約内訳<eo光電話>の最古のレコードから順に紐づく機器(VA機器変更番号)の配送を検索し
			// 配送完了日が取得できた時点でループ処理を終了する。
			if(!"".equals(haisoFinYmd))
			// ++++++++++ v22.00.00 修正終了 ++++++++++
			{
				break;
			}
			// ++++++++++ v9.00.04 追加終了 ++++++++++ //
			
			// 機器提供サービス契約番号
			String tmpKktkSvcKeiNo = JBSbatStringUtil.Rtrim(kktkSvcKeiMap.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_NO));
			
			// 機器変更番号
			String tmpKikiChgNo = JBSbatStringUtil.Rtrim(kktkSvcKeiMap.getString(JBSbatKK_T_KKTK_SVC_KEI.KIKI_CHG_NO));
			
			// 検索条件として機器提供サービス契約番号、機器変更番号を設定。
			String [] selectParam = {tmpKktkSvcKeiNo, tmpKikiChgNo};
			super.logPrint.printDebugLog("selectParam(機器提供サービス契約番号)：" +  selectParam[0]);
			super.logPrint.printDebugLog("selectParam(機器変更番号)            ：" +  selectParam[1]);
			
			// 配送検索処理の実行。
			executeDK_T_HAISO_KK_SELECT_008(selectParam);
			
			for (outMap = db_DK_T_HAISO.selectNext(); null != outMap ; outMap = db_DK_T_HAISO.selectNext())
			{
				// 配送レコードが取得できた場合
				if (null != outMap)
				{
					super.logPrint.printDebugLog("配送ステータス：" +  JBSbatStringUtil.Rtrim(outMap.getString(JBSbatDK_T_HAISO.HAISO_STAT)));
					
					// 配送ステータスが「004：完了済」の場合
					// ++++++++++ v22.00.01 変更開始 ++++++++++
//					if ("004".equals(JBSbatStringUtil.Rtrim(outMap.getString(JBSbatDK_T_HAISO.HAISO_STAT))))
					if (JBSbatKKConst.CD00009_HAISO_STAT_004.equals(JBSbatStringUtil.Rtrim(outMap.getString(JBSbatDK_T_HAISO.HAISO_STAT))))
					// ++++++++++ v22.00.01 変更終了 +++++++++
					{
						// 検索結果の配送完了年月日をフィールド変数に設定する。
						haisoFinYmd = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatDK_T_HAISO.HAISO_FIN_YMD));
						// ++++++++++ v22.00.00 追加開始 ++++++++++
						break;
						// ++++++++++ v22.00.00 追加終了 ++++++++++
						
					}
					
					// ++++++++++ v22.00.00 削除開始 ++++++++++
//					// 配送情報あり。
//					// ++++++++++ v9.00.04 追加開始 ++++++++++ //
//					haisoUmFlg = true;
//					// ++++++++++ v9.00.04 追加終了 ++++++++++ //
//					break;
					// ++++++++++ v22.00.00 削除終了 ++++++++++
				}
			}
		}
		
		super.logPrint.printDebugLog("配送完了年月日：：" +  haisoFinYmd);
		
		
		return haisoFinYmd;
	}
	/* ++++++++++ v8.00.07 追加終了 ++++++++++ */
// ANK-4315-00-00 ADD START
	/**
	 * SQLKEY(KK_SELECT_053)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	申込明細_工事案件適用開始年月日
	 *		 	申込明細_工事案件適用終了年月日
	 *		 	申込明細番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKU_T_KOJIAK_KK_SELECT_053(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_KU_T_KOJIAK_53.selectBySqlDefine(paramList, KU_T_KOJIAK_KK_SELECT_053);
	}
// ANK-4315-00-00 ADD END
}
