/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCHSeikyUwDataHenshu
*	ソースファイル名	：JBSbatCHSeikyUwDataHenshu.java
*	作成者				：富士通　
*	作成日				：2012年05月08日
*＜機能概要＞
*　請求内訳データ編集部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/08/23    富士通		新規作成
*	v3.00		2012/05/14   FJ）冨井	【ANK-0024-04-00】処理変更により新規作成
*	v3.00		2012/06/18   FJ）冨井	【ANK-0024-04-00】部品使用に変更（formatTushin）・請求内訳スキーマ未存在時異常終了処理削除
*	v3.00		2012/06/21   FJ）冨井	【ANK-0024-04-00】ファイル項目追加（合算請求年月）
*	v4.00		2013/02/16   FJ) 小柴	【内部管理番号-0000330】ソート仕様の変更に伴う出力項目の追加と出力仕様の修正
*	v4.02		2013/02/27   FJ) 小柴	【】金額、金額内訳の空白埋め部分を0埋めに修正
*	v4.03.00	2013/03/05   FJ) 狭間	【ST4-2013-0000163】水平展開。
*	v4.04.00	2013/03/19   FJ) 小柴	【】編集金額nの編集時、合計明細レコードは編集を行わないように修正
*											部屋番号の編集時、料金項目名称から取得した値を使用しないように修正
*	v4.05.00	2013/04/10   FJ) 小柴	【】マンション区分、整理番号の出力仕様を修正
*	v4.06.00	2013/04/27   FJ) 小柴	【IKK-2013-0001021】部屋番号表示フラグ＝１かつ未入居明細用サービス契約番号の場合にABENDする問題を修正
*	v5.00.00	2013/07/09   FJ) 早崎	【LT-2013-0000305】対象レコードは金額欄と内訳金額欄の両方に出力するよう修正
*	v5.01.00	2013/07/14   FJ) 後藤	【LT-2013-0000305】対象レコードは金額欄と内訳金額欄の両方に出力するよう修正（編集金額も同様）
*	v5.02.00	2013/08/07   FJ) 早崎	【TG1-2013-0000806】文字化け対応
*	v8.00.00	2014/01/22   FJ) 田内	【IT1-2014-0000034】請求内訳編集データ編集方法変更
*	v8.01.00	2014/01/27   FJ) 田内	【ANK-1589-00-00】編集内訳編集データ編集方法変更
*	v9.00.00	2014/04/16   FJ) 狭間	【ANK-2054-00-00】スマートリンク端末補償対応
*	v9.01.00	2014/06/13   FJ) 後藤	【IT2-2014-0000252】料金内訳名称追加行編集にインデントを追加
*   v16.00.00   2015/05/26   FJ) 田枝   【ANK-2480-00-00】新電力対応(埋込みコード="2" 電気使用量の単位変換処理追加、埋込みコード="5" 供給地点特定番号の編集処理追加)
*   v25.00.00   2016/04/20   FJ）寺園   【ANK-2769-00-00】タブレット修理交換の機種制限解除対応
*   v26.00.00   2016/10/17   FJ）清原   【OM-2016-0002205】割賦引継時の請求内訳の製造番号表示不備
*   v36.00.00	2018/01/22	 FJ) 森		【ANK-3296-00-00】	標準工事費 埋込み項目コード"6"を追加
*	v41.00.00	2019/04/08   FJ) 大崎   【ANK-3500-00-00】テレビ親請求の請求内訳への物件名表示(埋込みコード="7" マンション名の編集処理追加)
*   v45.00.00	2019/07/29   FJ) 中原	【ANK-3636-00-00】料金項目出力名称.表示順の桁数変更対応
*   v54.00.00	2021/12/06   FJ) 上村   【ANK-4068-00-00】IBUKI：020番号の14桁化対応
*   v64.00.00   2023/02/17   FJ) 原田   【ANK-4323-00-00】mineo請求明細の利用期間表示変更
*   v67.00.00   2023/06/14  FJ) 藤本涼 【ANK-4401-00-00】インボイス対応
*   v68.00.00   2023/09/25   FJ) 升岡   【ANK-4475-00-00】インボイス対応STEP2
*   v71.00.00   2024/03/12   FJ) 張     【ANK-4543-00-00】【eo定期】NTT卸対応：Step0
*   v71.00.01   2024/04/22   FJ) 張     【ANK-4543-00-00】【eo定期】NTT卸対応：Step0
*	v71.00.02   2024/04/23  FJ）久山	【ANK-4468-00-00】eo光ネット「シンプルプラン」追加対応
*   v73.00.00   2024/12/02  FJ）久山    【ANK-4427-10-00】NTT卸対応
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;

import eo.business.common.JACbatDebugLogUtil;
import eo.business.common.JACbatParamUtil;
import eo.business.common.JACbatSchdlUtil;
import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCHbatSeikyKaknoBusinessUtil;
import eo.business.util.file.JBSbatCHIFM054;
import eo.business.util.file.JBSbatCHIFM056;
import eo.business.util.table.JBSbatCH_M_CHUSHK_HENSHU;
import eo.business.util.table.JBSbatCH_M_PRC_KMK_CS_CHGE;
import eo.business.util.table.JBSbatCH_M_PRC_KMK_OPUT_NM;
import eo.business.util.table.JBSbatCH_T_SEIKY_UCWK;
import eo.business.util.table.JBSbatCK_T_CUST;
import eo.business.util.table.JBSbatKK_T_KAISEN_TG_SVKEI;
import eo.business.util.table.JBSbatKK_T_KAISEN_USE_KEI;
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_SVC_KEI_DUMMY;
import eo.business.util.table.JBSbatKK_T_SVKEI_KAISEN_UW;
import eo.business.util.table.JBSbatKK_T_KKTK_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_TK_HOSHIKI_KEI;
import eo.business.util.table.JBSbatZM_M_TKMDL_KNRN_INFO;
import eo.business.util.table.JBSbatZM_M_WORK_PARAM_KNRI;
import eo.common.constant.JACStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.common.util.JCHCommonFormatUtil;
import eo.common.util.JCHUtilCommon;
import eo.common.util.JKKStringUtil;
import eo.common.util.JPCEditString;
import eo.common.util.JPCUtilCommon;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.application.JCCbatFrameworkException;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.util.JBSbatStringUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatCHSeikyUwDataHenshu extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(料金項目出力名称)*/
	private static final String D_TBL_NAME_CH_M_PRC_KMK_OPUT_NM = "CH_M_PRC_KMK_OPUT_NM";

	/** テーブル(注釈編集)*/
	private static final String D_TBL_NAME_CH_M_CHUSHK_HENSHU = "CH_M_CHUSHK_HENSHU";

	/** テーブル(回線対象サービス契約)*/
	private static final String D_TBL_NAME_KK_T_KAISEN_TG_SVKEI = "KK_T_KAISEN_TG_SVKEI";

	/** テーブル(サービス契約)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";

	/** テーブル(請求内訳)*/
	private static final String D_TBL_NAME_CH_T_SEIKY_UCWK = "CH_T_SEIKY_UCWK";

	/** テーブル(回線使用契約)*/
	private static final String D_TBL_NAME_KK_T_KAISEN_USE_KEI = "KK_T_KAISEN_USE_KEI";

	/** テーブル(料金項目抽出変換)*/
	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_KK_T_KKTK_SVC_KEI = "KK_T_KKTK_SVC_KEI";

//v41.00.00 ANK-3500-00-00 Add Start
	/** テーブル(サービス契約＜ダミー＞)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI_DUMMY = "KK_T_SVC_KEI_DUMMY";
//v41.00.00 ANK-3500-00-00 Add End
	
	//AKN-4475-00-00 ADD START
	/** テーブル(業務パラメータ管理)*/
	private static final String D_TBL_NAME_ZM_M_WORK_PARAM_KNRI = "ZM_M_WORK_PARAM_KNRI";
	//AKN-4475-00-00 ADD END
	
	//ANK-4543-00-00 ADD START
	/** テーブル(NTT卸契約)*/
	private static final String D_TBL_NAME_KK_T_NTTORS_KEI = "KK_T_NTTORS_KEI";

	/** テーブル(NTT卸料金コース)*/
	private static final String D_TBL_NAME_KK_M_NTTORS_PCRS = "KK_M_NTTORS_PCRS";
	
	/** テーブル(課金先)*/
	private static final String D_TBL_NAME_KK_T_KAKINS = "KK_T_KAKINS";
	//ANK-4543-00-00 ADD END
	
	/** SQL定義キー(CH_SELECT_001)*/
	private static final String CH_M_PRC_KMK_OPUT_NM_CH_SELECT_001 = "CH_SELECT_001";

	/** SQL定義キー(CH_SELECT_001)*/
	private static final String CH_M_CHUSHK_HENSHU_CH_SELECT_001 = "CH_SELECT_001";

	/** SQL定義キー(CH_SELECT_001)*/
	private static final String KK_T_KAISEN_TG_SVKEI_CH_SELECT_001 = "CH_SELECT_001";

	/** SQL定義キー(CH_SELECT_005)*/
	private static final String KK_T_SVC_KEI_CH_SELECT_005 = "CH_SELECT_005";

	/** SQL定義キー(CH_SELECT_013)*/
	private static final String CH_T_SEIKY_UCWK_CH_SELECT_013 = "CH_SELECT_013";

	/** SQL定義キー(CH_SELECT_001)*/
	private static final String KK_T_KAISEN_USE_KEI_CH_SELECT_001 = "CH_SELECT_001";

	/** SQL定義キー(CH_SELECT_005)*/
	private static final String CH_M_PRC_KMK_CS_CHGE_CH_SELECT_005 = "CH_SELECT_005";

// v25.00.00 MOD START
//	/** SQL定義キー(CH_SELECT_001)*/
//	private static final String KK_T_KKTK_SVC_KEI_CH_SELECT_001 = "CH_SELECT_001";
	/** SQL定義キー(CH_SELECT_003)*/
	private static final String KK_T_KKTK_SVC_KEI_CH_SELECT_003 = "CH_SELECT_003";
// v25.00.00 MOD END

//v41.00.00 ANK-3500-00-00 Add Start
	/** SQL定義キー(CH_SELECT_001)*/
	private static final String KK_T_SVC_KEI_DUMMY_CH_SELECT_001 = "CH_SELECT_001";
//v41.00.00 ANK-3500-00-00 Add End
	
	//v68.00.00 ANK-4475-00-00 Add Start
	/** SQL定義キー(CH_SELECT_002)*/
	private static final String ZM_M_WORK_PARAM_KNRI_CH_SELECT_002 = "CH_SELECT_002";
	//v68.00.00 ANK-4475-00-00-00-00 Add End

	//ANK-4543-00-00 ADD START
	/** SQL定義キー(CH_SELECT_001)*/
	private static final String KK_T_NTTORS_KEI_CH_SELECT_001 = "CH_SELECT_001";
	
	/** SQL定義キー(CH_SELECT_001)*/
	private static final String KK_M_NTTORS_PCRS_CH_SELECT_001 = "CH_SELECT_001";
	
	/** SQL定義キー(CH_SELECT_009)*/
	private static final String KK_T_KAKINS_CH_SELECT_009 = "CH_SELECT_009";
	//ANK-4543-00-00 ADD END
	
	//ANK-4468-00-00 ADD START
	/** SQL定義キー(CH_SELECT_005)*/
	private static final String CH_M_PRC_KMK_OPUT_NM_CH_SELECT_005 = "CH_SELECT_005";
	//ANK-4468-00-00 ADD END
	
	//ANK-4427-10-00 ADD START
	/** SQL定義キー(CH_SELECT_009)*/
	private static final String CH_M_PRC_KMK_OPUT_NM_CH_SELECT_009 = "CH_SELECT_009";
	//ANK-4427-10-00 ADD END

	/** テーブルアクセスクラス(料金項目出力名称)*/
	private JBSbatSQLAccess db_CH_M_PRC_KMK_OPUT_NM = null;

	/** テーブルアクセスクラス(注釈編集)*/
	private JBSbatSQLAccess db_CH_M_CHUSHK_HENSHU = null;

	/** テーブルアクセスクラス(回線対象サービス契約)*/
	private JBSbatSQLAccess db_KK_T_KAISEN_TG_SVKEI = null;

	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;

	/** テーブルアクセスクラス(請求内訳)*/
	private JBSbatSQLAccess db_CH_T_SEIKY_UCWK = null;

	/** テーブルアクセスクラス(回線使用契約)*/
	private JBSbatSQLAccess db_KK_T_KAISEN_USE_KEI = null;

	/** テーブルアクセスクラス(料金項目抽出変換)*/
	private JBSbatSQLAccess db_CH_M_PRC_KMK_CS_CHGE = null;

	/** テーブルアクセスクラス(機器提供サービス契約)*/
	private JBSbatSQLAccess db_KK_T_KKTK_SVC_KEI = null;

//v41.00.00 ANK-3500-00-00 Add Start
	/** テーブルアクセスクラス(サービス契約＜ダミー＞)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI_DUMMY = null;
//v41.00.00 ANK-3500-00-00 Add End
	
	//AKN-4475-00-00 ADD START
	/** テーブルアクセスクラス(業務パラメータ管理)*/
	private JBSbatSQLAccess db_ZM_M_WORK_PARAM_KNRI = null;
	//AKN-4475-00-00 ADD END
	
	//ANK-4543-00-00 ADD START
	/** テーブルアクセスクラス(NTT卸契約)*/
	private JBSbatSQLAccess db_KK_T_NTTORS_KEI = null;
	
	/** テーブルアクセスクラス(NTT卸料金コース)*/
	private JBSbatSQLAccess db_KK_M_NTTORS_PCRS = null;
	
	/** テーブルアクセスクラス(課金先)*/
	private JBSbatSQLAccess db_KK_T_KAKINS = null;
	//ANK-4543-00-00 ADD END

	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/** 退避．税区分 */
	private String tmpTaxareaDsp = null;
	
	/** 退避．部屋番号付加文字 */
	private String tmpRmNoDsp = null;
	
	/** 退避．部屋番号桁数 */
	private int tmpRmNoLen = 0;
	
	/** 退避．料金コード付加文字 */
	private String tmpPrcCdDsp = null;
	
	/** 退避．通請求内訳金額カンマ編集有無 */
	private String tmpUwPrcAmntUm = null;
	
	/** 退避．未入居明細用サービス契約番号 */
	private String miNyukyoDtlSvcKeiNo = null;
	
	/** 退避．未入居明細用部屋番号 */
	private String miNyukyoDtlRoomNo = null;
	
	/** 退避．未入居明細用契約者名 */
	private String miNyukyoDtlKeiNm = null;
	
	/** 退避．料金項目出力名称マップ */
	private HashMap<String, JBSbatCommonDBInterface> tmpPrcKmkOputNmMap = null;
	
	/** 請求収納業務共通クラス */
	private JCHbatSeikyKaknoBusinessUtil chBusinessUtil 	= null;
	
	/** 退避．行削除フラグ */
	private String tmpGyoDelFlg = FLG_NASHI;

	/** 退避．行編集フラグ */
	private String tmpGyoEditFlg = FLG_NASHI;
	
	/** 退避．空行挿入フラグ */
	private String tmpKugyoInsFlg = FLG_NASHI;
	
	/** 退避．コメント行挿入フラグ */
	private String tmpCmtgyoInsFlg = FLG_NASHI;
	
	/** 退避．料金内訳名称追加行挿入フラグ */
	private String tmpPrcKmkUcwkNameInsFlg = FLG_NASHI;
	
	/** 退避．編集エリアリスト */
	private ArrayList<String> tmpEditAreaList = null;

	/** 退避．金額エリアリスト */
	private ArrayList<String> tmpAmntAreaList = null;
	
	/** 退避．編集金額エリアリスト */
	private ArrayList<String> tmpEditAmntAreaList  = null;
	
	/** 退避．オーナー用料金グループコードリスト */
	private ArrayList<String> tmpGroupCdList = null;
	
	//ANK-4543-00-00 ADD START
	/** 退避．NTT卸契約リスト */
	private ArrayList<String> tmpNttOrsPrcKmkOputNmMap = null;
	/** 退避．課金先リスト */
	private ArrayList<String> tmpKaKinsOputMap = null;
	//ANK-4543-00-00 ADD END
	
	//68.00.00 ADD START
	/** 不課税対象＿料金項目コード */
	private List<String> workParamList = new ArrayList<String>();
	//68.00.00 ADD END
	
	/** 退避．料金項目コード(請求内訳両出力)セット */
	private  HashSet<String> prcKmkCdSet = null;
	
	/** 退避．コメント */
	private String tmpComment  = null;
	
	/** 退避．サービス契約番号 */
	private String tmpSvcKeiNo = JACStrConst.KARA_MOJI;
	
	/** 退避．部屋番号 */
	private String tmpAddrm = JACStrConst.KARA_MOJI;
	
	//ANK-4468-00-00 ADD START
	/** 退避.シンプルプラン料金項目名称 */
	private String simplePrcKmkNm = null;
	//ANK-4468-00-00 ADD END
	
	/** 料金グループコード（マンションオーナー向け） */
	private String acPrcGrpCd = null;
	
	/** 請求年月月末日 */
	private String seikyYmEndDay = JACStrConst.KARA_MOJI;
	
	/** 業務機能識別コード(請求内訳両出力) */
	private String workKinoSkbtCd = JACStrConst.KARA_MOJI;

	/** 固定値:フラグ（なし） */
	private static final String FLG_NASHI 	= "0";
	
	/** 固定値:フラグ（あり） */
	private static final String FLG_ARI 		= "1";
	
	/** 固定値:0 */
	private static final String ZERO 	= "0";
	
	/** 固定値:0（金額0埋め用 */
	private static final String ZERO_AMNT = "000000000000";
	
	/** 固定値：桁数（編集金額欄） */
	private static final int HENSHU_AMNT_RAN_LENGTH = 12;
	
	/** 固定値：桁数（編集内訳金額欄） */
	private static final int HENSHU_UCWK_AMNT_RAN_LENGTH = 12;

	/** 固定値：桁数（表示順） */
	// ANK-3636-00-00 MOD START
	//private static final int DSP_JUN_LENGTH = 9;
	private static final int DSP_JUN_LENGTH = 12;
	// ANK-3636-00-00 MOD END
	
	/** 固定値：バイトサイズ（料金名称欄） */
	private static final int BYTE_SIZE_PRC_NM_RAN = 60;
	
	/** 固定値：表示順枝番（最終行） */
	private static final int DSP_JUN_LAST = 9;
	
	/** 請求収納システム共通編集クラス */
	private JCHCommonFormatUtil chCommonFormatUtil = null;
	
	/** 料金グループコード（マンションオーナー） */
	private static final String MANS_ORNER_CD = "99";
	// ANK-4475-00-00 ADD START
	/** 業務パラメータID（マンションオーナー） */
	private static final String WORK_PARAM_ID = "AC_MANS_OWNER_CD";
	// ANK-4475-00-00 ADD END
	/** 表示順(2) */
	private static final String DSP_JUN_2 = "2";

	/** 表示順(3) */
	private static final String DSP_JUN_3 = "3";

	/** 表示順(4) */
	private static final String DSP_JUN_4 = "4";

	// v54.00.00 ADD START
	/** 14桁（020電話番号識別用） */
	private static final int TEL_14 = 14;
	// v54.00.00 ADD START
	//ANK-4543-00-00 ADD START
	private static final String CONSTANT_DIAMOND = "　◇";
	//ANK-4543-00-00 ADD END
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_CH_M_PRC_KMK_OPUT_NM = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_M_PRC_KMK_OPUT_NM);
		db_CH_M_CHUSHK_HENSHU = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_M_CHUSHK_HENSHU);
		db_KK_T_KAISEN_TG_SVKEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KAISEN_TG_SVKEI);
		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		db_CH_T_SEIKY_UCWK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_SEIKY_UCWK);
		db_KK_T_KAISEN_USE_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KAISEN_USE_KEI);
		db_CH_M_PRC_KMK_CS_CHGE = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_M_PRC_KMK_CS_CHGE);
		db_KK_T_KKTK_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KKTK_SVC_KEI);
