/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKUFcdsOltSetChgRsltHanei
*	ソースファイル名	：JBSbatKUFcdsOltSetChgRsltHanei.java
*	作成者				：富士通　
*	作成日				：2011年08月30日
*＜機能概要＞
*　ＦＣＤＳＯＬＴ設定変更結果反映部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/08/30   富士通		新規作成
*	v35.00.00	2017/12/01	FJ)柳川		【ANK-3334-00-00】OLT設定変更改善対応(追加対応）
*	v36.00.00	2018/02/27	FJ)河邊		【OM-2018-0000093】OLT設定変更マイナー
*	v63.00.00	2022/12/09	FJ)北谷		【OM-2022-0000903】OLT設定変更のアラームに対する対応
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JKUBatCommon;
import eo.business.util.file.JBSbatKUIFE019;
import eo.business.util.table.JBSbatKK_M_PCRS;
import eo.business.util.table.JBSbatKU_T_OLT_SETE_CHG;
import eo.business.util.table.JBSbatKU_T_SETTE_KOJI;
import eo.business.util.table.JBSbatZM_M_CD_NM_KANRI;
import eo.common.constant.JKUStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.common.constant.JZM0171Constant;
import eo.framework.application.JBSbatBusinessError;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.util.JBSbatCheckUtil;

/**
* ＦＣＤＳＯＬＴ設定変更結果反映 <p>
*<BR>
* @author 富士通
*/
public class JBSbatKUFcdsOltSetChgRsltHanei extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(工事案件)*/
	private static final String D_TBL_NAME_KU_T_KOJIAK = "KU_T_KOJIAK";

	/** テーブル(ＯＬＴ設定変更)*/
	private static final String D_TBL_NAME_KU_T_OLT_SETE_CHG = "KU_T_OLT_SETE_CHG";

	/** テーブル(設定工事)*/
	private static final String D_TBL_NAME_KU_T_SETTE_KOJI = "KU_T_SETTE_KOJI";

	/** SQL定義キー(KU_SELECT_003)*/
	private static final String KU_T_OLT_SETE_CHG_KU_SELECT_003 = "KU_SELECT_003";

	/** SQL定義キー(KU_SELECT_005)*/
	private static final String KU_T_SETTE_KOJI_KU_SELECT_005 = "KU_SELECT_005";

	// OM-2022-0000903 ADD START
	/** SQL定義キー(KU_SELECT_002)*/
	private static final String KK_M_PCRS_KU_SELECT_002 = "KU_SELECT_002";
	
	/** SQL定義キー(KU_SELECT_004)*/
	private static final String ZM_M_CD_NM_KANRI_KU_SELECT_004 = "KU_SELECT_004";
	// OM-2022-0000903 ADD END

	/** テーブルアクセスクラス(工事案件)*/
	private JBSbatSQLAccess db_KU_T_KOJIAK = null;

	/** テーブルアクセスクラス(ＯＬＴ設定変更)*/
	private JBSbatSQLAccess db_KU_T_OLT_SETE_CHG = null;

	/** テーブルアクセスクラス(設定工事)*/
	private JBSbatSQLAccess db_KU_T_SETTE_KOJI = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/**▼▼▼▼▼▼業務が作成した宣言です 開始▼▼▼▼▼▼*/
	
	/** テーブル(コード名称管理)*/
	private static final String D_TBL_NAME_ZM_M_CD_NM_KANRI = "ZM_M_CD_NM_KANRI";
	
	/** テーブルアクセスクラス(コード名称管理)*/
	private JBSbatSQLAccess db_ZM_M_CD_NM_KANRI = null;

	// OM-2022-0000903 ADD START
	/** テーブル(料金コース)*/
	private static final String D_TBL_NAME_KK_M_PCRS = "KK_M_PCRS";
	
	/** テーブルアクセスクラス(料金コース)*/
	private JBSbatSQLAccess db_KK_M_PCRS = null;
	
	/** 料金コースコード名称Map*/
	private HashMap<String, String> pcrsNmMap = null;
	
	/** エラー情報コード名称Map*/
	private HashMap<String, String> errorInfoCdNmMap = null;
	// OM-2022-0000903 ADD END
	/** ログ出力用項目名設定Map */
	private HashMap<String, String> messageMap = null;
	
	/**▲▲▲▲▲▲業務が作成した宣言です 終了▲▲▲▲▲▲*/

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KU_T_KOJIAK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_KOJIAK);
		db_KU_T_OLT_SETE_CHG = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_OLT_SETE_CHG);
		db_KU_T_SETTE_KOJI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_SETTE_KOJI);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		db_ZM_M_CD_NM_KANRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_CD_NM_KANRI);
		
		// OM-2022-0000903 ADD START
		db_KK_M_PCRS = new  JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_M_PCRS);
		
		// 料金コースの名称を取得
		pcrsNmMap = selectPcrsNm();
		// エラー情報コードの名称を取得
		errorInfoCdNmMap = selectErrorInfoCdNm();
		// OM-2022-0000903 ADD END
		
		// ログ出力用項目名設定Mapを作成
		messageMap = createMessageMap();
		
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		try
		{
			// 入力レコードの項目数チェック 
			if(inMap.isInputErrorFlg()) 
			{
				// エラーログを出力し続行する。
				super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKUB0490CE, new String[]{});
				
				throw new JBSbatBusinessError();
			}
			
			// 単項目チェック
			if (!isSingleCheckKUIFE019_INF1(inMap.getMap(), messageMap))
			{
				// エラーログは単項目チェックで出力済、次レコードへ
				throw new JBSbatBusinessError();
			}
			
			// コード定義チェック
			if (!isCodeCheck(inMap))
			{
				// エラーログは定義チェックで出力済、次レコードへ
				throw new JBSbatBusinessError();
			}
			
			// 工事案件番号
			String kojiakNo = inMap.getString(JBSbatKUIFE019.NEWESTA_KOJIAK_NO);
			
			// 工事案件を取得する
			JBSbatCommonDBInterface kojiakMap = selectKojiak(kojiakNo);
			
			// 工事案件が取得できない場合
			if (null == kojiakMap)
			{
				// %1%に該当の%2%が存在しません。（%3%）
				commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0070KE, new String[]{
																JKUStrConst.SCHEMANM_KU0011,
																"工事案件番号",
																kojiakNo});
				throw new JBSbatBusinessError();
			}
			
			// OLT設定変更検索結果
			JBSbatCommonDBInterface selectOlt = selectOltSeteChg(inMap);
			
			if (null == selectOlt)
			{
// ANK-3334-00-00 MOD START
//				// %1%に該当の%2%が存在しません。（%3%）
//				commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0070KE, new String[]{
//																JKUStrConst.SCHEMANM_KU0211,
//																"レコード",
//																kojiakNo});
//				throw new JBSbatBusinessError();
				
				// %1%に該当の%2%が存在しません。（%3%）
				commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0520AI, new String[]{
																JKUStrConst.SCHEMANM_KU0211,
																"レコード",
																kojiakNo});
				return null;
