/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom					 *
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatDKShkaFinAdd
*	ソースファイル名	：JBSbatDKShkaFinAdd.java
*	作成者				：富士通　
*	作成日				：2011年06月03日
*＜機能概要＞
*　出荷完了登録部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/06/03   富士通		新規作成
*	v5.00.00	2013/10/17   FJ)鄭		OM-2013-0003425 機器出荷完了更新バッチ送信（DKIFE033）の出力処理を修正
*	v10.00.00	2014/09/25   FJ)横田	ANK-2169-00-00  出荷完了取込上限を超えた場合にアラームを鳴動させる
*	v10.00.00	2014/10/22   FJ)窪田	OM-2014-0003452 STB交換の場合にサービス契約内訳番号から上位機器型番/製番を設定する
*	v13.00.00	2015/02/26   FJ)舩橋	ANK-2371-00-00  ＶＤＳＬ・イーサネット方式のお客様アンケートへの顧客特定バーコードシール対応
*********************************************************************/
package eo.business.service;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.common.JDKBatCommon;
import eo.business.common.JDKBatOutputFileUtil;
import eo.business.util.file.JBSbatDKIFM007;
import eo.business.util.file.JBSbatDKIFM008;
import eo.business.util.file.JBSbatDKIFM077;
import eo.business.util.file.JBSbatDKIFM078;
import eo.common.constant.JDKStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.common.constant.JZM0171Constant;
import eo.common.constant.JACStrConst;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.file.JBSbatDefFileUtil;
import eo.framework.file.JBSbatOutputFileUtil;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.log.JBSbatLogPrintControl;
import eo.framework.util.JBSbatAplConst;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatDKShkaFinAdd extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(バッチ処理条件)*/
	private static final String D_TBL_NAME_DK_M_BAT_TRN_JOKEN = "DK_M_BAT_TRN_JOKEN";

	/** テーブル(コード名称管理)*/
	private static final String D_TBL_NAME_ZM_M_CD_NM_KANRI = "ZM_M_CD_NM_KANRI";

	/** テーブル(出荷完了依頼)*/
	private static final String D_TBL_NAME_DK_T_SHKA_FIN_REQ = "DK_T_SHKA_FIN_REQ";

	/** テーブル(出荷完了明細)*/
	private static final String D_TBL_NAME_DK_T_SHKA_FIN_DTL = "DK_T_SHKA_FIN_DTL";

	/** テーブル(配送)*/
	private static final String D_TBL_NAME_DK_T_HAISO = "DK_T_HAISO";

	/** テーブル(配送対象物品)*/
	private static final String D_TBL_NAME_DK_T_HAISO_TG_BPIN = "DK_T_HAISO_TG_BPIN";

	/** テーブル(機器提供サービス契約)*/
	private static final String D_TBL_NAME_KK_T_KKTK_SVC_KEI = "KK_T_KKTK_SVC_KEI";

	/** テーブル(課金先)*/
	private static final String D_TBL_NAME_KK_T_KAKINS = "KK_T_KAKINS";

	/** テーブル(請求契約)*/
	private static final String D_TBL_NAME_KK_T_SEIKY_KEI = "KK_T_SEIKY_KEI";

	/** テーブル(バッチ用宅内機器ワーク)*/
	private static final String D_TBL_NAME_DK_T_BAT_TKKIKI_WK = "DK_T_BAT_TKKIKI_WK";

	/** テーブル(宅内機器型式)*/
	private static final String D_TBL_NAME_ZM_M_TAKNKIKI_MODEL = "ZM_M_TAKNKIKI_MODEL";

	/** テーブル(セット品構成)*/
	private static final String D_TBL_NAME_ZM_M_SETHN_KOSE = "ZM_M_SETHN_KOSE";

	/** テーブル(料金コース)*/
	private static final String D_TBL_NAME_KK_M_PCRS = "KK_M_PCRS";

	/** テーブル(返品機器)*/
	private static final String D_TBL_NAME_DK_T_HMPIN_KIKI = "DK_T_HMPIN_KIKI";

	/** テーブル(出荷完了エラー)*/
	private static final String D_TBL_NAME_DK_T_SHKA_FIN_ERR = "DK_T_SHKA_FIN_ERR";

	/** テーブル(サービス契約排他制御)*/
	private static final String D_TBL_NAME_KK_T_SVKEI_EXC_CTRL = "KK_T_SVKEI_EXC_CTRL";

	/** テーブル(サービス契約)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";

	/** テーブル(バッチ用宅内機器物流在庫ワーク)*/
	private static final String D_TBL_NAME_DK_T_BAT_TKKBRZK_WK = "DK_T_BAT_TKKBRZK_WK";

	/** テーブル(サービス契約＜ｅｏモバイル＞)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI_EOMOBA = "KK_T_SVC_KEI_EOMOBA";

	/** テーブル(サービス契約内訳＜ｅｏモバイル＞)*/
	private static final String D_TBL_NAME_KK_T_SVKEIUW_EOMOBA = "KK_T_SVKEIUW_EOMOBA";

	/** テーブル(サービス契約内訳)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI_UCWK = "KK_T_SVC_KEI_UCWK";

	/** テーブル(進捗)*/
	private static final String D_TBL_NAME_KK_T_PRG = "KK_T_PRG";

	/** テーブル(ＳＯＤ業務管理)*/
	private static final String D_TBL_NAME_SC_T_SOD_WORK_KANRI = "SC_T_SOD_WORK_KANRI";

	/** テーブル(出荷指図（基本情報）)*/
	private static final String D_TBL_NAME_DK_T_SHKA_KIHON_INFO = "DK_T_SHKA_KIHON_INFO";

	/** SQL定義キー(DK_SELECT_001)*/
	private static final String DK_M_BAT_TRN_JOKEN_DK_SELECT_001 = "DK_SELECT_001";

	/** SQL定義キー(DK_SELECT_001)*/
	private static final String ZM_M_CD_NM_KANRI_DK_SELECT_001 = "DK_SELECT_001";

	/** SQL定義キー(DK_SELECT_001)*/
	private static final String DK_T_SHKA_FIN_REQ_DK_SELECT_001 = "DK_SELECT_001";

	/** SQL定義キー(DK_SELECT_001)*/
	private static final String DK_T_SHKA_FIN_DTL_DK_SELECT_001 = "DK_SELECT_001";

	/** SQL定義キー(DK_SELECT_006)*/
	private static final String DK_T_HAISO_DK_SELECT_006 = "DK_SELECT_006";

	/** SQL定義キー(DK_SELECT_001)*/
	private static final String KK_T_KKTK_SVC_KEI_DK_SELECT_001 = "DK_SELECT_001";

	/** SQL定義キー(DK_SELECT_001)*/
	private static final String KK_T_KAKINS_DK_SELECT_001 = "DK_SELECT_001";

	/** SQL定義キー(DK_SELECT_002)*/
	private static final String KK_T_KAKINS_DK_SELECT_002 = "DK_SELECT_002";

	/** SQL定義キー(DK_SELECT_001)*/
	private static final String KK_T_SEIKY_KEI_DK_SELECT_001 = "DK_SELECT_001";

	/** SQL定義キー(DK_SELECT_002)*/
	private static final String DK_T_BAT_TKKIKI_WK_DK_SELECT_002 = "DK_SELECT_002";

	/** SQL定義キー(DK_SELECT_002)*/
	private static final String ZM_M_TAKNKIKI_MODEL_DK_SELECT_002 = "DK_SELECT_002";

	/** SQL定義キー(DK_SELECT_001)*/
	private static final String ZM_M_SETHN_KOSE_DK_SELECT_001 = "DK_SELECT_001";

	/** SQL定義キー(DK_SELECT_001)*/
	private static final String KK_M_PCRS_DK_SELECT_001 = "DK_SELECT_001";

	/** SQL定義キー(DK_UPDATE_001)*/
	private static final String KK_T_KKTK_SVC_KEI_DK_UPDATE_001 = "DK_UPDATE_001";

	/** SQL定義キー(DK_SELECT_010)*/
	//private static final String DK_T_HAISO_DK_SELECT_010 = "DK_SELECT_010";

	/** SQL定義キー(DK_SELECT_007)*/
	//private static final String DK_T_HMPIN_KIKI_DK_SELECT_007 = "DK_SELECT_007";

	/** SQL定義キー(DK_SELECT_001)*/
	private static final String KK_T_SVKEI_EXC_CTRL_DK_SELECT_001 = "DK_SELECT_001";

	/** SQL定義キー(DK_SELECT_001)*/
	private static final String KK_T_SVC_KEI_DK_SELECT_001 = "DK_SELECT_001";

	/** SQL定義キー(DK_SELECT_001)*/
	private static final String DK_T_BAT_TKKBRZK_WK_DK_SELECT_001 = "DK_SELECT_001";

	/** SQL定義キー(DK_SELECT_001)*/
	private static final String KK_T_SVC_KEI_EOMOBA_DK_SELECT_001 = "DK_SELECT_001";

	/** SQL定義キー(DK_SELECT_001)*/
	private static final String KK_T_SVKEIUW_EOMOBA_DK_SELECT_001 = "DK_SELECT_001";

	/** SQL定義キー(DK_SELECT_001)*/
	private static final String KK_T_SVC_KEI_UCWK_DK_SELECT_001 = "DK_SELECT_001";

	/** SQL定義キー(DK_SELECT_001)*/
	private static final String SC_T_SOD_WORK_KANRI_DK_SELECT_001 = "DK_SELECT_001";

	/** SQL定義キー(DK_SELECT_004)*/
	private static final String DK_T_SHKA_KIHON_INFO_DK_SELECT_004 = "DK_SELECT_004";

	/** SQL定義キー(DK_SELECT_009)*/
	private static final String DK_T_HMPIN_KIKI_DK_SELECT_009 = "DK_SELECT_009";

	/** SQL定義キー(DK_SELECT_017)*/
	private static final String KK_T_KKTK_SVC_KEI_DK_SELECT_017 = "DK_SELECT_017";

	/** テーブルアクセスクラス(バッチ処理条件)*/
	private JBSbatSQLAccess db_DK_M_BAT_TRN_JOKEN = null;

	/** テーブルアクセスクラス(コード名称管理)*/
	private JBSbatSQLAccess db_ZM_M_CD_NM_KANRI = null;

	/** テーブルアクセスクラス(出荷完了依頼)*/
	private JBSbatSQLAccess db_DK_T_SHKA_FIN_REQ = null;

	/** テーブルアクセスクラス(出荷完了明細)*/
	private JBSbatSQLAccess db_DK_T_SHKA_FIN_DTL = null;

	/** テーブルアクセスクラス(配送)*/
	private JBSbatSQLAccess db_DK_T_HAISO = null;

	/** テーブルアクセスクラス(配送対象物品)*/
	private JBSbatSQLAccess db_DK_T_HAISO_TG_BPIN = null;

	/** テーブルアクセスクラス(機器提供サービス契約)*/
	private JBSbatSQLAccess db_KK_T_KKTK_SVC_KEI = null;

	/** テーブルアクセスクラス(課金先)*/
	private JBSbatSQLAccess db_KK_T_KAKINS = null;

	/** テーブルアクセスクラス(請求契約)*/
	private JBSbatSQLAccess db_KK_T_SEIKY_KEI = null;

	/** テーブルアクセスクラス(バッチ用宅内機器ワーク)*/
	private JBSbatSQLAccess db_DK_T_BAT_TKKIKI_WK = null;

	/** テーブルアクセスクラス(宅内機器型式)*/
	private JBSbatSQLAccess db_ZM_M_TAKNKIKI_MODEL = null;

	/** テーブルアクセスクラス(セット品構成)*/
	private JBSbatSQLAccess db_ZM_M_SETHN_KOSE = null;

	/** テーブルアクセスクラス(料金コース)*/
	private JBSbatSQLAccess db_KK_M_PCRS = null;

	/** テーブルアクセスクラス(返品機器)*/
	private JBSbatSQLAccess db_DK_T_HMPIN_KIKI = null;

	/** テーブルアクセスクラス(出荷完了エラー)*/
	private JBSbatSQLAccess db_DK_T_SHKA_FIN_ERR = null;

	/** テーブルアクセスクラス(サービス契約排他制御)*/
	private JBSbatSQLAccess db_KK_T_SVKEI_EXC_CTRL = null;

	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;

	/** テーブルアクセスクラス(バッチ用宅内機器物流在庫ワーク)*/
	private JBSbatSQLAccess db_DK_T_BAT_TKKBRZK_WK = null;

	/** テーブルアクセスクラス(サービス契約＜ｅｏモバイル＞)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI_EOMOBA = null;

	/** テーブルアクセスクラス(サービス契約内訳＜ｅｏモバイル＞)*/
	private JBSbatSQLAccess db_KK_T_SVKEIUW_EOMOBA = null;

	/** テーブルアクセスクラス(サービス契約内訳)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI_UCWK = null;

	/** テーブルアクセスクラス(進捗)*/
	private JBSbatSQLAccess db_KK_T_PRG = null;

	/** テーブルアクセスクラス(ＳＯＤ業務管理)*/
	private JBSbatSQLAccess db_SC_T_SOD_WORK_KANRI = null;

	/** テーブルアクセスクラス(出荷指図（基本情報）)*/
	private JBSbatSQLAccess db_DK_T_SHKA_KIHON_INFO = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** 出力待ちデータリストの出荷完了明細データ名(出荷ロット番号機器通番)*/
	private static final String KMK_NM_SHUKKA_LOT_KIKI_SEQ = "SHUKKA_LOT_KIKI_SEQ";

	/** 出力待ちデータリストの出荷完了明細データ名(出荷完了明細の宅内機器型式コード)*/
	private static final String KMK_NM_SHKA_FIN_DTL_MODEL_CD = "SHKA_FIN_DTL_MODEL_CD";

	/** 出力待ちデータリストの出荷完了明細データ名(数量)*/
	private static final String KMK_NM_CNT = "CNT";

	/** 出力待ちデータリストの出荷完了明細データ名(サービス契約番号)*/
	private static final String KMK_NM_SVC_KEI_NO = "SVC_KEI_NO";

	/** 出力待ちデータリストの出荷完了明細データ名(伝票No)*/
	private static final String KMK_NM_DENPYO_NO = "DENPYO_NO";

	/** 出力待ちデータリストの出荷完了明細データ名(トムソンケース番号)*/
	private static final String KMK_NM_TCASE_NO = "TCASE_NO";

	/** 出力待ちデータリストの出荷完了明細データ名(配送番号)*/
	private static final String KMK_NM_HAISO_NO = "HAISO_NO";

	/** 出力待ちデータリストの出荷完了明細データ名(配送ステータス)*/
	private static final String KMK_NM_HAISO_STAT = "HAISO_STAT";

	/** 出力待ちデータリストの出荷完了明細データ名(配送先名)*/
	private static final String KMK_NM_HISOS_NM = "HISOS_NM";

	/** 出力待ちデータリストの出荷完了明細データ名(場所番号)*/
	private static final String KMK_NM_PLACE_NO = "PLACE_NO";

	/** 出力待ちデータリストの出荷完了明細データ名(物流保全番号)*/
	private static final String KMK_NM_BTRYHOZN_NO = "BTRYHOZN_NO";

	/** 出力待ちデータリストの出荷完了明細データ名(登録契機契約異動区分)*/
	private static final String KMK_NM_ADD_OPTNTY_KEI_IDO_DIV = "ADD_OPTNTY_KEI_IDO_DIV";

	/** 出力待ちデータリストの出荷完了明細データ名(登録契機契約異動年月日時分秒)*/
	private static final String KMK_NM_ADD_OPTNTY_KEI_IDO_DTM = "ADD_OPTNTY_KEI_IDO_DTM";
	
	/** 出力待ちデータリストの出荷完了明細データ名(工事会社コード)*/
	private static final String KMK_NM_KOJI_COMP_CD = "KOJI_COMP_CD";

	/** 出力待ちデータリストの出荷完了明細データ名(配送対象物品番号)*/
	private static final String KMK_NM_HAISO_TAIBPIN_NO = "HAISO_TAIBPIN_NO";

	/** 出力待ちデータリストの出荷完了明細データ名(宅内機器型式コード)*/
	private static final String KMK_NM_TAKNKIKI_MODEL_CD = "TAKNKIKI_MODEL_CD";

	/** 出力待ちデータリストの出荷完了明細データ名(機器製造番号)*/
	private static final String KMK_NM_KIKI_SEIZO_NO = "KIKI_SEIZO_NO";

	/** 出力待ちデータリストの出荷完了明細データ名(付属品型式コード)*/
	private static final String KMK_NM_HUZOKUHIN_MODEL_CD = "HUZOKUHIN_MODEL_CD";

	/** 出力待ちデータリストの出荷完了明細データ名(機器提供サービス契約番号)*/
	private static final String KMK_NM_KKTK_SVC_KEI_NO = "KKTK_SVC_KEI_NO";

	/** 出力待ちデータリストの出荷完了明細データ名(機器変更番号)*/
	private static final String KMK_NM_KIKI_CHG_NO = "KIKI_CHG_NO";
	
	/** 出力待ちデータリストの出荷完了明細データ名(サービス契約ステータス)*/
	private static final String KMK_NM_SVC_KEI_STAT = "SVC_KEI_STAT";

	/** 出力待ちデータリストの出荷完了明細データ名(機器提供種別コード)*/
	private static final String KMK_NM_KKTK_SBT_CD = "KKTK_SBT_CD";

	/** 出力待ちデータリストの出荷完了明細データ名(機器提供サービス契約番号の世代登録年月日時分秒)*/
	private static final String KMK_NM_GENE_ADD_DTM = "GENE_ADD_DTM";

	/** 出力待ちデータリストの出荷完了明細データ名(上位宅内機器型式コード)*/
	private static final String KMK_NM_JOI_TAKNKIKI_MODEL_CD = "JOI_TAKNKIKI_MODEL_CD";

	/** 出力待ちデータリストの出荷完了明細データ名(上位機器製造番号)*/
	private static final String KMK_NM_JOI_KIKI_SEIZO_NO = "JOI_KIKI_SEIZO_NO";

	/** 出力待ちデータリストの出荷完了明細データ名(宅内機器場所番号)*/
	private static final String KMK_NM_TAKNKIKI_PLACE_NO = "TAKNKIKI_PLACE_NO";
	
	/** 出力待ちデータリストの出荷完了明細データ名(倉庫コード)*/
	private static final String KMK_NM_SOKO_CD = "SOKO_CD";
	
	/** 出力待ちデータリストの出荷完了明細データ名(棚コード)*/
	private static final String KMK_NM_SHELF_CD = "SHELF_CD";

	/** 出力待ちデータリストの出荷完了明細データ名(宅内機器セット品型コード)*/
	private static final String KMK_NM_TAKNKIKI_SETHIN_MODEL_CD = "TAKNKIKI_SETHIN_MODEL_CD";
	
	/** 出力待ちデータリストの出荷完了明細データ名(配送先個別指定フラグ)*/
	private static final String KMK_NM_HISOS_KSITEI_FLG = "HISOS_KSITEI_FLG";

	/** 出力待ちデータリストの出荷完了明細データ名(宅内機器セット品番号)*/
	private static final String KMK_NM_TAKNKIKI_SETHIN_NO = "TAKNKIKI_SETHIN_NO";

	/** 出力待ちデータリストの出荷完了明細データ名(法人サービス契約受付番号)*/
	private static final String KMK_NM_HOJIN_SVC_KEI_UK_NO = "HOJIN_SVC_KEI_UK_NO";

	/** 出力待ちデータリストの出荷完了明細データ名(工事案件番号)*/
	private static final String KMK_NM_KOJIAK_NO = "KOJIAK_NO";

	/** 出力待ちデータリストの出荷完了明細データ名(サービス契約内訳番号)*/
	private static final String KMK_NM_SVC_KEI_UCWK_NO = "SVC_KEI_UCWK_NO";

	/** 出力待ちデータリストの出荷完了明細データ名(ＥＭ契約者コード)*/
	private static final String KMK_NM_EM_KEISHA_CD = "EM_KEISHA_CD";

	/** 出力待ちデータリストの出荷完了明細データ名(ＵＱ認証ＩＤ)*/
	private static final String KMK_NM_UQ_NINSHO_ID = "UQ_NINSHO_ID";

	/** 出力待ちデータリストの出荷完了明細データ名(ＵＱ認証ＩＤパスワード)*/
	private static final String KMK_NM_UQ_PWD = "UQ_PWD";

	/** 出力待ちデータリストの出荷完了明細データ名(宅内機器種別コード)*/
	private static final String KMK_NM_TAKNKIKI_SBT_CD = "TAKNKIKI_SBT_CD";
	
	/** 出力待ちデータリストの出荷完了明細データ名(チェック結果フラグ)*/
	private static final String KMK_NM_CHK_RESULT_FLG = "CHK_RESULT_FLG";

	/** 出力待ちデータリストの出荷完了明細データ名(親契約識別コード)*/
	private static final String KMK_NM_OYA_KEI_SKBT_CD = "OYA_KEI_SKBT_CD";

	/** チェック結果フラグ(チェックエラーなし)*/
	private static final String CHK_RESULT_NORMAL = "0";

	/** チェック結果フラグ(チェックエラー)*/
	private static final String CHK_RESULT_ERROR = "1";

	/** チェック結果フラグ(出荷ありエラー)*/
	private static final String CHK_RESULT_SHKA_ARI_ERROR = "2";

	/** チェック結果フラグ(サービス契約ステータス不正)*/
	private static final String CHK_RESULT_SVC_KEI_STAT_ERROR = "3";

	/** バッチ処理条件のバインド変数キー(DK_SELECT_001)*/
	private static final String[] KEY_NM_BAT_TRN_JOKEN_001 = 
		new String[] {"バッチ処理条件種別コード"};

	/** コード名称管理のバインド変数キー(DK_SELECT_001)*/
	private static final String[] KEY_NM_ZM_M_CD_NM_KANRI_001 = 
		new String[] {"コード種別コード", "コード区分"};

	/** 返品機器シーケンス名 */
	//private static final String SEQ_HMPIN_KIKI_NO = "SEQ_HMPIN_KIKI_NO";

	/** 進捗シーケンス名 */
	private static final String SEQ_PRG_NO = "SEQ_PRG_NO";

	/** 製造番号有無（有） */
	private static final String SEIZO_NO_UM_ARI = "1";

	/** 宅内機器種別コード（STB機器） */
	private static final String TAKNKIKI_SBT_CD_STB = "A0";

	/** 宅内機器種別コード（B-CASカード機器） */
	private static final String TAKNKIKI_SBT_CD_BCAS = "B0";

	/** 宅内機器種別コード（C-CASカード機器） */
	private static final String TAKNKIKI_SBT_CD_CCAS = "C0";

	/** 宅内機器種別コード（イー・モバイル機器） */
	private static final String TAKNKIKI_SBT_CD_EOMOBA = "H0";

	/** 宅内機器種別コード（UQ機器） */
	private static final String TAKNKIKI_SBT_CD_UQ = "J0";

	/** 宅内機器異動コード（STB追加） */
	private static final String TAKNKIKI_IDO_CD_STBADD = "01";
	
	/** 所有区分（お客様所有） */
	private static final String SHOYU_DIV_OKY = "2";

	/** 宅内機器ステータス（顧客使用中） */
	private static final String TAKNKIKI_STAT_USED = "51";

	/** 宅内機器ステータス（リース解約・破棄） */
	private static final String TAKNKIKI_STAT_HAIKI = "91";

	/** MAC情報有無（有） */
	private static final String MAC_IF_UM_ARI = "1";

	/** 登録契機契約異動区分（機器機種変更） */
	//private static final String ADD_OPTNTY_KEI_IDO_DIV_KISHU_HEN = "00028";
	
	/** 機器提供種別コード（レンタル） */
	//private static final String KKTK_SBT_CD_RENTAL = "02";
	
	/** ジョブＩＤ */
	private static final String JOB_ID = "EO5070210J0";
	
	/** 外部ＩＦＩＤ 機器出荷完了更新バッチ送信 */
	private static final String GAI_IF_ID_KIKI_SHKA_UPD_FILE = "DKIFE033";
	
	/** 機器出荷完了更新バッチ送信ファイル定義 */
	private static final String DEF_KIKI_SHKA_UPD = "DKIFM078.def";

	/** 機器出荷完了更新バッチ送信中間ファイル定義 */
	private static final String DEF_KIKI_SHKA_UPD_MID = "DKIFM077.def";

	/** デフォルト工事会社棚コード */
	private static final String DEF_KOJI_SHELF_CD = "000";

	/** 進捗ステータス（出荷完了） */
	private static final String PRG_STAT_SHKA_FIN = "9301";

	/** 親契約識別コード：サービス契約回線内訳 */
	private static final String SVC_KEI_KAISEN_UCWK = "02";

	/** 返品機器番号プレフィクス */
	private String prefixHmpinKikiNo = "";

	/** 配送ステータス（受付済） */
	private String haisoStatUkZumi = "";

	/** 配送ステータス（完了済） */
	private String haisoStatFinZumi = "";

	/** 配送ステータス（中止） */
	private String haisoStatStp = "";

	/** ファイル出力制御クラス */
	private JBSbatOutputFileUtil outputFileUtil = null;

	/** 中間ファイルのフルパス */
	private String outputFilePath = "";

	/** 文字列区切り共通クラス（データ部） */
	private JBSbatDefFileUtil defDataUtilData = null;

	/** 更新済み配送番号リスト */
	private List<String> updHaisoNoList = new ArrayList<String>();

	/** 機器出荷完了更新バッチ送信データ格納リスト */
	Map<String, Map<String, String>> kikiShkaFinUpdList = new TreeMap<String, Map<String, String>>();

	/** CUI接頭語 */
	private String cuiHead = "";
	
	//ANK-2169-00-00 ADD START
	/** 最終出荷 */
	private String FINAL_SHKA = "finalShka";
	//ANK-2169-00-00 ADD END

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_DK_M_BAT_TRN_JOKEN = new JBSbatSQLAccess(commonItem, D_TBL_NAME_DK_M_BAT_TRN_JOKEN);
		db_ZM_M_CD_NM_KANRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_CD_NM_KANRI);
		db_DK_T_SHKA_FIN_REQ = new JBSbatSQLAccess(commonItem, D_TBL_NAME_DK_T_SHKA_FIN_REQ);
		db_DK_T_SHKA_FIN_DTL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_DK_T_SHKA_FIN_DTL);
		db_DK_T_HAISO = new JBSbatSQLAccess(commonItem, D_TBL_NAME_DK_T_HAISO);
		db_DK_T_HAISO_TG_BPIN = new JBSbatSQLAccess(commonItem, D_TBL_NAME_DK_T_HAISO_TG_BPIN);
		db_KK_T_KKTK_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KKTK_SVC_KEI);
		db_KK_T_KAKINS = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KAKINS);
		db_KK_T_SEIKY_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SEIKY_KEI);
		db_DK_T_BAT_TKKIKI_WK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_DK_T_BAT_TKKIKI_WK);
		db_ZM_M_TAKNKIKI_MODEL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_TAKNKIKI_MODEL);
		db_ZM_M_SETHN_KOSE = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_SETHN_KOSE);
		db_KK_M_PCRS = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_M_PCRS);
		db_DK_T_HMPIN_KIKI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_DK_T_HMPIN_KIKI);
		db_DK_T_SHKA_FIN_ERR = new JBSbatSQLAccess(commonItem, D_TBL_NAME_DK_T_SHKA_FIN_ERR);
		db_KK_T_SVKEI_EXC_CTRL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVKEI_EXC_CTRL);
		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		db_DK_T_BAT_TKKBRZK_WK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_DK_T_BAT_TKKBRZK_WK);
		db_KK_T_SVC_KEI_EOMOBA = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI_EOMOBA);
		db_KK_T_SVKEIUW_EOMOBA = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVKEIUW_EOMOBA);
		db_KK_T_SVC_KEI_UCWK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI_UCWK);
		db_KK_T_PRG = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_PRG);
		db_SC_T_SOD_WORK_KANRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_SC_T_SOD_WORK_KANRI);
		db_DK_T_SHKA_KIHON_INFO = new JBSbatSQLAccess(commonItem, D_TBL_NAME_DK_T_SHKA_KIHON_INFO);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		int tranCntTani = 0;																// 処理件数単位
		int commitCntTani = 0;																// コミット件数単位
		int dtlCntTani = 0;																	// 明細処理件数
		boolean minorErrFlg = false;														// マイナーエラーフラグ
		int miCommitCntTani = 0;															// 未コミット件数
		String spoolShukkaFinNo = "";														// 出力待ち出荷完了番号
		String spoolShukkaLotNo = "";														// 出力待ち出荷ロット番号
		boolean shukkaLotNoErrFlg = false;													// 出荷ロット番号内エラー存在フラグ
		int eoSoutputLineCnt = 0;															// 督促用出荷完了情報受信出力行数
		boolean shukkaLotEoSoutputFlg = false;												// 出荷ロットの督促用出荷完了情報受信出力フラグ
		List<Map<String, String>> spoolDataList = new ArrayList<Map<String, String>>();		// 出力待ちデータリスト

		JBSbatCommonDBInterface resultMap = null;

		// 処理件数単位、コミット件数単位の取得
		String[] tranCntTaniKey =  new String[] {"001", "001"};
		try
		{
			executeDK_M_BAT_TRN_JOKEN_DK_SELECT_001(tranCntTaniKey);
			resultMap = db_DK_M_BAT_TRN_JOKEN.selectNext();
			if (resultMap == null)
			{
				throw new Exception("バッチ処理条件なし");
			}
			tranCntTani = toInt(resultMap.getString("TRAN_CNT"));
			commitCntTani = toInt(resultMap.getString("COMMIT_CNT"));
		}
		catch (Exception ex)
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
					getKeyInfo("バッチ処理条件", KEY_NM_BAT_TRN_JOKEN_001, new String[] {"001"}));
			throw ex;
		}

		// DEBUGログ（PT用）
		super.logPrint.printDebugLog("処理件数単位=" + tranCntTani);
		super.logPrint.printDebugLog("コミット件数単位=" + commitCntTani);

		// 返品機器番号プレフィクスの取得
		String[] prefixHmpinKikiNoKey = {JZM0171Constant.CD00692, "06"};
		try
		{
			executeZM_M_CD_NM_KANRI_DK_SELECT_001(prefixHmpinKikiNoKey);
			resultMap = db_ZM_M_CD_NM_KANRI.selectNext();
			if (resultMap == null)
			{
				throw new Exception("返品機器番号プレフィクスなし");
			}
			prefixHmpinKikiNo = resultMap.getString("CD_DIV_NM");
		}
		catch (Exception ex)
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
					getKeyInfo("コード名称管理", KEY_NM_ZM_M_CD_NM_KANRI_001, prefixHmpinKikiNoKey));
			throw ex;
		}

		// DEBUGログ（PT用）
		super.logPrint.printDebugLog("返品機器番号プレフィクス=" + prefixHmpinKikiNo);

		// 配送ステータス（受付済）の取得
		String[] haisoStatUkZumiKey = {JZM0171Constant.CD00009, "001"};
		try
		{
			executeZM_M_CD_NM_KANRI_DK_SELECT_001(haisoStatUkZumiKey);
			resultMap = db_ZM_M_CD_NM_KANRI.selectNext();
			if (resultMap == null)
			{
				throw new Exception("配送ステータス名称（受付済）なし");
			}
			haisoStatUkZumi = resultMap.getString("CD_DIV_NM");
		}
		catch (Exception ex)
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
					getKeyInfo("コード名称管理", KEY_NM_ZM_M_CD_NM_KANRI_001, haisoStatUkZumiKey));
			throw ex;
		}

		// DEBUGログ（PT用）
		super.logPrint.printDebugLog("配送ステータス名称（受付済）=" + haisoStatUkZumi);

		// 配送ステータス（完了済）の取得
		String[] haisoStatFinZumiKey = {JZM0171Constant.CD00009, "004"};
		try
		{
			executeZM_M_CD_NM_KANRI_DK_SELECT_001(haisoStatFinZumiKey);
			resultMap = db_ZM_M_CD_NM_KANRI.selectNext();
			if (resultMap == null)
			{
				throw new Exception("配送ステータス名称（完了済）なし");
			}
			haisoStatFinZumi = resultMap.getString("CD_DIV_NM");
		}
		catch (Exception ex)
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
					getKeyInfo("コード名称管理", KEY_NM_ZM_M_CD_NM_KANRI_001, haisoStatFinZumiKey));
			throw ex;
		}

		// DEBUGログ（PT用）
		super.logPrint.printDebugLog("配送ステータス名称（完了済）=" + haisoStatFinZumi);

		// 配送ステータス（中止）の取得
		String[] haisoStatStpKey = {JZM0171Constant.CD00009, "005"};
		try
		{
			executeZM_M_CD_NM_KANRI_DK_SELECT_001(haisoStatStpKey);
			resultMap = db_ZM_M_CD_NM_KANRI.selectNext();
			if (resultMap == null)
			{
				throw new Exception("配送ステータス名称（中止）なし");
			}
			haisoStatStp = resultMap.getString("CD_DIV_NM");
		}
		catch (Exception ex)
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
					getKeyInfo("コード名称管理", KEY_NM_ZM_M_CD_NM_KANRI_001, haisoStatStpKey));
			throw ex;
		}

		// DEBUGログ（PT用）
		super.logPrint.printDebugLog("配送ステータス名称（中止）=" + haisoStatStp);

		// 事業者コードの取得
		String[] sodWorkKey = {super.opeDate};
		try
		{
			executeSC_T_SOD_WORK_KANRI_DK_SELECT_001(sodWorkKey);
			resultMap = db_SC_T_SOD_WORK_KANRI.selectNext();
			if (resultMap == null)
			{
				throw new Exception("CUI接頭語なし");
			}
			cuiHead = "F" + resultMap.getString("NAIYO_HSK_2_CHR");
		}
		catch (Exception ex)
		{
			String[] keySodWork = new String[] {"運用日付"};
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
					getKeyInfo("SOD業務管理", keySodWork, sodWorkKey));
			throw ex;
		}

		// 出荷完了依頼情報の取得
		JBSbatCommonDBInterface shkaFinReqMap = null;
		boolean updFinSvcKeiStatErr = false;		// サービス契約ステータス不正の出荷完了エラー登録の完了フラグ
		try
		{
			executeDK_T_SHKA_FIN_REQ_DK_SELECT_001(null);
			shkaFinReqMap = db_DK_T_SHKA_FIN_REQ.selectNext();
			while (shkaFinReqMap != null)
			{
				// DEBUGログ（PT用）
				super.logPrint.printDebugLog(shkaFinReqMap.getMap().toString());

				String shukkaFinNo = shkaFinReqMap.getString("SHUKKA_FIN_NO");					// 出荷完了番号
				String shukkaLotNo = shkaFinReqMap.getString("SHUKKA_LOT_NO");					// 出荷ロット番号
				String shukkaLotKikiSeq = shkaFinReqMap.getString("SHUKKA_LOT_KIKI_SEQ");		// 出荷ロット番号機器通番
				String svcKeiNo = shkaFinReqMap.getString("SVC_KEI_NO");						// サービス契約番号
				String kikiSeizoNo = shkaFinReqMap.getString("KIKI_SEIZO_NO");					// 機器製造番号
				String tcaseNo = shkaFinReqMap.getString("TCASE_NO");							// トムソンケース番号
				String ttlTcaseCnt = shkaFinReqMap.getString("TTL_TCASE_CNT");					// 総トムソンケース数
				String pcrsCd = shkaFinReqMap.getString("PCRS_CD");								// 料金コースコード
				String taknkikiModelCd = shkaFinReqMap.getString("TAKNKIKI_MODEL_CD");			// 宅内機器型式コード
				BigDecimal cnt = shkaFinReqMap.getBigDecimal("CNT");							// 数量
				String denpyoNo = shkaFinReqMap.getString("DENPYO_NO");							// 伝票No
				String haisoSjiYmd = shkaFinReqMap.getString("HAISO_SJI_YMD");					// 配送指示年月日
				String haisoTaknkikiSbtCd = shkaFinReqMap.getString("TAKNKIKI_SBT_CD");			// 宅内機器種別コード
				// 明細処理件数のインクリメント
				dtlCntTani++;
				// 出荷完了明細テーブルの存在チェック
				if (isEmpty(shukkaLotNo))
				{
					throw new JBSbatBusinessException(JPCBatchMessageConstant.EDKB0020KE, getKeyInfo("出荷完了明細", "出荷完了番号", shukkaFinNo));
				}
				// 出荷ロット番号の切り替え処理
				if (dtlCntTani > 1 && !spoolShukkaLotNo.equals(shukkaLotNo))
				{
					// セット品構成チェック処理
					if (!shukkaLotNoErrFlg)
					{
						String retValue = chkSethnKose(spoolShukkaFinNo, spoolShukkaLotNo, spoolDataList);
						if (!isEmpty(retValue))
						{
							// 出荷ロット番号内エラー存在フラグをON
							shukkaLotNoErrFlg = true;
							// 出力待ちデータリストの対象行のチェック結果フラグにチェックエラーを設定
							for (int i = 0; i < spoolDataList.size(); i++)
							{
								if (retValue.equals(spoolDataList.get(i).get(KMK_NM_SHUKKA_LOT_KIKI_SEQ)))
								{
									spoolDataList.get(i).put(KMK_NM_CHK_RESULT_FLG, CHK_RESULT_ERROR);
									break;
								}
							}
						}
					}

					// 出荷完了登録処理
					createShkaFin(spoolShukkaFinNo, spoolShukkaLotNo, spoolDataList, shukkaLotNoErrFlg);
					// 未コミット件数の設定
					miCommitCntTani += spoolDataList.size();
					// 出荷完了依頼の正常/エラー件数の更新処理
					if (shukkaLotNoErrFlg)
					{
						updRsltCnt(spoolShukkaFinNo, 0, spoolDataList.size());
					}
					else
					{
						updRsltCnt(spoolShukkaFinNo, spoolDataList.size(), 0);
					}
					// 出荷完了番号の切り替え処理
					if (!spoolShukkaFinNo.equals(shukkaFinNo))
					{
						// 出荷完了依頼のステータス更新処理（処理済）
						updShukkaReqStat(spoolShukkaFinNo, "3");
					}
					// コミット件数チェック
					if (miCommitCntTani >= commitCntTani)
					{
						super.commit();
						miCommitCntTani = 0;
					}
					// 出力待ちデータリストを初期化
					spoolDataList = new ArrayList<Map<String, String>>();
					// 出荷ロット番号内エラー存在フラグを初期化
					shukkaLotNoErrFlg = false;
					// 出荷ロットの督促用出荷完了情報受信出力フラグを初期化
					shukkaLotEoSoutputFlg = false;
					// サービス契約ステータス不正の出荷完了エラー登録の完了フラグ初期化
					updFinSvcKeiStatErr = false;
				}
				// 処理件数単位のチェック
				if (spoolDataList.size() == 0 && (dtlCntTani - 1) >= tranCntTani)
				{
					if (!spoolShukkaFinNo.equals(shkaFinReqMap.getString("SHUKKA_FIN_NO")))
					{
						// 出荷完了依頼のステータス更新処理（処理済）
						updShukkaReqStat(spoolShukkaFinNo, "3");
					}
					else
					{
						updShukkaReqStat(spoolShukkaFinNo, "2");
					}
					super.commit();
					//ANK-2169-00-00 ADD START
					//FREE項目の取得
					String[] freeItem = this.freeItem.split(JACStrConst.FREE_DIV);
					//最終出荷のジョブの場合、メジャーアラームを出力する
					if(FINAL_SHKA.equals(freeItem[0]))
					{
						//業務エラーログ出力
						super.logPrint.printBusinessErrorLog("EACB0530CE", new String[]{"出荷指定件数を超えました。"});
						//エラーフラグ設定
						super.commonItem.setErrFlg(true);
					}
					//ANK-2169-00-00 ADD END
					break;
				}
				// 出荷完了番号、出荷ロット番号の設定処理
				spoolShukkaFinNo = shukkaFinNo;
				spoolShukkaLotNo = shukkaLotNo;
				// 現在行の出荷完了明細データ設定処理
				Map<String, String> shkaFinDtlData = new HashMap<String, String>();
				shkaFinDtlData.put(KMK_NM_SHUKKA_LOT_KIKI_SEQ, shukkaLotKikiSeq);				// 出荷ロット番号機器通番
				shkaFinDtlData.put(KMK_NM_DENPYO_NO, denpyoNo);									// 伝票No
				shkaFinDtlData.put(KMK_NM_TCASE_NO, tcaseNo);									// トムソンケース番号
				shkaFinDtlData.put(KMK_NM_SHKA_FIN_DTL_MODEL_CD, taknkikiModelCd);				// 出荷完了明細の宅内機器型式コード
				shkaFinDtlData.put(KMK_NM_KIKI_SEIZO_NO, kikiSeizoNo);							// 機器製造番号
				shkaFinDtlData.put(KMK_NM_CNT, String.valueOf(cnt));							// 数量
				shkaFinDtlData.put(KMK_NM_SVC_KEI_NO, svcKeiNo);								// サービス契約番号
				shkaFinDtlData.put(KMK_NM_TAKNKIKI_SBT_CD, haisoTaknkikiSbtCd);					// 宅内機器種別コード
				shkaFinDtlData.put(KMK_NM_CHK_RESULT_FLG, CHK_RESULT_NORMAL);					// チェック結果フラグ
				// 既に出荷ロット番号内データでエラーが存在する場合はサービス契約ステータス不正を除いてチェック処理を行わない
				if (shukkaLotNoErrFlg)
				{
					if (isChkResultFlg(spoolDataList, CHK_RESULT_SVC_KEI_STAT_ERROR) && !isChkResultFlg(spoolDataList, CHK_RESULT_ERROR))
					{
						// サービス契約ステータス不正の場合は出荷ロット番号内の全データが該当する
						shkaFinDtlData.put(KMK_NM_CHK_RESULT_FLG, CHK_RESULT_SVC_KEI_STAT_ERROR);
					}
					else if (isChkResultFlg(spoolDataList, CHK_RESULT_SHKA_ARI_ERROR))
					{
						// 出荷ありエラーの場合は出荷ロット番号内の全データが該当する
						shkaFinDtlData.put(KMK_NM_CHK_RESULT_FLG, CHK_RESULT_SHKA_ARI_ERROR);
					}
					// 既に出荷ロット番号内データで業務抑止対象エラーが存在する場合、チェックは不要だが督促用出荷完了情報受信は出力しておく
					if (shukkaLotEoSoutputFlg)
					{
						Object[] param2 = {spoolShukkaLotNo, shukkaLotKikiSeq, taknkikiModelCd, kikiSeizoNo, cnt, denpyoNo, haisoSjiYmd, tcaseNo, ttlTcaseCnt, pcrsCd};
						outputTokusokuShkaFin(param2);
						eoSoutputLineCnt++;
					}
					// サービス契約ステータス不正、出荷ありエラーでない場合は、以降のチェックは不要。
					if (!CHK_RESULT_SVC_KEI_STAT_ERROR.equals(shkaFinDtlData.get(KMK_NM_CHK_RESULT_FLG)) &&
						    !CHK_RESULT_SHKA_ARI_ERROR.equals(shkaFinDtlData.get(KMK_NM_CHK_RESULT_FLG)))
					{
						spoolDataList.add(shkaFinDtlData);
						shkaFinReqMap = db_DK_T_SHKA_FIN_REQ.selectNext();
						continue;
					}
				}
				// チェック処理
				// 配送、配送対象物品の存在チェック
				String[] haisoKeyNm = {"出荷ロット番号", "出荷ロット番号機器通番"};
				String[] haisoKey = {spoolShukkaLotNo, shukkaLotKikiSeq};
				String haisoNo = "";						// 配送番号
				String haisoStat = "";						// 配送ステータス
				String kojiCompCd = "";						// 工事会社コード
				String hojinSvcKeiUkNo = "";				// 法人サービス契約受付番号
				String hisosNm = "";						// 配送先名
				String placeNo = "";						// 場所番号
				String btryhoznNo = "";						// 物流保全番号
				String addOptntyKeiIdoDiv = "";				// 登録契機契約異動区分
				String addOptntyKeiIdoDtm = "";				// 登録契機契約異動年月日時分秒
				String haisoTaibpinNo = "";					// 配送対象物品番号
				String kktkSvcKeiNo = "";					// 機器提供サービス契約番号
				String kikiChgNo = "";						// 機器変更番号
				String haisoTaknkikiModelCd = "";			// 宅内機器型式コード
				String huzokuhinModelCd = "";				// 付属品型式コード
				String sokoCd = "";							// 倉庫コード
				String shelfCd = "";						// 棚コード
				String taknkikiSethinModelCd = "";			// 宅内機器セット品型コード
				String hisosKsiteiFlg = "";					// 配送先個別指定フラグ
				String kojiakNo = "";						// 工事案件番号
				try
				{
					executeDK_T_HAISO_DK_SELECT_006(haisoKey);
					resultMap = db_DK_T_HAISO.selectNext();
					//  配送対象物品の存在チェックエラー
					if (resultMap == null)
					{
						// 出荷完了エラー登録
						String msg = JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EDKB0150KW, new String[] {"配送対象物品"});
						Object[] param = {spoolShukkaFinNo, spoolShukkaLotNo, shukkaLotKikiSeq, "1", svcKeiNo, taknkikiModelCd, kikiSeizoNo, "", cnt, msg};
						createShkaFinErr(param);
						// マイナーエラーフラグ、出荷ロット番号内エラー存在フラグをON
						minorErrFlg = true;
						shukkaLotNoErrFlg = true;
						// 出力待ちデータリストに現在行の出荷完了明細データを追加
						shkaFinDtlData.put(KMK_NM_CHK_RESULT_FLG, CHK_RESULT_ERROR);
						spoolDataList.add(shkaFinDtlData);
						// 次行へ
						shkaFinReqMap = db_DK_T_SHKA_FIN_REQ.selectNext();
						continue;
					}
					haisoNo = resultMap.getString("HAISO_NO");
					haisoStat = resultMap.getString("HAISO_STAT");
					kojiCompCd = resultMap.getString("HISOS_KOCOMP_CD");
					hojinSvcKeiUkNo = resultMap.getString("HOJIN_SVC_KEI_UK_NO");
					hisosNm = resultMap.getString("HISOS_NM");
					btryhoznNo = resultMap.getString("BTRYHOZN_NO");
					addOptntyKeiIdoDiv = resultMap.getString("ADD_OPTNTY_KEI_IDO_DIV");
					addOptntyKeiIdoDtm = resultMap.getString("ADD_OPTNTY_KEI_IDO_DTM");
					haisoTaibpinNo = resultMap.getString("HAISO_TAIBPIN_NO");
					kktkSvcKeiNo = resultMap.getString("KKTK_SVC_KEI_NO");
					kikiChgNo = resultMap.getString("KIKI_CHG_NO");
					haisoTaknkikiModelCd = resultMap.getString("TAKNKIKI_MODEL_CD");
					huzokuhinModelCd = resultMap.getString("HUZOKUHIN_MODEL_CD");
					sokoCd = resultMap.getString("HAISO_MOTO_SOKO_CD");
					shelfCd = resultMap.getString("HAISO_MOTO_SKDN_CD");
					taknkikiSethinModelCd = resultMap.getString("TAKNKIKI_SETHIN_MODEL_CD");
					hisosKsiteiFlg = resultMap.getString("HISOS_KSITEI_FLG");
					kojiakNo = resultMap.getString("KOJIAK_NO");
					// 配送の存在チェックエラー
					if (haisoNo == null)
					{
						// 出荷完了エラー登録
						String msg = JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EDKB0150KW, new String[] {"配送"});
						Object[] param = {spoolShukkaFinNo, spoolShukkaLotNo, shukkaLotKikiSeq, "1", svcKeiNo, taknkikiModelCd, kikiSeizoNo, "", cnt, msg};
						createShkaFinErr(param);
						// マイナーエラーフラグ、出荷ロット番号内エラー存在フラグをON
						minorErrFlg = true;
						shukkaLotNoErrFlg = true;
						// 出力待ちデータリストに現在行の出荷完了明細データを追加
						shkaFinDtlData.put(KMK_NM_CHK_RESULT_FLG, CHK_RESULT_ERROR);
						spoolDataList.add(shkaFinDtlData);
						// 次行へ
						shkaFinReqMap = db_DK_T_SHKA_FIN_REQ.selectNext();
						continue;
					}
				}
				catch (Exception ex)
				{
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
							getKeyInfo("配送", haisoKeyNm, haisoKey));
					throw ex;
				}
				// 配送情報の設定
				shkaFinDtlData.put(KMK_NM_HAISO_NO, haisoNo);								// 配送番号
				shkaFinDtlData.put(KMK_NM_HAISO_STAT, haisoStat);							// 配送ステータス
				shkaFinDtlData.put(KMK_NM_HISOS_NM, hisosNm);								// 配送先名
				shkaFinDtlData.put(KMK_NM_PLACE_NO, "");									// 場所番号
				shkaFinDtlData.put(KMK_NM_BTRYHOZN_NO, btryhoznNo);							// 物流保全番号
				shkaFinDtlData.put(KMK_NM_ADD_OPTNTY_KEI_IDO_DIV, addOptntyKeiIdoDiv);		// 登録契機契約異動区分
				shkaFinDtlData.put(KMK_NM_ADD_OPTNTY_KEI_IDO_DTM, addOptntyKeiIdoDtm);		// 登録契機契約異動年月日時分秒
				shkaFinDtlData.put(KMK_NM_HAISO_TAIBPIN_NO, haisoTaibpinNo);				// 配送対象物品番号
				shkaFinDtlData.put(KMK_NM_KOJI_COMP_CD, kojiCompCd);						// 工事会社コード
				shkaFinDtlData.put(KMK_NM_TAKNKIKI_MODEL_CD, haisoTaknkikiModelCd);			// 宅内機器型式コード
				shkaFinDtlData.put(KMK_NM_HUZOKUHIN_MODEL_CD, huzokuhinModelCd);			// 付属品型式コード
				shkaFinDtlData.put(KMK_NM_KKTK_SVC_KEI_NO, kktkSvcKeiNo);					// 機器提供サービス契約番号
				shkaFinDtlData.put(KMK_NM_KIKI_CHG_NO, kikiChgNo);							// 機器変更番号
				shkaFinDtlData.put(KMK_NM_SOKO_CD, sokoCd);									// 倉庫コード
				shkaFinDtlData.put(KMK_NM_SHELF_CD, shelfCd);								// 棚コード
				shkaFinDtlData.put(KMK_NM_TAKNKIKI_SETHIN_MODEL_CD, taknkikiSethinModelCd);	// 宅内機器セット品型コード
				shkaFinDtlData.put(KMK_NM_HISOS_KSITEI_FLG, hisosKsiteiFlg);				// 配送先個別指定フラグ
				shkaFinDtlData.put(KMK_NM_HOJIN_SVC_KEI_UK_NO, hojinSvcKeiUkNo);			// 法人サービス契約受付番号
				shkaFinDtlData.put(KMK_NM_KOJIAK_NO, kojiakNo);								// 工事案件番号
				// 機器提供サービス契約の存在チェック
				String[] kktkSvcKeiKeyNm = {"機器提供サービス契約番号", "機器変更番号"};
				String[] kktkSvcKeiKey = {kktkSvcKeiNo, kikiChgNo};
				String geneAddDtm = "";						// 世代登録年月日時分秒
				String kktkSbtCd = "";						// 機器提供種別コード
				String taknkikiIdoCd = "";					// 宅内機器異動コード
				String svcKeiUcwkNo = "";					// サービス契約内訳番号
				String oyaKeiSkbtCd = "";					// 親契約識別コード
				if (isEmpty(hojinSvcKeiUkNo))
				{
					try
					{
						executeKK_T_KKTK_SVC_KEI_DK_SELECT_001(kktkSvcKeiKey);
						resultMap = db_KK_T_KKTK_SVC_KEI.selectNext();
						// 機器提供サービス契約の存在チェックエラー
						if (resultMap == null)
						{
							// 出荷完了エラー登録
							String msg = JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EDKB0150KW, new String[] {"機器提供サービス契約"});
							Object[] param = {spoolShukkaFinNo, spoolShukkaLotNo, shukkaLotKikiSeq, "4", svcKeiNo, taknkikiModelCd, kikiSeizoNo, hisosNm, cnt, msg};
							createShkaFinErr(param);
							// マイナーエラーフラグ、出荷ロット番号内エラー存在フラグをON
							minorErrFlg = true;
							shukkaLotNoErrFlg = true;
							// 出力待ちデータリストに現在行の出荷完了明細データを追加
							shkaFinDtlData.put(KMK_NM_CHK_RESULT_FLG, CHK_RESULT_ERROR);
							spoolDataList.add(shkaFinDtlData);
							// 次行へ
							shkaFinReqMap = db_DK_T_SHKA_FIN_REQ.selectNext();
							continue;
						}
						geneAddDtm = resultMap.getString("GENE_ADD_DTM");
						kktkSbtCd = resultMap.getString("KKTK_SBT_CD");
						taknkikiIdoCd = resultMap.getString("TAKNKIKI_IDO_CD");
						svcKeiUcwkNo = resultMap.getString("SVC_KEI_UCWK_NO");
						placeNo = resultMap.getString("KIKI_STC_SAKI_PLACE_NO");
						oyaKeiSkbtCd = resultMap.getString("OYA_KEI_SKBT_CD");
					}
					catch (Exception ex)
					{
						commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
								getKeyInfo("機器提供サービス契約", kktkSvcKeiKeyNm, kktkSvcKeiKey));
						throw ex;
					}
					// 機器提供サービス契約情報の設定
					shkaFinDtlData.put(KMK_NM_GENE_ADD_DTM, geneAddDtm);					// 機器提供サービス契約番号の世代登録年月日時分秒
					shkaFinDtlData.put(KMK_NM_KKTK_SBT_CD, kktkSbtCd);						// 機器提供種別コード
					shkaFinDtlData.put(KMK_NM_SVC_KEI_UCWK_NO, svcKeiUcwkNo);				// サービス契約内訳番号
					shkaFinDtlData.put(KMK_NM_PLACE_NO, placeNo);							// 場所番号
					shkaFinDtlData.put(KMK_NM_OYA_KEI_SKBT_CD, oyaKeiSkbtCd);				// 親契約識別コード
				}

				// サービス契約の存在チェック
				String[] svcKeiKeyNm = null;
				String[] svcKeiKey = null;
				String svcKeiStat = "";						// サービス契約ステータス
				if (isEmpty(hojinSvcKeiUkNo))
				{
					try
					{					
						svcKeiKeyNm = new String[] {"サービス契約番号", "運用日"};
						svcKeiKey = new String[] {svcKeiNo, super.opeDate};
						executeKK_T_SVC_KEI_DK_SELECT_001(svcKeiKey);
						resultMap = db_KK_T_SVC_KEI.selectNext();

						// サービス契約の存在チェックエラー
						if (resultMap == null)
						{
							// 出荷完了エラー登録
							String msg = JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EDKB0150KW, new String[] {"サービス契約"});
							Object[] param = {spoolShukkaFinNo, spoolShukkaLotNo, shukkaLotKikiSeq, "4", svcKeiNo, taknkikiModelCd, kikiSeizoNo, hisosNm, cnt, msg};
							createShkaFinErr(param);
							// マイナーエラーフラグ、出荷ロット番号内エラー存在フラグをON
							minorErrFlg = true;
							shukkaLotNoErrFlg = true;
							// 出力待ちデータリストに現在行の出荷完了明細データを追加
							shkaFinDtlData.put(KMK_NM_CHK_RESULT_FLG, CHK_RESULT_ERROR);
							spoolDataList.add(shkaFinDtlData);
							// 次行へ
							shkaFinReqMap = db_DK_T_SHKA_FIN_REQ.selectNext();
							continue;
						}
						svcKeiNo = resultMap.getString("SVC_KEI_NO");
						svcKeiStat = resultMap.getString("SVC_KEI_STAT");
					}
					catch (Exception ex)
					{
						commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
								getKeyInfo("サービス契約", svcKeiKeyNm, svcKeiKey));
						throw ex;
					}
					// サービス契約情報の設定
					shkaFinDtlData.put(KMK_NM_SVC_KEI_STAT, svcKeiStat);						// サービス契約ステータス
				}
				// 課金先の存在チェック
				String[] kakinsKeyNm = {"サービス契約番号", "運用日"};
				String[] kakinsKey = {svcKeiNo, super.opeDate};
				String seikyKeiNo = "";						// 請求契約番号
				if (isEmpty(hojinSvcKeiUkNo))
				{
					try
					{
						executeKK_T_KAKINS_DK_SELECT_001(kakinsKey);
						resultMap = db_KK_T_KAKINS.selectNext();
						// 課金先の存在チェックエラー
						if (resultMap == null)
						{
							// 出荷完了エラー登録
							String msg = JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EDKB0150KW, new String[] {"課金先"});
							Object[] param = {spoolShukkaFinNo, spoolShukkaLotNo, shukkaLotKikiSeq, "4", svcKeiNo, taknkikiModelCd, kikiSeizoNo, hisosNm, cnt, msg};
							createShkaFinErr(param);
							// マイナーエラーフラグ、出荷ロット番号内エラー存在フラグをON
							minorErrFlg = true;
							shukkaLotNoErrFlg = true;
							// 出力待ちデータリストに現在行の出荷完了明細データを追加
							shkaFinDtlData.put(KMK_NM_CHK_RESULT_FLG, CHK_RESULT_ERROR);
							spoolDataList.add(shkaFinDtlData);
							// 次行へ
							shkaFinReqMap = db_DK_T_SHKA_FIN_REQ.selectNext();
							continue;
						}
						seikyKeiNo = resultMap.getString("SEIKY_KEI_NO");
					}
					catch (Exception ex)
					{
						commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
								getKeyInfo("課金先", kakinsKeyNm, kakinsKey));
						throw ex;
					}
				}
				// 請求契約の存在チェック
				String[] seikyKeiKeyNm = {"請求契約番号", "運用日"};
				String[] seikyKeiKey = {seikyKeiNo, super.opeDate};
				if (isEmpty(hojinSvcKeiUkNo))
				{
					try
					{
						executeKK_T_SEIKY_KEI_DK_SELECT_001(seikyKeiKey);
						resultMap = db_KK_T_SEIKY_KEI.selectNext();
						// 請求契約の存在チェックエラー
						if (resultMap == null)
						{
							// 出荷完了エラー登録
							String msg = JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EDKB0150KW, new String[] {"請求契約"});
							Object[] param = {spoolShukkaFinNo, spoolShukkaLotNo, shukkaLotKikiSeq, "4", svcKeiNo, taknkikiModelCd, kikiSeizoNo, hisosNm, cnt, msg};
							createShkaFinErr(param);
							// マイナーエラーフラグ、出荷ロット番号内エラー存在フラグをON
							minorErrFlg = true;
							shukkaLotNoErrFlg = true;
							// 出力待ちデータリストに現在行の出荷完了明細データを追加
							shkaFinDtlData.put(KMK_NM_CHK_RESULT_FLG, CHK_RESULT_ERROR);
							spoolDataList.add(shkaFinDtlData);
							// 次行へ
							shkaFinReqMap = db_DK_T_SHKA_FIN_REQ.selectNext();
							continue;
						}
					}
					catch (Exception ex)
					{
						commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
								getKeyInfo("請求契約", seikyKeiKeyNm, seikyKeiKey));
						throw ex;
					}
				}

				// 型式の存在チェック
				String[] taknkikiModelKeyNm = {"宅内機器型式コード"};
				String[] taknkikiModelKey = {taknkikiModelCd};
				String seizoNoUm = "";		// 製造番号有無
				String macIfUm = "";		// MAC情報有無
				String taknkikiSbtCd = "";	// 宅内機器種別コード
				try
				{
					executeZM_M_TAKNKIKI_MODEL_DK_SELECT_002(taknkikiModelKey);
					resultMap = db_ZM_M_TAKNKIKI_MODEL.selectNext();
					// データが存在する場合
					if (resultMap != null)
					{
						seizoNoUm = resultMap.getString("SEIZO_NO_UM");
						macIfUm = resultMap.getString("MAC_IF_UM");
						taknkikiSbtCd = resultMap.getString("TAKNKIKI_SBT_CD");
					}
				}
				catch (Exception ex)
				{
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
							getKeyInfo("宅内機器型式", taknkikiModelKeyNm, taknkikiModelKey));
					throw ex;
				}

				// 宅内機器型式が存在しない場合
				if (resultMap == null)
				{
					// 出荷完了エラー登録
					String msg = JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EDKB0230KW);
					Object[] param = {spoolShukkaFinNo, spoolShukkaLotNo, shukkaLotKikiSeq, "4", svcKeiNo, taknkikiModelCd, kikiSeizoNo, hisosNm, cnt, msg};
					createShkaFinErr(param);
					// マイナーエラーフラグ、出荷ロット番号内エラー存在フラグをON
					minorErrFlg = true;
					shukkaLotNoErrFlg = true;
					// 出力待ちデータリストに現在行の出荷完了明細データを追加
					shkaFinDtlData.put(KMK_NM_CHK_RESULT_FLG, CHK_RESULT_ERROR);
					spoolDataList.add(shkaFinDtlData);
					// 次行へ
					shkaFinReqMap = db_DK_T_SHKA_FIN_REQ.selectNext();
					continue;
				}				
				
				// 製造番号の設定有無チェック
				if (SEIZO_NO_UM_ARI.equals(seizoNoUm) && isEmpty(kikiSeizoNo))
				{
					// 出荷完了エラー登録
					String msg = JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EDKB0240KW);
					Object[] param = {spoolShukkaFinNo, spoolShukkaLotNo, shukkaLotKikiSeq, "4", svcKeiNo, taknkikiModelCd, kikiSeizoNo, hisosNm, cnt, msg};
					createShkaFinErr(param);
					// 出荷ロット番号内エラー存在フラグをON
					shukkaLotNoErrFlg = true;
					// 出力待ちデータリストに現在行の出荷完了明細データを追加
					shkaFinDtlData.put(KMK_NM_CHK_RESULT_FLG, CHK_RESULT_ERROR);
					spoolDataList.add(shkaFinDtlData);
					// 次行へ
					shkaFinReqMap = db_DK_T_SHKA_FIN_REQ.selectNext();
					continue;
				}

				// バッチ用宅内機器物流在庫ワークの存在チェック
				String[] zaikoKeyNm = {"ジョブＩＤ"
						             , "管理場所識別コード"
						             , "管理場所コード"
						             , "管理場所棚コード"
						             , "宅内機器型式コード"};
				String[] zaikoKey = {JOB_ID
						           , JDKStrConst.KANRI_PLACE_SKB_SOKO
						           , sokoCd
						           , shelfCd
						           , taknkikiModelCd};
				try
				{
					executeDK_T_BAT_TKKBRZK_WK_DK_SELECT_001(zaikoKey);
					resultMap = db_DK_T_BAT_TKKBRZK_WK.selectNext();
					
					// バッチ用宅内機器物流在庫ワークの存在チェックエラー
					if (resultMap == null)
					{
						// 出荷完了エラー登録
						String msg = JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EDKB0740KW);
						Object[] param = {spoolShukkaFinNo, spoolShukkaLotNo, shukkaLotKikiSeq, "4", svcKeiNo, taknkikiModelCd, kikiSeizoNo, hisosNm, cnt, msg};
						createShkaFinErr(param);
						// マイナーエラーフラグ、出荷ロット番号内エラー存在フラグをON
						minorErrFlg = true;
						shukkaLotNoErrFlg = true;
						// 出力待ちデータリストに現在行の出荷完了明細データを追加
						shkaFinDtlData.put(KMK_NM_CHK_RESULT_FLG, CHK_RESULT_ERROR);
						spoolDataList.add(shkaFinDtlData);
						// 次行へ
						shkaFinReqMap = db_DK_T_SHKA_FIN_REQ.selectNext();
						continue;
					}
				}
				catch (Exception ex)
				{
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
							getKeyInfo("バッチ用宅内機器物流在庫ワーク", zaikoKeyNm, zaikoKey));
					throw ex;
				}

				// バッチ用宅内機器ワークの存在チェック
				String[] taknkikiKeyNm = {"ジョブＩＤ", "宅内機器型式コード", "機器製造番号"};
				String[] taknkikiKey = {JOB_ID, taknkikiModelCd, kikiSeizoNo};
				String taknkikiStat = "";		// 宅内機器ステータス
				String shoyuDiv = "";			// 所有区分
				String macad = "";				// MACアドレス
				String tkSokoCd = "";			// 倉庫コード
				String tkShelfCd = "";			// 棚コード
				String taknkikiSethinNo = "";	// 宅内機器セット品番号
				String tkPlaceNo = "";			// 宅内機器場所番号
				String emKeishaCd = "";			// ＥＭ契約者コード
				String uqNinshoId = "";			// ＵＱ認証ＩＤ
				String uqPwd = "";				// ＵＱ認証ＩＤパスワード
				if (SEIZO_NO_UM_ARI.equals(seizoNoUm))
				{
					try
					{
						executeDK_T_BAT_TKKIKI_WK_DK_SELECT_002(taknkikiKey);
						resultMap = db_DK_T_BAT_TKKIKI_WK.selectNext();
						
						// バッチ用宅内機器ワークの存在チェックエラー
						if (resultMap == null)
						{
							// 出荷完了エラー登録
							String msg = JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EDKB0220KW);
							Object[] param = {spoolShukkaFinNo, spoolShukkaLotNo, shukkaLotKikiSeq, "4", svcKeiNo, taknkikiModelCd, kikiSeizoNo, hisosNm, cnt, msg};
							createShkaFinErr(param);
							// マイナーエラーフラグ、出荷ロット番号内エラー存在フラグをON
							minorErrFlg = true;
							shukkaLotNoErrFlg = true;
							// 出力待ちデータリストに現在行の出荷完了明細データを追加
							shkaFinDtlData.put(KMK_NM_CHK_RESULT_FLG, CHK_RESULT_ERROR);
							spoolDataList.add(shkaFinDtlData);
							// 次行へ
							shkaFinReqMap = db_DK_T_SHKA_FIN_REQ.selectNext();
							continue;
						}
						taknkikiStat = resultMap.getString("TAKNKIKI_STAT");			// 宅内機器ステータス
						shoyuDiv = resultMap.getString("SHOYU_DIV");					// 所有区分
						macad = resultMap.getString("MACAD");							// MACアドレス
						tkSokoCd = resultMap.getString("SOKO_CD");						// 倉庫コード
						tkShelfCd = resultMap.getString("SHELF_CD");					// 棚コード
						taknkikiSethinNo = resultMap.getString("TAKNKIKI_SETHIN_NO");	// 宅内機器セット品番号
						tkPlaceNo = resultMap.getString("PLACE_NO");					// 宅内機器場所番号
						emKeishaCd = resultMap.getString("EM_KEISHA_CD");				// ＥＭ契約者コード
						uqNinshoId = resultMap.getString("UQ_NINSHO_ID");				// ＵＱ認証ＩＤ
						uqPwd = resultMap.getString("UQ_PWD");							// ＵＱ認証ＩＤパスワード
					}
					catch (Exception ex)
					{
						commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
								getKeyInfo("バッチ用宅内機器ワーク", taknkikiKeyNm, taknkikiKey));
						throw ex;
					}
				}
				// バッチ用宅内機器ワーク情報の設定
				shkaFinDtlData.put(KMK_NM_JOI_TAKNKIKI_MODEL_CD, "");				// 上位宅内機器型式コード
				shkaFinDtlData.put(KMK_NM_JOI_KIKI_SEIZO_NO, "");					// 上位機器製造番号
				shkaFinDtlData.put(KMK_NM_TAKNKIKI_PLACE_NO, tkPlaceNo);			// 宅内機器場所番号
				shkaFinDtlData.put(KMK_NM_TAKNKIKI_SETHIN_NO, taknkikiSethinNo);	// 宅内機器セット品番号
				shkaFinDtlData.put(KMK_NM_EM_KEISHA_CD, emKeishaCd);				// ＥＭ契約者コード
				shkaFinDtlData.put(KMK_NM_UQ_NINSHO_ID, uqNinshoId);				// ＵＱ認証ＩＤ
				shkaFinDtlData.put(KMK_NM_UQ_PWD, uqPwd);							// ＵＱ認証ＩＤパスワード

				//OM-2014-0003452 MOD STAT
				String newTaknkikiModelCd = "";		// 上位宅内機器型式コード
				String newJoiKikiSeizoNo = "";		// 上位機器製造番号
				if (SEIZO_NO_UM_ARI.equals(seizoNoUm) && (TAKNKIKI_SBT_CD_BCAS.equals(taknkikiSbtCd) || TAKNKIKI_SBT_CD_CCAS.equals(taknkikiSbtCd)))
				{
					String[] shkaFinDtlKeyNm = {"出荷完了番号", "出荷ロット番号", "トムソンケース番号"};
					String[] shkaFinDtlKey = {spoolShukkaFinNo, spoolShukkaLotNo, tcaseNo};
					String[] kktkSvcKeiKeyNm2 = {"出荷ロット番号", "出荷ロット番号", "出荷ロット番号機器通番"};
					String[] kktkSvcKeiKey2 = {spoolShukkaLotNo, spoolShukkaLotNo, shukkaLotKikiSeq};
					// 上位機器製造番号の取得
					try
					{
						// トムソンケース番号なし
						if (isEmpty(tcaseNo))
						{

							executeKK_T_KKTK_SVC_KEI_DK_SELECT_017(kktkSvcKeiKey2);
							resultMap = db_KK_T_KKTK_SVC_KEI.selectNext();
							
							if (resultMap != null)
							{
								// 上位機器製造番号の設定
								newTaknkikiModelCd = resultMap.getString("TAKNKIKI_MODEL_CD");			// 宅内機器型式コード
								newJoiKikiSeizoNo = resultMap.getString("KIKI_SEIZO_NO");				// 機器製造番号
								shkaFinDtlData.put(KMK_NM_JOI_TAKNKIKI_MODEL_CD, newTaknkikiModelCd);	// 上位宅内機器型式コード
								shkaFinDtlData.put(KMK_NM_JOI_KIKI_SEIZO_NO, newJoiKikiSeizoNo);		// 上位機器製造番号
							}
						} else {
						// トムソンケース番号あり

							executeDK_T_SHKA_FIN_DTL_DK_SELECT_001(shkaFinDtlKey);
							resultMap = db_DK_T_SHKA_FIN_DTL.selectNext();
							
							if (resultMap != null)
							{
								// 上位機器製造番号の設定
								newTaknkikiModelCd = resultMap.getString("TAKNKIKI_MODEL_CD");			// 宅内機器型式コード
								newJoiKikiSeizoNo = resultMap.getString("KIKI_SEIZO_NO");				// 機器製造番号
								shkaFinDtlData.put(KMK_NM_JOI_TAKNKIKI_MODEL_CD, newTaknkikiModelCd);	// 上位宅内機器型式コード
								shkaFinDtlData.put(KMK_NM_JOI_KIKI_SEIZO_NO, newJoiKikiSeizoNo);		// 上位機器製造番号
							}
						}
					}
					catch (Exception ex)
					{
						// トムソンケース番号なし
						if (isEmpty(tcaseNo))
						{
							commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
									getKeyInfo("出荷完了明細", kktkSvcKeiKeyNm2, kktkSvcKeiKey2));
						} else {
							commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
									getKeyInfo("出荷完了明細", shkaFinDtlKeyNm, shkaFinDtlKey));
						}
						throw ex;
					}
				}
				//OM-2014-0003452 MOD END

				// トムソンケース番号チェック
				if (!isEmpty(kojiCompCd) && isEmpty(tcaseNo))
				{
					// 出荷完了エラー登録
					String msg = JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EDKB0160KW);
					Object[] param = {spoolShukkaFinNo, spoolShukkaLotNo, shukkaLotKikiSeq, "4", svcKeiNo, taknkikiModelCd, kikiSeizoNo, hisosNm, cnt, msg};
					createShkaFinErr(param);
					// マイナーエラーフラグ、出荷ロット番号内エラー存在フラグをON
					minorErrFlg = true;
					shukkaLotNoErrFlg = true;
					// 出力待ちデータリストに現在行の出荷完了明細データを追加
					shkaFinDtlData.put(KMK_NM_CHK_RESULT_FLG, CHK_RESULT_ERROR);
					spoolDataList.add(shkaFinDtlData);
					// 次行へ
					shkaFinReqMap = db_DK_T_SHKA_FIN_REQ.selectNext();
					continue;
				}
				// 総トムソンケース数チェック
				if (!isEmpty(kojiCompCd) && isEmpty(ttlTcaseCnt))
				{
					// 出荷完了エラー登録
					String msg = JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EDKB0170KW);
					Object[] param = {spoolShukkaFinNo, spoolShukkaLotNo, shukkaLotKikiSeq, "4", svcKeiNo, taknkikiModelCd, kikiSeizoNo, hisosNm, cnt, msg};
					createShkaFinErr(param);
					// マイナーエラーフラグ、出荷ロット番号内エラー存在フラグをON
					minorErrFlg = true;
					shukkaLotNoErrFlg = true;
					// 出力待ちデータリストに現在行の出荷完了明細データを追加
					shkaFinDtlData.put(KMK_NM_CHK_RESULT_FLG, CHK_RESULT_ERROR);
					spoolDataList.add(shkaFinDtlData);
					// 次行へ
					shkaFinReqMap = db_DK_T_SHKA_FIN_REQ.selectNext();
					continue;
				}

