/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKAddKicjknInfo
*	ソースファイル名	：JBSbatKKAddKicjknInfo.java
*	作成者				：富士通　
*	作成日				：2011年12月26日
*＜機能概要＞
*　契約一時金情報登録部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/12/26   富士通		新規作成
*	v4.00.00	2012/11/12   富士通		【ANK-1254-00-00】
*	v5.00.00	2013/01/21   富士通		【ANK-1306-00-00】
*	v12.00.00	2015/02/10   FJ)中山	【OM-2015-0000189】
*	v37.00.00	2018/03/02   FJ)永井	【ANK-3314-00-00】GH機器キャンセル時の発送手数料非課金対応
*	v45.00.00	2019/05/24   FJ)黒田	【ANK-3636-00-00】消費増税対応（8%⇒10%）
*	v44.00.00	2019/07/03   FJ)御崎	【ANK-3684-00-00】無線LAN中継機キャンセル時の発送手数料非課金対応 
**	v50.00.00	2020/07/06   GDC)J.Hortilano	【ANK-3825-00-00】メッシュWiFi導入対応
*	v50.00.01	2020/07/28   FJ)謝		【IT1-2020-0000031】対応
*	v52.00.00	2021/02/12   FJ)謝		【ANK-3987-00-00】Netflix導入対応（STEP2）
*	v55.00.00	2021/02/12   GDC)J.Hortilano		【ANK-4146-00-00】【eo定期】多機能ルーター枯渇対応STEP2
*********************************************************************/
package eo.business.service;

import java.math.BigDecimal;
import eo.business.common.JBSbatBusinessService;
import eo.business.common.JBSbatKKConst;
import eo.business.common.JCCBatCommon;
import eo.business.util.table.JBSbatKK_M_TMP_PAY_PRC;
import eo.business.util.table.JBSbatKK_T_ICJKN_SETTE;
import eo.business.util.table.JBSbatKK_T_KKTK_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_TK_HSK_KEI_PRC;
import eo.business.util.table.JBSbatKK_T_OP_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_MSKM;
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.JBSbatDateUtil;
import eo.framework.util.JBSbatOracleSeqUtil;
import eo.framework.util.JBSbatStringUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKAddKicjknInfo extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(契約一時金)*/
	private static final String D_TBL_NAME_KK_T_KICJKN = "KK_T_KICJKN";

	/** テーブル(一時金設定)*/
	private static final String D_TBL_NAME_KK_T_ICJKN_SETTE = "KK_T_ICJKN_SETTE";

// ANK-3314-00-00 ADD START
	/** テーブル(機器提供サービス契約)*/
	private static final String D_TBL_NAME_KK_T_KKTK_SVC_KEI = "KK_T_KKTK_SVC_KEI";
// ANK-3314-00-00 ADD END
	
	/** テーブルアクセスクラス(契約一時金)*/
	private JBSbatSQLAccess db_KK_T_KICJKN = null;

	/** テーブルアクセスクラス(一時金設定)*/
	private JBSbatSQLAccess db_KK_T_ICJKN_SETTE = null;
	
// ANK-3314-00-00 ADD START
	/** テーブルアクセスクラス(機器提供サービス契約)*/
	private JBSbatSQLAccess db_KK_T_KKTK_SVC_KEI = null;
// ANK-3314-00-00 ADD END
	
// ANK-3825-00-00  メッシュWiFi導入対応  2020/07/06 ADD START
	/** テーブルアクセスクラス(機器提供サービス契約)*/
	private JBSbatSQLAccess db_KK_T_KKTK_SVC_KEI_TMP = null;
	
	/** テーブルアクセスクラス(機器提供サービス契約)*/
	private JBSbatSQLAccess db_KK_T_KKTK_SVC_KEI_TMP2 = null;
// ANK-3825-00-00  メッシュWiFi導入対応  2020/07/06 ADD END

	/** SQL定義キー(KK_SELECT_005)*/
	private static final String KK_T_ICJKN_SETTE_KK_SELECT_005 = "KK_SELECT_005";

// ANK-3314-00-00 ADD START
	/** SQL定義キー(KK_SELECT_248)*/
	private static final String KK_T_KKTK_SVC_KEI_KK_SELECT_248 = "KK_SELECT_248";
// ANK-3314-00-00 ADD END
	
// ANK-3825-00-00 ADD START
	/** SQL定義キー(KK_SELECT_263)*/
	private static final String KK_T_KKTK_SVC_KEI_KK_SELECT_263 = "KK_SELECT_263";
	
	/** SQL定義キー(KK_SELECT_264)*/
	private static final String KK_T_KKTK_SVC_KEI_KK_SELECT_264 = "KK_SELECT_264";
	// ANK-3825-00-00 ADD END
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** 運用日付 */
	private String unyoDate = null;

	/** シーケンス番号 */
	private static final String SEQ_KICJKN_NO = "SEQ_KICJKN_NO";
	
// ANK-3314-00-00 ADD START
	/**一時支払料金番号：GH機器 発送手数料(8%)**/
	private static final String HASSO_CMS = "110054086010";
// ANK-3314-00-00 ADD END
	
// ANK-3636-00-00 ADD START
	/**一時支払料金番号：GH機器 発送手数料(10%)**/
	private static final String HASSO_CMS_10 = "210054086010";
// ANK-3636-00-00 ADD END
	
// ANK-3684-00-00 ADD START
	/**一時支払料金番号：無線LAN中継機 発送手数料(8%)**/
	private static final String MLANKIKI_HASSO_CMS_8 = "110054266010";
	/**一時支払料金番号：無線LAN中継機 発送手数料(10%)**/
	private static final String MLANKIKI_HASSO_CMS_10 = "210054266010";
// ANK-3684-00-00 ADD END
	
// ANK-3825-00-00  メッシュWiFi導入対応  2020/07/06 ADD START
	public static final String WIFI_HASSO_CMS_10 = "210054286010";
// ANK-3825-00-00  メッシュWiFi導入対応  2020/07/06 ADD END
// ANK-3987-00-00 ADD START
	/**一時支払料金番号：ストリーミングメディアプレーヤー 発送手数料(10%)**/
	private static final String SMP_HASSO_CMS_10 = "210054306010";
// ANK-3987-00-00 ADD END
// ANK-4146-00-00 ADD START
	/** 契約事務手数料（10G無線ルーター）(10%) **/
	private static final String ROUTER_HASSO_CMS_10G = "210054316010";