// ANK-3334-00-00 MOD END
			}
			
			// 旧料金コースコード
			String oldPrcCd = selectOlt.getString(JBSbatKU_T_OLT_SETE_CHG.OLD_PCRS_CD);
			// 新料金コースコード
			String newPrcCd = selectOlt.getString(JBSbatKU_T_OLT_SETE_CHG.NEW_PCRS_CD);
			
			// 設定工事を取得する
			List<JBSbatCommonDBInterface> setteKojiDataList = selectSetteKoji(kojiakNo, oldPrcCd, newPrcCd);
			
			// 設定工事が取得できない場合
			if (null == setteKojiDataList || 0 == setteKojiDataList.size())
			{
				// %1%に該当の%2%が存在しません。（%3%）
				commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0070KE, new String[]{
																JKUStrConst.SCHEMANM_KU0111,
																"レコード",
																kojiakNo});
				throw new JBSbatBusinessError();
			}
			
// OM-2018-0000093 2018/02/27 ADD START
			// FCDSOLT設定変更結果受信データファイルの設定工事結果コードが「NG」の場合
			if (JKUStrConst.CD00680_NG.equals(inMap.get(JBSbatKUIFE019.SETTE_KOJI_RSLT_CD)))
			{
				// エラーが発生しましたが、処理を継続します。エラー内容(%1%)
				String mesInfo = "設定結果が設定NGで連携されました。"
									+ "（工事案件番号：" + (String)inMap.get(JBSbatKUIFE019.KOJIAK_NO)
									+ " サービス契約番号：" + (String)inMap.get(JBSbatKUIFE019.SVC_KEI_NO)
									// OM-2022-0000903 ADD START
									+ " 旧料金コース：" + oldPrcCd + "：" + pcrsNmMap.get(oldPrcCd)
									+ " 新料金コース：" + newPrcCd + "：" + pcrsNmMap.get(newPrcCd)
									+ " エラーコード：" + (String)inMap.get(JBSbatKUIFE019.ERR_INFO_CD) + "：" + errorInfoCdNmMap.get(inMap.get(JBSbatKUIFE019.ERR_INFO_CD))
									// OM-2022-0000903 ADD END
									+ "）";
				super.logPrint.printBusinessErrorLog("EKKB0010CW", new String[]{mesInfo});
				
				super.commonItem.setErrFlg(true);
			}
