/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCHSeikyDataMake
*	ソースファイル名	：JBSbatCHSeikyDataMake.java
*	作成者				：富士通　
*	作成日				：2011年08月18日
*＜機能概要＞
*　請求データ作成部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/08/18   富士通		新規作成
*	v3.00		2012/06/25   FJ）冨井	【ST2-2012-0001296】出力項目 請求年月（領収データのみの場合）修正
*	v3.01		2012/07/06   FJ）後藤	【IT2-2012-0001204】窓口・クレジットの場合、口振収納機関を検索しないように修正
*	v3.02.00	2012/08/28   FJ）成田	【TG1-2012-0000145】パラメータ取得部品のクローズ処理を追加。
*	v4.00.00	2012/11/09   FJ）加島	【TG1-2012-0000251】金融マスタの検索条件変更
*	v4.00.01	2012/12/12   FJ）野添	【ST4-2012-0000153】処理時間短縮対応（金融マスタ・クレジットカード会社名の先読み）
*	v4.00.01	2013/01/18   FJ）後藤	請求方法コード判定方法修正
*	v4.00.02	2013/02/27   FJ) 小柴	【】クレジットカード会社名マップ作成時のSQL条件を追加
*										【】金融機関未存在時の請求・領収データ作成時の請求方法コードを修正
*	v4.00.03	2013/03/06   FJ) 小柴	【】領収データのみ、金融機関なし時の出力仕様を修正
*	v4.00.04	2013/03/21   FJ) 小柴	【IKK-2013-0000644】請求データのみパターン時の、当月請求有無フラグの編集仕様を修正
*	v4.00.05	2013/04/04   FJ) 小柴	【】金融機関情報なし時の支払方法コード編集仕様を変更
*	v4.00.06	2013/04/10   FJ) 小柴	【IT1-2013-0000858】オーソリ結果フラグは常に出力するように修正
*	v4.00.07	2013/04/23   FJ) 浜口	【内部管理番号-0000879】クレジット会社名の出力値にクレジットカード会社略称を設定
*	v5.00.00	2013/07/10   FJ) 後藤	【LT-2013-0000316】領収泣き別れ時の金額編集修正
*	v5.00.01	2013/09/06   FJ) 伊藤	【OM-2013-0001650】金融機関情報を取得できない場合の警告出力を廃止
*********************************************************************/
package eo.business.service;

import java.math.BigDecimal;
import java.util.HashMap;

import eo.business.common.JACbatDebugLogUtil;
import eo.business.common.JACbatParamUtil;
import eo.business.common.JBSbatBusinessService;
import eo.business.common.JBSbatMatchServiceInterface;
import eo.business.common.JCHbatSeikyKaknoBusinessUtil;
import eo.business.util.file.JBSbatACIFI010;
import eo.business.util.file.JBSbatCHIFM051;
import eo.business.util.file.JBSbatCHIFM070;
import eo.business.util.file.JBSbatCHIFM071;
import eo.business.util.table.JBSbatCH_M_KHRI_SHUNOKIKAN;
import eo.business.util.table.JBSbatCH_T_NYUKIN;
import eo.business.util.table.JBSbatCH_T_SEIKY;
import eo.business.util.table.JBSbatKK_M_BANK;
import eo.business.util.table.JBSbatKK_M_CRECARD_COMP;
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.common.util.JPCUtilCommon;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.file.JBSbatDefFileUtil;
import eo.framework.file.JBSbatOutputFileUtil;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.util.JBSbatAplConst;