// ANK-4146-00-00 ADD END
	/* ++++++++++ v4.00.00 追加開始 ++++++++++ */
	/** マンション一時金発生フラグ **/
	public static final String FLG_ON = "1";
	
	/** マンション一時金発生フラグ **/
	public static final String FLG_OFF = "0";
	
	/** マンション一時金発生元契機コード：照査 **/
	public static final String SYOSA = "1";
	
	/** マンション一時金発生元契機コード：プラン変更**/
	public static final String PLAN_CHG = "2";
	
	/**マンション一時金発生元契約識別コード：加入者契約**/
	public static final String KANYUSYA = "1";

	/**マンション一時金発生元契約識別コード：マンションオーナー契約**/
	public static final String MANS_OWNER = "2";
	/* ++++++++++ v4.00.00 追加終了 ++++++++++ */

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_KICJKN = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KICJKN);
		db_KK_T_ICJKN_SETTE = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_ICJKN_SETTE);
// ANK-3314-00-00 ADD START
		db_KK_T_KKTK_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KKTK_SVC_KEI);
// ANK-3314-00-00 ADD END

// ANK-3825-00-00  メッシュWiFi導入対応  2020/07/06 ADD START
		db_KK_T_KKTK_SVC_KEI_TMP = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KKTK_SVC_KEI);
		db_KK_T_KKTK_SVC_KEI_TMP2 = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KKTK_SVC_KEI);
// ANK-3825-00-00  メッシュWiFi導入対応  2020/07/06 ADD START
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終	了▲▲▲▲▲▲*/
		
		// 運用日付
		unyoDate = commonItem.getOpeDate();
		
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/

		// [一時金設定番号]
		String icjknSetteNo = inMap.getString(JBSbatKK_T_ICJKN_SETTE.ICJKN_SETTE_NO);
		// [適用状態コード](初期値「未確定」)
		String aplyStatCd = JBSbatKKConst.TEKIYO_STAT_MIKAKUTEI;
		// [一時金設定適用年月]
		String icjknSetAplyMon = null;
		// 一時金設定コード
		String icjknStCd = null;
		// 一時金額(初期値０円)
		String icjkn = "0";
		/* ++++++++++ v4.00.00 追加開始 ++++++++++ */
		// マンション一時金発生元契機コード
		String mansIcjknHsiMtKeiSkCdTmp = null;
		// マンション一時金発生元契機コード
		String mansCjknHsiOptyCdTmp = null;
		/* ++++++++++ v4.00.00 追加終了 ++++++++++ */
		// 【契約一時金】登録フラグ
		boolean kIcjknAddFlg = false;
		
// ANK-3314-00-00 ADD START
		// 一時支払料金番号
		String tmpPayPrcNo = inMap.getString(JBSbatKK_T_ICJKN_SETTE.TMP_PAY_PRC_NO);
		// 機器提供サービス契約番号
		String kktkSvcKeiNo = inMap.getString(JBSbatKK_T_ICJKN_SETTE.KKTK_SVC_KEI_NO);
		// 機器提供サービス契約ステータス
		String kktkSvcKeiStat = null;
		// サービス開始年月日
		String svcStaYmd = null;