//v41.00.00 ANK-3500-00-00 Add Start
		db_KK_T_SVC_KEI_DUMMY = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI_DUMMY);
//v41.00.00 ANK-3500-00-00 Add End
		//AKN-4475-00-00 ADD START
		db_ZM_M_WORK_PARAM_KNRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_WORK_PARAM_KNRI);
		///AKN-4475-00-00 ADD END
		//ANK-4543-00-00 ADD START
		db_KK_T_NTTORS_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_NTTORS_KEI);
		db_KK_M_NTTORS_PCRS = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_M_NTTORS_PCRS);
		db_KK_T_KAKINS = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KAKINS);
		//ANK-4543-00-00 ADD END
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		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 + "]");
		
		//AKN-4475-00-00 ADD START
		ArrayList<String> list = new ArrayList<String>();
		//AKN-4475-00-00 ADD END
		
		// 業務パラメータ取得
		getWorkPara();
		
		// 請求年月
		String seikyYm = JACStrConst.KARA_MOJI;
		
		// 請求収納共通部品アクセスクラス
		chBusinessUtil = new JCHbatSeikyKaknoBusinessUtil(commonItem);
		seikyYm = chBusinessUtil.getSeikyYm(super.opeDate);
		chBusinessUtil.close();

		// 料金スケジュール定義アクセス部品
		JACbatSchdlUtil schdlUtil = new JACbatSchdlUtil(commonItem);
		
		// 月末日[1]
		String[] ymd = schdlUtil.getUseStrEnd(seikyYm, JACStrConst.EVENT_CD_USE_STAYMD, JACStrConst.EVENT_CD_USE_ENDYMD);
		this.seikyYmEndDay = ymd[1];

		schdlUtil.close();
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][seikyYmEndDay=" + this.seikyYmEndDay + "]");

		// 料金項目出力名称マスタ情報取得
		setPrcKmkOputNmMap();

		// 料金項目抽出変換マスタ情報取得
		setPrcKmkCsChgeMap();
		
		//AKN-4475-00-00 ADD START
		//  業務パラメータID情報を取得		
		executeZM_M_WORK_PARAM_KNRI_AC_SELECT_002(super.opeDate);
		JBSbatCommonDBInterface record = db_ZM_M_WORK_PARAM_KNRI.selectNext();
		
		while (record != null)	
		{
			list.add(record.getString(JBSbatZM_M_WORK_PARAM_KNRI.WORK_PARAM_SETTE_VALUE));
			record = db_ZM_M_WORK_PARAM_KNRI.selectNext();
		}
		for(int i = 0;i < list.size();i++)
		{
			this.workParamList = list;
		}
		
		//AKN-4475-00-00 ADD END
		//ANK-4468-00-00 ADD START
		//シンプルプラン料金項目名称取得
		getPrcKmkNm();
		//ANK-4468-00-00 ADD END
		
		chCommonFormatUtil = new JCHCommonFormatUtil(commonItem.getConnection(), super.opeDate);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][initial]");
		
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute][inMap=" + inMap.getMap().toString() + "]");
		
		// 出力共通電文
		JBSbatOutputItem outputItem = new JBSbatOutputItem();
		
		// 各種初期化
		{
			this.tmpGyoDelFlg 				= FLG_NASHI;					// 退避．行削除フラグ　←　"0"（なし
			this.tmpGyoEditFlg 				= FLG_NASHI;					// 退避．行編集フラグ　←　"0"（なし）
			this.tmpKugyoInsFlg				= FLG_NASHI;					// 退避．空行挿入フラグ　←　"0"（なし）
			this.tmpPrcKmkUcwkNameInsFlg	= FLG_NASHI;					// 退避．料金内訳名称追加行挿入フラグ　←　"0"（なし）
			this.tmpCmtgyoInsFlg 			= FLG_NASHI;					// 退避．コメント行挿入フラグ　←　"0"（なし）
			this.tmpEditAreaList 			= getKaraList(15);				// 退避．編集エリアリスト　←　NULL
			this.tmpAmntAreaList 			= getKaraList(2);				// 退避．金額エリアリスト　←　NULL
			this.tmpEditAmntAreaList 		= getKaraList(2);				// 退避．編集金額エリアリスト　←　NULL
			this.tmpComment 				= null;							// 退避．コメント　←　NULL
		}
		
		// 請求内訳編集ルール取得
		JBSbatCommonDBInterface dbMap = getSeikyUcwkEdit(inMap);
		
		// データ編集．行削除処理
		setGyoDelFlg(inMap, dbMap);
		
		// データ編集．行編集処理
		
		// 退避．行削除フラグ ＝ "0"（なし） の場合
		//AKN-4475-00-00 MOD START
		String workParam = inMap.getString(JBSbatCHIFM054.PRC_GRP_CD) + "," + (inMap.getString(JBSbatCHIFM054.PRC_KMK_CD)).substring(1, 8);
//		if(FLG_NASHI.equals(this.tmpGyoDelFlg)) 
		if(FLG_NASHI.equals(this.tmpGyoDelFlg) && !(workParamList.contains(workParam)))
		{
			//AKN-4475-00-00 MOD END
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][退避．行削除フラグ ＝ 0（なし） の場合]");
			setGyoEdit(inMap, dbMap);
		}
		

		//AKN-4475-00-00 MOD START
		//業務パラメータに設定された料金グループコード、料金項目コードのとき、行挿入の対象外とする
		if(!(workParamList.contains(workParam)))
		{
			// データ編集．行挿入処理
			setGyoIns(inMap, dbMap);
		}
		//AKN-4475-00-00 MOD START
		
		// データ出力
		
		//「退避．行編集フラグ ＝ "1"（あり）」 もしくは
		//「退避．空行挿入フラグ ＝ "1"（あり）」 もしくは
		//「退避．料金内訳名称追加行挿入フラグ ＝ "1"（あり）」 もしくは
		//「退避．コメント行挿入フラグ ＝ "1"（あり）」 の場合
		if(FLG_ARI.equals(this.tmpGyoEditFlg) 
				|| FLG_ARI.equals(this.tmpKugyoInsFlg)
				|| FLG_ARI.equals(this.tmpPrcKmkUcwkNameInsFlg)
				|| FLG_ARI.equals(this.tmpCmtgyoInsFlg))
		{
			this.makeOutputInfo(inMap, dbMap, outputItem);
		}

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute]");
		return outputItem;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		assert 	JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][terminal]");
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_CH_M_PRC_KMK_OPUT_NM.close();
		db_CH_M_CHUSHK_HENSHU.close();
		db_KK_T_KAISEN_TG_SVKEI.close();
		db_KK_T_SVC_KEI.close();
		db_CH_T_SEIKY_UCWK.close();
		db_KK_T_KAISEN_USE_KEI.close();
		db_CH_M_PRC_KMK_CS_CHGE.close();
		db_KK_T_KKTK_SVC_KEI.close();
//v41.00.00 ANK-3500-00-00 Add Start
		db_KK_T_SVC_KEI_DUMMY.close();
//v41.00.00 ANK-3500-00-00 Add End
//v68.00.00 ANK-4475-00-00 Add Start
		db_ZM_M_WORK_PARAM_KNRI.close();
//v68.00.00 ANK-4475-00-00 Add End
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		assert 	JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][terminal]");
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 * 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_PRC_KMK_OPUT_NM_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());

		// DBアクセスを実行します
		db_CH_M_PRC_KMK_OPUT_NM.selectBySqlDefine(paramList, CH_M_PRC_KMK_OPUT_NM_CH_SELECT_001);
	}

	/**
	 * 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_CHUSHK_HENSHU_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());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());
		paramList.setValue(param[6].toString());

		// DBアクセスを実行します
		db_CH_M_CHUSHK_HENSHU.selectBySqlDefine(paramList, CH_M_CHUSHK_HENSHU_CH_SELECT_001);
	}

	/**
	 * 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 executeKK_T_KAISEN_TG_SVKEI_CH_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_T_KAISEN_TG_SVKEI.selectBySqlDefine(paramList, KK_T_KAISEN_TG_SVKEI_CH_SELECT_001);
	}

	/**
	 * 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 executeKK_T_SVC_KEI_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_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_CH_SELECT_005);
	}

	/**
	 * SQLKEY(CH_SELECT_013)で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_013(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());

		// DBアクセスを実行します
		db_CH_T_SEIKY_UCWK.selectBySqlDefine(paramList, CH_T_SEIKY_UCWK_CH_SELECT_013);
	}

	/**
	 * 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 executeKK_T_KAISEN_USE_KEI_CH_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_KAISEN_USE_KEI.selectBySqlDefine(paramList, KK_T_KAISEN_USE_KEI_CH_SELECT_001);
	}
	
	/**
	 * 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 executeCH_M_PRC_KMK_CS_CHGE_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());
		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_005);
	}
	
	/**
	 * 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 業務サービス内で発生した例外全般。
	 */
// v25.00.00 MOD START
//	private void executeKK_T_KKTK_SVC_KEI_CH_SELECT_001(Object[] param) throws Exception
	private void executeKK_T_KKTK_SVC_KEI_CH_SELECT_003(Object[] param) throws Exception
// v25.00.00 MOD END
	{
		// バイント変数のリストを生成します
		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());
// v26.00.00 DEL START
//// v25.00.00 ADD START
//		paramList.setValue(param[5].toString());
//// v25.00.00 ADD END
// v26.00.00 DEL End

		// DBアクセスを実行します
// v25.00.00 MOD START
//		db_KK_T_KKTK_SVC_KEI.selectBySqlDefine(paramList, KK_T_KKTK_SVC_KEI_CH_SELECT_001);
		db_KK_T_KKTK_SVC_KEI.selectBySqlDefine(paramList, KK_T_KKTK_SVC_KEI_CH_SELECT_003);
// v25.00.00 MOD END
	}
	
