/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCHSksDhbtSet
*	ソースファイル名	：JBSbatCHSksDhbtSet.java
*	作成者				：富士通　
*	作成日				：2011年08月31日
*＜機能概要＞
*　請求書同封物設定部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/08/31   富士通		新規作成
*	v3.00		2012/06/05   FJ）冨井	【ANK-0024-04-00】業務パラ関連修正・ファイル出力項目追加
*	v3.00		2012/06/21   FJ）冨井	【ANK-0024-04-00】料金グループコード追加
*	v3.01		2013/03/06   FJ）大塚	レンジ化対応
*	v4.00		2013/03/13   FJ) 小柴	【内部管理番号-0000187】撤去工事案内文の同封対象取得処理条件を修正
*	v4.01		2013/05/30   FJ) 早崎	【TG1-2013-0000494】電話のみの場合の撤去工事案内文判定処理追加
*	v4.02		2013/06/05   FJ）後藤	【TG1-2013-0000494】電話のみの撤去案内文判定で、回線対象サービス契約の開始日終了日を抽出条件から除外
*	v4.03		2013/06/08   FJ）早崎	【TG1-2013-0000494】支払方法変更慫慂チラシ有無判定SQL変更
*	v4.04		2013/06/12   FJ）早崎	【TG1-2013-0000640】支払方法変更慫慂チラシ有無判定SQL修正(請求契約の予約適用年月日を考慮しない)
*	v4.05		2013/06/17   FJ）早崎	【TG1-2013-0000640】eo光電話撤去工事案内文同封判定のマンション個別判定基準を改修
*	v4.06		2013/06/17   FJ）早崎	【TG1-2013-0000640】支払方法変更慫慂チラシ有無判定構成改修
*	v5.00		2013/07/12   FJ) 早崎	【LT-2013-0000309】eo光電話撤去工事案内文同封判定SQL修正とマンションコース判定追加
*	v5.01		2013/08/14   FJ) 狭間	【TG1-2013-0000813】請求書同封物設定の抽出条件変更
*	v5.02		2013/09/06   FJ) 狭間	【OM-2013-0001650】eo光電話撤去工事案内文同封判定SQL修正
*	v5.03		2013/09/08   FJ) 狭間	【OM-2013-0001650】eo光電話撤去工事案内文同封判定SQL修正（再修正）
*	v6.00		2014/01/27	 FJ) 垣内	【OM-2014-0000245】請求契約の抽出条件に予約適用年月日を追加
*	v9.00		2014/07/22	 FJ) 桑島	【IT1-2014-0000237】ファイルID重複変更対応
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;

import eo.business.common.JACBatCommon;
import eo.business.common.JACbatDebugLogUtil;
import eo.business.common.JACbatParamUtil;
import eo.business.common.JBSbatBusinessService;
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.business.common.JBSbatMatchServiceInterface;
// IT1-2014-0000237 MOD START
//import eo.business.util.file.JBSbatCHIFE059;
import eo.business.util.file.JBSbatCHIFE060;
// IT1-2014-0000237 MOD END
import eo.business.util.file.JBSbatCHIFM087;
import eo.business.util.file.JBSbatCHIFM094;
import eo.business.util.table.JBSbatCH_M_DHBT_PTN_TEIGI;
import eo.business.util.table.JBSbatCH_M_PRC_KMK_CS_CHGE;
import eo.business.util.table.JBSbatCH_T_SEIKY_UCWK;
import eo.business.util.table.JBSbatKK_M_MANSION_COURSE;
import eo.business.util.table.JBSbatKK_T_MANSION_BUKKEN;
import eo.business.util.table.JBSbatKK_T_TK_HOSHIKI_KEI;
import eo.business.util.table.JBSbatZM_M_CD_NM_KANRI;
import eo.common.constant.JACStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.common.constant.JZM0171Constant;
import eo.business.common.JCHbatSeikyKaknoBusinessUtil;

/**
* 請求書同封物設定部品 <p>
*<BR>
* @author 富士通
*/
public class JBSbatCHSksDhbtSet extends JBSbatBusinessService implements JBSbatMatchServiceInterface
{

	/** テーブル(同封物パターン定義)*/
	private static final String D_TBL_NAME_CH_M_DHBT_PTN_TEIGI = "CH_M_DHBT_PTN_TEIGI";

	/** テーブル(請求内訳)*/
	private static final String D_TBL_NAME_CH_T_SEIKY_UCWK = "CH_T_SEIKY_UCWK";

	/** テーブル(料金項目抽出変換)*/
	private static final String D_TBL_NAME_CH_M_PRC_KMK_CS_CHGE = "CH_M_PRC_KMK_CS_CHGE";

	/** テーブル(コード名称管理)*/
	private static final String D_TBL_NAME_ZM_M_CD_NM_KANRI = "ZM_M_CD_NM_KANRI";
	
	/** テーブル(課金先)*/
	private static final String D_TBL_NAME_KK_T_KAKINS = "KK_T_KAKINS";

	/** SQL定義キー(CH_SELECT_001)*/
	private static final String CH_M_DHBT_PTN_TEIGI_CH_SELECT_001 = "CH_SELECT_001";

	/** SQL定義キー(CH_SELECT_007)*/
	private static final String CH_T_SEIKY_UCWK_CH_SELECT_007 = "CH_SELECT_007";

	/** SQL定義キー(CH_SELECT_004)*/
	private static final String CH_M_PRC_KMK_CS_CHGE_CH_SELECT_004 = "CH_SELECT_004";

	/** SQL定義キー(CH_SELECT_005)*/
	private static final String ZM_M_CD_NM_KANRI_CH_SELECT_005 = "CH_SELECT_005";

	/** SQL定義キー(CH_SELECT_017)*/
	private static final String CH_T_SEIKY_UCWK_CH_SELECT_017 = "CH_SELECT_017";
	
	/** SQL定義キー(CH_SELECT_003)*/
	private static final String KK_T_KAKINS_CH_SELECT_003 = "CH_SELECT_003";

	/** テーブルアクセスクラス(同封物パターン定義)*/
	private JBSbatSQLAccess db_CH_M_DHBT_PTN_TEIGI = null;

	/** テーブルアクセスクラス(請求内訳)*/
	private JBSbatSQLAccess db_CH_T_SEIKY_UCWK = null;

	/** テーブルアクセスクラス(料金項目抽出変換)*/
	private JBSbatSQLAccess db_CH_M_PRC_KMK_CS_CHGE = null;

	/** テーブルアクセスクラス(コード名称管理)*/
	private JBSbatSQLAccess db_ZM_M_CD_NM_KANRI = null;
	
	/** テーブルアクセスクラス(課金先)*/
	private JBSbatSQLAccess db_KK_T_KAKINS = null;

	/** キーマッチ処理フラグ*/
	private boolean matchProcFlg;

	/** マスタファイル処理フラグ*/
	private boolean mastProcFlg;

	/** トランファイル処理フラグ*/
	private boolean tranProcFlg;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/** 業務機能識別コード(ｅｏ光ネットホームタイプ)  */
	private String eoHomeWks = null;

	/** 業務機能識別コード(ｅｏ光ネットマンショングローバル)  */
	private String eoMansGrWks = null;

	/** 業務機能識別コード(ｅｏ光電話)  */
	private String eoHikTelWks = null;

	/** 業務機能識別コード(ネットサービス)  */
	private String prcCdNsWks = null;
	
	/** 業務パラメータ(同封物パターンコード設定用(ｅｏ光ネットホームタイプ))  */
	private String dhbtEoHm = null;
	
	/** 業務パラメータ(同封物パターンコード設定用(ｅｏ光ネットマンショングローバル))  */
	private String dhbtEoHn = null;
	
	/** 業務パラメータ(同封物パターンコード設定用(支払方法変更慫慂チラシ))  */
	private String dhbtShiharai = null;
	
	/** 個別同封物パターンコード（撤去案内文（強制解約）） */
	private static final String KBT_DHBT_TEKKYO = "TEKKYO";
	