// ANK-3314-00-00 ADD END

		
		// [一時金設定コード]が未設定の場合には【契約一時金】登録対象外
		icjknStCd = inMap.getString(JBSbatKK_T_ICJKN_SETTE.ICJKN_SETTE_CD);
		if(!isNullBlunk(icjknStCd))
		{
			/* ++++++++++ v4.00.00 追加開始 ++++++++++ */
			//マンション情報設定
			//一時支払料金．マンション一時金対象フラグ= "1"の場合
			if(FLG_ON.equals((inMap.getString(JBSbatKK_M_TMP_PAY_PRC.MANS_ICJKN_TG_FLG)))){
				//マンション一時金項目設定値取得
				// 抽出結果格納領域
				JBSbatCommonDBInterface svInfo = new JBSbatCommonDBInterface();
				executeKK_T_ICJKN_SETTE_KK_SELECT_005( setValueKicjknMans(icjknSetteNo,inMap));
				svInfo = db_KK_T_ICJKN_SETTE.selectNext();
				//マンション一時金情報が取得できない場合，スキップする
				if( null == svInfo)
				{
					// エラーフラグ設定
					super.logPrint.printBusinessErrorLog("EKKB0210CE", new String[]{"一時金設定番号", icjknSetteNo});
					throw new JBSbatBusinessError();
				}
				//一時金設定コードが"01","04"以外の場合一時金を設定。
				if(!(icjknStCd.equals(JBSbatKKConst.ICJKN_SETTE_CD_MURYO) || icjknStCd.equals(JBSbatKKConst.ICJKN_SETTE_CD_SHITEI))){
					//加入契約請求金額の取得：一時金額←提供方式料金．加入契約請求額
					icjkn = svInfo.getString(JBSbatKK_T_TK_HSK_KEI_PRC.KANYU_KEI_SEIKY_AMNT);
				}
				//申込種別コードの取得しマンション一時金発生元契機コードを設定する。
				//申込種別が00001(新規申込)，00002(サービス追加申込)の場合"1"(照査)を設定する。
				if(JBSbatKKConst.NEW_MSKM.equals(svInfo.getString(JBSbatKK_T_MSKM.MSKM_SBT_CD))
						||(JBSbatKKConst.SVC_ADD_MSKM.equals(svInfo.getString(JBSbatKK_T_MSKM.MSKM_SBT_CD)))){
					mansCjknHsiOptyCdTmp = SYOSA;
				}
				//申込種別が00007(コース変更申込)の場合"2"(プラン変更)を設定する。
				else if(JBSbatKKConst.CRS_CHG_MSKM .equals(svInfo.getString(JBSbatKK_T_MSKM.MSKM_SBT_CD))){
					mansCjknHsiOptyCdTmp = PLAN_CHG;
				}
				//マンション一時金発生元契約識別コードに固定値"1"（加入者）を設定
				mansIcjknHsiMtKeiSkCdTmp = JBSbatKKConst.KANYU_KEI;
			}
// ANK-3314-00-00 ADD START
			// 一時支払料金番号が発送手数料であり、
			// 機器提供サービス契約番号が取得できた場合、以下の判定を行う。
// ANK-3684-00-00 MOD START
//			if (HASSO_CMS.equals(tmpPayPrcNo) && null != kktkSvcKeiNo)
// ANK-3825-00-00  メッシュWiFi導入対応  2020/07/06 MOD START
//			if ((HASSO_CMS.equals(tmpPayPrcNo) || HASSO_CMS_10.equals(tmpPayPrcNo)
//					|| MLANKIKI_HASSO_CMS_8.equals(tmpPayPrcNo) || MLANKIKI_HASSO_CMS_10.equals(tmpPayPrcNo))
//					&& null != kktkSvcKeiNo)
// ANK-3987-00-00 MOD START
//			if ((HASSO_CMS.equals(tmpPayPrcNo) || HASSO_CMS_10.equals(tmpPayPrcNo)
//					|| MLANKIKI_HASSO_CMS_8.equals(tmpPayPrcNo) || MLANKIKI_HASSO_CMS_10.equals(tmpPayPrcNo) || WIFI_HASSO_CMS_10.equals(tmpPayPrcNo))
//					&& null != kktkSvcKeiNo)
// ANK-4146-00-00 MOD START
//			if ((HASSO_CMS.equals(tmpPayPrcNo) || HASSO_CMS_10.equals(tmpPayPrcNo)
//					|| MLANKIKI_HASSO_CMS_8.equals(tmpPayPrcNo) || MLANKIKI_HASSO_CMS_10.equals(tmpPayPrcNo) || WIFI_HASSO_CMS_10.equals(tmpPayPrcNo)
//					|| SMP_HASSO_CMS_10.equals(tmpPayPrcNo))
//					&& null != kktkSvcKeiNo)
			if ((HASSO_CMS.equals(tmpPayPrcNo) || HASSO_CMS_10.equals(tmpPayPrcNo)
					|| MLANKIKI_HASSO_CMS_8.equals(tmpPayPrcNo) || MLANKIKI_HASSO_CMS_10.equals(tmpPayPrcNo) || WIFI_HASSO_CMS_10.equals(tmpPayPrcNo)
					|| SMP_HASSO_CMS_10.equals(tmpPayPrcNo) || ROUTER_HASSO_CMS_10G.equals(tmpPayPrcNo))
					&& null != kktkSvcKeiNo)
// ANK-4146-00-00 MOD END
// ANK-3987-00-00 MOD END
// ANK-3825-00-00  メッシュWiFi導入対応  2020/07/06 MOD END
// ANK-3684-00-00 MOD END
			{
				JBSbatCommonDBInterface kktkSvcKeiMap = new JBSbatCommonDBInterface();

				executeKK_T_KKTK_SVC_KEI_KK_SELECT_248(new Object[] {
						kktkSvcKeiNo, unyoDate});
				kktkSvcKeiMap = db_KK_T_KKTK_SVC_KEI.selectNext();
				// 機器提供サービス契約が取得できた場合
				if (null != kktkSvcKeiMap)
				{
					// 機器提供サービス契約ステータスを取得する。
					kktkSvcKeiStat = kktkSvcKeiMap.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_STAT);
					// 機器提供サービス契約ステータスが解約済、またはキャンセル済みの場合
					if (JBSbatKKConst.CD00056_KKTK_SVC_KEI_STAT_910.equals(kktkSvcKeiStat)
							|| JBSbatKKConst.CD00056_KKTK_SVC_KEI_STAT_920.equals(kktkSvcKeiStat))
					{
// ANK-3987-00-00 ADD START
						// SMPの場合
						if (SMP_HASSO_CMS_10.equals(tmpPayPrcNo))
						{
							// サービス開始年月日を取得する。
							svcStaYmd = kktkSvcKeiMap.getString(JBSbatKK_T_KKTK_SVC_KEI.SVC_STA_YMD);
							// サービス課金開始年月日を取得する。
							String svcChrgStaymd = kktkSvcKeiMap.getString(JBSbatKK_T_KKTK_SVC_KEI.SVC_CHRG_STAYMD);
							// サービス課金終了年月日を取得する。
							String svcChrgEndymd = kktkSvcKeiMap.getString(JBSbatKK_T_KKTK_SVC_KEI.SVC_CHRG_ENDYMD);
							
							// サービス課金開始年月日・サービス課金終了年月日が両方設定されており、
							// 且つ、サービス課金開始年月日　＜＝　サービス課金終了年月日の場合
							if (null != svcChrgStaymd && null != svcChrgEndymd && svcChrgStaymd.compareTo(svcChrgEndymd) <= 0)
							{
								// サービス開始年月日に値が設定されており、
								// サービス開始年月日 ≦ バッチ運用日を満たさない場合、一時金登録対象外とする。
								if (null != svcStaYmd && !(svcStaYmd.compareTo(unyoDate) <= 0))
								{
									return null;
								}
								else
								{
									// 処理なし(※一時金登録対象とする)
								}
							}
							else
							{
								// 一時金設定の完了状態コードを対象外とし、一時金登録対象外とする。
								executeKK_T_ICJKN_SETTE_PKUPDATE(new Object[]{JBSbatKKConst.FIN_STAT_NOT_TRGT},
										new Object[]{icjknSetteNo});
								return null;
							}
						}
						// SMP以外の場合
						else
						{
// ANK-3987-00-00 ADD END
							// 一時金設定の完了状態コードを対象外とし、一時金登録対象外とする。
							executeKK_T_ICJKN_SETTE_PKUPDATE(new Object[]{JBSbatKKConst.FIN_STAT_NOT_TRGT},
									new Object[]{icjknSetteNo});
							
	// ANK-3825-00-00  メッシュWiFi導入対応  2020/07/06 ADD START
							if (WIFI_HASSO_CMS_10.equals(tmpPayPrcNo)) {
								
								String svcKeiNo = kktkSvcKeiMap.getString(JBSbatKK_T_KKTK_SVC_KEI.SVC_KEI_NO);
								
								JBSbatCommonDBInterface reAddTargetKiki = getReAddTargetKiki(inMap, svcKeiNo);
								
								if (reAddTargetKiki != null) {
									
									super.logPrint.printDebugLog("insertIcjknSette_START");
									
									super.logPrint.printDebugLog("一時支払料金番号:" + inMap.getString(JBSbatKK_T_ICJKN_SETTE.TMP_PAY_PRC_NO));
									
									// 一時金設定番号の採番値を取得する。
									String seq_no = JBSbatStringUtil.padNumFormString(JBSbatOracleSeqUtil.getNextSeq(super.commonItem.getConnection(), "SEQ_ICJKN_SETTE_NO"), 12);
									
									String icjknHasseiYmd = reAddTargetKiki.getString(JBSbatKK_T_KKTK_SVC_KEI.SVC_STA_YMD);
									
									if (icjknHasseiYmd == null || "".equals(icjknHasseiYmd)) {
										
										icjknHasseiYmd = inMap.getString(JBSbatKK_T_ICJKN_SETTE.ICJKN_HASSEI_YMD);
										
									}
									
	// IT1-2020-0000031 ADD START
									// 一時金指定率
									String icjknShiteiRt = null;
									if (inMap.getBigDecimal(JBSbatKK_T_ICJKN_SETTE.ICJKN_SHITEI_RT) != null)
									{
										icjknShiteiRt = inMap.getBigDecimal(JBSbatKK_T_ICJKN_SETTE.ICJKN_SHITEI_RT).toString();
									}
									
									// 一時金指定額
									String icjknShiteiAmnt = null;
									if (inMap.getBigDecimal(JBSbatKK_T_ICJKN_SETTE.ICJKN_SHITEI_AMNT) != null)
									{
										icjknShiteiAmnt = inMap.getBigDecimal(JBSbatKK_T_ICJKN_SETTE.ICJKN_SHITEI_AMNT).toString();
									}
	// IT1-2020-0000031 ADD END
									String[] setParam = {	seq_no,																// 一時金設定番号
															inMap.getString(JBSbatKK_T_ICJKN_SETTE.TMP_PAY_PRC_NO),				// 一時支払料金番号
															inMap.getString(JBSbatKK_T_ICJKN_SETTE.ICJKN_SETTE_CD),  			// 一時金設定コード
	// IT1-2020-0000031 MOD START
	//														inMap.getString(JBSbatKK_T_ICJKN_SETTE.ICJKN_SHITEI_RT),			// 一時金指定率
	//														inMap.getString(JBSbatKK_T_ICJKN_SETTE.ICJKN_SHITEI_AMNT),			// 一時金指定額
															icjknShiteiRt,														// 一時金指定率
															icjknShiteiAmnt,													// 一時金指定額
	// IT1-2020-0000031 MOD END
															inMap.getString(JBSbatKK_T_ICJKN_SETTE.SVC_KEI_NO),					// サービス契約番号
															inMap.getString(JBSbatKK_T_ICJKN_SETTE.SVC_KEI_UCWK_NO),			// サービス契約内訳番号
															reAddTargetKiki.getString(JBSbatKK_T_ICJKN_SETTE.KKTK_SVC_KEI_NO),	// 機器提供サービス契約番号
															inMap.getString(JBSbatKK_T_ICJKN_SETTE.OP_SVC_KEI_NO),				// オプションサービス契約番号
															inMap.getString(JBSbatKK_T_ICJKN_SETTE.SBOP_SVC_KEI_NO),			// サブオプションサービス契約番号
															inMap.getString(JBSbatKK_T_ICJKN_SETTE.WRIB_SVC_KEI_NO),			// 割引サービス契約番号
															inMap.getString(JBSbatKK_T_ICJKN_SETTE.SEIOPSVC_KEI_NO),			// 請求オプションサービス契約番号
															inMap.getString(JBSbatKK_T_ICJKN_SETTE.MSKM_DTL_NO),				// 申込明細番号
															inMap.getString(JBSbatKK_T_ICJKN_SETTE.FIN_STAT_CD),				// 完了状態コード
															icjknHasseiYmd,														// 一時金発生年月日
															"",																	// 登録年月日時分秒
															"",																	// 登録オペレータアカウント
															"",																	// 更新年月日時分秒
															"",																	// 更新オペレータアカウント
															"",																	// 削除年月日時分秒
															"",																	// 削除オペレータアカウント
															"", 																// 無効フラグ
															"",																	// 登録運用年月日
															"",																	// 登録処理ID
															"",																	// 更新運用年月日
															"",																	// 更新処理ID
															"",																	// 削除運用年月日
															"" };																// 削除処理ID
									
									this.executeKK_T_ICJKN_SETTE_PKINSERT(setParam);
									
									super.logPrint.printDebugLog("insertIcjknSette_END");
									
									
									String[] whereParam = {seq_no};
									
									
									JBSbatCommonDBInterface icjknSetteMap = this.executeKK_T_ICJKN_SETTE_PKSELECT(whereParam);
									
									
									icjknSetteMap.setValue(JBSbatKK_M_TMP_PAY_PRC.TMP_PAY_PRC_AMNT, inMap.get(JBSbatKK_M_TMP_PAY_PRC.TMP_PAY_PRC_AMNT));
									icjknSetteMap.setValue(JBSbatKK_M_TMP_PAY_PRC.HASSEI_CD, inMap.get(JBSbatKK_M_TMP_PAY_PRC.HASSEI_CD));
									icjknSetteMap.setValue(JBSbatKK_M_TMP_PAY_PRC.MANS_ICJKN_TG_FLG, inMap.get(JBSbatKK_M_TMP_PAY_PRC.MANS_ICJKN_TG_FLG));
									icjknSetteMap.setValue(JBSbatKK_M_TMP_PAY_PRC.MANS_PRC_SKBT_CD, inMap.get(JBSbatKK_M_TMP_PAY_PRC.MANS_PRC_SKBT_CD));
									
									// Initialize inMap object
									inMap = new JBSbatServiceInterfaceMap();
									// Copy icjknSetteMap HashMap values to inMap HashMap
									inMap.setMap(icjknSetteMap.getMap());
									
									icjknSetteNo = inMap.getString(JBSbatKK_T_ICJKN_SETTE.ICJKN_SETTE_NO);
									tmpPayPrcNo = inMap.getString(JBSbatKK_T_ICJKN_SETTE.TMP_PAY_PRC_NO);
									kktkSvcKeiNo = inMap.getString(JBSbatKK_T_ICJKN_SETTE.KKTK_SVC_KEI_NO);
									icjknStCd = inMap.getString(JBSbatKK_T_ICJKN_SETTE.ICJKN_SETTE_CD);
									
									// サービス開始年月日に値が設定されており、
									// サービス開始年月日 ≦ バッチ運用日を満たさない場合、一時金登録対象外とする。
									String reAddTargetKikiSvcStaYmd = reAddTargetKiki.getString(JBSbatKK_T_KKTK_SVC_KEI.SVC_STA_YMD );
									
									if (null != reAddTargetKikiSvcStaYmd && !(reAddTargetKikiSvcStaYmd.compareTo(unyoDate) <= 0))
									{
										return null;
									}
								}
	// IT1-2020-0000031 ADD START
								else
								{
									return null;
								}
	// IT1-2020-0000031 ADD END
							} else {
								return null;
							}
// ANK-3987-00-00 ADD START
						}
// ANK-3987-00-00 ADD END
// ANK-3825-00-00  メッシュWiFi導入対応  2020/07/06 ADD END
// ANK-3825-00-00  メッシュWiFi導入対応  2020/07/06 DELETE START
//						return null;
// ANK-3825-00-00  メッシュWiFi導入対応  2020/07/06 DELETE END
					}
					else
					{
						// サービス開始年月日を取得する。
						svcStaYmd = kktkSvcKeiMap.getString(JBSbatKK_T_KKTK_SVC_KEI.SVC_STA_YMD);
						
						// サービス開始年月日に値が設定されており、
						// サービス開始年月日 ≦ バッチ運用日を満たさない場合、一時金登録対象外とする。
						if (null != svcStaYmd && !(svcStaYmd.compareTo(unyoDate) <= 0))
						{
							return null;
						}
					}
				}
			}