// OM-2018-0000093 2018/02/27 ADD END
			// OLT設定変更に結果を設定する
			updateOltSeteChg(inMap, selectOlt);
			
			// 設定工事に結果を設定する
			updateSetteKoji(inMap, setteKojiDataList.get(0));
			
		}
		catch (JBSbatBusinessError eBusiness)
		{
			// ロールバック
			commonItem.getConnection().rollback();
			throw eBusiness;
		}
		
		// コミット
		super.commit();
		
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KU_T_KOJIAK.close();
		db_KU_T_OLT_SETE_CHG.close();
		db_KU_T_SETTE_KOJI.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		db_ZM_M_CD_NM_KANRI.close();
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
//	/**
//	 *入力情報（ＦＣＤＳＯＬＴ設定変更結果受信）の単項目チェックを行います。<br>
//	 * <p>
//	 * <b>処理フロー</b><br>
//	 * <pre>
//	 * 1.単項目チェックを行います。<br>
//	 * 
//	 * 2.メソッドの呼び出し方です。<br>
//	 *		引数:
//	 *		rsMap:(項目、値)を(key、value)として、データをrsMapに入れます
//	 *		itemvalueMap:埋め込み文字の値をitemvalueMapに入れます。キーの値は、以下に説明します。
//	 *			 TXT-KUIFE019-INF1.KOJIAK_NO			ＦＣＤＳＯＬＴ設定変更結果受信.工事案件番号
//	 *			 TXT-KUIFE019-INF1.KOJIAK_NO			ＦＣＤＳＯＬＴ設定変更結果受信.工事案件番号
//	 *			 TXT-KUIFE019-INF1.KOJIAK_NO			ＦＣＤＳＯＬＴ設定変更結果受信.工事案件番号
//	 *			 TXT-KUIFE019-INF1.SVC_KEI_NO			ＦＣＤＳＯＬＴ設定変更結果受信.サービス契約番号
//	 *			 TXT-KUIFE019-INF1.SVC_KEI_NO			ＦＣＤＳＯＬＴ設定変更結果受信.サービス契約番号
//	 *			 TXT-KUIFE019-INF1.SVC_KEI_NO			ＦＣＤＳＯＬＴ設定変更結果受信.サービス契約番号
//	 *			 TXT-KUIFE019-INF1.SETTE_NAIYO			ＦＣＤＳＯＬＴ設定変更結果受信.設定内容
//	 *			 TXT-KUIFE019-INF1.SETTE_NAIYO			ＦＣＤＳＯＬＴ設定変更結果受信.設定内容
//	 *			 TXT-KUIFE019-INF1.SETTE_KOJI_RSLT_CD			ＦＣＤＳＯＬＴ設定変更結果受信.設定工事結果コード
//	 *			 TXT-KUIFE019-INF1.SETTE_KOJI_RSLT_CD			ＦＣＤＳＯＬＴ設定変更結果受信.設定工事結果コード
//	 *			 TXT-KUIFE019-INF1.SETTE_KOJI_RSLT_CD			ＦＣＤＳＯＬＴ設定変更結果受信.設定工事結果コード
//	 *			 TXT-KUIFE019-INF1.ERR_HASSEI_MT_CD			ＦＣＤＳＯＬＴ設定変更結果受信.エラー発生元コード
//	 *			 TXT-KUIFE019-INF1.ERR_HASSEI_MT_CD			ＦＣＤＳＯＬＴ設定変更結果受信.エラー発生元コード
//	 *			 TXT-KUIFE019-INF1.ERR_INFO_CD			ＦＣＤＳＯＬＴ設定変更結果受信.エラー情報コード
//	 *			 TXT-KUIFE019-INF1.ERR_INFO_CD			ＦＣＤＳＯＬＴ設定変更結果受信.エラー情報コード
//	 *			 TXT-KUIFE019-INF1.OLD_PPLAN			ＦＣＤＳＯＬＴ設定変更結果受信.旧料金プラン
//	 *			 TXT-KUIFE019-INF1.OLD_PPLAN			ＦＣＤＳＯＬＴ設定変更結果受信.旧料金プラン
//	 *			 TXT-KUIFE019-INF1.OLD_PPLAN			ＦＣＤＳＯＬＴ設定変更結果受信.旧料金プラン
//	 *			 TXT-KUIFE019-INF1.NEW_PPLAN			ＦＣＤＳＯＬＴ設定変更結果受信.新料金プラン
//	 *			 TXT-KUIFE019-INF1.NEW_PPLAN			ＦＣＤＳＯＬＴ設定変更結果受信.新料金プラン
//	 *			 TXT-KUIFE019-INF1.NEW_PPLAN			ＦＣＤＳＯＬＴ設定変更結果受信.新料金プラン
//	 *			 TXT-KUIFE019-INF1.NEWESTA_KOJIAK_NO			ＦＣＤＳＯＬＴ設定変更結果受信.新設工事案件番号
//	 *			 TXT-KUIFE019-INF1.NEWESTA_KOJIAK_NO			ＦＣＤＳＯＬＴ設定変更結果受信.新設工事案件番号
//	 *			 TXT-KUIFE019-INF1.NEWESTA_KOJIAK_NO			ＦＣＤＳＯＬＴ設定変更結果受信.新設工事案件番号
//	 * </pre>
//	 * <p>
//	 * @param rsMap 入力データ（TXT又はDB）を格納されたHashMap。
//	 * @param itemvalueMap エラーメッセージに関する項目値を格納されたHashMap。
//	 * @return  boolean trueである場合、エラーがありません。falseである場合、エラーを発生しました。
//	 */
//	private boolean isSingleCheckKUIFE019_INF1(HashMap rsMap, HashMap itemvalueMap)
//	{
//		// 単項目チェックを行います
//		String strValue = null;
//
//		// 工事案件番号項目チェック
//		strValue = (String)rsMap.get("KOJIAK_NO");
//		// 必須チェック
//		if(strValue == null || "".equals(strValue))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EKUB0010TE", new String[]{
//															(String)itemvalueMap.get("TXT-KUIFE019-INF1.KOJIAK_NO")});
//			return false;
//		}
//		// 桁数チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "10"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EKUB0050TE", new String[]{
//															(String)itemvalueMap.get("TXT-KUIFE019-INF1.KOJIAK_NO"),
//															"エラー値"});
//			return false;
//		}
//		// 属性チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EKUB0160TE", new String[]{
//															(String)itemvalueMap.get("TXT-KUIFE019-INF1.KOJIAK_NO"),
//															"エラー値"});
//			return false;
//		}
//
//		// サービス契約番号項目チェック
//		strValue = (String)rsMap.get("SVC_KEI_NO");
//		// 必須チェック
//		if(strValue == null || "".equals(strValue))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EKUB0010TE", new String[]{
//															(String)itemvalueMap.get("TXT-KUIFE019-INF1.SVC_KEI_NO")});
//			return false;
//		}
//		// 桁数チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "10"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EKUB0050TE", new String[]{
//															(String)itemvalueMap.get("TXT-KUIFE019-INF1.SVC_KEI_NO"),
//															"エラー値"});
//			return false;
//		}
//		// 属性チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EKUB0160TE", new String[]{
//															(String)itemvalueMap.get("TXT-KUIFE019-INF1.SVC_KEI_NO"),
//															"エラー値"});
//			return false;
//		}
//
//		// 設定内容項目チェック
//		strValue = (String)rsMap.get("SETTE_NAIYO");
//		// 桁数チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "32"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EKUB0050TE", new String[]{
//															(String)itemvalueMap.get("TXT-KUIFE019-INF1.SETTE_NAIYO"),
//															"エラー値"});
//			return false;
//		}
//		// 属性チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"zenkaku"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EKUB0160TE", new String[]{
//															(String)itemvalueMap.get("TXT-KUIFE019-INF1.SETTE_NAIYO"),
//															"エラー値"});
//			return false;
//		}
//
//		// 設定工事結果コード項目チェック
//		strValue = (String)rsMap.get("SETTE_KOJI_RSLT_CD");
//		// 必須チェック
//		if(strValue == null || "".equals(strValue))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EKUB0010TE", new String[]{
//															(String)itemvalueMap.get("TXT-KUIFE019-INF1.SETTE_KOJI_RSLT_CD")});
//			return false;
//		}
//		// 桁数チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "1"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EKUB0050TE", new String[]{
//															(String)itemvalueMap.get("TXT-KUIFE019-INF1.SETTE_KOJI_RSLT_CD"),
//															"エラー値"});
//			return false;
//		}
//		// 属性チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EKUB0160TE", new String[]{
//															(String)itemvalueMap.get("TXT-KUIFE019-INF1.SETTE_KOJI_RSLT_CD"),
//															"エラー値"});
//			return false;
//		}
//
//		// エラー発生元コード項目チェック
//		strValue = (String)rsMap.get("ERR_HASSEI_MT_CD");
//		// 桁数チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "2"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EKUB0050TE", new String[]{
//															(String)itemvalueMap.get("TXT-KUIFE019-INF1.ERR_HASSEI_MT_CD"),
//															"エラー値"});
//			return false;
//		}
//		// 属性チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EKUB0160TE", new String[]{
//															(String)itemvalueMap.get("TXT-KUIFE019-INF1.ERR_HASSEI_MT_CD"),
//															"エラー値"});
//			return false;
//		}
//
//		// エラー情報コード項目チェック
//		strValue = (String)rsMap.get("ERR_INFO_CD");
//		// 桁数チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "3"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EKUB0050TE", new String[]{
//															(String)itemvalueMap.get("TXT-KUIFE019-INF1.ERR_INFO_CD"),
//															"エラー値"});
//			return false;
//		}
//		// 属性チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EKUB0160TE", new String[]{
//															(String)itemvalueMap.get("TXT-KUIFE019-INF1.ERR_INFO_CD"),
//															"エラー値"});
//			return false;
//		}
//
//		// 旧料金プラン項目チェック
//		strValue = (String)rsMap.get("OLD_PPLAN");
//		// 必須チェック
//		if(strValue == null || "".equals(strValue))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EKUB0010TE", new String[]{
//															(String)itemvalueMap.get("TXT-KUIFE019-INF1.OLD_PPLAN")});
//			return false;
//		}
//		// 桁数チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "3"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EKUB0050TE", new String[]{
//															(String)itemvalueMap.get("TXT-KUIFE019-INF1.OLD_PPLAN"),
//															"エラー値"});
//			return false;
//		}
//		// 属性チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EKUB0160TE", new String[]{
//															(String)itemvalueMap.get("TXT-KUIFE019-INF1.OLD_PPLAN"),
//															"エラー値"});
//			return false;
//		}
//
//		// 新料金プラン項目チェック
//		strValue = (String)rsMap.get("NEW_PPLAN");
//		// 必須チェック
//		if(strValue == null || "".equals(strValue))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EKUB0010TE", new String[]{
//															(String)itemvalueMap.get("TXT-KUIFE019-INF1.NEW_PPLAN")});
//			return false;
//		}
//		// 桁数チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "3"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EKUB0050TE", new String[]{
//															(String)itemvalueMap.get("TXT-KUIFE019-INF1.NEW_PPLAN"),
//															"エラー値"});
//			return false;
//		}
//		// 属性チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EKUB0160TE", new String[]{
//															(String)itemvalueMap.get("TXT-KUIFE019-INF1.NEW_PPLAN"),
//															"エラー値"});
//			return false;
//		}
//
//		// 新設工事案件番号項目チェック
//		strValue = (String)rsMap.get("NEWESTA_KOJIAK_NO");
//		// 必須チェック
//		if(strValue == null || "".equals(strValue))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EKUB0010TE", new String[]{
//															(String)itemvalueMap.get("TXT-KUIFE019-INF1.NEWESTA_KOJIAK_NO")});
//			return false;
//		}
//		// 桁数チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "10"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EKUB0050TE", new String[]{
//															(String)itemvalueMap.get("TXT-KUIFE019-INF1.NEWESTA_KOJIAK_NO"),
//															"エラー値"});
//			return false;
//		}
//		// 属性チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EKUB0160TE", new String[]{
//															(String)itemvalueMap.get("TXT-KUIFE019-INF1.NEWESTA_KOJIAK_NO"),
//															"エラー値"});
//			return false;
//		}
//
//		return true;
//	}

