/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKKojiKnrnInfCheck
*	ソースファイル名	：JBSbatKKKojiKnrnInfCheck.java
*	作成者				：富士通　
*	作成日				：2011年07月25日
*＜機能概要＞
*　工事関連情報チェック部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v3.00.00	2012/03/31  FJ）倉上	【ANK-0377-00-00】【ANK-0378-00-00】【ANK-0487-00-00】案件対応。
*	v3.01.00	2012/06/07  FJ）岡田	【ST2-2012-0000888】案件対応。
*	v3.02.00	2012/06/20  FJ）倉上	【TT2-2012-0000974】障害対応。
*	v4.00.00	2012/07/18  FJ）岡田	【UIZ-0272-00-00】UI残対応。
*	v4.01.00	2012/07/27  FJ）岡田	【ANK-0406-00-00】案件対応。
*	v4.02.00	2012/08/01  FJ）岡田	【ANK-0035-00-00】案件対応。
*	v4.03.00	2012/10/10  FJ）中作	【ANK-1223-00-00】進捗補足事項編集対応。
*	v4.04.00	2012/11/26  FJ）岡田	【ANK-1201-00-00】案件対応。
*	v4.05.00	2012/12/21  FJ）柳		【IT1-2012-0002528】障害対応。
*	v4.06.00	2012/12/29  FJ) 中作    【ST4-2012-0000301】障害対応
*	v4.07.00	2013/03/18  FJ) 中作	【IT1-2013-0000498】障害対応
*	v5.00.00	2013/05/01  FJ) 岡田	【ST2-2013-0001785】障害対応
*	v5.00.01	2013/08/28  FJ) 石原	【OM-2013-0001124】障害対応
*	v7.00.00	2013/11/09  FJ）岡田	【ANK-1578-00-00】案件対応。
*	v7.00.01	2014/01/07  FJ) 岡田	【OM-2013-0005140】障害対応
*	v7.00.02	2014/03/22  FJ）古内	【ST4-2013-0000602】性能改善
*	v7.00.03	2014/05/10  FJ）古内	【OM-2014-0001560】性能改善
*	v9.00.00	2014/07/29  FJ) 山野	【OM-2014-0002335】障害対応
*	v31.00.00	2017/11/08  FJ）黒田	【ANK-3136-00-00】OPMSハードウエア保守切れ対応
*   v31.00.01   2018/07/24  FJ) 王      【IT1-2018-0000124】障害対応
*   v72.00.00	2024/07/24  FJ) 佐々木	【ANK-4577-00-00】eo光ネット「シンプルプラン」追加対応(Step2)
**********************************************************************/
package eo.business.service;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

import com.fujitsu.futurity.rule.common.JRuleXMLHandler;
import com.fujitsu.futurity.rule.xml.compare.JRuleXMLPattern;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.util.table.JBSbatKK_T_KKTK_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_KOJI_DLY_KEHSI;
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
import eo.business.util.table.JBSbatKU_T_KOJIAK;
import eo.business.util.table.JBSbatKU_T_SVKEI_KOJIAK;
import eo.business.util.table.JBSbatZM_M_CD_NM_KANRI;
import eo.business.util.table.JBSbatZM_M_WORK_PARAM_KNRI;
import eo.common.constant.JKKStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.common.util.JPCFomatString;
import eo.common.util.JPCUtilCommon;
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.util.JBSbatDateUtil;
import eo.framework.util.JBSbatStringUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKKojiKnrnInfCheck extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(サービス契約)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";

// ++++++++++++++++++++ v7.00.03 削除開始 ++++++++++++++++++++++
//	/** テーブル(進捗)*/
//	private static final String D_TBL_NAME_KK_T_PRG = "KK_T_PRG";
// ++++++++++++++++++++ v7.00.03 削除終了 ++++++++++++++++++++++

	/** テーブル(工事遅延契約補正)*/
	private static final String D_TBL_NAME_KK_T_KOJI_DLY_KEHSI = "KK_T_KOJI_DLY_KEHSI";

	/** テーブル(課金先)*/
	private static final String D_TBL_NAME_KK_T_KAKINS = "KK_T_KAKINS";

	/** テーブル(工事案件)*/
	private static final String D_TBL_NAME_KU_T_KOJIAK = "KU_T_KOJIAK";

	/** テーブル(コード名称管理)*/
	private static final String D_TBL_NAME_ZM_M_CD_NM_KANRI = "ZM_M_CD_NM_KANRI";

// ANK-3136-00-00 ADD START
	/** テーブル(業務パラメータ管理)*/
	private static final String D_TBL_NAME_ZM_M_WORK_PARAM_KNRI = "ZM_M_WORK_PARAM_KNRI";

	/** テーブル(機器提供サービス契約)*/
	private static final String D_TBL_NAME_KK_T_KKTK_SVC_KEI = "KK_T_KKTK_SVC_KEI";

	/** テーブル(サービス契約＿工事案件)*/
	private static final String D_TBL_NAME_KU_T_SVKEI_KOJIAK = "KU_T_SVKEI_KOJIAK";

	/** テーブル(異動予約)*/
	private static final String D_TBL_NAME_KK_T_IDO_RSV = "KK_T_IDO_RSV";
// ANK-3136-00-00 ADD END

	/** SQL定義キー(KK_SELECT_060)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_060 = "KK_SELECT_060";

// ++++++++++++++++++++ v7.00.02 削除開始 +++++++++++++++++
//	/** SQL定義キー(KK_SELECT_090)*/
//	private static final String KK_T_SVC_KEI_KK_SELECT_090 = "KK_SELECT_090";
// ++++++++++++++++++++ v7.00.02 削除終了 +++++++++++++++++

	/** SQL定義キー(KK_SELECT_022)*/
	private static final String KK_T_KAKINS_KK_SELECT_022 = "KK_SELECT_022";

// ++++++++++++++++++++ v7.00.03 削除開始 ++++++++++++++++++++++
//	/** SQL定義キー(KK_SELECT_029)*/
//	private static final String KK_T_PRG_KK_SELECT_029 = "KK_SELECT_029";
// ++++++++++++++++++++ v7.00.03 削除終了 ++++++++++++++++++++++

// ANK-3136-00-00 ADD START
	/** SQL定義キー(KK_SELECT_021)*/
	private static final String ZM_M_WORK_PARAM_KNRI_KK_SELECT_021 = "KK_SELECT_021";

	/** SQL定義キー(KK_SELECT_245)*/
	private static final String KK_T_KKTK_SVC_KEI_KK_SELECT_245 = "KK_SELECT_245";

	/** SQL定義キー(KK_SELECT_246)*/
	private static final String KK_T_KKTK_SVC_KEI_KK_SELECT_246 = "KK_SELECT_246";

// ANK-4577-00-00 ADD START
	/** SQL定義キー(KK_SELECT_383)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_383 = "KK_SELECT_383";
// ANK-4577-00-00 ADD END

// IT1-2018-0000124 DEL START
//	/** SQL定義キー(KK_SELECT_344)*/
//	private static final String KK_T_SVC_KEI_KK_SELECT_344 = "KK_SELECT_344";
// IT1-2018-0000124 DEL END

	/** SQL定義キー(KK_SELECT_022)*/
	private static final String KU_T_SVKEI_KOJIAK_KK_SELECT_022 = "KK_SELECT_022";

// IT1-2018-0000124 DEL START
//	/** SQL定義キー(KK_SELECT_098)*/
//	private static final String KK_T_IDO_RSV_KK_SELECT_098 = "KK_SELECT_098";
// IT1-2018-0000124 DEL END
// ANK-3136-00-00 ADD END

	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;

	/** テーブルアクセスクラス(工事遅延契約補正)*/
	private JBSbatSQLAccess db_KK_T_KOJI_DLY_KEHSI = null;
// ++++++++++++++++++++ v7.00.03 削除開始 ++++++++++++++++++++++
//	/** テーブルアクセスクラス(進捗)*/
//	private JBSbatSQLAccess db_KK_T_PRG = null;
// ++++++++++++++++++++ v7.00.03 削除開始 ++++++++++++++++++++++

	/** テーブルアクセスクラス(課金先)*/
	private JBSbatSQLAccess db_KK_T_KAKINS = null;

	/** テーブルアクセスクラス(工事案件)*/
	private JBSbatSQLAccess db_KU_T_KOJIAK = null;

	/** テーブルアクセスクラス(コード名称管理)*/
	private JBSbatSQLAccess db_ZM_M_CD_NM_KANRI = null;

// ANK-3136-00-00 ADD START
	/** テーブルアクセスクラス(業務パラメータ管理)*/
	private JBSbatSQLAccess db_ZM_M_WORK_PARAM_KNRI = null;

	/** テーブルアクセスクラス(機器提供サービス契約)*/
	private JBSbatSQLAccess db_KK_T_KKTK_SVC_KEI_245 = null;

	/** テーブルアクセスクラス(機器提供サービス契約)*/
	private JBSbatSQLAccess db_KK_T_KKTK_SVC_KEI_246 = null;
	
// ANK-4577-00-00 ADD START
	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI_383 = null;
// ANK-4577-00-00 ADD END

	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI_344 = null;

	/** テーブルアクセスクラス(サービス契約＿工事案件)*/
	private JBSbatSQLAccess db_KU_T_SVKEI_KOJIAK = null;

	/** テーブルアクセスクラス(異動予約)*/
	private JBSbatSQLAccess db_KK_T_IDO_RSV = null;
// ANK-3136-00-00 ADD END
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
// ++++++++++++++++++++ v7.00.02 削除開始 +++++++++++++++++
//	/** テーブルアクセスクラス(共通部品)*/
//	private JBSbatSQLAccess stmt = null;
// ++++++++++++++++++++ v7.00.02 削除終了 +++++++++++++++++
	
	/** ファイルID(宅内調査結果情報ファイル) */
	private static final String TAK_CHO_RSLT_INF__FILE_ID = "KKIFM052";
	
	/** ファイルID(設計結果情報ファイル) */
	private static final String DSGN_EQUIP_INF_FILE_ID = "KKIFM059";
	
	/** ファイルID(伝送設備情報ファイル) */
	private static final String DENSO_EQUIP_INF_FILE_ID = "KKIFM060";
	
	/** ファイルID(工事完了情報ファイル) */
	private static final String KOJI_FIN_INF_FILE_ID = "KKIFM051";
	
	/** ファイルID(工事予定情報(ネット)ファイル) */
	private static final String KOJI_RSV_INF_NET_FILE_ID = "KKIFM061";
	
	/** ファイルID(工事予定情報(テレビ)ファイル) */
	private static final String KOJI_RSV_INF_TV_FILE_ID = "KKIFM062";
	
	/** ファイルID(機器情報(ネット)ファイル) */
	private static final String KIKI_INF_NET_FILE_ID = "KKIFM063";
	
	/** ファイルID(機器情報(テレビ)ファイル) */
	private static final String KIKI_INF_TV_FILE_ID = "KKIFM064";
	
	/** ファイルID(工事取消情報ファイル) */
	private static final String KOJI_CL_INF_FILE_ID = "KKIFM065";
	
	/** ファイルID(宅内工事情報ファイル) */
	private static final String TAKNI_KOJI_INF_FILE_ID = "KKIFM066";
	
	/** ファイルID(工事費情報ファイル) */
	private static final String KOJIHI_INF_FILE_ID = "KKIFM067";
	
	/** ファイルID(STB着工情報ファイル) */
	private static final String STB_CHAKUKO_INF_FILE_ID = "KKIFM166";
	
// ANK-3136-00-00 ADD START
	/** ファイルID(工事仮キャンセル情報ファイル) */
	private static final String KR_CNCL_INF_FILE_ID = "KKIFM767";
	
	/** ファイルID(工事仮キャンセル受付情報ファイル) */
	private static final String KR_CNCL_UK_INF_FILE_ID = "KKIFM770";
	
	/** ファイルID(工事仮キャンセル取消情報ファイル) */
	private static final String KR_CNCL_CL_INF_FILE_ID = "KKIFM771";
	
	/** ファイルID(工事完了機器流用対象ファイル) */
	private static final String KOJI_FIN_KIKI_RYUYO_FILE_ID = "KKIFM768";
// ANK-3136-00-00 ADD END

	/** 修飾子 */
	private static final String FILE_KEISHIKI = ".csv";
	
	/** 改行コード */
	private static final String KAIGYOU_CODE = "\n";
	
	/** エンコード */
	private static final String ENCODE = "Shift-JIS";
	
	/** 空白 */
	private static final String SPACE = "";
	
	/** 半角空白 */
	private static final String HAFE_SPACE = " ";
	
	/** スペース（全角） */
	public static final String SPACE_ZENKAKU = "　";

	/** エラーメッセージ(置換え文字列：%2%) */
	private static final String MASSEAGE = "ファイル出力";
	
	/** エラーメッセージ */
	private static final String MASSEAGE2 = "工事関連情報受入確認条件ルールにて異常が発生しました。";

	/** 項目取得キー(サービス契約ステータス) */
	private static final String KEY_SVC_KEI_STAT = "SVC_KEI_STAT";
	
	/** 項目取得キー(工事案件種別コード) */
	private static final String KEY_KOJIAK_SBT_CD = "KOJIAK_SBT_CD";
	
	/** 項目取得キー(判定結果コード) */
	private static final String KEY_RESULT_CD = "RESULT_CD";
	
	/** 判定結果コード(受入可) */
	private static final String RESULT_UKEIRE_PSB = "0";
	
	/** 判定結果コード(受入不可) */
	private static final String RESULT_UKEIRE_FAIL = "2";
	
	/** 判定結果コード(翌日受入) */
	private static final String RESULT_YOKUJITSU_UKEIRE = "1";
	
	/** ルールコンテンツID */
	private static final String RULE_CONT_ID = "RULE0081001";
	
	/** 項目取得キー(レコード区分) */
	private static final String KEY_REC_DIV = "REC_DIV";

// ++++++++++++++++++++ v7.00.03 削除開始 ++++++++++++++++++++++
//	/** 進捗番号採番キー */
//	private static final String KEY_SEQ_PRG_NO = "SEQ_PRG_NO";
// ++++++++++++++++++++ v7.00.03 削除終了 ++++++++++++++++++++++
	
	/** 設計結果コード(基準内) */
	private static final String DSGN_EQUIP_CD_KIJUNNAI = "1";
	
	/** OPMS工事案件結果コード(OK) */
	private static final String OPMSKJAK_RSLT_CD_OK = "1";
	
	/** 進捗ステータス(9550:幹線・宅内設計OK) */
	private static final String TAKNI_DSGN_OK = "9550";
	
	/** 進捗ステータス(955E:幹線・宅内設計NG) */
	private static final String TAKNI_DSGN_NG = "955E";
	
	/** 進捗ステータス(9700:工事完了) */
	private static final String KOJI_FIN = "9700";
	
	/** 進捗ステータス(957E:工事NG) */
	private static final String KOJI_NG = "957E";
	
	/** 進捗ステータス(9610:工事予定情報取込) */
	private static final String KOJI_RSV_INF_TRKM = "9610";
	
	/** 進捗ステータス(9704:工事取消) */
	private static final String KOJI_CL = "9704";
	
	// ++++++++++++++++++++ v9.00.00 追加開始 +++++++++++++++++
	/** 進捗ステータス(9660:宅内工事情報取込) */
	private static final String TAKNI_KOJI_INF_TRKM = "9660";
	// ++++++++++++++++++++ v9.00.00 追加終了 +++++++++++++++++
	
// ANK-3136-00-00 ADD START
	/** 進捗ステータス(9706:工事仮キャンセル受付) */
	private static final String KOJI_KR_CNCL_UK = "9706";
	
	/** 進捗ステータス(9707:工事仮キャンセル取消受付) */
	private static final String KOJI_KR_CNCL_CL_UK = "9707";
// ANK-3136-00-00 ADD END
	
	/** レコード区分(設計設備情報) */
	private static final String REC_DOV_20 = "20";
	
	/** レコード区分(工事完了情報) */
	private static final String REC_DOV_40 = "40";
	
	/** レコード区分(工事取消情報) */
	private static final String REC_DOV_90 = "90";
	
	/** レコード区分(宅内工事情報) */
	private static final String REC_DOV_B0 = "B0";
	
	// ++++++++++++++++++++ v9.00.00 追加開始 +++++++++++++++++
	/** レコード区分(工事予定情報（ネット）) */
	private static final String REC_DOV_60 = "60";
	
	/** レコード区分(工事予定情報（テレビ）) */
	private static final String REC_DOV_61 = "61";
	// ++++++++++++++++++++ v9.00.00 追加終了 +++++++++++++++++
	
// ANK-3136-00-00 ADD START
	/** レコード区分(工事仮キャンセル受付情報) */
	private static final String REC_DOV_E0 = "E0";
	
	/** レコード区分(工事仮キャンセル取消情報) */
	private static final String REC_DOV_F0 = "F0";
// ANK-3136-00-00 ADD END
	
	/** サービス契約ステータス(010:受付済) */
	private static final String SVC_KEI_STAT_UKZM = "010";
	
	/** サービス契約ステータス(020:照査済) */
	private static final String SVC_KEI_STAT_SHOSAZM = "020";
	
	/** サービス契約ステータス(030:締結済) */
	private static final String SVC_KEI_STAT_CNCZM = "030";
	
	/** サービス契約ステータス(100:サービス提供中) */
	private static final String SVC_KEI_STAT_SVCTKCHU = "100";
	
	/** カンマ */
	private static final String CONMA = ",";
	
	/** 項目取得キー(工事案件中止理由コード) */
	private static final String KEY_CD_SBT_CD_RSN = "CD01454";
	
	/** 項目取得キー(工事案件中止理由詳細コード) */
	private static final String KEY_CD_SBT_CD_RSN_DTAIL = "CD01455";
	
	/** 項目取得キー(工事案件種別コード) */
	private static final String KEY_CD_SBT_CD_KOJIAK_SBT_CD = "CD00577";
	
	/** 判定に使用 */
	private static final String STR_ZERO = "0";
	
	/** 工事案件種別コード(001:新設) */
	private static final String KOJIAK_SBT_CD_NEWESTA = "001";
	
	/** 工事案件種別コード(003:住所変更（新設）) */
	private static final String KOJIAK_SBT_CD_ADCHG_NEWESTA = "003";
	
	/** 新設工事NGビジネスエラーの件数カウンタ */
	private int businessErrCnt = 0;
	
// ANK-3136-00-00 ADD START
	/** 設備流用工事案件チェックNGビジネスエラーの件数カウンタ */
	private int businessErrSbryCnt = 0;
// ANK-3136-00-00 ADD END
	
// ++++++++++++++++++++ v7.00.02 追加開始 +++++++++++++++++
	/** ルール処理部品インスタンス */
	private JRuleXMLHandler jRuleXMLHandler = null;

	/** 進捗登録対象データ */
	private List<String[]> prgOutData = null;
	
	/**進捗登録対象ファイル */
	private String prgOutFile = null;
	
	/** 中間フォルダパス */
	private String mid_dir_kk = null;
// ++++++++++++++++++++ v7.00.02 追加終了 +++++++++++++++++
	
// ANK-3136-00-00 ADD START
	/** 仮キャンセル情報保持 */
	private StringBuilder krCnclInf = new StringBuilder();
	
	/** 工事完了機器流用対象文字列保持 */
	private StringBuilder kojiFinKikiRyuyoInf = new StringBuilder();
	
	/** 異動区分（進捗登録情報） */
	private String prgAddIdoDiv = null;
	
	/** 進捗ステータス（進捗登録情報） */
	private String prgAddPrgStat = null;
	
	/** 進捗年月日時分秒（進捗登録情報） */
	private String prgAddPrgYmdDtm = null;
	
	/** ダミーONU宅内機器型式コード */
	private String dummyOnuModelCd = null;
	
	/** ダミーVONU宅内機器型式コード */
	private String dummyVOnuModelCd = null;
	
	/** 工事案件番号退避 */
	private Set<String> kojiakNoTaihiSet = null;
// ANK-3136-00-00 ADD END
	
	// ++++++++++++++++++++ v7.00.03 追加開始 ++++++++++++++++++++++
	
	/** KK_SELECT_060の結果を保持 */
	private Map<String, JBSbatCommonDBInterface> kkSelect060StockMap = new HashMap<String, JBSbatCommonDBInterface>();
	
	/** サービス契約ステータス(解約済) */
	private static final String SVC_KEI_STAT_DSL = "910";
	
	/** サービス契約ステータス(キャンセル済) */
	private static final String SVC_KEI_STAT_CANCEL = "920";
// ++++++++++++++++++++ v7.00.03 追加開始 ++++++++++++++++++++++

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		db_KK_T_KOJI_DLY_KEHSI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KOJI_DLY_KEHSI);
// ++++++++++++++++++++ v7.00.03 削除開始 ++++++++++++++++++++++
//		db_KK_T_PRG = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_PRG);
// ++++++++++++++++++++ v7.00.03 削除終了 ++++++++++++++++++++++
		db_KK_T_KAKINS = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KAKINS);
		db_KU_T_KOJIAK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_KOJIAK);
		db_ZM_M_CD_NM_KANRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_CD_NM_KANRI);
// ANK-3136-00-00 ADD START
		db_ZM_M_WORK_PARAM_KNRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_WORK_PARAM_KNRI);
		db_KK_T_KKTK_SVC_KEI_245 = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KKTK_SVC_KEI);
		db_KK_T_KKTK_SVC_KEI_246 = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KKTK_SVC_KEI);
// ANK-4577-00-00 ADD START
		db_KK_T_SVC_KEI_383 = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
// ANK-4577-00-00 ADD END
		db_KK_T_SVC_KEI_344 = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		db_KU_T_SVKEI_KOJIAK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_SVKEI_KOJIAK);
		db_KK_T_IDO_RSV = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_IDO_RSV);
// ANK-3136-00-00 ADD END
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
// ++++++++++++++++++++ v7.00.02 削除開始 +++++++++++++++++
//		// 共通部品用
//		stmt = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_PRG);
// ++++++++++++++++++++ v7.00.02 削除終了 +++++++++++++++++
		
// ++++++++++++++++++++ v7.00.02 追加開始 +++++++++++++++++
		jRuleXMLHandler = JCCBatCommon.createSokanRuleEngine(RULE_CONT_ID, JRuleXMLPattern.SINGLE_MODE_TYPE);
		prgOutData = new ArrayList<String[]>();
		mid_dir_kk = freeItem.split(";")[0];
		prgOutFile = freeItem.split(";")[1];
// ++++++++++++++++++++ v7.00.02 追加終了 +++++++++++++++++
// ANK-3136-00-00 ADD START
		kojiakNoTaihiSet = new HashSet<String>();
// ANK-3136-00-00 ADD END
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		super.logPrint.printDebugLog("execute_START");
		
// ++++++++++++++++++++ v7.00.02 削除開始 +++++++++++++++++
//		// 中間ファイル格納先
//		String mid_dir_kk = commonItem.getFreeItem();
// ++++++++++++++++++++ v7.00.02 削除終了 +++++++++++++++++
		
		// 宅内調査結果情報出力処理を実施します。
		takchoRsltIfOutPut(mid_dir_kk);
		
		// 設計結果情報出力処理を実施します。
		dsgnEquipInfOutPut(mid_dir_kk);
		
		// 伝送設備情報出力処理を実施します。
		densoEquipInfOutPut(mid_dir_kk);
		
		// 工事完了情報出力処理を実施します。
		kojiFinInfOutPut(mid_dir_kk);
		
		// 工事取消情報出力処理を実施します。
		kojiClInfOutPut(mid_dir_kk);
		
		// 工事予定情報(ネット)出力処理を実施します。
		kojiRsvInfNetOutPut(mid_dir_kk);
		
		// 工事予定情報(テレビ)出力処理を実施します。
		kojiRsvInfTVOutPut(mid_dir_kk);
		
		// 機器情報(ネット)出力処理を実施します。
		kikiInfNetOutPut(mid_dir_kk);
		
		// 機器情報(テレビ)出力処理を実施します。
		kikiInfTvOutPut(mid_dir_kk);
		
		// 宅内工事情報出力処理を実施します。
		takniKojiInfOutPut(mid_dir_kk);
		
		// 工事費情報出力処理を実施します。
		kojihiInfOutPut(mid_dir_kk);
		
		// ＳＴＢ着工情報出力処理を実施します。
		stbChakukoInfOutPut(mid_dir_kk);
		
// ANK-3136-00-00 ADD START
		// 工事仮キャンセル受付情報出力処理を実施します。
		krCnclUkInfOutPut(mid_dir_kk);
		
		// 工事仮キャンセル取消情報出力処理を実施します。
		krCnclClInfOutPut(mid_dir_kk);
// ANK-3136-00-00 ADD END

		// 新設工事NGビジネスエラー件数が0以外の場合、エラー件数設定
		if (businessErrCnt != 0)
		{
			super.commonItem.setErrorCount(businessErrCnt);
			super.logPrint.printDebugLog("新設工事NGビジネスエラー件数：" + businessErrCnt);
		}
		
// ANK-3136-00-00 ADD START
		// 設備流用工事案件チェックNGビジネスエラー件数が0以外の場合、エラー件数設定
		if (businessErrSbryCnt != 0)
		{
			super.commonItem.setErrorCount(businessErrSbryCnt);
			super.logPrint.printDebugLog("設備流用工事案件チェックNGビジネスエラー件数：" + businessErrSbryCnt);
		}
// ANK-3136-00-00 ADD END
		
		super.logPrint.printDebugLog("execute_END");
		
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_SVC_KEI.close();
		db_KK_T_KOJI_DLY_KEHSI.close();
// ++++++++++++++++++++ v7.00.03 削除開始 ++++++++++++++++++++++
//		db_KK_T_PRG.close();
// ++++++++++++++++++++ v7.00.03 削除終了 ++++++++++++++++++++++
		db_KK_T_KAKINS.close();
		db_KU_T_KOJIAK.close();
		db_ZM_M_CD_NM_KANRI.close();
// ANK-3136-00-00 ADD START
		db_ZM_M_WORK_PARAM_KNRI.close();
		db_KK_T_KKTK_SVC_KEI_245.close();
		db_KK_T_KKTK_SVC_KEI_246.close();
// ANK-4577-00-00 ADD START
		db_KK_T_SVC_KEI_383.close();
// ANK-4577-00-00 ADD END
		db_KK_T_SVC_KEI_344.close();
		db_KU_T_SVKEI_KOJIAK.close();
		db_KK_T_IDO_RSV.close();
// ANK-3136-00-00 ADD END
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		
// ++++++++++++++++++++ v7.00.02 削除開始 +++++++++++++++++
//		// 共通部品用
//		stmt.close();
// ++++++++++++++++++++ v7.00.02 削除終了 +++++++++++++++++
		