// ANK-3314-00-00 ADD END
			/* ++++++++++ v4.00.00 追加終了 ++++++++++ */
			// [一時金設定コード]が"無"の場合
			if(icjknStCd.equals(JBSbatKKConst.ICJKN_SETTE_CD_MURYO))
			{
				kIcjknAddFlg = true;
			}
			// [一時金設定コード]が"指定額"の場合
			else if(icjknStCd.equals(JBSbatKKConst.ICJKN_SETTE_CD_SHITEI))
			{
				/* ++++++++++ v4.00.00 変更開始 ++++++++++ */
				// [一時金指定額]が未設定の場合には【契約一時金】登録対象外
				if(null != inMap.getBigDecimal(JBSbatKK_T_ICJKN_SETTE.ICJKN_SHITEI_AMNT))
				{
					icjkn = inMap.getBigDecimal(JBSbatKK_T_ICJKN_SETTE.ICJKN_SHITEI_AMNT).toString();
				}
				/* ++++++++++ v4.00.00 変更終了 ++++++++++ */
				kIcjknAddFlg = true;
			}
			// [一時金設定コード]が"有"または"半額"の場合
			else
			{
				// [一時支払料金額]が未設定の場合には【契約一時金】登録対象外
				if(null != inMap.getBigDecimal(JBSbatKK_M_TMP_PAY_PRC.TMP_PAY_PRC_AMNT))
				{
					/* ++++++++++ v4.00.00 変更開始 ++++++++++ */
					//一時支払料金．マンション一時金対象フラグ= "1"以外の場合取得項目の一時金を設定する。
					if(!FLG_ON.equals((inMap.getString(JBSbatKK_M_TMP_PAY_PRC.MANS_ICJKN_TG_FLG)))){
					icjkn = inMap.getBigDecimal(JBSbatKK_M_TMP_PAY_PRC.TMP_PAY_PRC_AMNT).toString();
					}
					/* ++++++++++ v4.00.00 変更終了 ++++++++++ */
					kIcjknAddFlg = true;
					
					// "半額"の場合
					if(icjknStCd.equals(JBSbatKKConst.ICJKN_SETTE_CD_HANGAKU))
					{
						icjkn = (new BigDecimal(icjkn)).divide(new BigDecimal("2")).toString();
					}
				}
			}
		}
		if(kIcjknAddFlg)
		{
			// [一時金発生コード]が"当月"の場合
			if(JBSbatKKConst.ICJKN_HASSEI_CD_T_MONTH.equals(inMap.getString(JBSbatKK_M_TMP_PAY_PRC.HASSEI_CD)))
			{
				// [一時金設定適用年月]：当月
				icjknSetAplyMon = unyoDate.substring(0, 6);
				// [適用状態コード]：確定
				aplyStatCd = JBSbatKKConst.TEKIYO_STAT_KAKUTEI;
			}
			// [一時金発生コード]が"翌月"の場合
			else if(JBSbatKKConst.ICJKN_HASSEI_CD_N_MONTH.equals(inMap.getString(JBSbatKK_M_TMP_PAY_PRC.HASSEI_CD)))
			{
				// [一時金設定適用年月]：翌月
				icjknSetAplyMon = JBSbatDateUtil.adjustMonth(unyoDate, 1).substring(0, 6);
				// [適用状コード]：確定
				aplyStatCd = JBSbatKKConst.TEKIYO_STAT_KAKUTEI;
			}
			/* ++++++++++ v5.00.00 追加開始 ++++++++++ */
			else if(JBSbatKKConst.ICJKN_HASSEI_CD_OPSVC.equals(inMap.getString(JBSbatKK_M_TMP_PAY_PRC.HASSEI_CD)))
			{
				// [一時金設定適用年月]：オプションサービス課金開始年月日より年月を設定
				icjknSetAplyMon = inMap.getString(JBSbatKK_T_OP_SVC_KEI.SVC_CHRG_STAYMD).substring(0, 6);
				// [適用状コード]：確定
				aplyStatCd = JBSbatKKConst.TEKIYO_STAT_KAKUTEI;
			}
			/* ++++++++++ v5.00.00 追加終了 ++++++++++ */
			else
			{
				// 請求タイミングを調整する(別機能)ため未設定
			}
			
			//【契約一時金】登録
			executeKK_T_KICJKN_PKINSERT(setValueKicjkn(icjknSetteNo, icjkn, icjknSetAplyMon, aplyStatCd, mansIcjknHsiMtKeiSkCdTmp, mansCjknHsiOptyCdTmp,inMap));
		}
		
		//【一時金設定】更新（完了状態コードを完了に更新）
		executeKK_T_ICJKN_SETTE_PKUPDATE(new Object[]{JBSbatKKConst.FIN_STAT_FIN}, new Object[]{icjknSetteNo});
		
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

