/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatACUserSeikyUwInfGet
*	ソースファイル名	：JBSbatACUserSeikyUwInfGet.java
*	作成者				：富士通　
*	作成日				：2011年12月19日
*＜機能概要＞
*　ユーザ請求内訳情報取得部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/12/19   富士通		新規作成
*********************************************************************/
package eo.business.service;


import eo.business.common.JACbatDebugLogUtil;
import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatACIFM105;
import eo.business.util.table.JBSbatCH_T_SEIKY;
import eo.business.util.table.JBSbatCH_T_SEIKY_UCWK;
import eo.common.constant.JACStrConst;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.item.JBSbatOutputItem;


/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatACUserSeikyUwInfGet extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][initial]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][opeDate=" + super.opeDate + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][freeItem=" + super.freeItem + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][initial]");
		
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute]");
		assert inMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute][inMap=" + inMap.getMap().toString() + "]") : true;
		
		// 事業者間精算料金情報作成
		JBSbatOutputItem outputItem = new JBSbatOutputItem();
		{
			JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();
			
			// 請求先番号
			outMap.setString(JBSbatACIFM105.SEIKY_KEI_NO, 		inMap.getString(JBSbatCH_T_SEIKY.SEIKY_KEI_NO));
			// 請求年月
			outMap.setString(JBSbatACIFM105.SEIKY_YM, 			inMap.getString(JBSbatCH_T_SEIKY.SEIKY_YM));
			// サービス番号
			outMap.setString(JBSbatACIFM105.SVC_NO, 			inMap.getString(JBSbatCH_T_SEIKY_UCWK.SVC_KEI_NO));
			// 料金サービス識別コード
			outMap.setString(JBSbatACIFM105.SVC_SKBT_CD, 		JACStrConst.KARA_MOJI);
			// 料金コースコード
			outMap.setString(JBSbatACIFM105.PCRS_CD, 			inMap.getString(JBSbatCH_T_SEIKY_UCWK.PCRS_CD));
			// 料金サービスコード
			outMap.setString(JBSbatACIFM105.PRC_SVC_CD, 		inMap.getString(JBSbatCH_T_SEIKY_UCWK.PRC_SVC_CD));
			// 精算内容ソートキー
			outMap.setString(JBSbatACIFM105.SSN_NYO_SORT_KEY, 	JACStrConst.SSN_NYO_SORT_KEY_PAY);
			// 精算内容-SSN_NYO
			outMap.setString(JBSbatACIFM105.SSN_NYO, 			JACStrConst.SSN_NYO_PAY);
			// 料金項目コード
			outMap.setString(JBSbatACIFM105.PRC_KMK_CD, 		inMap.getString(JBSbatCH_T_SEIKY_UCWK.PRC_KMK_CD));
			// 徴収パターンコード
			outMap.setString(JBSbatACIFM105.COLLECT_PATTERN_CD, JACStrConst.KARA_MOJI);
			// 料金
			outMap.setString(JBSbatACIFM105.PRC, 				inMap.getBigDecimal(JBSbatCH_T_SEIKY_UCWK.AMNT));
			// 利用開始日
			outMap.setString(JBSbatACIFM105.USE_STAYMD, 		inMap.getString(JBSbatCH_T_SEIKY_UCWK.USE_STAYMD));
			// 利用終了日
			outMap.setString(JBSbatACIFM105.USE_ENDYMD, 		inMap.getString(JBSbatCH_T_SEIKY_UCWK.USE_ENDYMD));
			// サービス開始日
			outMap.setString(JBSbatACIFM105.SVC_STAYMD, 		JACStrConst.KARA_MOJI);
			// 初回課金開始日
			outMap.setString(JBSbatACIFM105.FIRST_CHRG_STAYMD, 	JACStrConst.KARA_MOJI);
			// サービス解約日
			outMap.setString(JBSbatACIFM105.SVC_DSL_YMD, 		JACStrConst.KARA_MOJI);
			// サービス解約理由
			outMap.setString(JBSbatACIFM105.SVC_DLRE, 			JACStrConst.KARA_MOJI);
			// サービス回復日
			outMap.setString(JBSbatACIFM105.SVC_KAIHK_DAY, 		JACStrConst.KARA_MOJI);
			// 利用日数
			outMap.setString(JBSbatACIFM105.USE_DAY_CNT, 		JACStrConst.KARA_MOJI);
			// 利用不可日数
			outMap.setString(JBSbatACIFM105.USE_FAIL_DAY_CNT,	JACStrConst.KARA_MOJI);
			// 相対区分
			outMap.setString(JBSbatACIFM105.AIT_DIV, 			JACStrConst.KARA_MOJI);
			// 締め日
			outMap.setString(JBSbatACIFM105.SIME_DAY, 			JACStrConst.KARA_MOJI);
			// 事業者コード
			outMap.setString(JBSbatACIFM105.JIGYOSHA_CD, 		JACStrConst.KARA_MOJI);
			// 事業者契約コード
			outMap.setString(JBSbatACIFM105.JIGYOSHA_KEI_CD, 	JACStrConst.KARA_MOJI);
			// 利用不可適用方法
			outMap.setString(JBSbatACIFM105.USE_APLY_KH_CD, 	JACStrConst.USE_FAIL_APLY_WAY_CD_ALL);
			// 前受相殺優先順位
			outMap.setString(JBSbatACIFM105.MAE_YUSEN_JUN, 		JACStrConst.MAEUK_SOSAI_YUSEN_JUN_0);
			// 割引優先順位
			outMap.setString(JBSbatACIFM105.WRIB_YUSEN_JUN, 	JACStrConst.WRIB_YUSEN_JUN_0);
			// 出力フラグを設定
			outMap.setOutFlg(true);
			
			// 出力共通電文に入出力インターフェースを設定する
			outputItem.addOutMapList(outMap);
			
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute]");
		return outputItem;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][terminal]");
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][terminal]");
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