//v41.00.00 ANK-3500-00-00 Add Start
	/**
	 * 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 executeKK_T_SVC_KEI_DUMMY_CH_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI_DUMMY.selectBySqlDefine(paramList, KK_T_SVC_KEI_DUMMY_CH_SELECT_001);
	}
//v41.00.00 ANK-3500-00-00 Add End
	
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * 業務パラメータ管理から値を取得します。
	 * 
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void getWorkPara() throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getWorkPara]");
		
		String[] groupCdCubic = null;
		
		// 業務パラメータ取得
		JACbatParamUtil pu = new JACbatParamUtil(commonItem);
		try
		{
			this.tmpTaxareaDsp 			= pu.getGyoumuParameter(JACStrConst.WKPARA_CH_TAXAREA_DSP);									// 税区分
			this.tmpRmNoDsp 			= pu.getGyoumuParameter(JACStrConst.WKPARA_CH_RM_NO_DSP);									// 部屋番号付加文字
			this.tmpRmNoLen 			= Integer.parseInt(pu.getGyoumuParameter(JACStrConst.WKPARA_CH_RM_NO_LEN));					// 部屋番号桁数
			this.tmpPrcCdDsp 			= pu.getGyoumuParameter(JACStrConst.WKPARA_CH_PRC_CD_DSP);									// 料金コード付加文字
			this.tmpUwPrcAmntUm 		= pu.getGyoumuParameter(JACStrConst.WKPARA_CH_UW_PRC_AMNT_UM);								// 請求内訳金額カンマ編集有無
			this.miNyukyoDtlSvcKeiNo	= pu.getGyoumuParameter(JACStrConst.WKPAR_AC_MINYUKYO_SVCKEINO);							// 未入居明細用サービス契約番号
			this.miNyukyoDtlRoomNo		= pu.getGyoumuParameter(JACStrConst.WKPAR_CH_MINYUKYO_ROOM_NO);								// 未入居明細用部屋番号
			this.miNyukyoDtlKeiNm		= pu.getGyoumuParameter(JACStrConst.WKPAR_CH_MINYUKYO_KEI_NM);								// 未入居明細用契約者名
			this.workKinoSkbtCd			= pu.getGyoumuParameter(JACStrConst.WKPRA_CH_WKS_SK_BOTH_DISP);								// 業務機能識別コード(請求内訳両出力)
			groupCdCubic				= pu.getGyoumuParameter(JACStrConst.WKPARA_AC_OWNR_PRC_GRP_CD).split(JACStrConst.COMMA);	// オーナー用料金グループコード
		}
		finally
		{
			pu.close();
		}
		
		// オーナー用料金グループコードの取得
		this.tmpGroupCdList = new ArrayList<String>();
		
		for(String groupCd : groupCdCubic)
		{
			this.tmpGroupCdList.add(groupCd);
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getWorkPara][税区分 = " + this.tmpTaxareaDsp  + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getWorkPara][部屋番号付加文字 = " + this.tmpRmNoDsp + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getWorkPara][部屋番号桁数 = " + this.tmpRmNoLen + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getWorkPara][料金コード付加文字 = " + this.tmpPrcCdDsp + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getWorkPara][請求内訳金額カンマ編集有無 = " + this.tmpUwPrcAmntUm + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getWorkPara][未入居明細用サービス契約番号 = " + this.miNyukyoDtlSvcKeiNo + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getWorkPara][未入居明細用部屋番号 = " + this.miNyukyoDtlRoomNo + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getWorkPara][未入居明細用契約者名 = " + this.miNyukyoDtlKeiNm + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getWorkPara][オーナー用料金グループコードリスト =" + this.tmpGroupCdList.toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getWorkPara]");
		return;
	}
	
	/**
	 * 料金項目出力名称スキーマより、料金項目出力名称マップを作成する。
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void setPrcKmkOputNmMap() throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][setPrcKmkOputNmMap]");
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		paramList.setValue(JACStrConst.PRC_KMK_NM_SBT_CD_PRC_NM);	// 料金項目名称種別コード
		paramList.setValue(this.seikyYmEndDay);						// 料金項目出力名称適用開始年月日
		paramList.setValue(this.seikyYmEndDay);						// 料金項目出力名称適用終了年月日

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setPrcKmkOputNmMap][paramList=" + paramList.getList().toString() + "]");
		
		// SQL実行
		executeCH_M_PRC_KMK_OPUT_NM_CH_SELECT_001(paramList.getList().toArray());
		JBSbatCommonDBInterface dbMap = db_CH_M_PRC_KMK_OPUT_NM.selectNext();
		
		// 取得できなかった場合
		if(null == dbMap)
		{
			// ログ出力（【警告】ＤＢ未存在エラー）
			String[] msgParam = new String[]
			{ JBSbatCH_M_PRC_KMK_OPUT_NM.TABLE_NAME, paramList.getList().toString() };
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EACB0240CW, msgParam);
		}
		this.tmpPrcKmkOputNmMap = new HashMap<String, JBSbatCommonDBInterface>();
		
		// 料金項目出力名称情報を退避
		while(null != dbMap)
		{
			// 設定キー作成（料金グループコード＋料金コースコード＋料金サービスコード＋料金項目コード）
			String key = makeStr(dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.PRC_GRP_CD), dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.PCRS_CD), 
					dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.PRC_SVC_CD), dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.PRC_KMK_CD));
			
			// 取得した情報をリストに設定
			this.tmpPrcKmkOputNmMap.put(key, dbMap);
			
			dbMap = db_CH_M_PRC_KMK_OPUT_NM.selectNext();
		}
		assert this.tmpPrcKmkOputNmMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][setPrcKmkOputNmMap][tmpPrcKmkOputNmMap = " + this.tmpPrcKmkOputNmMap.toString() + "]") : true;
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][setPrcKmkOputNmMap]");
		return;
	}
	
	/**
	 * 料金項目抽出変換スキーマより、料金項目抽出変換マップを作成する。
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void setPrcKmkCsChgeMap() throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][setPrcKmkCsChgeMap]");
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		paramList.setValue(super.systemCode);						// システムコード
		paramList.setValue(this.workKinoSkbtCd);					// 業務機能識別コード(請求内訳両出力)
		paramList.setValue(JACStrConst.CHSHT_CHG_CD_CST);			// 抽出変換コード
		paramList.setValue(super.opeDate);							// 料金項目抽出変換適用開始年月日
		paramList.setValue(super.opeDate);							// 料金項目抽出変換適用終了年月日

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setPrcKmkCsChgeMap][paramList=" + paramList.getList().toString() + "]");
		
		// SQL実行
		executeCH_M_PRC_KMK_CS_CHGE_CH_SELECT_005(paramList.getList().toArray());
		JBSbatCommonDBInterface dbMap = db_CH_M_PRC_KMK_CS_CHGE.selectNext();
		
		// 取得できなかった場合
		if(null == dbMap)
		{
			// ログ出力（【最重要】ＤＢ未存在エラー）
			String[] msgParam = new String[]
			{ JBSbatCH_M_PRC_KMK_CS_CHGE.TABLE_NAME, paramList.getList().toString() };
			throw new JBSbatBusinessException(JPCBatchMessageConstant.ECHB0270CH, msgParam);
		}
		
		// 退避．料金項目コード(請求内訳両出力)セット 
		this.prcKmkCdSet = new HashSet<String>();
		
		// 料金項目抽出変換情報を退避
		while(null != dbMap)
		{
			
			// 設定値作成（料金グループコード＋料金コースコード＋料金サービスコード＋料金項目コード）
			String value = makeStr(dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.PRC_GRP_CD), dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.PCRS_CD), 
					dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.PRC_SVC_CD), dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.PRC_KMK_CD));
			
			// 退避．料金項目コード(請求内訳両出力)セットに料金項目コードを設定
			this.prcKmkCdSet.add(value);
			
			// 次レコード取得
			dbMap = db_CH_M_PRC_KMK_CS_CHGE.selectNext();
		}
		assert this.prcKmkCdSet != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][setPrcKmkCsChgeMap][prcKmkCdSet = " + this.prcKmkCdSet.toString() + "]") : true;
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][setPrcKmkCsChgeMap]");
		return;
	}

	/**
	 * 機器提供サービス契約スキーマと宅内機器型式関連情報スキーマより端末名称と製造番号を取得する。
	 * @param inMap 入力電文
	 * @return JBSbatCommonDBInterface 注端末名称と製造番号
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private JBSbatCommonDBInterface getTnameSeizoNo(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getTnameSeizoNo]");
		
		// サービス詳細識別番号取得
		String svcDtlSkbtNo = inMap.getString(JBSbatCHIFM054.SVC_DTL_SKBT_NO);
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		paramList.setValue(svcDtlSkbtNo);			// 機器提供サービス契約番号
		paramList.setValue(this.seikyYmEndDay);		// 予約適用年月日
// v25.00.00 DEL START
//// v25.00.00 ADD START
//		paramList.setValue(this.seikyYmEndDay);		// 予約適用年月日
//// v25.00.00 ADD END
// v25.00.00 DEL End
		paramList.setValue(this.seikyYmEndDay);		// 予約適用年月日
		paramList.setValue(this.seikyYmEndDay);		// 適用開始年月日
		paramList.setValue(this.seikyYmEndDay);		// 適用終了年月日

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getTnameSeizoNo][paramList=" + paramList.getList().toString() + "]");
		
		// SQL実行
// v25.00.00 MOD START
//		executeKK_T_KKTK_SVC_KEI_CH_SELECT_001(paramList.getList().toArray());
		executeKK_T_KKTK_SVC_KEI_CH_SELECT_003(paramList.getList().toArray());
// v25.00.00 MOD END
		JBSbatCommonDBInterface dbMap = db_KK_T_KKTK_SVC_KEI.selectNext();
		
		// 取得できなかった場合
		if(null == dbMap)
		{
			// ログ出力用キーデータを取得
			String seikyKeiNo = inMap.getString(JBSbatCHIFM054.SEIKY_KEI_NO);
			String svcKeiNo = inMap.getString(JBSbatCHIFM054.SVC_KEI_NO);
			
			// ログ出力（【警告】ＤＢ未存在エラー）
			String[] msgParam = new String[]
			{ JBSbatKK_T_KKTK_SVC_KEI.TABLE_NAME, "SEIKY_KEI_NO:" + seikyKeiNo, "SVC_KEI_NO:" + svcKeiNo, "SVC_DTL_SKBT_NO:" + svcDtlSkbtNo};
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EACB0240CW, msgParam);
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getTnameSeizoNo]");
		return dbMap;
	}
	

	
	/**
	 * 文字を連結します
	 * @param  string 文字
	 * @return strBuf 連結した文字列
	 */
	private String makeStr(String ...string)
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeStr]");
		
		StringBuffer strBuf = new StringBuffer();
		for(String str:string)
		{
			if(str == null)
			{
				strBuf.append(JACStrConst.KARA_MOJI);
			}
			else
			{
				strBuf.append(str);
			}
		}
		
		assert strBuf != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][strBuf][strBuf = " + strBuf.toString() + "]") : true;
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeStr]");
		
		return strBuf.toString();
	}
	
	/**
	 * 退避．料金項目出力名称マップより、対応した編集ルールを検索する。
	 * @param inMap 入力電文
	 * @return JBSbatCommonDBInterface 料金項目出力名称情報
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private JBSbatCommonDBInterface getSeikyUcwkEdit(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getSeikyUcwkEdit]");
		
		// 検索キー作成
		String key = makeStr(inMap.getString(JBSbatCHIFM054.PRC_GRP_CD), inMap.getString(JBSbatCHIFM054.PCRS_CD), 
				inMap.getString(JBSbatCHIFM054.PRC_SVC_CD), inMap.getString(JBSbatCHIFM054.PRC_KMK_CD));
		
		// 取得できなかった場合
		if(!this.tmpPrcKmkOputNmMap.containsKey(key))
		{
			// ログ出力（【最重要】ＤＢ未存在エラー）
			String[] msgParam = new String[]
			{ JBSbatCH_M_PRC_KMK_OPUT_NM.TABLE_NAME, key };
			throw new JBSbatBusinessException(JPCBatchMessageConstant.ECHB0270CH, msgParam);
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getSeikyUcwkEdit]");
		
		// 取得結果を返却
		return this.tmpPrcKmkOputNmMap.get(key);
	}
	
	/**
	 * 条件に一致したら行削除フラグを設定する。
	 * @param inMap 入力電文
	 * @param dbMap 料金項目出力名称情報
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void setGyoDelFlg(JBSbatServiceInterfaceMap inMap, JBSbatCommonDBInterface dbMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][setGyoDelFlg]");
		
		
		String yenDtlDspCtrlFlg = dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.N_0_YEN_DTL_DSP_CTRL_FLG);
		String amnt 			= inMap.getString(JBSbatCHIFM054.AMNT);
		
		//「退避．料金項目出力名称マップ[検索KEY][0円明細表示制御フラグ] ＝ "0"（非表示）」 かつ 「入力．金額 ＝ 0」 の場合
		if(JACStrConst.N_0_YEN_DTL_DSP_CTRL_FLG_HIDSP.equals(yenDtlDspCtrlFlg)
				&& ZERO.equals(amnt))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoDelFlg][「退避．料金項目出力名称マップ[検索KEY][0円明細表示制御フラグ] ＝ 1（非表示）」 かつ 「入力．金額 ＝ 0」 の場合]");
			
			// 退避．行削除フラグ　←　"1"（あり）
			this.tmpGyoDelFlg = FLG_ARI;
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][setGyoDelFlg]");
		return;
	}
	
	/**
	 * 行編集処理を行います。
	 * @param inMap 入力電文
	 * @param dbMap 料金項目出力名称情報
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void setGyoEdit(JBSbatServiceInterfaceMap inMap, JBSbatCommonDBInterface dbMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][setGyoEdit]");
		
		
		// (1) 料金項目名称
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoEdit][(1) 料金項目名称]");
			String prcKmkNm = dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.PRC_KMK_NM);
			
			//ANK-4468-00-00 ADD START
			//料金グループ計編集フラグ ＝ "1"（あり）の場合
			if(!JKKStringUtil.isNullEmpty(this.simplePrcKmkNm) && JACStrConst.PRC_GRP_KEI_HENSYU_FLG_TRGT.equals(inMap.getString(JBSbatCHIFM054.PRC_GRP_KEI_HENSYU_FLG)))
			{
				prcKmkNm = this.simplePrcKmkNm;
			}
			//ANK-4468-00-00 ADD END
//ANK-4543-00-00 ADD START

			//NTT卸契約判定フラグ
			boolean NTTorsFlg = false;
			
			//NTT卸サービス種別
			String NttorsSvcSbt = "";
			
			//NTT卸契約判定のため、料金グループコードを取得する
			String strGrpCd = inMap.getString(JBSbatCHIFM054.PRC_GRP_CD);
			
			//料金項目コードを取得する
			String PrcKmkCd = inMap.getString(JBSbatCHIFM054.PRC_KMK_CD);
			
			//料金グループコード　"16"（ｅｏメールアドレス）の場合、NTT卸契約の判定を行う。
			if("16".equals(strGrpCd) && ("01900801601".equals(PrcKmkCd) || "00900701601".equals(PrcKmkCd)))				
			{
				// 取得したサービス契約番号よりNTT卸サービス種別を取得します。
				String strSvcKeiNo = inMap.getString(JBSbatCHIFM054.SVC_KEI_NO);
				
				//請求年月を取得する
				String SeiKyuym = inMap.getString(JBSbatCHIFM054.SEIKY_YM);
				//請求年月の末日を算出する
				String seikyuEndD = getEndOfMonth(SeiKyuym.substring(0, 6));
				
				//料金内訳料金グループ計の場合、課金先からサービス契約番号を取得する
				if("00900701601".equals(PrcKmkCd)){
					//請求契約番号
					String strSeikyKeiNo = inMap.getString(JBSbatCHIFM054.SEIKY_KEI_NO);
					//サービス契約番号を取得する
                    setKaKinsOputMap(strSeikyKeiNo);
					for (String svcKeiNo : tmpKaKinsOputMap){
						setNttOrsPrcKmkOputNmMap(svcKeiNo, seikyuEndD);
						if(tmpNttOrsPrcKmkOputNmMap.size() >= 1){
							strSvcKeiNo = svcKeiNo;
							break;
						}
					}										
				}else{
					setNttOrsPrcKmkOputNmMap(strSvcKeiNo, seikyuEndD);
				}
												
				//NTT卸契約に同じサービス契約番号が複数件存在する場合、
				if(tmpNttOrsPrcKmkOputNmMap.size() > 1){
					NTTorsFlg = false;
					throw new JCCbatFrameworkException("NTT卸契約が複数件存在します。" + "サービス契約番号：" + strSvcKeiNo);
				}
				else if (tmpNttOrsPrcKmkOputNmMap.size() == 1){
					
					//NTT卸サービス種別を取得する
					NttorsSvcSbt = tmpNttOrsPrcKmkOputNmMap.get(0);
									
					NTTorsFlg = true;
				}
				else{
					NTTorsFlg = false;
				}
			}
			
			//NTT卸契約の場合、料金名称を置換する。
			if(NTTorsFlg){
				
				//NTT卸料金コースから指定されたNTT卸サービス種別の料金名称を取得する。
				executeKK_M_NTTORS_PCRS_CH_SELECT_001(NttorsSvcSbt, opeDate);
				JBSbatCommonDBInterface nttors_pcrs_outMap = db_KK_M_NTTORS_PCRS.selectNext();
				
				//ID番号計の場合
				if("01900801601".equals(PrcKmkCd) && nttors_pcrs_outMap != null ){
					
					//ID番号計の料金名称を取得する
					prcKmkNm =  JBSbatStringUtil.Rtrim(nttors_pcrs_outMap.getString("ID_NO_KEI"));					
					
				}
				
				//料金内訳料金グループ計の場合
				if("00900701601".equals(PrcKmkCd) && nttors_pcrs_outMap != null){
					
					//料金内訳料金グループ計の料金名称を取得する
					prcKmkNm =  JBSbatStringUtil.Rtrim(nttors_pcrs_outMap.getString("PRU_PRGP_KEI"));
					if (prcKmkNm.startsWith(CONSTANT_DIAMOND)){
						prcKmkNm = prcKmkNm.substring(1);	
			        }
				}
			}
//ANK-4543-00-00 ADD END			
			
			// 共通部品「請求収納業務共通部品」の文字列分割メソッドを呼び出す。
			String[] afEdit = JCHbatSeikyKaknoBusinessUtil.chrBunkatu(prcKmkNm, JACStrConst.ZENKAKU_DOLLARS_SIGN);
			
			// 編集後の文字列を設定
			
			// 退避．編集エリアリスト[0]　←　編集後の文字列１
			
			// 退避．編集エリアリスト[1]　←　編集後の文字列２
			this.tmpEditAreaList.set(0, afEdit[0]);
			this.tmpEditAreaList.set(1, afEdit[1]);
		}
		
		// (2) 埋込み項目
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoEdit][(2) 埋込み項目]");
			String umkmPrcKmkCd = dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.UMKM_KMK_CD);
			
			// 退避．料金項目出力名称マップ[検索KEY][埋込み項目コード] ＝ "1"（合算請求年月） の場合
			if(JACStrConst.UMKM_KMK_CD_GSAN_SEIKY_YM.equals(umkmPrcKmkCd))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoEdit][(2) 埋込み項目 埋込み項目コード ＝ 1（合算請求年月） の場合]");
				String gsanSeikyYm = inMap.getString(JBSbatCHIFM054.GSAN_SEIKY_YM);
				
				// ゼロサプレス
				gsanSeikyYm = chBusinessUtil.delZero(gsanSeikyYm);
				
				// 共通部品「請求収納業務共通部品」の年月書式編集（yyyy年MM月）メソッドを呼び出す
				gsanSeikyYm = JCHbatSeikyKaknoBusinessUtil.formatDate(gsanSeikyYm);
				
				// 共通部品「請求収納業務共通部品」の半角全角変換メソッドを呼び出す
				gsanSeikyYm = JCHbatSeikyKaknoBusinessUtil.formatHanToZen(gsanSeikyYm, JACStrConst.HAN_TO_ZEN_CHR);
				gsanSeikyYm = gsanSeikyYm.substring(5);
				
				// 退避．編集エリアリスト[2]　←　編集後の文字列
				this.tmpEditAreaList.set(2, gsanSeikyYm);
			}
			// 退避．料金項目出力名称マップ[検索KEY][埋込み項目コード] ＝ "2"（埋込み料金項目を全角に置き換える） の場合
			else if(JACStrConst.UMKM_KMK_CD_FULL.equals(umkmPrcKmkCd))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoEdit][(2) 埋込み項目 埋込み項目コード ＝ 2（埋込み料金項目を全角に置き換える） の場合]");
				
				// 通信量編集対象金額取得
				String amnt = getSeikyUcwkInfo(inMap, dbMap);
				
				// 通信量編集
				String umkmPrcNmMojiHukaCd = dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.UMKM_PRC_NM_MOJI_HUKA_CD);
				
// v16.00.00 MOD START
				// ArrayList<String> bfFormatList = this.chCommonFormatUtil.formatTushin(amnt, umkmPrcNmMojiHukaCd);
				// 通信量編集後、料金グループコードにより単位の置換を行う
				ArrayList<String> bfFormatList = this.chCommonFormatUtil.formatTushinTaniTikan(amnt, umkmPrcNmMojiHukaCd, inMap.getString(JBSbatCHIFM054.PRC_GRP_CD));
// v16.00.00 MOD END
				
				// 退避．編集エリアリスト[11]　←　編集後リスト[0]
				this.tmpEditAreaList.set(11, bfFormatList.get(0));
				
				//  退避．編集エリアリスト[2]　←　編集後リスト[1]
				this.tmpEditAreaList.set(2, bfFormatList.get(1));
			}
			// 退避．料金項目出力名称マップ[検索KEY][埋込み項目コード] ＝ "3"（サービス詳細識別番号（電話番号））の場合
			else if (JACStrConst.UMKM_KMK_CD_SVC_DTL_SKBT_NO.equals(umkmPrcKmkCd))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoEdit][(2) 埋込み項目 埋込み項目コード ＝ 3（サービス詳細識別番号（電話番号）） の場合]");
				
				// サービス詳細識別番号取得
				String svcDtlSkbtNo = inMap.getString(JBSbatCHIFM054.SVC_DTL_SKBT_NO);
// v54.00.00 ADD START
				if (TEL_14 != svcDtlSkbtNo.length()) {
					// サービス詳細識別番号が14桁でない場合、
// v54.00.00 ADD END
					// 「999-9999-9999」形式に変換
					svcDtlSkbtNo = JPCUtilCommon.formatTelNoAdd2(svcDtlSkbtNo);
// v54.00.00 ADD START
				} else {
					String retString1 = svcDtlSkbtNo.substring(0, 3);
					String retString2 = svcDtlSkbtNo.substring(3, 7);
					// 引数文字列の8文字目以降を取得する。
					String retString3 = svcDtlSkbtNo.substring(7);
					svcDtlSkbtNo = retString1 + JACStrConst.HYPHEN + retString2 + JACStrConst.HYPHEN + retString3;
				}
// v54.00.00 ADD END
				
				// 共通部品「請求収納業務共通部品」の半角全角変換メソッドを呼び出す
				svcDtlSkbtNo = JCHbatSeikyKaknoBusinessUtil.formatHanToZen(svcDtlSkbtNo, JACStrConst.HAN_TO_ZEN_CHR);
				
				// 退避．編集エリアリスト[2]　←　編集後の文字列
				this.tmpEditAreaList.set(2, svcDtlSkbtNo);
			}
			// 退避．料金項目出力名称マップ[検索KEY][埋込み項目コード] ＝ "4"（サービス詳細識別番号(端末名称・製造番号を2行表示)）の場合
			else if (JACStrConst.UMKM_KMK_CD_SVC_DTL_SKBT_NO_TNAME_SIZO_NO.equals(umkmPrcKmkCd))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoEdit][(2) 埋込み項目 埋込み項目コード ＝ 3（サービス詳細識別番号（端末名称・製造番号を2行表示）） の場合]");
				
				// 機器提供サービス契約スキーマと宅内機器型式関連情報スキーマより請求月の月末時点の端末名称と製造番号を取得
				String tchishoYoTkmdlNm	= JACStrConst.KARA_MOJI;
				String kikiSeizoNo		= JACStrConst.KARA_MOJI;
				JBSbatCommonDBInterface dbTnameMap = getTnameSeizoNo(inMap);
				
				if(dbTnameMap != null)
				{
					// 共通部品「請求収納業務共通部品」の半角全角変換メソッドを呼び出す
					tchishoYoTkmdlNm = dbTnameMap.getString(JBSbatZM_M_TKMDL_KNRN_INFO.TCHISHO_YO_TKMDL_NM);
					tchishoYoTkmdlNm = JCHbatSeikyKaknoBusinessUtil.formatHanToZen(tchishoYoTkmdlNm, JACStrConst.HAN_TO_ZEN_CHR);
					
					// 共通部品「請求収納業務共通部品」の半角全角変換メソッドを呼び出す
					kikiSeizoNo = dbTnameMap.getString(JBSbatKK_T_KKTK_SVC_KEI.KIKI_SEIZO_NO);
					kikiSeizoNo = JCHbatSeikyKaknoBusinessUtil.formatHanToZen(kikiSeizoNo, JACStrConst.HAN_TO_ZEN_CHR);
				}
				
				// 退避．編集エリアリスト[12]　←　編集後の通知書用宅内機器型式名
				this.tmpEditAreaList.set(12, tchishoYoTkmdlNm);
				
				// 退避．編集エリアリスト[2]　←　編集後の機器製造番号
				this.tmpEditAreaList.set(2, kikiSeizoNo);
			}
// v16.00.00 ADD START
			// 退避．料金項目出力名称マップ[検索KEY][埋込み項目コード] ＝ "5"（サービス詳細識別番号（供給地点特定番号））の場合
			else if (JACStrConst.UMKM_KMK_CD_SVC_DTL_SKBT_NO_KYOKYU_TKT_NO.equals(umkmPrcKmkCd))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoEdit][(2) 埋込み項目 埋込み項目コード ＝ 5（サービス詳細識別番号（供給地点特定番号）） の場合]");
				
				// サービス詳細識別番号取得
				String svcDtlSkbtNo = inMap.getString(JBSbatCHIFM054.SVC_DTL_SKBT_NO);
				
				// 共通部品「請求収納業務共通部品」の半角全角変換メソッドを呼び出す
				svcDtlSkbtNo = JCHbatSeikyKaknoBusinessUtil.formatHanToZen(svcDtlSkbtNo, JACStrConst.HAN_TO_ZEN_CHR);
				
				// 退避．編集エリアリスト[2]　←　編集後の文字列
				this.tmpEditAreaList.set(2, svcDtlSkbtNo);
			}
// v16.00.00 ADD END
			
// ANK-3296-00-00 v36.00.00 2018/01/22 Add Start
			// 退避．料金項目出力名称マップ[検索KEY][埋込み項目コード] ＝ "6"（埋込み料金項目を全角に置き換える（文字付加なし）） の場合
			else if (JACStrConst.UMKM_KMK_CD_FULL_NO_TANI.equals(umkmPrcKmkCd))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoEdit][(2) 埋込み項目 埋込み項目コード ＝ 6（埋込み料金項目を全角に置き換える（文字付加なし）） の場合]");
				
				// 標準工事費割賦代金の支払回数取得
				String amnt = getSeikyUcwkInfo(inMap, dbMap);
				
				// 標準工事費割賦代金の支払回数編集
				String editAmnt = JCHCommonFormatUtil.formatHanToZen(amnt, JACStrConst.HAN_TO_ZEN_SUCHI);
				
				// 標準工事費割賦代金の支払回数がnullの場合
				if(null == editAmnt)
				{
					// 編集後の文字列を全角空白に更新
					editAmnt = JACStrConst.FULL_SPACE_1;
				}
				
				// 退避．編集エリアリスト[2]　←　編集後の文字列
				this.tmpEditAreaList.set(2, editAmnt);
			}
// ANK-3296-00-00 v36.00.00 2018/01/22 Add End	

//v41.00.00 ANK-3500-00-00 Add Start
			// 退避．料金項目出力名称マップ[検索KEY][埋込み項目コード] ＝ "7"（埋込み料金項目を全角に置き換える（文字付加なし）） の場合
			else if (JACStrConst.UMKM_KMK_CD_MANSION_NM.equals(umkmPrcKmkCd))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoEdit][(2) 埋込み項目 埋込み項目コード ＝ 7（埋込み料金項目を全角に置き換える（文字付加なし）） の場合]");
				
				String svcKeiNo = "";
				if(!JCHCommonFormatUtil.isNull(inMap.getString(JBSbatCHIFM054.SVC_KEI_NO))){
					svcKeiNo =inMap.getString(JBSbatCHIFM054.SVC_KEI_NO);
				}
				// マンション営業管理対象物件名の取得
				String msbsnKrtgBknNm = getMsbnKrtgBknNm(svcKeiNo);
				
				//  共通部品「請求収納業務共通部品」の半角全角変換メソッドを呼び出す
				String editBknNm = JCHCommonFormatUtil.formatHanToZen(msbsnKrtgBknNm, JACStrConst.HAN_TO_ZEN_CHR);
				
				// マンション営業管理対象物件名がnullの場合
				if(null == editBknNm)
				{
					// 編集後の文字列を空文字に更新
					editBknNm = JACStrConst.KARA_MOJI;
				}
				
				// 退避．編集エリアリスト[2]　←　編集後の文字列
				this.tmpEditAreaList.set(2, editBknNm);
			}

//v41.00.00 ANK-3500-00-00 Add End
		}
		
		// (3) インデント数
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoEdit][(3) インデント数]");
			
			// "　"（全角空白） × 退避．料金項目出力名称マップ[検索KEY][インデント数]
			int indentCnt = Integer.parseInt(dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.INDENT_CNT));
			String indentValue = JPCUtilCommon.fillSpace(JACStrConst.FULL_SPACE_1, indentCnt, false);
			
			//  退避．編集エリアリスト[3]　←　編集後の文字列
			this.tmpEditAreaList.set(3, indentValue);
		}
		
		// (4) マンションID
		{
			
			// 退避．料金項目出力名称マップ[検索KEY][マンションID表示制御フラグ] ＝ "1"（表示）
			
			// かつ、入力．料金グループコードが退避．オーナー用料金グループコードリストに含まれる場合
			String mansIdDspCtrlFlg = dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.MANS_ID_DSP_CTRL_FLG);
			if(JACStrConst.MANS_ID_DSP_CTRL_FLG_TRGT.equals(mansIdDspCtrlFlg)
					&& this.tmpGroupCdList.contains(inMap.getString(JBSbatCHIFM054.PRC_GRP_CD)))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoEdit][(4) マンションID]");
				
				// 入力．整理番号を取得して設定します
				this.tmpEditAreaList.set(4, inMap.getString(JBSbatCHIFM054.SEIRI_NO));
			}
		}
		
		// (5) 整理番号
		{
			// 入力．整理番号表示フラグ ＝ "1"（表示） の場合
			String seiriNoDspCtrlFlg = inMap.getString(JBSbatCHIFM054.SEIRI_NO_DSP_FLG);
			if(JACStrConst.SEIRI_NO_DSP_FLG_TRGT.equals(seiriNoDspCtrlFlg))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoEdit][(5) 整理番号]");
				
				// 共通部品「請求収納業務共通部品」の整理番号編集メソッドを呼び出す。
				String seiriNo = inMap.getString(JBSbatCHIFM054.SEIRI_NO);
				seiriNo = JCHCommonFormatUtil.formatSeiriNo(seiriNo);
				
				// 退避．編集エリアリスト[5]　←　編集後の文字列
				this.tmpEditAreaList.set(5, seiriNo);
			}
			
			// 退避．編集エリアリスト[14]　←　未編集の文字列
			this.tmpEditAreaList.set(14, inMap.getString(JBSbatCHIFM054.SEIRI_NO));
		}
		
		// (6) 利用期間
		{
			String usePrdDspCtrlFlg = dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.USE_PRD_DSP_CTRL_FLG);
			
			// 退避．料金項目出力名称マップ[検索KEY][利用期間表示制御フラグ] ＝ "1"（表示） の場合
			if(JACStrConst.USE_PRD_DSP_CTRL_FLG_ON.equals(usePrdDspCtrlFlg))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoEdit][(6) 利用期間]");
				String useStaYmd = inMap.getString(JBSbatCHIFM054.USE_STAYMD);// 入力．利用開始年月日
				String useEndYmd = inMap.getString(JBSbatCHIFM054.USE_ENDYMD);// 入力．利用終了年月日
				
				/*---< ANK-4323-00-00 Add start >---*/
				//料金グループコード　＝　"51"(ｍｉｎｅｏ)  かつ　利用終了年月日の年月　＜　請求年月の場合は何も処理しない
				if((inMap.getString(JBSbatCHIFM054.PRC_GRP_CD) != null && inMap.getString(JBSbatCHIFM054.PRC_GRP_CD).equals("51"))
						&& (useEndYmd != null && useEndYmd.length() == 8)
						&& (inMap.getString(JBSbatCHIFM054.SEIKY_YM) != null && inMap.getString(JBSbatCHIFM054.SEIKY_YM).length() == 6)
						&& (useEndYmd.substring(0,6).compareTo(inMap.getString(JBSbatCHIFM054.SEIKY_YM)) < 0)
					)
				{
					;//未設定
				}
				else
				{
				/*---< ANK-4323-00-00 Add end >---*/
					
					// 共通部品「請求収納業務共通部品」の年月日結合メソッドを呼び出す。（20120401 + 20120430 ⇒ 4月 1日- 4月30日）
					String ymd = this.chBusinessUtil.concatYmd(useStaYmd, useEndYmd);
					
					// 共通部品「請求収納業務共通部品」の半角全角変換メソッドを呼び出す。（ 4月 1日- 4月30日⇒　４月　１日"　４月３０日）
					ymd = JCHbatSeikyKaknoBusinessUtil.formatHanToZen(ymd, JACStrConst.HAN_TO_ZEN_CHR);
					
					// 退避．編集エリアリスト[6]　←　編集後の文字列
					this.tmpEditAreaList.set(6, ymd);
					
				/*---< ANK-4323-00-00 Add start >---*/
				}
				/*---< ANK-4323-00-00 Add end >---*/
			}
			
		}
		
		
		// (7) 金額n
		
		// 金額表示カラム数 
		int amntDspColumCnt = Integer.parseInt(dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.AMNT_DSP_COLUM_CNT));

		// 金額
		String fileAmnt = inMap.getString(JBSbatCHIFM054.AMNT);

		{
		
			// マスタ比較値作成（料金グループコード＋料金コースコード＋料金サービスコード＋料金項目コード）
			String value = makeStr(inMap.getString(JBSbatCHIFM054.PRC_GRP_CD), inMap.getString(JBSbatCHIFM054.PCRS_CD), 
					inMap.getString(JBSbatCHIFM054.PRC_SVC_CD), inMap.getString(JBSbatCHIFM054.PRC_KMK_CD));
			
			// 退避．料金項目コード(請求内訳両出力)セットに存在する場合
			if(this.prcKmkCdSet.contains(value))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoEdit][(7) 金額n][請求内訳両出力の場合]");
				
				// 退避．金額エリアリスト[0]　←　入力．金額
				this.tmpAmntAreaList.set(0, fileAmnt);
				
				// 退避．金額エリアリスト[1]　←　入力．金額
				this.tmpAmntAreaList.set(1, fileAmnt);
			}
			
			// 退避．料金項目出力名称マップ[検索KEY][金額表示カラム数] ≠ 0 の場合
			else if(amntDspColumCnt != 0)
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoEdit][(7) 金額n]");
				
				// 退避．金額エリアリスト[退避．料金項目出力名称マップ[検索KEY][金額表示カラム数] - 1]　←　入力．金額
				this.tmpAmntAreaList.set(amntDspColumCnt - 1, fileAmnt);
			}
		}
		
		// (8) 編集金額n
		{
			if(amntDspColumCnt != 0)
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoEdit][(8) 編集金額n]");

				// 共通部品「請求収納業務共通部品」の金額編集メソッドを呼び出す。
				
				// 金額編集パターンコードチェック
				String amntHenshuPtnCd = dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.AMNT_HENSHU_PTN_CD);
				String editAmnt = JCHbatSeikyKaknoBusinessUtil.formatAmnt(amntHenshuPtnCd, this.tmpUwPrcAmntUm, fileAmnt);
				
				// 合計明細行の場合はスペースを削除する
				if (JACStrConst.GK_DTL_FLG_GOKEI.equals(inMap.get(JBSbatCHIFM054.GK_DTL_FLG)))
				{
					editAmnt = editAmnt.trim();
				}
				
				// マスタ比較値作成（料金グループコード＋料金コースコード＋料金サービスコード＋料金項目コード）
				String value = makeStr(inMap.getString(JBSbatCHIFM054.PRC_GRP_CD), inMap.getString(JBSbatCHIFM054.PCRS_CD), 
						inMap.getString(JBSbatCHIFM054.PRC_SVC_CD), inMap.getString(JBSbatCHIFM054.PRC_KMK_CD));
				
				// 退避．料金項目コード(請求内訳両出力)セットに存在する場合
				if(this.prcKmkCdSet.contains(value))
				{
					assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoEdit][(8) 編集金額n][請求内訳両出力の場合]");
					// 編集金額欄
					String tmpEditAmnt = JPCUtilCommon.fillHalfSpace(editAmnt, HENSHU_AMNT_RAN_LENGTH, false);
					this.tmpEditAmntAreaList.set(0, tmpEditAmnt);
					
					// 編集内訳金額欄
					tmpEditAmnt = JPCUtilCommon.fillHalfSpace(editAmnt, HENSHU_UCWK_AMNT_RAN_LENGTH, false);
					this.tmpEditAmntAreaList.set(1, tmpEditAmnt);
				}
				
				// 金額表示カラム数 ＝ 1（編集金額欄）の場合
				else if(amntDspColumCnt == 1)
				{
					assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoEdit][(8) 編集金額n][金額表示カラム数 ＝ 1（編集金額欄）の場合]");
					editAmnt = JPCUtilCommon.fillHalfSpace(editAmnt, HENSHU_AMNT_RAN_LENGTH, false);
					
					// 退避．編集金額エリアリスト[退避．料金項目出力名称マップ[検索KEY][金額表示カラム数] - 1]　←　編集後の文字列
					this.tmpEditAmntAreaList.set(amntDspColumCnt - 1, editAmnt);
				}
				
				// 金額表示カラム数 ＝ 2（編集内訳金額欄）の場合
				else if(amntDspColumCnt == 2)
				{
					assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoEdit][(8) 編集金額n][金額表示カラム数 ＝ 2（編集内訳金額欄）の場合]");
					editAmnt = JPCUtilCommon.fillHalfSpace(editAmnt, HENSHU_UCWK_AMNT_RAN_LENGTH, false);
					
					// 退避．編集金額エリアリスト[退避．料金項目出力名称マップ[検索KEY][金額表示カラム数] - 1]　←　編集後の文字列
					this.tmpEditAmntAreaList.set(amntDspColumCnt - 1, editAmnt);
				}
				
			}
		}
		
		// (9) 税区分
		{
			String taxDivDspFlg = dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.TAX_DIV_DSP_FLG);
			
			// 退避．料金項目出力名称マップ[検索KEY][税区分表示フラグ] ＝ "1"（表示） の場合
			if(JACStrConst.TAX_DIV_DSP_FLG_DSP.equals(taxDivDspFlg))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoEdit][(9) 税区分]");
				
				// 退避．編集エリアリスト[7]　←　退避．税区分
				this.tmpEditAreaList.set(7, tmpTaxareaDsp);
			}
		}
		
		// (10) 部屋番号
		// ANK-4475-00-00 DEL START