// ANK-3825-00-00  メッシュWiFi導入対応  2020/07/06 ADD START
	/**
	 * 
	 */
	private JBSbatCommonDBInterface getReAddTargetKiki(JBSbatServiceInterfaceMap inMap, String svcKeiNo) throws Exception {
		
		
		JBSbatCommonDBInterface reAddTargetKiki = null;
		
		String mskmDtlNo = inMap.getString(JBSbatKK_T_KKTK_SVC_KEI.MSKM_DTL_NO);
		String kktkSvcKeiNo = inMap.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_NO);
		
		Object[] paramKK_SELECT_263 = {mskmDtlNo, kktkSvcKeiNo, svcKeiNo, this.opeDate};
		
		
		JBSbatCommonDBInterface outDbKK_T_KKTK_SVC_KEI_KK_SELECT_263Map = null;
		
		executeKK_T_KKTK_SVC_KEI_KK_SELECT_263(paramKK_SELECT_263);
		
		while((outDbKK_T_KKTK_SVC_KEI_KK_SELECT_263Map = db_KK_T_KKTK_SVC_KEI_TMP.selectNext()) != null) {
			
			
			JBSbatCommonDBInterface outDbKK_T_KKTK_SVC_KEI_KK_SELECT_264Map = null;
			
			kktkSvcKeiNo = outDbKK_T_KKTK_SVC_KEI_KK_SELECT_263Map.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_NO);
			
			Object[] paramKK_SELECT_264 = {kktkSvcKeiNo, this.opeDate};
			
			executeKK_T_KKTK_SVC_KEI_KK_SELECT_264(paramKK_SELECT_264);
			
			if ((outDbKK_T_KKTK_SVC_KEI_KK_SELECT_264Map = db_KK_T_KKTK_SVC_KEI_TMP2.selectNext()) != null) {
				
				String kktkSvcKeiStat = outDbKK_T_KKTK_SVC_KEI_KK_SELECT_264Map.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_STAT);
				