//				// STB機器の追加でTVコースが設定有無チェック
//				if (isEmpty(hojinSvcKeiUkNo) && TAKNKIKI_IDO_CD_STBADD.equals(taknkikiIdoCd) && TAKNKIKI_SBT_CD_STB.equals(taknkikiSbtCd) && isEmpty(pcrsCd))
//				{
//					// 出荷完了エラー登録
//					String msg = JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EDKB0250KW);
//					Object[] param = {spoolShukkaFinNo, spoolShukkaLotNo, shukkaLotKikiSeq, "4", svcKeiNo, taknkikiModelCd, kikiSeizoNo, hisosNm, cnt, msg};
//					createShkaFinErr(param);
//					// マイナーエラーフラグ、出荷ロット番号内エラー存在フラグをON
//					minorErrFlg = true;
//					shukkaLotNoErrFlg = true;
//					// 出力待ちデータリストに現在行の出荷完了明細データを追加
//					shkaFinDtlData.put(KMK_NM_CHK_RESULT_FLG, CHK_RESULT_ERROR);
//					spoolDataList.add(shkaFinDtlData);
//					// 次行へ
//					shkaFinReqMap = db_DK_T_SHKA_FIN_REQ.selectNext();
//					continue;
//				}

				// STB機器の追加で料金コースの存在チェック
				String[] pcrsKeyNm = {"料金コースコード", "運用日", "運用日"};
				String[] pcrsKey = {pcrsCd, super.opeDate, super.opeDate};
				if (isEmpty(hojinSvcKeiUkNo) && TAKNKIKI_IDO_CD_STBADD.equals(taknkikiIdoCd) && TAKNKIKI_SBT_CD_STB.equals(taknkikiSbtCd))
				{
					// 料金コース取得
					try
					{
						executeKK_M_PCRS_DK_SELECT_001(pcrsKey);
						resultMap = db_KK_M_PCRS.selectNext();
						
						// 料金コースの存在チェックエラー
						if (resultMap == null)
						{
							// 出荷完了エラー登録
							String msg = JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EDKB0260KW);
							Object[] param = {spoolShukkaFinNo, spoolShukkaLotNo, shukkaLotKikiSeq, "4", svcKeiNo, taknkikiModelCd, kikiSeizoNo, hisosNm, cnt, msg};
							createShkaFinErr(param);
							// マイナーエラーフラグ、出荷ロット番号内エラー存在フラグをON
							minorErrFlg = true;
							shukkaLotNoErrFlg = true;
							// 出力待ちデータリストに現在行の出荷完了明細データを追加
							shkaFinDtlData.put(KMK_NM_CHK_RESULT_FLG, CHK_RESULT_ERROR);
							spoolDataList.add(shkaFinDtlData);
							// 次行へ
							shkaFinReqMap = db_DK_T_SHKA_FIN_REQ.selectNext();
							continue;
						}
					}
					catch (Exception ex)
					{
						commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
								getKeyInfo("料金コース", pcrsKeyNm, pcrsKey));
						throw ex;
					}
				}

