/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKUMansCustInfoCst
*	ソースファイル名	：JBSbatKUMansCustInfoCst.java
*	作成者				：富士通　
*	作成日				：2011年09月27日
*＜機能概要＞
*　マンション顧客情報抽出部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/09/27   FJ)中西	新規作成
*	v5.00.00	2013/09/18   FJ)高橋	【OM-2013-0002274】
*	v5.00.01	2013/10/04   FJ)黒田	【OM-2013-0002958】
*	v7.00.00	2014/01/27   FJ)高橋	【OM-2014-0000315】
*********************************************************************/
package eo.business.service;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JKUBatCommon;
import eo.business.util.file.JBSbatKUIFE026;
import eo.business.util.table.JBSbatKK_T_KAISEN_TG_SVKEI;
import eo.business.util.table.JBSbatKU_T_KJAK_EOH_NTMANS;
import eo.business.util.table.JBSbatKU_T_KJAK_EOH_TV;
import eo.business.util.table.JBSbatKU_T_KOJIAK;
import eo.business.util.table.JBSbatKU_T_SETTE_KOJI;
import eo.business.util.table.JBSbatKU_T_SVKEI_KOJIAK;
import eo.common.constant.JKUStrConst;
import eo.common.constant.JPCBatchMessageConstant;
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;

