/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKIpv6AdrInfoUpd
*	ソースファイル名	：JBSbatKKIpv6AdrInfoUpd.java
*	作成者				：富士通　
*	作成日				：2012年04月11日
*＜機能概要＞
*　ＩＰｖ６アドレス情報更新部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v3.00		2012/04/11  富士通		新規作成
*	v3.01		2012/08/27  FJ)砂川		【ST1-2012-0000378】IPv6アドレスが払出されない場合の対応
*	v4.00		2013/01/15  FJ)砂川		【ST4-2012-0000248】性能障害対応
*	v4.01		2013/02/22  FJ)砂川		【ST2-2013-0000815】ルータ未出荷時に表示用サービス開始年月日がNULLになる障害の対応
*********************************************************************/
package eo.business.service;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JKKBatCommon;
import eo.business.util.file.JBSbatKKIFM162;
import eo.business.util.table.JBSbatKK_T_KKTK_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_SVKEI_KAISEN_UW;
import eo.business.util.table.JBSbatZM_M_SHYAKK;
import eo.business.util.table.JBSbatZM_M_TAKNKIKI_MODEL;
import eo.common.constant.JPCBatchMessageConstant;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.util.JCCBatchEsbInterface;
import eo.framework.application.JBSbatBusinessError;
import eo.framework.db.JBSbatSQLAccess;

