/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKSmtvlFlSksi
*	ソースファイル名	：JBSbatKKSmtvlFlSksi.java
*	作成者				：富士通　
*	作成日				：2012年08月26日
*＜機能概要＞
*　スマートバリュー申込結果・異動情報ファイル作成部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v4.00.00	2012/08/26   富士通		新規作成
*	v5.00.00	2013/01/23   富士通		ANK-1272-00-00 【スマートバリュー】フォロー対応
*********************************************************************/
package eo.business.service;

import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatKKIFM250;
import eo.business.util.file.JBSbatKKIFE202;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.item.JBSbatOutputItem;

/**
* 送信ファイルの作成 <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKSmtvlFlSksi extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	private int lineCount = 0;
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		lineCount = 0;
		// ヘッダを書き込む 
		String header = String.format("10ft902004%8s000000%1276s", opeDate, "");
		commonItem.getOutPutFile().write(header);
		
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		JBSbatOutputItem outputBean = new JBSbatOutputItem();
		if (inMap != null)
		{
			// データを転送する
			JBSbatServiceInterfaceMap outmap = new JBSbatServiceInterfaceMap();
			// ファイルを出力します
			outmap.setOutFlg(true);
			
			/** レコード区分 */					
			outmap.setString(JBSbatKKIFE202.REC_DIV ,inMap.getString(JBSbatKKIFM250.REC_DIV));

			/** エラーコード */					
			outmap.setString(JBSbatKKIFE202.ERR_CD ,inMap.getString(JBSbatKKIFM250.ERR_CD)); 

			/** 処理区分 */						
			outmap.setString(JBSbatKKIFE202.TRAN_DIV,inMap.getString(JBSbatKKIFM250.TRAN_DIV));

			/** 事業者区分 */					
			outmap.setString(JBSbatKKIFE202.JIGYOSHA_DIV ,inMap.getString(JBSbatKKIFM250.JIGYOSHA_DIV ));

			/** 事業者コード */					
			outmap.setString(JBSbatKKIFE202.JIGYOSHA_CD ,inMap.getString(JBSbatKKIFM250.JIGYOSHA_CD ));

			/** 事業者契約管理番号 */			
			outmap.setString(JBSbatKKIFE202.JIGYOSHA_KEI_KNRI_NO,inMap.getString(JBSbatKKIFM250.JIGYOSHA_KEI_KNRI_NO));

			/** 契約コード */					
			outmap.setString(JBSbatKKIFE202.KEI_CD,inMap.getString(JBSbatKKIFM250.KEI_CD));

			/** 契約者氏名漢字（姓） */			
			outmap.setString(JBSbatKKIFE202.KEISHA_SEI_KANJI,inMap.getString(JBSbatKKIFM250.KEISHA_SEI_KANJI));

			/** 契約者氏名漢字（名） */			
			outmap.setString(JBSbatKKIFE202.KEISHA_NM_KANJI,inMap.getString(JBSbatKKIFM250.KEISHA_NM_KANJI));

			/** 契約者氏名カナ（姓） */			
			outmap.setString(JBSbatKKIFE202.KEISHA_SEI_KANA,inMap.getString(JBSbatKKIFM250.KEISHA_SEI_KANA));

			/** 契約者氏名カナ（名） */			
			outmap.setString(JBSbatKKIFE202.KEISHA_NM_KANA,inMap.getString(JBSbatKKIFM250.KEISHA_NM_KANA));

			/** 顧客区分 */						
			outmap.setString(JBSbatKKIFE202.CUST_DIV,inMap.getString(JBSbatKKIFM250.CUST_DIV));

			/** 契約者生年月日 */				
			outmap.setString(JBSbatKKIFE202.KEISHA_BIRTHD,inMap.getString(JBSbatKKIFM250.KEISHA_BIRTHD));

			/** 契約者郵便番号 */				
			outmap.setString(JBSbatKKIFE202.KEISHA_PCD,inMap.getString(JBSbatKKIFM250.KEISHA_PCD));

			/** 契約者住所 */					
			outmap.setString(JBSbatKKIFE202.KEISHA_ADR,inMap.getString(JBSbatKKIFM250.KEISHA_ADR));

			/** 契約者連絡先電話番号１ */		
			outmap.setString(JBSbatKKIFE202.KEISHA_RRKS_TELNO1,inMap.getString(JBSbatKKIFM250.KEISHA_RRKS_TELNO1));

			/** 契約者連絡先電話番号２ */		
			outmap.setString(JBSbatKKIFE202.KEISHA_RRKS_TELNO2,inMap.getString(JBSbatKKIFM250.KEISHA_RRKS_TELNO2));

			/** 連絡先メールアドレス */			
			outmap.setString(JBSbatKKIFE202.KEISHA_MLAD,inMap.getString(JBSbatKKIFM250.KEISHA_MLAD));

			/** コース名称コード */				
			outmap.setString(JBSbatKKIFE202.COURSE_NM_CD,inMap.getString(JBSbatKKIFM250.COURSE_NM_CD));

			/** 契約情報用予備項目 */			
			outmap.setString(JBSbatKKIFE202.KEI_INF_YOBI_KMK,inMap.getString(JBSbatKKIFM250.KEI_INF_YOBI_KMK));

			/** ネットサービス契約有無フラグ */	
			outmap.setString(JBSbatKKIFE202.NET_SVC_KEI_UMU_FLG,inMap.getString(JBSbatKKIFM250.NET_SVC_KEI_UMU_FLG));

			/** ネットサービス停止フラグ */		
			outmap.setString(JBSbatKKIFE202.NET_SVC_STP_FLG,inMap.getString(JBSbatKKIFM250.NET_SVC_STP_FLG));

			/** ネットサービス種別 */			
			outmap.setString(JBSbatKKIFE202.NET_SVC_SBT ,inMap.getString(JBSbatKKIFM250.NET_SVC_SBT ));

			/** ネットサービス申込年月日 */		
			outmap.setString(JBSbatKKIFE202.NET_SVC_MSKM_YMD ,inMap.getString(JBSbatKKIFM250.NET_SVC_MSKM_YMD ));

			/** ネットサービス課金開始年月日 */	
			outmap.setString(JBSbatKKIFE202.NET_SVC_CHRG_STAYMD ,inMap.getString(JBSbatKKIFM250.NET_SVC_CHRG_STAYMD ));

			/** ネットサービス解約年月日 */		
			outmap.setString(JBSbatKKIFE202.NET_SVC_DSL_YMD ,inMap.getString(JBSbatKKIFM250.NET_SVC_DSL_YMD ));

			/** ネットサービス解約理由 */		
			outmap.setString(JBSbatKKIFE202.NET_SVC_DLRE ,inMap.getString(JBSbatKKIFM250.NET_SVC_DLRE ));

			/** ネットサービス用予備項目 */		
			outmap.setString(JBSbatKKIFE202.NET_SVC_YOBI_KMK ,inMap.getString(JBSbatKKIFM250.NET_SVC_YOBI_KMK ));

			/** 電話サービス１契約有無フラグ */	
			outmap.setString(JBSbatKKIFE202.TEL1_SVC_KEI_UMU_FLG ,inMap.getString(JBSbatKKIFM250.TEL1_SVC_KEI_UMU_FLG ));

			/** 電話サービス１停止フラグ */		
			outmap.setString(JBSbatKKIFE202.TEL1_SVC_STP_FLG,inMap.getString(JBSbatKKIFM250.TEL1_SVC_STP_FLG));

			/** 電話サービス１種別 */			
			outmap.setString(JBSbatKKIFE202.TEL1_SVC_SBT ,inMap.getString(JBSbatKKIFM250.TEL1_SVC_SBT ));

			/** 電話番号１ */					
			outmap.setString(JBSbatKKIFE202.TELNO1 ,inMap.getString(JBSbatKKIFM250.TELNO1 ));

			/** 電話サービス１申込年月日 */		
			outmap.setString(JBSbatKKIFE202.TEL1_SVC_MSKM_YMD ,inMap.getString(JBSbatKKIFM250.TEL1_SVC_MSKM_YMD ));

			/** 電話サービス１課金開始年月日 */	
			outmap.setString(JBSbatKKIFE202.TEL1_SVC_CHRG_STAYMD ,inMap.getString(JBSbatKKIFM250.TEL1_SVC_CHRG_STAYMD ));

			/** 電話サービス１解約年月日 */		
			outmap.setString(JBSbatKKIFE202.TEL1_SVC_DSL_YMD ,inMap.getString(JBSbatKKIFM250.TEL1_SVC_DSL_YMD ));

			/** 電話サービス１解約理由 */		
			outmap.setString(JBSbatKKIFE202.TEL1_SVC_DLRE,inMap.getString(JBSbatKKIFM250.TEL1_SVC_DLRE));

			/** 電話サービス１用予備項目 */		
			outmap.setString(JBSbatKKIFE202.TEL1_SVC_YOBI_KMK,inMap.getString(JBSbatKKIFM250.TEL1_SVC_YOBI_KMK));

			/** 電話サービス２契約有無フラグ */	
			outmap.setString(JBSbatKKIFE202.TEL2_SVC_KEI_UMU_FLG ,inMap.getString(JBSbatKKIFM250.TEL2_SVC_KEI_UMU_FLG ));

			/** 電話サービス２停止フラグ */		
			outmap.setString(JBSbatKKIFE202.TEL2_SVC_STP_FLG,inMap.getString(JBSbatKKIFM250.TEL2_SVC_STP_FLG));

			/** 電話サービス２種別 */			
			outmap.setString(JBSbatKKIFE202.TEL2_SVC_SBT,inMap.getString(JBSbatKKIFM250.TEL2_SVC_SBT));

			/** 電話番号２ */					
			outmap.setString(JBSbatKKIFE202.TELNO2,inMap.getString(JBSbatKKIFM250.TELNO2));

			/** 電話サービス２申込年月日 */		
			outmap.setString(JBSbatKKIFE202.TEL2_SVC_MSKM_YMD,inMap.getString(JBSbatKKIFM250.TEL2_SVC_MSKM_YMD));

			/** 電話サービス２課金開始年月日 */	
			outmap.setString(JBSbatKKIFE202.TEL2_SVC_CHRG_STAYMD ,inMap.getString(JBSbatKKIFM250.TEL2_SVC_CHRG_STAYMD ));

			/** 電話サービス２解約年月日 */		
			outmap.setString(JBSbatKKIFE202.TEL2_SVC_DSL_YMD ,inMap.getString(JBSbatKKIFM250.TEL2_SVC_DSL_YMD ));

			/** 電話サービス２解約理由 */		
			outmap.setString(JBSbatKKIFE202.TEL2_SVC_DLRE ,inMap.getString(JBSbatKKIFM250.TEL2_SVC_DLRE ));

			/** 電話サービス２用予備項目 */		
			outmap.setString(JBSbatKKIFE202.TEL2_SVC_YOBI_KMK,inMap.getString(JBSbatKKIFM250.TEL2_SVC_YOBI_KMK));

			/** テレビサービス契約有無フラグ */	
			outmap.setString(JBSbatKKIFE202.TV_SVC_KEI_UMU_FLG ,inMap.getString(JBSbatKKIFM250.TV_SVC_KEI_UMU_FLG ));

			/** テレビサービス停止フラグ */		
			outmap.setString(JBSbatKKIFE202.TV_SVC_STP_FLG ,inMap.getString(JBSbatKKIFM250.TV_SVC_STP_FLG ));

			/** テレビサービス種別 */			
			outmap.setString(JBSbatKKIFE202.TV_SVC_SBT ,inMap.getString(JBSbatKKIFM250.TV_SVC_SBT ));

			/** テレビサービス申込年月日 */		
			outmap.setString(JBSbatKKIFE202.TV__SVC_MSKM_YMD ,inMap.getString(JBSbatKKIFM250.TV__SVC_MSKM_YMD ));

			/** テレビサービス課金開始年月日 */	
			outmap.setString(JBSbatKKIFE202.TV_SVC_CHRG_STAYMD ,inMap.getString(JBSbatKKIFM250.TV_SVC_CHRG_STAYMD ));

			/** テレビサービス解約年月日 */		
			outmap.setString(JBSbatKKIFE202.TV_SVC_DSL_YMD ,inMap.getString(JBSbatKKIFM250.TV_SVC_DSL_YMD ));

			/** テレビサービス解約理由 */		
			outmap.setString(JBSbatKKIFE202.TV_SVC_DLRE,inMap.getString(JBSbatKKIFM250.TV_SVC_DLRE));

			/** テレビサービス用予備項目 */		
			outmap.setString(JBSbatKKIFE202.TV_SVC_YOBI_KMK,inMap.getString(JBSbatKKIFM250.TV_SVC_YOBI_KMK));

			/** 割引料金グループコード */		
			outmap.setString(JBSbatKKIFE202.WRIBPRC_GRP_CD ,inMap.getString(JBSbatKKIFM250.WRIBPRC_GRP_CD ));

			/** 登録結果コード */				
			outmap.setString(JBSbatKKIFE202.ADD_RSLT_CD ,inMap.getString(JBSbatKKIFM250.ADD_RSLT_CD ));

			/** 登録結果ＮＧ事由 */				
			outmap.setString(JBSbatKKIFE202.ADD_RSLT_NG_JIYU,inMap.getString(JBSbatKKIFM250.ADD_RSLT_NG_JIYU));

			/** ＫＤＤＩ取込結果コード */		
			outmap.setString(JBSbatKKIFE202.KDDI_TRKM_RSLT_CD ,inMap.getString(JBSbatKKIFM250.KDDI_TRKM_RSLT_CD ));

			/** ＫＤＤＩ取込結果ＮＧ事由 */		
			outmap.setString(JBSbatKKIFE202.KDDI_TRKM_RSLT_NG_JIYU ,inMap.getString(JBSbatKKIFM250.KDDI_TRKM_RSLT_NG_JIYU ));

			// ANK-1272-00-00 2013/01/23 ADD START
			/** クロスセル料金引継番号 */		
			outmap.setString(JBSbatKKIFE202.CROSSEL_PRC_HKTGI_NO ,inMap.getString(JBSbatKKIFM250.CROSSEL_PRC_HKTGI_NO ));

			/** クロスセル料金引継種別 */		
			outmap.setString(JBSbatKKIFE202.CROSSEL_PRC_HKTGI_SBT ,inMap.getString(JBSbatKKIFM250.CROSSEL_PRC_HKTGI_SBT ));
			// ANK-1272-00-00 2013/01/23 ADD END

			/** 予備 */							
			outmap.setString(JBSbatKKIFE202.YOBI,inMap.getString(JBSbatKKIFM250.YOBI));
			
			outputBean.addOutMapList(outmap);
			lineCount ++;
			JBSbatServiceInterfaceMap headerMap = new JBSbatServiceInterfaceMap();
			outputBean.addOutMapList(headerMap);
		}
		return outputBean;
		
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		// トレーラを書き込む
		String trailer = String.format("80%09d%1289s", lineCount, "");
		commonItem.getOutPutFile().write(trailer);
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