//		String adrrnDspCtrlFlg = dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.ADRRM_DSP_CTRL_FLG);
//		{
//			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoEdit][(10) 部屋番号]");
//			
//			// 退避．サービス契約番号　≠　入力．サービス契約番号の時、退避．部屋番号を初期化する
//			if(!tmpSvcKeiNo.equals(inMap.getString(JBSbatCHIFM054.SVC_KEI_NO)))
//			{
//				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoEdit][(10) 部屋番号][退避部屋番号の初期化]");
//				
//				// 退避．部屋番号を初期化
//				tmpAddrm = JACStrConst.KARA_MOJI;
//				
//				// サービス契約番号を退避．サービス契約番号に保存
//				tmpSvcKeiNo = inMap.getString(JBSbatCHIFM054.SVC_KEI_NO);
//			}
//			
//			// 部屋番号（初期値：空文字）
//			String kaisenPlaceAdrrm = JACStrConst.KARA_MOJI;
//			
//			// 退避．料金項目出力名称マップ[検索KEY][部屋番号表示制御フラグ] ＝ "1"（表示） の場合
//			if(JACStrConst.ADRRM_DSP_CTRL_FLG_DSP.equals(adrrnDspCtrlFlg))
//			{
//				// 退避．部屋番号が空の場合、部屋番号の新規取得を行う
//				if (JACStrConst.KARA_MOJI.equals(tmpAddrm))
//				{
//					// 入力．サービス契約番号　≠　未入居明細用サービス契約番号の場合に取得
//					if (!this.miNyukyoDtlSvcKeiNo.equals(inMap.getString(JBSbatCHIFM054.SVC_KEI_NO)))
//					{
//						// 部屋番号を取得し、退避．部屋番号に保存
//						tmpAddrm = getKaisenTgSvkeiInfo(inMap.getString(JBSbatCHIFM054.SVC_KEI_NO));
//					}
//					
//					assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoEdit][(10) 部屋番号][部屋番号取得：" + tmpAddrm + "]");
//				}
//				
//				// 部屋番号表示制御フラグ＝"1"の項目では、抽出変換から取得した名称は使わない
//				
//				// （"部屋番号行"文字削除対応）
//				this.tmpEditAreaList.set(0, JACStrConst.KARA_MOJI);
//				this.tmpEditAreaList.set(1, JACStrConst.KARA_MOJI);
//			}
//			
//			// マンション区分が"1"（マンションオーナー）かつ、
//			
//			// 入力．サービス契約番号　＝　未入居明細用サービス契約番号の場合、Z埋め
//			if(this.miNyukyoDtlSvcKeiNo.equals(inMap.getString(JBSbatCHIFM054.SVC_KEI_NO))
//			&& MANS_ORNER_CD.equals(inMap.getString(JBSbatCHIFM054.PRC_GRP_CD)))
//			{
//				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoEdit][(10) 部屋番号][未入居明細用サービス契約番号出力処理]");
//				
//				// 部屋番号として退避．未入居明細用部屋番号をセット
//				kaisenPlaceAdrrm = this.miNyukyoDtlRoomNo;
//				
//				// 共通部品「請求収納業務共通部品」の半角全角変換メソッドを呼び出す。
//				kaisenPlaceAdrrm = JCHbatSeikyKaknoBusinessUtil.formatHanToZen(kaisenPlaceAdrrm, JACStrConst.HAN_TO_ZEN_CHR);
//			
//				// 共通部品「文字列編集部品」の全角空白文字充填処理メソッドを呼び出す。
//				kaisenPlaceAdrrm = JPCUtilCommon.fillSpace(kaisenPlaceAdrrm, this.tmpRmNoLen, true);
//				
//				// 部屋番号表示制御フラグ＝"1"の場合、退避．編集エリアリスト[8]に保存する
//				if (JACStrConst.ADRRM_DSP_CTRL_FLG_DSP.equals(adrrnDspCtrlFlg))
//				{
//					// 退避．編集エリアリスト[8]　←　退避．部屋番号付加文字 ＋ 編集後の文字列
//					this.tmpEditAreaList.set(8, makeStr(this.tmpRmNoDsp, kaisenPlaceAdrrm));
//				}
//				
//				// ソートキー出力用にＺ埋めの値に差し替える
//				kaisenPlaceAdrrm = JCHbatSeikyKaknoBusinessUtil.fillTrgString(JACStrConst.KARA_MOJI, "Ｚ", this.tmpRmNoLen, true);
//			}
//			else
//			{
//				// 退避．部屋番号に値を保持している場合、出力用の編集を行う
//				if (!JACStrConst.KARA_MOJI.equals(tmpAddrm))
//				{
//					assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoEdit][(10) 部屋番号][出力処理]");
//					
//					// 退避．部屋番号から部屋番号を取得
//					kaisenPlaceAdrrm = tmpAddrm;
//					
//					// 共通部品「請求収納業務共通部品」の半角全角変換メソッドを呼び出す。
//					kaisenPlaceAdrrm = JCHbatSeikyKaknoBusinessUtil.formatHanToZen(kaisenPlaceAdrrm, JACStrConst.HAN_TO_ZEN_CHR);
//				
//					// 共通部品「文字列編集部品」の全角空白文字充填処理メソッドを呼び出す。
//					kaisenPlaceAdrrm = JPCUtilCommon.fillSpace(kaisenPlaceAdrrm, this.tmpRmNoLen, true);
//				}
//				
//				// 部屋番号表示制御フラグ＝"1"の場合、退避．編集エリアリスト[8]に保存する
//				if (JACStrConst.ADRRM_DSP_CTRL_FLG_DSP.equals(adrrnDspCtrlFlg))
//				{
//					// 退避．編集エリアリスト[8]　←　退避．部屋番号付加文字 ＋ 編集後の文字列
//					this.tmpEditAreaList.set(8, makeStr(this.tmpRmNoDsp, kaisenPlaceAdrrm));
//				}
//			}
//			
//			// 退避．編集エリアリスト[13] ← ソートキー用部屋番号出力
//			this.tmpEditAreaList.set(13, kaisenPlaceAdrrm);
//		}
		//ANK-4475-00-00 DEL END
		
		// (11) 契約者名
		// ANK-4401-00-00 DEL START
