/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKKcnBundleIfOput
*	ソースファイル名	：JBSbatKKKcnBundleIfOput.java
*	作成者				：富士通　
*	作成日				：2011年10月06日
*＜機能概要＞
*　ＫＣＮバンドル情報出力部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/10/06	FJ)神吉		新規作成
*	v2.00.00	2012/05/13	FJ)神吉		【ST2-2012-0000889】バンドル情報取得件数０件対応。
*********************************************************************/
package eo.business.service;

import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatKKIFM109;
import eo.business.util.file.JBSbatKKIFM110;
import eo.common.constant.JPCBatchMessageConstant;
import eo.framework.application.JBSbatBusinessException;
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 JBSbatKKKcnBundleIfOput extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/** 空白*/
	private static final String SPACE = "";
	
	/** 
	 *  該当データカウント
	 */
	private int count = 0;


	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		super.logPrint.printDebugLog("execute_START");
		
		// 出力共通電文を生成する。
		JBSbatOutputItem outputBean = new JBSbatOutputItem();
		
		//入出力インターフェースオブジェクトを生成
		JBSbatServiceInterfaceMap outmap_109 = new JBSbatServiceInterfaceMap();
		
		// キー情報取得
		String svcKeiNo        = JBSbatStringUtil.trim(inMap.getString(JBSbatKKIFM110.SVC_KEI_NO));			// バンドル情報書込中間ファイル.サービス契約番号
		String kcnNo           = JBSbatStringUtil.trim(inMap.getString(JBSbatKKIFM110.KCN_NO));				// バンドル情報書込中間ファイル.ＫＣＮ番号
		String svcStaymd       = JBSbatStringUtil.trim(inMap.getString(JBSbatKKIFM110.SVC_STAYMD));			// バンドル情報書込中間ファイル.サービス開始年月日
		String svcChrgStaymd   = JBSbatStringUtil.trim(
									inMap.getString(JBSbatKKIFM110.SVC_CHRG_STAYMD));						// バンドル情報書込中間ファイル.サービス課金開始年月日
		String svcEndymd       = JBSbatStringUtil.trim(inMap.getString(JBSbatKKIFM110.SVC_ENDYMD));			// バンドル情報書込中間ファイル.サービス終了年月日
		String kcnKeiCd        = JBSbatStringUtil.trim(inMap.getString(JBSbatKKIFM110.KCN_KEI_CD));			// バンドル情報書込中間ファイル.サービス契約番号
		String kcnKeiStatCd    = JBSbatStringUtil.trim(
									inMap.getString(JBSbatKKIFM110.KCN_KEI_STAT_CD));						// バンドル情報書込中間ファイル.ＫＣＮ契約状態コード
		String shosaZumiFlg    = JBSbatStringUtil.trim(inMap.getString(JBSbatKKIFM110.SHOSA_ZUMI_FLG));		// バンドル情報書込中間ファイル.照査済フラグ
		String shosaYmd        = JBSbatStringUtil.trim(inMap.getString(JBSbatKKIFM110.SHOSA_YMD));			// バンドル情報書込中間ファイル.照査年月日
		String svcCancelYmd    = JBSbatStringUtil.trim(
									inMap.getString(JBSbatKKIFM110.SVC_CANCEL_YMD));						// バンドル情報書込中間ファイル.サービスキャンセル年月日
		String svcDslYmd       = JBSbatStringUtil.trim(inMap.getString(JBSbatKKIFM110.SVC_DSL_YMD));		// バンドル情報書込中間ファイル.サービス解約年月日
		String packKindCd      = JBSbatStringUtil.trim(inMap.getString(JBSbatKKIFM110.PACK_KIND_CD));		// バンドル情報書込中間ファイル.パック種類コード
		String packTstaymd     = JBSbatStringUtil.trim(inMap.getString(JBSbatKKIFM110.PACK_TSTAYMD));		// バンドル情報書込中間ファイル.パック適用開始年月日
		String packTendymd     = JBSbatStringUtil.trim(inMap.getString(JBSbatKKIFM110.PACK_TENDYMD));		// バンドル情報書込中間ファイル.パック適用終了年月日
		String packTstaym      = SPACE;																		// バンドル情報書込中間ファイル.パック適用終了年月
		
		// パック適用開始年月日が8文字以上ある場合
		if(packTstaymd.length() >= 8)
		{
			packTstaym  = packTstaymd.substring(0, 6);
		}
		
		
		super.logPrint.printDebugLog("バンドル情報書込中間ファイル.サービス契約番号：" +  svcKeiNo);
		super.logPrint.printDebugLog("バンドル情報書込中間ファイル.ＫＣＮ番号：" +  kcnNo);
		super.logPrint.printDebugLog("バンドル情報書込中間ファイル.サービス開始年月日：" +  svcStaymd);
		super.logPrint.printDebugLog("バンドル情報書込中間ファイル.サービス課金開始年月日：" + 	svcChrgStaymd);
		super.logPrint.printDebugLog("バンドル情報書込中間ファイル.サービス終了年月日：" +  svcEndymd);
		super.logPrint.printDebugLog("バンドル情報書込中間ファイル.ＫＣＮ契約コード：" +  kcnKeiCd);
		super.logPrint.printDebugLog("バンドル情報書込中間ファイル.ＫＣＮ契約状態コード ：" +  kcnKeiStatCd);
		super.logPrint.printDebugLog("バンドル情報書込中間ファイル.照査済フラグ：" +  shosaZumiFlg);
		super.logPrint.printDebugLog("バンドル情報書込中間ファイル.照査年月日：" +  shosaYmd);
		super.logPrint.printDebugLog("バンドル情報書込中間ファイル.サービスキャンセル年月日：" +  svcCancelYmd);
		super.logPrint.printDebugLog("バンドル情報書込中間ファイル.サービス解約年月日：" +  svcDslYmd);
		super.logPrint.printDebugLog("バンドル情報書込中間ファイル.パック種類コード：" +  packKindCd);
		super.logPrint.printDebugLog("バンドル情報書込中間ファイル.パック適用開始年月日：" +  packTstaymd);
		super.logPrint.printDebugLog("バンドル情報書込中間ファイル.パック適用終了年月日：" +  packTendymd);
		super.logPrint.printDebugLog("バンドル情報書込中間ファイル.パック適用開始年月：" +  packTstaym);
		
		//項目を設定
		outmap_109.setString(JBSbatKKIFM109.SVC_KEI_NO, svcKeiNo);					// バンドル情報取込結果ファイル.サービス契約番号
		outmap_109.setString(JBSbatKKIFM109.KCN_NO, kcnNo);							// バンドル情報取込結果ファイル.ＫＣＮ番号
		outmap_109.setString(JBSbatKKIFM109.SVC_STAYMD, svcStaymd);					// バンドル情報取込結果ファイル.サービス開始年月日
		outmap_109.setString(JBSbatKKIFM109.SVC_CHRG_STAYMD, svcChrgStaymd);		// バンドル情報取込結果ファイル.サービス課金開始年月日
		outmap_109.setString(JBSbatKKIFM109.SVC_ENDYMD, svcEndymd);					// バンドル情報取込結果ファイル.サービス終了年月日
		outmap_109.setString(JBSbatKKIFM109.KCN_KEI_CD, kcnKeiCd);					// バンドル情報取込結果ファイル.ＫＣＮ契約コード
		outmap_109.setString(JBSbatKKIFM109.KCN_KEI_STAT_CD, kcnKeiStatCd);			// バンドル情報取込結果ファイル.ＫＣＮ契約状態コード
		outmap_109.setString(JBSbatKKIFM109.SHOSA_ZUMI_FLG, shosaZumiFlg);			// バンドル情報取込結果ファイル.照査済フラグ
		outmap_109.setString(JBSbatKKIFM109.SHOSA_YMD, shosaYmd);		   	 		// バンドル情報取込結果ファイル.照査年月日
		outmap_109.setString(JBSbatKKIFM109.SVC_CANCEL_YMD, svcCancelYmd);			// バンドル情報取込結果ファイル.サービスキャンセル年月日
		outmap_109.setString(JBSbatKKIFM109.SVC_DSL_YMD, svcDslYmd);				// バンドル情報取込結果ファイル.サービス解約年月日
		outmap_109.setString(JBSbatKKIFM109.PACK_KIND_CD, packKindCd);				// バンドル情報取込結果ファイル.パック種類コード
		outmap_109.setString(JBSbatKKIFM109.PACK_TSTAYMD, packTstaymd);				// バンドル情報取込結果ファイル.パック適用開始年月日
		outmap_109.setString(JBSbatKKIFM109.PACK_TENDYMD, packTendymd);				// バンドル情報取込結果ファイル.パック適用終了年月日
		outmap_109.setString(JBSbatKKIFM109.PACK_TYM, packTstaym);					// バンドル情報取込結果ファイル.パック適用年月
		
		// 該当レコードカウントアップ
		count++;
		
		// バンドル情報取込結果中間ファイル出力
		outmap_109.setOutFlg(true);
		
		// バンドル情報取込結果中間ファイル情報を設定。
		outputBean.addOutMapList(outmap_109);
		
		super.logPrint.printDebugLog("execute_END");
		return outputBean;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		// 該当レコードがない場合
		if(count == 0)
		{
			// 該当レコード無い場合は、下記のログ出力する。
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0010CW, 
				new String[]{"バンドル情報ファイルの該当出力データなし"});
		}
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