// ++++++++++++++++++++ v7.00.02 追加開始 +++++++++++++++++
		// 進捗情報ファイルへの出力
		executeOutputFile(prgOutData, prgOutFile, "進捗登録情報");
// ++++++++++++++++++++ v7.00.02 追加終了 +++++++++++++++++
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	CD_SBT_CD
	 *		 	CD_DIV
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return JBSbatCommonDBInterface 検索の結果。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeZM_M_CD_NM_KANRI_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("CD_SBT_CD", whereParam[0]);
		whereMap.setValue("CD_DIV", whereParam[1]);

		// DBアクセスを実行します
		return db_ZM_M_CD_NM_KANRI.selectByPrimaryKeys(whereMap);
	}
	
// ++++++++++++++++++++ v7.00.03 削除開始 ++++++++++++++++++++++
//	/**
//	 * SQLKEY(KK_SELECT_029)で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_PRG_KK_SELECT_029(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_PRG.selectBySqlDefine(paramList, KK_T_PRG_KK_SELECT_029);
//	}	
// ++++++++++++++++++++ v7.00.03 削除終了 ++++++++++++++++++++++
	/**
	 * 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_060)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	SVC_KEI_NO
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeKK_T_SVC_KEI_KK_SELECT_060(Object[] param) throws Exception
	{
		String svcKeiNo = param[0].toString();
		if (kkSelect060StockMap.containsKey(svcKeiNo))
		{
			return kkSelect060StockMap.get(svcKeiNo);
		}
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(svcKeiNo);
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_060);
		
		JBSbatCommonDBInterface outDbMap = db_KK_T_SVC_KEI.selectNext();
		kkSelect060StockMap.put(svcKeiNo, outDbMap);
		
		return outDbMap;
	}

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	サービス契約番号				SVC_KEI_NO
	 *		 	工事遅延補正年月日				KOJI_DLY_HOSEI_YMD
	 *		 	補正前サービス課金開始年月日				HOSEI_BF_SVC_CHRG_STAYMD
	 *		 	補正後サービス課金開始年月日				HOSEI_AF_SVC_CHRG_STAYMD
	 *		 	サービス課金開始年月日変更理由コード				SVC_CHRG_STAYMD_CHGRE_CD
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録オペレータアカウント				ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除オペレータアカウント				DEL_OPEACNT
	 *		 	無効フラグ				MK_FLG
	 *		 	登録運用年月日				ADD_UNYO_YMD
	 *		 	登録処理ＩＤ				ADD_TRN_ID
	 *		 	更新運用年月日				UPD_UNYO_YMD
	 *		 	更新処理ＩＤ				UPD_TRN_ID
	 *		 	削除運用年月日				DEL_UNYO_YMD
	 *		 	削除処理ＩＤ				DEL_TRN_ID
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_KOJI_DLY_KEHSI_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("SVC_KEI_NO", setParam[0]);
		setMap.setValue("KOJI_DLY_HOSEI_YMD", setParam[1]);
		setMap.setValue("HOSEI_BF_SVC_CHRG_STAYMD", setParam[2]);
		setMap.setValue("HOSEI_AF_SVC_CHRG_STAYMD", setParam[3]);
		setMap.setValue("SVC_CHRG_STAYMD_CHGRE_CD", setParam[4]);
		setMap.setValue("ADD_DTM", setParam[5]);
		setMap.setValue("ADD_OPEACNT", setParam[6]);
		setMap.setValue("UPD_DTM", setParam[7]);
		setMap.setValue("UPD_OPEACNT", setParam[8]);
		setMap.setValue("DEL_DTM", setParam[9]);
		setMap.setValue("DEL_OPEACNT", setParam[10]);
		setMap.setValue("MK_FLG", setParam[11]);
		setMap.setValue("ADD_UNYO_YMD", setParam[12]);
		setMap.setValue("ADD_TRN_ID", setParam[13]);
		setMap.setValue("UPD_UNYO_YMD", setParam[14]);
		setMap.setValue("UPD_TRN_ID", setParam[15]);
		setMap.setValue("DEL_UNYO_YMD", setParam[16]);
		setMap.setValue("DEL_TRN_ID", setParam[17]);
	
		// DBアクセスを実行します
		db_KK_T_KOJI_DLY_KEHSI.insertByPrimaryKeys(setMap);
	}
	
	/**
	 * SQLKEY(KK_SELECT_022)で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_022(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_022);
	}
	
// ANK-3136-00-00 ADD START

	/**
	 * SQLKEY(KK_SELECT_021)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	業務パラメータ適用開始年月日
	 *		 	業務パラメータ適用終了年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZM_M_WORK_PARAM_KNRI_KK_SELECT_021(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_ZM_M_WORK_PARAM_KNRI.selectBySqlDefine(paramList, ZM_M_WORK_PARAM_KNRI_KK_SELECT_021);
	}

	/**
	 * SQLKEY(KK_SELECT_245)で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_245(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_245.selectBySqlDefine(paramList, KK_T_KKTK_SVC_KEI_KK_SELECT_245);
	}

	/**
	 * SQLKEY(KK_SELECT_246)で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_246(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_246.selectBySqlDefine(paramList, KK_T_KKTK_SVC_KEI_KK_SELECT_246);
	}

// ANK-4577-00-00 ADD START
	/**
	 * SQLKEY(KK_SELECT_383)で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_383(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI_383.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_383);
	}
// ANK-4577-00-00 ADD END

// IT1-2018-0000124 DEL START
//	/**
//	 * SQLKEY(KK_SELECT_344)で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_344(Object[] param) throws Exception
//	{
//		// バイント変数のリストを生成します
//		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
//		paramList.setValue(param[0].toString());
//		paramList.setValue(param[1].toString());
//
//		// DBアクセスを実行します
//		db_KK_T_SVC_KEI_344.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_344);
//	}
// IT1-2018-0000124 DEL END

	/**
	 * SQLKEY(KK_SELECT_022)で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_SVKEI_KOJIAK_KK_SELECT_022(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KU_T_SVKEI_KOJIAK.selectBySqlDefine(paramList, KU_T_SVKEI_KOJIAK_KK_SELECT_022);
	}

// IT1-2018-0000124 DEL START
//	/**
//	 * SQLKEY(KK_SELECT_098)で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_IDO_RSV_KK_SELECT_098(Object[] param) throws Exception
//	{
//		// バイント変数のリストを生成します
//		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
//		paramList.setValue(param[0].toString());
//		paramList.setValue(param[1].toString());
//
//		// DBアクセスを実行します
//		db_KK_T_IDO_RSV.selectBySqlDefine(paramList, KK_T_IDO_RSV_KK_SELECT_098);
//	}
// IT1-2018-0000124 DEL END
// ANK-3136-00-00 ADD END
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * 指定されたファイル情報を読み込みます。<br>
	 * <p>
	 * @param file_path ファイル名(フルパス)
	 * @param file_name ファイル名
	 * @return ファイルデータ
	 * @throws JBSbatBusinessException 
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */	
	private ArrayList<String> getInputFile(String file_path, String file_name) throws JBSbatBusinessException, IOException
	{
		super.logPrint.printDebugLog("getInputFile_START");
		
		// ファイル情報保持
		ArrayList<String> data_list = new ArrayList<String>();
		BufferedReader br = null;
		
		// 指定されたファイルを読み込みます。
		try
		{
			InputStreamReader is = new InputStreamReader(new FileInputStream(file_path), ENCODE);
			
			br = new BufferedReader(is);
			
			while (br.ready())
			{
				// 1行読込み
				data_list.add(br.readLine());
			}
		}
		catch (IOException e)
		{
			// 工事関連情報受信ファイルがない場合はエラー。
			throw new JBSbatBusinessException("EKKB0020CE", new String[]{file_path});
		}
		finally
		{
			if (null != br)
			{
				br.close();
			}
		}
		
		super.logPrint.printDebugLog("getInputFile_END");
		
		return data_list;
	}
	
	/**
	 * 中間ファイルを出力します。<br>
	 * <p>
	 * @param file_data 出力情報
	 * @param file_path ファイル名(フルパス)
	 * @param file_name ファイル名
	 * @throws JBSbatBusinessException 
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */	
	private void executeOutputFile(String file_data, String file_path, String file_name) throws IOException, JBSbatBusinessException
	{
		// 一時ファイル読込み処理
		BufferedWriter wr = null;
		try
		{
			// パラメータで渡された中間ファイルを出力する。
			wr = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file_path), ENCODE));
			// ファイル書き込み
			wr.write(file_data);
			wr.flush();
		}
		catch(IOException e)
		{
			throw new JBSbatBusinessException("EKKB0250CE", new String[]{file_name, MASSEAGE});
		}
		finally
		{
			if (null != wr)
			{
				wr.close();
			}
		}
	}
	
	/**
	 * 工事遅延契約補正情報登録。<br>
	 * <p>
	 * @param data 各出力ファイル情報
	 * @param outDbMap サービス契約情報
	 * @throws Exception 
	 */	
	private void createKojiDlyKeiHosei(String[] data, JBSbatCommonDBInterface outDbMap) throws Exception
	{
		super.logPrint.printDebugLog("createKojiDlyKeiHosei_START");
		
		Object[] setParam = new Object[18];
		
		// サービス契約番号
		setParam[0] = data[0];
		// 工事遅延補正年月日
		setParam[1] = data[2];
		// 変更前サービス課金開始年月日
		setParam[2] = HAFE_SPACE;
		// 変更後サービス課金開始年月日
		setParam[3] = HAFE_SPACE;
		// サービス課金開始年月日変更理由コード(工場連携情報不正)
		setParam[4] = "40";
		// 登録年月日時分秒
		setParam[5] = SPACE;
		// 登録オペレータアカウント
		setParam[6] = SPACE;
		// 更新年月日時分秒
		setParam[7] = SPACE;
		// 更新オペレータアカウント
		setParam[8] = SPACE;
		// 削除年月日時分秒
		setParam[9] = SPACE;
		// 削除オペレータアカウント
		setParam[10] = SPACE;
		// 無効フラグ
		setParam[11] = "0";
		// 登録運用年月日
		setParam[12] = super.opeDate;
		// 登録処理ＩＤ
		setParam[13] = SPACE;
		// 更新運用年月日
		setParam[14] = super.opeDate;
		// 更新処理ＩＤ
		setParam[15] = SPACE;
		// 削除運用年月日
		setParam[16] = SPACE;
		// 削除処理ＩＤ
		setParam[17] = SPACE;
		
		// 工事遅延契約補正情報登録実行。
		executeKK_T_KOJI_DLY_KEHSI_PKINSERT(setParam);
		
		super.logPrint.printDebugLog("createKojiDlyKeiHosei_END");
	}
	
	/**
	 * 宅内調査結果情報出力処理を行います。<br>
	 * <p>
	 * @param mid_dir_kk 中間ファイル格納先
	 * @throws Exception 
	 */	
	private void takchoRsltIfOutPut(String mid_dir_kk) throws Exception
	{
		super.logPrint.printDebugLog("takchoRsltIfOutPut_START");
		
		String data_work = "";			// 宅内調査結果情報ファイル1行データ保持
		String file_path = "";			// ファイルパス保持
		String file_path1 = "";			// ファイルパス保持
		String file_path2 = "";			// ファイルパス保持
		String svc_kei_stat = "";		// サービス契約ステータス保持
		StringBuilder tak_cho_rslt_inf1 = new StringBuilder();		// 宅内調査結果情報文字列保持用(受入可)
		StringBuilder tak_cho_rslt_inf2 = new StringBuilder();		// 宅内調査結果情報文字列保持用(翌日取込)
		
		// フルパスを生成。
		file_path = mid_dir_kk + TAK_CHO_RSLT_INF__FILE_ID + "002" + FILE_KEISHIKI;
		
		// マージされた宅内調査結果情報ファイルを読込みます。
		ArrayList<String> data_list = getInputFile(file_path, TAK_CHO_RSLT_INF__FILE_ID);
		
		// 宅内調査結果情報ファイル件数分の繰返し
		for (int i = 0; i < data_list.size(); i++)
		{
			// １行目を取得
			data_work = data_list.get(i);
			
			// データを分解
			String[] data = data_work.split(",", -1);
			
			// サービス契約番号を取得します。
			String svc_kei_no = data[0];
			
			// 工事案件種別コードの取得
			String kuj_ank_stb_cd = data[5];
			
			// サービス契約情報検索条件項目の設定
			Object[] paramList = new Object[2];
			
			// サービス契約番号の設定
			paramList[0] = svc_kei_no;
			paramList[1] = super.opeDate;		// バッチ運用日
			
			// サービス契約情報検索処理実行
			JBSbatCommonDBInterface outDbMap = executeKK_T_SVC_KEI_KK_SELECT_060(paramList);
			
			// 検索結果の判断
			if (null != outDbMap)
			{
				// サービス契約ステータスの取得
				svc_kei_stat = JBSbatStringUtil.Rtrim(outDbMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT));
			}
			else
			{
// +++++++++++++++++++ v7.00.03 変更開始（マイナーアラーム化）+++++++++++++++++++
				//throw new JBSbatBusinessException("EKKB0210CE", new String[]{TABLE_NAME, MASSEAGE1 + "{サービス契約番号：" + svc_kei_no + "}"});
				super.logPrint.printBusinessErrorLog("EKKB0630NW", new String[]{"サービス契約", "サービス契約番号", svc_kei_no});
				continue;
// +++++++++++++++++++ v7.00.03 変更終了（マイナーアラーム化）+++++++++++++++++++
			}
			
			// レコード区分
			String rec_div = data[15];
			
			// ルールを呼び出し工事関連情報受入確認を実施します。
			String result_cd = executeRule0081001(kuj_ank_stb_cd, svc_kei_stat, rec_div);
			
			super.logPrint.printDebugLog("工事関連情報受入確認結果：" + result_cd);
			
			// ルールチェック結果の判断
			if (!"9".equals(result_cd))
			{
				// 受入可の場合
				if (RESULT_UKEIRE_PSB.equals(result_cd))
				{
					// サービス契約ステータスと、督促情報判定による宅内調査結果情報出力ファイル切り分けをします。
					if (this.isUkeirePsb(svc_kei_stat, svc_kei_no))
					{
						// サービス契約ステータスが「100：サービス提供中」、「210：休止・中断中」、「220：停止中」、
						//   「910：解約済」、「920：キャンセル済」の場合と、それ以外のステータスで督促情報検索結果なしの場合、
						//   「受入可」の処理を実施します。（中間ファイル（受入可）出力）
						// 宅内調査結果情報の項目転記
						this.setTakchoRsltIf(data_work, tak_cho_rslt_inf1);
						
					}
					else
					{
						// サービス契約ステータスが「010：受付済」、「020：照査済」、「030：締結済」の場合で、
						//   督促情報検索結果ありの場合、「翌日受入」の処理を実施します。（中間ファイル（翌日取込）出力）
						// 宅内調査結果情報の項目転記
						this.setTakchoRsltIf(data_work, tak_cho_rslt_inf2);
					}
					
					continue;
				}
				
				// 翌日受入の場合
				else if (RESULT_YOKUJITSU_UKEIRE.equals(result_cd))
				{
// +++++++++++++++++++ v7.00.03 変更開始 ++++++++++++++++++++++++++
					if (isYokujitsuUkeire(svc_kei_stat, outDbMap))
					{
						// 宅内調査結果情報の項目転記
						setTakchoRsltIf(data_work, tak_cho_rslt_inf2);
					}
// +++++++++++++++++++ v7.00.03 変更終了 ++++++++++++++++++++++++++
					continue;
				}
				
				// 受入不可の場合
				else if (RESULT_UKEIRE_FAIL.equals(result_cd))
				{
					// 対象サービス契約番号が工事遅延契約補正TBLに存在していない場合
					if (isKojiDlyKeiHosei(svc_kei_no, data[2]))
					{
						// 工事遅延契約補正TBLへの登録。
						createKojiDlyKeiHosei(data, outDbMap);
						continue;
					}
				}
			}
			else
			{
				// 業務エラーログ出力
				super.logPrint.printBusinessErrorLog("EKKB0010CW", 
						new String[]{MASSEAGE2 + "(ファイルＩＤ：" + TAK_CHO_RSLT_INF__FILE_ID  + ", サービス契約番号：" + svc_kei_no + ")"});
				continue;
			}
		}
		
		// フルパスを生成。（受入可）
		file_path1 = mid_dir_kk + TAK_CHO_RSLT_INF__FILE_ID + "003" + FILE_KEISHIKI;
		
		// 宅内調査結果情報ファイル(受入可)を出力
		executeOutputFile(tak_cho_rslt_inf1.toString(), file_path1, TAK_CHO_RSLT_INF__FILE_ID);
		
		// フルパスを生成。（翌日取込）
		file_path2 = mid_dir_kk + TAK_CHO_RSLT_INF__FILE_ID + "004" + FILE_KEISHIKI;
		
		// 宅内調査結果情報ファイル(翌日取込)を出力
		executeOutputFile(tak_cho_rslt_inf2.toString(), file_path2, TAK_CHO_RSLT_INF__FILE_ID);
		
		super.logPrint.printDebugLog("takchoRsltIfOutPut_END");
	}
	
	/**
	 * 宅内調査結果情報データを設定します。<br>
	 * <p>
	 * @param data_work 宅内調査結果情報データ
	 * @param tak_cho_rslt_inf 文字列データ保持
	 * @throws Exception 
	 */	
	private void setTakchoRsltIf(String data_work, StringBuilder tak_cho_rslt_inf) throws Exception
	{
		super.logPrint.printDebugLog("setTakchoRsltIf_START");
		
		// 項目転記開始
		tak_cho_rslt_inf.append(data_work);
		
		// 改行コード
		tak_cho_rslt_inf.append(KAIGYOU_CODE);
		
		super.logPrint.printDebugLog("setTakchoRsltIf_END");
	}
	
	/**
	 * 設計結果情報出力処理を行います。<br>
	 * <p>
	 * @param mid_dir_kk 中間ファイル格納先
	 * @throws Exception 
	 */	
	private void dsgnEquipInfOutPut(String mid_dir_kk) throws Exception
	{
		super.logPrint.printDebugLog("dsgnEquipInfOutPut_START");
		
		String data_work = "";			// 設計結果情報ファイル1行データ保持
		String file_path = "";			// ファイルパス保持
		String file_path1 = "";			// ファイルパス保持
		String file_path2 = "";			// ファイルパス保持
		String svc_kei_stat = "";		// サービス契約ステータス保持
		StringBuilder dsgn_equip_inf1 = new StringBuilder();		// 設計結果情報文字列保持用(受入可)
		StringBuilder dsgn_equip_inf2 = new StringBuilder();		// 設計結果情報文字列保持用(翌日取込)
		
// ++++++++++++++++++++ v7.00.02 削除開始 +++++++++++++++++
//		// 異動区分
//		String ido_div = "";
// ++++++++++++++++++++ v7.00.02 削除終了 +++++++++++++++++
		
		// フルパスを生成。
		file_path = mid_dir_kk + DSGN_EQUIP_INF_FILE_ID + "002" + FILE_KEISHIKI;
		
		// マージされた設計結果情報ファイルを読込みます。
		ArrayList<String> data_list = getInputFile(file_path, DSGN_EQUIP_INF_FILE_ID);
		
		// 設計結果情報ファイル件数分の繰返し
		for (int i = 0; i < data_list.size(); i++)
		{
			// １行目を取得
			data_work = data_list.get(i);
			
			// データを分解
			String[] data = data_work.split(",", -1);
			
			// サービス契約番号を取得します。
			String svc_kei_no = data[0];
			
			// 工事案件種別コードの取得
			String kuj_ank_stb_cd = data[5];
			
			// サービス契約情報検索条件項目の設定
			Object[] paramList = new Object[2];
			
			// サービス契約番号の設定
			paramList[0] = svc_kei_no;
			paramList[1] = super.opeDate;
			
			// サービス契約情報検索処理実行
// ++++++++++++++++++++ v7.00.02 変更開始 +++++++++++++++++
//			executeKK_T_SVC_KEI_KK_SELECT_090(paramList);
			JBSbatCommonDBInterface outDbMap = executeKK_T_SVC_KEI_KK_SELECT_060(paramList);
// ++++++++++++++++++++ v7.00.02 変更終了 +++++++++++++++++
			
			// 検索結果の判断
			if (null != outDbMap)
			{
				// サービス契約ステータスの取得
				svc_kei_stat = JBSbatStringUtil.Rtrim(outDbMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT));
// ++++++++++++++++++++ v7.00.02 削除開始 +++++++++++++++++
//				ido_div = JBSbatStringUtil.Rtrim(outDbMap.getString(JBSbatKK_T_SVC_KEI.IDO_DIV));
// ++++++++++++++++++++ v7.00.02 削除終了 +++++++++++++++++
			}
			else
			{
// +++++++++++++++++++ v7.00.03 変更開始（マイナーアラーム化）+++++++++++++++++++
				//throw new JBSbatBusinessException("EKKB0210CE", new String[]{TABLE_NAME, MASSEAGE1 + "{サービス契約番号：" + svc_kei_no + "}"});
				super.logPrint.printBusinessErrorLog("EKKB0630NW", new String[]{"サービス契約", "サービス契約番号", svc_kei_no});
				continue;
// +++++++++++++++++++ v7.00.03 変更終了（マイナーアラーム化）+++++++++++++++++++
			}
			
			// レコード区分
			String rec_div = data[10];
			
			// ルールを呼び出し工事関連情報受入確認を実施します。
			String result_cd = executeRule0081001(kuj_ank_stb_cd, svc_kei_stat, rec_div);
			
			super.logPrint.printDebugLog("工事関連情報受入確認結果：" + result_cd);
			
			// ルールチェック結果の判断
			if (!"9".equals(result_cd))
			{
				// 受入可の場合
				if (RESULT_UKEIRE_PSB.equals(result_cd))
				{
					// サービス契約ステータスと、督促情報判定による設計結果情報出力ファイル切り分けをします。
					if (this.isUkeirePsb(svc_kei_stat, svc_kei_no))
					{
						// サービス契約ステータスが「100：サービス提供中」、「210：休止・中断中」、「220：停止中」、
						//   「910：解約済」、「920：キャンセル済」の場合と、それ以外のステータスで督促情報検索結果なしの場合、
						//   「受入可」の処理を実施します。（中間ファイル（受入可）出力）
						// 設計結果情報の項目転記
						this.setDsgnEquipInf(data_work, dsgn_equip_inf1);
						
						// 進捗データを登録します。
// ++++++++++++++++++++ v7.00.02 変更開始 +++++++++++++++++
//						this.setPrgIfAdd(data, ido_div);
						this.setPrgIfAdd(data);
// ++++++++++++++++++++ v7.00.02 変更終了 +++++++++++++++++
					}
					else
					{
						// サービス契約ステータスが「010：受付済」、「020：照査済」、「030：締結済」の場合で、
						//   督促情報検索結果ありの場合、「翌日受入」の処理を実施します。（中間ファイル（翌日取込）出力）
						// 設計結果情報の項目転記
						this.setDsgnEquipInf(data_work, dsgn_equip_inf2);
					}
					
					continue;
				}
				
				// 翌日受入の場合
				else if (RESULT_YOKUJITSU_UKEIRE.equals(result_cd))
				{
// +++++++++++++++++++ v7.00.03 変更開始 ++++++++++++++++++++++++++
					if (isYokujitsuUkeire(svc_kei_stat, outDbMap))
					{
						// 設計結果情報の項目転記
						setDsgnEquipInf(data_work, dsgn_equip_inf2);
					}
// +++++++++++++++++++ v7.00.03 変更終了 ++++++++++++++++++++++++++
					continue;
				}
				
				// 受入不可の場合
				else if (RESULT_UKEIRE_FAIL.equals(result_cd))
				{
					// 対象サービス契約番号が工事遅延契約補正TBLに存在していない場合
					if (isKojiDlyKeiHosei(svc_kei_no, data[2]))
					{
						// 工事遅延契約補正TBLへの登録。
						createKojiDlyKeiHosei(data, outDbMap);
						continue;
					}
				}
			}
			else
			{
				// 業務エラーログ出力
				super.logPrint.printBusinessErrorLog("EKKB0010CW", 
						new String[]{MASSEAGE2 + "(ファイルＩＤ：" + TAK_CHO_RSLT_INF__FILE_ID  + ", サービス契約番号：" + svc_kei_no + ")"});
				continue;
			}
		}
		
		// フルパスを生成。（受入可）
		file_path1 = mid_dir_kk + DSGN_EQUIP_INF_FILE_ID +  "003" + FILE_KEISHIKI;
		
		// 設計結果情報ファイル(受入可)を出力
		executeOutputFile(dsgn_equip_inf1.toString(), file_path1, DSGN_EQUIP_INF_FILE_ID);
		
		// フルパスを生成。（翌日取込）
		file_path2 = mid_dir_kk + DSGN_EQUIP_INF_FILE_ID +  "004" + FILE_KEISHIKI;
		
		// 設計結果情報ファイル(翌日取込)を出力
		executeOutputFile(dsgn_equip_inf2.toString(), file_path2, DSGN_EQUIP_INF_FILE_ID);
		
		super.logPrint.printDebugLog("dsgnEquipInfOutPut_END");
	}
	
	/**
	 * 設計結果情報データを設定します。<br>
	 * <p>
	 * @param data_work 設計結果情報データ
	 * @param dsgn_equip_inf 文字列データ保持
	 * @throws Exception 
	 */	
	private void setDsgnEquipInf(String data_work, StringBuilder dsgn_equip_inf) throws Exception
	{
		super.logPrint.printDebugLog("setDsgnEquipInf_START");
		
		// 項目転記開始
		dsgn_equip_inf.append(data_work);
		
		// 改行コード
		dsgn_equip_inf.append(KAIGYOU_CODE);
		
		super.logPrint.printDebugLog("setDsgnEquipInf_END");
	}
	
	/**
	 * 伝送設備情報出力処理を行います。<br>
	 * <p>
	 * @param mid_dir_kk 中間ファイル格納先
	 * @throws Exception 
	 */	
	private void densoEquipInfOutPut(String mid_dir_kk) throws Exception
	{
		super.logPrint.printDebugLog("densoEquipInfOutPut_START");
		
		String data_work = "";			// 伝送設備情報ファイル1行データ保持
		String file_path = "";			// ファイルパス保持
		String file_path1 = "";			// ファイルパス保持
		String file_path2 = "";			// ファイルパス保持
		String svc_kei_stat = "";		// サービス契約ステータス保持
		StringBuilder dsgn_equip_inf1 = new StringBuilder();		// 伝送設備情報文字列保持用(受入可)
		StringBuilder dsgn_equip_inf2 = new StringBuilder();		// 伝送設備果情報文字列保持用(翌日取込)
		
		// フルパスを生成。
		file_path = mid_dir_kk + DENSO_EQUIP_INF_FILE_ID + "002" + FILE_KEISHIKI;
		
		// マージされた伝送設備情報ファイルを読込みます。
		ArrayList<String> data_list = getInputFile(file_path, DENSO_EQUIP_INF_FILE_ID);
		
		// 伝送設備情報ファイル件数分の繰返し
		for (int i = 0; i < data_list.size(); i++)
		{
			// １行目を取得
			data_work = data_list.get(i);
			
			// データを分解
			String[] data = data_work.split(",", -1);
			
			// サービス契約番号を取得します。
			String svc_kei_no = data[0];
			
			// 工事案件種別コードの取得
			String kuj_ank_stb_cd = data[5];
			
			// サービス契約情報検索条件項目の設定
			Object[] paramList = new Object[2];
			
			// サービス契約番号の設定
			paramList[0] = svc_kei_no;
			paramList[1] = super.opeDate;		// バッチ運用日
			
			// サービス契約情報検索処理実行
			JBSbatCommonDBInterface outDbMap = executeKK_T_SVC_KEI_KK_SELECT_060(paramList);
			
			// 検索結果の判断
			if (null != outDbMap)
			{
				// サービス契約ステータスの取得
				svc_kei_stat = JBSbatStringUtil.Rtrim(outDbMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT));
			}
			else
			{
// +++++++++++++++++++ v7.00.03 変更開始（マイナーアラーム化）+++++++++++++++++++
				//throw new JBSbatBusinessException("EKKB0210CE", new String[]{TABLE_NAME, MASSEAGE1 + "{サービス契約番号：" + svc_kei_no + "}"});
				super.logPrint.printBusinessErrorLog("EKKB0630NW", new String[]{"サービス契約", "サービス契約番号", svc_kei_no});
				continue;
// +++++++++++++++++++ v7.00.03 変更終了（マイナーアラーム化）+++++++++++++++++++
			}
			
			// レコード区分
			String rec_div = data[9];
			
			// ルールを呼び出し工事関連情報受入確認を実施します。
			String result_cd = executeRule0081001(kuj_ank_stb_cd, svc_kei_stat, rec_div);
			
			super.logPrint.printDebugLog("工事関連情報受入確認結果：" + result_cd);
			
			// ルールチェック結果の判断
			if (!"9".equals(result_cd))
			{
				// 受入可の場合
				if (RESULT_UKEIRE_PSB.equals(result_cd))
				{
					// サービス契約ステータスと、督促情報判定による伝送設備情報出力ファイル切り分けをします。
					if (this.isUkeirePsb(svc_kei_stat, svc_kei_no))
					{
						// サービス契約ステータスが「100：サービス提供中」、「210：休止・中断中」、「220：停止中」、
						//   「910：解約済」、「920：キャンセル済」の場合と、それ以外のステータスで督促情報検索結果なしの場合、
						//   「受入可」の処理を実施します。（中間ファイル（受入可）出力）
						// 伝送設備情報の項目転記
						this.setDensoEquipInf(data_work, dsgn_equip_inf1);
						
					}
					else
					{
						// サービス契約ステータスが「010：受付済」、「020：照査済」、「030：締結済」の場合で、
						//   督促情報検索結果ありの場合、「翌日受入」の処理を実施します。（中間ファイル（翌日取込）出力）
						// 伝送設備情報の項目転記
						this.setDensoEquipInf(data_work, dsgn_equip_inf2);
					}
					
					continue;
				}
				
				// 翌日受入の場合
				else if (RESULT_YOKUJITSU_UKEIRE.equals(result_cd))
				{
// +++++++++++++++++++ v7.00.03 変更開始 ++++++++++++++++++++++++++
					if (isYokujitsuUkeire(svc_kei_stat, outDbMap))
					{
						// 伝送設備情報の項目転記
						setDensoEquipInf(data_work, dsgn_equip_inf2);
					}
// +++++++++++++++++++ v7.00.03 変更終了 ++++++++++++++++++++++++++
					continue;
				}
				
				// 受入不可の場合
				else if (RESULT_UKEIRE_FAIL.equals(result_cd))
				{
					// 対象サービス契約番号が工事遅延契約補正TBLに存在していない場合
					if (isKojiDlyKeiHosei(svc_kei_no, data[2]))
					{
						// 工事遅延契約補正TBLへの登録。
						createKojiDlyKeiHosei(data, outDbMap);
						continue;
					}
				}
			}
			else
			{
				// 業務エラーログ出力
				super.logPrint.printBusinessErrorLog("EKKB0010CW", 
						new String[]{MASSEAGE2 + "(ファイルＩＤ：" + TAK_CHO_RSLT_INF__FILE_ID  + ", サービス契約番号：" + svc_kei_no + ")"});
				continue;
			}
		}
		
		// フルパスを生成。（受入可）
		file_path1 = mid_dir_kk + DENSO_EQUIP_INF_FILE_ID + "003" + FILE_KEISHIKI;
		
		// 伝送設備情報ファイル(受入可)を出力
		executeOutputFile(dsgn_equip_inf1.toString(), file_path1, DENSO_EQUIP_INF_FILE_ID);
		
		// フルパスを生成。（翌日取込）
		file_path2 = mid_dir_kk + DENSO_EQUIP_INF_FILE_ID +  "004" + FILE_KEISHIKI;
		
		// 伝送設備情報ファイル(翌日取込)を出力
		executeOutputFile(dsgn_equip_inf2.toString(), file_path2, DENSO_EQUIP_INF_FILE_ID);
		
		super.logPrint.printDebugLog("densoEquipInfOutPut_END");
	}
	
	/**
	 * 伝送設備情報データを設定します。<br>
	 * <p>
	 * @param data_work 伝送設備情報データ
	 * @param dsgn_equip_inf 文字列データ保持
	 * @throws Exception 
	 */	
	private void setDensoEquipInf(String data_work, StringBuilder dsgn_equip_inf) throws Exception
	{
		super.logPrint.printDebugLog("setDensoEquipInf_START");
		
		// 項目転記開始
		dsgn_equip_inf.append(data_work);
		
		// 改行コード
		dsgn_equip_inf.append(KAIGYOU_CODE);
		
		super.logPrint.printDebugLog("setDensoEquipInf_END");
	}

	/**
	 * 工事完了情報出力処理を行います。<br>
	 * <p>
	 * @param mid_dir_kk 中間ファイル格納先
	 * @throws Exception 
	 */	
	private void kojiFinInfOutPut(String mid_dir_kk) throws Exception
	{
		super.logPrint.printDebugLog("kojiFinInfOutPut_START");
		
		String data_work = "";			// 工事完了情報ファイル1行データ保持
		String file_path = "";			// ファイルパス保持
		String file_path1 = "";			// ファイルパス保持
		String file_path2 = "";			// ファイルパス保持
// ANK-3136-00-00 ADD START
		String file_path3 = "";			// ファイルパス保持
// ANK-3136-00-00 ADD END
		String svc_kei_stat = "";		// サービス契約ステータス保持
		StringBuilder koji_fin_inf1 = new StringBuilder();		// 工事完了情報文字列保持用(受入可)
		StringBuilder koji_fin_inf2 = new StringBuilder();		// 工事完了情報文字列保持用(翌日取込)
// ANK-3136-00-00 ADD START
		/**
		 * ダミーONU／ダミーV-ONU宅内機器型式コード取得
		 */
		JBSbatCommonDBInterface outMapWkParam021 = selectWorkParamKnri021();
		
		while(null != outMapWkParam021)
		{
			// 業務パラメータID
			String workParamId = JBSbatStringUtil.Rtrim(outMapWkParam021.getString(JBSbatZM_M_WORK_PARAM_KNRI.WORK_PARAM_ID));
			
			// ダミーONUの場合
			if (JKKStrConst.KK_SBRY_DUMMY_ONU.equals(workParamId))
			{
				// ダミーONU宅内機器型式コード
				dummyOnuModelCd = JBSbatStringUtil.Rtrim(outMapWkParam021.getString(JBSbatZM_M_WORK_PARAM_KNRI.WORK_PARAM_SETTE_VALUE));
			}
			// ダミーVONUの場合
			else
			{
				// ダミーVONU宅内機器型式コード
				dummyVOnuModelCd = JBSbatStringUtil.Rtrim(outMapWkParam021.getString(JBSbatZM_M_WORK_PARAM_KNRI.WORK_PARAM_SETTE_VALUE));
			}
			// 次レコード取得
			outMapWkParam021 = db_ZM_M_WORK_PARAM_KNRI.selectNext();
		}
// ANK-3136-00-00 ADD END
		
// ++++++++++++++++++++ v7.00.02 削除開始 +++++++++++++++++
//		// 異動区分
//		String ido_div = "";
// ++++++++++++++++++++ v7.00.02 削除終了 +++++++++++++++++
		
		// フルパスを生成。
		file_path = mid_dir_kk + KOJI_FIN_INF_FILE_ID + "002" + FILE_KEISHIKI;
		
		// マージされた工事完了情報ファイルを読込みます。
		ArrayList<String> data_list = getInputFile(file_path, KOJI_FIN_INF_FILE_ID);
		
		// 工事完了情報ファイル件数分の繰返し
		for (int i = 0; i < data_list.size(); i++)
		{
			// １行目を取得
			data_work = data_list.get(i);
			
			// データを分解
			String[] data = data_work.split(",", -1);
			
			// サービス契約番号を取得します。
			String svc_kei_no = data[0];
			
			// 工事案件種別コードの取得
			String kuj_ank_stb_cd = data[5];
			
// ANK-3136-00-00 ADD START
			// 工事案件番号の取得
			String kojiak_no = data[6];
// ANK-3136-00-00 ADD END
			
			// サービス契約情報検索条件項目の設定
			Object[] paramList = new Object[2];
			
			// サービス契約番号の設定
			paramList[0] = svc_kei_no;
			paramList[1] = super.opeDate;		// バッチ運用日
			
			// サービス契約情報検索処理実行
// ++++++++++++++++++++ v7.00.02 変更開始 +++++++++++++++++
//			executeKK_T_SVC_KEI_KK_SELECT_090(paramList);
			JBSbatCommonDBInterface outDbMap = executeKK_T_SVC_KEI_KK_SELECT_060(paramList);
// ++++++++++++++++++++ v7.00.02 変更終了 +++++++++++++++++
			
			// 検索結果の判断
			if (null != outDbMap)
			{
				// サービス契約ステータスの取得
				svc_kei_stat = JBSbatStringUtil.Rtrim(outDbMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT));
				
// ++++++++++++++++++++ v7.00.02 削除開始 +++++++++++++++++
//				// 異動区分の取得
//				ido_div = JBSbatStringUtil.Rtrim(outDbMap.getString(JBSbatKK_T_SVC_KEI.IDO_DIV));
// ++++++++++++++++++++ v7.00.02 削除終了 +++++++++++++++++
			}
			else
			{
// +++++++++++++++++++ v7.00.03 変更開始（マイナーアラーム化）+++++++++++++++++++
				//throw new JBSbatBusinessException("EKKB0210CE", new String[]{TABLE_NAME, MASSEAGE1 + "{サービス契約番号：" + svc_kei_no + "}"});
				super.logPrint.printBusinessErrorLog("EKKB0630NW", new String[]{"サービス契約", "サービス契約番号", svc_kei_no});
				continue;
// +++++++++++++++++++ v7.00.03 変更終了（マイナーアラーム化）+++++++++++++++++++
			}
			
			// レコード区分
			String rec_div = data[17];
			
			super.logPrint.printDebugLog("kuj_ank_stb_cd:" + kuj_ank_stb_cd);
			super.logPrint.printDebugLog("svc_kei_stat:::" + svc_kei_stat);
			super.logPrint.printDebugLog("rec_div::::::::" + rec_div);
			
			// ルールを呼び出し工事関連情報受入確認を実施します。
			String result_cd = executeRule0081001(kuj_ank_stb_cd, svc_kei_stat, rec_div);
			
			super.logPrint.printDebugLog("工事関連情報受入確認結果：" + result_cd);
			
			// ルールチェック結果の判断
			if (!"9".equals(result_cd))
			{
				// 受入可の場合
				if (RESULT_UKEIRE_PSB.equals(result_cd))
				{
					// サービス契約ステータスと、督促情報判定による工事完了情報出力ファイル切り分けをします。
					if (this.isUkeirePsb(svc_kei_stat, svc_kei_no))
					{
// ANK-3136-00-00 ADD START
						// 設備流用工事案件チェック
						if (!checkEquipRyuyo(data))
						{
							// 設備流用工事案件チェックNGの場合
							// 業務エラーログ出力
							super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0310JW, 
									new String[]{"設備流用", "工事案件",
									"対象データ（工事案件番号：" + kojiak_no + " サービス契約番号：" + svc_kei_no + "）を翌日受入とし、処理を続行します。"});
							
							// 設備流用工事案件チェックNGビジネスエラー件数カウンタをアップ
							businessErrSbryCnt++;
							
							// 工事完了情報の項目転記（翌日受入）
							setKojiFinInf(data_work, koji_fin_inf2);
							
							continue;
						}
// ANK-3136-00-00 ADD END
						
						// サービス契約ステータスが「100：サービス提供中」、「210：休止・中断中」、「220：停止中」、
						//   「910：解約済」、「920：キャンセル済」の場合と、それ以外のステータスで督促情報検索結果なしの場合、
						//   「受入可」の処理を実施します。（中間ファイル（受入可）出力）
						// 工事完了情報の項目転記
						this.setKojiFinInf(data_work, koji_fin_inf1);
						
						// 進捗データを登録します。
// ++++++++++++++++++++ v7.00.02 変更開始 +++++++++++++++++
//						this.setPrgIfAdd(data, ido_div);
						this.setPrgIfAdd(data);
// ++++++++++++++++++++ v7.00.02 変更終了 +++++++++++++++++
						
						// OPMS工事案件結果コードを取得します。
						String opmskjakRsltCd = data[7];
						
						// 「新設工事NG」判定を行います。
						// サービス契約ステータスが「100：サービス提供中」の場合で、
						//   工事案件種別コードが「001:新設」または「003：住所変更（新設）」の場合で、
						//   OPMS工事案件結果コードが「2：NG」の場合、「新設工事NG」とします。
						if (!this.isNewestaKoji(svc_kei_stat, kuj_ank_stb_cd, opmskjakRsltCd))
						{
							// 「新設工事NG」の場合、マイナーアラーム出力して処理続行します。
							// 業務エラーログ出力
							super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0310JW, 
									new String[]{"サービス契約", "サービス契約ステータス",
									"対象データ（サービス契約番号：" + svc_kei_no + " サービス契約ステータス：" + svc_kei_stat
									+ " 工事案件種別コード：" + kuj_ank_stb_cd + " OPMS工事案件結果コード："+ opmskjakRsltCd 
									+ "）をワーニング出力し処理を続行します。"});
							
							// 新設工事NGビジネスエラー件数カウンタをアップします。
							businessErrCnt++;
						}
						else
						{
							// 「新設工事OK」の場合、処理続行します。
							super.logPrint.printDebugLog("★「新設工事OK」：処理続行");
						}
					}
					else
					{
						// サービス契約ステータスが「010：受付済」、「020：照査済」、「030：締結済」の場合で、
						//   督促情報検索結果ありの場合、「翌日受入」の処理を実施します。（中間ファイル（翌日取込）出力）
						// 工事完了情報の項目転記
						this.setKojiFinInf(data_work, koji_fin_inf2);
					}
					
					continue;
				}
				
				// 翌日受入の場合
				else if (RESULT_YOKUJITSU_UKEIRE.equals(result_cd))
				{
// +++++++++++++++++++ v7.00.03 変更開始 ++++++++++++++++++++++++++
					if (isYokujitsuUkeire(svc_kei_stat, outDbMap))
					{
						// 工事完了情報の項目転記
						setKojiFinInf(data_work, koji_fin_inf2);
					}
// +++++++++++++++++++ v7.00.03 変更終了 ++++++++++++++++++++++++++
					continue;
				}
				
				// 受入不可の場合
				else if (RESULT_UKEIRE_FAIL.equals(result_cd))
				{
					// 対象サービス契約番号が工事遅延契約補正TBLに存在していない場合
					if (isKojiDlyKeiHosei(svc_kei_no, data[2]))
					{
						// 工事遅延契約補正TBLへの登録。
						createKojiDlyKeiHosei(data, outDbMap);
						continue;
					}
				}
			}
			else
			{
				// 業務エラーログ出力
				super.logPrint.printBusinessErrorLog("EKKB0010CW", 
						new String[]{MASSEAGE2 + "(ファイルＩＤ：" + KOJI_FIN_INF_FILE_ID  + ", サービス契約番号：" + svc_kei_no + ")"});
				continue;
			}
		}
		
		// フルパスを生成。（受入可）
		file_path1 = mid_dir_kk + KOJI_FIN_INF_FILE_ID + "003" + FILE_KEISHIKI;
		
		// 工事完了情報ファイル(受入可)を出力
		executeOutputFile(koji_fin_inf1.toString(), file_path1, KOJI_FIN_INF_FILE_ID);
		
		// フルパスを生成。（翌日取込）
		file_path2 = mid_dir_kk + KOJI_FIN_INF_FILE_ID +  "004" + FILE_KEISHIKI;
		
		// 工事完了情報ファイル(翌日取込)を出力
		executeOutputFile(koji_fin_inf2.toString(), file_path2, KOJI_FIN_INF_FILE_ID);
		