	/** 個別同封物パターンコード（支払方法変更慫慂チラシ）  */
	private static final String KBT_DHBT_SHIHARAI = "SHIHARAI";
	
	/** ｅｏ光ネットホームタイプ  */
	private ArrayList<String> eoHomeSvcKeiNo = null;

	/** ｅｏ光ネットマンショングローバル  */
	private ArrayList<String> eoMansGrSvcKeiNo = null;
	
	/** 同封物コード名称リスト */
	private ArrayList<String> dofuCdNameList = null;
	
	/** 同封物部数名称リスト */
	private ArrayList<String> dofuCdCntNameList = null;
	
	/** 個別同封物パターンコードマップ */
	private HashMap<String, String> kbtDhbtMap = null;
	
	/** 個別同封物名称マップ作成 */
	private HashMap<String, String> kbtDhbtNmMap = null;
	
	/** 同封物パターン定義マップ */
	private HashMap<String, HashMap<Integer, JBSbatCommonDBInterface>> dohubtMap = null;
	
	/** 同封物パターンコードマップ */
	private HashMap<String, String> dohubtCdMap = null;
	
	/** 個別同封物コード */
	private String dhbtCd = null;
	
	/** 同封物パターンコード */
	private String dofuPtnCd = null;
	
	/** 請求年月 */
	private String seikyYm = null;
	
