/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCKNaiHuryoCstInfCst
*	ソースファイル名	：JBSbatCKNaiHuryoCstInfCst.java
*	作成者				：富士通　
*	作成日				：2012年01月28日
*＜機能概要＞
*　内部不良顧客情報抽出部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/01/28	FAP)神吉	新規作成
*	v3.00.00	2012/07/17	FAP)神吉	【ST2-2012-0001365】顧客電子ファイル管理登録対応
*********************************************************************/
package eo.business.service;

import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatCKIFM003;
import eo.business.util.table.JBSbatCK_T_HURYO_CUST;
import eo.common.constant.JPCBatchMessageConstant;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.file.JBSbatOutputFileUtil;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.util.JBSbatStringUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatCKNaiHuryoCstInfCst extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/**
	 *  出力ファイル格納先パス
	 */
	private String file_path = "";
	
	/** 
	 * ゼロ
	 */	
	private String zero = "0";
	
	/**
	 * カウント
	 */
	private int count = 0;

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		// フリー項目から格納先を取得します
		file_path = commonItem.getFreeItem();

		// 取得出来なかった場合、エラーとします。
		if (file_path.length() == 0)
		{
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0130CE, new String[]{"フリー項目：送信ファイル格納パス名"});
		}
		
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		super.logPrint.printDebugLog("execute_START");
		
		// 出力共通電文を生成する。
		JBSbatOutputItem outputBean = new JBSbatOutputItem();
		
		//入出力インターフェースオブジェクトを生成（内部不良顧客情報ファイル）
		JBSbatServiceInterfaceMap outmap = new JBSbatServiceInterfaceMap();
				
		String huryoCustKana = "";           // 不良顧客カナ名
		String huryoCustNm = "";             // 不良顧客名
		String huryoCustBirthd = "";         // 不良顧客生年月日
		String huryoCustSexCd = "";          // 不良顧客性別コード
		String huryoCustSexCdStr = "";       // 不良顧客性別コード文字列
		String huryoCustPcd = "";            // 不良顧客郵便番号
		String huryoCustAdNm = "";           // 不良顧客住所名
		String huryoCustAdCd = "";           // 不良顧客住所コード
		String huryoCustTelno = "";          // 不良顧客電話番号
		String huryoCustMoveTelno = "";      // 不良顧客移動電話番号
		String sysid = "";                   // 顧客番号
		String huryo_custJigyoshaCd = "";    // 事業者コード
		
		// 不良顧客カナ名
		huryoCustKana = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCK_T_HURYO_CUST.HURYO_CUST_KANA));
		// 不良顧客名
		huryoCustNm = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCK_T_HURYO_CUST.HURYO_CUST_NM));
		// 不良顧客生年月日
		huryoCustBirthd = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCK_T_HURYO_CUST.HURYO_CUST_BIRTHD));
		// 不良顧客性別コード
		huryoCustSexCd = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCK_T_HURYO_CUST.HURYO_CUST_SEX_CD));
		// 不良顧客郵便番号
		huryoCustPcd = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCK_T_HURYO_CUST.HURYO_CUST_PCD));
		// 不良顧客住所名
		huryoCustAdNm = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCK_T_HURYO_CUST.HURYO_CUST_AD_NM));
		// 不良顧客住所コード
		huryoCustAdCd = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCK_T_HURYO_CUST.HURYO_CUST_AD_CD));
		// 不良顧客電話番号
		huryoCustTelno = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCK_T_HURYO_CUST.HURYO_CUST_TELNO));
		// 不良顧客移動電話番号
		huryoCustMoveTelno = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCK_T_HURYO_CUST.HURYO_CUST_MOVE_TELNO));
		// 顧客番号
		sysid = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCK_T_HURYO_CUST.SYSID));
		// 事業者コード
		huryo_custJigyoshaCd = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCK_T_HURYO_CUST.HURYO_CUST_JIGYOSHA_CD));
		
		// 不良顧客性別コードが"1"または"2"の場合
		if("1".equals(huryoCustSexCd) || "2".equals(huryoCustSexCd))
		{
			// 「"0" + 不良顧客性別コード」を不良顧客性別コード文字列に設定
			huryoCustSexCdStr = zero + huryoCustSexCd;
		}
		else
		{
			// 空文字を不良顧客性別コード文字列に設定
			huryoCustSexCdStr = "";
		}
		
		// 内部不良顧客情報ファイル用項目へ設定
		outmap.setString(JBSbatCKIFM003.HURYO_CUST_KANA, huryoCustKana);				// 不良顧客カナ名
		outmap.setString(JBSbatCKIFM003.HURYO_CUST_NM, huryoCustNm);					// 不良顧客名
		outmap.setString(JBSbatCKIFM003.HURYO_CUST_BIRTHD, huryoCustBirthd);			// 不良顧客生年月日
		outmap.setString(JBSbatCKIFM003.HURYO_CUST_SEX_CD, huryoCustSexCdStr);			// 不良顧客性別コード
		outmap.setString(JBSbatCKIFM003.HURYO_CUST_PCD, huryoCustPcd);					// 不良顧客郵便番号
		outmap.setString(JBSbatCKIFM003.HURYO_CUST_AD_NM, huryoCustAdNm);				// 不良顧客住所名
		outmap.setString(JBSbatCKIFM003.HURYO_CUST_AD_CD, huryoCustAdCd);				// 不良顧客住所コード
		outmap.setString(JBSbatCKIFM003.HURYO_CUST_TELNO, huryoCustTelno);				// 不良顧客電話番号
		outmap.setString(JBSbatCKIFM003.HURYO_CUST_MOVE_TELNO, huryoCustMoveTelno);		// 不良顧客移動電話番号
		outmap.setString(JBSbatCKIFM003.SYSID, sysid);									// 顧客番号
		outmap.setString(JBSbatCKIFM003.HURYO_CUST_JIGYOSHA_CD, huryo_custJigyoshaCd);	// 事業者コード
		outmap.setString(JBSbatCKIFM003.NONPAY_AMNT, zero);								// 滞納金額
		
		//出力フラグを設定
		outmap.setOutFlg(true);
		
		//出力共通電文にコース変更適用日更新中間ファイルの設定
		outputBean.addOutMapList(outmap);
		
		count++;
		
		super.logPrint.printDebugLog("execute_END");
		return outputBean;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		
		// カウントが1件以上有る場合
		if(count > 0)
		{
			// 件数ファイルOBJの取得。
			JBSbatOutputFileUtil out_file_obj = commonItem.getOutPutFile2();
			
			// データ件数の出力。
			out_file_obj.write(super.opeDate.substring(2, 6) + "2119.csv");
		}

	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
