/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKKojiKnrnInfRcvFileLoad
*	ソースファイル名	：JBSbatKKKojiKnrnInfRcvFileLoad.java
*	作成者				：富士通　
*	作成日				：2012年03月17日
*＜機能概要＞
*　工事関連情報受信ファイル読込部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v3.00.00	2012/03/31  FJ）倉上	【ANK-0377-00-00】【ANK-0378-00-00】【ANK-0487-00-00】案件対応。
*	v3.01.00	2012/05/29  FJ）倉上	【IT1-2012-0000587】障害対応。
*	v3.02.00	2012/07/20  FJ）岡田	【ST1-2012-0000109】障害対応。
*	v4.00.00	2012/07/27  FJ）岡田	【ANK-0406-00-00】案件対応。
*	v4.01.00	2012/08/01  FJ）岡田	【ANK-0035-00-00】案件対応。
*	v4.02.00	2012/11/26  FJ）岡田	【ANK-1201-00-00】案件対応。
*	v4.03.00	2013/03/19  FJ）岡田	【IT1-2013-0000498】横展開対応。
*	v5.00.00	2013/10/12  FJ）岡田	【OM-2013-0000932】【OM-2013-0002785】障害対応。
*	v7.00.00	2013/11/09  FJ）岡田	【ANK-1578-00-00】案件対応。
*	v31.00.00	2017/11/08  FJ）黒田	【ANK-3136-00-00】OPMSハードウエア保守切れ対応
*********************************************************************/
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 eo.business.common.JBSbatBusinessService;
import eo.business.common.JBSbatInterface;
import eo.business.common.JCCBatCommon;
import eo.common.constant.JPCBatchMessageConstant;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.util.JBSbatStringUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKKojiKnrIfFileLoad extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/** ファイルID(工場関連情報受信ファイル) */
	private static final String KOJI_KNRN_INF_RCV_FILE_ID = "KKIFI023001";
	
	/** ファイルID(宅内調査結果情報ファイル) */
	private static final String TAK_CHO_RSLT_INF__FILE_ID = "KKIFM052001";

	/** ファイルID(設計設備情報ファイル) */
	private static final String DSGN_EQUIP_INF_FILE_ID = "KKIFM059001";

	/** ファイルID(伝送設備情報ファイル) */
	private static final String DENSO_EQUIP_INF_FILE_ID = "KKIFM060001";

	/** ファイルID(工事完了情報ファイル) */
	private static final String KOJI_FIN_INF_FILE_ID = "KKIFM051001";

	/** ファイルID(工事予定情報(ネット)) */
	private static final String KOJI_RSV_INF_NET_FILE_ID = "KKIFM061001";

	/** ファイルID(工事予定情報(テレビ)) */
	private static final String KOJI_RSV_INF_TV_FILE_ID = "KKIFM062001";

	/** ファイルID(機器情報(ネット)) */
	private static final String KIKI_INF_NET_FILE_ID = "KKIFM063001";

	/** ファイルID(機器情報(テレビ)) */
	private static final String KIKI_INF_TV_FILE_ID = "KKIFM064001";

	/** ファイルID(工事取消情報) */
	private static final String KOJI_CL_INF_FILE_ID = "KKIFM065001";

	/** ファイルID(宅内工事情報ファイル) */
	private static final String TAKNI_KOJI_INF_FILE_ID = "KKIFM066001";

	/** ファイルID(工事費情報) */
	private static final String KOJIHI_INF_FILE_ID = "KKIFM067001";

	/** ファイルID(STB着工情報) */
	private static final String STB_CHAKUKO_INF_FILE_ID = "KKIFM166001";

// ANK-3136-00-00 ADD START
	/** ファイルID(工事仮キャンセル受付情報) */
	private static final String KR_CNCL_UK_FILE_ID = "KKIFM770001";

	/** ファイルID(工事仮キャンセル取消情報) */
	private static final String KR_CNCL_CL_FILE_ID = "KKIFM771001";
// ANK-3136-00-00 ADD END

	/** 修飾子 */
	private static final String FILE_KEISHIKI = ".csv";
	
	/** カンマ */
	private static final String CONMA = ",";
	
	/** レコード区分(宅内調査結果情報) */
	private static final String REC_DOV_10 = "10";
	
	/** レコード区分(設計設備情報) */
	private static final String REC_DOV_20 = "20";
	
	/** レコード区分(伝送設備情報) */
	private static final String REC_DOV_30 = "30";
	
	/** レコード区分(工事完了情報) */
	private static final String REC_DOV_40 = "40";
	
	/** レコード区分(工事予定情報(ネット)) */
	private static final String REC_DOV_60 = "60";
	
	/** レコード区分(工事予定情報(テレビ)) */
	private static final String REC_DOV_61 = "61";
	
	/** レコード区分(機器情報(ネット)) */
	private static final String REC_DOV_D0 = "D0";
	
	/** レコード区分(機器情報(テレビ)) */
	private static final String REC_DOV_D1 = "D1";
	
	/** レコード区分(工事取消情報) */
	private static final String REC_DOV_90 = "90";
	
	/** レコード区分(宅内工事情報) */
	private static final String REC_DOV_B0 = "B0";
	
	/** レコード区分(工事費情報) */
	private static final String REC_DOV_C0 = "C0";
	
	/** レコード区分(STB着工情報) */
	private static final String REC_DOV_Y0 = "Y0";
	
// 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
	
	/** 改行コード */
	private static final String KAIGYOU_CODE = "\n";
	
	/** エンコード */
	private static final String ENCODE = "Shift-JIS";
	
	/** エンコード（SJIS）*/
	private static final String ENCODE_SJIS = "SJIS";

	/** 空白 */
	private static final String SPACE = "";
	
	/** エラーメッセージ(置換え文字列：%2%) */
	private static final String MASSEAGE = "ファイル出力";
	
	/** 終了年月日 */
	private static final String LAST_YEAR = "20991231";
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}
	
	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		super.logPrint.printDebugLog("execute_START");
		
		String data_work = "";										// 工事関連情報受ファイル1行データ保持
		String rec_div = "";										// レコード区分の保持
		StringBuilder tak_cho_rslt_inf = new StringBuilder();		// 宅内調査結果情報文字列保持用
		StringBuilder dsgn_equip_inf   = new StringBuilder();		// 設計設備情報文字列保持用
		StringBuilder denso_equip_inf  = new StringBuilder();		// 伝送設備情報文字列保持用
		StringBuilder koji_fin_inf     = new StringBuilder();		// 工事完了情報文字列保持用
		StringBuilder koji_rsv_net     = new StringBuilder();		// 工事予定情報(ネット)文字列保持用
		StringBuilder koji_rsv_inf_tv  = new StringBuilder();		// 工事予定情報(テレビ)文字列保持用
		StringBuilder kiki_inf_net     = new StringBuilder();		// 機器情報(ネット)文字列保持用
		StringBuilder kiki_Inf_tv      = new StringBuilder();		// 機器情報(テレビ)文字列保持用
		StringBuilder koji_cl_inf      = new StringBuilder();		// 工事取消情報文字列保持用
		StringBuilder takni_koji_inf   = new StringBuilder();		// 宅内工事情報文字列保持用
		StringBuilder kojihi_Inf       = new StringBuilder();		// 工事費情報文字列保持用
		StringBuilder stb_chakuko_Inf  = new StringBuilder();		// STB着工情報文字列保持用
// ANK-3136-00-00 ADD START
		StringBuilder kr_cncl_uk_inf   = new StringBuilder();		// 工事仮キャンセル受付情報文字列保持用
		StringBuilder kr_cncl_cl_inf   = new StringBuilder();		// 工事仮キャンセル取消情報文字列保持用
// ANK-3136-00-00 ADD END
		
		// 「"」を削除したデータを保持
		ArrayList<String> data_list = null;
		
		// フリー項目を取得します。
		String free_item = commonItem.getFreeItem();
		
		// 中間ファイル格納先
		String mid_dir_kk = free_item;
		
		// 内部I/F格納先
		String naibu_receive_dir_kk =  free_item;
		
		// 工事関連情報受ファイル読込み
		ArrayList<String> file_data_list = 
			getInputFile(naibu_receive_dir_kk + KOJI_KNRN_INF_RCV_FILE_ID + "_" + super.opeDate  + FILE_KEISHIKI);
		
		// 工事関連情報受信ファイル件数分の繰返し
		for (int i = 0; i < file_data_list.size(); i++)
		{
			// １行目を取得
			data_work = file_data_list.get(i);
			
			// データを分解
			String[] data = data_work.split(",", -1);
			
			// 「"」を削除したデータを保持
			data_list = new ArrayList<String>(data.length);
			
			// ["]を削除。
			for (int j = 0; j < data.length; j++)
			{
				data_list.add(data[j].replaceAll("\"", ""));
			}
			
			// レコード区分の取得
			if (null != data_list.get(0))
			{
				rec_div = data_list.get(0);
			}
			else
			{
				continue;
			}
			
			// レコード区分単項目チェック
			if (!isHannkakuESuuji(rec_div, 2, true, "レコード区分"))
			{
				continue;
			}
			
			// レコード区分が「１０：宅内調査結果情報」
			if (REC_DOV_10.equals(rec_div))
			{
				// 宅内調査結果情報設定
				setTakchoRsltIf(data_list, tak_cho_rslt_inf);
				continue;
			}
			
			// レコード区分が「２０：設計結果情報」
			else if (REC_DOV_20.equals(rec_div))
			{
				// 設計結果情報設定
				setDsgnEquipInf(data_list, dsgn_equip_inf);
				continue;
			}
			
			// レコード区分が「３０：伝送設備情報」
			else if (REC_DOV_30.equals(rec_div))
			{
				// 伝送設備情報設定
				setDensoEquipInf(data_list, denso_equip_inf);
				continue;
			}
			// レコード区分が「４０：工事完了情報」
			else if (REC_DOV_40.equals(rec_div))
			{
				// 工事完了情報設定
				setKojiFinInf(data_list, koji_fin_inf);
				continue;
			}
			// レコード区分が「６０：工事予定情報(ネット)」	
			else if (REC_DOV_60.equals(rec_div))
			{
				// 工事予定情報(ネット)設定
				setKojiRsvNet(data_list, koji_rsv_net);
				continue;
			}
			// レコード区分が「６１：工事予定情報(テレビ)」	
			else if (REC_DOV_61.equals(rec_div))
			{
				// 工事予定情報(テレビ)設定
				setKojiRsvInfTv(data_list, koji_rsv_inf_tv);
				continue;
			}
			// レコード区分が「Ｄ０：機器情報(ネット)」	
			else if (REC_DOV_D0.equals(rec_div))
			{
				// 機器情報(ネット)設定
				setKikiNetInf(data_list, kiki_inf_net);
				continue;
			}
			// 
			// レコード区分が「Ｄ１：機器情報(テレビ)」	
			else if (REC_DOV_D1.equals(rec_div))
			{
				// 機器情報(テレビ)設定
				setKikiInfTv(data_list, kiki_Inf_tv);
				continue;
			}
			// レコード区分が「９０：工事取消情報」	
			else if (REC_DOV_90.equals(rec_div))
			{
				// 工事取消情報設定
				setKojiClInf(data_list, koji_cl_inf);
				continue;
			}
			// レコード区分が「Ｂ０：宅内工事情報」	
			else if (REC_DOV_B0.equals(rec_div))
			{
				// 宅内工事情報設定
				setTakniKojiInf(data_list, takni_koji_inf);
				continue;
			}
			// レコード区分が「Ｃ０：工事費情報」
			else if (REC_DOV_C0.equals(rec_div))
			{
				// 工事費情報設定
				setKojihiInf(data_list, kojihi_Inf);
				continue;
			}
			// レコード区分が「Ｙ０：STB着工情報」
			else if (REC_DOV_Y0.equals(rec_div))
			{
				// STB着工情報設定
				setStbChakukoInf(data_list, stb_chakuko_Inf);
				continue;
			}
// ANK-3136-00-00 ADD START
			// レコード区分が「Ｅ０：工事仮キャンセル受付情報」
			else if (REC_DOV_E0.equals(rec_div))
			{
				// 工事仮キャンセル受付情報設定
				setKrCnclUkInf(data_list, kr_cncl_uk_inf);
				continue;
			}
			// レコード区分が「Ｆ０：工事仮キャンセル取消情報」
			else if (REC_DOV_F0.equals(rec_div))
			{
				// 工事仮キャンセル取消情報設定
				setKrCnclClInf(data_list, kr_cncl_cl_inf);
				continue;
			}
// ANK-3136-00-00 ADD END
			else
			{
				// 処理対象外のレコード区分
				super.logPrint.printDebugLog("処理対象外のレコード区分：" + rec_div);
			}
		}
			
		// 宅内調査結果情報ファイル出力
		takchoRsltInfFileOput(tak_cho_rslt_inf.toString(), mid_dir_kk);
		
		// 設計設備情報ファイル出力
		dsgnEquipInfFileOput(dsgn_equip_inf.toString(), mid_dir_kk);
		
		// 伝送設備情報ファイル出力
		densoEquipInfFileOput(denso_equip_inf.toString(), mid_dir_kk);
		
		// 工事完了情報ファイル出力
		kojiFinInfFileOput(koji_fin_inf.toString(), mid_dir_kk);
		
		// 工事予定情報(ネット)ファイル出力
		kojiRsvNetFileOput(koji_rsv_net.toString(), mid_dir_kk);
		
		// 工事予定情報(テレビ)ファイル出力
		kojiRsvTvInfFileOput(koji_rsv_inf_tv.toString(), mid_dir_kk);
		
		// 機器情報(ネット)ファイル出力
		kikiNetInfFileOput(kiki_inf_net.toString(), mid_dir_kk);
		
		// 機器情報(テレビ)ファイル出力
		kikiInfTvFileOput(kiki_Inf_tv.toString(), mid_dir_kk);
		
		// 工事取消情報ファイル出力
		kojiClInfFileOput(koji_cl_inf.toString(), mid_dir_kk);
		
		// 宅内工事情報ファイル出力
		takniKojiInfFileOput(takni_koji_inf.toString(), mid_dir_kk);
		
		// 工事費情報設定ファイル出力
		kojihiInfFileOput(kojihi_Inf.toString(), mid_dir_kk);
		
		// STB着工情報設定ファイル出力
		stbChakukoInfFileOput(stb_chakuko_Inf.toString(), mid_dir_kk);
		
// ANK-3136-00-00 ADD START
		// 工事仮キャンセル受付情報設定ファイル出力
		krCnclUkInfFileOput(kr_cncl_uk_inf.toString(), mid_dir_kk);
		
		// 工事仮キャンセル取消情報設定ファイル出力
		krCnclClInfFileOput(kr_cncl_cl_inf.toString(), mid_dir_kk);
