/*********************************************************************
*  All Rights reserved,Copyright (c) Fujitsu ,2016					 *
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCHMineoTkskUpd
*	ソースファイル名	：JBSbatCHMineoTkskUpd.java
*	作成者				：富士通　
*	作成日				：2016年11月02日
*＜機能概要＞
*　ｍｉｎｅｏ督促更新部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v28.00.00	2016/11/07  FJ)佐々木	【ANK-3033-00-00】mineoの利用停止・強制解約処理の自動化
*********************************************************************/
package eo.business.service;
import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatCHIFM273;
import eo.business.util.table.JBSbatCH_T_TOKUSOKU;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.db.JBSbatSQLAccess;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatCHMineoTkskUpd extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(督促)*/
	private static final String D_TBL_NAME_CH_T_TOKUSOKU = "CH_T_TOKUSOKU";

	/** テーブルアクセスクラス(督促)*/
	private JBSbatSQLAccess db_CH_T_TOKUSOKU = null;
	
	/**バッチ運用日更新*/
	private static final String OPDUPD = "1";
	
	/**null更新*/
	private static final String NULLUPD = "0";
	
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_CH_T_TOKUSOKU = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_TOKUSOKU);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/

		//mineo督促更新
		this.executeCH_T_TOKUSOKU_PKUPDATE(inMap);

		
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}
	
	/**
	 * 更新値設定
	 * 
	 * @param inMap 入力電文
	 * @param setMap 設定項目の値
	 * @param whereMap 条件項目の値
	 * @return 
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void setTokusokuUpdParam(JBSbatServiceInterfaceMap inMap, JBSbatCommonDBInterface setMap, JBSbatCommonDBInterface whereMap) throws Exception
	{
		
		//督促番号
		String tokusoku_no = inMap.getString(JBSbatCHIFM273.TOKUSOKU_NO);
		//mineo督促ステータス
		String mineostat = inMap.getString(JBSbatCHIFM273.MINEO_TKSKST);
		//mineo督促理由コード
		String mineoriyu = inMap.getString(JBSbatCHIFM273.MINEO_TKSK_RSN_CD);
		
		//mineo利用停止解除依頼年月日フラグ
		String mineo_use_stp_rls_req_flg = inMap.getString(JBSbatCHIFM273.MINEO_USE_STP_RLS_REQ_YMD);
		//mineo利用停止依頼年月日フラグ
		String mineo_use_stp_req_flg = inMap.getString(JBSbatCHIFM273.MINEO_USE_STP_REQ_YMD);
		//mineomineo強制解約依頼年月日フラグ
		String mineo_kyosei_dsl_req_flg = inMap.getString(JBSbatCHIFM273.MINEO_KYOSEI_DSL_REQ_YMD);

		//更新時のプライマリーキーの設定
		whereMap.setValue(JBSbatCH_T_TOKUSOKU.TOKUSOKU_NO,tokusoku_no);
		
		//更新用マップの設定
		//mineo督促ステータスを設定
		if (!("".equals(mineostat) || mineostat == null))
		{
			setMap.setValue(JBSbatCH_T_TOKUSOKU.MINEO_TKSKST,mineostat);
		}
		//mineo督促理由コードを設定
		if (!("".equals(mineoriyu) || mineoriyu == null))
		{
			setMap.setValue(JBSbatCH_T_TOKUSOKU.MINEO_TKSK_RSN_CD,mineoriyu);
		}
		//mineo利用停止解除依頼年月日を設定
		setParam(mineo_use_stp_rls_req_flg,JBSbatCH_T_TOKUSOKU.MINEO_USE_STP_RLS_REQ_YMD,setMap);
		
		//mineo利用停止依頼年月日を設定
		setParam(mineo_use_stp_req_flg,JBSbatCH_T_TOKUSOKU.MINEO_USE_STP_REQ_YMD,setMap);
		
		//mineo強制解約依頼年月日を設定
		setParam(mineo_kyosei_dsl_req_flg,JBSbatCH_T_TOKUSOKU.MINEO_KYOSEI_DSL_REQ_YMD,setMap);
		
	}

	/**
	 * 更新値判断
	 * 
	 * @param flg 更新フラグ
	 * @param tgKey	 更新値判断対象項目
	 * @param setMap 設定項目の値
	 * @return 
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void setParam(String flg,String tgKey, JBSbatCommonDBInterface setMap) throws Exception
	{
		//バッチ運用日で更新する場合
		if(flg.equals(OPDUPD))
		{
			setMap.setValue(tgKey,super.opeDate);
		}
		//null更新する場合
		else if(flg.equals(NULLUPD))
		{
			setMap.setValue(tgKey,"");
		}
		
		//フラグが未設定の場合は更新不要のため、設定しない
		return;
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_CH_T_TOKUSOKU.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	ｍｉｎｅｏ督促ステータス				MINEO_TKSKST
	 *		 	ｍｉｎｅｏ利用停止解除依頼年月日				MINEO_USE_STP_RLS_REQ_YMD
	 *		 	ｍｉｎｅｏ利用停止依頼年月日				MINEO_USE_STP_REQ_YMD
	 *		 	ｍｉｎｅｏ強制解約依頼年月日				MINEO_KYOSEI_DSL_REQ_YMD
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	TOKUSOKU_NO
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_TOKUSOKU_PKUPDATE(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		//更新用マップ
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		
		//督促ステータス更新時のパラメータ設定
		setTokusokuUpdParam(inMap, setMap, whereMap);
		
		// DBアクセスを実行します
		db_CH_T_TOKUSOKU.updateByPrimaryKeys(whereMap, setMap);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