// ANK-3136-00-00 ADD START
		// システム日時
		String sysDate = JBSbatDateUtil.getSystemDateTimeStamp();
		
		// 工事完了機器流用対象ファイル名日付
		String fileDate = super.opeDate + sysDate.substring(8,14);
		
		// フルパスを生成。（工事完了機器流用対象ファイル）
		file_path3 = mid_dir_kk + KOJI_FIN_KIKI_RYUYO_FILE_ID + "_" + fileDate + FILE_KEISHIKI;
		
		// 工事完了機器流用対象ファイルを出力
		executeOutputFile(kojiFinKikiRyuyoInf.toString(), file_path3, KOJI_FIN_KIKI_RYUYO_FILE_ID);
// ANK-3136-00-00 ADD END
		
		super.logPrint.printDebugLog("kojiFinInfOutPut_END");
	}
	
// ANK-3136-00-00 ADD START
	/**
	 * 業務パラメータ管理検索(ZM_M_WORK_PARAM_KNRI_KK_SELECT_021)
	 * <br>
	 * @return JBSbatCommonDBInterface 入出力インターフェースオブジェクト
	 * @throws Exception メソッド内で発生した例外全般
	 */
	private JBSbatCommonDBInterface selectWorkParamKnri021() throws Exception
	{
		super.logPrint.printDebugLog("selectWorkParamKnri021_START");
		
		// 検索条件項目の設定
		Object[] paramList = new Object[2];
		
		// 業務パラメータ適用開始年月日
		paramList[0] = super.opeDate;
		// 業務パラメータ適用終了年月日
		paramList[1] = super.opeDate;
		
		// 業務パラメータ管理検索処理実行
		executeZM_M_WORK_PARAM_KNRI_KK_SELECT_021(paramList);
		
		// 検索結果取得
		JBSbatCommonDBInterface outMap = db_ZM_M_WORK_PARAM_KNRI.selectNext();
		
		super.logPrint.printDebugLog("selectWorkParamKnri021_END");
		
		return outMap;
	}