//		{
//			// 退避．料金項目出力名称マップ[検索KEY][部屋番号表示制御フラグ] ＝ "1"（表示） の場合
//			if(JACStrConst.ADRRM_DSP_CTRL_FLG_DSP.equals(adrrnDspCtrlFlg))
//			{
//				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoEdit][(11) 契約者名]");
//				
//				// 契約者名（初期値：退避．未入居明細用契約者名）
//				String custNm = this.miNyukyoDtlKeiNm;
//				
//				// 入力．サービス契約番号　≠　未入居明細用サービス契約番号の場合
//				if(!this.miNyukyoDtlSvcKeiNo.equals(inMap.getString(JBSbatCHIFM054.SVC_KEI_NO)))
//				{
//					// お客様名取得
//					custNm = getSvcKeiInfo(inMap.getString(JBSbatCHIFM054.SVC_KEI_NO));
//				}
//				
//				// 退避．編集エリアリスト[9]　←　契約者名
//				this.tmpEditAreaList.set(9, custNm);
//			}
//		}
		// ANK-4401-00-00 DEL END
		
		// (12) 料金コード
		{
			String prcCdDspCtrlFlg = dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.PRC_CD_DSP_CTRL_FLG);
			
			// 退避．料金項目出力名称マップ[検索KEY][料金コード表示制御フラグ] ＝ "1"（表示） の場合
			if(JACStrConst.PRC_CD_DSP_CTRL_FLG_DSP.equals(prcCdDspCtrlFlg))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoEdit][(12) 料金コード]");
				
				// 入力．料金項目コードの料金分類部分（３桁目から３文字）
				String prcKmkCd = inMap.getString(JBSbatCHIFM054.PRC_KMK_CD).substring(2, 5);
				
				// 退避．編集エリアリスト[10]　←　退避．料金コード付加文字 ＋ 入力．料金項目コードの料金分類部分
				this.tmpEditAreaList.set(10, makeStr(this.tmpPrcCdDsp, prcKmkCd));
			}
		}

		// 退避．行編集フラグ　←　"1"（あり）
		this.tmpGyoEditFlg = FLG_ARI;
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][setGyoEdit]");
		return;
	}
	
	/**
	 * 請求内訳スキーマより通信量編集対象金額を取得します。
	 * @param inMap 入力電文
	 * @param dbMap 料金項目出力名称情報
	 * @return String 通信量編集対象金額
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private String getSeikyUcwkInfo(JBSbatServiceInterfaceMap inMap, JBSbatCommonDBInterface dbMap)  throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getSeikyUcwkInfo]");
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		paramList.setValue(inMap.getString(JBSbatCHIFM054.SEIKY_NO));						// 請求番号（ 請求内訳抽出データ．請求番号）
		paramList.setValue(inMap.getString(JBSbatCHIFM054.SEIKY_KEI_NO));					// 請求契約番号（請求内訳抽出データ．請求契約番号）
		paramList.setValue(inMap.getString(JBSbatCHIFM054.SEIKY_YM));						// 請求年月（ 請求内訳抽出データ．請求年月）
		paramList.setValue(inMap.getString(JBSbatCHIFM054.SEIRI_NO));						// 整理番号（請求内訳抽出データ．整理番号）
		paramList.setValue(inMap.getString(JBSbatCHIFM054.SVC_KEI_NO));						// サービス契約番号（請求内訳抽出データ．サービス契約番号）
		paramList.setValue(dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.UMKM_PRC_GRP_CD));	// 料金グループコード（料金項目出力名称．埋込み料金グループコード）
		paramList.setValue(dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.UMKM_PCRS_CD));		// 料金コースコード（料金項目出力名称．埋込み料金コースコード）
		paramList.setValue(dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.UMKM_PRC_SVC_CD));	// 料金サービスコード（料金項目出力名称．埋込み料金サービスコード）
		paramList.setValue(dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.UMKM_PRC_KMK_CD));	// 料金項目コード（料金項目出力名称．埋込み料金項目コード）
		paramList.setValue(inMap.getString(JBSbatCHIFM054.GSAN_SEIKY_YM));					// 合算請求年月（請求内訳抽出データ．合算請求年月 ）
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getSeikyUcwkInfo][paramList=" + paramList.getList().toString() + "]");
		
		// SQL実行
		executeCH_T_SEIKY_UCWK_CH_SELECT_013(paramList.getList().toArray());
		JBSbatCommonDBInterface recode = db_CH_T_SEIKY_UCWK.selectNext();
		
		// 取得できなかった場合
		if(null == recode)
		{
			return null;
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getSeikyUcwkInfo]");
		return recode.getString(JBSbatCH_T_SEIKY_UCWK.AMNT);
	}
	
	/**
	 * 回線対象サービス契約スキーマより、部屋番号を取得する。
	 * @param svcKeiNo サービス契約番号
	 * @return String 部屋番号
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private String getKaisenTgSvkeiInfo(String svcKeiNo) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getKaisenTgSvkeiInfo]");
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		paramList.setValue(svcKeiNo);	// サービス契約番号

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getKaisenTgSvkeiInfo][paramList=" + paramList.getList().toString() + "]");
		
		// SQL実行
		executeKK_T_KAISEN_TG_SVKEI_CH_SELECT_001(paramList.getList().toArray());
		JBSbatCommonDBInterface dbMap = db_KK_T_KAISEN_TG_SVKEI.selectNext();
		
		// 取得できなかった場合
		if(null == dbMap)
		{
			// ログ出力（【警告】ＤＢ未存在エラー）
			String[] msgParam = new String[]
			{ JBSbatKK_T_KAISEN_TG_SVKEI.TABLE_NAME, paramList.getList().toString() };
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB0270CH, msgParam);
			return JACStrConst.KARA_MOJI;
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getKaisenTgSvkeiInfo]");
		return dbMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.SKS_YO_KISN_PLACE_AD_RM_NO);
	}
	
	// ANK-4401-00-00 DEL START
//	/**
//	 * サービス契約スキーマより、お客様名を取得する。
//	 * @param svcKeiNo サービス契約番号
//	 * @return String お客様名
//	 * @throws Exception 業務サービス内で発生した例外全般
//	 */
//	private String getSvcKeiInfo(String svcKeiNo) throws Exception
//	{
//		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getSvcKeiInfo]");
//		
//		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
//		
//		paramList.setValue(svcKeiNo);		// サービス契約番号
//		paramList.setValue(super.opeDate);	// 予約適用年月日
//		paramList.setValue(super.opeDate);	// 予約適用年月日
//
//		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getSvcKeiInfo][paramList=" + paramList.getList().toString() + "]");
//		
//		// SQL実行
//		executeKK_T_SVC_KEI_CH_SELECT_005(paramList.getList().toArray());
//		JBSbatCommonDBInterface dbMap = db_KK_T_SVC_KEI.selectNext();
//		
//		// 取得できなかった場合
//		if(null == dbMap)
//		{
//			// ログ出力（【最重要】ＤＢ未存在エラー）
//			String[] msgParam = new String[]
//			{ JBSbatKK_T_SVC_KEI.TABLE_NAME, paramList.getList().toString() };
//			throw new JBSbatBusinessException(JPCBatchMessageConstant.ECHB0270CH, msgParam);
//		}
//		
//		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getSvcKeiInfo]");
//		return dbMap.getString(JBSbatCK_T_CUST.CUST_NM);
//	}
	// ANK-4401-00-00 DEL END
	
