/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCKOutHryCstInfMake
*	ソースファイル名	：JBSbatCKOutHryCstInfMake.java
*	作成者				：富士通　
*	作成日				：2012年02月06日
*＜機能概要＞
*　外部不良顧客情報作成部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/02/06   FJ)藤本	新規作成
*	v4.00.00	2013/03/30   FJ)強矢	【IKK-2013-0000650】性能改善対応 (ST3-2012-0000490)
*	v4.00.01	2013/05/30   FJ)庭山	【ST4-2013-0000464】性能改善対応
*	v7.00.00	2014/03/11   FJ)橋本	【OM-2014-0000843】障害対応
*********************************************************************/
package eo.business.service;

import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatCKIFM004;
import eo.business.util.file.JBSbatCKIFM007;
import eo.business.util.table.JBSbatCK_T_CUST_HOJIN;
import eo.common.constant.JCKStrConst;
import eo.common.util.JZMAdEdit;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.item.JBSbatCommonDBInterface;
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 JBSbatCKOutHryCstInfMake extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(お客様＜法人＞)*/
	private static final String D_TBL_NAME_CK_T_CUST_HOJIN = "CK_T_CUST_HOJIN";

	/** テーブルアクセスクラス(お客様＜法人＞)*/
	private JBSbatSQLAccess db_CK_T_CUST_HOJIN = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_CK_T_CUST_HOJIN = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CK_T_CUST_HOJIN);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		super.logPrint.printDebugLog("execute_START");
		
		// 出力用クラスの生成
		JBSbatOutputItem out_item = new JBSbatOutputItem();
		
		// 出力ファイル用クラスを生成し、inputの情報を転機します。
		JBSbatServiceInterfaceMap out_map = new JBSbatServiceInterfaceMap();
		this.createOutFile(inMap, out_map);
		
		// 不良顧客登録コードが０４：契約者の場合
		if("04".equals(JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.HURYO_CUST_ADD_CD))))
		{
			// お客様の情報を付加します。
			this.createOutFileKeisha(inMap, out_map);
		}
		
		out_map.setOutFlg(true);
		out_item.addOutMapList(out_map);
		
		super.logPrint.printDebugLog("execute_END");
		
		return out_item;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_CK_T_CUST_HOJIN.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SYSID
	 *		 	GENE_ADD_DTM
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return JBSbatCommonDBInterface 検索の結果。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeCK_T_CUST_HOJIN_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SYSID", whereParam[0]);
		whereMap.setValue("GENE_ADD_DTM", whereParam[1]);

		// DBアクセスを実行します
		return db_CK_T_CUST_HOJIN.selectByPrimaryKeys(whereMap);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * 出力用不良顧客情報ファイルの編集を行います。
	 * 不良顧客情報ファイルの項目を全て出力用不良顧客情報ファイルへ転記します。
	 * 
	 * @param inMap inputの不良顧客お客様情報ファイル。
	 * @param outMap 出力用不良顧客情報ファイル。
	 * @throws Exception メソッド内で発生した例外全般。
	 */
	private void createOutFile(JBSbatServiceInterfaceMap inMap, JBSbatServiceInterfaceMap outMap) throws Exception
	{
		// 不良顧客番号
		outMap.setString(JBSbatCKIFM004.HURYO_CUST_NO, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.HURYO_CUST_NO)));
		// 不良顧客登録コード
		outMap.setString(JBSbatCKIFM004.HURYO_CUST_ADD_CD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.HURYO_CUST_ADD_CD)));
		// 加入者交換出力開始年月
		outMap.setString(JBSbatCKIFM004.KNYSHA_KOKAN_OUTPUT_STA_YM, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.KNYSHA_KOKAN_OUTPUT_STA_YM)));
		// ＳＹＳＩＤ
		outMap.setString(JBSbatCKIFM004.SYSID, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.SYSID)));
		// 請求契約番号
		outMap.setString(JBSbatCKIFM004.SEIKY_KEI_NO, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.SEIKY_KEI_NO)));
		// サービス契約番号
		outMap.setString(JBSbatCKIFM004.SVC_KEI_NO, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.SVC_KEI_NO)));
		// 顧客番号
		outMap.setString(JBSbatCKIFM004.CUST_NO, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.CUST_NO)));
		// 督促番号
		outMap.setString(JBSbatCKIFM004.TOKUSOKU_NO, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.TOKUSOKU_NO)));
		// 多重申込グループコード
		outMap.setString(JBSbatCKIFM004.TAJU_MSKM_GRP_CD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.TAJU_MSKM_GRP_CD)));
		// 契約者タイプコード
		outMap.setString(JBSbatCKIFM004.KEISHA_TYPE_CD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.KEISHA_TYPE_CD)));
		// 不良顧客名
		outMap.setString(JBSbatCKIFM004.HURYO_CUST_NM, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.HURYO_CUST_NM)));
		// 不良顧客カナ名
		outMap.setString(JBSbatCKIFM004.HURYO_CUST_KANA, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.HURYO_CUST_KANA)));
		// 不良顧客性別コード
		outMap.setString(JBSbatCKIFM004.HURYO_CUST_SEX_CD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.HURYO_CUST_SEX_CD)));
		// 不良顧客生年月日
		outMap.setString(JBSbatCKIFM004.HURYO_CUST_BIRTHD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.HURYO_CUST_BIRTHD)));
		// 不良顧客電話番号
		outMap.setString(JBSbatCKIFM004.HURYO_CUST_TELNO, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.HURYO_CUST_TELNO)));
		// 不良顧客移動電話番号
		outMap.setString(JBSbatCKIFM004.HURYO_CUST_MOVE_TELNO, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.HURYO_CUST_MOVE_TELNO)));
		// 不良顧客住所コード
		outMap.setString(JBSbatCKIFM004.HURYO_CUST_AD_CD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.HURYO_CUST_AD_CD)));
		// 不良顧客郵便番号
		outMap.setString(JBSbatCKIFM004.HURYO_CUST_PCD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.HURYO_CUST_PCD)));
		// 不良顧客都道府県名
		outMap.setString(JBSbatCKIFM004.HURYO_CUST_STATE_NM, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.HURYO_CUST_STATE_NM)));
		// 不良顧客市区町村名
		outMap.setString(JBSbatCKIFM004.HURYO_CUST_CITY_NM, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.HURYO_CUST_CITY_NM)));
		// 不良顧客大字通称名
		outMap.setString(JBSbatCKIFM004.HURYO_CUST_OAZTSU_NM, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.HURYO_CUST_OAZTSU_NM)));
		// 不良顧客字丁目名
		outMap.setString(JBSbatCKIFM004.HURYO_CUST_AZCHO_NM, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.HURYO_CUST_AZCHO_NM)));
		// 不良顧客住所名
		outMap.setString(JBSbatCKIFM004.HURYO_CUST_AD_NM, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.HURYO_CUST_AD_NM)));
		// 不良顧客番地号
		outMap.setString(JBSbatCKIFM004.HURYO_CUST_BNCHIGO, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.HURYO_CUST_BNCHIGO)));
		// 不良顧客住所補記・建物名
		outMap.setString(JBSbatCKIFM004.HURYO_CUST_ADRTTM, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.HURYO_CUST_ADRTTM)));
		// 不良顧客住所補記・部屋番号
		outMap.setString(JBSbatCKIFM004.HURYO_CUST_ADRRM, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.HURYO_CUST_ADRRM)));
		// 不良顧客住所手動入力フラグ
		outMap.setString(JBSbatCKIFM004.HRYCST_AD_MAN_INPUT_FLG, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.HRYCST_AD_MAN_INPUT_FLG)));
		// 職業コード
		outMap.setString(JBSbatCKIFM004.SHOKUGYO_CD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.SHOKUGYO_CD)));
		// 業種コード
		outMap.setString(JBSbatCKIFM004.GSHU_CD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.GSHU_CD)));
		// 親権者続柄コード
		outMap.setString(JBSbatCKIFM004.SKSHA_ZOKUGARA_CD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.SKSHA_ZOKUGARA_CD)));
		// 滞納額
		outMap.setString(JBSbatCKIFM004.NONPAY_AMNT, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.NONPAY_AMNT)));
		// 不良顧客事業者コード
		outMap.setString(JBSbatCKIFM004.HURYO_CUST_JIGYOSHA_CD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.HURYO_CUST_JIGYOSHA_CD)));
		// 不良顧客補足備考
		outMap.setString(JBSbatCKIFM004.HURYO_CUST_HSK_BIKO, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.HURYO_CUST_HSK_BIKO)));
		// OM-2014-0000843 2014/03/11 ADD START
		// 登録年月日時分秒
		outMap.setString(JBSbatCKIFM004.ADD_DTM, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.ADD_DTM)));
		// 登録オペレータアカウント
		outMap.setString(JBSbatCKIFM004.ADD_OPEACNT, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.ADD_OPEACNT)));
		// 更新年月日時分秒
		outMap.setString(JBSbatCKIFM004.UPD_DTM, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.UPD_DTM)));
		// 更新オペレータアカウント
		outMap.setString(JBSbatCKIFM004.UPD_OPEACNT, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.UPD_OPEACNT)));
		// 削除年月日時分秒
		outMap.setString(JBSbatCKIFM004.DEL_DTM, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.DEL_DTM)));
		// 削除オペレータアカウント
		outMap.setString(JBSbatCKIFM004.DEL_OPEACNT, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.DEL_OPEACNT)));
		// 登録運用年月日
		outMap.setString(JBSbatCKIFM004.ADD_UNYO_YMD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.ADD_UNYO_YMD)));
		// 登録処理ID
		outMap.setString(JBSbatCKIFM004.ADD_TRN_ID, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.ADD_TRN_ID)));
		// 更新運用年月日
		outMap.setString(JBSbatCKIFM004.UPD_UNYO_YMD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.UPD_UNYO_YMD)));
		// 更新処理ID
		outMap.setString(JBSbatCKIFM004.UPD_TRN_ID, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.UPD_TRN_ID)));
		// OM-2014-0000843 2014/03/11 ADD END
	}
	
	/**
	 * お客様情報の内容で出力用不良顧客情報ファイルの項目の編集を行います。
	 * 
	 * @param inMap inputの不良顧客お客様情報ファイル。
	 * @param outMap 出力用不良顧客情報ファイル。
	 * @throws Exception メソッド内で発生した例外全般。
	 */
	private void createOutFileKeisha(JBSbatServiceInterfaceMap inMap, JBSbatServiceInterfaceMap outMap) throws Exception
	{
		String sysid = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.SYSID));
		
		// 検索結果がある場合、以下の項目をお客様の情報で置き換える。
		if (isValueChk(inMap, JBSbatCKIFM007.CUST_SYSID))
		{
			// 契約者タイプコード
			String keisha_type_cd = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.CUST_KEISHA_TYPE_CD));
			outMap.setString(JBSbatCKIFM004.KEISHA_TYPE_CD, keisha_type_cd);
			// 不良顧客名 → お客様より「お客様名」を設定。
			outMap.setString(JBSbatCKIFM004.HURYO_CUST_NM, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.CUST_NM)));
			// 不良顧客カナ名 → お客様より「お客様カナ名」を設定。
			outMap.setString(JBSbatCKIFM004.HURYO_CUST_KANA, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.CUST_KANA)));
			// 不良顧客性別コード → お客様より「お客様性別コード」を設定。
			outMap.setString(JBSbatCKIFM004.HURYO_CUST_SEX_CD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.CUST_SEX_CD)));
			// 不良顧客生年月日 → お客様より「お客様生年月日」を設定。
			outMap.setString(JBSbatCKIFM004.HURYO_CUST_BIRTHD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.CUST_BIRTHD)));
			// 不良顧客電話番号 → お客様より「契約者電話番号」を設定。
			outMap.setString(JBSbatCKIFM004.HURYO_CUST_TELNO, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.KEISHA_TELNO)));
			// 不良顧客住所コード → お客様より「契約者住所コード」を設定。
			outMap.setString(JBSbatCKIFM004.HURYO_CUST_AD_CD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.KEISHA_AD_CD)));
			// 不良顧客郵便番号 → お客様より「契約者郵便番号」を設定。
			outMap.setString(JBSbatCKIFM004.HURYO_CUST_PCD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.KEISHA_PCD)));
			
			// お客様．契約者都道府県名
			String state_nm = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.KEISHA_STATE_NM));
			// お客様．契約者市区町村名
			String city_nm = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.KEISHA_CITY_NM));
			// お客様．契約者大字通称名
			String oaztsu_nm = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.KEISHA_OAZTSU_NM));
			// お客様．契約者字丁目名
			String azcho_nm = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.KEISHA_AZCHO_NM));
			// お客様．契約者番地号
			String bnchigo = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.KEISHA_BNCHIGO));
			// お客様．契約者住所補記・建物名
			String adrttm = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.KEISHA_ADRTTM));
			// お客様．契約者住所補記・部屋番号
			String adrrm = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.KEISHA_ADRRM));
			
			// 「契約者都道府県」〜「契約者住所補記・部屋番号」を結合し、項目長が121文字を超える場合はカットする。
			String cust_ad_nm = JZMAdEdit.getPtn01(state_nm, city_nm, oaztsu_nm, azcho_nm, bnchigo, adrttm, adrrm);
			if(121 < cust_ad_nm.length())
			{
				cust_ad_nm = cust_ad_nm.substring(0, 121);
			}
			
			// 不良顧客都道府県名 → お客様より「契約者都道府県名」を設定。
			outMap.setString(JBSbatCKIFM004.HURYO_CUST_STATE_NM, state_nm);
			// 不良顧客市区町村名 → お客様より「契約者市区町村名」を設定。
			outMap.setString(JBSbatCKIFM004.HURYO_CUST_CITY_NM, city_nm);
			// 不良顧客大字通称名 → お客様より「契約者大字通称名」を設定。
			outMap.setString(JBSbatCKIFM004.HURYO_CUST_OAZTSU_NM, oaztsu_nm);
			// 不良顧客字丁目名 → お客様より「契約者字丁目名」を設定。
			outMap.setString(JBSbatCKIFM004.HURYO_CUST_AZCHO_NM, azcho_nm);
			// 不良顧客住所名 → お客様より「契約者都道府県」〜「契約者住所補記・部屋番号」を結合し設定。
			outMap.setString(JBSbatCKIFM004.HURYO_CUST_AD_NM, cust_ad_nm);
			// 不良顧客番地号 → お客様より「契約者番地号」を設定。
			outMap.setString(JBSbatCKIFM004.HURYO_CUST_BNCHIGO, bnchigo);
			// 不良顧客住所補記・建物名 → お客様より「契約者住所補記・建物名」を設定。
			outMap.setString(JBSbatCKIFM004.HURYO_CUST_ADRTTM, adrttm);
			// 不良顧客住所補記・部屋番号 → お客様より「契約者住所補記・部屋番号」を設定。
			outMap.setString(JBSbatCKIFM004.HURYO_CUST_ADRRM, adrrm);
			
			// 不良顧客住所手動入力フラグ → お客様より「契約者住所手動入力フラグ」を設定。
			outMap.setString(JBSbatCKIFM004.HRYCST_AD_MAN_INPUT_FLG, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.KEISHA_AD_MAN_INPUT_FLG)));
			// OM-2014-0000843 2014/03/13 ADD START
			//更新を実施した場合、更新系項目に空白を設定
			//更新年月日時分秒
			outMap.setString(JBSbatCKIFM004.UPD_DTM, "");
			//更新オペレータアカウント
			outMap.setString(JBSbatCKIFM004.UPD_OPEACNT, "");
			//更新運用年月日
			outMap.setString(JBSbatCKIFM004.UPD_UNYO_YMD, "");
			//更新処理ID
			outMap.setString(JBSbatCKIFM004.UPD_TRN_ID, "");
			// OM-2014-0000843 2014/03/13 ADD END
			
			// 世代登録年月日時分秒
			String gene_add_dtm = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.CUST_GENE_ADD_DTM)).replace("\"", "");
			
			
			// お客様．契約者タイプコードが１：個人の場合
			if(JCKStrConst.CD00036_KOJIN.equals(keisha_type_cd))
			{
				// 検索結果がある場合、以下の項目をお客様<個人>の情報で置き換える。
				if (isValueChk(inMap, JBSbatCKIFM007.GENE_ADD_DTM))
				{
					// 職業コード → お客様<個人>より「職業コード」を設定。
					outMap.setString(JBSbatCKIFM004.SHOKUGYO_CD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.CUST_SHOKUGYO_CD)));
					// 業種コード → お客様<個人>より「勤務先業種コード」を設定。
					outMap.setString(JBSbatCKIFM004.GSHU_CD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.OFFC_GSHU_CD)));
				}
				else
				{
					super.logPrint.printDebugLog("お客様<個人>の検索結果がありませんでした。SYSID[" + sysid + "] GENE[" + gene_add_dtm + "]");
				}
			}
			else
			{
				// 職業コード → 空白を設定。
				outMap.setString(JBSbatCKIFM004.SHOKUGYO_CD, "");
				
				// １：個人以外の場合はお客様<法人>のPK検索を行います。
				String [] whereParam = {sysid, gene_add_dtm};
				JBSbatCommonDBInterface resultHojin = this.executeCK_T_CUST_HOJIN_PKSELECT(whereParam);
				
				// 検索結果がある場合、以下の項目をお客様<法人>の情報で置き換える。
				if(null != resultHojin)
				{
					// 業種コード → お客様<法人>より「業種コード」を設定。
					outMap.setString(JBSbatCKIFM004.GSHU_CD, JBSbatStringUtil.Rtrim(resultHojin.getString(JBSbatCK_T_CUST_HOJIN.GSHU_CD)));
				}
				else
				{
					super.logPrint.printDebugLog("お客様<法人>の検索結果がありませんでした。SYSID[" + sysid + "] GENE[" + gene_add_dtm + "]");
				}
			}
		}
		else
		{
			super.logPrint.printDebugLog("お客様の検索結果がありませんでした。SYSID：" + sysid);
		}
		
		// 検索結果がある場合、以下の項目を置き換える。
		if (isValueChk(inMap, JBSbatCKIFM007.CUST_SVC_KEI_NO))
		{
			// 不良顧客移動電話番号 → サービス契約内訳<eo64エア>より「PSN」を設定。
			outMap.setString(JBSbatCKIFM004.HURYO_CUST_MOVE_TELNO, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.PSN)));
		}
		else
		{
			String svc_kei_no = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatCKIFM007.SVC_KEI_NO));
			super.logPrint.printDebugLog("サービス契約内訳<eo64エア>の検索結果がありませんでした。サービス契約番号：" + svc_kei_no);
		}
	}
	
	/**
	 * 項目値の有無チェックを行います。
	 * 
	 * @param inMap inputの不良顧客お客様情報ファイル。
	 * @param key 項目のキー値。
	 * @return boolean
	 * @throws Exception メソッド内で発生した例外全般。
	 */
	private boolean isValueChk(JBSbatServiceInterfaceMap inMap, String key) throws Exception
	{
		String value = JBSbatStringUtil.Rtrim(inMap.getString(key)).replace("\"", "");
		
		if (0 == value.length())
		{
			return false;
		}
		
		return true;
	}
}
