/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom					 *
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKAutoShosa
*	ソースファイル名	：JBSbatKKAutoShosa.java
*	作成者				：富士通　
*	作成日				：2011年06月26日
*＜機能概要＞
*　自動照査部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/06/26   富士通		新規作成
*	v1.00.01	2012/02/28   富士通		ST2-2012-0000272
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.model.base.jcc.util.JCCStringHandler;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JBSbatKKAxMRenkeiUtil;
import eo.business.common.JKKBatCommon;
import eo.business.util.table.JBSbatKK_T_AUTO_SHOSA_RSLT;
import eo.business.util.table.JBSbatKK_T_PRG;
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
import eo.business.util.table.JBSbatZM_M_WORK_PARAM_KNRI;
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.JBSbatOracleSeqUtil;
import eo.framework.util.JCCBatchEsbInterface;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKAutoShosa extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(サービス契約)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";

	//2012.02.28 Start
	/** テーブル(サービス契約排他制御)*/
	private static final String D_TBL_NAME_KK_T_SVKEI_EXC_CTRL = "KK_T_SVKEI_EXC_CTRL";
	//2012.02.28 End

	// IT2-2012-0001708 2012-11-26 ADD_START
	private static final String D_TBL_NAME_ZM_M_WORK_PARAM_KNRI = "ZM_M_WORK_PARAM_KNRI";
	// IT2-2012-0001708 2012-11-26 ADD_END
	
	/** テーブル(進捗)*/
	private static final String D_TBL_NAME_KK_T_PRG = "KK_T_PRG";

	/** テーブル(自動照査結果)*/
	private static final String D_TBL_NAME_KK_T_AUTO_SHOSA_RSLT = "KK_T_AUTO_SHOSA_RSLT";

	/** SQL定義キー(KK_SELECT_054)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_054 = "KK_SELECT_054";

	/** SQL定義キー(KK_SELECT_004)*/
	private static final String KK_T_PRG_KK_SELECT_004 = "KK_SELECT_004";

	/** SQL定義キー(KK_UPDATE_001)*/
	private static final String KK_T_AUTO_SHOSA_RSLT_KK_UPDATE_001 = "KK_UPDATE_001";

	/** SQL定義キー(KK_UPDATE_002)*/
	private static final String KK_T_SVC_KEI_KK_UPDATE_002 = "KK_UPDATE_002";

	/** SQL定義キー(KK_DELETE_001)*/
	private static final String KK_T_AUTO_SHOSA_RSLT_KK_DELETE_001 = "KK_DELETE_001";

	/** SQL定義キー(KK_UPDATE_003)*/
	private static final String KK_T_SVC_KEI_KK_UPDATE_003 = "KK_UPDATE_003";
	
	//2012.02.28 Start
	// 2012-06-11 IT1-2012-0000786 Start
//	/** SQL定義キー(KK_UPDATE_001)*/
//	private static final String KK_T_SVKEI_EXC_CTRL_KK_UPDATE_001 = "KK_UPDATE_001";
	/** SQL定義キー(KK_UPDATE_002)*/
	private static final String KK_T_SVKEI_EXC_CTRL_KK_UPDATE_002 = "KK_UPDATE_002";
	// 2012-06-11 IT1-2012-0000786 End
	//2012.02.28 End

	// IT2-2012-0001708 2012-11-26 ADD_START
	private static final String ZM_M_WORK_PARAM_KNRI_KK_SELECT_016 = "KK_SELECT_016";
	// IT2-2012-0001708 2012-11-26 ADD_END
	
	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;

	//2012.02.28 Start
	/** テーブルアクセスクラス(サービス契約排他制御)*/
	private JBSbatSQLAccess db_KK_T_SVKEI_EXC_CTRL = null;
	//2012.02.28 End

	/** テーブルアクセスクラス(進捗)*/
	private JBSbatSQLAccess db_KK_T_PRG = null;

	/** テーブルアクセスクラス(自動照査結果)*/
	private JBSbatSQLAccess db_KK_T_AUTO_SHOSA_RSLT = null;
	
	// IT2-2012-0001708 2012-11-26 ADD_START
	private JBSbatSQLAccess db_ZM_M_WORK_PARAM_KNRI = null;
	// IT2-2012-0001708 2012-11-26 ADD_END
	
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	/** 自動照査結果コード(自動照査可(キー情報))*/
	private static final String AUTO_SHOSA_CHK_OK_KEY = "00";
	/** 自動照査結果コード(自動照査可(キー情報))*/
	private static final String AUTO_SHOSA_OK_KEY = "01";
	/** 自動照査結果コード(自動照査不可(キー情報))*/
	private static final String AUTO_SHOSA_CHK_NG_KEY = "10";
	/** 自動照査結果コード(自動照査不可(データ情報))*/
	private static final String AUTO_SHOSA_CHK_NG_DATA = "11";
	/** 自動照査結果番号(シーケンス) */
	private static final String SEQ_AUTO_SHOSA_RSLT_NO = "SEQ_AUTO_SHOSA_RSLT_NO";
	/** 進捗(シーケンス) */
	//2012.02.28 Start
	private static final String SEQ_KK_T_PRG = "SEQ_PRG_NO";
	//2012.02.28 End
	/** サービス契約照査(処理ＯＫ)*/
	private static final String SVC_KEI_SHOSA_OK = "0";
	/** サービス契約照査(処理ＮＧ)*/
	private static final String SVC_KEI_SHOSA_NG = "1";
	/**サービス契約照査(取消)*/
	private static final String SVC_KEI_SHOSA_CLRE = "2";
	/** 進捗ステータス(OK) */
