/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom					 *
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatTUBmpSwchSodTrn
*	ソースファイル名	：JBSbatTUBmpSwchSodTrn.java
*	作成者				：富士通　
*	作成日				：2011年06月17日
*＜機能概要＞
*　番ポ切替SOD自動処理部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v3.00.00	2011/06/17  FJ) 北村	新規作成
*	v4.00.00	2012/08/14	FJ) 北村	単体製造品質チェック対応
*	v4.01.00	2012/08/14	FJ) 北村	【DES-2012-0000005】番ポ切替SOD自動処理時サービスオーダ発行処理追加対応
*	v4.02.00	2012/11/22	FJ) 北村	【TAI-2012-0000122】SQL監査バッチ4回目NG対応
*	v5.00.00	2013/08/27	FJ) 高橋	【OM-2013-0001050】
*	v5.00.01	2013/10/03	FJ) 黒田	【OM-2013-0002916】
*	v5.00.02	2013/10/16	FJ) 高橋	【OM-2013-0003213】
*	v7.00.00	2014/01/29	FJ) 坂本	【OM-2014-0000315】
*	v28.00.00	2016/12/08	FJ) 藤本	【ANK-2899-00-00】【SOD応答異常／滞留】番ポキャンセル／同一番ポ番号付替え時のSOD発行処理改善
*	v72.00.00	2024/04/09	FJ) 藤井	【ANK-4494-00-00】【eo定期】 双方向番ポ対応
*********************************************************************/
package eo.business.service;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JPCBatCommon;
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_SVC_KEI_UCWK;
import eo.business.util.table.JBSbatKK_T_SVKEIUW_EOH_TEL;
import eo.business.util.table.JBSbatTU_M_TUSHIN_JGYOSHA;
import eo.business.util.table.JBSbatTU_T_BMP_KOJI;
import eo.business.util.table.JBSbatZM_M_TELNO;
import eo.common.constant.JTUStrConst;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.application.JBSbatBusinessBase;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.util.JCCBatchEsbInterface;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatTUBmpSwchSodTrn extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(番ポ工事)*/
	private static final String D_TBL_NAME_TU_T_BMP_KOJI = "TU_T_BMP_KOJI";

	/** SQL定義キー(TU_SELECT_006)*/
	private static final String TU_T_BMP_KOJI_TU_SELECT_006 = "TU_SELECT_006";

	/** SQL定義キー(TU_SELECT_003)*/
	private static final String TU_T_BMP_KOJI_TU_SELECT_003 = "TU_SELECT_003";

	/** テーブルアクセスクラス(番ポ工事)*/
	private JBSbatSQLAccess db_TU_T_BMP_KOJI = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	// ANK-4494-00-00 ADD START
	/** テーブル(サービス契約内訳<eo光電話>)*/
	private static final String D_TBL_NAME_KK_T_SVKEIUW_EOH_TEL = "KK_T_SVKEIUW_EOH_TEL";
	/** テーブル(通信事業者)*/
	private static final String D_TBL_NAME_TU_M_TUSHIN_JGYOSHA = "TU_M_TUSHIN_JGYOSHA";
	
	/** SQL定義キー(TU_SELECT_001)*/
	private static final String KK_T_SVKEIUW_EOH_TEL_TU_SELECT_001 = "TU_SELECT_001";
	/** SQL定義キー(TU_SELECT_001)*/
	private static final String executeTU_M_TUSHIN_JGYOSHA_TU_SELECT_001 = "TU_SELECT_001";
	
	/** テーブルアクセスクラス(サービス契約内訳<eo光電話>)*/
	private JBSbatSQLAccess db_KK_T_SVKEIUW_EOH_TEL = null;
	/** テーブルアクセスクラス(通信事業者)*/
	private JBSbatSQLAccess db_TU_M_TUSHIN_JGYOSHA = null;
	// ANK-4494-00-00 ADD END

	/** テーブルアクセスクラス(番ポ工事ロック用)*/
	private JBSbatSQLAccess db_TU_T_BMP_KOJI_L = null;
	
	/** チェック&登録*/
	private static final String CHK_ADD = "1";
	/** 番ポ切り替え*/
	private static final String BMP_SWCH = "021";
	/** 利用停止解除*/
	private static final String BMP_TRAN_SKBT_CD_USE_STP_RLS = "61";
	/** ユースケースID*/
	private static final String USECASE_ID = "TUSV0097";
	/** CCタイトル*/
	private static final String CC_TITLE_1 = "TUSV009701CC";
	// ANK-4494-00-00 ADD START
	/** CCタイトル*/
	private static final String CC_TITLE_2 = "TUSV009702SC";
	/** CCタイトル*/
	private static final String CC_TITLE_3 = "TUSV009703SC";
	/** CCタイトル*/
	private static final String TELNOSTATJUDGECC = "TELNOSTATJUDGECC";
	/** CCタイトル*/
	private static final String CC_TITLE_5 = "TUSV009705SC";
	// ANK-4494-00-00 ADD END
	
	/** 機能コード*/
	private static final String FUNC_CODE = "func_code";
	/** サービスオーダ発行設定項目名*/
	/** 対象データリスト*/
	private static final String TRGT_DATA_LIST = "trgt_data_list";
	/** SOD基本情報*/
	private static final String SOD_KIHON_INFO = "sod_kihon_info";
	/** SYSID*/
	private static final String SYSID = "sysid";
	/** 処理区分*/
	private static final String SYORI_DIV = "syori_div";
	/** 番ポ処理区分*/
	private static final String BMP_SYORI_DIV = "bmp_syori_div";
	/** サービス契約情報*/
	private static final String SVC_KEI_INFO = "svc_kei_info";
	/** サービス契約番号*/
	private static final String SVC_KEI_NO = "svc_kei_no";
	/** サービス契約内訳情報*/
	private static final String SVC_KEI_UCWK_INFO = "svc_kei_ucwk_info";
	/** サービス契約内訳番号*/
	private static final String SVC_KEI_UCWK_NO = "svc_kei_ucwk_no";
	/** 変更後サービス契約内訳世代登録年月日時分秒*/
	private static final String CHAF_SVC_KEI_UCWK_GENE_ADD_DTM = "chaf_svc_kei_ucwk_gene_add_dtm";
	// ANK-4494-00-00 ADD START
	/** 電話番号（key項目）*/
	private static final String KEY_TELNO = "key_telno";
	/** 電話番号*/
	private static final String TELNO = "telno";
	/** 移転先通信事業者コード*/
	private static final String ITNS_TSJGS_CD = "itns_tsjgs_cd";
	/** 異動区分*/
	private static final String IDO_DIV = "ido_div";
	/** 異動区分（ENUM消去）*/
	private static final String IDO_DIV_ENUMDEL = "09001";
	// ANK-4494-00-00 ADD END

	/** レコード読込件数*/
	private int recordCnt = 0;
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_TU_T_BMP_KOJI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_TU_T_BMP_KOJI);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		// DBアクセスクラスを生成します
		db_TU_T_BMP_KOJI_L = new JBSbatSQLAccess(commonItem, D_TBL_NAME_TU_T_BMP_KOJI);
		// ANK-4494-00-00 ADD START
		db_KK_T_SVKEIUW_EOH_TEL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVKEIUW_EOH_TEL);
		db_TU_M_TUSHIN_JGYOSHA = new JBSbatSQLAccess(commonItem, D_TBL_NAME_TU_M_TUSHIN_JGYOSHA);
		// ANK-4494-00-00 ADD END
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		// システム日付+3時間を取得する
		Calendar calendar = Calendar.getInstance();
		
		SimpleDateFormat formYMDHMS = new SimpleDateFormat(JTUStrConst.DATE_YMDHMSS);
		
		calendar.setTime(formYMDHMS.parse(JPCBatCommon.getSysDateTimeStamp()));
		
		// ANK-4494-00-00 MOD START