//v41.00.00 ANK-3500-00-00 Add Start
	/**
	 * 提供方式契約スキーマより、マンション営業管理対象物件名を取得する。
	 * @param svcKeiNo サービス契約番号
	 * @return String マンション営業管理対象物件名
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private String getMsbnKrtgBknNm(String svcKeiNo) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getMsbnKrtgBknNm]");
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		paramList.setValue(svcKeiNo);		// サービス契約番号

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getMsbnKrtgBknNm][paramList=" + paramList.getList().toString() + "]");
		
		// SQL実行
		executeKK_T_SVC_KEI_DUMMY_CH_SELECT_001(paramList.getList().toArray());
		JBSbatCommonDBInterface dbMap = db_KK_T_SVC_KEI_DUMMY.selectNext();
		
		// 取得できなかった場合
		if(null == dbMap)
		{
			return null;
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getMsbnKrtgBknNm]");
		return dbMap.getString(JBSbatKK_T_TK_HOSHIKI_KEI.MSBSN_KRTG_BKN_NM);
	}
//v41.00.00 ANK-3500-00-00 Add End
	
	/**
	 * 行挿入処理を行います。
	 * @param inMap 入力電文
	 * @param dbMap 料金項目出力名称情報
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void setGyoIns(JBSbatServiceInterfaceMap inMap, JBSbatCommonDBInterface dbMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][setGyoIns]");
		
		// (1) 空行挿入
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoIns][(1) 空行挿入]");
			
			// 退避．空行挿入フラグ　←　退避．料金項目出力名称マップ[検索KEY][空行挿入フラグ]
			this.tmpKugyoInsFlg = dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.KUGYO_INS_FLG);
		}
		
		// (1.5) 料金内訳名称追加行挿入チェック
		{
			// 退避．料金項目出力名称マップ[検索KEY][埋込み項目コード] ＝ "4"（サービス詳細識別番号(端末名称・製造番号を2行表示)）
			// かつ　編集エリア(12) ≠ null の場合
			String umkmPrcKmkCd	= dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.UMKM_KMK_CD);
			String editArie12	= this.tmpEditAreaList.get(12);
			if (JACStrConst.UMKM_KMK_CD_SVC_DTL_SKBT_NO_TNAME_SIZO_NO.equals(umkmPrcKmkCd) && editArie12 != null)
			{
				// 退避．料金内訳名称追加行挿入フラグ　←　"1"（挿入あり）
				this.tmpPrcKmkUcwkNameInsFlg = FLG_ARI;
			}
		}
		
		// (2) コメント行挿入チェック
		{
			String commntDspFlg = dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.COMMENT_DSP_FLG);
			
			// 退避．料金項目出力名称マップ[検索KEY][コメント表示フラグ] ＝ "0"（非表示） の場合
			if(JACStrConst.PRC_CD_DSP_CTRL_FLG_HIDSP.equals(commntDspFlg))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoIns][(2) コメント行挿入チェック-処理終了]");
				
				// 処理を抜ける
				return;
			}
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoIns][(2) コメント行挿入チェック]");
			
			// 退避．コメント行挿入フラグ　←　"1"（挿入あり）
			this.tmpCmtgyoInsFlg = FLG_ARI;
		}
		
		// (3) コメントの取得処理
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoIns][(3) コメントの取得処理]");
			
			// コメント取得
			JBSbatCommonDBInterface dbChuHenMap = getChushkHenshuInfo(inMap);
			
			// (4) コメントの加工処理
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setGyoIns][(4) コメントの加工処理]");
			
			// 共通部品「請求収納業務共通部品」の埋め込み文字置換メソッドを呼び出す。
			String chuHenPatternCd 	= dbChuHenMap.getString(JBSbatCH_M_CHUSHK_HENSHU.CHUSHK_HENSHU_PATTERN_CD);	// 注釈編集．編集パターン
			String sikyNyoComment 	= dbChuHenMap.getString(JBSbatCH_M_CHUSHK_HENSHU.SIKY_NYO_COMMENT);			// 注釈編集．請求内容コメント
			String seikyYm 			= inMap.getString(JBSbatCHIFM054.SEIKY_YM);									// 入力．請求年月
			String svcKeiNo 		= inMap.getString(JBSbatCHIFM054.SVC_KEI_NO);								// 入力．サービス契約番号
			String useStaYmd 		= inMap.getString(JBSbatCHIFM054.USE_STAYMD);								// 入力．利用開始年月日
			String useEndYmd 		= inMap.getString(JBSbatCHIFM054.USE_ENDYMD);								// 入力．利用終了年月日
			
			sikyNyoComment = this.chBusinessUtil.ckanUmeMoji(chuHenPatternCd, seikyYm, svcKeiNo, useStaYmd, useEndYmd, sikyNyoComment);
			
			// 退避．コメント　←　置換後文字列
			this.tmpComment = sikyNyoComment;
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][setGyoIns]");
		return;
	}
	
	/**
	 * 注釈編集スキーマより、注釈編集情報を取得する。
	 * @param inMap 入力電文
	 * @return JBSbatCommonDBInterface 注釈編集情報
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private JBSbatCommonDBInterface getChushkHenshuInfo(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getChushkHenshuInfo]");
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		paramList.setValue(super.systemCode);							// システムコード
		paramList.setValue(inMap.getString(JBSbatCHIFM054.PRC_GRP_CD));	// 料金グループコード
		paramList.setValue(inMap.getString(JBSbatCHIFM054.PCRS_CD));	// 料金コースコード
		paramList.setValue(inMap.getString(JBSbatCHIFM054.PRC_SVC_CD));	// 料金サービスコード
		paramList.setValue(inMap.getString(JBSbatCHIFM054.PRC_KMK_CD));	// 料金項目コード
		paramList.setValue(super.opeDate);								// 注釈編集適用開始年月日
		paramList.setValue(super.opeDate);								// 注釈編集適用終了年月日

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getChushkHenshuInfo][paramList=" + paramList.getList().toString() + "]");
		
		// SQL実行
		executeCH_M_CHUSHK_HENSHU_CH_SELECT_001(paramList.getList().toArray());
		JBSbatCommonDBInterface dbMap = db_CH_M_CHUSHK_HENSHU.selectNext();
		
		// 取得できなかった場合
		if(null == dbMap)
		{
			// ログ出力（【最重要】ＤＢ未存在エラー）
			String[] msgParam = new String[]
			{ JBSbatCH_M_CHUSHK_HENSHU.TABLE_NAME, paramList.getList().toString() };
			throw new JBSbatBusinessException(JPCBatchMessageConstant.ECHB0270CH, msgParam);
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getChushkHenshuInfo]");
		return dbMap;
	}
	
	/**
	 * データ出力処理を行います。
	 * 
	 * @param inMap　入力電文
	 * @param dbMap 料金項目出力名称情報
	 * @param outputInItem　出力情報
	 * @throws Exception
	 */
	private void makeOutputInfo(JBSbatServiceInterfaceMap inMap, JBSbatCommonDBInterface dbMap, JBSbatOutputItem outputInItem) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeOutputInfo]");
		
		// (1) 表示順枝番初期化
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeOutputInfo][(1) 表示順枝番初期化]");
		int dspJunSeq = 0;
		
		// (2) 空行データ出力
		
		// 退避．空行挿入フラグ ＝ "1"（あり） の場合
		if(FLG_ARI.equals(this.tmpKugyoInsFlg))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeOutputInfo][(2) 空行データ出力]");
			this.makeKugyoInfo(inMap, dbMap, dspJunSeq, outputInItem);
			
			// 退避．表示順枝番++
			dspJunSeq++;
		}
		
		// (2.5) 料金内訳名称追加行データ出力
		
		// 退避．料金内訳名称追加行挿入フラグ ＝ "1"（あり） の場合
		if(FLG_ARI.equals(this.tmpPrcKmkUcwkNameInsFlg))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeOutputInfo][(2) 料金内訳名称追加行データ出力]");
			this.makeDtlInsInfo(inMap, dbMap, dspJunSeq, outputInItem);
			
			// 退避．表示順枝番++
			dspJunSeq++;
		}
		
		// (3) 明細データ出力
		
		// 退避．退避．行編集フラグ ＝ "1"（あり） の場合
		if(FLG_ARI.equals(this.tmpGyoEditFlg))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeOutputInfo][(3) 明細データ出力]");
			this.makeDtlInfo(inMap, dbMap, dspJunSeq, outputInItem);
			
			// 退避．表示順枝番++
			dspJunSeq++;
		}
		
		// (4) コメント行データ出力
		
		// 退避．コメント行挿入フラグ ＝ "1"（あり） の場合
		if(FLG_ARI.equals(this.tmpCmtgyoInsFlg))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeOutputInfo][(4) コメント行データ出力]");
			this.makeCommentInfo(inMap, dbMap, DSP_JUN_LAST, outputInItem);
		}

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeOutputInfo]");
		return;
	}
	
	/**
	 * 請求内訳編集データ出力処理を行います。（空行）
	 * @param inMap　入力電文
	 * @param dbMap 料金項目出力名称情報
	 * @param dspJunSeq　表示順枝番
	 * @param outputInItem　出力情報
	 * @throws Exception
	 */
	private void makeKugyoInfo(JBSbatServiceInterfaceMap inMap, JBSbatCommonDBInterface dbMap, int dspJunSeq, JBSbatOutputItem outputInItem) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeKugyoInfo]");
		
		// 請求内訳編集データ
		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();

		// 同封コード
		outMap.set(JBSbatCHIFM056.DOFU_CD, 				inMap.get(JBSbatCHIFM054.DOFU_CD));
		
		// 請求契約番号
		outMap.set(JBSbatCHIFM056.SEIKY_KEI_NO, 		inMap.get(JBSbatCHIFM054.SEIKY_KEI_NO));
		
		// 請求番号
		outMap.set(JBSbatCHIFM056.SEIKY_NO, 			inMap.get(JBSbatCHIFM054.SEIKY_NO));
		
		// 支払方法コード
		outMap.set(JBSbatCHIFM056.PAYWAY_CD, 			inMap.get(JBSbatCHIFM054.PAYWAY_CD));
		
		// 請求年月
		outMap.set(JBSbatCHIFM056.SEIKY_YM, 			inMap.get(JBSbatCHIFM054.SEIKY_YM));
		
		// 種類
		outMap.set(JBSbatCHIFM056.TYPE, 				getType(dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.DSP_JUN)));
		
		// 合算請求年月
		outMap.set(JBSbatCHIFM056.GSAN_SEIKY_YM, 		inMap.get(JBSbatCHIFM054.GSAN_SEIKY_YM));
		
		// 郵便番号
		outMap.set(JBSbatCHIFM056.SOHUS_PCD, 			inMap.get(JBSbatCHIFM054.SOHUS_PCD));
		
		// マンション区分
		outMap.set(JBSbatCHIFM056.MANSION_KBN, 			getMansionKbn(inMap.getString(JBSbatCHIFM054.PRC_GRP_CD), inMap.getString(JBSbatCHIFM054.SEIRI_NO), inMap.getString(JBSbatCHIFM054.GK_DTL_FLG)));
		
		// 整理番号
		outMap.set(JBSbatCHIFM056.SEIRI_NO, 			getSeiriNo(inMap));
		
		// サービス契約番号
		outMap.set(JBSbatCHIFM056.SVC_KEI_NO,		 	inMap.get(JBSbatCHIFM054.SVC_KEI_NO));
		
		// 部屋番号
		outMap.set(JBSbatCHIFM056.ROOM_NO,		 		this.tmpEditAreaList.get(13));
		
		// 表示順
		outMap.set(JBSbatCHIFM056.DSP_JUN, 				dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.DSP_JUN));
		
		// 表示順枝番
		outMap.set(JBSbatCHIFM056.DSP_JUN_SEQ, 			dspJunSeq);
		
		// 空行フラグ
		outMap.set(JBSbatCHIFM056.EMP_FLG, 				JACStrConst.EMP_FLG_Y);
		
		// 合計明細フラグ
		outMap.set(JBSbatCHIFM056.GK_DTL_FLG, 			inMap.get(JBSbatCHIFM054.GK_DTL_FLG));
		
		// ＮＯ欄
		outMap.set(JBSbatCHIFM056.NO_RAN, 				JACStrConst.KARA_MOJI);
		
		// 料金コード欄
		outMap.set(JBSbatCHIFM056.PRC_CD_RAN, 			JACStrConst.KARA_MOJI);
		
		// 料金名称欄
		outMap.set(JBSbatCHIFM056.PRC_NM_RAN, 			JACStrConst.KARA_MOJI);
		
		// 税区分欄
		outMap.set(JBSbatCHIFM056.TAXAREA_RAN, 			JACStrConst.KARA_MOJI);
		
		// 金額欄
		outMap.set(JBSbatCHIFM056.AMNT_RAN, 			ZERO_AMNT);
		
		// 内訳金額欄
		outMap.set(JBSbatCHIFM056.UCWK_AMNT_RAN, 		ZERO_AMNT);
		
		// 編集金額欄
		outMap.set(JBSbatCHIFM056.HENSHU_AMNT_RAN,		ZERO_AMNT);
		
		// 編集内訳金額欄
		outMap.set(JBSbatCHIFM056.HENSHU_UCWK_AMNT_RAN, ZERO_AMNT);
		
		// 利用期間欄
		outMap.set(JBSbatCHIFM056.USE_PRD_RAN, 			JACStrConst.KARA_MOJI);
		
		// サービス詳細識別番号
		outMap.set(JBSbatCHIFM056.SVC_DTL_SKBT_NO, 		inMap.get(JBSbatCHIFM054.SVC_DTL_SKBT_NO));
		
		// 請求内訳番号
		outMap.set(JBSbatCHIFM056.SEIKY_UCWK_NO, 		inMap.get(JBSbatCHIFM054.SEIKY_UCWK_NO));
		
		// 料金グループコード
		outMap.set(JBSbatCHIFM056.PRC_GRP_CD,			inMap.get(JBSbatCHIFM054.PRC_GRP_CD));
		
		// 料金コースコード
		outMap.set(JBSbatCHIFM056.PCRS_CD,				inMap.get(JBSbatCHIFM054.PCRS_CD));
		
		// 料金サービスコード
		outMap.set(JBSbatCHIFM056.PRC_SVC_CD,			inMap.get(JBSbatCHIFM054.PRC_SVC_CD));
		
		// 料金項目コード
		outMap.set(JBSbatCHIFM056.PRC_KMK_CD,			inMap.get(JBSbatCHIFM056.PRC_KMK_CD));
		
		// ソート用サービス契約番号
		outMap.set(JBSbatCHIFM056.SORT_SVC_KEI_NO,		getSortSvcKeiNo(dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.DSP_JUN), inMap.getString(JBSbatCHIFM054.SVC_KEI_NO)));
		
		// 出力フラグ設定
		outMap.setOutFlg(true);
		
		// 出力処理
		outputInItem.addOutMapList(outMap);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeKugyoInfo][outputItem = " + outMap.getMap().toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeKugyoInfo]");
		return;
	}
	
	/**
	 * 請求内訳編集データ出力処理を行います。（コメント）
	 * @param inMap　入力電文
	 * @param dbMap 料金項目出力名称情報
	 * @param dspJunSeq　表示順枝番
	 * @param outputInItem　出力情報
	 * @throws Exception
	 */
	private void makeCommentInfo(JBSbatServiceInterfaceMap inMap, JBSbatCommonDBInterface dbMap, int dspJunSeq, JBSbatOutputItem outputInItem) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeCommentInfo]");
		
		// 請求内訳編集データ
		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();

		// 60バイトになるよう切り捨て
		
		// 桁あふれチェック
		String prcNmRan = JCHUtilCommon.getBcutStr(this.tmpComment, BYTE_SIZE_PRC_NM_RAN);
		
		// 同封コード
		outMap.set(JBSbatCHIFM056.DOFU_CD, 				inMap.get(JBSbatCHIFM054.DOFU_CD));
		
		// 請求契約番号
		outMap.set(JBSbatCHIFM056.SEIKY_KEI_NO, 		inMap.get(JBSbatCHIFM054.SEIKY_KEI_NO));
		
		// 請求番号
		outMap.set(JBSbatCHIFM056.SEIKY_NO, 			inMap.get(JBSbatCHIFM054.SEIKY_NO));
		
		// 支払方法コード
		outMap.set(JBSbatCHIFM056.PAYWAY_CD, 			inMap.get(JBSbatCHIFM054.PAYWAY_CD));
		
		// 請求年月
		outMap.set(JBSbatCHIFM056.SEIKY_YM, 			inMap.get(JBSbatCHIFM054.SEIKY_YM));
		
		// 種類
		outMap.set(JBSbatCHIFM056.TYPE, 				getType(dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.DSP_JUN)));
		
		// 合算請求年月
		outMap.set(JBSbatCHIFM056.GSAN_SEIKY_YM, 		inMap.get(JBSbatCHIFM054.GSAN_SEIKY_YM));
		
		// 郵便番号
		outMap.set(JBSbatCHIFM056.SOHUS_PCD, 			inMap.get(JBSbatCHIFM054.SOHUS_PCD));
		
		// マンション区分
		outMap.set(JBSbatCHIFM056.MANSION_KBN, 			getMansionKbn(inMap.getString(JBSbatCHIFM054.PRC_GRP_CD), inMap.getString(JBSbatCHIFM054.SEIRI_NO), inMap.getString(JBSbatCHIFM054.GK_DTL_FLG)));
		
		// 整理番号
		outMap.set(JBSbatCHIFM056.SEIRI_NO, 			getSeiriNo(inMap));
		
		// サービス契約番号
		outMap.set(JBSbatCHIFM056.SVC_KEI_NO,		 	inMap.get(JBSbatCHIFM054.SVC_KEI_NO));
		
		// 部屋番号
		outMap.set(JBSbatCHIFM056.ROOM_NO,		 		this.tmpEditAreaList.get(13));
		
		// 表示順
		outMap.set(JBSbatCHIFM056.DSP_JUN, 				JPCEditString.fillZero(String.valueOf(dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.DSP_JUN)), DSP_JUN_LENGTH, false));
		
		// 表示順枝番
		outMap.set(JBSbatCHIFM056.DSP_JUN_SEQ, 			dspJunSeq);
		
		// 空行フラグ
		outMap.set(JBSbatCHIFM056.EMP_FLG, 				JACStrConst.EMP_FLG_N);
		
		// 合計明細フラグ
		outMap.set(JBSbatCHIFM056.GK_DTL_FLG, 			inMap.get(JBSbatCHIFM054.GK_DTL_FLG));
		
		// ＮＯ欄
		outMap.set(JBSbatCHIFM056.NO_RAN, 				JACStrConst.KARA_MOJI);
		
		// 料金コード欄
		outMap.set(JBSbatCHIFM056.PRC_CD_RAN, 			JACStrConst.KARA_MOJI);
		
		// 料金名称欄
		outMap.set(JBSbatCHIFM056.PRC_NM_RAN, 			prcNmRan);
		
		// 税区分欄
		outMap.set(JBSbatCHIFM056.TAXAREA_RAN, 			JACStrConst.KARA_MOJI);
		
		// 金額欄
		outMap.set(JBSbatCHIFM056.AMNT_RAN, 			ZERO_AMNT);
		
		// 内訳金額欄
		outMap.set(JBSbatCHIFM056.UCWK_AMNT_RAN, 		ZERO_AMNT);
		
		// 編集金額欄
		outMap.set(JBSbatCHIFM056.HENSHU_AMNT_RAN,		ZERO_AMNT);
		
		// 編集内訳金額欄
		outMap.set(JBSbatCHIFM056.HENSHU_UCWK_AMNT_RAN, ZERO_AMNT);
		
		// 利用期間欄
		outMap.set(JBSbatCHIFM056.USE_PRD_RAN, 			JACStrConst.KARA_MOJI);
		
		// サービス詳細識別番号
		outMap.set(JBSbatCHIFM056.SVC_DTL_SKBT_NO, 		inMap.get(JBSbatCHIFM054.SVC_DTL_SKBT_NO));
		
		// 請求内訳番号
		outMap.set(JBSbatCHIFM056.SEIKY_UCWK_NO,		inMap.get(JBSbatCHIFM054.SEIKY_UCWK_NO));
		
		// 料金グループコード
		outMap.set(JBSbatCHIFM056.PRC_GRP_CD,			inMap.get(JBSbatCHIFM054.PRC_GRP_CD));
		
		// 料金コースコード
		outMap.set(JBSbatCHIFM056.PCRS_CD,				inMap.get(JBSbatCHIFM054.PCRS_CD));
		
		// 料金サービスコード
		outMap.set(JBSbatCHIFM056.PRC_SVC_CD,			inMap.get(JBSbatCHIFM054.PRC_SVC_CD));
		
		// 料金項目コード
		outMap.set(JBSbatCHIFM056.PRC_KMK_CD,			inMap.get(JBSbatCHIFM056.PRC_KMK_CD));
		
		// ソート用サービス契約番号
		outMap.set(JBSbatCHIFM056.SORT_SVC_KEI_NO,		getSortSvcKeiNo(dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.DSP_JUN), inMap.getString(JBSbatCHIFM054.SVC_KEI_NO)));
		
		// 出力フラグ設定
		outMap.setOutFlg(true);
		
		// 出力処理
		outputInItem.addOutMapList(outMap);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeCommentInfo][outputItem = " + outMap.getMap().toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeCommentInfo]");
		return;
	}
	
	/**
	 * 料金内訳名称追加行編集データ出力処理を行います。（明細）
	 * @param inMap　入力電文
	 * @param dbMap 料金項目出力名称情報
	 * @param dspJunSeq　表示順枝番
	 * @param outputInItem　出力情報
	 * @throws Exception
	 */
	private void makeDtlInsInfo(JBSbatServiceInterfaceMap inMap, JBSbatCommonDBInterface dbMap, int dspJunSeq, JBSbatOutputItem outputInItem) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeDtlInfo]");
		
		// 請求内訳編集データ
		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();

		// ＮＯ欄
		String noRan = makeStr(this.tmpEditAreaList.get(4), this.tmpEditAreaList.get(5));
		
		// 料金名称欄
		String prcNmRan = makeStr(this.tmpEditAreaList.get(3), this.tmpEditAreaList.get(12));
		// 桁あふれチェック
		
		// 60バイトになるよう切り捨て
		prcNmRan = JCHUtilCommon.getBcutStr(prcNmRan, BYTE_SIZE_PRC_NM_RAN);
		
		// 同封コード
		outMap.set(JBSbatCHIFM056.DOFU_CD, 				inMap.get(JBSbatCHIFM054.DOFU_CD));
		
		// 請求契約番号
		outMap.set(JBSbatCHIFM056.SEIKY_KEI_NO, 		inMap.get(JBSbatCHIFM054.SEIKY_KEI_NO));
		
		// 請求番号
		outMap.set(JBSbatCHIFM056.SEIKY_NO, 			inMap.get(JBSbatCHIFM054.SEIKY_NO));
		
		// 支払方法コード
		outMap.set(JBSbatCHIFM056.PAYWAY_CD, 			inMap.get(JBSbatCHIFM054.PAYWAY_CD));
		
		// 請求年月
		outMap.set(JBSbatCHIFM056.SEIKY_YM, 			inMap.get(JBSbatCHIFM054.SEIKY_YM));
		
		// 種類
		outMap.set(JBSbatCHIFM056.TYPE, 				getType(dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.DSP_JUN)));
		
		// 合算請求年月
		outMap.set(JBSbatCHIFM056.GSAN_SEIKY_YM, 		inMap.get(JBSbatCHIFM054.GSAN_SEIKY_YM));
		
		// 郵便番号
		outMap.set(JBSbatCHIFM056.SOHUS_PCD, 			inMap.get(JBSbatCHIFM054.SOHUS_PCD));
		
		// マンション区分
		outMap.set(JBSbatCHIFM056.MANSION_KBN, 			getMansionKbn(inMap.getString(JBSbatCHIFM054.PRC_GRP_CD), inMap.getString(JBSbatCHIFM054.SEIRI_NO), inMap.getString(JBSbatCHIFM054.GK_DTL_FLG)));
		
		// 整理番号
		outMap.set(JBSbatCHIFM056.SEIRI_NO, 			getSeiriNo(outMap));
		
		// サービス契約番号
		outMap.set(JBSbatCHIFM056.SVC_KEI_NO,		 	inMap.get(JBSbatCHIFM054.SVC_KEI_NO));
		
		// 部屋番号
		outMap.set(JBSbatCHIFM056.ROOM_NO,		 		this.tmpEditAreaList.get(13));
		
		// 表示順
		outMap.set(JBSbatCHIFM056.DSP_JUN, 				JPCEditString.fillZero(String.valueOf(dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.DSP_JUN)), DSP_JUN_LENGTH, false));
		
		// 表示順枝番
		outMap.set(JBSbatCHIFM056.DSP_JUN_SEQ, 			dspJunSeq);
		
		// 空行フラグ
		outMap.set(JBSbatCHIFM056.EMP_FLG, 				JACStrConst.EMP_FLG_N);
		
		// 合計明細フラグ
		outMap.set(JBSbatCHIFM056.GK_DTL_FLG, 			inMap.get(JBSbatCHIFM054.GK_DTL_FLG));
		
		// ＮＯ欄
		outMap.set(JBSbatCHIFM056.NO_RAN, 				noRan);
		
		// 料金コード欄
		outMap.set(JBSbatCHIFM056.PRC_CD_RAN, 			this.tmpEditAreaList.get(10));
		
		// 料金名称欄
		outMap.set(JBSbatCHIFM056.PRC_NM_RAN, 			prcNmRan);
		
		// 税区分欄
		outMap.set(JBSbatCHIFM056.TAXAREA_RAN, 			this.tmpEditAreaList.get(7));
		
		// 金額欄
		outMap.set(JBSbatCHIFM056.AMNT_RAN, 			this.tmpAmntAreaList.get(0));
		
		// 内訳金額欄
		outMap.set(JBSbatCHIFM056.UCWK_AMNT_RAN, 		this.tmpAmntAreaList.get(1));
		
		// 編集金額欄
		outMap.set(JBSbatCHIFM056.HENSHU_AMNT_RAN,		this.tmpEditAmntAreaList.get(0));
		
		// 編集内訳金額欄
		outMap.set(JBSbatCHIFM056.HENSHU_UCWK_AMNT_RAN, this.tmpEditAmntAreaList.get(1));
		
		// 利用期間欄
		outMap.set(JBSbatCHIFM056.USE_PRD_RAN, 			this.tmpEditAreaList.get(6));
		
		// サービス詳細識別番号
		outMap.set(JBSbatCHIFM056.SVC_DTL_SKBT_NO, 		inMap.get(JBSbatCHIFM054.SVC_DTL_SKBT_NO));
		
		// 請求内訳番号
		outMap.set(JBSbatCHIFM056.SEIKY_UCWK_NO,		inMap.get(JBSbatCHIFM054.SEIKY_UCWK_NO));
		
		// 料金グループコード
		outMap.set(JBSbatCHIFM056.PRC_GRP_CD,			inMap.get(JBSbatCHIFM054.PRC_GRP_CD));
		
		// 料金コースコード
		outMap.set(JBSbatCHIFM056.PCRS_CD,				inMap.get(JBSbatCHIFM054.PCRS_CD));
		
		// 料金サービスコード
		outMap.set(JBSbatCHIFM056.PRC_SVC_CD,			inMap.get(JBSbatCHIFM054.PRC_SVC_CD));
		
		// 料金項目コード
		outMap.set(JBSbatCHIFM056.PRC_KMK_CD,			inMap.get(JBSbatCHIFM056.PRC_KMK_CD));
		
		// ソート用サービス契約番号
		outMap.set(JBSbatCHIFM056.SORT_SVC_KEI_NO,		getSortSvcKeiNo(dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.DSP_JUN), inMap.getString(JBSbatCHIFM054.SVC_KEI_NO)));
		
		// 出力フラグ設定
		outMap.setOutFlg(true);
		
		// 出力処理
		outputInItem.addOutMapList(outMap);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeDtlInfo][outputItem = " + outMap.getMap().toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeDtlInfo]");
		return;
	}
	
	/**
	 * 請求内訳編集データ出力処理を行います。（明細）
	 * @param inMap　入力電文
	 * @param dbMap 料金項目出力名称情報
	 * @param dspJunSeq　表示順枝番
	 * @param outputInItem　出力情報
	 * @throws Exception
	 */
	private void makeDtlInfo(JBSbatServiceInterfaceMap inMap, JBSbatCommonDBInterface dbMap, int dspJunSeq, JBSbatOutputItem outputInItem) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeDtlInfo]");
		
		// 請求内訳編集データ
		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();

		// ＮＯ欄
		String noRan = makeStr(this.tmpEditAreaList.get(4), this.tmpEditAreaList.get(5));
		
		// 料金名称欄
		// ANK-4401-00-00 MOD START