// ANK-3136-00-00 ADD END
		
		super.logPrint.printDebugLog("execute_END");
		
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * 工場関連情報受信ファイル情報を読み込みます。<br>
	 * <p>
	 * @param file_name ファイル名(フルパス)
	 * @return 工事関連情報受信ファイルデータ
	 * @throws JBSbatBusinessException 
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */	
	private ArrayList<String> getInputFile(String file_name) throws JBSbatBusinessException, IOException
	{
		super.logPrint.printDebugLog("getInputFile_START");
		super.logPrint.printDebugLog(":::::ファイルパス::::::" + file_name);	
		// ファイル情報保持
		ArrayList<String> data_list = new ArrayList<String>();
		BufferedReader br = null;
		
		// 工事関連情報受信ファイルを読み込みます。
		try
		{
			InputStreamReader is = new InputStreamReader(new FileInputStream(file_name), ENCODE);
			br = new BufferedReader(is);
			
			while (br.ready())
			{
				// 1行読込み
				data_list.add(br.readLine());
			}
		}
		catch (IOException e)
		{
			// 工事関連情報受信ファイルがない場合はエラー。
			throw new JBSbatBusinessException("EKKB0020CE", new String[]{file_name});
		}
		finally
		{
			if (null != br)
			{
				br.close();
			}
		}
		
		super.logPrint.printDebugLog("getInputFile_END");

		return data_list;
	}
	
	/**
	 * 宅内調査結果情報データを設定します。<br>
	 * <p>
	 * @param data_list ファイル名(フルパス)
	 * @param tak_cho_rslt_inf 文字列データ保持
	 * @throws Exception 
	 */	
	private void setTakchoRsltIf(ArrayList<String> data_list, StringBuilder tak_cho_rslt_inf) throws JBSbatBusinessException
	{
		super.logPrint.printDebugLog("setTakchoRsltIf_START");
		
		int err_cunt = 0;
		
		// サービス契約番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(1), 10, true, "宅内調査結果情報：サービス契約番号"))
		{
			err_cunt++;
		}
		
		// サービス契約回線内訳番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(2), 12, true, "宅内調査結果情報：サービス契約回線内訳番号"))
		{
			err_cunt++;
		}
		
		// 連携年月日単項目チェック
		if (!isYearMonthDay(data_list.get(3), true, "宅内調査結果情報：連携年月日"))
		{
			err_cunt++;
		}
		
		// 通番単項目チェック
		if(!isHannkakuSuuji1(data_list.get(4), 12, true, "宅内調査結果情報：通番"))
		{
			err_cunt++;
		}
		
		// 新規変更区分単項目チェック
		if (!isHannkakuESuuji(data_list.get(5), 1, false, "宅内調査結果情報：新規変更区分"))
		{
			err_cunt++;
		}
		
		// 工事案件種別単項目チェック
		if (!isHannkakuESuuji(data_list.get(6), 3, false, "宅内調査結果情報：工事案件種別コード"))
		{
			err_cunt++;
		}
		
		// 工事案件番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(7), 10, false, "宅内調査結果情報：工事案件番号"))
		{
			err_cunt++;
		}
		
		// 宅内調査判定コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(8), 1, false, "宅内調査結果情報：宅内調査判定コード"))
		{
			err_cunt++;
		}
		
		// 宅内調査実施年月日単項目チェック
		if (!isYearMonthDay(data_list.get(9), false, "宅内調査結果情報：宅内調査実施年月日"))
		{
			err_cunt++;
		}
		
		// 宅内調査承諾書回収コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(10), 1, false, "宅内調査結果情報：宅内調査承諾書回収コード"))
		{
			err_cunt++;
		}
		
		// 宅内調査承諾書受領年月日単項目チェック
		if (!isYearMonthDay(data_list.get(11), false, "宅内調査結果情報：宅内調査承諾書受領年月日"))
		{
			err_cunt++;
		}
		
		// 全ての項目がOKの場合設定。
		if (0 == err_cunt)
		{
			// サービス契約番号
			tak_cho_rslt_inf.append(data_list.get(1));
			tak_cho_rslt_inf.append(CONMA);
			// サービス契約回線内訳番号
			tak_cho_rslt_inf.append(data_list.get(2));
			tak_cho_rslt_inf.append(CONMA);
			// 連携年月日
			tak_cho_rslt_inf.append(data_list.get(3));
			tak_cho_rslt_inf.append(CONMA);
			// 通番
			tak_cho_rslt_inf.append(data_list.get(4));
			tak_cho_rslt_inf.append(CONMA);
			// 新規変更区分
			tak_cho_rslt_inf.append(data_list.get(5));
			tak_cho_rslt_inf.append(CONMA);
			// 工事案件種別
			tak_cho_rslt_inf.append(data_list.get(6));
			tak_cho_rslt_inf.append(CONMA);
			// 工事案件番号
			tak_cho_rslt_inf.append(data_list.get(7));
			tak_cho_rslt_inf.append(CONMA);
			// 宅内調査判定コード
			tak_cho_rslt_inf.append(data_list.get(8));
			tak_cho_rslt_inf.append(CONMA);
			// 宅内調査実施年月日
			tak_cho_rslt_inf.append(data_list.get(9));
			tak_cho_rslt_inf.append(CONMA);
			// 宅内調査承諾書回収コード
			tak_cho_rslt_inf.append(data_list.get(10));
			tak_cho_rslt_inf.append(CONMA);
			// 宅内調査承諾書受領年月日
			tak_cho_rslt_inf.append(data_list.get(11));
			tak_cho_rslt_inf.append(CONMA);
			// 申込明細番号＿サービス契約
			tak_cho_rslt_inf.append(SPACE);
			tak_cho_rslt_inf.append(CONMA);
			// 申込明細番号＿サービス契約内訳
			tak_cho_rslt_inf.append(SPACE);
			tak_cho_rslt_inf.append(CONMA);
			// 申込明細番号＿オプション契約
			tak_cho_rslt_inf.append(SPACE);
			tak_cho_rslt_inf.append(CONMA);
			// 申込明細番号＿サービス回線内訳
			tak_cho_rslt_inf.append(SPACE);
			
			// レコード区分
			tak_cho_rslt_inf.append(CONMA);
			tak_cho_rslt_inf.append(data_list.get(0));
			
			// 改行コード
			tak_cho_rslt_inf.append(KAIGYOU_CODE);
		}
		
		super.logPrint.printDebugLog("setTakchoRsltIf_END");
	}
	
	/**
	 * 設計結果情報データを設定します。<br>
	 * <p>
	 * @param data_list ファイル名(フルパス)
	 * @param dsgn_equip_inf 文字列データ保持
	 * @throws Exception 
	 */	
	private void setDsgnEquipInf(ArrayList<String> data_list, StringBuilder dsgn_equip_inf) throws JBSbatBusinessException
	{
		super.logPrint.printDebugLog("setDsgnEquipInf_START");
		
		int err_cunt = 0;
		
		// サービス契約番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(1), 10, true, "設計結果情報：サービス契約番号"))
		{
			err_cunt++;
		}
		
		// サービス契約回線内訳番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(2), 12, true, "設計結果情報：サービス契約回線内訳番号"))
		{
			err_cunt++;
		}
		
		// 連携年月日単項目チェック
		if (!isYearMonthDay(data_list.get(3), true, "設計結果情報：連携年月日"))
		{
			err_cunt++;
		}
		
		// 通番単項目チェック
		if (!isHannkakuSuuji1(data_list.get(4), 12, true, "設計結果情報：通番"))
		{
			err_cunt++;
		}
		
		// 新規変更区分単項目チェック
		if (!isHannkakuESuuji(data_list.get(5), 1, false, "設計結果情報：新規変更区分"))
		{
			err_cunt++;
		}
		
		// 工事案件種別コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(6), 3, false, "設計結果情報：工事案件種別コード"))
		{
			err_cunt++;
		}
		
		// 工事案件番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(7), 10, false, "設計結果情報：工事案件番号"))
		{
			err_cunt++;
		}
		
		// 設計結果コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(8), 1, false, "設計結果情報：設計結果コード"))
		{
			err_cunt++;
		}
		
		// 設計結果見積設計報告年月日単項目チェック
		if (!isYearMonthDay(data_list.get(9), false, "設計結果情報：設計結果見積設計報告年月日"))
		{
			err_cunt++;
		}
		
		// 設計結果工事内容確認書受領年月日単項目チェック
		if (!isYearMonthDay(data_list.get(10), false, "設計結果情報：設計結果工事内容確認書受領年月日"))
		{
			err_cunt++;
		}
		
		// 全ての項目がOKの場合設定。
		if (0 == err_cunt)
		{
			// サービス契約番号
			dsgn_equip_inf.append(data_list.get(1));
			dsgn_equip_inf.append(CONMA);
			// サービス契約回線内訳番号
			dsgn_equip_inf.append(data_list.get(2));
			dsgn_equip_inf.append(CONMA);
			// 連携年月日
			dsgn_equip_inf.append(data_list.get(3));
			dsgn_equip_inf.append(CONMA);
			// 通番
			dsgn_equip_inf.append(data_list.get(4));
			dsgn_equip_inf.append(CONMA);
			// 新規変更区分
			dsgn_equip_inf.append(data_list.get(5));
			dsgn_equip_inf.append(CONMA);
			// 工事案件種別
			dsgn_equip_inf.append(data_list.get(6));
			dsgn_equip_inf.append(CONMA);
			// 工事案件番号
			dsgn_equip_inf.append(data_list.get(7));
			dsgn_equip_inf.append(CONMA);
			// 設計結果コード
			dsgn_equip_inf.append(data_list.get(8));
			dsgn_equip_inf.append(CONMA);
			// 設計結果見積設計報告年月日
			dsgn_equip_inf.append(data_list.get(9));
			dsgn_equip_inf.append(CONMA);
			// 設計結果工事内容確認書受領年月日
			dsgn_equip_inf.append(data_list.get(10));
			
			// レコード区分
			dsgn_equip_inf.append(CONMA);
			dsgn_equip_inf.append(data_list.get(0));
			
			// 改行コード
			dsgn_equip_inf.append(KAIGYOU_CODE);
		}
		
		super.logPrint.printDebugLog("setDsgnEquipInf_END");
	}

	/**
	 * 伝送設備情報データを設定します。<br>
	 * <p>
	 * @param data_list ファイル名(フルパス)
	 * @param denso_equip_inf 文字列データ保持
	 * @throws Exception 
	 */	
	private void setDensoEquipInf(ArrayList<String> data_list, StringBuilder denso_equip_inf) throws JBSbatBusinessException
	{
		super.logPrint.printDebugLog("setDensoEquipInf_START");
		
		int err_cunt = 0;
		
		// サービス契約番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(1), 10, true, "伝送設備情報：サービス契約番号"))
		{
			err_cunt++;
		}
		
		// サービス契約回線内訳番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(2), 12, true, "伝送設備情報：サービス契約回線内訳番号"))
		{
			err_cunt++;
		}
		
		// 連携年月日単項目チェック
		if (!isYearMonthDay(data_list.get(3), true, "伝送設備情報：連携年月日"))
		{
			err_cunt++;
		}
		
		// 通番単項目チェック
		if (!isHannkakuSuuji1(data_list.get(4), 12, true, "伝送設備情報：通番"))
		{
			err_cunt++;
		}
		
		// 新規変更区分単項目チェック
		if (!isHannkakuESuuji(data_list.get(5), 1, false, "伝送設備情報：新規変更区分"))
		{
			err_cunt++;
		}
		
		// 工事案件種別コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(6), 3, false, "伝送設備情報：工事案件種別コード"))
		{
			err_cunt++;
		}
		
		// 工事案件番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(7), 10, false, "伝送設備情報：工事案件番号"))
		{
			err_cunt++;
		}
		
		// 起点変電所コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(8), 8, false, "伝送設備情報：起点変電所コード"))
		{
			err_cunt++;
		}
		
		// 集約局コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(9), 2, false, "伝送設備情報：集約局コード"))
		{
			err_cunt++;
		}
		
		// 全ての項目がOKの場合設定。
		if (0 == err_cunt)
		{
			// サービス契約番号
			denso_equip_inf.append(data_list.get(1));
			denso_equip_inf.append(CONMA);
			// サービス契約回線内訳番号
			denso_equip_inf.append(data_list.get(2));
			denso_equip_inf.append(CONMA);
			// 連携年月日
			denso_equip_inf.append(data_list.get(3));
			denso_equip_inf.append(CONMA);
			// 通番
			denso_equip_inf.append(data_list.get(4));
			denso_equip_inf.append(CONMA);
			// 新規変更区分
			denso_equip_inf.append(data_list.get(5));
			denso_equip_inf.append(CONMA);
			// 工事案件種別
			denso_equip_inf.append(data_list.get(6));
			denso_equip_inf.append(CONMA);
			// 工事案件番号
			denso_equip_inf.append(data_list.get(7));
			denso_equip_inf.append(CONMA);
			// 起点変電所コード
			denso_equip_inf.append(data_list.get(8));
			denso_equip_inf.append(CONMA);
			// 集約局コード
			denso_equip_inf.append(data_list.get(9));
			
			// レコード区分
			denso_equip_inf.append(CONMA);
			denso_equip_inf.append(data_list.get(0));
			
			// 改行コード
			denso_equip_inf.append(KAIGYOU_CODE);
		}
		
		super.logPrint.printDebugLog("setDensoEquipInf_END");
	}

	/**
	 * 工事完了情報データを設定します。<br>
	 * <p>
	 * @param data_list ファイル名(フルパス)
	 * @param koji_fin_inf 文字列データ保持
	 * @throws Exception 
	 */	
	private void setKojiFinInf(ArrayList<String> data_list, StringBuilder koji_fin_inf) throws JBSbatBusinessException
	{
		super.logPrint.printDebugLog("setKojiFinInf_START");
		
		int err_cunt = 0;

		// サービス契約番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(1), 10, true, "工事完了：サービス契約番号"))
		{
			err_cunt++;
		}
		
		// サービス契約回線内訳番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(2), 12, true, "工事完了：サービス契約回線内訳番号"))
		{
			err_cunt++;
		}
		
		// 連携年月日単項目チェック
		if (!isYearMonthDay(data_list.get(3), true, "工事完了：連携年月日"))
		{
			err_cunt++;
		}
		
		// 連携通番単項目チェック
		if (!isHannkakuSuuji1(data_list.get(4), 12, true, "工事完了：通番"))
		{
			err_cunt++;
		}
		
		// 新規変更コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(5), 1, false, "工事完了：新規変更区分"))
		{
			err_cunt++;
		}
		
		// 工事案件種別コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(6), 3, false, "工事完了：工事案件種別コード"))
		{
			err_cunt++;
		}
		
		// 工事案件番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(7), 10, false, "工事完了：工事案件番号"))
		{
			err_cunt++;
		}

		// 工事案件結果コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(8), 1, false, "工事完了：工事案件結果コード"))
		{
			err_cunt++;
		}
		
		// 工事案件完了年月日単項目チェック
		/* ++++++++++ v3.01.00 修正開始 ++++++++++ */
		// 	if (!isYearMonthDay(data_list.get(9), false, "工事完了：工事案件完了年月日"))
		if (!"99999999".equals(data_list.get(9)))
		{
			if (!isYearMonthDay(data_list.get(9), false, "工事完了：工事案件完了年月日"))
			{
				err_cunt++;
			}
		}
		else
		{
			if (!isHannkakuSuuji1(data_list.get(9), 8, false, "工事完了：工事案件完了年月日"))
			{
				err_cunt++;
			}
		}
		/* ++++++++++ v3.01.00 修正終了 ++++++++++ */

		// ＰＯＮ種別コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(10), 1, false, "工事完了：ＰＯＮ種別コード"))
		{
			err_cunt++;
		}
		
		// 工事金額(標準)単項目チェック
		if (!isHannkakuSuuji1(data_list.get(11), 12, false, "工事完了：工事金額(標準)"))
		{
			err_cunt++;
		}
		
		// 工事金額(標準外)単項目チェック
		if (!isHannkakuSuuji1(data_list.get(12), 12, false, "工事完了：工事金額(標準外)"))
		{
			err_cunt++;
		}
		
		// 工事金額(標準)電話宅内工事費用単項目チェック
		if (!isHannkakuSuuji1(data_list.get(13), 12, false, "工事完了：工事金額(標準)電話宅内工事費用"))
		{
			err_cunt++;
		}
		
		// 工事金額(標準外)電話宅内工事費用単項目チェック
		if (!isHannkakuSuuji1(data_list.get(14), 12, false, "工事完了：工事金額(標準外)電話宅内工事費用"))
		{
			err_cunt++;
		}
		
		// 工事金額(標準)宅内工事(LAN)費用単項目チェック
		if (!isHannkakuSuuji1(data_list.get(15), 12, false, "工事完了：工事金額(標準)宅内工事(LAN)費用"))
		{
			err_cunt++;
		}
		
		// 工事金額(標準外)宅内工事(LAN)費用単項目チェック
		if (!isHannkakuSuuji1(data_list.get(16), 12, false, "工事完了：工事金額(標準外)宅内工事(LAN)費用"))
		{
			err_cunt++;
		}
		
		// 工事範囲コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(17), 3, false, "工事完了：工事範囲コード"))
		{
			err_cunt++;
		}
		
		// 全ての項目がOKの場合設定。
		if (0 == err_cunt)
		{
			// 「新規変更区分」がNULL、「通番」が"000000000000"の場合、レコードスキップします。
			// 新規変更区分
			String newChgDiv = JBSbatStringUtil.Rtrim(data_list.get(5));
			
			// 通番
			String seq = JBSbatStringUtil.Rtrim(data_list.get(4));
			
			super.logPrint.printDebugLog("新規変更区分：" + newChgDiv);
			super.logPrint.printDebugLog("通番        ：" + seq);
			
			if ("".equals(newChgDiv) && "000000000000".equals(seq))
			{
				super.logPrint.printDebugLog("「新規変更区分」がNULL、「通番」が000000000000の場合、レコードスキップ");
				return;
			}
			
			// サービス契約番号
			koji_fin_inf.append(data_list.get(1));
			koji_fin_inf.append(CONMA);
			// サービス契約回線内訳番号
			koji_fin_inf.append(data_list.get(2));
			koji_fin_inf.append(CONMA);
			// 連携年月日
			koji_fin_inf.append(data_list.get(3));
			koji_fin_inf.append(CONMA);
			// 通番
			koji_fin_inf.append(data_list.get(4));
			koji_fin_inf.append(CONMA);
			// 新規変更区分
			koji_fin_inf.append(data_list.get(5));
			koji_fin_inf.append(CONMA);
			// 工事案件種別
			koji_fin_inf.append(data_list.get(6));
			koji_fin_inf.append(CONMA);
			// 工事案件番号
			koji_fin_inf.append(data_list.get(7));
			koji_fin_inf.append(CONMA);
			// 工事案件結果コード
			koji_fin_inf.append(data_list.get(8));
			koji_fin_inf.append(CONMA);
			
			// 工事案件完了年月日に「99999999」が設定されている場合。
			if("99999999".equals(data_list.get(9)))
			{
				// 工事案件完了年月日を「20991231」に置き換え
				koji_fin_inf.append(LAST_YEAR);
				koji_fin_inf.append(CONMA);
			}
			else
			{
				// 工事案件完了年月日を設定
				koji_fin_inf.append(data_list.get(9));
				koji_fin_inf.append(CONMA);
			}
			
			// PON種別コードの設定
			koji_fin_inf.append(data_list.get(10));
			koji_fin_inf.append(CONMA);
			
			// 工事金額(標準)
			koji_fin_inf.append(data_list.get(11));
			koji_fin_inf.append(CONMA);
			
			// 工事金額(標準外)
			koji_fin_inf.append(data_list.get(12));
			koji_fin_inf.append(CONMA);
			
			// 工事金額(標準)電話宅内工事費用
			koji_fin_inf.append(data_list.get(13));
			koji_fin_inf.append(CONMA);
			
			// 工事金額(標準外)電話宅内工事費用
			koji_fin_inf.append(data_list.get(14));
			koji_fin_inf.append(CONMA);
			
			// 工事金額(標準)宅内工事(LAN)費用
			koji_fin_inf.append(data_list.get(15));
			koji_fin_inf.append(CONMA);
			
			// 工事金額(標準外)宅内工事(LAN)費用
			koji_fin_inf.append(data_list.get(16));
			koji_fin_inf.append(CONMA);
			
			// 工事範囲コード
			koji_fin_inf.append(data_list.get(17));
			koji_fin_inf.append(CONMA);
			
			// レコード区分
			koji_fin_inf.append(data_list.get(0));
			
			// 改行コード
			koji_fin_inf.append(KAIGYOU_CODE);
		}
		
		super.logPrint.printDebugLog("setKojiFinInf_END");
	}
	
	/**
	 * 工事予定情報(ネット)データを設定します。<br>
	 * <p>
	 * @param data_list ファイル名(フルパス)
	 * @param koji_rsv_net 文字列データ保持
	 * @throws Exception 
	 */	
	private void setKojiRsvNet(ArrayList<String> data_list, StringBuilder koji_rsv_net) throws JBSbatBusinessException
	{
		super.logPrint.printDebugLog("setKojiRsvNet_START");
		
		int err_cunt = 0;
		
		// サービス契約番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(1), 10, true, "工事予定情報(ネット)：サービス契約番号"))
		{
			err_cunt++;
		}
		
		// サービス契約回線内訳番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(2), 12, true, "工事予定情報(ネット)：サービス契約回線内訳番号"))
		{
			err_cunt++;
		}
		
		// 連携年月日単項目チェック
		if (!isYearMonthDay(data_list.get(3), true, "工事予定情報(ネット)：連携年月日"))
		{
			err_cunt++;
		}
		
		// 通番単項目チェック
		if (!isHannkakuSuuji1(data_list.get(4), 12, true, "工事予定情報(ネット)：通番"))
		{
			err_cunt++;
		}
		
		// 新規変更区分単項目チェック
		if (!isHannkakuESuuji(data_list.get(5), 1, false, "工事予定情報(ネット)：新規変更区分"))
		{
			err_cunt++;
		}
		
		// 工事案件種別コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(6), 3, false, "工事予定情報(ネット)：工事案件種別コード"))
		{
			err_cunt++;
		}
		
		// 工事案件番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(7), 10, false, "工事予定情報(ネット)：工事案件番号"))
		{
			err_cunt++;
		}
		
		// 工事会社配送先コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(8), 6, false, "工事予定情報(ネット)：工事会社配送先コード"))
		{
			err_cunt++;
		}
		
		// 工事予定年月日単項目チェック
		if (!isYearMonthDay(data_list.get(9), false, "工事予定情報(ネット)：工事予定年月日"))
		{
			err_cunt++;
		}
		
		// 工事予定カプラー方式コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(10), 3, false, "工事予定情報(ネット)：工事予定カプラー方式コード"))
		{
			err_cunt++;
		}
		
		// 工事予定親ＰＯＮメーカーコード単項目チェック
		if (!isHannkakuESuuji(data_list.get(11), 2, false, "工事予定情報(ネット)：工事予定親ＰＯＮメーカーコード"))
		{
			err_cunt++;
		}
		
		// 工事予定ＶＡメーカーコード単項目チェック
		if (!isHannkakuESuuji(data_list.get(12), 2, false, "工事予定情報(ネット)：工事予定ＶＡメーカーコード"))
		{
			err_cunt++;
		}
		
		// 工事予定親ＰＯＮメーカー名称は、文字コード変換を行った後セットします。
		String kojiRsvOyaPonMakerNm = JBSbatInterface.charConverter(data_list.get(13));
		
		// 工事予定親ＰＯＮメーカー名称単項目チェック
		if (!isMix2(kojiRsvOyaPonMakerNm, 32, "工事予定情報(ネット)：工事予定親ＰＯＮメーカー名称"))
		{
			err_cunt++;
		}
		
		// 工事予定設計書番号単項目チェック
		if (!isHannkakuESuuji2(data_list.get(14), 11, false, "工事予定情報(ネット)：工事予定設計書番号"))
		{
			err_cunt++;
		}
		
		// 工事予定申込形態コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(15), 10, false, "工事予定情報(ネット)：工事予定申込形態コード"))
		{
			err_cunt++;
		}
		
		// 工事予定ＩＰ種別単項目チェック
		if (!isHannkakuESuuji(data_list.get(16), 2, false, "工事予定情報(ネット)：工事予定ＩＰ種別"))
		{
			err_cunt++;
		}
		
		// ＰＯＮ識別コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(17), 1, false, "工事予定情報(ネット)：ＰＯＮ識別コード"))
		{
			err_cunt++;
		}
		
		// 全ての項目がOKの場合設定。
		if (0 == err_cunt)
		{
			// サービス契約番号
			koji_rsv_net.append(data_list.get(1));
			koji_rsv_net.append(CONMA);
			// サービス契約回線内訳番号単項目チェック
			// サービス契約回線内訳番号
			koji_rsv_net.append(data_list.get(2));
			koji_rsv_net.append(CONMA);
			// 連携年月日
			koji_rsv_net.append(data_list.get(3));
			koji_rsv_net.append(CONMA);
			// 通番
			koji_rsv_net.append(data_list.get(4));
			koji_rsv_net.append(CONMA);
			// 新規変更区分
			koji_rsv_net.append(data_list.get(5));
			koji_rsv_net.append(CONMA);
			// 工事案件種別
			koji_rsv_net.append(data_list.get(6));
			koji_rsv_net.append(CONMA);
			// 工事案件番号
			koji_rsv_net.append(data_list.get(7));
			koji_rsv_net.append(CONMA);
			// 工事会社配送先コード
			koji_rsv_net.append(data_list.get(8));
			koji_rsv_net.append(CONMA);
			// 工事予定年月日
			koji_rsv_net.append(data_list.get(9));
			koji_rsv_net.append(CONMA);
			// 工事予定方式コード
			koji_rsv_net.append(data_list.get(10));
			koji_rsv_net.append(CONMA);
			// 工事予定子機メーカーコード
			koji_rsv_net.append(data_list.get(11));
			koji_rsv_net.append(CONMA);
			// 工事予定VAメーカーコード
			koji_rsv_net.append(data_list.get(12));
			koji_rsv_net.append(CONMA);
			// 工事予定子機メーカー名称
			koji_rsv_net.append(data_list.get(13));
			koji_rsv_net.append(CONMA);
			// 工事予定設計書番号
			koji_rsv_net.append(data_list.get(14));
			koji_rsv_net.append(CONMA);
			// 工事予定申込形態コード
			koji_rsv_net.append(data_list.get(15));
			koji_rsv_net.append(CONMA);
			// 工事予定IP種別
			koji_rsv_net.append(data_list.get(16));
			koji_rsv_net.append(CONMA);
			// ＰＯＮ識別コード
			koji_rsv_net.append(data_list.get(17));
			
			// レコード区分
			koji_rsv_net.append(CONMA);
			koji_rsv_net.append(data_list.get(0));
			
			// 改行コード
			koji_rsv_net.append(KAIGYOU_CODE);
		}		
		super.logPrint.printDebugLog("setKojiRsvNet_END");
	}
	
	/**
	 * 工事予定情報(テレビ)データを設定します。<br>
	 * <p>
	 * @param data_list ファイル名(フルパス)
	 * @param koji_rsv_inf_tv 文字列データ保持
	 * @throws Exception 
	 */	
	private void setKojiRsvInfTv(ArrayList<String> data_list, StringBuilder koji_rsv_inf_tv) throws JBSbatBusinessException
	{
		super.logPrint.printDebugLog("setKojiRsvInfTv_START");
		
		int err_cunt = 0;
		
		// サービス契約番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(1), 10, true, "工事予定情報(テレビ)：サービス契約番号"))
		{
			err_cunt++;
		}
		
		// サービス契約回線内訳番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(2), 12, true, "工事予定情報(テレビ)：サービス契約回線内訳番号"))
		{
			err_cunt++;
		}
		
		// 連携年月日単項目チェック
		if (!isYearMonthDay(data_list.get(3), true, "工事予定情報(テレビ)：連携年月日"))
		{
			err_cunt++;
		}
		
		// 通番単項目チェック
		if (!isHannkakuSuuji1(data_list.get(4), 12, true, "工事予定情報(テレビ)：通番"))
		{
			err_cunt++;
		}
		
		// 新規変更区分単項目チェック
		if (!isHannkakuESuuji(data_list.get(5), 1, false, "工事予定情報(テレビ)：新規変更区分"))
		{
			err_cunt++;
		}
		
		// 工事案件種別コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(6), 3, false, "工事予定情報(テレビ)：工事案件種別コード"))
		{
			err_cunt++;
		}
		
		// 工事案件番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(7), 10, false, "工事予定情報(テレビ)：工事案件番号"))
		{
			err_cunt++;
		}
		
		// 工事会社配送先コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(8), 6, false, "工事予定情報(テレビ)：工事会社配送先コード"))
		{
			err_cunt++;
		}
		
		// 工事予定年月日単項目チェック
		if (!isYearMonthDay(data_list.get(9), false, "工事予定情報(テレビ)：工事予定年月日"))
		{
			err_cunt++;
		}
		
		// 工事予定ＳＴＢ台数単項目チェック
		if (!isHannkakuESuuji(data_list.get(10), 2, false, "工事予定情報(テレビ)：工事予定ＳＴＢ台数"))
		{
			err_cunt++;
		}
		
		// 工事予定Ｖ−ＯＮＵメーカー単項目チェック
		if (!isHannkakuESuuji(data_list.get(11), 2, false, "工事予定情報(テレビ)：工事予定Ｖ−ＯＮＵメーカー"))
		{
			err_cunt++;
		}
		
		// 工事予定設計書番号単項目チェック
		if (!isHannkakuESuuji2(data_list.get(12), 11, false, "工事予定情報(テレビ)：工事予定設計書番号"))
		{
			err_cunt++;
		}
		
		// 工事予定申込形態コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(13), 10, false, "工事予定情報(テレビ)：工事予定申込形態コード"))
		{
			err_cunt++;
		}
		
		// ＴＶ工事案件種別コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(14), 2, false, "工事予定情報(テレビ)：ＴＶ工事案件種別コード"))
		{
			err_cunt++;
		}
		
		// ＰＯＮ識別コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(15), 1, false, "工事予定情報(テレビ)：ＰＯＮ識別コード"))
		{
			err_cunt++;
		}
		
		// 全ての項目がOKの場合設定。
		if (0 == err_cunt)
		{
			// サービス契約番号
			koji_rsv_inf_tv.append(data_list.get(1));
			koji_rsv_inf_tv.append(CONMA);
			// サービス契約回線内訳番号
			koji_rsv_inf_tv.append(data_list.get(2));
			koji_rsv_inf_tv.append(CONMA);
			// 連携年月日
			koji_rsv_inf_tv.append(data_list.get(3));
			koji_rsv_inf_tv.append(CONMA);
			// 通番
			koji_rsv_inf_tv.append(data_list.get(4));
			koji_rsv_inf_tv.append(CONMA);
			// 新規変更区分
			koji_rsv_inf_tv.append(data_list.get(5));
			koji_rsv_inf_tv.append(CONMA);
			// 工事案件種別
			koji_rsv_inf_tv.append(data_list.get(6));
			koji_rsv_inf_tv.append(CONMA);
			// 工事案件番号
			koji_rsv_inf_tv.append(data_list.get(7));
			koji_rsv_inf_tv.append(CONMA);
			// 工事会社配送先コード
			koji_rsv_inf_tv.append(data_list.get(8));
			koji_rsv_inf_tv.append(CONMA);
			// 工事予定年月日
			koji_rsv_inf_tv.append(data_list.get(9));
			koji_rsv_inf_tv.append(CONMA);
			// 工事予定STB台数
			koji_rsv_inf_tv.append(data_list.get(10));
			koji_rsv_inf_tv.append(CONMA);
			// 工事予定V-ONUメーカー
			koji_rsv_inf_tv.append(data_list.get(11));
			koji_rsv_inf_tv.append(CONMA);
			// 工事予定設計書番号
			koji_rsv_inf_tv.append(data_list.get(12));
			koji_rsv_inf_tv.append(CONMA);
			// 工事予定申込形態コード
			koji_rsv_inf_tv.append(data_list.get(13));
			koji_rsv_inf_tv.append(CONMA);
			// TV工事案件種別コード
			koji_rsv_inf_tv.append(data_list.get(14));
			koji_rsv_inf_tv.append(CONMA);
			// ＰＯＮ識別コード
			koji_rsv_inf_tv.append(data_list.get(15));
			
			// レコード区分
			koji_rsv_inf_tv.append(CONMA);
			koji_rsv_inf_tv.append(data_list.get(0));
			
			// 改行コード
			koji_rsv_inf_tv.append(KAIGYOU_CODE);
		}
		
		super.logPrint.printDebugLog("setKojiRsvInfTv_END");
	}
	
	/**
	 * 機器情報(ネット)データを設定します。<br>
	 * <p>
	 * @param data_list ファイル名(フルパス)
	 * @param kiki_inf_net 文字列データ保持
	 * @throws Exception 
	 */	
	private void setKikiNetInf(ArrayList<String> data_list, StringBuilder kiki_inf_net) throws JBSbatBusinessException
	{
		super.logPrint.printDebugLog("setKikiNetInf_START");
		
		int err_cunt = 0;
		
		// サービス契約番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(1), 10, true, "機器情報(ネット)：サービス契約番号"))
		{
			err_cunt++;
		}
		
			// サービス契約回線内訳番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(2), 12, true, "機器情報(ネット)：サービス契約回線内訳番号"))
		{
			err_cunt++;
		}
		
		// 連携年月日単項目チェック
		if (!isYearMonthDay(data_list.get(3), true, "機器情報(ネット)：連携年月日"))
		{
			err_cunt++;
		}
		
		// 通番単項目チェック
		if (!isHannkakuSuuji1(data_list.get(4), 12, true, "機器情報(ネット)：通番"))
		{
			err_cunt++;
		}
		
		// 新規変更区分単項目チェック
		if (!isHannkakuESuuji(data_list.get(5), 1, false, "機器情報(ネット)：新規変更区分"))
		{
			err_cunt++;
		}
		
		// 工事案件種別コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(6), 3, false, "機器情報(ネット)：工事案件種別コード"))
		{
			err_cunt++;
		}
		
		// 工事案件番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(7), 10, false, "機器情報(ネット)：工事案件番号"))
		{
			err_cunt++;
		}
		
		// 工事会社配送先コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(8), 6, false, "機器情報(ネット)：工事会社配送先コード"))
		{
			err_cunt++;
		}
		
		// 宅内機器型式コード（ＯＮＵ）単項目チェック
		if (!isHannkakuESuuji2(data_list.get(9), 20, false, "機器情報(ネット)：宅内機器型式コード（ＯＮＵ）"))
		{
			err_cunt++;
		}
		
		// ＭＡＣアドレス（ＯＮＵ）単項目チェック
		if (!isHannkakuESuuji(data_list.get(10), 12, false, "機器情報(ネット)：ＭＡＣアドレス（ＯＮＵ）"))
		{
			err_cunt++;
		}
		
		// 宅内機器型式コード（ＶＡ）単項目チェック
		if (!isHannkakuESuuji2(data_list.get(11), 20, false, "機器情報(ネット)：宅内機器型式コード（ＶＡ）"))
		{
			err_cunt++;
		}
		
		// 機器製造番号（ＶＡ）単項目チェック
		if (!isHannkakuESuuji2(data_list.get(12), 20, false, "機器情報(ネット)：機器製造番号（ＶＡ）"))
		{
			err_cunt++;
		}
		
		// 宅内機器型式コード（ルータ）単項目チェック
		if (!isHannkakuESuuji2(data_list.get(13), 20, false, "機器情報(ネット)：宅内機器型式コード（ルータ）"))
		{
			err_cunt++;
		}
		
		// 機器製造番号（ルータ）単項目チェック
		if (!isHannkakuESuuji2(data_list.get(14), 20, false, "機器情報(ネット)：機器製造番号（ルータ）"))
		{
			err_cunt++;
		}
		
		// 宅内機器型式コード（ＰＬＣ）１単項目チェック
		if (!isHannkakuESuuji2(data_list.get(15), 20, false, "機器情報(ネット)：宅内機器型式コード（ＰＬＣ）１"))
		{
			err_cunt++;
		}
		
		// 機器製造番号（ＰＬＣ）１単項目チェック
		if (!isHannkakuESuuji2(data_list.get(16), 20, false, "機器情報(ネット)：機器製造番号（ＰＬＣ）１"))
		{
			err_cunt++;
		}
		
		// 宅内機器型式コード（ＰＬＣ）２単項目チェック
		if (!isHannkakuESuuji2(data_list.get(17), 20, false, "機器情報(ネット)：宅内機器型式コード（ＰＬＣ）２"))
		{
			err_cunt++;
		}
		
		// 機器製造番号（ＰＬＣ）２単項目チェック
		if (!isHannkakuESuuji2(data_list.get(18), 20, false, "機器情報(ネット)：機器製造番号（ＰＬＣ）２"))
		{
			err_cunt++;
		}
		
		// 宅内機器型式コード（ＰＬＣ）３単項目チェック
		if (!isHannkakuESuuji2(data_list.get(19), 20, false, "機器情報(ネット)：宅内機器型式コード（ＰＬＣ）３"))
		{
			err_cunt++;
		}
		
		// 機器製造番号（ＰＬＣ）３単項目チェック
		if (!isHannkakuESuuji2(data_list.get(20), 20, false, "機器情報(ネット)：機器製造番号（ＰＬＣ）３"))
		{
			err_cunt++;
		}
		
		// 宅内機器型式コード（ＰＬＣ）４単項目チェック
		if (!isHannkakuESuuji2(data_list.get(21), 20, false, "機器情報(ネット)：宅内機器型式コード（ＰＬＣ）４"))
		{
			err_cunt++;
		}
		
		// 機器製造番号（ＰＬＣ）４単項目チェック
		if (!isHannkakuESuuji2(data_list.get(22), 20, false, "機器情報(ネット)：機器製造番号（ＰＬＣ）４"))
		{
			err_cunt++;
		}
		
		// 宅内機器型式コード（ＰＬＣ）５単項目チェック
		if (!isHannkakuESuuji2(data_list.get(23), 20, false, "機器情報(ネット)：宅内機器型式コード（ＰＬＣ）５"))
		{
			err_cunt++;
		}
		
		// 機器製造番号（ＰＬＣ）５単項目チェック
		if (!isHannkakuESuuji2(data_list.get(24), 20, false, "機器情報(ネット)：機器製造番号（ＰＬＣ）５"))
		{
			err_cunt++;
		}
		
		// 宅内機器型式コード（ＰＬＣ）６単項目チェック
		if (!isHannkakuESuuji2(data_list.get(25), 20, false, "機器情報(ネット)：宅内機器型式コード（ＰＬＣ）６"))
		{
			err_cunt++;
		}
		
		// 機器製造番号（ＰＬＣ）６単項目チェック
		if (!isHannkakuESuuji2(data_list.get(26), 20, false, "機器情報(ネット)：機器製造番号（ＰＬＣ）６"))
		{
			err_cunt++;
		}
		
		// 宅内機器型式コード（ＰＬＣ）７単項目チェック
		if (!isHannkakuESuuji2(data_list.get(27), 20, false, "機器情報(ネット)：宅内機器型式コード（ＰＬＣ）７"))
		{
			err_cunt++;
		}
		
		// 機器製造番号（ＰＬＣ）７単項目チェック
		if (!isHannkakuESuuji2(data_list.get(28), 20, false, "機器情報(ネット)：機器製造番号（ＰＬＣ）７"))
		{
			err_cunt++;
		}
		
		// 宅内機器型式コード（ＰＬＣ）８単項目チェック
		if (!isHannkakuESuuji2(data_list.get(29), 20, false, "機器情報(ネット)：宅内機器型式コード（ＰＬＣ）８"))
		{
			err_cunt++;
		}
		
		// 機器製造番号（ＰＬＣ）８単項目チェック
		if (!isHannkakuESuuji2(data_list.get(30), 20, false, "機器情報(ネット)：機器製造番号（ＰＬＣ）８"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号（ＯＮＵ）単項目チェック
		if (!isHannkakuESuuji(data_list.get(31), 12, false, "機器情報(ネット)：機器提供サービス契約番号（ＯＮＵ）"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号（ＶＡ）単項目チェック
		if (!isHannkakuESuuji(data_list.get(32), 12, false, "機器情報(ネット)：機器提供サービス契約番号（ＶＡ）"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号（ルーター）単項目チェック
		if (!isHannkakuESuuji(data_list.get(33), 12, false, "機器情報(ネット)：機器提供サービス契約番号（ルーター）"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号（ＰＬＣ）１単項目チェック
		if (!isHannkakuESuuji(data_list.get(34), 12, false, "機器情報(ネット)：機器提供サービス契約番号（ＰＬＣ）１"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号（ＰＬＣ）２単項目チェック
		if (!isHannkakuESuuji(data_list.get(35), 12, false, "機器情報(ネット)：機器提供サービス契約番号（ＰＬＣ）２"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号（ＰＬＣ）３単項目チェック
		if (!isHannkakuESuuji(data_list.get(36), 12, false, "機器情報(ネット)：機器提供サービス契約番号（ＰＬＣ）３"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号（ＰＬＣ）４単項目チェック
		if (!isHannkakuESuuji(data_list.get(37), 12, false, "機器情報(ネット)：機器提供サービス契約番号（ＰＬＣ）４"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号（ＰＬＣ）５単項目チェック
		if (!isHannkakuESuuji(data_list.get(38), 12, false, "機器情報(ネット)：機器提供サービス契約番号（ＰＬＣ）５"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号（ＰＬＣ）６単項目チェック
		if (!isHannkakuESuuji(data_list.get(39), 12, false, "機器情報(ネット)：機器提供サービス契約番号（ＰＬＣ）６"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号（ＰＬＣ）７単項目チェック
		if (!isHannkakuESuuji(data_list.get(40), 12, false, "機器情報(ネット)：機器提供サービス契約番号（ＰＬＣ）７"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号（ＰＬＣ）８単項目チェック
		if (!isHannkakuESuuji(data_list.get(41), 12, false, "機器情報(ネット)：機器提供サービス契約番号（ＰＬＣ）８"))
		{
			err_cunt++;
		}
		
		// 宅内機器異動コード（ルータ）単項目チェック
		if (!isHannkakuESuuji(data_list.get(42), 2, false, "機器情報(ネット)：宅内機器異動コード（ルータ）"))
		{
			err_cunt++;
		}
		
		// 宅内機器異動コード（ＰＬＣ）１単項目チェック
		if (!isHannkakuESuuji(data_list.get(43), 2, false, "機器情報(ネット)：宅内機器異動コード（ＰＬＣ）１"))
		{
			err_cunt++;
		}
		
		// 宅内機器異動区分（ＰＬＣ）２単項目チェック
		if (!isHannkakuESuuji(data_list.get(44), 2, false, "機器情報(ネット)：宅内機器異動区分（ＰＬＣ）２"))
		{
			err_cunt++;
		}
		
		// 宅内機器異動コード（ＰＬＣ）３単項目チェック
		if (!isHannkakuESuuji(data_list.get(45), 2, false, "機器情報(ネット)：宅内機器異動コード（ＰＬＣ）３"))
		{
			err_cunt++;
		}
		
		// 宅内機器異動コード（ＰＬＣ）４単項目チェック
		if (!isHannkakuESuuji(data_list.get(46), 2, false, "機器情報(ネット)：宅内機器異動コード（ＰＬＣ）４"))
		{
			err_cunt++;
		}
		
		// 宅内機器異動コード（ＰＬＣ）５単項目チェック
		if (!isHannkakuESuuji(data_list.get(47), 2, false, "機器情報(ネット)：宅内機器異動コード（ＰＬＣ）５"))
		{
			err_cunt++;
		}
		
		// 宅内機器異動コード（ＰＬＣ）６単項目チェック
		if (!isHannkakuESuuji(data_list.get(48), 2, false, "機器情報(ネット)：宅内機器異動コード（ＰＬＣ）６"))
		{
			err_cunt++;
		}
		
		// 宅内機器異動コード（ＰＬＣ）７単項目チェック
		if (!isHannkakuESuuji(data_list.get(49), 2, false, "機器情報(ネット)：宅内機器異動コード（ＰＬＣ）７"))
		{
			err_cunt++;
		}
		
		// 宅内機器異動コード（ＰＬＣ）８単項目チェック
		if (!isHannkakuESuuji(data_list.get(50), 2, false, "機器情報(ネット)：宅内機器異動コード（ＰＬＣ）８"))
		{
			err_cunt++;
		}
		
		// 宅内機器型式コード（撤去ルータ）単項目チェック
		if (!isHannkakuESuuji2(data_list.get(51), 20, false, "機器情報(ネット)：宅内機器型式コード（撤去ルータ）"))
		{
				err_cunt++;
		}
		
		// 機器製造番号（撤去ルーター）単項目チェック
		if (!isHannkakuESuuji2(data_list.get(52), 20, false, "機器情報(ネット)：機器製造番号（撤去ルーター）"))
		{
			err_cunt++;
		}
		
		// 宅内機器型式コード（多機能ルーター）単項目チェック
		if (!isHannkakuESuuji2(data_list.get(53), 20, false, "機器情報(ネット)：宅内機器型式コード（多機能ルーター）"))
		{
			err_cunt++;
		}
		
		// 機器製造番号（多機能ルーター）単項目チェック
		if (!isHannkakuESuuji2(data_list.get(54), 20, false, "機器情報(ネット)：機器製造番号（多機能ルーター）"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号（多機能ルーター）単項目チェック
		if (!isHannkakuESuuji(data_list.get(55), 12, false, "機器情報(ネット)：機器提供サービス契約番号（多機能ルーター）"))
		{
			err_cunt++;
		}
		
		// 宅内機器異動コード（多機能ルーター）単項目チェック
		if (!isHannkakuESuuji(data_list.get(56), 2, false, "機器情報(ネット)：宅内機器異動コード（多機能ルーター）"))
		{
			err_cunt++;
		}
		
		// 宅内機器型式コード（撤去多機能ルーター）単項目チェック
		if (!isHannkakuESuuji2(data_list.get(57), 20, false, "機器情報(ネット)：宅内機器型式コード（撤去多機能ルーター）"))
		{
				err_cunt++;
		}
		
		// 機器製造番号（撤去多機能ルーター）単項目チェック
		if (!isHannkakuESuuji2(data_list.get(58), 20, false, "機器情報(ネット)：機器製造番号（撤去多機能ルーター）"))
		{
			err_cunt++;
		}
		
		// 全ての項目がOKの場合設定。
		if (0 == err_cunt)
		{
			// サービス契約番号
			kiki_inf_net.append(data_list.get(1));
			kiki_inf_net.append(CONMA);
			// サービス契約回線内訳番号
			kiki_inf_net.append(data_list.get(2));
			kiki_inf_net.append(CONMA);
			// 連携年月日
			kiki_inf_net.append(data_list.get(3));
			kiki_inf_net.append(CONMA);
			// 通番
			kiki_inf_net.append(data_list.get(4));
			kiki_inf_net.append(CONMA);
			// 新規変更区分
			kiki_inf_net.append(data_list.get(5));
			kiki_inf_net.append(CONMA);
			// 工事案件種別
			kiki_inf_net.append(data_list.get(6));
			kiki_inf_net.append(CONMA);
			// 工事案件番号
			kiki_inf_net.append(data_list.get(7));
			kiki_inf_net.append(CONMA);
			// 工事会社配送先コード
			kiki_inf_net.append(data_list.get(8));
			kiki_inf_net.append(CONMA);
			// 宅内機器型式コード(ONU)
			kiki_inf_net.append(data_list.get(9));
			kiki_inf_net.append(CONMA);
			// MACアドレス(ONU)
			kiki_inf_net.append(data_list.get(10));
			kiki_inf_net.append(CONMA);
			// 宅内機器型式コード(VA)
			kiki_inf_net.append(data_list.get(11));
			kiki_inf_net.append(CONMA);
			// 機器製造番号(VA)
			kiki_inf_net.append(data_list.get(12));
			kiki_inf_net.append(CONMA);
			// 宅内機器型式コード(ルーター)
			kiki_inf_net.append(data_list.get(13));
			kiki_inf_net.append(CONMA);
			// 機器製造番号(ルーター)
			kiki_inf_net.append(data_list.get(14));
			kiki_inf_net.append(CONMA);
			// 宅内機器型式コード(PLC)1
			kiki_inf_net.append(data_list.get(15));
			kiki_inf_net.append(CONMA);
			// 機器製造番号(PLC)1
			kiki_inf_net.append(data_list.get(16));
			kiki_inf_net.append(CONMA);
			// 宅内機器型式コード(PLC)2
			kiki_inf_net.append(data_list.get(17));
			kiki_inf_net.append(CONMA);
			// 機器製造番号(PLC)2
			kiki_inf_net.append(data_list.get(18));
			kiki_inf_net.append(CONMA);
			// 宅内機器型式コード(PLC)3
			kiki_inf_net.append(data_list.get(19));
			kiki_inf_net.append(CONMA);
			// 機器製造番号(PLC)3
			kiki_inf_net.append(data_list.get(20));
			kiki_inf_net.append(CONMA);
			// 宅内機器型式コード(PLC)4
			kiki_inf_net.append(data_list.get(21));
			kiki_inf_net.append(CONMA);
			// 機器製造番号(PLC)4
			kiki_inf_net.append(data_list.get(22));
			kiki_inf_net.append(CONMA);
			// 宅内機器型式コード(PLC)5
			kiki_inf_net.append(data_list.get(23));
			kiki_inf_net.append(CONMA);
			// 機器製造番号(PLC)5
			kiki_inf_net.append(data_list.get(24));
			kiki_inf_net.append(CONMA);
			// 宅内機器型式コード(PLC)6
			kiki_inf_net.append(data_list.get(25));
			kiki_inf_net.append(CONMA);
			// 機器製造番号(PLC)6
			kiki_inf_net.append(data_list.get(26));
			kiki_inf_net.append(CONMA);
			// 宅内機器型式コード(PLC)7
			kiki_inf_net.append(data_list.get(27));
			kiki_inf_net.append(CONMA);
			// 機器製造番号(PLC)7
			kiki_inf_net.append(data_list.get(28));
			kiki_inf_net.append(CONMA);
			// 宅内機器型式コード(PLC)8
			kiki_inf_net.append(data_list.get(29));
			kiki_inf_net.append(CONMA);
			// 機器製造番号(PLC)8
			kiki_inf_net.append(data_list.get(30));
			kiki_inf_net.append(CONMA);
			// 機器提供サービス契約番号（ＯＮＵ）
			kiki_inf_net.append(data_list.get(31));
			kiki_inf_net.append(CONMA);
			// 機器提供サービス契約番号（ＶＡ）
			kiki_inf_net.append(data_list.get(32));
			kiki_inf_net.append(CONMA);
			// 機器提供サービス契約番号（ＶＡ）
			kiki_inf_net.append(data_list.get(33));
			kiki_inf_net.append(CONMA);
			// 機器提供サービス契約番号（ＰＬＣ）１
			kiki_inf_net.append(data_list.get(34));
			kiki_inf_net.append(CONMA);
			// 機器提供サービス契約番号（ＰＬＣ）２
			kiki_inf_net.append(data_list.get(35));
			kiki_inf_net.append(CONMA);
			// 機器提供サービス契約番号（ＰＬＣ）３
			kiki_inf_net.append(data_list.get(36));
			kiki_inf_net.append(CONMA);
			// 機器提供サービス契約番号（ＰＬＣ）４
			kiki_inf_net.append(data_list.get(37));
			kiki_inf_net.append(CONMA);
			// 機器提供サービス契約番号（ＰＬＣ）５
			kiki_inf_net.append(data_list.get(38));
			kiki_inf_net.append(CONMA);
			// 機器提供サービス契約番号（ＰＬＣ）６
			kiki_inf_net.append(data_list.get(39));
			kiki_inf_net.append(CONMA);
			// 機器提供サービス契約番号（ＰＬＣ）７
			kiki_inf_net.append(data_list.get(40));
			kiki_inf_net.append(CONMA);
			// 機器提供サービス契約番号（ＰＬＣ）８
			kiki_inf_net.append(data_list.get(41));
			kiki_inf_net.append(CONMA);
			// 宅内機器異動コード(ルーター)
			kiki_inf_net.append(data_list.get(42));
			kiki_inf_net.append(CONMA);
			// 宅内機器異動コード（ＰＬＣ）１
			kiki_inf_net.append(data_list.get(43));
			kiki_inf_net.append(CONMA);
			// 宅内機器異動コード(PLC)2
			kiki_inf_net.append(data_list.get(44));
			kiki_inf_net.append(CONMA);
			// 宅内機器異動コード(PLC)3
			kiki_inf_net.append(data_list.get(45));
			kiki_inf_net.append(CONMA);
			// 宅内機器異動コード(PLC)4
			kiki_inf_net.append(data_list.get(46));
			kiki_inf_net.append(CONMA);
			// 宅内機器異動コード(PLC)5
			kiki_inf_net.append(data_list.get(47));
			kiki_inf_net.append(CONMA);
			// 宅内機器異動コード(PLC)6
			kiki_inf_net.append(data_list.get(48));
			kiki_inf_net.append(CONMA);
			// 宅内機器異動コード(PLC)7
			kiki_inf_net.append(data_list.get(49));
			kiki_inf_net.append(CONMA);
			// 宅内機器異動コード(PLC)8
			kiki_inf_net.append(data_list.get(50));
			kiki_inf_net.append(CONMA);
			// 宅内機器型式コード(撤去ルーター)
			kiki_inf_net.append(data_list.get(51));
			kiki_inf_net.append(CONMA);
			// 機器製造番号(撤去ルーター)
			kiki_inf_net.append(data_list.get(52));
			kiki_inf_net.append(CONMA);
			// 宅内機器型式コード（多機能ルーター）
			kiki_inf_net.append(data_list.get(53));
			kiki_inf_net.append(CONMA);
			// 機器製造番号（多機能ルーター）
			kiki_inf_net.append(data_list.get(54));
			kiki_inf_net.append(CONMA);
			// 機器提供サービス契約番号（多機能ルーター）
			kiki_inf_net.append(data_list.get(55));
			kiki_inf_net.append(CONMA);
			// 宅内機器異動コード（多機能ルーター）
			kiki_inf_net.append(data_list.get(56));
			kiki_inf_net.append(CONMA);
			// 宅内機器型式コード（撤去多機能ルーター）
			kiki_inf_net.append(data_list.get(57));
			kiki_inf_net.append(CONMA);
			// 機器製造番号（撤去多機能ルーター）
			kiki_inf_net.append(data_list.get(58));
			
			// レコード区分
			kiki_inf_net.append(CONMA);
			kiki_inf_net.append(data_list.get(0));
			
			// 改行コード
			kiki_inf_net.append(KAIGYOU_CODE);
		}
		
		super.logPrint.printDebugLog("setKikiNetInf_END");
	}
	
	/**
	 * 機器情報(テレビ)データを設定します。<br>
	 * <p>
	 * @param data_list ファイル名(フルパス)
	 * @param kiki_Inf_tv 文字列データ保持
	 * @throws Exception 
	 */	
	private void setKikiInfTv(ArrayList<String> data_list, StringBuilder kiki_Inf_tv) throws JBSbatBusinessException
	{
		super.logPrint.printDebugLog("setKikiInfTv_START");
		
		int err_cunt = 0;
		
		// サービス契約番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(1), 10, true, "機器情報(テレビ)：サービス契約番号"))
		{
			err_cunt++;
		}
		
		// サービス契約回線内訳番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(2), 12, true, "機器情報(テレビ)：サービス契約回線内訳番号"))
		{
			err_cunt++;
		}
		
		// 連携年月日単項目チェック
		if (!isYearMonthDay(data_list.get(3), true, "機器情報(テレビ)：連携年月日"))
		{
			err_cunt++;
		}
		
		// 通番単項目チェック
		if (!isHannkakuSuuji1(data_list.get(4), 12, true, "機器情報(テレビ)：通番"))
		{
			err_cunt++;
		}
		
		// 新規変更区分単項目チェック
		if (!isHannkakuESuuji(data_list.get(5), 1, true, "機器情報(テレビ)：新規変更区分"))
		{
			err_cunt++;
		}
		
		// 工事案件種別コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(6), 3, true, "機器情報(テレビ)：工事案件種別コード"))
		{
			err_cunt++;
		}
		
		// 工事案件番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(7), 10, true, "機器情報(テレビ)：工事案件番号"))
		{
			err_cunt++;
		}
		
		// 工事会社配送先コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(8), 6, false, "機器情報(テレビ)：工事会社配送先コード"))
		{
			err_cunt++;
		}
		
		// 宅内機器型式コード（Ｖ−ＯＮＵ）単項目チェック
		if (!isHannkakuESuuji2(data_list.get(9), 20, false, "機器情報(テレビ)：宅内機器型式コード（Ｖ−ＯＮＵ）"))
		{
			err_cunt++;
		}
		
		// 機器製造番号（Ｖ−ＯＮＵ）単項目チェック
		if (!isHannkakuESuuji2(data_list.get(10), 20, false, "機器情報(テレビ)：機器製造番号（Ｖ−ＯＮＵ）"))
		{
			err_cunt++;
		}
		
		// ＳＴＢ−ＩＤ１単項目チェック
		if (!isHannkakuESuuji(data_list.get(11), 12, false, "機器情報(テレビ)：ＳＴＢ−ＩＤ１"))
		{
			err_cunt++;
		}
		
		// Ｂ−ＣＡＳ−ＩＤ１単項目チェック
		if (!isHannkakuESuuji(data_list.get(12), 20, false, "機器情報(テレビ)：Ｂ−ＣＡＳ−ＩＤ１"))
		{
			err_cunt++;
		}
		
		// Ｃ−ＣＡＳ−ＩＤ１単項目チェック
		if (!isHannkakuESuuji(data_list.get(13), 20, false, "機器情報(テレビ)：Ｃ−ＣＡＳ−ＩＤ１"))
		{
			err_cunt++;
		}
		
		// ＳＴＢ−ＩＤ２単項目チェック
		if (!isHannkakuESuuji(data_list.get(14), 12, false, "機器情報(テレビ)：ＳＴＢ−ＩＤ２"))
		{
			err_cunt++;
		}
		
		// Ｂ−ＣＡＳ−ＩＤ２単項目チェック
		if (!isHannkakuESuuji(data_list.get(15), 20, false, "機器情報(テレビ)：Ｂ−ＣＡＳ−ＩＤ２"))
		{
			err_cunt++;
		}
		
		// Ｃ−ＣＡＳ−ＩＤ２単項目チェック
		if (!isHannkakuESuuji(data_list.get(16), 20, false, "機器情報(テレビ)：Ｃ−ＣＡＳ−ＩＤ２"))
		{
			err_cunt++;
		}
		
		// ＳＴＢ−ＩＤ３単項目チェック
		if (!isHannkakuESuuji(data_list.get(17), 12, false, "機器情報(テレビ)：ＳＴＢ−ＩＤ３"))
		{
			err_cunt++;
		}
		
		// Ｂ−ＣＡＳ−ＩＤ３単項目チェック
		if (!isHannkakuESuuji(data_list.get(18), 20, false, "機器情報(テレビ)：Ｂ−ＣＡＳ−ＩＤ３"))
		{
			err_cunt++;
		}
		
		// Ｃ−ＣＡＳ−ＩＤ３単項目チェック
		if (!isHannkakuESuuji(data_list.get(19), 20, false, "機器情報(テレビ)：Ｃ−ＣＡＳ−ＩＤ３"))
		{
			err_cunt++;
		}
		
		// ＳＴＢ−ＩＤ４単項目チェック
		if (!isHannkakuESuuji(data_list.get(20), 12, false, "機器情報(テレビ)：ＳＴＢ−ＩＤ４"))
		{
			err_cunt++;
		}
		
		// Ｂ−ＣＡＳ−ＩＤ４単項目チェック
		if (!isHannkakuESuuji(data_list.get(21), 20, false, "機器情報(テレビ)：Ｂ−ＣＡＳ−ＩＤ４"))
		{
			err_cunt++;
		}
		
		// Ｃ−ＣＡＳ−ＩＤ４単項目チェック
		if (!isHannkakuESuuji(data_list.get(22), 20, false, "機器情報(テレビ)：Ｃ−ＣＡＳ−ＩＤ４"))
		{
			err_cunt++;
		}
		
		// ＳＴＢ−ＩＤ５単項目チェック
		if (!isHannkakuESuuji(data_list.get(23), 12, false, "機器情報(テレビ)：ＳＴＢ−ＩＤ５"))
		{
			err_cunt++;
		}
		
		// Ｂ−ＣＡＳ−ＩＤ５単項目チェック
		if (!isHannkakuESuuji(data_list.get(24), 20, false, "機器情報(テレビ)：Ｂ−ＣＡＳ−ＩＤ５"))
		{
			err_cunt++;
		}
		
		// Ｃ−ＣＡＳ−ＩＤ５単項目チェック
		if (!isHannkakuESuuji(data_list.get(25), 20, false, "機器情報(テレビ)：Ｃ−ＣＡＳ−ＩＤ５"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号（Ｖ−ＯＮＵ）単項目チェック
		if (!isHannkakuESuuji(data_list.get(26), 12, false, "機器情報(テレビ)：機器提供サービス契約番号（Ｖ−ＯＮＵ）"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号（ＳＴＢ１）単項目チェック
		if (!isHannkakuESuuji(data_list.get(27), 12, false, "機器情報(テレビ)：機器提供サービス契約番号（ＳＴＢ１）"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号（Ｂ−ＣＡＳ１）単項目チェック
		if (!isHannkakuESuuji(data_list.get(28), 12, false, "機器情報(テレビ)：機器提供サービス契約番号（Ｂ−ＣＡＳ１）"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号（Ｃ−ＣＡＳ１）単項目チェック
		if (!isHannkakuESuuji(data_list.get(29), 12, false, "機器情報(テレビ)：機器提供サービス契約番号（Ｃ−ＣＡＳ１）"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号（ＳＴＢ２）単項目チェック
		if (!isHannkakuESuuji(data_list.get(30), 12, false, "機器情報(テレビ)：機器提供サービス契約番号（ＳＴＢ２）"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号（Ｂ−ＣＡＳ２）単項目チェック
		if (!isHannkakuESuuji(data_list.get(31), 12, false, "機器情報(テレビ)：機器提供サービス契約番号（Ｂ−ＣＡＳ２）"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号（Ｃ−ＣＡＳ２）単項目チェック
		if (!isHannkakuESuuji(data_list.get(32), 12, false, "機器情報(テレビ)：機器提供サービス契約番号（Ｃ−ＣＡＳ２）"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号（ＳＴＢ３）単項目チェック
		if (!isHannkakuESuuji(data_list.get(33), 12, false, "機器情報(テレビ)：機器提供サービス契約番号（ＳＴＢ３）"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号（Ｂ−ＣＡＳ３）単項目チェック
		if (!isHannkakuESuuji(data_list.get(34), 12, false, "機器情報(テレビ)：機器提供サービス契約番号（Ｂ−ＣＡＳ３）"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号（Ｃ−ＣＡＳ３）単項目チェック
		if (!isHannkakuESuuji(data_list.get(35), 12, false, "機器情報(テレビ)：機器提供サービス契約番号（Ｃ−ＣＡＳ３）"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号（ＳＴＢ４）単項目チェック
		if (!isHannkakuESuuji(data_list.get(36), 12, false, "機器情報(テレビ)：機器提供サービス契約番号（ＳＴＢ４）"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号（Ｂ−ＣＡＳ４）単項目チェック
		if (!isHannkakuESuuji(data_list.get(37), 12, false, "機器情報(テレビ)：機器提供サービス契約番号（Ｂ−ＣＡＳ４）"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号（Ｃ−ＣＡＳ４）単項目チェック
		if (!isHannkakuESuuji(data_list.get(38), 12, false, "機器情報(テレビ)：機器提供サービス契約番号（Ｃ−ＣＡＳ４）"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号（ＳＴＢ５）単項目チェック
		if (!isHannkakuESuuji(data_list.get(39), 12, false, "機器情報(テレビ)：機器提供サービス契約番号（ＳＴＢ５）"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号（Ｂ−ＣＡＳ５）単項目チェック
		if (!isHannkakuESuuji(data_list.get(40), 12, false, "機器情報(テレビ)：機器提供サービス契約番号（Ｂ−ＣＡＳ５）"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号（Ｃ−ＣＡＳ５）単項目チェック
		if (!isHannkakuESuuji(data_list.get(41), 12, false, "機器情報(テレビ)：機器提供サービス契約番号（Ｃ−ＣＡＳ５）"))
		{
			err_cunt++;
		}
		
		// 宅内機器異動コード（Ｖ−ＯＮＵ）単項目チェック
		if (!isHannkakuESuuji(data_list.get(42), 2, false, "機器情報(テレビ)：宅内機器異動コード（Ｖ−ＯＮＵ）"))
		{
			err_cunt++;
		}
		
		// 宅内機器異動区分（ＳＴＢ１）単項目チェック
		if (!isHannkakuESuuji(data_list.get(43), 2, false, "機器情報(テレビ)：宅内機器異動区分（ＳＴＢ１）"))
		{
			err_cunt++;
		}
		
		// 宅内機器異動区分（ＳＴＢ２）単項目チェック
		if (!isHannkakuESuuji(data_list.get(44), 2, false, "機器情報(テレビ)：宅内機器異動区分（ＳＴＢ２）"))
		{
			err_cunt++;
		}
		
		// 宅内機器異動区分（ＳＴＢ３）単項目チェック
		if (!isHannkakuESuuji(data_list.get(45), 2, false, "機器情報(テレビ)：宅内機器異動区分（ＳＴＢ３）"))
		{
			err_cunt++;
		}
		
		// 宅内機器異動区分（ＳＴＢ４）単項目チェック
		if (!isHannkakuESuuji(data_list.get(46), 2, false, "機器情報(テレビ)：宅内機器異動区分（ＳＴＢ４）"))
		{
			err_cunt++;
		}
		
		// 宅内機器異動区分（ＳＴＢ５）単項目チェック
		if (!isHannkakuESuuji(data_list.get(47), 2, false, "機器情報(テレビ)：宅内機器異動区分（ＳＴＢ５）"))
		{
			err_cunt++;
		}
		
		// ＳＴＢ無メニュー単項目チェック
		if (!isHannkakuESuuji(data_list.get(48), 1, false, "機器情報(テレビ)：ＳＴＢ無メニュー"))
		{
			err_cunt++;
		}
		
		// 契約変更コメントは、文字コード変換を行った後セットします。
		String keiChgComment = JBSbatInterface.charConverter(data_list.get(49));
		
		// 契約変更コメント単項目チェック
		if (!isZenkaku(keiChgComment, 50, false, "機器情報(テレビ)：契約変更コメント"))
		{
			err_cunt++;
		}
		
		// 全ての項目がOKの場合設定。
		if (0 == err_cunt)
		{
			// サービス契約番号
			kiki_Inf_tv.append(data_list.get(1));
			kiki_Inf_tv.append(CONMA);
			// サービス契約回線内訳番号
			kiki_Inf_tv.append(data_list.get(2));
			kiki_Inf_tv.append(CONMA);
			// 連携年月日
			kiki_Inf_tv.append(data_list.get(3));
			kiki_Inf_tv.append(CONMA);
			// 通番
			kiki_Inf_tv.append(data_list.get(4));
			kiki_Inf_tv.append(CONMA);
			// 新規変更区分
			kiki_Inf_tv.append(data_list.get(5));
			kiki_Inf_tv.append(CONMA);
			// 工事案件種別
			kiki_Inf_tv.append(data_list.get(6));
			kiki_Inf_tv.append(CONMA);
			// 工事案件番号
			kiki_Inf_tv.append(data_list.get(7));
			kiki_Inf_tv.append(CONMA);
			// 工事会社配送先コード
			kiki_Inf_tv.append(data_list.get(8));
			kiki_Inf_tv.append(CONMA);
			// 宅内機器型式コード(V-ONU)
			kiki_Inf_tv.append(data_list.get(9));
			kiki_Inf_tv.append(CONMA);
			// 機器製造番号(V-ONU)
			kiki_Inf_tv.append(data_list.get(10));
			kiki_Inf_tv.append(CONMA);
			//STB-ID1
			kiki_Inf_tv.append(data_list.get(11));
			kiki_Inf_tv.append(CONMA);
			// B-CAS-ID1
			kiki_Inf_tv.append(data_list.get(12));
			kiki_Inf_tv.append(CONMA);
			// C-CAS-ID1
			kiki_Inf_tv.append(data_list.get(13));
			kiki_Inf_tv.append(CONMA);
			// STB-ID2
			kiki_Inf_tv.append(data_list.get(14));
			kiki_Inf_tv.append(CONMA);
			// B-CAS-ID2
			kiki_Inf_tv.append(data_list.get(15));
			kiki_Inf_tv.append(CONMA);
			// C-CAS-ID2
			kiki_Inf_tv.append(data_list.get(16));
			kiki_Inf_tv.append(CONMA);
			// STB-ID3
			kiki_Inf_tv.append(data_list.get(17));
			kiki_Inf_tv.append(CONMA);
			// B-CAS-ID3
			kiki_Inf_tv.append(data_list.get(18));
			kiki_Inf_tv.append(CONMA);
			// C-CAS-ID3
			kiki_Inf_tv.append(data_list.get(19));
			kiki_Inf_tv.append(CONMA);
			// STB-ID4
			kiki_Inf_tv.append(data_list.get(20));
			kiki_Inf_tv.append(CONMA);
			// B-CAS-ID4
			kiki_Inf_tv.append(data_list.get(21));
			kiki_Inf_tv.append(CONMA);
			// C-CAS-ID4
			kiki_Inf_tv.append(data_list.get(22));
			kiki_Inf_tv.append(CONMA);
			// STB-ID5
			kiki_Inf_tv.append(data_list.get(23));
			kiki_Inf_tv.append(CONMA);
			// B-CAS-ID5
			kiki_Inf_tv.append(data_list.get(24));
			kiki_Inf_tv.append(CONMA);
			// C-CAS-ID5
			kiki_Inf_tv.append(data_list.get(25));
			kiki_Inf_tv.append(CONMA);
			kiki_Inf_tv.append(data_list.get(26));
			kiki_Inf_tv.append(CONMA);
			kiki_Inf_tv.append(data_list.get(27));
			kiki_Inf_tv.append(CONMA);
			kiki_Inf_tv.append(data_list.get(28));
			kiki_Inf_tv.append(CONMA);
			kiki_Inf_tv.append(data_list.get(29));
			kiki_Inf_tv.append(CONMA);
			kiki_Inf_tv.append(data_list.get(30));
			kiki_Inf_tv.append(CONMA);
			kiki_Inf_tv.append(data_list.get(31));
			kiki_Inf_tv.append(CONMA);
			kiki_Inf_tv.append(data_list.get(32));
			kiki_Inf_tv.append(CONMA);
			kiki_Inf_tv.append(data_list.get(33));
			kiki_Inf_tv.append(CONMA);
			kiki_Inf_tv.append(data_list.get(34));
			kiki_Inf_tv.append(CONMA);
			kiki_Inf_tv.append(data_list.get(35));
			kiki_Inf_tv.append(CONMA);
			kiki_Inf_tv.append(data_list.get(36));
			kiki_Inf_tv.append(CONMA);
			kiki_Inf_tv.append(data_list.get(37));
			kiki_Inf_tv.append(CONMA);
			kiki_Inf_tv.append(data_list.get(38));
			kiki_Inf_tv.append(CONMA);
			kiki_Inf_tv.append(data_list.get(39));
			kiki_Inf_tv.append(CONMA);
			kiki_Inf_tv.append(data_list.get(40));
			kiki_Inf_tv.append(CONMA);
			kiki_Inf_tv.append(data_list.get(41));
			kiki_Inf_tv.append(CONMA);
			kiki_Inf_tv.append(data_list.get(42));
			kiki_Inf_tv.append(CONMA);
			kiki_Inf_tv.append(data_list.get(43));
			kiki_Inf_tv.append(CONMA);
			kiki_Inf_tv.append(data_list.get(44));
			kiki_Inf_tv.append(CONMA);
			kiki_Inf_tv.append(data_list.get(45));
			kiki_Inf_tv.append(CONMA);
			kiki_Inf_tv.append(data_list.get(46));
			kiki_Inf_tv.append(CONMA);
			kiki_Inf_tv.append(data_list.get(47));
			kiki_Inf_tv.append(CONMA);
			kiki_Inf_tv.append(data_list.get(48));
			kiki_Inf_tv.append(CONMA);
			kiki_Inf_tv.append(data_list.get(49));
			
			// レコード区分
			kiki_Inf_tv.append(CONMA);
			kiki_Inf_tv.append(data_list.get(0));
			
			// 改行コード
			kiki_Inf_tv.append(KAIGYOU_CODE);
		}
		super.logPrint.printDebugLog("setKikiInfTv_END");
	}
	
	/**
	 * 工事取消情報データを設定します。<br>
	 * <p>
	 * @param data_list ファイル名(フルパス)
	 * @param koji_cl_inf 文字列データ保持
	 * @throws Exception 
	 */	
	private void setKojiClInf(ArrayList<String> data_list, StringBuilder koji_cl_inf) throws JBSbatBusinessException
	{
		super.logPrint.printDebugLog("setKojiClInf_START");
		
		int err_cunt = 0;
		
		// サービス契約番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(1), 10, true, "工事取消情報：サービス契約番号"))
		{
			err_cunt++;
		}
		
		// サービス契約回線内訳番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(2), 12, true, "工事取消情報：サービス契約回線内訳番号"))
		{
			err_cunt++;
		}
		
		// 連携年月日単項目チェック
		if (!isYearMonthDay(data_list.get(3), true, "工事取消情報：連携年月日"))
		{
			err_cunt++;
		}
		
		// 通番単項目チェック
		if (!isHannkakuSuuji1(data_list.get(4), 12, true, "工事取消情報：通番"))
		{
			err_cunt++;
		}
		
		// 新規変更区分単項目チェック
		if (!isHannkakuESuuji(data_list.get(5), 1, false, "工事取消情報：新規変更区分"))
		{
			err_cunt++;
		}
		
		// 工事案件種別コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(6), 3, false, "工事取消情報：工事案件種別コード"))
		{
			err_cunt++;
		}
		
		// 工事案件番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(7), 10, false, "工事取消情報：工事案件番号"))
		{
			err_cunt++;
		}
		
		// 工事案件取消結果コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(8), 1, false, "工事取消情報：工事案件取消結果コード"))
		{
			err_cunt++;
		}
		
		// 工事中止通知年月日単項目チェック
		if (!isYearMonthDay(data_list.get(9), false, "工事取消情報：工事中止通知年月日"))
		{
			err_cunt++;
		}
		
		// 工事案件キャンセル料有無単項目チェック
		if (!isHannkakuESuuji(data_list.get(10), 1, false, "工事取消情報：工事案件キャンセル料有無"))
		{
			err_cunt++;
		}
		
		// 工事案件キャンセル登録年月日単項目チェック
		if (!isYearMonthDay(data_list.get(11), false, "工事取消情報：工事案件キャンセル登録年月日"))
		{
			err_cunt++;
		}
		
		// 工事保留フラグ単項目チェック
		if (!isHannkakuESuuji(data_list.get(12), 1, false, "工事取消情報：工事保留フラグ"))
		{
			err_cunt++;
		}
		
		// 工事案件中止理由コード1単項目チェック
		if (!isHannkakuESuuji(data_list.get(13), 2, false, "工事取消情報：工事案件中止理由コード1"))
		{
			err_cunt++;
		}
		
		// 工事案件中止理由コード2単項目チェック
		if (!isHannkakuESuuji(data_list.get(14), 3, false, "工事取消情報：工事案件中止理由コード2"))
		{
			err_cunt++;
		}
		super.logPrint.printDebugLog("工事案件中止理由コード1：" + data_list.get(13));
		super.logPrint.printDebugLog("工事案件中止理由コード2：" + data_list.get(14));
		
		// 全ての項目がOKの場合設定。
		if (0 == err_cunt)
		{
			// サービス契約番号
			koji_cl_inf.append(data_list.get(1));
			koji_cl_inf.append(CONMA);
			// サービス契約回線内訳番号
			koji_cl_inf.append(data_list.get(2));
			koji_cl_inf.append(CONMA);
			// 連携年月日
			koji_cl_inf.append(data_list.get(3));
			koji_cl_inf.append(CONMA);
			// 通番
			koji_cl_inf.append(data_list.get(4));
			koji_cl_inf.append(CONMA);
			// 新規変更区分
			koji_cl_inf.append(data_list.get(5));
			koji_cl_inf.append(CONMA);
			// 工事案件種別
			koji_cl_inf.append(data_list.get(6));
			koji_cl_inf.append(CONMA);
			// 工事案件番号
			koji_cl_inf.append(data_list.get(7));
			koji_cl_inf.append(CONMA);
			// 工事案件取消結果コード
			koji_cl_inf.append(data_list.get(8));
			koji_cl_inf.append(CONMA);
			// 工事中止通知年月日
			koji_cl_inf.append(data_list.get(9));
			koji_cl_inf.append(CONMA);
			// 工事案件キャンセル料有無
			koji_cl_inf.append(data_list.get(10));
			koji_cl_inf.append(CONMA);
			// 工事案件キャンセル登録年月日
			koji_cl_inf.append(data_list.get(11));
			koji_cl_inf.append(CONMA);
			// 工事保留フラグ
			koji_cl_inf.append(data_list.get(12));
			koji_cl_inf.append(CONMA);
			// 工事案件中止理由コード1
			koji_cl_inf.append(data_list.get(13));
			koji_cl_inf.append(CONMA);
			// 工事案件中止理由コード2
			koji_cl_inf.append(data_list.get(14));
			koji_cl_inf.append(CONMA);
			// 進捗年月日時分秒
			koji_cl_inf.append(SPACE);
			koji_cl_inf.append(CONMA);
			// 異動区分
			koji_cl_inf.append(SPACE);
			
			// レコード区分
			koji_cl_inf.append(CONMA);
			koji_cl_inf.append(data_list.get(0));
			
			// 改行コード
			koji_cl_inf.append(KAIGYOU_CODE);
		}
		
		super.logPrint.printDebugLog("setKojiClInf_END");
	}

	/**
	 * 宅内工事情報データを設定します。<br>
	 * <p>
	 * @param data_list ファイル名(フルパス)
	 * @param takni_koji_inf 文字列データ保持
	 * @throws Exception 
	 */	
	private void setTakniKojiInf(ArrayList<String> data_list, StringBuilder takni_koji_inf) throws JBSbatBusinessException
	{
		super.logPrint.printDebugLog("setTakniKojiInf_START");
		
		int err_cunt = 0;
		
		// サービス契約番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(1), 10, true, "宅内工事情報：サービス契約番号"))
		{
			err_cunt++;
		}
		
		// サービス契約回線内訳番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(2), 12, true, "宅内工事情報：サービス契約回線内訳番号"))
		{
			err_cunt++;
		}
			
		// 連携年月日単項目チェック
		if (!isYearMonthDay(data_list.get(3), true, "宅内工事情報：連携年月日"))
		{
			err_cunt++;
		}
			
		// 通番単項目チェック
		if (!isHannkakuSuuji1(data_list.get(4), 12, true, "宅内工事情報：通番"))
		{
			err_cunt++;
		}
			
		// 新規変更区分単項目チェック
		if (!isHannkakuESuuji(data_list.get(5), 1, true, "宅内工事情報：新規変更区分"))
		{
			err_cunt++;
		}
			
		// 工事案件種別コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(6), 3, true, "宅内工事情報：工事案件種別コード"))
		{
			err_cunt++;
		}
			
		// 工事案件番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(7), 10, true, "宅内工事情報：工事案件番号"))
		{
			err_cunt++;
		}
		
		// 宅内工事完了予定年月日単項目チェック
		if (!isYearMonthDay(data_list.get(8), false, "宅内工事情報：宅内工事完了予定年月日"))
		{
			err_cunt++;
		}
			
		// 宅内工事作業開始時間１単項目チェック
		if (!isHannkakuSuuji1(data_list.get(9), 4, false, "宅内工事情報：宅内工事作業開始時間"))
		{
			err_cunt++;
		}
		
		// 工事都合同時番ポ可否単項目チェック
		if (!isHannkakuESuuji(data_list.get(10), 1, false, "宅内工事情報：工事都合同時番ポ可否"))
		{
			err_cunt++;
		}
		
		// 番ポ同時工事実施フラグ単項目チェック
		if (!isHannkakuESuuji(data_list.get(11), 1, false, "宅内工事情報：番ポ同時工事実施フラグ"))
		{
			err_cunt++;
		}
		
			// 同時番ポ希望有無単項目チェック
		if (!isHannkakuESuuji(data_list.get(12), 1, false, "宅内工事情報：同時番ポ希望有無"))
		{
			err_cunt++;
		}
		
		// 全ての項目がOKの場合設定。
		if (0 == err_cunt)
		{
			// サービス契約番号
			takni_koji_inf.append(data_list.get(1));
			takni_koji_inf.append(CONMA);
			// サービス契約回線内訳番号
			takni_koji_inf.append(data_list.get(2));
			takni_koji_inf.append(CONMA);
			// 連携年月日
			takni_koji_inf.append(data_list.get(3));
			takni_koji_inf.append(CONMA);
			// 通番
			takni_koji_inf.append(data_list.get(4));
			takni_koji_inf.append(CONMA);
			// 新規変更区分
			takni_koji_inf.append(data_list.get(5));
			takni_koji_inf.append(CONMA);
			// 工事案件種別
			takni_koji_inf.append(data_list.get(6));
			takni_koji_inf.append(CONMA);
			// 工事案件番号
			takni_koji_inf.append(data_list.get(7));
			takni_koji_inf.append(CONMA);
			// 宅内工事完了予定年月日
			takni_koji_inf.append(data_list.get(8));
			takni_koji_inf.append(CONMA);
			// 宅内工事作業開始時間
			takni_koji_inf.append(data_list.get(9));
			takni_koji_inf.append(CONMA);
			// 工事都合同時番ポ可否
			takni_koji_inf.append(data_list.get(10));
			takni_koji_inf.append(CONMA);
			// 番ポ同時工事実施フラグ
			takni_koji_inf.append(data_list.get(11));
			takni_koji_inf.append(CONMA);
			// 同時番ポ希望有無
			takni_koji_inf.append(data_list.get(12));
			
			// レコード区分
			takni_koji_inf.append(CONMA);
			takni_koji_inf.append(data_list.get(0));
			
			// 改行コード
			takni_koji_inf.append(KAIGYOU_CODE);
		}
		
		super.logPrint.printDebugLog("setTakniKojiInf_END");
	}

	/**
	 * 工事費情報データを設定します。<br>
	 * <p>
	 * @param data_list ファイル名(フルパス)
	 * @param kojihi_Inf 文字列データ保持
	 * @throws Exception 
	 */	
	private void setKojihiInf(ArrayList<String> data_list, StringBuilder kojihi_Inf) throws JBSbatBusinessException
	{
		super.logPrint.printDebugLog("setKojihiInf_START");
		
		int err_cunt = 0;
		
		// サービス契約番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(1), 10, true, "工事費情報：サービス契約番号"))
		{
			err_cunt++;
		}
		
		// サービス契約回線内訳番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(2), 12, true, "工事費情報：サービス契約回線内訳番号"))
		{
			err_cunt++;
		}
		
		// 連携年月日単項目チェック
		if (!isYearMonthDay(data_list.get(3), true, "工事費情報：連携年月日"))
		{
			err_cunt++;
		}
		
		// 通番単項目チェック
		if (!isHannkakuSuuji1(data_list.get(4), 12, true, "工事費情報：通番"))
		{
			err_cunt++;
		}
		
		// 新規変更区分単項目チェック
		if (!isHannkakuESuuji(data_list.get(5), 1, true, "工事費情報：新規変更区分"))
		{
			err_cunt++;
		}
		
		// 工事案件種別コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(6), 3, false, "工事費情報：工事案件種別コード"))
		{
			err_cunt++;
		}
		
		// 工事案件番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(7), 10, true, "工事費情報：工事案件番号"))
		{
			err_cunt++;
		}
		
		// 一時支払料金番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(8), 12, true, "工事費情報：一時支払料金番号"))
		{
			err_cunt++;
		}
		
		// 工事費合計金額単項目チェック
		if (!isHannkakuSuuji2(data_list.get(9), 12, true, "工事費情報：工事費合計金額"))
		{
			err_cunt++;
		}
		
		// 全ての項目がOKの場合設定。
		if (0 == err_cunt)
		{
			// サービス契約番号
			kojihi_Inf.append(data_list.get(1));
			kojihi_Inf.append(CONMA);
			// サービス契約回線内訳番号
			kojihi_Inf.append(data_list.get(2));
			kojihi_Inf.append(CONMA);
			// 連携年月日
			kojihi_Inf.append(data_list.get(3));
			kojihi_Inf.append(CONMA);
			// 通番
			kojihi_Inf.append(data_list.get(4));
			kojihi_Inf.append(CONMA);
			// 新規変更区分
			kojihi_Inf.append(data_list.get(5));
			kojihi_Inf.append(CONMA);
			// 工事案件種別
			kojihi_Inf.append(data_list.get(6));
			kojihi_Inf.append(CONMA);
			// 工事案件番号
			kojihi_Inf.append(data_list.get(7));
			kojihi_Inf.append(CONMA);
			// 一時支払料金番号の設定
			kojihi_Inf.append(data_list.get(8));
			kojihi_Inf.append(CONMA);
			// 工事費合計金額
			kojihi_Inf.append(data_list.get(9));
			
			// レコード区分
			kojihi_Inf.append(CONMA);
			kojihi_Inf.append(data_list.get(0));
			
			// 改行コード
			kojihi_Inf.append(KAIGYOU_CODE);
		}
		
		super.logPrint.printDebugLog("setKojihiInf_END");
	}
	
	/**
	 * STB着工情報データを設定します。<br>
	 * <p>
	 * @param data_list ファイル名(フルパス)
	 * @param mansion_Inf 文字列データ保持
	 * @throws Exception 
	 */	
	private void setStbChakukoInf(ArrayList<String> data_list, StringBuilder stb_chakuko_Inf) throws JBSbatBusinessException
	{
		super.logPrint.printDebugLog("setStbChakukoInf_START");
	
		int err_cunt = 0;
		
		// サービス契約番号
		if (!isHannkakuESuuji(data_list.get(1), 10, true, "STB着工情報：サービス契約番号"))
		{
			err_cunt++;
		}
		// サービス契約回線内訳番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(2), 12, true, "STB着工情報：サービス契約回線内訳番号"))
		{
			err_cunt++;
		}
		
		// 連携年月日単項目チェック
		if (!isYearMonthDay(data_list.get(3), true, "STB着工情報：連携年月日"))
		{
			err_cunt++;
		}
		
		// 通番単項目チェック
		if (!isHannkakuSuuji1(data_list.get(4), 12, true, "STB着工情報：通番"))
		{
			err_cunt++;
		}
		
		// 新規変更区分単項目チェック
		if (!isHannkakuESuuji(data_list.get(5), 1, true, "STB着工情報：新規変更区分"))
		{
			err_cunt++;
		}
		
		// 工事案件種別コード単項目チェック
		if (!isHannkakuESuuji(data_list.get(6), 3, false, "STB着工情報：工事案件種別コード"))
		{
			err_cunt++;
		}
		
		// 工事案件番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(7), 10, true, "STB着工情報：工事案件番号"))
		{
			err_cunt++;
		}
		
		// 機器提供サービス契約番号単項目チェック
		if (!isHannkakuESuuji(data_list.get(8), 12, true, "STB着工情報：機器提供サービス契約番号"))
		{
			err_cunt++;
		}
		
		// STB-ID単項目チェック
		if (!isHannkakuESuuji(data_list.get(9), 12, true, "STB着工情報：STB-ID"))
		{
			err_cunt++;
		}
		
		// 機器製造番号(B-CAS)単項目チェック
		if (!isHannkakuESuuji(data_list.get(10), 20, false, "STB着工情報：機器製造番号(B-CAS)"))
		{
			err_cunt++;
		}
		
		// 機器製造番号(C-CAS)単項目チェック
		if (!isHannkakuESuuji(data_list.get(11), 20, false, "STB着工情報：機器製造番号(C-CAS)"))
		{
			err_cunt++;
		}
	
		if (0 == err_cunt)
		{
			// レコード区分の設定
			stb_chakuko_Inf.append(data_list.get(0));
			stb_chakuko_Inf.append(CONMA);
			// サービス契約番号の設定
			stb_chakuko_Inf.append(data_list.get(1));
			stb_chakuko_Inf.append(CONMA);
			// サービス契約回線内訳番号の設定
			stb_chakuko_Inf.append(data_list.get(2));
			stb_chakuko_Inf.append(CONMA);
			// 連携年月日の設定
			stb_chakuko_Inf.append(data_list.get(3));
			stb_chakuko_Inf.append(CONMA);
			// 通番の設定
			stb_chakuko_Inf.append(data_list.get(4));
			stb_chakuko_Inf.append(CONMA);
			// 新規変更区分の設定
			stb_chakuko_Inf.append(data_list.get(5));
			stb_chakuko_Inf.append(CONMA);
			// 工事案件種別コードの設定
			stb_chakuko_Inf.append(data_list.get(6));
			stb_chakuko_Inf.append(CONMA);
			// 工事案件番号の設定
			stb_chakuko_Inf.append(data_list.get(7));
			stb_chakuko_Inf.append(CONMA);
			// 機器提供サービス契約番号の設定
			stb_chakuko_Inf.append(data_list.get(8));
			stb_chakuko_Inf.append(CONMA);
			// STB-IDの設定
			stb_chakuko_Inf.append(data_list.get(9));
			stb_chakuko_Inf.append(CONMA);
			// 機器製造番号(B-CAS)の設定
			stb_chakuko_Inf.append(data_list.get(10));
			stb_chakuko_Inf.append(CONMA);
			// 機器製造番号(C-CAS)の設定
			stb_chakuko_Inf.append(data_list.get(11));
			
			// 改行コード
			stb_chakuko_Inf.append(KAIGYOU_CODE);
		}
	
		super.logPrint.printDebugLog("setStbChakukoInf_END");
	}
	
// ANK-3136-00-00 ADD START
	/**
	 * 工事仮キャンセル受付情報データを設定します。<br>
	 * <p>
	 * @param dataList ファイル名(フルパス)
	 * @param krCnclUkInf 文字列データ保持
	 * @throws Exception 
	 */	
	private void setKrCnclUkInf(ArrayList<String> dataList, StringBuilder krCnclUkInf) throws JBSbatBusinessException
	{
		super.logPrint.printDebugLog("setKrCnclUkInf_START");
	
		int errCunt = 0;
		
		// サービス契約番号
		if (!isHannkakuESuuji(dataList.get(1), 10, false, "工事仮キャンセル受付情報：サービス契約番号"))
		{
			errCunt++;
		}
		// サービス契約回線内訳番号単項目チェック
		if (!isHannkakuESuuji(dataList.get(2), 12, false, "工事仮キャンセル受付情報：サービス契約回線内訳番号"))
		{
			errCunt++;
		}
		
		// 連携年月日単項目チェック
		if (!isYearMonthDay(dataList.get(3), false, "工事仮キャンセル受付情報：連携年月日"))
		{
			errCunt++;
		}
		
		// 通番単項目チェック
		if (!isHannkakuSuuji1(dataList.get(4), 12, false, "工事仮キャンセル受付情報：通番"))
		{
			errCunt++;
		}
		
		// 新規変更区分単項目チェック
		if (!isHannkakuESuuji(dataList.get(5), 1, false, "工事仮キャンセル受付情報：新規変更区分"))
		{
			errCunt++;
		}
		
		// 工事案件種別コード単項目チェック
		if (!isHannkakuESuuji(dataList.get(6), 3, false, "工事仮キャンセル受付情報：工事案件種別コード"))
		{
			errCunt++;
		}
		
		// 工事案件番号単項目チェック
		if (!isHannkakuESuuji(dataList.get(7), 10, false, "工事仮キャンセル受付情報：工事案件番号"))
		{
			errCunt++;
		}
		
		// 工事案件仮キャンセル受付年月日単項目チェック
		if (!isYearMonthDay(dataList.get(8), false, "工事仮キャンセル受付情報：工事案件仮キャンセル受付年月日"))
		{
			errCunt++;
		}
		
		// キャンセル理由１単項目チェック
		if (!isHannkakuESuuji(dataList.get(9), 2, false, "工事仮キャンセル受付情報：キャンセル理由１"))
		{
			errCunt++;
		}
		
		// キャンセル理由２単項目チェック
		if (!isHannkakuESuuji(dataList.get(10), 3, false, "工事仮キャンセル受付情報：キャンセル理由２"))
		{
			errCunt++;
		}
		
		if (0 == errCunt)
		{
			// サービス契約番号の設定
			krCnclUkInf.append(dataList.get(1));
			krCnclUkInf.append(CONMA);
			// サービス契約回線内訳番号の設定
			krCnclUkInf.append(dataList.get(2));
			krCnclUkInf.append(CONMA);
			// 連携年月日の設定
			krCnclUkInf.append(dataList.get(3));
			krCnclUkInf.append(CONMA);
			// 通番の設定
			krCnclUkInf.append(dataList.get(4));
			krCnclUkInf.append(CONMA);
			// 新規変更区分の設定
			krCnclUkInf.append(dataList.get(5));
			krCnclUkInf.append(CONMA);
			// 工事案件種別コードの設定
			krCnclUkInf.append(dataList.get(6));
			krCnclUkInf.append(CONMA);
			// 工事案件番号の設定
			krCnclUkInf.append(dataList.get(7));
			krCnclUkInf.append(CONMA);
			// 工事案件仮キャンセル受付年月日の設定
			krCnclUkInf.append(dataList.get(8));
			krCnclUkInf.append(CONMA);
			// キャンセル理由１の設定
			krCnclUkInf.append(dataList.get(9));
			krCnclUkInf.append(CONMA);
			// キャンセル理由２の設定
			krCnclUkInf.append(dataList.get(10));
			
			// レコード区分
			krCnclUkInf.append(CONMA);
			krCnclUkInf.append(dataList.get(0));
			
			// 改行コード
			krCnclUkInf.append(KAIGYOU_CODE);
		}
	
		super.logPrint.printDebugLog("setKrCnclUkInf_END");
	}
	
	/**
	 * 工事仮キャンセル取消情報データを設定します。<br>
	 * <p>
	 * @param dataList ファイル名(フルパス)
	 * @param krCnclClInf 文字列データ保持
	 * @throws Exception 
	 */	
	private void setKrCnclClInf(ArrayList<String> dataList, StringBuilder krCnclClInf) throws JBSbatBusinessException
	{
		super.logPrint.printDebugLog("setKrCnclClInf_START");
	
		int errCunt = 0;
		
		// サービス契約番号
		if (!isHannkakuESuuji(dataList.get(1), 10, false, "工事仮キャンセル取消情報：サービス契約番号"))
		{
			errCunt++;
		}
		// サービス契約回線内訳番号単項目チェック
		if (!isHannkakuESuuji(dataList.get(2), 12, false, "工事仮キャンセル取消情報：サービス契約回線内訳番号"))
		{
			errCunt++;
		}
		
		// 連携年月日単項目チェック
		if (!isYearMonthDay(dataList.get(3), false, "工事仮キャンセル取消情報：連携年月日"))
		{
			errCunt++;
		}
		
		// 通番単項目チェック
		if (!isHannkakuSuuji1(dataList.get(4), 12, false, "工事仮キャンセル取消情報：通番"))
		{
			errCunt++;
		}
		
		// 新規変更区分単項目チェック
		if (!isHannkakuESuuji(dataList.get(5), 1, false, "工事仮キャンセル取消情報：新規変更区分"))
		{
			errCunt++;
		}
		
		// 工事案件種別コード単項目チェック
		if (!isHannkakuESuuji(dataList.get(6), 3, false, "工事仮キャンセル取消情報：工事案件種別コード"))
		{
			errCunt++;
		}
		
		// 工事案件番号単項目チェック
		if (!isHannkakuESuuji(dataList.get(7), 10, false, "工事仮キャンセル取消情報：工事案件番号"))
		{
			errCunt++;
		}
		
		// 工事案件仮キャンセル取消年月日単項目チェック
		if (!isYearMonthDay(dataList.get(8), false, "工事仮キャンセル取消情報：工事案件仮キャンセル取消年月日"))
		{
			errCunt++;
		}
		
		if (0 == errCunt)
		{
			// サービス契約番号の設定
			krCnclClInf.append(dataList.get(1));
			krCnclClInf.append(CONMA);
			// サービス契約回線内訳番号の設定
			krCnclClInf.append(dataList.get(2));
			krCnclClInf.append(CONMA);
			// 連携年月日の設定
			krCnclClInf.append(dataList.get(3));
			krCnclClInf.append(CONMA);
			// 通番の設定
			krCnclClInf.append(dataList.get(4));
			krCnclClInf.append(CONMA);
			// 新規変更区分の設定
			krCnclClInf.append(dataList.get(5));
			krCnclClInf.append(CONMA);
			// 工事案件種別コードの設定
			krCnclClInf.append(dataList.get(6));
			krCnclClInf.append(CONMA);
			// 工事案件番号の設定
			krCnclClInf.append(dataList.get(7));
			krCnclClInf.append(CONMA);
			// 工事案件仮キャンセル取消年月日の設定
			krCnclClInf.append(dataList.get(8));
			
			// レコード区分
			krCnclClInf.append(CONMA);
			krCnclClInf.append(dataList.get(0));
			
			// 改行コード
			krCnclClInf.append(KAIGYOU_CODE);
		}
	
		super.logPrint.printDebugLog("setKrCnclClInf_END");
	}
// ANK-3136-00-00 ADD END
	
	/**
	 * 宅内調査結果情報ファイルを出力します。<br>
	 * <p>
	 * @param file_data 出力情報
	 * @param opt_date バッチ運用日時
	 * @param path ファイルパス
	 * @throws JBSbatBusinessException 
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */	
	private void takchoRsltInfFileOput(String file_data, String path) throws IOException, JBSbatBusinessException
	{
		String file_path = "";
		
		// フルパスを生成。
		file_path = path + TAK_CHO_RSLT_INF__FILE_ID + FILE_KEISHIKI;
		
		// ファイル出力
		executeOutputFile(file_data, file_path, TAK_CHO_RSLT_INF__FILE_ID);
	}
	
	/**
	 * 設計設備情報ファイルを出力します。<br>
	 * <p>
	 * @param file_data 出力情報
	 * @param opt_date バッチ運用日時
	 * @param path ファイルパス
	 * @throws JBSbatBusinessException 
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */	
	private void dsgnEquipInfFileOput(String file_data, String path) throws IOException, JBSbatBusinessException
	{
		String file_path = "";
		
		// フルパスを生成。
		file_path = path + DSGN_EQUIP_INF_FILE_ID + FILE_KEISHIKI;
		
		// ファイル出力
		executeOutputFile(file_data, file_path, DSGN_EQUIP_INF_FILE_ID);
	}

	/**
	 * 伝送設備情報ファイルを出力します。<br>
	 * <p>
	 * @param file_data 出力情報
	 * @param opt_date バッチ運用日時
	 * @param path ファイルパス
	 * @throws JBSbatBusinessException 
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */	
	private void densoEquipInfFileOput(String file_data, String path) throws IOException, JBSbatBusinessException
	{
		String file_path = "";
		
		// フルパスを生成。
		file_path = path + DENSO_EQUIP_INF_FILE_ID + FILE_KEISHIKI;
		
		// ファイル出力
		executeOutputFile(file_data, file_path, DENSO_EQUIP_INF_FILE_ID);
	}

	/**
	 * 工事完了情報ファイルを出力します。<br>
	 * <p>
	 * @param file_data 出力情報
	 * @param opt_date バッチ運用日時
	 * @param path ファイルパス
	 * @throws JBSbatBusinessException 
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */	
	private void kojiFinInfFileOput(String file_data, String path) throws IOException, JBSbatBusinessException
	{
		String file_path = "";
		
		// フルパスを生成。
		file_path = path + KOJI_FIN_INF_FILE_ID + FILE_KEISHIKI;
		
		// ファイル出力
		executeOutputFile(file_data, file_path, KOJI_FIN_INF_FILE_ID);
	}

	/**
	 * 工事予定情報(ネット)ファイルを出力します。<br>
	 * <p>
	 * @param file_data 出力情報
	 * @param opt_date バッチ運用日時
	 * @param path ファイルパス
	 * @throws JBSbatBusinessException 
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */	
	private void kojiRsvNetFileOput(String file_data, String path) throws IOException, JBSbatBusinessException
	{
		String file_path = "";
		
		// フルパスを生成。
		file_path = path + KOJI_RSV_INF_NET_FILE_ID + FILE_KEISHIKI;
		
		// ファイル出力
		executeOutputFile(file_data, file_path, KOJI_RSV_INF_NET_FILE_ID);
	}

	/**
	 * 工事予定情報(テレビ)ファイルを出力します。<br>
	 * <p>
	 * @param file_data 出力情報
	 * @param opt_date バッチ運用日時
	 * @param path ファイルパス
	 * @throws JBSbatBusinessException 
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */	
	private void kojiRsvTvInfFileOput(String file_data, String path) throws IOException, JBSbatBusinessException
	{
		String file_path = "";
		
		// フルパスを生成。
		file_path = path + KOJI_RSV_INF_TV_FILE_ID + FILE_KEISHIKI;
		
		// ファイル出力
		executeOutputFile(file_data, file_path, KOJI_RSV_INF_TV_FILE_ID);
	}

	/**
	 * 機器情報(ネット)ファイルを出力します。<br>
	 * <p>
	 * @param file_data 出力情報
	 * @param opt_date バッチ運用日時
	 * @param path ファイルパス
	 * @throws JBSbatBusinessException 
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */	
	private void kikiNetInfFileOput(String file_data, String path) throws IOException, JBSbatBusinessException
	{
		String file_path = "";
		
		// フルパスを生成。
		file_path = path + KIKI_INF_NET_FILE_ID + FILE_KEISHIKI;
		
		// ファイル出力
		executeOutputFile(file_data, file_path, KIKI_INF_NET_FILE_ID);
	}

	/**
	 * 機器情報(テレビ)ファイルを出力します。<br>
	 * <p>
	 * @param file_data 出力情報
	 * @param opt_date バッチ運用日時
	 * @param path ファイルパス
	 * @throws JBSbatBusinessException 
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */	
	private void kikiInfTvFileOput(String file_data, String path) throws IOException, JBSbatBusinessException
	{
		String file_path = "";
		
		// フルパスを生成。
		file_path = path + KIKI_INF_TV_FILE_ID + FILE_KEISHIKI;
		
		// ファイル出力
		executeOutputFile(file_data, file_path, KIKI_INF_TV_FILE_ID);
	}

	/**
	 * 工事取消情報ファイルを出力します。<br>
	 * <p>
	 * @param file_data 出力情報
	 * @param opt_date バッチ運用日時
	 * @param path ファイルパス
	 * @throws JBSbatBusinessException 
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */	
	private void kojiClInfFileOput(String file_data, String path) throws IOException, JBSbatBusinessException
	{
		String file_path = "";
		
		// フルパスを生成。
		file_path = path + KOJI_CL_INF_FILE_ID + FILE_KEISHIKI;
		
		// ファイル出力
		executeOutputFile(file_data, file_path, KOJI_CL_INF_FILE_ID);
	}

	/**
	 * 宅内工事情報ファイルを出力します。<br>
	 * <p>
	 * @param file_data 出力情報
	 * @param opt_date バッチ運用日時
	 * @param path ファイルパス
	 * @throws JBSbatBusinessException 
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */	
	private void takniKojiInfFileOput(String file_data, String path) throws IOException, JBSbatBusinessException
	{
		String file_path = "";
		
		// フルパスを生成。
		file_path = path + TAKNI_KOJI_INF_FILE_ID + FILE_KEISHIKI;
		
		// ファイル出力
		executeOutputFile(file_data, file_path, TAKNI_KOJI_INF_FILE_ID);
	}

	/**
	 * 工事費情報ファイルを出力します。<br>
	 * <p>
	 * @param file_data 出力情報
	 * @param opt_date バッチ運用日時
	 * @param path ファイルパス
	 * @throws JBSbatBusinessException 
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */	
	private void kojihiInfFileOput(String file_data, String path) throws IOException, JBSbatBusinessException
	{
		String file_path = "";
		
		// フルパスを生成。
		file_path = path + KOJIHI_INF_FILE_ID + FILE_KEISHIKI;
		
		// ファイル出力
		executeOutputFile(file_data, file_path, KOJIHI_INF_FILE_ID);
	}

	/**
	 * ＳＴＢ着工情報ファイルを出力します。<br>
	 * <p>
	 * @param file_data 出力情報
	 * @param opt_date バッチ運用日時
	 * @param path ファイルパス
	 * @throws JBSbatBusinessException 
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */	
	private void stbChakukoInfFileOput(String file_data, String path) throws IOException, JBSbatBusinessException
	{
		String file_path = "";
		
		// フルパスを生成。
		file_path = path + STB_CHAKUKO_INF_FILE_ID + FILE_KEISHIKI;
		
		// ファイル出力
		executeOutputFile(file_data, file_path, STB_CHAKUKO_INF_FILE_ID);
	}

// ANK-3136-00-00 ADD START
	/**
	 * 工事仮キャンセル受付情報ファイルを出力します<br>
	 * <p>
	 * @param file_data 出力情報
	 * @param opt_date バッチ運用日時
	 * @param path ファイルパス
	 * @throws JBSbatBusinessException 
	 * @throws IOException 業務サービス内で発生した例外全般
	 */	
	private void krCnclUkInfFileOput(String fileData, String path) throws IOException, JBSbatBusinessException
	{
		String filePath = "";
		
		// フルパスを生成
		filePath = path + KR_CNCL_UK_FILE_ID + FILE_KEISHIKI;
		
		// ファイル出力
		executeOutputFile(fileData, filePath, KR_CNCL_UK_FILE_ID);
	}

	/**
	 * 工事仮キャンセル取消情報ファイルを出力します<br>
	 * <p>
	 * @param fileData 出力情報
	 * @param opt_date バッチ運用日時
	 * @param path ファイルパス
	 * @throws JBSbatBusinessException 
	 * @throws IOException 業務サービス内で発生した例外全般
	 */	
	private void krCnclClInfFileOput(String fileData, String path) throws IOException, JBSbatBusinessException
	{
		String filePath = "";
		
		// フルパスを生成
		filePath = path + KR_CNCL_CL_FILE_ID + FILE_KEISHIKI;
		
		// ファイル出力
		executeOutputFile(fileData, filePath, KR_CNCL_CL_FILE_ID);
	}
// ANK-3136-00-00 ADD END

	/**
	 * 中間ファイルを出力します。<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 value 値
	 * @param len 桁数
	 * @param flg 必須チェックフラグ（true:チェック実施、false:チェック未実施）
	 * @param name 項目名
	 * @return true：チェックOK、false：チェックNG
	 * @throws JBSbatBusinessException 
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */	
	private boolean isHannkakuESuuji(String value, int len, boolean flg, String name) throws JBSbatBusinessException
	{
		boolean rslt = true;

		// 必須チェック
		if (flg)
		{
			if (null == value || 0 == value.length())
			{
				//業務エラーログ出力
				super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0060TE, new String[]{name});
				return false;
			}
			else
			{
				// 必須チェックの場合でNULL以外および空文字以外
				// 属性チェック
				rslt = JCCBatCommon.isHannkakuESuuji1(value);
				
				if (!rslt)
				{
					//業務エラーログ出力
					super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0080TE, new String[]{name});
					return false;
				}
				
				// 桁数チェック
				if (0 < len)
				{
					if (!JCCBatCommon.isKetasuu2(value, "0", String.valueOf(len)))
					{
						//業務エラーログ出力
						super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0070TE, new String[]{name});
						return false;
					}
				}
			}
		}
		else
		{
			// 必須チェックでない場合でNULL以外かつ空文字以外
			if (null != value && !"".equals(value))
			{
				// 属性チェック
				rslt = JCCBatCommon.isHannkakuESuuji1(value);
				
				if (!rslt)
				{
					//業務エラーログ出力
					super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0080TE, new String[]{name});
					return false;
				}
				
				// 桁数チェック
				if (0 < len)
				{
					if (!JCCBatCommon.isKetasuu2(value, "0", String.valueOf(len)))
					{
						//業務エラーログ出力
						super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0070TE, new String[]{name});
						return false;
					}
				}
			}
		}
		
		return rslt;
	}
	
	/**
	 * 年月日１単項目チェックを実施します。<br>
	 * <p>
	 * @param value 値
	 * @param flg 必須チェックフラグ（true:チェック実施、false:チェック未実施）
	 * @param name 項目名
	 * @return true：チェックOK、false：チェックNG
	 * @throws JBSbatBusinessException 
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */	
	private boolean isYearMonthDay(String value, boolean flg, String name) throws JBSbatBusinessException
	{
		boolean rslt = true;

		// 必須チェック
		if (flg)
		{
			if (null == value || 0 == value.length())
			{
				//業務エラーログ出力
				super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0060TE, new String[]{name});
				return false;
			}
			else
			{
				// 必須チェックでない場合でNULL以外かつ空文字以外
				// 年月日１の単項目チェック
				rslt = JCCBatCommon.isYearMonthDay1(value);
				
				// 結果判断
				if (!rslt)
				{
					//業務エラーログ出力
					super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0080TE, new String[]{name});
					return false;
				}
			}
		}
		else
		{
			// 必須チェックでない場合でNULL以外かつ空文字以外
			if (null != value && !"".equals(value))
			{
				// 年月日１の単項目チェック
				rslt = JCCBatCommon.isYearMonthDay1(value);
				
				// 結果判断
				if (!rslt)
				{
					//業務エラーログ出力
					super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0080TE, new String[]{name});
					return false;
				}
			}
		}
		
		return rslt;
	
	}
	
	/**
	 * 半角数字１単項目チェックを実施します。<br>
	 * <p>
	 * @param value 値
	 * @param len 桁数
	 * @param flg 必須チェックフラグ（true:チェック実施、false:チェック未実施）
	 * @param name 項目名
	 * @return true：チェックOK、false：チェックNG
	 * @throws JBSbatBusinessException 
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */	
	private boolean isHannkakuSuuji1(String value, int len, boolean flg, String name) throws JBSbatBusinessException
	{
		boolean rslt = true;

		// 必須チェック
		if (flg)
		{
			if (null == value || 0 == value.length())
			{
				//業務エラーログ出力
				super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0060TE, new String[]{name});
				return false;
			}
			else
			{
				// 属性チェック
				rslt = JCCBatCommon.isHannkakuSuuji1(value);
				
				if (!rslt)
				{
					//業務エラーログ出力
					super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0080TE, new String[]{name});
					return false;
				}
				
				// 桁数チェック
				if (0 < len)
				{
					if (!JCCBatCommon.isKetasuu2(value, "0", String.valueOf(len)))
					{
						//業務エラーログ出力
						super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0070TE, new String[]{name});
						return false;
					}
				}
			}
		}
		else
		{
			// 必須チェックでない場合でNULL以外かつ空文字以外
			if (null != value && !"".equals(value))
			{
			
				// 属性チェック
				rslt = JCCBatCommon.isHannkakuSuuji1(value);
				
				if (!rslt)
				{
					//業務エラーログ出力
					super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0080TE, new String[]{name});
					return false;
				}
				
				// 桁数チェック
				if (0 < len)
				{
					if (!JCCBatCommon.isKetasuu2(value, "0", String.valueOf(len)))
					{
						//業務エラーログ出力
						super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0070TE, new String[]{name});
						return false;
					}
				}
			}
		}
		
		return rslt;
	}
	
	/**
	 * 半角数字２単項目チェックを実施します。<br>
	 * <p>
	 * @param value 値
	 * @param len 桁数
	 * @param flg 必須チェックフラグ（true:チェック実施、false:チェック未実施）
	 * @param name 項目名
	 * @return true：チェックOK、false：チェックNG
	 * @throws JBSbatBusinessException 
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */	
	private boolean isHannkakuSuuji2(String value, int len, boolean flg, String name) throws JBSbatBusinessException
	{
		boolean rslt = true;

		// 必須チェック
		if (flg)
		{
			if (null == value || 0 == value.length())
			{
				//業務エラーログ出力
				super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0060TE, new String[]{name});
				return false;
			}
			else
			{
				// 属性チェック
				rslt = JCCBatCommon.isHannkakuSuuji2(value);
				
				if (!rslt)
				{
					//業務エラーログ出力
					super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0080TE, new String[]{name});
					return false;
				}
				
				// 桁数チェック
				if (0 < len)
				{
					if (!JCCBatCommon.isKetasuu2(value, "0", String.valueOf(len)))
					{
						//業務エラーログ出力
						super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0070TE, new String[]{name});
						return false;
					}
				}
			}
		}
		else
		{
			// 必須チェックでない場合でNULL以外かつ空文字以外
			if (null != value && !"".equals(value))
			{
			
				// 属性チェック
				rslt = JCCBatCommon.isHannkakuSuuji2(value);
				
				if (!rslt)
				{
					//業務エラーログ出力
					super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0080TE, new String[]{name});
					return false;
				}
				
				// 桁数チェック
				if (0 < len)
				{
					if (!JCCBatCommon.isKetasuu2(value, "0", String.valueOf(len)))
					{
						//業務エラーログ出力
						super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0070TE, new String[]{name});
						return false;
					}
				}
			}
		}
		
		return rslt;
	}

	/**
	 * 全角単項目チェックを実施します。<br>
	 * <p>
	 * @param value 値
	 * @param len 桁数
	 * @param flg 必須チェックフラグ（true:チェック実施、false:チェック未実施）
	 * @param name 項目名
	 * @return true：チェックOK、false：チェックNG
	 * @throws JBSbatBusinessException 
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */	
	private boolean isZenkaku(String value, int len, boolean flg, String name) throws JBSbatBusinessException
	{
		
		boolean rslt = true;
		
		// 必須チェック
		if (flg)
		{
			// NULLでなく、空文字でない場合
			if (null != value && !"".equals(value))
			{
				// 属性チェック
				rslt = JCCBatCommon.isZenkaku(value);
				
				if (!rslt)
				{
					//業務エラーログ出力
					super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0080TE, new String[]{name});
					return false;
				}
				
				// 桁数チェック
				if (0 < len)
				{
					if (!JCCBatCommon.isKetasuu2(value, "0", String.valueOf(len)))
					{
						//業務エラーログ出力
						super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0070TE, new String[]{name});
						return false;
					}
				}
			}
			else
			{
				//業務エラーログ出力
				super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0060TE, new String[]{name});
				return false;
			}
		}
		else
		{
			// 必須チェックでない場合でNULL以外かつ空文字以外
			if (null != value && !"".equals(value))
			{
				// 属性チェック
				rslt = JCCBatCommon.isZenkaku(value);
				
				if (!rslt)
				{
					// 業務エラーログ出力
					super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0080TE, new String[]{name});
					return false;
				}
				
				// 桁数チェック
				if (0 < len)
				{
					if (!JCCBatCommon.isKetasuu2(value, "0", String.valueOf(len)))
					{
						// 業務エラーログ出力
						super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0070TE, new String[]{name});
						return false;
					}
				}
			}
		}
		
		return rslt;
	}
	
	/**
	 * 半角英数字２単項目チェックを実施します。<br>
	 * <p>
	 * @param value 値
	 * @param len 桁数
	 * @param flg 必須チェックフラグ（true:チェック実施、false:チェック未実施）
	 * @param name 項目名
	 * @return true：チェックOK、false：チェックNG
	 * @throws JBSbatBusinessException 
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */	
	private boolean isHannkakuESuuji2(String value, int len, boolean flg, String name) throws JBSbatBusinessException
	{
		boolean rslt = true;

		// 必須チェック
		if (flg)
		{
			if (null == value || 0 == value.length())
			{
				//業務エラーログ出力
				super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0060TE, new String[]{name});
				return false;
			}
			else
			{
				// 必須チェックの場合でNULL以外および空文字以外
				// 属性チェック
				rslt = JCCBatCommon.isHannkakuESuuji2(value);
				
				if (!rslt)
				{
					//業務エラーログ出力
					super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0080TE, new String[]{name});
					return false;
				}
				
				// 桁数チェック
				if (0 < len)
				{
					if (!JCCBatCommon.isKetasuu2(value, "0", String.valueOf(len)))
					{
						//業務エラーログ出力
						super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0070TE, new String[]{name});
						return false;
					}
				}
			}
		}
		else
		{
			// 必須チェックでない場合でNULL以外かつ空文字以外
			if (null != value && !"".equals(value))
			{
				// 属性チェック
				rslt = JCCBatCommon.isHannkakuESuuji2(value);
				
				if (!rslt)
				{
					//業務エラーログ出力
					super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0080TE, new String[]{name});
					return false;
				}
				
				// 桁数チェック
				if (0 < len)
				{
					if (!JCCBatCommon.isKetasuu2(value, "0", String.valueOf(len)))
					{
						//業務エラーログ出力
						super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0070TE, new String[]{name});
						return false;
					}
				}
			}
		}
		
		return rslt;
	}
	
	/**
	 * MIX2項目チェックを実施します。<br>
	 * <p>
	 * @param value 値
	 * @param byt バイト数
	 * @param name 項目名
	 * @return true：チェックOK、false：チェックNG
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */	
	private boolean isMix2(String value, int byt, String name) throws JBSbatBusinessException
	{
		
		boolean rslt = true;
		
		// NULLでなく、空文字でない場合
		if (null != value && !"".equals(value))
		{
			// 属性チェック
			rslt = JCCBatCommon.isMIX2(value);
			
			if (!rslt)
			{
				// 業務エラーログ出力
				super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0080TE, new String[]{name});
				return false;
			}
			
			// バイトチェック
			if (byt > 0)
			{
				try {
					if (!this.isByteSJIS(value, byt))
					{
						// 業務エラーログ出力
						super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0070TE, new String[]{name});
						return false;
					}
				} catch (Exception e) {
					
					throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0070TE, new String[]{name});
				}
			}
		}
		return rslt;
	}
	
	/**
	 * <dl>
	 * <dd>メソッド名：	SJISバイト配列変換チェック処理.
	 * <dd>メソッド説明：エンコードにSJISを指定してバイト数のチェックを行います。
	 * <dd>備考：<br>
	 *          <p>指定した文字列のバイト数が上限値以内かどうかを判定します。
	 *          <p>指定した文字列が空白・nullの場合、trueを返却します。
	 * </dl>
	 * @param str チェック対象の文字列
	 * @param limit 上限値
	 * @return boolean 判定結果
	 *                    上限値以内の場合、true
	 * @exception Exception
	 */
	private boolean isByteSJIS(String str, int limit) throws Exception
	{
		
		boolean ret = true;
		
		if(null == str || "".equals(str))
		{
			return ret;
		}
		
		int len = str.getBytes(ENCODE_SJIS).length;
		
		if(limit < len)
		{
			ret = false;
		}
		
		return ret;
	}
}