//		calendar.add(Calendar.HOUR, 3);
		calendar.add(Calendar.HOUR, 1);
		// ANK-4494-00-00 MOD END

		SimpleDateFormat formYMDH = new SimpleDateFormat(JTUStrConst.DATE_YMDH);
		String conditionDate = formYMDH.format(calendar.getTime());
		
		// ANK-4494-00-00 ADD START
		// 事業者コード(オプテージ)を取得する
		String tsjgsCdOpt = null;
		executeTU_M_TUSHIN_JGYOSHA_TU_SELECT_001();
		JBSbatCommonDBInterface tsjgSelectResult = db_TU_M_TUSHIN_JGYOSHA.selectNext();
		if (tsjgSelectResult != null)
		{
			tsjgsCdOpt = tsjgSelectResult.getString(JBSbatTU_M_TUSHIN_JGYOSHA.TSJGS_CD);
		}
		// ANK-4494-00-00 ADD END
		
		// 更新対象のデータを取得
		// 番ポ工事テーブルデータ取得条件を設定
		Object[] whereParamSel = new Object[5];
		// 番ポ工事確定年月日時
		whereParamSel[0] = conditionDate;
		// サービス契約内訳予約適用年月日
		whereParamSel[1] = commonItem.getOpeDate();
		// サービス契約予約適用年月日
		whereParamSel[2] = commonItem.getOpeDate();
		// サービス契約予約適用年月日
		whereParamSel[3] = commonItem.getOpeDate();
		// 番ポ工事確定年月日時
		whereParamSel[4] = conditionDate;
		
		
		executeTU_T_BMP_KOJI_TU_SELECT_006(whereParamSel);
		
		JBSbatCommonDBInterface inMap = new JBSbatCommonDBInterface();
		for(inMap = db_TU_T_BMP_KOJI.selectNext(); null != inMap; inMap = db_TU_T_BMP_KOJI.selectNext())
		{	
			// デバッグログ出力
			super.logPrint.printDebugLog("BMP_KOJI_NO:" + inMap.getString(JBSbatTU_T_BMP_KOJI.BMP_KOJI_NO));
			super.logPrint.printDebugLog("GENE_ADD_DTM:" + inMap.getString(JBSbatTU_T_BMP_KOJI.GENE_ADD_DTM));
			super.logPrint.printDebugLog("HOJIN_KOJIN_CD:" + inMap.getString(JBSbatTU_T_BMP_KOJI.HOJIN_KOJIN_CD));
			super.logPrint.printDebugLog("SVC_KEI_NO:" + inMap.getString(JBSbatKK_T_SVC_KEI_UCWK.SVC_KEI_NO));
			super.logPrint.printDebugLog("SYSID:" + inMap.getString(JBSbatKK_T_SVC_KEI.SYSID));
			super.logPrint.printDebugLog("SVC_KEI_UCWK_NO:" + inMap.getString(JBSbatKK_T_SVC_KEI_UCWK.SVC_KEI_UCWK_NO));
			super.logPrint.printDebugLog("GENE_ADD_DTM_SK:" + inMap.getString("GENE_ADD_DTM_SK"));
			// ANK-2899-00-00 ADD START
			super.logPrint.printDebugLog("SVC_KEI_UCWK_STAT:" + inMap.getString(JBSbatKK_T_SVC_KEI_UCWK.SVC_KEI_UCWK_STAT));
			// ANK-2899-00-00 ADD END
			
			// レコード件数カウントアップ
			recordCnt++;
			
			// 単項目チェック
			singleCheckTU_T_BMP_KOJI_TU_SELECT_006(inMap.getMap());
			
			// 番ポ工事更新
			// 更新条件設定
			Object[] whereParamUpd  = new Object[2];
			Object[] whereParamLock = new Object[3];
			
			// 番ポ工事番号
			whereParamUpd[0] = inMap.getString(JBSbatTU_T_BMP_KOJI.BMP_KOJI_NO);
			// 世代登録年月日時分秒
			whereParamUpd[1] = inMap.getString(JBSbatTU_T_BMP_KOJI.GENE_ADD_DTM);
			
			// 番ポ工事番号
			whereParamLock[0] = inMap.getString(JBSbatTU_T_BMP_KOJI.BMP_KOJI_NO);
			// 世代登録年月日時分秒
			whereParamLock[1] = inMap.getString(JBSbatTU_T_BMP_KOJI.GENE_ADD_DTM);
			// 番ポ工事確定年月日時
			whereParamLock[2] = conditionDate;
			
			// 更新項目設定
			Object[] setParam = new Object[1];
			// 番ポ工事ステータス
			setParam[0] = JTUStrConst.SOD_HAKKO_ZUMI;
			
			// レコードロック処理
			executeTU_T_BMP_KOJI_TU_SELECT_003(whereParamLock);
			
			if(db_TU_T_BMP_KOJI_L.selectNext()==null){
				// 状態が変わりデータ取得できない場合はスキップ
				//※ロック解除用コミット
				JBSbatBusinessBase.dbcon.commit();
				continue;
			}
			
			// 更新処理
			executeTU_T_BMP_KOJI_PKUPDATE(setParam, whereParamUpd);
			
			// ANK-2899-00-00 MOD START
//			if(JTUStrConst.KOJIN.equals(inMap.getString(JBSbatTU_T_BMP_KOJI.HOJIN_KOJIN_CD)))
			if(JTUStrConst.KOJIN.equals(inMap.getString(JBSbatTU_T_BMP_KOJI.HOJIN_KOJIN_CD))
				&& !JTUStrConst.SVC_KEI_DSL_ZM.equals(inMap.getString(JBSbatKK_T_SVC_KEI_UCWK.SVC_KEI_UCWK_STAT))
				&& !JTUStrConst.SVC_KEI_CNCL_ZM.equals(inMap.getString(JBSbatKK_T_SVC_KEI_UCWK.SVC_KEI_UCWK_STAT)))
			// ANK-2899-00-00 MOD END
			{
				// 法人個人コードが個人、サービス契約内訳ステータスが「解約済」「キャンセル済」でない場合、
				// サービスインターフェイスを使用してサービスオーダ発行処理を行う
				
				// ANK-4494-00-00 ADD START
				// サービス契約内訳を取得する
				Object[] svkeiuwSelectParam = new Object[2];
				
				// サービス契約内訳番号
				svkeiuwSelectParam[0] = inMap.getString(JBSbatKK_T_SVC_KEI_UCWK.SVC_KEI_UCWK_NO);
				svkeiuwSelectParam[1] = inMap.getString(JBSbatKK_T_SVC_KEI_UCWK.SVC_KEI_UCWK_NO);
				
				// サービス契約内訳<eo光電話>検索SQL実行
				executeKK_T_SVKEIUW_EOH_TEL_TU_SELECT_001(svkeiuwSelectParam);
				
				// 取得したサービス契約内訳<eo光電話>から電話番号を取得
				String telno = null;
				JBSbatCommonDBInterface svkeiuwSelectResult = db_KK_T_SVKEIUW_EOH_TEL.selectNext();
				if (svkeiuwSelectResult != null)
				{
					telno = svkeiuwSelectResult.getString(JBSbatKK_T_SVKEIUW_EOH_TEL.TELNO);
				}
				// ANK-4494-00-00 ADD END
				
				// ユースケースIDを格納するMAP
				HashMap<String, String> paramMap = new HashMap<String, String>();
				paramMap.put(JCCBatchEsbInterface.TELEGRAM_INFO_USECASE_ID, USECASE_ID);
				
				// inputMapに設定するデータをHashMapで構築する。
				// サービスオーダ発行マップ
				HashMap<Object, Object> tusv009701cc = new HashMap<Object, Object>();
				
				HashMap<Object, Object> dataMap = new HashMap<Object, Object>();
				
				// 機能コード
				dataMap.put(FUNC_CODE, CHK_ADD);
				
				// 対象データリスト
				ArrayList<HashMap<String, HashMap<String, String>>> trgtDataList = new ArrayList<HashMap<String, HashMap<String, String>>>();
				// SODマップ
				HashMap<String, HashMap<String, String>> sodMap = new HashMap<String, HashMap<String, String>>();
				
				// SOD基本情報
				HashMap<String, String> sodKihonInfo = new HashMap<String, String>();
				// SYSID
				sodKihonInfo.put(SYSID, inMap.getString(JBSbatKK_T_SVC_KEI.SYSID));
				// 処理区分
				sodKihonInfo.put(SYORI_DIV, BMP_SWCH);
				// 番ポ処理区分
				sodKihonInfo.put(BMP_SYORI_DIV, BMP_TRAN_SKBT_CD_USE_STP_RLS);
				// SOD基本情報をSODマップに設定
				sodMap.put(SOD_KIHON_INFO, sodKihonInfo);
				
				// サービス契約情報
				HashMap<String, String> svcKeiInfo = new HashMap<String, String>();
				// サービス契約番号
				svcKeiInfo.put(SVC_KEI_NO, inMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
				// サービス契約情報をSODマップに設定
				sodMap.put(SVC_KEI_INFO, svcKeiInfo);
				
				// サービス契約内訳情報
				HashMap<String, String> svcKeiUcwkInfo = new HashMap<String, String>();
				// サービス契約内訳番号
				svcKeiUcwkInfo.put(SVC_KEI_UCWK_NO, inMap.getString(JBSbatKK_T_SVC_KEI_UCWK.SVC_KEI_UCWK_NO));
				// 変更後サービス契約内訳世代登録年月日時分秒
				svcKeiUcwkInfo.put(CHAF_SVC_KEI_UCWK_GENE_ADD_DTM, inMap.getString("GENE_ADD_DTM_SK"));
				// サービス契約情報をSODマップに設定
				sodMap.put(SVC_KEI_UCWK_INFO, svcKeiUcwkInfo);
				
				// SODマップを対象データリストに設定
				trgtDataList.add(sodMap);
				
				// 対象データリストをデータマップに設定
				dataMap.put(TRGT_DATA_LIST, trgtDataList);
				
				// データマップをSCのタイトルをキーとして設定する。
				tusv009701cc.put(CC_TITLE_1, dataMap);
				
				// サービスの処理結果が格納されるMAP
				HashMap outputMap = new HashMap();

				// ANK-4494-00-00 ADD START
				// 電話番号一意照会IFのパラメータをセットする
				HashMap<Object, Object> dataMap2 = new HashMap<Object, Object>();
				// 機能コード
				dataMap2.put(FUNC_CODE, CHK_ADD);
				// 電話番号
				dataMap2.put(KEY_TELNO, telno);
				// データマップをSCのタイトルをキーとして設定する。
				tusv009701cc.put(CC_TITLE_2, dataMap2);
				
				// 電話番号変更IFのパラメータをセットする
				HashMap<Object, Object> dataMap3 = new HashMap<Object, Object>();
				// 機能コード
				dataMap3.put(FUNC_CODE, CHK_ADD);
				// 移転先事業者コード←事業者コード（オプテージ）
				dataMap3.put(ITNS_TSJGS_CD, tsjgsCdOpt);
				// データマップをSCのタイトルをキーとして設定する。
				tusv009701cc.put(CC_TITLE_3, dataMap3);
				
				// 電話番号状態判定部品CCのパラメータをセットする。
				HashMap<Object, Object> dataMap4 = new HashMap<Object, Object>();
				// 機能コード
				dataMap4.put(FUNC_CODE, CHK_ADD);
				// 電話番号
				dataMap4.put(KEY_TELNO, telno);
				// データマップをSCのタイトルをキーとして設定する。
				tusv009701cc.put(TELNOSTATJUDGECC, dataMap4);
				
				// ENUMSOD発行CCのパラメータをセットする
				HashMap<Object, Object> dataMap5 = new HashMap<Object, Object>();
				
				// 機能コード
				dataMap5.put(FUNC_CODE, CHK_ADD);
				
				// 対象データリスト
				ArrayList<HashMap<String, HashMap<String, String>>> trgtDataList_enumsod = new ArrayList<HashMap<String, HashMap<String, String>>>();
				// SODマップ
				HashMap<String, HashMap<String, String>> sodMap_enumsod = new HashMap<String, HashMap<String, String>>();
				
				// SOD基本情報
				HashMap<String, String> sodKihonInfo_enumsod = new HashMap<String, String>();
				// 電話番号
				sodKihonInfo_enumsod.put(TELNO, telno);
				// 異動区分（ENUM消去）
				sodKihonInfo_enumsod.put(IDO_DIV, IDO_DIV_ENUMDEL);
				// SOD基本情報をSODマップに設定
				sodMap_enumsod.put(SOD_KIHON_INFO, sodKihonInfo_enumsod);
				
				// サービス契約情報
				HashMap<String, String> svcKeiInfo_enumsod = new HashMap<String, String>();
				// サービス契約番号
				svcKeiInfo_enumsod.put(SVC_KEI_NO, inMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
				// サービス契約情報をSODマップに設定
				sodMap_enumsod.put(SVC_KEI_INFO, svcKeiInfo_enumsod);
				
				// SODマップを対象データリストに設定
				trgtDataList_enumsod.add(sodMap_enumsod);
				
				// 対象データリストをデータマップに設定
				dataMap5.put(TRGT_DATA_LIST, trgtDataList_enumsod);
				
				// データマップをSCのタイトルをキーとして設定する。
				tusv009701cc.put(CC_TITLE_5, dataMap5);
				// ANK-4494-00-00 ADD END
				
				// サービス呼び出し
				JCCBatchEsbInterface.invokeService(commonItem, paramMap, tusv009701cc, outputMap);

				String returnCode = JCCBatchEsbInterface.getReturnCode(outputMap);
				
				// デバッグログ出力
				super.logPrint.printDebugLog("RETURN_CODE:" + returnCode);
				
				if (!JCCBatchEsbInterface.RETURN_CODE_SUCCESS.equals(returnCode)) 
				{
					// 正常以外の場合
					throw new JBSbatBusinessException("ETUB0250KE", new String[]{
														String.valueOf(recordCnt),
														"サービスオーダ発行"});
				} 
			}
			
			// DBコミット処理
			JBSbatBusinessBase.dbcon.commit();
		}
		
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_TU_T_BMP_KOJI.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		// DBアクセスクラスをクローズします
		db_TU_T_BMP_KOJI_L.close();
		// ANK-4494-00-00 ADD START
		db_KK_T_SVKEIUW_EOH_TEL.close();
		db_TU_M_TUSHIN_JGYOSHA.close();
		// ANK-4494-00-00 ADD END
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 *入力情報（番ポ工事）の単項目チェックを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.単項目チェックを行います。<br>
	 * 
	 * 2.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		rsMap:(項目、値)を(key、value)として、データをrsMapに入れます
	 * </pre>
	 * <p>
	 * @param rsMap 入力データ（TXT又はDB）を格納されたHashMap。
	 * @throws Exception
	 */
	private void singleCheckTU_T_BMP_KOJI_TU_SELECT_006(HashMap rsMap) throws Exception
	{
		if(JTUStrConst.KOJIN.equals(rsMap.get(JBSbatTU_T_BMP_KOJI.HOJIN_KOJIN_CD).toString()))
		{
			// 法人個人コードが個人の場合、単項目チェックを行います
			String strValue = null;
			
			// ＳＹＳＩＤ項目チェック
			strValue = (String)rsMap.get(JBSbatKK_T_SVC_KEI.SYSID);
			// 必須チェック
			if(strValue == null || "".equals(strValue))
			{
				throw new JBSbatBusinessException("ETUB0010TE", new String[]{
													String.valueOf(recordCnt),
													"SYSID"});
			}
		}
		
	}
	
	/**
	 * SQLKEY(TU_SELECT_003)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	番ポ工事番号
	 *		 	世代登録年月日時分秒
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeTU_T_BMP_KOJI_TU_SELECT_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_TU_T_BMP_KOJI_L.selectBySqlDefine(paramList, TU_T_BMP_KOJI_TU_SELECT_003);
	}
	
	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 * SQLKEY(TU_SELECT_006)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	番ポ工事確定年月日時
	 *		 	サービス契約内訳予約適用年月日
	 *		 	サービス契約予約適用年月日
	 *		 	サービス契約予約適用年月日
	 *		 	番ポ工事確定年月日時
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeTU_T_BMP_KOJI_TU_SELECT_006(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());

		// DBアクセスを実行します
		db_TU_T_BMP_KOJI.selectBySqlDefine(paramList, TU_T_BMP_KOJI_TU_SELECT_006);
	}
	
	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	番ポ工事ステータス				BMP_KOJI_STAT
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	BMP_KOJI_NO
	 *		 	GENE_ADD_DTM
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeTU_T_BMP_KOJI_PKUPDATE(Object[] setParam, Object[] whereParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("BMP_KOJI_STAT", setParam[0]);
	
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("BMP_KOJI_NO", whereParam[0]);
		whereMap.setValue("GENE_ADD_DTM", whereParam[1]);

		// DBアクセスを実行します
		db_TU_T_BMP_KOJI.updateByPrimaryKeys(whereMap, setMap);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	// ANK-4494-00-00 ADD START
	/**
	 * SQLKEY(TU_SELECT_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_SVKEIUW_EOH_TEL_TU_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SVKEIUW_EOH_TEL.selectBySqlDefine(paramList, KK_T_SVKEIUW_EOH_TEL_TU_SELECT_001);
	}
	
	/**
	 * SQLKEY(SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 *
	 * 1.DBアクセスを実行します。<br>
	 * 
	 * </pre>
	 * <p>
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeTU_M_TUSHIN_JGYOSHA_TU_SELECT_001() throws Exception
	{
		// DBアクセスを実行します
		db_TU_M_TUSHIN_JGYOSHA.selectBySqlDefine(new JBSbatCommonDBInterface(), executeTU_M_TUSHIN_JGYOSHA_TU_SELECT_001);
	}
	// ANK-4494-00-00 ADD END
}
