/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKDelDataSksNibIF
*	ソースファイル名	：JBSbatKKDelDataSksNibIF.java
*	作成者				：富士通　
*	作成日				：2012年09月11日
*＜機能概要＞
*　削除データ作成（内部ＩＦ）部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/09/11   富士通		新規作成
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JKKBatCommon;
import eo.business.common.JKKBatConst;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.file.JBSbatOutputFileUtil;
import eo.framework.util.JBSbatCheckUtil;
import eo.framework.util.JBSbatDateUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKDelDataSksNibIF extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(主要項目削除実績)*/
	private static final String D_TBL_NAME_KK_T_MAJOR_KMK_DLJSK = "KK_T_MAJOR_KMK_DLJSK";

	/** テーブル(申込明細)*/
	private static final String D_TBL_NAME_KK_T_MSKM_DTL = "KK_T_MSKM_DTL";

	/** SQL定義キー(KK_SELECT_001)*/
	private static final String KK_T_MAJOR_KMK_DLJSK_KK_SELECT_001 = "KK_SELECT_001";

	/** SQL定義キー(KK_SELECT_019)*/
	private static final String KK_T_MSKM_DTL_KK_SELECT_019 = "KK_SELECT_019";

	/** SQL定義キー(KK_UPDATE_001)*/
	private static final String KK_T_MAJOR_KMK_DLJSK_KK_UPDATE_001 = "KK_UPDATE_001";

	/** テーブルアクセスクラス(主要項目削除実績)*/
	private JBSbatSQLAccess db_KK_T_MAJOR_KMK_DLJSK = null;

	/** テーブルアクセスクラス(申込明細)*/
	private JBSbatSQLAccess db_KK_T_MSKM_DTL = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** 文字コード */
	private static final String SJIS  = JKKBatConst.SJIS;

	/** 改行コード */
	private static final String CRLF  = "CR+LF";

	/** 件数ファイル括り文字 */
	private static final String SCOPE  = "\"";

	/** データ保存用配列 申込書番号 */
	private static final int CINT_MSKMSHO_NO = 0;

	/** データ保存用配列 個人情報削除理由コード */
	private static final int CINT_KOJIN_INFO_DEL_RSN_CD = 1;

	/** データ保存用配列 サービス解約年月日 */
	private static final int CINT_SVC_DSL_YMD = 2;

	/** データ保存用配列 サービスキャンセル年月日 */
	private static final int CINT_SVC_CANCEL_YMD = 3;
	
	/** 課金開始後申請書番号保存期間 */
	private static final String MSKM_PRD_AF = "KK_CHRG_AF_MSKM_PRD";
	
	/** 課金開始前解約申請書番号保存期間 */
	private static final String MSKM_PRD_BF_KIYK = "KK_BF_DSL_MSKM_PRD";
	
	/** 課金開始前キャンセル申請書番号保存期間 */
	private static final String MSKM_PRD_BF_CNCL = "KK_BF_CNCL_MSKM_PRD";
	
	/** 課金後削除申込書番号保存期間 */
	private String strKkngHznKkn = "";
	
	/** 課金前解約後削除申込書番号保存期間 */
	private String strKiykgHznKkn = "";

	/** 課金前キャンセル後削除申込書番号保存期間 */
	private String strCnclgHznKkn = "";

	/** 件数ファイルパス */
	private String strCntFilePath = "";
	
	/** DB読込件数 */
	private int intSelectCnt = 0;
	
	/** DB更新件数 */
	private int intUpdateCnt = 0;
	
	/** ファイル出力件数 */
	private int intFileOutPutCnt = 0;

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_MAJOR_KMK_DLJSK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_MAJOR_KMK_DLJSK);
		db_KK_T_MSKM_DTL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_MSKM_DTL);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		//業務パラメータ管理より申込書番号の保存期間を取得する
		this.getHozonKikan();
		//件数ファイル出力先を取得
		strCntFilePath = super.freeItem;
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		super.logPrint.printDebugLog("execute start");
		
		JBSbatOutputItem outputBean = new JBSbatOutputItem();//出力共通電文
		//削除連携データ保存用リスト
		//申込書番号・個人情報削除理由コード・サービス解約年月日・サービスキャンセル年月日
		ArrayList<String[]> lstDelData = new ArrayList<String[]>();
		
		//削除連携データ取得
		lstDelData = getDelData();
		
		//DB読込件数取得
		intSelectCnt = lstDelData.size();
		
		//取得した申込書番号単位に「申込明細」を検索し、同じ申込書番号が使用されていないか確認する。
		lstDelData = chkUsedMskmNo(lstDelData);
		//個人情報削除理由コードで解約・キャンセル起因の判断し、保存期間を経過したかチェックを行う。
		lstDelData = chkHznKkn(lstDelData);
		//内部削除連携データ出力
		for(int i = 0; i < lstDelData.size(); i++)
		{
			//「主要項目削除実績」の出力対象となるデータの主要項目削除通知年月日(イメージ)にバッチ運用日を設定する。
			outPutDelData(lstDelData.get(i)[this.CINT_MSKMSHO_NO]);
			//削除データファイルに1レコード追加する
			createDelFile(outputBean,lstDelData.get(i)[this.CINT_MSKMSHO_NO]);
		}
		//件数ファイル作成
		createCntFile(lstDelData.size());
		
		intFileOutPutCnt = lstDelData.size();
		
		super.logPrint.printDebugLog("execute end");
		
		return outputBean;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/

		//DB読込件数ログ出力
		super.logPrint.printBusinessErrorLog("EKKB0770AI", new String[]{"主要項目削除実績", Integer.toString(intSelectCnt)});
		//DB更新件数ログ出力
		super.logPrint.printBusinessErrorLog("EKKB0800AI", new String[]{"主要項目削除実績", Integer.toString(intUpdateCnt)});
		//ファイル出力件数ログ出力
		super.logPrint.printBusinessErrorLog("EKKB0760AI", new String[]{"削除データ（内部IF）", Integer.toString(intFileOutPutCnt)});
		
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_MAJOR_KMK_DLJSK.close();
		db_KK_T_MSKM_DTL.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * SQLKEY(KK_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_MAJOR_KMK_DLJSK_KK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();

		// DBアクセスを実行します
		db_KK_T_MAJOR_KMK_DLJSK.selectBySqlDefine(paramList, KK_T_MAJOR_KMK_DLJSK_KK_SELECT_001);
	}

	/**
	 * SQLKEY(KK_SELECT_019)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	申込書番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_MSKM_DTL_KK_SELECT_019(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_T_MSKM_DTL.selectBySqlDefine(paramList, KK_T_MSKM_DTL_KK_SELECT_019);
	}

	/**
	 * SQLKEY(KK_UPDATE_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	主要項目削除通知年月日（イメージ）
	 *		 	更新年月日時分秒
	 *		 	削除オペレータアカウント
	 *		 	更新運用年月日
	 *		 	更新処理ＩＤ
	 *		 	申込書番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_MAJOR_KMK_DLJSK_KK_UPDATE_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());

		// DBアクセスを実行します
		//▼▼▼件数取得のため自働生成部を変更▼▼▼
		intUpdateCnt += db_KK_T_MAJOR_KMK_DLJSK.executeBySqlDefine(paramList, KK_T_MAJOR_KMK_DLJSK_KK_UPDATE_001);
		//▲▲▲件数取得のため自働生成部を変更▲▲▲
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * <p>
	 * <dd>メソッド名：申込書番号保存期間取得
	 * <pre>
	 * <dd>メソッド説明：業務パラメータ管理より申込書番号の保存期間を取得する
	 * 
	 * 
	 * 
	 * 
	 * </pre>
	 * <p>
	 * @return 
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void getHozonKikan() throws Exception
	{
		//課金後保存期間取得
		this.strKkngHznKkn = JKKBatCommon.getWorkParamSetteValue(super.commonItem, MSKM_PRD_AF);
		if (strKkngHznKkn == null)
		{
			throw new JBSbatBusinessException("EKKB0740CE", new String[]{"業務パラメータ", "課金後保存期間"});
		}
		//課金前解約後保存期間取得
		this.strKiykgHznKkn = JKKBatCommon.getWorkParamSetteValue(super.commonItem, MSKM_PRD_BF_KIYK);
		if (strKiykgHznKkn == null)
		{
			throw new JBSbatBusinessException("EKKB0740CE", new String[]{"業務パラメータ", "課金前解約後保存期間"});
		}
		//課金前キャンセル後保存期間取得
		this.strCnclgHznKkn = JKKBatCommon.getWorkParamSetteValue(super.commonItem, MSKM_PRD_BF_CNCL);
		if (strCnclgHznKkn == null)
		{
			throw new JBSbatBusinessException("EKKB0740CE", new String[]{"業務パラメータ", "課金前キャンセル後保存期間"});
		}
	}
	
	/**
	 * <p>
	 * <dd>メソッド名：削除連携データ取得
	 * <pre>
	 * <dd>メソッド説明：「主要項目削除実績」より削除対象データの申込書番号と申込書番号に紐付く「個人情報削除」の
	 * 個人情報削除理由コード・サービス解約年月日・サービスキャンセル年月日を取得する。
	 * 
	 * 
	 * 
	 * 
	 * </pre>
	 * <p>
	 * @return 削除連携データ保存用リスト
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private ArrayList<String[]> getDelData() throws Exception
	{
		ArrayList<String[]> lstDelData = new ArrayList<String[]>();
		JBSbatCommonDBInterface map = null;
		Object[] param = {};
		//主要項目削除実績検索
		executeKK_T_MAJOR_KMK_DLJSK_KK_SELECT_001(param);
		map = db_KK_T_MAJOR_KMK_DLJSK.selectNext();
		while(map != null)
		{
			String[] strWk = new String[4];
			//申込書番号
			strWk[this.CINT_MSKMSHO_NO]= map.getString("MSKMSHO_NO");
			//個人情報削除理由コード
			strWk[this.CINT_KOJIN_INFO_DEL_RSN_CD]= map.getString("KOJIN_INFO_DEL_RSN_CD");
			//サービス解約年月日
			strWk[this.CINT_SVC_DSL_YMD]= map.getString("SVC_DSL_YMD");
			//サービスキャンセル年月日
			strWk[this.CINT_SVC_CANCEL_YMD]= map.getString("SVC_CANCEL_YMD");
			lstDelData.add(strWk);
			map = db_KK_T_MAJOR_KMK_DLJSK.selectNext();
		}
		return lstDelData;
	}
	
	/**
	 * <p>
	 * <dd>メソッド名：使用中申込番号確認
	 * <pre>
	 * <dd>メソッド説明：取得した申込書番号単位に「申込明細」を検索し、同じ申込書番号が使用されていないか確認する。
	 * 
	 * 
	 * 
	 * 
	 * </pre>
	 * <p>
	 * @param lstDelData　削除連携データリスト
	 * @return 
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private ArrayList<String[]> chkUsedMskmNo(ArrayList<String[]> lstDelData) throws Exception
	{
		ArrayList<String[]> lstRtn = new ArrayList<String[]>();
		JBSbatCommonDBInterface map = null;
		Object[] param = new Object[1];
		int intWk = 0;
		String strWk = "";
		for(int i = 0; i < lstDelData.size(); i++)
		{
			if(lstDelData.get(i)[this.CINT_MSKMSHO_NO] == null)
			{
				//申込書番号がNULLの場合処理をスキップ
				continue;
			}
			if(strWk.compareTo(lstDelData.get(i)[this.CINT_MSKMSHO_NO]) != 0)//申込書番号が前回と異なる場合
			{
				strWk = lstDelData.get(i)[this.CINT_MSKMSHO_NO];
				//申込明細を検索
				param[0] = strWk;
				executeKK_T_MSKM_DTL_KK_SELECT_019(param);
				map = db_KK_T_MSKM_DTL.selectNext();
				if(map != null)
				{
					intWk = Integer.parseInt(map.getString("CNT"));
				}
			}
			if(intWk == 0)
			{
				//申込書番号が申込明細で使用中でない場合リストに追加
				lstRtn.add(lstDelData.get(i));
			}
		}
		return lstRtn;
	}
	
	/**
	 * <p>
	 * <dd>メソッド名：保存期間チェック
	 * <pre>
	 * <dd>メソッド説明：個人情報削除理由コードで解約・キャンセル起因の判断し、保存期間を経過したかチェックを行う。
	 * 
	 * 
	 * 
	 * </pre>
	 * <p>
	 * @param lstDelData　削除連携データ保存用リスト
	 * @return 
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private ArrayList<String[]> chkHznKkn(ArrayList<String[]> lstDelData) throws Exception
	{
		ArrayList<String[]> lstRtn = new ArrayList<String[]>();
		String strWkCd = "";
		String strWkYmd = "";
		Calendar calWk =  Calendar.getInstance();
		ArrayList<String> lstWk = new ArrayList<String>();
		String strWkMskmshoNo = "";
		
		for(int i = 0; i < lstDelData.size(); i++)
		{
			if(lstDelData.get(i)[this.CINT_MSKMSHO_NO] == null)
			{
				//申込書番号がNULLの場合処理をスキップ
				continue;
			}
			if(strWkMskmshoNo.compareTo(lstDelData.get(i)[this.CINT_MSKMSHO_NO]) != 0)
			{
				//申込書番号が前回と異なる場合
				strWkMskmshoNo = lstDelData.get(i)[this.CINT_MSKMSHO_NO];
				//返却用リストに削除データを追加
				lstRtn.add(lstDelData.get(i));
			}
			strWkCd = lstDelData.get(i)[this.CINT_KOJIN_INFO_DEL_RSN_CD];
			if(strWkCd.compareTo("01") == 0 || strWkCd.compareTo("03") == 0)
			{
				//解約の場合、解約日を取得
				strWkYmd = lstDelData.get(i)[this.CINT_SVC_DSL_YMD];
			}
			else if(strWkCd.compareTo("02") == 0 || strWkCd.compareTo("04") == 0)
			{
				//キャンセルの場合、キャンセル日を取得
				strWkYmd = lstDelData.get(i)[this.CINT_SVC_CANCEL_YMD];
			}
			//カレンダー型に変更
			calWk.set(Integer.parseInt(strWkYmd.substring(0, 4)),
					Integer.parseInt(strWkYmd.substring(4, 6)) - 1,
					Integer.parseInt(strWkYmd.substring(6, 8)));
			if(strWkCd.compareTo("01") == 0 
					|| strWkCd.compareTo("02") == 0)
			{
				//解約年を翌年度に変更
				if(calWk.get(calWk.MONTH) >= 3)
				{
					calWk.add(calWk.YEAR, 1);
				}
				//解約月を6月に変更
				calWk.add(calWk.MONTH,-calWk.get(calWk.MONTH ) + 5 );
				//解約月の初日に変更
				calWk.add(calWk.DATE, -calWk.get(calWk.DATE) + 1);
				//解約保存期間の年を追加
				calWk.add(calWk.YEAR, Integer.parseInt(this.strKkngHznKkn.substring(0, 2)));
				//解約保存期間の月を追加
				calWk.add(calWk.MONTH, Integer.parseInt(this.strKkngHznKkn.substring(2, 4)));
			}
			else if(strWkCd.compareTo("03") == 0)
			{
				//解約年を翌年度に変更
				if(calWk.get(calWk.MONTH) >= 3)
				{
					calWk.add(calWk.YEAR, 1);
				}
				//解約月を6月に変更
				calWk.add(calWk.MONTH,-calWk.get(calWk.MONTH ) + 5 );
				//解約月の初日に変更
				calWk.add(calWk.DATE, -calWk.get(calWk.DATE) + 1);
				//解約保存期間の年を追加
				calWk.add(calWk.YEAR, Integer.parseInt(this.strKiykgHznKkn.substring(0, 2)));
				//解約保存期間の月を追加
				calWk.add(calWk.MONTH, Integer.parseInt(this.strKiykgHznKkn.substring(2, 4)));
			}
			else if(strWkCd.compareTo("04") == 0)
			{
				//キャンセル月の初日に変更
				calWk.add(calWk.DATE, -calWk.get(calWk.DATE) + 1);
				//キャンセル保存期間の年を追加
				calWk.add(calWk.YEAR, Integer.parseInt(this.strCnclgHznKkn.substring(0, 2)));
				//キャンセル保存期間の月を追加
				calWk.add(calWk.MONTH, Integer.parseInt(this.strCnclgHznKkn.substring(2, 4)));
			}
			//解約年月日・キャンセル年月日を文字列に戻す
			strWkYmd = String.format("%04d", calWk.get(calWk.YEAR)) 
						+ String.format("%02d", calWk.get(calWk.MONTH)+1) 
						+ String.format("%02d", calWk.get(calWk.DATE));
			//保存期間をチェックする
			if(strWkYmd.compareTo(super.opeDate) > 0 && lstRtn.size() > 0)
			{
				if(strWkMskmshoNo.compareTo(lstRtn.get(lstRtn.size() - 1)[this.CINT_MSKMSHO_NO]) == 0)
				{
					//削除対象外のデータの場合返却用リストから除外する
					lstRtn.remove(lstRtn.size() - 1);			
				}
			}
		}
		return lstRtn;
		
	}

	/**
	 * <p>
	 * <dd>メソッド名：主要項目削除実績更新
	 * <pre>
	 * <dd>メソッド説明：「主要項目削除実績」の出力対象となるデータの主要項目削除通知年月日(イメージ)にバッチ運用日を設定する。
	 * 
	 * </pre>
	 * <p>
	 * @param strMskmshoNo　申込書番号
	 * @return 
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void outPutDelData(String strMskmshoNo) throws Exception
	{
		
		super.logPrint.printDebugLog("outPutDelData:strMskmshoNo=" + strMskmshoNo);
		
		Object[] param = new Object[6];
		//「主要項目削除実績」の出力対象となるデータの主要項目削除通知年月日(イメージ)にバッチ運用日を設定する。
		param[0] = super.opeDate;
		// 更新年月日時分秒
		param[1] = JBSbatDateUtil.getSystemDateTime();
		// 更新オペレータアカウント
		param[2] =  super.batchUserId;
		// 更新運用年月日
		param[3] = super.opeDate;
		// 更新処理ID
		param[4] = super.jobid;
		param[5] = strMskmshoNo;
		executeKK_T_MAJOR_KMK_DLJSK_KK_UPDATE_001(param);
	}
	
	/**
	 * <p>
	 * <dd>メソッド名：削除データファイル作成
	 * <pre>
	 * <dd>メソッド説明：削除データファイルに1レコード追加する
	 * 
	 * </pre>
	 * <p>
	 * @param outputBean　出力共通電文
	 * @param strMskmShoNo　申込書番号
	 * @return 
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void createDelFile(JBSbatOutputItem outputBean, String strMskmShoNo) throws Exception
	{
		//入出力インターフェースオブジェクトを生成
		JBSbatServiceInterfaceMap outmap = new JBSbatServiceInterfaceMap();
		//項目を設定
		outmap.setString("MSKMSHO_NO", strMskmShoNo);
		//出力フラグを設定
		outmap.setOutFlg(true);
		//出力共通電文に入出力インターフェースを設定する。
		outputBean.addOutMapList(outmap);

	}
	
	/**
	 * <p>
	 * <dd>メソッド名：件数ファイル作成
	 * <pre>
	 * <dd>メソッド説明：件数ファイルを作成する
	 * 
	 * </pre>
	 * <p>
	 * @param intKnsu　レコード件数
	 * @return 
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void createCntFile(int intKnsu) throws Exception
	{
			JBSbatOutputFileUtil cntFile = new JBSbatOutputFileUtil(this.strCntFilePath);
			cntFile.setEncode(SJIS);
			cntFile.setLine(CRLF);
			cntFile.createWriter();
			StringBuffer sb = new StringBuffer();
			sb.append(SCOPE);
			sb.append(String.valueOf(intKnsu));
			sb.append(SCOPE);
			cntFile.write(sb.toString());
			cntFile.close();
	}
}
