/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCHKaikKeishasuMake
*	ソースファイル名		：JBSbatCHKaikKeishasuMake.java
*	作成者			：富士通　
*	作成日			：2020年12月09日
*＜機能概要＞
*　契約者数データファイル作成部品です。
*＜修正履歴＞
 *  バージョン			修正日			修正者			修正内容
 *  v52.00			2020/12/09		GDC)ジョバニー		【ANK-3851-00-00】収益認識基準変更対応
 *  v52.01			2021/03/12		FJ)星野				【ANK-3851-04-00】FUGA連携データの微調整
*********************************************************************/
package eo.business.service;

import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatCHIFM388;
import eo.business.util.file.JBSbatCHIFE091;
import eo.common.constant.JACStrConst;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;

/**
 * 
 * @author j.hortilano
 *
 */
public class JBSbatCHKaikKeishasuMake extends JBSbatBusinessService{
	
	/** 伝票入力者コード（固定値） */
// ANK-3851-04-00対応 20210312 星野 MOD START
//	private static final String DENPYO_INPUT_CD_FIXED = "eousr";
	private static final String DENPYO_INPUT_CD_FIXED = "eouser";
// ANK-3851-04-00対応 20210312 星野 MOD END

	/** 00 */
	private static String NUMBER_00 = "00";
	
	/** 6 */
	private static String NUMBER_6 = "6";
	
	/** 件数設定値 1 */
	private static final String COUNT_1 = "1";
	
	/**
	 * 初期処理
	 * @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
	{
	
		// 出力電文を生成する。
		JBSbatOutputItem outputBean = new JBSbatOutputItem();
		
		//Generate output map
		JBSbatServiceInterfaceMap outPutMap = generateOutputMap(inMap);
		
		//出力内容を設定
		outputBean.addOutMapList(outPutMap);
		
		return outputBean;
	}
	
	
	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception {
		
		// Termination
	}
	
	
	/**
	 * 
	 * @param inMap
	 * @return
	 * @throws Exception
	 */
	private JBSbatServiceInterfaceMap generateOutputMap(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();
		
		String orsjgsCD = inMap.getString(JBSbatCHIFM388.ORSJGS_CD);
		String keishaKbtCD = null;
		
		if (orsjgsCD != null && !JACStrConst.KARA_MOJI.equals(orsjgsCD)) {
			keishaKbtCD = NUMBER_6.concat(orsjgsCD);
		} else {
			keishaKbtCD = inMap.getString(JBSbatCHIFM388.KEISHA_TYPE_CD).concat(NUMBER_00);
		}

		// 契約者識別コード
		outMap.set(JBSbatCHIFE091.KEISHA_SKBT_CD,		keishaKbtCD);
		// 料金グループコード
		outMap.set(JBSbatCHIFE091.PRC_GRP_CD,			inMap.getString(JBSbatCHIFM388.PRC_GRP_CD));
		// 料金コースコード
		outMap.set(JBSbatCHIFE091.PCRS_CD,				inMap.getString(JBSbatCHIFM388.PCRS_CD));
		// 料金サービスコード
		outMap.set(JBSbatCHIFE091.DSP_CAMPAIGN_CD,		inMap.getString(JBSbatCHIFM388.DSP_CAMPAIGN_CD));
		// 料金項目コード
		outMap.set(JBSbatCHIFE091.PRC_KMK_CD,			inMap.getString(JBSbatCHIFM388.PRC_KMK_CD));
		// 金額
		outMap.set(JBSbatCHIFE091.COUNT,				COUNT_1);
		// 伝票入力者コード
		outMap.set(JBSbatCHIFE091.DENPYO_INPUT_CD,		DENPYO_INPUT_CD_FIXED);
		
		outMap.setOutFlg(true);

		return outMap;
		
	}
}
