/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKUKojiSgykmkHanei
*	ソースファイル名	：JBSbatKUKojiSgykmkHanei.java
*	作成者				：富士通　
*	作成日				：2012年04月25日
*＜機能概要＞
*　工事作業項目反映部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v3.00.00	2012/04/25  FJ)小川		新規作成
*********************************************************************/
package eo.business.service;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.common.JKUBatCommon;
import eo.business.util.file.JBSbatKUIFE059;
import eo.business.util.table.JBSbatKU_M_KOJI_WRKITEM;
import eo.common.constant.JKUStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.log.JBSbatLogPrintControl;
import eo.framework.db.JBSbatSQLAccess;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKUKojiSgykmkHanei extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(工事作業項目)*/
	private static final String D_TBL_NAME_KU_M_KOJI_WRKITEM = "KU_M_KOJI_WRKITEM";

	/** SQL定義キー(KU_SELECT_002)*/
	private static final String KU_M_KOJI_WRKITEM_KU_SELECT_002 = "KU_SELECT_002";

	/** テーブルアクセスクラス(工事作業項目)*/
	private JBSbatSQLAccess db_KU_M_KOJI_WRKITEM = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/

	/** 処理件数 */
	private static int trnCnt = 0;
	
	/** 工事作業項目ワーク用先頭文字列 */
	private static String HEAD_MOJI_WK = "WK_";
	
	/** 工事作業項目適用開始年月日の初期値 */
	private static String DEFAULT_TSTA_YMD = "19000101";
	
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KU_M_KOJI_WRKITEM = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_M_KOJI_WRKITEM);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		// 出力共通電文を生成する。
		JBSbatOutputItem outputBean = new JBSbatOutputItem();
		
		// 入出力インターフェースオブジェクトを生成
		JBSbatServiceInterfaceMap outMap = null;
		
		// WK工事分類コード
		String wkkojibnricd = inMap.getString(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KOJIHI_KOJI_BUNRUI_CD);
		// 工事分類コード
		String kojibnricd = inMap.getString(JBSbatKU_M_KOJI_WRKITEM.KOJIHI_KOJI_BUNRUI_CD);

		// ワーク、マスタに同一レコードが存在(更新(ただし変更がある場合のみ))
		if(null != wkkojibnricd && null != kojibnricd)
		{
			updateKojiSgyo(inMap);
		} 
		// ワークのみ存在(登録、リスト出力)
		else if (null != wkkojibnricd && null == kojibnricd)
		{
			outMap = insertKojiSgyo(inMap);
		}
		// マスタのみ存在(リスト出力のみ)
		else
		{
			outMap = deleteKojiSgyo(inMap);
		}
		
		if (null != outMap)
		{
			// 出力共通電文に入出力インターフェースを設定する。
			outputBean.addOutMapList(outMap);
		}
		
		return outputBean;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KU_M_KOJI_WRKITEM.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	工事費工事分類コード				KOJIHI_KOJI_BUNRUI_CD
	 *		 	工事費項目コード				KOJIHI_KMK_CD
	 *		 	工事費単価コード				KOJIHI_TANKA_CD
	 *		 	世代登録年月日時分秒				GENE_ADD_DTM
	 *		 	一時支払料金番号				TMP_PAY_PRC_NO
	 *		 	ＯＰＭＳ工事費単価適用年月日				OPMS_KOJIHI_TANKA_APLY_YMD
	 *		 	工事費単価名				KOJIHI_TANKA_NM
	 *		 	工事工種単位名				KOJI_KOSYU_TANI_NM
	 *		 	工事用取付工事単価（通常）				KJ_ATTKJ_TANKA_TUJYO
	 *		 	工事用取付工事単価（休日）				KJ_ATTKJ_TANKA_HLDY
	 *		 	工事用取付工事単価（深夜）				KJ_ATTKJ_TANKA_MNGT
	 *		 	工事用撤去工事単価（通常）				KJ_TKKJ_TANKA_TUJYO
	 *		 	工事用撤去工事単価（休日）				KJ_TKKJ_TANKA_HLDY
	 *		 	工事用撤去工事単価（深夜）				KJ_TKKJ_TANKA_MNGT
	 *		 	工事用工事費お客様負担金額				KJ_KOJIHI_CUST_FTN_AMNT
	 *		 	工事用工事費料金一律フラグ				KJ_KOJIHI_PRC_ICRT_FLG
	 *		 	工事作業項目備考				KOJI_WRKITEM_BIKO
	 *		 	予約適用年月日				RSV_APLY_YMD
	 *		 	工事作業項目適用開始年月日				KOJI_WORK_KMK_TSTAYMD
	 *		 	工事作業項目適用終了年月日				KOJI_WORK_KMK_TENDYMD
	 *		 	登録年月日時分秒				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 executeKU_M_KOJI_WRKITEM_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("KOJIHI_KOJI_BUNRUI_CD", setParam[0]);
		setMap.setValue("KOJIHI_KMK_CD", setParam[1]);
		setMap.setValue("KOJIHI_TANKA_CD", setParam[2]);
		setMap.setValue("GENE_ADD_DTM", setParam[3]);
		setMap.setValue("TMP_PAY_PRC_NO", setParam[4]);
		setMap.setValue("OPMS_KOJIHI_TANKA_APLY_YMD", setParam[5]);
		setMap.setValue("KOJIHI_TANKA_NM", setParam[6]);
		setMap.setValue("KOJI_KOSYU_TANI_NM", setParam[7]);
		setMap.setValue("KJ_ATTKJ_TANKA_TUJYO", setParam[8]);
		setMap.setValue("KJ_ATTKJ_TANKA_HLDY", setParam[9]);
		setMap.setValue("KJ_ATTKJ_TANKA_MNGT", setParam[10]);
		setMap.setValue("KJ_TKKJ_TANKA_TUJYO", setParam[11]);
		setMap.setValue("KJ_TKKJ_TANKA_HLDY", setParam[12]);
		setMap.setValue("KJ_TKKJ_TANKA_MNGT", setParam[13]);
		setMap.setValue("KJ_KOJIHI_CUST_FTN_AMNT", setParam[14]);
		setMap.setValue("KJ_KOJIHI_PRC_ICRT_FLG", setParam[15]);
		setMap.setValue("KOJI_WRKITEM_BIKO", setParam[16]);
		setMap.setValue("RSV_APLY_YMD", setParam[17]);
		setMap.setValue("KOJI_WORK_KMK_TSTAYMD", setParam[18]);
		setMap.setValue("KOJI_WORK_KMK_TENDYMD", setParam[19]);
		setMap.setValue("ADD_DTM", setParam[20]);
		setMap.setValue("ADD_OPEACNT", setParam[21]);
		setMap.setValue("UPD_DTM", setParam[22]);
		setMap.setValue("UPD_OPEACNT", setParam[23]);
		setMap.setValue("DEL_DTM", setParam[24]);
		setMap.setValue("DEL_OPEACNT", setParam[25]);
		setMap.setValue("MK_FLG", setParam[26]);
		setMap.setValue("ADD_UNYO_YMD", setParam[27]);
		setMap.setValue("ADD_TRN_ID", setParam[28]);
		setMap.setValue("UPD_UNYO_YMD", setParam[29]);
		setMap.setValue("UPD_TRN_ID", setParam[30]);
		setMap.setValue("DEL_UNYO_YMD", setParam[31]);
		setMap.setValue("DEL_TRN_ID", setParam[32]);
	
		// DBアクセスを実行します
		db_KU_M_KOJI_WRKITEM.insertByPrimaryKeys(setMap);
	}

	/**
	 * 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 executeKU_M_KOJI_WRKITEM_KU_SELECT_002(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_M_KOJI_WRKITEM.selectBySqlDefine(paramList, KU_M_KOJI_WRKITEM_KU_SELECT_002);
	}

	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	ＯＰＭＳ工事費単価適用年月日				OPMS_KOJIHI_TANKA_APLY_YMD
	 *		 	工事費単価名				KOJIHI_TANKA_NM
	 *		 	工事工種単位名				KOJI_KOSYU_TANI_NM
	 *		 	工事用取付工事単価（通常）				KJ_ATTKJ_TANKA_TUJYO
	 *		 	工事用取付工事単価（休日）				KJ_ATTKJ_TANKA_HLDY
	 *		 	工事用取付工事単価（深夜）				KJ_ATTKJ_TANKA_MNGT
	 *		 	工事用撤去工事単価（通常）				KJ_TKKJ_TANKA_TUJYO
	 *		 	工事用撤去工事単価（休日）				KJ_TKKJ_TANKA_HLDY
	 *		 	工事用撤去工事単価（深夜）				KJ_TKKJ_TANKA_MNGT
	 *		 	工事用工事費お客様負担金額				KJ_KOJIHI_CUST_FTN_AMNT
	 *		 	工事用工事費料金一律フラグ				KJ_KOJIHI_PRC_ICRT_FLG
	 *		 	工事作業項目備考				KOJI_WRKITEM_BIKO
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	KOJIHI_KOJI_BUNRUI_CD
	 *		 	KOJIHI_KMK_CD
	 *		 	KOJIHI_TANKA_CD
	 *		 	GENE_ADD_DTM
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKU_M_KOJI_WRKITEM_PKUPDATE(Object[] setParam, Object[] whereParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("OPMS_KOJIHI_TANKA_APLY_YMD", setParam[0]);
		setMap.setValue("KOJIHI_TANKA_NM", setParam[1]);
		setMap.setValue("KOJI_KOSYU_TANI_NM", setParam[2]);
		setMap.setValue("KJ_ATTKJ_TANKA_TUJYO", setParam[3]);
		setMap.setValue("KJ_ATTKJ_TANKA_HLDY", setParam[4]);
		setMap.setValue("KJ_ATTKJ_TANKA_MNGT", setParam[5]);
		setMap.setValue("KJ_TKKJ_TANKA_TUJYO", setParam[6]);
		setMap.setValue("KJ_TKKJ_TANKA_HLDY", setParam[7]);
		setMap.setValue("KJ_TKKJ_TANKA_MNGT", setParam[8]);
		setMap.setValue("KJ_KOJIHI_CUST_FTN_AMNT", setParam[9]);
		setMap.setValue("KJ_KOJIHI_PRC_ICRT_FLG", setParam[10]);
		setMap.setValue("KOJI_WRKITEM_BIKO", setParam[11]);
	
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("KOJIHI_KOJI_BUNRUI_CD", whereParam[0]);
		whereMap.setValue("KOJIHI_KMK_CD", whereParam[1]);
		whereMap.setValue("KOJIHI_TANKA_CD", whereParam[2]);
		whereMap.setValue("GENE_ADD_DTM", whereParam[3]);

		// DBアクセスを実行します
		db_KU_M_KOJI_WRKITEM.updateByPrimaryKeys(whereMap, setMap);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/

	/**▼▼▼▼▼▼業務チームで作成したメソッドです 開始▼▼▼▼▼▼*/

	/**
	 * 工事作業項目への更新を行います。
	 * @param inMap 連携データ
	 * @throws Exception
	 */
	private void updateKojiSgyo(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		// 更新フラグ
		boolean ksnflg = false;

		//更新データ
		Object[] setParam = new Object[12];
		
		// 工事分類コード
		String kojibnricd = inMap.getString(JBSbatKU_M_KOJI_WRKITEM.KOJIHI_KOJI_BUNRUI_CD);

		// 工事費項目コード
		String kojikmkcd = inMap.getString(JBSbatKU_M_KOJI_WRKITEM.KOJIHI_KMK_CD);

		// 工事費単価コード
		String kojtnkcd = inMap.getString(JBSbatKU_M_KOJI_WRKITEM.KOJIHI_TANKA_CD);
		
		// WK工事費単価適用日
		String wkkojtnktkymd = "";
		if (JKUBatCommon.isNotNull(inMap.getString(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.OPMS_KOJIHI_TANKA_APLY_YMD)))
		{
			wkkojtnktkymd = inMap.getString(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.OPMS_KOJIHI_TANKA_APLY_YMD);
		}
		setParam[0] = wkkojtnktkymd;
		
		// 工事費単価適用日
		String kojtnktkymd = "";
		if (JKUBatCommon.isNotNull(inMap.getString(JBSbatKU_M_KOJI_WRKITEM.OPMS_KOJIHI_TANKA_APLY_YMD)))
		{
			kojtnktkymd = inMap.getString(JBSbatKU_M_KOJI_WRKITEM.OPMS_KOJIHI_TANKA_APLY_YMD);
		}
		// WKと比較
		if (!wkkojtnktkymd.equals(kojtnktkymd))
		{
			ksnflg = true;
		}
		
		// WK工事費単価名
		String wkkojitnknm = "";
		if (JKUBatCommon.isNotNull(inMap.getString(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KOJIHI_TANKA_NM)))
		{
			wkkojitnknm = inMap.getString(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KOJIHI_TANKA_NM);
		}
		setParam[1] = wkkojitnknm;

		// 工事費単価名
		String kojitnknm = "";
		if (JKUBatCommon.isNotNull(inMap.getString(JBSbatKU_M_KOJI_WRKITEM.KOJIHI_TANKA_NM)))
		{
			kojitnknm = inMap.getString(JBSbatKU_M_KOJI_WRKITEM.KOJIHI_TANKA_NM);
		}
		// WKと比較
		if (!wkkojitnknm.equals(kojitnknm))
		{
			ksnflg = true;
		}
		
		// WK工事単位
		String wkkojitni = "";
		if (JKUBatCommon.isNotNull(inMap.getString(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KOJI_KOSYU_TANI_NM)))
		{
			wkkojitni = inMap.getString(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KOJI_KOSYU_TANI_NM);
		}
		setParam[2] = wkkojitni;

		// 工事単位
		String kojitni = "";
		if (JKUBatCommon.isNotNull(inMap.getString(JBSbatKU_M_KOJI_WRKITEM.KOJI_KOSYU_TANI_NM)))
		{
			kojitni = inMap.getString(JBSbatKU_M_KOJI_WRKITEM.KOJI_KOSYU_TANI_NM);
		}
		// WKと比較
		if (!wkkojitni.equals(kojitni))
		{
			ksnflg = true;
		}

		// WK工事取付単価＿通常
		String wkkojitrttnk_tujyo = "";
		if (JKUBatCommon.isNotNull(inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_ATTKJ_TANKA_TUJYO)))
		{
			wkkojitrttnk_tujyo = inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_ATTKJ_TANKA_TUJYO).toString();
		}
		setParam[3] = wkkojitrttnk_tujyo;

		// 工事取付単価＿通常
		String kojitrttnk_tujyo = ""; 
		if (JKUBatCommon.isNotNull(inMap.get(JBSbatKU_M_KOJI_WRKITEM.KJ_ATTKJ_TANKA_TUJYO)))
		{
			kojitrttnk_tujyo = inMap.get(JBSbatKU_M_KOJI_WRKITEM.KJ_ATTKJ_TANKA_TUJYO).toString();
		}
		// WKと比較
		if (!wkkojitrttnk_tujyo.equals(kojitrttnk_tujyo))
		{
			ksnflg = true;
		}
		
		// WK工事取付単価＿休日
		String wkkojitrttnk_hldy = "";
		if (JKUBatCommon.isNotNull(inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_ATTKJ_TANKA_HLDY)))
		{
			wkkojitrttnk_hldy = inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_ATTKJ_TANKA_HLDY).toString();
		}
		setParam[4] = wkkojitrttnk_hldy;

		// 工事取付単価＿休日
		String kojitrttnk_hldy = ""; 
		if (JKUBatCommon.isNotNull(inMap.get(JBSbatKU_M_KOJI_WRKITEM.KJ_ATTKJ_TANKA_HLDY)))
		{
			kojitrttnk_hldy = inMap.get(JBSbatKU_M_KOJI_WRKITEM.KJ_ATTKJ_TANKA_HLDY).toString();
		}
		// WKと比較
		if (!wkkojitrttnk_hldy.equals(kojitrttnk_hldy))
		{
			ksnflg = true;
		}
		
		// WK工事取付単価＿深夜
		String wkkojitrttnk_mngt = "";
		if (JKUBatCommon.isNotNull(inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_ATTKJ_TANKA_MNGT)))
		{
			wkkojitrttnk_mngt = inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_ATTKJ_TANKA_MNGT).toString();
		}
		setParam[5] = wkkojitrttnk_mngt;
		
		// 工事取付単価＿深夜
		String kojitrttnk_mngt = "";
		if (JKUBatCommon.isNotNull(inMap.get(JBSbatKU_M_KOJI_WRKITEM.KJ_ATTKJ_TANKA_MNGT)))
		{
			kojitrttnk_mngt = inMap.get(JBSbatKU_M_KOJI_WRKITEM.KJ_ATTKJ_TANKA_MNGT).toString();
		}
		// WKと比較
		if (!wkkojitrttnk_mngt.equals(kojitrttnk_mngt))
		{
			ksnflg = true;
		}
		
		// WK工事撤去単価＿通常
		String wkkojitkktnk_tujyo = "";
		if (JKUBatCommon.isNotNull(inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_TKKJ_TANKA_TUJYO)))
		{
			wkkojitkktnk_tujyo = inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_TKKJ_TANKA_TUJYO).toString();
		}
		setParam[6] = wkkojitkktnk_tujyo;

		// 工事撤去単価＿通常
		String kojitkktnk_tujyo = "";
		if (JKUBatCommon.isNotNull(inMap.get(JBSbatKU_M_KOJI_WRKITEM.KJ_TKKJ_TANKA_TUJYO)))
		{
			kojitkktnk_tujyo = inMap.get(JBSbatKU_M_KOJI_WRKITEM.KJ_TKKJ_TANKA_TUJYO).toString();
		}
		// WKと比較
		if (!wkkojitkktnk_tujyo.equals(kojitkktnk_tujyo))
		{
			ksnflg = true;
		}
		
		// WK工事撤去単価＿休日
		String wkkojitkktnk_hldy = "";
		if (JKUBatCommon.isNotNull(inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_TKKJ_TANKA_HLDY)))
		{
			wkkojitkktnk_hldy = inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_TKKJ_TANKA_HLDY).toString();
		}
		setParam[7] = wkkojitkktnk_hldy;

		// 工事撤去単価＿休日
		String kojitkktnk_hldy = "";
		if (JKUBatCommon.isNotNull(inMap.get(JBSbatKU_M_KOJI_WRKITEM.KJ_TKKJ_TANKA_HLDY)))
		{
			kojitkktnk_hldy = inMap.get(JBSbatKU_M_KOJI_WRKITEM.KJ_TKKJ_TANKA_HLDY).toString();
		}
		// WKと比較
		if (!wkkojitkktnk_hldy.equals(kojitkktnk_hldy))
		{
			ksnflg = true;
		}
		
		// WK工事撤去単価＿深夜
		String wkkojitkktnk_mngt = "";
		if (JKUBatCommon.isNotNull(inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_TKKJ_TANKA_MNGT)))
		{
			wkkojitkktnk_mngt = inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_TKKJ_TANKA_MNGT).toString();
		}
		setParam[8] = wkkojitkktnk_mngt;

		// 工事撤去単価＿深夜
		String kojitkktnk_mngt = "";
		if (JKUBatCommon.isNotNull(inMap.get(JBSbatKU_M_KOJI_WRKITEM.KJ_TKKJ_TANKA_MNGT)))
		{
			kojitkktnk_mngt = inMap.get(JBSbatKU_M_KOJI_WRKITEM.KJ_TKKJ_TANKA_MNGT).toString();
		}
		// WKと比較
		if (!wkkojitkktnk_mngt.equals(kojitkktnk_mngt))
		{
			ksnflg = true;
		}
		
		// WK工事費お客さま負担額
		String wkkojicustftn = "";
		if (JKUBatCommon.isNotNull(inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_KOJIHI_CUST_FTN_AMNT)))
		{
			wkkojicustftn = inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_KOJIHI_CUST_FTN_AMNT).toString();
		}
		setParam[9] = wkkojicustftn;

		// 工事費お客さま負担額
		String kojicustftn = "";
		if (JKUBatCommon.isNotNull(inMap.get(JBSbatKU_M_KOJI_WRKITEM.KJ_KOJIHI_CUST_FTN_AMNT)))
		{
			kojicustftn = inMap.get(JBSbatKU_M_KOJI_WRKITEM.KJ_KOJIHI_CUST_FTN_AMNT).toString();
		}
		// WKと比較
		if (!wkkojicustftn.equals(kojicustftn))
		{
			ksnflg = true;
		}
		
		// WK工事費料金一律フラグ
		String wkkojiicrtflg = "";
		if (JKUBatCommon.isNotNull(inMap.getString(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_KOJIHI_PRC_ICRT_FLG)))
		{
			wkkojiicrtflg = inMap.getString(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_KOJIHI_PRC_ICRT_FLG);
		}
		setParam[10] = wkkojiicrtflg;

		// 工事費料金一律フラグ
		String kojiicrtflg = "";
		if (JKUBatCommon.isNotNull(inMap.getString(JBSbatKU_M_KOJI_WRKITEM.KJ_KOJIHI_PRC_ICRT_FLG)))
		{
			kojiicrtflg = inMap.getString(JBSbatKU_M_KOJI_WRKITEM.KJ_KOJIHI_PRC_ICRT_FLG);
		}
		// WKと比較
		if (!wkkojiicrtflg.equals(kojiicrtflg))
		{
			ksnflg = true;
		}
		
		// WK備考
		String wkkojibiko = "";
		if (JKUBatCommon.isNotNull(inMap.getString(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KOJI_WRKITEM_BIKO)))
		{
			wkkojibiko = inMap.getString(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KOJI_WRKITEM_BIKO);
		}
		setParam[11] = wkkojibiko;

		// 備考
		String kojibiko = "";
		if (JKUBatCommon.isNotNull(inMap.getString(JBSbatKU_M_KOJI_WRKITEM.KOJI_WRKITEM_BIKO)))
		{
			kojibiko = inMap.getString(JBSbatKU_M_KOJI_WRKITEM.KOJI_WRKITEM_BIKO);
		}
		// WKと比較
		if (!wkkojibiko.equals(kojibiko))
		{
			ksnflg = true;
		}
		
		if (ksnflg)
		{
			// 検索処理に渡すパラメタを設定
			Object[] whereParam = new Object[4];
			whereParam[0] = kojibnricd;
			whereParam[1] = kojikmkcd;
			whereParam[2] = kojtnkcd;

			// 工事案件検索
			this.executeKU_M_KOJI_WRKITEM_KU_SELECT_002(whereParam);
			JBSbatCommonDBInterface ku0131Map = db_KU_M_KOJI_WRKITEM.selectNext();
			
			while (null != ku0131Map) 
			{
				// 世代分更新を行う
				whereParam[3] = ku0131Map.getValue(JBSbatKU_M_KOJI_WRKITEM.GENE_ADD_DTM);
				executeKU_M_KOJI_WRKITEM_PKUPDATE(setParam, whereParam);
				ku0131Map = db_KU_M_KOJI_WRKITEM.selectNext();
			}
			setParam = null;
			whereParam = null;
		}
	}

	/**
	 * 工事作業項目への登録を行います。
	 * @param inMap 連携データ
	 * @return 出力共通電文
	 * @throws Exception
	 */
	private JBSbatServiceInterfaceMap insertKojiSgyo(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		// 登録データ
		Object[] setParam = new Object[33];

		// 工事分類コード
		String kojibnricd = inMap.getString(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KOJIHI_KOJI_BUNRUI_CD);
		setParam[0] = kojibnricd;

		// 工事費項目コード
		setParam[1] = inMap.getString(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KOJIHI_KMK_CD);

		// 工事費単価コード
		setParam[2] = inMap.getString(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KOJIHI_TANKA_CD);

		// 世代登録年月日時分秒
		setParam[3] = JCCBatCommon.getSysDateTimeStamp();

		// 工事費単価適用日
		setParam[5] = inMap.getString(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.OPMS_KOJIHI_TANKA_APLY_YMD);

		// 工事費単価名
		setParam[6] = inMap.getString(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KOJIHI_TANKA_NM);

		// 工事単位
		setParam[7] = inMap.getString(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KOJI_KOSYU_TANI_NM);

		// 工事取付単価＿通常
		if (JKUBatCommon.isNotNull(inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_ATTKJ_TANKA_TUJYO)))
		{
			setParam[8] = inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_ATTKJ_TANKA_TUJYO).toString();
		}

		// 工事取付単価＿休日
		if (JKUBatCommon.isNotNull(inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_ATTKJ_TANKA_HLDY)))
		{
			setParam[9] = inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_ATTKJ_TANKA_HLDY).toString();
		}

		// 工事取付単価＿深夜
		if (JKUBatCommon.isNotNull(inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_ATTKJ_TANKA_MNGT)))
		{
			setParam[10] = inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_ATTKJ_TANKA_MNGT).toString();
		}

		// 工事撤去単価＿通常
		if (JKUBatCommon.isNotNull(inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_TKKJ_TANKA_TUJYO)))
		{
			setParam[11] = inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_TKKJ_TANKA_TUJYO).toString();
		}

		// 工事撤去単価＿休日
		if (JKUBatCommon.isNotNull(inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_TKKJ_TANKA_HLDY)))
		{
			setParam[12] = inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_TKKJ_TANKA_HLDY).toString();
		}

		// 工事撤去単価＿深夜
		if (JKUBatCommon.isNotNull(inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_TKKJ_TANKA_MNGT)))
		{
			setParam[13] = inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_TKKJ_TANKA_MNGT).toString();
		}
		
		// 工事費お客さま負担額
		if (JKUBatCommon.isNotNull(inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_KOJIHI_CUST_FTN_AMNT)))
		{
			setParam[14] = inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_KOJIHI_CUST_FTN_AMNT).toString();
		}

		// 工事費料金一律フラグ
		setParam[15] = inMap.getString(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_KOJIHI_PRC_ICRT_FLG);

		// 備考
		setParam[16] = inMap.getString(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KOJI_WRKITEM_BIKO);

		// 予約適用年月日
		setParam[17] = JKUStrConst.MAX_YMD;

		// 工事作業項目適用開始年月日
		setParam[18] = DEFAULT_TSTA_YMD;

		// 工事作業項目適用終了年月日
		setParam[19] = JKUStrConst.MAX_YMD;

		// 工事作業項目登録
		this.executeKU_M_KOJI_WRKITEM_PKINSERT(setParam);
		
		
		// 出力電文
		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();
		
		// 出力フラグを設定
		outMap.setOutFlg(true);	

		// 処理件数を取得
		trnCnt = trnCnt + 1;
		// 処理件数を格納
		String koban = String.valueOf(trnCnt);

		// 項番
		outMap.setString(JBSbatKUIFE059.KOBAN, koban);
		
		// 工事分類名
		if (kojibnricd.equals(JKUStrConst.CD01411_EOH_TNKJ))
		{
			outMap.setString(JBSbatKUIFE059.KOJI_BUNRUI_NM, JKUStrConst.KJHNM_EOH_TNKJ);
		} 
		else if (kojibnricd.equals(JKUStrConst.CD01411_DOJK_KJ))
		{
			outMap.setString(JBSbatKUIFE059.KOJI_BUNRUI_NM, JKUStrConst.KJHNM_DOJK_KJ);
		} 
		else
		{
			outMap.setString(JBSbatKUIFE059.KOJI_BUNRUI_NM, "");
		}
		
		// 工事費項目コード
		outMap.setString(JBSbatKUIFE059.KOJIHI_KMK_CD, inMap.getString(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KOJIHI_KMK_CD));
		
		// 工事費単価コード
		outMap.setString(JBSbatKUIFE059.KOJIHI_TANKA_CD, inMap.getString(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KOJIHI_TANKA_CD));
		
		// 工事費単価名
		outMap.setString(JBSbatKUIFE059.KOJIHI_TANKA_NM, JKUBatCommon.splitString(inMap.getString(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KOJIHI_TANKA_NM), 100, true)[0]);

		// 工事費お客さま負担額
		if (JKUBatCommon.isNotNull(inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_KOJIHI_CUST_FTN_AMNT)))
		{
			outMap.set(JBSbatKUIFE059.KOJIHI_CUST_FTN_AMNT, inMap.get(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KJ_KOJIHI_CUST_FTN_AMNT).toString());
		}
		else
		{
			outMap.set(JBSbatKUIFE059.KOJIHI_CUST_FTN_AMNT,"");
		}
		// 工事費備考
		outMap.setString(JBSbatKUIFE059.KOJIHI_BIKO, JKUBatCommon.splitString(inMap.getString(HEAD_MOJI_WK + JBSbatKU_M_KOJI_WRKITEM.KOJI_WRKITEM_BIKO), 70, true)[0]);

		// エラー内容
		String messageStr = JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EKUB0570AI);
		outMap.setString(JBSbatKUIFE059.ERR_MEMO, JKUBatCommon.splitString(messageStr, 70, true)[0]);

		return outMap;
	}

	/**
	 * 工事作業項目への削除処理を行います。
	 * @param inMap 連携データ
	 * @return 出力共通電文
	 * @throws Exception
	 */
	private JBSbatServiceInterfaceMap deleteKojiSgyo(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		// 出力電文
		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();
		
		// 出力フラグを設定
		outMap.setOutFlg(true);	

		// 処理件数を取得
		trnCnt = trnCnt + 1;
		// 処理件数を格納
		String koban = String.valueOf(trnCnt);

		// 項番
		outMap.setString(JBSbatKUIFE059.KOBAN, koban);
		
		// 工事分類名
		String kojibnricd = inMap.getString(JBSbatKU_M_KOJI_WRKITEM.KOJIHI_KOJI_BUNRUI_CD);
		if (kojibnricd.equals(JKUStrConst.CD01411_EOH_TNKJ))
		{
			outMap.setString(JBSbatKUIFE059.KOJI_BUNRUI_NM, JKUStrConst.KJHNM_EOH_TNKJ);
		} 
		else if (kojibnricd.equals(JKUStrConst.CD01411_DOJK_KJ))
		{
			outMap.setString(JBSbatKUIFE059.KOJI_BUNRUI_NM, JKUStrConst.KJHNM_DOJK_KJ);
		} 
		else
		{
			outMap.setString(JBSbatKUIFE059.KOJI_BUNRUI_NM, "");
		}
		
		// 工事費項目コード
		outMap.setString(JBSbatKUIFE059.KOJIHI_KMK_CD, inMap.getString(JBSbatKU_M_KOJI_WRKITEM.KOJIHI_KMK_CD));
		
		// 工事費単価コード
		outMap.setString(JBSbatKUIFE059.KOJIHI_TANKA_CD, inMap.getString(JBSbatKU_M_KOJI_WRKITEM.KOJIHI_TANKA_CD));
		
		// 工事費単価名
		outMap.setString(JBSbatKUIFE059.KOJIHI_TANKA_NM, JKUBatCommon.splitString(inMap.getString(JBSbatKU_M_KOJI_WRKITEM.KOJIHI_TANKA_NM), 100, true)[0]);

		// 工事費お客さま負担額
		outMap.set(JBSbatKUIFE059.KOJIHI_CUST_FTN_AMNT, inMap.get(JBSbatKU_M_KOJI_WRKITEM.KJ_KOJIHI_CUST_FTN_AMNT).toString());

		// 工事費備考
		outMap.setString(JBSbatKUIFE059.KOJIHI_BIKO, JKUBatCommon.splitString(inMap.getString(JBSbatKU_M_KOJI_WRKITEM.KOJI_WRKITEM_BIKO), 70, true)[0]);

		// エラー内容
		outMap.setString(JBSbatKUIFE059.ERR_MEMO, JKUBatCommon.splitString(JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EKUB0580AI), 70, true)[0]);

		return outMap;
	}
	/**▲▲▲▲▲▲業務チームで作成したメソッドです 終了▲▲▲▲▲▲*/

}