//	/**
//	 * 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);
//	}

//	/**
//	 * 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);
//	}

	/**
	 * SQLKEY(KU_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 executeKU_T_OLT_SETE_CHG_KU_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_KU_T_OLT_SETE_CHG.selectBySqlDefine(paramList, KU_T_OLT_SETE_CHG_KU_SELECT_003);
	}

	/**
	 * SQLKEY(KU_SELECT_005)で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_SETTE_KOJI_KU_SELECT_005(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_KU_T_SETTE_KOJI.selectBySqlDefine(paramList, KU_T_SETTE_KOJI_KU_SELECT_005);
	}

	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	設定結果コード				SETTE_RSLT_CD
	 *		 	設定内容				SETTE_NAIYO
	 *		 	エラー発生元コード				ERR_HASSEI_MT_CD
	 *		 	エラー情報コード				ERR_INFO_CD
	 *		 	連携先応答年月日時分秒				RNKS_RSP_DTM
	 *		 	完了結果連携要否				FIN_RSLT_RENKEI_YH
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	OLT_SET_CHGE_NO
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKU_T_OLT_SETE_CHG_PKUPDATE(Object[] setParam, Object[] whereParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("SETTE_RSLT_CD", setParam[0]);
		setMap.setValue("SETTE_NAIYO", setParam[1]);
		setMap.setValue("ERR_HASSEI_MT_CD", setParam[2]);
		setMap.setValue("ERR_INFO_CD", setParam[3]);
		setMap.setValue("RNKS_RSP_DTM", setParam[4]);
		setMap.setValue("FIN_RSLT_RENKEI_YH", setParam[5]);
	
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("OLT_SET_CHGE_NO", whereParam[0]);

		// DBアクセスを実行します
		db_KU_T_OLT_SETE_CHG.updateByPrimaryKeys(whereMap, setMap);
	}

	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	設定工事ステータス				SETTE_KOJI_STAT
	 *		 	設定工事結果コード				SETTE_KOJI_RSLT_CD
	 *		 	設定工事完了年月日				SETTE_KOJI_FIN_YMD
	 *		 	連携先応答年月日時分秒				RNKS_RSP_DTM
	 *		 	設定工事年月日				SETTE_KOJI_YMD
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SETTE_KOJI_NO
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKU_T_SETTE_KOJI_PKUPDATE(Object[] setParam, Object[] whereParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("SETTE_KOJI_STAT", setParam[0]);
		setMap.setValue("SETTE_KOJI_RSLT_CD", setParam[1]);
		setMap.setValue("SETTE_KOJI_FIN_YMD", setParam[2]);
		setMap.setValue("RNKS_RSP_DTM", setParam[3]);
		setMap.setValue("SETTE_KOJI_YMD", setParam[4]);
	
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SETTE_KOJI_NO", whereParam[0]);

		// DBアクセスを実行します
		db_KU_T_SETTE_KOJI.updateByPrimaryKeys(whereMap, setMap);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**▼▼▼▼▼▼業務サービスで生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 *入力情報（ＦＣＤＳＯＬＴ設定変更結果受信）の単項目チェックを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.単項目チェックを行います。<br>
	 * 
	 * 2.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		rsMap:(項目、値)を(key、value)として、データをrsMapに入れます
	 *		itemvalueMap:埋め込み文字の値をitemvalueMapに入れます。キーの値は、以下に説明します。
	 *			 TXT-KUIFE019-INF1.KOJIAK_NO			ＦＣＤＳＯＬＴ設定変更結果受信.工事案件番号
	 *			 TXT-KUIFE019-INF1.KOJIAK_NO			ＦＣＤＳＯＬＴ設定変更結果受信.工事案件番号
	 *			 TXT-KUIFE019-INF1.KOJIAK_NO			ＦＣＤＳＯＬＴ設定変更結果受信.工事案件番号
	 *			 TXT-KUIFE019-INF1.SVC_KEI_NO			ＦＣＤＳＯＬＴ設定変更結果受信.サービス契約番号
	 *			 TXT-KUIFE019-INF1.SVC_KEI_NO			ＦＣＤＳＯＬＴ設定変更結果受信.サービス契約番号
	 *			 TXT-KUIFE019-INF1.SVC_KEI_NO			ＦＣＤＳＯＬＴ設定変更結果受信.サービス契約番号
	 *			 TXT-KUIFE019-INF1.SETTE_NAIYO			ＦＣＤＳＯＬＴ設定変更結果受信.設定内容
	 *			 TXT-KUIFE019-INF1.SETTE_NAIYO			ＦＣＤＳＯＬＴ設定変更結果受信.設定内容
	 *			 TXT-KUIFE019-INF1.SETTE_KOJI_RSLT_CD			ＦＣＤＳＯＬＴ設定変更結果受信.設定工事結果コード
	 *			 TXT-KUIFE019-INF1.SETTE_KOJI_RSLT_CD			ＦＣＤＳＯＬＴ設定変更結果受信.設定工事結果コード
	 *			 TXT-KUIFE019-INF1.ERR_HASSEI_MT_CD			ＦＣＤＳＯＬＴ設定変更結果受信.エラー発生元コード
	 *			 TXT-KUIFE019-INF1.ERR_HASSEI_MT_CD			ＦＣＤＳＯＬＴ設定変更結果受信.エラー発生元コード
	 *			 TXT-KUIFE019-INF1.ERR_HASSEI_MT_CD			ＦＣＤＳＯＬＴ設定変更結果受信.エラー発生元コード
	 *			 TXT-KUIFE019-INF1.ERR_INFO_CD			ＦＣＤＳＯＬＴ設定変更結果受信.エラー情報コード
	 *			 TXT-KUIFE019-INF1.ERR_INFO_CD			ＦＣＤＳＯＬＴ設定変更結果受信.エラー情報コード
	 *			 TXT-KUIFE019-INF1.OLD_PPLAN			ＦＣＤＳＯＬＴ設定変更結果受信.旧料金プラン
	 *			 TXT-KUIFE019-INF1.OLD_PPLAN			ＦＣＤＳＯＬＴ設定変更結果受信.旧料金プラン
	 *			 TXT-KUIFE019-INF1.OLD_PPLAN			ＦＣＤＳＯＬＴ設定変更結果受信.旧料金プラン
	 *			 TXT-KUIFE019-INF1.NEW_PPLAN			ＦＣＤＳＯＬＴ設定変更結果受信.新料金プラン
	 *			 TXT-KUIFE019-INF1.NEW_PPLAN			ＦＣＤＳＯＬＴ設定変更結果受信.新料金プラン
	 *			 TXT-KUIFE019-INF1.NEW_PPLAN			ＦＣＤＳＯＬＴ設定変更結果受信.新料金プラン
	 *			 TXT-KUIFE019-INF1.NEWESTA_KOJIAK_NO			ＦＣＤＳＯＬＴ設定変更結果受信.新設工事案件番号
	 *			 TXT-KUIFE019-INF1.NEWESTA_KOJIAK_NO			ＦＣＤＳＯＬＴ設定変更結果受信.新設工事案件番号
	 *			 TXT-KUIFE019-INF1.NEWESTA_KOJIAK_NO			ＦＣＤＳＯＬＴ設定変更結果受信.新設工事案件番号
	 * </pre>
	 * <p>
	 * @param rsMap 入力データ（TXT又はDB）を格納されたHashMap。
	 * @param itemvalueMap エラーメッセージに関する項目値を格納されたHashMap。
	 * @return  boolean trueである場合、エラーがありません。falseである場合、エラーを発生しました。
	 */
	private boolean isSingleCheckKUIFE019_INF1(HashMap rsMap, HashMap itemvalueMap)
	{
		// 単項目チェックを行います
		String strValue = null;

		// 工事案件番号項目チェック
		strValue = (String)rsMap.get("KOJIAK_NO");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0010TE, new String[]{
															(String)itemvalueMap.get("TXT-KUIFE019-INF1.KOJIAK_NO")});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "10", "10"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0050TE, new String[]{
															(String)itemvalueMap.get("TXT-KUIFE019-INF1.KOJIAK_NO"),
															strValue});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0160TE, new String[]{
															(String)itemvalueMap.get("TXT-KUIFE019-INF1.KOJIAK_NO"),
															strValue});
			return false;
		}

		// サービス契約番号項目チェック
		strValue = (String)rsMap.get("SVC_KEI_NO");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0010TE, new String[]{
															(String)itemvalueMap.get("TXT-KUIFE019-INF1.SVC_KEI_NO")});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "10", "10"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0050TE, new String[]{
															(String)itemvalueMap.get("TXT-KUIFE019-INF1.SVC_KEI_NO"),
															strValue});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0160TE, new String[]{
															(String)itemvalueMap.get("TXT-KUIFE019-INF1.SVC_KEI_NO"),
															strValue});
			return false;
		}

		// 設定内容項目チェック
		strValue = (String)rsMap.get("SETTE_NAIYO");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "32"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKUB0050TE", new String[]{
															(String)itemvalueMap.get("TXT-KUIFE019-INF1.SETTE_NAIYO"),
															strValue});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"zenkaku"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKUB0160TE", new String[]{
															(String)itemvalueMap.get("TXT-KUIFE019-INF1.SETTE_NAIYO"),
															strValue});
			return false;
		}

		// 設定工事結果コード項目チェック
		strValue = (String)rsMap.get("SETTE_KOJI_RSLT_CD");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0010TE, new String[]{
															(String)itemvalueMap.get("TXT-KUIFE019-INF1.SETTE_KOJI_RSLT_CD")});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "1", "1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0050TE, new String[]{
															(String)itemvalueMap.get("TXT-KUIFE019-INF1.SETTE_KOJI_RSLT_CD"),
															strValue});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0160TE, new String[]{
															(String)itemvalueMap.get("TXT-KUIFE019-INF1.SETTE_KOJI_RSLT_CD"),
															strValue});
			return false;
		}

		// エラー発生元コード項目チェック
		strValue = (String)rsMap.get("ERR_HASSEI_MT_CD");
		// 桁数チェック
		if(JKUBatCommon.isNotNull(strValue) && !JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "2", "2"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0050TE, new String[]{
															(String)itemvalueMap.get("TXT-KUIFE019-INF1.ERR_HASSEI_MT_CD"),
															strValue});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0160TE, new String[]{
															(String)itemvalueMap.get("TXT-KUIFE019-INF1.ERR_HASSEI_MT_CD"),
															strValue});
			return false;
		}

		// エラー情報コード項目チェック
		strValue = (String)rsMap.get("ERR_INFO_CD");
		// 桁数チェック
		if(JKUBatCommon.isNotNull(strValue) && !JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "3", "3"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0050TE, new String[]{
															(String)itemvalueMap.get("TXT-KUIFE019-INF1.ERR_INFO_CD"),
															strValue});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0160TE, new String[]{
															(String)itemvalueMap.get("TXT-KUIFE019-INF1.ERR_INFO_CD"),
															strValue});
			return false;
		}

		// 旧料金プラン項目チェック
		strValue = (String)rsMap.get("OLD_PPLAN");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0010TE, new String[]{
															(String)itemvalueMap.get("TXT-KUIFE019-INF1.OLD_PPLAN")});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "3", "3"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0050TE, new String[]{
															(String)itemvalueMap.get("TXT-KUIFE019-INF1.OLD_PPLAN"),
															strValue});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0160TE, new String[]{
															(String)itemvalueMap.get("TXT-KUIFE019-INF1.OLD_PPLAN"),
															strValue});
			return false;
		}

		// 新料金プラン項目チェック
		strValue = (String)rsMap.get("NEW_PPLAN");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0010TE, new String[]{
															(String)itemvalueMap.get("TXT-KUIFE019-INF1.NEW_PPLAN")});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "3", "3"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0050TE, new String[]{
															(String)itemvalueMap.get("TXT-KUIFE019-INF1.NEW_PPLAN"),
															strValue});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0160TE, new String[]{
															(String)itemvalueMap.get("TXT-KUIFE019-INF1.NEW_PPLAN"),
															strValue});
			return false;
		}

		// 新設工事案件番号項目チェック
		strValue = (String)rsMap.get("NEWESTA_KOJIAK_NO");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0010TE, new String[]{
															(String)itemvalueMap.get("TXT-KUIFE019-INF1.NEWESTA_KOJIAK_NO")});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "10", "10"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0050TE, new String[]{
															(String)itemvalueMap.get("TXT-KUIFE019-INF1.NEWESTA_KOJIAK_NO"),
															strValue});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0160TE, new String[]{
															(String)itemvalueMap.get("TXT-KUIFE019-INF1.NEWESTA_KOJIAK_NO"),
															strValue});
			return false;
		}

		return true;
	}

	/**
	 *入力情報（ＦＣＤＳＯＬＴ設定変更結果受信）のコード値チェックを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.下記項目の設定値がコード定義に存在しない場合、エラー。<br>
	 * 
	 * 2.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		rsMap:(項目、値)を(key、value)として、データをrsMapに入れます
	 *		itemvalueMap:埋め込み文字の値をitemvalueMapに入れます。キーの値は、以下に説明します。
	 *			 SETTE_KOJI_RSLT_CD			ＦＣＤＳＯＬＴ設定変更結果受信.設定工事結果コード
	 *			 ERR_HASSEI_MT_CD			ＦＣＤＳＯＬＴ設定変更結果受信.エラー発生元コード
	 *			 ERR_INFO_CD			ＦＣＤＳＯＬＴ設定変更結果受信.エラー情報コード
	 * </pre>
	 * <p>
	 * @param inMap 入力データ（TXT又はDB）を格納されたHashMap。
	 * @return  boolean trueである場合、エラーがありません。falseである場合、エラーを発生しました。
	 * @throws Exception 
	 */
	private boolean isCodeCheck(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		
		// チェック対象の値を格納する変数
		String strValue = null;
		
		// 設定結果コードを格納(NOTNULL)
		strValue = inMap.getString(JBSbatKUIFE019.SETTE_KOJI_RSLT_CD);
		if (!JKUBatCommon.isCodeMaster(db_ZM_M_CD_NM_KANRI, commonItem, strValue, JZM0171Constant.CD00680))
		{
			// %1%はコードが不正です。（%2%）
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0130TE, new String[]{
															messageMap.get("TXT-KUIFE019-INF1.SETTE_KOJI_RSLT_CD"),
															strValue});
			
			return false;
		}
		
		// エラー発生元コードを格納(NULL)
		strValue = inMap.getString(JBSbatKUIFE019.ERR_HASSEI_MT_CD);
		if (JKUBatCommon.isNotNull(strValue) && !JKUBatCommon.isCodeMaster(db_ZM_M_CD_NM_KANRI, commonItem, strValue, JZM0171Constant.CD00696))
		{
			// %1%はコードが不正です。（%2%）
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0130TE, new String[]{
															messageMap.get("TXT-KUIFE019-INF1.ERR_HASSEI_MT_CD"),
															strValue});
			
			return false;
		}
		
		// エラー情報コードを格納(NULL)
		strValue = inMap.getString(JBSbatKUIFE019.ERR_INFO_CD);
		if (JKUBatCommon.isNotNull(strValue) && !JKUBatCommon.isCodeMaster(db_ZM_M_CD_NM_KANRI, commonItem, strValue, JZM0171Constant.CD00697))
		{
			// %1%はコードが不正です。（%2%）
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0130TE, new String[]{
															messageMap.get("TXT-KUIFE019-INF1.ERR_INFO_CD"),
															strValue});
			
			return false;
		}
		
		return true;
	}
	
	/**
	 * 工事案件をＰＫで取得します。
	 * @param kojiakNo　工事案件番号
	 * @return JBSbatCommonDBInterface 工事案件検索の結果
	 * @throws Exception
	 */
	private JBSbatCommonDBInterface selectKojiak(String kojiakNo) throws Exception
	{
		// 検索処理に渡すパラメタを設定
		Object[] whereParam = new Object[1];
		// 工事案件番号
		whereParam[0] = kojiakNo;
		
		return executeKU_T_KOJIAK_PKSELECT(whereParam);
	}
	
	/**
	 * OLT設定変更を取得します。
	 * @param inMap 入力電文
	 * @return JBSbatCommonDBInterface 工事案件検索の結果
	 * @throws Exception
	 */
	private JBSbatCommonDBInterface selectOltSeteChg(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		// 検索処理に渡すパラメタを設定
		Object[] whereParam = new Object[3];
		// 工事案件番号
		whereParam[0] = inMap.getString(JBSbatKUIFE019.NEWESTA_KOJIAK_NO);
		// 工事旧料金プランコード
		whereParam[1] = inMap.getString(JBSbatKUIFE019.OLD_PPLAN);
		// 工事新料金プランコード
		whereParam[2] = inMap.getString(JBSbatKUIFE019.NEW_PPLAN);
		
		// OLT設定変更の検索
		this.executeKU_T_OLT_SETE_CHG_KU_SELECT_003(whereParam);
		
		return db_KU_T_OLT_SETE_CHG.selectNext();
	}
	
	/**
	 * 設定工事を取得します
	 * @param kojiAkNo	工事案件番号
	 * @param oldPrcCd	旧料金コースコード
	 * @param newPrcCd	新料金コースコード
	 * @return	取得した設定工事のリスト
	 * @throws Exception
	 */
	private List<JBSbatCommonDBInterface> selectSetteKoji(String kojiAkNo, String oldPrcCd, String newPrcCd) throws Exception
	{
		List<JBSbatCommonDBInterface> retList = new ArrayList<JBSbatCommonDBInterface>();
		// 検索処理に渡すパラメタを設定
		Object[] param = new Object[3];
		
		// 工事案件番号
		param[0] = kojiAkNo;
		// 旧料金コースコード
		param[1] = oldPrcCd;
		// 新料金コースコード
		param[2] = newPrcCd;
		
		// 検索を実行する
		executeKU_T_SETTE_KOJI_KU_SELECT_005(param);
		
		// 検索結果を取得する
		JBSbatCommonDBInterface tempObj = null;
		tempObj = db_KU_T_SETTE_KOJI.selectNext();
		while(null != tempObj)
		{
			retList.add(tempObj);
			tempObj = db_KU_T_SETTE_KOJI.selectNext();
		}
		
		return retList;
	}
	
	/**
	 * OLT設定変更を更新します
	 * @param inMap 入力電文
	 * @param selectOlt OLT設定変更データ
	 * @throws Exception
	 */
	private void updateOltSeteChg(JBSbatServiceInterfaceMap inMap, JBSbatCommonDBInterface selectOlt) throws Exception
	{
		Object[] setParam = new Object[6];
		Object[] whereParam = new Object[1];
		
		// OLT設定変更番号
		whereParam[0] = selectOlt.getString(JBSbatKU_T_OLT_SETE_CHG.OLT_SET_CHGE_NO);
		
		// 設定結果コード
		setParam[0] = inMap.getString(JBSbatKUIFE019.SETTE_KOJI_RSLT_CD);
		// 設定内容
		setParam[1] = inMap.getString(JBSbatKUIFE019.SETTE_NAIYO);
		// エラー発生元コード
		setParam[2] = inMap.getString(JBSbatKUIFE019.ERR_HASSEI_MT_CD);
		// エラー情報コード
		setParam[3] = inMap.getString(JBSbatKUIFE019.ERR_INFO_CD);
		// 連携先応答年月日時分秒
		setParam[4] = JKUBatCommon.getSysDateTime();
		
		// FCDSOLT設定変更結果受信データファイルの設定結果コードが「OK」の場合
		if (JKUStrConst.CD00680_OK.equals(inMap.getString(JBSbatKUIFE019.SETTE_KOJI_RSLT_CD)))
		{
			// ｢要｣を設定する。
			setParam[5] = JKUStrConst.KH_PSG;
		}
		// FCDSOLT設定変更結果受信データファイルの設定結果コードが「NG」及び
		// OLT設定変更情報の工事契約サービスコードが「05:インターネットオフィス」の場合
		else if (JKUStrConst.CD00680_NG.equals(inMap.getString(JBSbatKUIFE019.SETTE_KOJI_RSLT_CD)) &&
				JKUStrConst.CD01108_INTERNET_OFFICE.equals(selectOlt.getString(JBSbatKU_T_OLT_SETE_CHG.KOJI_KEI_SVC_CD)))
		{
			// ｢要｣を設定する。
			setParam[5] = JKUStrConst.KH_PSG;
		}
		else
		{
			// 以外の場合、「否」
			setParam[5] = JKUStrConst.KH_FAIL;
		}
		
		// OLT設定変更検索対象への反映
		this.executeKU_T_OLT_SETE_CHG_PKUPDATE(setParam, whereParam);

	}
	
	/**
	 * 設定工事を更新します
	 * @param inMap 入力電文
	 * @param slctSetteKoji 設定工事データ
	 * @throws Exception
	 */
	private void updateSetteKoji(JBSbatServiceInterfaceMap inMap, JBSbatCommonDBInterface slctSetteKoji) throws Exception
	{
		Object[] setParam = new Object[5];
		Object[] whereParam = new Object[1];
		
		// 設定工事番号
		whereParam[0] = slctSetteKoji.getString(JBSbatKU_T_SETTE_KOJI.SETTE_KOJI_NO);
		
		if (JKUStrConst.CD00680_OK.equals(inMap.getString(JBSbatKUIFE019.SETTE_KOJI_RSLT_CD)))
		{
			// ファイルの設定結果コードが「OK」の場合
			
			setParam[0] = JKUStrConst.CD00477_FIN_ZM;
			setParam[2] = super.opeDate;
			setParam[4] = super.opeDate;
		}
		else
		{
			// 以外の場合
			
			setParam[0] = slctSetteKoji.getString(JBSbatKU_T_SETTE_KOJI.SETTE_KOJI_STAT);
			setParam[2] = slctSetteKoji.getString(JBSbatKU_T_SETTE_KOJI.SETTE_KOJI_FIN_YMD);
			setParam[4] = slctSetteKoji.getString(JBSbatKU_T_SETTE_KOJI.SETTE_KOJI_YMD);
		}
		
		// 設定工事結果コード
		setParam[1] = inMap.getString(JBSbatKUIFE019.SETTE_KOJI_RSLT_CD);
		
		// 連携先応答年月日時分秒(システム日時)
		setParam[3] = JKUBatCommon.getSysDateTime();
		
		executeKU_T_SETTE_KOJI_PKUPDATE(setParam, whereParam);
		
	}
	
	/**
	 * 項目チェックで使用するmessageMapを生成します。
	 * HashMap<String,String> 項目名が格納されたHashMap。
	 * @return messageMap 埋め込み文字の値。
	 */
	private HashMap<String, String> createMessageMap()
	{
		HashMap<String, String> retMap = new HashMap<String, String>();

		/** FCDSOLT設定変更結果受信データファイル */
		retMap.put("TXT-KUIFE019-INF1.KOJIAK_NO", "工事案件番号");
		retMap.put("TXT-KUIFE019-INF1.SVC_KEI_NO", "サービス契約番号");
		retMap.put("TXT-KUIFE019-INF1.SETTE_NAIYO", "設定内容");
		retMap.put("TXT-KUIFE019-INF1.SETTE_KOJI_RSLT_CD", "設定工事結果コード");
		retMap.put("TXT-KUIFE019-INF1.ERR_HASSEI_MT_CD", "エラー発生元コード");
		retMap.put("TXT-KUIFE019-INF1.ERR_INFO_CD", "エラー情報コード");
		retMap.put("TXT-KUIFE019-INF1.OLD_PPLAN", "旧料金プラン");
		retMap.put("TXT-KUIFE019-INF1.NEW_PPLAN", "新料金プラン");
		retMap.put("TXT-KUIFE019-INF1.NEWESTA_KOJIAK_NO", "新設工事案件番号");
		
		return retMap;
	}
	
	/**
	 * 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アクセスを実行します
		// 排他制御のためselectByPrimaryKeysからselectByPrimaryKeysForUpdateWaitへ手修正
		return db_KU_T_KOJIAK.selectByPrimaryKeysForUpdateWait(whereMap);
	}
	/**▲▲▲▲▲▲業務サービスで生成したメソッドです 終了▲▲▲▲▲▲*/
	
	// OM-2022-0000903 ADD START
	/**
	 * 料金コース名称を取得します。
	 * @param inMap 入力電文
	 * @return JBSbatCommonDBInterface 工事案件検索の結果
	 * @throws Exception
	 */
	private HashMap<String, String> selectPcrsNm() throws Exception
	{
		HashMap<String, String> map = new HashMap<String, String>();
		
		String[] param = {super.opeDate};
		//料金コース名称の一覧を検索
		executeKK_M_PCRS_KU_SELECT_002(param);
		
		JBSbatCommonDBInterface dbif = db_KK_M_PCRS.selectNext();
		
		String cd = null;
		String nm = null;

		while(dbif != null)
		{
			cd = dbif.getString(JBSbatKK_M_PCRS.PCRS_CD);
			nm = dbif.getString(JBSbatKK_M_PCRS.PCRS_NM);
			map.put(cd, nm);
			dbif = db_KK_M_PCRS.selectNext();
		}
		return map;
	}
	
	/**
	 * SQLKEY(KU_SELECT_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_M_PCRS_KU_SELECT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_M_PCRS.selectBySqlDefine(paramList, KK_M_PCRS_KU_SELECT_002);
	}
	
	/**
	 * エラー情報コードのコード名称を取得します。
	 * @param inMap 入力電文
	 * @return JBSbatCommonDBInterface 工事案件検索の結果
	 * @throws Exception
	 */
	private HashMap<String, String> selectErrorInfoCdNm() throws Exception
	{
		HashMap<String, String> map = new HashMap<String, String>();
		
		//CD00697エラー情報コードの一覧を検索
		String[] param = {JZM0171Constant.CD00697, super.opeDate};
		executeZM_M_CD_NM_KANRI_KU_SELECT_004(param);
		
		JBSbatCommonDBInterface dbif = db_ZM_M_CD_NM_KANRI.selectNext();
		
		String cd = null;
		String nm = null;

		while(dbif != null)
		{
			cd = dbif.getString(JBSbatZM_M_CD_NM_KANRI.CD_DIV);
			nm = dbif.getString(JBSbatZM_M_CD_NM_KANRI.CD_DIV_NM);
			map.put(cd, nm);
			dbif = db_ZM_M_CD_NM_KANRI.selectNext();
		}
		return map;
	}

	/**
	 * SQLKEY(KU_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 executeZM_M_CD_NM_KANRI_KU_SELECT_004(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_ZM_M_CD_NM_KANRI.selectBySqlDefine(paramList, ZM_M_CD_NM_KANRI_KU_SELECT_004);
	}
	// OM-2022-0000903 ADD END
	
}