/**
* ＩＰｖ６用ＳＯＤ発行情報ファイルを読込み、SOD発行データを登録します。 <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKIpv6AdrInfoUpd extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(回線対象サービス契約)*/
	private static final String D_TBL_NAME_KK_T_KAISEN_TG_SVKEI = "KK_T_KAISEN_TG_SVKEI";

	/** テーブル(集約局)*/
	private static final String D_TBL_NAME_ZM_M_SHYAKK = "ZM_M_SHYAKK";
	
	/** テーブル(機器提供サービス契約)*/
	private static final String D_TBL_NAME_KK_T_KKTK_SVC_KEI = "KK_T_KKTK_SVC_KEI";

	/** SQL定義キー(KK_SELECT_013)*/
	private static final String KK_T_KAISEN_TG_SVKEI_KK_SELECT_013 = "KK_SELECT_013";

	/** SQL定義キー(KK_SELECT_001)*/
	private static final String ZM_M_SHYAKK_KK_SELECT_001 = "KK_SELECT_001";
	
	/** SQL定義キー(KK_SELECT_084)*/
	private static final String KK_T_KKTK_SVC_KEI_KK_SELECT_084 = "KK_SELECT_084";

	/** テーブルアクセスクラス(回線対象サービス契約)*/
	private JBSbatSQLAccess db_KK_T_KAISEN_TG_SVKEI = null;

	/** テーブルアクセスクラス(集約局)*/
	private JBSbatSQLAccess db_ZM_M_SHYAKK = null;
	
	/** テーブルアクセスクラス(機器提供サービス契約)*/
	private JBSbatSQLAccess db_KK_T_KKTK_SVC_KEI = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/** ユースケースID IPv6情報検索 */
	private static final String USECASE_ID_KKSV0555 = "KKSV0555";
	
	/** ユースケースID IPv6情報更新 */
	private static final String USECASE_ID_KKSV0556 = "KKSV0556";
	
	/** SCタイトル 未使用ＩＰｖ６アドレス一覧照会 */
	private static final String SC_TITLE_EZM0481B010 = "EZM0481B010SC";
	
	/** SCタイトル オプションサービス契約<ISP>一意照会 */
	private static final String SC_TITLE_EKK0361A010 = "EKK0361A010SC";
	
	/** SCタイトル オプションサービス契約一意照会 */
	private static final String SC_TITLE_EKK0351A010 = "EKK0351A010SC";
	
	/** SCタイトル オプションサービス契約＜ISP＞情報変更 */
	private static final String SC_TITLE_EKK0361C050 = "EKK0361C050SC";
	
	/** SCタイトル IPv6アドレス変更 */
	private static final String SC_TITLE_EZM0481C010 = "EZM0481C010SC";
	
	/** CCタイトル サービスオーダ発行 */
	private static final String CC_TITLE_JKKHAKKOSODCC = "JKKHakkoSODCC";

	/** SCタイトル サービス契約内訳一覧照会 */
	private static final String SC_TITLE_EKK0161B001 = "EKK0161B001SC";

	/** IPv6対応フラグ 対応 */
	private static final String IPV6_TAIO_FLG_TAIO = "1";
	
	/** サービスIFのリターンコード(正常) */
	private static final String RETURN_CODE_SUCCESS = "0000";
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_KAISEN_TG_SVKEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KAISEN_TG_SVKEI);
		db_ZM_M_SHYAKK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_SHYAKK);
		db_KK_T_KKTK_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KKTK_SVC_KEI);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		// 更新対象外フラグ
		boolean exceptTargetFlg = false;
		
		// 入力レコードに異常があった場合
		if (inMap.isInputErrorFlg())
		{
			// エラーを出力します。
			super.logPrint.printBusinessErrorLog(
					JPCBatchMessageConstant.EKKB0100AE, new String[]{"ＩＰｖ６用ＳＯＤ発行情報ファイル"});
			throw new JBSbatBusinessError();
		}

		// 単項目チェックを行います。
		if (!isSingleCheckKKIFM162_INF1(inMap.getMap(), getItemvalueMap()))
		{
			// エラーを出力します。
			super.logPrint.printBusinessErrorLog(
					JPCBatchMessageConstant.EKKB0090TE, new String[]{""});
			throw new JBSbatBusinessError();
		}

		// 中心局コード
		String stChuskkCd = null;

		// 回線対象サービス契約用のパラメータを設定します。
		Object[] setParamKts = {
				super.opeDate,									// バッチ運用日付
				inMap.getString(JBSbatKKIFM162.SVC_KEI_NO)		// サービス契約番号
		};

		// 回線対象サービス契約情報を取得します。
		executeKK_T_KAISEN_TG_SVKEI_KK_SELECT_013(setParamKts);

		// 結果を取得します。
		JBSbatCommonDBInterface rcvMap = db_KK_T_KAISEN_TG_SVKEI.selectNext();

		if (rcvMap != null)
		{
			// 起点変電所コード
			String stKitenHdshoCd = rcvMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KITEN_HDSHO_CD);
			// 集約局コード
			String stShyakkCd = rcvMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.SHYAKK_CD);

			// 集約局コードが設定されている場合
			if ((stShyakkCd != null) && (!"".equals(stShyakkCd)))
			{
				// 集約局用のパラメータを設定します。
				Object[] setParam = {
						stShyakkCd			// 集約局コード
				};

				// 集約局情報を取得します。
				rcvMap = executeZM_M_SHYAKK_PKSELECT(setParam);

				// 結果を取得します。
				if (rcvMap != null)
				{
					// 中心局コード
					stChuskkCd = rcvMap.getString(JBSbatZM_M_SHYAKK.CHUSKK_CD);
				}
			}
			// 起点変電所コードが設定されている場合
			else if ((stKitenHdshoCd != null) && (!"".equals(stKitenHdshoCd)))
			{
				// 集約局用のパラメータを設定します。
				Object[] setParam = {
						stKitenHdshoCd		// 起点変電所コード
				};

				// 集約局情報を取得します。
				executeZM_M_SHYAKK_KK_SELECT_001(setParam);

				// 結果を取得します。
				rcvMap = db_ZM_M_SHYAKK.selectNext();

				if (rcvMap != null)
				{
					// 中心局コード
					stChuskkCd = rcvMap.getString(JBSbatZM_M_SHYAKK.CHUSKK_CD);
				}
			}
			else
			{
				StringBuilder sb = new StringBuilder();
				sb.append("サービス契約番号：");
				sb.append(inMap.getString(JBSbatKKIFM162.SVC_KEI_NO));
				sb.append("に付随する起点変電所コード、集約局コード");
				
				//業務エラーログ出力
				super.logPrint.printBusinessErrorLog(
						JPCBatchMessageConstant.EKKB0290AW, new String[]{sb.toString()});
				throw new JBSbatBusinessError();

			}

			if (stChuskkCd != null)
			// 中心局コードを取得した場合
			{
				// -------------------------------------------------------------------------------
				// 未使用ＩＰｖ６アドレス一覧照会[サービスインターフェース]を呼び出します。
				// -------------------------------------------------------------------------------
				
				// ユースケースIDを格納
				HashMap<String, Object> paramMap = new HashMap<String, Object>();
				paramMap.put(JCCBatchEsbInterface.TELEGRAM_INFO_USECASE_ID, USECASE_ID_KKSV0555);
				
				// サービスに渡す業務データを格納
				HashMap<String, Object> inputMap = new HashMap<String, Object>();
				setSearchConditionInfo(inMap, inputMap, stChuskkCd);

				// サービスの処理結果の格納用MAP
				HashMap<String, Object> outputMap = new HashMap<String, Object>();
				JCCBatchEsbInterface.invokeService(super.commonItem, paramMap, inputMap, outputMap);
				
				String returnCode1 = JCCBatchEsbInterface.getReturnCode(outputMap);
				if(!RETURN_CODE_SUCCESS.equals(returnCode1))
				{//サービスがエラーを返した場合
					StringBuffer err_msg = new StringBuffer();
					err_msg.append("ステータスコード ：" + returnCode1);
					super.logPrint.printBusinessErrorLog("EKKB0010CW", 
							new String[]{ err_msg.toString() });
				}
				
				// SCのタイトルをキーに集約局マスタの値を取得する
				HashMap<String, Object> resultData = 
					(HashMap<String, Object>)outputMap.get(SC_TITLE_EZM0481B010);
				List<Map<String, Object>> zm0481B010List = 
					(List<Map<String, Object>>)resultData.get("EZM0481B010CBSMsg1List");
				Map<String, Object> zm0481B010Map = null;
				if (null != zm0481B010List && !zm0481B010List.isEmpty())
				{
					zm0481B010Map = (Map<String, Object>)zm0481B010List.get(0);
					
				}
				
				// SCのタイトルをキーにオプション契約サービス<ISP>の値を取得する
				HashMap<String, Object> resultData1 = 
					(HashMap<String, Object>)outputMap.get(SC_TITLE_EKK0361A010);
				List<Map<String, Object>> kk0361A010List = 
					(List<Map<String, Object>>)resultData1.get("EKK0361A010CBSMsg1List");
				Map<String, Object> kk0361A010Map = null;
				
				// SCのタイトルをキーにオプション契約サービスの値を取得する
				HashMap<String, Object> resultData2 = 
					(HashMap<String, Object>)outputMap.get(SC_TITLE_EKK0351A010);
				List<Map<String, Object>> kk0351A010List = 
					(List<Map<String, Object>>)resultData2.get("EKK0351A010CBSMsg1List");
				Map<String, Object> kk0351A010Map = null;
				
				// ST2-2012-0001543 ADD START
				// SCのタイトルをキーにサービス契約内訳の値を取得する
				HashMap<String, Object> kk00161B001Map = 
					(HashMap<String, Object>)outputMap.get(SC_TITLE_EKK0161B001);
				// ST2-2012-0001543 ADD END
				
				// 検索結果より更新処理を実施するか判断する
				if (null != kk0361A010List && !kk0361A010List.isEmpty() 
						&& null != kk0351A010List && !kk0351A010List.isEmpty())
				{
					kk0361A010Map = kk0361A010List.get(0);
					kk0351A010Map = kk0351A010List.get(0);
					
					// オプション契約サービス<ISP>のIPv6アドレスが取得できた場合、
					// 更新済のデータのため、更新対象外とする
					if (null != kk0361A010Map.get("ipv6_ad_ifid") 
							&& !"".equals(kk0361A010Map.get("ipv6_ad_ifid")))
					{
						// 更新対象外とする
						exceptTargetFlg = true;
						// ST2-2012-0001543 DELETE START
//						StringBuilder sb = new StringBuilder();
//						sb.append("サービス契約番号：");
//						sb.append(inMap.getString(JBSbatKKIFM162.SVC_KEI_NO));
//						sb.append("には更新可能なデータ");
//						super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0290AW, new String[]{sb.toString()});
						// ST2-2012-0001543 DELETE END
					}
				}
				else
				{
					if (null == kk0361A010List || kk0361A010List.isEmpty())
					{
						// オプションサービス契約<ISP>が取得できない場合、エラーとする
						StringBuilder sb = new StringBuilder();
						sb.append("オプションサービス契約番号：");
						sb.append(inMap.getString(JBSbatKKIFM162.OP_SVC_KEI_NO));
						sb.append("のオプション契約サービス<ISP>");
						
						//業務エラーログ出力
						super.logPrint.printBusinessErrorLog(
								JPCBatchMessageConstant.EKKB0290AW, new String[]{sb.toString()});
						throw new JBSbatBusinessError();
					}
					if (null == kk0351A010List || kk0351A010List.isEmpty())
					{
						// オプションサービス契約が取得できない場合、エラーとする
						StringBuilder sb = new StringBuilder();
						sb.append("オプションサービス契約番号：");
						sb.append(inMap.getString(JBSbatKKIFM162.OP_SVC_KEI_NO));
						sb.append("のオプション契約サービス");
						
						//業務エラーログ出力
						super.logPrint.printBusinessErrorLog(
								JPCBatchMessageConstant.EKKB0290AW, new String[]{sb.toString()});
						throw new JBSbatBusinessError();
					}
				}
				
				// -------------------------------------------------------------------------------
				// オプションサービス契約＜ＩＳＰ＞更新[サービスインターフェース]
				// ＩＰｖ６アドレス更新[サービスインターフェース]
				// サービスオーダ発行CCを呼び出します。
				// -------------------------------------------------------------------------------
				// ST1-2012-0000378 MOD START
				if ((null != zm0481B010Map && null != zm0481B010Map.get("ipv6_ad_ifid")) || exceptTargetFlg)
				{
				// ST1-2012-0000378 MOD END
					// ユースケースIDを格納
					HashMap<String, Object> paramMap2 = new HashMap<String, Object>();
					paramMap2.put(JCCBatchEsbInterface.TELEGRAM_INFO_USECASE_ID, USECASE_ID_KKSV0556);
	
					HashMap<String, Object> inputMap2 = new HashMap<String, Object>();
					
					// オプションサービス契約＜ＩＳＰ＞更新サービス
					setUpdateOpSvcKeiIspInfo(
							inMap, inputMap2, zm0481B010Map, kk0361A010Map, kk0351A010Map, exceptTargetFlg);
					// ＩＰｖ６アドレス更新サービス
					setUpdateIPv6Info(inputMap2, zm0481B010Map, exceptTargetFlg);
					// サービスオーダ発行CC
					setSendSodInfo(inMap, inputMap2, kk00161B001Map);
	
					// サービスの処理結果の格納用MAP
					HashMap<String, Object> outputMap2 = new HashMap<String, Object>();
	
					JCCBatchEsbInterface.invokeService(super.commonItem, paramMap2, inputMap2, outputMap2);
					
					String returnCode2 = JCCBatchEsbInterface.getReturnCode(outputMap2);
					if(!RETURN_CODE_SUCCESS.equals(returnCode2))
					{//サービスがエラーを返した場合
						StringBuffer err_msg2 = new StringBuffer();
						err_msg2.append("ステータスコード ：" + returnCode2);
						super.logPrint.printBusinessErrorLog("EKKB0010CW", 
								new String[]{ err_msg2.toString() });
					}
				}
				else
				{
					StringBuilder sb = new StringBuilder();
					sb.append("サービス契約番号：");
					sb.append(inMap.getString(JBSbatKKIFM162.SVC_KEI_NO));
					sb.append("には更新可能なIPv6アドレス");
					super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0290AW, new String[]{sb.toString()});
				}
			}
		}
		else
		{
			StringBuilder sb = new StringBuilder();
			sb.append("サービス契約番号：");
			sb.append(inMap.getString(JBSbatKKIFM162.SVC_KEI_NO));
			sb.append("には更新可能なデータ");
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0290AW, new String[]{sb.toString()});
		}

		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_KAISEN_TG_SVKEI.close();
		db_ZM_M_SHYAKK.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 *入力情報（ＩＰｖ６用ＳＯＤ発行情報ファイル）の単項目チェックを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.単項目チェックを行います。<br>
	 * 
	 * 2.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		rsMap:(項目、値)を(key、value)として、データをrsMapに入れます
	 *		itemvalueMap:埋め込み文字の値をitemvalueMapに入れます。キーの値は、以下に説明します。
	 *			 TXT-KKIFM162-INF1.SVC_KEI_NO			ＩＰｖ６用ＳＯＤ発行情報ファイル.サービス契約番号
	 *			 TXT-KKIFM162-INF1.IDO_DIV			ＩＰｖ６用ＳＯＤ発行情報ファイル.異動区分
	 *			 TXT-KKIFM162-INF1.PRC_GRP_CD			ＩＰｖ６用ＳＯＤ発行情報ファイル.料金グループコード
	 *			 TXT-KKIFM162-INF1.OP_SVC_KEI_NO			ＩＰｖ６用ＳＯＤ発行情報ファイル.変更前オプションサービス契約番号
	 *			 TXT-KKIFM162-INF1.GENE_ADD_DTM			ＩＰｖ６用ＳＯＤ発行情報ファイル.変更前オプションサービス世代登録年月日
	 * </pre>
	 * <p>
	 * @param rsMap 入力データ（TXT又はDB）を格納されたHashMap。
	 * @param itemvalueMap エラーメッセージに関する項目値を格納されたHashMap。
	 * @return  boolean trueである場合、エラーがありません。falseである場合、エラーを発生しました。
	 */
	@SuppressWarnings("unchecked")
	private boolean isSingleCheckKKIFM162_INF1(
			HashMap rsMap, HashMap itemvalueMap)
	{
		// 単項目チェックを行います
		String strValue = null;

		// サービス契約番号項目チェック
		strValue = (String)rsMap.get("SVC_KEI_NO");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKKB0060TE, new String[]{
															(String)itemvalueMap.get("TXT-KKIFM162-INF1.SVC_KEI_NO")});
			return false;
		}

		// 異動区分項目チェック
		strValue = (String)rsMap.get("IDO_DIV");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKKB0060TE, new String[]{
															(String)itemvalueMap.get("TXT-KKIFM162-INF1.IDO_DIV")});
			return false;
		}

		// 料金グループコード項目チェック
		strValue = (String)rsMap.get("PRC_GRP_CD");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKKB0060TE, new String[]{
															(String)itemvalueMap.get("TXT-KKIFM162-INF1.PRC_GRP_CD")});
			return false;
		}

		// 変更前オプションサービス契約番号項目チェック
		strValue = (String)rsMap.get("OP_SVC_KEI_NO");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKKB0060TE, new String[]{
															(String)itemvalueMap.get("TXT-KKIFM162-INF1.OP_SVC_KEI_NO")});
			return false;
		}

		// 変更前オプションサービス世代登録年月日項目チェック
		strValue = (String)rsMap.get("GENE_ADD_DTM");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKKB0060TE, new String[]{
															(String)itemvalueMap.get("TXT-KKIFM162-INF1.GENE_ADD_DTM")});
			return false;
		}

		return true;
	}

	/**
	 * SQLKEY(KK_SELECT_013)で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_KAISEN_TG_SVKEI_KK_SELECT_013(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_KAISEN_TG_SVKEI.selectBySqlDefine(paramList, KK_T_KAISEN_TG_SVKEI_KK_SELECT_013);
	}

	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SHYAKK_CD
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return JBSbatCommonDBInterface 検索の結果。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeZM_M_SHYAKK_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SHYAKK_CD", whereParam[0]);

		// DBアクセスを実行します
		return db_ZM_M_SHYAKK.selectByPrimaryKeys(whereMap);
	}

	/**
	 * SQLKEY(KK_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 executeZM_M_SHYAKK_KK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_ZM_M_SHYAKK.selectBySqlDefine(paramList, ZM_M_SHYAKK_KK_SELECT_001);
	}
	
	/**
	 * SQLKEY(KK_SELECT_084)で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_KKTK_SVC_KEI_KK_SELECT_084(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_KKTK_SVC_KEI.selectBySqlDefine(paramList, KK_T_KKTK_SVC_KEI_KK_SELECT_084);
		
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/

	/**
	 * エラーメッセージに関する項目値を格納された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-KKIFM162-INF1.SVC_KEI_NO", "ＩＰｖ６用ＳＯＤ発行情報ファイル.サービス契約番号");

		return itemvalueMap;
	}
	
	/**
	 * 検索条件を設定します
	 * 
	 * @param inMap 入力電文
	 * @param inputMap 入力情報
	 * @param stChuskkCd 中心局コード
	 * @throws Exception
	 */
	private void setSearchConditionInfo(
			JBSbatServiceInterfaceMap inMap, HashMap<String, Object> inputMap, 
			String stChuskkCd) throws Exception 
	{
		
		// --------------------------------------------------------------
		// 未使用IPv6取得
		// --------------------------------------------------------------
		// 中心コードを設定
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		dataMap.put("key_chuskk_cd", stChuskkCd);
		
		// 機能コードを設定
		// ST4-2012-0000248 Delete Start
//		dataMap.put("func_code", "1");
		// ST4-2012-0000248 Delete End
		// ST4-2012-0000248 Add Start
		dataMap.put("func_code", "2");
		// ST4-2012-0000248 Add End
		
		// SCのタイトルをキーにデータを格納
		inputMap.put(SC_TITLE_EZM0481B010, dataMap);
		
		// --------------------------------------------------------------
		// オプション契約サービス<ISP>情報取得取得
		// --------------------------------------------------------------
		// オプション契約番号を設定
		HashMap<String, Object> dataMap1 = new HashMap<String, Object>();
		dataMap1.put("key_op_svc_kei_no", inMap.getString(JBSbatKKIFM162.OP_SVC_KEI_NO));
		dataMap1.put("func_code", "2");
		
		// SCのタイトルをキーにデータを格納
		inputMap.put(SC_TITLE_EKK0361A010, dataMap1);
		
		// --------------------------------------------------------------
		// オプション契約サービス情報取得取得
		// --------------------------------------------------------------
		// オプション契約番号を設定
		HashMap<String, Object> dataMap2 = new HashMap<String, Object>();
		dataMap2.put("key_op_svc_kei_no", inMap.getString(JBSbatKKIFM162.OP_SVC_KEI_NO));
		dataMap2.put("key_rsv_aply_ymd", super.opeDate);
		dataMap2.put("func_code", "2");
		
		// SCのタイトルをキーにデータを格納
		inputMap.put(SC_TITLE_EKK0351A010, dataMap2);
		
		// ST2-2012-0001543 ADD START
		// --------------------------------------------------------------
		// サービス契約内訳情報取得取得
		// --------------------------------------------------------------
		// サービス契約番号を設定
		HashMap<String, Object> dataMap3 = new HashMap<String, Object>();
		dataMap3.put("key_svc_kei_no", inMap.getString(JBSbatKKIFM162.SVC_KEI_NO));
		dataMap3.put("func_code", "1");
		
		// SCのタイトルをキーにデータを格納
		inputMap.put(SC_TITLE_EKK0161B001, dataMap3);
		// ST2-2012-0001543 ADD END
	}
	
	/**
	 * オプションサービス契約＜ＩＳＰ＞更新サービス呼出の値を設定します。
	 * 
	 * @param inMap 入力電文
	 * @param inputMap 入力情報
	 * @param zm0481B010Map IPv6情報
	 * @param kk0361A010Map オプションサービス契約<ISP>情報マップ
	 * @param kk0351A010Map オプションサービス契約情報マップ
	 * @param exceptTargetFlg 更新対象除外フラグ
	 * @throws Exception
	 */
	private void setUpdateOpSvcKeiIspInfo(
			JBSbatServiceInterfaceMap inMap, HashMap<String, Object> inputMap, 
			Map<String, Object> zm0481B010Map, Map<String, Object> kk0361A010Map,
			Map<String, Object> kk0351A010Map, boolean exceptTargetFlg) throws Exception 
	{
		
		// ---------------------------------------------------------------------------
		// オプションサービス契約＜ＩＳＰ＞更新サービスに渡す業務データを格納
		// ---------------------------------------------------------------------------
		// オプションサービス契約＜ＩＳＰ＞更新項目を設定
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		
		// オプションサービス契約番号
		dataMap.put("op_svc_kei_no", inMap.getString(JBSbatKKIFM162.OP_SVC_KEI_NO));
		// 異動区分
		dataMap.put("ido_div", inMap.getString(JBSbatKKIFM162.IDO_DIV));
		// 更新年月日時分秒　更新前
		// ST2-2012-0001543 CHG START
		dataMap.put("upd_dtm_bf", kk0351A010Map.get("last_upd_dtm"));
		// ST2-2012-0001543 CHG END
		// IPv6アドレス(インターフェイスID)
		// ST1-2012-0000378 MOD START
//		dataMap.put("ipv6_ad_ifid", zm0481B010Map.get("ipv6_ad_ifid"));
		if(null == zm0481B010Map || null == zm0481B010Map.get("ipv6_ad_ifid"))
		{
			dataMap.put("ipv6_ad_ifid", "");
		}
		else
		{
			dataMap.put("ipv6_ad_ifid", zm0481B010Map.get("ipv6_ad_ifid"));
		}
		// ST1-2012-0000378 MOD END
		// 申込明細番号
		dataMap.put("mskm_dtl_no", kk0351A010Map.get("mskm_dtl_no"));
		// 試用加入年月日
		dataMap.put("ftrial_kanyu_ymd", kk0351A010Map.get("ftrial_kanyu_ymd"));
		
		// 試用期間終了年月日
		dataMap.put("ftrial_prd_endymd", kk0351A010Map.get("ftrial_prd_endymd"));
		// 本加入年月日
		dataMap.put("honkanyu_ymd", kk0351A010Map.get("honkanyu_ymd"));
		// 本加入移行期限年月日
		dataMap.put("honkanyu_iko_kigen_ymd", kk0351A010Map.get("honkanyu_iko_kigen_ymd"));
		// 違約金発生コード
		dataMap.put("pnlty_hassei_cd", kk0351A010Map.get("pnlty_hassei_cd"));
		
		// 希望メールアカウント1
		dataMap.put("kibo_ml_account_1", kk0361A010Map.get("kibo_ml_account_1"));
		// 希望メールアカウント2
		dataMap.put("kibo_ml_account_2", kk0361A010Map.get("kibo_ml_account_2"));
		// 希望メールアカウント3
		dataMap.put("kibo_ml_account_3", kk0361A010Map.get("kibo_ml_account_3"));
		// マルチセッション用セッション数
		dataMap.put("mltise_session_cnt", kk0361A010Map.get("mltise_session_cnt"));
		// 固定IPアドレス
		dataMap.put("kotei_ip_ad", kk0361A010Map.get("kotei_ip_ad"));
		// ネットマスク
		dataMap.put("netmask", kk0361A010Map.get("netmask"));
		// メールアドレス
		dataMap.put("mlad", kk0361A010Map.get("mlad"));
		// 容量
		dataMap.put("capa", kk0361A010Map.get("capa"));
		// URL(ドメイン)
		dataMap.put("url_domain", kk0361A010Map.get("url_domain"));
		// URL(アカウント)
		dataMap.put("url_account", kk0361A010Map.get("url_account"));
		// メーリングリスト名
		dataMap.put("mllist_nm", kk0361A010Map.get("mllist_nm"));
		// メーリングリスト呼称
		dataMap.put("mllist_kosho", kk0361A010Map.get("mllist_kosho"));
		// メーリングリスト公開要否
		dataMap.put("mllist_kokai_yh", kk0361A010Map.get("mllist_kokai_yh"));
		// メーリングリスト最大ユーザー数
		dataMap.put("mllist_max_user_cnt", kk0361A010Map.get("mllist_max_user_cnt"));
		// メーリングリスト管理者メールアドレス
		dataMap.put("mllist_krisha_mlad", kk0361A010Map.get("mllist_krisha_mlad"));
		// 独自ドメイン名
		dataMap.put("dokuji_domain_nm", kk0361A010Map.get("dokuji_domain_nm"));
		// ホスティングメールアカウント数
		dataMap.put("hosml_account_cnt", kk0361A010Map.get("hosml_account_cnt"));
		// ホスティングメールボックス総容量
		dataMap.put("hosml_box_capa", kk0361A010Map.get("hosml_box_capa"));
		// ホスティングメール管理者ID
		dataMap.put("hosml_krisha_id", kk0361A010Map.get("hosml_krisha_id"));
		// ホスティング初期メール管理者IDパスワード
		dataMap.put("hosting_shkm_krisha_id_pwd", kk0361A010Map.get("hosting_shkm_krisha_id_pwd"));
		// ホスティングメール管理者POPID
		dataMap.put("hosml_krisha_pop_id", kk0361A010Map.get("hosml_krisha_pop_id"));
		// ホスティング初期メール管理者POPIDパスワード
		dataMap.put("hos_shkm_krisha_pop_id_pwd", kk0361A010Map.get("hos_shkm_krisha_pop_id_pwd"));
		// ホスティングメール管理者メールアドレス
		dataMap.put("hosml_krisha_mlad", kk0361A010Map.get("hosml_krisha_mlad"));
		// ホスティングメール管理者メールボックス容量
		dataMap.put("hosml_krisha_mail_box_capa", kk0361A010Map.get("hosml_krisha_mail_box_capa"));
		// ダイヤルパッドID
		dataMap.put("dpad_id", kk0361A010Map.get("dpad_id"));
		// ダイヤルパッドISPID
		dataMap.put("dpad_isp_id", kk0361A010Map.get("dpad_isp_id"));
		// ダイヤルパッドMAPID
		dataMap.put("dpad_mapid", kk0361A010Map.get("dpad_mapid"));
		// ダイヤルパッドPIN
		dataMap.put("dpad_pin", kk0361A010Map.get("dpad_pin"));
		// ダイヤルパッドメールアドレス
		dataMap.put("dpad_mlad", kk0361A010Map.get("dpad_mlad"));
		// ダイヤルパッドID公開要否
		dataMap.put("dpad_id_kokai_yh", kk0361A010Map.get("dpad_id_kokai_yh"));
		// VoIPユーザーID
		dataMap.put("voip_user_id", kk0361A010Map.get("voip_user_id"));
		// DNS設定コード
		dataMap.put("dns_sette_cd", kk0361A010Map.get("dns_sette_cd"));
		// メールゲートウェイ管理者ID
		dataMap.put("mail_gw_krisha_id", kk0361A010Map.get("mail_gw_krisha_id"));
		// メールゲートウェイ管理者IDパスワード
		dataMap.put("mail_gw_krisha_id_pwd", kk0361A010Map.get("mail_gw_krisha_id_pwd"));
		// メールゲートウェイ管理者メールアドレス
		dataMap.put("mail_gw_krisha_mlad", kk0361A010Map.get("mail_gw_krisha_mlad"));
		// メールゲートウェイ受信メールサーバーIPアドレス
		dataMap.put("mail_gw_rcv_mserver_ip_ad", kk0361A010Map.get("mail_gw_rcv_mserver_ip_ad"));
		// メールゲートウェイ送信メールサーバーIPアドレス
		dataMap.put("mail_gw_send_mserver_ip_ad", kk0361A010Map.get("mail_gw_send_mserver_ip_ad"));
		// メールゲートウェイアカウント数
		dataMap.put("ml_gw_account_cnt", kk0361A010Map.get("ml_gw_account_cnt"));
		// サービス個別設定連絡先メールアドレス
		dataMap.put("svc_kbt_set_rrks_mlad", kk0361A010Map.get("svc_kbt_set_rrks_mlad"));
		// 通話明細公開要否
		dataMap.put("tuwa_dtl_kokai_yh", kk0361A010Map.get("tuwa_dtl_kokai_yh"));
		
		// 機能コードを設定
		dataMap.put("func_code", "1");
		
		// ST1-2012-0000378 ADD START
		if(exceptTargetFlg)
		{
			// 更新対象外フラグ
			dataMap.put("except_target_flg", "1");	// 更新対象外
		}
		else
		{
			// 更新対象外フラグ
			dataMap.put("except_target_flg", "0");	// 更新対象
			
		}
		// ST1-2012-0000378 ADD END
		
		// ----------------------------------------------------------
		// ルータ出荷済のサービス契約かを判断する
		// ----------------------------------------------------------
		dataMap.put("dsp_svctk_staymd", null);
		Object[] param = {inMap.getString(JBSbatKKIFM162.SVC_KEI_NO), super.opeDate, super.opeDate};
		executeKK_T_KKTK_SVC_KEI_KK_SELECT_084(param);
		
		JBSbatCommonDBInterface infoMap = db_KK_T_KKTK_SVC_KEI.selectNext();
		
		if (null != infoMap)
		{
			// 機器製造番号が設定済かつIPv6フラグが1の場合
			if (null != infoMap.getString(JBSbatKK_T_KKTK_SVC_KEI.KIKI_SEIZO_NO)
					&& IPV6_TAIO_FLG_TAIO.equals(infoMap.getString(JBSbatZM_M_TAKNKIKI_MODEL.IPV6_TAIO_FLG)))
			{
				// 画面表示用サービス提供開始年月日
				dataMap.put("dsp_svctk_staymd", super.opeDate);
			}
			// ▼▼▼ ST2-2013-0000815 AS ▼▼▼
			else
			{
				// 画面表示用サービス提供開始年月日
				dataMap.put("dsp_svctk_staymd", kk0351A010Map.get("dsp_svctk_staymd"));
			}
			// ▲▲▲ ST2-2013-0000815 AE ▲▲▲
		}
		// ▼▼▼ ST2-2013-0000815 AS ▼▼▼
		else
		{
			// 画面表示用サービス提供開始年月日
			dataMap.put("dsp_svctk_staymd", kk0351A010Map.get("dsp_svctk_staymd"));
		}
		// ▲▲▲ ST2-2013-0000815 AE ▲▲▲
		
		// SCのタイトルをキーにデータを格納
		inputMap.put(SC_TITLE_EKK0361C050, dataMap);
	}
	
	/**
	 * IPv6更新サービス呼出の値を設定します。
	 * 
	 * @param inputMap 入力情報
	 * @param zm0481B010Map IPv6情報
	 * @param exceptTargetFlg 更新対象除外フラグ
	 * @throws Exception
	 */
	private void setUpdateIPv6Info(HashMap<String, Object> inputMap, 
			Map<String, Object> zm0481B010Map, boolean exceptTargetFlg) throws Exception 
	{
		
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		
		// ST1-2012-0000378 ADD START
		// IPv6アドレス(インターフェイスID)
		if(null == zm0481B010Map || null == zm0481B010Map.get("ipv6_ad_ifid"))
		{
			dataMap.put("ipv6_ad_ifid", "");
		}
		else
		{
			dataMap.put("ipv6_ad_ifid", zm0481B010Map.get("ipv6_ad_ifid"));
		}
		// 中心局コード
		if(null == zm0481B010Map || null == zm0481B010Map.get("chuskk_cd"))
		{
			dataMap.put("chuskk_cd", "");
		}
		else
		{
			dataMap.put("chuskk_cd", zm0481B010Map.get("chuskk_cd"));
		}
		// 使用回数
		BigDecimal cnt = new BigDecimal("0");
		if (null != zm0481B010Map && null != zm0481B010Map.get("use_cnt") && !"".equals(zm0481B010Map.get("use_cnt")))
		{
			cnt = new BigDecimal((String)zm0481B010Map.get("use_cnt"));
		}
		cnt = cnt.add(new BigDecimal("1"));
		dataMap.put("use_cnt", cnt.toString());
		// IPv6アドレス適用開始年月日
		dataMap.put("ipv6_ad_tstaymd", super.opeDate);
		// IPv6アドレス適用終了年月日
		dataMap.put("ipv6_ad_tendymd", JKKBatCommon.getMaxDate());
		// 更新前最終年月日時分秒
		if(null == zm0481B010Map || null == zm0481B010Map.get("upd_dtm"))
		{
			dataMap.put("last_upd_dtm_bf", "");
		}
		else
		{
			dataMap.put("last_upd_dtm_bf", zm0481B010Map.get("upd_dtm"));
		}
		// ST1-2012-0000378 ADD END

		// ST1-2012-0000378 DELETE START
//		// IPv6アドレス(インターフェイスID)
//		dataMap.put("ipv6_ad_ifid", zm0481B010Map.get("ipv6_ad_ifid"));
//		// 中心局コード
//		dataMap.put("chuskk_cd", zm0481B010Map.get("chuskk_cd"));
//		// 使用回数
//		BigDecimal cnt = new BigDecimal("0");
//		if (null != zm0481B010Map.get("use_cnt") && !"".equals(zm0481B010Map.get("use_cnt")))
//		{
//			cnt = new BigDecimal((String)zm0481B010Map.get("use_cnt"));
//		}
//		cnt = cnt.add(new BigDecimal("1"));
//		dataMap.put("use_cnt", cnt.toString());
//		// IPv6アドレス適用開始年月日
//		dataMap.put("ipv6_ad_tstaymd", super.opeDate);
//		// IPv6アドレス適用終了年月日
//		dataMap.put("ipv6_ad_tendymd", JKKBatCommon.getMaxDate());
//		// 更新前最終年月日時分秒
//		dataMap.put("last_upd_dtm_bf", zm0481B010Map.get("upd_dtm"));
		// ST1-2012-0000378 DELETE END
		
		// 機能コードを設定
		dataMap.put("func_code", "1");	
		
		// SCのタイトルをキーにデータを格納

		inputMap.put(SC_TITLE_EZM0481C010, dataMap);
	}
	
	/**
	 * サービスオーダ発行呼出の値を設定します
	 * 
	 * @param inMap 入力伝聞
	 * @param inputMap 入力情報
	 * @throws Exception
	 */
	private void setSendSodInfo(
			JBSbatServiceInterfaceMap inMap, HashMap<String, Object> inputMap, HashMap<String, Object> kk00161B001Map) throws Exception 
	{
		
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		ArrayList<Map<String, Object>> dataList = new ArrayList<Map<String, Object>>();
		HashMap<String, Object> sodMap = new HashMap<String, Object>();
		HashMap<String, Object> sodKihonInfoMap = new HashMap<String, Object>();
		HashMap<String, Object> svcKeiInfoMap = new HashMap<String, Object>();
		HashMap<String, Object> opSvcInfoMap = new HashMap<String, Object>();
		HashMap<String, Object> svcKeiUcwkInfoMap = new HashMap<String, Object>();
		
		// ------------------------------------
		// SOD基本情報を設定する
		// ------------------------------------
		// SYSID
		sodKihonInfoMap.put("sysid", inMap.getString(JBSbatKKIFM162.SYSID));
		// 異動区分
		sodKihonInfoMap.put("ido_div", inMap.getString(JBSbatKKIFM162.IDO_DIV));
		// SOD基本情報をSOD情報に設定する
		sodMap.put("sod_kihon_info", sodKihonInfoMap);
		
		// ------------------------------------
		// サービス契約情報を設定する
		// ------------------------------------
		// サービス契約番号
		svcKeiInfoMap.put("svc_kei_no", inMap.getString(JBSbatKKIFM162.SVC_KEI_NO));
		// サービス契約情報をSOD情報に設定する
		sodMap.put("svc_kei_info", svcKeiInfoMap);
		
		// ------------------------------------
		// オプションサービス契約情報を設定する
		// ------------------------------------
		// 変更後オプションサービス契約番号
		opSvcInfoMap.put("chaf_opsvkei_no", inMap.getString(JBSbatKKIFM162.OP_SVC_KEI_NO));
		// ST2-2012-0001543 ADD START
		// 変更後オプションサービス契約世代登録年月日時分秒
		opSvcInfoMap.put("chaf_opsvkei_gene_add_dtm", inMap.getString(JBSbatKKIFM162.GENE_ADD_DTM));
		// オプションサービス契約情報をSOD情報に設定する
		// ST2-2012-0001543 ADD END
		// オプションサービス契約情報をSOD情報に設定する
		sodMap.put("opsvkei_info", opSvcInfoMap);
		
		// ST2-2012-0001543 ADD START
		// ------------------------------------
		// サービス契約内訳情報を設定する
		// ------------------------------------
		// 変更前サービス契約内訳世代登録年月日時分秒
		svcKeiUcwkInfoMap.put("chbf_svc_kei_ucwk_gene_add_dtm", kk00161B001Map.get("gene_add_dtm"));
		// 変更後サービス契約内訳世代登録年月日時分秒
		svcKeiUcwkInfoMap.put("chaf_svc_kei_ucwk_gene_add_dtm", kk00161B001Map.get("gene_add_dtm"));
		// サービス契約内訳番号
		svcKeiUcwkInfoMap.put("svc_kei_ucwk_no", kk00161B001Map.get("svc_kei_ucwk_no"));
		// サービス契約情報をSOD情報に設定する
		sodMap.put("svc_kei_ucwk_info", svcKeiUcwkInfoMap);
		// ST2-2012-0001543 ADD END
		
		// ------------------------------------
		// SOD情報をリストに設定する
		// ------------------------------------
		dataList.add(sodMap);
		
		// ------------------------------------
		// リストをデータマップに設定する
		// ------------------------------------
		dataMap.put("trgt_data_list", dataList);
		// 機能コードを設定
		dataMap.put("func_code", "1");	
		
		// CCのタイトルをキーにデータを格納
		inputMap.put(CC_TITLE_JKKHAKKOSODCC, dataMap);
	}
}