// ANK-3136-00-00 ADD END
	
	/**
	 * 工事完了情報データを設定します。<br>
	 * <p>
	 * @param data_work 工事完了情報データ
	 * @param koji_fin_inf 文字列データ保持
	 * @throws Exception 
	 */	
	private void setKojiFinInf(String data_work, StringBuilder koji_fin_inf) throws Exception
	{
		super.logPrint.printDebugLog("setKojiFinInf_START");
		
		// 項目転記開始
		koji_fin_inf.append(data_work);
		
		// 改行コード
		koji_fin_inf.append(KAIGYOU_CODE);
		
		super.logPrint.printDebugLog("setKojiFinInf_END");
	}
	
	/**
	 * 工事取消情報出力処理を行います。<br>
	 * <p>
	 * @param mid_dir_kk 中間ファイル格納先
	 * @throws Exception 
	 */	
	private void kojiClInfOutPut(String mid_dir_kk) throws Exception
	{
		super.logPrint.printDebugLog("kojiClInfOutPut_START");
		
		String data_work = "";			// 工事取消情報ファイル1行データ保持
		String file_path = "";			// ファイルパス保持
		String file_path1 = "";			// ファイルパス保持
		String file_path2 = "";			// ファイルパス保持
		String svc_kei_stat = "";		// サービス契約ステータス保持
		StringBuilder koji_cl_inf1 = new StringBuilder();		// 工事取消情報文字列保持用(受入可)
		StringBuilder koji_cl_inf2 = new StringBuilder();		// 工事取消情報文字列保持用(翌日取込)
		
// ++++++++++++++++++++ v7.00.02 削除開始 +++++++++++++++++
//		// 異動区分
//		String ido_div = "";
// ++++++++++++++++++++ v7.00.02 削除終了 +++++++++++++++++
		
		// フルパスを生成。
		file_path = mid_dir_kk + KOJI_CL_INF_FILE_ID + "002" + FILE_KEISHIKI;
		
		// マージされた工事取消情報ファイル情報を読込みます。
		ArrayList<String> data_list = getInputFile(file_path, KOJI_CL_INF_FILE_ID);
		
		// 工事取消情報ファイル件数分の繰返し
		for (int i = 0; i < data_list.size(); i++)
		{
			// １行目を取得
			data_work = data_list.get(i);
			
			super.logPrint.printDebugLog("工事取消情報文字列（編集前）：" + data_work);
			
			// データを分解
			String[] data = data_work.split(",", -1);
			
			// サービス契約番号を取得します。
			String svc_kei_no = data[0];
			
			// 工事案件種別コードの取得
			String kuj_ank_stb_cd = data[5];
			
			// サービス契約情報検索条件項目の設定
			Object[] paramList = new Object[2];
			
			// サービス契約番号の設定
			paramList[0] = svc_kei_no;
			paramList[1] = super.opeDate;		// バッチ運用日
			
			// サービス契約情報検索処理実行
// ++++++++++++++++++++ v7.00.02 変更開始 +++++++++++++++++
//			executeKK_T_SVC_KEI_KK_SELECT_090(paramList);
			JBSbatCommonDBInterface outDbMap = executeKK_T_SVC_KEI_KK_SELECT_060(paramList);
// ++++++++++++++++++++ v7.00.02 変更終了 +++++++++++++++++
			
			// 検索結果の判断
			if (null != outDbMap)
			{
				// サービス契約ステータスの取得
				svc_kei_stat = JBSbatStringUtil.Rtrim(outDbMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT));
			}
			else
			{
// +++++++++++++++++++ v7.00.03 変更開始（マイナーアラーム化）+++++++++++++++++++
				//throw new JBSbatBusinessException("EKKB0210CE", new String[]{TABLE_NAME, MASSEAGE1 + "{サービス契約番号：" + svc_kei_no + "}"});
				super.logPrint.printBusinessErrorLog("EKKB0630NW", new String[]{"サービス契約", "サービス契約番号", svc_kei_no});
				continue;
// +++++++++++++++++++ v7.00.03 変更終了（マイナーアラーム化）+++++++++++++++++++
			}
			
			// レコード区分
			String rec_div = data[16];
			
			super.logPrint.printDebugLog("レコード区分：" + rec_div);
			
			// ルールを呼び出し工事関連情報受入確認を実施します。
			String result_cd = executeRule0081001(kuj_ank_stb_cd, svc_kei_stat, rec_div);
			
			super.logPrint.printDebugLog("工事関連情報受入確認結果：" + result_cd);
			
			// ルールチェック結果の判断
			if (!"9".equals(result_cd))
			{
				// 受入可の場合
				if (RESULT_UKEIRE_PSB.equals(result_cd))
				{
					// サービス契約ステータスと、督促情報判定による工事取消情報出力ファイル切り分けをします。
					if (this.isUkeirePsb(svc_kei_stat, svc_kei_no))
					{
						// サービス契約ステータスが「100：サービス提供中」、「210：休止・中断中」、「220：停止中」、
						//   「910：解約済」、「920：キャンセル済」の場合と、それ以外のステータスで督促情報検索結果なしの場合、
						//   「受入可」の処理を実施します。（中間ファイル（受入可）出力）
						String sysrtem_date = JBSbatDateUtil.getSystemDateTimeStamp();	// システム日時の取得
						
						// 進捗年月日時分秒にバッチ運用日 + システム日時のhhmmssSSSを設定します。
						data[14] = super.opeDate + sysrtem_date.substring(8);
						
						// 工事案件番号より、工事案件.工事受付契機異動区分を取得します。
						String kojiUkOptyIdoDiv = this.getKojiUkOptyIdoDiv(data[6]);
						
						super.logPrint.printDebugLog("工事案件番号        ：" + data[6]);
						super.logPrint.printDebugLog("工事受付契機異動区分：" + kojiUkOptyIdoDiv);
						
						// 取得した「進捗年月日時分秒」と「異動区分」を工事取消情報ファイル1行データ保持変数へセットします。
						String data_work_af = this.setKojiClInfRec(data, kojiUkOptyIdoDiv);
						
						// 工事取消情報の項目転記
						this.setKojiClInf(data_work_af, koji_cl_inf1);
						
						// 進捗データを登録します。
// ++++++++++++++++++++ v7.00.02 変更開始 +++++++++++++++++
//						this.setPrgIfAdd(data, kojiUkOptyIdoDiv);
						this.setPrgIfAdd(data);
// ++++++++++++++++++++ v7.00.02 変更終了 +++++++++++++++++
					}
					else
					{
						// サービス契約ステータスが「010：受付済」、「020：照査済」、「030：締結済」の場合で、
						//   督促情報検索結果ありの場合、「翌日受入」の処理を実施します。（中間ファイル（翌日取込）出力）
						// 工事取消情報の項目転記
						this.setKojiClInf(data_work, koji_cl_inf2);
					}
					
					continue;
				}
				
				// 翌日受入の場合
				else if (RESULT_YOKUJITSU_UKEIRE.equals(result_cd))
				{
// +++++++++++++++++++ v7.00.03 変更開始 ++++++++++++++++++++++++++
					if (isYokujitsuUkeire(svc_kei_stat, outDbMap))
					{
						// 工事取消情報の項目転記
						setKojiClInf(data_work, koji_cl_inf2);
					}
// +++++++++++++++++++ v7.00.03 変更終了 ++++++++++++++++++++++++++
					continue;
				}
				
				// 受入不可の場合
				else if (RESULT_UKEIRE_FAIL.equals(result_cd))
				{
					// 対象サービス契約番号が工事遅延契約補正TBLに存在していない場合
					if (isKojiDlyKeiHosei(svc_kei_no, data[2]))
					{
						// 工事遅延契約補正TBLへの登録。
						createKojiDlyKeiHosei(data, outDbMap);
						continue;
					}
				}
			}
			else
			{
				// 業務エラーログ出力
				super.logPrint.printBusinessErrorLog("EKKB0010CW", 
						new String[]{MASSEAGE2 + "(ファイルＩＤ：" + KOJI_CL_INF_FILE_ID  + ", サービス契約番号：" + svc_kei_no + ")"});
				continue;
			}
		}
		
		// フルパスを生成。（受入可）
		file_path1 = mid_dir_kk + KOJI_CL_INF_FILE_ID + "003" + FILE_KEISHIKI;
		
		// 工事取消情報ファイル(受入可)を出力
		executeOutputFile(koji_cl_inf1.toString(), file_path1, KOJI_CL_INF_FILE_ID);
		
		// フルパスを生成。（翌日取込）
		file_path2 = mid_dir_kk + KOJI_CL_INF_FILE_ID +  "004" + FILE_KEISHIKI;
		
		// 工事取消情報ファイル(翌日取込)を出力
		executeOutputFile(koji_cl_inf2.toString(), file_path2, KOJI_CL_INF_FILE_ID);
		
		super.logPrint.printDebugLog("kojiClInfOutPut_END");
	}
	
	/**
	 * 工事取消情報データを設定します。<br>
	 * <p>
	 * @param data_work 工事取消情報データ
	 * @param koji_cl_inf 文字列データ保持
	 * @throws Exception 
	 */	
	private void setKojiClInf(String data_work, StringBuilder koji_cl_inf) throws Exception
	{
		super.logPrint.printDebugLog("setKojiClInf_START");
		
		// 項目転記開始
		koji_cl_inf.append(data_work);
		
		// 改行コード
		koji_cl_inf.append(KAIGYOU_CODE);
		
		super.logPrint.printDebugLog("setKojiClInf_END");
	}
	
	/**
	 * 工事予定情報(ネット)出力処理を行います。<br>
	 * <p>
	 * @param mid_dir_kk 中間ファイル格納先
	 * @throws Exception 
	 */	
	private void kojiRsvInfNetOutPut(String mid_dir_kk) throws Exception
	{
		super.logPrint.printDebugLog("kojiRsvInfNetOutPut_START");
		
		String data_work = "";			// 工事予定情報(ネット)ファイル1行データ保持
		String file_path = "";			// ファイルパス保持
		String file_path1 = "";			// ファイルパス保持
		String file_path2 = "";			// ファイルパス保持
		String svc_kei_stat = "";		// サービス契約ステータス保持
		StringBuilder koji_rsv_net1 = new StringBuilder();		// 工事予定情報(ネット)文字列保持用(受入可)
		StringBuilder koji_rsv_net2 = new StringBuilder();		// 工事予定情報(ネット)文字列保持用(翌日取込)
		
// ++++++++++++++++++++ v7.00.02 削除開始 +++++++++++++++++
//		// 異動区分
//		String ido_div = "";
// ++++++++++++++++++++ v7.00.02 削除終了 +++++++++++++++++
		
		// フルパスを生成。
		file_path = mid_dir_kk + KOJI_RSV_INF_NET_FILE_ID + "005" + FILE_KEISHIKI;
		
		// マージされた工事予定情報(ネット)ファイルを読込みます。
		ArrayList<String> data_list = getInputFile(file_path, KOJI_RSV_INF_NET_FILE_ID);
		
		// 工事予定情報(ネット)ファイル件数分の繰返し
		for (int i = 0; i < data_list.size(); i++)
		{
			// １行目を取得
			data_work = data_list.get(i);
			
			// データを分解
			String[] data = data_work.split(",", -1);
			
			// サービス契約番号を取得します。
			String svc_kei_no = data[0];
			
			// 工事案件種別コードの取得
			String kuj_ank_stb_cd = data[5];
			
			// サービス契約情報検索条件項目の設定
			Object[] paramList = new Object[2];
			
			// サービス契約番号の設定
			paramList[0] = svc_kei_no;
			paramList[1] = super.opeDate;		// バッチ運用日
			
			// サービス契約情報検索処理実行
// ++++++++++++++++++++ v7.00.02 変更開始 +++++++++++++++++
//			executeKK_T_SVC_KEI_KK_SELECT_090(paramList);
			JBSbatCommonDBInterface outDbMap = executeKK_T_SVC_KEI_KK_SELECT_060(paramList);
// ++++++++++++++++++++ v7.00.02 変更終了 +++++++++++++++++
			
			// 検索結果の判断
			if (null != outDbMap)
			{
				// サービス契約ステータスの取得
				svc_kei_stat = JBSbatStringUtil.Rtrim(outDbMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT));
				
// ++++++++++++++++++++ v7.00.02 削除開始 +++++++++++++++++
//				// 異動区分の取得
//				ido_div = JBSbatStringUtil.Rtrim(outDbMap.getString(JBSbatKK_T_SVC_KEI.IDO_DIV));
// ++++++++++++++++++++ v7.00.02 削除終了 +++++++++++++++++
			}
			else
			{
// +++++++++++++++++++ v7.00.03 変更開始（マイナーアラーム化）+++++++++++++++++++
				//throw new JBSbatBusinessException("EKKB0210CE", new String[]{TABLE_NAME, MASSEAGE1 + "{サービス契約番号：" + svc_kei_no + "}"});
				super.logPrint.printBusinessErrorLog("EKKB0630NW", new String[]{"サービス契約", "サービス契約番号", svc_kei_no});
				continue;
// +++++++++++++++++++ v7.00.03 変更終了（マイナーアラーム化）+++++++++++++++++++
			}
			
			// レコード区分
			String rec_div = data[17];
			
			// ルールを呼び出し工事関連情報受入確認を実施します。
			String result_cd = executeRule0081001(kuj_ank_stb_cd, svc_kei_stat, rec_div);
			
			super.logPrint.printDebugLog("工事関連情報受入確認結果：" + result_cd);
			
			// ルールチェック結果の判断
			if (!"9".equals(result_cd))
			{
				// 受入可の場合
				if (RESULT_UKEIRE_PSB.equals(result_cd))
				{
					// サービス契約ステータスと、督促情報判定による工事予定情報(ネット)出力ファイル切り分けをします。
					if (this.isUkeirePsb(svc_kei_stat, svc_kei_no))
					{
						// サービス契約ステータスが「100：サービス提供中」、「210：休止・中断中」、「220：停止中」、
						//   「910：解約済」、「920：キャンセル済」の場合と、それ以外のステータスで督促情報検索結果なしの場合、
						//   「受入可」の処理を実施します。（中間ファイル（受入可）出力）
						// 工事予定情報(ネット)の項目転記
						this.setKojiRsvNet(data_work, koji_rsv_net1);
						
						// ++++++++++++++++++++ v9.00.00 追加開始 +++++++++++++++++
						// 進捗データを登録します。
						this.setPrgIfAdd(data);
						// ++++++++++++++++++++ v9.00.00 追加終了 +++++++++++++++++
						
					}
					else
					{
						// サービス契約ステータスが「010：受付済」、「020：照査済」、「030：締結済」の場合で、
						//   督促情報検索結果ありの場合、「翌日受入」の処理を実施します。（中間ファイル（翌日取込）出力）
						// 工事予定情報(ネット)の項目転記
						this.setKojiRsvNet(data_work, koji_rsv_net2);
					}
					
					continue;
				}
				
				// 翌日受入の場合
				else if (RESULT_YOKUJITSU_UKEIRE.equals(result_cd))
				{
// +++++++++++++++++++ v7.00.03 変更開始 ++++++++++++++++++++++++++
					if (isYokujitsuUkeire(svc_kei_stat, outDbMap))
					{
						// 工事予定情報(ネット)情報の項目転記
						setKojiRsvNet(data_work, koji_rsv_net2);
					}
// +++++++++++++++++++ v7.00.03 変更終了 ++++++++++++++++++++++++++
					continue;
				}
				
				// 受入不可の場合
				else if (RESULT_UKEIRE_FAIL.equals(result_cd))
				{
					// 対象サービス契約番号が工事遅延契約補正TBLに存在していない場合
					if (isKojiDlyKeiHosei(svc_kei_no, data[2]))
					{
						// 工事遅延契約補正TBLへの登録。
						createKojiDlyKeiHosei(data, outDbMap);
						continue;
					}
				}
			}
			else
			{
				// 業務エラーログ出力
				super.logPrint.printBusinessErrorLog("EKKB0010CW", 
						new String[]{MASSEAGE2 + "(ファイルＩＤ：" + KOJI_RSV_INF_NET_FILE_ID  + ", サービス契約番号：" + svc_kei_no + ")"});
				continue;
			}
		}
		
		// フルパスを生成。（受入可）
		file_path1 = mid_dir_kk + KOJI_RSV_INF_NET_FILE_ID + "003" + FILE_KEISHIKI;
		
		// 工事予定情報(ネット)ファイル(受入可)を出力
		executeOutputFile(koji_rsv_net1.toString(), file_path1, KOJI_RSV_INF_NET_FILE_ID);
		
		// フルパスを生成。（翌日取込）
		file_path2 = mid_dir_kk + KOJI_RSV_INF_NET_FILE_ID +  "004" + FILE_KEISHIKI;
		
		// 工事予定情報(ネット)ファイル(翌日取込)を出力
		executeOutputFile(koji_rsv_net2.toString(), file_path2, KOJI_RSV_INF_NET_FILE_ID);
		
		super.logPrint.printDebugLog("kojiRsvInfNetOutPut_END");
	}
	
	/**
	 * 工事予定情報(ネット)データを設定します。<br>
	 * <p>
	 * @param data_work 工事予定情報(ネット)情報データ
	 * @param koji_rsv_net 文字列データ保持
	 * @throws Exception 
	 */	
	private void setKojiRsvNet(String data_work, StringBuilder koji_rsv_net) throws Exception
	{
		super.logPrint.printDebugLog("setKojiRsvNet_START");
		
		// 項目転記開始
		koji_rsv_net.append(data_work);
		
		// 改行コード
		koji_rsv_net.append(KAIGYOU_CODE);
		
		super.logPrint.printDebugLog("setKojiRsvNet_END");
	}
	
	/**
	 * 工事予定情報(テレビ)出力処理を行います。<br>
	 * <p>
	 * @param mid_dir_kk 中間ファイル格納先
	 * @throws Exception 
	 */	
	private void kojiRsvInfTVOutPut(String mid_dir_kk) throws Exception
	{
		super.logPrint.printDebugLog("kojiRsvInfTVOutPut_START");
		
		String data_work = "";			// 工事予定情報(テレビ)ファイル1行データ保持
		String file_path = "";			// ファイルパス保持
		String file_path1 = "";			// ファイルパス保持
		String file_path2 = "";			// ファイルパス保持
		String svc_kei_stat = "";		// サービス契約ステータス保持
		StringBuilder koji_rsv_inf_tv1 = new StringBuilder();		// 工事予定情報(テレビ)文字列保持用(受入可)
		StringBuilder koji_rsv_inf_tv2 = new StringBuilder();		// 工事予定情報(テレビ)文字列保持用(翌日取込)
		
// ++++++++++++++++++++ v7.00.02 削除開始 +++++++++++++++++
//		// 異動区分
//		String ido_div = "";
// ++++++++++++++++++++ v7.00.02 削除終了 +++++++++++++++++
		
		// フルパスを生成。
		file_path = mid_dir_kk + KOJI_RSV_INF_TV_FILE_ID + "002" + FILE_KEISHIKI;
		
		// マージされた工事予定情報(テレビ)ファイルを読込みます。
		ArrayList<String> data_list = getInputFile(file_path, KOJI_RSV_INF_TV_FILE_ID);
		
		// 工事予定情報(テレビ)ファイル件数分の繰返し
		for (int i = 0; i < data_list.size(); i++)
		{
			// １行目を取得
			data_work = data_list.get(i);
			
			// データを分解
			String[] data = data_work.split(",", -1);
			
			// サービス契約番号を取得します。
			String svc_kei_no = data[0];
			
			// 工事案件種別コードの取得
			String kuj_ank_stb_cd = data[5];
			
			// サービス契約情報検索条件項目の設定
			Object[] paramList = new Object[2];
			
			// サービス契約番号の設定
			paramList[0] = svc_kei_no;
			paramList[1] = super.opeDate;		// バッチ運用日
			
			// サービス契約情報検索処理実行
// ++++++++++++++++++++ v7.00.02 変更開始 +++++++++++++++++
//			executeKK_T_SVC_KEI_KK_SELECT_090(paramList);
			JBSbatCommonDBInterface outDbMap = executeKK_T_SVC_KEI_KK_SELECT_060(paramList);
// ++++++++++++++++++++ v7.00.02 変更終了 +++++++++++++++++
			
			// 検索結果の判断
			if (null != outDbMap)
			{
				// サービス契約ステータスの取得
				svc_kei_stat = JBSbatStringUtil.Rtrim(outDbMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT));
				
// ++++++++++++++++++++ v7.00.02 削除開始 +++++++++++++++++
//				// 異動区分の取得
//				ido_div = JBSbatStringUtil.Rtrim(outDbMap.getString(JBSbatKK_T_SVC_KEI.IDO_DIV));
// ++++++++++++++++++++ v7.00.02 削除終了 +++++++++++++++++
			}
			else
			{
// +++++++++++++++++++ v7.00.03 変更開始（マイナーアラーム化）+++++++++++++++++++
				//throw new JBSbatBusinessException("EKKB0210CE", new String[]{TABLE_NAME, MASSEAGE1 + "{サービス契約番号：" + svc_kei_no + "}"});
				super.logPrint.printBusinessErrorLog("EKKB0630NW", new String[]{"サービス契約", "サービス契約番号", svc_kei_no});
				continue;
// +++++++++++++++++++ v7.00.03 変更終了（マイナーアラーム化）+++++++++++++++++++
			}
			
			// レコード区分
			String rec_div = data[15];
			
			// ルールを呼び出し工事関連情報受入確認を実施します。
			String result_cd = executeRule0081001(kuj_ank_stb_cd, svc_kei_stat, rec_div);
			
			super.logPrint.printDebugLog("工事関連情報受入確認結果：" + result_cd);
			
			// ルールチェック結果の判断
			if (!"9".equals(result_cd))
			{
				// 受入可の場合
				if (RESULT_UKEIRE_PSB.equals(result_cd))
				{
					// サービス契約ステータスと、督促情報判定による工事予定情報(テレビ)出力ファイル切り分けをします。
					if (this.isUkeirePsb(svc_kei_stat, svc_kei_no))
					{
						// サービス契約ステータスが「100：サービス提供中」、「210：休止・中断中」、「220：停止中」、
						//   「910：解約済」、「920：キャンセル済」の場合と、それ以外のステータスで督促情報検索結果なしの場合、
						//   「受入可」の処理を実施します。（中間ファイル（受入可）出力）
						// 工事予定情報(テレビ)の項目転記
						this.setKojiRsvInfTv(data_work, koji_rsv_inf_tv1);
						
						// ++++++++++++++++++++ v9.00.00 追加開始 +++++++++++++++++
						// 進捗データを登録します。
						this.setPrgIfAdd(data);
						// ++++++++++++++++++++ v9.00.00 追加終了 +++++++++++++++++
						
					}
					else
					{
						// サービス契約ステータスが「010：受付済」、「020：照査済」、「030：締結済」の場合で、
						//   督促情報検索結果ありの場合、「翌日受入」の処理を実施します。（中間ファイル（翌日取込）出力）
						// 工事予定情報(テレビ)の項目転記
						this.setKojiRsvInfTv(data_work, koji_rsv_inf_tv2);
					}
					
					continue;
				}
				
				// 翌日受入の場合
				else if (RESULT_YOKUJITSU_UKEIRE.equals(result_cd))
				{
// +++++++++++++++++++ v7.00.03 変更開始 ++++++++++++++++++++++++++
					if (isYokujitsuUkeire(svc_kei_stat, outDbMap))
					{
						// 工事予定情報(テレビ)の項目転記
						setKojiRsvInfTv(data_work, koji_rsv_inf_tv2);
					}
// +++++++++++++++++++ v7.00.03 変更終了 ++++++++++++++++++++++++++
					continue;
				}
				
				// 受入不可の場合
				else if (RESULT_UKEIRE_FAIL.equals(result_cd))
				{
					// 対象サービス契約番号が工事遅延契約補正TBLに存在していない場合
					if (isKojiDlyKeiHosei(svc_kei_no, data[2]))
					{
						// 工事遅延契約補正TBLへの登録。
						createKojiDlyKeiHosei(data, outDbMap);
						continue;
					}
				}
			}
			else
			{
				// 業務エラーログ出力
				super.logPrint.printBusinessErrorLog("EKKB0010CW", 
						new String[]{MASSEAGE2 + "(ファイルＩＤ：" + KOJI_RSV_INF_TV_FILE_ID  + ", サービス契約番号：" + svc_kei_no + ")"});
				continue;
			}
		}
		
		// フルパスを生成。（受入可）
		file_path1 = mid_dir_kk + KOJI_RSV_INF_TV_FILE_ID + "003" + FILE_KEISHIKI;
		
		// 工事予定情報(テレビ)ファイル(受入可)を出力
		executeOutputFile(koji_rsv_inf_tv1.toString(), file_path1, KOJI_RSV_INF_TV_FILE_ID);
		
		// フルパスを生成。（翌日取込）
		file_path2 = mid_dir_kk + KOJI_RSV_INF_TV_FILE_ID +  "004" + FILE_KEISHIKI;
		
		// 工事予定情報(テレビ)ファイル(翌日取込)を出力
		executeOutputFile(koji_rsv_inf_tv2.toString(), file_path2, KOJI_RSV_INF_TV_FILE_ID);
		
		super.logPrint.printDebugLog("kojiRsvInfTVOutPut_END");
	}
	
	/**
	 * 工事予定情報(テレビ)データを設定します。<br>
	 * <p>
	 * @param data_work 工事予定情報(テレビ)データ
	 * @param koji_rsv_inf_tv 文字列データ保持
	 * @throws Exception 
	 */	
	private void setKojiRsvInfTv(String data_work, StringBuilder koji_rsv_inf_tv) throws Exception
	{
		super.logPrint.printDebugLog("setKojiRsvInfTv_START");
		
		// 項目転記開始
		koji_rsv_inf_tv.append(data_work);
		
		// 改行コード
		koji_rsv_inf_tv.append(KAIGYOU_CODE);
		
		super.logPrint.printDebugLog("setKojiRsvInfTv_END");
	}
	
	/**
	 * 機器情報(ネット)出力処理を行います。<br>
	 * <p>
	 * @param mid_dir_kk 中間ファイル格納先
	 * @throws Exception 
	 */	
	private void kikiInfNetOutPut(String mid_dir_kk) throws Exception
	{
		super.logPrint.printDebugLog("kikiInfNetOutPut_START");
		
		String data_work = "";			// 機器情報(ネット)ファイル1行データ保持
		String file_path = "";			// ファイルパス保持
		String file_path1 = "";			// ファイルパス保持
		String file_path2 = "";			// ファイルパス保持
		String svc_kei_stat = "";		// サービス契約ステータス保持
		StringBuilder kiki_inf_net1 = new StringBuilder();		// 機器情報(ネット)文字列保持用(受入可)
		StringBuilder kiki_inf_net2 = new StringBuilder();		// 機器情報(ネット)文字列保持用(翌日取込)
		
// ++++++++++++++++++++ v7.00.02 削除開始 +++++++++++++++++
//		// 異動区分
//		String ido_div = "";
// ++++++++++++++++++++ v7.00.02 削除終了 +++++++++++++++++
		
		// フルパスを生成。
		file_path = mid_dir_kk + KIKI_INF_NET_FILE_ID + "002" + FILE_KEISHIKI;
		
		// マージされた機器情報(ネット)ファイルを読込みます。
		ArrayList<String> data_list = getInputFile(file_path, KIKI_INF_NET_FILE_ID);
		
		// 機器情報(ネット)ファイル件数分の繰返し
		for (int i = 0; i < data_list.size(); i++)
		{
			// １行目を取得
			data_work = data_list.get(i);
			
			// データを分解
			String[] data = data_work.split(",", -1);
			
			// サービス契約番号を取得します。
			String svc_kei_no = data[0];
			
			// 工事案件種別コードの取得
			String kuj_ank_stb_cd = data[5];
			
			// サービス契約情報検索条件項目の設定
			Object[] paramList = new Object[2];
			
			// サービス契約番号の設定
			paramList[0] = svc_kei_no;
			paramList[1] = super.opeDate;		// バッチ運用日
			
			// サービス契約情報検索処理実行
// ++++++++++++++++++++ v7.00.02 変更開始 +++++++++++++++++
//			executeKK_T_SVC_KEI_KK_SELECT_090(paramList);
			JBSbatCommonDBInterface outDbMap = executeKK_T_SVC_KEI_KK_SELECT_060(paramList);
// ++++++++++++++++++++ v7.00.02 変更終了 +++++++++++++++++
			
			// 検索結果の判断
			if (null != outDbMap)
			{
				// サービス契約ステータスの取得
				svc_kei_stat = JBSbatStringUtil.Rtrim(outDbMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT));
				
// ++++++++++++++++++++ v7.00.02 削除開始 +++++++++++++++++
//				// 異動区分の取得
//				ido_div = JBSbatStringUtil.Rtrim(outDbMap.getString(JBSbatKK_T_SVC_KEI.IDO_DIV));
// ++++++++++++++++++++ v7.00.02 削除終了 +++++++++++++++++
			}
			else
			{
// +++++++++++++++++++ v7.00.03 変更開始（マイナーアラーム化）+++++++++++++++++++
				//throw new JBSbatBusinessException("EKKB0210CE", new String[]{TABLE_NAME, MASSEAGE1 + "{サービス契約番号：" + svc_kei_no + "}"});
				super.logPrint.printBusinessErrorLog("EKKB0630NW", new String[]{"サービス契約", "サービス契約番号", svc_kei_no});
				continue;
// +++++++++++++++++++ v7.00.03 変更終了（マイナーアラーム化）+++++++++++++++++++
			}
			
			// レコード区分
			String rec_div = data[58];
			super.logPrint.printDebugLog("機器情報(ネット)レコード区分：" + rec_div);
			
			// ルールを呼び出し工事関連情報受入確認を実施します。
			String result_cd = executeRule0081001(kuj_ank_stb_cd, svc_kei_stat, rec_div);
			
			super.logPrint.printDebugLog("工事関連情報受入確認結果：" + result_cd);
			
			// ルールチェック結果の判断
			if (!"9".equals(result_cd))
			{
				// 受入可の場合
				if (RESULT_UKEIRE_PSB.equals(result_cd))
				{
					// サービス契約ステータスと、督促情報判定による機器情報(ネット)出力ファイル切り分けをします。
					if (this.isUkeirePsb(svc_kei_stat, svc_kei_no))
					{
						// サービス契約ステータスが「100：サービス提供中」、「210：休止・中断中」、「220：停止中」、
						//   「910：解約済」、「920：キャンセル済」の場合と、それ以外のステータスで督促情報検索結果なしの場合、
						//   「受入可」の処理を実施します。（中間ファイル（受入可）出力）
						// 機器情報(ネット)の項目転記
						this.setKikiNetInf(data_work, kiki_inf_net1);
						
					}
					else
					{
						// サービス契約ステータスが「010：受付済」、「020：照査済」、「030：締結済」の場合で、
						//   督促情報検索結果ありの場合、「翌日受入」の処理を実施します。（中間ファイル（翌日取込）出力）
						// 機器情報(ネット)の項目転記
						this.setKikiNetInf(data_work, kiki_inf_net2);
					}
					
					continue;
				}
				
				// 翌日受入の場合
				else if (RESULT_YOKUJITSU_UKEIRE.equals(result_cd))
				{
// +++++++++++++++++++ v7.00.03 変更開始 ++++++++++++++++++++++++++
					if (isYokujitsuUkeire(svc_kei_stat, outDbMap))
					{
						// 機器情報(ネット)の項目転記
						setKikiNetInf(data_work, kiki_inf_net2);
					}
// +++++++++++++++++++ v7.00.03 変更終了 ++++++++++++++++++++++++++
					continue;
				}
				
				// 受入不可の場合
				else if (RESULT_UKEIRE_FAIL.equals(result_cd))
				{
					// 対象サービス契約番号が工事遅延契約補正TBLに存在していない場合
					if (isKojiDlyKeiHosei(svc_kei_no, data[2]))
					{
						// 工事遅延契約補正TBLへの登録。
						createKojiDlyKeiHosei(data, outDbMap);
						continue;
					}
				}
			}
			else
			{
				// 業務エラーログ出力
				super.logPrint.printBusinessErrorLog("EKKB0010CW", 
						new String[]{MASSEAGE2 + "(ファイルＩＤ：" + KIKI_INF_NET_FILE_ID  + ", サービス契約番号：" + svc_kei_no + ")"});
				continue;
			}
		}
		
		// フルパスを生成。（受入可）
		file_path1 = mid_dir_kk + KIKI_INF_NET_FILE_ID + "003" + FILE_KEISHIKI;
		
		// 機器情報(ネット)情報ファイル(受入可)を出力
		executeOutputFile(kiki_inf_net1.toString(), file_path1, KIKI_INF_NET_FILE_ID);
		
		// フルパスを生成。（翌日取込）
		file_path2 = mid_dir_kk + KIKI_INF_NET_FILE_ID +  "004" + FILE_KEISHIKI;
		
		// 機器情報(ネット)情報ファイル(翌日取込)を出力
		executeOutputFile(kiki_inf_net2.toString(), file_path2, KIKI_INF_NET_FILE_ID);
		
		super.logPrint.printDebugLog("kikiInfNetOutPut_END");
	}
	
	/**
	 * 機器情報(ネット)情報データを設定します。<br>
	 * <p>
	 * @param data_work 機器情報(ネット)情報データ
	 * @param kiki_inf_net 文字列データ保持
	 * @throws Exception 
	 */	
	private void setKikiNetInf(String data_work, StringBuilder kiki_inf_net) throws Exception
	{
		super.logPrint.printDebugLog("setKikiNetInf_START");
		
		// 項目転記開始
		kiki_inf_net.append(data_work);
		
		// 改行コード
		kiki_inf_net.append(KAIGYOU_CODE);
		
		super.logPrint.printDebugLog("setKikiNetInf_END");
	}
	
	/**
	 * 機器情報(テレビ)情報出力処理を行います。<br>
	 * <p>
	 * @param mid_dir_kk 中間ファイル格納先
	 * @throws Exception 
	 */	
	private void kikiInfTvOutPut(String mid_dir_kk) throws Exception
	{
		super.logPrint.printDebugLog("kikiInfTvOutPut_START");
		
		String data_work = "";			// 機器情報(テレビ)情報ファイル1行データ保持
		String file_path = "";			// ファイルパス保持
		String file_path1 = "";			// ファイルパス保持
		String file_path2 = "";			// ファイルパス保持
		String svc_kei_stat = "";		// サービス契約ステータス保持
		StringBuilder kiki_Inf_tv1 = new StringBuilder();		// 機器情報(テレビ)情報文字列保持用(受入可)
		StringBuilder kiki_Inf_tv2 = new StringBuilder();		// 機器情報(テレビ)情報文字列保持用(翌日取込)
		
// ++++++++++++++++++++ v7.00.02 削除開始 +++++++++++++++++
//		// 異動区分
//		String ido_div = "";
// ++++++++++++++++++++ v7.00.02 削除終了 +++++++++++++++++
		
		// フルパスを生成。
		file_path = mid_dir_kk + KIKI_INF_TV_FILE_ID + "002" + FILE_KEISHIKI;
		
		// マージされた機器情報(テレビ)情報ファイルを読込みます。
		ArrayList<String> data_list = getInputFile(file_path, KIKI_INF_TV_FILE_ID);
		
		// 機器情報(テレビ)ファイル件数分の繰返し
		for (int i = 0; i < data_list.size(); i++)
		{
			// １行目を取得
			data_work = data_list.get(i);
			
			// データを分解
			String[] data = data_work.split(",", -1);
			
			// サービス契約番号を取得します。
			String svc_kei_no = data[0];
			
			// 工事案件種別コードの取得
			String kuj_ank_stb_cd = data[5];
			
			// サービス契約情報検索条件項目の設定
			Object[] paramList = new Object[2];
			
			// サービス契約番号の設定
			paramList[0] = svc_kei_no;
			paramList[1] = super.opeDate;		// バッチ運用日
			
			// サービス契約情報検索処理実行
// ++++++++++++++++++++ v7.00.02 変更開始 +++++++++++++++++
//			executeKK_T_SVC_KEI_KK_SELECT_090(paramList);
			JBSbatCommonDBInterface outDbMap = executeKK_T_SVC_KEI_KK_SELECT_060(paramList);
// ++++++++++++++++++++ v7.00.02 変更終了 +++++++++++++++++
			
			// 検索結果の判断
			if (null != outDbMap)
			{
				// サービス契約ステータスの取得
				svc_kei_stat = JBSbatStringUtil.Rtrim(outDbMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT));
				

// ++++++++++++++++++++ v7.00.02 削除開始 +++++++++++++++++
//				// 異動区分の取得
//				ido_div = JBSbatStringUtil.Rtrim(outDbMap.getString(JBSbatKK_T_SVC_KEI.IDO_DIV));
// ++++++++++++++++++++ v7.00.02 削除終了 +++++++++++++++++
			}
			else
			{
// +++++++++++++++++++ v7.00.03 変更開始（マイナーアラーム化）+++++++++++++++++++
				//throw new JBSbatBusinessException("EKKB0210CE", new String[]{TABLE_NAME, MASSEAGE1 + "{サービス契約番号：" + svc_kei_no + "}"});
				super.logPrint.printBusinessErrorLog("EKKB0630NW", new String[]{"サービス契約", "サービス契約番号", svc_kei_no});
				continue;
// +++++++++++++++++++ v7.00.03 変更終了（マイナーアラーム化）+++++++++++++++++++
			}
			
			// レコード区分
			String rec_div = data[49];
			
			// ルールを呼び出し工事関連情報受入確認を実施します。
			String result_cd = executeRule0081001(kuj_ank_stb_cd, svc_kei_stat, rec_div);
			
			super.logPrint.printDebugLog("工事関連情報受入確認結果：" + result_cd);
			
			// ルールチェック結果の判断
			if (!"9".equals(result_cd))
			{
				// 受入可の場合
				if (RESULT_UKEIRE_PSB.equals(result_cd))
				{
					// サービス契約ステータスと、督促情報判定による機器情報(テレビ)出力ファイル切り分けをします。
					if (this.isUkeirePsb(svc_kei_stat, svc_kei_no))
					{
						// サービス契約ステータスが「100：サービス提供中」、「210：休止・中断中」、「220：停止中」、
						//   「910：解約済」、「920：キャンセル済」の場合と、それ以外のステータスで督促情報検索結果なしの場合、
						//   「受入可」の処理を実施します。（中間ファイル（受入可）出力）
						// 機器情報(テレビ)の項目転記
						this.setKikiInfTv(data_work, kiki_Inf_tv1);
						
					}
					else
					{
						// サービス契約ステータスが「010：受付済」、「020：照査済」、「030：締結済」の場合で、
						//   督促情報検索結果ありの場合、「翌日受入」の処理を実施します。（中間ファイル（翌日取込）出力）
						// 機器情報(テレビ)の項目転記
						this.setKikiInfTv(data_work, kiki_Inf_tv2);
					}
					
					continue;
				}
				
				// 翌日受入の場合
				else if (RESULT_YOKUJITSU_UKEIRE.equals(result_cd))
				{
// +++++++++++++++++++ v7.00.03 変更開始 ++++++++++++++++++++++++++
					if (isYokujitsuUkeire(svc_kei_stat, outDbMap))
					{
						// 機器情報(テレビ)の項目転記
						setKikiInfTv(data_work, kiki_Inf_tv2);
					}
// +++++++++++++++++++ v7.00.03 変更終了 ++++++++++++++++++++++++++
					continue;
				}
				
				// 受入不可の場合
				else if (RESULT_UKEIRE_FAIL.equals(result_cd))
				{
					// 対象サービス契約番号が工事遅延契約補正TBLに存在していない場合
					if (isKojiDlyKeiHosei(svc_kei_no, data[2]))
					{
						// 工事遅延契約補正TBLへの登録。
						createKojiDlyKeiHosei(data, outDbMap);
						continue;
					}
				}
			}
			else
			{
				// 業務エラーログ出力
				super.logPrint.printBusinessErrorLog("EKKB0010CW", 
						new String[]{MASSEAGE2 + "(ファイルＩＤ：" + KIKI_INF_TV_FILE_ID  + ", サービス契約番号：" + svc_kei_no + ")"});
				continue;
			}
		}
		
		// フルパスを生成。（受入可）
		file_path1 = mid_dir_kk + KIKI_INF_TV_FILE_ID + "003" + FILE_KEISHIKI;
		
		// 機器情報(テレビ)ファイル(受入可)を出力
		executeOutputFile(kiki_Inf_tv1.toString(), file_path1, KIKI_INF_TV_FILE_ID);
		
		// フルパスを生成。（翌日取込）
		file_path2 = mid_dir_kk + KIKI_INF_TV_FILE_ID +  "004" + FILE_KEISHIKI;
		
		// 機器情報(テレビ)ファイル(翌日取込)を出力
		executeOutputFile(kiki_Inf_tv2.toString(), file_path2, KIKI_INF_TV_FILE_ID);
		
		super.logPrint.printDebugLog("kikiInfTvOutPutt_END");
	}
	
	/**
	 * 機器情報(テレビ)データを設定します。<br>
	 * <p>
	 * @param data_work 機器情報(テレビ)データ
	 * @param kiki_Inf_tv 文字列データ保持
	 * @throws Exception 
	 */	
	private void setKikiInfTv(String data_work, StringBuilder kiki_Inf_tv) throws Exception
	{
		super.logPrint.printDebugLog("setKikiInfTv_START");
		
		// 項目転記開始
		kiki_Inf_tv.append(data_work);
		
		// 改行コード
		kiki_Inf_tv.append(KAIGYOU_CODE);
		
		super.logPrint.printDebugLog("setKikiInfTv_END");
	}
	
	/**
	 * 宅内工事情報出力処理を行います。<br>
	 * <p>
	 * @param mid_dir_kk 中間ファイル格納先
	 * @throws Exception 
	 */	
	private void takniKojiInfOutPut(String mid_dir_kk) throws Exception
	{
		super.logPrint.printDebugLog("takniKojiInfOutPut_START");
		
		String data_work = "";			// 宅内工事情報ファイル1行データ保持
		String file_path = "";			// ファイルパス保持
		String file_path1 = "";			// ファイルパス保持
		String file_path2 = "";			// ファイルパス保持
		String svc_kei_stat = "";		// サービス契約ステータス保持
		StringBuilder takni_koji_inf1 = new StringBuilder();		// 宅内工事情報文字列保持用(受入可)
		StringBuilder takni_koji_inf2 = new StringBuilder();		// 宅内工事情報文字列保持用(翌日取込)
		
// ++++++++++++++++++++ v7.00.02 削除開始 +++++++++++++++++
//		// 異動区分
//		String ido_div = "";
// ++++++++++++++++++++ v7.00.02 削除終了 +++++++++++++++++
		
		// フルパスを生成。
		file_path = mid_dir_kk + TAKNI_KOJI_INF_FILE_ID + "002" + FILE_KEISHIKI;
		
		// マージされた宅内工事情報ファイルを読込みます。
		ArrayList<String> data_list = getInputFile(file_path, TAKNI_KOJI_INF_FILE_ID);
		
		// 宅内工事情報ファイル件数分の繰返し
		for (int i = 0; i < data_list.size(); i++)
		{
			// １行目を取得
			data_work = data_list.get(i);
			
			// データを分解
			String[] data = data_work.split(",", -1);
			
			// サービス契約番号を取得します。
			String svc_kei_no = data[0];
			
			// 工事案件種別コードの取得
			String kuj_ank_stb_cd = data[5];
			
			// サービス契約情報検索条件項目の設定
			Object[] paramList = new Object[2];
			
			// サービス契約番号の設定
			paramList[0] = svc_kei_no;
			paramList[1] = super.opeDate;		// バッチ運用日
			
			// サービス契約情報検索処理実行
// ++++++++++++++++++++ v7.00.02 変更開始 +++++++++++++++++
//			executeKK_T_SVC_KEI_KK_SELECT_090(paramList);
			JBSbatCommonDBInterface outDbMap = executeKK_T_SVC_KEI_KK_SELECT_060(paramList);
// ++++++++++++++++++++ v7.00.02 変更終了 +++++++++++++++++
			
			// 検索結果の判断
			if (null != outDbMap)
			{
				// サービス契約ステータスの取得
				svc_kei_stat = JBSbatStringUtil.Rtrim(outDbMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT));
				
// ++++++++++++++++++++ v7.00.02 削除開始 +++++++++++++++++
//				// 異動区分の取得
//				ido_div = JBSbatStringUtil.Rtrim(outDbMap.getString(JBSbatKK_T_SVC_KEI.IDO_DIV));
// ++++++++++++++++++++ v7.00.02 削除終了 +++++++++++++++++
			}
			else
			{
// +++++++++++++++++++ v7.00.03 変更開始（マイナーアラーム化）+++++++++++++++++++
				//throw new JBSbatBusinessException("EKKB0210CE", new String[]{TABLE_NAME, MASSEAGE1 + "{サービス契約番号：" + svc_kei_no + "}"});
				super.logPrint.printBusinessErrorLog("EKKB0630NW", new String[]{"サービス契約", "サービス契約番号", svc_kei_no});
				continue;
// +++++++++++++++++++ v7.00.03 変更終了（マイナーアラーム化）+++++++++++++++++++
			}
			
			// レコード区分
			String rec_div = data[12];
			
			// ルールを呼び出し工事関連情報受入確認を実施します。
			String result_cd = executeRule0081001(kuj_ank_stb_cd, svc_kei_stat, rec_div);
			
			super.logPrint.printDebugLog("工事関連情報受入確認結果：" + result_cd);
			
			// ルールチェック結果の判断
			if (!"9".equals(result_cd))
			{
				// 受入可の場合
				if (RESULT_UKEIRE_PSB.equals(result_cd))
				{
					// サービス契約ステータスと、督促情報判定による宅内工事情報出力ファイル切り分けをします。
					if (this.isUkeirePsb(svc_kei_stat, svc_kei_no))
					{
						// サービス契約ステータスが「100：サービス提供中」、「210：休止・中断中」、「220：停止中」、
						//   「910：解約済」、「920：キャンセル済」の場合と、それ以外のステータスで督促情報検索結果なしの場合、
						//   「受入可」の処理を実施します。（中間ファイル（受入可）出力）
						// 宅内工事情報の項目転記
						this.setTakniKojiInf(data_work, takni_koji_inf1);
						
						// 進捗データを登録します。
// ++++++++++++++++++++ v7.00.02 変更開始 +++++++++++++++++
//						this.setPrgIfAdd(data, ido_div);
						this.setPrgIfAdd(data);
// ++++++++++++++++++++ v7.00.02 変更終了 +++++++++++++++++
					}
					else
					{
						// サービス契約ステータスが「010：受付済」、「020：照査済」、「030：締結済」の場合で、
						//   督促情報検索結果ありの場合、「翌日受入」の処理を実施します。（中間ファイル（翌日取込）出力）
						// 宅内工事情報の項目転記
						this.setTakniKojiInf(data_work, takni_koji_inf2);
					}
					
					continue;
				}
				
				// 翌日受入の場合
				else if (RESULT_YOKUJITSU_UKEIRE.equals(result_cd))
				{
// +++++++++++++++++++ v7.00.03 変更開始 ++++++++++++++++++++++++++
					if (isYokujitsuUkeire(svc_kei_stat, outDbMap))
					{
						// 宅内工事情報の項目転記
						setTakniKojiInf(data_work, takni_koji_inf2);
					}
// +++++++++++++++++++ v7.00.03 変更終了 ++++++++++++++++++++++++++
					continue;
				}
				
				// 受入不可の場合
				else if (RESULT_UKEIRE_FAIL.equals(result_cd))
				{
					// 対象サービス契約番号が工事遅延契約補正TBLに存在していない場合
					if (isKojiDlyKeiHosei(svc_kei_no, data[2]))
					{
						// 工事遅延契約補正TBLへの登録。
						createKojiDlyKeiHosei(data, outDbMap);
						continue;
					}
				}
			}
			else
			{
				// 業務エラーログ出力
				super.logPrint.printBusinessErrorLog("EKKB0010CW", 
						new String[]{MASSEAGE2 + "(ファイルＩＤ：" + TAKNI_KOJI_INF_FILE_ID  + ", サービス契約番号：" + svc_kei_no + ")"});
				continue;
			}
		}
		
		// フルパスを生成。（受入可）
		file_path1 = mid_dir_kk + TAKNI_KOJI_INF_FILE_ID + "003" + FILE_KEISHIKI;
		
		// 宅内工事情報ファイル(受入可)を出力
		executeOutputFile(takni_koji_inf1.toString(), file_path1, TAKNI_KOJI_INF_FILE_ID);
		
		// フルパスを生成。（翌日取込）
		file_path2 = mid_dir_kk + TAKNI_KOJI_INF_FILE_ID +  "004" + FILE_KEISHIKI;
		
		// 宅内工事情報ファイル(翌日取込)を出力
		executeOutputFile(takni_koji_inf2.toString(), file_path2, TAKNI_KOJI_INF_FILE_ID);
		
		super.logPrint.printDebugLog("takniKojiInfOutPut_END");
	}
	
	/**
	 * 宅内工事情報データを設定します。<br>
	 * <p>
	 * @param data_work 宅内工事情報データ
	 * @param takni_koji_inf 文字列データ保持
	 * @throws Exception 
	 */	
	private void setTakniKojiInf(String data_work, StringBuilder takni_koji_inf) throws Exception
	{
		super.logPrint.printDebugLog("setTakniKojiInf_START");
		
		// 項目転記開始
		takni_koji_inf.append(data_work);
		
		// 改行コード
		takni_koji_inf.append(KAIGYOU_CODE);
		
		super.logPrint.printDebugLog("setTakniKojiInf_END");
	}
	
	/**
	 * 工事費情報出力処理を行います。<br>
	 * <p>
	 * @param mid_dir_kk 中間ファイル格納先
	 * @throws Exception 
	 */	
	private void kojihiInfOutPut(String mid_dir_kk) throws Exception
	{
		super.logPrint.printDebugLog("kojihiInfOutPut_START");
		
		String data_work = "";			// 工事費情報ファイル1行データ保持
		String file_path = "";			// ファイルパス保持
		String file_path1 = "";			// ファイルパス保持
		String file_path2 = "";			// ファイルパス保持
		String svc_kei_stat = "";		// サービス契約ステータス保持
		StringBuilder kojihi_Inf1 = new StringBuilder();		// 工事費情報文字列保持用(受入可)
		StringBuilder kojihi_Inf2 = new StringBuilder();		// 工事費情報文字列保持用(翌日取込)
		
		// フルパスを生成。
		file_path = mid_dir_kk + KOJIHI_INF_FILE_ID + "002" + FILE_KEISHIKI;
		
		// マージされた工事費情報ファイルを読込みます。
		ArrayList<String> data_list = getInputFile(file_path, KOJIHI_INF_FILE_ID);
		
		// 工事費情報ファイル件数分の繰返し
		for (int i = 0; i < data_list.size(); i++)
		{
			// １行目を取得
			data_work = data_list.get(i);
			
			// データを分解
			String[] data = data_work.split(",", -1);
			
			// サービス契約番号を取得します。
			String svc_kei_no = data[0];
			
			// 工事案件種別コードの取得
			String kuj_ank_stb_cd = data[5];
			
			// サービス契約情報検索条件項目の設定
			Object[] paramList = new Object[2];
			
			// サービス契約番号の設定
			paramList[0] = svc_kei_no;
			paramList[1] = super.opeDate;		// バッチ運用日
			
			// サービス契約情報検索処理実行
			JBSbatCommonDBInterface outDbMap = executeKK_T_SVC_KEI_KK_SELECT_060(paramList);
			
			// 検索結果の判断
			if (null != outDbMap)
			{
				// サービス契約ステータスの取得
				svc_kei_stat = JBSbatStringUtil.Rtrim(outDbMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT));
			}
			else
			{
// +++++++++++++++++++ v7.00.03 変更開始（マイナーアラーム化）+++++++++++++++++++
				//throw new JBSbatBusinessException("EKKB0210CE", new String[]{TABLE_NAME, MASSEAGE1 + "{サービス契約番号：" + svc_kei_no + "}"});
				super.logPrint.printBusinessErrorLog("EKKB0630NW", new String[]{"サービス契約", "サービス契約番号", svc_kei_no});
				continue;
// +++++++++++++++++++ v7.00.03 変更終了（マイナーアラーム化）+++++++++++++++++++
			}
			
			// レコード区分
			String rec_div = data[9];
			
			super.logPrint.printDebugLog("kuj_ank_stb_cd:::::" + kuj_ank_stb_cd);
			super.logPrint.printDebugLog("svc_kei_stat:::::" + svc_kei_stat);
			super.logPrint.printDebugLog("rec_div:::::" + rec_div);
			
			// ルールを呼び出し工事関連情報受入確認を実施します。
			String result_cd = executeRule0081001(kuj_ank_stb_cd, svc_kei_stat, rec_div);
			
			super.logPrint.printDebugLog("工事関連情報受入確認結果：" + result_cd);
			
			// ルールチェック結果の判断
			if (!"9".equals(result_cd))
			{
				// 受入可の場合
				if (RESULT_UKEIRE_PSB.equals(result_cd))
				{
					// サービス契約ステータスと、督促情報判定による工事費情報出力ファイル切り分けをします。
					if (this.isUkeirePsb(svc_kei_stat, svc_kei_no))
					{
						// サービス契約ステータスが「100：サービス提供中」、「210：休止・中断中」、「220：停止中」、
						//   「910：解約済」、「920：キャンセル済」の場合と、それ以外のステータスで督促情報検索結果なしの場合、
						//   「受入可」の処理を実施します。（中間ファイル（受入可）出力）
						// 工事費情報の項目転記
						this.setKojihiInf(data_work, kojihi_Inf1);
						
					}
					else
					{
						// サービス契約ステータスが「010：受付済」、「020：照査済」、「030：締結済」の場合で、
						//   督促情報検索結果ありの場合、「翌日受入」の処理を実施します。（中間ファイル（翌日取込）出力）
						// 工事費情報の項目転記
						this.setKojihiInf(data_work, kojihi_Inf2);
					}
					
					continue;
				}
				
				// 翌日受入の場合
				else if (RESULT_YOKUJITSU_UKEIRE.equals(result_cd))
				{
// +++++++++++++++++++ v7.00.03 変更開始 ++++++++++++++++++++++++++
					if (isYokujitsuUkeire(svc_kei_stat, outDbMap))
					{
						// 工事費情報の項目転記
						setKojihiInf(data_work, kojihi_Inf2);
					}
// +++++++++++++++++++ v7.00.03 変更終了 ++++++++++++++++++++++++++
					continue;
				}
				
				// 受入不可の場合
				else if (RESULT_UKEIRE_FAIL.equals(result_cd))
				{
					// 対象サービス契約番号が工事遅延契約補正TBLに存在していない場合
					if (isKojiDlyKeiHosei(svc_kei_no, data[2]))
					{
						// 工事遅延契約補正TBLへの登録。
						createKojiDlyKeiHosei(data, outDbMap);
						continue;
					}
				}
			}
			else
			{
				// 業務エラーログ出力
				super.logPrint.printBusinessErrorLog("EKKB0010CW", 
						new String[]{MASSEAGE2 + "(ファイルＩＤ：" + KOJIHI_INF_FILE_ID  + ", サービス契約番号：" + svc_kei_no + ")"});
				continue;
			}
		}
		
		// フルパスを生成。（受入可）
		file_path1 = mid_dir_kk + KOJIHI_INF_FILE_ID + "003" + FILE_KEISHIKI;
		
		// 工事費情報ファイル(受入可)を出力
		executeOutputFile(kojihi_Inf1.toString(), file_path1, KOJIHI_INF_FILE_ID);
		
		// フルパスを生成。（翌日取込）
		file_path2 = mid_dir_kk + KOJIHI_INF_FILE_ID +  "004" + FILE_KEISHIKI;
		
		// 工事費情報ファイル(翌日取込)を出力
		executeOutputFile(kojihi_Inf2.toString(), file_path2, KOJIHI_INF_FILE_ID);
		
		super.logPrint.printDebugLog("kojihiInfOutPut_END");
	}
	
	/**
	 * 工事費情報データを設定します。<br>
	 * <p>
	 * @param data_work 工事費情報データ
	 * @param kojihi_Inf 文字列データ保持
	 * @throws Exception 
	 */	
	private void setKojihiInf(String data_work, StringBuilder kojihi_Inf) throws Exception
	{
		super.logPrint.printDebugLog("setKojihiInf_START");
		
		// 項目転記開始
		kojihi_Inf.append(data_work);
		
		// 改行コード
		kojihi_Inf.append(KAIGYOU_CODE);
		
		super.logPrint.printDebugLog("setKojihiInf_END");
	}
	
	/**
	 * ＳＴＢ着工情報出力処理を行います。<br>
	 * <p>
	 * @param mid_dir_kk 中間ファイル格納先
	 * @throws Exception 
	 */	
	private void stbChakukoInfOutPut(String mid_dir_kk) throws Exception
	{
		super.logPrint.printDebugLog("stbChakukoInfOutPut_START");
		
		String data_work = "";			// ＳＴＢ着工情報ファイル1行データ保持
		String file_path = "";			// ファイルパス保持
		StringBuilder stbChakuko_Inf = new StringBuilder();		// ＳＴＢ着工情報文字列保持用(受入可)
		
		// フルパスを生成。
		file_path = mid_dir_kk + STB_CHAKUKO_INF_FILE_ID + "002" + FILE_KEISHIKI;
		
		// マージされたＳＴＢ着工情報ファイルを読込みます。
		ArrayList<String> data_list = getInputFile(file_path, STB_CHAKUKO_INF_FILE_ID);
		
		// ＳＴＢ着工情報ファイル件数分の繰返し
		for (int i = 0; i < data_list.size(); i++)
		{
			// １行目を取得
			data_work = data_list.get(i);
			
			// 項目転記開始
			stbChakuko_Inf.append(data_work);
			
			// 改行コード
			stbChakuko_Inf.append(KAIGYOU_CODE);
		}
		
		// フルパスを生成。（受入可）
		file_path = mid_dir_kk + STB_CHAKUKO_INF_FILE_ID + "003" + FILE_KEISHIKI;
		
		// ＳＴＢ着工情報ファイル(受入可)を出力
		executeOutputFile(stbChakuko_Inf.toString(), file_path, STB_CHAKUKO_INF_FILE_ID);
		
		super.logPrint.printDebugLog("stbChakukoInfOutPut_END");
	}
	