//				// TVコースチェック
//				if (isEmpty(hojinSvcKeiUkNo) && !TAKNKIKI_IDO_CD_STBADD.equals(taknkikiIdoCd) && !isEmpty(pcrsCd))
//				{
//					// 出荷完了エラー登録
//					String msg = JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EDKB0180KW);
//					Object[] param = {spoolShukkaFinNo, spoolShukkaLotNo, shukkaLotKikiSeq, "4", svcKeiNo, taknkikiModelCd, kikiSeizoNo, hisosNm, cnt, msg};
//					createShkaFinErr(param);
//					// マイナーエラーフラグ、出荷ロット番号内エラー存在フラグをON
//					minorErrFlg = true;
//					shukkaLotNoErrFlg = true;
//					// 出力待ちデータリストに現在行の出荷完了明細データを追加
//					shkaFinDtlData.put(KMK_NM_CHK_RESULT_FLG, CHK_RESULT_ERROR);
//					spoolDataList.add(shkaFinDtlData);
//					// 次行へ
//					shkaFinReqMap = db_DK_T_SHKA_FIN_REQ.selectNext();
//					continue;
//				}

				// 所有区分チェック
				if (SEIZO_NO_UM_ARI.equals(seizoNoUm) && SHOYU_DIV_OKY.equals(shoyuDiv))
				{
					// 出荷完了エラー登録
					String msg = JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EDKB0270KW);
					Object[] param = {spoolShukkaFinNo, spoolShukkaLotNo, shukkaLotKikiSeq, "4", svcKeiNo, taknkikiModelCd, kikiSeizoNo, hisosNm, cnt, msg};
					createShkaFinErr(param);
					// マイナーエラーフラグ、出荷ロット番号内エラー存在フラグをON
					minorErrFlg = true;
					shukkaLotNoErrFlg = true;
					// 出力待ちデータリストに現在行の出荷完了明細データを追加
					shkaFinDtlData.put(KMK_NM_CHK_RESULT_FLG, CHK_RESULT_ERROR);
					spoolDataList.add(shkaFinDtlData);
					// 次行へ
					shkaFinReqMap = db_DK_T_SHKA_FIN_REQ.selectNext();
					continue;
				}

				// 使用中チェック
				if (SEIZO_NO_UM_ARI.equals(seizoNoUm) && TAKNKIKI_STAT_USED.equals(taknkikiStat))
				{
					// 出荷完了エラー登録
					String msg = JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EDKB0280KW);
					Object[] param = {spoolShukkaFinNo, spoolShukkaLotNo, shukkaLotKikiSeq, "4", svcKeiNo, taknkikiModelCd, kikiSeizoNo, hisosNm, cnt, msg};
					createShkaFinErr(param);
					// マイナーエラーフラグ、出荷ロット番号内エラー存在フラグをON
					minorErrFlg = true;
					shukkaLotNoErrFlg = true;
					// 出力待ちデータリストに現在行の出荷完了明細データを追加
					shkaFinDtlData.put(KMK_NM_CHK_RESULT_FLG, CHK_RESULT_ERROR);
					spoolDataList.add(shkaFinDtlData);
					// 次行へ
					shkaFinReqMap = db_DK_T_SHKA_FIN_REQ.selectNext();
					continue;
				}

				// 宅内機器ステータスチェック
				if (SEIZO_NO_UM_ARI.equals(seizoNoUm) && TAKNKIKI_STAT_HAIKI.equals(taknkikiStat))
				{
					// 出荷完了エラー登録
					String msg = JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EDKB0310KW);
					Object[] param = {spoolShukkaFinNo, spoolShukkaLotNo, shukkaLotKikiSeq, "4", svcKeiNo, taknkikiModelCd, kikiSeizoNo, hisosNm, cnt, msg};
					createShkaFinErr(param);
					// マイナーエラーフラグ、出荷ロット番号内エラー存在フラグをON
					minorErrFlg = true;
					shukkaLotNoErrFlg = true;
					// 出力待ちデータリストに現在行の出荷完了明細データを追加
					shkaFinDtlData.put(KMK_NM_CHK_RESULT_FLG, CHK_RESULT_ERROR);
					spoolDataList.add(shkaFinDtlData);
					// 次行へ
					shkaFinReqMap = db_DK_T_SHKA_FIN_REQ.selectNext();
					continue;
				}

				// 業務抑止対象チェック
				String[] tokusokuKeyNm = {"運用日", "運用日", "サービス契約番号", "運用日"};
				String[] tokusokuKey = {super.opeDate, super.opeDate, svcKeiNo, super.opeDate};
				String tokusokuStat = "";						// 督促ステータス
				if (isEmpty(hojinSvcKeiUkNo) && ("020".equals(svcKeiStat) || "030".equals(svcKeiStat)))
				{
					try
					{
						executeKK_T_KAKINS_DK_SELECT_002(tokusokuKey);
						resultMap = db_KK_T_KAKINS.selectNext();
						// 督促ステータスの業務抑止対象チェックエラー
						while (resultMap != null)
						{
							String thisTokusokuStat = resultMap.getString("TOKUSOKU_STAT");
							if (isEmpty(tokusokuStat) || toInt(tokusokuStat) < toInt(thisTokusokuStat))
							{
								tokusokuStat = thisTokusokuStat;
							}
							resultMap = db_KK_T_KAKINS.selectNext();
						}
						
						if (!isEmpty(tokusokuStat) && toInt(tokusokuStat) >= 20)
						{
							// 出荷完了エラー登録
							String msg = JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EDKB0200KW);
							Object[] param = {spoolShukkaFinNo, spoolShukkaLotNo, shukkaLotKikiSeq, "4", svcKeiNo, taknkikiModelCd, kikiSeizoNo, hisosNm, cnt, msg};
							createShkaFinErr(param);
							// 督促用出荷完了情報受信（データレコード）の出力
							param = new Object[9];
							Object[] param2 = {spoolShukkaLotNo, shukkaLotKikiSeq, taknkikiModelCd, kikiSeizoNo, cnt, denpyoNo, haisoSjiYmd, tcaseNo, ttlTcaseCnt, pcrsCd};
							outputTokusokuShkaFin(param2);
							eoSoutputLineCnt++;
							// マイナーエラーフラグ、出荷ロット番号内エラー存在フラグをON
							minorErrFlg = true;
							shukkaLotNoErrFlg = true;
							// 出荷ロットの督促用出荷完了情報受信出力フラグをON
							shukkaLotEoSoutputFlg = true;
							// 出力待ちデータリストに現在行の出荷完了明細データを追加
							shkaFinDtlData.put(KMK_NM_CHK_RESULT_FLG, CHK_RESULT_ERROR);
							spoolDataList.add(shkaFinDtlData);
							// 次行へ
							shkaFinReqMap = db_DK_T_SHKA_FIN_REQ.selectNext();
							continue;
						}
					}
					catch (Exception ex)
					{
						commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
								getKeyInfo("課金先", tokusokuKeyNm, tokusokuKey));
						throw ex;
					}
				}

				// ＭＡＣアドレスの設定有無チェック
				if (SEIZO_NO_UM_ARI.equals(seizoNoUm) && MAC_IF_UM_ARI.equals(macIfUm) && isEmpty(macad))
				{
					// 出荷完了エラー登録
					String msg = JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EDKB0290KW);
					Object[] param = {spoolShukkaFinNo, spoolShukkaLotNo, shukkaLotKikiSeq, "4", svcKeiNo, taknkikiModelCd, kikiSeizoNo, hisosNm, cnt, msg};
					createShkaFinErr(param);
					// 出荷ロット番号内エラー存在フラグをON
					shukkaLotNoErrFlg = true;

					// 出力待ちデータリストに現在行の出荷完了明細データを追加（ただし、サービス契約ステータスエラーは上書きしない）
					if (!CHK_RESULT_SVC_KEI_STAT_ERROR.equals(shkaFinDtlData.get(KMK_NM_CHK_RESULT_FLG)))
					{
						shkaFinDtlData.put(KMK_NM_CHK_RESULT_FLG, CHK_RESULT_SHKA_ARI_ERROR);
					}
					spoolDataList.add(shkaFinDtlData);
					// 次行へ
					shkaFinReqMap = db_DK_T_SHKA_FIN_REQ.selectNext();
					continue;
				}

				// 保管場所チェック
				if (SEIZO_NO_UM_ARI.equals(seizoNoUm) && (!sokoCd.equals(tkSokoCd) || !shelfCd.equals(tkShelfCd)))
				{
					// 出荷完了エラー登録
					String msg = JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EDKB0300KW);
					Object[] param = {spoolShukkaFinNo, spoolShukkaLotNo, shukkaLotKikiSeq, "4", svcKeiNo, taknkikiModelCd, kikiSeizoNo, hisosNm, cnt, msg};
					createShkaFinErr(param);
					// 出荷ロット番号内エラー存在フラグをON
					shukkaLotNoErrFlg = true;

					// 出力待ちデータリストに現在行の出荷完了明細データを追加（ただし、サービス契約ステータスエラーは上書きしない）
					if (!CHK_RESULT_SVC_KEI_STAT_ERROR.equals(shkaFinDtlData.get(KMK_NM_CHK_RESULT_FLG)))
					{
						shkaFinDtlData.put(KMK_NM_CHK_RESULT_FLG, CHK_RESULT_SHKA_ARI_ERROR);
					}
					spoolDataList.add(shkaFinDtlData);
					// 次行へ
					shkaFinReqMap = db_DK_T_SHKA_FIN_REQ.selectNext();
					continue;
				}

				// 配送ステータスチェック
				if (!"002".equals(haisoStat) && !updHaisoNoList.contains(haisoNo))
				{
					String haisoStatDivNm = "";		// 配送ステータス名称
					String errCd = "";				// 出荷エラーコード
					if ("001".equals(haisoStat))
					{
						haisoStatDivNm = haisoStatUkZumi;
						errCd = "4";
					}
					else if ("004".equals(haisoStat))
					{
						haisoStatDivNm = haisoStatFinZumi;
						errCd = "2";
					}
					else if ("005".equals(haisoStat))
					{
						haisoStatDivNm = haisoStatStp;
						errCd = "3";
					}
					// 出荷完了エラー登録
					String msg = JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EDKB0190KW, new String[] {haisoStatDivNm});
					Object[] param = {spoolShukkaFinNo, spoolShukkaLotNo, shukkaLotKikiSeq, errCd, svcKeiNo, taknkikiModelCd, kikiSeizoNo, hisosNm, cnt, msg};
					createShkaFinErr(param);
					// 出荷ロット番号内エラー存在フラグをON
					shukkaLotNoErrFlg = true;
					// 出力待ちデータリストに現在行の出荷完了明細データを追加（ただし、サービス契約ステータスエラーは上書きしない）
					if (!CHK_RESULT_SVC_KEI_STAT_ERROR.equals(shkaFinDtlData.get(KMK_NM_CHK_RESULT_FLG)))
					{
						shkaFinDtlData.put(KMK_NM_CHK_RESULT_FLG, CHK_RESULT_SHKA_ARI_ERROR);
					}
					spoolDataList.add(shkaFinDtlData);
					// 次行へ
					shkaFinReqMap = db_DK_T_SHKA_FIN_REQ.selectNext();
					continue;
				}
				// サービス契約ステータスチェック
				if (isEmpty(hojinSvcKeiUkNo) && ("910".equals(svcKeiStat) || "920".equals(svcKeiStat)))
				{
					// 出荷完了エラー登録
					if (!updFinSvcKeiStatErr)
					{
						String msg = JBSbatLogPrintControl.getMessage("EDKB0210KW");
						Object[] param = {spoolShukkaFinNo, spoolShukkaLotNo, shukkaLotKikiSeq, "4", svcKeiNo, taknkikiModelCd, kikiSeizoNo, hisosNm, cnt, msg};
						createShkaFinErr(param);
						// 出荷完了エラー登録は1行のみでよい。
						updFinSvcKeiStatErr = true;
					}

					// 出荷ロット番号内エラー存在フラグをON
					shukkaLotNoErrFlg = true;
					// 出力待ちデータリストに現在行の出荷完了明細データを追加
					shkaFinDtlData.put(KMK_NM_CHK_RESULT_FLG, CHK_RESULT_SVC_KEI_STAT_ERROR);
					spoolDataList.add(shkaFinDtlData);
					// 次行へ
					shkaFinReqMap = db_DK_T_SHKA_FIN_REQ.selectNext();
					continue;
				}
				// 出力待ちデータリストに現在行の出荷完了明細データを追加
				spoolDataList.add(shkaFinDtlData);
				shkaFinReqMap = db_DK_T_SHKA_FIN_REQ.selectNext();
			}
			// 出力待ちデータリストが1件以上である場合（出荷ロット番号の切り替えが一度も発生しなかった場合）
			if (spoolDataList.size() > 0)
			{
				// セット品構成チェック処理
				if (!shukkaLotNoErrFlg)
				{
					String retValue = chkSethnKose(spoolShukkaFinNo, spoolShukkaLotNo, spoolDataList);
					if (!isEmpty(retValue))
					{
						// 出荷ロット番号内エラー存在フラグをON
						shukkaLotNoErrFlg = true;
						// 出力待ちデータリストの対象行のチェック結果フラグにチェックエラーを設定
						for (int i = 0; i < spoolDataList.size(); i++)
						{
							if (retValue.equals(spoolDataList.get(i).get(KMK_NM_SHUKKA_LOT_KIKI_SEQ)))
							{
								spoolDataList.get(i).put(KMK_NM_CHK_RESULT_FLG, CHK_RESULT_ERROR);
								break;
							}
						}
					}
				}
				// 出荷完了登録処理
				createShkaFin(spoolShukkaFinNo, spoolShukkaLotNo, spoolDataList, shukkaLotNoErrFlg);
				// 出荷完了依頼の正常/エラー件数の更新処理
				if (shukkaLotNoErrFlg)
				{
					updRsltCnt(spoolShukkaFinNo, 0, spoolDataList.size());
				}
				else
				{
					updRsltCnt(spoolShukkaFinNo, spoolDataList.size(), 0);
				}
				// 出荷完了依頼のステータス更新処理（処理済）
				updShukkaReqStat(spoolShukkaFinNo, "3");
				super.commit();
			}
			// 督促用出荷完了情報受信（トレーラレコード）の出力処理
			if (eoSoutputLineCnt > 0)
			{
				outputTokusokuShkaFinTrailer(eoSoutputLineCnt);
			}
			
			// 機器出荷完了更新バッチ送信ファイル作成
			putKikiShkaFinUpdFile();
		}
		catch (Exception ex)
		{
			commonItem.getConnection().rollback();
			throw ex;
		}
		finally
		{
			// ファイル書込みオブジェクトをクローズ
			if (outputFileUtil != null)
			{
				try
				{
					outputFileUtil.close();
				}
				catch (Exception ex2)
				{
					super.logPrint.printDebugLog("ファイル書込みオブジェクトのクローズ失敗:" + outputFilePath);
				}
			}
			// マイナーアラーム処理
			if (minorErrFlg)
			{
				commonItem.addErrorCount(1);
			}
		}
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_DK_M_BAT_TRN_JOKEN.close();
		db_ZM_M_CD_NM_KANRI.close();
		db_DK_T_SHKA_FIN_REQ.close();
		db_DK_T_SHKA_FIN_DTL.close();
		db_DK_T_HAISO.close();
		db_DK_T_HAISO_TG_BPIN.close();
		db_KK_T_KKTK_SVC_KEI.close();
		db_KK_T_KAKINS.close();
		db_KK_T_SEIKY_KEI.close();
		db_DK_T_BAT_TKKIKI_WK.close();
		db_ZM_M_TAKNKIKI_MODEL.close();
		db_ZM_M_SETHN_KOSE.close();
		db_KK_M_PCRS.close();
		db_DK_T_HMPIN_KIKI.close();
		db_DK_T_SHKA_FIN_ERR.close();
		db_KK_T_SVKEI_EXC_CTRL.close();
		db_KK_T_SVC_KEI.close();
		db_DK_T_BAT_TKKBRZK_WK.close();
		db_KK_T_SVC_KEI_EOMOBA.close();
		db_KK_T_SVKEIUW_EOMOBA.close();
		db_KK_T_SVC_KEI_UCWK.close();
		db_KK_T_PRG.close();
		db_SC_T_SOD_WORK_KANRI.close();
		db_DK_T_SHKA_KIHON_INFO.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * SQLKEY(DK_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	バッチ処理条件種別コード
	 *		 	バッチ処理条件種別コード
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeDK_M_BAT_TRN_JOKEN_DK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(convNullToString(param[0]).toString());
		paramList.setValue(convNullToString(param[1]).toString());

		// DBアクセスを実行します
		db_DK_M_BAT_TRN_JOKEN.selectBySqlDefine(paramList, DK_M_BAT_TRN_JOKEN_DK_SELECT_001);
	}

	/**
	 * SQLKEY(DK_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	コード種別コード
	 *		 	コード区分
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZM_M_CD_NM_KANRI_DK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(convNullToString(param[0]).toString());
		paramList.setValue(convNullToString(param[1]).toString());

		// DBアクセスを実行します
		db_ZM_M_CD_NM_KANRI.selectBySqlDefine(paramList, ZM_M_CD_NM_KANRI_DK_SELECT_001);
	}

	/**
	 * SQLKEY(DK_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeDK_T_SHKA_FIN_REQ_DK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();

		// DBアクセスを実行します
		db_DK_T_SHKA_FIN_REQ.selectBySqlDefine(paramList, DK_T_SHKA_FIN_REQ_DK_SELECT_001);
	}

	/**
	 * SQLKEY(DK_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	出荷完了番号
	 *		 	出荷ロット番号
	 *		 	トムソンケース番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeDK_T_SHKA_FIN_DTL_DK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(convNullToString(param[0]).toString());
		paramList.setValue(convNullToString(param[1]).toString());
		paramList.setValue(convNullToString(param[2]).toString());

		// DBアクセスを実行します
		db_DK_T_SHKA_FIN_DTL.selectBySqlDefine(paramList, DK_T_SHKA_FIN_DTL_DK_SELECT_001);
	}

	/**
	 * SQLKEY(DK_SELECT_006)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	出荷ロット番号
	 *		 	出荷ロット番号機器通番
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeDK_T_HAISO_DK_SELECT_006(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(convNullToString(param[0]).toString());
		paramList.setValue(convNullToString(param[1]).toString());

		// DBアクセスを実行します
		db_DK_T_HAISO.selectBySqlDefine(paramList, DK_T_HAISO_DK_SELECT_006);
	}

	/**
	 * SQLKEY(DK_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	機器提供サービス契約番号
	 *		 	機器変更番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_KKTK_SVC_KEI_DK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(convNullToString(param[0]).toString());
		paramList.setValue(convNullToString(param[1]).toString());

		// DBアクセスを実行します
		db_KK_T_KKTK_SVC_KEI.selectBySqlDefine(paramList, KK_T_KKTK_SVC_KEI_DK_SELECT_001);
	}
	
	//OM-2014-0003452 ADD STAT
	/**
	 * SQLKEY(DK_SELECT_017)で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_DK_SELECT_017(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(convNullToString(param[0]).toString());
		paramList.setValue(convNullToString(param[1]).toString());
		paramList.setValue(convNullToString(param[2]).toString());

		// DBアクセスを実行します
		db_KK_T_KKTK_SVC_KEI.selectBySqlDefine(paramList, KK_T_KKTK_SVC_KEI_DK_SELECT_017);
	}
	//OM-2014-0003452 ADD END

	/**
	 * SQLKEY(DK_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 *		 	運用日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_KAKINS_DK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(convNullToString(param[0]).toString());
		paramList.setValue(convNullToString(param[1]).toString());

		// DBアクセスを実行します
		db_KK_T_KAKINS.selectBySqlDefine(paramList, KK_T_KAKINS_DK_SELECT_001);
	}

	/**
	 * SQLKEY(DK_SELECT_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	運用日付1
	 *		 	運用日付2
	 *		 	サービス契約番号
	 *		 	運用日付4
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_KAKINS_DK_SELECT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(convNullToString(param[0]).toString());
		paramList.setValue(convNullToString(param[1]).toString());
		paramList.setValue(convNullToString(param[2]).toString());
		paramList.setValue(convNullToString(param[3]).toString());

		// DBアクセスを実行します
		db_KK_T_KAKINS.selectBySqlDefine(paramList, KK_T_KAKINS_DK_SELECT_002);
	}

	/**
	 * SQLKEY(DK_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	請求契約番号
	 *		 	運用日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SEIKY_KEI_DK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(convNullToString(param[0]).toString());
		paramList.setValue(convNullToString(param[1]).toString());

		// DBアクセスを実行します
		db_KK_T_SEIKY_KEI.selectBySqlDefine(paramList, KK_T_SEIKY_KEI_DK_SELECT_001);
	}

	/**
	 * SQLKEY(DK_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 executeDK_T_BAT_TKKIKI_WK_DK_SELECT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(convNullToString(param[0]).toString());
		paramList.setValue(convNullToString(param[1]).toString());
		paramList.setValue(convNullToString(param[2]).toString());

		// DBアクセスを実行します
		db_DK_T_BAT_TKKIKI_WK.selectBySqlDefine(paramList, DK_T_BAT_TKKIKI_WK_DK_SELECT_002);
	}

	/**
	 * SQLKEY(DK_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 executeZM_M_TAKNKIKI_MODEL_DK_SELECT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(convNullToString(param[0]).toString());

		// DBアクセスを実行します
		db_ZM_M_TAKNKIKI_MODEL.selectBySqlDefine(paramList, ZM_M_TAKNKIKI_MODEL_DK_SELECT_002);
	}

	/**
	 * SQLKEY(DK_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	宅内機器セット品型コード
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZM_M_SETHN_KOSE_DK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(convNullToString(param[0]).toString());

		// DBアクセスを実行します
		db_ZM_M_SETHN_KOSE.selectBySqlDefine(paramList, ZM_M_SETHN_KOSE_DK_SELECT_001);
	}

	/**
	 * SQLKEY(DK_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	料金コースコード
	 *		 	運用日
	 *		 	運用日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_M_PCRS_DK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(convNullToString(param[0]).toString());
		paramList.setValue(convNullToString(param[1]).toString());
		paramList.setValue(convNullToString(param[2]).toString());

		// DBアクセスを実行します
		db_KK_M_PCRS.selectBySqlDefine(paramList, KK_M_PCRS_DK_SELECT_001);
	}

	/**
	 * SQLKEY(DK_UPDATE_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	機器製造番号
	 *		 	更新年月日時分秒
	 *		 	更新オペレータアカウント
	 *		 	機器提供サービス契約番号
	 *		 	機器変更番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_KKTK_SVC_KEI_DK_UPDATE_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(convNullToString(param[0]).toString());
		paramList.setValue(convNullToString(param[1]).toString());
		paramList.setValue(convNullToString(param[2]).toString());
		paramList.setValue(convNullToString(param[3]).toString());
		paramList.setValue(convNullToString(param[4]).toString());

		// DBアクセスを実行します
		db_KK_T_KKTK_SVC_KEI.executeBySqlDefine(paramList, KK_T_KKTK_SVC_KEI_DK_UPDATE_001);
	}

	/**
	 * SQLKEY(DK_SELECT_010)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	機器提供サービス契約番号
	 *		 	機器変更番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	/*
	private void executeDK_T_HAISO_DK_SELECT_010(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(convNullToString(param[0]).toString());
		paramList.setValue(convNullToString(param[1]).toString());

		// DBアクセスを実行します
		db_DK_T_HAISO.selectBySqlDefine(paramList, DK_T_HAISO_DK_SELECT_010);
	}
	*/
	
	/**
	 * SQLKEY(DK_SELECT_007)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	機器提供サービス契約番号
	 *		 	機器変更番号
	 *		 	読込出荷ロット番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	/*
	private void executeDK_T_HMPIN_KIKI_DK_SELECT_007(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(convNullToString(param[0]).toString());
		paramList.setValue(convNullToString(param[1]).toString());
		paramList.setValue(convNullToString(param[2]).toString());

		// DBアクセスを実行します
		db_DK_T_HMPIN_KIKI.selectBySqlDefine(paramList, DK_T_HMPIN_KIKI_DK_SELECT_007);
	}	
	*/
	
	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SVC_KEI_NO
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVKEI_EXC_CTRL_PKUPDATE(Object[] setParam, Object[] whereParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("LAST_UPD_DTM", convNullToString(setParam[0]).toString());
		setMap.setValue("UPD_UNYO_YMD", "UPD_UNYO");
		setMap.setValue("UPD_TRN_ID", "UPD_TRN");
	
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SVC_KEI_NO", convNullToString(whereParam[0]).toString());

		// DBアクセスを実行します
		db_KK_T_SVKEI_EXC_CTRL.updateByPrimaryKeys(whereMap, setMap);
	}

	/**
	 * SQLKEY(DK_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVKEI_EXC_CTRL_DK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(convNullToString(param[0]).toString());

		// DBアクセスを実行します
		db_KK_T_SVKEI_EXC_CTRL.selectBySqlDefine(paramList, KK_T_SVKEI_EXC_CTRL_DK_SELECT_001);
	}

	/**
	 * SQLKEY(DK_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 *		 	運用日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVC_KEI_DK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(convNullToString(param[0]).toString());
		paramList.setValue(convNullToString(param[1]).toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_DK_SELECT_001);
	}

	/**
	 * SQLKEY(DK_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	ジョブＩＤ
	 *		 	管理場所識別コード
	 *		 	管理場所コード
	 *		 	管理場所棚コード
	 *		 	宅内機器型式コード
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeDK_T_BAT_TKKBRZK_WK_DK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(convNullToString(param[0]).toString());
		paramList.setValue(convNullToString(param[1]).toString());
		paramList.setValue(convNullToString(param[2]).toString());
		paramList.setValue(convNullToString(param[3]).toString());
		paramList.setValue(convNullToString(param[4]).toString());

		// DBアクセスを実行します
		db_DK_T_BAT_TKKBRZK_WK.selectBySqlDefine(paramList, DK_T_BAT_TKKBRZK_WK_DK_SELECT_001);
	}

	/**
	 * SQLKEY(DK_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVC_KEI_EOMOBA_DK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(convNullToString(param[0]).toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI_EOMOBA.selectBySqlDefine(paramList, KK_T_SVC_KEI_EOMOBA_DK_SELECT_001);
	}

	/**
	 * SQLKEY(DK_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約内訳番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVKEIUW_EOMOBA_DK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(convNullToString(param[0]).toString());

		// DBアクセスを実行します
		db_KK_T_SVKEIUW_EOMOBA.selectBySqlDefine(paramList, KK_T_SVKEIUW_EOMOBA_DK_SELECT_001);
	}


	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SVC_KEI_NO
	 *		 	GENE_ADD_DTM
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return JBSbatCommonDBInterface 検索の結果。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeKK_T_SVC_KEI_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SVC_KEI_NO", whereParam[0]);
		whereMap.setValue("GENE_ADD_DTM", whereParam[1]);

		// DBアクセスを実行します
		return db_KK_T_SVC_KEI.selectByPrimaryKeys(whereMap);
	}

	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SVC_KEI_UCWK_NO
	 *		 	GENE_ADD_DTM
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return JBSbatCommonDBInterface 検索の結果。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeKK_T_SVC_KEI_UCWK_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SVC_KEI_UCWK_NO", whereParam[0]);
		whereMap.setValue("GENE_ADD_DTM", whereParam[1]);

		// DBアクセスを実行します
		return db_KK_T_SVC_KEI_UCWK.selectByPrimaryKeys(whereMap);
	}
	
	/**
	 * SQLKEY(DK_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 *		 	運用日付
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVC_KEI_UCWK_DK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI_UCWK.selectBySqlDefine(paramList, KK_T_SVC_KEI_UCWK_DK_SELECT_001);
	}
	
	/**
	 * SQLKEY(DK_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	運用日付
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeSC_T_SOD_WORK_KANRI_DK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_SC_T_SOD_WORK_KANRI.selectBySqlDefine(paramList, SC_T_SOD_WORK_KANRI_DK_SELECT_001);
	}

	/**
	 * SQLKEY(DK_SELECT_004)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	出荷ロット番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeDK_T_SHKA_KIHON_INFO_DK_SELECT_004(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_DK_T_SHKA_KIHON_INFO.selectBySqlDefine(paramList, DK_T_SHKA_KIHON_INFO_DK_SELECT_004);
	}

	/**
	 * SQLKEY(DK_SELECT_009)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	機器提供サービス契約番号
	 *		 	機器変更番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeDK_T_HMPIN_KIKI_DK_SELECT_009(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_DK_T_HMPIN_KIKI.selectBySqlDefine(paramList, DK_T_HMPIN_KIKI_DK_SELECT_009);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/

	/**
	 * 出荷完了登録処理
	 * @param spoolShukkaFinNo 出力待ち出荷完了番号
	 * @param spoolShukkaLotNo 出力待ち出荷ロット番号
	 * @param spoolDataList 出力待ちデータリスト
	 * @param shukkaLotNoErrFlg 出荷ロット番号内エラー存在フラグ
	 * @throws Exception 
	 */
	private void createShkaFin(String spoolShukkaFinNo, String spoolShukkaLotNo,
			List<Map<String, String>> spoolDataList, boolean shukkaLotNoErrFlg) throws Exception
	{
		JBSbatCommonDBInterface setMap = null;
		JBSbatCommonDBInterface whereMap = null;
		JBSbatCommonDBInterface resultMap = null;
		Map<String,Map<String, String>> sinMap = new HashMap<String, Map<String, String>>();
		
		//List<String> updHaisoNoList = new ArrayList<String>();
		//boolean updHmpinKikiFlg = false;			// 返品機器登録の指示フラグ
		boolean chkResultFlgErr = false;			// 出力待ちデータリスト内にチェック結果フラグが1（チェックエラー）のデータが存在するかのフラグ
		//boolean chkResultFlgShkaAriErr = false;	// 出力待ちデータリスト内にチェック結果フラグが2（出荷有りエラー）のデータが存在するかのフラグ
		//boolean chkResultFlgSvcKeiErr = false;		// 出力待ちデータリスト内にチェック結果フラグが3（サービス契約ステータス不正）のデータが存在するかのフラグ

		// 出力待ちデータリスト内にチェック結果フラグが1（チェックエラー）のデータが存在する場合
		if(isChkResultFlg(spoolDataList, CHK_RESULT_ERROR))
		{
			chkResultFlgErr = true;
		}
		// 出力待ちデータリスト内にチェック結果フラグが2（出荷有りエラー）のデータが存在する場合
		if(isChkResultFlg(spoolDataList, CHK_RESULT_SHKA_ARI_ERROR))
		{
			//chkResultFlgShkaAriErr = true;
		}
		// 出力待ちデータリスト内にチェック結果フラグが3（サービス契約ステータス不正）のデータが存在する場合
		if(isChkResultFlg(spoolDataList, CHK_RESULT_SVC_KEI_STAT_ERROR))
		{
			//chkResultFlgSvcKeiErr = true;
		}

		for (int i = 0; i < spoolDataList.size(); i++)
		{
			String shukkaLotKikiSeq = spoolDataList.get(i).get(KMK_NM_SHUKKA_LOT_KIKI_SEQ);				// 出荷ロット番号機器通番
			String svcKeiNo = spoolDataList.get(i).get(KMK_NM_SVC_KEI_NO);								// サービス契約番号
			String haisoNo = spoolDataList.get(i).get(KMK_NM_HAISO_NO);									// 配送番号
			String kojiCompCd = spoolDataList.get(i).get(KMK_NM_KOJI_COMP_CD);							// 工事会社コード
			String placeNo = spoolDataList.get(i).get(KMK_NM_PLACE_NO);									// 場所番号
			String kktkSvcKeiNo = spoolDataList.get(i).get(KMK_NM_KKTK_SVC_KEI_NO);						// 機器提供サービス契約番号
			String kktkSbtCd = spoolDataList.get(i).get(KMK_NM_KKTK_SBT_CD);							// 機器提供種別コード
			String kikiChgNo = spoolDataList.get(i).get(KMK_NM_KIKI_CHG_NO);							// 機器変更番号
			//String taknkikiModelCd = spoolDataList.get(i).get(KMK_NM_TAKNKIKI_MODEL_CD);				// 宅内機器型式コード
			String kikiSeizoNo = spoolDataList.get(i).get(KMK_NM_KIKI_SEIZO_NO);						// 機器製造番号
			//String svcKeiStat = spoolDataList.get(i).get(KMK_NM_SVC_KEI_STAT);						// サービス契約ステータス
			//String btryhoznNo = spoolDataList.get(i).get(KMK_NM_BTRYHOZN_NO);							// 物流保全番号
			String addOptntyKeiIdoDiv = spoolDataList.get(i).get(KMK_NM_ADD_OPTNTY_KEI_IDO_DIV);		// 登録契機契約異動区分
			String addOptntyKeiIdoDtm = spoolDataList.get(i).get(KMK_NM_ADD_OPTNTY_KEI_IDO_DTM);		// 登録契機契約異動年月日時分秒
			String shkaFinDtlTaknkikiModelCd = spoolDataList.get(i).get(KMK_NM_SHKA_FIN_DTL_MODEL_CD);	// 出荷完了明細の宅内機器型式コード
			String taknkikiSethinNo = spoolDataList.get(i).get(KMK_NM_TAKNKIKI_SETHIN_NO);				// 宅内機器セット品番号
			String tcaseNo = spoolDataList.get(i).get(KMK_NM_TCASE_NO);									// トムソンケース番号			
			String denpyoNo = spoolDataList.get(i).get(KMK_NM_DENPYO_NO);								// 伝票No
			//String hisosKsiteiFlg = spoolDataList.get(i).get(KMK_NM_HISOS_KSITEI_FLG);					// 配送先個別指定フラグ
			String joiTaknkikiModelCd = spoolDataList.get(i).get(KMK_NM_JOI_TAKNKIKI_MODEL_CD);			// 上位宅内機器型式コード
			String joiKikiSeizoNo = spoolDataList.get(i).get(KMK_NM_JOI_KIKI_SEIZO_NO);					// 上位機器製造番号
			//String taknkikiPlaceNo = spoolDataList.get(i).get(KMK_NM_TAKNKIKI_PLACE_NO);				// 宅内機器場所番号
			String haisoTaibpinNo = spoolDataList.get(i).get(KMK_NM_HAISO_TAIBPIN_NO);					// 配送対象物品番号
			String hojinSvcKeiUkNo = spoolDataList.get(i).get(KMK_NM_HOJIN_SVC_KEI_UK_NO);				// 法人サービス契約受付番号
			String kojiakNo = spoolDataList.get(i).get(KMK_NM_KOJIAK_NO);								// 工事案件番号
			//String svcKeiUcwkNo = spoolDataList.get(i).get(KMK_NM_SVC_KEI_UCWK_NO);						// サービス契約内訳番号
			String emKeishaCd = spoolDataList.get(i).get(KMK_NM_EM_KEISHA_CD);							// ＥＭ契約者コード
			String uqNinshoId = spoolDataList.get(i).get(KMK_NM_UQ_NINSHO_ID);							// ＵＱ認証ＩＤ
			String uqPwd = spoolDataList.get(i).get(KMK_NM_UQ_PWD);										// ＵＱ認証ＩＤパスワード
			String taknkikiSbtCd = spoolDataList.get(i).get(KMK_NM_TAKNKIKI_SBT_CD);					// 宅内機器種別コード
			String sokoCd = spoolDataList.get(i).get(KMK_NM_SOKO_CD);									// 倉庫コード
			String shelfCd = spoolDataList.get(i).get(KMK_NM_SHELF_CD);									// 棚コード
			String oyaKeiSkbtCd = spoolDataList.get(i).get(KMK_NM_OYA_KEI_SKBT_CD);						// 親契約識別コード
			
			// エラーが存在しない場合は配送の更新（出荷有りエラーは更新対象）
			if (!chkResultFlgErr && !updHaisoNoList.contains(haisoNo))
			{
				// レコードロックを取得
				try
				{
					whereMap = new JBSbatCommonDBInterface();
					whereMap.setValue("HAISO_NO", haisoNo);
					resultMap = db_DK_T_HAISO.selectByPrimaryKeysForUpdateWait(whereMap);
					if (resultMap == null || !"0".equals(resultMap.getString("MK_FLG")))
					{
						throw new Exception("配送情報なし");
					}
				}
				catch (Exception ex)
				{
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
							getKeyInfo("配送", "配送番号", haisoNo));
					throw ex;
				}
				// 更新実行
				try
				{
					setMap = new JBSbatCommonDBInterface();
					setMap.setValue("HAISO_STAT", "004");				// 配送ステータス
					setMap.setValue("SHUKKA_YMD", super.opeDate);		// 出荷年月日
					setMap.setValue("HAISO_FIN_YMD", super.opeDate);	// 配送完了年月日
					// DBアクセスを実行します
					db_DK_T_HAISO.updateByPrimaryKeys(whereMap, setMap);
				}
				catch (Exception ex)
				{
					String[] updHaisoKeyNm = {"サービス契約番号", "出荷ロット番号", "配送番号"};
					String[] updHaisoKey = {svcKeiNo, spoolShukkaLotNo, haisoNo};
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0040CE,
							getKeyInfo("配送", updHaisoKeyNm, updHaisoKey));
					throw ex;
				}
				// 更新した配送番号を退避しておく
				updHaisoNoList.add(haisoNo);
			}
			
			// 配送対象物品の更新
			if (!chkResultFlgErr)
			{
				// 更新実行
				try
				{
					whereMap = new JBSbatCommonDBInterface();
					whereMap.setValue("HAISO_TAIBPIN_NO", haisoTaibpinNo);			// 配送対象物品番号
					setMap = new JBSbatCommonDBInterface();
					if (!isEmpty(kikiSeizoNo))
					{
						setMap.setValue("KIKI_SEIZO_NO", kikiSeizoNo);				// 機器製造番号
					}
					if (!isEmpty(taknkikiSethinNo))
					{
						setMap.setValue("TAKNKIKI_SETHIN_NO", taknkikiSethinNo);	// 宅内機器セット品番号
					}
					setMap.setValue("TCASE_NO", tcaseNo);							// トムソンケース番号
					setMap.setValue("DENPYO_NO", denpyoNo);							// 伝票番号

					// DBアクセスを実行します
					db_DK_T_HAISO_TG_BPIN.updateByPrimaryKeys(whereMap, setMap);
				}
				catch (Exception ex)
				{
					String[] updHaisoKeyNm = {"サービス契約番号", "出荷ロット番号", "出荷ロット番号機器通番", "配送番号", "配送対象物品番号"};
					String[] updHaisoKey = {svcKeiNo, spoolShukkaLotNo, shukkaLotKikiSeq, haisoNo, haisoTaibpinNo};
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0040CE,
							getKeyInfo("配送対象物品", updHaisoKeyNm, updHaisoKey));
					throw ex;
				}
			}

			/*
			// 機器提供種別コードが"02"(レンタル)で、かつ登録契機契約異動区分が"00028"(機器機種変更)の場合
			if (isEmpty(hojinSvcKeiUkNo) && !chkResultFlgErr && kktkSbtCd.equals(KKTK_SBT_CD_RENTAL) && addOptntyKeiIdoDiv.equals(ADD_OPTNTY_KEI_IDO_DIV_KISHU_HEN))
			{
				// 機種変更の旧機器の情報を取得
				String[] keyNm = {"機器提供サービス契約番号", "機器変更番号"};
				String[] key = {kktkSvcKeiNo, kikiChgNo};
				String hmpinShukkaLotNo = "";		// 返品用出荷ロット番号
				String hmpinKktkSvcKeiNo = "";		// 返品用機器提供サービス契約番号
				String hmpinKikiChgNo = "";			// 返品用機器変更番号
				String hmpinTaknkikiModelCd = "";	// 返品用宅内機器型式コード
				String hmpinHuzokuhinModelCd = "";	// 返品用付属品型式コード
				String hmpinKikiSeizoNo = "";		// 返品用機器製造番号
				String hmpinKktkSbtCd = "";			// 返品用機器提供種別コード
				String hmpinKojiCompCd = "";		// 返品用工事会社コード
				String hmpinPlaceNo = "";			// 返品用場所番号
				String hmpinDataCount = "";			// 返品用データ件数
				
				try
				{
					executeDK_T_HAISO_DK_SELECT_010(key);
					resultMap = db_DK_T_HAISO.selectNext();
					
					if (resultMap != null)
					{
						hmpinShukkaLotNo = convNullToString(resultMap.getString("SHUKKA_LOT_NO"));
						hmpinKktkSvcKeiNo = convNullToString(resultMap.getString("KKTK_SVC_KEI_NO"));
						hmpinKikiChgNo = convNullToString(resultMap.getString("KIKI_CHG_NO"));
						hmpinTaknkikiModelCd = convNullToString(resultMap.getString("TAKNKIKI_MODEL_CD"));
						hmpinHuzokuhinModelCd = convNullToString(resultMap.getString("HUZOKUHIN_MODEL_CD"));
						hmpinKikiSeizoNo = convNullToString(resultMap.getString("KIKI_SEIZO_NO"));
						hmpinKktkSbtCd = convNullToString(resultMap.getString("KKTK_SBT_CD"));
						hmpinKojiCompCd = convNullToString(resultMap.getString("KOJI_COMP_CD"));
						hmpinPlaceNo = convNullToString(resultMap.getString("PLACE_NO"));
					}
				}
				catch (Exception ex)
				{
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
							getKeyInfo("配送", keyNm, key));
					throw ex;
				}

				// 旧機器の返品機器が存在するか確認
				if (resultMap != null)
				{
					keyNm = new String[] {"機器提供サービス契約番号", "機器変更番号", "出荷ロット番号"};
					key = new String[] {hmpinKktkSvcKeiNo, hmpinKikiChgNo, hmpinShukkaLotNo};
					
					try
					{
						executeDK_T_HMPIN_KIKI_DK_SELECT_007(key);
						resultMap = db_DK_T_HMPIN_KIKI.selectNext();
						
						if (resultMap != null)
						{
							hmpinDataCount = convNullToString(resultMap.getString("CNT"));
						}
					}
					catch (Exception ex)
					{
						commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
								getKeyInfo("返品機器", keyNm, key));
						throw ex;
					}
				}

				// 返品機器が作成されていない場合返品機器の登録
				if ("0".equals(hmpinDataCount))
				{

					// 返品機器番号を採番
					String hmpinKikiNo = JCCBatCommon.getFormatedNextSeq(commonItem, SEQ_HMPIN_KIKI_NO, prefixHmpinKikiNo, 8);
					// 登録実行
					try
					{
						setMap = new JBSbatCommonDBInterface();
						setMap.setValue("HMPIN_KIKI_NO", hmpinKikiNo);					// 返品機器番号
						setMap.setValue("HMPIN_KIKI_STAT", "001");						// 返品機器ステータス
						setMap.setValue("HMPIN_UK_YMD", super.opeDate);					// 返品受付年月日
						setMap.setValue("HMPIN_DIV", "5");								// 返品区分
						setMap.setValue("KOJI_COMP_CD", hmpinKojiCompCd);				// 工事会社コード
						setMap.setValue("PLACE_NO", hmpinPlaceNo);						// 場所番号
						setMap.setValue("KKTK_SVC_KEI_NO", hmpinKktkSvcKeiNo);			// 機器提供サービス契約番号
						setMap.setValue("KIKI_CHG_NO", hmpinKikiChgNo);					// 機器変更番号
						setMap.setValue("TAKNKIKI_MODEL_CD", hmpinTaknkikiModelCd);		// 宅内機器型式コード
						setMap.setValue("KIKI_SEIZO_NO", hmpinKikiSeizoNo);				// 機器製造番号
						setMap.setValue("HUZOKUHIN_MODEL_CD", hmpinHuzokuhinModelCd);	// 付属品型式コード
						setMap.setValue("ADD_OPTNTY_KEI_IDO_DIV", addOptntyKeiIdoDiv);	// 登録契機契約異動区分
						setMap.setValue("ADD_OPTNTY_KEI_IDO_DTM", super.opeDate + JCCBatCommon.getSysDateTime().substring(8));	// 登録契機契約異動年月日時分秒
						setMap.setValue("LOAD_OYA_SVKEI_NO", svcKeiNo);					// 読込親サービス契約番号 
						setMap.setValue("LOAD_SHKA_LOT_NO", hmpinShukkaLotNo);			// 読込親出荷ロット番号
						setMap.setValue("TK_SBT_CD", hmpinKktkSbtCd);					// 提供種別コード
						// DBアクセスを実行します
						db_DK_T_HMPIN_KIKI.insertByPrimaryKeys(setMap);
					}
					catch (Exception ex)
					{
						String[] createHmpinKikiKeyNm = {"サービス契約番号", "機器提供サービス契約番号", "出荷ロット番号", "出荷ロット番号機器通番", "機器製造番号"};
						String[] createHmpinKikiKey = {svcKeiNo, hmpinKktkSvcKeiNo, spoolShukkaLotNo, shukkaLotKikiSeq, hmpinKikiSeizoNo};
						commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0070CE,
								getKeyInfo("返品機器", createHmpinKikiKeyNm, createHmpinKikiKey));
						throw ex;
					}
				}
			}
			*/

			// サービス契約排他制御
			// チェックエラーが存在しない
			// 法人の契約機器でない
			// （機器製造番号が設定されている、または、宅内機器種別コードがモバイル機器かＵＱ機器の場合
			String newGeneDtm = JCCBatCommon.getSysDateTimeStamp();
			if (!chkResultFlgErr
				&& isEmpty(hojinSvcKeiUkNo) 
				&& (!isEmpty(kikiSeizoNo) || TAKNKIKI_SBT_CD_EOMOBA.equals(taknkikiSbtCd) || TAKNKIKI_SBT_CD_UQ.equals(taknkikiSbtCd)))
			{
				// 回線に紐付くサービス契約番号リスト
				List<String> svcKeiNoList = new ArrayList<String>();

				// サービス契約排他制御のレコードロックを取得
				String[] paramValue = null;
				// ONU、V-ONU機器の場合
				if (SVC_KEI_KAISEN_UCWK.equals(oyaKeiSkbtCd))
				{
					try
					{
						paramValue = new String[] {
								spoolShukkaLotNo
						};

						// 回線に紐付くサービス契約番号を取得
						executeDK_T_SHKA_KIHON_INFO_DK_SELECT_004(paramValue);
						resultMap = db_DK_T_SHKA_KIHON_INFO.selectNext();

						if (resultMap == null)
						{
							throw new Exception("サービス契約回線内訳情報なし");
						}
					}
					catch (Exception ex)
					{
						commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
								getKeyInfo("機器提供サービス契約",
										new String[] {"機器提供サービス契約番号", "機器変更番号"},
										new String[] {kktkSvcKeiNo, kikiChgNo}));
						throw ex;
					}

					try
					{
						while (resultMap != null)
						{
							// 回線に紐付くサービス契約番号
							String kaisenSvcKeiNo = resultMap.getString("SVC_KEI_NO");

							// サービス契約排他制御のレコードをロック
							paramValue = new String[] {
									kaisenSvcKeiNo
							};

							this.executeKK_T_SVKEI_EXC_CTRL_DK_SELECT_001(paramValue);
							resultMap = db_KK_T_SVKEI_EXC_CTRL.selectNext();

							if (resultMap == null)
							{
								throw new Exception("サービス契約排他制御情報なし");
							}

							// サービス契約番号をサービス契約番号リストに追加
							svcKeiNoList.add(kaisenSvcKeiNo);
							resultMap = db_DK_T_SHKA_KIHON_INFO.selectNext();
						}
					}
					catch (Exception ex)
					{
						commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
								getKeyInfo("サービス契約排他制御", "サービス契約番号", svcKeiNo));
						throw ex;
					}
				}
				else
				{
					try
					{
						paramValue = new String[] {
								svcKeiNo
						};

						this.executeKK_T_SVKEI_EXC_CTRL_DK_SELECT_001(paramValue);
						resultMap = db_KK_T_SVKEI_EXC_CTRL.selectNext();

						if (resultMap == null)
						{
							throw new Exception("サービス契約排他制御情報なし");
						}
					}
					catch (Exception ex)
					{
						commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
								getKeyInfo("サービス契約排他制御", "サービス契約番号", svcKeiNo));
						throw ex;
					}
				}

				// サービス契約排他制御の更新
				newGeneDtm = JCCBatCommon.getSysDateTimeStamp();
				String[] setParamValue = new String[] {newGeneDtm};
				// ONU、V-ONU機器の場合
				if (SVC_KEI_KAISEN_UCWK.equals(oyaKeiSkbtCd))
				{
					for (String kaisenSvcKeiNo : svcKeiNoList)
					{
						try
						{
							String[] whereParamValue = new String[] {kaisenSvcKeiNo};
							this.executeKK_T_SVKEI_EXC_CTRL_PKUPDATE(setParamValue, whereParamValue);
						}
						catch (Exception ex)
						{
							String[] svcKeiKeyNm = {"サービス契約番号", "出荷ロット番号"};
							String[] svcKeiKey = {kaisenSvcKeiNo, spoolShukkaLotNo};
							commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0040CE,
									getKeyInfo("サービス契約排他制御", svcKeiKeyNm, svcKeiKey));
							throw ex;
						}
					}
				}
				else
				{
					try
					{
						String[] whereParamValue = new String[] {svcKeiNo};
						this.executeKK_T_SVKEI_EXC_CTRL_PKUPDATE(setParamValue, whereParamValue);
					}
					catch (Exception ex)
					{
						String[] svcKeiKeyNm = new String[] {"サービス契約番号", "出荷ロット番号"};
						String[] svcKeiKey = new String[] {svcKeiNo, spoolShukkaLotNo};
						commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0040CE,
								getKeyInfo("サービス契約排他制御", svcKeiKeyNm, svcKeiKey));
						throw ex;
					}
				}
			}

			if (!chkResultFlgErr && !isEmpty(kikiSeizoNo) && isEmpty(hojinSvcKeiUkNo))
			{
				// 返品機器の更新（出荷指図中の解約対応）
				try
				{
					String[] paramValue = new String[] {
							kktkSvcKeiNo,
							kikiChgNo
					};

					executeDK_T_HMPIN_KIKI_DK_SELECT_009(paramValue);
					resultMap = db_DK_T_HMPIN_KIKI.selectNext();

					// 機器製造番号が未設定の返品機器情報が存在する場合
					if (resultMap != null)
					{
						whereMap = new JBSbatCommonDBInterface();
						// 返品機器番号
						whereMap.setValue("HMPIN_KIKI_NO", resultMap.getString("HMPIN_KIKI_NO"));
						setMap = new JBSbatCommonDBInterface();
						// 機器製造番号
						setMap.setValue("KIKI_SEIZO_NO", kikiSeizoNo);

						db_DK_T_HMPIN_KIKI.updateByPrimaryKeys(whereMap, setMap);
					}
				}
				catch (Exception ex)
				{
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0040CE,
							getKeyInfo("返品機器",
									new String[] {"機器提供サービス契約番号", "機器変更番号"},
									new String[] {kktkSvcKeiNo, kikiChgNo}));
					throw ex;
				}

				// 機器提供サービス契約の更新
				try
				{
					String[] paramValue = new String[]{kikiSeizoNo,  JCCBatCommon.getSysDateTimeStamp(), super.batchUserId, kktkSvcKeiNo, kikiChgNo};
					this.executeKK_T_KKTK_SVC_KEI_DK_UPDATE_001(paramValue);
				}
				catch (Exception ex)
				{
					String[] kktkSvcKeiKeyNm = {"サービス契約番号", "機器提供サービス契約番号", "出荷ロット番号", "出荷ロット番号機器通番"};
					String[] kktkSvcKeiKey = {svcKeiNo, kktkSvcKeiNo, spoolShukkaLotNo, shukkaLotKikiSeq};
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0040CE,
							getKeyInfo("機器提供サービス契約", kktkSvcKeiKeyNm, kktkSvcKeiKey));
					throw ex;
				}
			}

			// サービス契約<eoモバイル>の登録
			if (!chkResultFlgErr && isEmpty(hojinSvcKeiUkNo) && 
					(TAKNKIKI_SBT_CD_EOMOBA.equals(taknkikiSbtCd) || TAKNKIKI_SBT_CD_UQ.equals(taknkikiSbtCd)))
			{
				// サービス契約<eoモバイル>のカレントレコードを取得
				try
				{
					String[] paramValue = new String[]{svcKeiNo};
					this.executeKK_T_SVC_KEI_EOMOBA_DK_SELECT_001(paramValue);
					resultMap = db_KK_T_SVC_KEI_EOMOBA.selectNext();

					if (resultMap == null)
					{
						throw new Exception("サービス契約<eoモバイル>情報なし");
					}
				}
				catch (Exception ex)
				{
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
							getKeyInfo("サービス契約<eoモバイル>", "サービス契約番号", svcKeiNo));
					throw ex;
				}

				// 障害調査用ログ
				super.logPrint.printDebugLog("◆サービス契約<eoモバイル>のカレントレコード取得================================================================");
				super.logPrint.printDebugLog("対象：サービス契約番号=" + svcKeiNo);
				super.logPrint.printDebugLog("取得：サービス契約番号=" + convNullToString(resultMap.getString("SVC_KEI_NO")));
				super.logPrint.printDebugLog("取得：世代登録年月日時分秒=" + convNullToString(resultMap.getString("GENE_ADD_DTM")));
				
				// サービス契約<eoモバイル>の最新世代の登録
				try
				{
					String zigyoshaKeiCd = emKeishaCd;
					
					if (TAKNKIKI_SBT_CD_UQ.equals(taknkikiSbtCd))
					{
						zigyoshaKeiCd = cuiHead + convNullToString(resultMap.getString("SVC_KEI_NO"));
					}
					
					// ＰＫマップ作成
					Map<String, Object> pkMap = new HashMap<String, Object>();
					pkMap.put("SVC_KEI_NO", convNullToString(resultMap.getString("SVC_KEI_NO")));
					pkMap.put("GENE_ADD_DTM", convNullToString(resultMap.getString("GENE_ADD_DTM")));
					// ＶＡＬＵＥマップ作成
					Map<String, Object> valueMap = new HashMap<String, Object>();
					valueMap.put("GENE_ADD_DTM", newGeneDtm);
					valueMap.put("JIGYOSHA_KEI_ID", zigyoshaKeiCd);
					
					// 障害調査用ログ
					super.logPrint.printDebugLog("◆サービス契約<eoモバイル>登録前================================================================");
					super.logPrint.printDebugLog("対象：サービス契約番号=" + svcKeiNo);
					super.logPrint.printDebugLog("ＰＫ：サービス契約番号=" + pkMap.get("SVC_KEI_NO").toString());
					super.logPrint.printDebugLog("ＰＫ：世代登録年月日時分秒=" + pkMap.get("GENE_ADD_DTM").toString());
					super.logPrint.printDebugLog("登録：世代登録年月日時分秒=" + valueMap.get("GENE_ADD_DTM").toString());
					super.logPrint.printDebugLog("登録：事業者契約者ID=" + valueMap.get("JIGYOSHA_KEI_ID").toString());
					
					// ＰＫ検索した値にvalueMapの情報を上書きしたデータを登録
					JDKBatCommon.insertByPrimaryKeys(commonItem, db_KK_T_SVC_KEI_EOMOBA, pkMap, valueMap);
				}
				catch (Exception ex)
				{
					String[] svcKeiEomobaKeyNm = {"サービス契約番号", "世代登録年月日時分秒"};
					String[] svcKeiEomobaKey = {svcKeiNo, newGeneDtm};
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0070CE,
							getKeyInfo("サービス契約<eoモバイル>", svcKeiEomobaKeyNm, svcKeiEomobaKey));
					throw ex;
				}

				// サービス契約のカレントレコードを取得
				JBSbatCommonDBInterface resultMapSvcKei = null;
				try
				{
					String[] paramValue = new String[]{svcKeiNo, resultMap.getString("GENE_ADD_DTM")};
					resultMapSvcKei = this.executeKK_T_SVC_KEI_PKSELECT(paramValue);

					if (resultMapSvcKei == null)
					{
						throw new Exception("サービス契約情報なし");
					}
				}
				catch (Exception ex)
				{
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
							getKeyInfo("サービス契約", "サービス契約番号", svcKeiNo));
					throw ex;
				}

				// 障害調査用ログ
				super.logPrint.printDebugLog("◆サービス契約のカレントレコード取得================================================================");
				super.logPrint.printDebugLog("対象：サービス契約番号=" + svcKeiNo);
				super.logPrint.printDebugLog("対象：世代登録年月日時分秒=" + resultMap.getString("GENE_ADD_DTM"));
				super.logPrint.printDebugLog("取得：サービス契約番号=" + convNullToString(resultMapSvcKei.getString("SVC_KEI_NO")));
				super.logPrint.printDebugLog("取得：世代登録年月日時分秒=" + convNullToString(resultMapSvcKei.getString("GENE_ADD_DTM")));
			
				// サービス契約の最新世代の登録
				try
				{
					// ＰＫマップ作成
					Map<String, Object> pkMap = new HashMap<String, Object>();
					pkMap.put("SVC_KEI_NO", convNullToString(resultMapSvcKei.getString("SVC_KEI_NO")));
					pkMap.put("GENE_ADD_DTM", convNullToString(resultMapSvcKei.getString("GENE_ADD_DTM")));
					// ＶＡＬＵＥマップ作成
					Map<String, Object> valueMap = new HashMap<String, Object>();
					valueMap.put("GENE_ADD_DTM", newGeneDtm);

					// 障害調査用ログ
					super.logPrint.printDebugLog("◆サービス契約登録前================================================================");
					super.logPrint.printDebugLog("対象：サービス契約番号=" + svcKeiNo);
					super.logPrint.printDebugLog("対象：世代登録年月日時分秒=" + resultMap.getString("GENE_ADD_DTM"));
					super.logPrint.printDebugLog("ＰＫ：サービス契約番号=" + pkMap.get("SVC_KEI_NO").toString());
					super.logPrint.printDebugLog("ＰＫ：世代登録年月日時分秒=" + pkMap.get("GENE_ADD_DTM").toString());
					super.logPrint.printDebugLog("登録：世代登録年月日時分秒=" + valueMap.get("GENE_ADD_DTM").toString());
					
					// ＰＫ検索した値にvalueMapの情報を上書きしたデータを登録
					JDKBatCommon.insertByPrimaryKeys(commonItem, db_KK_T_SVC_KEI, pkMap, valueMap);
				}
				catch (Exception ex)
				{
					String[] svcKeiKeyNm = {"サービス契約番号", "世代登録年月日時分秒"};
					String[] svcKeiKey = {svcKeiNo, newGeneDtm};
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0070CE,
							getKeyInfo("サービス契約", svcKeiKeyNm, svcKeiKey));
					throw ex;
				}
			}
			
			// サービス契約内訳<eoモバイル>の登録
			if (!chkResultFlgErr && isEmpty(hojinSvcKeiUkNo) && TAKNKIKI_SBT_CD_UQ.equals(taknkikiSbtCd))
			{
				// サービス契約内訳番号を取得
				String svcKeiUcwkNoUq = new String();
				try
				{
					String[] paramValue = new String[]{svcKeiNo, super.opeDate};
					this.executeKK_T_SVC_KEI_UCWK_DK_SELECT_001(paramValue);
					resultMap = db_KK_T_SVC_KEI_UCWK.selectNext();

					if (resultMap == null)
					{
						throw new Exception("サービス契約内訳情報なし");
					}
					svcKeiUcwkNoUq = convNullToString(resultMap.getString("SVC_KEI_UCWK_NO"));
				}
				catch (Exception ex)
				{
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
							getKeyInfo("サービス契約内訳", "サービス契約番号", svcKeiNo));
					throw ex;
				}

				// サービス契約内訳<eoモバイル>のカレントレコードを取得
				try
				{
					String[] paramValue = new String[]{svcKeiUcwkNoUq};
					this.executeKK_T_SVKEIUW_EOMOBA_DK_SELECT_001(paramValue);
					resultMap = db_KK_T_SVKEIUW_EOMOBA.selectNext();

					if (resultMap == null)
					{
						throw new Exception("サービス契約内訳<eoモバイル>情報なし");
					}
				}
				catch (Exception ex)
				{
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
							getKeyInfo("サービス契約内訳<eoモバイル>", "サービス契約内訳番号", svcKeiUcwkNoUq));
					throw ex;
				}

				// サービス契約内訳<eoモバイル>の最新世代の登録
				try
				{
					// ＰＫマップ作成
					Map<String, Object> pkMap = new HashMap<String, Object>();
					pkMap.put("SVC_KEI_UCWK_NO", convNullToString(resultMap.getString("SVC_KEI_UCWK_NO")));
					pkMap.put("GENE_ADD_DTM", convNullToString(resultMap.getString("GENE_ADD_DTM")));
					// ＶＡＬＵＥマップ作成
					Map<String, Object> valueMap = new HashMap<String, Object>();
					valueMap.put("GENE_ADD_DTM", newGeneDtm);
					valueMap.put("UQ_NINSHO_ID", uqNinshoId);
					valueMap.put("UQ_NINSHO_ID_PWD", uqPwd);
					// ＰＫ検索した値にvalueMapの情報を上書きしたデータを登録
					JDKBatCommon.insertByPrimaryKeys(commonItem, db_KK_T_SVKEIUW_EOMOBA, pkMap, valueMap);
				}
				catch (Exception ex)
				{
					String[] svcKeiEomobaKeyNm = {"サービス契約内訳番号", "世代登録年月日時分秒"};
					String[] svcKeiEomobaKey = {svcKeiUcwkNoUq, newGeneDtm};
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0070CE,
							getKeyInfo("サービス契約内訳<eoモバイル>", svcKeiEomobaKeyNm, svcKeiEomobaKey));
					throw ex;
				}

				// サービス契約内訳のカレントレコードを取得
				JBSbatCommonDBInterface resultMapSvcKeiUcwk = null;
				try
				{
					String[] paramValue = new String[]{svcKeiUcwkNoUq, resultMap.getString("GENE_ADD_DTM")};
					resultMapSvcKeiUcwk = this.executeKK_T_SVC_KEI_UCWK_PKSELECT(paramValue);

					if (resultMapSvcKeiUcwk == null)
					{
						throw new Exception("サービス契約内訳情報なし");
					}
				}
				catch (Exception ex)
				{
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
							getKeyInfo("サービス契約内訳", "サービス契約内訳番号", svcKeiUcwkNoUq));
					throw ex;
				}
				
				// サービス契約内訳の最新世代の登録
				try
				{
					// ＰＫマップ作成
					Map<String, Object> pkMap = new HashMap<String, Object>();
					pkMap.put("SVC_KEI_UCWK_NO", convNullToString(resultMapSvcKeiUcwk.getString("SVC_KEI_UCWK_NO")));
					pkMap.put("GENE_ADD_DTM", convNullToString(resultMapSvcKeiUcwk.getString("GENE_ADD_DTM")));
					// ＶＡＬＵＥマップ作成
					Map<String, Object> valueMap = new HashMap<String, Object>();
					valueMap.put("GENE_ADD_DTM", newGeneDtm);
					// ＰＫ検索した値にvalueMapの情報を上書きしたデータを登録
					JDKBatCommon.insertByPrimaryKeys(commonItem, db_KK_T_SVC_KEI_UCWK, pkMap, valueMap);
				}
				catch (Exception ex)
				{
					String[] svcKeiUcwkKeyNm = {"サービス契約内訳番号", "世代登録年月日時分秒"};
					String[] svcKeiUcwkKey = {svcKeiUcwkNoUq, newGeneDtm};
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0070CE,
							getKeyInfo("サービス契約内訳", svcKeiUcwkKeyNm, svcKeiUcwkKey));
					throw ex;
				}
			}
			
			// 出荷完了明細の更新
			// レコードロックを取得
			try
			{
				whereMap = new JBSbatCommonDBInterface();
				whereMap.setValue("SHUKKA_FIN_NO", spoolShukkaFinNo);
				whereMap.setValue("SHUKKA_LOT_NO", spoolShukkaLotNo);
				whereMap.setValue("SHUKKA_LOT_KIKI_SEQ", shukkaLotKikiSeq);
				resultMap = db_DK_T_SHKA_FIN_DTL.selectByPrimaryKeysForUpdateWait(whereMap);
				if (resultMap == null || !"0".equals(resultMap.getString("MK_FLG")))
				{
					throw new Exception("出荷完了明細情報なし");
				}
			}
			catch (Exception ex)
			{
				String[] updShkaFinDtlKeyNm = {"出荷完了番号", "出荷ロット番号", "出荷ロット番号機器通番"};
				String[] updShkaFinDtlKey = {spoolShukkaFinNo, spoolShukkaLotNo, shukkaLotKikiSeq};
				commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
						getKeyInfo("出荷完了明細", updShkaFinDtlKeyNm, updShkaFinDtlKey));
				throw ex;
			}
			// 更新実行
			try
			{
				// 出荷完了明細処理結果コードを決定
				String shukkaDtlRsltCd = "";
				if (!shukkaLotNoErrFlg)
				{	
					shukkaDtlRsltCd = "2";		// 正常
				}
				else
				{
					shukkaDtlRsltCd = "3";		// エラー
				}
				setMap = new JBSbatCommonDBInterface();
				setMap.setValue("SHUKKA_DTL_RSLT_CD", shukkaDtlRsltCd);		// 出荷完了明細処理結果コード
				setMap.setValue("SVC_KEI_NO", svcKeiNo);					// サービス契約番号
				setMap.setValue("SHUKKA_FIN_YMD", super.opeDate);			// 出荷完了年月日
				// DBアクセスを実行します
				db_DK_T_SHKA_FIN_DTL.updateByPrimaryKeys(whereMap, setMap);
			}
			catch (Exception ex)
			{
				String[] updShkaFinDtlKeyNm = {"サービス契約番号", "出荷ロット番号", "出荷ロット番号機器通番"};
				String[] updShkaFinDtlKey = {svcKeiNo, spoolShukkaLotNo, shukkaLotKikiSeq};
				commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0040CE,
						getKeyInfo("出荷完了明細", updShkaFinDtlKeyNm, updShkaFinDtlKey));
				throw ex;
			}

			// ファイル出力リスト追加の処理追加
			if (!chkResultFlgErr)
			{
				StringBuffer mapKey = new StringBuffer();
				Map<String, String> kikiShkaFinUpdMap = new HashMap<String, String>();

				// マップキー作成
				mapKey.append(spoolShukkaLotNo); // 出荷ロット番号
				mapKey.append(shukkaLotKikiSeq); // 出荷ロット番号機器通番

				// 機器出荷完了更新データ作成
				kikiShkaFinUpdMap.put(JBSbatDKIFM078.TAKNKIKI_MODEL_CD, shkaFinDtlTaknkikiModelCd);
				kikiShkaFinUpdMap.put(JBSbatDKIFM078.KIKI_SEIZO_NO, kikiSeizoNo);

				// 出荷元
				kikiShkaFinUpdMap.put(JBSbatDKIFM078.SHKA_M_KANRI_PLACE_SKCD, JDKStrConst.KANRI_PLACE_SKB_SOKO);
				kikiShkaFinUpdMap.put(JBSbatDKIFM078.SHKA_M_KANRI_PLACE_CD, sokoCd);
				kikiShkaFinUpdMap.put(JBSbatDKIFM078.SHKA_M_KANRI_PLACE_SHELF_CD, shelfCd);

				// 出荷先
				if ("".equals(convNullToString(kojiCompCd)))
				{
					kikiShkaFinUpdMap.put(JBSbatDKIFM078.SHKA_S_KANRI_PLACE_SKCD, "");
					kikiShkaFinUpdMap.put(JBSbatDKIFM078.SHKA_S_KANRI_PLACE_CD, "");
					kikiShkaFinUpdMap.put(JBSbatDKIFM078.SHKA_S_KANRI_PLACE_SHELF_CD, "");
				}
				else
				{
					kikiShkaFinUpdMap.put(JBSbatDKIFM078.SHKA_S_KANRI_PLACE_SKCD, JDKStrConst.KANRI_PLACE_SKB_KOJI);
					kikiShkaFinUpdMap.put(JBSbatDKIFM078.SHKA_S_KANRI_PLACE_CD, kojiCompCd);
					kikiShkaFinUpdMap.put(JBSbatDKIFM078.SHKA_S_KANRI_PLACE_SHELF_CD, DEF_KOJI_SHELF_CD);
				}
				
				kikiShkaFinUpdMap.put(JBSbatDKIFM078.STC_PLACE_NO, placeNo);
				kikiShkaFinUpdMap.put(JBSbatDKIFM078.JOI_TAKNKIKI_MODEL_CD, joiTaknkikiModelCd);
				kikiShkaFinUpdMap.put(JBSbatDKIFM078.JOI_KIKI_SEIZO_NO, joiKikiSeizoNo);
				kikiShkaFinUpdMap.put(JBSbatDKIFM078.KOJIAK_NO, kojiakNo);
				kikiShkaFinUpdMap.put(JBSbatDKIFM078.TCASE_NO, tcaseNo);
				kikiShkaFinUpdMap.put(JBSbatDKIFM078.KKTK_SBT_CD, kktkSbtCd);
				kikiShkaFinUpdMap.put(JBSbatDKIFM078.SOKO_SHKA_YMD, super.opeDate);
				kikiShkaFinUpdMap.put(JBSbatDKIFM078.SVC_KEI_NO, svcKeiNo);
				
				// 機器出荷完了更新リストマップを追加
				kikiShkaFinUpdList.put(mapKey.toString(), kikiShkaFinUpdMap);
			}
			
			// 進捗情報登録マップ作成
			if (!chkResultFlgErr && isEmpty(hojinSvcKeiUkNo))
			{
				// マップキー情報作成（サービス契約番号＋異動区分＋異動年月日時分秒）
				StringBuffer mapKey = new StringBuffer();
				mapKey.append(svcKeiNo);
				mapKey.append(addOptntyKeiIdoDiv);
				mapKey.append(addOptntyKeiIdoDtm);
				// マップキーが存在しない場合
				if (!sinMap.containsKey(mapKey.toString()))
				{
					Map<String, String> sinValueMap = new HashMap<String, String>();
					sinValueMap.put("SVC_KEI_NO", svcKeiNo);
					sinValueMap.put("ADD_OPTNTY_KEI_IDO_DIV", addOptntyKeiIdoDiv);
					sinValueMap.put("ADD_OPTNTY_KEI_IDO_DTM", addOptntyKeiIdoDtm);
					sinValueMap.put("TAKNKIKI_MODEL_CD", shkaFinDtlTaknkikiModelCd);
					sinMap.put(mapKey.toString(), sinValueMap);
				}
			}
		}

		// 進捗情報登録
		for (String key : sinMap.keySet())
		{
			// 進捗番号を採番
			String prgNo = JCCBatCommon.getFormatedNextSeq(commonItem, SEQ_PRG_NO, "", 12);
			// 進捗特記事項2
			StringBuffer prgTkjk2 = new StringBuffer();
			prgTkjk2.append("型番号：");
			prgTkjk2.append(sinMap.get(key).get("TAKNKIKI_MODEL_CD"));

			// 登録実行
			try
			{
				setMap = new JBSbatCommonDBInterface();
				setMap.setValue("PRG_NO", prgNo);									// 進捗番号
				setMap.setValue("MSKM_DTL_NO", null);								// 申込明細番号
				setMap.setValue("SEIKY_KEI_NO", null);								// 請求契約番号
				setMap.setValue("SEIKY_WAY_NO_KOZA", null);							// 請求方法番号(口座)
				setMap.setValue("SEIKY_WAY_NO_CRECARD", null);						// 請求方法番号(クレジットカード)
				setMap.setValue("SVC_KEI_NO", sinMap.get(key).get("SVC_KEI_NO"));	// サービス契約番号
				setMap.setValue("SVC_KEI_UCWK_NO", null);							// サービス契約内訳番号
				setMap.setValue("SVC_KEI_KAISEN_UCWK_NO", null);					// サービス契約回線内訳番号
				setMap.setValue("KKTK_SVC_KEI_NO", null);							// 機器提供サービス契約番号
				setMap.setValue("OP_SVC_KEI_NO", null);								// オプションサービス契約番号
				setMap.setValue("SEIOPSVC_KEI_NO", null);							// 請求オプションサービス契約番号
				setMap.setValue("SBOP_SVC_KEI_NO", null);							// サブオプションサービス契約番号
				setMap.setValue("WRIB_SVC_KEI_NO", null);							// 割引サービス契約番号
				setMap.setValue("IDO_DIV", sinMap.get(key).get("ADD_OPTNTY_KEI_IDO_DIV"));	// 異動区分
				setMap.setValue("IDO_DTM", sinMap.get(key).get("ADD_OPTNTY_KEI_IDO_DTM"));	// 異動年月日時分秒
				setMap.setValue("PRG_STAT", PRG_STAT_SHKA_FIN);						// 進捗ステータス
				setMap.setValue("PRG_DTM", commonItem.getOpeDate()+JCCBatCommon.getSysDateTimeStamp().substring(8));	// 進捗年月日時分秒
				setMap.setValue("PRG_MEMO", null);									// 進捗メモ
				setMap.setValue("PRG_TKJK_1", null);								// 進捗特記事項1
				setMap.setValue("PRG_TKJK_2", prgTkjk2.toString());					// 進捗特記事項2
				setMap.setValue("ADD_DTM", null);									// 登録年月日時分秒
				setMap.setValue("ADD_OPEACNT", null);								// 登録オペレータアカウント
				setMap.setValue("UPD_DTM", null);									// 更新年月日時分秒
				setMap.setValue("UPD_OPEACNT", null);								// 更新オペレータアカウント
				setMap.setValue("DEL_DTM", null);									// 削除年月日時分秒
				setMap.setValue("DEL_OPEACNT", null);								// 削除オペレータアカウント
				setMap.setValue("MK_FLG", null);									// 無効フラグ
				setMap.setValue("ADD_UNYO_YMD", null);								// 登録運用年月日
				setMap.setValue("ADD_TRN_ID", null);								// 登録処理ID
				setMap.setValue("UPD_UNYO_YMD", null);								// 更新運用年月日
				setMap.setValue("UPD_TRN_ID", null);								// 更新処理ID
				setMap.setValue("DEL_UNYO_YMD", null);								// 削除運用年月日
				setMap.setValue("DEL_TRN_ID", null);								// 削除処理ID
				// DBアクセスを実行します
				db_KK_T_PRG.insertByPrimaryKeys(setMap);
			}
			catch (Exception ex)
			{
				String[] createPrgKeyNm = {"サービス契約番号", 
						                         "異動区分", 
						                         "異動年月日時分秒"};
				String[] createPrgKey = {sinMap.get(key).get("SVC_KEI_NO"), 
                                               sinMap.get(key).get("ADD_OPTNTY_KEI_IDO_DIV"), 
                                               sinMap.get(key).get("ADD_OPTNTY_KEI_IDO_DTM")};
				commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0070CE,
						getKeyInfo("進捗", createPrgKeyNm, createPrgKey));
				throw ex;
			}
		}
	}

	/**
	 * 出荷完了依頼の正常/エラー件数の更新処理
	 * @param spoolShukkaFinNo 出力待ち出荷完了番号
	 * @param normalCnt 正常件数
	 * @param errCnt エラー件数
	 * @throws Exception
	 */
	private void updRsltCnt(String spoolShukkaFinNo, int normalCnt, int errCnt) throws Exception
	{
		JBSbatCommonDBInterface setMap = null;
		JBSbatCommonDBInterface whereMap = null;
		JBSbatCommonDBInterface resultMap = null;
		BigDecimal setCnt = new BigDecimal(0);
		// 出荷完了依頼の更新
		// レコードロックを取得
		try
		{
			whereMap = new JBSbatCommonDBInterface();
			whereMap.setValue("SHUKKA_FIN_NO", spoolShukkaFinNo);
			resultMap = db_DK_T_SHKA_FIN_REQ.selectByPrimaryKeysForUpdateWait(whereMap);
			if (resultMap == null || !"0".equals(resultMap.getString("MK_FLG")))
			{
				throw new Exception("出荷完了依頼情報なし");
			}
			if (normalCnt > 0)
			{
				setCnt = resultMap.getBigDecimal("NORMAL_CNT").add(new BigDecimal(normalCnt));
			}
			else
			{
				setCnt = resultMap.getBigDecimal("ERR_CNT").add(new BigDecimal(errCnt));
			}
		}
		catch (Exception ex)
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
					getKeyInfo("出荷完了依頼", "出荷完了番号", spoolShukkaFinNo));
			throw ex;
		}
		// 更新実行
		try
		{
			setMap = new JBSbatCommonDBInterface();
			if (normalCnt > 0)
			{
				setMap.setValue("NORMAL_CNT", setCnt);		// 正常件数
			}
			else
			{
				setMap.setValue("ERR_CNT", setCnt);			// エラー件数
			}
			// DBアクセスを実行します
			db_DK_T_SHKA_FIN_REQ.updateByPrimaryKeys(whereMap, setMap);
		}
		catch (Exception ex)
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0040CE,
					getKeyInfo("出荷完了依頼", "出荷完了番号", spoolShukkaFinNo));
			throw ex;
		}
	}

	/**
	 * 出荷完了依頼のステータス更新処理
	 * @param spoolShukkaFinNo 出力待ち出荷完了番号
	 * @param shukkaReqStat 出荷完了依頼処理ステータス
	 * @throws Exception
	 */
	private void updShukkaReqStat(String spoolShukkaFinNo, String shukkaReqStat) throws Exception
	{
		JBSbatCommonDBInterface setMap = null;
		JBSbatCommonDBInterface whereMap = null;
		JBSbatCommonDBInterface resultMap = null;
		// 出荷完了依頼のステータス更新
		// レコードロックを取得
		try
		{
			whereMap = new JBSbatCommonDBInterface();
			whereMap.setValue("SHUKKA_FIN_NO", spoolShukkaFinNo);
			resultMap = db_DK_T_SHKA_FIN_REQ.selectByPrimaryKeysForUpdateWait(whereMap);
			if (resultMap == null || !"0".equals(resultMap.getString("MK_FLG")))
			{
				throw new Exception("出荷完了依頼情報なし");
			}
		}
		catch (Exception ex)
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
					getKeyInfo("出荷完了依頼", "出荷完了番号", spoolShukkaFinNo));
			throw ex;
		}
		// 更新実行
		try
		{
			setMap = new JBSbatCommonDBInterface();
			if ("3".equals(shukkaReqStat))
			{
				setMap.setValue("SHUKKA_REQ_STAT", shukkaReqStat);		// 処理済
				setMap.setValue("SHUKKA_FIN_DTM", JCCBatCommon.getSysDateTimeStamp());		// 出荷完了年月日時分秒
			}
			else
			{
				setMap.setValue("SHUKKA_REQ_STAT", "2");				// 処理中
			}
			// DBアクセスを実行します
			db_DK_T_SHKA_FIN_REQ.updateByPrimaryKeys(whereMap, setMap);
		}
		catch (Exception ex)
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0040CE,
					getKeyInfo("出荷完了依頼", "出荷完了番号", spoolShukkaFinNo));
			throw ex;
		}
	}

	/**
	 * 出荷完了エラー登録処理<br>
	 *   param[0]:出荷完了番号<br>
	 *   param[1]:出荷ロット番号<br>
	 *   param[2]:出荷ロット番号機器通番<br>
	 *   param[3]:出荷エラーコード<br>
	 *   param[4]:サービス契約番号<br>
	 *   param[5]:宅内機器型式コード<br>
	 *   param[6]:機器製造番号<br>
	 *   param[7]:配送先名<br>
	 *   param[8]:数量<br>
	 *   param[9]:出荷エラー詳細
	 * @param param 出荷完了エラーの登録内容
	 * @throws Exception
	 */
	private void createShkaFinErr(Object[] param) throws Exception
	{
		JBSbatCommonDBInterface setMap = null;
		// 登録実行
		try
		{
			setMap = new JBSbatCommonDBInterface();
			setMap.setValue("SHUKKA_FIN_NO", param[0]);				// 出荷完了番号
			setMap.setValue("SHUKKA_LOT_NO", param[1]);				// 出荷ロット番号
			setMap.setValue("SHUKKA_LOT_KIKI_SEQ", param[2]);		// 出荷ロット番号機器通番
			setMap.setValue("SHUKKA_ERR_CD", param[3]);				// 出荷エラーコード
			setMap.setValue("SVC_KEI_NO", param[4]);				// サービス契約番号
			setMap.setValue("TAKNKIKI_MODEL_CD", param[5]);			// 宅内機器型式コード
			setMap.setValue("KIKI_SEIZO_NO", param[6]);				// 機器製造番号
			setMap.setValue("HISOS_NM", param[7]);					// 配送先名
			setMap.setValue("CNT", param[8]);						// 数量
			setMap.setValue("SHUKKA_ERR_DTL", param[9]);			// 出荷エラー詳細
			// DBアクセスを実行します
			db_DK_T_SHKA_FIN_ERR.insertByPrimaryKeys(setMap);
		}
		catch (Exception ex)
		{
			String[] createShkaFinErrKeyNm = {"サービス契約番号", "出荷ロット番号", "出荷ロット番号機器通番"};
			String[] createShkaFinErrKey = {
					convNullToString(param[4]).toString(), 
					convNullToString(param[0]).toString(),
					convNullToString(param[1]).toString()};
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0070CE,
					getKeyInfo("出荷完了エラー", createShkaFinErrKeyNm, createShkaFinErrKey));
			throw ex;
		}
	}

	/**
	 * 督促用出荷完了情報受信（データレコード）の出力処理<br>
	 *   param[0]:出荷ロット番<br>
	 *   param[1]:出荷ロット番号機器通番<br>
	 *   param[2]:宅内機器型式コード<br>
	 *   param[3]:機器製造番号<br>
	 *   param[4]:数量<br>
	 *   param[5]:伝票No<br>
	 *   param[6]:配送指示年月日<br>
	 *   param[7]:トムソンケース番号<br>
	 *   param[8]:総トムソンケース数<br>
	 *   param[9]:料金コースコード
	 * @param param 督促用出荷完了情報受信（データレコード）への出力内容
	 * @throws Exception
	 */
	private void outputTokusokuShkaFin(Object[] param) throws Exception
	{
		// ファイル出力制御クラスのインスタンスが未生成である場合
		if (outputFileUtil == null)
		{
			StringBuffer sb = new StringBuffer();
			sb.append(rnktPath(JBSbatAplConst.getAplConstValue(JDKStrConst.ENV_BUS_LOG_DIR_DK), "eo_soutput_"));
			sb.append(JCCBatCommon.getSysDateTime());
			sb.append(".csv");
			outputFilePath = sb.toString();
			try
			{
				outputFileUtil = new JBSbatOutputFileUtil(outputFilePath);
				outputFileUtil.setEncode("US-ASCII");
				outputFileUtil.setLine(JDKStrConst.LINE_CRLF);
				outputFileUtil.createWriter();
			}
			catch (Exception ex)
			{
				commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0030CE,
						new String[] {outputFilePath});
				throw ex;
			}
			String defFilePath = rnktPath(JBSbatAplConst.getAplConstValue(JDKStrConst.DK_DIR_IND), "DKIFM007.def");
			try
			{
				defDataUtilData = new JBSbatDefFileUtil(defFilePath, outputFileUtil);
			}
			catch (Exception ex)
			{
				commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0030CE,
						new String[] {defFilePath});
				throw ex;
			}
		}
		try
		{
			JBSbatServiceInterfaceMap outDataMap = new JBSbatServiceInterfaceMap();
			outDataMap.set(JBSbatDKIFM007.REC_SBT, JDKBatOutputFileUtil.encloseDQuot("67"));
			outDataMap.set(JBSbatDKIFM007.SHUKKA_LOT_NO, JDKBatOutputFileUtil.encloseDQuot(convNullToString(param[0]).toString()));
			outDataMap.set(JBSbatDKIFM007.SEQ_NO, JDKBatOutputFileUtil.encloseDQuot(convNullToString(param[1]).toString()));
			outDataMap.set(JBSbatDKIFM007.TAKNKIKI_MODEL_CD, JDKBatOutputFileUtil.encloseDQuot(convNullToString(param[2]).toString()));
			outDataMap.set(JBSbatDKIFM007.KIKI_SEIZO_NO, JDKBatOutputFileUtil.encloseDQuot(convNullToString(param[3]).toString()));
			outDataMap.set(JBSbatDKIFM007.CNT, JDKBatOutputFileUtil.encloseDQuot(convNullToString(param[4]).toString()));
			outDataMap.set(JBSbatDKIFM007.DENPYO_NO, JDKBatOutputFileUtil.encloseDQuot(convNullToString(param[5]).toString()));
			outDataMap.set(JBSbatDKIFM007.SHUKKA_SASHIZU_YMD, JDKBatOutputFileUtil.encloseDQuot(convNullToString(param[6]).toString()));
			outDataMap.set(JBSbatDKIFM007.TCASE_NO, JDKBatOutputFileUtil.encloseDQuot(convNullToString(param[7]).toString()));
			outDataMap.set(JBSbatDKIFM007.TTL_TCASE_CNT, JDKBatOutputFileUtil.encloseDQuot(convNullToString(param[8]).toString()));
			outDataMap.set(JBSbatDKIFM007.TV_COURSE, JDKBatOutputFileUtil.encloseDQuot(convNullToString(param[9]).toString()));
			outputFileUtil.print(outDataMap, defDataUtilData);
		}
		catch (Exception ex)
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0050CE,
					new String[] {outputFilePath});
			throw ex;
		}
	}

	/**
	 * 督促用出荷完了情報受信（トレーラレコード）の出力処理
	 * @param eoSoutputLineCnt 督促用出荷完了情報受信出力行数
	 * @throws Exception
	 */
	private void outputTokusokuShkaFinTrailer(int eoSoutputLineCnt) throws Exception
	{
		String defFilePath = rnktPath(JBSbatAplConst.getAplConstValue(JDKStrConst.DK_DIR_IND), "DKIFM008.def");
		try
		{
			defDataUtilData = new JBSbatDefFileUtil(defFilePath, outputFileUtil);
		}
		catch (Exception ex)
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0030CE,
					new String[] {defFilePath});
			throw ex;
		}
		try
		{
			JBSbatServiceInterfaceMap outDataMap = new JBSbatServiceInterfaceMap();
			outDataMap.set(JBSbatDKIFM008.REC_SBT, JDKBatOutputFileUtil.encloseDQuot("68"));
			outDataMap.set(JBSbatDKIFM008.REC_CNT, JDKBatOutputFileUtil.encloseDQuot(String.valueOf(eoSoutputLineCnt + 1)));
			outputFileUtil.print(outDataMap, defDataUtilData);
		}
		catch (Exception ex)
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0050CE,
					new String[] {outputFilePath});
			throw ex;
		}
	}

	/**
	 * セット品構成チェック処理
	 * @param spoolShukkaFinNo 出力待ち出荷完了番号
	 * @param spoolShukkaLotNo 出力待ち出荷ロット番号
	 * @param spoolDataList 出力待ちデータリスト
	 * @return チェックエラー:出荷ロット番号機器通番 正常:空値
	 * @throws Exception 
	 */
	private String chkSethnKose(String spoolShukkaFinNo, String spoolShukkaLotNo, List<Map<String, String>> spoolDataList)
		throws Exception
	{
		HashMap<String, String> getSethnKoseMap = new HashMap<String, String>();
		ArrayList<String> sethnKoseTempList = new ArrayList<String>();
		ArrayList<String> hikiateList = new ArrayList<String>();
		boolean taihiFlg = false;
		String errShukkaLotKikiSeq = "";			// エラー出力用出荷ロット番号機器通番
		String errSvcKeiNo = "";					// エラー出力用サービス契約番号
		String errShkaFinDtlTaknkikiModelCd = "";	// エラー出力用出荷完了明細の宅内機器型式コード
		String errKikiSeizoNo = "";					// エラー出力用機器製造番号
		String errHisosNm = "";						// エラー出力用配送先名
		String errCnt = "";							// エラー出力用数量
		
		// セット品番号設定チェック
		for (int i = 0; i < spoolDataList.size(); i++)
		{
			String shukkaLotKikiSeq = spoolDataList.get(i).get(KMK_NM_SHUKKA_LOT_KIKI_SEQ);				// 出荷ロット番号機器通番
			String svcKeiNo = spoolDataList.get(i).get(KMK_NM_SVC_KEI_NO);								// サービス契約番号
			String shkaFinDtlTaknkikiModelCd = spoolDataList.get(i).get(KMK_NM_SHKA_FIN_DTL_MODEL_CD);	// 出荷完了明細の宅内機器型式コード
			String kikiSeizoNo = spoolDataList.get(i).get(KMK_NM_KIKI_SEIZO_NO);						// 機器製造番号
			String hisosNm = spoolDataList.get(i).get(KMK_NM_HISOS_NM);									// 配送先名
			String cnt = spoolDataList.get(i).get(KMK_NM_CNT);											// 数量
			String taknkikiSethinModelCd = spoolDataList.get(i).get(KMK_NM_TAKNKIKI_SETHIN_MODEL_CD);	// 宅内機器セット品型コード
			String taknkikiSethinNo = spoolDataList.get(i).get(KMK_NM_TAKNKIKI_SETHIN_NO);				// 宅内機器セット品番号
			
			if (!isEmpty(taknkikiSethinModelCd) && isEmpty(taknkikiSethinNo))
			{
				// 出荷完了エラー登録
				String msg = JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EDKB0320KW);
				Object[] param = {spoolShukkaFinNo, spoolShukkaLotNo, shukkaLotKikiSeq, "4", svcKeiNo, shkaFinDtlTaknkikiModelCd, kikiSeizoNo, hisosNm, cnt, msg};
				createShkaFinErr(param);
				return  shukkaLotKikiSeq;
			}
			
			if (!isEmpty(taknkikiSethinModelCd))
			{
				// セット品構成取得マップ作成
				StringBuffer mapKey = new StringBuffer();
				mapKey.append(taknkikiSethinModelCd);
				mapKey.append(taknkikiSethinNo);
				if (!getSethnKoseMap.containsKey(mapKey.toString()))
				{
					getSethnKoseMap.put(mapKey.toString(), taknkikiSethinModelCd);
					sethnKoseTempList.add(taknkikiSethinModelCd);
				}
				
				// セット品構成の引当機器リストを作成
				hikiateList.add(shkaFinDtlTaknkikiModelCd);
				
				// 初回のみ出荷完了エラー登録用情報を退避
				if (!taihiFlg)
				{
					errShukkaLotKikiSeq = shukkaLotKikiSeq;						// エラー出力用出荷ロット番号機器通番
					errSvcKeiNo = svcKeiNo;										// エラー出力用サービス契約番号
					errShkaFinDtlTaknkikiModelCd = shkaFinDtlTaknkikiModelCd;	// エラー出力用出荷完了明細の宅内機器型式コード
					errKikiSeizoNo = kikiSeizoNo;								// エラー出力用機器製造番号
					errHisosNm = hisosNm;										// エラー出力用配送先名
					errCnt = cnt;												// エラー出力用数量
					taihiFlg = true;
				}
			}
		}
		
		// セット品構成取得マップが0件の場合正常で終了
		if (sethnKoseTempList.size() == 0)
		{
			return "";
		}

		// セット品構成情報取得
		ArrayList<String[]> sethnKoseList = new ArrayList<String[]>();
		for (int i = 0; i < sethnKoseTempList.size(); i++)
		{
			// 出荷完了依頼情報の取得
			JBSbatCommonDBInterface sethnKoseMap = null;
			String[] sethnKoseKeyNm = {"宅内機器セット品型コード"};
			String[] sethnKoseKey = {sethnKoseTempList.get(i)};
			try
			{
				executeZM_M_SETHN_KOSE_DK_SELECT_001(sethnKoseKey);
				sethnKoseMap = db_ZM_M_SETHN_KOSE.selectNext();
				
				// セット品構成の存在チェックエラー
				if (sethnKoseMap == null)
				{
					// 出荷完了エラー登録
					String msg = JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EDKB0150KW, new String[] {"セット品構成"});
					Object[] param = {spoolShukkaFinNo, spoolShukkaLotNo, errShukkaLotKikiSeq, "4", errSvcKeiNo, errShkaFinDtlTaknkikiModelCd, 
							errKikiSeizoNo, errHisosNm, errCnt, msg};
					createShkaFinErr(param);
					return  errShukkaLotKikiSeq;
				}
				
				// セット品構成のリスト作成
				while (sethnKoseMap != null)
				{
					String taknkikiModelCd = sethnKoseMap.getString("TAKNKIKI_MODEL_CD");
					int cnt = 0;
					if (!isEmpty(sethnKoseMap.getString("CNT")))
					{
						cnt = Integer.parseInt(sethnKoseMap.getString("CNT"));
					}
					
					for (int k = 0; k < cnt; k++)
					{
						// セット品構成のリスト追加
						sethnKoseList.add(new String[] {taknkikiModelCd, "0"});
					}
					
					// 次行へ
					sethnKoseMap = db_ZM_M_SETHN_KOSE.selectNext();
				}
			}
			catch (Exception ex)
			{
				commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
						getKeyInfo("セット品構成", sethnKoseKeyNm, sethnKoseKey));
				throw ex;
			}
		}

		// セット品構成チェック
		for (int i = 0; i < hikiateList.size(); i++)
		{
			// 同一の宅内機器型式コードで引当状態が"0"のデータを１件検索
			boolean searchFlg = false;
			for (int k = 0; k < sethnKoseList.size(); k++)
			{
				if (sethnKoseList.get(k)[0].equals(hikiateList.get(i)) && "0".equals(sethnKoseList.get(k)[1]))
				{
					sethnKoseList.get(k)[1] = "1";
					searchFlg = true;
					break;
				}
			}
			
			// データが見つからなかった場合エラー
			if (!searchFlg)
			{
				// 出荷完了エラー登録
				String msg = JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EDKB0320KW);
				Object[] param = {spoolShukkaFinNo, spoolShukkaLotNo, errShukkaLotKikiSeq, "4", errSvcKeiNo, errShkaFinDtlTaknkikiModelCd, 
						errKikiSeizoNo, errHisosNm, errCnt, msg};
				createShkaFinErr(param);
				return  errShukkaLotKikiSeq;
			}
		}

		// セット品構成のリストに引当状態が"0"のデータが存在する場合エラー
		for (int i = 0; i < sethnKoseList.size(); i++)
		{
			if ("0".equals(sethnKoseList.get(i)[1]))
			{
				// 出荷完了エラー登録
				String msg = JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EDKB0320KW);
				Object[] param = {spoolShukkaFinNo, spoolShukkaLotNo, errShukkaLotKikiSeq, "4", errSvcKeiNo, errShkaFinDtlTaknkikiModelCd, 
						errKikiSeizoNo, errHisosNm, errCnt, msg};
				createShkaFinErr(param);
				return  errShukkaLotKikiSeq;
			}
		}
		
		return "";
	}

	/**
	 * パス文字列の連結<br>
	 * 連結するパス文字列にパス区切り文字の設定を制御する。
	 * @param path1 パス文字列
	 * @param path2 パス文字列
	 * @return 連結したパス文字列
	 */
	private String rnktPath(String path1, String path2)
	{
		String pathDlmt = "/";
		if (path1.indexOf("\\") > -1 || path2.indexOf("\\") > -1)
		{
			pathDlmt = "\\";
		}
		if (!path1.endsWith(pathDlmt))
		{
			return path1 + pathDlmt + path2;
		}
		return path1 + path2;
	}

	/**
	 * 数値変換<br>
	 * 文字列を数値型に変換する。
	 * @param value 数値変換する文字列
	 * @return 数値
	 * @throws Exception
	 */
	private int toInt(String value) throws Exception
	{
		if (isEmpty(value))
		{
			throw new Exception("空文字列は数値に変換できません。");
		}
		return Integer.parseInt(value);
	}

	/**
	 * 空値チェック<br>
	 * 半角空白はトリムしてチェックする。
	 * @param value チェックする文字列
	 * @return true:空値 false:空値でない
	 */
	private boolean isEmpty(String value)
	{
		if (value == null)
		{
			return true;
		}
		String checkValue = value.replaceAll(" ", "");
		if (checkValue.length() == 0)
		{
			return true;
		}
		return false;
	}

	/**
	 * キー情報配列の取得<br>
	 * JBSbatBusinessExceptionの第二引数に受け渡すキー情報配列を取得する。
	 * @param tblNm テーブル名
	 * @param keyNm キー名称
	 * @param keyValue キー値
	 * @return キー情報文字列
	 */
	private String[] getKeyInfo(String tblNm, String keyNm, String keyValue)
	{
		return getKeyInfo(tblNm, new String[] {keyNm}, new String[] {keyValue});
	}

	/**
	 * キー情報配列の取得<br>
	 * JBSbatBusinessExceptionの第二引数に受け渡すキー情報配列を取得する。
	 * @param tblNm テーブル名
	 * @param keyNms キー名称配列
	 * @param keyValues キー値配列
	 * @return キー情報文字列
	 */
	private String[] getKeyInfo(String tblNm, String[] keyNm, String[] keyValue)
	{
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < keyNm.length; i++)
		{
			if (i > 0)
			{
				sb.append("；");
			}
			sb.append(keyNm[i]);
			sb.append("＝");
			sb.append(keyValue[i]);
		}
		return new String[] {tblNm, sb.toString()};
	}

	/**
	 * 出力待ちデータリスト内に指定のチェック結果フラグが存在するか。
	 * @param spoolDataList 出力待ちデータリスト
	 * @param chkResultFlg 指定のチェック結果フラグ
	 * @return true:存在する false:存在しない
	 */
	private boolean isChkResultFlg(List<Map<String, String>> spoolDataList, String chkResultFlg)
	{
		for (int i = 0; i < spoolDataList.size(); i++)
		{
			String thisChkResultFlg = spoolDataList.get(i).get(KMK_NM_CHK_RESULT_FLG);
			if (!isEmpty(thisChkResultFlg) && chkResultFlg.equals(thisChkResultFlg))
			{
				return true;
			}
		}
		return false;
	}

	/**
	 * null置換<br>
	 * nullを空文字に変換して返却する。
	 * @param value チェックするオブジェクト
	 * @return 引数のオブジェクトを判定してnullの場合は空文字を返す。nullでない場合は引数のオブジェクトを返す。
	 */
	public static String convNullToString(Object value)
	{
		String retValue = "";
		if (value == null)
		{
			return retValue;
		}
		return value.toString();
	}
	
	/**
	 * 機器出荷完了更新バッチ送信リストに設定されている内容を機器出荷完了更新バッチ送信ファイルとして出力します。
	 * 
	 * @throws Exception
	 */
	private void putKikiShkaFinUpdFile() throws Exception
	{
		// 機器出荷完了更新バッチ送信データが存在しない場合は処理を終了する
		if (kikiShkaFinUpdList == null || kikiShkaFinUpdList.size() == 0)
		{
			return;
		}

		// 機器出荷完了更新バッチバッチ送信ファイルを作成
		// ファイル名の作成
		String fileNm = GAI_IF_ID_KIKI_SHKA_UPD_FILE + "_" + JCCBatCommon.getSysDateTime() + ".csv";
		// ファイルパス（パス + ファイル名）の取得
		String midFilePath = 
			this.rnktPath(this.rnktPath(JBSbatAplConst.getAplConstValue(JDKStrConst.ENV_GAIBU_SEND_DIR), GAI_IF_ID_KIKI_SHKA_UPD_FILE), fileNm);

		// ファイル形式の設定
		JBSbatOutputFileUtil outFile = new JBSbatOutputFileUtil(midFilePath);
		outFile.setEncode(JDKStrConst.ENCODE_SJIS);		// 文字コード
		outFile.setLine(JDKStrConst.LINE_LF);			// 改行コード

		try
		{
			// 機器出荷完了更新バッチ送信ファイルを作成する
			outFile.createWriter();
		}
		catch (Exception ex)
		{
			// 機器出荷完了更新バッチ送信ファイル作成失敗
			commonItem.getConnection().rollback();
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0030CE,
					new String[] {midFilePath});
			throw ex;
		}

		try
		{
			String defFile = JBSbatAplConst.getAplConstValue(JDKStrConst.DK_DIR_IND) + DEF_KIKI_SHKA_UPD;
			JBSbatDefFileUtil defDataUtil = new JBSbatDefFileUtil(defFile, outFile);

			// データ部生成
			JBSbatServiceInterfaceMap outDataMap = null;
			Map<String, String> kikiShkaFinUpdMap = new HashMap<String, String>();
			for (String key : kikiShkaFinUpdList.keySet())
			{
				kikiShkaFinUpdMap = kikiShkaFinUpdList.get(key);

				// データ部生成
				outDataMap = new JBSbatServiceInterfaceMap();

				// 宅内機器型式コード
				outDataMap.set(JBSbatDKIFM078.TAKNKIKI_MODEL_CD
			        , JDKBatOutputFileUtil.encloseDQuot(convNullToString(kikiShkaFinUpdMap.get(JBSbatDKIFM078.TAKNKIKI_MODEL_CD)).toString()));
				// 機器製造番号
				outDataMap.set(JBSbatDKIFM078.KIKI_SEIZO_NO
			        , JDKBatOutputFileUtil.encloseDQuot(convNullToString(kikiShkaFinUpdMap.get(JBSbatDKIFM078.KIKI_SEIZO_NO)).toString()));
				// 出荷元管理場所識別コード
				outDataMap.set(JBSbatDKIFM078.SHKA_M_KANRI_PLACE_SKCD
			        , JDKBatOutputFileUtil.encloseDQuot(convNullToString(kikiShkaFinUpdMap.get(JBSbatDKIFM078.SHKA_M_KANRI_PLACE_SKCD)).toString()));
				// 出荷元管理場所コード
				outDataMap.set(JBSbatDKIFM078.SHKA_M_KANRI_PLACE_CD
			        , JDKBatOutputFileUtil.encloseDQuot(convNullToString(kikiShkaFinUpdMap.get(JBSbatDKIFM078.SHKA_M_KANRI_PLACE_CD)).toString()));
				// 出荷元管理場所棚コード
				outDataMap.set(JBSbatDKIFM078.SHKA_M_KANRI_PLACE_SHELF_CD
			        , JDKBatOutputFileUtil.encloseDQuot(convNullToString(kikiShkaFinUpdMap.get(JBSbatDKIFM078.SHKA_M_KANRI_PLACE_SHELF_CD)).toString()));
				// 出荷先管理場所識別コード
				outDataMap.set(JBSbatDKIFM078.SHKA_S_KANRI_PLACE_SKCD
			        , JDKBatOutputFileUtil.encloseDQuot(convNullToString(kikiShkaFinUpdMap.get(JBSbatDKIFM078.SHKA_S_KANRI_PLACE_SKCD)).toString()));
				// 出荷先管理場所コード
				outDataMap.set(JBSbatDKIFM078.SHKA_S_KANRI_PLACE_CD
			        , JDKBatOutputFileUtil.encloseDQuot(convNullToString(kikiShkaFinUpdMap.get(JBSbatDKIFM078.SHKA_S_KANRI_PLACE_CD)).toString()));
				// 出荷先管理場所棚コード
				outDataMap.set(JBSbatDKIFM078.SHKA_S_KANRI_PLACE_SHELF_CD
			        , JDKBatOutputFileUtil.encloseDQuot(convNullToString(kikiShkaFinUpdMap.get(JBSbatDKIFM078.SHKA_S_KANRI_PLACE_SHELF_CD)).toString()));
				// 設置場所番号
				outDataMap.set(JBSbatDKIFM078.STC_PLACE_NO
			        , JDKBatOutputFileUtil.encloseDQuot(convNullToString(kikiShkaFinUpdMap.get(JBSbatDKIFM078.STC_PLACE_NO)).toString()));
				// 上位宅内機器型式コード
				outDataMap.set(JBSbatDKIFM078.JOI_TAKNKIKI_MODEL_CD
			        , JDKBatOutputFileUtil.encloseDQuot(convNullToString(kikiShkaFinUpdMap.get(JBSbatDKIFM078.JOI_TAKNKIKI_MODEL_CD)).toString()));
				// 上位機器製造番号
				outDataMap.set(JBSbatDKIFM078.JOI_KIKI_SEIZO_NO
			        , JDKBatOutputFileUtil.encloseDQuot(convNullToString(kikiShkaFinUpdMap.get(JBSbatDKIFM078.JOI_KIKI_SEIZO_NO)).toString()));
				// 工事案件番号
				outDataMap.set(JBSbatDKIFM078.KOJIAK_NO
			        , JDKBatOutputFileUtil.encloseDQuot(convNullToString(kikiShkaFinUpdMap.get(JBSbatDKIFM078.KOJIAK_NO)).toString()));
				// トムソンケース番号
// ANK-2371-00-00 MOD START
//				outDataMap.set(JBSbatDKIFM078.TCASE_NO
//			        , JDKBatOutputFileUtil.encloseDQuot(convNullToString(kikiShkaFinUpdMap.get(JBSbatDKIFM078.TCASE_NO)).toString()));
				if ("".equals(convNullToString(kikiShkaFinUpdMap.get(JBSbatDKIFM078.KOJIAK_NO)).toString())) {
					outDataMap.set(JBSbatDKIFM078.TCASE_NO
					        , JDKBatOutputFileUtil.encloseDQuot(""));
				}
				else {
					outDataMap.set(JBSbatDKIFM078.TCASE_NO
					        , JDKBatOutputFileUtil.encloseDQuot(convNullToString(kikiShkaFinUpdMap.get(JBSbatDKIFM078.TCASE_NO)).toString()));
				}
// ANK-2371-00-00 MOD END
				// 機器提供種別コード
				outDataMap.set(JBSbatDKIFM078.KKTK_SBT_CD
			        , JDKBatOutputFileUtil.encloseDQuot(convNullToString(kikiShkaFinUpdMap.get(JBSbatDKIFM078.KKTK_SBT_CD)).toString()));
				// 倉庫出荷日
				outDataMap.set(JBSbatDKIFM078.SOKO_SHKA_YMD
			        , JDKBatOutputFileUtil.encloseDQuot(convNullToString(kikiShkaFinUpdMap.get(JBSbatDKIFM078.SOKO_SHKA_YMD)).toString()));
				// サービス契約番号
				outDataMap.set(JBSbatDKIFM078.SVC_KEI_NO
			        , JDKBatOutputFileUtil.encloseDQuot(convNullToString(kikiShkaFinUpdMap.get(JBSbatDKIFM078.SVC_KEI_NO)).toString()));	
			
				// データの出力
				outFile.print(outDataMap, defDataUtil);
			}
		}
		catch (Exception ex)
		{
			// 機器出荷完了更新バッチ送信ファイル書き込み失敗
			commonItem.getConnection().rollback();
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0050CE,
					new String[] {midFilePath});
			throw ex;
		}
		finally
		{
			// ファイルのクローズ
			try
			{
				outFile.close();
			}
			catch (Exception ex2)
			{
				super.logPrint.printDebugLog("ファイル書込みオブジェクトのクローズ失敗:" + midFilePath);
			}
		}
		
		// 機器出荷完了更新バッチ送信中間ファイルを出力
		this.putKikiShkaFinUpdMidFile(midFilePath);
	}

	/**
	 * 機器出荷完了更新バッチ送信中間ファイルを出力します。
	 * 
	 * @param rnkiFilePath　連携ファイルパス
	 * @throws Exception
	 */
	private void putKikiShkaFinUpdMidFile(String rnkiFilePath) throws Exception
	{
		// 宅内機器物流在庫情報更新バッチ送信中間（出荷指図情報登録）ファイルを作成
		// ファイル名の作成
		String fileNm = JOB_ID + "_" + GAI_IF_ID_KIKI_SHKA_UPD_FILE + ".csv";
		
		// ファイルパス（パス + ファイル名）の取得
		String midFilePath = 
			this.rnktPath(JBSbatAplConst.getAplConstValue(JDKStrConst.ENV_MID_DIR), fileNm);

		// ファイル形式の設定
		JBSbatOutputFileUtil outFile = new JBSbatOutputFileUtil(midFilePath);
		outFile.setEncode(JDKStrConst.ENCODE_SJIS);		// 文字コード
		outFile.setLine(JDKStrConst.LINE_LF);			// 改行コード

		try
		{
			// 機器出荷完了更新バッチ送信中間ファイルを作成する
			outFile.createWriter();
		}
		catch (Exception ex)
		{
			// 機器出荷完了更新バッチ送信中間ファイル作成失敗
			commonItem.getConnection().rollback();
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0030CE,
					new String[] {midFilePath});
			throw ex;
		}

		try
		{
			// ファイル定義の取得
			String defFile = new String();
			defFile = JBSbatAplConst.getAplConstValue(JDKStrConst.DK_DIR_IND) + DEF_KIKI_SHKA_UPD_MID;
			JBSbatDefFileUtil defDataUtil = new JBSbatDefFileUtil(defFile, outFile);

			// データ部生成
			JBSbatServiceInterfaceMap outDataMap = null;

			// データ部生成
			outDataMap = new JBSbatServiceInterfaceMap();

			// ファイル名
			outDataMap.set(JBSbatDKIFM077.FILE_NM, rnkiFilePath);

			// データの出力
			outFile.print(outDataMap, defDataUtil);
		}
		catch (Exception ex)
		{
			// 機器出荷完了更新バッチ送信中間ファイル書き込み失敗
			commonItem.getConnection().rollback();
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0050CE,
					new String[] {midFilePath});
			throw ex;
		}
		finally
		{
			// ファイルのクローズ
			try
			{
				outFile.close();
			}
			catch (Exception ex2)
			{
				super.logPrint.printDebugLog("ファイル書込みオブジェクトのクローズ失敗:" + midFilePath);
			}
		}
	}
}