/**
* マンション顧客情報抽出 <p>
*<BR>
* @author 富士通
*/
public class JBSbatKUMansCustInfoCst extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(工事案件)*/
	private static final String D_TBL_NAME_KU_T_KOJIAK = "KU_T_KOJIAK";

	/** テーブル(工事案件＜ｅｏ光ネットマンション＞)*/
	private static final String D_TBL_NAME_KU_T_KJAK_EOH_NTMANS = "KU_T_KJAK_EOH_NTMANS";

	/** テーブル(工事案件＜ｅｏ光テレビ＞)*/
	private static final String D_TBL_NAME_KU_T_KJAK_EOH_TV = "KU_T_KJAK_EOH_TV";

	/** テーブル(工事案件対象宅内機器)*/
	private static final String D_TBL_NAME_KU_T_KJAK_TG_TKKIKI = "KU_T_KJAK_TG_TKKIKI";

	/** テーブル(設定工事)*/
	private static final String D_TBL_NAME_KU_T_SETTE_KOJI = "KU_T_SETTE_KOJI";

	/** テーブル(サービス契約＿工事案件)*/
	private static final String D_TBL_NAME_KU_T_SVKEI_KOJIAK = "KU_T_SVKEI_KOJIAK";

	/** テーブル(回線対象サービス契約)*/
	private static final String D_TBL_NAME_KK_T_KAISEN_TG_SVKEI = "KK_T_KAISEN_TG_SVKEI";

	/** SQL定義キー(KU_SELECT_015)*/
	private static final String KU_T_KJAK_TG_TKKIKI_KU_SELECT_015 = "KU_SELECT_015";

	/** SQL定義キー(KU_SELECT_015)*/
	private static final String KU_T_SVKEI_KOJIAK_KU_SELECT_015 = "KU_SELECT_015";

	/** テーブルアクセスクラス(工事案件)*/
	private JBSbatSQLAccess db_KU_T_KOJIAK = null;

	/** テーブルアクセスクラス(工事案件＜ｅｏ光ネットマンション＞)*/
	private JBSbatSQLAccess db_KU_T_KJAK_EOH_NTMANS = null;

	/** テーブルアクセスクラス(工事案件＜ｅｏ光テレビ＞)*/
	private JBSbatSQLAccess db_KU_T_KJAK_EOH_TV = null;

	/** テーブルアクセスクラス(工事案件対象宅内機器)*/
	private JBSbatSQLAccess db_KU_T_KJAK_TG_TKKIKI = null;

	/** テーブルアクセスクラス(設定工事)*/
	private JBSbatSQLAccess db_KU_T_SETTE_KOJI = null;

	/** テーブルアクセスクラス(サービス契約＿工事案件)*/
	private JBSbatSQLAccess db_KU_T_SVKEI_KOJIAK = null;

	/** テーブルアクセスクラス(回線対象サービス契約)*/
	private JBSbatSQLAccess db_KK_T_KAISEN_TG_SVKEI = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/**▼▼▼▼▼▼業務が作成した宣言です 開始▼▼▼▼▼▼*/
	
	/** ログ出力用項目名設定Map */
	private HashMap<String, String> messageMap = null;
	
	/**
	 * データ区分
	 */
	/** マンション顧客情報 */
	private static final String MANS_KOKYAKU_INFO = "2";
	
	/**
	 * 処理区分
	 */
	/** 新規 */
	private static final String NEW = "1";
	/** 利用前プラン変更 */
	private static final String PLAN_CHG_BEFORE = "2";
	/** 利用後プラン変更 */
	private static final String PLAN_CHG_AFTER = "3";
	/** 解約 */
	private static final String DSL = "4";
	/**▲▲▲▲▲▲業務が作成した宣言です 終了▲▲▲▲▲▲*/
	
	/**
	 * 初期処理
	 * @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_KJAK_EOH_NTMANS = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_KJAK_EOH_NTMANS);
		db_KU_T_KJAK_EOH_TV = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_KJAK_EOH_TV);
		db_KU_T_KJAK_TG_TKKIKI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_KJAK_TG_TKKIKI);
		db_KU_T_SETTE_KOJI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_SETTE_KOJI);
		db_KU_T_SVKEI_KOJIAK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_SVKEI_KOJIAK);
		db_KK_T_KAISEN_TG_SVKEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KAISEN_TG_SVKEI);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		// ログ出力用項目名設定Mapを作成
		messageMap = createMessageMap();
		
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		// 出力共通電文を生成する。
		JBSbatOutputItem outputBean = new JBSbatOutputItem();
		
		try
		{
			// 入出力インターフェースオブジェクトを生成
			JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();
			
			// 工事案件番号を取得
			String kojiakNo = inMap.getString(JBSbatKU_T_SETTE_KOJI.KOJIAK_NO);
			
			// 条件を設定
			Object[] whereParam = new Object[1];
			Object[] whereParamSetteKoji = new Object[1];
			
			if (!JKUBatCommon.isNotNull(kojiakNo))
			{
				// %1%が未設定です。
				commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0200TE, new String[]{
																			messageMap.get("KOJIAK_NO")});
				
				// 次レコードへ
				throw new JBSbatBusinessError();
			}
			
			// 工事案件番号を設定
			whereParam[0] = kojiakNo;
			
			// 工事案件番号で工事案件を抽出
			JBSbatCommonDBInterface kojiakSelect = this.executeKU_T_KOJIAK_PKSELECT(whereParam);
			
			// 工事案件に存在しない場合
			if (null == kojiakSelect)
			{
				// %1%に該当の%2%が存在しません。（%3%）
				commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0650KW, new String[]{
																JKUStrConst.SCHEMANM_KU0011,
																messageMap.get("KOJIAK_NO"),
																kojiakNo});
				
				// 次レコードへ
				throw new JBSbatBusinessError();
			}
			
			// 設定工事番号
			String setteKojiNo = inMap.getString(JBSbatKU_T_SETTE_KOJI.SETTE_KOJI_NO);
			whereParamSetteKoji[0] = setteKojiNo;
			
			// 設定工事を抽出
			JBSbatCommonDBInterface setteKojiSelect = this.executeKU_T_SETTE_KOJI_PKSELECT(whereParamSetteKoji);
			
			// 設定工事に存在しない場合
			if (null == setteKojiSelect)
			{
				// 次レコードへ
				super.commit();
				return null;
			}
			
			if(setteKojiChanged(setteKojiSelect))
			{
				// 次レコードへ
				super.commit();
				return null;
			}
			
			// 料金グループコードを取得
			String prcGrpCd = kojiakSelect.getString(JBSbatKU_T_KOJIAK.PRC_GRP_CD);
			
			// 工事案件サブスキーマ
			JBSbatCommonDBInterface subSelect = null;
			
			// eo光テレビ(K-CAT) 、eo光テレビ(再送信) の場合
			if (JKUStrConst.CD00133_EOH_TV_K_CAT.equals(prcGrpCd) ||
					JKUStrConst.CD00133_EOH_TV_SAISOSHIN.equals(prcGrpCd))
			{
				// 工事案件番号で工事案件<eo光テレビ>を抽出
				subSelect = this.executeKU_T_KJAK_EOH_TV_PKSELECT(whereParam);
				
				// 工事案件<eo光テレビ>に存在しない場合
				if (null == subSelect)
				{
					// %1%に該当の%2%が存在しません。（%3%）
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0650KW, new String[]{
																	JKUStrConst.SCHEMANM_KU0031,
																	messageMap.get("KOJIAK_NO"),
																	kojiakNo});
					// 次レコードへ
					throw new JBSbatBusinessError();
				}
				
			}
			// 以外の場合
			else
			{
				// 工事案件番号で工事案件<eo光ネットマンション>を抽出
				subSelect = this.executeKU_T_KJAK_EOH_NTMANS_PKSELECT(whereParam);
				
				// 工事案件<eo光ネットマンション>に存在しない場合
				if (null == subSelect)
				{
					// %1%に該当の%2%が存在しません。（%3%）
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0650KW, new String[]{
																	JKUStrConst.SCHEMANM_KU0061,
																	messageMap.get("KOJIAK_NO"),
																	kojiakNo});
					// 次レコードへ
					throw new JBSbatBusinessError();
				}
				
			}
			
			// 工事案件種別コード
			String kojiakSbt = kojiakSelect.getString(JBSbatKU_T_KOJIAK.KOJIAK_SBT_CD);
			
			// 工事案件種別コードが強制解約、撤去(解約)、住所変更(撤去)
			if((JKUStrConst.CD00577_KYOSEI_DSL.equals(kojiakSbt) ||
					JKUStrConst.CD00577_TEKKYO_DSL.equals(kojiakSbt) ||
					JKUStrConst.CD00577_AD_CHG_TEKKYO.equals(kojiakSbt)))
			{
				
				// 更新対象工事案件番号を取得
				String updKojiakNo = inMap.getString(JBSbatKU_T_SETTE_KOJI.UPD_TRGT_KOJIAK_NO);
				// 条件を設定
				Object[] whereParamUpdKjak = new Object[1];
				
				if (!JKUBatCommon.isNotNull(updKojiakNo))
				{
					// %1%が未設定です。
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0680TW, new String[]{
																			messageMap.get("UPD_TRGT_KOJIAK_NO")});
					
					// 次レコードへ
					throw new JBSbatBusinessError();
				}
				
				// 更新対象工事案件番号を設定
				whereParamUpdKjak[0] = updKojiakNo;
				
				// サービス契約_工事案件を更新対象工事案件番号で検索
				this.executeKU_T_SVKEI_KOJIAK_KU_SELECT_015(whereParamUpdKjak);
				
				JBSbatCommonDBInterface tempObj = null;
				tempObj = db_KU_T_SVKEI_KOJIAK.selectNext();
				
				if (null == tempObj)
				{
					// %1%に該当の%2%が存在しません。（%3%）
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0650KW, new String[]{
																	JKUStrConst.SCHEMANM_KU0081,
																	messageMap.get("KOJIAK_NO"),
																	updKojiakNo});
					
					// 次レコードへ
					throw new JBSbatBusinessError();
				}
				
				JBSbatCommonDBInterface kaisenSelect = null;
				Object[] whereParamKaisen = new Object[2];
				// 検索結果がなくなるまで繰り返す
				while(null != tempObj)
				{
					whereParamKaisen[0] = tempObj.getString(JBSbatKU_T_SVKEI_KOJIAK.SVC_KEI_NO);
					whereParamKaisen[1] = tempObj.getString(JBSbatKU_T_SVKEI_KOJIAK.SVC_KEI_KAISEN_UCWK_NO);
					// 回線対象サービス契約を抽出
					kaisenSelect = this.executeKK_T_KAISEN_TG_SVKEI_PKSELECT(whereParamKaisen);
					
					if(null != kaisenSelect)
					{
						Date nowDate = this.stringToDate(super.opeDate);
						Date endDate = this.stringToDate(kaisenSelect.getString(JBSbatKK_T_KAISEN_TG_SVKEI.KAISEN_UCWK_USE_ENDYMD));
						
						// 回線内訳使用終了年月日が運用日より大きい場合、処理を終了する
						if (0 < endDate.compareTo(nowDate))
						{
							return null;
						}
					}
					
					tempObj = db_KU_T_SVKEI_KOJIAK.selectNext();
				}
			}
			// ＵＳ管理連携サービス契約番号を取得
			String usRnkiSvKeiNo = kojiakSelect.getString(JBSbatKU_T_KOJIAK.US_KANRI_RNKI_SVC_KEI_NO);
			
			// ＵＳ管理連携サービス契約番号が未設定の場合
			if (!JKUBatCommon.isNotNull(usRnkiSvKeiNo))
			{
				// 連携サービス契約番号を取得
				usRnkiSvKeiNo = kojiakSelect.getString(JBSbatKU_T_KOJIAK.RNKI_SVC_KEI_NO);
				
				// 工事案件を更新する
				updateKU_T_KOJIAK(kojiakSelect);
				
			}
			
			// マンション顧客情報送信データファイルを編集する
			outMap = this.setOutMap(inMap, kojiakSelect, subSelect, usRnkiSvKeiNo);
			
			// 出力共通電文に入出力インターフェースを設定する。
			outputBean.addOutMapList(outMap);
			
			// 設定工事を更新する
			updateKU_T_SETTE_KOJI(inMap);
			
		}
		catch (JBSbatBusinessError eBusiness)
		{
			// ロールバック
			commonItem.getConnection().rollback();
			throw eBusiness;
		}

		// コミット
		super.commit();
		
		return outputBean;
		
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KU_T_KOJIAK.close();
		db_KU_T_KJAK_EOH_NTMANS.close();
		db_KU_T_KJAK_EOH_TV.close();
		db_KU_T_KJAK_TG_TKKIKI.close();
		db_KU_T_SETTE_KOJI.close();
		db_KU_T_SVKEI_KOJIAK.close();
		db_KK_T_KAISEN_TG_SVKEI.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
//	/**
//	 * 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_KJAK_EOH_NTMANS_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("KOJIAK_NO", whereParam[0]);

		// DBアクセスを実行します
		return db_KU_T_KJAK_EOH_NTMANS.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_KJAK_EOH_TV_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("KOJIAK_NO", whereParam[0]);

		// DBアクセスを実行します
		return db_KU_T_KJAK_EOH_TV.selectByPrimaryKeys(whereMap);
	}

	/**
	 * SQLKEY(KU_SELECT_015)で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_KJAK_TG_TKKIKI_KU_SELECT_015(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KU_T_KJAK_TG_TKKIKI.selectBySqlDefine(paramList, KU_T_KJAK_TG_TKKIKI_KU_SELECT_015);
	}

	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	設定工事ステータス				SETTE_KOJI_STAT
	 *		 	連携先依頼年月日時分秒				RNKS_REQ_DTM
	 *		 	連携先連携種別コード				RNKS_RENKEI_SBT_CD
	 *		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("RNKS_REQ_DTM", setParam[1]);
		setMap.setValue("RNKS_RENKEI_SBT_CD", setParam[2]);
	
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SETTE_KOJI_NO", whereParam[0]);

		// DBアクセスを実行します
		db_KU_T_SETTE_KOJI.updateByPrimaryKeys(whereMap, setMap);
	}

	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	ＵＳ管理連携サービス契約番号				US_KANRI_RNKI_SVC_KEI_NO
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	KOJIAK_NO
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKU_T_KOJIAK_PKUPDATE(Object[] setParam, Object[] whereParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("US_KANRI_RNKI_SVC_KEI_NO", setParam[0]);
	
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("KOJIAK_NO", whereParam[0]);

		// DBアクセスを実行します
		db_KU_T_KOJIAK.updateByPrimaryKeys(whereMap, setMap);
	}
	
	/**
	 * SQLKEY(KU_SELECT_015)で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_SVKEI_KOJIAK_KU_SELECT_015(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KU_T_SVKEI_KOJIAK.selectBySqlDefine(paramList, KU_T_SVKEI_KOJIAK_KU_SELECT_015);
	}
	
	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SVC_KEI_NO
	 *		 	SVC_KEI_KAISEN_UCWK_NO
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return JBSbatCommonDBInterface 検索の結果。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeKK_T_KAISEN_TG_SVKEI_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SVC_KEI_NO", whereParam[0]);
		whereMap.setValue("SVC_KEI_KAISEN_UCWK_NO", whereParam[1]);

		// DBアクセスを実行します
		return db_KK_T_KAISEN_TG_SVKEI.selectByPrimaryKeys(whereMap);
	}
	
	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SETTE_KOJI_NO
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return JBSbatCommonDBInterface 検索の結果。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeKU_T_SETTE_KOJI_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SETTE_KOJI_NO", whereParam[0]);

		// DBアクセスを実行します
		return db_KU_T_SETTE_KOJI.selectByPrimaryKeys(whereMap);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**▼▼▼▼▼▼業務チームで作成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * 出力共通電文を設定します。
	 * @param inMap 入力電文
	 * @param kojiakSelect  工事案件抽出結果
	 * @param subSelect 工事案件サブタイプ抽出結果
	 * @param usRnkiSvKeiNo US管理連携サービス契約番号
	 * @return 出力共通電文
	 * @throws Exception
	 */
	private JBSbatServiceInterfaceMap setOutMap(JBSbatServiceInterfaceMap inMap,
				JBSbatCommonDBInterface kojiakSelect, JBSbatCommonDBInterface subSelect, String usRnkiSvKeiNo) throws Exception
	{
		// 出力電文
		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();
		// 設備コードマップ
		HashMap<String, String> setubiCdMap = new HashMap<String, String>();
		// 契約サービス取得処理
		setubiCdMap = this.getSetubiCd(kojiakSelect);
		
		// マンション物件コード
		String mansBukkenCd = kojiakSelect.getString(JBSbatKU_T_KOJIAK.MANSION_BUKKEN_CD);
		// マンションID
		String mansId = null;
		
		// 料金グループコード
		String prcGrpCd = kojiakSelect.getString(JBSbatKU_T_KOJIAK.PRC_GRP_CD);
		
		// eo光テレビ(K-CAT) 、eo光テレビ(再送信) の場合
		if (JKUStrConst.CD00133_EOH_TV_K_CAT.equals(prcGrpCd) ||
				JKUStrConst.CD00133_EOH_TV_SAISOSHIN.equals(prcGrpCd))
		{
			// 工事案件＜eo光テレビ＞のCAT-IDを設定
			mansId = subSelect.getString(JBSbatKU_T_KJAK_EOH_TV.CATID);
		}
		else
		{
			// マンション物件コードが「メゾン」の場合
			if (JKUStrConst.MANS_BUKKEN_CD_MZN.equals(mansBukkenCd))
			{
				// 工事案件のＰ−ＩＤを設定
				mansId = kojiakSelect.getString(JBSbatKU_T_KOJIAK.PID);
			}
			// マンション物件コードが「マンション」の場合
			else if (JKUStrConst.MANS_BUKKEN_CD_MANS.equals(mansBukkenCd))
			{
				// 工事案件<ネットマンション>のマンションＩＤを設定
				mansId = subSelect.getString(JBSbatKU_T_KJAK_EOH_NTMANS.MANSION_ID);
			}
			// マンション物件コードが未設定の場合
			else
			{
				// %1%が未設定です。
				commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0200TE, new String[]{
																			messageMap.get("MANSION_BUKKEN_CD")});
				
				// 次レコードへ
				throw new JBSbatBusinessError();
			}
		}
		
		/** 出力項目を設定 */
		
		// データコード
		outMap.set(JBSbatKUIFE026.DATA_CD, MANS_KOKYAKU_INFO);
		// 処理コード
		String trnCd = returnTrnCd(inMap, kojiakSelect);
		outMap.set(JBSbatKUIFE026.TRN_CD, trnCd);
		// サービス契約番号
		outMap.set(JBSbatKUIFE026.SVC_KEI_NO, usRnkiSvKeiNo);
		// マンションID
		outMap.set(JBSbatKUIFE026.MANSION_ID, mansId);
		// マンション名
		String mansNm = kojiakSelect.getString(JBSbatKU_T_KOJIAK.TENTAKU_SAKI_ADRTTM);
		outMap.set(JBSbatKUIFE026.MANSION_NM, JKUBatCommon.splitString(mansNm, 60, true)[0]);
		// 通信機器コード
		outMap.set(JBSbatKUIFE026.TUSHIN_KIKI_CD, inMap.getString(JBSbatKU_T_SETTE_KOJI.MANS_RM_TUSHIN_KIKI_SBT_CD));
		// 契約サービス
		outMap.set(JBSbatKUIFE026.KEI_SVC, setubiCdMap.get(JKUStrConst.RNKI_SYS_KKEI_SVC_CD));
		// 契約者名
		String keishaNm = kojiakSelect.getString(JBSbatKU_T_KOJIAK.CUST_NM);
		outMap.set(JBSbatKUIFE026.KEISHA_NM, JKUBatCommon.splitString(keishaNm, 94, true)[0]);
		// 部屋番号
		String rmNo = kojiakSelect.getString(JBSbatKU_T_KOJIAK.TENTAKU_SAKI_ADRRM);
		outMap.set(JBSbatKUIFE026.RMNO, JKUBatCommon.splitString(rmNo, 30, true)[0]);
		// 電話番号
		outMap.set(JBSbatKUIFE026.TELNO, kojiakSelect.getString(JBSbatKU_T_KOJIAK.CUST_HOME_TELNO));
		// 携帯番号
		outMap.set(JBSbatKUIFE026.KTAINO, kojiakSelect.getString(JBSbatKU_T_KOJIAK.CUST_KTAI_TELNO));
		// 申込年月日
		outMap.set(JBSbatKUIFE026.MSKM_YMD, kojiakSelect.getString(JBSbatKU_T_KOJIAK.MSKM_UK_YMD));
		// サービス開始日
		String svcStaymd = kojiakSelect.getString(JBSbatKU_T_KOJIAK.RNKI_SVC_STAYMD);
		if (JKUStrConst.CD00577_AD_CHG_NEWESTA.equals(kojiakSelect.getString(JBSbatKU_T_KOJIAK.KOJIAK_SBT_CD)))
		{
			// 「住所変更(新設)」の場合、ALL9を設定
			svcStaymd = JKUStrConst.INIT_YMD;
		}
		outMap.set(JBSbatKUIFE026.SVC_STAYMD, svcStaymd);
		// 連絡条件コード
		outMap.set(JBSbatKUIFE026.RRK_JOKEN_CD, kojiakSelect.getString(JBSbatKU_T_KOJIAK.RRK_WAY_CD));
		// 連絡情報
		outMap.set(JBSbatKUIFE026.RRK_INFO, kojiakSelect.getString(JBSbatKU_T_KOJIAK.RRK_WAY_HOKI));
		
		// ｅｏ光電話有無,番ポ有無
		if (NEW.equals(trnCd) && this.checkEohTelUmBmpUm(kojiakSelect, subSelect))
		{
			// ｅｏ光電話有無に工事案件eo光ネットマンションのｅｏ光電話宅内工事有無を設定する
			outMap.set(JBSbatKUIFE026.EOH_TEL_UM, subSelect.getString(JBSbatKU_T_KJAK_EOH_NTMANS.EOH_TEL_TAKNIKJ_UM));
			
			// 番ポ有無に工事案件eo光ネットマンションの番ポ有無を判定し設定する
			outMap.set(JBSbatKUIFE026.BMP_UM, returnBmpUm(subSelect));
		}
		else
		{
			// それ以外の場合は初期値を設定する
			
			// ｅｏ光電話有無
			outMap.set(JBSbatKUIFE026.EOH_TEL_UM, null);
			// 番ポ有無
			outMap.set(JBSbatKUIFE026.BMP_UM, null);
		}
		
		// 記事欄
		outMap.set(JBSbatKUIFE026.KIJIRAN, this.returnKijiran(kojiakSelect, subSelect));
		// 工事案件番号
		outMap.set(JBSbatKUIFE026.KOJIAK_NO, returnAnkenNo(kojiakSelect, subSelect));
		// 解約希望日
		outMap.set(JBSbatKUIFE026.DSL_KIBO_YMD, JKUBatCommon.changeNullValue(subSelect.getString("DSL_KIBO_YMD"), JKUStrConst.INIT_YMD));
		// 変更後サービス契約番号
		outMap.set(JBSbatKUIFE026.CHG_AF_SVC_KEI_NO, null);
		
		// 出力フラグを設定
		outMap.setOutFlg(true);
		
		return outMap;
	}
	
	/**
	 * 工事案件を更新します。
	 * @param kojiakSelect  工事案件抽出結果
	 * @throws Exception
	 */
	private void updateKU_T_KOJIAK(JBSbatCommonDBInterface kojiakSelect) throws Exception
	{
		// 更新処理に渡すパラメタを設定
		Object[] setParam = new Object[1];
		Object[] whereParam = new Object[1];
		
		// 工事案件番号を設定
		whereParam[0] = kojiakSelect.getString(JBSbatKU_T_KOJIAK.KOJIAK_NO);
		
		// US管理連携サービス契約番号を連携サービス契約番号で更新
		setParam[0] = kojiakSelect.getString(JBSbatKU_T_KOJIAK.RNKI_SVC_KEI_NO);
		
		// 工事案件を更新
		this.executeKU_T_KOJIAK_PKUPDATE(setParam, whereParam);
		
	}
	
	/**
	 * 設定工事を更新します。
	 * @param inMap 入力電文
	 * @throws Exception
	 */
	private void updateKU_T_SETTE_KOJI(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		// 更新処理に渡すパラメタを設定
		Object[] setParam = new Object[3];
		Object[] whereParam = new Object[1];
		
		// 設定工事ステータスを取得
		String setteKojiStat = inMap.getString(JBSbatKU_T_SETTE_KOJI.SETTE_KOJI_STAT);
		
		// 連携先連携種別コードを取得
		String rnksRnkiSbtCd = inMap.getString(JBSbatKU_T_SETTE_KOJI.RNKS_RENKEI_SBT_CD);
		
		// 設定工事ステータスが「受付済」の場合
		if (JKUStrConst.CD00477_UK_ZM.equals(setteKojiStat))
		{
			// 依頼済を設定
			setteKojiStat = JKUStrConst.CD00477_IRI_ZM;
			// 連携済を設定
			rnksRnkiSbtCd = JKUStrConst.CD00699_RENKEIZM;
		}
		// 以外の場合
		else
		{
			// 取消連携済を設定
			rnksRnkiSbtCd = JKUStrConst.CD00699_CL_RENKEIZM;
		}
		
		// 設定工事番号
		whereParam[0] = inMap.getString(JBSbatKU_T_SETTE_KOJI.SETTE_KOJI_NO);
		// 設定工事ステータス
		setParam[0] = setteKojiStat;
		// 連携先依頼年月日時分秒にシステム日時を設定
		setParam[1] = JKUBatCommon.getSysDateTime();
		// 連携先連携種別コード
		setParam[2] = rnksRnkiSbtCd;
		
		// 抽出した設定工事を更新する。
		this.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>();
		
		retMap.put("KOJIAK_NO", "工事案件番号");
		retMap.put("KOJIAK_SBT_CD", "工事案件種別コード");
		retMap.put("PRC_GRP_CD", "料金グループコード");
		retMap.put("IP_HRADSI_CD", "IP払出");
		retMap.put("MANS_TUSHIN_EQUIP_CD", "マンション通信設備コード");
		retMap.put("RNKI_SVC_STAYMD", "連携サービス開始年月日");
		retMap.put("RNKS_RENKEI_SBT_CD", "連携先連携種別");
		retMap.put("SETTE_KOJI_STAT", "設定工事ステータス");
		retMap.put("MANSION_BUKKEN_CD", "マンション物件コード");
		retMap.put("UPD_TRGT_KOJIAK_NO", "更新対象工事案件番号");
		retMap.put("RNKI_SVC_STAYMD", "連携サービス開始年月日");
		
		return retMap;
	}
	
	/**
	 * String型日付をDate(yyyyMMdd)に変換して返す
	 * @param castItem String型日付
	 * @return 引数をDate型にキャストした値
	 * @throws Exception
	 */
	private Date stringToDate(String castItem) throws Exception
	{
		String datepattern = "yyyyMMdd";
		
		SimpleDateFormat sdf = new SimpleDateFormat(datepattern);
		
		return sdf.parse(castItem);
	}
	
	/**
	 * 処理コードを返却
	 * @param inMap 入力電文
	 * @param kojiakSelect  工事案件抽出結果
	 * @return 処理コード
	 * @throws Exception
	 */
	private String returnTrnCd(JBSbatServiceInterfaceMap inMap, JBSbatCommonDBInterface kojiakSelect) throws Exception
	{
		// 運用日付
		Date date = this.stringToDate(super.opeDate);
		// サービス開始日
		String stringStartSvcDate = kojiakSelect.getString(JBSbatKU_T_KOJIAK.RNKI_SVC_STAYMD);
		// 工事案件種別コード 
		String kojiakSbt = kojiakSelect.getString(JBSbatKU_T_KOJIAK.KOJIAK_SBT_CD);
		// 設定工事ステータス
		String setKjSt = inMap.getString(JBSbatKU_T_SETTE_KOJI.SETTE_KOJI_STAT);
		// 処理コード
		String trnCd = null;
		
		if(JKUStrConst.CD00693_DSL.equals(kojiakSelect.getString(JBSbatKU_T_KOJIAK.RNKI_SVC_DSL_SBT_CD))
				|| JKUStrConst.CD00693_KSI_DSL.equals(kojiakSelect.getString(JBSbatKU_T_KOJIAK.RNKI_SVC_DSL_SBT_CD)))
		{
			// サービス解約種別コードが「強制解約」「解約」の場合
			
			// 処理コードに解約を設定する
			trnCd = DSL;
			
		}
		else if (JKUStrConst.CD00577_NEWESTA.equals(kojiakSbt) ||
				JKUStrConst.CD00577_AD_CHG_NEWESTA.equals(kojiakSbt))
		{
			// 「新設」、「住変(新設)」の何れかの場合
			if (JKUStrConst.CD00477_CHUSHI.equals(setKjSt))
			{
				// 設定工事ステータスが「中止」の場合
				
				// 処理コードに解約を設定する
				trnCd = DSL;
			}
			else
			{
				// 処理コードに新規を設定する
				trnCd = NEW;
			}
		}
		else if (JKUStrConst.CD00577_PLAN_CHG_KOJI_NON.equals(kojiakSbt))
		{
			// サービス開始日存在チェック
			if (null == stringStartSvcDate)
			{
				// %1%が未設定です。
				commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0680TW, new String[]{
																			messageMap.get("RNKI_SVC_STAYMD")});
				
				throw new JBSbatBusinessError();
			}
			
			// compareTo 引数の値の方が前の日時の場合は正、後の日時の場合は負、同じなら0
			//String型日付をDate(yyyyMMdd)に変換
			Date dateStartSvcDate = this.stringToDate(stringStartSvcDate);
			
			if (0 <= date.compareTo(dateStartSvcDate))
			{
				// 連携サービス開始年月日≦運用日付の場合
				
				// 処理コードに利用前プラン変更を設定する
				trnCd = PLAN_CHG_BEFORE;
			}
			else if (0 > date.compareTo(dateStartSvcDate))
			{
				// 連携サービス開始年月日＞運用日付の場合
				
				// 処理コードに利用後プラン変更を設定する
				trnCd = PLAN_CHG_AFTER;
			}
		}
		else if (JKUStrConst.CD00577_KYOSEI_DSL.equals(kojiakSbt) ||
					JKUStrConst.CD00577_TEKKYO_DSL.equals(kojiakSbt) ||
						JKUStrConst.CD00577_AD_CHG_TEKKYO.equals(kojiakSbt))
		{
			// 「強制解約」、「撤去(解約)」、「住変(撤去)」の何れかの場合
			
			// 処理コードに解約を設定する
			trnCd = DSL;
		}
		else
		{
			// 該当する%1%がありません。（%2%）
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKUB0470KE, new String[]{
															"処理区分",
															kojiakSelect.getString(JBSbatKU_T_KOJIAK.KOJIAK_NO)});
			throw new JBSbatBusinessError();

		}
		
		return trnCd;
	}
	
	/**
	 * 設備コード設定のためのMapを取得します。
	 * @param kojiakSelect 抽出工事案件
	 * @return 料金プランコードマップ
	 * @throws Exception
	 */
	private HashMap<String, String> getSetubiCd(JBSbatCommonDBInterface kojiakSelect) throws Exception
	{
		// 設備向けコード変換（分類コード、料金プラン）
		HashMap<String, String> paramMap = new HashMap<String, String>();
		HashMap<String, String> rsltMap = new HashMap<String, String>();

		// 料金グループコードで変換する
		paramMap.put(JKUStrConst.RNKI_SYS_PRC_GRP_CD, kojiakSelect.getString(JBSbatKU_T_KOJIAK.PRC_GRP_CD));
		paramMap.put(JKUStrConst.RNKI_SYS_PCRS_CD, kojiakSelect.getString(JBSbatKU_T_KOJIAK.PCRS_CD));
		paramMap.put(JKUStrConst.RNKI_SYS_PPLAN_CD, kojiakSelect.getString(JBSbatKU_T_KOJIAK.PPLAN_CD));
		paramMap.put(JKUStrConst.RNKI_SYS_WRIB_TYPE_CD, kojiakSelect.getString(JBSbatKU_T_KOJIAK.WRIB_TYPE_CD));
		paramMap.put(JKUStrConst.RNKI_SYS_MANS_BUKKEN_CD, kojiakSelect.getString(JBSbatKU_T_KOJIAK.MANSION_BUKKEN_CD));
		paramMap.put(JKUStrConst.RNKI_SYS_SYSTEM, JKUStrConst.RNKI_SYSTEM_FCDS);
		
		rsltMap = JKUBatCommon.getSetsubiCodeMap(commonItem, kojiakSelect.getString(JBSbatKU_T_KOJIAK.KOJIAK_NO), paramMap, db_KU_T_KJAK_EOH_NTMANS);
		
		if (null == rsltMap)
		{
			// ログ出力
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKUB0720KW, new String[]{
					kojiakSelect.getString(JBSbatKU_T_KOJIAK.KOJIAK_NO),
					JKUBatCommon.convMapToString(paramMap)});
			
			throw new JBSbatBusinessError();
		}
		
		return rsltMap;
	}
	
	/**
	 * 
	 * ｅｏ光電話有無、番ポ有無の設定判定を行う
	 * @param inMap 抽出設定工事
	 * @param kojiakSelect  工事案件抽出結果
	 * @param subSelect 工事案件サブタイプ抽出結果
	 * @return 判定成否
	 * @throws Exception
	 */
	private boolean checkEohTelUmBmpUm(JBSbatCommonDBInterface kojiakSelect, JBSbatCommonDBInterface subSelect) throws Exception
	{
		// 料金グループコード 
		String prcGrpCd = kojiakSelect.getString(JBSbatKU_T_KOJIAK.PRC_GRP_CD);
		
		boolean result = false;
		
		// 料金グループコードが光電話の場合
		if (JKUStrConst.CD00133_EOH_TEL.equals(prcGrpCd))
		{
			result = true;
		}
		// 料金グループコードが光ネットメゾンの場合
		else if (JKUStrConst.CD00133_EOH_MEZON.equals(prcGrpCd))
		{
			result = true;
		}
		// 料金グループコードが光ネットマンションの場合
		else if (JKUStrConst.CD00133_EOH_NTMANS.equals(prcGrpCd))
		{
			result = true;
		}
		
		return result;
	}
	
	/**
	 * 
	 * 番ポ有無の判定を行い値を返却する。
	 * @param netMansSelect 工事案件eo光ネットマンション抽出結果
	 * @return 番ポ有無
	 * @throws Exception
	 */
	private String returnBmpUm(JBSbatCommonDBInterface netMansSelect) throws Exception
	{
		// 返却値(初期値「0:無」)
		String retbmpUm = JKUStrConst.UM_NON;
		// 比較用項目値
		String bmpUm = null;
		
		for (int idx = 0; idx < 5; idx++)
		{
			// 番ポ有無(1〜5)
			bmpUm = netMansSelect.getString("BMP_UM_" + String.valueOf(idx + 1));
			
			if (JKUStrConst.UM_YK.equals(bmpUm))
			{
				// 番ポ有があれば「1:有」を返却
				return bmpUm;
			}
		}
		
		return retbmpUm;
		
	}
	
	/**
	 * 記事欄に設定する値を編集し返却
	 * @param kojiakSelect  工事案件抽出結果
	 * @param subSelect 工事案件サブタイプ抽出結果
	 * @return 編集済記事欄
	 * @throws Exception
	 */
	private String returnKijiran(JBSbatCommonDBInterface kojiakSelect, JBSbatCommonDBInterface subSelect) throws Exception
	{
		// 工事案件の住所変更新設工事案件番号
		String adchgNewKjakNo = kojiakSelect.getString(JBSbatKU_T_KOJIAK.AD_CHG_NEWESTA_KJAK_NO);
		// 工事案件の住所変更撤去工事案件番号
		String adchgTkyKjakNo = kojiakSelect.getString(JBSbatKU_T_KOJIAK.AD_CHG_TEKKYO_KJAK_NO);
		// 工事案件種別コード 
		String kojiakSbt = kojiakSelect.getString(JBSbatKU_T_KOJIAK.KOJIAK_SBT_CD);
		// 料金グループコードを取得
		String prcGrpCd = kojiakSelect.getString(JBSbatKU_T_KOJIAK.PRC_GRP_CD);
		
		// マンション設備システム連携用記事欄(180バイト未満に分割)
		String[] splitRnkiKijiran = JKUBatCommon.splitString(subSelect.getString("MANSSBSYS_RNKI_KIJIRAN"), 180, true);
		String rnkiKijiran = splitRnkiKijiran[0];
		
		// 編集後のマンション設備システム連携用記事欄
		String editRnkiKijiran = rnkiKijiran;
		
		// 住所変更の場合
		if (JKUBatCommon.isNotNull(adchgNewKjakNo) || JKUBatCommon.isNotNull(adchgTkyKjakNo))
		{
			if(!JKUBatCommon.isNotNull(rnkiKijiran))
			{
				// マンション設備システム連携用記事欄が設定されていない場合、
				// 「引越」を設定
				editRnkiKijiran = JKUStrConst.AD_CHGE_HIKKOSHI;
			}
			else
			{
				// マンション設備システム連携用記事欄が設定されている場合、
				// 「　引越」を追記
				editRnkiKijiran = rnkiKijiran + JKUStrConst.ZENKAKU_SPACE + JKUStrConst.AD_CHGE_HIKKOSHI;
			}
		}
		
		// 料金グループがeo光テレビ(K-CAT) 又は、eo光テレビ(再送信) 且つ
		// 工事案件種別が「新設」の場合
		if (JKUStrConst.CD00577_NEWESTA.equals(kojiakSbt) && (JKUStrConst.CD00133_EOH_TV_K_CAT.equals(prcGrpCd) ||
				JKUStrConst.CD00133_EOH_TV_SAISOSHIN.equals(prcGrpCd)))
		{
			// 工事案件対象宅内機器よりVONUレコードを取得
			JBSbatCommonDBInterface kjakTkkkMap = selectKjakTgTkkk(subSelect);
			
			// 工事案件対象宅内機器が取得できない場合
			if (JKUBatCommon.isNotNull(kjakTkkkMap))
			{
				// VONUBSPT可否を取得
				String bsptKh = kjakTkkkMap.getString("VONU_BSPT_KH");
				
				if (JKUStrConst.KH_PSG.equals(bsptKh))
				{
					if(!JKUBatCommon.isNotNull(editRnkiKijiran))
					{
						// マンション設備システム連携用記事欄が設定されていない場合、
						// 「ＢＳＰＴ有り」を設定
						editRnkiKijiran = JKUStrConst.BSPT_ARI;
					}
					else
					{
						// マンション設備システム連携用記事欄が設定されている場合、
						// 「　ＢＳＰＴ有り」を追記
						editRnkiKijiran = editRnkiKijiran + JKUStrConst.ZENKAKU_SPACE + JKUStrConst.BSPT_ARI;
					}
				}
			}
		}
		// // 編集後のマンション設備システム連携用記事欄を返却
		return editRnkiKijiran;
	}
	
	/**
	 * 工事案件対象宅内機器を取得
	 * @param kojiakSelect  工事案件
	 * @return JBSbatCommonDBInterface 工事案件対象宅内機器検索結果
	 * @throws Exception
	 */
	private JBSbatCommonDBInterface selectKjakTgTkkk(JBSbatCommonDBInterface kojiakSelect) throws Exception
	{
		// 検索処理に渡すパラメタを設定
		Object[] whereParam = new Object[2];
		
		whereParam[0] = kojiakSelect.getString(JBSbatKU_T_KOJIAK.KOJIAK_NO);
		whereParam[1] = JKUStrConst.TKNKKSBT_V_ONU;
		
		// 検索処理実行
		this.executeKU_T_KJAK_TG_TKKIKI_KU_SELECT_015(whereParam);
		
		// 検索結果を１件取得
		return db_KU_T_KJAK_TG_TKKIKI.selectNext();
		
	}
	
	/**
	 * 案件番号の設定判定を行い、値を返却
	 * @param kojiakSelect  工事案件抽出結果
	 * @param subSelect 工事案件サブタイプ抽出結果
	 * @return 案件番号
	 * @throws Exception
	 */
	private String returnAnkenNo(JBSbatCommonDBInterface kojiakSelect, JBSbatCommonDBInterface subSelect) throws Exception
	{
		// 工事案件返却フラグ
		boolean retFlg = false;
		// 工事案件番号を取得
		String ankenNo = kojiakSelect.getString(JBSbatKU_T_KOJIAK.KOJIAK_NO);
		// マンション物件コード
		String mansBukkenCd = kojiakSelect.getString(JBSbatKU_T_KOJIAK.MANSION_BUKKEN_CD);
		// 工事案件種別コード
		String kojiakSbtCd = kojiakSelect.getString(JBSbatKU_T_KOJIAK.KOJIAK_SBT_CD);
		// 更新対象工事案件番号
		String updTrgtKojiakNo = kojiakSelect.getString(JBSbatKU_T_KOJIAK.UPD_TRGT_KOJIAK_NO);
		
		// メゾンは返却
		if (JKUStrConst.MANS_BUKKEN_CD_MZN.equals(mansBukkenCd))
		{
			retFlg = true;
		}
		else
		{
			// マンション通信設備コードを取得
			String mansTsnStbCd = subSelect.getString(JBSbatKU_T_KJAK_EOH_NTMANS.MANS_TUSHIN_EQUIP_CD);
			
			// 「光配線」の場合
			if (JKUStrConst.MANS_TUSHIN_EQ_CD_HIKARI.equals(mansTsnStbCd))
			{
				// 工事案件番号を返却
				retFlg = true;
			}
		}
		
		// 工事案件番号を返却する場合
		if(retFlg)
		{
			// 工事案件種別コードが強制解約"000"または撤去(解約)"002"または住所変更(撤去)"004"の場合
			if(JKUStrConst.CD00577_KYOSEI_DSL.equals(kojiakSbtCd) || JKUStrConst.CD00577_TEKKYO_DSL.equals(kojiakSbtCd) || 
					JKUStrConst.CD00577_AD_CHG_TEKKYO.equals(kojiakSbtCd))
			{
				// 更新対象工事案件番号を返却する
				return updTrgtKojiakNo;
			}
			else
			{
				// 工事案件番号を返却する
				return ankenNo;
			}
		}
		else
		{
			// nullを返却する
			return null;
		}
	}
	
	/**
	 * 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);
	}
	
	/**
	 * 設定工事変更有無チェック
	 * @param setteKojiSelect 抽出設定工事
	 * @return boolean 変更有無
	 * @throws Exception
	 */
	private boolean setteKojiChanged(JBSbatCommonDBInterface setteKojiSelect) throws Exception
	{
		String setteKojiStat = setteKojiSelect.getString(JBSbatKU_T_SETTE_KOJI.SETTE_KOJI_STAT);
		String setteKojiCd = setteKojiSelect.getString(JBSbatKU_T_SETTE_KOJI.SETTE_KOJI_CD);
		String rnksRenkeiSbtCd = setteKojiSelect.getString(JBSbatKU_T_SETTE_KOJI.RNKS_RENKEI_SBT_CD);
		
		if(JKUStrConst.CD00477_UK_ZM.equals(setteKojiStat) && JKUStrConst.CD00579_MANS_KYB_KOJI.equals(setteKojiCd) &&
				JKUStrConst.CD00699_MIRENKEI.equals(rnksRenkeiSbtCd))
		{
			// 設定工事ステータスが「受付済」かつ 設定工事コードが「マンション共用部工事」かつ 連携先連携種別コードが「未連携」
			return false;
		}
		else if(JKUStrConst.CD00477_CHUSHI.equals(setteKojiStat) && JKUStrConst.CD00579_MANS_KYB_KOJI.equals(setteKojiCd) &&
				JKUStrConst.CD00699_RENKEIZM.equals(rnksRenkeiSbtCd))
		{
			// 設定工事ステータスが「中止」かつ 設定工事コードが「マンション共用部工事」かつ 連携先連携種別コードが「連携済」
			return false;
		}
		else
		{
			// 上記に当てはまらない場合は変更されている
			return true;
		}
	}
	/**▲▲▲▲▲▲業務チームで作成したメソッドです 終了▲▲▲▲▲▲*/
	
}