// IT1-2020-0000031 MOD START
//				if (!JBSbatKKConst.CD00056_KKTK_SVC_KEI_STAT_910.equals(kktkSvcKeiStat) && !JBSbatKKConst.CD00056_KKTK_SVC_KEI_STAT_920.equals(kktkSvcKeiStat)) {
				if (!JBSbatKKConst.CD00056_KKTK_SVC_KEI_STAT_010.equals(kktkSvcKeiStat)
						&& !JBSbatKKConst.CD00056_KKTK_SVC_KEI_STAT_020.equals(kktkSvcKeiStat)
						&& !JBSbatKKConst.CD00056_KKTK_SVC_KEI_STAT_910.equals(kktkSvcKeiStat)
						&& !JBSbatKKConst.CD00056_KKTK_SVC_KEI_STAT_920.equals(kktkSvcKeiStat)) {
// IT1-2020-0000031 MOD END
					
					String svcStaYmd = outDbKK_T_KKTK_SVC_KEI_KK_SELECT_264Map.getString(JBSbatKK_T_KKTK_SVC_KEI.SVC_STA_YMD);
					String keiCncYmd = outDbKK_T_KKTK_SVC_KEI_KK_SELECT_264Map.getString(JBSbatKK_T_KKTK_SVC_KEI.KEI_CNC_YMD);
					
					if (reAddTargetKiki == null) {
						
						reAddTargetKiki = outDbKK_T_KKTK_SVC_KEI_KK_SELECT_264Map;
						
					} else {
						
						String reAddTargetKikiSvcStaYmd = reAddTargetKiki.getString(JBSbatKK_T_KKTK_SVC_KEI.SVC_STA_YMD);
						
						if (reAddTargetKikiSvcStaYmd != null && !"".equals(reAddTargetKikiSvcStaYmd)) {
							
							if (svcStaYmd != null && !"".equals(svcStaYmd)) {
								
								if (svcStaYmd.compareTo(reAddTargetKikiSvcStaYmd) < 0){
									
									reAddTargetKiki = outDbKK_T_KKTK_SVC_KEI_KK_SELECT_264Map;
									
								}
							}
							
						} else {
							
							if (svcStaYmd != null && !"".equals(svcStaYmd)) {
							
								reAddTargetKiki = outDbKK_T_KKTK_SVC_KEI_KK_SELECT_264Map;
								
							} else {
								
								String reAddTargetKikiKeiCncYmd = reAddTargetKiki.getString(JBSbatKK_T_KKTK_SVC_KEI.KEI_CNC_YMD);
								
								if (reAddTargetKikiKeiCncYmd == null || "".equals(reAddTargetKikiKeiCncYmd)) {
									
									reAddTargetKiki = outDbKK_T_KKTK_SVC_KEI_KK_SELECT_264Map;
									
								} else {
									
									if (keiCncYmd != null && !"".equals(keiCncYmd)) {
										
										if (keiCncYmd.compareTo(reAddTargetKikiKeiCncYmd) < 0){
											
											reAddTargetKiki = outDbKK_T_KKTK_SVC_KEI_KK_SELECT_264Map;
											
										}
									}
								}
							}
						}
					}
				}
			}
		}
		
		return reAddTargetKiki;
	}
// ANK-3825-00-00  メッシュWiFi導入対応  2020/07/06 ADD END

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_KICJKN.close();
		db_KK_T_ICJKN_SETTE.close();
// ANK-3314-00-00 ADD START
		db_KK_T_KKTK_SVC_KEI.close();
// ANK-3314-00-00 ADD END
// ANK-3825-00-00  メッシュWiFi導入対応  2020/07/10 ADD START
		if (db_KK_T_KKTK_SVC_KEI_TMP != null) {
			db_KK_T_KKTK_SVC_KEI_TMP.close();
		}
		
		if (db_KK_T_KKTK_SVC_KEI_TMP2 != null) {
			db_KK_T_KKTK_SVC_KEI_TMP2.close();
		}