/**
* 請求データ作成 <p>
*<BR>
* @author 富士通
*/
public class JBSbatCHSeikyDataMake extends JBSbatBusinessService implements JBSbatMatchServiceInterface
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(金融機関)*/
	private static final String D_TBL_NAME_KK_M_BANK = "KK_M_BANK";

	/** テーブル(クレジットカード会社)*/
	private static final String D_TBL_NAME_KK_M_CRECARD_COMP = "KK_M_CRECARD_COMP";

	/** テーブル(入金)*/
	private static final String D_TBL_NAME_CH_T_NYUKIN = "CH_T_NYUKIN";

	/** テーブル(コード名称管理)*/
	private static final String D_TBL_NAME_ZM_M_CD_NM_KANRI = "ZM_M_CD_NM_KANRI";

	/** テーブル(口座振替収納機関)*/
	private static final String D_TBL_NAME_CH_M_KHRI_SHUNOKIKAN = "CH_M_KHRI_SHUNOKIKAN";

	/** テーブル(請求)*/
	private static final String D_TBL_NAME_CH_T_SEIKY = "CH_T_SEIKY";

	/** SQL定義キー(CH_SELECT_020)*/
	private static final String CH_T_NYUKIN_CH_SELECT_020 = "CH_SELECT_020";

	/** SQL定義キー(CH_SELECT_001)*/
	private static final String ZM_M_CD_NM_KANRI_CH_SELECT_001 = "CH_SELECT_001";

	/** SQL定義キー(CH_SELECT_002)*/
	private static final String CH_M_KHRI_SHUNOKIKAN_CH_SELECT_002 = "CH_SELECT_002";

	/** SQL定義キー(CH_SELECT_032)*/
	private static final String CH_T_SEIKY_CH_SELECT_032 = "CH_SELECT_032";

	/** SQL定義キー(CH_SELECT_006)*/
	private static final String KK_M_BANK_CH_SELECT_006 = "CH_SELECT_006";

	/** SQL定義キー(CH_SELECT_006)*/
	private static final String KK_M_CRECARD_COMP_CH_SELECT_006 = "CH_SELECT_006";

	/** テーブルアクセスクラス(金融機関)*/
	private JBSbatSQLAccess db_KK_M_BANK = null;

	/** テーブルアクセスクラス(クレジットカード会社)*/
	private JBSbatSQLAccess db_KK_M_CRECARD_COMP = null;

	/** テーブルアクセスクラス(入金)*/
	private JBSbatSQLAccess db_CH_T_NYUKIN = null;

	/** テーブルアクセスクラス(コード名称管理)*/
	private JBSbatSQLAccess db_ZM_M_CD_NM_KANRI = null;

	/** テーブルアクセスクラス(口座振替収納機関)*/
	private JBSbatSQLAccess db_CH_M_KHRI_SHUNOKIKAN = null;

	/** テーブルアクセスクラス(請求)*/
	private JBSbatSQLAccess db_CH_T_SEIKY = null;

	/** キーマッチ処理フラグ*/
	private boolean matchProcFlg;

	/** マスタファイル処理フラグ*/
	private boolean mastProcFlg;

	/** トランファイル処理フラグ*/
	private boolean tranProcFlg;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** 出力件数（金融機関なし情報） */
	private int bnkOputCnt = 0;
	
	/** 請求方法コード */
	private String seikyWayCd = null;
	
	/** 請求方法変更フラグ */
	private String seikyWayChgFlg = JACStrConst.SEIKY_WAY_CHG_FLG_NSI;
	
	/** 口座科目名（普通） */
	private String meshoNormal  = null;

	/** 口座科目名（当座） */
	private String meshoToza  = null;
	
	/** 金融機関名（当月請求データ） */
	private String bankNm = JACStrConst.KARA_MOJI;
	
	/** 金融機関支店名（当月請求データ） */
	private String bankShitenNm = JACStrConst.KARA_MOJI;
	
	/** 金融機関名（領収データ） */
	private String receiptBankNm = JACStrConst.KARA_MOJI;
	
	/** 金融機関支店名（領収データ） */
	private String receiptBankShitenNm = JACStrConst.KARA_MOJI;
	
	/** クレジット会社名 */
	private String crecardCompNm = JACStrConst.KARA_MOJI;
	
	/** 領収年月日 */
	private String receiptYmd = JACStrConst.KARA_MOJI;
	
	/** ファイルインスタンス（金融機関なし情報） */
	private JBSbatOutputFileUtil fileObj = null;
	
	/** 出力ファイル定義 */
	private JBSbatDefFileUtil outFileDef = null;
	
	/** 口座振替収納機関マップ */
	private HashMap<String, String> khriShKikanMap = null;
	
	/** 金融機関一覧マップ */
	private HashMap<String, JBSbatCommonDBInterface> bankIchiranMap = null;

	/** クレジットカード会社名一覧マップ */
	private HashMap<String, String> crecacompichiranMap = null;

	/** 領収有無フラグ */
	private String reciptUmFlg = JACStrConst.KARA_MOJI;
	
	/** 金融機関有無フラグ：初期値true(あり) */
	private boolean bankUmFlg = true;
	
	/** 収納代行会社コード（ＫＯＰＴ） */
	private String shnodKcmpKopt 	= null; 
	
	/** 収納代行会社コード（クォーク） */
	private String shnodKcmpQuark 	= null; 
	
	/** 収納代行会社コード（クリアパス） */
	private String shnodKcmpClrps 	= null; 
	
	/** 退避．当月 */
	private String tmpTogetu = null;
	
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_M_BANK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_M_BANK);
		db_KK_M_CRECARD_COMP = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_M_CRECARD_COMP);
		db_CH_T_NYUKIN = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_NYUKIN);
		db_ZM_M_CD_NM_KANRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_CD_NM_KANRI);
		db_CH_M_KHRI_SHUNOKIKAN = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_M_KHRI_SHUNOKIKAN);
		db_CH_T_SEIKY = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_SEIKY);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		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.meshoNormal = this.getKozaNm(JZM0171Constant.CD00248, JACStrConst.YOKIN_SHUMOKU_NORMAL);
		this.meshoToza = this.getKozaNm(JZM0171Constant.CD00248, JACStrConst.YOKIN_SHUMOKU_TOZA);
		
		this.khriShKikanMap = new HashMap<String, String>();
		this.bankIchiranMap = new HashMap<String, JBSbatCommonDBInterface>();
		this.crecacompichiranMap = new HashMap<String, String>();
		
		// パラメータ取得クラス生成
		JACbatParamUtil paramUtil = new JACbatParamUtil(commonItem);
		
		// 収納代行会社コード取得
		this.shnodKcmpKopt 		= paramUtil.getGyoumuParameter(JACStrConst.WKPARA_CH_SHNODKCMP_KOPT);
		this.shnodKcmpQuark 	= paramUtil.getGyoumuParameter(JACStrConst.WKPARA_CH_SHNODKCMP_QUARK);
		this.shnodKcmpClrps 	= paramUtil.getGyoumuParameter(JACStrConst.WKPARA_CH_SHNODKCMP_CLRPS);
		
		paramUtil.close();
		
		// 口座振替収納機関マップ取得
		this.getKhriShunokikanMap();
		
		// 金融機関マップ一覧取得
		this.getBankIchiranMap();
		
		// クレジットカード会社名マップ一覧取得
		this.getCrecacompichiranMap();
		
		// 金融機関なし情報ファイル生成
		String[] freeItems = super.freeItem.split(JACStrConst.SEMI_COLON);
		
		// 出力ファイルオブジェクトを生成する
		this.fileObj = new JBSbatOutputFileUtil(freeItems[0].concat(JACStrConst.SLASH).concat(freeItems[1]));
		
		// 出力定義ファイル名を取得する
		String outFileDefName = JBSbatAplConst.getAplConstValue("OTD") + freeItems[2];
		
		// 出力定義ファイルオブジェクトを生成する
		this.outFileDef = new JBSbatDefFileUtil(outFileDefName, this.fileObj);
		
		// Writerオブジェクトを生成する。
		this.fileObj.createWriter();
		
		// 当月取得
		this.getTogetu();
		
		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;
		
		this.seikyWayChgFlg = JACStrConst.SEIKY_WAY_CHG_FLG_NSI;
		this.receiptYmd     = JACStrConst.KARA_MOJI;
		this.crecardCompNm  = JACStrConst.KARA_MOJI;
		this.bankNm         = JACStrConst.KARA_MOJI;
		this.bankShitenNm   = JACStrConst.KARA_MOJI;
		this.receiptBankNm  = JACStrConst.KARA_MOJI;
		this.reciptUmFlg    = JACStrConst.RECIPT_UM_NASHI;
		this.bankUmFlg      = true;
		
		// 入力Ｍのみ存在する
		if (mastMap != null && tranMap == null)
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入力Ｍのみ存在する]");
			
			this.seikyWayCd = mastMap.getString(JBSbatCHIFM070.SEIKY_WAY_CD);
			
			// 当月請求データ付加情報取得
			this.getSeikyHuka(mastMap, outputInItem);
			
			// 出力項目設定（当月請求データのみ）
			this.setOutKmkSeiky(mastMap, outputInItem);
			
			this.setMastProcFlg(true);
		}
		// 入力Ｔのみ存在する
		else if (mastMap == null && tranMap != null)
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入力Ｔのみ存在する]");
			this.setTranProcFlg(true);
			
			this.reciptUmFlg = JACStrConst.RECIPT_UM_ARI;
			
			// 領収データ付加情報取得
			this.getReceiptHuka(tranMap);
			
			// 出力項目設定（領収データのみ）
			this.setOutKmkReceipt(null, tranMap, outputInItem);
		}
		// 入力Ｍ、入力Ｔともに存在する
		else
		{
			this.seikyWayCd = mastMap.getString(JBSbatCHIFM070.SEIKY_WAY_CD);
			// マッチングキー取得
			String mastKey = mastMap.getString(JBSbatCHIFM070.SEIKY_KEI_NO);
			String tranKey = tranMap.getString(JBSbatCHIFM070.SEIKY_KEI_NO);
			
			// 入力Ｍ＝入力Ｔ（マッチ）
			if (mastKey.compareTo(tranKey) == 0)
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入力Ｍ、入力Ｔともに存在する][入力Ｍ＝入力Ｔ（マッチ）]");
				this.setMastProcFlg(true);
				this.setTranProcFlg(true);
				
				this.reciptUmFlg = JACStrConst.RECIPT_UM_ARI;
				
				// 当月請求データ付加情報取得
				this.getSeikyHuka(mastMap, outputInItem);
				// 領収データ付加情報取得
				this.getReceiptHuka(tranMap);
				
				String tranSeikyWayCd = tranMap.getString(JBSbatCHIFM070.SEIKY_WAY_CD);
				// 退避．請求方法コードと領収データ．請求方法コードが等しい場合
				if(this.seikyWayCd.equals(tranSeikyWayCd)
						|| (this.seikyWayCd.equals(JACStrConst.PAY_WAY_CD_KHR) || (this.seikyWayCd.equals(JACStrConst.PAY_WAY_CD_YHR) 
								&& (tranSeikyWayCd.equals(JACStrConst.PAY_WAY_CD_KHR) || (tranSeikyWayCd.equals(JACStrConst.PAY_WAY_CD_YHR))))))
				{
					assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入力Ｍ＝入力Ｔ（マッチ）][請求方法コード一致]");
					//出力項目設定（当月請求データ＋領収データ）
					this.setOutKmkMatch(mastMap, tranMap, outputInItem);
				}
				// それ以外の場合
				else
				{
					assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入力Ｍ＝入力Ｔ（マッチ）][請求方法コード相違]");
					if(this.bankUmFlg)
					{
						// 出力項目設定（当月請求データのみ）
						this.setOutKmkSeiky(mastMap, outputInItem);
						// 出力項目設定（領収データのみ）
						this.setOutKmkReceipt(mastMap, tranMap, outputInItem);
					}
					else
					{
						// 出力項目設定（当月請求データのみ）
						this.setOutKmkSeiky(mastMap, outputInItem);
						// 出力項目設定（領収データ(金融機関なし)）
						this.setOutKmkNoBank(mastMap, tranMap, outputInItem);
						
					}
				}
			}
			// 入力Ｍ＜入力Ｔ
			else if (mastKey.compareTo(tranKey) < 0)
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入力Ｍ、入力Ｔともに存在する][入力Ｍ＜入力Ｔ]");
				this.setMastProcFlg(true);

				// 当月請求データ付加情報取得
				this.getSeikyHuka(mastMap, outputInItem);
				// 出力項目設定（当月請求データのみ）
				this.setOutKmkSeiky(mastMap, outputInItem);
			}
			// 入力Ｍ＞入力Ｔ
			else
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入力Ｍ、入力Ｔともに存在する][入力Ｍ＞入力Ｔ]");
				this.setTranProcFlg(true);
				
				this.reciptUmFlg = JACStrConst.RECIPT_UM_ARI;
				
				// 領収データ付加情報取得
				this.getReceiptHuka(tranMap);
				// 出力項目設定（領収データのみ）
				this.setOutKmkReceipt(null, tranMap, outputInItem);
			}
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute]");
		return outputInItem;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_M_BANK.close();
		db_KK_M_CRECARD_COMP.close();
		db_CH_T_NYUKIN.close();
		db_ZM_M_CD_NM_KANRI.close();
		db_CH_M_KHRI_SHUNOKIKAN.close();
		db_CH_T_SEIKY.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][terminal]");
		
		// ログ出力
		String[] outCntMsg = {"主処理の金融情報なし情報ファイル出力", String.valueOf(this.bnkOputCnt)};
		super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB1450AI, outCntMsg);
		
		// ファイルインスタンスがNULLでない場合
		if(null != this.fileObj)
		{
			// ファイルクローズ
			this.fileObj.close();
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][terminal]");
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}
	
	/**
	 * 当月請求データへの付加情報を取得します。
	 * 
	 * @param mastMap 当月請求データ
	 * @param outputInItem 出力電文
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void getSeikyHuka(JBSbatServiceInterfaceMap mastMap, JBSbatOutputItem outputInItem)throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getSeikyHuka]");

		// 請求方法＝２（口振）or ３（郵振）の場合
		if(this.seikyWayCd.equals(JACStrConst.SEIKY_KHRI) || this.seikyWayCd.equals(JACStrConst.SEIKY_YUFUIRI))
		{
			JBSbatCommonDBInterface ret = null;
			
			// 金融機関情報取得
			ret = this.getBankNm(mastMap.getString(JBSbatCHIFM070.BANK_CD) + mastMap.getString(JBSbatCHIFM070.BANK_SHITEN_CD));
			
			// 金融機関情報を取得できない場合
			if (ret == null)
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getSeikyHuka[金融機関情報を取得できなかった場合]");
				
				outputInItem.addOutMapList_2(this.setSeikyusMakeRslt(mastMap));
				
				this.seikyWayCd 		= JACStrConst.SEIKY_MADOGUCHI;			// "1"（窓口払い）;
				this.seikyWayChgFlg		= JACStrConst.SEIKY_WAY_CHG_FLG_ARI;	// "1"（変更あり）;
				
				// 金融機関有無フラグ：false(なし)
				this.bankUmFlg = false;
				
				// 金融機関情報なしファイルを出力します。
				this.outputBnkNonInf(mastMap);
			}
			else
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getSeikyHuka[金融機関情報を取得できた場合]");
				this.bankNm = ret.getString(JBSbatKK_M_BANK.BANK_NM);
				this.bankShitenNm = ret.getString(JBSbatKK_M_BANK.BANK_SHITEN_NM);
			}
		}
		// 請求方法＝４（クレジット）の場合
		else if(this.seikyWayCd.equals(JACStrConst.SEIKY_CREDIT)) //"4"クレジット))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getSeikyHuka[請求方法コード = 4（クレジット） の場合]");
			this.getCrecardCompNm(mastMap.getString(JBSbatCHIFM070.CRECARD_COMP_CD));
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getSeikyHuka]");
	}
	
	/**
	 * 領収データへの付加情報を取得します。
	 * 
	 * @param tranMap 領収データ
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void getReceiptHuka(JBSbatServiceInterfaceMap tranMap)throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getReceiptHuka]");
		
		// 入金情報取得
		this.getNyukin(tranMap);
		
		
		JBSbatCommonDBInterface ret = null;
		
		// 金融機関情報取得
		ret = this.getBankNm(tranMap.getString(JBSbatCHIFM070.BANK_CD) + tranMap.getString(JBSbatCHIFM070.BANK_SHITEN_CD));
		
		// 金融機関情報を取得できない場合、メッセージを出力し処理続行
		if (ret == null)
		{
			//2013/09/06 廃止
			//String[] msgParam = new String[]
			//{JBSbatKK_M_BANK.TABLE_NAME, "Key：" + tranMap.getString(JBSbatCHIFM070.BANK_CD) + "," + tranMap.getString(JBSbatCHIFM070.BANK_SHITEN_CD) + "," + this.opeDate + "," + this.opeDate + "," + this.opeDate};
			//super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB0240CW, msgParam);
		}
		else
		{
			this.receiptBankNm 			= ret.getString(JBSbatKK_M_BANK.BANK_NM);
			this.receiptBankShitenNm 	= ret.getString(JBSbatKK_M_BANK.BANK_SHITEN_NM);
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getReceiptHuka]");
	}
	
	/**
	 * 収納代行会社コードを取得します。
	 * 
	 * @param bankCd 金融機関コード
	 * @return String 収納代行会社コード
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private String getShnoDkCmpCd(String bankCd) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getShnoDkCmpCd]");
		
		String ret = JACStrConst.KARA_MOJI;
		
		if(!this.khriShKikanMap.containsKey(bankCd))
		// 金融機関コードがない
		{
			String[] msgParam = new String[]{JBSbatCH_M_KHRI_SHUNOKIKAN.TABLE_NAME, "Key：".concat(bankCd)};
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB0240CW, msgParam);
		}
		else
		{
			ret = this.khriShKikanMap.get(bankCd);
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getShnoDkCmpCd]");
		
		
		return(ret);
	}

	/**
	 * 金融機関名を取得します。	
	 * 	
	 * @param bankCd 金融機関コード 
	 * @return JBSbatCommonDBInterface 金融機関本店名, 金融機関支店名
	 * @throws Exception 業務サービス内で発生した例外全般
	 */	
	private JBSbatCommonDBInterface getBankNm(String bankcd) throws Exception
	{
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getBankNm]");
		
		JBSbatCommonDBInterface ret = null;

		// 金融機関コードが存在する場合
		if(this.bankIchiranMap.containsKey(bankcd))
		{
			ret = bankIchiranMap.get(bankcd);
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getBankNm]");
	
		return ret;
	}
	
	/**
	 * クレジットカード会社名を取得します。	
	 * 	
	 * @param  crecardcompcd クレジット会社コード
	 * @throws Exception 業務サービス内で発生した例外全般	
	 */	
	private void getCrecardCompNm(String crecardcompcd) throws Exception
	{
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getCrecardCompNm]");
		
		if(!this.crecacompichiranMap.containsKey(crecardcompcd))
		// クレジットカード会社名がない
		{
			this.crecardCompNm = JACStrConst.KARA_MOJI;
			String[] msgParam = new String[]{JBSbatKK_M_CRECARD_COMP.TABLE_NAME, "Key：".concat(crecardcompcd)};
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB0240CW, msgParam);
		}
		else
		{
			this.crecardCompNm = this.crecacompichiranMap.get(crecardcompcd);
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getCrecardCompNm]");
		
		return;
	}
	
	/**
	 * 当月請求データのみ場合の出力項目を編集します。
	 * 
	 * @param mastMap 当月請求データ
	 * @param outputInItem 出力電文
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void setOutKmkSeiky(JBSbatServiceInterfaceMap mastMap, JBSbatOutputItem outputInItem)throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][setOutKmkSeiky]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkSeiky][請求方法コード：" + seikyWayCd + "]");
		JBSbatServiceInterfaceMap outputMap = new JBSbatServiceInterfaceMap();
		
		outputMap.setString(JBSbatCHIFM071.REC_DIV, 				JACStrConst.REC_DIV_TOGETSU_SEIKY);			 					// レコード区分
		
		// 請求番号がnull、または空文字の場合は当月請求有無＝０（なし）とする
		String seikyNo = mastMap.getString(JBSbatCHIFM070.SEIKY_NO);
		if (seikyNo == null || JACStrConst.KARA_MOJI.equals(seikyNo.trim()))
		{
			outputMap.setString(JBSbatCHIFM071.TOGTU_SIKY_UM, 			JACStrConst.TOGTU_SIKY_UM_NSI);	 							// 当月請求有無
		}
		// 値が入っている場合は当月請求有無＝１（あり）とする
		else
		{
			outputMap.setString(JBSbatCHIFM071.TOGTU_SIKY_UM, 			JACStrConst.TOGTU_SIKY_UM_ARI);	 								// 当月請求有無
		}
		
		outputMap.setString(JBSbatCHIFM071.RECEIPT_UM, 				this.reciptUmFlg);												// 領収有無 
		outputMap.setString(JBSbatCHIFM071.RECEIPT_NAKIWAKARE_UM,	mastMap.getString(JBSbatCHIFM070.RECEIPT_NAKIWAKARE_UMU_FLG));	// 領収証泣き別れ有無 
		// 督促ステータス＝"00"（督促なし）の場合
		if(JACStrConst.KARA_MOJI.equals(mastMap.getString(JBSbatCHIFM070.TOKUSOKU_STAT)) 
				|| mastMap.getString(JBSbatCHIFM070.TOKUSOKU_STAT).equals(JACStrConst.TOKUSOKU_STAT_NASHI)) 
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkSeiky][督促なし]");
			outputMap.setString(JBSbatCHIFM071.TOKUSOKU_UM,  JACStrConst.TOKUSOKU_UM_NSI);										 		// 督促有無（"0"：督促なし）
		}
		else
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkSeiky][督促あり]");
			outputMap.setString(JBSbatCHIFM071.TOKUSOKU_UM,  JACStrConst.TOKUSOKU_UM_ARI);												// 督促有無（"1"：督促あり）; 	
		}
		
		outputMap.setString(JBSbatCHIFM071.SEIKYUS_HAKKO_YH, 	 	mastMap.getString(JBSbatCHIFM070.SEIKYUS_HAKKO_YH)); 				// 請求書発行要否
		outputMap.setString(JBSbatCHIFM071.SKHK_SVKEI_STAT_CD, 		mastMap.getString(JBSbatCHIFM070.SKHK_SVKEI_STAT_CD));		 		// 請求契約配下サービス契約状態コード
		outputMap.setString(JBSbatCHIFM071.SKHK_SVKEI_DLRE_SKBT_CD,	mastMap.getString(JBSbatCHIFM070.SKHK_SVKEI_DLRE_SKBT_CD)); 		// 請求契約配下サービス契約解約理由識別コード
		outputMap.setString(JBSbatCHIFM071.KYOSEI_MADOGUCHI_FLG, 	mastMap.getString(JBSbatCHIFM070.KYOSEI_MADOGUCHI_FLG)); 			// 強制窓口フラグ 
		outputMap.setString(JBSbatCHIFM071.GSAN_SEIKY_UM_FLG, 		mastMap.getString(JBSbatCHIFM070.GSAN_SEIKY_UMU_FLG)); 				// 合算請求有無フラグ
		outputMap.setString(JBSbatCHIFM071.MAEUKKIN_SOSAI_UM_FLG, 	mastMap.getString(JBSbatCHIFM070.MAEUKKIN_SOSAI_UMU_FLG));	 		// 前受金相殺有無フラグ 
		outputMap.setString(JBSbatCHIFM071.TW_DTL_HAK_UM_FLG, 		JACStrConst.KARA_MOJI);	 											// 通話明細発行有無フラグ
		outputMap.setString(JBSbatCHIFM071.SEIKYUS_HAKKO_UM_FLG,	JACStrConst.KARA_MOJI);			 									// 請求書発行有無フラグ 
		
		// 請求テーブル更新有無フラグ
		String sikyTbUpdFlg = JACStrConst.SEIKY_TABLE_UPD_UM_FLG_NSI;
		
		// 請求番号が設定されている場合
		if(!JACStrConst.KARA_MOJI.equals(mastMap.getString(JBSbatCHIFM070.SEIKY_NO)))
		{
			sikyTbUpdFlg = JACStrConst.SEIKY_TABLE_UPD_UM_FLG_ARI;
		}
		
		outputMap.setString(JBSbatCHIFM071.SEIKY_TABLE_UPD_UM_FLG, 	sikyTbUpdFlg);														// 請求テーブル更新有無フラグ
		outputMap.setString(JBSbatCHIFM071.SEIKY_WAY_CHG_FLG, 		this.seikyWayChgFlg); 												// 請求方法変更フラグ
		outputMap.setString(JBSbatCHIFM071.DOFU_CD, 				mastMap.getString(JBSbatCHIFM070.DOFU_CD)); 						// 同封コード
		outputMap.setString(JBSbatCHIFM071.SEIKY_KEI_NO, 			mastMap.getString(JBSbatCHIFM070.SEIKY_KEI_NO));	 				// 請求契約番号
		outputMap.setString(JBSbatCHIFM071.SEIKY_NO, 				mastMap.getString(JBSbatCHIFM070.SEIKY_NO)); 						// 請求番号 
		outputMap.setString(JBSbatCHIFM071.SEIKY_YM, 				mastMap.getString(JBSbatCHIFM070.SEIKY_YM));		 				// 請求年月
		outputMap.setString(JBSbatCHIFM071.PAY_WAY_CD, 				this.seikyWayCd); 													// 支払方法コード
		outputMap.setString(JBSbatCHIFM071.MSKM_PAY_WAY, 			mastMap.getString(JBSbatCHIFM070.MSKM_PAY_WAY_CD));	 				// 申込時支払方法
		outputMap.setString(JBSbatCHIFM071.SEIKY_WAY_CD, 			this.seikyWayCd); 													// 請求方法コード
		outputMap.setString(JBSbatCHIFM071.SIKY_JI_SIKY_WAY_CD, 	this.seikyWayCd); 													// 請求時請求方法コード
		outputMap.setString(JBSbatCHIFM071.SOHUS_PCD, 				mastMap.getString(JBSbatCHIFM070.SOHUS_PCD));						// 送付先郵便番号
		outputMap.setString(JBSbatCHIFM071.SOHUS_STATE_NM, 			mastMap.getString(JBSbatCHIFM070.SOHUS_STATE_NM));					// 送付先都道府県名
		outputMap.setString(JBSbatCHIFM071.SOHUS_CITY_NM, 			mastMap.getString(JBSbatCHIFM070.SOHUS_CITY_NM));					// 送付先市区町村名
		outputMap.setString(JBSbatCHIFM071.SOHUS_OAZTSU_NM, 		mastMap.getString(JBSbatCHIFM070.SOHUS_OAZTSU_NM));					// 付先大字通称名
		outputMap.setString(JBSbatCHIFM071.SOHUS_AZCHO_NM, 			mastMap.getString(JBSbatCHIFM070.SOHUS_AZCHO_NM));					// 送付先字丁目名
		outputMap.setString(JBSbatCHIFM071.SOHUS_BNCHIGO, 			mastMap.getString(JBSbatCHIFM070.SOHUS_AD_BNCHIGO));				// 送付先住所番地号
		outputMap.setString(JBSbatCHIFM071.SOHUS_ADRTTM, 			mastMap.getString(JBSbatCHIFM070.SOHUS_ADRTTM));					// 送付先住所補記・建物名
		outputMap.setString(JBSbatCHIFM071.SOHUS_ADRRM, 			mastMap.getString(JBSbatCHIFM070.SOHUS_ADRRM));						// 送付先住所補記・部屋番号
		outputMap.setString(JBSbatCHIFM071.SOHUS_NM, 				mastMap.getString(JBSbatCHIFM070.SOHUS_NM));						// 送付先名
		outputMap.setString(JBSbatCHIFM071.SOHUS_BKM, 				mastMap.getString(JBSbatCHIFM070.SOHUS_BKM));						// 送付先部課名
		outputMap.setString(JBSbatCHIFM071.SOHUS_TNTSHA_NM, 		mastMap.getString(JBSbatCHIFM070.SOHUS_TNTSHA_NM));					// 送付先担当者名
		// 請求方法コード＝２（口振）の場合
		if(seikyWayCd.equals(JACStrConst.SEIKY_KHRI))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkSeiky][請求方法コード：２（口振）]");

			outputMap.setString(JBSbatCHIFM071.SHNODKCMP_CD, 		getShnoDkCmpCd(mastMap.getString(JBSbatCHIFM070.BANK_CD)));			// 収納代行会社コード
			outputMap.setString(JBSbatCHIFM071.BANK_CD, 			mastMap.getString(JBSbatCHIFM070.BANK_CD));							// 金融機関コード
			outputMap.setString(JBSbatCHIFM071.BANK_SHITEN_CD, 		mastMap.getString(JBSbatCHIFM070.BANK_SHITEN_CD));					// 金融機関支店コード 
			outputMap.setString(JBSbatCHIFM071.YOKIN_SHUMOKU_CD,	mastMap.getString(JBSbatCHIFM070.YOKIN_SHUMOKU_CD));				// 預金種目コード
			outputMap.setString(JBSbatCHIFM071.KOZA_NO, 			mastMap.getString(JBSbatCHIFM070.KOZA_NO));							// 口座番号
			outputMap.setString(JBSbatCHIFM071.BANK_NM, 			this.bankNm);														// 金融機関名
			outputMap.setString(JBSbatCHIFM071.BANK_SHITEN_NM, 		this.bankShitenNm);													// 金融機関支店名
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkSeiky][口座種別コード：" + mastMap.getString(JBSbatCHIFM070.YOKIN_SHUMOKU_CD) + "]");
			// 口座種別コード＝預金種目コード（普通） の場合
			if(mastMap.getString(JBSbatCHIFM070.YOKIN_SHUMOKU_CD).equals(JACStrConst.YOKIN_SHUMOKU_NORMAL))
			{
				outputMap.setString(JBSbatCHIFM071.KOZA_KAMOKU_NM,		this.meshoNormal);												// 口座科目名（預金種目コード（普通））
			}
			// 上記以外
			else
			{
				outputMap.setString(JBSbatCHIFM071.KOZA_KAMOKU_NM,		this.meshoToza);												// 口座科目名（預金種目コード（当座））
			}
		}
		// 請求方法コード＝３（郵便自動振込）の場合
		else if(seikyWayCd.equals(JACStrConst.SEIKY_YUFUIRI))  
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkSeiky][請求方法コード：３（郵振）]");
			outputMap.setString(JBSbatCHIFM071.SHNODKCMP_CD, 		getShnoDkCmpCd(mastMap.getString(JBSbatCHIFM070.BANK_CD)));			// 収納代行会社コード
			outputMap.setString(JBSbatCHIFM071.BANK_CD, 			mastMap.getString(JBSbatCHIFM070.BANK_CD));							// 金融機関コード
			outputMap.setString(JBSbatCHIFM071.BANK_SHITEN_CD, 		mastMap.getString(JBSbatCHIFM070.TSUCHO_SYMBOL));					// 金融機関支店コード 
			outputMap.setString(JBSbatCHIFM071.YOKIN_SHUMOKU_CD,	JACStrConst.KARA_MOJI);												// 預金種目コード
			outputMap.setString(JBSbatCHIFM071.KOZA_NO,  			mastMap.getString(JBSbatCHIFM070.TSUCHO_NO).substring(0, 7));		// 口座番号
			outputMap.setString(JBSbatCHIFM071.BANK_NM, 			this.bankNm);														// 金融機関名
			outputMap.setString(JBSbatCHIFM071.BANK_SHITEN_NM, 		JACStrConst.KARA_MOJI);												// 金融機関支店名
			outputMap.setString(JBSbatCHIFM071.KOZA_KAMOKU_NM,		JACStrConst.KARA_MOJI);												// 口座科目名
		}
		else
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkSeiky][請求方法コード：２（口振）,３（郵振）以外]");

			outputMap.setString(JBSbatCHIFM071.SHNODKCMP_CD, 		JACStrConst.KARA_MOJI);												// 収納代行会社コード
			outputMap.setString(JBSbatCHIFM071.BANK_CD, 			JACStrConst.KARA_MOJI);												// 金融機関コード
			outputMap.setString(JBSbatCHIFM071.BANK_SHITEN_CD, 		JACStrConst.KARA_MOJI);												// 金融機関支店コード 
			outputMap.setString(JBSbatCHIFM071.YOKIN_SHUMOKU_CD,	JACStrConst.KARA_MOJI);												// 預金種目コード
			outputMap.setString(JBSbatCHIFM071.KOZA_NO, 			JACStrConst.KARA_MOJI);												// 口座番号
			outputMap.setString(JBSbatCHIFM071.BANK_NM, 			JACStrConst.KARA_MOJI);												// 金融機関名
			outputMap.setString(JBSbatCHIFM071.BANK_SHITEN_NM, 		JACStrConst.KARA_MOJI);												// 金融機関支店名
			outputMap.setString(JBSbatCHIFM071.KOZA_KAMOKU_NM,		JACStrConst.KARA_MOJI);												// 口座科目名
		}
		// 請求方法コード＝４（クレジット）の場合
		if(seikyWayCd.equals(JACStrConst.SEIKY_CREDIT)) 
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkSeiky][請求方法コード：４（クレジット）]");
			outputMap.setString(JBSbatCHIFM071.CRECARD_COMP_CD,		mastMap.getString(JBSbatCHIFM070.CRECARD_COMP_CD));					// クレジットカード会社コード
			outputMap.setString(JBSbatCHIFM071.CREDIT_KOKAN_CD,		mastMap.getString(JBSbatCHIFM070.CREDIT_KOKAN_CD));					// クレジット交換コード
			outputMap.setString(JBSbatCHIFM071.CRECARD_NO,			mastMap.getString(JBSbatCHIFM070.CRECARD_NO));						// クレジットカード番号
			outputMap.setString(JBSbatCHIFM071.CRECARD_MEIGIN,		mastMap.getString(JBSbatCHIFM070.CRECARD_NM_KANA));					// クレジットカード名義カナ名
			outputMap.setString(JBSbatCHIFM071.CRECARD_COMP_NM,		this.crecardCompNm);												// クレジット会社名
		}
		else
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkSeiky][請求方法コード：４（クレジット）以外]");
			outputMap.setString(JBSbatCHIFM071.CRECARD_COMP_CD,		JACStrConst.KARA_MOJI);												// クレジットカード会社コード
			outputMap.setString(JBSbatCHIFM071.CREDIT_KOKAN_CD,		JACStrConst.KARA_MOJI);												// クレジット交換コード
			outputMap.setString(JBSbatCHIFM071.CRECARD_NO,			JACStrConst.KARA_MOJI);												// クレジットカード番号
			outputMap.setString(JBSbatCHIFM071.CRECARD_MEIGIN,		JACStrConst.KARA_MOJI);												// クレジットカード名義カナ名
			outputMap.setString(JBSbatCHIFM071.CRECARD_COMP_NM,		JACStrConst.KARA_MOJI);												// クレジット会社名
		}
		outputMap.setString(JBSbatCHIFM071.AUTHORI_RSLT_FLG,		mastMap.getString(JBSbatCHIFM070.AUTHORI_RSLT_CD));					// オーソリ結果フラグ
		outputMap.setBigDecimal(JBSbatCHIFM071.SEIKY_AMNT, 			mastMap.getBigDecimal(JBSbatCHIFM070.SEIKY_AMNT));					// 請求金額
		outputMap.setBigDecimal(JBSbatCHIFM071.SEIKY_STAX_AMNT, 	mastMap.getBigDecimal(JBSbatCHIFM070.AMNT));						// 請求消費税額
		outputMap.setString(JBSbatCHIFM071.USE_PRD_STA_YMD, 		mastMap.getString(JBSbatCHIFM070.USE_STAYMD));						// 利用期間開始日
		outputMap.setString(JBSbatCHIFM071.USE_PRD_END_YMD, 		mastMap.getString(JBSbatCHIFM070.USE_ENDYMD));						// 利用期間終了日
		outputMap.setString(JBSbatCHIFM071.PAY_KIGEN_YMD, 			mastMap.getString(JBSbatCHIFM070.PAY_KIGEN_YMD));					// 支払期限年月日
		outputMap.setString(JBSbatCHIFM071.RECEIPT_SEIKY_NO,	 	JACStrConst.KARA_MOJI);												// 領収請求番号
		outputMap.setString(JBSbatCHIFM071.RECEIPT_WAY, 			JACStrConst.KARA_MOJI);												// 領収方法
		outputMap.setString(JBSbatCHIFM071.RECEIPT_YM, 				JACStrConst.KARA_MOJI);												// 領収月
		outputMap.setString(JBSbatCHIFM071.RECEIPT_YMD,				JACStrConst.KARA_MOJI);												// 領収年月日
		outputMap.setBigDecimal(JBSbatCHIFM071.RECEIPT_AMNT,		BigDecimal.ZERO);													// 領収金額
		outputMap.setBigDecimal(JBSbatCHIFM071.RECEIPT_STAX_AMNT,	BigDecimal.ZERO);													// 領収消費税額
		outputMap.setString(JBSbatCHIFM071.RECEIPT_BANK_CD,			JACStrConst.KARA_MOJI);												// 領収金融機関コード 
		outputMap.setString(JBSbatCHIFM071.RECEIPT_BANK_SHITEN_CD,	JACStrConst.KARA_MOJI);												// 領収金融機関支店コード
		outputMap.setString(JBSbatCHIFM071.RECEIPT_KOZA_SBT_CD,		JACStrConst.KARA_MOJI);												// 領収口座種別コード
		outputMap.setString(JBSbatCHIFM071.RECEIPT_KOZA_NO,			JACStrConst.KARA_MOJI);												// 領収口座番号
		outputMap.setString(JBSbatCHIFM071.RECEIPT_BANK_NM,			JACStrConst.KARA_MOJI);												// 領収金融機関名
		outputMap.setString(JBSbatCHIFM071.RECEIPT_BANK_SHITEN_NM,	JACStrConst.KARA_MOJI);												// 領収金融機関支店名
		outputMap.setString(JBSbatCHIFM071.RECEIPT_KOZA_KAMOKU_NM,	JACStrConst.KARA_MOJI);												// 領収口座科目名
		outputMap.setString(JBSbatCHIFM071.TOKUSOKU_STAT,			mastMap.getString(JBSbatCHIFM070.TOKUSOKU_STAT));					// 督促ステータス 
		outputMap.setString(JBSbatCHIFM071.INFO_PATTERN_CD,			JACStrConst.KARA_MOJI);												// インフォメーションパターンコード
		outputMap.setString(JBSbatCHIFM071.DOHUBT_PATTERN_CD,		JACStrConst.KARA_MOJI);												// 同封物パターンコード
		
		// レコード出力判定フラグの設定
		outputMap.setOutFlg(true);

		// 出力レコード情報を設定する
		outputInItem.addOutMapList(outputMap);
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][setOutKmkSeiky]");
	}
	
	/**
	 *当月請求データ＋領収データの場合の出力項目を編集します。
	 * 
	 * @param mastMap 当月請求データ
	 * @param tranMap 領収データ
	 * @param outputInItem 出力電文
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void setOutKmkMatch(JBSbatServiceInterfaceMap mastMap, JBSbatServiceInterfaceMap tranMap, JBSbatOutputItem outputInItem)throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][setOutKmkMatch]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkMatch][請求方法コード：" + seikyWayCd + "]");
		
		JBSbatServiceInterfaceMap outputMap = new JBSbatServiceInterfaceMap();
		
		outputMap.setString(JBSbatCHIFM071.REC_DIV, 					JACStrConst.REC_DIV_TOGETSU_SEIKY_RYOSYU);						// レコード区分
		outputMap.setString(JBSbatCHIFM071.TOGTU_SIKY_UM, 				JACStrConst.TOGTU_SIKY_UM_ARI);									// 当月請求有無
		outputMap.setString(JBSbatCHIFM071.RECEIPT_UM, 					JACStrConst.RECEIPT_UMU_ARI);									// 領収有無 
		outputMap.setString(JBSbatCHIFM071.RECEIPT_NAKIWAKARE_UM, 		mastMap.getString(JBSbatCHIFM070.RECEIPT_NAKIWAKARE_UMU_FLG));	// 領収証泣き別れ有無 
		
		// 督促ステータス
		String tokusokuStat = mastMap.getString(JBSbatCHIFM070.TOKUSOKU_STAT);
		
		// 督促ステータス＝""（空）または"00"（督促なし）の場合
		if(tokusokuStat.equals(JACStrConst.KARA_MOJI) || JACStrConst.TOKUSOKU_STAT_NASHI.equals(tokusokuStat)) 
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkMatch][督促なし]");
			outputMap.setString(JBSbatCHIFM071.TOKUSOKU_UM,  JACStrConst.TOKUSOKU_UM_NSI);										 		// 督促有無（"0"：督促なし）
		}
		else
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkMatch][督促あり]");
			outputMap.setString(JBSbatCHIFM071.TOKUSOKU_UM,  JACStrConst.TOKUSOKU_UM_ARI);												// 督促有無（"1"：督促あり）; 	
		}
		
		outputMap.setString(JBSbatCHIFM071.SEIKYUS_HAKKO_YH, 	 	mastMap.getString(JBSbatCHIFM070.SEIKYUS_HAKKO_YH)); 				// 請求書発行要否
		outputMap.setString(JBSbatCHIFM071.SKHK_SVKEI_STAT_CD, 		mastMap.getString(JBSbatCHIFM070.SKHK_SVKEI_STAT_CD));		 		// 請求契約配下サービス契約状態コード
		outputMap.setString(JBSbatCHIFM071.SKHK_SVKEI_DLRE_SKBT_CD,	mastMap.getString(JBSbatCHIFM070.SKHK_SVKEI_DLRE_SKBT_CD)); 		// 請求契約配下サービス契約解約理由識別コード預金種目コード
		outputMap.setString(JBSbatCHIFM071.KYOSEI_MADOGUCHI_FLG, 	mastMap.getString(JBSbatCHIFM070.KYOSEI_MADOGUCHI_FLG));	 		// 強制窓口フラグ 
		outputMap.setString(JBSbatCHIFM071.GSAN_SEIKY_UM_FLG, 		mastMap.getString(JBSbatCHIFM070.GSAN_SEIKY_UMU_FLG)); 				// 合算請求有無フラグ
		outputMap.setString(JBSbatCHIFM071.MAEUKKIN_SOSAI_UM_FLG, 	mastMap.getString(JBSbatCHIFM070.MAEUKKIN_SOSAI_UMU_FLG)); 			// 前受金相殺有無フラグ 
		outputMap.setString(JBSbatCHIFM071.TW_DTL_HAK_UM_FLG, 		JACStrConst.KARA_MOJI);	 											// 通話明細発行有無フラグ
		outputMap.setString(JBSbatCHIFM071.SEIKYUS_HAKKO_UM_FLG,	JACStrConst.KARA_MOJI);			 									// 請求書発行有無フラグ
		// 請求テーブル更新有無フラグ
		String sikyTbUpdFlg = JACStrConst.SEIKY_TABLE_UPD_UM_FLG_NSI;
		
		// 請求番号が設定されている場合
		if(!JACStrConst.KARA_MOJI.equals(mastMap.getString(JBSbatCHIFM070.SEIKY_NO)))
		{
			// 請求テーブル更新有無フラグ　←　"1"（更新あり）
			sikyTbUpdFlg = JACStrConst.SEIKY_TABLE_UPD_UM_FLG_ARI;
		}
		outputMap.setString(JBSbatCHIFM071.SEIKY_TABLE_UPD_UM_FLG, 	sikyTbUpdFlg);														// 請求テーブル更新有無フラグ
		outputMap.setString(JBSbatCHIFM071.SEIKY_WAY_CHG_FLG, 		this.seikyWayChgFlg); 												// 請求方法変更フラグ
		outputMap.setString(JBSbatCHIFM071.DOFU_CD, 				mastMap.getString(JBSbatCHIFM070.DOFU_CD)); 						// 同封コード
		outputMap.setString(JBSbatCHIFM071.SEIKY_KEI_NO, 			mastMap.getString(JBSbatCHIFM070.SEIKY_KEI_NO)); 					// 請求契約番号
		outputMap.setString(JBSbatCHIFM071.SEIKY_NO, 				mastMap.getString(JBSbatCHIFM070.SEIKY_NO)); 						// 請求番号 
		outputMap.setString(JBSbatCHIFM071.SEIKY_YM, 				mastMap.getString(JBSbatCHIFM070.SEIKY_YM));		 				// 請求年月
		outputMap.setString(JBSbatCHIFM071.PAY_WAY_CD, 				this.seikyWayCd);							 						// 支払方法コード
		outputMap.setString(JBSbatCHIFM071.MSKM_PAY_WAY, 			mastMap.getString(JBSbatCHIFM070.MSKM_PAY_WAY_CD));	 				// 申込時支払方法
		outputMap.setString(JBSbatCHIFM071.SEIKY_WAY_CD, 			this.seikyWayCd); 													// 請求方法コード
		outputMap.setString(JBSbatCHIFM071.SIKY_JI_SIKY_WAY_CD, 	this.seikyWayCd); 													// 請求時請求方法コード
		outputMap.setString(JBSbatCHIFM071.SOHUS_PCD, 				mastMap.getString(JBSbatCHIFM070.SOHUS_PCD));						// 送付先郵便番号
		outputMap.setString(JBSbatCHIFM071.SOHUS_STATE_NM, 			mastMap.getString(JBSbatCHIFM070.SOHUS_STATE_NM));					// 送付先都道府県名
		outputMap.setString(JBSbatCHIFM071.SOHUS_CITY_NM, 			mastMap.getString(JBSbatCHIFM070.SOHUS_CITY_NM));					// 送付先市区町村名
		outputMap.setString(JBSbatCHIFM071.SOHUS_OAZTSU_NM, 		mastMap.getString(JBSbatCHIFM070.SOHUS_OAZTSU_NM));					// 付先大字通称名
		outputMap.setString(JBSbatCHIFM071.SOHUS_AZCHO_NM, 			mastMap.getString(JBSbatCHIFM070.SOHUS_AZCHO_NM));					// 送付先字丁目名
		outputMap.setString(JBSbatCHIFM071.SOHUS_BNCHIGO, 			mastMap.getString(JBSbatCHIFM070.SOHUS_AD_BNCHIGO));				// 送付先住所番地号
		outputMap.setString(JBSbatCHIFM071.SOHUS_ADRTTM, 			mastMap.getString(JBSbatCHIFM070.SOHUS_ADRTTM))	;					// 送付先住所補記・建物名
		outputMap.setString(JBSbatCHIFM071.SOHUS_ADRRM, 			mastMap.getString(JBSbatCHIFM070.SOHUS_ADRRM));						// 送付先住所補記・部屋番号
		outputMap.setString(JBSbatCHIFM071.SOHUS_NM, 				mastMap.getString(JBSbatCHIFM070.SOHUS_NM));						// 送付先名
		outputMap.setString(JBSbatCHIFM071.SOHUS_BKM, 				mastMap.getString(JBSbatCHIFM070.SOHUS_BKM));						// 送付先部課名
		outputMap.setString(JBSbatCHIFM071.SOHUS_TNTSHA_NM, 		mastMap.getString(JBSbatCHIFM070.SOHUS_TNTSHA_NM));					// 送付先担当者名
		// 請求方法コード＝２（口振）の場合
		if(this.seikyWayCd.equals(JACStrConst.SEIKY_KHRI))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkMatch][請求方法コード：請求方法コード＝２（口振）]");
			outputMap.setString(JBSbatCHIFM071.SHNODKCMP_CD, 		this.getShnoDkCmpCd(mastMap.getString(JBSbatCHIFM070.BANK_CD)));	// 収納代行会社コード
			outputMap.setString(JBSbatCHIFM071.BANK_CD, 			mastMap.getString(JBSbatCHIFM070.BANK_CD));							// 金融機関コード
			outputMap.setString(JBSbatCHIFM071.BANK_SHITEN_CD, 		mastMap.getString(JBSbatCHIFM070.BANK_SHITEN_CD));					// 金融機関支店コード 
			outputMap.setString(JBSbatCHIFM071.YOKIN_SHUMOKU_CD,	mastMap.getString(JBSbatCHIFM070.YOKIN_SHUMOKU_CD));				// 預金種目コード
			outputMap.setString(JBSbatCHIFM071.KOZA_NO, 			mastMap.getString(JBSbatCHIFM070.KOZA_NO));							// 口座番号
			outputMap.setString(JBSbatCHIFM071.BANK_NM, 			this.bankNm);														// 金融機関名
			outputMap.setString(JBSbatCHIFM071.BANK_SHITEN_NM, 		this.bankShitenNm);													// 金融機関支店名
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkMatch][口座種別コード：" + mastMap.getString(JBSbatCHIFM070.YOKIN_SHUMOKU_CD) + "]");
			// 口座種別コード＝預金種目コード（普通） の場合
			if(mastMap.getString(JBSbatCHIFM070.YOKIN_SHUMOKU_CD).equals(JACStrConst.YOKIN_SHUMOKU_NORMAL))
			{
				outputMap.setString(JBSbatCHIFM071.KOZA_KAMOKU_NM,		this.meshoNormal);												// 口座科目名（預金種目コード（普通））
			}
			// 上記以外
			else
			{
				outputMap.setString(JBSbatCHIFM071.KOZA_KAMOKU_NM,		this.meshoToza);												// 口座科目名（預金種目コード（当座））
			}
		}
		// 請求方法コード＝３（郵便自動振込）の場合
		else if(seikyWayCd.equals(JACStrConst.SEIKY_YUFUIRI)) 
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkMatch][請求方法コード：３（郵振）]");
			outputMap.setString(JBSbatCHIFM071.SHNODKCMP_CD, 		this.getShnoDkCmpCd(mastMap.getString(JBSbatCHIFM070.BANK_CD)));	// 収納代行会社コード
			outputMap.setString(JBSbatCHIFM071.BANK_CD, 			mastMap.getString(JBSbatCHIFM070.BANK_CD));							// 金融機関コード
			outputMap.setString(JBSbatCHIFM071.BANK_SHITEN_CD, 		mastMap.getString(JBSbatCHIFM070.TSUCHO_SYMBOL));					// 金融機関支店コード 
			outputMap.setString(JBSbatCHIFM071.YOKIN_SHUMOKU_CD,	JACStrConst.KARA_MOJI);												// 預金種目コード
			outputMap.setString(JBSbatCHIFM071.KOZA_NO, 			mastMap.getString(JBSbatCHIFM070.TSUCHO_NO).substring(0, 7));		// 口座番号
			outputMap.setString(JBSbatCHIFM071.BANK_NM, 			this.bankNm);														// 金融機関名
			outputMap.setString(JBSbatCHIFM071.BANK_SHITEN_NM, 		JACStrConst.KARA_MOJI);												// 金融機関支店名
			outputMap.setString(JBSbatCHIFM071.KOZA_KAMOKU_NM,		JACStrConst.KARA_MOJI);												// 口座科目名
		}
		else
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkMatch][請求方法コード：２（口振）,３（郵振）以外]");
			outputMap.setString(JBSbatCHIFM071.SHNODKCMP_CD, 		JACStrConst.KARA_MOJI);												// 収納代行会社コード
			outputMap.setString(JBSbatCHIFM071.BANK_CD, 			JACStrConst.KARA_MOJI);												// 金融機関コード
			outputMap.setString(JBSbatCHIFM071.BANK_SHITEN_CD, 		JACStrConst.KARA_MOJI);												// 金融機関支店コード 
			outputMap.setString(JBSbatCHIFM071.YOKIN_SHUMOKU_CD,	JACStrConst.KARA_MOJI);												// 預金種目コード
			outputMap.setString(JBSbatCHIFM071.KOZA_NO, 			JACStrConst.KARA_MOJI);												// 口座番号
			outputMap.setString(JBSbatCHIFM071.BANK_NM, 			JACStrConst.KARA_MOJI);												// 金融機関名
			outputMap.setString(JBSbatCHIFM071.BANK_SHITEN_NM, 		JACStrConst.KARA_MOJI);												// 金融機関支店名
			outputMap.setString(JBSbatCHIFM071.KOZA_KAMOKU_NM,		JACStrConst.KARA_MOJI);												// 口座科目名
		}
		// 請求方法コード＝４（クレジット）の場合
		if(seikyWayCd.equals(JACStrConst.SEIKY_CREDIT)) 
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkMatch][４（クレジット）]");
			outputMap.setString(JBSbatCHIFM071.CRECARD_COMP_CD,		mastMap.getString(JBSbatCHIFM070.CRECARD_COMP_CD));					// クレジットカード会社コード
			outputMap.setString(JBSbatCHIFM071.CREDIT_KOKAN_CD,		mastMap.getString(JBSbatCHIFM070.CREDIT_KOKAN_CD));					// クレジット交換コード
			outputMap.setString(JBSbatCHIFM071.CRECARD_NO,			mastMap.getString(JBSbatCHIFM070.CRECARD_NO));						// クレジットカード番号
			outputMap.setString(JBSbatCHIFM071.CRECARD_MEIGIN,		mastMap.getString(JBSbatCHIFM070.CRECARD_NM_KANA));					// クレジットカード名義カナ名
			outputMap.setString(JBSbatCHIFM071.CRECARD_COMP_NM,		this.crecardCompNm);												// クレジット会社名
		}
		else
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkMatch][４（クレジット）以外]");
			outputMap.setString(JBSbatCHIFM071.CRECARD_COMP_CD,		JACStrConst.KARA_MOJI);												// クレジットカード会社コード
			outputMap.setString(JBSbatCHIFM071.CREDIT_KOKAN_CD,		JACStrConst.KARA_MOJI);												// クレジット交換コード
			outputMap.setString(JBSbatCHIFM071.CRECARD_NO,			JACStrConst.KARA_MOJI);												// クレジットカード番号
			outputMap.setString(JBSbatCHIFM071.CRECARD_MEIGIN,		JACStrConst.KARA_MOJI);												// クレジットカード名義カナ名
			outputMap.setString(JBSbatCHIFM071.CRECARD_COMP_NM,		JACStrConst.KARA_MOJI);												// クレジット会社名
		}
		outputMap.setString(JBSbatCHIFM071.AUTHORI_RSLT_FLG,		mastMap.getString(JBSbatCHIFM070.AUTHORI_RSLT_CD));					// オーソリ結果フラグ
		outputMap.setBigDecimal(JBSbatCHIFM071.SEIKY_AMNT, 			mastMap.getBigDecimal(JBSbatCHIFM070.SEIKY_AMNT));					// 請求金額
		outputMap.setBigDecimal(JBSbatCHIFM071.SEIKY_STAX_AMNT, 	mastMap.getBigDecimal(JBSbatCHIFM070.AMNT));						// 請求消費税額
		outputMap.setString(JBSbatCHIFM071.USE_PRD_STA_YMD, 		mastMap.getString(JBSbatCHIFM070.USE_STAYMD));						// 利用期間開始日
		outputMap.setString(JBSbatCHIFM071.USE_PRD_END_YMD, 		mastMap.getString(JBSbatCHIFM070.USE_ENDYMD));						// 利用期間終了日
		outputMap.setString(JBSbatCHIFM071.PAY_KIGEN_YMD, 			mastMap.getString(JBSbatCHIFM070.PAY_KIGEN_YMD));					// 支払期限年月日
		outputMap.setString(JBSbatCHIFM071.RECEIPT_SEIKY_NO,	 	tranMap.getString(JBSbatCHIFM070.SEIKY_NO));						// 領収請求番号
		outputMap.setString(JBSbatCHIFM071.RECEIPT_WAY, 			tranMap.getString(JBSbatCHIFM070.SEIKY_WAY_CD));					// 領収方法
		outputMap.setString(JBSbatCHIFM071.RECEIPT_YM, 				tranMap.getString(JBSbatCHIFM070.SEIKY_YM));						// 領収月
		outputMap.setString(JBSbatCHIFM071.RECEIPT_YMD,				this.receiptYmd);													// 領収年月日
		outputMap.setBigDecimal(JBSbatCHIFM071.RECEIPT_AMNT,		tranMap.getBigDecimal(JBSbatCHIFM070.SEIKY_AMNT));					// 領収金額
		outputMap.setBigDecimal(JBSbatCHIFM071.RECEIPT_STAX_AMNT,	tranMap.getBigDecimal(JBSbatCHIFM070.AMNT));						// 領収消費税額
		outputMap.setString(JBSbatCHIFM071.RECEIPT_BANK_CD,			tranMap.getString(JBSbatCHIFM070.BANK_CD));							// 領収金融機関コード 
		// 請求方法コード＝３（郵便自動振込）の場合
		if(tranMap.getString(JBSbatCHIFM070.SEIKY_WAY_CD).equals(JACStrConst.SEIKY_YUFUIRI))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkMatch][請求方法コード：３（郵振）]");
			outputMap.setString(JBSbatCHIFM071.RECEIPT_BANK_SHITEN_CD,	tranMap.getString(JBSbatCHIFM070.TSUCHO_SYMBOL));				// 領収金融機関支店コード
			outputMap.setString(JBSbatCHIFM071.RECEIPT_KOZA_SBT_CD,		JACStrConst.KARA_MOJI);											// 領収口座種別コード
			outputMap.setString(JBSbatCHIFM071.RECEIPT_KOZA_NO,			tranMap.getString(JBSbatCHIFM070.TSUCHO_NO).substring(0, 7));	// 口座番号	
			outputMap.setString(JBSbatCHIFM071.RECEIPT_BANK_SHITEN_NM,	JACStrConst.KARA_MOJI);											// 領収金融機関支店名
			outputMap.setString(JBSbatCHIFM071.RECEIPT_KOZA_KAMOKU_NM,	JACStrConst.KARA_MOJI);											// 領収口座科目名
		}
		else
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkMatch][請求方法コード：３（郵振）以外]");
			outputMap.setString(JBSbatCHIFM071.RECEIPT_BANK_SHITEN_CD,	tranMap.getString(JBSbatCHIFM070.BANK_SHITEN_CD));				// 領収金融機関支店コード
			outputMap.setString(JBSbatCHIFM071.RECEIPT_KOZA_SBT_CD,		tranMap.getString(JBSbatCHIFM070.YOKIN_SHUMOKU_CD));			// 領収口座種別コード
			outputMap.setString(JBSbatCHIFM071.RECEIPT_KOZA_NO,			tranMap.getString(JBSbatCHIFM070.KOZA_NO));						// 領収口座番号
			outputMap.setString(JBSbatCHIFM071.RECEIPT_BANK_SHITEN_NM,	this.receiptBankShitenNm);										// 領収金融機関支店名
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkMatch][口座種別コード：" + tranMap.getString(JBSbatCHIFM070.YOKIN_SHUMOKU_CD) + "]");
			// 口座種別コード＝預金種目コード（普通） の場合
			if(tranMap.getString(JBSbatCHIFM070.YOKIN_SHUMOKU_CD).equals(JACStrConst.YOKIN_SHUMOKU_NORMAL))
			{
				outputMap.setString(JBSbatCHIFM071.RECEIPT_KOZA_KAMOKU_NM,		this.meshoNormal);										// 口座科目名（預金種目コード（普通））
			}
			// 上記以外
			else
			{
				outputMap.setString(JBSbatCHIFM071.RECEIPT_KOZA_KAMOKU_NM,		this.meshoToza);										// 口座科目名（預金種目コード（当座））
			}
		}
		outputMap.setString(JBSbatCHIFM071.RECEIPT_BANK_NM,			this.receiptBankNm);												// 領収金融機関名
		outputMap.setString(JBSbatCHIFM071.TOKUSOKU_STAT,			tokusokuStat);														// 督促ステータス 
		outputMap.setString(JBSbatCHIFM071.INFO_PATTERN_CD,			JACStrConst.KARA_MOJI);												// インフォメーションパターンコード
			outputMap.setString(JBSbatCHIFM071.DOHUBT_PATTERN_CD,	JACStrConst.KARA_MOJI);												// 同封物パターンコード
			
		// レコード出力判定フラグの設定
		outputMap.setOutFlg(true);

		// 出力レコード情報を設定する
		outputInItem.addOutMapList(outputMap);
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][setOutKmkMatch]");
	}
	
	/**
	 *領収データのみで金融機関がない場合の出力項目を編集します。
	 * 
	 * @param mastMap 当月請求データ
	 * @param tranMap 領収データ
	 * @param outputInItem 出力電文
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void setOutKmkNoBank(JBSbatServiceInterfaceMap mastMap, JBSbatServiceInterfaceMap tranMap, JBSbatOutputItem outputInItem)throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][setOutKmkNoBank]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkNoBank][請求方法コード：" + seikyWayCd + "]");
		
		JBSbatServiceInterfaceMap outputMap = new JBSbatServiceInterfaceMap();
		
		// 請求時請求方法コード
		String sikyJiSikyWayCd = tranMap.getString(JBSbatCHIFM070.SEIKY_WAY_CD);
		// 督促ステータス
		String tokusokuStat = tranMap.getString(JBSbatCHIFM070.TOKUSOKU_STAT);
		// 当月請求データが存在している場合
		if(null != mastMap)
		{
			// 請求方法コード　←　退避．請求方法コード
			sikyJiSikyWayCd = this.seikyWayCd;
			// 督促ステータス　←　入力Ｍ．督促ステータス
			tokusokuStat = mastMap.getString(JBSbatCHIFM070.TOKUSOKU_STAT);
		}
		
		outputMap.setString(JBSbatCHIFM071.REC_DIV, 				JACStrConst.REC_DIV_RYOSYU);										// レコード区分
		outputMap.setString(JBSbatCHIFM071.TOGTU_SIKY_UM, 			JACStrConst.TOGTU_SIKY_UM_NSI);										// 当月請求有無
		outputMap.setString(JBSbatCHIFM071.RECEIPT_UM, 				JACStrConst.RECEIPT_UMU_ARI);										// 領収有無 
		outputMap.setString(JBSbatCHIFM071.RECEIPT_NAKIWAKARE_UM, 	JACStrConst.RECEIPT_NAKIWAKARE_UMU_FLG_ARI);						// 領収証泣き別れ有無（"1"：あり）
		outputMap.setString(JBSbatCHIFM071.TOKUSOKU_UM, 			JACStrConst.TOKUSOKU_UM_NSI);										// 督促有無（"0"：督促なし）
		outputMap.setString(JBSbatCHIFM071.SEIKYUS_HAKKO_YH, 	 	mastMap.getString(JBSbatCHIFM070.SEIKYUS_HAKKO_YH)); 				// 請求書発行要否
		outputMap.setString(JBSbatCHIFM071.SKHK_SVKEI_STAT_CD, 		mastMap.getString(JBSbatCHIFM070.SKHK_SVKEI_STAT_CD));		 		// 請求契約配下サービス契約状態コード
		outputMap.setString(JBSbatCHIFM071.SKHK_SVKEI_DLRE_SKBT_CD,	mastMap.getString(JBSbatCHIFM070.SKHK_SVKEI_DLRE_SKBT_CD)); 		// 請求契約配下サービス契約解約理由識別コード預金種目コード
		outputMap.setString(JBSbatCHIFM071.KYOSEI_MADOGUCHI_FLG, 	mastMap.getString(JBSbatCHIFM070.KYOSEI_MADOGUCHI_FLG));	 		// 強制窓口フラグ 
		outputMap.setString(JBSbatCHIFM071.GSAN_SEIKY_UM_FLG, 		mastMap.getString(JBSbatCHIFM070.GSAN_SEIKY_UMU_FLG)); 				// 合算請求有無フラグ
		outputMap.setString(JBSbatCHIFM071.MAEUKKIN_SOSAI_UM_FLG, 	mastMap.getString(JBSbatCHIFM070.MAEUKKIN_SOSAI_UMU_FLG)); 			// 前受金相殺有無フラグ 
		outputMap.setString(JBSbatCHIFM071.TW_DTL_HAK_UM_FLG, 		JACStrConst.KARA_MOJI);	 											// 通話明細発行有無フラグ
		outputMap.setString(JBSbatCHIFM071.SEIKYUS_HAKKO_UM_FLG,	JACStrConst.KARA_MOJI);			 									// 請求書発行有無フラグ
		
		// 請求テーブル更新有無フラグ
		String sikyTbUpdFlg = JACStrConst.SEIKY_TABLE_UPD_UM_FLG_NSI;
		
		// 請求番号が設定されている場合
		if(!JACStrConst.KARA_MOJI.equals(mastMap.getString(JBSbatCHIFM070.SEIKY_NO)))
		{
			// 請求テーブル更新有無フラグ　←　"1"（更新あり）
			sikyTbUpdFlg = JACStrConst.SEIKY_TABLE_UPD_UM_FLG_ARI;
		}
		
		outputMap.setString(JBSbatCHIFM071.SEIKY_TABLE_UPD_UM_FLG, 	sikyTbUpdFlg);														// 請求テーブル更新有無フラグ
		outputMap.setString(JBSbatCHIFM071.SEIKY_WAY_CHG_FLG, 		this.seikyWayChgFlg); 												// 請求方法変更フラグ
		outputMap.setString(JBSbatCHIFM071.DOFU_CD, 				mastMap.getString(JBSbatCHIFM070.DOFU_CD)); 						// 同封コード
		outputMap.setString(JBSbatCHIFM071.SEIKY_KEI_NO, 			tranMap.getString(JBSbatCHIFM070.SEIKY_KEI_NO)); 					// 請求契約番号
		outputMap.setString(JBSbatCHIFM071.SEIKY_NO, 				JACStrConst.KARA_MOJI); 											// 請求番号 
		outputMap.setString(JBSbatCHIFM071.SEIKY_YM, 				this.tmpTogetu);									 				// 請求年月
		outputMap.setString(JBSbatCHIFM071.PAY_WAY_CD, 				tranMap.getString(JBSbatCHIFM070.PAY_WAY_CD));	 					// 支払方法コード
		outputMap.setString(JBSbatCHIFM071.MSKM_PAY_WAY, 			mastMap.getString(JBSbatCHIFM070.MSKM_PAY_WAY_CD));	 				// 申込時支払方法
		outputMap.setString(JBSbatCHIFM071.SEIKY_WAY_CD, 			tranMap.getString(JBSbatCHIFM070.SEIKY_WAY_CD)); 					// 請求方法コード
		outputMap.setString(JBSbatCHIFM071.SIKY_JI_SIKY_WAY_CD, 	sikyJiSikyWayCd); 													// 請求時請求方法コード

		// 請求方法コード＝３（郵便自動振込）の場合
		if(tranMap.getString(JBSbatCHIFM070.SEIKY_WAY_CD).equals(JACStrConst.SEIKY_KHRI) || tranMap.getString(JBSbatCHIFM070.SEIKY_WAY_CD).equals(JACStrConst.SEIKY_YUFUIRI))
		{
			outputMap.setString(JBSbatCHIFM071.SHNODKCMP_CD, 		this.getShnoDkCmpCd(tranMap.getString(JBSbatCHIFM070.BANK_CD)));	// 収納代行会社コード
		}
		else
		{
			outputMap.setString(JBSbatCHIFM071.SHNODKCMP_CD, 		JACStrConst.KARA_MOJI);												// 収納代行会社コード
		}
		
		outputMap.setString(JBSbatCHIFM071.SOHUS_PCD, 			mastMap.getString(JBSbatCHIFM070.SOHUS_PCD));							// 送付先郵便番号
		outputMap.setString(JBSbatCHIFM071.SOHUS_STATE_NM, 		mastMap.getString(JBSbatCHIFM070.SOHUS_STATE_NM));						// 送付先都道府県名
		outputMap.setString(JBSbatCHIFM071.SOHUS_CITY_NM, 		mastMap.getString(JBSbatCHIFM070.SOHUS_CITY_NM));						// 送付先市区町村名
		outputMap.setString(JBSbatCHIFM071.SOHUS_OAZTSU_NM, 	mastMap.getString(JBSbatCHIFM070.SOHUS_OAZTSU_NM));						// 付先大字通称名
		outputMap.setString(JBSbatCHIFM071.SOHUS_AZCHO_NM, 		mastMap.getString(JBSbatCHIFM070.SOHUS_AZCHO_NM));						// 送付先字丁目名
		outputMap.setString(JBSbatCHIFM071.SOHUS_BNCHIGO, 		mastMap.getString(JBSbatCHIFM070.SOHUS_AD_BNCHIGO));					// 送付先住所番地号
		outputMap.setString(JBSbatCHIFM071.SOHUS_ADRTTM, 		mastMap.getString(JBSbatCHIFM070.SOHUS_ADRTTM))	;						// 送付先住所補記・建物名
		outputMap.setString(JBSbatCHIFM071.SOHUS_ADRRM, 		mastMap.getString(JBSbatCHIFM070.SOHUS_ADRRM));							// 送付先住所補記・部屋番号
		outputMap.setString(JBSbatCHIFM071.SOHUS_NM, 			mastMap.getString(JBSbatCHIFM070.SOHUS_NM));							// 送付先名
		outputMap.setString(JBSbatCHIFM071.SOHUS_BKM, 			mastMap.getString(JBSbatCHIFM070.SOHUS_BKM));							// 送付先部課名
		outputMap.setString(JBSbatCHIFM071.SOHUS_TNTSHA_NM, 	mastMap.getString(JBSbatCHIFM070.SOHUS_TNTSHA_NM));						// 送付先担当者名
		outputMap.setString(JBSbatCHIFM071.BANK_CD, 			JACStrConst.KARA_MOJI);													// 金融機関コード
		outputMap.setString(JBSbatCHIFM071.BANK_SHITEN_CD, 		JACStrConst.KARA_MOJI);													// 金融機関支店コード 
		outputMap.setString(JBSbatCHIFM071.YOKIN_SHUMOKU_CD,	JACStrConst.KARA_MOJI);													// 預金種目コード
		outputMap.setString(JBSbatCHIFM071.KOZA_NO, 			JACStrConst.KARA_MOJI);													// 口座番号
		outputMap.setString(JBSbatCHIFM071.BANK_NM, 			JACStrConst.KARA_MOJI);													// 金融機関名
		outputMap.setString(JBSbatCHIFM071.BANK_SHITEN_NM, 		JACStrConst.KARA_MOJI);													// 金融機関支店名
		outputMap.setString(JBSbatCHIFM071.KOZA_KAMOKU_NM,		JACStrConst.KARA_MOJI);													// 口座科目名
		outputMap.setString(JBSbatCHIFM071.CRECARD_COMP_CD,		JACStrConst.KARA_MOJI);													// クレジットカード会社コード
		outputMap.setString(JBSbatCHIFM071.CREDIT_KOKAN_CD,		JACStrConst.KARA_MOJI);													// クレジット交換コード
		outputMap.setString(JBSbatCHIFM071.CRECARD_NO,			JACStrConst.KARA_MOJI);													// クレジットカード番号
		outputMap.setString(JBSbatCHIFM071.CRECARD_MEIGIN,		JACStrConst.KARA_MOJI);													// クレジットカード名義カナ名
		outputMap.setString(JBSbatCHIFM071.CRECARD_COMP_NM,		JACStrConst.KARA_MOJI);													// クレジット会社名
		outputMap.setString(JBSbatCHIFM071.AUTHORI_RSLT_FLG,	JACStrConst.KARA_MOJI);													// オーソリ結果フラグ
		
		outputMap.setBigDecimal(JBSbatCHIFM071.SEIKY_AMNT, 			BigDecimal.ZERO);													// 請求金額
		outputMap.setBigDecimal(JBSbatCHIFM071.SEIKY_STAX_AMNT, 	BigDecimal.ZERO);													// 請求消費税額
		outputMap.setString(JBSbatCHIFM071.USE_PRD_STA_YMD, 		JACStrConst.KARA_MOJI);												// 利用期間開始日
		outputMap.setString(JBSbatCHIFM071.USE_PRD_END_YMD, 		JACStrConst.KARA_MOJI);												// 利用期間終了日
		outputMap.setString(JBSbatCHIFM071.PAY_KIGEN_YMD, 			JACStrConst.KARA_MOJI);												// 支払期限年月日
		outputMap.setString(JBSbatCHIFM071.RECEIPT_SEIKY_NO,	 	tranMap.getString(JBSbatCHIFM070.SEIKY_NO));						// 領収請求番号
		outputMap.setString(JBSbatCHIFM071.RECEIPT_WAY, 			tranMap.getString(JBSbatCHIFM070.SEIKY_WAY_CD));					// 領収方法
		outputMap.setString(JBSbatCHIFM071.RECEIPT_YM, 				tranMap.getString(JBSbatCHIFM070.SEIKY_YM));						// 領収月
		outputMap.setString(JBSbatCHIFM071.RECEIPT_YMD,				this.receiptYmd);													// 領収年月日
		outputMap.setBigDecimal(JBSbatCHIFM071.RECEIPT_AMNT,		tranMap.getBigDecimal(JBSbatCHIFM070.SEIKY_AMNT));					// 領収金額
		outputMap.setBigDecimal(JBSbatCHIFM071.RECEIPT_STAX_AMNT,	tranMap.getBigDecimal(JBSbatCHIFM070.AMNT));						// 領収消費税額
		outputMap.setString(JBSbatCHIFM071.RECEIPT_BANK_CD,			tranMap.getString(JBSbatCHIFM070.BANK_CD));							// 領収金融機関コード 
		// 請求方法コード＝３（郵便自動振込）の場合
		if(tranMap.getString(JBSbatCHIFM070.SEIKY_WAY_CD).equals(JACStrConst.SEIKY_YUFUIRI))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkNoBank][請求方法コード：３（郵振）]");
			outputMap.setString(JBSbatCHIFM071.RECEIPT_BANK_SHITEN_CD,	tranMap.getString(JBSbatCHIFM070.TSUCHO_SYMBOL));				// 領収金融機関支店コード
			outputMap.setString(JBSbatCHIFM071.RECEIPT_KOZA_SBT_CD,		JACStrConst.KARA_MOJI);											// 領収口座種別コード
			outputMap.setString(JBSbatCHIFM071.RECEIPT_KOZA_NO,			tranMap.getString(JBSbatCHIFM070.TSUCHO_NO).substring(0, 7));	// 口座番号	
			outputMap.setString(JBSbatCHIFM071.RECEIPT_BANK_SHITEN_NM,	JACStrConst.KARA_MOJI);											// 領収金融機関支店名
			outputMap.setString(JBSbatCHIFM071.RECEIPT_KOZA_KAMOKU_NM,	JACStrConst.KARA_MOJI);											// 領収口座科目名
		}
		else
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkNoBank][請求方法コード：３（郵振）以外]");
			outputMap.setString(JBSbatCHIFM071.RECEIPT_BANK_SHITEN_CD,	tranMap.getString(JBSbatCHIFM070.BANK_SHITEN_CD));				// 領収金融機関支店コード
			outputMap.setString(JBSbatCHIFM071.RECEIPT_KOZA_SBT_CD,		tranMap.getString(JBSbatCHIFM070.YOKIN_SHUMOKU_CD));			// 領収口座種別コード
			outputMap.setString(JBSbatCHIFM071.RECEIPT_KOZA_NO,			tranMap.getString(JBSbatCHIFM070.KOZA_NO));						// 領収口座番号
			outputMap.setString(JBSbatCHIFM071.RECEIPT_BANK_SHITEN_NM,	this.receiptBankShitenNm);										// 領収金融機関支店名
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkNoBank][口座種別コード：" + tranMap.getString(JBSbatCHIFM070.YOKIN_SHUMOKU_CD) + "]");
			// 口座種別コード＝預金種目コード（普通） の場合
			if(tranMap.getString(JBSbatCHIFM070.YOKIN_SHUMOKU_CD).equals(JACStrConst.YOKIN_SHUMOKU_NORMAL))
			{
				outputMap.setString(JBSbatCHIFM071.RECEIPT_KOZA_KAMOKU_NM,		this.meshoNormal);										// 口座科目名（預金種目コード（普通））
			}
			// 上記以外
			else
			{
				outputMap.setString(JBSbatCHIFM071.RECEIPT_KOZA_KAMOKU_NM,		this.meshoToza);										// 口座科目名（預金種目コード（当座））
			}
		}
		outputMap.setString(JBSbatCHIFM071.RECEIPT_BANK_NM,			this.receiptBankNm);												// 領収金融機関名
		outputMap.setString(JBSbatCHIFM071.TOKUSOKU_STAT,			tokusokuStat);														// 督促ステータス 
		outputMap.setString(JBSbatCHIFM071.INFO_PATTERN_CD,			JACStrConst.KARA_MOJI);												// インフォメーションパターンコード
			outputMap.setString(JBSbatCHIFM071.DOHUBT_PATTERN_CD,	JACStrConst.KARA_MOJI);												// 同封物パターンコード
			
		// レコード出力判定フラグの設定
		outputMap.setOutFlg(true);

		// 出力レコード情報を設定する
		outputInItem.addOutMapList(outputMap);
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][setOutKmkNoBank]");
	}
	
	/**
	 * 領収データのみの場合の出力項目を編集します。
	 * 
	 * @param mastMap 当月請求データ
	 * @param tranMap 領収データ
	 * @param outputInItem 出力電文
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void setOutKmkReceipt(JBSbatServiceInterfaceMap mastMap, JBSbatServiceInterfaceMap tranMap, JBSbatOutputItem outputInItem)throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][setOutKmkReceipt]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkReceipt][請求方法コード：" + tranMap.getString(JBSbatCHIFM070.SEIKY_WAY_CD) + "]");
		
		JBSbatServiceInterfaceMap outputMap = new JBSbatServiceInterfaceMap();
		
		// 請求時請求方法コード
		String sikyJiSikyWayCd = tranMap.getString(JBSbatCHIFM070.SEIKY_WAY_CD);
		// 督促ステータス
		String tokusokuStat = tranMap.getString(JBSbatCHIFM070.TOKUSOKU_STAT);
		// 当月請求データが存在している場合
		if(null != mastMap)
		{
			// 請求方法コード　←　退避．請求方法コード
			sikyJiSikyWayCd = this.seikyWayCd;
			// 督促ステータス　←　入力Ｍ．督促ステータス
			tokusokuStat = mastMap.getString(JBSbatCHIFM070.TOKUSOKU_STAT);
		}
		
		// XXX 入力の仕方が変わるかも（合算請求有無フラグ・前受金相殺有無フラグ）（当月ありだとmastMapからの取得になるかも）
		outputMap.setString(JBSbatCHIFM071.REC_DIV, 				JACStrConst.REC_DIV_RYOSYU);										// レコード区分
		outputMap.setString(JBSbatCHIFM071.TOGTU_SIKY_UM, 			JACStrConst.TOGTU_SIKY_UM_NSI);										// 当月請求有無
		outputMap.setString(JBSbatCHIFM071.RECEIPT_UM, 				this.reciptUmFlg);											 		// 領収有無 
		outputMap.setString(JBSbatCHIFM071.RECEIPT_NAKIWAKARE_UM,	tranMap.getString(JBSbatCHIFM070.RECEIPT_NAKIWAKARE_UMU_FLG));		// 領収証泣き別れ有無 
		outputMap.setString(JBSbatCHIFM071.TOKUSOKU_UM,				JACStrConst.TOKUSOKU_UM_NSI);	// "0"：督促なし); 					// 督促有無
		outputMap.setString(JBSbatCHIFM071.SEIKYUS_HAKKO_YH, 	 	tranMap.getString(JBSbatCHIFM070.SEIKYUS_HAKKO_YH)); 				// 請求書発行要否
		outputMap.setString(JBSbatCHIFM071.SKHK_SVKEI_STAT_CD, 		tranMap.getString(JBSbatCHIFM070.SKHK_SVKEI_STAT_CD));				// 請求契約配下サービス契約状態コード
		outputMap.setString(JBSbatCHIFM071.SKHK_SVKEI_DLRE_SKBT_CD,	tranMap.getString(JBSbatCHIFM070.SKHK_SVKEI_DLRE_SKBT_CD)); 		// 請求契約配下サービス契約解約理由識別コード
		outputMap.setString(JBSbatCHIFM071.KYOSEI_MADOGUCHI_FLG, 	tranMap.getString(JBSbatCHIFM070.KYOSEI_MADOGUCHI_FLG)); 			// 強制窓口フラグ 
		outputMap.setString(JBSbatCHIFM071.GSAN_SEIKY_UM_FLG, 		tranMap.getString(JBSbatCHIFM070.GSAN_SEIKY_UMU_FLG)); 				// 合算請求有無フラグ
		outputMap.setString(JBSbatCHIFM071.MAEUKKIN_SOSAI_UM_FLG, 	tranMap.getString(JBSbatCHIFM070.MAEUKKIN_SOSAI_UMU_FLG)); 			// 前受金相殺有無フラグ 
		outputMap.setString(JBSbatCHIFM071.TW_DTL_HAK_UM_FLG, 		JACStrConst.KARA_MOJI);	 											// 通話明細発行有無フラグ預金種目コード
		outputMap.setString(JBSbatCHIFM071.SEIKYUS_HAKKO_UM_FLG,	JACStrConst.KARA_MOJI);			 									// 請求書発行有無フラグ 
		outputMap.setString(JBSbatCHIFM071.SEIKY_TABLE_UPD_UM_FLG, 	JACStrConst.SEIKY_TABLE_UPD_UM_FLG_NSI);				 			// 請求テーブル更新有無フラグ
		outputMap.setString(JBSbatCHIFM071.SEIKY_WAY_CHG_FLG, 		JACStrConst.SEIKY_WAY_CHG_FLG_NSI); 								// 請求方法変更フラグ
		outputMap.setString(JBSbatCHIFM071.DOFU_CD, 				tranMap.getString(JBSbatCHIFM070.DOFU_CD)); 						// 同封コード
		outputMap.setString(JBSbatCHIFM071.SEIKY_KEI_NO, 			tranMap.getString(JBSbatCHIFM070.SEIKY_KEI_NO)); 					// 請求契約番号
		outputMap.setString(JBSbatCHIFM071.SEIKY_NO, 				JACStrConst.KARA_MOJI);						 						// 請求番号 
		outputMap.setString(JBSbatCHIFM071.SEIKY_YM, 				this.tmpTogetu);													// 請求年月
		outputMap.setString(JBSbatCHIFM071.PAY_WAY_CD, 				tranMap.getString(JBSbatCHIFM070.PAY_WAY_CD)); 						// 支払方法コード
		outputMap.setString(JBSbatCHIFM071.MSKM_PAY_WAY, 			tranMap.getString(JBSbatCHIFM070.MSKM_PAY_WAY_CD)); 				// 申込時支払方法
		outputMap.setString(JBSbatCHIFM071.SEIKY_WAY_CD, 			tranMap.getString(JBSbatCHIFM070.SEIKY_WAY_CD)); 					// 請求方法コード
		outputMap.setString(JBSbatCHIFM071.SIKY_JI_SIKY_WAY_CD, 	sikyJiSikyWayCd); 													// 請求時請求方法コード
		
		// 請求方法コード＝３（郵便自動振込）の場合
		if(tranMap.getString(JBSbatCHIFM070.SEIKY_WAY_CD).equals(JACStrConst.SEIKY_KHRI) || tranMap.getString(JBSbatCHIFM070.SEIKY_WAY_CD).equals(JACStrConst.SEIKY_YUFUIRI))
		{
			outputMap.setString(JBSbatCHIFM071.SHNODKCMP_CD, 		this.getShnoDkCmpCd(tranMap.getString(JBSbatCHIFM070.BANK_CD)));	// 収納代行会社コード
			
		}
		else
		{
			outputMap.setString(JBSbatCHIFM071.SHNODKCMP_CD, 		JACStrConst.KARA_MOJI);												// 収納代行会社コード
		}
		outputMap.setString(JBSbatCHIFM071.SOHUS_PCD, 				tranMap.getString(JBSbatCHIFM070.SOHUS_PCD));						// 送付先郵便番号
		outputMap.setString(JBSbatCHIFM071.SOHUS_STATE_NM, 			tranMap.getString(JBSbatCHIFM070.SOHUS_STATE_NM));					// 送付先都道府県名
		outputMap.setString(JBSbatCHIFM071.SOHUS_CITY_NM, 			tranMap.getString(JBSbatCHIFM070.SOHUS_CITY_NM));					// 送付先市区町村名
		outputMap.setString(JBSbatCHIFM071.SOHUS_OAZTSU_NM, 		tranMap.getString(JBSbatCHIFM070.SOHUS_OAZTSU_NM));					// 付先大字通称名
		outputMap.setString(JBSbatCHIFM071.SOHUS_AZCHO_NM, 			tranMap.getString(JBSbatCHIFM070.SOHUS_AZCHO_NM));					// 送付先字丁目名
		outputMap.setString(JBSbatCHIFM071.SOHUS_BNCHIGO, 			tranMap.getString(JBSbatCHIFM070.SOHUS_AD_BNCHIGO));				// 送付先住所番地号
		outputMap.setString(JBSbatCHIFM071.SOHUS_ADRTTM, 			tranMap.getString(JBSbatCHIFM070.SOHUS_ADRTTM));					// 送付先住所補記・建物名
		outputMap.setString(JBSbatCHIFM071.SOHUS_ADRRM, 			tranMap.getString(JBSbatCHIFM070.SOHUS_ADRRM));						// 送付先住所補記・部屋番号
		outputMap.setString(JBSbatCHIFM071.SOHUS_NM, 				tranMap.getString(JBSbatCHIFM070.SOHUS_NM));						// 送付先名
		outputMap.setString(JBSbatCHIFM071.SOHUS_BKM, 				tranMap.getString(JBSbatCHIFM070.SOHUS_BKM));						// 送付先部課名
		outputMap.setString(JBSbatCHIFM071.SOHUS_TNTSHA_NM, 		tranMap.getString(JBSbatCHIFM070.SOHUS_TNTSHA_NM));					// 送付先担当者名
		outputMap.setString(JBSbatCHIFM071.BANK_CD, 				JACStrConst.KARA_MOJI);												// 金融機関コード
		outputMap.setString(JBSbatCHIFM071.BANK_SHITEN_CD,			JACStrConst.KARA_MOJI);												// 金融機関支店コード 
		outputMap.setString(JBSbatCHIFM071.YOKIN_SHUMOKU_CD,		JACStrConst.KARA_MOJI);												// 預金種目コード
		outputMap.setString(JBSbatCHIFM071.KOZA_NO, 				JACStrConst.KARA_MOJI);												// 口座番号
		outputMap.setString(JBSbatCHIFM071.BANK_NM, 				JACStrConst.KARA_MOJI);												// 金融機関名
		outputMap.setString(JBSbatCHIFM071.BANK_SHITEN_NM, 			JACStrConst.KARA_MOJI);												// 金融機関支店名
		outputMap.setString(JBSbatCHIFM071.KOZA_KAMOKU_NM,			JACStrConst.KARA_MOJI);												// 口座科目名
		outputMap.setString(JBSbatCHIFM071.CRECARD_COMP_CD,			JACStrConst.KARA_MOJI);												// クレジットカード会社コード
		outputMap.setString(JBSbatCHIFM071.CREDIT_KOKAN_CD,			JACStrConst.KARA_MOJI);												// クレジット交換コード
		outputMap.setString(JBSbatCHIFM071.CRECARD_NO,				JACStrConst.KARA_MOJI);												// クレジットカード番号
		outputMap.setString(JBSbatCHIFM071.CRECARD_MEIGIN,			JACStrConst.KARA_MOJI);												// クレジットカード名義カナ名
		outputMap.setString(JBSbatCHIFM071.CRECARD_COMP_NM,			JACStrConst.KARA_MOJI);												// クレジット会社名
		outputMap.setString(JBSbatCHIFM071.AUTHORI_RSLT_FLG,		JACStrConst.KARA_MOJI);												// オーソリ結果フラグ
		outputMap.setBigDecimal(JBSbatCHIFM071.SEIKY_AMNT, 			BigDecimal.ZERO);													// 請求金額
		outputMap.setBigDecimal(JBSbatCHIFM071.SEIKY_STAX_AMNT, 	BigDecimal.ZERO);													// 請求消費税額
		outputMap.setString(JBSbatCHIFM071.USE_PRD_STA_YMD, 		JACStrConst.KARA_MOJI);												// 利用期間開始日
		outputMap.setString(JBSbatCHIFM071.USE_PRD_END_YMD, 		JACStrConst.KARA_MOJI);												// 利用期間終了日
		outputMap.setString(JBSbatCHIFM071.PAY_KIGEN_YMD, 			JACStrConst.KARA_MOJI);												// 支払期限年月日
		outputMap.setString(JBSbatCHIFM071.RECEIPT_SEIKY_NO,	 	tranMap.getString(JBSbatCHIFM070.SEIKY_NO));						// 領収請求番号
		outputMap.setString(JBSbatCHIFM071.RECEIPT_WAY, 			tranMap.getString(JBSbatCHIFM070.SEIKY_WAY_CD));					// 領収方法
		outputMap.setString(JBSbatCHIFM071.RECEIPT_YM, 				tranMap.getString(JBSbatCHIFM070.SEIKY_YM));						// 領収月
		outputMap.setString(JBSbatCHIFM071.RECEIPT_YMD,				this.receiptYmd);													// 領収年月日
		outputMap.setBigDecimal(JBSbatCHIFM071.RECEIPT_AMNT,		tranMap.getBigDecimal(JBSbatCHIFM070.SEIKY_AMNT));					// 領収金額
		outputMap.setBigDecimal(JBSbatCHIFM071.RECEIPT_STAX_AMNT,	tranMap.getBigDecimal(JBSbatCHIFM070.AMNT));						// 領収消費税額
		outputMap.setString(JBSbatCHIFM071.RECEIPT_BANK_CD,			tranMap.getString(JBSbatCHIFM070.BANK_CD));							// 領収金融機関コード 
		// 請求方法コード＝３（郵便自動振込）の場合
		if(tranMap.getString(JBSbatCHIFM070.SEIKY_WAY_CD).equals(JACStrConst.SEIKY_YUFUIRI))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkReceipt][請求方法コード：３（郵振）]");
			outputMap.setString(JBSbatCHIFM071.RECEIPT_BANK_SHITEN_CD,	tranMap.getString(JBSbatCHIFM070.TSUCHO_SYMBOL));				// 領収金融機関支店コード
			outputMap.setString(JBSbatCHIFM071.RECEIPT_KOZA_SBT_CD,		JACStrConst.KARA_MOJI);											// 領収口座種別コード
			outputMap.setString(JBSbatCHIFM071.RECEIPT_KOZA_NO,			tranMap.getString(JBSbatCHIFM070.TSUCHO_NO).substring(0, 7));	// 口座番号	
			outputMap.setString(JBSbatCHIFM071.RECEIPT_BANK_SHITEN_NM,	JACStrConst.KARA_MOJI);											// 領収金融機関支店名
			outputMap.setString(JBSbatCHIFM071.RECEIPT_KOZA_KAMOKU_NM,	JACStrConst.KARA_MOJI);											// 領収口座科目名
		}
		else
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkReceipt][請求方法コード：３（郵振）以外]");
			outputMap.setString(JBSbatCHIFM071.RECEIPT_BANK_SHITEN_CD,	tranMap.getString(JBSbatCHIFM070.BANK_SHITEN_CD));			// 領収金融機関支店コード
			outputMap.setString(JBSbatCHIFM071.RECEIPT_KOZA_SBT_CD,		tranMap.getString(JBSbatCHIFM070.YOKIN_SHUMOKU_CD));		// 領収口座種別コード
			outputMap.setString(JBSbatCHIFM071.RECEIPT_KOZA_NO,			tranMap.getString(JBSbatCHIFM070.KOZA_NO));					// 領収口座番号
			outputMap.setString(JBSbatCHIFM071.RECEIPT_BANK_SHITEN_NM,	this.receiptBankShitenNm);									// 領収金融機関支店名
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutKmkSeiky][口座種別コード：" + tranMap.getString(JBSbatCHIFM070.YOKIN_SHUMOKU_CD) + "]");
			// 口座種別コード＝預金種目コード（普通） の場合
			if(tranMap.getString(JBSbatCHIFM070.YOKIN_SHUMOKU_CD).equals(JACStrConst.YOKIN_SHUMOKU_NORMAL))
			{
				outputMap.setString(JBSbatCHIFM071.RECEIPT_KOZA_KAMOKU_NM,		this.meshoNormal);								// 口座科目名（預金種目コード（普通））
			}
			// 上記以外
			else
			{
				outputMap.setString(JBSbatCHIFM071.RECEIPT_KOZA_KAMOKU_NM,		this.meshoToza);								// 口座科目名（預金種目コード（当座））
			}
		}
		outputMap.setString(JBSbatCHIFM071.RECEIPT_BANK_NM,			this.receiptBankNm);									// 領収金融機関名
		outputMap.setString(JBSbatCHIFM071.TOKUSOKU_STAT,			tokusokuStat);											// 督促ステータス 
		outputMap.setString(JBSbatCHIFM071.INFO_PATTERN_CD,			JACStrConst.KARA_MOJI);									// インフォメーションパターンコード
		outputMap.setString(JBSbatCHIFM071.DOHUBT_PATTERN_CD,		JACStrConst.KARA_MOJI);									// 同封物パターンコード
		
		// レコード出力判定フラグの設定
		outputMap.setOutFlg(true);

		// 出力レコード情報を設定する
		outputInItem.addOutMapList(outputMap);
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][setOutKmkReceipt]");
	}
	
	/**
	 * 請求書データ作成結果情報作成の出力項目を編集します。
	 * 
	 * @param mastMap 当月請求データ
	 * @return JBSbatServiceInterfaceMap 出力電文
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private JBSbatServiceInterfaceMap setSeikyusMakeRslt(JBSbatServiceInterfaceMap mastMap)throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][setSeikyusMakeRslt]");
		
		JBSbatServiceInterfaceMap outputMap = new JBSbatServiceInterfaceMap(); 
		
		outputMap.setString(JBSbatCHIFM051.SEIKY_KEI_NO,		mastMap.getString(JBSbatCHIFM070.SEIKY_KEI_NO)); 	// 請求先番号
		outputMap.setString(JBSbatCHIFM051.SEIKY_SKS_RSLT_CD,	JACStrConst.SIKY_MAKE_RSLT_CD_BANK_INF_NON);		// "42"：金融機関情報なしのため窓口請求)); 
		outputMap.setString(JBSbatCHIFM051.KANREN_NAIYO,		mastMap.getString(JACStrConst.KARA_MOJI)); 			// 関連内容
		
		outputMap.setOutFlg(true);		// 出力フラグをtrue
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][setSeikyusMakeRslt]");
		return outputMap;
	}
	
	/**
	 * 入金情報を取得します
	 * 
	 * @param tranMap 領収データ
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void getNyukin(JBSbatServiceInterfaceMap tranMap)throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getNyukin]");
		
		JBSbatCommonDBInterface param = new JBSbatCommonDBInterface();
		param.setValue(tranMap.getString(JBSbatCHIFM070.SEIKY_NO));

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getNyukin][param=" + param.getList().toString() + "]");

		this.executeCH_T_NYUKIN_CH_SELECT_020(param.getList().toArray());

		JBSbatCommonDBInterface getData = this.db_CH_T_NYUKIN.selectNext();
		
		// 入金情報を取得できない場合、メッセージを出力し処理続行
		if(getData == null)
		{
			// DB未存在エラー
			String[] msgParam = new String[]
			{ JBSbatCH_T_NYUKIN.TABLE_NAME, JPCUtilCommon.convListToString(param.getList()) };
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB0240CW, 
					msgParam);
		}
		else
		{
			this.receiptYmd = getData.getString(JBSbatCH_T_NYUKIN.RECEIPT_YMD);
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getNyukin]");
	}
	
	/**
	 * 口座科目名を取得します。
	 * 
	 * @param cdSbtCd コード種別コード
	 * @param yokinShumoku 預金種目コード
	 * @return String 口座科目名
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	public String getKozaNm(String cdSbtCd, String yokinShumoku)throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getKozaNm]");
		// ＤＢアクセス用のパラメータ定義
		JBSbatCommonDBInterface dbList = new JBSbatCommonDBInterface();
		
		dbList.setValue(cdSbtCd); 			// コード種別コード
		dbList.setValue(yokinShumoku); 		// 預金種目コード
		dbList.setValue(super.opeDate); 	// バッチ運用日
		dbList.setValue(super.opeDate); 	// バッチ運用日
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getKozaNm][param=" + dbList.getList().toString() + "]");
		this.executeZM_M_CD_NM_KANRI_CH_SELECT_001(dbList.getList().toArray());
		
		JBSbatCommonDBInterface getData = this.db_ZM_M_CD_NM_KANRI.selectNext();
		if(getData == null)
		{
			// DB未存在エラー
			String[] msgParam = new String[]
			{ JBSbatZM_M_CD_NM_KANRI.TABLE_NAME, JPCUtilCommon.convListToString(dbList.getList()) };
			throw new JBSbatBusinessException(JPCBatchMessageConstant.ECHB0270CH, msgParam);
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getKozaNm]");
		return getData.getString(JBSbatZM_M_CD_NM_KANRI.CD_DIV_NM);
	}
	
	/**
	 * 口座振替収納機関マップを作成します。
	 * 
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void getKhriShunokikanMap() throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getKhriShunokikanMap]");
		
		// ＤＢアクセス用のパラメータ定義
		JBSbatCommonDBInterface dbList = new JBSbatCommonDBInterface();
		
		dbList.setValue(super.opeDate); 	// バッチ運用日
		dbList.setValue(super.opeDate); 	// バッチ運用日
		dbList.setValue(super.opeDate); 	// バッチ運用日
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getKhriShunokikanMap][param=" + dbList.getList().toString() + "]");
		
		this.executeCH_M_KHRI_SHUNOKIKAN_CH_SELECT_002(dbList.getList().toArray());
		
		JBSbatCommonDBInterface dbMap = this.db_CH_M_KHRI_SHUNOKIKAN.selectNext();
		while(dbMap != null)
		{
			// 口座振替契約種別コード"0"の場合
			if(JACStrConst.KHRI_KEI_SBT_CD_CHKST.equals(dbMap.getString(JBSbatCH_M_KHRI_SHUNOKIKAN.KHRI_KEI_SBT_CD)))
			{
				this.khriShKikanMap.put(dbMap.getString(JBSbatCH_M_KHRI_SHUNOKIKAN.KHRI_BANK_CD), this.shnodKcmpKopt);
			}
			// 口座振替契約種別コード"1"の場合 
			else if(JACStrConst.KHRI_KEI_SBT_CD_QUARK.equals(dbMap.getString(JBSbatCH_M_KHRI_SHUNOKIKAN.KHRI_KEI_SBT_CD)))
			{
				this.khriShKikanMap.put(dbMap.getString(JBSbatCH_M_KHRI_SHUNOKIKAN.KHRI_BANK_CD), this.shnodKcmpQuark);
			}
			// 口座振替契約種別コード"2"の場合 
			else if(JACStrConst.KHRI_KEI_SBT_CD_CLRPS.equals(dbMap.getString(JBSbatCH_M_KHRI_SHUNOKIKAN.KHRI_KEI_SBT_CD)))
			{
				this.khriShKikanMap.put(dbMap.getString(JBSbatCH_M_KHRI_SHUNOKIKAN.KHRI_BANK_CD), this.shnodKcmpClrps);
			}
			
			dbMap = this.db_CH_M_KHRI_SHUNOKIKAN.selectNext();
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getKhriShunokikanMap]");
	}
	
	/**
	 * 金融機関一覧マップを作成します。
	 * 
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void getBankIchiranMap() throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getBankIchiranMap]");
		
		// ＤＢアクセス用のパラメータ定義
		JBSbatCommonDBInterface dbList = new JBSbatCommonDBInterface();
		
		dbList.setValue(super.opeDate); 	// 金融機関適用開始年月日
		dbList.setValue(super.opeDate); 	// 金融機関適用終了年月日
		dbList.setValue(super.opeDate); 	// 予約適用年月日
		dbList.setValue(super.opeDate); 	// 金融機関適用開始年月日
		dbList.setValue(super.opeDate); 	// 金融機関適用終了年月日
		dbList.setValue(super.opeDate); 	// 廃止猶予期間
		dbList.setValue(super.opeDate); 	// 予約適用年月日
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getBankIchiranMap][param=" + dbList.getList().toString() + "]");
		
		this.executeKK_M_BANK_CH_SELECT_006(dbList.getList().toArray());
		
		JBSbatCommonDBInterface dbMap = this.db_KK_M_BANK.selectNext();
		
		while(dbMap != null)
		{
			// 金融機関コード（本店・支店）,金融機関本店名, 金融機関支店名
			this.bankIchiranMap.put(dbMap.getString(JBSbatKK_M_BANK.BANK_CD) + dbMap.getString(JBSbatKK_M_BANK.BANK_SHITEN_CD), dbMap);
		
			dbMap = this.db_KK_M_BANK.selectNext();
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getBankIchiranMap]");
	}
	
	/**
	 * クレジットカード会社名一覧マップを作成します。
	 * 
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void getCrecacompichiranMap() throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getCrecacompichiranMap]");
		
		// ＤＢアクセス用のパラメータ定義
		JBSbatCommonDBInterface dbList = new JBSbatCommonDBInterface();
		
		dbList.setValue(super.opeDate); 						// 金融機関適用開始年月日
		dbList.setValue(super.opeDate); 						// 金融機関適用終了年月日
		dbList.setValue(super.opeDate); 						// 予約適用年月日
		dbList.setValue(JACStrConst.CRECARD_JIGYO_CD_FTTH);		// クレジットカード事業コード
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getCrecacompichiranMap][param=" + dbList.getList().toString() + "]");
		
		this.executeKK_M_CRECARD_COMP_CH_SELECT_006(dbList.getList().toArray());
		
		JBSbatCommonDBInterface dbMap = this.db_KK_M_CRECARD_COMP.selectNext();
		
		while(dbMap != null)
		{
			// クレジット会社コード  クレジットカード会社略称
			this.crecacompichiranMap.put(dbMap.getString(JBSbatKK_M_CRECARD_COMP.CRECARD_COMP_CD), dbMap.getString(JBSbatKK_M_CRECARD_COMP.CRECARD_COMP_ALI));
			
			dbMap = this.db_KK_M_CRECARD_COMP.selectNext();
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getCrecacompichiranMap]");
	}

	/**
	 * 金融機関なし情報ファイルを編集し、
	 * ファイル出力部品を用いてファイルの出力を行います。
	 * 
	 * @param mastMap 入力情報Ｍ
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void outputBnkNonInf(JBSbatServiceInterfaceMap mastMap)throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][outputBnkNonInf]");
		
		// 送付先カナ名を取得します
		String shsKana = this.getShsKana(mastMap);
		
		// 出力情報を設定します。
		
		JBSbatServiceInterfaceMap outRec = new JBSbatServiceInterfaceMap();
		
		// 請求年月
		outRec.set(JBSbatACIFI010.SEIKY_YM,			mastMap.get(JBSbatCHIFM070.SEIKY_YM));
		// 請求契約番号
		outRec.set(JBSbatACIFI010.SEIKY_KEI_NO,		mastMap.get(JBSbatCHIFM070.SEIKY_KEI_NO));
		// 請求番号
		outRec.set(JBSbatACIFI010.SEIKY_NO,			mastMap.get(JBSbatCHIFM070.SEIKY_NO));
		// 請求先カナ名
		outRec.set(JBSbatACIFI010.SIKYS_KANA,		shsKana);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][outputBnkNonInf][outRec=" + outRec.getMap().toString() + "]");
		
		outRec.setOutFlg(true);
		
		// ファイル出力を行います。
		this.fileObj.print(outRec, this.outFileDef);
		
		// カウントアップ
		this.bnkOputCnt++;
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][outputBnkNonInf]");
	}
	
	/**
	 * 請求スキーマを検索し、その結果を基に送付先カナ名を返します。
	 * 
	 * @param mastMap 入力情報Ｍ
	 * @return String 送付先カナ名を（取得できなかった場合は空文字）
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private String getShsKana(JBSbatServiceInterfaceMap mastMap)throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getShsKana]");
		
		// 条件句
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();
		
		// 請求番号
		whereParam.setValue(mastMap.get(JBSbatCHIFM070.SEIKY_NO));
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getShsKana][whereParam=" + whereParam.getList().toString() + "]");
		
		// SQL実行
		this.executeCH_T_SEIKY_CH_SELECT_032(whereParam.getList().toArray());
		
		// 結果を取得します
		JBSbatCommonDBInterface dbMap = db_CH_T_SEIKY.selectNext();
		
		// 送付先カナ名
		String shsKana = JACStrConst.KARA_MOJI;
		
		// 取得結果ありの場合
		if(null != dbMap)
		{
			shsKana = dbMap.getString(JBSbatCH_T_SEIKY.SHS_KANA);
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getShsKana][dbMap=" + dbMap.getMap().toString() + "]");
			
			// 取得した値がnullの場合
			if(null == shsKana)
			{
				// 空文字を設定
				shsKana = JACStrConst.KARA_MOJI;
			}
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getShsKana][shsKana=" + shsKana + "]");
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getShsKana]");
		return shsKana;
	}
	

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 * @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_020)で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_NYUKIN_CH_SELECT_020(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_CH_T_NYUKIN.selectBySqlDefine(paramList, CH_T_NYUKIN_CH_SELECT_020);
	}

	/**
	 * 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 executeZM_M_CD_NM_KANRI_CH_SELECT_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());

		// DBアクセスを実行します
		db_ZM_M_CD_NM_KANRI.selectBySqlDefine(paramList, ZM_M_CD_NM_KANRI_CH_SELECT_001);
	}

	/**
	 * SQLKEY(CH_SELECT_002)で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_KHRI_SHUNOKIKAN_CH_SELECT_002(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_CH_M_KHRI_SHUNOKIKAN.selectBySqlDefine(paramList, CH_M_KHRI_SHUNOKIKAN_CH_SELECT_002);
	}

	/**
	 * SQLKEY(CH_SELECT_032)で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_CH_SELECT_032(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_CH_T_SEIKY.selectBySqlDefine(paramList, CH_T_SEIKY_CH_SELECT_032);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/

	/**
	 * SQLKEY(CH_SELECT_006)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	金融機関．金融機関適用開始年月日
	 *		 	金融機関．金融機関適用終了年月日
	 *		 	金融機関．予約適用年月日
	 *		 	金融機関．金融機関適用開始年月日
	 *		 	金融機関．金融機関適用終了年月日
	 *		 	金融機関．廃止猶予期間
	 *		 	金融機関．予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_M_BANK_CH_SELECT_006(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());
	
		// DBアクセスを実行します
		db_KK_M_BANK.selectBySqlDefine(paramList, KK_M_BANK_CH_SELECT_006);
	}

	/**
	 * SQLKEY(CH_SELECT_006)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	クレジットカード会社名．クレジットカード会社適用開始年月日
	 *		 	クレジットカード会社名．クレジットカード会社適用終了年月日
	 *		 	クレジットカード会社名．クレジットカード会社予約適用年月日
	 *			クレジットカード会社名．クレジットカード事業コード
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_M_CRECARD_COMP_CH_SELECT_006(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
	
		// DBアクセスを実行します
		db_KK_M_CRECARD_COMP.selectBySqlDefine(paramList, KK_M_CRECARD_COMP_CH_SELECT_006);
	}
	
	/**
	 * 料金スケジュール定義より当月を取得します。
	 * 
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void getTogetu() throws Exception
	{
		assert 	JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getTogetu]");
		
		JCHbatSeikyKaknoBusinessUtil su = new JCHbatSeikyKaknoBusinessUtil(commonItem);
		try
		{
			// 当月取得
			this.tmpTogetu = su.getBillYmContain(super.opeDate, JACStrConst.EVENT_CD_SEIKY_SHORI_YMD);
		}
		finally
		{
			su.close();
		}

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getTogetu][tmpTogetu=" + this.tmpTogetu + "]");
		assert 	JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getTogetu]");
		return;
	}
}
