/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom                        *
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKIdoInfFileSakseiHojinS
*	ソースファイル名	：JBSbatKKIdoInfFileSakseiHojinS.java
*	作成者				：富士通　
*	作成日				：2011年12月09日
*＜機能概要＞
*　異動情報ファイル作成＿異動情報の抽出2＿法人部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v2.00.00	2011/12/09  FJ)倉上		新規作成
*	v3.00.00	2012/05/17  FJ)藤本		巻@【ANK-0061-00-00】対応
*	v3.01.00	2012/08/10  FJ)藤本		【ST2-2012-0001503】住所部品の戻り値のNullチェック追加
*	v3.02.00	2012/09/24  FJ)藤本		【ST2-2012-0001714】運用日の前日を抽出するように修正
*	v3.03.00	2012/10/26  FJ)藤本		【ST1-2012-0000713】運用日で抽出するように修正
*	v4.00.00	2013/01/22  FJ)中作		【ST1-2013-0000172】障害対応
**********************************************************************/
package eo.business.service;

import java.io.IOException;

import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatKKIFM043;
import eo.business.util.table.JBSbatCK_T_CUST;
import eo.business.util.table.JBSbatCK_T_RRKS;
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
import eo.common.util.JZMAdOutputEdit;
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 JBSbatKKIdoInfFileSakseiHojinS extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(お客様)*/
	private static final String D_TBL_NAME_CK_T_CUST = "CK_T_CUST";

	/** SQL定義キー(KK_SELECT_010)*/
	private static final String CK_T_CUST_KK_SELECT_010 = "KK_SELECT_010";
	
	/** テーブルアクセスクラス(お客様)*/
	private JBSbatSQLAccess db_CK_T_CUST = null;

	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** 出力元 */
	private static final String JOB_ID = "EO20G0180J0";

	/** 局コード */
	private static final String KYOKU_CODE = "11";
	
	/** 空白*/
	private static final String SPACE = "";
	
	/** 料金コード*/
	private static final String RYOKIN_PLAN_CODE = "041";
	
	/** 電障コード（固定値）*/
	private static final String DENSYO_CODE = "9999999999";

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		
		// DBアクセスクラスを生成します
		db_CK_T_CUST = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CK_T_CUST);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		super.logPrint.printDebugLog("execute_START");
		
		// 出力共通電文を生成する。
		JBSbatOutputItem outputBean = new JBSbatOutputItem();
		
		// 入出力インターフェースオブジェクトを生成(異動情報結果ファイル用)
		JBSbatServiceInterfaceMap outmap = new JBSbatServiceInterfaceMap();
			
		// お客様（法人）情報を設定します。
		boolean result = setCustInfo(inMap, outmap);
		if (result)
		{
			// 初期検索で取得した異動情報を異動情報ファイル（etv１）ファイルに設定します。
			setIdoInfo(inMap, outmap);
			
			//出力フラグを設定
			outmap.setOutFlg(true);
			
			//出力共通電文に入出力インターフェースを設定する。
			outputBean.addOutMapList(outmap);
		}
		
		super.logPrint.printDebugLog("execute_END");
		
		return outputBean;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_CK_T_CUST.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 * SQLKEY(KK_SELECT_010)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	SYSID
	 *		 	バッチ運用日
	 *		 	SYSID
	 *		 	バッチ運用日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCK_T_CUST_KK_SELECT_010(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());

		// DBアクセスを実行します
		db_CK_T_CUST.selectBySqlDefine(paramList, CK_T_CUST_KK_SELECT_010);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * 異動情報ファイル（etv1）情報(法人)の設定<br>
	 * <p>
	 * @param inMap 初期検索情報
	 * @param outmap 入出力インターフェースオブジェクト
	 * @throws Exception 業務サービス内で発生した例外全般。
	 * @throws IOException 
	 */	
	private void setIdoInfo(JBSbatServiceInterfaceMap inMap, JBSbatServiceInterfaceMap outmap) throws Exception
	{
		// お客様ＩＤ ← 中間ファイル．サービス契約番号を設定。
		outmap.setString(JBSbatKKIFM043.SVC_KEI_NO, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM043.SVC_KEI_NO)));
		
		// 異動区分 ← 中間ファイル．異動区分を設定。
		outmap.setString(JBSbatKKIFM043.IDO_DIV, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM043.IDO_DIV)));
		
		// 局コード ← 固定値空白を設定。（”11”）
		outmap.setString(JBSbatKKIFM043.KYOKU_CD, KYOKU_CODE);
		
		// コース ← 空白を設定。
		outmap.setString(JBSbatKKIFM043.COURSE, SPACE);
		
		// ＳＴＢ台数 ← 空白を設定。
		outmap.setString(JBSbatKKIFM043.STB_CNT, SPACE);
		
		// 利用場所郵便番号 ← 中間ファイル．郵便番号を設定。
		outmap.setString(JBSbatKKIFM043.KAISEN_PLACE_PCD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM043.KAISEN_PLACE_PCD)));
		
		// 利用場所住所 ← 中間ファイル．利用場所住所を設定。
		outmap.setString(JBSbatKKIFM043.KAISEN_PLACE_AD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM043.KAISEN_PLACE_AD)));
		
		// 請求先郵便番号 ← 空白を設定。
		outmap.setString(JBSbatKKIFM043.SEIKYS_PCD, SPACE);
		
		// 請求先住所 ← 空白を設定。
		outmap.setString(JBSbatKKIFM043.SEIKYS_AD, SPACE);
		
		// 送付先名（カナ） ← 空白を設定。
		outmap.setString(JBSbatKKIFM043.SOHUS_NM_KANA, SPACE);
		
		// 送付先名１ ← 空白を設定。
		outmap.setString(JBSbatKKIFM043.SOHUS_NM1, SPACE);
		
		// 送付先名２ ← 空白を設定。
		outmap.setString(JBSbatKKIFM043.SOHUS_NM1, SPACE);
		
		// 送付先名３ ← 空白を設定。
		outmap.setString(JBSbatKKIFM043.SOHUS_NM2, SPACE);
		
		// 送付先電話番号 ← 空白を設定。
		outmap.setString(JBSbatKKIFM043.SOHUS_TELNO, SPACE);
		
		// 異動日 ← 空白を設定。
		outmap.setString(JBSbatKKIFM043.IDO_DAY, SPACE);
		
		// 料金プラン ← 固定値を設定。（”041”）
		outmap.setString(JBSbatKKIFM043.PPLAN, RYOKIN_PLAN_CODE);
		
		// 更新日 ← 空白（編集処理にてシステム日時を設定）
		outmap.setString(JBSbatKKIFM043.UPD_DAY, SPACE);
		
		// マンションコード ← 空白を設定。
		outmap.setString(JBSbatKKIFM043.MANSION_CD, SPACE);
		
		// 電障コード ← 固定値を設定（”9999999999”）
		outmap.setString(JBSbatKKIFM043.DENSHO_CD, DENSYO_CODE);
		
		// 案件番号 ← 空白を設定。
		outmap.setString(JBSbatKKIFM043.KOJIAK_NO, SPACE);
		
		// ケーブルガイド申込数 ← 空白を設定。
		outmap.setString(JBSbatKKIFM043.CABLE_GUIDE_MOSHIKOMI, SPACE);
		
		// 工事案件対象宅内機器情報を設定します。
		setKjakTgTkkikiInfo(outmap);
		
		// 編集用異動区分 ← 中間ファイル．編集用異動区分を設定。
		outmap.setString(JBSbatKKIFM043.HENSHU_IDO_DIV, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM043.HENSHU_IDO_DIV)));
		
		// 編集用進捗ステータス ← 中間ファイル．編集用進捗ステータスを設定。
		outmap.setString(JBSbatKKIFM043.HENSHU_PRG_STAT, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM043.HENSHU_PRG_STAT)));
		
		// 照査年月日 ← 中間ファイル．照査年月日を設定。
		outmap.setString(JBSbatKKIFM043.SHOSA_YMD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM043.SHOSA_YMD)));
		
		// サービス課金終了年月日 ← 中間ファイル．サービス課金終了年月日を設定。
		outmap.setString(JBSbatKKIFM043.SVC_CHRG_ENDYMD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM043.SVC_CHRG_ENDYMD)));
		
		// サービスキャンセル年月日 ← 中間ファイル．サービスキャンセル年月日を設定。
		outmap.setString(JBSbatKKIFM043.SVC_CANCEL_YMD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM043.SVC_CANCEL_YMD)));
		
		// 回復年月日 ← 中間ファイル．回復年月日を設定。
		outmap.setString(JBSbatKKIFM043.KAIHK_YMD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM043.KAIHK_YMD)));
		
		// サービス停止年月日 ← 中間ファイル．サービス停止年月日を設定。
		outmap.setString(JBSbatKKIFM043.SVC_STP_YMD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM043.SVC_STP_YMD)));
		
		// サービス停止解除年月日 ← 中間ファイル．サービス停止解除年月日を設定。
		outmap.setString(JBSbatKKIFM043.SVC_STP_RLS_YMD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM043.SVC_STP_RLS_YMD)));
		
		// 異動年月日時分秒 ← 中間ファイル．登録年月日時分秒を設定。
		outmap.setString(JBSbatKKIFM043.ADD_DTM, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM043.ADD_DTM)));
		
		// プラン開始年月日を設定。
		outmap.setString(JBSbatKKIFM043.PLAN_STAYMD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM043.PLAN_STAYMD)));
		
		// 申込明細番号 ←中間ファイル． 申込明細番号を設定。
		outmap.setString(JBSbatKKIFM043.MSKM_DTL_NO, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM043.MSKM_DTL_NO)));
		
		// 出力元 ← 固定値を設定（”EO20G0180J0”）を設定。
		outmap.setString(JBSbatKKIFM043.OPUT_MT, JOB_ID);
	}
	
	/**
	 * お客様情報の設定<br>
	 * <p>
	 * @param inMap 入力情報
	 * @param outmap 出力情報（お客様情報あり）
	 * @return true：お客様情報あり、false：お客様情報なし
	 * @throws Exception 業務サービス内で発生した例外全般。
	 * @throws IOException 
	 */	
	private boolean setCustInfo(JBSbatServiceInterfaceMap inMap, JBSbatServiceInterfaceMap outmap) throws Exception
	{
		// SYSIDを取得します。
		String sys_id = inMap.getString(JBSbatKK_T_SVC_KEI.SYSID);
		
		Object[] para = new Object[4];
		para[0] = sys_id;
		para[1] = super.opeDate;
		para[2] = sys_id;
		para[3] = super.opeDate;
		
		// お客様(法人)情報を取得します。
		executeCK_T_CUST_KK_SELECT_010(para);
		
		JBSbatCommonDBInterface resultMap = db_CK_T_CUST.selectNext();
		
		// 検索結果がある場合
		if (resultMap != null)
		{
			// 郵便番号 ← お客様．契約者郵便番号
			outmap.setString(JBSbatKKIFM043.KEISHA_PCD, JBSbatStringUtil.Rtrim(resultMap.getString(JBSbatCK_T_CUST.KEISHA_PCD)));
			
			// 住所 ← お客様の「契約者都道府県名」+「契約者市区町村名」+「契約者大字通称名」+「契約者字丁目名」+
			// 			「契約者番地号」+「契約者住所補記・建物名」+「契約者住所補記・部屋番号」を設定。(121桁を超える場合はカットする)
			String ad = JZMAdOutputEdit.getPtn01(JBSbatStringUtil.Rtrim(resultMap.getString(JBSbatCK_T_CUST.KEISHA_STATE_NM)),
													JBSbatStringUtil.Rtrim(resultMap.getString(JBSbatCK_T_CUST.KEISHA_CITY_NM)),
													JBSbatStringUtil.Rtrim(resultMap.getString(JBSbatCK_T_CUST.KEISHA_OAZTSU_NM)),
													JBSbatStringUtil.Rtrim(resultMap.getString(JBSbatCK_T_CUST.KEISHA_AZCHO_NM)),
													JBSbatStringUtil.Rtrim(resultMap.getString(JBSbatCK_T_CUST.KEISHA_BNCHIGO)),
													JBSbatStringUtil.Rtrim(resultMap.getString(JBSbatCK_T_CUST.KEISHA_ADRTTM)),
													JBSbatStringUtil.Rtrim(resultMap.getString(JBSbatCK_T_CUST.KEISHA_ADRRM)));
			
			super.logPrint.printDebugLog("郵便番号--->" + outmap.getString(JBSbatKKIFM043.KEISHA_PCD));
			
			if(121 < JBSbatStringUtil.Rtrim(ad).length())
			{
				ad = ad.substring(0, 121);
			}
			
			outmap.setString(JBSbatKKIFM043.AD, ad);
			super.logPrint.printDebugLog("住所--->" + outmap.getString(JBSbatKKIFM043.AD));
			// 契約者名カナ ← お客様．お客様カナ名
			outmap.setString(JBSbatKKIFM043.KEISHA_NM_KANA, JBSbatStringUtil.Rtrim(resultMap.getString(JBSbatCK_T_CUST.CUST_KANA)));
			
			// 契約者名１ ← 「お客様．お客様名」の1〜15文字
			// 契約者名２ ← 「お客様．お客様名」の16〜30文字
			// 契約者名３ ← 「お客様．お客様名」の31〜45文字
			// 端末設置場所名１ ← 「お客様．お客様名」の1〜15文字
			// 端末設置場所名２ ← 「お客様．お客様名」の16〜30文字
			// 端末設置場所名３ ← 「お客様．お客様名」の31〜45文字
			String cust_nm = JBSbatStringUtil.Rtrim(resultMap.getString(JBSbatCK_T_CUST.CUST_NM));
			if (!"".equals(cust_nm))
			{
				outmap.setString(JBSbatKKIFM043.KEISHA_NM1, getMojiBunkatsu(cust_nm, 0, 15));
				outmap.setString(JBSbatKKIFM043.KEISHA_NM2, getMojiBunkatsu(cust_nm, 15, 30));
				outmap.setString(JBSbatKKIFM043.KEISHA_NM3, getMojiBunkatsu(cust_nm, 30, 45));
				outmap.setString(JBSbatKKIFM043.TNMT_SETPLACE_NM1, getMojiBunkatsu(cust_nm, 0, 15));
				outmap.setString(JBSbatKKIFM043.TNMT_SETPLACE_NM2, getMojiBunkatsu(cust_nm, 15, 30));
				outmap.setString(JBSbatKKIFM043.TNMT_SETPLACE_NM3, getMojiBunkatsu(cust_nm, 30, 45));
			}
			
			// 電話番号 ← 個人：連絡先の「電話番号」を設定
			outmap.setString(JBSbatKKIFM043.TELNO, JBSbatStringUtil.Rtrim(resultMap.getString(JBSbatCK_T_RRKS.TELNO)));
			
			// 端末設置場所名（カナ） ← お客様．お客様カナ名
			outmap.setString(JBSbatKKIFM043.TNMT_SETPLACE_NM_KANA, JBSbatStringUtil.Rtrim(resultMap.getString(JBSbatCK_T_CUST.CUST_KANA)));
			
			// 端末設置場所電話番号 ← 連絡先．TELNO
			outmap.setString(JBSbatKKIFM043.TNMT_SETPLACE_NM_TELNO, JBSbatStringUtil.Rtrim(resultMap.getString(JBSbatCK_T_RRKS.TELNO)));
			
			// 性別 ← 空白設定
			outmap.setString(JBSbatKKIFM043.CUST_SEX_CD, SPACE);
			
			// 生年月日 ← 空白設定
			outmap.setString(JBSbatKKIFM043.CUST_BIRTHD, SPACE);
			
			// ＳＹＳＩＤ ← サービス契約．ＳＹＳＩＤ
			outmap.setString(JBSbatKKIFM043.SYSID, sys_id);
			
			return true;
		}
		else
		{
			//業務エラーログ出力
			super.logPrint.printBusinessErrorLog("EKKB0210CE", 
					new String[]{"お客様", "データ（サービス契約番号：" + inMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO) + "）"});
			
			return false;
		}
	}
	
	/**
	 * 工事案件対象宅内機器情報の設定<br>
	 * <p>
	 * @param outmap 出力情報
	 * @throws Exception 業務サービス内で発生した例外全般。
	 * @throws IOException 
	 */	
	private void setKjakTgTkkikiInfo(JBSbatServiceInterfaceMap outmap) throws Exception
	{
		// ＳＴＢ異動区分１ ← 工事案件対象宅内機器．宅内機器異動コード
		outmap.setString(JBSbatKKIFM043.STB_IDO_CD1, SPACE);
		
		// 変更前ＳＴＢ型番号１ ← 工事案件対象宅内機器．予定宅内機器型式コード
		outmap.setString(JBSbatKKIFM043.CHBF_STB_MODEL_NO1, SPACE);
		
		// 変更前ＳＴＢＩＤ１ ← 工事案件対象宅内機器．予定ＳＴＢ−ＩＤ
		outmap.setString(JBSbatKKIFM043.CHBF_STB_ID1, SPACE);
		
		// 変更前ＨＤＤ容量コード１ ← 工事案件対象宅内機器．予定ＨＤＤ容量コード
		outmap.setString(JBSbatKKIFM043.CHBF_HDD_CAPA_CD1, SPACE);
		
		// 変更後ＨＤＤ容量コード１ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.CHAF_HDD_CAPA_CD1, SPACE);
		
		// 変更前メーカーコード１ ← 工事案件対象宅内機器．予定メーカーコード
		outmap.setString(JBSbatKKIFM043.CHBF_MAKER_CD1, SPACE);
		
		// 変更後メーカーコード１ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.CHAF_MAKER_CD1, SPACE);
		
		// ＳＴＢ異動区分２ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.STB_IDO_CD2, SPACE);
		
		// 変更前ＳＴＢ型番号２ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.CHBF_STB_MODEL_NO2, SPACE);
		
		// 変更前ＳＴＢＩＤ２ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.CHBF_STB_ID2, SPACE);
		
		// 変更前ＨＤＤ容量コード２ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.CHBF_HDD_CAPA_CD2, SPACE);
		
		// 変更後ＨＤＤ容量コード２ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.CHAF_HDD_CAPA_CD2, SPACE);
		
		// 変更前メーカーコード２ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.CHBF_MAKER_CD2, SPACE);
		
		// 変更後メーカーコード２ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.CHAF_MAKER_CD2, SPACE);
		
		// ＳＴＢ異動区分３ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.STB_IDO_CD3, SPACE);
		
		// 変更前ＳＴＢ型番号３ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.CHBF_STB_MODEL_NO3, SPACE);
		
		// 変更前ＳＴＢＩＤ３ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.CHBF_STB_ID3, SPACE);
		
		// 変更前ＨＤＤ容量コード３ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.CHBF_HDD_CAPA_CD3, SPACE);
		
		// 変更後ＨＤＤ容量コード３ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.CHAF_HDD_CAPA_CD3, SPACE);
		
		// 変更前メーカーコード３ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.CHBF_MAKER_CD3, SPACE);
		
		// 変更後メーカーコード３ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.CHAF_MAKER_CD3, SPACE);
		
		// ＳＴＢ異動区分４ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.STB_IDO_CD4, SPACE);
		
		// 変更前ＳＴＢ型番号４ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.CHBF_STB_MODEL_NO4, SPACE);
		
		// 変更前ＳＴＢＩＤ４ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.CHBF_STB_ID4, SPACE);
		
		// 変更前ＨＤＤ容量コード４ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.CHBF_HDD_CAPA_CD4, SPACE);
		
		// 変更後ＨＤＤ容量コード４ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.CHAF_HDD_CAPA_CD4, SPACE);
		
		// 変更前メーカーコード４ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.CHBF_MAKER_CD4, SPACE);
		
		// 変更後メーカーコード４ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.CHAF_MAKER_CD4, SPACE);
		
		// ＳＴＢ異動区分５ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.STB_IDO_CD5, SPACE);
		
		// 変更前ＳＴＢ型番号５ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.CHBF_STB_MODEL_NO5, SPACE);
		
		// 変更前ＳＴＢＩＤ５ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.CHBF_STB_ID5, SPACE);
		
		// 変更前ＨＤＤ容量コード５ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.CHBF_HDD_CAPA_CD5, SPACE);
		
		// 変更後ＨＤＤ容量コード５ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.CHAF_HDD_CAPA_CD5, SPACE);
		
		// 変更前メーカーコード５ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.CHBF_MAKER_CD5, SPACE);
		
		// 変更後メーカーコード５ ← 空白を設定
		outmap.setString(JBSbatKKIFM043.CHAF_MAKER_CD5, SPACE);
	}
	
	/**
	 * 指定したインデックスの文字列を返します。<br>
	 * <p>
	 * @param str 対象文字列
	 * @param start 開始位置
	 * @param end 終了位置
	 * @return 分割された文字列
	 * @throws Exception 業務サービス内で発生した例外全般。
	 * @throws IOException 
	 */	
	private String getMojiBunkatsu(String str, int start , int end) throws Exception
	{
		
		int length = str.length();
		String result = "";
		
		if (start != 0)
		{
			if (length >= end)
			{
				result = str.substring(start, end);
			}
			else if (length >= start && length <= end)
			{
				result = str.substring(start, length);
			}
			else
			{
				result = SPACE;
			}
		}
		else if (length >= start  && length >= end)
		{
			result =  str.substring(start, end);
		}
		else
		{
			result =  str.substring(start, length);
		}
		return result;
	}
}