/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKKosokuWriFinPic
*	ソースファイル名	：JBSbatKKKosokuWriFinPic.java
*	作成者				：富士通　
*	作成日				：2021年01月27日
*＜機能概要＞
*　高速割適用満了登録対象抽出部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v52.00.00	2021/01/27	FJ)荒木		ANK-3893-00-00_【10Gフォロー】高速割解約バッチ開発	新規作成
*	v56.00.00	2021/12/14	FJ)鈴木		ANK-4018-00-00_【eo定期】5G・10Gコースの料金改訂対応
*********************************************************************/
package eo.business.service;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JBSbatInterface;
import eo.business.common.JKKBatCommon;
import eo.business.util.file.JBSbatKKIFM916;
import eo.business.util.file.JBSbatKKIFM917;
import eo.common.constant.JPCBatchMessageConstant;
import eo.common.util.JKKStringUtil;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKKosokuWriFinPic extends JBSbatBusinessService
{
	
	/* 適用終了月数 */
	private int tendMonCnt;
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		
		try
		{
			// フリー項目より適用終了月数を取得
			tendMonCnt = Integer.parseInt(super.freeItem);
		}
		catch(NumberFormatException e)
		{
			// 取得した適用終了月数が不正な値
			String[] msgParam = new String[] { "適用終了月数が不正(適用終了月数:" + super.freeItem + ")" };
			
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0090TE, msgParam);
		}
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		// ANK-4018-00-00 DEL START
//		// サービス課金開始日を契約開始年月日に設定
//		String startYmd = inMap.getString(JBSbatKKIFM916.SVC_CHRG_STAYMD);
//
//		if(JKKStringUtil.isNullBlank(startYmd) || !JKKBatCommon.isYearMonthDay1(startYmd))
//		{
//			// 契約開始年月日
//			String[] msgParam = new String[] { "契約開始年月日が不正("
//					+ "割引サービス契約番号:" + inMap.getString(JBSbatKKIFM916.WRIB_SVC_KEI_NO)
//					+ "、契約開始年月日:" + startYmd + ")"
//			};
//			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0090TE, msgParam);
//		}
//
//		// 契約開始年月日が月初の場合は契約開始年月を取得する
//		String startYm = "";
//		if("01".equals(startYmd.substring(startYmd.length() - 2, 8)))
//		{
//			startYm = startYmd.substring(0, 6);
//		}
//		// 契約開始年月日が月中の場合は契約開始年月の翌年月を取得する
//		else
//		{
//			startYm = JKKBatCommon.addMonth(startYmd, 1).substring(0, 6);
//		}
//		
//		// 経過月数を取得
//		int oMonth = JBSbatInterface.monthDiff(super.opeDate.substring(0, 6), startYm, "1");
//		
//		// 適用終了判定（適用終了対象外の場合、出力処理を行わずに終了する）
//		// 条件：適用終了月数が0以外 且つ 経過月数が適用終了月数未満 の場合、対象外とする
//		if (0 != tendMonCnt && oMonth < tendMonCnt)
//		{
//			return null;
//		}
		// ANK-4018-00-00 DEL END
		
		// =====================================
		// 出力共通電文を作成
		// =====================================
		JBSbatOutputItem outputBean = new JBSbatOutputItem();
		// 入出力インターフェースオブジェクト作成
		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();
		// ===========================
		// 高速割適用満了対象情報ファイル出力
		// ===========================
		// 割引サービス契約番号
		outMap.setString(JBSbatKKIFM917.WRIB_SVC_KEI_NO, inMap.getString(JBSbatKKIFM916.WRIB_SVC_KEI_NO));
		// 割引サービス契約内訳番号
		outMap.setString(JBSbatKKIFM917.WRIB_SVC_KEI_UCWK_NO, inMap.getString(JBSbatKKIFM916.WRIB_SVC_KEI_UCWK_NO));
		// 申込明細番号
		outMap.setString(JBSbatKKIFM917.MSKM_DTL_NO, inMap.getString(JBSbatKKIFM916.MSKM_DTL_NO));
		// サービス契約番号
		outMap.setString(JBSbatKKIFM917.SVC_KEI_NO, inMap.getString(JBSbatKKIFM916.SVC_KEI_NO));
		
		// 出力共通電文ファイル１に入出力インターフェースをセット
		outputBean.addOutMapList(outMap);
		// 出力フラグをセット
		outMap.setOutFlg(true);
		// 出力共通電文を返す
		return outputBean;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

}