//		String prcNmRan = makeStr(this.tmpEditAreaList.get(3), this.tmpEditAreaList.get(0)
//							, this.tmpEditAreaList.get(2), this.tmpEditAreaList.get(1)
//							, this.tmpEditAreaList.get(11), this.tmpEditAreaList.get(8)
//							, this.tmpEditAreaList.get(9));
		String prcNmRan = makeStr(this.tmpEditAreaList.get(3), this.tmpEditAreaList.get(0)
				, this.tmpEditAreaList.get(2), this.tmpEditAreaList.get(1)
				, this.tmpEditAreaList.get(11), this.tmpEditAreaList.get(8));
		// ANK-4401-00-00 MOD END
		// 桁あふれチェック
		
		// 60バイトになるよう切り捨て
		prcNmRan = JCHUtilCommon.getBcutStr(prcNmRan, BYTE_SIZE_PRC_NM_RAN);
		
		// 同封コード
		outMap.set(JBSbatCHIFM056.DOFU_CD, 				inMap.get(JBSbatCHIFM054.DOFU_CD));
		
		// 請求契約番号
		outMap.set(JBSbatCHIFM056.SEIKY_KEI_NO, 		inMap.get(JBSbatCHIFM054.SEIKY_KEI_NO));
		
		// 請求番号
		outMap.set(JBSbatCHIFM056.SEIKY_NO, 			inMap.get(JBSbatCHIFM054.SEIKY_NO));
		
		// 支払方法コード
		outMap.set(JBSbatCHIFM056.PAYWAY_CD, 			inMap.get(JBSbatCHIFM054.PAYWAY_CD));
		
		// 請求年月
		outMap.set(JBSbatCHIFM056.SEIKY_YM, 			inMap.get(JBSbatCHIFM054.SEIKY_YM));
		
		// 種類
		outMap.set(JBSbatCHIFM056.TYPE, 				getType(dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.DSP_JUN)));
		
		// 合算請求年月
		outMap.set(JBSbatCHIFM056.GSAN_SEIKY_YM, 		inMap.get(JBSbatCHIFM054.GSAN_SEIKY_YM));
		
		// 郵便番号
		outMap.set(JBSbatCHIFM056.SOHUS_PCD, 			inMap.get(JBSbatCHIFM054.SOHUS_PCD));
		
		// マンション区分
		outMap.set(JBSbatCHIFM056.MANSION_KBN, 			getMansionKbn(inMap.getString(JBSbatCHIFM054.PRC_GRP_CD), inMap.getString(JBSbatCHIFM054.SEIRI_NO), inMap.getString(JBSbatCHIFM054.GK_DTL_FLG)));
		
		// 整理番号
		outMap.set(JBSbatCHIFM056.SEIRI_NO, 			getSeiriNo(outMap));
		
		// サービス契約番号
		outMap.set(JBSbatCHIFM056.SVC_KEI_NO,		 	inMap.get(JBSbatCHIFM054.SVC_KEI_NO));
		
		// 部屋番号
		outMap.set(JBSbatCHIFM056.ROOM_NO,		 		this.tmpEditAreaList.get(13));
		
		// 表示順
		outMap.set(JBSbatCHIFM056.DSP_JUN, 				JPCEditString.fillZero(String.valueOf(dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.DSP_JUN)), DSP_JUN_LENGTH, false));
		
		// 表示順枝番
		outMap.set(JBSbatCHIFM056.DSP_JUN_SEQ, 			dspJunSeq);
		
		// 空行フラグ
		outMap.set(JBSbatCHIFM056.EMP_FLG, 				JACStrConst.EMP_FLG_N);
		
		// 合計明細フラグ
		outMap.set(JBSbatCHIFM056.GK_DTL_FLG, 			inMap.get(JBSbatCHIFM054.GK_DTL_FLG));
		
		// ＮＯ欄
		outMap.set(JBSbatCHIFM056.NO_RAN, 				noRan);
		
		// 料金コード欄
		outMap.set(JBSbatCHIFM056.PRC_CD_RAN, 			this.tmpEditAreaList.get(10));
		
		// 料金名称欄
		outMap.set(JBSbatCHIFM056.PRC_NM_RAN, 			prcNmRan);
		
		// 税区分欄
		outMap.set(JBSbatCHIFM056.TAXAREA_RAN, 			this.tmpEditAreaList.get(7));
		
		// 金額欄
		outMap.set(JBSbatCHIFM056.AMNT_RAN, 			this.tmpAmntAreaList.get(0));
		
		// 内訳金額欄
		outMap.set(JBSbatCHIFM056.UCWK_AMNT_RAN, 		this.tmpAmntAreaList.get(1));
		
		// 編集金額欄
		outMap.set(JBSbatCHIFM056.HENSHU_AMNT_RAN,		this.tmpEditAmntAreaList.get(0));
		
		// 編集内訳金額欄
		outMap.set(JBSbatCHIFM056.HENSHU_UCWK_AMNT_RAN, this.tmpEditAmntAreaList.get(1));
		
		// 利用期間欄
		outMap.set(JBSbatCHIFM056.USE_PRD_RAN, 			this.tmpEditAreaList.get(6));
		
		// サービス詳細識別番号
		outMap.set(JBSbatCHIFM056.SVC_DTL_SKBT_NO, 		inMap.get(JBSbatCHIFM054.SVC_DTL_SKBT_NO));
		
		// 請求内訳番号
		outMap.set(JBSbatCHIFM056.SEIKY_UCWK_NO,		inMap.get(JBSbatCHIFM054.SEIKY_UCWK_NO));
		
		// 料金グループコード
		outMap.set(JBSbatCHIFM056.PRC_GRP_CD,			inMap.get(JBSbatCHIFM054.PRC_GRP_CD));
		
		// 料金コースコード
		outMap.set(JBSbatCHIFM056.PCRS_CD,				inMap.get(JBSbatCHIFM054.PCRS_CD));
		
		// 料金サービスコード
		outMap.set(JBSbatCHIFM056.PRC_SVC_CD,			inMap.get(JBSbatCHIFM054.PRC_SVC_CD));
		
		// 料金項目コード
		outMap.set(JBSbatCHIFM056.PRC_KMK_CD,			inMap.get(JBSbatCHIFM056.PRC_KMK_CD));
		
		// ソート用サービス契約番号
		outMap.set(JBSbatCHIFM056.SORT_SVC_KEI_NO,		getSortSvcKeiNo(dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.DSP_JUN), inMap.getString(JBSbatCHIFM054.SVC_KEI_NO)));
		
		// 出力フラグ設定
		outMap.setOutFlg(true);
		
		// 出力処理
		outputInItem.addOutMapList(outMap);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeDtlInfo][outputItem = " + outMap.getMap().toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeDtlInfo]");
		return;
	}
	
	/**
	 * 空の要素を設定したリストを返却します。
	 * 
	 * @param fileSize ファイルのサイズ
	 * @return ArrayList<String> 設定したリスト
	 * @throws Exception
	 */
	private ArrayList<String> getKaraList(int fileSize) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getKaraList]");
		ArrayList<String> list = new ArrayList<String>();
		for(int i = 0; i < fileSize; i++)
		{
			list.add(JACStrConst.KARA_MOJI);
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getKaraList]");
		return list;
	}
	
	
	/**
	 * 料金グルーの値を元に、マンション区分の値を返却します。
	 * @param prcGrpCd 料金グループ
	 * @param seiriNo 整理番号
	 * @param gkDtlFlg 合計明細フラグ
	 * @return 合計明細フラグが"1"（合計）のときは"0"（マンションオーナー以外）
	 * 			合計明細フラグが"0"（明細）で、料金グループが"99"（マンションオーナー契約）かつ整理番号が空以外の時、"1"（マンションオーナー）
	 * 			それ以外の時は"0"（マンションオーナー以外）
	 */
	private String getMansionKbn(String prcGrpCd, String seiriNo, String gkDtlFlg)
	{
		// 合計明細フラグが"1"（合計）の時は常に"0"（マンションオーナー以外）
		if (JACStrConst.GK_DTL_FLG_GOKEI.equals(gkDtlFlg))
		{
			return "0";
		}
		
		// 入力．料金グループコード＝"99"（マンションオーナー契約）かつ、入力．整理番号が空ではない場合、"1"（マンションオーナー）
		else if(MANS_ORNER_CD.equals(prcGrpCd) && !seiriNo.trim().equals(JACStrConst.KARA_MOJI))
		{
			return "1";
		}
		
		// その他の場合は"0"（マンションオーナー以外）
		else
		{
			return "0";
		}
	}
	
	/**
	 * 表示順の値を元に、種類の値を返却します。
	 * @param dspJun 表示順
	 * @return 表示順の先頭１文字（ただし、値が３の時は２に変換して返却される）
	 */
	private String getType(String dspJun)
	{
		String work = JPCEditString.fillZero(String.valueOf(dspJun), DSP_JUN_LENGTH, false);
		work = work.substring(0, 1);
		if (work.equals(DSP_JUN_3))
		{
			work = DSP_JUN_2;
		}
		
		return work;
	}
	
	/**
	 * 整理番号の出力値を取得します。
	 * 表示順（種類）が"4"（発行手数料）の場合、空白
	 * その他の場合は整理番号を返却します。
	 * @param outMap 出力マップ（設定済の種類項目を取得）
	 * @return 表示順（種類）＝"4"の時、空白 その他の場合は整理番号
	 * @throws Exception
	 */
	private String getSeiriNo(JBSbatServiceInterfaceMap outMap) throws Exception
	{
		if (DSP_JUN_4.equals(outMap.get(JBSbatCHIFM056.TYPE)))
		{
			// 空文字
			return JACStrConst.SEIRI_NO_SP;
		}
		else
		{
			// 整理番号
			return this.tmpEditAreaList.get(14);
		}
	}
	
	/**
	 * ソート用サービス契約番号を取得します。
	 * @param dspJun 表示順
	 * @param svcKeiNo サービス契約番号
	 * @return ソート用サービス契約番号
	 */
	private String getSortSvcKeiNo(String dspJun, String svcKeiNo)
	{
		// 表示順（種類）が"2"（サービス明細）の場合のみ、サービス契約番号をソートキーとして設定
		String work = JPCEditString.fillZero(String.valueOf(dspJun), DSP_JUN_LENGTH, false);
		work = work.substring(0, 1);
		if (DSP_JUN_2.equals(work))
		{
			return svcKeiNo;
		}
				
		return JACStrConst.KARA_MOJI;
	}
	
	//v68.00.00 ANK-4475-00-00 Add Start
	/**
	 * SQLKEY(AC_SELECT_002)でDBアクセスを行います。<br>
	 * 料金サービス管理
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	業務パラメータID
	 *		 	コード適用開始年月日
	 *		 	コード適用終了年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZM_M_WORK_PARAM_KNRI_AC_SELECT_002(String opeDate) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(WORK_PARAM_ID);
		paramList.setValue(opeDate);
		paramList.setValue(opeDate);
		
		// DBアクセスを実行します
		db_ZM_M_WORK_PARAM_KNRI.selectBySqlDefine(paramList, ZM_M_WORK_PARAM_KNRI_CH_SELECT_002);
		//v68.00.00 ANK-4475-00-00 End Start
	}
	
	//ANK-4468-00-00 ADD START	
	/**
	 * SQLKEY(CH_SELECT_009)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	料金項目名称種別コード
	 *		 	料金グループコード
	 *		 	料金コースコード
	 *		 	料金サービスコード
	 *		 	料金項目コード
	 *		 	料金項目出力名称適用開始年月日
	 *		 	料金項目出力名称適用終了年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	// ANK-4427-10-00 MOD START
//	private void executeCH_M_PRC_KMK_OPUT_NM_CH_SELECT_005(Object[] param) throws Exception
	private void executeCH_M_PRC_KMK_OPUT_NM_CH_SELECT_009(Object[] param) throws Exception
	// ANK-4427-10-00 MOD END
	{
		// バイント変数のリストを生成します
		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());

		// ANK-4427-10-00 MOD START
		// DBアクセスを実行します
//		db_CH_M_PRC_KMK_OPUT_NM.selectBySqlDefine(paramList, CH_M_PRC_KMK_OPUT_NM_CH_SELECT_005);
		db_CH_M_PRC_KMK_OPUT_NM.selectBySqlDefine(paramList, CH_M_PRC_KMK_OPUT_NM_CH_SELECT_009);
		// ANK-4427-10-00 MOD END
	}
	
	/**
	 * 料金項目名称(シンプルプラン)を取得します。
	 * 
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void getPrcKmkNm() throws Exception
	{
		// 退避.料金項目名称マップを初期化する
		this.simplePrcKmkNm = JACStrConst.KARA_MOJI;
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getPrcKmkNm]");
		
		// 料金項目名称
		String rePrcKmkNm = JACStrConst.KARA_MOJI;
		

		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		// 検索条件設定
		paramList.setValue(JACStrConst.PRC_KMK_NM_SBT_CD_PRC_NM); 	// 料金項目名称種別コード
		paramList.setValue(JACStrConst.PRC_GRP_CD_NET_HOME);		// 料金グループコード
		paramList.setValue(JACStrConst.PCRS_CD_SP);					// 料金コースコード
		paramList.setValue(JACStrConst.PRC_SVC_CD_SP);				// 料金サービスコード
		paramList.setValue(JACStrConst.SIMPLE_PLAN_PRC_KMK_CD);		// 料金項目コード
		// ANK-4427-10-00 MOD START
//		paramList.setValue(super.opeDate); 							// 料金項目出力名称適用開始年月日
//		paramList.setValue(super.opeDate); 							// 料金項目出力名称適用終了年月日
		paramList.setValue(this.seikyYmEndDay); 					// 料金項目出力名称適用開始年月日
		paramList.setValue(this.seikyYmEndDay); 					// 料金項目出力名称適用終了年月日
		// ANK-4427-10-00 MOD END
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getPrcKmkNm][paramList=" + paramList.getList().toString() + "]");
	
		// ANK-4427-10-00 MOD START
		// SQL実行
//		executeCH_M_PRC_KMK_OPUT_NM_CH_SELECT_005(paramList.getList().toArray());
		executeCH_M_PRC_KMK_OPUT_NM_CH_SELECT_009(paramList.getList().toArray());
		// ANK-4427-10-00 MOD END
	
		// 結果を取得
		JBSbatCommonDBInterface dbMap = db_CH_M_PRC_KMK_OPUT_NM.selectNext();

		// 料金項目名称
		if(!JKKStringUtil.isNullEmpty(dbMap))
		{
			rePrcKmkNm = dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.PRC_KMK_NM);
			
			this.simplePrcKmkNm = rePrcKmkNm;
		}

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getPrcKmkNm]");
	}
	//ANK-4468-00-00 ADD END
	
//ANK-4543-00-00 ADD START
	/**
	 * SQLKEY(CH_SELECT_001)でDBアクセスを行います。<br>
	 * NTT卸契約
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_NTTORS_KEI_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());//請求年月の末日
		
		// DBアクセスを実行します
		db_KK_T_NTTORS_KEI.selectBySqlDefine(paramList, KK_T_NTTORS_KEI_CH_SELECT_001);
		
	}
	
	/**
	 * 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 executeKK_T_KAKINS_CH_SELECT_009(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		paramList.setValue(param[0].toString());//請求契約番号
		
		// DBアクセスを実行します
		db_KK_T_KAKINS.selectBySqlDefine(paramList, KK_T_KAKINS_CH_SELECT_009);
		
	}
	
	
	/**
	 * SQLKEY(CH_SELECT_001)でDBアクセスを行います。<br>
	 * NTT卸料金コース
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	NTT卸サービス種別
	 *		 	コード適用開始年月日
	 *		 	コード適用終了年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_M_NTTORS_PCRS_CH_SELECT_001(String NttorsSvcSbt, String opeDate) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(NttorsSvcSbt);                   // NTT卸サービス種別
		paramList.setValue(opeDate);						// NTT卸料金コース適用開始年月日
		paramList.setValue(opeDate);						// NTT卸料金コース適用終了年月日
		
		// DBアクセスを実行します
		db_KK_M_NTTORS_PCRS.selectBySqlDefine(paramList, KK_M_NTTORS_PCRS_CH_SELECT_001);
		
	}
	
	/**
	 * NTT卸契約スキーマより、NTT卸契約マップを作成する。
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void setNttOrsPrcKmkOputNmMap(String strSvcKeiNo , String seikyuEndD) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][setNttOrsPrcKmkOputNmMap]");
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		paramList.setValue(strSvcKeiNo);	 // サービス契約番号
		paramList.setValue(seikyuEndD);		 //請求年月の末日
		paramList.setValue(seikyuEndD);		 //請求年月の末日
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setNttOrsPrcKmkOputNmMap][paramList=" + paramList.getList().toString() + "]");
		
		// SQL実行
		executeKK_T_NTTORS_KEI_CH_SELECT_001(paramList.getList().toArray());
		JBSbatCommonDBInterface dbMap = db_KK_T_NTTORS_KEI.selectNext();
		
		this.tmpNttOrsPrcKmkOputNmMap = new ArrayList();
		
		// NTT卸契約情報を退避
		while(null != dbMap)
		{
			// 設定キー作成（NTT卸種別コード）
			String value = makeStr( dbMap.getString("NTTORS_SVC_SBT"));
			
			// 取得した情報をリストに設定
			this.tmpNttOrsPrcKmkOputNmMap.add(value);
			
			dbMap = db_KK_T_NTTORS_KEI.selectNext();			
		}
		assert this.tmpNttOrsPrcKmkOputNmMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][setNttOrsPrcKmkOputNmMap][tmpNttOrsPrcKmkOputNmMap = " + this.tmpNttOrsPrcKmkOputNmMap.toString() + "]") : true;
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][setNttOrsPrcKmkOputNmMap]");
		return;
	}
	
	/**
	 * 課金先スキーマより、サービス契約番号マップを作成する。
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void setKaKinsOputMap(String strSeikyKeiNo) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][setKaKinsOputMap]");
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		paramList.setValue(strSeikyKeiNo);	 // サービス契約番号
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setKaKinsOputMap][paramList=" + paramList.getList().toString() + "]");
		
		// SQL実行
		executeKK_T_KAKINS_CH_SELECT_009(paramList.getList().toArray());
		JBSbatCommonDBInterface dbMap = db_KK_T_KAKINS.selectNext();
		
		this.tmpKaKinsOputMap = new ArrayList();
		
		// 課金先情報を退避
		while(null != dbMap)
		{
			// 設定キー作成（サービス契約番号）
			String value = makeStr( dbMap.getString("SVC_KEI_NO"));
			
			// 取得した情報をリストに設定
			this.tmpKaKinsOputMap.add(value);
			
			dbMap = db_KK_T_KAKINS.selectNext();			
		}
		assert this.tmpKaKinsOputMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][setKaKinsOputMap][tmpKaKinsOputMap = " + this.tmpKaKinsOputMap.toString() + "]") : true;
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][setKaKinsOputMap]");
		return;
	}
	
	/**
     * 月末日取得処理 指定された年月の月末日を返却する。
     * <BR>
     * @param ym 年月
     * @return String 末日
     */
	public static String getEndOfMonth(String ym)
	{
		// 日付妥当性チェック
		if (!checkDate(ym, 6))
		{
			return "";
		}
		// 「次月の０日」を指定することによって、該当月の月末日を取得する。
		Calendar calendar = new GregorianCalendar(Integer.parseInt(ym.substring(0, 4)), Integer.parseInt(ym.substring(4, 6)), 0);
		// 変数lastに末日が格納される
		int last = calendar.get(Calendar.DATE);
		Integer.toString(last);
		String ymd = ym + last;
		return ymd;
	}
	
	/**
     * 日付妥当性チェック処理
     * <BR>
     * @param date yyyyMMddもしくはyyyyMM形式の日付
     * @param length チェック対象の日付の桁数
     * @return boolean
     */
	public static boolean checkDate(String date, int length)
	{
		// 引数チェック
		if (date == null || date.length() != length)
		{
			return false;
		}
		try
		{
			int yyyy = Integer.parseInt(date.substring(0, 4));
			int mm = Integer.parseInt(date.substring(4, 6));
			int dd = 1;
			if (length == 8)
			{
				dd = Integer.parseInt(date.substring(6, 8));
			}
			// 月は 0 から始まる。（0:１月 となる。）
			Calendar cl = new GregorianCalendar(yyyy, mm - 1, dd);
			// カレンダークラスにより、日付が調整されてしまっている場合は、エラーである。
			if ((cl.get(Calendar.YEAR) != yyyy)
					|| ((cl.get(Calendar.MONTH) + 1) != mm)
					|| (cl.get(Calendar.DATE) != dd))
			{
				return false;
			}
			else
			{
				return true;
			}
		}
		catch (Exception e)
		{
			return false;
		}
	}
//ANK-4543-00-00 ADD END
}