// ANK-3136-00-00 ADD START
	/**
	 * 工事仮キャンセル受付情報出力処理を行います<br>
	 * <p>
	 * @param midDirKK 中間ファイル格納先
	 * @throws Exception 
	 */	
	private void krCnclUkInfOutPut(String midDirKK) throws Exception
	{
		super.logPrint.printDebugLog("krCnclUkInfOutPut_START");
		
		String dataWork = "";			// 工事仮キャンセル受付情報ファイル１行データ保持
		String filePath = "";			// ファイルパス保持
		String filePath2 = "";			// ファイルパス保持
		String svcKeiStat = "";			// サービス契約ステータス保持
		StringBuilder krCnclUkInf2 = new StringBuilder();		// 工事仮キャンセル受付情報文字列保持用(翌日取込)
		
		// 工事仮キャンセル受付情報文字列保持用(受入可)初期化
		krCnclInf = new StringBuilder();
		
		// フルパスを生成
		filePath = midDirKK + KR_CNCL_UK_INF_FILE_ID + "002" + FILE_KEISHIKI;
		
		// マージされた工事仮キャンセル受付情報ファイル情報を読込む
		ArrayList<String> dataList = getInputFile(filePath, KR_CNCL_UK_INF_FILE_ID);
		
		// 工事仮キャンセル受付情報ファイル件数分の繰返し
		for (int i = 0; i < dataList.size(); i++)
		{
			// １行取得
			dataWork = dataList.get(i);
			
			super.logPrint.printDebugLog("工事仮キャンセル受付情報文字列（編集前）：" + dataWork);
			
			// データを分解
			String[] data = dataWork.split(",", -1);
			
			// レコード区分
			String recDiv = data[10];
			
			// サービス契約番号
			String svcKeiNo = data[0];
			
			// 連携年月日
			String renkeiYmd = data[2];
			
			// 工事案件種別コード
			String kojiakSbtCd = data[5];
			
			// サービス契約情報検索条件項目の設定
			Object[] paramList = new Object[2];
			
			// サービス契約番号
			paramList[0] = svcKeiNo;
			// バッチ運用日
			paramList[1] = super.opeDate;
			
			// サービス契約情報検索処理実行
			JBSbatCommonDBInterface outDbMap = executeKK_T_SVC_KEI_KK_SELECT_060(paramList);
			
			// 検索結果の判断
			if (null != outDbMap)
			{
				// サービス契約ステータスの取得
				svcKeiStat = JBSbatStringUtil.Rtrim(outDbMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT));
			}
			else
			{
				super.logPrint.printBusinessErrorLog("EKKB0630NW", new String[]{"サービス契約", "サービス契約番号", svcKeiNo});
				continue;
			}
			
			super.logPrint.printDebugLog("レコード区分：" + recDiv);
			
			// ルールを呼び出し工事関連情報受入確認を実施
			String resultCd = executeRule0081001(kojiakSbtCd, svcKeiStat, recDiv);
			
			super.logPrint.printDebugLog("工事関連情報受入確認結果：" + resultCd);
			
			// ルールチェック結果の判断
			if (!"9".equals(resultCd))
			{
				// 受入可の場合
				if (RESULT_UKEIRE_PSB.equals(resultCd))
				{
					// 進捗データを登録
					setPrgIfAdd(data);
					
					// 工事仮キャンセル情報ファイル１行データ保持変数へ設定
					String dataWorkAf = setkrCnclInfRec(data, recDiv);
					
					// 工事仮キャンセル情報（受入可）の項目転記
					setKrCnclUkInfData(dataWorkAf, krCnclInf);
					
					continue;
				}
				// 翌日受入の場合
				else if (RESULT_YOKUJITSU_UKEIRE.equals(resultCd))
				{
					// 回復不可・キャンセル取消不可チェック
					if (isYokujitsuUkeire(svcKeiStat, outDbMap))
					{
						// 工事仮キャンセル受付情報（翌日受入）の項目転記
						setKrCnclUkInfData(dataWork, krCnclUkInf2);
					}
					continue;
				}
				// 受入不可の場合
				else if (RESULT_UKEIRE_FAIL.equals(resultCd))
				{
					// 対象サービス契約番号が工事遅延契約補正に存在していない場合
					if (isKojiDlyKeiHosei(svcKeiNo, renkeiYmd))
					{
						// 工事遅延契約補正の登録
						createKojiDlyKeiHosei(data, outDbMap);
						continue;
					}
				}
			}
			else
			{
				// 業務エラーログ出力
				super.logPrint.printBusinessErrorLog("EKKB0010CW", 
						new String[]{MASSEAGE2 + "(ファイルＩＤ：" + KR_CNCL_UK_INF_FILE_ID  + ", サービス契約番号：" + svcKeiNo + ")"});
				continue;
			}
		}
		
		// フルパスを生成（翌日取込）
		filePath2 = midDirKK + KR_CNCL_UK_INF_FILE_ID +  "004" + FILE_KEISHIKI;
		
		// 工事仮キャンセル受付情報ファイル(翌日取込)を出力
		executeOutputFile(krCnclUkInf2.toString(), filePath2, KR_CNCL_UK_INF_FILE_ID);
		
		super.logPrint.printDebugLog("krCnclUkInfOutPut_END");
	}
	
	/**
	 * 工事仮キャンセル受付情報データを設定<br>
	 * <p>
	 * @param dataWork 工事仮キャンセル受付情報データ
	 * @param krCnclUkInf 文字列データ保持
	 * @throws Exception 
	 */	
	private void setKrCnclUkInfData(String dataWork, StringBuilder krCnclUkInf) throws Exception
	{
		super.logPrint.printDebugLog("setKrCnclUkInfData_START");
		 
		// 項目転記
		krCnclUkInf.append(dataWork);
		
		// 改行コード
		krCnclUkInf.append(KAIGYOU_CODE);
		
		super.logPrint.printDebugLog("setKrCnclUkInfData_END");
	}
	
	/**
	 * 工事仮キャンセル取消情報出力処理を行います<br>
	 * <p>
	 * @param midDirKK 中間ファイル格納先
	 * @throws Exception 
	 */	
	private void krCnclClInfOutPut(String midDirKK) throws Exception
	{
		super.logPrint.printDebugLog("krCnclClInfOutPut_START");
		
		String dataWork = "";			// 工事仮キャンセル取消情報ファイル１行データ保持
		String filePath = "";			// ファイルパス保持
		String filePath1 = "";			// ファイルパス保持
		String filePath2 = "";			// ファイルパス保持
		String svcKeiStat = "";			// サービス契約ステータス保持
		StringBuilder krCnclClInf2 = new StringBuilder();		// 工事仮キャンセル取消情報文字列保持用(翌日取込)
		
		// フルパスを生成
		filePath = midDirKK + KR_CNCL_CL_INF_FILE_ID + "002" + FILE_KEISHIKI;
		
		// マージされた工事仮キャンセル取消情報ファイル情報を読込む
		ArrayList<String> dataList = getInputFile(filePath, KR_CNCL_CL_INF_FILE_ID);
		
		// 工事仮キャンセル取消情報ファイル件数分の繰返し
		for (int i = 0; i < dataList.size(); i++)
		{
			// １行取得
			dataWork = dataList.get(i);
			
			super.logPrint.printDebugLog("工事仮キャンセル取消情報文字列（編集前）：" + dataWork);
			
			// データを分解
			String[] data = dataWork.split(",", -1);
			
			// レコード区分
			String recDiv = data[8];
			
			// サービス契約番号
			String svcKeiNo = data[0];
			
			// 連携年月日
			String renkeiYmd = data[2];
			
			// 工事案件種別コード
			String kojiakSbtCd = data[5];
			
			// サービス契約情報検索条件項目の設定
			Object[] paramList = new Object[2];
			
			// サービス契約番号
			paramList[0] = svcKeiNo;
			// バッチ運用日
			paramList[1] = super.opeDate;
			
			// サービス契約情報検索処理実行
			JBSbatCommonDBInterface outDbMap = executeKK_T_SVC_KEI_KK_SELECT_060(paramList);
			
			// 検索結果の判断
			if (null != outDbMap)
			{
				// サービス契約ステータスの取得
				svcKeiStat = JBSbatStringUtil.Rtrim(outDbMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT));
			}
			else
			{
				super.logPrint.printBusinessErrorLog("EKKB0630NW", new String[]{"サービス契約", "サービス契約番号", svcKeiNo});
				continue;
			}
			
			super.logPrint.printDebugLog("レコード区分：" + recDiv);
			
			// ルールを呼び出し工事関連情報受入確認を実施
			String resultCd = executeRule0081001(kojiakSbtCd, svcKeiStat, recDiv);
			
			super.logPrint.printDebugLog("工事関連情報受入確認結果：" + resultCd);
			
			// ルールチェック結果の判断
			if (!"9".equals(resultCd))
			{
				// 受入可の場合
				if (RESULT_UKEIRE_PSB.equals(resultCd))
				{
					// 進捗データを登録
					setPrgIfAdd(data);
					
					// 工事仮キャンセル情報ファイル１行データ保持変数へ設定
					String dataWorkAf = setkrCnclInfRec(data, recDiv);
					
					// 工事仮キャンセル情報（受入可）の項目転記
					setKrCnclClInfData(dataWorkAf, krCnclInf);
					
					continue;
				}
				// 翌日受入の場合
				else if (RESULT_YOKUJITSU_UKEIRE.equals(resultCd))
				{
					// 回復不可・キャンセル取消不可チェック
					if (isYokujitsuUkeire(svcKeiStat, outDbMap))
					{
						// 工事仮キャンセル取消情報（翌日受入）の項目転記
						setKrCnclClInfData(dataWork, krCnclClInf2);
					}
					continue;
				}
				// 受入不可の場合
				else if (RESULT_UKEIRE_FAIL.equals(resultCd))
				{
					// 対象サービス契約番号が工事遅延契約補正に存在していない場合
					if (isKojiDlyKeiHosei(svcKeiNo, renkeiYmd))
					{
						// 工事遅延契約補正の登録
						createKojiDlyKeiHosei(data, outDbMap);
						continue;
					}
				}
			}
			else
			{
				// 業務エラーログ出力
				super.logPrint.printBusinessErrorLog("EKKB0010CW", 
						new String[]{MASSEAGE2 + "(ファイルＩＤ：" + KR_CNCL_CL_INF_FILE_ID  + ", サービス契約番号：" + svcKeiNo + ")"});
				continue;
			}
		}
		
		// システム日時
		String sysDate = JBSbatDateUtil.getSystemDateTimeStamp();
		
		// 受入可ファイル名日付
		String fileDate = super.opeDate + sysDate.substring(8,14);
		
		// フルパスを生成（受入可）
		filePath1 = midDirKK + KR_CNCL_INF_FILE_ID + "_" + fileDate + FILE_KEISHIKI;
		
		// 工事仮キャンセル情報ファイル(受入可)を出力
		executeOutputFile(krCnclInf.toString(), filePath1, KR_CNCL_CL_INF_FILE_ID);
		
		// フルパスを生成（翌日取込）
		filePath2 = midDirKK + KR_CNCL_CL_INF_FILE_ID +  "004" + FILE_KEISHIKI;
		
		// 工事仮キャンセル取消情報ファイル(翌日取込)を出力
		executeOutputFile(krCnclClInf2.toString(), filePath2, KR_CNCL_CL_INF_FILE_ID);
		
		super.logPrint.printDebugLog("krCnclClInfOutPut_END");
	}
	
	/**
	 * 工事仮キャンセル取消情報データを設定<br>
	 * <p>
	 * @param dataWork 工事仮キャンセル取消情報データ
	 * @param krCnclUkInf 文字列データ保持
	 * @throws Exception 
	 */	
	private void setKrCnclClInfData(String dataWork, StringBuilder krCnclClInf) throws Exception
	{
		super.logPrint.printDebugLog("setKrCnclClInfData_START");
		 
		// 項目転記
		krCnclClInf.append(dataWork);
		
		// 改行コード
		krCnclClInf.append(KAIGYOU_CODE);
		
		super.logPrint.printDebugLog("setKrCnclClInfData_END");
	}
	
	/**
	 * 工事仮キャンセル情報を設定<br>
	 * <p>
	 * @param data 工事仮キャンセル情報（編集前）
	 * @return String 工事仮キャンセル情報文字列（編集後）
	 * @throws Exception 
	 */	
	private String setkrCnclInfRec(String[] data, String recDiv) throws Exception
	{
		super.logPrint.printDebugLog("setKrCnclInf_START");
		
		// 工事仮キャンセル情報文字列保持用
		StringBuilder krCnclInf = new StringBuilder();
		
		// 工事仮キャンセル情報１レコード設定
		// レコード区分
		krCnclInf.append(recDiv);
		krCnclInf.append(CONMA);
		// サービス契約番号
		krCnclInf.append(data[0]);
		krCnclInf.append(CONMA);
		// サービス契約回線内訳番号
		krCnclInf.append(data[1]);
		krCnclInf.append(CONMA);
		// 新規変更区分
		krCnclInf.append(data[4]);
		krCnclInf.append(CONMA);
		// 工事案件種別コード
		krCnclInf.append(data[5]);
		krCnclInf.append(CONMA);
		// 工事案件番号
		krCnclInf.append(data[6]);
		krCnclInf.append(CONMA);
		// 異動区分
		krCnclInf.append(prgAddIdoDiv);
		krCnclInf.append(CONMA);
		// 進捗ステータス
		krCnclInf.append(prgAddPrgStat);
		krCnclInf.append(CONMA);
		// 進捗年月日時分秒
		krCnclInf.append(prgAddPrgYmdDtm);
		
		super.logPrint.printDebugLog("setKrCnclInf_END");
		
		return krCnclInf.toString();
	}