	/** 退避．オーナー用料金グループコードリスト */
	private ArrayList<String> tmpGroupCdList = null;
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_CH_M_DHBT_PTN_TEIGI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_M_DHBT_PTN_TEIGI);
		db_CH_T_SEIKY_UCWK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_SEIKY_UCWK);
		db_CH_M_PRC_KMK_CS_CHGE = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_M_PRC_KMK_CS_CHGE);
		db_ZM_M_CD_NM_KANRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_CD_NM_KANRI);
		db_KK_T_KAKINS = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KAKINS);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][initial]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][opeDate=" + super.opeDate + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][freeItem=" + super.freeItem + "]");
		
		// 業務パラメータ、システムパラメータ取得
		this.getWorkSysPara();
		
		// 同封物パターン定義マップ作成
		this.makeDhbtPtnTeigiMap();
		
		// 各種サービス取得
		this.eoHomeSvcKeiNo = this.getService(this.eoHomeWks);		// ｅｏ光ネットホームタイプ
		this.eoMansGrSvcKeiNo = this.getService(this.eoMansGrWks);	// ｅｏ光ネットマンショングローバル
		
		assert JACBatCommon.printDebugLog(super.logPrint, "eoHomeSvcKeiNo：" + this.eoHomeSvcKeiNo);
		assert JACBatCommon.printDebugLog(super.logPrint, "eoMansGrSvcKeiNo：" + this.eoMansGrSvcKeiNo);
		
		/** 請求収納共通部品アクセスクラス */
		JCHbatSeikyKaknoBusinessUtil sku = new JCHbatSeikyKaknoBusinessUtil(commonItem);
		seikyYm = sku.getSeikyYm(super.opeDate);
		sku.close();
		
		// 個別同封物名称マップ作成
		makeCdNmKanriInfo();
		
		// 同封物パターンコードマップ作成
		makeDohubtCdMap();
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][initial]");
		
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}
	
	/**
	 * 主処理
	 * @param mastMap　入力電文
	 * @param tranMap　入力電文
	 * @param outputInItem  入力情報
	 * @return JBSbatOutputItem 出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap mastMap, JBSbatServiceInterfaceMap tranMap, JBSbatOutputItem outputInItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute]");
		assert mastMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute][mastMap=" + mastMap.getMap().toString() + "]") : true;
		assert tranMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute][tranMap=" + tranMap.getMap().toString() + "]") : true;
	
		JBSbatServiceInterfaceMap outputMap = new JBSbatServiceInterfaceMap();
		
		if (mastMap != null && tranMap == null)
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入力Ｍのみ存在する]");

			// 同封物パターンコードを取得
			getDofuPtnCd(mastMap, tranMap, false);
			
			// 個別同封物確定
			makeKbtDofuFix(mastMap, outputMap);
			
			// 出力電文を作成
			outputItem(mastMap, outputInItem, outputMap);

			// 次の請求書印刷情報（発行対象）読み込み
			this.setMastProcFlg(true);
		}
		
		// 同封対象請求契約番号データのみ存在する
		else if (mastMap == null && tranMap != null)
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入力Ｔのみ存在する]");
			
			// 次の同封対象請求契約番号データ読み込み
			this.setTranProcFlg(true);
		}
		
		// 請求書印刷情報（発行対象）、同封対象請求契約番号データともに存在する
		else
		{
			// マッチングキー（請求契約番号）取得
			String mastSeiKeiNo = mastMap.getString(JBSbatCHIFM087.SEIKY_KEI_NO);
			// IT1-2014-0000237 MOD START
			//String tranSeiKeiNo = tranMap.getString(JBSbatCHIFE059.SEIKY_KEI_NO);
			String tranSeiKeiNo = tranMap.getString(JBSbatCHIFE060.SEIKY_KEI_NO);
			// IT1-2014-0000237 MOD END

			// マッチ
			int retCompare = mastSeiKeiNo.compareTo(tranSeiKeiNo);
			if (retCompare == 0)
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入力Ｍ、入力Ｔともに存在する][入力Ｍ＝入力Ｔ（マッチ）]");

				// 同封物パターンコードを取得
				getDofuPtnCd(mastMap, tranMap, true);
				
				// 個別同封物確定判定
				makeKbtDofuFix(mastMap, outputMap);
				
				// 出力電文を作成
				outputItem(mastMap, outputInItem, outputMap);

				// 次の請求書印刷情報（発行対象）読み込み
				this.setMastProcFlg(true);
				
			}
			
			// 入力Ｍ＜入力Ｔ
			else if (retCompare < 0)
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入力Ｍ、入力Ｔともに存在する][入力Ｍ＜入力Ｔ]");

				// 同封物パターンコードを取得
				getDofuPtnCd(mastMap, tranMap, false);
				
				// 個別同封物確定設定
				makeKbtDofuFix(mastMap, outputMap);
				
				// 出力電文を作成
				outputItem(mastMap, outputInItem, outputMap);
				
				// 次の請求書印刷情報（発行対象）読み込み
				this.setMastProcFlg(true);
			}
			// 入力Ｍ＞入力Ｔ
			else
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入力Ｍ、入力Ｔともに存在する][入力Ｍ＞入力Ｔ]");
				
				// 次の同封対象請求契約番号データ読み込み
				this.setTranProcFlg(true);
			}
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute]");
		return outputInItem;

	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
		
	}
	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][terminal]");
		
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_CH_M_DHBT_PTN_TEIGI.close();
		db_CH_T_SEIKY_UCWK.close();
		db_ZM_M_CD_NM_KANRI.close();
		db_CH_M_PRC_KMK_CS_CHGE.close();
		db_KK_T_KAKINS.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][terminal]");
		
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 * @return mastProcFlg を戻します。
	 */
	public boolean isMastProcFlg()
	{
		return mastProcFlg;
	}

	/**
	 * @return matchProcFlg を戻します。
	 */
	public boolean isMatchProcFlg()
	{
		return matchProcFlg;
	}

	/**
	 * @return tranProcFlg を戻します。
	 */
	public boolean isTranProcFlg()
	{
		return tranProcFlg;
	}

	/**
	 * @param mast_ProcFlg 設定する mastProcFlg。
	 */
	public void setMastProcFlg(boolean mast_ProcFlg)
	{
		this.mastProcFlg = mast_ProcFlg;
	}

	/**
	 * @param match_ProcFlg 設定する matchProcFlg。
	 */
	public void setMatchProcFlg(boolean match_ProcFlg)
	{
		this.matchProcFlg = match_ProcFlg;
	}

	/**
	 * @param tran_ProcFlg 設定する tranProcFlg。
	 */
	public void setTranProcFlg(boolean tran_ProcFlg)
	{
		this.tranProcFlg = tran_ProcFlg;
	}

	/**
	 * SQLKEY(CH_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 executeCH_M_DHBT_PTN_TEIGI_CH_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_CH_M_DHBT_PTN_TEIGI.selectBySqlDefine(paramList, CH_M_DHBT_PTN_TEIGI_CH_SELECT_001);
	}

	/**
	 * SQLKEY(CH_SELECT_007)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	システムコード
	 *		 	業務機能識別コード
	 *		 	業務機能識別コード
	 *		 	抽出変換コード
	 *		 	料金項目抽出変換適用開始年月日
	 *		 	料金項目抽出変換適用終了年月日
	 *		 	予約適用年月日
	 *		 	予約適用コード
	 *		 	サービス契約ステータス
	 *		 	休止中断コード
	 *			休止中断コード
	 *		 	請求番号
	 *		 	請求契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_SEIKY_UCWK_CH_SELECT_007(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());
		paramList.setValue(param[6].toString());
		paramList.setValue(param[7].toString());
		paramList.setValue(param[8].toString());
		paramList.setValue(param[9].toString());
		paramList.setValue(param[10].toString());
		paramList.setValue(param[11].toString());
		paramList.setValue(param[12].toString());

		// DBアクセスを実行します
		db_CH_T_SEIKY_UCWK.selectBySqlDefine(paramList, CH_T_SEIKY_UCWK_CH_SELECT_007);
	}

	/**
	 * SQLKEY(CH_SELECT_004)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	料金項目抽出変換．システムコード
	 *		 	料金項目抽出変換．業務機能識別コード
	 *		 	料金項目抽出変換．抽出変換コード
	 *		 	料金項目抽出変換．適用開始年月日
	 *		 	料金項目抽出変換．適用終了年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_M_PRC_KMK_CS_CHGE_CH_SELECT_004(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());

		// DBアクセスを実行します
		db_CH_M_PRC_KMK_CS_CHGE.selectBySqlDefine(paramList, CH_M_PRC_KMK_CS_CHGE_CH_SELECT_004);
	}

	/**
	 * SQLKEY(CH_SELECT_003)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	予約適用年月日
	 *		 	予約適用コード
	 *		 	サービス契約ステータス
	 *		 	サービス契約ステータス
	 *		 	休止中断コード
	 *		 	システムコード
	 *		 	業務機能識別コード
	 *		 	抽出変換コード
	 *		 	料金項目抽出変換適用開始年月日
	 *		 	料金項目抽出変換適用終了年月日
	 *		 	予約適用年月日
	 *		 	予約適用コード
	 *		 	請求方法コード
	 *		 	請求契約番号
	 *		 	課金開始年月日
	 *		 	課金終了年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_KAKINS_CH_SELECT_003(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());
		paramList.setValue(param[6].toString());
		paramList.setValue(param[7].toString());
		paramList.setValue(param[8].toString());
		paramList.setValue(param[9].toString());
		paramList.setValue(param[10].toString());
		paramList.setValue(param[11].toString());
		paramList.setValue(param[12].toString());
		paramList.setValue(param[13].toString());
		paramList.setValue(param[14].toString());
		paramList.setValue(param[15].toString());

		// DBアクセスを実行します
		db_KK_T_KAKINS.selectBySqlDefine(paramList, KK_T_KAKINS_CH_SELECT_003);
	}

	/**
	 * SQLKEY(CH_SELECT_005)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	コード種別コード
	 *		 	適用開始年月日
	 *		 	適用終了年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZM_M_CD_NM_KANRI_CH_SELECT_005(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_ZM_M_CD_NM_KANRI.selectBySqlDefine(paramList, ZM_M_CD_NM_KANRI_CH_SELECT_005);
	}

	/**
	 * SQLKEY(CH_SELECT_017)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	システムコード
	 *		 	業務機能識別コード
	 *		 	抽出変換コード
	 *		 	料金項目抽出変換適用開始年月日
	 *		 	料金項目抽出変換適用終了年月日
	 *		 	予約適用年月日
	 *		 	予約適用コード
	 *		 	サービス契約ステータス
	 *		 	休止中断コード
	 *		 	休止中断コード
	 *		 	予約適用年月日
	 *		 	予約適用コード
	 *		 	予約適用年月日
	 *		 	予約適用コード
	 *		 	請求番号
	 *		 	請求契約番号
	 *		 	請求年月
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_SEIKY_UCWK_CH_SELECT_017(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());
		paramList.setValue(param[6].toString());
		paramList.setValue(param[7].toString());
		paramList.setValue(param[8].toString());
		paramList.setValue(param[9].toString());
		paramList.setValue(param[10].toString());
		paramList.setValue(param[11].toString());
		paramList.setValue(param[12].toString());
		paramList.setValue(param[13].toString());
		paramList.setValue(param[14].toString());
		paramList.setValue(param[15].toString());
		paramList.setValue(param[16].toString());
		paramList.setValue(param[17].toString());
		paramList.setValue(param[18].toString());
		paramList.setValue(param[19].toString());
		paramList.setValue(param[20].toString());

		// DBアクセスを実行します
		db_CH_T_SEIKY_UCWK.selectBySqlDefine(paramList, CH_T_SEIKY_UCWK_CH_SELECT_017);
	}

	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * 業務パラメータ管理及び、システムパラメータ管理から値を取得します。
	 * 
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void getWorkSysPara() throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getWorkPara]");
		
		// 業務パラメータ取得
		JACbatParamUtil pu = new JACbatParamUtil(commonItem);
		try
		{
			// 業務機能識別コードを取得
			this.eoHomeWks 		= pu.getGyoumuParameter(JACStrConst.WKPRA_CH_WKS_EOH_NTHOME_TP);			// ｅｏ光ネットホームタイプ
			this.eoMansGrWks 	= pu.getGyoumuParameter(JACStrConst.WKPRA_CH_WKS_EOH_NTMANS_GR);			// ｅｏ光ネットマンショングローバル
			this.eoHikTelWks	= pu.getGyoumuParameter(JACStrConst.WKPRA_CH_WKS_EOH_TEL);					// ｅｏ光電話
			this.prcCdNsWks		= pu.getGyoumuParameter(JACStrConst.WKPRA_CH_WKS_PRC_CD_NS);				// ネットサービス
			
			// 業務パラメータを取得
			this.dhbtEoHm 		= pu.getGyoumuParameter(JACStrConst.WKPARA_CH_DHBT_EO_HM);					// 同封物パターンコード設定用(ｅｏ光ネットホームタイプ)
			this.dhbtEoHn 		= pu.getGyoumuParameter(JACStrConst.WKPARA_CH_DHBT_EO_MN);					// 同封物パターンコード設定用(ｅｏ光ネットマンショングローバル) 
			this.dhbtShiharai	= pu.getGyoumuParameter(JACStrConst.WKPARA_CH_DHBT_SHIHARAI);				// 同封物パターンコード設定用(支払方法変更慫慂チラシ) 
			
			assert JACBatCommon.printDebugLog(super.logPrint, "ｅｏ光ネットホームタイプの業務機能識別コード：" + this.eoHomeWks);
			assert JACBatCommon.printDebugLog(super.logPrint, "ｅｏ光ネットマンショングローバルの業務機能識別コード：" + this.eoMansGrWks);
			assert JACBatCommon.printDebugLog(super.logPrint, "ネットサービス同封物設定用：" + this.prcCdNsWks);
			assert JACBatCommon.printDebugLog(super.logPrint, "同封物パターンコード設定用(ｅｏ光ネットホームタイプ) ：" + this.dhbtEoHm);
			assert JACBatCommon.printDebugLog(super.logPrint, "同封物パターンコード設定用(ｅｏ光ネットマンショングローバル) ：" + this.dhbtEoHn);
			assert JACBatCommon.printDebugLog(super.logPrint, "同封物パターンコード設定用(支払方法変更慫慂チラシ)  ：" + this.dhbtShiharai);
			
			// 個別同封物パラメータマップ作成
			this.kbtDhbtMap = pu.getGyoumuParameterMap(JACStrConst.WKPARA_CH_KBT_DHBT, super.opeDate);
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "kbtDhbtMap" + this.kbtDhbtMap.toString() + "]");
			
			// オーナー用料金グループコードの取得
			String[] groupCdCubic = pu.getGyoumuParameter(JACStrConst.WKPARA_AC_OWNR_PRC_GRP_CD).split(JACStrConst.COMMA);	// オーナー用料金グループコード
			this.tmpGroupCdList = new ArrayList<String>();
			
			for(String groupCd : groupCdCubic)
			{
				this.tmpGroupCdList.add(groupCd);
			}
		}
		finally
		{
			pu.close();
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getWorkPara]");
		return;
	}
	
	/**
	 * 同封物パターン定義マップを作成する
	 * @throws Exception
	 */
	private void makeDhbtPtnTeigiMap() throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeDhbtPtnTeigiMap]");
		
		// 同封物コード名称リスト初期化
		dofuCdNameList = new ArrayList<String>();
		dofuCdNameList.add(JBSbatCHIFM087.DOHUBT_CD1);
		dofuCdNameList.add(JBSbatCHIFM087.DOHUBT_CD2);
		dofuCdNameList.add(JBSbatCHIFM087.DOHUBT_CD3);
		dofuCdNameList.add(JBSbatCHIFM087.DOHUBT_CD4);
		dofuCdNameList.add(JBSbatCHIFM087.DOHUBT_CD5);
		dofuCdNameList.add(JBSbatCHIFM087.DOHUBT_CD6);
		
		// 同封物部数名称リスト初期化
		dofuCdCntNameList = new ArrayList<String>();
		dofuCdCntNameList.add(JBSbatCHIFM087.DOHUBT_CD1_CNT);
		dofuCdCntNameList.add(JBSbatCHIFM087.DOHUBT_CD2_CNT);
		dofuCdCntNameList.add(JBSbatCHIFM087.DOHUBT_CD3_CNT);
		dofuCdCntNameList.add(JBSbatCHIFM087.DOHUBT_CD4_CNT);
		dofuCdCntNameList.add(JBSbatCHIFM087.DOHUBT_CD5_CNT);
		dofuCdCntNameList.add(JBSbatCHIFM087.DOHUBT_CD6_CNT);
		
		// 同封物パターン定義マップ初期化
		int dhbtPtnMaxCnt = dofuCdNameList.size();
		dohubtMap = new HashMap<String, HashMap<Integer, JBSbatCommonDBInterface>>();
		JBSbatCommonDBInterface dbSelectList = new JBSbatCommonDBInterface();
		
		// パラメータ設定
		dbSelectList.setValue(super.opeDate);		// 同封物パターン定義適用開始年月日(バッチ運用日)
		dbSelectList.setValue(super.opeDate);		// 同封物パターン定義適用終了年月日(バッチ運用日)
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][param=" + dbSelectList.getList().toString() + "]");
		
		// SELECT文発行
		executeCH_M_DHBT_PTN_TEIGI_CH_SELECT_001(dbSelectList.getList().toArray());
		JBSbatCommonDBInterface dbMap = db_CH_M_DHBT_PTN_TEIGI.selectNext();
		while (dbMap != null)
		{
			// 同封物パターンコード取得
			String dohubtPtnCd = dbMap.getString(JBSbatCH_M_DHBT_PTN_TEIGI.DOHUBT_PATTERN_CD);
			
			if (!dohubtMap.containsKey(dohubtPtnCd))
			{
				// 新規の同封物パターンコード
				dohubtMap.put(dohubtPtnCd, new HashMap<Integer, JBSbatCommonDBInterface>());
			}
			
			// 同封トレー番号取得
			Integer trayNo = Integer.parseInt(dbMap.getValue(JBSbatCH_M_DHBT_PTN_TEIGI.DOFU_TRAY_NO).toString());
			if ((trayNo.intValue() >= 1) && (trayNo.intValue() <= dhbtPtnMaxCnt))
			{
				// 同封物コード、同封物部数をマップに保持
				this.dohubtMap.get(dohubtPtnCd).put(trayNo, dbMap);
			}
			
			dbMap = db_CH_M_DHBT_PTN_TEIGI.selectNext();
		}
		
		assert this.dohubtMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeDhbtPtnTeigiMap][dohubtMap=" + this.dohubtMap.toString() + "]") : true;
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeDhbtPtnTeigiMap]");
		return ;
	}
	
	/**
	 * サービスの取得
	 * @param wks 業務機能識別コード
	 * @return サービスのリスト
	 * @throws Exception
	 */
	private ArrayList<String> getService(String wks) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getService]");
		
		ArrayList<String> ret = new ArrayList<String>();
		
		// パラメタ設定
		JBSbatCommonDBInterface dbSelectList = new JBSbatCommonDBInterface();
		dbSelectList.setValue(JACStrConst.SYS_CD_CH);		// システムコード
		dbSelectList.setValue(wks);							// 業務機能識別コード
		dbSelectList.setValue(JACStrConst.CHSHT_CHG_CD_1);	// 抽出変換コード
		dbSelectList.setValue(super.opeDate);				// 適用開始年月日(バッチ運用日)
		dbSelectList.setValue(super.opeDate);				// 適用終了年月日(バッチ運用日)
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getService][param=" + dbSelectList.getList().toString() + "]");
		
		// SELECT文発行
		executeCH_M_PRC_KMK_CS_CHGE_CH_SELECT_004(dbSelectList.getList().toArray());
		JBSbatCommonDBInterface dbMap = db_CH_M_PRC_KMK_CS_CHGE.selectNext();
		while (dbMap != null)
		{
			// サービス取得（料金グループコード ＋ 料金コースコード）
			ret.add(makeStr(dbMap.getString(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_GRP_CD), dbMap.getString(JBSbatCH_M_PRC_KMK_CS_CHGE.PCRS_CD)));
			
			dbMap = db_CH_M_PRC_KMK_CS_CHGE.selectNext();
		}

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getService]");
		return(ret);
	}
	
	/**
	 * コード名称管理スキーマを検索し、その結果を基にマップを作成します。
	 * 
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void makeCdNmKanriInfo() throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeCdNmKanriInfo]");
		
		// 条件値
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();
		
		// コード種別コード
		whereParam.setValue(JZM0171Constant.CD01502);
		
		// 適用開始年月日
		whereParam.setValue(super.opeDate);
		
		// 適用終了年月日
		whereParam.setValue(super.opeDate);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeCdNmKanriInfo][whereParam=" + whereParam.getList().toString() + "]");
		
		// SQL実施
		executeZM_M_CD_NM_KANRI_CH_SELECT_005(whereParam.getList().toArray());
		
		// 結果取得
		JBSbatCommonDBInterface dbMap = db_ZM_M_CD_NM_KANRI.selectNext();
		
		this.kbtDhbtNmMap = new HashMap<String, String>(); 
		
		// 取得した情報分情報を設定します。
		while(null != dbMap)
		{
			// 値を設定（KEY:コード名称管理．コード区分、VALUE:コード名称管理．コード区分名称）
			this.kbtDhbtNmMap.put(dbMap.getString(JBSbatZM_M_CD_NM_KANRI.CD_DIV),		dbMap.getString(JBSbatZM_M_CD_NM_KANRI.CD_DIV_NM));
			
			// 次レコード　読み込み
			dbMap = db_ZM_M_CD_NM_KANRI.selectNext();
		}
		assert this.kbtDhbtNmMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeCdNmKanriInfo][this.kbtDhbtNmMap=" + this.kbtDhbtNmMap.toString() + "]") : true;
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeCdNmKanriInfo]");
	}
	
	/**
	 * 同封物パターンコードマップを作成する
	 * @throws Exception
	 */
	private void makeDohubtCdMap() throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeDohubtCdMap]");
		
		// 同封物パターンコードマップ初期化
		this.dohubtCdMap = new HashMap<String, String>();
		
		// マップ作成（key：X（請求方法コード）　value：同封物パターンコード_X）
		// IT1-2014-0000237 MOD START
		//this.dohubtCdMap.put(JACStrConst.SEIKY_MADOGUCHI, 	JBSbatCHIFE059.DOHUBT_PATTERN_CD_1);		// 窓口
		//this.dohubtCdMap.put(JACStrConst.SEIKY_KHRI, 		JBSbatCHIFE059.DOHUBT_PATTERN_CD_2);		// 口振
		//this.dohubtCdMap.put(JACStrConst.SEIKY_YUFUIRI, 	JBSbatCHIFE059.DOHUBT_PATTERN_CD_3);		// 郵振
		//this.dohubtCdMap.put(JACStrConst.SEIKY_CREDIT, 		JBSbatCHIFE059.DOHUBT_PATTERN_CD_4);		// クレジット
		
		
		this.dohubtCdMap.put(JACStrConst.SEIKY_MADOGUCHI, 	JBSbatCHIFE060.DOHUBT_PATTERN_CD_1);		// 窓口
		this.dohubtCdMap.put(JACStrConst.SEIKY_KHRI, 		JBSbatCHIFE060.DOHUBT_PATTERN_CD_2);		// 口振
		this.dohubtCdMap.put(JACStrConst.SEIKY_YUFUIRI, 	JBSbatCHIFE060.DOHUBT_PATTERN_CD_3);		// 郵振
		this.dohubtCdMap.put(JACStrConst.SEIKY_CREDIT, 		JBSbatCHIFE060.DOHUBT_PATTERN_CD_4);		// クレジット
		// IT1-2014-0000237 MOD END
		
		assert this.dohubtCdMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeDohubtCdMap][dohubtCdMap=" + this.dohubtCdMap.toString() + "]") : true;
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeDohubtCdMap]");
		return;
	}
	
	/**
	 * 同封物パターンコードを取得する
	 * @param mastMap 請求書印刷情報（発行対象）
	 * @param tranMap 同封対象請求契約番号データ
	 * @param isMatch マッチング処理の結果(true:マッチした、false:マッチしていない)
	 * @throws Exception
	 */
	private void getDofuPtnCd(JBSbatServiceInterfaceMap mastMap, JBSbatServiceInterfaceMap tranMap,
									boolean isMatch) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getDofuPtnCd]");
		
		// 同封物パターンコードを取得
		this.dofuPtnCd = null;
		if (isMatch)
		{
			String seikyWayCd = mastMap.getString(JBSbatCHIFM087.SEIKY_WAY_CD);
			if (this.dohubtCdMap.containsKey(seikyWayCd))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getDofuPtnCd][同封対象請求契約番号データ.同封物パターンコードXを「同封物パターンコード」][入力Ｍ＝入力Ｔ]");
				
				// 同封対象請求契約番号データ.同封物パターンコードXを「同封物パターンコード」とする
				this.dofuPtnCd = tranMap.getString(this.dohubtCdMap.get(seikyWayCd));
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getDofuPtnCd][dofuPtnCd=" + dofuPtnCd + "]") ;
				return;
			}
	
		}
		
		if(!this.kbtDhbtMap.containsValue(mastMap.getString(JBSbatCHIFM087.DOHUBT_PATTERN_CD)))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getDofuPtnCd][個別同封物パターンコードマップ 対象外]");
			
			// 請求書印刷情報（発行対象）．同封物パターンコードを「退避．同封物パターンコード」として保持する。
			this.dofuPtnCd = mastMap.getString(JBSbatCHIFM087.DOHUBT_PATTERN_CD);
		}
		else
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getDofuPtnCd][個別同封物パターンコードマップ 対象あり]");
			
			// ""を「退避．同封物パターンコード」として保持する。
			this.dofuPtnCd = JACStrConst.KARA_MOJI;
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getDofuPtnCd]");
		return;
	}
	
	/**
	 * 個別同封物確定判定を行う。
	 * 
	 * @param mastMap 請求書印刷情報（発行対象）
	 * @param outputMap　出力情報
	 * @throws Exception
	 */
	private void makeKbtDofuFix(JBSbatServiceInterfaceMap mastMap, JBSbatServiceInterfaceMap outputMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeKbtDofuFix]");
		assert mastMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeKbtDofuFix][mastMap=" + mastMap.getMap().toString() + "]") : true;
		
		
		// 同封物パターンコード取得
		String dohubtPtnCd = mastMap.getString(JBSbatCHIFM087.DOHUBT_PATTERN_CD);
		
		// 同封物パターンコード、同封物コード、同封物コード部数以外は単純転送のため、入力ファイルの内容をコピー
		outputMap.setMap(mastMap.getMap());
		
		// 同封物パターンコード、個別同封物コード空文字を設定
		outputMap.set(JBSbatCHIFM087.DOHUBT_PATTERN_CD, JACStrConst.KARA_MOJI);
		this.dhbtCd = JACStrConst.KARA_MOJI;

		// 請求書印刷情報（発行対象）．同封物パターンコード ＝ 「個別同封物パラメータマップ」．業務パラメータ設定値（"TEKKYO"を含む）の場合
		if(this.kbtDhbtMap.get(makeStr(JACStrConst.WKPARA_CH_KBT_DHBT, JACStrConst.UNDER_BAR, KBT_DHBT_TEKKYO)).equals(dohubtPtnCd))
		{
			// 撤去案内文の判定
			makeKbtDofuTekkyo(mastMap, outputMap);
		}
		
		// 請求書印刷情報（発行対象）．同封物パターンコード ＝ 「個別同封物パラメータマップ」．業務パラメータ設定値（"SHIHARAI"を含む）の場合
		else if(this.kbtDhbtMap.get(makeStr(JACStrConst.WKPARA_CH_KBT_DHBT, JACStrConst.UNDER_BAR, KBT_DHBT_SHIHARAI)).equals(dohubtPtnCd))
		{
			// 支払方法変更慫慂チラシの判定
			makeKbtDofuShiharai(mastMap, outputMap);
		}
		else
		{
			// 請求書印刷情報（発行対象）．同封物パターンコードを 請求書印刷情報（同封物設定）．同封物パターンコードに設定する。
			outputMap.set(JBSbatCHIFM087.DOHUBT_PATTERN_CD, dohubtPtnCd);
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeKbtDofuFix]");
		return;

	}
	
	/**
	 * 撤去案内文の判定を行う。
	 * @param mastMap 請求書印刷情報（発行対象）
	 * @param outputMap　出力情報
	 * @throws Exception
	 */
	private void makeKbtDofuTekkyo(JBSbatServiceInterfaceMap mastMap, JBSbatServiceInterfaceMap outputMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeKbtDofuTekkyo]");
		
		// パラメータ設定
		JBSbatCommonDBInterface dbSelectList = new JBSbatCommonDBInterface();
		dbSelectList.setValue(JACStrConst.SYS_CD_CH);							// システムコード
		dbSelectList.setValue(this.eoHomeWks);									// 業務機能識別コード
		dbSelectList.setValue(this.eoMansGrWks);								// 業務機能識別コード
		dbSelectList.setValue(JACStrConst.CHSHT_CHG_CD_1);						// 抽出変換コード
		dbSelectList.setValue(super.opeDate);									// 適用開始年月日(バッチ運用日)
		dbSelectList.setValue(super.opeDate);									// 適用終了年月日(バッチ運用日)
		dbSelectList.setValue(super.opeDate);									// 予約適用年月日(バッチ運用日)
		dbSelectList.setValue(JACStrConst.RSV_APLY_CD_FIX);						// 予約適用コード
		dbSelectList.setValue(JACStrConst.SVC_KEI_STAT_CNCL_ZUMI);				// サービス契約ステータス
		dbSelectList.setValue(JACStrConst.PAUSE_STP_CD_PAUSE_SOD_ZUMI);			// 休止中断コード
		dbSelectList.setValue(mastMap.getString(JBSbatCHIFM087.SEIKY_NO));		// 請求番号
		dbSelectList.setValue(mastMap.getString(JBSbatCHIFM087.SEIKY_KEI_NO));	// 請求契約番号
		dbSelectList.setValue(seikyYm);											// 請求年月
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeKbtDofuTekkyo][param=" + dbSelectList.getList().toString() + "]");

		// SELECT文発行
		executeCH_T_SEIKY_UCWK_CH_SELECT_007(dbSelectList.getList().toArray());
		JBSbatCommonDBInterface dbMap = db_CH_T_SEIKY_UCWK.selectNext();

		assert dbMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeKbtDofuTekkyo][dbMap=" + dbMap.getMap().toString() + "]") : true;
		
		if (dbMap != null)
		{

			// 料金グループコード ＋ 料金コースコードリスト
			ArrayList<String> dbList = new ArrayList<String>();
			while (dbMap != null)
			{
				assert dbMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeKbtDofuTekkyo][dbMap=" + dbMap.getMap().toString() + "]") : true;
				
				// 料金グループコード
				String prcGrpCd = dbMap.getString(JBSbatCH_T_SEIKY_UCWK.PRC_GRP_CD);
				
				// マンションIDではない場合
				if(!tmpGroupCdList.contains(prcGrpCd))
				{
					// リストに料金グループコード ＋ 料金コースコードを格納
					dbList.add(makeStr(dbMap.getString(JBSbatCH_T_SEIKY_UCWK.PRC_GRP_CD), dbMap.getString(JBSbatCH_T_SEIKY_UCWK.PCRS_CD)));
					assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeKbtDofuTekkyo][dbList=" + dbList.toString() + "]");
				}
				dbMap = db_CH_T_SEIKY_UCWK.selectNext();
			}
			
			// 該当の料金グループコード ＋ 料金コースコードがなかった場合
			if(dbList == null)
			{
				assert 	JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeKbtDofuTekkyo][該当の料金グループコード ＋ 料金コースコード　データ無]") ;
				
				// 処理終了
				return;
			}
			
			// ネットサービスの場合
			for(int i = 0; i < this.eoHomeSvcKeiNo.size(); i++)
			{
				if (dbList.contains(this.eoHomeSvcKeiNo.get(i)))
				{
					assert 	JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeKbtDofuTekkyo][検索結果．料金コースコード　＝　初期処理．「ホームリスト」のいずれか　の場合]") ;
					
					// 退避．ｅｏ光ネットホームタイプフラグ ← true
					outputMap.set(JBSbatCHIFM087.DOHUBT_PATTERN_CD, this.dhbtEoHm);
					this.dhbtCd = JACStrConst.DOHUBT_EO_HOME;
					assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeKbtDofuTekkyo]");
					return;
				}
			}
			
			// ｅｏ光ネットホームタイプはなかった場合
			for(int j = 0; j < this.eoMansGrSvcKeiNo.size(); j++)
			{
				if (dbList.contains(this.eoMansGrSvcKeiNo.get(j)))
				{
					assert 	JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeKbtDofuTekkyo][検索結果．料金コースコード　＝　初期処理．「マンションリスト」のいずれか　の場合]") ;
					outputMap.set(JBSbatCHIFM087.DOHUBT_PATTERN_CD, this.dhbtEoHn);
					this.dhbtCd = JACStrConst.DOHUBT_EO_MANS_GR;
					assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeKbtDofuTekkyo]");
					return;
				}
			}
		}
			
		//  eo光電話判定
		// パラメータ設定
		dbSelectList = new JBSbatCommonDBInterface();
		dbSelectList.setValue(JACStrConst.SYS_CD_CH);							// システムコード
		dbSelectList.setValue(this.eoHikTelWks);								// 業務機能識別コード(eo光電話)
		dbSelectList.setValue(JACStrConst.CHSHT_CHG_CD_1);						// 抽出変換コード
		dbSelectList.setValue(super.opeDate);									// 適用開始年月日(バッチ運用日)
		dbSelectList.setValue(super.opeDate);									// 適用終了年月日(バッチ運用日)
		dbSelectList.setValue(super.opeDate);									// 予約適用年月日(バッチ運用日)
		dbSelectList.setValue(JACStrConst.RSV_APLY_CD_FIX);						// 予約適用コード
		dbSelectList.setValue(JACStrConst.SVC_KEI_STAT_CNCL_ZUMI);				// サービス契約ステータス
		dbSelectList.setValue(JACStrConst.PAUSE_STP_CD_PAUSE_SOD_ZUMI);			// 休止中断コード
		dbSelectList.setValue(super.opeDate);									// 予約適用年月日(バッチ運用日)
		dbSelectList.setValue(super.opeDate);									// 予約適用年月日(バッチ運用日)
		dbSelectList.setValue(super.opeDate);									// 予約適用年月日(バッチ運用日)
		dbSelectList.setValue("04");											// 料金グループコード(マンション)
		dbSelectList.setValue(super.opeDate);									// 予約適用年月日(バッチ運用日)
		dbSelectList.setValue(JACStrConst.RSV_APLY_CD_FIX);						// 予約適用コード
		dbSelectList.setValue(JACStrConst.RSV_APLY_CD_FIX);						// 予約適用コード
		dbSelectList.setValue(super.opeDate);									// 予約適用年月日(バッチ運用日)
		dbSelectList.setValue(JACStrConst.RSV_APLY_CD_FIX);						// 予約適用コード
		dbSelectList.setValue(mastMap.getString(JBSbatCHIFM087.SEIKY_NO));		// 請求番号
		dbSelectList.setValue(mastMap.getString(JBSbatCHIFM087.SEIKY_KEI_NO));	// 請求契約番号
		dbSelectList.setValue(seikyYm);											// 請求年月
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeKbtDofuTekkyo][param=" + dbSelectList.getList().toString() + "]");

		// SELECT文発行
		executeCH_T_SEIKY_UCWK_CH_SELECT_017(dbSelectList.getList().toArray());
		dbMap = db_CH_T_SEIKY_UCWK.selectNext();

		// 検索結果未存在の場合
		if (dbMap == null)
		{
			assert 	JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeKbtDofuTekkyo][eo光電話撤去工事案内文　データ無]") ;
			
			// 検索結果なしのため、処理終了
			return;
		}
		else
		{
			// 提供方式契約番号(1レコード目)
			String tkHoshikiKeiNo = dbMap.getString(JBSbatKK_T_TK_HOSHIKI_KEI.TK_HOSHIKI_KEI_NO);

			// 提供方式コード判定
			// 提供方式コードが1件でも取得できなかった場合
			if(tkHoshikiKeiNo == null || JACStrConst.KARA_MOJI.equals(tkHoshikiKeiNo) || JACStrConst.TK_HOSHIKI_KEI_NO_SP.equals(tkHoshikiKeiNo))
			{
				// ホームタイプ
				assert 	JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeKbtDofuTekkyo][提供方式契約番号が存在しない]") ;

				// 同封物パターンコード ← 同封物パターンコード設定用(ｅｏ光ネットホームタイプ)
				outputMap.set(JBSbatCHIFM087.DOHUBT_PATTERN_CD, this.dhbtEoHm);

				// 個別同封物コード ← ｅｏ光ネットホームタイプ("01")
				this.dhbtCd = JACStrConst.DOHUBT_EO_HOME;

				return;
			}

			// 退避．支払方式コードSet
			HashSet<String> bkPayHosikiCdSet = new HashSet<String>();
			
			// 退避．マンション物件コードSet
			HashSet<String> bkMansionBukkenCdSet = new HashSet<String>();
			
			// 退避．IP払出コードSet
			HashSet<String> bkIpHraidsiCdSet = new HashSet<String>();

			while (dbMap != null)
			{
				assert dbMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeKbtDofuTekkyo][dbMap=" + dbMap.getMap().toString() + "]") : true;

				// 加入契約支払方式コード 
				String payHoshikiCd =  dbMap.getString(JBSbatKK_T_TK_HOSHIKI_KEI.KANYU_KEI_PAY_HOSHIKI_CD);
				
				// 退避．加入契約支払方式コードSet ← 加入契約支払方式コード 
				bkPayHosikiCdSet.add(payHoshikiCd);
				
				// マンション物件コード
				String mansionBukkenCd =  dbMap.getString(JBSbatKK_T_MANSION_BUKKEN.MANSION_BUKKEN_CD);
				
				// 退避．マンション物件コードSet ← マンション物件コード
				bkMansionBukkenCdSet.add(mansionBukkenCd);
				
				// IP払出コード
				String ipHraidsiCd = dbMap.getString(JBSbatKK_M_MANSION_COURSE.IP_HRADSI_CD);
				
				// 退避．IP払出コードSet ← IP払出コード
				bkIpHraidsiCdSet.add(ipHraidsiCd);
				
				// 次レコード取得
				dbMap = db_CH_T_SEIKY_UCWK.selectNext();
			}

			// マンション個別判定
			
			// マンション物件コード判定
			// 支払方式コードが1件も取得できない または 1件も"002"(個別)が取得できない または マンション物件コードが1件も取得できなかった場合
			if(bkPayHosikiCdSet == null || !bkPayHosikiCdSet.contains(JACStrConst.KANYU_KEI_PAY_HSHK_CD_KOBETSU) || bkMansionBukkenCdSet == null)
			{
				assert 	JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeKbtDofuTekkyo][eo光電話撤去工事案内文　データ無]") ;
				
				// 検索結果なしのため、処理終了
				return;
			}

			// マンション物件コードに1件でも"002"(メゾン)が含まれる場合
			if(bkMansionBukkenCdSet.contains(JACStrConst.MANSION_BUKKEN_CD_002))
			{
				// メゾンタイプ
				assert 	JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeKbtDofuTekkyo][マンション物件コード='002'(メゾン)]") ;
				
				// 同封物パターンコード ← 同封物パターンコード設定用(ｅｏ光ネットホームタイプ)
				outputMap.set(JBSbatCHIFM087.DOHUBT_PATTERN_CD, this.dhbtEoHm);

				// 個別同封物コード ← ｅｏ光ネットホームタイプ("01")
				this.dhbtCd = JACStrConst.DOHUBT_EO_HOME;

				return;
			}
			
			// マンション物件コードに1件でも"001"(マンション)が含まれる場合
			else if(bkMansionBukkenCdSet.contains(JACStrConst.MANSION_BUKKEN_CD_001))
			{
				// IP払出コードに1件でも"02"(グローバル)が含まれている場合
				if(bkIpHraidsiCdSet.contains(JACStrConst.IP_HRADSI_CD_GB))
				{
					// マンショングローバル
					assert 	JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeKbtDofuTekkyo][マンション物件コード='001'(マンション)]") ;

					//  同封物パターンコード ← 同封物パターンコード設定用(ｅｏ光ネットマンショングローバル)
					outputMap.set(JBSbatCHIFM087.DOHUBT_PATTERN_CD, this.dhbtEoHn);

					// 個別同封物コード ← ｅｏ光ネットマンショングローバル("02")
					this.dhbtCd = JACStrConst.DOHUBT_EO_MANS_GR;
				}
				
				return;
			}
		}
	}
	
	/**
	 * 支払方法変更慫慂チラシの判定を行う。
	 * @param mastMap 請求書印刷情報（発行対象）
	 * @param outputMap　出力情報
	 * @throws Exception
	 */
	private void makeKbtDofuShiharai(JBSbatServiceInterfaceMap mastMap, JBSbatServiceInterfaceMap outputMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeKbtDofuShiharai]");
		
		// パラメータ設定
		JBSbatCommonDBInterface dbSelectList = new JBSbatCommonDBInterface();
		dbSelectList.setValue(super.opeDate);									// 予約適用年月日
		dbSelectList.setValue(JACStrConst.RSV_APLY_CD_FIX);						// 予約適用コード
		dbSelectList.setValue(JACStrConst.SVC_KEI_STAT_SVCTK);					// サービス契約ステータス
		dbSelectList.setValue(JACStrConst.SVC_KEI_STAT_KYUSHI);					// サービス契約ステータス
		dbSelectList.setValue(JACStrConst.PAUSE_STP_CD_PAUSE_SOD_ZUMI);			// 休止中断コード
		dbSelectList.setValue(JACStrConst.SYS_CD_CH);							// システムコード
		dbSelectList.setValue(this.prcCdNsWks);									// 業務機能識別コード
		dbSelectList.setValue(JACStrConst.CHSHT_CHG_CD_1);						// 抽出変換コード
		dbSelectList.setValue(super.opeDate);									// 料金項目抽出変換適用開始年月日
		dbSelectList.setValue(super.opeDate);									// 料金項目抽出変換適用終了年月日
		dbSelectList.setValue(super.opeDate);									// 予約適用年月日
		dbSelectList.setValue(JACStrConst.RSV_APLY_CD_FIX);						// 予約適用コード
		dbSelectList.setValue(JACStrConst.PAY_WAY_CD_MDG);						// 請求方法コード
		dbSelectList.setValue(mastMap.getString(JBSbatCHIFM087.SEIKY_KEI_NO));	// 請求契約番号
		dbSelectList.setValue(super.opeDate);									// 課金開始年月日
		dbSelectList.setValue(super.opeDate);									// 課金終了年月日

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeKbtDofuShiharai][param=" + dbSelectList.getList().toString() + "]");

		// SELECT文発行
		executeKK_T_KAKINS_CH_SELECT_003(dbSelectList.getList().toArray());
		JBSbatCommonDBInterface dbMap = db_KK_T_KAKINS.selectNext();
		if (dbMap == null)
		{
			// 検索結果なしのため、処理終了
			assert 	JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeKbtDofuShiharai][初期処理.支払方法変更慫慂チラシ　データ無]") ;
			return;
		}
		assert 	JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeKbtDofuShiharai][検索結果が存在する場合]") ;
		outputMap.set(JBSbatCHIFM087.DOHUBT_PATTERN_CD, this.dhbtShiharai);
		this.dhbtCd = JACStrConst.DOHUBT_SHIHARAI; 
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeKbtDofuShiharai]");
		return;
	}
	
	/**
	 * 出力電文を作成する
	 * @param mastMap 請求書印刷情報（発行対象）
	 * @param outputInItem 入出力電文
	 * @param outputMap 出力情報
	 * @return 出力電文
	 * @throws Exception
	 */
	private JBSbatOutputItem outputItem(JBSbatServiceInterfaceMap mastMap,
										JBSbatOutputItem outputInItem,
										JBSbatServiceInterfaceMap outputMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][outputItem]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][outputItem][dofuPtnCd=" + dofuPtnCd + "]");
		
		// 請求書印刷情報（同封物設定）作成
		makeSeikyPrtInf(mastMap, outputInItem, outputMap);
		
		// 個別同封情報（ソート用）作成
		makeKbtDofuInf(mastMap, outputInItem);
			
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][outputItem]");
		return outputInItem;
	}
	
	/**
	 * 請求書印刷情報（同封物設定）作成
	 * @param mastMap 請求書印刷情報（発行対象）
	 * @param outputInItem　入出力電文
	 * @param outputMap 出力情報
	 * @throws Exception
	 */
	private void makeSeikyPrtInf(JBSbatServiceInterfaceMap mastMap, JBSbatOutputItem outputInItem, JBSbatServiceInterfaceMap outputMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeSeikyPrtInf]");
		
		// 同封物パターン定義マップから同封物情報リストを取得する
		HashMap<Integer, JBSbatCommonDBInterface> dofuInfMap = dohubtMap.get(this.dofuPtnCd);
		
		// 退避．同封物パターンコード　≠　"" の場合　検索結果がない場合
		if (!JACStrConst.KARA_MOJI.equals(this.dofuPtnCd) && dofuInfMap == null)
		{
			assert 	JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeSeikyPrtInf][同封物パターン定義マップ未存在　の場合]") ;
			String[] msgParam = new String[]{JBSbatCH_M_DHBT_PTN_TEIGI.TABLE_NAME, dofuPtnCd};
			throw new JBSbatBusinessException(JPCBatchMessageConstant.ECHB0270CH, msgParam);
		}

		
		// 請求書印刷情報（同封物設定）設定
		// 同封物コード、同封物コード部数を設定
		if (JACStrConst.KARA_MOJI.equals(dofuPtnCd))
		{
			for (int i = 0; i < dofuCdNameList.size(); i++)
			{
				// 請求書印刷情報（発行対象）.同封物コードを請求書印刷情報（同封物設定）.同封物コードに設定
				outputMap.setString(dofuCdNameList.get(i), mastMap.getString(dofuCdNameList.get(i)));
				
				// 請求書印刷情報（発行対象）.同封物コード部数を請求書印刷情報（同封物設定）.同封物コード部数に設定
				outputMap.setString(dofuCdCntNameList.get(i), mastMap.getString(dofuCdCntNameList.get(i)));
			}
		}
		
		// 退避．同封物パターンコードから請求書印刷情報（同封物設定）設定
		else
		{
			// 同封物コードX = 同封トレー番号 の場合は、取得したレコードの値を設定
			// それ以外の場合は請求書印刷情報（発行対象）の内容を単純転送
			for (int i = 0; i < dofuCdNameList.size(); i++)
			{
				int trayNo = i + 1;
				JBSbatCommonDBInterface mapInf = dofuInfMap.get(trayNo);
				if (mapInf == null)
				{
					// 請求書印刷情報（発行対象）.同封物コードを請求書印刷情報（同封物設定）.同封物コードに設定
					outputMap.setString(dofuCdNameList.get(i), mastMap.getString(dofuCdNameList.get(i)));
					
					// 請求書印刷情報（発行対象）.同封物コード部数を請求書印刷情報（同封物設定）.同封物コード部数に設定
					outputMap.setString(dofuCdCntNameList.get(i), mastMap.getString(dofuCdCntNameList.get(i)));
				}
				else
				{
					// 取得したレコードの同封物コードを請求書印刷情報（同封物設定）.同封物コードに設定
					outputMap.setString(dofuCdNameList.get(i), mapInf.getString(JBSbatCH_M_DHBT_PTN_TEIGI.DOHUBT_CD));
					
					// 取得したレコードの同封物コード部数を請求書印刷情報（同封物設定）.同封物コード部数に設定
					outputMap.setString(dofuCdCntNameList.get(i), mapInf.getString(JBSbatCH_M_DHBT_PTN_TEIGI.DOHUBT_CNT));
				}
			}
		}
		
		// 請求書印刷情報（同封物設定）．同封物パターンコード　≠　""　の場合
		if(!JACStrConst.KARA_MOJI.equals(outputMap.getString(JBSbatCHIFM087.DOHUBT_PATTERN_CD)))
		{	
			// 個別同封物確定
			// 同封物パターン定義マップから同封物情報リストを取得する
			HashMap<Integer, JBSbatCommonDBInterface> dofuFixInfMap = dohubtMap.get(outputMap.getString(JBSbatCHIFM087.DOHUBT_PATTERN_CD));
			if (dofuFixInfMap == null)
			{
				assert 	JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getSeikyPrtInf][同封物パターン定義マップ未存在（専用コード）　の場合]") ;
				String[] msgParam = new String[]{JBSbatCH_M_DHBT_PTN_TEIGI.TABLE_NAME, outputMap.getString(JBSbatCHIFM087.DOHUBT_PATTERN_CD)};
				throw new JBSbatBusinessException(JPCBatchMessageConstant.ECHB0270CH, msgParam);
			}
			
			for (int i = 0; i < dofuCdNameList.size(); i++)
			{
				int trayNo = i + 1;
				JBSbatCommonDBInterface mapFixInf = dofuFixInfMap.get(trayNo);
				if (mapFixInf != null)
				{
					// 取得したレコードの同封物コードを請求書印刷情報（同封物設定）.同封物コードに設定
					outputMap.setString(dofuCdNameList.get(i), 		mapFixInf.getString(JBSbatCH_M_DHBT_PTN_TEIGI.DOHUBT_CD));
					
					// 取得したレコードの同封物コード部数を請求書印刷情報（同封物設定）.同封物コード部数に設定
					outputMap.setString(dofuCdCntNameList.get(i), 	mapFixInf.getString(JBSbatCH_M_DHBT_PTN_TEIGI.DOHUBT_CNT));
				}
			}
		}
		
		// 上記以外の場合
		else
		{
			// 退避．同封物パターンコードを請求書印刷情報（同封物設定）．同封物パターンコードに設定する。
			outputMap.set(JBSbatCHIFM087.DOHUBT_PATTERN_CD, this.dofuPtnCd);
		}
		
		outputInItem.addOutMapList(outputMap);
		
		// 出力フラグON
		outputMap.setOutFlg(true);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeSeikyPrtInf]");
		return;
	}

	
	/**
	 * 個別同封情報（ソート用）作成
	 * @param mastMap 請求書印刷情報（発行対象）
	 * @param outputInItem　出力情報
	 * @throws Exception
	 */
	private void makeKbtDofuInf(JBSbatServiceInterfaceMap mastMap, JBSbatOutputItem outputInItem) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeKbtDofuInf]");
		JBSbatServiceInterfaceMap outputMap = new JBSbatServiceInterfaceMap();
		
		// 退避．個別同封物コード　≠　""　の場合
		if(!JACStrConst.KARA_MOJI.equals(this.dhbtCd))
		{
			// 個別同封情報（ソート用）．請求契約番号に請求書印刷情報（発行対象）．請求契約番号を設定する。
			outputMap.setString(JBSbatCHIFM094.SEIKY_KEI_NO, mastMap.getString(JBSbatCHIFM087.SEIKY_KEI_NO));
			
			// 個別同封情報（ソート用）．個別同封物コードに、退避．個別同封物コードを設定する。
			outputMap.setString(JBSbatCHIFM094.DHBT_CD, this.dhbtCd);
			
			// 退避．個別同封物コードを使用して、初期処理．個別同封物名称マップの値を個別同封情報（ソート用）．個別同封物名称に設定する。
			if (!kbtDhbtNmMap.containsKey(this.dhbtCd))
			{
				assert 	JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeKbtDofuInf][コード名称管理マップ未存在　の場合]") ;
				String[] msgParam = new String[]{JBSbatZM_M_CD_NM_KANRI.TABLE_NAME, this.dhbtCd};
				throw new JBSbatBusinessException(JPCBatchMessageConstant.ECHB0270CH, msgParam);
			}
			
			outputMap.setString(JBSbatCHIFM094.DHBT_NM, kbtDhbtNmMap.get(this.dhbtCd));
			
			// 出力フラグON
			outputMap.setOutFlg(true);
			outputInItem.addOutMapList_2(outputMap);
		
		}

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeKbtDofuInf]");
		return;
	}
	
	/**
	 * 文字を連結します
	 * @param string　文字
	 * @return strBuf　連結した文字列
	 */
	private String makeStr(String ...string)
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeStr]");
		
		StringBuffer strBuf = new StringBuffer();
		for(String str:string){
			strBuf.append(str);
		}
		assert strBuf != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeStr][strBuf = " + strBuf.toString() + "]") : true;
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeStr]");
		
		return strBuf.toString();
	}
}