// ANK-3825-00-00  メッシュWiFi導入対応  2020/07/10 ADD END
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * SQLKEY(KK_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 executeKK_T_ICJKN_SETTE_KK_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());
//OM-2015-0000189 ADD START
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
//OM-2014-0000189 ADD START

		// DBアクセスを実行します
		db_KK_T_ICJKN_SETTE.selectBySqlDefine(paramList, KK_T_ICJKN_SETTE_KK_SELECT_005);
	}
	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	契約一時金番号				KICJKN_NO
	 *		 	一時支払料金番号				TMP_PAY_PRC_NO
	 *		 	一時金設定番号				ICJKN_SETTE_NO
	 *		 	サービス契約番号				SVC_KEI_NO
	 *		 	サービス契約内訳番号				SVC_KEI_UCWK_NO
	 *		 	機器提供サービス契約番号				KKTK_SVC_KEI_NO
	 *		 	オプションサービス契約番号				OP_SVC_KEI_NO
	 *		 	サブオプションサービス契約番号				SBOP_SVC_KEI_NO
	 *		 	請求オプションサービス契約番号				SEIOPSVC_KEI_NO
	 *		 	割引サービス契約番号				WRIB_SVC_KEI_NO
	 *		 	オーナー契約番号				OWNR_KEI_NO
	 *		 	一時金額				ICJKN_AMNT
	 *		 	一時金設定適用月				ICJKN_SETTE_APLY_MON
	 *		 	適用状態コード				APLY_STAT_CD
	 *		 	取消連携状態コード				CL_RENKEI_STAT_CD
	 *		 	発生起因工事案件番号				HSI_KIIN_KJAK_NO
	 *		 	マンション一時金発生元契約識別コード				MANS_ICJKN_HSI_MT_KEI_SKCD
	 *		 	マンション一時金発生契機コード				MANS_ICJKN_HSI_OPTY_CD
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録オペレータアカウント				ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除オペレータアカウント				DEL_OPEACNT
	 *		 	無効フラグ				MK_FLG
	 *		 	登録運用年月日				ADD_UNYO_YMD
	 *		 	登録処理ＩＤ				ADD_TRN_ID
	 *		 	更新運用年月日				UPD_UNYO_YMD
	 *		 	更新処理ＩＤ				UPD_TRN_ID
	 *		 	削除運用年月日				DEL_UNYO_YMD
	 *		 	削除処理ＩＤ				DEL_TRN_ID
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_KICJKN_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("KICJKN_NO", setParam[0]);
		setMap.setValue("TMP_PAY_PRC_NO", setParam[1]);
		setMap.setValue("ICJKN_SETTE_NO", setParam[2]);
		setMap.setValue("SVC_KEI_NO", setParam[3]);
		setMap.setValue("SVC_KEI_UCWK_NO", setParam[4]);
		setMap.setValue("KKTK_SVC_KEI_NO", setParam[5]);
		setMap.setValue("OP_SVC_KEI_NO", setParam[6]);
		setMap.setValue("SBOP_SVC_KEI_NO", setParam[7]);
		setMap.setValue("SEIOPSVC_KEI_NO", setParam[8]);
		setMap.setValue("WRIB_SVC_KEI_NO", setParam[9]);
		setMap.setValue("OWNR_KEI_NO", setParam[10]);
		setMap.setValue("ICJKN_AMNT", setParam[11]);
		setMap.setValue("ICJKN_SETTE_APLY_MON", setParam[12]);
		setMap.setValue("APLY_STAT_CD", setParam[13]);
		setMap.setValue("CL_RENKEI_STAT_CD", setParam[14]);
		setMap.setValue("HSI_KIIN_KJAK_NO", setParam[15]);
		setMap.setValue("MANS_ICJKN_HSI_MT_KEI_SKCD", setParam[16]);
		setMap.setValue("MANS_ICJKN_HSI_OPTY_CD", setParam[17]);
		setMap.setValue("ADD_DTM", setParam[18]);
		setMap.setValue("ADD_OPEACNT", setParam[19]);
		setMap.setValue("UPD_DTM", setParam[20]);
		setMap.setValue("UPD_OPEACNT", setParam[21]);
		setMap.setValue("DEL_DTM", setParam[22]);
		setMap.setValue("DEL_OPEACNT", setParam[23]);
		setMap.setValue("MK_FLG", setParam[24]);
		setMap.setValue("ADD_UNYO_YMD", setParam[25]);
		setMap.setValue("ADD_TRN_ID", setParam[26]);
		setMap.setValue("UPD_UNYO_YMD", setParam[27]);
		setMap.setValue("UPD_TRN_ID", setParam[28]);
		setMap.setValue("DEL_UNYO_YMD", setParam[29]);
		setMap.setValue("DEL_TRN_ID", setParam[30]);
	
		// DBアクセスを実行します
		db_KK_T_KICJKN.insertByPrimaryKeys(setMap);
	}

	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	完了状態コード				FIN_STAT_CD
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	ICJKN_SETTE_NO
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_ICJKN_SETTE_PKUPDATE(Object[] setParam, Object[] whereParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue(JBSbatKK_T_ICJKN_SETTE.FIN_STAT_CD, setParam[0]);
	
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue(JBSbatKK_T_ICJKN_SETTE.ICJKN_SETTE_NO, whereParam[0]);

		// DBアクセスを実行します
		db_KK_T_ICJKN_SETTE.updateByPrimaryKeys(whereMap, setMap);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	

	/**
	 * 契約一時金 登録情報設定
	 * 
	 * @param icjknSetteNo 一時金設定番号
	 * @param inMap 入力電文
	 * @return setParam
	 * @throws Exception 
	 * 
	 */
	private Object[] setValueKicjkn(String icjknSetteNo, String icjkn, String icjknSetAplyMon, String aplyStatCd, String mansIcjknHsiMtKeiSkCdTmp, String mansCjknHsiOptyCdTmp,JBSbatServiceInterfaceMap inMap) throws Exception
	{
		String seq = JCCBatCommon.getNextSeq(commonItem, SEQ_KICJKN_NO);
		
		Object[] setParam = new Object[31];
		setParam[0] = JBSbatStringUtil.padNumFormString(seq, 12);				// 契約一時金番号
		setParam[1] = inMap.getString(JBSbatKK_T_ICJKN_SETTE.TMP_PAY_PRC_NO);	// 一時支払料金番号
		setParam[2] = icjknSetteNo;												// 一時金設定番号
		setParam[3] = inMap.getString(JBSbatKK_T_ICJKN_SETTE.SVC_KEI_NO);		// サービス契約番号
		setParam[4] = inMap.getString(JBSbatKK_T_ICJKN_SETTE.SVC_KEI_UCWK_NO);	// サービス契約内訳番号
		setParam[5] = inMap.getString(JBSbatKK_T_ICJKN_SETTE.KKTK_SVC_KEI_NO);	// 機器提供サービス契約番号
		setParam[6] = inMap.getString(JBSbatKK_T_ICJKN_SETTE.OP_SVC_KEI_NO);	// オプションサービス契約番号
		setParam[7] = inMap.getString(JBSbatKK_T_ICJKN_SETTE.SBOP_SVC_KEI_NO);	// サブオプションサービス契約番号
		setParam[8] = inMap.getString(JBSbatKK_T_ICJKN_SETTE.SEIOPSVC_KEI_NO);	// 請求オプションサービス契約番号
		setParam[9] = inMap.getString(JBSbatKK_T_ICJKN_SETTE.WRIB_SVC_KEI_NO);	// 割引サービス契約番号
		setParam[10] = null;													// オーナー契約番号
		setParam[11] = icjkn;													// 一時金額
		setParam[12] = icjknSetAplyMon;											// 一時金設定適用月
		setParam[13] = aplyStatCd;												// 適用状態コード
		setParam[14] = null;													// 取消連携状態コード
		/* ++++++++++ v4.00.00 追加開始 ++++++++++ */
		setParam[15] = null;													// 発生起因工事案件番号
		setParam[16] = mansIcjknHsiMtKeiSkCdTmp;								// マンション一時金発生元契約識別コード
		setParam[17] = mansCjknHsiOptyCdTmp;									// マンション一時金発生契機コード
		/* ++++++++++ v4.00.00 追加終了 ++++++++++ */
		
		return setParam;
	}

	/**
	 * 契約一時金 登録情報設定（マンション情報取得）
	 * v4.00.00追加
	 * @param icjknSetteNo 一時金設定番号
	 * @param inMap 入力電文
	 * @return setParam
	 * @throws Exception 
	 * 
	 */
	private Object[] setValueKicjknMans( String icjknSetteNo, JBSbatServiceInterfaceMap inMap) throws Exception
	{
// ANK-3825-00-00  メッシュWiFi導入対応  2020/07/06 DELETE START
//		String seq = JCCBatCommon.getNextSeq(commonItem, SEQ_KICJKN_NO);
// ANK-3825-00-00  メッシュWiFi導入対応  2020/07/06 DELETE END
		
//OM-2015-0000189 MOD START
//		Object[] setParam = new Object[3];
//		setParam[0] = unyoDate;
//		setParam[1] = inMap.getString(JBSbatKK_M_TMP_PAY_PRC.MANS_PRC_SKBT_CD );	// マンション料金種別コード
//		setParam[2] = icjknSetteNo;												// 一時金設定番号
		Object[] setParam = new Object[5];
		setParam[0] = unyoDate;
		setParam[1] = unyoDate;
		setParam[2] = unyoDate;
		setParam[3] = inMap.getString(JBSbatKK_M_TMP_PAY_PRC.MANS_PRC_SKBT_CD );	// マンション料金種別コード
		setParam[4] = icjknSetteNo;												// 一時金設定番号
//OM-2015-0000189 MOD START

		return setParam;
	}
	
	/**
	 * null、空文字を判定
	 * @param str
	 * @return
	 */
	private boolean isNullBlunk(String str)
	{
		if (str == null || str.equals(""))
		{
			return true;
		}
		return false;
	}
	
// ANK-3314-00-00 ADD START
	/**
	 * SQLKEY(KK_SELECT_248)で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_248(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_KKTK_SVC_KEI.selectBySqlDefine(paramList, KK_T_KKTK_SVC_KEI_KK_SELECT_248);
	}
// ANK-3314-00-00 ADD END

// ANK-3825-00-00  メッシュWiFi導入対応  2020/07/06 ADD START
	/**
	 * SQLKEY(KK_SELECT_263)で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_263(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());

		// DBアクセスを実行します
		db_KK_T_KKTK_SVC_KEI_TMP.selectBySqlDefine(paramList, KK_T_KKTK_SVC_KEI_KK_SELECT_263);
	}

	/**
	 * SQLKEY(KK_SELECT_264)で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_264(Object[] param) throws Exception {
		
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_KKTK_SVC_KEI_TMP2.selectBySqlDefine(paramList, KK_T_KKTK_SVC_KEI_KK_SELECT_264);
	}
	
	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	一時金設定番号				ICJKN_SETTE_NO
	 *		 	一時支払料金番号				TMP_PAY_PRC_NO
	 *		 	一時金設定コード				ICJKN_SETTE_CD
	 *		 	一時金指定率					ICJKN_SHITEI_RT
	 *		 	一時金指定額					ICJKN_SHITEI_AMNT
	 *		 	サービス契約番号				SVC_KEI_NO
	 *		 	サービス契約内訳番号			SVC_KEI_UCWK_NO
	 *		 	機器提供サービス契約番号		KKTK_SVC_KEI_NO
	 *		 	オプションサービス契約番号			OP_SVC_KEI_NO
	 *		 	サブオプションサービス契約番号		SBOP_SVC_KEI_NO
	 *		 	割引サービス契約番号			WRIB_SVC_KEI_NO
	 *		 	請求オプションサービス契約番号		SEIOPSVC_KEI_NO
	 *		 	申込明細番号					MSKM_DTL_NO
	 *		 	完了状態コード					FIN_STAT_CD
	 *		 	一時金発生年月日				ICJKN_HASSEI_YMD
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録オペレータアカウント			ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント			UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除オペレータアカウント			DEL_OPEACNT
	 *		 	無効フラグ						MK_FLG
	 *		 	登録運用年月日				ADD_UNYO_YMD
	 *		 	登録処理ＩＤ					ADD_TRN_ID
	 *		 	更新運用年月日				UPD_UNYO_YMD
	 *		 	更新処理ＩＤ					UPD_TRN_ID
	 *		 	削除運用年月日				DEL_UNYO_YMD
	 *		 	削除処理ＩＤ					DEL_TRN_ID
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_ICJKN_SETTE_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("ICJKN_SETTE_NO", setParam[0]);
		setMap.setValue("TMP_PAY_PRC_NO", setParam[1]);
		setMap.setValue("ICJKN_SETTE_CD", setParam[2]);
		setMap.setValue("ICJKN_SHITEI_RT", setParam[3]);
		setMap.setValue("ICJKN_SHITEI_AMNT", setParam[4]);
		setMap.setValue("SVC_KEI_NO", setParam[5]);
		setMap.setValue("SVC_KEI_UCWK_NO", setParam[6]);
		setMap.setValue("KKTK_SVC_KEI_NO", setParam[7]);
		setMap.setValue("OP_SVC_KEI_NO", setParam[8]);
		setMap.setValue("SBOP_SVC_KEI_NO", setParam[9]);
		setMap.setValue("WRIB_SVC_KEI_NO", setParam[10]);
		setMap.setValue("SEIOPSVC_KEI_NO", setParam[11]);
		setMap.setValue("MSKM_DTL_NO", setParam[12]);
		setMap.setValue("FIN_STAT_CD", setParam[13]);
		setMap.setValue("ICJKN_HASSEI_YMD", setParam[14]);
		setMap.setValue("ADD_DTM", setParam[15]);
		setMap.setValue("ADD_OPEACNT", setParam[16]);
		setMap.setValue("UPD_DTM", setParam[17]);
		setMap.setValue("UPD_OPEACNT", setParam[18]);
		setMap.setValue("DEL_DTM", setParam[19]);
		setMap.setValue("DEL_OPEACNT", setParam[20]);
		setMap.setValue("MK_FLG", setParam[21]);
		setMap.setValue("ADD_UNYO_YMD", setParam[22]);
		setMap.setValue("ADD_TRN_ID", setParam[23]);
		setMap.setValue("UPD_UNYO_YMD", setParam[24]);
		setMap.setValue("UPD_TRN_ID", setParam[25]);
		setMap.setValue("DEL_UNYO_YMD", setParam[26]);
		setMap.setValue("DEL_TRN_ID", setParam[27]);
	
		// DBアクセスを実行します
		db_KK_T_ICJKN_SETTE.insertByPrimaryKeys(setMap);
	}

	/**
	 * 
	 * @param whereParam
	 * @return
	 * @throws Exception
	 */
	private JBSbatCommonDBInterface executeKK_T_ICJKN_SETTE_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("ICJKN_SETTE_NO", whereParam[0]);

		// DBアクセスを実行します
		return db_KK_T_ICJKN_SETTE.selectByPrimaryKeys(whereMap);
	}
// ANK-3825-00-00  メッシュWiFi導入対応  2020/07/06 ADD END
}