// ANK-3136-00-00 ADD END
	
	/**
	 * 工事関連情報受入確認条件ルールチェックを実施します。<br>
	 * <p>
	 * @param kuj_ank_stb_cd 工事案件種別コード
	 * @param svc_kei_stat サービス契約ステータス
	 * @param rec_div レコード区分
	 * @return ルール実施結果(０：受入可、１：翌日受入、２：受入不可)
	 * @throws Exception 
	 */	
	private String executeRule0081001(String kuj_ank_stb_cd, String svc_kei_stat, String rec_div) throws Exception
	{
		// ルールを呼び出し工事関連情報受入確認を実施します。
// ++++++++++++++++++++ v7.00.02 変更開始 +++++++++++++++++
//		JRuleXMLHandler jRuleXMLHandler = JCCBatCommon.createSokanRuleEngine(RULE_CONT_ID, JRuleXMLPattern.SINGLE_MODE_TYPE);
		jRuleXMLHandler.clearReturnList();
// ++++++++++++++++++++ v7.00.02 変更終了 +++++++++++++++++
		HashMap<String, Object> ruleMap = new HashMap<String, Object>();
		
		// ルール条件の設定
		ruleMap.put(KEY_KOJIAK_SBT_CD, kuj_ank_stb_cd);	// 工事種別案件コード
		ruleMap.put(KEY_SVC_KEI_STAT, svc_kei_stat);	// サービス契約ステータス
		ruleMap.put(KEY_REC_DIV, rec_div);	// レコード区分
		
		// 実行結果の取得
		ArrayList<ArrayList<HashMap<String, Object>>> resultList = jRuleXMLHandler.getCheckResultArray(ruleMap);
		
		return (String)resultList.get(0).get(0).get(KEY_RESULT_CD);
	}
	
	/**
	 * 進捗データを登録します。
	 * <br>
	 * @param data 受入可工事受付S連携情報
	 * @param ido_div  異動区分
	 * @throws Exception 
	 */
// ++++++++++++++++++++ v7.00.02 変更開始 +++++++++++++++++
//	private void setPrgIfAdd(String[] data, String ido_div) throws Exception
	private void setPrgIfAdd(String[] data) throws Exception
// ++++++++++++++++++++ v7.00.02 変更終了 +++++++++++++++++
	{
		
		// レコード区分
		String recDiv = "";
		
		// 進捗ステータス
		String prgStat = "";
		
		// 工事案件番号
		String kojiakNo = "";
		
// ANK-3136-00-00 ADD START
		// 異動区分（進捗登録情報）
		prgAddIdoDiv = "";
		// 進捗ステータス（進捗登録情報）
		prgAddPrgStat = "";
		// 進捗年月日時分秒（進捗登録情報）
		prgAddPrgYmdDtm = "";
// ANK-3136-00-00 ADD END
		
		// レコード区分を取得します。
		if (0 < data.length)
		{
			int lastIndex = data.length - 1;
			recDiv = data[lastIndex];
			
			super.logPrint.printDebugLog("lastIndex          :" + lastIndex);
			super.logPrint.printDebugLog("レコード区分 recDiv:" + recDiv);
		}
		else
		{
			super.logPrint.printDebugLog("レコード区分取得異常＿進捗登録中止");
			return;
		}
		
		// システム日時
		String sysrtem_date = JBSbatDateUtil.getSystemDateTimeStamp();	// システム日時の取得
		
// ANK-3136-00-00 ADD START
		// 進捗年月日時分秒
		String prgYmdDtm = super.opeDate + sysrtem_date.substring(8);
// ANK-3136-00-00 ADD END
		
		// サービス契約番号
		String svc_kei_no = data[0];
		
		// 設計結果情報(レコード区分="20")の場合の設定です。
		if (REC_DOV_20.equals(recDiv))
		{
			// 工事案件番号
			kojiakNo = data[6];
			
			// 設計結果コードの取得
			String dsgn_result_cd = data[7];
			
			// 進捗ステータスの設定
			if (DSGN_EQUIP_CD_KIJUNNAI.equals(dsgn_result_cd))
			{
				// 「設計結果コード」が 1:基準内 の場合、 9550:幹線・宅内設計OK を設定
				prgStat = TAKNI_DSGN_OK;
			}
			else
			{
				// 「設計結果コード」が 2:基準外 の場合、 955E:幹線・宅内設計NG を設定
				prgStat = TAKNI_DSGN_NG;
			}
		// 工事完了情報(レコード区分="40")の場合の設定です。
		}
		else if (REC_DOV_40.equals(recDiv))
		{
			// 工事案件番号
			kojiakNo = data[6];
			
			// OPMS工事案件結果コードを取得します。
			String opmskjakRsltCd = data[7];
			
			// 進捗ステータスを設定します。
			if (OPMSKJAK_RSLT_CD_OK.equals(opmskjakRsltCd))
			{
				// 「OPMS工事案件結果コード」が 1:OK の場合、 9700:工事完了 を設定します。
				prgStat = KOJI_FIN;
			}
			else
			{
				// 「OPMS工事案件結果コード」が 2:NG の場合、 957E:工事NG を設定します。
				prgStat = KOJI_NG;
			}
		}
		// 工事取消情報の場合の設定です。
		else if (REC_DOV_90.equals(recDiv))
		{
			// 工事案件番号
			kojiakNo = data[6];
			
			// 進捗ステータスに 9704:工事取消 を設定します。
			prgStat = KOJI_CL;
		
		}
		// 宅内工事情報の場合の設定です。
		else if (REC_DOV_B0.equals(recDiv))
		{
			// 工事案件番号
			kojiakNo = data[6];
			
			// ++++++++++++++++++++ v9.00.00 変更開始 +++++++++++++++++
//			// 進捗ステータスに 9610:工事予定情報取込 を設定します。
//			prgStat = KOJI_RSV_INF_TRKM;
			// 進捗ステータスに 9660:宅内工事情報取込 を設定します。
			prgStat = TAKNI_KOJI_INF_TRKM;
			// ++++++++++++++++++++ v9.00.00 変更終了 +++++++++++++++++
		}
		// ++++++++++++++++++++ v9.00.00 追加開始 +++++++++++++++++
		// 工事予定情報の場合の設定です。
		else if (REC_DOV_60.equals(recDiv)
				|| REC_DOV_61.equals(recDiv))
		{
			// 工事案件番号
			kojiakNo = data[6];
			
			// 進捗ステータスに 9610:工事予定情報取込 を設定します。
			prgStat = KOJI_RSV_INF_TRKM;
		}
		// ++++++++++++++++++++ v9.00.00 追加終了 +++++++++++++++++
		
// ANK-3136-00-00 ADD START
		// 工事仮キャンセル受付情報の場合の設定です。
		else if (REC_DOV_E0.equals(recDiv))
		{
			// 工事案件番号
			kojiakNo = data[6];
			
			// 進捗ステータスに 9706:工事仮キャンセル受付 を設定します。
			prgStat = KOJI_KR_CNCL_UK;
		}
		// 工事仮キャンセル取消情報の場合の設定です。
		else if (REC_DOV_F0.equals(recDiv))
		{
			// 工事案件番号
			kojiakNo = data[6];
			
			// 進捗ステータスに 9707:工事仮キャンセル取消受付 を設定します。
			prgStat = KOJI_KR_CNCL_CL_UK;
		}
// ANK-3136-00-00 ADD END
		
		super.logPrint.printDebugLog("工事案件番号--->" + kojiakNo);
		super.logPrint.printDebugLog("進捗ステータス--->" + prgStat);
		
		// 工事案件番号より、工事案件.工事受付契機異動区分を取得します。
		String kojiUkOptyIdoDiv = getKojiUkOptyIdoDiv(kojiakNo);
		
		super.logPrint.printDebugLog("異動区分--->" + kojiUkOptyIdoDiv);
		super.logPrint.printDebugLog("サービス契約番号--->" + svc_kei_no);

// ANK-3136-00-00 ADD START
		// 工事仮キャンセル受付情報 または 工事仮キャンセル取消情報の場合
		if (REC_DOV_E0.equals(recDiv) || REC_DOV_F0.equals(recDiv))
		{
			// 工事仮キャンセル情報ファイル設定用に進捗登録情報を取得
			// 異動区分（進捗登録情報）
			prgAddIdoDiv = kojiUkOptyIdoDiv;
			// 進捗ステータス（進捗登録情報）
			prgAddPrgStat = prgStat;
			// 進捗年月日時分秒（進捗登録情報）
			prgAddPrgYmdDtm = prgYmdDtm;
		}
// ANK-3136-00-00 ADD END

// ++++++++++++++++++++ v7.00.02 削除開始 +++++++++++++++++
//		// 異動年月日時分秒取得
//		String idoDtm = JKKBatCommon.getIdoDtmMax(commonItem, svc_kei_no, kojiUkOptyIdoDiv, stmt);
// ++++++++++++++++++++ v7.00.02 削除終了 +++++++++++++++++
		
// ++++++++++++++++++++ v7.00.03 削除開始 ++++++++++++++++++++++
//		// 特記事項1
//		String tkjk1 = getPrgTkjk(svc_kei_no, kojiUkOptyIdoDiv, prgStat);
//		
//		super.logPrint.printDebugLog("特記事項1--->" + tkjk1 + "<---");
// ++++++++++++++++++++ v7.00.03 削除終了 ++++++++++++++++++++++
		
		// 特記事項2編集処理
		String tkjk2 = editPrgTkjk2(recDiv, data);
		
// ++++++++++++++++++++ v7.00.02 追加開始 +++++++++++++++++
		// 進捗登録ファイル出力処理
// ANK-3136-00-00 MOD START
//		prgOutData.add(new String[]{svc_kei_no, kojiakNo, kojiUkOptyIdoDiv, prgStat, super.opeDate + sysrtem_date.substring(8), tkjk2});
		prgOutData.add(new String[]{svc_kei_no, kojiakNo, kojiUkOptyIdoDiv, prgStat, prgYmdDtm, tkjk2});
// ANK-3136-00-00 MOD END
// ++++++++++++++++++++ v7.00.02 追加終了 +++++++++++++++++
		
// ++++++++++++++++++++ v7.00.02 削除開始 +++++++++++++++++
//		// 登録用データ格納
//		Object[] param_add = new Object[33];
//		
//		// 進捗番号							 ⇒ 採番部品
//		param_add[0] = JBSbatStringUtil.padNumFormString(JBSbatOracleSeqUtil.getNextSeq(commonItem.getConnection(), KEY_SEQ_PRG_NO), 12);
//		// 申込明細番号						 ⇒ 空白
//		param_add[1] = SPACE;
//		// 請求契約番号						 ⇒ 空白
//		param_add[2] = SPACE;
//		// 請求方法番号(口座)				 ⇒ 空白
//		param_add[3] = SPACE;
//		// 請求方法番号(クレジットカード)	 ⇒ 空白
//		param_add[4] = SPACE;
//		// サービス契約番号					 ⇒ 更新対象の請求契約番号に紐づくサービス契約番号
//		param_add[5] = svc_kei_no;
//		// サービス契約内訳番号				 ⇒ 空白
//		param_add[6] = SPACE;
//		// サービス契約回線内訳番号			 ⇒ 空白
//		param_add[7] = SPACE;
//		// 機器提供サービス契約番号			 ⇒ 空白
//		param_add[8] = SPACE;
//		// オプションサービス契約番号		 ⇒ 空白
//		param_add[9] = SPACE;
//		// 請求オプションサービス契約番号	 ⇒ 空白
//		param_add[10] = SPACE;
//		// サブオプションサービス契約番号	 ⇒ 空白
//		param_add[11] = SPACE;
//		// 割引サービス契約番号				 ⇒ 空白
//		param_add[12] = SPACE;
//		// 異動区分
//		param_add[13] = kojiUkOptyIdoDiv;
//		
//		// 異動年月日時分秒					 ⇒ 進捗.異動年月日時分秒または、システム日時
//		param_add[14] = idoDtm;
//		
//		// 進捗ステータス					 ⇒ レコード区分により設定された値
//		param_add[15] = prgStat;
//		
//		// 進捗年月日時分秒 → バッチ運用日 + システム日時のhhmmssSSSを設定。
//		param_add[16] = super.opeDate + sysrtem_date.substring(8);
//		
//		// 進捗メモ							 ⇒ 空白
//		param_add[17] = SPACE;
//		
//		// 進捗.特記事項１				     ⇒ 進捗.特記事項2
//		param_add[18] = tkjk1;
//		
//		// 進捗.特記事項２				     ⇒ 編集した値
//		param_add[19] = tkjk2;
//		
//		// 登録年月日時分秒
//		param_add[20] = sysrtem_date;
//		// 登録オペレータアカウント
//		param_add[21] = super.batchUserId;
//		// 更新年月日時分秒
//		param_add[22] = sysrtem_date;
//		// 更新オペレータアカウント
//		param_add[23] = super.batchUserId;
//		// 削除年月日時分秒
//		param_add[24] = SPACE;
//		// 削除オペレータアカウント
//		param_add[25] = SPACE;
//		// 無効フラグ
//		param_add[26] = SPACE;
//		// 登録運用年月日
//		param_add[27] = super.opeDate;
//		// 登録処理ＩＤ
//		param_add[28] = SPACE;
//		// 更新運用年月日
//		param_add[29] = super.opeDate;
//		// 更新処理ＩＤ
//		param_add[30] = SPACE;
//		// 削除運用年月日
//		param_add[31] = SPACE;
//		// 削除処理ＩＤ
//		param_add[32] = SPACE;
//		
//		// 進捗データを登録します。
//		executeKK_T_PRG_PKINSERT(param_add);
// ++++++++++++++++++++ v7.00.02 削除終了 +++++++++++++++++
	}
	
