/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKCrsChgKojiUpd
*	ソースファイル名	：JBSbatKKCrsChgKojiUpd.java
*	作成者				：富士通　
*	作成日				：2011年12月13日
*＜機能概要＞
*　コース変更進捗登録部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v5.00.00	2013/04/01	FJ)神吉		【】性能改善
*	v6.00.00	2013/11/28	FJ)中作		【OM-2013-0002792】障害対応
*	v6.00.01	2014/01/08	FJ)小野		【OM-2014-0000002】障害対応：工事案件番号が取得出来ない場合はエラーではなくスキップ
**	v20.00.00	2015/10/19	FJ)広部		【ANK-2732-00-00】プロジェクト正常化施策 ソースの可読性向上
*********************************************************************/
package eo.business.service;

import java.util.HashMap;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JBSbatKKConst;
import eo.business.common.JCCBatCommon;
import eo.business.common.JKKBatCommon;
import eo.business.util.file.JBSbatKKIFM281;
import eo.business.util.table.JBSbatKK_M_MANSION_COURSE;
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_SVKEI_KAISEN_UW;
import eo.business.util.table.JBSbatKU_T_KOJIAK;
import eo.common.constant.JPCBatchMessageConstant;
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.log.JBSbatLogUtil;
import eo.framework.util.JBSbatStringUtil;
import eo.framework.util.JCCBatchEsbInterface;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKCrsChgKojiUpd extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(進捗)*/
	private static final String D_TBL_NAME_KK_T_PRG = "KK_T_PRG";
	
	/** テーブル(サービス契約)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";
	
	/** テーブル(提供方式契約)*/
	private static final String D_TBL_NAME_KK_T_TK_HOSHIKI_KEI = "KK_T_TK_HOSHIKI_KEI";
	
	/** テーブル(工事案件)*/
	private static final String D_TBL_NAME_KU_T_KOJIAK = "KU_T_KOJIAK";
	
	/** テーブル(申込明細＿工事案件)*/
	private static final String D_TBL_NAME_KU_T_MSKM_DTL_KOJIAK = "KU_T_MSKM_DTL_KOJIAK";
	
	/** SQL定義キー(KK_SELECT_250)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_250 = "KK_SELECT_250";
	
	/** SQL定義キー(KK_SELECT_020)*/
	private static final String KK_T_TK_HOSHIKI_KEI_KK_SELECT_020 = "KK_SELECT_020";
	
	/** SQL定義キー(KK_SELECT_006)*/
	private static final String KU_T_MSKM_DTL_KOJIAK_KK_SELECT_006 = "KK_SELECT_006";
	
	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;
	
	/** テーブルアクセスクラス(提供方式契約)*/
	private JBSbatSQLAccess db_KK_T_TK_HOSHIKI_KEI = null;
	
	/** テーブルアクセスクラス(工事案件)*/
	private JBSbatSQLAccess db_KU_T_KOJIAK = null;
	
	/** テーブルアクセスクラス(申込明細＿工事案件)*/
	private JBSbatSQLAccess db_KU_T_MSKM_DTL_KOJIAK = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/** テーブルアクセスクラス(共通部品)*/
	private JBSbatSQLAccess stmt = null;
	
	/** SCタイトル(工事案件＜eo光ネット＞諸変更) */
	private static final String SC_TITLE_KOJIAK_NET_UPD = "KKSV073207SC";
	
	/** SCタイトル(工事案件＜eo光ネットマンション＞諸変更) */
	private static final String SC_TITLE_KOJIAK_NET_MANS_UPD = "KKSV073208SC";
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		
		// DBアクセスクラスを生成します
		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		db_KK_T_TK_HOSHIKI_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_TK_HOSHIKI_KEI);
		db_KU_T_KOJIAK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_KOJIAK);
		db_KU_T_MSKM_DTL_KOJIAK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_MSKM_DTL_KOJIAK);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		// 共通部品用
		stmt = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_PRG);
		
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		super.logPrint.printDebugLog("execute_START");
		
		// サービスに渡す業務データを格納するMAP
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		
		// ※ 以下の条件判定は、シェルで実行すること
		// サービスコードが"01"（インターネットサービス）かつ異動区分が住所変更・登録（"00019"）以外の場合に工事案件諸変更の情報設定を行う
		// ++++++++++ v20.00.00 変更開始 ++++++++++
		// if("01".equals(inMap.getString(JBSbatKKIFM281.SVC_CD)) && !"00019".equals(inMap.getString(JBSbatKKIFM281.FIX_CST_IDO_DIV)))
		if(JBSbatKKConst.SVC_CD_IN_SVC.equals(inMap.getString(JBSbatKKIFM281.SVC_CD)) && !JBSbatKKConst.CD00576_IDO_DIV_00019.equals(inMap.getString(JBSbatKKIFM281.FIX_CST_IDO_DIV)))
		// ++++++++++ v20.00.00 変更終了 ++++++++++
		{
			String svcKeiNo_156 = inMap.getString(JBSbatKKIFM281.FIX_CST_SVC_KEI_NO);			// 確定抽出サービス契約番号（コース変更確定割引サービス情報ファイル）
			
			// 工事案件番号
			String kojiakNo = "";
			
			// SQL実行結果取得値格納用（サービス契約取得）
			// サービス契約検索実行
			executeKK_T_SVC_KEI_KK_SELECT_250(new String[]{super.opeDate, super.opeDate, svcKeiNo_156, super.opeDate});
			
			// サービス契約検索結果の次レコード取得
			JBSbatCommonDBInterface svcKeiMap = db_KK_T_SVC_KEI.selectNext();
						
			// サービス契約検索結果なしの場合、「サービスIF」呼出処理をスキップします
			if(null == svcKeiMap)
			{
				// 検索結果が無い場合は「サービスIF」呼出処理無しで、下記のログ出力する。
				super.logPrint.printDebugLog("サービス契約テーブル検索結果なし。サービス契約番号：" +  svcKeiNo_156 +  "が存在しません。");
				super.logPrint.printDebugLog("execute_END");
				return null;
			}
			
			// 新料金グループコード（コース変更確定割引サービス情報ファイル）
			String prcGrpCd = inMap.getString(JBSbatKKIFM281.PRC_GRP_CD);
			String idoDiv_156 = inMap.getString(JBSbatKKIFM281.FIX_CST_IDO_DIV);
			
			// 進捗登録にて取得した異動日時
			String idoDtm = JKKBatCommon.getIdoDtmMax(commonItem, svcKeiNo_156, idoDiv_156, stmt);
			
			// 「02(ｅｏ光ネットホームタイプ)」の場合
			// ++++++++++ v20.00.00 変更開始 ++++++++++
			// if ("02".equals(prcGrpCd))
			if (JBSbatKKConst.PGRP_NET_02.equals(prcGrpCd))
			// ++++++++++ v20.00.00 変更終了 ++++++++++
			{
				// 工事案件番号
				kojiakNo = inMap.getString(JBSbatKKIFM281.KOJIAK_NO);
				
				// 工事案件番号 = ""
				if("".equals(kojiakNo))
				{
					// 申込明細番号（コース変更確定割引サービス情報ファイル）
					String mskmDtlNo = inMap.getString(JBSbatKKIFM281.MSKM_DTL_NO);
					
					// 申込明細_工事案件より工事案件検索
					executeKU_T_MSKM_DTL_KOJIAK_KK_SELECT_006(new Object[]{mskmDtlNo});
					
					JBSbatCommonDBInterface dbMap = db_KU_T_MSKM_DTL_KOJIAK.selectNext();
					
					// 検索結果あり
					if(null != dbMap)
					{
						// 工事案件番号
						kojiakNo = JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKU_T_KOJIAK.KOJIAK_NO));
						super.logPrint.printDebugLog("★★02(ｅｏ光ネットホームタイプ)★申込明細_工事案件より工事案件検索(工事案件番号)--->" + kojiakNo);
					}
					else
					{
						super.logPrint.printDebugLog("★★02(ｅｏ光ネットホームタイプ)★申込明細_工事案件から工事案件番号未取得。サービス契約番号：" +  svcKeiNo_156 );
						super.logPrint.printDebugLog("execute_END");
						return null;
					}
				}
				
				// 工事案件＜eo光ネット＞諸変更マップへ項目設定
				// 工事案件＜eo光ネット＞諸変更情報設定
				inputMap.put(SC_TITLE_KOJIAK_NET_UPD, setKojiAkNetUpd(inMap, svcKeiMap, idoDtm, kojiakNo));
			}
			// 03(ｅｏ光ネットメゾンタイプ)または、04(ｅｏ光ネットマンションタイプ)の場合
			// ++++++++++ v20.00.00 変更開始 ++++++++++
			// else if ("03".equals(prcGrpCd) || "04".equals(prcGrpCd))
			else if (JBSbatKKConst.PGRP_NET_03.equals(prcGrpCd) || JBSbatKKConst.PGRP_NET_04.equals(prcGrpCd))
			// ++++++++++ v20.00.00 変更終了 ++++++++++
			{
				// サービス契約．提供方式契約番号取得
				String tkHoshikiKeiNo = JBSbatStringUtil.Rtrim(svcKeiMap.getString(JBSbatKK_T_SVC_KEI.TK_HOSHIKI_KEI_NO));
				
				// SQL実行結果取得値格納用（マンションコース情報取得）
				// 提供方式契約検索実行
				executeKK_T_TK_HOSHIKI_KEI_KK_SELECT_020(new String[]{super.opeDate, tkHoshikiKeiNo, super.opeDate, super.opeDate});
				
				// 提供方式契約検索結果の次レコード取得
				JBSbatCommonDBInterface tkHoshikiKeiMap_020 = db_KK_T_TK_HOSHIKI_KEI.selectNext();
							
				// 提供方式契約検索結果なしの場合、「サービスIF」呼出処理をスキップします
				if(null == tkHoshikiKeiMap_020)
				{
					// 検索結果が無い場合は「サービスIF」呼出処理無しで、下記のログ出力する。
					super.logPrint.printDebugLog("提供方式契約テーブル検索結果なし。提供方式契約番号：" +  tkHoshikiKeiNo +  "が存在しません。");
					super.logPrint.printDebugLog("execute_END");
					return null;
				}
				
				// マンション物件コード
				String mansionBukkenCd = "";
				
				// 工事案件のPK検索を行います
				JBSbatCommonDBInterface koijak_map = executeKU_T_KOJIAK_PKSELECT(new String[]{inMap.getString(JBSbatKKIFM281.KOJIAK_NO)});
				
				// 工事案件のPK検索結果なしの場合、エラーとし処理中断します
				if (koijak_map == null)
				{
					// 申込明細番号（コース変更確定割引サービス情報ファイル）
					String mskmDtlNo = inMap.getString(JBSbatKKIFM281.MSKM_DTL_NO);
					
					// 申込明細_工事案件より工事案件検索
					executeKU_T_MSKM_DTL_KOJIAK_KK_SELECT_006(new Object[]{mskmDtlNo});
					
					JBSbatCommonDBInterface dbMap = db_KU_T_MSKM_DTL_KOJIAK.selectNext();
					
					// 検索結果あり
					if(null != dbMap)
					{
						// マンション物件コード
						mansionBukkenCd = JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKU_T_KOJIAK.MANSION_BUKKEN_CD));
						
						// 工事案件番号
						kojiakNo = JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKU_T_KOJIAK.KOJIAK_NO));
						super.logPrint.printDebugLog("★★★申込明細_工事案件より工事案件検索(マンション物件コード)--->" + mansionBukkenCd);
						super.logPrint.printDebugLog("★★03(ｅｏ光ネットメゾンタイプ)または、04(ｅｏ光ネットマンションタイプ)★申込明細_工事案件より工事案件検索(工事案件番号)--->" + kojiakNo);
					}
					else
					{
						super.logPrint.printDebugLog("★★03(ｅｏ光ネットメゾンタイプ)または、04(ｅｏ光ネットマンションタイプ)★申込明細_工事案件から工事案件番号未取得。サービス契約番号：" +  svcKeiNo_156 );
						super.logPrint.printDebugLog("execute_END");
						return null;
					}
				}
				else
				{
					// 工事案件のPK検索結果ありの場合
					// マンション物件コード
					mansionBukkenCd = JBSbatStringUtil.Rtrim(koijak_map.getString(JBSbatKU_T_KOJIAK.MANSION_BUKKEN_CD));
					
					// 工事案件番号
					kojiakNo = JBSbatStringUtil.Rtrim(koijak_map.getString(JBSbatKU_T_KOJIAK.KOJIAK_NO));
				}
				
				// マンション通信設備コード
				String mansTushinEquipCd = JBSbatStringUtil.Rtrim(tkHoshikiKeiMap_020.getString(JBSbatKK_M_MANSION_COURSE.MANS_TUSHIN_EQUIP_CD));
				
				// 工事案件＜eo光ネットマンション＞諸変更マップへ項目設定
				// 工事案件＜eo光ネットマンション＞諸変更情報設定
				inputMap.put(SC_TITLE_KOJIAK_NET_MANS_UPD, setKojiAkNetMansUpd(inMap, svcKeiMap, idoDtm, mansTushinEquipCd, mansionBukkenCd, kojiakNo));
			}
		}
		
		// ユースケースIDを格納するMAP
		HashMap<Object, Object>  paramMap = new HashMap<Object, Object>();
		paramMap.put(JCCBatchEsbInterface.TELEGRAM_INFO_USECASE_ID, "KKSV0732");
		paramMap.put(JCCBatchEsbInterface.TELEGRAM_INFO_OPERATION_ID, "KKSV0732OP");
		
		HashMap<Object, Object> outputMap = new HashMap<Object, Object>();
		
		// サービス呼び出し
		JCCBatchEsbInterface.invokeService(super.commonItem, paramMap, inputMap, outputMap);
		
		// 部品からのリターンコードを取得します。
		String returnCode = (String)outputMap.get("RETURN_CODE");
		super.logPrint.printDebugLog("★RETURN_CODE：" + returnCode);
		
		// サービスインターフェースよりエラーが返却された場合
		if(!"0000".equals(returnCode))
		{			
			// 「サービスインターフェイスエラーの場合は、下記のログ出力する。
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0010CW, 
				new String[]{"工事案件諸変更においてエラーが発生(リターンコード):" + returnCode + " 入力電文：" + inputMap.toString()});
			
			//エラーフラグ設定
			super.commonItem.setErrFlg(true);
			
			//出力情報を返却
			return new JBSbatOutputItem() ;
		}
		
		super.logPrint.printDebugLog("execute_END");
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}
	
	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_SVC_KEI.close();
		db_KK_T_TK_HOSHIKI_KEI.close();
		db_KU_T_KOJIAK.close();
		db_KU_T_MSKM_DTL_KOJIAK.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		
		// 共通部品用
		stmt.close();
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}
	
	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * SQLKEY(KK_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 executeKU_T_MSKM_DTL_KOJIAK_KK_SELECT_006(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		
		// DBアクセスを実行します
		db_KU_T_MSKM_DTL_KOJIAK.selectBySqlDefine(paramList, KU_T_MSKM_DTL_KOJIAK_KK_SELECT_006);
	}
	
	/**
	 * SQLKEY(KK_SELECT_250)で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_250(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());
		
		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_250);
	}
	
	/**
	 * SQLKEY(KK_SELECT_020)で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_TK_HOSHIKI_KEI_KK_SELECT_020(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());
		
		// DBアクセスを実行します
		db_KK_T_TK_HOSHIKI_KEI.selectBySqlDefine(paramList, KK_T_TK_HOSHIKI_KEI_KK_SELECT_020);
	}
	
	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	KOJIAK_NO
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return JBSbatCommonDBInterface 検索の結果。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeKU_T_KOJIAK_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("KOJIAK_NO", whereParam[0]);
		
		// DBアクセスを実行します
		return db_KU_T_KOJIAK.selectByPrimaryKeys(whereMap);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	/**
	 * 工事案件＜eo光ネット＞諸変更対象データの設定を行います。
	 * <br>
	 * @param inputKojiAkNetUpdInfMap 工事案件＜eo光ネット＞諸変更情報
	 * @param inMap コース変更確定割引サービス情報ファイル
	 * @param svcKeiMap_250 サービス契約検索情報
	 * @param idoDtm 異動年月日時分秒
	 * @param kojiakNo 工事案件番号
	 * 
	 * @return inputKojiAkNetUpdInfMap 工事案件＜eo光ネット＞諸変更情報
	 * @throws Exception 
	 */
	private HashMap<Object, Object> setKojiAkNetUpd(JBSbatServiceInterfaceMap inMap, 
													JBSbatCommonDBInterface svcKeiMap_250, 
													String idoDtm, 
													String kojiakNo) throws Exception
	{
		HashMap<Object, Object> inputKojiAkNetUpdInfMap = new HashMap<Object, Object>();
		
		String  svcKeiNo_281 = inMap.getString(JBSbatKKIFM281.SVC_KEI_NO);										// サービス契約番号（コース変更確定割引サービス情報ファイル）
		
		String svcKeiKaiUwNo_281 = JBSbatStringUtil.Rtrim(svcKeiMap_250.getString(JBSbatKK_T_SVKEI_KAISEN_UW.SVC_KEI_KAISEN_UCWK_NO));	// サービス契約回線内訳番号
		
		String mskmDtlNo_281 = inMap.getString(JBSbatKKIFM281.MSKM_DTL_NO);										// 申込明細番号
		
		String koaijkNo_281 = kojiakNo;																			// 工事案件番号
		
		// ++++++++++ v20.00.00 変更開始 ++++++++++
		// String kjUkeCd = "070";																				// 工事受付コード
		
		// String kjUkeDtlCd = "A5";																			// 工事受付詳細コード
		String kjUkeCd = JBSbatKKConst.CD00884_KOJI_UK_CD_070;													// 工事受付コード
		
		String kjUkeDtlCd = JBSbatKKConst.CD00885_KOJI_UK_DTAIL_CD_A5;											// 工事受付詳細コード
		// ++++++++++ v20.00.00 変更終了 ++++++++++
		
		String svcCD_281 = inMap.getString(JBSbatKKIFM281.SVC_CD);												// サービスコード
		
		String sysid_281 = inMap.getString(JBSbatKKIFM281.SYSID);							// SYSID（コース変更確定割引サービス情報ファイル）
		
		// システム日付を取得
		String sysDate = JCCBatCommon.getSysDateTimeStamp();
		
		// ログレベルがデバッグモードの場合
		if(super.logPrint.chkLogLevel(JBSbatLogUtil.MODE_DEBUG))
		{
			
			super.logPrint.printDebugLog("サービス契約番号：" +  svcKeiNo_281);
			super.logPrint.printDebugLog("サービス契約回線内訳番号：" +  svcKeiKaiUwNo_281);
			super.logPrint.printDebugLog("申込明細番号：" +  mskmDtlNo_281);
			super.logPrint.printDebugLog("工事案件番号：" +  koaijkNo_281);
			super.logPrint.printDebugLog("工事受付コード：" +  kjUkeCd);
			super.logPrint.printDebugLog("工事受付詳細コード：" +  kjUkeDtlCd);
			super.logPrint.printDebugLog("工事受付契機異動年月日時分秒：" +  idoDtm);
			super.logPrint.printDebugLog("サービスコード_281：" +  svcCD_281);
			super.logPrint.printDebugLog("sysid_281：" +  sysid_281);
		}
		
		// サービス契約番号
		inputKojiAkNetUpdInfMap.put("svc_kei_no", svcKeiNo_281);
		
		// サービス契約回線内訳番号
		inputKojiAkNetUpdInfMap.put("svc_kei_kaisen_ucwk_no", svcKeiKaiUwNo_281);
		
		// 申込明細番号
		inputKojiAkNetUpdInfMap.put("mskm_dtl_no", mskmDtlNo_281);
		
		// 工事案件番号
		inputKojiAkNetUpdInfMap.put("kojiak_no", koaijkNo_281);
		
		// 工事受付コード
		inputKojiAkNetUpdInfMap.put("koji_uk_cd", kjUkeCd);
		
		// 工事受付詳細コード
		inputKojiAkNetUpdInfMap.put("koji_uk_dtail_cd", kjUkeDtlCd);
		
		// 工事受付契機異動年月日時分秒
		inputKojiAkNetUpdInfMap.put("koji_uk_optnty_ido_dtm", idoDtm);
		
		// サービスコード
		inputKojiAkNetUpdInfMap.put("svc_cd", svcCD_281);
		
		// プラン変更確定年月日時分秒
		inputKojiAkNetUpdInfMap.put("plan_chg_fix_ymd", sysDate);
		
		// SYSID
		inputKojiAkNetUpdInfMap.put("sysid", sysid_281);
		
		// 機能コード
		inputKojiAkNetUpdInfMap.put("func_code", "1");
		
		return inputKojiAkNetUpdInfMap;
	}
	
	/**
	 * 工事案件＜eo光ネット＞諸変更対象データの設定を行います。
	 * <br>
	 * @param inputKojiAkNetMansUpdInfMap 工事案件＜eo光ネットマンション＞諸変更情報
	 * @param inMap コース変更確定割引サービス情報ファイル
	 * @param svcKeiMap_250 サービス契約検索情報
	 * @param idoDtm 異動年月日時分秒
	 * @param mansTushinEquipCd マンション通信設備コード
	 * @param mansionBukkenCd   マンション物件コード
	 * @param kojiakNo 工事案件番号
	 * @return inputKojiAkNetMansUpdInfMap 工事案件＜eo光ネットマンション＞諸変更情報
	 * @throws Exception 
	 */
	private HashMap<Object, Object> setKojiAkNetMansUpd(JBSbatServiceInterfaceMap inMap, 
													JBSbatCommonDBInterface svcKeiMap_250, 
													String idoDtm,
													String mansTushinEquipCd,
													String mansionBukkenCd, 
													String kojiakNo) throws Exception
	{
		HashMap<Object, Object> inputKojiAkNetMansUpdInfMap = new HashMap<Object, Object>();
		
		String  svcKeiNo_281 = inMap.getString(JBSbatKKIFM281.SVC_KEI_NO);										// サービス契約番号（コース変更確定割引サービス情報ファイル）
		
		String svcKeiKaiUwNo_281 = JBSbatStringUtil.Rtrim(svcKeiMap_250.getString(JBSbatKK_T_SVKEI_KAISEN_UW.SVC_KEI_KAISEN_UCWK_NO));	// サービス契約回線内訳番号
		
		String mskmDtlNo_281 = inMap.getString(JBSbatKKIFM281.MSKM_DTL_NO);										// 申込明細番号
		
		String koaijkNo_281 = kojiakNo;																			// 工事案件番号
		
		// ++++++++++ v20.00.00 変更開始 ++++++++++
		// String kjUkeCd = "070";																				// 工事受付コード
		
		// String kjUkeDtlCd = "A5";																			// 工事受付詳細コード
		String kjUkeCd = JBSbatKKConst.CD00884_KOJI_UK_CD_070;													// 工事受付コード
		
		String kjUkeDtlCd = JBSbatKKConst.CD00885_KOJI_UK_DTAIL_CD_A5;											// 工事受付詳細コード
		// ++++++++++ v20.00.00 変更終了 ++++++++++
		
		String svcCD_281 = inMap.getString(JBSbatKKIFM281.SVC_CD);												// サービスコード
		
		String prcGrpCd_281 = inMap.getString(JBSbatKKIFM281.PRC_GRP_CD);										// 料金グループコード
		
		String sysid_281 = inMap.getString(JBSbatKKIFM281.SYSID);							// SYSID（コース変更確定割引サービス情報ファイル）
		
		// システム日付を取得
		String sysDate = JCCBatCommon.getSysDateTimeStamp();
		
		// ログレベルがデバッグモードの場合
		if(super.logPrint.chkLogLevel(JBSbatLogUtil.MODE_DEBUG))
		{
			super.logPrint.printDebugLog("サービス契約番号：" +  svcKeiNo_281);
			super.logPrint.printDebugLog("サービス契約回線内訳番号：" +  svcKeiKaiUwNo_281);
			super.logPrint.printDebugLog("申込明細番号：" +  mskmDtlNo_281);
			super.logPrint.printDebugLog("工事案件番号：" +  koaijkNo_281);
			super.logPrint.printDebugLog("工事受付コード：" +  kjUkeCd);
			super.logPrint.printDebugLog("工事受付詳細コード：" +  kjUkeDtlCd);
			super.logPrint.printDebugLog("工事受付契機異動年月日時分秒：" +  idoDtm);
			super.logPrint.printDebugLog("サービスコード：" +  svcCD_281);
			super.logPrint.printDebugLog("マンション通信設備コード：" + mansTushinEquipCd );
			super.logPrint.printDebugLog("料金グループコード：" +  prcGrpCd_281);
			super.logPrint.printDebugLog("プラン変更確定年月日時分秒：" + sysDate );
			super.logPrint.printDebugLog("sysid：" +  sysid_281);
		}
		
		// サービス契約番号
		inputKojiAkNetMansUpdInfMap.put("svc_kei_no", svcKeiNo_281);
		
		// サービス契約回線内訳番号
		inputKojiAkNetMansUpdInfMap.put("svc_kei_kaisen_ucwk_no", svcKeiKaiUwNo_281);
		
		// 申込明細番号
		inputKojiAkNetMansUpdInfMap.put("mskm_dtl_no", mskmDtlNo_281);
		
		// 工事案件番号
		inputKojiAkNetMansUpdInfMap.put("kojiak_no", koaijkNo_281);
		
		// 工事受付コード
		inputKojiAkNetMansUpdInfMap.put("koji_uk_cd", kjUkeCd);
		
		// 工事受付詳細コード
		inputKojiAkNetMansUpdInfMap.put("koji_uk_dtail_cd", kjUkeDtlCd);
		
		// 工事受付契機異動年月日時分秒
		inputKojiAkNetMansUpdInfMap.put("koji_uk_optnty_ido_dtm", idoDtm);
		
		// サービスコード
		inputKojiAkNetMansUpdInfMap.put("svc_cd", svcCD_281);
		
		// 料金グループコード
		inputKojiAkNetMansUpdInfMap.put("prc_grp_cd", prcGrpCd_281);
		
		// プラン変更確定年月日時分秒
		inputKojiAkNetMansUpdInfMap.put("plan_chg_fix_ymd", sysDate);
		
		// マンション通信設備コード
		inputKojiAkNetMansUpdInfMap.put("mans_tushin_equip_cd", mansTushinEquipCd);
		
		// マンション物件コード
		inputKojiAkNetMansUpdInfMap.put("mansion_bukken_cd", mansionBukkenCd);
		
		// SYSID
		inputKojiAkNetMansUpdInfMap.put("sysid", sysid_281);
		
		// 機能コード
		inputKojiAkNetMansUpdInfMap.put("func_code", "1");
		
		return inputKojiAkNetMansUpdInfMap;
	}
}
