/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKBmpPreTchDataUpd
*	ソースファイル名	：JBSbatKKBmpPreTchDataUpd.java
*	作成者				：富士通　
*	作成日				：2012年08月21日
*＜機能概要＞
*　番ポなし番号事前通知データ更新部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v4.00.00	2012/08/21  FJ)井熊		【ANK-0495-00-00】フロント繋がり対応(電話番号事前通知)
*  										【ANK-1166-00-00】インプットマン対応
*  				2012/02/22	FJ)六車		【ST2-2013-0000978】
*  	v5.00.00	2013/05/15	FJ)掛木		【000-2013-0000000】ディレード処理追加
*	v5.00.01	2013/10/21	FJ)鈴木		【OM-2013-0002358】ディレード共通部品変更対応
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;
import java.util.HashMap;

import eo.business.common.JBSBatKKShoriIraiUtil;
import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.common.JCCbatShoriIraiUtil;
import eo.business.common.JKKBatCommon;
import eo.business.common.JKKBatConst;
import eo.business.util.file.JBSbatKKIFM241;
import eo.business.util.table.JBSbatCC_T_DLYD_TRN_REQ;
import eo.business.util.table.JBSbatKK_T_KANUORESO_HAKKO;
import eo.common.constant.JPCBatchMessageConstant;
import eo.common.util.JKKStringUtil;
import eo.framework.application.JBSbatBusinessError;
import eo.framework.application.JBSbatBusinessException;
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.JBSbatCheckUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKBmpPreTchDataUpd extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(加入御礼書発行)*/
	private static final String D_TBL_NAME_KK_T_KANUORESO_HAKKO = "KK_T_KANUORESO_HAKKO";

	/** テーブルアクセスクラス(加入御礼書発行)*/
	private JBSbatSQLAccess db_KK_T_KANUORESO_HAKKO = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/** システム年月日時分秒 .*/
	private String sys_date = null;
	/** オラクルシーケンス（加入御礼書発行番号）.*/
	private static final String SEQ_KANUORESO_HAKKO_NO = "SEQ_KANUORESO_HAKKO_NO";
	/** 加入御礼データ種別コード 電話番号事前通知書 .*/
	private static final String DATA_SBT_CD = "3";
	/** 送信除外フラグ 送信対象 .*/
	private static final Object FLG_STILL = "1";

	// 000-2013-0000000 2013/05/15 ADD START
	/** ディレイド処理結果：完了 .*/
	private static final String SUCCESS = "1";
	/** ディレイド処理結果：業務エラー .*/
	private static final String WORK_ERROR = "2";
	/** ディレイド処理結果：システムエラー .*/
	private static final String SYS_ERROR = "3";
	/** ディレイド処理結果コード .*/
	private String mRES_CD = null;
	
	/** ディレイドジョブ依頼ＩＤ .*/
	private String mREQ_JOB_ID = null;
	
	/** シェル処理結果コード：正常 .*/
	private static final String RES_CD_OK = "0";
	/** シェル処理結果コード：業務エラー：8 .*/
	private static final String RES_CD_8 = "8";
	/** シェル処理結果コード：業務エラー：127 .*/
	private static final String RES_CD_127 = "127";
	
	/** シェル処理結果ＦＬＧ .*/
	private boolean mSHORI_ERR_FLG = false;
	// 000-2013-0000000 2013/05/15 END START

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_KANUORESO_HAKKO = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KANUORESO_HAKKO);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		// システム年月日時分秒を取得
		sys_date = JKKBatCommon.getSysDateTimeStamp();
		

		// 000-2013-0000000 2013/05/15 ADD START
		if(super.freeItem != null && !"".equals(super.freeItem))
		{
			// フリーパラメータからジョブIDとシェル処理結果コード取得
			String[] str = super.freeItem.split(JKKBatConst.S_PARAM_DELIM);
			if(str.length == 2)
			{
				// ジョブＩＤ取得
				this.mREQ_JOB_ID = str[0];
				
				// 処理結果を取得
				if(RES_CD_OK.equals(str[1]))
				// 処理結果が「0」
				{
					// ディレイド処理結果 正常完了
					this.mRES_CD = SUCCESS;
				}
				else if(RES_CD_8.equals(str[1]) || RES_CD_127.equals(str[1]))
				// 処理結果が「8」もしくは「127」
				{
					//ディレイド処理結果 業務エラー
					this.mRES_CD = WORK_ERROR;
				}
				else
				// 処理結果が不明なコード
				{
					// ディレイド処理結果 システムエラー
					this.mRES_CD = SYS_ERROR;
				}

				// ディレイド処理依頼取得
// 2013.10.21 OM-2013-0002358 mod start
//				ArrayList<HashMap<String,Object>> arrayList = JCCbatShoriIraiUtil.getShoriIraiInfo(super.commonItem, mREQ_JOB_ID);
				ArrayList<HashMap<String,Object>> arrayList = JBSBatKKShoriIraiUtil.getShoriIraiInfo(super.commonItem, mREQ_JOB_ID);
// 2013.10.21 OM-2013-0002358 mod end
				if(arrayList != null)
				{
// 2013.10.21 OM-2013-0002358 mod start
//					HashMap<String, Object> resutlMap = arrayList.get(0);
//					String shori_id = resutlMap.get(JBSbatCC_T_DLYD_TRN_REQ.DLYD_TRN_REQ_NO).toString();
//					// ディレイド処理結果更新
//					JCCbatShoriIraiUtil.updateShoriIraiResult(super.commonItem, shori_id, this.mRES_CD, null);

					// 取得した件数分、更新する。（２重起動防止しているので１件のはず）
					for (HashMap<String, Object> resutlMap : arrayList) {
						String shori_id = resutlMap.get(JBSbatCC_T_DLYD_TRN_REQ.DLYD_TRN_REQ_NO).toString();
						if(! JKKStringUtil.isNullBlank(shori_id)) {
							// ディレイド処理結果更新
							JCCbatShoriIraiUtil.updateShoriIraiResult(super.commonItem, shori_id, this.mRES_CD, null);
						}
					}
// 2013.10.21 OM-2013-0002358 mod end
					
					// 先行ＪＯＢが正常終了しているかチェック
					if(!RES_CD_OK.equals(str[1]) && !RES_CD_8.equals(str[1]))
					{
						// 先行ＪＯＢの処理結果が正常、マイナーエラー以上はこのバッチを終了
						this.mSHORI_ERR_FLG = true;
					}
				}
				else
				{
					// 処理依頼がないのでこのバッチを終了
					this.mSHORI_ERR_FLG = true;;
				}
			}
		}
		// 000-2013-0000000 2013/05/15 ADD END
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		// 000-2013-0000000 2013/05/15 ADD START
		// ディレイド処理依頼がないもしくは先行ジョブがエラーなので処理スキップ
		if(this.mSHORI_ERR_FLG)
		{
			return null;
		}
		// 000-2013-0000000 2013/05/15 ADD END
		
		// 入力レコードに異常があった場合
		if (inMap.isInputErrorFlg())
		{
			// TAI-2013-0000143 2013/02/07 MOD START
			// 業務エラーログ出力
//			throw new JBSbatBusinessError();
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0100AE,
						new String[] {"番ポなし番号事前通知データ(KKIFM241001.csv)"});
			// TAI-2013-0000143 2013/02/07 MOD END
		}
		
		// 単項目チェック関数呼出
		if (!isSingleCheckKKIFM241_INF1(inMap.getMap(), this.getItemvalueMap()))
		{
			//ST2-2013-0000978 2013/02/22 START
			//throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0090TE,
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0010CW,
					new String[]{ "番ポなし番号事前通知データ"});
			// エラーフラグ設定
			super.commonItem.setErrFlg(true);
			return null;
			//ST2-2013-0000978 2013/02/22 END
		}
		
		// 入力レコードを全項目登録する
		this.executeKK_T_KANUORESO_HAKKO_PKINSERT(inMap);
		
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_KANUORESO_HAKKO.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		
		super.commonItem.isErrFlg();
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 *入力情報（番ポなし番号事前通知データ）の単項目チェックを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.単項目チェックを行います。<br>
	 * 
	 * 2.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		rsMap:(項目、値)を(key、value)として、データをrsMapに入れます
	 *		itemvalueMap:埋め込み文字の値をitemvalueMapに入れます。キーの値は、以下に説明します。
	 *			 TXT-KKIFM241-INF1.SVC_KEI_NO					番ポなし番号事前通知データ.サービス契約番号
	 *			 TXT-KKIFM241-INF1.LETTER_SBT_CD				番ポなし番号事前通知データ.レター種別コード
	 *			 TXT-KKIFM241-INF1.MSKMSHO_DTL_NO				番ポなし番号事前通知データ.申込書明細番号
	 *			 TXT-KKIFM241-INF1.CUST_NM						番ポなし番号事前通知データ.お客様名
	 *			 TXT-KKIFM241-INF1.PCD							番ポなし番号事前通知データ.契約者郵便番号
	 *			 TXT-KKIFM241-INF1.BNCHIGO						番ポなし番号事前通知データ.契約者番地号
	 *			 TXT-KKIFM241-INF1.TYPE_CD						番ポなし番号事前通知データ.契約者タイプコード
	 *			 TXT-KKIFM241-INF1.KAISEN_PLACE_PCD				番ポなし番号事前通知データ.回線場所郵便番号
	 *			 TXT-KKIFM241-INF1.KAISEN_PLACE_BNCHIGO			番ポなし番号事前通知データ.回線場所番地号
	 *			 TXT-KKIFM241-INF1.KISN_PLC_AD_MI_FIX_FLG		番ポなし番号事前通知データ.回線場所住所未確定フラグ
	 *			 TXT-KKIFM241-INF1.KOPT_TELNO_1					番ポなし番号事前通知データ.ＫＯＰＴ電話番号１
	 *			 TXT-KKIFM241-INF1.BMP_UM_1						番ポなし番号事前通知データ.番号ポータビリティ有無１
	 *			 TXT-KKIFM241-INF1.KOPT_TELNO_2					番ポなし番号事前通知データ.ＫＯＰＴ電話番号２
	 *			 TXT-KKIFM241-INF1.BMP_UM_2						番ポなし番号事前通知データ.番号ポータビリティ有無２
	 *			 TXT-KKIFM241-INF1.TEL_SVKEIUW_SHOSA_ZM_FLG_1	番ポなし番号事前通知データ.電話サービス契約内訳照査済フラグ１
	 *			 TXT-KKIFM241-INF1.TEL_SVKEIUW_SHOSA_ZM_FLG_2	番ポなし番号事前通知データ.電話サービス契約内訳照査済フラグ２
	 * </pre>
	 * <p>
	 * @param rsMap 入力データ（TXT又はDB）を格納されたHashMap。
	 * @param itemvalueMap エラーメッセージに関する項目値を格納されたHashMap。
	 * @return  boolean trueである場合、エラーがありません。falseである場合、エラーを発生しました。
	 */
	@SuppressWarnings("unchecked")
	private boolean isSingleCheckKKIFM241_INF1(HashMap rsMap, HashMap itemvalueMap)
	{
		// 単項目チェックを行います
		String strValue = null;

		// サービス契約番号項目チェック
		strValue = (String)rsMap.get("SVC_KEI_NO");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0060TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.SVC_KEI_NO")});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "10"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.SVC_KEI_NO")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0080TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.SVC_KEI_NO")});
			return false;
		}

		// レター種別コード項目チェック
		strValue = (String)rsMap.get("LETTER_SBT_CD");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0060TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.LETTER_SBT_CD")});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.LETTER_SBT_CD")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakusuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0080TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.LETTER_SBT_CD")});
			return false;
		}

		// 申込書明細番号項目チェック
		strValue = (String)rsMap.get("MSKMSHO_DTL_NO");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0060TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.MSKMSHO_DTL_NO")});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "10"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.MSKMSHO_DTL_NO")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji8"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0080TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.MSKMSHO_DTL_NO")});
			return false;
		}

		// お客様名項目チェック
		strValue = (String)rsMap.get("CUST_NM");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0060TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.CUST_NM")});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "121"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.CUST_NM")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"name_address"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0080TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.CUST_NM")});
			return false;
		}

		// 契約者郵便番号項目チェック
		strValue = (String)rsMap.get("PCD");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0060TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.PCD")});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "7"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.PCD")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakusuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0080TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.PCD")});
			return false;
		}

		// 契約者番地号項目チェック
		strValue = (String)rsMap.get("BNCHIGO");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0060TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.BNCHIGO")});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "61"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.BNCHIGO")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"name_address"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0080TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.BNCHIGO")});
			return false;
		}

		// 契約者タイプコード項目チェック
		strValue = (String)rsMap.get("TYPE_CD");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0060TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.TYPE_CD")});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.TYPE_CD")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0080TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.TYPE_CD")});
			return false;
		}

		// 回線場所郵便番号項目チェック
		strValue = (String)rsMap.get("KAISEN_PLACE_PCD");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0060TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.KAISEN_PLACE_PCD")});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "7"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.KAISEN_PLACE_PCD")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakusuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0080TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.KAISEN_PLACE_PCD")});
			return false;
		}

		// 回線場所番地号項目チェック
		strValue = (String)rsMap.get("KAISEN_PLACE_BNCHIGO");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0060TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.KAISEN_PLACE_BNCHIGO")});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "61"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.KAISEN_PLACE_BNCHIGO")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"name_address"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0080TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.KAISEN_PLACE_BNCHIGO")});
			return false;
		}

		// 回線場所住所未確定フラグ項目チェック
		strValue = (String)rsMap.get("KISN_PLC_AD_MI_FIX_FLG");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0060TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.KISN_PLC_AD_MI_FIX_FLG")});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.KISN_PLC_AD_MI_FIX_FLG")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0080TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.KISN_PLC_AD_MI_FIX_FLG")});
			return false;
		}

		// ＫＯＰＴ電話番号１項目チェック
		strValue = (String)rsMap.get("KOPT_TELNO_1");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0060TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.KOPT_TELNO_1")});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "11"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.KOPT_TELNO_1")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"tel2"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0080TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.KOPT_TELNO_1")});
			return false;
		}

		// 番号ポータビリティ有無１項目チェック
		strValue = (String)rsMap.get("BMP_UM_1");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0060TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.BMP_UM_1")});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.BMP_UM_1")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0080TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.BMP_UM_1")});
			return false;
		}

		// ＫＯＰＴ電話番号２項目チェック
		strValue = (String)rsMap.get("KOPT_TELNO_2");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "11"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.KOPT_TELNO_2")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"tel2"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0080TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.KOPT_TELNO_2")});
			return false;
		}

		// 番号ポータビリティ有無２項目チェック
		strValue = (String)rsMap.get("BMP_UM_2");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.BMP_UM_2")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0080TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.BMP_UM_2")});
			return false;
		}

		// 電話サービス契約内訳照査済フラグ１項目チェック
		strValue = (String)rsMap.get("TEL_SVKEIUW_SHOSA_ZM_FLG_1");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0060TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.TEL_SVKEIUW_SHOSA_ZM_FLG_1")});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.TEL_SVKEIUW_SHOSA_ZM_FLG_1")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0080TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.TEL_SVKEIUW_SHOSA_ZM_FLG_1")});
			return false;
		}

		// 電話サービス契約内訳照査済フラグ２項目チェック
		strValue = (String)rsMap.get("TEL_SVKEIUW_SHOSA_ZM_FLG_2");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.TEL_SVKEIUW_SHOSA_ZM_FLG_2")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0080TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.TEL_SVKEIUW_SHOSA_ZM_FLG_2")});
			return false;
		}

		// 異動区分項目チェック
		strValue = (String)rsMap.get("IDO_DIV");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0060TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.IDO_DIV")});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "5"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.IDO_DIV")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0080TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM241-INF1.IDO_DIV")});
			return false;
		}

		return true;
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	加入御礼書発行番号					KANUORESO_HAKKO_NO
	 *		 	加入御礼データ種別コード			KANUORE_DATA_SBT_CD
	 *		 	データ抽出年月日時分秒				DATA_CHSHT_DTM
	 *		 	送信除外フラグ						SEND_JGI_FLG
	 *		 	ＳＹＳＩＤ							SYSID
	 *		 	サービス契約番号					SVC_KEI_NO
	 *		 	レター種別コード					LETTER_SBT_CD
	 *		 	サービスコード						SVC_CD
	 *		 	料金グループコード					PRC_GRP_CD
	 *		 	料金コースコード					PCRS_CD
	 *		 	料金プランコード					PPLAN_CD
	 *		 	申込書番号							MSKMSHO_NO
	 *		 	お客様名							CUST_NM
	 *		 	お客様カナ名						CUST_KANA
	 *		 	契約者郵便番号						KEISHA_PCD
	 *		 	契約者都道府県名					KEISHA_STATE_NM
	 *		 	契約者市区町村名					KEISHA_CITY_NM
	 *		 	契約者大字通称名					KEISHA_OAZTSU_NM
	 *		 	契約者字丁目名						KEISHA_AZCHO_NM
	 *		 	契約者番地号						KEISHA_BNCHIGO
	 *		 	契約者住所補記・建物名				KEISHA_ADRTTM
	 *		 	契約者住所補記・部屋番号			KEISHA_ADRRM
	 *		 	契約者タイプコード					KEISHA_TYPE_CD
	 *		 	回線場所郵便番号					KAISEN_PLACE_PCD
	 *		 	回線場所都道府県名					KAISEN_PLACE_STATE_NM
	 *		 	回線場所市区町村名					KAISEN_PLACE_CITY_NM
	 *		 	回線場所大字通称名					KAISEN_PLACE_OAZTSU_NM
	 *		 	回線場所字丁目名					KAISEN_PLACE_AZCHO_NM
	 *		 	回線場所番地号						KAISEN_PLACE_BNCHIGO
	 *		 	回線場所住所補記・建物名			KAISEN_PLACE_ADRTTM
	 *		 	回線場所住所補記・部屋番号			KAISEN_PLACE_ADRRM
	 *		 	回線場所住所未確定フラグ			KISN_PLC_AD_MI_FIX_FLG
	 *		 	ＫＯＰＴ電話番号１					KOPT_TELNO_1
	 *		 	番号ポータビリティ有無１			BMP_UM_1
	 *		 	電話サービス契約内訳照査済フラグ１	TEL_SVKEIUW_SHOSA_ZM_FLG_1
	 *		 	ＫＯＰＴ電話番号２					KOPT_TELNO_2
	 *		 	番号ポータビリティ有無２			BMP_UM_2
	 *		 	電話サービス契約内訳照査済フラグ２	TEL_SVKEIUW_SHOSA_ZM_FLG_2
	 * </pre>
	 * <p>
	 * @param inMap 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_KANUORESO_HAKKO_PKINSERT(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		// 更新用オブジェクト作成
		JBSbatCommonDBInterface paMap = new JBSbatCommonDBInterface();
		
		// シーケンス番号を取得
		String hakko_no = JCCBatCommon.getFormatedNextSeq(super.commonItem, SEQ_KANUORESO_HAKKO_NO, "", 12);
		
		// 入力データをマッピングする
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.KANUORESO_HAKKO_NO, hakko_no);
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.KANUORE_DATA_SBT_CD, DATA_SBT_CD);
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.DATA_CHSHT_DTM, sys_date);
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.SEND_JGI_FLG, FLG_STILL);
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.SYSID, inMap.get(JBSbatKKIFM241.SYSID));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.SVC_KEI_NO, inMap.get(JBSbatKKIFM241.SVC_KEI_NO));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.LETTER_SBT_CD, inMap.get(JBSbatKKIFM241.LETTER_SBT_CD));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.SVC_CD, inMap.get(JBSbatKKIFM241.SVC_CD));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.PRC_GRP_CD, inMap.get(JBSbatKKIFM241.PRC_GRP_CD));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.PCRS_CD, inMap.get(JBSbatKKIFM241.PCRS_CD));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.PPLAN_CD, inMap.get(JBSbatKKIFM241.PPLAN_CD));
		// 申込書番号のカラムに申込書明細番号を入れる仕様
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.MSKMSHO_NO, inMap.get(JBSbatKKIFM241.MSKMSHO_DTL_NO));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.CUST_NM, inMap.get(JBSbatKKIFM241.CUST_NM));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.CUST_KANA, inMap.get(JBSbatKKIFM241.CUST_KANA));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.KEISHA_PCD, inMap.get(JBSbatKKIFM241.PCD));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.KEISHA_STATE_NM, inMap.get(JBSbatKKIFM241.STATE_NM));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.KEISHA_CITY_NM, inMap.get(JBSbatKKIFM241.CITY_NM));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.KEISHA_OAZTSU_NM, inMap.get(JBSbatKKIFM241.OAZTSU_NM));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.KEISHA_AZCHO_NM, inMap.get(JBSbatKKIFM241.AZCHO_NM));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.KEISHA_BNCHIGO, inMap.get(JBSbatKKIFM241.BNCHIGO));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.KEISHA_ADRTTM, inMap.get(JBSbatKKIFM241.ADRTTM));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.KEISHA_ADRRM, inMap.get(JBSbatKKIFM241.ADRRM));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.KEISHA_TYPE_CD, inMap.get(JBSbatKKIFM241.TYPE_CD));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.KAISEN_PLACE_PCD, inMap.get(JBSbatKKIFM241.KAISEN_PLACE_PCD));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.KAISEN_PLACE_STATE_NM, inMap.get(JBSbatKKIFM241.KAISEN_PLACE_STATE_NM));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.KAISEN_PLACE_CITY_NM, inMap.get(JBSbatKKIFM241.KAISEN_PLACE_CITY_NM));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.KAISEN_PLACE_OAZTSU_NM, inMap.get(JBSbatKKIFM241.KAISEN_PLACE_OAZTSU_NM));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.KAISEN_PLACE_AZCHO_NM, inMap.get(JBSbatKKIFM241.KAISEN_PLACE_AZCHO_NM));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.KAISEN_PLACE_BNCHIGO, inMap.get(JBSbatKKIFM241.KAISEN_PLACE_BNCHIGO));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.KAISEN_PLACE_ADRTTM, inMap.get(JBSbatKKIFM241.KAISEN_PLACE_ADRTTM));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.KAISEN_PLACE_ADRRM, inMap.get(JBSbatKKIFM241.KAISEN_PLACE_ADRRM));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.KISN_PLC_AD_MI_FIX_FLG, inMap.get(JBSbatKKIFM241.KISN_PLC_AD_MI_FIX_FLG));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.KOPT_TELNO_1, inMap.get(JBSbatKKIFM241.KOPT_TELNO_1));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.BMP_UM_1, inMap.get(JBSbatKKIFM241.BMP_UM_1));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.TEL_SVKEIUW_SHOSA_ZM_FLG_1, inMap.get(JBSbatKKIFM241.TEL_SVKEIUW_SHOSA_ZM_FLG_1));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.KOPT_TELNO_2, inMap.get(JBSbatKKIFM241.KOPT_TELNO_2));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.BMP_UM_2, inMap.get(JBSbatKKIFM241.BMP_UM_2));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.TEL_SVKEIUW_SHOSA_ZM_FLG_2, inMap.get(JBSbatKKIFM241.TEL_SVKEIUW_SHOSA_ZM_FLG_2));
		paMap.setValue(JBSbatKK_T_KANUORESO_HAKKO.IDO_DIV, inMap.get(JBSbatKKIFM241.IDO_DIV));
		
		// DBアクセスを実行します
		db_KK_T_KANUORESO_HAKKO.insertByPrimaryKeys(paMap);
	}

	/**
	 * エラーメッセージに関する項目値を格納されたHashMap<String, String>を生成します。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.エラーメッセージに関する項目値を格納されたHashMapを生成する。<br>
	 *
	 * 2.エラーメッセージに関する項目値を格納されたHashMapに値を設定する。<br>
	 * </pre>
	 * <p>
	 * @return itemvalueMap エラーメッセージに関する項目値を格納されたHashMap
	 */
	private HashMap<String, String> getItemvalueMap()
	{
		// エラーメッセージに関する項目値が格納されたHashMapを設定
		HashMap<String, String> itemvalueMap = new HashMap<String, String>();
		itemvalueMap.put("TXT-KKIFM241-INF1.SVC_KEI_NO", "番ポなし番号事前通知データ.サービス契約番号");
		itemvalueMap.put("TXT-KKIFM241-INF1.LETTER_SBT_CD", "番ポなし番号事前通知データ.レター種別コード");
		itemvalueMap.put("TXT-KKIFM241-INF1.MSKMSHO_DTL_NO", "番ポなし番号事前通知データ.申込書明細番号");
		itemvalueMap.put("TXT-KKIFM241-INF1.CUST_NM", "番ポなし番号事前通知データ.お客様名");
		itemvalueMap.put("TXT-KKIFM241-INF1.PCD", "番ポなし番号事前通知データ.契約者郵便番号");
		itemvalueMap.put("TXT-KKIFM241-INF1.BNCHIGO", "番ポなし番号事前通知データ.契約者番地号");
		itemvalueMap.put("TXT-KKIFM241-INF1.TYPE_CD", "番ポなし番号事前通知データ.契約者タイプコード");
		itemvalueMap.put("TXT-KKIFM241-INF1.KAISEN_PLACE_PCD", "番ポなし番号事前通知データ.回線場所郵便番号");
		itemvalueMap.put("TXT-KKIFM241-INF1.KAISEN_PLACE_BNCHIGO", "番ポなし番号事前通知データ.回線場所番地号");
		itemvalueMap.put("TXT-KKIFM241-INF1.KISN_PLC_AD_MI_FIX_FLG", "番ポなし番号事前通知データ.住所未確定フラグ");
		itemvalueMap.put("TXT-KKIFM241-INF1.KOPT_TELNO_1", "番ポなし番号事前通知データ.ＫＯＰＴ電話番号１");
		itemvalueMap.put("TXT-KKIFM241-INF1.BMP_UM_1", "番ポなし番号事前通知データ.番号ポータビリティ有無１");
		itemvalueMap.put("TXT-KKIFM241-INF1.TEL_SVKEIUW_SHOSA_ZM_FLG_1", "番ポなし番号事前通知データ.電話サービス契約内訳照査済フラグ1");
		itemvalueMap.put("TXT-KKIFM241-INF1.KOPT_TELNO_2", "番ポなし番号事前通知データ.ＫＯＰＴ電話番号２");
		itemvalueMap.put("TXT-KKIFM241-INF1.BMP_UM_2", "番ポなし番号事前通知データ.番号ポータビリティ有無２");
		itemvalueMap.put("TXT-KKIFM241-INF1.TEL_SVKEIUW_SHOSA_ZM_FLG_2", "番ポなし番号事前通知データ.電話サービス契約内訳照査済フラグ２");
		itemvalueMap.put("TXT-KKIFM241-INF1.IDO_DIV", "番ポなし番号事前通知データ.異動区分");

		return itemvalueMap;
	}
}