// ++++++++++++++++++++ v7.00.03 削除開始 ++++++++++++++++++++++
//	/**
//	 * PK(全項目登録)でDBアクセスを行います。<br>
//	 * <p>
//	 * <b>処理フロー</b><br>
//	 * <pre>
//	 * 1.引数で設定項目マップを作ります。<br>
//	 *
//	 * 2.DBアクセスを実行します。<br>
//	 * 
//	 * 3.メソッドの呼び出し方です。<br>
//	 *		引数:
//	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
//	 *		 	進捗番号				PRG_NO
//	 *		 	申込明細番号				MSKM_DTL_NO
//	 *		 	請求契約番号				SEIKY_KEI_NO
//	 *		 	請求方法番号（口座）				SEIKY_WAY_NO_KOZA
//	 *		 	請求方法番号（クレジットカード）				SEIKY_WAY_NO_CRECARD
//	 *		 	サービス契約番号				SVC_KEI_NO
//	 *		 	サービス契約内訳番号				SVC_KEI_UCWK_NO
//	 *		 	サービス契約回線内訳番号				SVC_KEI_KAISEN_UCWK_NO
//	 *		 	機器提供サービス契約番号				KKTK_SVC_KEI_NO
//	 *		 	オプションサービス契約番号				OP_SVC_KEI_NO
//	 *		 	請求オプションサービス契約番号				SEIOPSVC_KEI_NO
//	 *		 	サブオプションサービス契約番号				SBOP_SVC_KEI_NO
//	 *		 	割引サービス契約番号				WRIB_SVC_KEI_NO
//	 *		 	異動区分				IDO_DIV
//	 *		 	異動年月日時分秒				IDO_DTM
//	 *		 	進捗ステータス				PRG_STAT
//	 *		 	進捗年月日時分秒				PRG_DTM
//	 *		 	進捗メモ				PRG_MEMO
//	 *		 	進捗特記事項１				PRG_TKJK_1
//	 *		 	進捗特記事項２				PRG_TKJK_2
//	 *		 	登録年月日時分秒				ADD_DTM
//	 *		 	登録オペレータアカウント				ADD_OPEACNT
//	 *		 	更新年月日時分秒				UPD_DTM
//	 *		 	更新オペレータアカウント				UPD_OPEACNT
//	 *		 	削除年月日時分秒				DEL_DTM
//	 *		 	削除オペレータアカウント				DEL_OPEACNT
//	 *		 	無効フラグ				MK_FLG
//	 *		 	登録運用年月日				ADD_UNYO_YMD
//	 *		 	登録処理ＩＤ				ADD_TRN_ID
//	 *		 	更新運用年月日				UPD_UNYO_YMD
//	 *		 	更新処理ＩＤ				UPD_TRN_ID
//	 *		 	削除運用年月日				DEL_UNYO_YMD
//	 *		 	削除処理ＩＤ				DEL_TRN_ID
//	 * </pre>
//	 * <p>
//	 * @param setParam 設定項目の値。
//	 * @throws Exception 業務サービス内で発生した例外全般。
//	 */
//	private void executeKK_T_PRG_PKINSERT(Object[] setParam) throws Exception
//	{
//		// 設定値のマップを作成します
//		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
//		setMap.setValue("PRG_NO", setParam[0]);
//		setMap.setValue("MSKM_DTL_NO", setParam[1]);
//		setMap.setValue("SEIKY_KEI_NO", setParam[2]);
//		setMap.setValue("SEIKY_WAY_NO_KOZA", setParam[3]);
//		setMap.setValue("SEIKY_WAY_NO_CRECARD", setParam[4]);
//		setMap.setValue("SVC_KEI_NO", setParam[5]);
//		setMap.setValue("SVC_KEI_UCWK_NO", setParam[6]);
//		setMap.setValue("SVC_KEI_KAISEN_UCWK_NO", setParam[7]);
//		setMap.setValue("KKTK_SVC_KEI_NO", setParam[8]);
//		setMap.setValue("OP_SVC_KEI_NO", setParam[9]);
//		setMap.setValue("SEIOPSVC_KEI_NO", setParam[10]);
//		setMap.setValue("SBOP_SVC_KEI_NO", setParam[11]);
//		setMap.setValue("WRIB_SVC_KEI_NO", setParam[12]);
//		setMap.setValue("IDO_DIV", setParam[13]);
//		setMap.setValue("IDO_DTM", setParam[14]);
//		setMap.setValue("PRG_STAT", setParam[15]);
//		setMap.setValue("PRG_DTM", setParam[16]);
//		setMap.setValue("PRG_MEMO", setParam[17]);
//		setMap.setValue("PRG_TKJK_1", setParam[18]);
//		setMap.setValue("PRG_TKJK_2", setParam[19]);
//		setMap.setValue("ADD_DTM", setParam[20]);
//		setMap.setValue("ADD_OPEACNT", setParam[21]);
//		setMap.setValue("UPD_DTM", setParam[22]);
//		setMap.setValue("UPD_OPEACNT", setParam[23]);
//		setMap.setValue("DEL_DTM", setParam[24]);
//		setMap.setValue("DEL_OPEACNT", setParam[25]);
//		setMap.setValue("MK_FLG", setParam[26]);
//		setMap.setValue("ADD_UNYO_YMD", setParam[27]);
//		setMap.setValue("ADD_TRN_ID", setParam[28]);
//		setMap.setValue("UPD_UNYO_YMD", setParam[29]);
//		setMap.setValue("UPD_TRN_ID", setParam[30]);
//		setMap.setValue("DEL_UNYO_YMD", setParam[31]);
//		setMap.setValue("DEL_TRN_ID", setParam[32]);
//	
//		// DBアクセスを実行します
//		db_KK_T_PRG.insertByPrimaryKeys(setMap);
//	}
// ++++++++++++++++++++ v7.00.03 削除終了 ++++++++++++++++++++++
	
// ++++++++++++++++++++ v7.00.02 削除開始 +++++++++++++++++
//	/**
//	 * SQLKEY(KK_SELECT_060)でDBアクセスを行います。<br>
//	 * <p>
//	 * <b>処理フロー</b><br>
//	 * <pre>
//	 * 1.引数でバイント変数を設定します。<br>
//	 *
//	 * 2.DBアクセスを実行します。<br>
//	 * 
//	 * 3.メソッドの呼び出し方です。<br>
//	 *		引数:
//	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
//	 *		 	SVC_KEI_NO
//	 * </pre>
//	 * <p>
//	 * @param param バイント変数の値配列。
//	 * @throws Exception 業務サービス内で発生した例外全般。
//	 */
//	private void executeKK_T_SVC_KEI_KK_SELECT_090(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_090);
//	}
// ++++++++++++++++++++ v7.00.02 削除終了 +++++++++++++++++
	
	/**
	 * 工事遅延契約補正情報存在チェック。<br>
	 * <p>
	 * @param svcKeiNo サービス契約番号
	 * @param data 工事遅延補正年月日
	 * @return true:存在なし 、false：存在あり
	 * @throws Exception 
	 */	
	private boolean isKojiDlyKeiHosei(String svcKeiNo, String kojiDlyHoseiYmd) throws Exception
	{
		super.logPrint.printDebugLog("isKojiDlyKeiHosei_START");
		
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		
		// サービス契約番号の設定
		whereMap.setValue(JBSbatKK_T_KOJI_DLY_KEHSI.SVC_KEI_NO, svcKeiNo);
		// 工事遅延補正年月日の設定
		whereMap.setValue(JBSbatKK_T_KOJI_DLY_KEHSI.KOJI_DLY_HOSEI_YMD, kojiDlyHoseiYmd);
		
		JBSbatCommonDBInterface resultMap = db_KK_T_KOJI_DLY_KEHSI.selectByPrimaryKeys(whereMap);
		
		if (null != resultMap)
		{
			return false;
		}
		
		super.logPrint.printDebugLog("isKojiDlyKeiHosei_END");
		
		return true;
	}
	
	/**
	 * 受入可否「0：受入可」、「1：翌日受入」の判定をします。
	 * <BR>
	 * @param svcKeiStat サービス契約ステータス。
	 * @param svcKeiNo サービス契約番号。
	 * @return boolean true：受入可 false：翌日受入。
	 * @throws Exception
	 */
	private boolean isUkeirePsb(String svcKeiStat, String svcKeiNo) throws Exception
	{
		super.logPrint.printDebugLog("サービス契約番号      ：" + svcKeiNo);
		super.logPrint.printDebugLog("サービス契約ステータス：" + svcKeiStat);
		
		// サービス契約ステータス判定による工事関連情報受信ファイル切り分けを実施します。
		// サービス契約ステータスが「010：受付済」、「020：照査済」、「030：締結済」の場合
		if (SVC_KEI_STAT_UKZM.equals(svcKeiStat) 
				|| SVC_KEI_STAT_SHOSAZM.equals(svcKeiStat)
				|| SVC_KEI_STAT_CNCZM.equals(svcKeiStat))
		{
			// 督促情報を取得します。
			JBSbatCommonDBInterface out_map = this.getTokusokuNo(svcKeiNo);
			
			// 検索結果を判断します。
			if (null != out_map)
			{
				super.logPrint.printDebugLog("督促情報検索結果あり。翌日取込");
				
				// 検索結果ありの場合、「翌日受入」として「false」を返却します。
				return false;
			}
			else
			{
				super.logPrint.printDebugLog("督促情報検索結果なしによる受入可");
			}
		}
		else
		{
			super.logPrint.printDebugLog("サービス契約ステータスによる受入可");
		}
		
		// サービス契約ステータスが「100：サービス提供中」、「210：休止・中断中」、「220：停止中」、
		//   「910：解約済」、「920：キャンセル済」の場合と、それ以外のステータスで督促情報検索結果なしの場合、
		//   「受入可」として「true」を返却します。
		return true;
	}
	
	/**
	 * 課金先、督促TBLを検索し、督促番号を取得します。
	 * <br>
	 * @param svcKeiNo サービス契約番号。
	 * @return JBSbatCommonDBInterface 入出力インターフェースオブジェクト。
	 * @throws Exception 
	 */
	private JBSbatCommonDBInterface getTokusokuNo(String svcKeiNo) throws Exception
	{
		// 課金先、督促TBLを検索して督促番号を取得します。
		// 督促情報検索条件項目を設定します。
		Object[] paramList = new Object[3];
		
		paramList[0] = svcKeiNo;			// サービス契約番号
		paramList[1] = super.opeDate;		// 課金先適用開始年月日
		paramList[2] = super.opeDate;		// 督促管理適用開始年月日
		
		super.logPrint.printDebugLog("paramList[0]：" + paramList[0]);
		super.logPrint.printDebugLog("paramList[1]：" + paramList[1]);
		super.logPrint.printDebugLog("paramList[2]：" + paramList[2]);
		
		// 督促情報検索処理を実行します。
		executeKK_T_KAKINS_KK_SELECT_022(paramList);
		
		// 検索結果を取得します。
		JBSbatCommonDBInterface outDbMap = db_KK_T_KAKINS.selectNext();
		
		return outDbMap;
	}
	
	/**
	 * 工事取消情報１レコードを再設定します。<br>
	 * <p>
	 * @param data 工事取消情報１レコード配列。
	 * @param ido_div 異動区分。
	 * @return String 工事取消情報ファイル１レコード文字列。
	 * @throws Exception 
	 */	
	private String setKojiClInfRec(String[] data, String ido_div) throws Exception
	{
		super.logPrint.printDebugLog("setKojiClInfRec_START");
		
		StringBuilder koji_cl_inf = new StringBuilder();	// 工事取消情報文字列保持用
		
		// 工事取消情報１レコードに、取得した「進捗年月日時分秒」と「異動区分」をセットします。
		// サービス契約番号
		koji_cl_inf.append(data[0]);
		koji_cl_inf.append(CONMA);
		// サービス契約回線内訳番号
		koji_cl_inf.append(data[1]);
		koji_cl_inf.append(CONMA);
		// 連携年月日
		koji_cl_inf.append(data[2]);
		koji_cl_inf.append(CONMA);
		// 通番
		koji_cl_inf.append(data[3]);
		koji_cl_inf.append(CONMA);
		// 新規変更区分
		koji_cl_inf.append(data[4]);
		koji_cl_inf.append(CONMA);
		// 工事案件種別
		koji_cl_inf.append(data[5]);
		koji_cl_inf.append(CONMA);
		// 工事案件番号
		koji_cl_inf.append(data[6]);
		koji_cl_inf.append(CONMA);
		// 工事案件取消結果コード
		koji_cl_inf.append(data[7]);
		koji_cl_inf.append(CONMA);
		// 工事中止通知年月日
		koji_cl_inf.append(data[8]);
		koji_cl_inf.append(CONMA);
		// 工事案件キャンセル料有無
		koji_cl_inf.append(data[9]);
		koji_cl_inf.append(CONMA);
		// 工事案件キャンセル登録年月日
		koji_cl_inf.append(data[10]);
		koji_cl_inf.append(CONMA);
		// 工事保留フラグ
		koji_cl_inf.append(data[11]);
		koji_cl_inf.append(CONMA);
		// 工事案件中止理由コード1
		koji_cl_inf.append(data[12]);
		koji_cl_inf.append(CONMA);
		// 工事案件中止理由コード2
		koji_cl_inf.append(data[13]);
		koji_cl_inf.append(CONMA);
		// 進捗年月日時分秒
		koji_cl_inf.append(data[14]);
		koji_cl_inf.append(CONMA);
		// 異動区分
		koji_cl_inf.append(ido_div);
		koji_cl_inf.append(CONMA);
		// レコード区分
		koji_cl_inf.append(data[16]);
		
		super.logPrint.printDebugLog("工事取消情報文字列（編集後）：" + koji_cl_inf.toString());
		super.logPrint.printDebugLog("setKojiClInfRec_END");
		
		return koji_cl_inf.toString();
	}
	
	/**
	 * 工事案件番号より、工事案件.工事受付契機移動区分を取得します。<br>
	 * <p>
	 * @param kojiakNo 工事案件番号
	 * @return String
	 * @throws Exception 
	 */	
	private String getKojiUkOptyIdoDiv(String kojiakNo) throws Exception
	{
		String result = "";
		
		JBSbatCommonDBInterface dbMap = executeKU_T_KOJIAK_PKSELECT(new Object[]{kojiakNo});
		
		if(null != dbMap)
		{
			// 工事受付契機異動区分
			result = JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKU_T_KOJIAK.KOJI_UK_OPTNTY_IDO_DIV));
		}
		
		return result;
	}
	
// ++++++++++++++++++++ v7.00.03 削除開始 ++++++++++++++++++++++
//	/**
//	 * 同一サービス契約番号、異動区分、且つ同一進捗ステータスのレコードが存在する場合、<br>
//	 * 「登録年月日時分秒」が直近のレコードより「進捗.特記事項2」の情報を設定する。<br>
//	 * 存在しない場合は、空白を設定する。<br>
//	 * <p>
//	 * @param svc_kei_no サービス契約番号
//	 * @param kojiUkOptyIdoDiv 異動区分
//	 * @param prgStat 進捗ステータス
//	 * @return String
//	 * @throws Exception 
//	 */	
//	private String getPrgTkjk(String svc_kei_no, String kojiUkOptyIdoDiv,String prgStat) throws Exception
//	{
//		String result = "";
//		
//		executeKK_T_PRG_KK_SELECT_029(new Object[]{svc_kei_no, kojiUkOptyIdoDiv, prgStat});
//		
//		JBSbatCommonDBInterface dbMap = db_KK_T_PRG.selectNext();
//		
//		if(null != dbMap)
//		{
//			// 特記事項2
//			result = JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_PRG.PRG_TKJK_2));
//		}
//		
//		return result;
//	}
// ++++++++++++++++++++ v7.00.03 削除終了 ++++++++++++++++++++++
	
	/**
	 * レコード区分により特記事項2を編集します。<br>
	 * <p>
	 * @param recDiv レコード区分
	 * @param data 各出力ファイル情報
	 * @return String
	 * @throws Exception 
	 */	
	private String editPrgTkjk2(String recDiv, String[] data) throws Exception
	{
		// 編集後文字列
		StringBuilder sb = new StringBuilder();
		
		// 工事案件種別コードの取得
		String kojiak_sbt_cd = data[5];
		
		String kojiak_sbt_nm = "";
		
		if(kojiak_sbt_cd != null && !"".equals(kojiak_sbt_cd))
		{
			// コード名称管理より、工事案件種別名称の取得
			kojiak_sbt_nm = getCodeName(KEY_CD_SBT_CD_KOJIAK_SBT_CD, kojiak_sbt_cd);
		}
		
		// 工事案件種別名称の設定
		sb.append("[" + kojiak_sbt_nm + "]");
		
		// 設計結果情報ファイル(レコード区分="20")
		if(REC_DOV_20.equals(recDiv))
		{
			// 設計結果コードの取得
			String dsgn_result_cd = data[7];
			
			// 設計結果
			String dsgnResult = "";
			
			// 設計結果の設定
			if (DSGN_EQUIP_CD_KIJUNNAI.equals(dsgn_result_cd))
			{
				// 設計結果コード="1" "基準内"設定
				dsgnResult = "基準内";
			}
			else
			{
				// 設計結果コード="2" "基準外"設定
				dsgnResult = "基準外";
			}
			
			// 特記事項2編集
			// ex: 連携日：2012/07/21　設計結果：基準内　見積設計報告日：2012/07/11
			sb.append("連携日：");
			// 連携年月日 スラッシュ編集
			sb.append(JPCUtilCommon.formatDate(data[2]));
			
			sb.append(SPACE_ZENKAKU);
			sb.append("設計結果：");
			sb.append(dsgnResult);
			
			sb.append(SPACE_ZENKAKU);
			sb.append("見積設計報告日：");
			// 設計結果見積設計報告年月日 スラッシュ編集
			sb.append(JPCUtilCommon.formatDate(data[8]));
			
		}
		// 宅内工事情報ファイル(レコード区分="B0")
		else if(REC_DOV_B0.equals(recDiv))
		{
			// 工事都合同時番ポ可否
			String bmpKh = data[9];
			
			String strBmpKh = "";
			
			
			if(STR_ZERO.equals(bmpKh))
			{
				strBmpKh = "否";
			}
			else
			{
				strBmpKh = "可";
			}
			
			// 番ポ同時工事実施フラグ
			String jssiFlg = data[10];
			
			String strJssiFlg = "";
			
			if(STR_ZERO.equals(jssiFlg))
			{
				strJssiFlg = "無";
			}
			else
			{
				strJssiFlg = "有";
			}
			
			// 同時番ポ希望有無
			String kiboUm = data[11];
			
			String strkiboUm = "";
			
			if(STR_ZERO.equals(kiboUm))
			{
				strkiboUm = "無";
			}
			else
			{
				strkiboUm = "有";
			}
			
			// 特記事項2編集
			// ex: 連携日：2012/07/21　宅内工事予定日：2012/07/21　作業開始時間：14:00　
			//     同時番ポ可否：可　番ポ同時工事実施フラグ：有　同時番ポ希望：無
			sb.append("連携日：");
			// 連携年月日 スラッシュ編集
			sb.append(JPCUtilCommon.formatDate(data[2]));
			
			sb.append(SPACE_ZENKAKU);
			sb.append("宅内工事予定日：");
			// 宅内工事完了予定年月日 スラッシュ編集
			sb.append(JPCUtilCommon.formatDate(data[7]));
			
			sb.append(SPACE_ZENKAKU);
			sb.append("作業開始時間：");
			// 宅内工事作業開始時間 時刻書式編集
			sb.append(JPCFomatString.formatTime(data[8]));
			
			sb.append(SPACE_ZENKAKU);
			sb.append("同時番ポ可否：");
			sb.append(strBmpKh);
			
			sb.append(SPACE_ZENKAKU);
			sb.append("番ポ同時工事実施フラグ：");
			sb.append(strJssiFlg);
			
			sb.append(SPACE_ZENKAKU);
			sb.append("同時番ポ希望：");
			sb.append(strkiboUm);
			
		}
		// 工事完了情報ファイル(レコード区分="40")
		else if(REC_DOV_40.equals(recDiv))
		{
			// OPMS工事案件結果コードの取得
			String opms_result_cd = data[7];
			
			// 工事結果
			String kojiResult = "";
			
			// 工事結果の設定
			if(OPMSKJAK_RSLT_CD_OK.equals(opms_result_cd))
			{
				// PMS工事案件結果コード="1" "ＯＫ"設定
				kojiResult = "ＯＫ";
			}
			else
			{
				// PMS工事案件結果コード="2" "ＮＧ"設定
				kojiResult = "ＮＧ";
			}
			
			// 特記事項2編集
			// ex: 連携日：2012/07/21　工事結果：ＯＫ　工事完了日：2012/07/11
			sb.append("連携日：");
			// 連携年月日 スラッシュ編集
			sb.append(JPCUtilCommon.formatDate(data[2]));
			
			sb.append(SPACE_ZENKAKU);
			sb.append("工事結果：");
			sb.append(kojiResult);
			
			sb.append(SPACE_ZENKAKU);
			sb.append("工事完了日：");
			sb.append(JPCUtilCommon.formatDate(data[8]));
		}
		// 工事取消情報ファイル(レコード区分="90")
		else if(REC_DOV_90.equals(recDiv))
		{
			// 工事案件中止理由コード1より工事案件中止理由コードの名称取得
			String rsnName = getCodeName(KEY_CD_SBT_CD_RSN, data[12]);
			
			// 工事案件中止理由コード2より工事案件中止理由詳細コードの名称取得
			String rsnDtailName = getCodeName(KEY_CD_SBT_CD_RSN_DTAIL, data[13]);
			
			// 特記事項2編集
			// ex: 連携日：2012/07/21　キャンセル受付日：2012/06/26　キャンセル登録日：2012/07/09　
			//     取消理由コード(大分類)：お客様都合　取消理由コード(中分類)：集合住宅などの家主・管理人不承諾
			sb.append("連携日：");
			// 連携年月日 スラッシュ編集
			sb.append(JPCUtilCommon.formatDate(data[2]));
			
			sb.append(SPACE_ZENKAKU);
			sb.append("キャンセル受付日：");
			// 工事案件中止受付年月日 スラッシュ編集
			sb.append(JPCUtilCommon.formatDate(data[8]));
			
			sb.append(SPACE_ZENKAKU);
			sb.append("キャンセル登録日：");
			// 工事案件中止登録年月日 スラッシュ編集
			sb.append(JPCUtilCommon.formatDate(data[10]));
			
			sb.append(SPACE_ZENKAKU);
			sb.append("取消理由コード(大分類)：");
			sb.append(rsnName);
			
			sb.append(SPACE_ZENKAKU);
			sb.append("取消理由コード(中分類)：");
			sb.append(rsnDtailName);
			
		}
		// ++++++++++++++++++++ v9.00.00 追加開始 +++++++++++++++++
		// 工事予定情報ファイル(レコード区分="60"、または"61")
		else if(REC_DOV_60.equals(recDiv)
				|| REC_DOV_61.equals(recDiv))
		{
			// 特記事項2編集
			// ex: 連携日：2012/07/21　工事予定日：2012/07/21
			sb.append("連携日：");
			// 連携年月日 スラッシュ編集
			sb.append(JPCUtilCommon.formatDate(data[2]));
			
			sb.append(SPACE_ZENKAKU);
			sb.append("工事予定日：");
			// 工事予定年月日 スラッシュ編集
			sb.append(JPCUtilCommon.formatDate(data[8]));
		}
// ANK-3136-00-00 ADD START
		// 工事仮キャンセル受付情報ファイル(レコード区分="E0")
		else if(REC_DOV_E0.equals(recDiv))
		{
			// 工事案件中止理由コード1より工事案件中止理由コードの名称取得
			String rsnName = getCodeName(KEY_CD_SBT_CD_RSN, data[8]);
			
			// 工事案件中止理由コード2より工事案件中止理由詳細コードの名称取得
			String rsnDtailName = getCodeName(KEY_CD_SBT_CD_RSN_DTAIL, data[9]);
			
			// 特記事項2編集
			sb.append("連携日：");
			// 連携年月日 スラッシュ編集
			sb.append(JPCUtilCommon.formatDate(data[2]));
			
			sb.append(SPACE_ZENKAKU);
			sb.append("仮キャンセル受付日：");
			// 工事案件仮キャンセル受付年月日 スラッシュ編集
			sb.append(JPCUtilCommon.formatDate(data[7]));
			
			sb.append(SPACE_ZENKAKU);
			sb.append("取消理由コード(大分類)：");
			sb.append(rsnName);
			
			sb.append(SPACE_ZENKAKU);
			sb.append("取消理由コード(中分類)：");
			sb.append(rsnDtailName);
		}
		// 工事仮キャンセル取消情報ファイル(レコード区分="F0")
		else if(REC_DOV_F0.equals(recDiv))
		{
			// 特記事項2編集
			sb.append("連携日：");
			// 連携年月日 スラッシュ編集
			sb.append(JPCUtilCommon.formatDate(data[2]));
			
			sb.append(SPACE_ZENKAKU);
			sb.append("仮キャンセル取消日：");
			// 工事案件仮キャンセル取消年月日 スラッシュ編集
			sb.append(JPCUtilCommon.formatDate(data[7]));
		}
// ANK-3136-00-00 ADD END

		// ++++++++++++++++++++ v9.00.00 追加終了 +++++++++++++++++
		
		return sb.toString();
	}
	
	/**
	 * コード名称管理よりコード区分名称を取得します。<br>
	 * <p>
	 * @param keyCdSbtCdRsn コード種別コード
	 * @param cdKbn コード区分
	 * @return コード区分名
	 * @throws Exception 
	 */	
	private String getCodeName(String keyCdSbtCdRsn, String cdKbn) throws Exception
	{
		String result = "";
		
		JBSbatCommonDBInterface dbMap = executeZM_M_CD_NM_KANRI_PKSELECT(new Object[]{keyCdSbtCdRsn, cdKbn});
		
		if(null != dbMap)
		{
			// コード区分名
			result = dbMap.getString(JBSbatZM_M_CD_NM_KANRI.CD_DIV_NM);
			
		}
		
		return result;
	}
	
	/**
	 * 新設工事「OK」、「NG」の判定をします。
	 * <BR>
	 * @param svcKeiStat サービス契約ステータス。
	 * @param kojiakSbtCd 工事案件種別コード。
	 * * @param opmsKojiakRsltCd OPMS工事案件結果コード。
	 * @return boolean true：新設工事OK false：新設工事NG。
	 * @throws Exception
	 */
	private boolean isNewestaKoji(String svcKeiStat, String kojiakSbtCd, String opmsKojiakRsltCd) throws Exception
	{
		super.logPrint.printDebugLog("isNewestaKoji_START");
		super.logPrint.printDebugLog("サービス契約ステータス：" + svcKeiStat);
		super.logPrint.printDebugLog("工事案件種別コード    ：" + kojiakSbtCd);
		super.logPrint.printDebugLog("OPMS工事案件結果コード：" + opmsKojiakRsltCd);
		
		// サービス契約ステータスによる判定を行います。
		// サービス契約ステータスが「100：サービス提供中」の場合
		if (SVC_KEI_STAT_SVCTKCHU.equals(svcKeiStat))
		{
			super.logPrint.printDebugLog("サービス契約ステータス：サービス提供中");
			
			// 工事案件種別コードによる判定を行います。
			// 工事案件種別コードが「001：新設」または、「003：住所変更（新設）」の場合
			if (KOJIAK_SBT_CD_NEWESTA.equals(kojiakSbtCd) || KOJIAK_SBT_CD_ADCHG_NEWESTA.equals(kojiakSbtCd))
			{
				super.logPrint.printDebugLog("工事案件種別コード：新設または住所変更（新設）");
				
				// OPMS工事案件結果コードによる判定を行います。
				// OPMS工事案件結果コードが「2：NG」の場合
				if (!OPMSKJAK_RSLT_CD_OK.equals(opmsKojiakRsltCd))
				{
					super.logPrint.printDebugLog("OPMS工事案件結果コード：NG");
					super.logPrint.printDebugLog("★新設工事NG★");
					super.logPrint.printDebugLog("isNewestaKoji_END");
					
					// 「新設工事NG」として「false」を返却します。
					return false;
				}
				else
				{
					super.logPrint.printDebugLog("OPMS工事案件結果コード：OK");
				}
			}
			else
			{
				super.logPrint.printDebugLog("工事案件種別コード：新設または住所変更（新設）以外");
			}
		}
		else
		{
			super.logPrint.printDebugLog("サービス契約ステータス：サービス提供中以外");
		}
		
		super.logPrint.printDebugLog("★新設工事OK★");
		super.logPrint.printDebugLog("isNewestaKoji_END");
		
		return true;
	}