//	private static final String PRG_STAT_OK = "0900";
//	/** 進捗ステータス(取消) */
//	private static final String PRG_STAT_CL = "0901";
	/** 進捗ステータス(NG) */
	private static final String PRG_STAT_NG = "090E";

	// IT2-2012-0001708 2012-11-26 ADD_START
	/** 対応履歴登録ユーザ */
	private static final String TAIORRK_ADD_USER = "KK_TAIORRK_ADD_USER";
	// IT2-2012-0001708 2012-11-26 ADD_END
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_AUTO_SHOSA_RSLT = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_AUTO_SHOSA_RSLT);
		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		//2012.02.28 Start
		db_KK_T_SVKEI_EXC_CTRL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVKEI_EXC_CTRL);
		//2012.02.28 End
		db_KK_T_PRG = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_PRG);
		
		// IT2-2012-0001708 2012-11-26 ADD_START
		db_ZM_M_WORK_PARAM_KNRI =new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_WORK_PARAM_KNRI);
		// IT2-2012-0001708 2012-11-26 ADD_END
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		super.logPrint.printDebugLog("execute start");
		
		String autoShosaRsltNo = inMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.AUTO_SHOSA_RSLT_NO);
		String autoShosaRsltCD = inMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.AUTO_SHOSA_RSLT_CD);
		String svcKeiNo = inMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.SVC_KEI_NO);

		String log = autoShosaRsltNo + ":" + autoShosaRsltCD + ":" + svcKeiNo;
		
		super.logPrint.printDebugLog(log);
		
		//サービス契約の異動区分を取得
		String idoDiv = getIdoDivMap(svcKeiNo);
		//進捗の異動年月日を取得
		String idoDtm = getIdoDtmMap(svcKeiNo);
		
		//サービス契約照査チェック(API)への結果を受け取る変数です。
		ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
		
		//自動照査コードが処理OKのデータはサービス契約自動照査に渡す
		if(autoShosaRsltCD.equals(AUTO_SHOSA_CHK_OK_KEY))
		{
			//サービス契約照査チェック(API)への引数を設定し,呼び出します。
			list = svcKeiShosaCall(inMap);
			HashMap<String, Object> userData = (HashMap)list.get(0);
			ArrayList dataList = (ArrayList)userData.get("trgt_data_list");
			HashMap<String, String> data = (HashMap<String, String>)dataList.get(0);
			String outAutoShosaRsltCD = (String)data.get("status");
			
			//スタブクラス
			//String outAutoShosaRsltCD = execute(inMap, super.logPrint);
			
			if(outAutoShosaRsltCD.equals(SVC_KEI_SHOSA_OK))
			{
				//2012.02.28 Start
				String sysDateTime = JKKBatCommon.getSysDateTimeStamp();
				//2012.02.28 End
				//TEST
//				list = stubexecute(inMap, super.logPrint, "0");
				
				//サービス契約照査結果が「処理OK」
				//データ情報として照査結果を登録
				insertASROK(AUTO_SHOSA_OK_KEY, inMap, data);
				
				//2012.02.28 Start
				//サービス契約の自動照査処理結果コードを更新　は不要
//↓↓↓2012-10-01無効　ロット２ＩＴ疎通障害対応（指示書ＣＣ）で不具合↓↓↓
//				String[] param = new String[]{svcKeiNo, super.commonItem.getOpeDate()};
//				
//				//自動照査完了したので自動照査処理結果コードを1に。
//				executeKK_T_SVC_KEI_KK_UPDATE_003(param);
//				
//				//サービス契約排他制御を更新
//				//↓↓↓2012-05-08更新　巻@　指示書CC取込みのついで、処理ID対応漏れをフォロー↓↓↓
//				String[] param2 = new String[]{sysDateTime, svcKeiNo};		//旧：{sysDateTime, sysDateTime, batchUserId, svcKeiNo};
//				//↑↑↑2012-05-08更新　巻@　指示書CC取込みのついで、処理ID対応漏れをフォロー↑↑↑
//				// 2012-06-11 IT1-2012-0000786 Start
////				executeKK_T_SVKEI_EXC_CTRL_KK_UPDATE_001(param2);
//				executeKK_T_SVKEI_EXC_CTRL_KK_UPDATE_002(param2);
//				// 2012-06-11 IT1-2012-0000786 End
//↑↑↑2012-10-01無効　ロット２ＩＴ疎通障害対応（指示書ＣＣ）で不具合↑↑↑
				//2012.02.28 End

				// 2012.03.09 自動照査排他エラー対応 START
				super.commit();
				// 2012.03.09 自動照査排他エラー対応 END
				
				//↓↓↓2012-05-08追加　巻@　指示書取込み対応↓↓↓
				//指示書のＡｘＭデータ連携を行う
// OM-2013-0002649 2013/09/29
//				JBSbatKKAxMRenkeiUtil.callCKSV9001(
//						inMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.SYSID), super.commonItem, "自動照査");
				//↑↑↑2012-05-08追加　巻@　指示書取込み対応↑↑↑
// OM-2013-0002649 2013/09/29s
			}
			else if(outAutoShosaRsltCD.equals(SVC_KEI_SHOSA_NG))
			{
				//2012.02.28 Start
				String sysDateTime = JKKBatCommon.getSysDateTimeStamp();

				String[] param = null;
				//サービス契約の自動
				param = new String[]{svcKeiNo};
				//2012.02.28 End

				//自動照査コードが照査NGの場合はサービス契約の自動照査状態を不可にする
				executeKK_T_SVC_KEI_KK_UPDATE_002(param);

				param = new String[]{AUTO_SHOSA_CHK_NG_KEY, autoShosaRsltNo};

				//サービス契約照査結果が「処理NG」
				executeKK_T_AUTO_SHOSA_RSLT_KK_UPDATE_001(param);
				
//				list = stubexecute(inMap, super.logPrint, "1");
				
				//照査エラー情報を自動照査結果テーブルにサービス契約情報・照査エラー情報を登録します。
				insertASR(AUTO_SHOSA_CHK_NG_DATA, inMap, data.get("err_sbt_cd"), data.get("err_msg_id"));
				
				//2012.02.28 Start
				//自動照査完了したので自動照査処理結果コードを2に。
				//executeKK_T_SVC_KEI_KK_UPDATE_002(param);
				
				//サービス契約排他制御を更新
				//↓↓↓2012-05-08更新　巻@　指示書CC取込みのついで、処理ID対応漏れをフォロー↓↓↓
				String[] param2 = new String[]{sysDateTime, svcKeiNo};		//旧：{sysDateTime, sysDateTime, batchUserId, svcKeiNo};
				//↑↑↑2012-05-08更新　巻@　指示書CC取込みのついで、処理ID対応漏れをフォロー↑↑↑
				// 2012-06-11 IT1-2012-0000786 Start
//				executeKK_T_SVKEI_EXC_CTRL_KK_UPDATE_001(param2);
				executeKK_T_SVKEI_EXC_CTRL_KK_UPDATE_002(param2);
				// 2012-06-11 IT1-2012-0000786 End
				//2012.02.28 End

				// 2012.03.09 自動照査排他エラー対応 START
				super.commit();
				// 2012.03.09 自動照査排他エラー対応 END
			}
			else if(outAutoShosaRsltCD.equals(SVC_KEI_SHOSA_CLRE))
			{
				String[] param = new String[]{autoShosaRsltNo};
				//サービス契約照査結果が「取消」
				executeKK_T_AUTO_SHOSA_RSLT_KK_DELETE_001(param);
			}
		}
		else
		{
			//2012.02.28 Start
			String sysDateTime = JKKBatCommon.getSysDateTimeStamp();

			//サービス契約の自動
			String[] param = new String[]{svcKeiNo};
			
			//自動照査完了したので自動照査処理結果コードを2に。
			executeKK_T_SVC_KEI_KK_UPDATE_002(param);
			
			//サービス契約排他制御を更新
			//↓↓↓2012-05-08更新　巻@　指示書CC取込みのついで、処理ID対応漏れをフォロー↓↓↓
			String[] param2 = new String[]{sysDateTime, svcKeiNo};		//旧：{sysDateTime, sysDateTime, batchUserId, svcKeiNo};
			//↑↑↑2012-05-08更新　巻@　指示書CC取込みのついで、処理ID対応漏れをフォロー↑↑↑
			// 2012-06-11 IT1-2012-0000786 Start
//			executeKK_T_SVKEI_EXC_CTRL_KK_UPDATE_001(param2);
			executeKK_T_SVKEI_EXC_CTRL_KK_UPDATE_002(param2);
			// 2012-06-11 IT1-2012-0000786 End
			//2012.02.28 End
			
			//進捗テーブルに登録
			insertPRG(inMap, idoDiv, idoDtm);

			// 2012.03.09 自動照査排他エラー対応 START
			super.commit();
			// 2012.03.09 自動照査排他エラー対応 END
		}
		super.logPrint.printDebugLog("execute end");
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_AUTO_SHOSA_RSLT.close();
		db_KK_T_SVC_KEI.close();
		//2012.02.28 Start
		db_KK_T_SVKEI_EXC_CTRL.close();
		//2012.02.28 End
		db_KK_T_PRG.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}
	
	/**
	 *  サービス契約照査(API)を呼び出します。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 *  1.サービス契約照査(API)を呼び出す為のパラメータを設定します。<br>
	 *
	 *  2.サービス契約照査(API)を呼び出します。<br>
	 * </pre>
	 * <p>
	 * @param  inMap サービス契約情報
	 * @return resultData 照査エラー情報
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	@SuppressWarnings("unchecked")
	private ArrayList<HashMap<String, String>> svcKeiShosaCall(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(JCCBatchEsbInterface.TELEGRAM_INFO_USECASE_ID, "KKSV0118");
		
		// サービスに渡す業務データを格納するMAPです。
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		
		// inputMapに設定するデータをHashMapで構築する。
		HashMap<String, String> dataMap = new HashMap<String, String>();
		ArrayList<HashMap> shosaList = new ArrayList<HashMap>();

		// 起動元コード(01:オンライン、02:バッチ)
		dataMap.put("kido_cd", "1");
		// 申込書番号
		dataMap.put("mskmsho_no", inMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.MSKMSHO_NO));
		// SYSID
		dataMap.put("sysid", inMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.SYSID));
		// 申込明細番号
		dataMap.put("mskm_dtl_no", inMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.MSKM_DTL_NO));
		// サービス契約番号
		dataMap.put("svc_kei_no", inMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.SVC_KEI_NO));
		
		// IT2-2012-0001708 2012-11-26 ADD_START
		// 対応履歴登録時使用ユーザID
		dataMap.put("user_id", getUserId());
		// IT2-2012-0001708 2012-11-26 ADD_END
		
		shosaList.add(dataMap);
		HashMap<String, Object> shosaData = new HashMap<String, Object>();
		shosaData.put("trgt_data_list", shosaList);
		inputMap.put("trgt_data", shosaData);
		// サービスの処理結果が格納されるMAP
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		//サービス契約照査チェック(API)を呼び出します。
		JCCBatchEsbInterface.invokeService(super.commonItem, paramMap, inputMap, outputMap);
		
		// リターンコードが正常以外の場合、エラー
		String returnCode = outputMap.get(JCCBatchEsbInterface.RETURN_CODE).toString();

		// ▼▼▼▼▼ 2013/08/31 OM-2013-0001230 ADD START ▼▼▼▼▼
		// リターンコードが「正常」以外の場合でも、処理は続行させる
		if(!JCCBatchEsbInterface.RETURN_CODE_SUCCESS.equals(returnCode))
		{
			// サービスの処理結果が格納されたoutputMapから指定したキーで値を取得する。
			HashMap<String, Object> resultMap = (HashMap<String, Object>)outputMap.get("trgt_data");
			ArrayList dataList = (ArrayList)resultMap.get("trgt_data_list");
			HashMap<String, String> data = (HashMap<String, String>)dataList.get(0);

			// ステータスに「ＮＧ」をセットする
			data.put("status", SVC_KEI_SHOSA_NG);

			// エラー種別に「その他」をセットする
			data.put("err_sbt_cd", "99");
			data.put("err_msg_id", "");

//			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0270CE, new String[]{"自動照査"});
		}
		// ▲▲▲▲▲ 2013/08/31 OM-2013-0001230 ADD E N D ▲▲▲▲▲

		// サービスの処理結果が格納されたoutputMapから指定したキーで値を取得する。
		HashMap<String, String> resultMap = (HashMap<String, String>)outputMap.get("trgt_data");
		
		ArrayList<HashMap<String, String>> resultData = new ArrayList<HashMap<String, String>>();
		resultData.add(resultMap);
		
		return resultData;
	}
	
	// IT2-2012-0001708 2012-11-26 ADD_START
	/**
	 * <dd>メソッド名：対応履歴登録ユーザ取得
	 * <pre>
	 * <dd>メソッド説明：業務パラメータより対応履歴登録際のユーザを取得する（番ポ登録時に使用する）
	 * 1.SQLを実行するパラメータにサービス契約番号を設定する。
	 * 
	 * 2.異動区分を取得するSQLを実行する。
	 * 
	 * 3.取得した異動区分を返却する。
	 * 
	 * <p>
	 * @param svcKeiNo サービス契約番号
	 * @return idoDivMap 異動区分
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	@SuppressWarnings("unchecked")
	private String getUserId() throws Exception
	{
		// パラメータにサービス契約番号を設定する
		String[] param = {
							TAIORRK_ADD_USER, 
							this.commonItem.getOpeDate(), 
							this.commonItem.getOpeDate()
						};
		
		// サービス契約情報を取得するSQLを実行する
		executeZM_M_WORK_PARAM_KNRI_KK_SELECT_016(param);
		
		// サービス契約情報を設定するリスト
		ArrayList<HashMap<String, String>> taiorrkUserId = new ArrayList<HashMap<String, String>>();
		
		JBSbatCommonDBInterface getDataMap = db_ZM_M_WORK_PARAM_KNRI.selectNext();
		
		// レコードを取得できた場合
		if(getDataMap != null)
		{
			super.logPrint.printDebugLog("対応履歴登録ユーザが取得できました。");
			taiorrkUserId.add((HashMap<String, String>)getDataMap.getMap());
		}
		
		String userId = null;
		
		// 業務パラメータ設定値の取得
		for(int i = 0; i < taiorrkUserId.size(); i++)
		{
			userId = taiorrkUserId.get(i).get(JBSbatZM_M_WORK_PARAM_KNRI.WORK_PARAM_SETTE_VALUE);
		}
		
		return userId;
	}
	
	// IT2-2012-0001708 2012-11-26 ADD_END
	/**
	 * <dd>メソッド名：異動区分取得
	 * <pre>
	 * <dd>メソッド説明：サービス契約から異動区分を取得
	 * 1.SQLを実行するパラメータにサービス契約番号を設定する。
	 * 
	 * 2.異動区分を取得するSQLを実行する。
	 * 
	 * 3.取得した異動区分を返却する。
	 * 
	 * <p>
	 * @param svcKeiNo サービス契約番号
	 * @return idoDivMap 異動区分
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	@SuppressWarnings("unchecked")
	private String getIdoDivMap(String svcKeiNo) throws Exception
	{
		// パラメータにサービス契約番号を設定する
		String[] param = {svcKeiNo, this.commonItem.getOpeDate()};
		// サービス契約情報を取得するSQLを実行する
		executeKK_T_SVC_KEI_KK_SELECT_054(param);
		
		// サービス契約情報を設定するリスト
		ArrayList<HashMap<String, String>> idoDivList = new ArrayList<HashMap<String, String>>();
		
		JBSbatCommonDBInterface getDataMap = db_KK_T_SVC_KEI.selectNext();
		
		// レコードを取得できた場合
		if(getDataMap != null)
		{
			super.logPrint.printDebugLog("異動区分を取得しました。");
			idoDivList.add((HashMap<String, String>)getDataMap.getMap());
		}
		
		String idoDiv = null;
		
		//異動区分の取得
		for(int i = 0; i < idoDivList.size(); i++)
		{
			idoDiv = idoDivList.get(i).get(JBSbatKK_T_SVC_KEI.IDO_DIV);
		}
		
		return idoDiv;
	}
	
	/**
	 * <dd>メソッド名：異動年月日取得
	 * <pre>
	 * <dd>メソッド説明：進捗から異動年月日を取得
	 * 1.SQLを実行するパラメータにサービス契約番号を設定する。
	 * 
	 * 2.異動年月日を取得するSQLを実行する。
	 * 
	 * 3.取得した異動年月日を返却する。
	 * 
	 * <p>
	 * @param svcKeiNo サービス契約番号
	 * @return idoDtmMap 異動年月日
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	@SuppressWarnings("unchecked")
	private String getIdoDtmMap(String svcKeiNo) throws Exception
	{
		// パラメータにサービス契約番号を設定する
		String[] param = {svcKeiNo};
		// サービス契約情報を取得するSQLを実行する
		executeKK_T_PRG_KK_SELECT_004(param);
		
		// サービス契約情報を設定するリスト
		ArrayList<HashMap<String, String>> idoDtmList = new ArrayList<HashMap<String, String>>();
		
		JBSbatCommonDBInterface getDataMap = db_KK_T_PRG.selectNext();
		
		// レコードを取得できた場合
		if(getDataMap != null)
		{
			super.logPrint.printDebugLog("異動年月日を取得しました。");
			idoDtmList.add((HashMap<String, String>)getDataMap.getMap());
		}
	
		String idoDtm = null;
		
		//異動区分の取得
		for(int i = 0; i < idoDtmList.size(); i++)
		{
			idoDtm = idoDtmList.get(i).get(JBSbatKK_T_PRG.IDO_DTM);
		}
		
		return idoDtm;
	}
	
	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	// IT2-2012-0001708 2012-11-26 ADD_START
	/**
	 * SQLKEY(KK_SELECT_054)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZM_M_WORK_PARAM_KNRI_KK_SELECT_016(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		
		// DBアクセスを実行します
		db_ZM_M_WORK_PARAM_KNRI.selectBySqlDefine(paramList, ZM_M_WORK_PARAM_KNRI_KK_SELECT_016);
	}
	// IT2-2012-0001708 2012-11-26 ADD_END
	
	/**
	 * SQLKEY(KK_SELECT_054)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVC_KEI_KK_SELECT_054(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_054);
	}

	/**
	 * SQLKEY(KK_SELECT_004)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_PRG_KK_SELECT_004(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_T_PRG.selectBySqlDefine(paramList, KK_T_PRG_KK_SELECT_004);
	}
	
	/**
	 * SQLKEY(KK_UPDATE_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	自動照査結果コード
	 *		 	自動照査結果番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_AUTO_SHOSA_RSLT_KK_UPDATE_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_AUTO_SHOSA_RSLT.executeBySqlDefine(paramList, KK_T_AUTO_SHOSA_RSLT_KK_UPDATE_001);
	}

	/**
	 * SQLKEY(KK_UPDATE_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	更新年月日
	 *		 	更新オペレータＩＤ
	 *		 	サービス契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVC_KEI_KK_UPDATE_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI.executeBySqlDefine(paramList, KK_T_SVC_KEI_KK_UPDATE_002);
	}
	
	//2012.02.28 Start
	/**
	 * SQLKEY(KK_UPDATE_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	更新年月日
	 *		 	更新オペレータＩＤ
	 *		 	サービス契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	// 2012-06-11 IT1-2012-0000786 Start
//	private void executeKK_T_SVKEI_EXC_CTRL_KK_UPDATE_001(Object[] param) throws Exception
	private void executeKK_T_SVKEI_EXC_CTRL_KK_UPDATE_002(Object[] param) throws Exception
	// 2012-06-11 IT1-2012-0000786 End
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		//↓↓↓2012-05-08更新　巻@　指示書CC取込みのついで、処理ID対応漏れをフォロー↓↓↓
//		paramList.setValue(param[2].toString());
//		paramList.setValue(param[3].toString());
		//↑↑↑2012-05-08更新　巻@　指示書CC取込みのついで、処理ID対応漏れをフォロー↑↑↑

		// DBアクセスを実行します
		// 2012-06-11 IT1-2012-0000786 Start
//		db_KK_T_SVKEI_EXC_CTRL.executeBySqlDefine(paramList, KK_T_SVKEI_EXC_CTRL_KK_UPDATE_001);
		db_KK_T_SVKEI_EXC_CTRL.executeBySqlDefine(paramList, KK_T_SVKEI_EXC_CTRL_KK_UPDATE_002);
		// 2012-06-11 IT1-2012-0000786 End
	}
	//2012.02.28 End
	
	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	自動照査結果番号				AUTO_SHOSA_RSLT_NO
	 *		 	自動照査結果コード				AUTO_SHOSA_RSLT_CD
	 *		 	申込種別コード				MSKM_SBT_CD
	 *		 	申込年月日				MSKM_YMD
	 *		 	申込書番号				MSKMSHO_NO
	 *		 	申込明細番号				MSKM_DTL_NO
	 *		 	ＳＹＳＩＤ				SYSID
	 *		 	サービス契約番号				SVC_KEI_NO
	 *		 	サービスコード				SVC_CD
	 *		 	料金グループコード				PRC_GRP_CD
	 *		 	料金コースコード				PCRS_CD
	 *		 	料金プランコード				PPLAN_CD
	 *		 	サービス契約更新年月日時分秒　				SVC_KEI_UPD_DTM
	 *		 	照査エラー種別コード				SHOSA_ERR_SBT_CD
	 *		 	照査エラーメッセージＩＤ				SHOSA_ERR_MSG_ID
	 *		 	認証ＩＤ				NINSHO_ID
	 *		 	初期ｅｏＩＤ				SHK_EOID
	 *		 	仮メールアドレス払出有無				KARI_MLAD_HRADSI_UM
	 *		 	オプトインメール設定有無				OPTINM_SET_UM
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録オペレータアカウント				ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除オペレータアカウント				DEL_OPEACNT
	 *		 	無効フラグ				MK_FLG
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_AUTO_SHOSA_RSLT_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("AUTO_SHOSA_RSLT_NO", setParam[0]);
		setMap.setValue("AUTO_SHOSA_RSLT_CD", setParam[1]);
		setMap.setValue("MSKM_SBT_CD", setParam[2]);
		setMap.setValue("MSKM_YMD", setParam[3]);
		setMap.setValue("MSKMSHO_NO", setParam[4]);
		setMap.setValue("MSKM_DTL_NO", setParam[5]);
		setMap.setValue("SYSID", setParam[6]);
		setMap.setValue("SVC_KEI_NO", setParam[7]);
		setMap.setValue("SVC_CD", setParam[8]);
		setMap.setValue("PRC_GRP_CD", setParam[9]);
		setMap.setValue("PCRS_CD", setParam[10]);
		setMap.setValue("PPLAN_CD", setParam[11]);
		setMap.setValue("SVC_KEI_UPD_DTM", setParam[12]);
		setMap.setValue("SHOSA_ERR_SBT_CD", setParam[13]);
		setMap.setValue("SHOSA_ERR_MSG_ID", setParam[14]);
		setMap.setValue("NINSHO_ID", setParam[15]);
		setMap.setValue("SHK_EOID", setParam[16]);
		setMap.setValue("KARI_MLAD_HRADSI_UM", setParam[17]);
		setMap.setValue("OPTINM_SET_UM", setParam[18]);
		setMap.setValue("ASHOSART_LIST_OPUTZM_FLG", "0");		//TODO 追加された、自動照査結果リスト出力済フラグ
		setMap.setValue("ADD_DTM", setParam[19]);
		setMap.setValue("ADD_OPEACNT", setParam[20]);
		setMap.setValue("UPD_DTM", setParam[21]);
		setMap.setValue("UPD_OPEACNT", setParam[22]);
		setMap.setValue("DEL_DTM", setParam[23]);
		setMap.setValue("DEL_OPEACNT", setParam[24]);
		setMap.setValue("MK_FLG", setParam[25]);
		//↓↓↓2012-09-25追加　スキーマ変更対応↓↓↓
		setMap.setValue("MSKMSHO_DTL_NO", setParam[26]);
		//↑↑↑2012-09-25追加　スキーマ変更対応↑↑↑
	
		// DBアクセスを実行します
		db_KK_T_AUTO_SHOSA_RSLT.insertByPrimaryKeys(setMap);
	}

	/**
	 * SQLKEY(KK_DELETE_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	自動照査結果番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_AUTO_SHOSA_RSLT_KK_DELETE_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_T_AUTO_SHOSA_RSLT.executeBySqlDefine(paramList, KK_T_AUTO_SHOSA_RSLT_KK_DELETE_001);
	}

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	進捗番号				PRG_NO
	 *		 	申込明細番号				MSKM_DTL_NO
	 *		 	請求契約番号				SEIKY_KEI_NO
	 *		 	請求方法番号（口座）				SEIKY_WAY_NO_KOZA
	 *		 	請求方法番号（クレジットカード）				SEIKY_WAY_NO_CRECARD
	 *		 	サービス契約番号				SVC_KEI_NO
	 *		 	サービス契約内訳番号				SVC_KEI_UCWK_NO
	 *		 	サービス契約回線内訳番号				SVC_KEI_KAISEN_UCWK_NO
	 *		 	機器提供サービス契約番号				KKTK_SVC_KEI_NO
	 *		 	オプションサービス契約番号				OP_SVC_KEI_NO
	 *		 	請求オプションサービス契約番号				SEIOPSVC_KEI_NO
	 *		 	サブオプションサービス契約番号				SBOP_SVC_KEI_NO
	 *		 	割引サービス契約番号				WRIB_SVC_KEI_NO
	 *		 	異動区分				IDO_DIV
	 *		 	異動理由コード				IDO_RSN_CD
	 *		 	異動年月日時分秒				IDO_DTM
	 *		 	進捗ステータス				PRG_STAT
	 *		 	進捗年月日時分秒				PRG_DTM
	 *		 	進捗結果コード				PRG_RSLT_CD
	 *		 	進捗メモ				PRG_MEMO
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録オペレータアカウント				ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除オペレータアカウント				DEL_OPEACNT
	 *		 	無効フラグ				MK_FLG
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_PRG_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("PRG_NO", setParam[0]);
		setMap.setValue("MSKM_DTL_NO", setParam[1]);
		setMap.setValue("SEIKY_KEI_NO", setParam[2]);
		setMap.setValue("SEIKY_WAY_NO_KOZA", setParam[3]);
		setMap.setValue("SEIKY_WAY_NO_CRECARD", setParam[4]);
		setMap.setValue("SVC_KEI_NO", setParam[5]);
		setMap.setValue("SVC_KEI_UCWK_NO", setParam[6]);
		setMap.setValue("SVC_KEI_KAISEN_UCWK_NO", setParam[7]);
		setMap.setValue("KKTK_SVC_KEI_NO", setParam[8]);
		setMap.setValue("OP_SVC_KEI_NO", setParam[9]);
		setMap.setValue("SEIOPSVC_KEI_NO", setParam[10]);
		setMap.setValue("SBOP_SVC_KEI_NO", setParam[11]);
		setMap.setValue("WRIB_SVC_KEI_NO", setParam[12]);
		setMap.setValue("IDO_DIV", setParam[13]);
		setMap.setValue("IDO_DTM", setParam[14]);
		setMap.setValue("PRG_STAT", setParam[15]);
		setMap.setValue("PRG_DTM", setParam[16]);
		setMap.setValue("PRG_MEMO", setParam[17]);
		setMap.setValue("PRG_TKJK_1", setParam[18]);
		setMap.setValue("PRG_TKJK_2", setParam[19]);
		setMap.setValue("ADD_DTM", setParam[20]);
		setMap.setValue("ADD_OPEACNT", setParam[21]);
		setMap.setValue("UPD_DTM", setParam[22]);
		setMap.setValue("UPD_OPEACNT", setParam[23]);
		setMap.setValue("DEL_DTM", setParam[24]);
		setMap.setValue("DEL_OPEACNT", setParam[25]);
		setMap.setValue("MK_FLG", setParam[26]);
	
		// DBアクセスを実行します
		db_KK_T_PRG.insertByPrimaryKeys(setMap);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	

	/**
	 * 自動照査結果テーブルを登録します。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目の配列を作ります。<br>
	 *
	 * 2.自動照査結果全項目登録処理を実行します。<br>
	 * </pre>
	 * <p>
	 * @param autoShosaRlstCd 自動照査結果コード。
	 * @param svcKeiInfoMap   サービス契約情報マップ。
	 * @param shosaErrSbtCd   照査エラー種別コード。
	 * @param shosaErrMsgId   照査エラーメッセージＩＤ。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void insertASR(String autoShosaRlstCd, JBSbatServiceInterfaceMap svcKeiInfoMap, String shosaErrSbtCd, String shosaErrMsgId) throws Exception
	{
		// 自動照査結果番号をシーケンスより取得
		String autoShosaRlstNo = JBSbatOracleSeqUtil.getNextSeq(commonItem.getConnection(), SEQ_AUTO_SHOSA_RSLT_NO);
		
		//2012.02.28 Start
		String[] setParam = {
				JCCStringHandler.toFixedLengthInt(Integer.parseInt(autoShosaRlstNo), 12),	// 自動照査結果番号
				autoShosaRlstCd,                                                         // 自動照査結果コード
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.MSKM_SBT_CD),         // 申込種別コード
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.MSKM_YMD),            // 申込年月日
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.MSKMSHO_NO),          // 申込書番号
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.MSKM_DTL_NO),         // 申込明細番号
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.SYSID),               // ＳＹＳＩＤ
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.SVC_KEI_NO),          // サービス契約番号
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.SVC_CD),              // サービスコード
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.PRC_GRP_CD),          // 料金グループコード
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.PCRS_CD),             // 料金コースコード
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.PPLAN_CD),            // 料金プランコード
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.SVC_KEI_UPD_DTM),     // サービス契約更新年月日時分秒
				shosaErrSbtCd,                                                           // 照査エラー種別コード
				shosaErrMsgId,                                                           // 照査エラーメッセージＩＤ
				null,                                                                   // 認証ＩＤ
				null,                                                                   // 初期ｅｏＩＤ
				null,                                                                   // 仮メールアドレス払出有無
				null,                                                                   // オプトインメール設定有無
				JKKBatCommon.getSysDateTimeStamp(),                                      // 登録年月日時分秒
				batchUserId,                                                             // 登録オペレータアカウント
				JKKBatCommon.getSysDateTimeStamp(),                                      // 更新年月日時分秒
				batchUserId,                                                             // 更新オペレータアカウント
				null,                                                                   // 削除年月日時分秒
				null,                                                                   // 削除オペレータアカウント
				"0"                                                                      // 無効フラグ
			//↓↓↓2012-09-25追加　スキーマ変更対応↓↓↓
			,	svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.MSKMSHO_DTL_NO)       // 申込書明細番号
			//↑↑↑2012-09-25追加　スキーマ変更対応↑↑↑
			};
		//2012.02.28 End

		executeKK_T_AUTO_SHOSA_RSLT_PKINSERT(setParam);
	}
	
	/**
	 * 自動照査結果テーブルを登録します。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目の配列を作ります。<br>
	 *
	 * 2.自動照査結果全項目登録処理を実行します。<br>
	 * </pre>
	 * <p>
	 * @param autoShosaRlstCd 自動照査結果コード。
	 * @param svcKeiInfoMap   サービス契約情報マップ。
	 * @param data            自動照査処理結果データ。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void insertASROK(String autoShosaRlstCd, JBSbatServiceInterfaceMap svcKeiInfoMap, HashMap<String, String> data) throws Exception
	{
		// 自動照査結果番号をシーケンスより取得
		String autoShosaRlstNo = JBSbatOracleSeqUtil.getNextSeq(commonItem.getConnection(), SEQ_AUTO_SHOSA_RSLT_NO);
		
		//2012.02.28 Start
		String[] setParam = {
				JCCStringHandler.toFixedLengthInt(Integer.parseInt(autoShosaRlstNo), 12),	// 自動照査結果番号
				autoShosaRlstCd,                                                         // 自動照査結果コード
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.MSKM_SBT_CD),         // 申込種別コード
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.MSKM_YMD),            // 申込年月日
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.MSKMSHO_NO),          // 申込書番号
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.MSKM_DTL_NO),         // 申込明細番号
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.SYSID),               // ＳＹＳＩＤ
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.SVC_KEI_NO),          // サービス契約番号
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.SVC_CD),              // サービスコード
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.PRC_GRP_CD),          // 料金グループコード
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.PCRS_CD),             // 料金コースコード
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.PPLAN_CD),            // 料金プランコード
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.SVC_KEI_UPD_DTM),     // サービス契約更新年月日時分秒
				null,                                                                   // 照査エラー種別コード
				null,                                                                   // 照査エラーメッセージＩＤ
				data.get("ninsho_id"),                                                   // 認証ＩＤ
				data.get("shk_eoid"),                                                    // 初期ｅｏＩＤ
				data.get("kari_mlad_hradsi_um"),                                         // 仮メールアドレス払出有無
				data.get("optinm_set_um"),                                              // オプトインメール設定有無
				JKKBatCommon.getSysDateTimeStamp(),                                      // 登録年月日時分秒
				batchUserId,                                                             // 登録オペレータアカウント
				JKKBatCommon.getSysDateTimeStamp(),                                      // 更新年月日時分秒
				batchUserId,                                                             // 更新オペレータアカウント
				null,                                                                   // 削除年月日時分秒
				null,                                                                   // 削除オペレータアカウント
				"0"                                                                      // 無効フラグ
			//↓↓↓2012-09-25追加　スキーマ変更対応↓↓↓
			,	svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.MSKMSHO_DTL_NO)       // 申込書明細番号
			//↑↑↑2012-09-25追加　スキーマ変更対応↑↑↑
			};
		//2012.02.28 End
		
		executeKK_T_AUTO_SHOSA_RSLT_PKINSERT(setParam);
	}
	
	/**
	 * 進捗テーブルを登録します。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目の配列を作ります。<br>
	 *
	 * 2.進捗全項目登録処理を実行します。<br>
	 * </pre>
	 * <p>
	 * @param inMap 自動照査結果マップ。
	 * @param inDiv 異動区分。
	 * @param idoDtm 異動年月日。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void insertPRG(JBSbatServiceInterfaceMap inMap, String idoDiv, String idoDtm) throws Exception
	{
		// 自動照査結果番号をシーケンスより取得
		String prgNo = JBSbatOracleSeqUtil.getNextSeq(commonItem.getConnection(), SEQ_KK_T_PRG);
		
		//2013.01.09 Start
		//進捗年月日の修正（システム日付→運用年月日）
		//2012.02.28 Start
		// 進捗ステータス 0900:照査ＯＫ、0901:照査取消、090E:照査ＮＧ
		String[] setParam = {
				prgNo,                                                                   // 進捗番号
				inMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.MSKM_DTL_NO),                 // 申込明細番号
				null,                                                                   // 請求契約番号
				null,                                                                   // 請求方法番号(口座)
				null,                                                                   // 請求方法番号(クレジットカード)
				inMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.SVC_KEI_NO),                 // サービス契約番号
				null,                                                                   // サービス契約内訳番号
				null,                                                                   // サービス契約回線内訳番号
				null,                                                                   // 機器提供サービス契約番号
				null,                                                                   // オプションサービス契約番号
				null,                                                                   // 請求オプションサービス契約番号
				null,                                                                   // サブオプションサービス契約番号
				null,                                                                   // 割引サービス契約番号
				idoDiv,                                                                // 異動区分
				idoDtm,                                                                // 異動年月日時分秒
				PRG_STAT_NG,                                                               // 進捗ステータス
				JKKBatCommon.getOpeDateTimeStamp(commonItem),                                     // 進捗年月日時分秒
				null,                                                                  // 進捗メモ
				null,                                                                  // 進捗特記事項1
				null,                                                                  // 進捗特記事項2
				JKKBatCommon.getSysDateTimeStamp(),                                    // 登録年月日時分秒
				batchUserId,                                                            // 登録オペレータアカウント
				JKKBatCommon.getSysDateTimeStamp(),                                    // 更新年月日時分秒
				batchUserId,                                                            // 更新オペレータアカウント
				null,                                                                  // 削除年月日時分秒
				null,                                                                  // 削除オペレータアカウント
				"0"                                                                    // 無効フラグ
			};
		//2012.02.28 End
		//2013.01.09 End

		executeKK_T_PRG_PKINSERT(setParam);
	}
	
//	/**
//	 * 自動照査後のエラー結果を返すスタブ
//	 * @param inMap 自動照査対象データのマップ
//	 * @param logPrint ログ出力制御オブジェクト
//	 * @return errlist エラーリスト
//	 * @throws Exception
//	 */
//	/**
//	 * 自動照査後のエラー結果を返すスタブ
//	 * @param inMap 自動照査対象データのマップ
//	 * @param logPrint ログ出力制御オブジェクト
//	 * @return errlist エラーリスト
//	 * @throws Exception
//	 */
//	public ArrayList<HashMap<String,String>> stubexecute(JBSbatServiceInterfaceMap inMap,JBSbatLogPrintControl logPrint, String testFlg) throws Exception {
//		
//		ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>();
//		HashMap<String,String> map1 = new HashMap<String,String>();
//		HashMap<String,String> errmap1 = new HashMap<String,String>();
//		HashMap<String,String> errmap2 = new HashMap<String,String>();
//		
//		if("0".equals(testFlg))
//		{			
//			map1.put("ninshoid", "SS1234567890");
//			map1.put("shkEoid", "EO1234567890");
//			map1.put("kariMladHradsiUm", "0");
//			map1.put("optionmSeUmt", "0");
//			list.add(map1);
//		}
//		else
//		{
//			//mapの設定(テストの内容により変更する。)
//			errmap1.put("errSbt1", "01");
//			errmap1.put("errCd1", "0000000001");
//			list.add(errmap1);
//			errmap2.put("errSbt2", "02");
//			errmap2.put("errCd2", "0000000002");
//			list.add(errmap2);
//		}
//		
//		return list;
//	}
//	
//	public String execute(JBSbatServiceInterfaceMap inMap,JBSbatLogPrintControl logPrint) throws Exception {
//		
//		String result = "0";
//		
//		logPrint.printDebugLog("サービス契約照査結果:" + result);
//		
//		return result;
//	}
	
	/**
	 * SQLKEY(KK_UPDATE_003)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	更新日付
	 *		 	更新オペレータID
	 *		 	サービス契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVC_KEI_KK_UPDATE_003(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
//		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI.executeBySqlDefine(paramList, KK_T_SVC_KEI_KK_UPDATE_003);
	}


}