// ++++++++++++++++++++ v7.00.02 追加開始 +++++++++++++++++
	/**
	 * 中間ファイルを出力します。<br>
	 * <p>
	 * @param file_data 出力情報
	 * @param file_path ファイル名(フルパス)
	 * @param file_name ファイル名
	 * @throws JBSbatBusinessException 
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */	
	private void executeOutputFile(List<String[]> file_data, String file_path, String fileName) throws IOException, JBSbatBusinessException
	{
		// 一時ファイル読込み処理
		BufferedWriter wr = null;
		try
		{
			// パラメータで渡された中間ファイルを出力する。
			wr = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file_path), ENCODE));
			for (String[] file_rec : file_data)
			{
				StringBuilder strbuild = new StringBuilder();
				for (String str : file_rec)
				{
					if (strbuild.length() > 0)
					{
						strbuild.append(",");
					}
					strbuild.append("\"" + str + "\"");
				}
				// ファイル書き込み
				wr.write(strbuild.toString() + KAIGYOU_CODE);
			}
			wr.flush();
		}
		catch(IOException e)
		{
			throw new JBSbatBusinessException("EKKB0250CE", new String[]{fileName, MASSEAGE});
		}
		finally
		{
			if (null != wr)
			{
				wr.close();
			}
		}
		// 出力ファイル件数をログ出力
		super.logPrint.printBusinessErrorLog("EKKB0760AI", new String[]{fileName + "(" + file_path + ")", String.valueOf(file_data.size())});
	}
// ++++++++++++++++++++ v7.00.02 追加終了 +++++++++++++++++
// ++++++++++++++++++++ v7.00.03 追加開始 +++++++++++++++++
	/**
	 * 回復不可・キャンセル取消不可の場合においては、状態遷移が今後発生しないため、翌日取込の対象から除外する。
	 * 
	 * @param svcKeiStat
	 * @param kkSelect060map
	 * @param kk0781AllMap
	 * @return
	 * @throws Exception
	 */
	private boolean isYokujitsuUkeire(String svcKeiStat, JBSbatCommonDBInterface kkSelect060map) throws Exception
	{
		String kaihkFailKeiCstZmFlg = "";
		// 契約状態が「解約済」又は「キャンセル済」である場合
		if (SVC_KEI_STAT_DSL.equals(svcKeiStat) || SVC_KEI_STAT_CANCEL.equals(svcKeiStat))
		{
			kaihkFailKeiCstZmFlg = JBSbatStringUtil.Rtrim(kkSelect060map.getString(JBSbatKK_T_SVC_KEI.KAIHK_FAIL_KEI_CST_ZM_FLG));
		}
		// 上記ステータス以外は、状態遷移が発生するケースがあるため、翌日取込の対象とする。
		else
		{
			return true;
		}
		
		// 回復不可契約抽出済フラグ=1となっているデータは回復不可であるため、翌日受入の対象外とする。
		if ("1".equals(kaihkFailKeiCstZmFlg))
		{
			return false;
		}
		
		return true;
	}
// ++++++++++++++++++++ v7.00.03 追加終了 +++++++++++++++++

// ANK-3136-00-00 ADD START
	/**
	 * 設備流用工事案件チェック<br>
	 * <p>
	 * @param data 工事完了情報データ
	 * @return boolean true：チェックOK false：チェックNG
	 * @throws Exception 
	 */	
	private boolean checkEquipRyuyo(String[] data) throws Exception
	{
		super.logPrint.printDebugLog("checkEquipRyuyo_START");
		
		// ダミー宅内機器型式コード
		String dummyTaknkikiModelCd = "";
		
		// 宅内機器種別コード
		String taknkikiSbtCd = "";
		
		// ネット＋電話工事フラグ
		boolean netTelKojiFlg = false;
		
		// サービス契約番号の取得
		String svcKeiNo = data[0];
		
		// サービス契約回線内訳番号の取得
		String kaisenUcwkNo = data[1];
		
		// 工事案件番号の取得
		String kojiakNo = data[6];
		
		/**
		 * 工事案件情報取得（KU_T_KOJIAK_PKSELECT）
		 */
		JBSbatCommonDBInterface outMapKojiakPK = selectKjakPK(kojiakNo);
		
		// 工事案件情報検索結果なしの場合
		if (null == outMapKojiakPK)
		{
			/** 設備流用工事案件チェック終了 */
			return true;
		}
		
		// 設備流用有無の取得
		String equipRyuyoUm = JBSbatStringUtil.Rtrim(outMapKojiakPK.getString(JBSbatKU_T_KOJIAK.EQUIP_RYUYO_UM));
		
		// VONU流用有無の取得
		String vonuRyuyoUm = JBSbatStringUtil.Rtrim(outMapKojiakPK.getString(JBSbatKU_T_KOJIAK.VONU_RYUYO_UM));
		
		// 流用元工事案件番号の取得
		String ryuyoMotoKjakNo = JBSbatStringUtil.Rtrim(outMapKojiakPK.getString(JBSbatKU_T_KOJIAK.RYUYO_MOTO_KJAK_NO));
		
		// 設備流用有無が「1：有」の場合
		if (JKKStrConst.CD_DIV_UM_ARI.equals(equipRyuyoUm))
		{
			// VONU流用有無が未設定の場合（ネット、電話工事）
			if ((null == vonuRyuyoUm || "".equals(vonuRyuyoUm)))
			{
				// ダミーONU宅内機器型式コード
				dummyTaknkikiModelCd = dummyOnuModelCd;
				// 宅内機器種別コード（D0）
				taknkikiSbtCd = JKKStrConst.TAKNKIKI_SBT_CD_ONU;
				// ネット＋電話工事
				netTelKojiFlg = true;
			}
			// VONU流用有無が「1：有」の場合（テレビ工事）
			else if (JKKStrConst.CD_DIV_UM_ARI.equals(vonuRyuyoUm))
			{
				// ダミーVONU宅内機器型式コード
				dummyTaknkikiModelCd = dummyVOnuModelCd;
				// 宅内機器種別コード（E0）
				taknkikiSbtCd = JKKStrConst.TAKNKIKI_SBT_CD_VONU;
			}
			else
			{
				/** 設備流用工事案件チェック終了 */
				return true;
			}
		}
		else
		{
			/** 設備流用工事案件チェック終了 */
			return true;
		}
		
		/**
		 * ダミーONU／ダミーV-ONU有効機器（キャンセル済、解約済以外）取得（KK_T_KKTK_SVC_KEI_KK_SELECT_245）
		 */
		JBSbatCommonDBInterface outMapKktkSvcKei245 = selectKktkSvcKei245(kaisenUcwkNo, dummyTaknkikiModelCd);
		
		// 機器提供サービス契約検索結果なしの場合
		if (null == outMapKktkSvcKei245)
		{
			/** 設備流用工事案件チェック終了 */
			return true;
		}
		
		/**
		 * 設備流用元ONU／V-ONU機器情報取得（KK_T_KKTK_SVC_KEI_KK_SELECT_246）
		 */
		JBSbatCommonDBInterface outMapKktkSvcKei246 = selectKktkSvcKei246(taknkikiSbtCd, ryuyoMotoKjakNo);
		
		// 工事案件情報検索結果なしの場合
		if (null == outMapKktkSvcKei246)
		{
			/** 設備流用工事案件チェック終了 */
			return true;
		}
		
// ANK-4577-00-00 ADD START
		/**
		 * サービス契約情報取得（KK_T_SVC_KEI_KK_SELECT_383）
		 */
		JBSbatCommonDBInterface outMapSvcKei383 = selectSvcKei383(svcKeiNo);
		
		// サービス契約検索結果ありの場合
		if (null != outMapSvcKei383)
		{
			/** 設備流用工事案件チェック終了 */
			return true;
		}
// ANK-4577-00-00 END
		
// IT1-2018-0000124 DEL START
//		/**
//		 * 設備流用元サービス情報取得（KK_T_SVC_KEI_KK_SELECT_344）
//		 */
//		JBSbatCommonDBInterface outMapSvcKei344 = selectSvcKei344(ryuyoMotoKjakNo);
//		
//		// 設備流用元サービス情報検索結果なしの場合
//		if (null == outMapSvcKei344)
//		{
//			/** 設備流用工事案件チェック終了 */
//			return true;
//		}
//		
//		while(null != outMapSvcKei344)
//		{
//			// 流用元サービス契約番号取得
//			String ryuyoMotoSvcKeiNo = JBSbatStringUtil.Rtrim(outMapSvcKei344.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
//			
//			// 流用元サービス契約ステータス取得
//			String ryuyoMotoSvcKeiStat = JBSbatStringUtil.Rtrim(outMapSvcKei344.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT));
//			
//			// 流用元サービス契約ステータスが「910：解約済」または「920：キャンセル済」の場合
//			if (JKKStrConst.CD00056_STAT_DSLZUMI.equals(ryuyoMotoSvcKeiStat) || JKKStrConst.CD00056_STAT_CANCELZUMI.equals(ryuyoMotoSvcKeiStat))
//			{
//				/** 解約あり */
//				
//				// 次レコード取得
//				outMapSvcKei344 = db_KK_T_SVC_KEI_344.selectNext();
//				
//				continue;
//			}
//			else
//			{
//				/**
//				 * 設備流用元未来日解約情報取得（KK_T_IDO_RSV_KK_SELECT_098）
//				 */
//				JBSbatCommonDBInterface outMapIdoRsv098 = selectIdoRsv098(ryuyoMotoSvcKeiNo);
//				
//				// 検索結果がある場合
//				if (null != outMapIdoRsv098)
//				{
//					/** 解約あり */
//					
//					// 次レコード取得
//					outMapSvcKei344 = db_KK_T_SVC_KEI_344.selectNext();
//					
//					continue;
//				}
//			}
//			
//			/** 設備流用工事案件チェック終了 */
//			return false;
//		}
// IT1-2018-0000124 DEL END
		
		/** 設備流用元サービスが全て解約の場合 */
		
		// 工事完了機器流用対象情報出力フラグ
		boolean outputFlg = true;
		
		// ネット、電話工事の場合
		if (netTelKojiFlg)
		{
			// 工事完了機器流用対象情報出力チェック実施
			outputFlg = checkKojiFinKikiRyuyoInfOutPut(kojiakNo, svcKeiNo);
		}
		
		if (outputFlg)
		{
			// 工事完了機器流用対象情報出力済チェック
			if (kojiakNoTaihiSet.contains(kojiakNo))
			{
				/** 設備流用工事案件チェック終了 */
				return true;
			}
			
			/** 設備流用工事案件チェックOK */
			
			String ryuyoSakiKktkSvcKeiNo = JBSbatStringUtil.Rtrim(outMapKktkSvcKei245.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_NO));
			
			// 工事完了機器流用対象情報出力
			String kojiFinKikiRyuyoData = setKojiFinKikiRyuyoInfRec(data, ryuyoSakiKktkSvcKeiNo, ryuyoMotoKjakNo, outMapKktkSvcKei246);
			
			// 工事完了機器流用対象情報の項目転記
			setKojiFinKikiRyuyoInfData(kojiFinKikiRyuyoData, kojiFinKikiRyuyoInf);
			
			// 出力済工事案件番号退避
			kojiakNoTaihiSet.add(kojiakNo);
		}
		
		super.logPrint.printDebugLog("checkEquipRyuyo_END");
		
		return true;
	}
	
	/**
	 * 工事案件検索(KU_T_KOJIAK_PKSELECT_PKSELECT)
	 * <br>
	 * @param kojiakNo 工事案件番号
	 * @return JBSbatCommonDBInterface 入出力インターフェースオブジェクト
	 * @throws Exception メソッド内で発生した例外全般
	 */
	private JBSbatCommonDBInterface selectKjakPK(String kojiakNo) throws Exception
	{
		super.logPrint.printDebugLog("selectKjakPK_START");
		
		// 検索条件項目の設定
		Object[] paramList = new Object[1];
		
		// 工事案件番号
		paramList[0] = kojiakNo;
		
		JBSbatCommonDBInterface outMap = executeKU_T_KOJIAK_PKSELECT(paramList);
		
		super.logPrint.printDebugLog("selectKjakPK_END");
		
		return outMap;
	}
	
	/**
	 * 機器提供サービス契約検索(KK_T_KKTK_SVC_KEI_KK_SELECT_245)
	 * <br>
	 * @param kaisenUcwkNo サービス契約回線内訳番号
	 * @param dummyTaknkikiModelCd ダミー宅内機器型式コード
	 * @return JBSbatCommonDBInterface 入出力インターフェースオブジェクト
	 * @throws Exception メソッド内で発生した例外全般
	 */
	private JBSbatCommonDBInterface selectKktkSvcKei245(String kaisenUcwkNo, String dummyTaknkikiModelCd) throws Exception
	{
		super.logPrint.printDebugLog("selectKktkSvcKei245_START");
		
		// 検索条件項目の設定
		Object[] paramList = new Object[3];
		
		// サービス契約回線内訳番号
		paramList[0] = kaisenUcwkNo;
		// ダミー宅内機器型式コード
		paramList[1] = dummyTaknkikiModelCd;
		// 予約適用年月日
		paramList[2] = super.opeDate;
		
		executeKK_T_KKTK_SVC_KEI_KK_SELECT_245(paramList);
		
		// 検索結果取得
		JBSbatCommonDBInterface outMap = db_KK_T_KKTK_SVC_KEI_245.selectNext();
		
		super.logPrint.printDebugLog("selectKktkSvcKei245_END");
		
		return outMap;
	}
	
	/**
	 * 機器提供サービス契約検索(KK_T_KKTK_SVC_KEI_KK_SELECT_246)
	 * <br>
	 * @param taknkikiSbtCd 宅内機器種別コード
	 * @param ryuyoMotoKjakNo 流用元工事案件番号
	 * @return JBSbatCommonDBInterface 入出力インターフェースオブジェクト
	 * @throws Exception メソッド内で発生した例外全般
	 */
	private JBSbatCommonDBInterface selectKktkSvcKei246(String taknkikiSbtCd, String ryuyoMotoKjakNo) throws Exception
	{
		super.logPrint.printDebugLog("selectKktkSvcKei246_START");
		
		// 検索条件項目の設定
		Object[] paramList = new Object[3];
		
		// 宅内機器種別コード
		paramList[0] = taknkikiSbtCd;
		// 予約適用年月日
		paramList[1] = super.opeDate;
		// 流用元工事案件番号
		paramList[2] = ryuyoMotoKjakNo;
		
		executeKK_T_KKTK_SVC_KEI_KK_SELECT_246(paramList);
		
		// 検索結果取得
		JBSbatCommonDBInterface outMap = db_KK_T_KKTK_SVC_KEI_246.selectNext();
		
		super.logPrint.printDebugLog("selectKktkSvcKei246_END");
		
		return outMap;
	}

// ANK-4577-00-00 ADD START
	/**
	 * サービス契約検索(KK_T_SVC_KEI_KK_SELECT_383)
	 * <br>
	 * @param SvcKeiNo サービス契約番号
	 * @return JBSbatCommonDBInterface 入出力インターフェースオブジェクト
	 * @throws Exception メソッド内で発生した例外全般
	 */
	private JBSbatCommonDBInterface selectSvcKei383(String svcKeiNo) throws Exception
	{
		super.logPrint.printDebugLog("selectSvcKei383_START");
		
		// 検索条件項目の設定
		Object[] paramList = new Object[2];
		
		// サービス契約番号
		paramList[0] = svcKeiNo;
		// 予約適用年月日
		paramList[1] = super.opeDate;

		executeKK_T_SVC_KEI_KK_SELECT_383(paramList);
		
		// 検索結果取得
		JBSbatCommonDBInterface outMap = db_KK_T_SVC_KEI_383.selectNext();
		
		super.logPrint.printDebugLog("selectSvcKei383_END");
		
		return outMap;
	}
// ANK-4577-00-00 ADD END

// IT1-2018-0000124 DEL START
//	/**
//	 * サービス契約検索(KK_T_SVC_KEI_KK_SELECT_344)
//	 * <br>
//	 * @param ryuyoMotoKjakNo 流用元工事案件番号
//	 * @return JBSbatCommonDBInterface 入出力インターフェースオブジェクト
//	 * @throws Exception メソッド内で発生した例外全般
//	 */
//	private JBSbatCommonDBInterface selectSvcKei344(String ryuyoMotoKjakNo) throws Exception
//	{
//		super.logPrint.printDebugLog("selectSvcKei344_START");
//		
//		// 検索条件項目の設定
//		Object[] paramList = new Object[2];
//		
//		// 予約適用年月日
//		paramList[0] = super.opeDate;
//		// 流用元工事案件番号
//		paramList[1] = ryuyoMotoKjakNo; 
//		
//		executeKK_T_SVC_KEI_KK_SELECT_344(paramList);
//		
//		// 検索結果取得
//		JBSbatCommonDBInterface outMap = db_KK_T_SVC_KEI_344.selectNext();
//		
//		super.logPrint.printDebugLog("selectSvcKei344_END");
//		
//		return outMap;
//	}
// IT1-2018-0000124 DEL END
	
	/**
	 * サービス契約_工事案件検索(KU_T_SVKEI_KOJIAK_KK_SELECT_022)
	 * <br>
	 * @param kojiakNo 工事案件番号
	 * @return JBSbatCommonDBInterface 入出力インターフェースオブジェクト
	 * @throws Exception メソッド内で発生した例外全般
	 */
	private JBSbatCommonDBInterface selecSvcKeiKjak022(String kojiakNo) throws Exception
	{
		super.logPrint.printDebugLog("selecSvcKeiKjak022_START");
		
		// 検索条件項目の設定
		Object[] paramList = new Object[1];
		
		// 工事案件番号
		paramList[0] = kojiakNo;
		
		// サービス契約_工事案件検索処理実行
		executeKU_T_SVKEI_KOJIAK_KK_SELECT_022(paramList);
		
		// 検索結果取得
		JBSbatCommonDBInterface outMap = db_KU_T_SVKEI_KOJIAK.selectNext();
		
		super.logPrint.printDebugLog("selecSvcKeiKjak022_END");
		
		return outMap;
	}
	
// IT1-2018-0000124 DEL START
//	/**
//	 * 異動予約(KK_T_IDO_RSV_KK_SELECT_098)
//	 * <br>
//	 * @param ryuyoMotoSvcKeiNo 流用元サービス契約番号
//	 * @return JBSbatCommonDBInterface 入出力インターフェースオブジェクト
//	 * @throws Exception メソッド内で発生した例外全般
//	 */
//	private JBSbatCommonDBInterface selectIdoRsv098(String ryuyoMotoSvcKeiNo) throws Exception
//	{
//		super.logPrint.printDebugLog("selectIdoRsv098_START");
//		
//		// 検索条件項目の設定
//		Object[] paramList = new Object[2];
//		
//		// 流用元サービス契約番号
//		paramList[0] = ryuyoMotoSvcKeiNo; 
//		// 予約適用年月日
//		paramList[1] = super.opeDate;
//		
//		executeKK_T_IDO_RSV_KK_SELECT_098(paramList);
//		
//		// 検索結果取得
//		JBSbatCommonDBInterface outMap = db_KK_T_IDO_RSV.selectNext();
//		
//		super.logPrint.printDebugLog("selectIdoRsv098_END");
//		
//		return outMap;
//	}
// IT1-2018-0000124 DEL END
	
	/**
	 * 工事完了機器流用対象情報出力チェック（ネット＋電話工事の場合）<br>
	 * <p>
	 * @param kojiakNo 工事案件番号
	 * @param svcKeiNo サービス契約番号
	 * @return boolean true：出力対象 false：出力対象外
	 * @throws Exception
	 */	
	private boolean checkKojiFinKikiRyuyoInfOutPut(String kojiakNo, String svcKeiNo) throws Exception
	{
		super.logPrint.printDebugLog("checkNetTelKoji_START");
		
		boolean ouputCheck = true;
		
		/**
		 * サービス契約_工事案件取得（KU_T_SVKEI_KOJIAK_KK_SELECT_022）
		 */
		JBSbatCommonDBInterface outMapSvcKeiKjak022 = selecSvcKeiKjak022(kojiakNo);
		
		while(null != outMapSvcKeiKjak022)
		{
			// サービス契約番号取得
			String svcKeiNo2 = JBSbatStringUtil.Rtrim(outMapSvcKeiKjak022.getString(JBSbatKU_T_SVKEI_KOJIAK.SVC_KEI_NO));
			
			// サービスコード取得
			String svcCd = JBSbatStringUtil.Rtrim(outMapSvcKeiKjak022.getString(JBSbatKU_T_SVKEI_KOJIAK.SVC_CD));
			
			// 取得したサービスコードが「01：ネット」の場合
			if (JKKStrConst.CD00130_01.equals(svcCd))
			{
				// 工事完了情報データ.サービス契約番号と取得したサービス契約番号が一致する場合
				if (svcKeiNo.equals(svcKeiNo2))
				{
					/** 出力対象 */
					ouputCheck = true;
					break;
				}
				else
				{
					/** 出力対象外 */
					ouputCheck = false;
					break;
				}
			}
			// 取得したサービスコードが「01：ネット」以外（電話）の場合
			else
			{
				/** 出力対象 */
				ouputCheck = true;
			}
			
			// 次レコード取得
			outMapSvcKeiKjak022 = db_KU_T_SVKEI_KOJIAK.selectNext();
		}
		
		super.logPrint.printDebugLog("checkNetTelKoji_END");
		
		return ouputCheck;
	}
	
	/**
	 * 工事完了機器流用対象情報データを設定<br>
	 * <p>
	 * @param dataWork 工事完了機器流用対象情報データ
	 * @param kojiFinKikiRyuyoInf 文字列データ保持
	 * @throws Exception 
	 */	
	private void setKojiFinKikiRyuyoInfData(String dataWork, StringBuilder kojiFinKikiRyuyoInf) throws Exception
	{
		super.logPrint.printDebugLog("setKojiFinKikiRyuyoInfData_START");
		 
		// 項目転記
		kojiFinKikiRyuyoInf.append(dataWork);
		
		// 改行コード
		kojiFinKikiRyuyoInf.append(KAIGYOU_CODE);
		
		super.logPrint.printDebugLog("setKojiFinKikiRyuyoInfData_END");
	}
	
	/**
	 * 工事完了機器流用対象情報を設定<br>
	 * <p>
	 * @param data 工事完了機器流用対象情報
	 * @param ryuyoSakiKktkSvcKeiNo 流用先機器提供サービス契約番号
	 * @param ryuyoMotoKjakNo 流用元工事案件番号
	 * @param ryuyoMotoKikiInf 流用元機器情報
	 * @return String 工事完了機器流用対象情報文字列
	 * @throws Exception
	 */	
	private String setKojiFinKikiRyuyoInfRec(String[] data, String ryuyoSakiKktkSvcKeiNo, String ryuyoMotoKjakNo, JBSbatCommonDBInterface ryuyoMotoKikiInf) throws Exception
	{
		super.logPrint.printDebugLog("setKojiFinKikiRyuyoInf_START");
		
		// 工事完了機器流用対象情報文字列保持用
		StringBuilder kojiFinKikiRyuyoInf = new StringBuilder();
		
		// 流用元機器提供サービス契約番号
		String ryuyoMotokktkSvcKeiNo = JBSbatStringUtil.Rtrim(ryuyoMotoKikiInf.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_NO));
		
		// 流用元機器変更番号
		String ryuyoMotoKikiChgNo = JBSbatStringUtil.Rtrim(ryuyoMotoKikiInf.getString(JBSbatKK_T_KKTK_SVC_KEI.KIKI_CHG_NO));
		
		// 流用元宅内機器型式コード
		String ryuyoMotoTaknkikiModelCd = JBSbatStringUtil.Rtrim(ryuyoMotoKikiInf.getString(JBSbatKK_T_KKTK_SVC_KEI.TAKNKIKI_MODEL_CD));
		
		// 流用元機器製造番号
		String ryuyoMotoKikiSeizoNo = JBSbatStringUtil.Rtrim(ryuyoMotoKikiInf.getString(JBSbatKK_T_KKTK_SVC_KEI.KIKI_SEIZO_NO));
		
		// 工事完了機器流用対象情報１レコード設定
		// 流用先サービス契約番号
		kojiFinKikiRyuyoInf.append(data[0]);
		kojiFinKikiRyuyoInf.append(CONMA);
		// 流用先工事案件番号
		kojiFinKikiRyuyoInf.append(data[6]);
		kojiFinKikiRyuyoInf.append(CONMA);
		// 流用先機器提供サービス契約番号
		kojiFinKikiRyuyoInf.append(ryuyoSakiKktkSvcKeiNo);
		kojiFinKikiRyuyoInf.append(CONMA);
		// 流用元工事案件番号
		kojiFinKikiRyuyoInf.append(ryuyoMotoKjakNo);
		kojiFinKikiRyuyoInf.append(CONMA);
		// 流用元機器提供サービス契約番号
		kojiFinKikiRyuyoInf.append(ryuyoMotokktkSvcKeiNo);
		kojiFinKikiRyuyoInf.append(CONMA);
		// 流用元機器変更番号
		kojiFinKikiRyuyoInf.append(ryuyoMotoKikiChgNo);
		kojiFinKikiRyuyoInf.append(CONMA);
		// 流用元宅内機器型式コード
		kojiFinKikiRyuyoInf.append(ryuyoMotoTaknkikiModelCd);
		kojiFinKikiRyuyoInf.append(CONMA);
		// 流用元機器製造番号
		kojiFinKikiRyuyoInf.append(ryuyoMotoKikiSeizoNo);
		
		super.logPrint.printDebugLog("setKojiFinKikiRyuyoInf_END");
		
		return kojiFinKikiRyuyoInf.toString();
	}
// ANK-3136-00-00 ADD END
}
