/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom					 *
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatDKTanaMoveShkaCmpAdd
*	ソースファイル名	：JBSbatDKTanaMoveShkaCmpAdd.java
*	作成者				：富士通　
*	作成日				：2014年09月24日
*＜機能概要＞
*　出荷完了登録部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v10.00.00	2014/10/08   FJ）舩橋	ANK-2029-00-00
*	v10.00.01	2014/10/14   FJ）舩橋	IT1-2014-0000332
*	v10.00.02	2014/10/15   FJ）舩橋	IT1-2014-0000333
*	v10.00.03	2014/10/16   FJ）舩橋	IT1-2014-0000334
*	v11.00.00	2014/11/30   FJ）舩橋	OM-2014-0003749
*	v12.00.00	2015/01/20   FJ）舩橋	OM-2014-0003925
*	v12.00.01	2015/01/21   FJ）舩橋	ANK-2428-00-00
*	v12.00.02	2015/01/23   FJ）舩橋	IT1-2015-0000007
*********************************************************************/
package eo.business.service;

import static eo.common.constant.JDKStrConst.DK_DIR_IND;
// IT1-2014-0000334 DEL START
//import static eo.common.constant.JDKStrConst.DL_TRN_KANRI_NO_HENPIN_ADD;
// IT1-2014-0000334 DEL END
import static eo.common.constant.JDKStrConst.ENCODE_SJIS;
import static eo.common.constant.JDKStrConst.LINE_CRLF;
import static eo.common.constant.JDKStrConst.PATH_DLMT_UNIX;
import static eo.common.constant.JDKStrConst.PATH_DLMT_WIN;

import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.common.JCCbatDenshiFileUtil;
import eo.business.common.JDKBatOutputFileUtil;
import eo.business.util.file.JBSbatDKIFM002;
import eo.common.constant.JDKStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.common.util.JCCFileUtil;
import eo.common.util.JDKCommonUtil;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.file.JBSbatDefFileUtil;
import eo.framework.file.JBSbatInputFileUtil;
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.util.JBSbatAplConst;
import eo.framework.util.JBSbatDateUtil;
import eo.framework.util.JCCBatchEsbInterface;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatDKTanaMoveShkaCmpAdd extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/

	/** テーブル(ダウンロードファイル管理)*/
	private static final String D_TBL_NAME_ZM_T_DL_FILE_KANRI = "ZM_T_DL_FILE_KANRI";

	/** テーブル(予備機器配送)*/
	private static final String D_TBL_NAME_DK_T_YBKIKI_HAISO = "DK_T_YBKIKI_HAISO";

	/** テーブル(倉庫)*/
	private static final String D_TBL_NAME_DK_M_SOKO = "DK_M_SOKO";

	/** テーブル(予備機器配送対象物品)*/
	private static final String D_TBL_NAME_DK_T_YBKKHAI_TG_BPIN = "DK_T_YBKKHAI_TG_BPIN";

	// ANK-2428-00-00 ADD START
	/** テーブル(倉庫棚移動)*/
	private static final String D_TBL_NAME_DK_T_SOKODNA_MOVE = "DK_T_SOKODNA_MOVE";

	/** テーブル(倉庫棚移動対象機器)*/
	private static final String D_TBL_NAME_DK_T_SDNAMV_TG_KIKI = "DK_T_SDNAMV_TG_KIKI";
	// ANK-2428-00-00 ADD END

	// IT1-2015-0000007 ADD START
	/** テーブル(宅内機器型式)*/
	private static final String D_TBL_NAME_ZM_M_TAKNKIKI_MODEL = "ZM_M_TAKNKIKI_MODEL";
	// IT1-2015-0000007 ADD END

	
	/** SQL定義キー(DK_INSERT_002)*/
	private static final String ZM_T_DL_FILE_KANRI_DK_INSERT_002 = "DK_INSERT_002";

	/** SQL定義キー(DK_SELECT_001)*/
	private static final String DK_T_YBKIKI_HAISO_DK_SELECT_002 = "DK_SELECT_002";

	// IT1-2014-0000334 ADD START
	/** SQL定義キー(DK_SELECT_003)*/
	private static final String DK_T_YBKIKI_HAISO_DK_SELECT_003 = "DK_SELECT_003";

	/** SQL定義キー(DK_SELECT_004)*/
	private static final String DK_T_YBKIKI_HAISO_DK_SELECT_004 = "DK_SELECT_004";
	// IT1-2014-0000334 ADD END

	/** SQL定義キー(DK_SELECT_001)*/
	private static final String DK_M_SOKO_DK_SELECT_001 = "DK_SELECT_001";

	/** SQL定義キー(DK_SELECT_001)*/
	private static final String DK_T_YBKKHAI_TG_BPIN_DK_SELECT_002 = "DK_SELECT_002";

	// ANK-2428-00-00 ADD START
	/** SQL定義キー(DK_SELECT_002)*/
	private static final String DK_T_SOKODNA_MOVE_DK_SELECT_002 = "DK_SELECT_002";

	/** SQL定義キー(DK_SELECT_003)*/
	private static final String DK_T_SOKODNA_MOVE_DK_SELECT_003 = "DK_SELECT_003";

	/** SQL定義キー(DK_SELECT_004)*/
	private static final String DK_T_SOKODNA_MOVE_DK_SELECT_004 = "DK_SELECT_004";

	/** SQL定義キー(DK_SELECT_002)*/
	private static final String DK_T_SDNAMV_TG_KIKI_DK_SELECT_002 = "DK_SELECT_002";
	// ANK-2428-00-00 ADD END

	// IT1-2015-0000007 ADD START
	/** SQL定義キー(DK_SELECT_004)*/
	private static final String ZM_M_TAKNKIKI_MODEL_DK_SELECT_004 = "DK_SELECT_004";
	// IT1-2015-0000007 ADD END


	/** テーブルアクセスクラス(ダウンロードファイル管理)*/
	private JBSbatSQLAccess db_ZM_T_DL_FILE_KANRI = null;

	/** テーブルアクセスクラス(予備機器配送)*/
	private JBSbatSQLAccess db_DK_T_YBKIKI_HAISO = null;

	/** テーブルアクセスクラス(倉庫)*/
	private JBSbatSQLAccess db_DK_M_SOKO = null;

	/** テーブルアクセスクラス(予備機器配送対象物品)*/
	private JBSbatSQLAccess db_DK_T_YBKKHAI_TG_BPIN = null;

	// ANK-2428-00-00 ADD START
	/** テーブルアクセスクラス(倉庫棚移動)*/
	private JBSbatSQLAccess db_DK_T_SOKODNA_MOVE = null;

	/** テーブルアクセスクラス(倉庫棚移動対象機器)*/
	private JBSbatSQLAccess db_DK_T_SDNAMV_TG_KIKI = null;
	// ANK-2428-00-00 ADD END

	// IT1-2015-0000007 ADD START
	/** テーブルアクセスクラス(宅内機器型式)*/
	private JBSbatSQLAccess db_ZM_M_TAKNKIKI_MODEL = null;
	// IT1-2015-0000007 ADD END

	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/


	/** 棚移動出荷完了情報受信ファイル項目定数 */
	/** 棚移動出荷完了情報受信ファイル（データ部項目数） */
	private static final int TANA_FILE_COL_REC_NUM = 10;

	/** 棚移動出荷完了情報受信ファイル（データ部要素：レコード種別） */
	private static final int TANA_FILE_COL_REC_SBT = 0;

	/** 棚移動出荷完了情報受信ファイル（データ部要素：棚移動指示日） */
	private static final int TANA_FILE_COL_REC_SJI = 1;

	/** 棚移動出荷完了情報受信ファイル（データ部要素：棚移動ロット番号） */
	private static final int TANA_FILE_COL_REC_LOT = 2;

	/** 棚移動出荷完了情報受信ファイル（データ部要素：棚移動番号） */
	private static final int TANA_FILE_COL_REC_MOVE = 3;

	/** 棚移動出荷完了情報受信ファイル（データ部要素：移動元倉庫コード） */
	private static final int TANA_FILE_COL_REC_TTM = 4;

	/** 棚移動出荷完了情報受信ファイル（データ部要素：型番号） */
	private static final int TANA_FILE_COL_REC_MODEL = 6;

	/** 棚移動出荷完了情報受信ファイル（データ部要素：製造番号） */
	private static final int TANA_FILE_COL_REC_SEIZO = 7;

	/** 棚移動出荷完了情報受信ファイル（データ部要素：数量） */
	private static final int TANA_FILE_COL_REC_CNT = 9;

	/** 棚移動出荷完了情報受信ファイル（トレーラー部項目数） */
	private static final int TANA_FILE_COL_REC_LAST_NUM = 2;

	/** 棚移動出荷完了情報受信ファイル（トレーラ部要素：データ件数） */
	private static final int TANA_FILE_COL_REC_LAST_CNT = 1;


	/** 棚移動出荷完了情報受信ファイルレコード種別 */
	/** 棚移動出荷完了情報受信ファイル（データ部：レコード種別定数） */
	private static final String TANA_FILE_COL_REC_SBT_77 = "77";

	/** 棚移動出荷完了情報受信ファイル（トレーラー部：レコード種別） */
	private static final String TANA_FILE_COL_REC_SBT_78 = "78";


	/** 棚移動出荷完了情報受信ファイルエラー内容 */
	/** 棚移動出荷完了情報受信ファイル（データ部項目数エラー） */
	private static final String ERR_TANA_FILE_COL_REC_NUM = "データ項目数が10以外です。";

	/** 棚移動出荷完了情報受信ファイル（データ部要素：レコード種別エラー） */
	private static final String ERR_TANA_FILE_COL_REC_SBT = "レコード種別が77以外です。";

	/** 棚移動出荷完了情報受信ファイル（データ部要素：棚移動指示日エラー） */
	private static final String ERR_TANA_FILE_COL_REC_SJI = "棚移動指示日が設定されていません。";

	/** 棚移動出荷完了情報受信ファイル（データ部要素：棚移動ロット番号エラー） */
	private static final String ERR_TANA_FILE_COL_REC_LOT = "棚移動指示ロット番号が設定されていません。";

	/** 棚移動出荷完了情報受信ファイル（データ部要素：棚移動ロット番号存在エラー） */
	private static final String ERR_TANA_FILE_COL_REC_LOT_SON = "指定の棚移動ロット番号がありません。";

	/** 棚移動出荷完了情報受信ファイル（データ部要素：棚移動ロット番号完了エラー１） */
	private static final String ERR_TANA_FILE_COL_REC_LOT_SHN_1 = "指定の棚移動ロット番号は";

	/** 棚移動出荷完了情報受信ファイル（データ部要素：棚移動ロット番号完了エラー２） */
	private static final String ERR_TANA_FILE_COL_REC_LOT_SHN_2 = "です。";

	/** 棚移動出荷完了情報受信ファイル（データ部要素：移動元倉庫コードエラー） */
	private static final String ERR_TANA_FILE_COL_REC_TTM = "移動元倉庫コードが設定されていません。";

	/** 棚移動出荷完了情報受信ファイル（データ部要素：移動元倉庫コード存在エラー） */
	private static final String ERR_TANA_FILE_COL_REC_TTM_SON = "移動元倉庫コードが倉庫マスタに登録されてません。";

	/** 棚移動出荷完了情報受信ファイル（データ部要素：移動元倉庫コード一致エラー） */
	private static final String ERR_TANA_FILE_COL_REC_TTM_ITC = "移動元倉庫コードが一致しません。";

	/** 棚移動出荷完了情報受信ファイル（データ部要素：型番号エラー） */
	private static final String ERR_TANA_FILE_COL_REC_MODEL = "型番号が設定されていません。";

	/** 棚移動出荷完了情報受信ファイル（データ部要素：型番号存在エラー） */
	private static final String ERR_TANA_FILE_COL_REC_MODEL_SON = "宅内機器型式コードがマスタに登録されていません。";

	/** 棚移動出荷完了情報受信ファイル（データ部要素：製造番号指定エラー） */
	private static final String ERR_TANA_FILE_COL_REC_SEIZO_SET = "製造番号管理品で製造番号が指定されていません。";

	/** 棚移動出荷完了情報受信ファイル（データ部要素：製造番号未指定エラー） */
	private static final String ERR_TANA_FILE_COL_REC_SEIZO_MI = "非製造番号管理品で製造番号が指定されています。";

	/** 棚移動出荷完了情報受信ファイル（データ部要素：数量指定エラー） */
	private static final String ERR_TANA_FILE_COL_REC_CNT_ONE = "製造番号管理品で数量に１以外が設定されています。";

	/** 棚移動出荷完了情報受信ファイル（データ部要素：数量未指定エラー） */
	private static final String ERR_TANA_FILE_COL_REC_CNT_MI = "非製造番号管理品で数量の指定がありません。";

	/** 棚移動出荷完了情報受信ファイル（データ部要素：レコード重複エラー） */
	private static final String ERR_TANA_FILE_COL_REC_ZYU = "行目と重複レコードです。";

	/** 棚移動出荷完了情報受信ファイル（データ部要素：レコード存在エラー） */
	private static final String ERR_TANA_FILE_COL_REC_SON = "棚移動ロット番号内に指定のレコードが登録されていません。";

	// IT1-2014-0000334 ADD START
	/** 棚移動出荷完了情報受信ファイル（データ部要素・組み合わせエラー） */
	private static final String ERR_TANA_FILE_COL_REC_KUMI = "存在しない型番号と製造番号の組み合わせです。";
	// IT1-2014-0000334 ADD END

	/** 棚移動出荷完了情報受信ファイル（トレーラ部項目数エラー） */
	private static final String ERR_TANA_FILE_COL_REC_LAST_NUM = "データ項目数が2以外です。";

	/** 棚移動出荷完了情報受信ファイル（トレーラー部要素：レコード種別エラー） */
	private static final String ERR_TANA_FILE_COL_REC_LAST_SBT = "レコード種別が78以外です。";

	/** 棚移動出荷完了情報受信ファイル（トレーラー部要素：データ件数エラー） */
	private static final String ERR_TANA_FILE_COL_REC_LAST_CNT = "レコード件数が一致していません。";

	// IT1-2014-0000333 ADD START
	/** 棚移動出荷完了情報受信ファイル（指示数・データ件数エラー） */
	private static final String ERR_TANA_FILE_COL_REC_SIJI_CNT = "指示数とレコード件数が一致していません。";
	// IT1-2014-0000333 ADD END

	/** 予備機器配送ステータス：完了済み */
	// IT1-2014-0000332 MOD START
//	private static final String HAISO_STAT_KAN = "005";
	private static final String HAISO_STAT_KAN = "003";
	// IT1-2014-0000332 MOD END

	/** 指定方法コード：製造番号指定 */
	private static final String WAY_CD_SEIZO = "2";

	// IT1-2014-0000333 ADD START
	/** 棚移動種別区分：更新 */
	private static final String MV_SBT_VALUE = "2";
	// IT1-2014-0000333 ADD END

	// IT1-2014-0000334 ADD START
	private static final String DL_TRN_KANRI_NO_TANAMOVE_ADD = "000000000122";
	// IT1-2014-0000334 ADD END

	/** CC名 */
	private static final String DKSV001301SC = "DKSV001301SC";

	/** CC名 */
	private static final String DKSV001302SC = "DKSV001302SC";
	
	/** CC名 */
	private static final String DKSV004201CC = "DKSV004201CC";

	/** CC名 */
	private static final String DKSV004202CC = "DKSV004202CC";

	/** CC名 */
	private static final String DKSV004203CC = "DKSV004203CC";

	/** CC名 */
	private static final String DKSV004204CC = "DKSV004204CC";

	/** CC名 */
	private static final String DKSV004205CC = "DKSV004205CC";

	/** CC名 */
	private static final String DKSV004206CC = "DKSV004206CC";

	/** CC名 */
	private static final String DKSV004207SC = "DKSV004207SC";


	/** 共通検索キー.機能コード */
	private static final String FUNC_CODE = "func_code";

	/** 機器検索キー.ＫＥＹ＿処理区分 */
	private static final String KEY_TRN_DIV = "key_trn_div";

	/** 機器検索キー.ＫＥＹ＿宅内機器型式コード */
	private static final String KEY_TK_MDL_CD = "key_tk_mdl_cd";

	/** 機器検索キー.ＫＥＹ＿機器製造番号 */
	private static final String KEY_KIKI_SEIZO_NO = "key_kiki_seizo_no";

	/** 機器検索キー.ＫＥＹ＿宅内機器セット品型コード */
	private static final String KEY_TAKNKIKI_SETHIN_MODEL_CD = "key_taknkiki_sethin_model_cd";

	/** 機器検索キー.ＫＥＹ＿宅内機器セット品番号 */
	private static final String KEY_TAKNKIKI_SETHIN_NO = "key_taknkiki_sethin_no";


	/** 倉庫棚機器移動マップ.ＫＥＹ＿予備機器配送番号 */
	private static final String KEY_YBKIKI_HAISO_NO = "key_ybkiki_haiso_no";

	/** 倉庫棚機器移動マップ.ＫＥＹ＿更新年月日時分秒（更新前） */
	private static final String UPD_DTM_BF = "upd_dtm_bf";

	/** 指定方法コード */
	private static final String SHITEI_WAY_CD = "shitei_way_cd";

	/** 棚移動種別区分 */
	private static final String MV_SBT = "mv_sbt";


	/** 倉庫棚移動内訳棚移動完了マップ.倉庫棚移動番号 */
	private static final String SOKODNA_MOVE_NO = "sokodna_move_no";

	/** 倉庫棚移動内訳棚移動完了マップ.棚移動数量 */
	private static final String SHELF_MOVE_CNT = "shelf_move_cnt";

	/** 倉庫棚移動内訳棚移動完了マップ.倉庫棚移動対象機器備考 */
	private static final String SKDN_MV_TG_KIKI_BIKO = "skdn_mv_tg_kiki_biko";

	/** 倉庫棚移動内訳棚移動完了マップ.倉庫棚移動理由コード */
	private static final String SOKODNA_MOVE_RSN_CD = "sokodna_move_rsn_cd";

	/** 倉庫棚移動内訳棚移動完了マップ.宅内機器型式コード */
	private static final String TAKNKIKI_MODEL_CD = "taknkiki_model_cd";

	/** 倉庫棚移動内訳棚移動完了マップ.付属品型式コード */
	private static final String HUZOKUHIN_MODEL_CD = "huzokuhin_model_cd";

	/** 倉庫棚移動内訳棚移動完了マップ.宅内機器セット品型コード */
	private static final String TAKNKIKI_SETHIN_MODEL_CD = "TAKNKIKI_SETHIN_MODEL_CD";

	/** 倉庫棚移動内訳棚移動完了マップ.機器製造番号 */
	private static final String KIKI_SEIZO_NO = "kiki_seizo_no";

	/** 倉庫棚移動内訳棚移動完了マップ.宅内機器製造番号 */
	private static final String TAKNKIKI_SETHIN_NO = "TAKNKIKI_SETHIN_NO";


	/** 製番指定出荷完了マップ.ＫＥＹ＿予備機器配送内訳番号 */
	private static final String KEY_YBKIKI_HAISO_UCWK_NO = "key_ybkiki_haiso_ucwk_no";

	/** 製番指定出荷完了マップ.出荷数量 */
	private static final String SHUKKA_CNT = "shukka_cnt";


	/** 宅内管理情報更新マップ.ＫＥＹ＿機器製造番号 */
	private static final String KEY_KK_SEIZO_NO = "key_kk_seizo_no";

	/** 宅内管理情報更新マップ.ＫＥＹ＿宅内機器基本Ｔ更新日付 */
	private static final String KEY_KIHON_UPD_DTTM = "key_kihon_upd_dttm";

	/** 宅内管理情報更新マップ.ＫＥＹ＿棚移動ロット番号 */
	private static final String KEY_SHELF_MV_LOT_NO = "key_shelf_mv_lot_no";


	/** 型式検索結果.製造番号有無 */
	private static final String SEIZO_NO_UM = "seizo_no_um";

	/** 機能コード */
	private static final String FUNC_CODE_VAL = "1";

	/** 機能コード；実行無し */
	private static final String FUNC_CODE_VAL_NON = "2";

	/** ＫＥＹ＿処理区分 */
	private static final String KEY_TRN_DIV_VAL = "2";

	/** ステータス：正常終了 */
	private static final String STAT_NORMAL = "0000";

	/** ステータス：データ無し */
	private static final String STAT_NODATA = "1000";

	/** ユースケースID */
	private static final String DKSV0013 = "DKSV0013";

	/** RETURN_CODE */
	private static final String RETURN_CODE = "RETURN_CODE";

	/** 製造番号有無：有り */
	private static final String SEIZO_NO_ARI = "1";

	/** ユースケースID */
	private static final String DKSV0042 = "DKSV0042";

	// IT1-2014-0000332 DEL START
//	/** 棚移動種別区分：館外 */
//	private static final String MV_SBT_GAI = "1";
	// IT1-2014-0000332 DEL END

	/** 予備機器配送ステータス名一覧 */
	private static final String[][] MSKM_HAISO_STAT_LIST = 
	{
		{"001", "受付済"},
		{"002", "中止済"},
		{"003", "指示済"},
		{"004", "出荷済"}
		// IT1-2014-0000332 ADD START
		,{"005", "完了済"}
		// IT1-2014-0000332 ADD END
	};


	/** ファイル入力内容リスト */
	private ArrayList<String> InValueList = null;

	/** 予備機器配送取得データリスト */
	private ArrayList<HashMap<String, Object>> YbTgList = null;

	// IT1-2014-0000334 DEL START
	/** 予備機器配送対象物品取得データリスト */
//	private ArrayList<ArrayList<HashMap<String, Object>>> YbTgBpList = null;
	// IT1-2014-0000334 DEL END

	// IT1-2014-0000334 ADD START
	/** CCデータリスト */
	private ArrayList<ArrayList<HashMap<String, Object>>> TblCCList = null;
	// IT1-2014-0000334 ADD END

	/** 棚移動出荷完了情報受信エラーリスト */
	private ArrayList<String[]> TanaMoveErrList = null;

	/** 宅内機器型式コードリスト */
	private ArrayList<String> TkmdlcdList = null;

	// IT1-2014-0000333 DEL START
	// IT1-2014-0000332 ADD START
//	/** 棚移動種別区分リスト */
//	private ArrayList<String> MVSbtList = null;
	// IT1-2014-0000332 ADD END
	// IT1-2014-0000333 DEL END

	/** 電子ファイル管理番号 */
	private String efileKanriNo = null;

	/** 棚移動出荷完了情報ディレクトリ */
	private String TanaMoveDir = null;

	/** 棚移動出荷完了情報ファイル */
	private String TanaMoveFile = null;
	
	// IT1-2014-0000334 ADD START
	private String khn_upd_dttm_k = null;
	// IT1-2014-0000334 ADD END
	
	// ANK-2428-00-00 ADD START
	private Boolean sokoFlg = false;
	// ANK-2428-00-00 ADD END
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_ZM_T_DL_FILE_KANRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_T_DL_FILE_KANRI);
		db_DK_T_YBKIKI_HAISO = new JBSbatSQLAccess(commonItem, D_TBL_NAME_DK_T_YBKIKI_HAISO);
		db_DK_M_SOKO = new JBSbatSQLAccess(commonItem, D_TBL_NAME_DK_M_SOKO);
		db_DK_T_YBKKHAI_TG_BPIN = new JBSbatSQLAccess(commonItem, D_TBL_NAME_DK_T_YBKKHAI_TG_BPIN);

		// ANK-2428-00-00 ADD START
		db_DK_T_SOKODNA_MOVE = new JBSbatSQLAccess(commonItem, D_TBL_NAME_DK_T_SOKODNA_MOVE);
		db_DK_T_SDNAMV_TG_KIKI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_DK_T_SDNAMV_TG_KIKI);
		// ANK-2428-00-00 ADD END

		// IT1-2015-0000007 ADD START
		db_ZM_M_TAKNKIKI_MODEL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_TAKNKIKI_MODEL);
		// IT1-2015-0000007 ADD END

		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/

		try
		{
			// パラメータの取得（Freeパラメータ）
			String[] freeParam = commonItem.getFreeItem().split(JDKStrConst.FREE_DLMT);

			// 棚移動出荷完了情報ファイル設定
			TanaMoveDir = freeParam[0];
			TanaMoveFile = freeParam[1];

			// ファイル存在チェック
			File file = new File(inspection(TanaMoveDir + TanaMoveFile + ".csv"));
			if (!file.exists())
			{
				return null;
			}

			JBSbatInputFileUtil inputFile = new JBSbatInputFileUtil(TanaMoveDir + TanaMoveFile + ".csv");
			try
			{
				String line = null;

				inputFile.setEncode(JDKStrConst.ENCODE_SJIS2);
				inputFile.createReader();
				while (inputFile.ready())
				{
					// ファイルの読み込み
					line = inputFile.readLine();

					// ファイル入力内容リストの作成
					InValueList = new ArrayList<String>();
					InValueList.add(line);
				}
			}
			catch (IOException ex)
			{
				super.logPrint.printDebugLog("ファイル読み込み失敗:" + TanaMoveDir + TanaMoveFile + ".csv");
				commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0660CE,
						new String[] {TanaMoveDir + TanaMoveFile + ".csv"});
				throw ex;
			}
			finally
			{
				try
				{
					inputFile.close();
				}
				catch (NullPointerException ex)
				{
					super.logPrint.printDebugLog("ファイルクローズはインスタンスがNull:" + TanaMoveDir + TanaMoveFile + ".csv");
				}
			}

			for (int i = 0; i < InValueList.size(); i++)
			{
				byte[] denshiFileByte = getDenshiFileByte(InValueList.get(i));

				if (denshiFileByte == null)
				{
					throw new JBSbatBusinessException(JPCBatchMessageConstant.EDKB0020KE, 
							new String[] {"電子ファイル管理", "電子ファイル管理番号＝" + InValueList.get(i)});
				}

				// ファイルの中身を取得する
				String dlydString = new String(denshiFileByte, JDKStrConst.CHAR_SET_WIN31J);

				// 文字列から改行コードで分割
				String[] strDlydList = dlydString.split(JDKStrConst.LINE_SEPARATOR);

				// 配列の第１要素が空の場合、
				if (JDKCommonUtil.isNull(strDlydList[0]))
				{
					throw new JBSbatBusinessException(JPCBatchMessageConstant.EDKB0020KE, 
							new String[] {"電子ファイル管理", "電子ファイル管理番号＝" + InValueList.get(i)});
				}

				YbTgList = new ArrayList<HashMap<String, Object>>();

				// IT1-2014-0000334 DEL START
//				YbTgBpList = new ArrayList<ArrayList<HashMap<String, Object>>>();
				// IT1-2014-0000334 DEL END

				TanaMoveErrList = new ArrayList<String[]>();

				efileKanriNo = InValueList.get(i);

				// IT1-2014-0000333 ADD START
				String sjiCnt = "";
				// IT1-2014-0000333 ADD END

				// IT1-2014-0000334 ADD START
				String tYBkikiHaiso = null;
				int tYBkikiHaisoCnt = 0;
				String tsjiCnt = "";
				// IT1-2014-0000334 ADD END

				// OM-2014-0003925 ADD START
				Boolean seizoUmFlg = true;
				// OM-2014-0003925 ADD END

				// 入荷完了情報受信ファイルの情報を読込
				for (int j = 0; j < strDlydList.length; j++)
				{
					// 行番号を生成する
					String rowNo = String.valueOf(j + 1);

					// 予備機器配送取得マップ
					HashMap<String, Object> YbkikiHaisoMap = null;
					YbkikiHaisoMap = new HashMap<String, Object>();

					// 予備機器配送対象物品取得リスト
					ArrayList<HashMap<String, Object>> YbkikiTgBpList = null;
					YbkikiTgBpList = new ArrayList<HashMap<String, Object>>();
					
					// レコード内容をカンマ区切りで配列化する
					String[] nyukaJoho = this.split(strDlydList[j]);

					// 入荷完了情報受信ファイルのデータ部確認
					if (j != strDlydList.length - 1)
					{
						// フォーマットチェック(項目数チェック)
						// データ部項目数が"10"ではない場合
						if (nyukaJoho.length > 0 && TANA_FILE_COL_REC_NUM != nyukaJoho.length)
						{
							// 棚移動出荷完了情報エラーリストの生成・追加
							TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_NUM, strDlydList[j]});
						}
						// ドメインチェック
						// レコード種別が"77"でない場合
						else if (!TANA_FILE_COL_REC_SBT_77.equals(nyukaJoho[TANA_FILE_COL_REC_SBT]))
						{
							// 棚移動出荷完了情報エラーリストの生成・追加
							TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_SBT, strDlydList[j]});
						}
						// 棚移動指示日が設定されていない場合
						else if ("".equals(nyukaJoho[TANA_FILE_COL_REC_SJI]))
						{
							// 棚移動出荷完了情報エラーリストの生成・追加
							TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_SJI, strDlydList[j]});
						}
						// 棚移動ロット番号が設定されていない場合
						else if ("".equals(nyukaJoho[TANA_FILE_COL_REC_LOT]))
						{
							// 棚移動出荷完了情報エラーリストの生成・追加
							TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_LOT, strDlydList[j]});
						}
						// IT1-2015-0000007 ADD START
						// 型番号が設定されていない場合
						else if ("".equals(nyukaJoho[TANA_FILE_COL_REC_MODEL]))
						{
							// 棚移動出荷完了情報エラーリストの生成・追加
							TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_MODEL, strDlydList[j]});
						}
						// 型番号が存在しない場合
						else if (!chkKata(nyukaJoho[TANA_FILE_COL_REC_MODEL]))
						{
							// 棚移動出荷完了情報エラーリストの生成・追加
							TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_MODEL_SON, strDlydList[j]});
						}
						// IT1-2015-0000007 ADD END
						// 棚移動ロット番号が予備機器配送に登録されていない場合
						// IT1-2014-0000334 MOD START
//						else if (!this.getYbkikiHaiso(nyukaJoho[TANA_FILE_COL_REC_LOT], YbkikiHaisoMap))
						else if (!this.getYbkikiHaiso(nyukaJoho[TANA_FILE_COL_REC_LOT], nyukaJoho[TANA_FILE_COL_REC_MODEL],
														nyukaJoho[TANA_FILE_COL_REC_SEIZO], YbkikiHaisoMap))
						// IT1-2014-0000334 MOD END
						{
							// 棚移動出荷完了情報エラーリストの生成・追加
							TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_LOT_SON, strDlydList[j]});
						}
						// 予備機器配送の予備機器配送ステータスが完了済み以外の場合
						else if (!HAISO_STAT_KAN.equals(YbkikiHaisoMap.get("YBKIKI_HAISO_STAT").toString()))
						{
							// 棚移動出荷完了情報エラーリストの生成・追加
							TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_LOT_SHN_1 + 
									getHaisoStatNm(YbkikiHaisoMap.get("YBKIKI_HAISO_STAT").toString()) +
									ERR_TANA_FILE_COL_REC_LOT_SHN_2, strDlydList[j]});
						}
						// 移動元倉庫コードが設定されていない場合
						else if ("".equals(nyukaJoho[TANA_FILE_COL_REC_TTM]))
						{
							// 棚移動出荷完了情報エラーリストの生成・追加
							TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_TTM, strDlydList[j]});
						}
						// 移動元倉庫コードが倉庫に登録されていない場合
						else if (!this.checkSoko(nyukaJoho[TANA_FILE_COL_REC_TTM]))
						{
							// 棚移動出荷完了情報エラーリストの生成・追加
							TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_TTM_SON, strDlydList[j]});
						}
						// 移動元倉庫コードが予備機器配送の配送元倉庫コード一致しない場合
						else if (!YbkikiHaisoMap.get("HAISO_MOTO_SOKO_CD").toString().equals(nyukaJoho[TANA_FILE_COL_REC_TTM]))
						{
							// 棚移動出荷完了情報エラーリストの生成・追加
							TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_TTM_ITC, strDlydList[j]});
						}
						// IT1-2015-0000007 DEL START
						// 型番号が設定されていない場合
//						else if ("".equals(nyukaJoho[TANA_FILE_COL_REC_MODEL]))
//						{
//							// 棚移動出荷完了情報エラーリストの生成・追加
//							TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_MODEL, strDlydList[j]});
//						}
						// IT1-2015-0000007 DEL END
						// レコードの重複チェックを行う
						else if (!"".equals(this.checkRepetition(nyukaJoho, j, strDlydList)))
						{
							// 棚移動出荷完了情報エラーリストの生成・追加
							TanaMoveErrList.add(new String[]{rowNo, this.checkRepetition(nyukaJoho, j, strDlydList) + ERR_TANA_FILE_COL_REC_ZYU, strDlydList[j]});
						}
						// IT1-2014-0000334 MOD START
						// レコードの存在チェックを行う
//						else if (!this.getTgBpin(YbkikiHaisoMap.get("YBKIKI_HAISO_NO").toString(), 
//										nyukaJoho[TANA_FILE_COL_REC_MOVE], YbkikiTgBpList)
//								&& !WAY_CD_SEIZO.equals(YbkikiHaisoMap.get("SHITEI_WAY_CD").toString()) )
//						{
						else if (WAY_CD_SEIZO.equals(YbkikiHaisoMap.get("SHITEI_WAY_CD").toString())
								&& !this.getTgBpin(YbkikiHaisoMap.get("YBKIKI_HAISO_NO").toString(), 
									nyukaJoho[TANA_FILE_COL_REC_MOVE], YbkikiTgBpList))
						// IT1-2014-0000334 MOD END
						{
							// ANK-2428-00-00 MOD START
//							// 棚移動出荷完了情報エラーリストの生成・追加
//							TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_SON, strDlydList[j]});

							if (WAY_CD_SEIZO.equals(YbkikiHaisoMap.get("SHITEI_WAY_CD").toString())
									&& !this.getTgKiki(YbkikiHaisoMap.get("YBKIKI_HAISO_NO").toString(), 
										nyukaJoho[TANA_FILE_COL_REC_MOVE], YbkikiTgBpList)) {
								// 棚移動出荷完了情報エラーリストの生成・追加
								TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_SON, strDlydList[j]});
							}
							// ANK-2428-00-00 MOD END
						}

						// 予備機器配送取得データリストに取得結果した予備機器配送マップを格納
						if (YbkikiHaisoMap != null) {
							YbTgList.add(YbkikiHaisoMap);

							// IT1-2014-0000333 ADD START
							if (TanaMoveErrList == null || TanaMoveErrList.size() == 0) {
								sjiCnt = YbkikiHaisoMap.get("SJI_CNT").toString();
							}
							// IT1-2014-0000333 ADD END
						}

						// IT1-2014-0000334 DEL START
						// 予備機器配送対象物品取得データリストに取得結果した予備機器配送対象物品マップを格納
//						if (YbkikiTgBpList != null) {
//							YbTgBpList.add(YbkikiTgBpList);
//						}
						// IT1-2014-0000334 DEL END

						// IT1-2014-0000334 ADD START
						tYBkikiHaisoCnt++;

						// OM-2014-0003925 MOD START
//						if (null != tYBkikiHaiso
//								&& !tYBkikiHaiso.equals(YbkikiHaisoMap.get("YBKIKI_HAISO_NO").toString())) {
//									if (!String.valueOf(tYBkikiHaisoCnt - 1).equals(tsjiCnt)) {
//										// 棚移動出荷完了情報エラーリストの生成・追加
//										TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_SIJI_CNT, ""});
//									}
//									tYBkikiHaisoCnt = 1;
//								}
//								tsjiCnt = sjiCnt;
						if (TanaMoveErrList == null || TanaMoveErrList.size() == 0) {
							if (!("".equals(nyukaJoho[TANA_FILE_COL_REC_SEIZO]))) {
								if (null != tYBkikiHaiso
								&& !tYBkikiHaiso.equals(YbkikiHaisoMap.get("YBKIKI_HAISO_NO").toString())) {
									if (!String.valueOf(tYBkikiHaisoCnt - 1).equals(tsjiCnt)) {
										// 棚移動出荷完了情報エラーリストの生成・追加
										TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_SIJI_CNT, ""});
									}
									tYBkikiHaisoCnt = 1;
								}
							}
							else {
								tYBkikiHaisoCnt = 1;
								sjiCnt = "1";
							}
							tsjiCnt = sjiCnt;
						}

						if ("".equals(nyukaJoho[TANA_FILE_COL_REC_SEIZO])) {
							seizoUmFlg = false;
						}
						// OM-2014-0003925 MOD END

						if (YbkikiHaisoMap.size() != 0) {
							tYBkikiHaiso = YbkikiHaisoMap.get("YBKIKI_HAISO_NO").toString();
						}
						// IT1-2014-0000334 ADD END
					}
					// 入荷完了情報受信ファイルのトレーラ部確認
					else {
						// 棚移動出荷完了情報のトレーラ部項目数が"2"ではない場合
						if (nyukaJoho.length > 0 && TANA_FILE_COL_REC_LAST_NUM != nyukaJoho.length)
						{
							// 棚移動出荷完了情報エラーリストの生成・追加
							TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_LAST_NUM, strDlydList[j]});
						}
						// ドメインチェック
						// レコード種別が"78"でない場合
						else if (!TANA_FILE_COL_REC_SBT_78.equals(nyukaJoho[TANA_FILE_COL_REC_SBT]))
						{
							// 棚移動出荷完了情報エラーリストの生成・追加
							TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_LAST_SBT, strDlydList[j]});
						}
						// データのレコード件数+1（ファイルの行数）でない場合
						else if (!String.valueOf(strDlydList.length).equals(nyukaJoho[TANA_FILE_COL_REC_LAST_CNT]))
						{
							// 棚移動出荷完了情報エラーリストの生成・追加
							TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_LAST_CNT, ""});
						}
						// IT1-2014-0000334 MOD START
						// IT1-2014-0000333 ADD START
						// データのレコード件数と指示数が一致しない場合
//						else if (!"".equals(sjiCnt) && !String.valueOf(strDlydList.length - 1).equals(sjiCnt))
//						{
//							// 棚移動出荷完了情報エラーリストの生成・追加
//							TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_SIJI_CNT, ""});
//						}
						// IT1-2014-0000333 ADD END

						// OM-2014-0003925 MOD START
//						if (TanaMoveErrList == null || TanaMoveErrList.size() == 0) {
//							if (!String.valueOf(tYBkikiHaisoCnt).equals(sjiCnt)) {
//								// 棚移動出荷完了情報エラーリストの生成・追加
//								TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_SIJI_CNT, ""});
//							}
//						}

						if ((TanaMoveErrList == null || TanaMoveErrList.size() == 0) && seizoUmFlg) {
							if (!String.valueOf(tYBkikiHaisoCnt).equals(sjiCnt)) {
								// 棚移動出荷完了情報エラーリストの生成・追加
								TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_SIJI_CNT, ""});
							}
						}
						// OM-2014-0003925 MOD END
						// IT1-2014-0000334 MOD END
					}
				}

				// 棚移動出荷完了情報エラーファイルの確認
				if (TanaMoveErrList == null || TanaMoveErrList.size() == 0) {
					// 宅内管理システムとのデータチェック
					this.checkKikiData(strDlydList);
				}

				// 棚移動出荷完了情報エラーファイルの確認
				if (TanaMoveErrList == null || TanaMoveErrList.size() == 0) {
					// 棚移動出荷完了情報登録
					this.putServiceDKSV0042(strDlydList);
				}
				else {
					// 棚移動出荷完了情報エラーファイルの作成
					this.putErrorFile();
				}
			}
		}
		catch (Exception ex)
		{
			commonItem.getConnection().rollback();
			throw ex;
		}
		finally
		{
			commonItem.getConnection().commit();
		}
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/

		// DBアクセスクラスをクローズします
		db_ZM_T_DL_FILE_KANRI.close();
		db_DK_T_YBKIKI_HAISO.close();
		db_DK_M_SOKO.close();
		db_DK_T_YBKKHAI_TG_BPIN.close();

		// IT1-2015-0000007 ADD START
		db_DK_T_SOKODNA_MOVE.close();
		db_DK_T_SDNAMV_TG_KIKI.close();
		db_ZM_M_TAKNKIKI_MODEL.close();
		// IT1-2015-0000007 ADD END

		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 環境変数ディレクトリ検査用メソッド（ファイルインジェクション対策）<br>
	 * 半角アルファベットと数字のみで構成されていることを検査します。
	 * <br>
	 * @param argDirNm:検査する文字列
	 * @return String 検査した文字列
	 * @throws IllegalArgumentException 業務サービス内で発生した例外全般。
	 */
	private String inspection(String argDirNm) throws IllegalArgumentException
	{
		if (argDirNm.matches("\\p{InBasicLatin}+"))
		{
			return argDirNm;
		}
		throw new IllegalArgumentException(argDirNm); // 誤ったファイル名を指定
	}

	/**
	 * 電子ファイルをbyteの配列に変換します。
	 * 
	 * @param cmnItem 業務共通電文クラス
	 * @param eFileKanriNo 電子ファイル管理番号
	 * @return 変換後のbyteの配列
	 * @throws Exception 
	 * @throws SQLException 
	 */
	private byte[] getDenshiFileByte(String eFileKanriNo) throws Exception
	{
		BufferedInputStream in = null;
		ByteArrayOutputStream baos = null;
		byte reb[] = null; 
		String path = null;
		
		try
		{
			// 電子ファイル解凍処理
			path = JCCbatDenshiFileUtil.searchDenshiFile(commonItem, eFileKanriNo);
			
			if(null == path){
				return null;
			}
			
			in = new BufferedInputStream(new FileInputStream( path ));
			baos = new ByteArrayOutputStream();
			byte btmp[] = new byte[1024]; 
			int j;
			while((j = in.read(btmp))!=-1){
				baos.write(btmp, 0, j);
			}
			
			reb = baos.toByteArray();
			
			if(null != in){
				in.close();
			}
			if(null != baos){
				baos.close();
			}
		}
		catch (Exception e)
		{
			return null;
		}
		finally
		{
			//作業用ファイルの削除
			if(null != path){
				String parentPath = path.substring(0, path.lastIndexOf(File.separator));
				JCCFileUtil.removeDir(parentPath);
			}

			if (null != in)
			{
				try {
					in.close();
				} catch (Exception e) {
					;//なにもしない
				}
			}
			if (null != baos)
			{
				try {
					baos.close();
				} catch (Exception e) {
					;//なにもしない
				}
			}
		}

		return reb;
	}

	/***
	 * 配列を生成する。
	 * @param value 元ネタとなる受信ファイルデータ
	 * @return 配列
	 */
	private String[] split(String value)
	{
		String[] nyukaJoho = value.split(",");

		for (int i = 0; i < nyukaJoho.length; i++)
		{
			nyukaJoho[i] = nyukaJoho[i].replace("\"", "");
		}

		return nyukaJoho;
	}

	/**
	 * 予備機器配送の取得処理を行います。
	 * @param moveLotNo 棚移動ロット番号
	 * @param outMap 予備機器配送取得マップ
	 * @return true:登録あり false:登録なし
	 */
	// IT1-2014-0000334 MOD START
//	private boolean getYbkikiHaiso(String moveLotNo, HashMap<String, Object> outMap) throws Exception
	private boolean getYbkikiHaiso(String moveLotNo, String taknKiki, String kikiSeizo, HashMap<String, Object> outMap) throws Exception
	// IT1-2014-0000334 MOD END
	{
		// 予備機器配送を取得
		String[] param = new String[]{moveLotNo, taknKiki};
		this.executeDK_T_YBKIKI_HAISO_DK_SELECT_002(param);
		JBSbatCommonDBInterface resultMap = db_DK_T_YBKIKI_HAISO.selectNext();
		if (resultMap == null)
		{
			// ANK-2428-00-00 MOD START
//			return false;
			// 倉庫棚移動の取得処理
			if (getSokoDnaMove(moveLotNo, taknKiki, kikiSeizo, outMap)) {
				sokoFlg = true;
				return true;
			}
			else {
				return false;
			}
			// ANK-2428-00-00 MOD END
		}

		// IT1-2014-0000334 DEL START
//		while (resultMap != null)
//		{
		// IT1-2014-0000334 DEL START
			outMap.put("YBKIKI_HAISO_NO", resultMap.getString("YBKIKI_HAISO_NO"));
			outMap.put("YBKIKI_HAISO_STAT", resultMap.getString("YBKIKI_HAISO_STAT"));
			outMap.put("HAISO_MOTO_SOKO_CD", resultMap.getString("HAISO_MOTO_SOKO_CD"));
			outMap.put("SHITEI_WAY_CD", resultMap.getString("SHITEI_WAY_CD"));
			outMap.put("UPD_DTM", resultMap.getString("UPD_DTM"));

			// IT1-2014-0000333 ADD START
			outMap.put("SJI_CNT", resultMap.getString("SJI_CNT"));
			// IT1-2014-0000333 ADD END

			// IT1-2014-0000334 ADD START
			outMap.put("TAKNKIKI_SETHIN_MODEL_CD", resultMap.getString("TAKNKIKI_SETHIN_MODEL_CD"));
			outMap.put("TAKNKIKI_MODEL_CD", resultMap.getString("TAKNKIKI_MODEL_CD"));
			outMap.put("KIKI_SEIZO_NO", kikiSeizo);
			// IT1-2014-0000334 ADD END

			// IT1-2014-0000334 DEL START
//			if (HAISO_STAT_KAN.equals(resultMap.getString("YBKIKI_HAISO_STAT"))){
//				break;
//			}
//
//			resultMap = db_DK_T_YBKIKI_HAISO.selectNext();
//		}
		// IT1-2014-0000334 DEL END
		return true;
	}

	// ANK-2428-00-00 ADD START
	/**
	 * 倉庫棚移動の取得処理を行います。
	 * @param moveLotNo 棚移動ロット番号
	 * @param outMap 予備機器配送取得マップ
	 * @return true:登録あり false:登録なし
	 */
	private boolean getSokoDnaMove(String moveLotNo, String taknKiki, String kikiSeizo, HashMap<String, Object> outMap) throws Exception
	{
		// 倉庫棚移動を取得
		String[] param = new String[]{moveLotNo, taknKiki};
		this.executeDK_T_SOKODNA_MOVE_DK_SELECT_002(param);
		JBSbatCommonDBInterface resultMap = db_DK_T_SOKODNA_MOVE.selectNext();
		if (resultMap == null)
		{
			return false;
		}

		outMap.put("YBKIKI_HAISO_NO", resultMap.getString("SOKODNA_MOVE_NO"));
		outMap.put("YBKIKI_HAISO_STAT", resultMap.getString("SOKODNA_MOVE_STAT"));
		outMap.put("HAISO_MOTO_SOKO_CD", resultMap.getString("SOKO_CD"));
		outMap.put("SHITEI_WAY_CD", resultMap.getString("SHITEI_WAY_CD"));
		outMap.put("UPD_DTM", resultMap.getString("UPD_DTM"));
		outMap.put("SJI_CNT", resultMap.getString("SJI_CNT"));
		outMap.put("TAKNKIKI_SETHIN_MODEL_CD", resultMap.getString("TAKNKIKI_SETHIN_MODEL_CD"));
		outMap.put("TAKNKIKI_MODEL_CD", resultMap.getString("TAKNKIKI_MODEL_CD"));
		outMap.put("KIKI_SEIZO_NO", kikiSeizo);
		outMap.put("SOKODNA_MOVE_RSN_MEMO", resultMap.getString("SOKODNA_MOVE_RSN_MEMO"));
		outMap.put("SOKODNA_MOVE_UCWK_NO", resultMap.getString("SOKODNA_MOVE_UCWK_NO"));
		outMap.put("UCWK_UPDDTM", resultMap.getString("UCWK_UPDDTM"));

		return true;
	}
	// ANK-2428-00-00 ADD END

	/**
	 * 予備機器配送ステータスに対応する予備機器配送ステータス名を
	 * 予備機器配送ステータス名一覧から取得・返却します。
	 * <br>
	 * @param HaisoStat 予備機器配送ステータス
	 * @return 予備機器配送ステータス名
	 */
	private String getHaisoStatNm(String HaisoStat)
	{
		for (int i = 0; i < MSKM_HAISO_STAT_LIST.length; i++)
		{
			
			// 予備機器配送ステータス名一覧から予備機器配送ステータス名を取得 
			String HaisoStat_c = MSKM_HAISO_STAT_LIST[i][0];
			
			if(HaisoStat_c.equals(HaisoStat))
			{
				// 対応する予備機器配送ステータス名を返す
				return MSKM_HAISO_STAT_LIST[i][1];
			}
		}
		
		// 対応する予備機器配送ステータスがない場合、空白を返す。
		return "";
	}

	/**
	 * 倉庫の取得処理を行います。
	 * @param SokoCd 倉庫コード
	 * @return true:登録あり false:登録なし
	 */
	private boolean checkSoko(String SokoCd) throws Exception
	{
		// 倉庫を取得
		String[] param = new String[]{SokoCd, commonItem.getOpeDate()};
		this.executeDK_M_SOKO_DK_SELECT_001(param);
		JBSbatCommonDBInterface resultMap = db_DK_M_SOKO.selectNext();
		if (resultMap == null || "0".equals(resultMap.getString("COUNT")))
		{
			return false;
		}
		return true;
	}

	/**
	 * レコードの重複チェック処理を行います。
	 * @param columns データ項目
	 * @param index 処理行番号
	 * @param lines データレコード
	 * @return 重複行番号
	 */
	private String checkRepetition(String[] columns, int index, String[] lines)
	{
		// 同一のファイル内で重複する棚移動番号・型番号・製造番号がある場合エラー
		for (int i = 0; i < lines.length - 1; i++)
		{
			String lineTemp = lines[i].replaceAll("\"", "");
			String [] columnsTemp = JDKCommonUtil.splitAnycase(lineTemp, ',');

			// 自行以外と比較
			if (i != index && columnsTemp.length > TANA_FILE_COL_REC_MOVE && 
					columns[TANA_FILE_COL_REC_MOVE].equals(columnsTemp[TANA_FILE_COL_REC_MOVE]) && 
					columns[TANA_FILE_COL_REC_MODEL].equals(columnsTemp[TANA_FILE_COL_REC_MODEL]) && 
					columns[TANA_FILE_COL_REC_SEIZO].equals(columnsTemp[TANA_FILE_COL_REC_SEIZO]))
			{
				// 行番号を返却する
				return String.valueOf(i + 1);
			}
		}
		return "";
	}

	/**
	 * 予備機器配送対象物品の取得処理を行います。
	 * @param HaisoNo 予備機器配送番号
	 * @param TanaMove 棚移動番号
	 * @param outList 予備機器配送対象物品取得リスト
	 * @return true:登録あり false:登録なし
	 */
	private boolean getTgBpin(String HaisoNo, String TanaMove, ArrayList<HashMap<String, Object>> outList) throws Exception
	{
		// 予備機器配送対象物品を取得
		String[] param = new String[]{HaisoNo, TanaMove};
		this.executeDK_T_YBKKHAI_TG_BPIN_SELECT_002(param);
		JBSbatCommonDBInterface resultMap = db_DK_T_YBKKHAI_TG_BPIN.selectNext();
		if (resultMap == null)
		{
			return false;
		}

		// 明細リスト
		ArrayList<HashMap<String, Object>> woutList = null;
		woutList = new ArrayList<HashMap<String, Object>>();

		// 明細マップ
		HashMap<String, Object> woutListMap = null;
		woutListMap = new HashMap<String, Object>();

		while (resultMap != null)
		{
			woutListMap.put("YBKIKI_HAISO_NO", resultMap.getString("YBKIKI_HAISO_NO"));
			woutListMap.put("YBKIKI_HAISO_TAIBPIN_NO", resultMap.getString("YBKIKI_HAISO_TAIBPIN_NO"));
			woutListMap.put("YBKIKI_HAISO_UCWK_NO", resultMap.getString("YBKIKI_HAISO_UCWK_NO"));
			woutListMap.put("YBKKHAI_TAIBPIN_BIKO", resultMap.getString("YBKKHAI_TAIBPIN_BIKO"));
			woutListMap.put("YBKKHAI_RSN_CD", resultMap.getString("YBKKHAI_RSN_CD"));
			woutListMap.put("TAKNKIKI_MODEL_CD", resultMap.getString("TAKNKIKI_MODEL_CD"));
			woutListMap.put("KIKI_SEIZO_NO", resultMap.getString("KIKI_SEIZO_NO"));
			woutListMap.put("TAKNKIKI_SETHIN_MODEL_CD", resultMap.getString("TAKNKIKI_SETHIN_MODEL_CD"));
			woutListMap.put("TAKNKIKI_SETHIN_NO", resultMap.getString("TAKNKIKI_SETHIN_NO"));
			woutListMap.put("HUZOKUHIN_MODEL_CD", resultMap.getString("HUZOKUHIN_MODEL_CD"));

			// IT1-2014-0000332 ADD START
			woutListMap.put("UPD_DTM", resultMap.getString("UPD_DTM"));
			// IT1-2014-0000332 ADD END

			// 明細リストに取得結果した明細マップを格納
			woutList.add(woutListMap);

			resultMap = db_DK_T_YBKKHAI_TG_BPIN.selectNext();
		}

		// 明細情報リストマップに値を格納
		outList.addAll(woutList);

		return true;
	}

	// ANK-2428-00-00 ADD START
	/**
	 * 倉庫棚移動対象機器の取得処理を行います。
	 * @param MoveNo 倉庫棚移動番号
	 * @param TanaMove 棚移動番号
	 * @param outList 倉庫棚移動対象機器取得リスト
	 * @return true:登録あり false:登録なし
	 */
	private boolean getTgKiki(String MoveNo, String TanaMove, ArrayList<HashMap<String, Object>> outList) throws Exception
	{
		// 倉庫棚移動対象機器を取得
		String[] param = new String[]{MoveNo, TanaMove};
		this.executeDK_T_SDNAMV_TG_KIKI_SELECT_002(param);
		JBSbatCommonDBInterface resultMap = db_DK_T_SDNAMV_TG_KIKI.selectNext();
		if (resultMap == null)
		{
			return false;
		}

		// 明細リスト
		ArrayList<HashMap<String, Object>> woutList = null;
		woutList = new ArrayList<HashMap<String, Object>>();

		// 明細マップ
		HashMap<String, Object> woutListMap = null;
		woutListMap = new HashMap<String, Object>();

		while (resultMap != null)
		{
			woutListMap.put("YBKIKI_HAISO_NO", resultMap.getString("SOKODNA_MOVE_NO"));
			woutListMap.put("YBKIKI_HAISO_TAIBPIN_NO", resultMap.getString("SOKODNA_MOVE_TAIKIKI_NO"));
			woutListMap.put("YBKIKI_HAISO_UCWK_NO", resultMap.getString("SOKODNA_MOVE_UCWK_NO"));
			woutListMap.put("YBKKHAI_TAIBPIN_BIKO", resultMap.getString("SKDN_MV_TG_KIKI_BIKO"));
			woutListMap.put("YBKKHAI_RSN_CD", resultMap.getString("SOKODNA_MOVE_RSN_CD"));
			woutListMap.put("TAKNKIKI_MODEL_CD", resultMap.getString("TAKNKIKI_MODEL_CD"));
			woutListMap.put("KIKI_SEIZO_NO", resultMap.getString("KIKI_SEIZO_NO"));
			woutListMap.put("TAKNKIKI_SETHIN_MODEL_CD", resultMap.getString("TAKNKIKI_SETHIN_MODEL_CD"));
			woutListMap.put("TAKNKIKI_SETHIN_NO", resultMap.getString("TAKNKIKI_SETHIN_NO"));
			woutListMap.put("HUZOKUHIN_MODEL_CD", resultMap.getString("HUZOKUHIN_MODEL_CD"));
			woutListMap.put("UPD_DTM", resultMap.getString("UPD_DTM"));

			// 明細リストに取得結果した明細マップを格納
			woutList.add(woutListMap);

			resultMap = db_DK_T_SDNAMV_TG_KIKI.selectNext();
		}

		// 明細情報リストマップに値を格納
		outList.addAll(woutList);

		return true;
	}
	// ANK-2428-00-00 ADD END

	// IT1-2015-0000007 ADD START
	/**
	 * 宅内機器型式の存在チェック処理を行います。
	 * @param Model 型番号
	 * @return true:登録あり false:登録なし
	 */
	private boolean chkKata(String Model) throws Exception
	{
		// 宅内機器型式を取得
		String[] param = new String[]{Model};
		this.executeZM_M_TAKNKIKI_MODEL_DK_SELECT_004(param);
		JBSbatCommonDBInterface resultMap = db_ZM_M_TAKNKIKI_MODEL.selectNext();
		if (resultMap == null)
		{
			return false;
		}
		return true;
	}
	// IT1-2015-0000007 ADD END

	/**
	 * 棚移動出荷完了情報受信エラーリストに設定されている内容を
	 * 棚移動出荷完了情報受信エラーファイルとして出力します。
	 * 
	 * @throws Exception
	 */
	private void putErrorFile() throws Exception
	{
		// エラーデータが存在しない場合は処理を終了する
		if (TanaMoveErrList == null || TanaMoveErrList.size() == 0)
		{
			return;
		}

		// 電子ファイル管理番号を設定
		String[] param = new String[]{efileKanriNo};

		// 棚移動出荷完了情報受信エラーファイルのファイル名を設定
		// IT1-2014-0000334 MOD START
//		String dnsFileNm = TanaMoveFile + "_" + this.opeDate + "_err.csv";
		String dnsFileNm = TanaMoveFile + "_" + JCCBatCommon.getSysDateTimeStamp() + "_err.csv";
		// IT1-2014-0000334 MOD END

		// 棚移動出荷完了情報受信エラーファイルを作成
		// ファイルパス（パス + ファイル名）の取得
		String midFilePath = TanaMoveDir + dnsFileNm;

		// ファイル出力制御クラスのコンストラクタ生成
		JBSbatOutputFileUtil outFile = new JBSbatOutputFileUtil(midFilePath);

		// 出力ファイル形式設定
		outFile.setEncode(ENCODE_SJIS);		// 文字コード
		outFile.setLine(LINE_CRLF);			// 改行コード

		try
		{
			// 棚移動出荷完了情報受信エラーファイルを作成する
			outFile.createWriter();
		}
		catch (Exception ex)
		{
			// 棚移動出荷完了情報受信エラーファイル作成失敗
			commonItem.getConnection().rollback();
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0030CE,
					new String[] {midFilePath});
			throw ex;
		}

		try
		{
			String defFile = this.rnktPath(JBSbatAplConst.getAplConstValue(DK_DIR_IND), "DKIFM112.def");
			JBSbatDefFileUtil defDataUtil = new JBSbatDefFileUtil(defFile, outFile);

			// データ部生成
			JBSbatServiceInterfaceMap outDataMap = null;
			for (int i = 0; i < TanaMoveErrList.size(); i++)
			{
				// データ部生成
				outDataMap = new JBSbatServiceInterfaceMap();

				// 行番号
				outDataMap.set(JBSbatDKIFM002.LINE_NO
						, JDKBatOutputFileUtil.encloseDQuot(TanaMoveErrList.get(i)[0]));

				// エラー内容
				outDataMap.set(JBSbatDKIFM002.ERR_NAIYO
						, JDKBatOutputFileUtil.encloseDQuot(TanaMoveErrList.get(i)[1]));

				// レコード内容
				outDataMap.set(JBSbatDKIFM002.REC_NAIYO
						, TanaMoveErrList.get(i)[2]);

				// 棚移動出荷完了情報受信エラーファイルの書き込み
				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);
			}
		}

		String[] retDenshiFile = null;
		try
		{
			// 電子ファイル管理データの登録を行う
			retDenshiFile = JCCBatCommon.createDenshiFile(commonItem
					, null
					, midFilePath
					, JBSbatDateUtil.adjustMonth(commonItem.getOpeDate(), 3));
		}
		catch (Exception ex)
		{
			// 電子ファイル管理登録失敗
			commonItem.getConnection().rollback();
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0070CE,
					new String[] {"電子ファイル管理", midFilePath});
			throw ex;
		}

		// ダウンロードファイル管理の登録を行う
		param = new String[9];

		// IT1-2014-0000334 MOD START
		// 処理管理番号
//		param[0] = DL_TRN_KANRI_NO_HENPIN_ADD;
		param[0] = DL_TRN_KANRI_NO_TANAMOVE_ADD;
		// IT1-2014-0000334 MOD END

		// ファイル名
		param[1] = dnsFileNm;

		// ファイル登録年月日時分秒
		param[2] = commonItem.getOpeDate()+JCCBatCommon.getSysDateTimeStamp().substring(8);

		// 登録年月日時分秒
		param[3] = JCCBatCommon.getSysDateTimeStamp();

		// 登録オペレータアカウント
		param[4] = commonItem.getBatchUserId();

		// 更新年月日時分秒
		param[5] = JCCBatCommon.getSysDateTimeStamp();

		// 更新オペレータアカウント
		param[6] = commonItem.getBatchUserId();

		// 電子ファイル管理番号
		param[7] = retDenshiFile[0];

		// 世代登録年月日時分秒
		param[8] = retDenshiFile[1];

		try
		{
			// ダウンロードファイル管理の登録
			this.executeZM_T_DL_FILE_KANRI_DK_INSERT_002(param);
		}
		catch (Exception ex)
		{
			// ダウンロードファイル管理登録失敗
			String errMsgParam = "'+ DL_TRN_KANRI_NO_HENPIN_ADD +','" + retDenshiFile[0] + "','返品エラー'";

			commonItem.getConnection().rollback();
			// 処理終了のメッセージを出力
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0070CE,
					new String[] {"ダウンロードファイル管理", errMsgParam});
			throw ex;
		}
	}

	/**
	 * パス文字列の連結
	 * 連結するパス文字列にパス区切り文字の設定を制御する。
	 * @param path1 パス文字列
	 * @param path2 パス文字列
	 * @return 連結したパス文字列
	 */
	private String rnktPath(String path1, String path2)
	{
		String pathDlmt = PATH_DLMT_UNIX;
		if (path1.indexOf(PATH_DLMT_WIN) > -1 || path2.indexOf(PATH_DLMT_WIN) > -1)
		{
			pathDlmt = PATH_DLMT_WIN;
		}
		if (!path1.endsWith(pathDlmt))
		{
			return path1 + pathDlmt + path2;
		}
		return path1 + path2;
	}

	/**
	 * SQLKEY(DK_INSERT_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_T_DL_FILE_KANRI_DK_INSERT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());
		paramList.setValue(param[6].toString());
		paramList.setValue(param[7].toString());
		paramList.setValue(param[8].toString());

		// DBアクセスを実行します
		db_ZM_T_DL_FILE_KANRI.executeBySqlDefine(paramList, ZM_T_DL_FILE_KANRI_DK_INSERT_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 executeDK_T_YBKIKI_HAISO_DK_SELECT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// IT1-2014-0000334 ADD START
		paramList.setValue(param[1].toString());
		// IT1-2014-0000334 ADD START

		// DBアクセスを実行します
		db_DK_T_YBKIKI_HAISO.selectBySqlDefine(paramList, DK_T_YBKIKI_HAISO_DK_SELECT_002);
	}

	// IT1-2014-0000334 ADD START
	/**
	 * SQLKEY(DK_SELECT_003)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	電子ファイル管理番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeDK_T_YBKIKI_HAISO_DK_SELECT_003(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_DK_T_YBKIKI_HAISO.selectBySqlDefine(paramList, DK_T_YBKIKI_HAISO_DK_SELECT_003);
	}

	/**
	 * 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_YBKIKI_HAISO_DK_SELECT_004(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_DK_T_YBKIKI_HAISO.selectBySqlDefine(paramList, DK_T_YBKIKI_HAISO_DK_SELECT_004);
	}
	// IT1-2014-0000334 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 executeDK_M_SOKO_DK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_DK_M_SOKO.selectBySqlDefine(paramList, DK_M_SOKO_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_YBKKHAI_TG_BPIN_SELECT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_DK_T_YBKKHAI_TG_BPIN.selectBySqlDefine(paramList, DK_T_YBKKHAI_TG_BPIN_DK_SELECT_002);
	}

	// ANK-2428-00-00 ADD START
	/**
	 * 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_SOKODNA_MOVE_DK_SELECT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_DK_T_SOKODNA_MOVE.selectBySqlDefine(paramList,DK_T_SOKODNA_MOVE_DK_SELECT_002);
	}
	/**
	 * SQLKEY(DK_SELECT_003)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	電子ファイル管理番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeDK_T_SOKODNA_MOVE_DK_SELECT_003(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_DK_T_SOKODNA_MOVE.selectBySqlDefine(paramList, DK_T_SOKODNA_MOVE_DK_SELECT_003);
	}

	/**
	 * 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_SOKODNA_MOVE_DK_SELECT_004(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_DK_T_SOKODNA_MOVE.selectBySqlDefine(paramList, DK_T_SOKODNA_MOVE_DK_SELECT_004);
	}

	/**
	 * 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_SDNAMV_TG_KIKI_SELECT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_DK_T_SDNAMV_TG_KIKI.selectBySqlDefine(paramList, DK_T_SDNAMV_TG_KIKI_DK_SELECT_002);
	}
	// ANK-2428-00-00 ADD END

	// IT1-2015-0000007 ADD START
	/**
	 * 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 executeZM_M_TAKNKIKI_MODEL_DK_SELECT_004(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_ZM_M_TAKNKIKI_MODEL.selectBySqlDefine(paramList, ZM_M_TAKNKIKI_MODEL_DK_SELECT_004);
	}
	// IT1-2015-0000007 ADD END

	/**
	 * 棚移動出荷完了情報受信ファイルに設定されている内容と
	 * 宅内管理システムとのデータチェックを行う。
	 * 
	 * @param strDlydList ファイル内容
	 * @throws Exception
	 */
	private void checkKikiData(String[] strDlydList) throws Exception
	{
// IT1-2014-0000334 MOD START
//		// 宅内機器型式コードリスト
//		TkmdlcdList = new ArrayList<String>();
//
//		// IT1-2014-0000333 DEL START
//		// IT1-2014-0000332 ADD START
//		// 棚移動種別区分リスト
//		MVSbtList = new ArrayList<String>();
//		// IT1-2014-0000332 ADD END
//		// IT1-2014-0000333 DEL END
//
//		// 入荷完了情報受信ファイルの情報を読込
//		for (int j = 0; j < strDlydList.length - 1; j++)
//		{
//			// 抽出情報取得
//			HashMap<String, Object> paramMap = new HashMap<String, Object>();
//			HashMap<String, Object> inputMap = new HashMap<String, Object>();
//
//			// ユースケースＩＤを設定
//			paramMap.put(JCCBatchEsbInterface.TELEGRAM_INFO_USECASE_ID, DKSV0013);
//
//			// 予備機器配送対象部品取得データリストを確認する。
//			if (YbTgBpList.get(j) == null) {
//				// 異常終了（エラーファイル出力）
//				super.commonItem.setErrFlg(true);
//				return;
//			}
//
//			// 予備機器配送対象部品取得データリストから予備機器配送対象部品リストを取得する。
//			ArrayList<HashMap<String, Object>> YbTgBpListList = YbTgBpList.get(j);
//
//			// 機器検索キーの設定処理
//			if (!setDKSV001301SC(YbTgBpListList, inputMap)) {
//				return;
//			}
//
//			// 型式検索キーの設定処理
//			if (!setDKSV001302SC(YbTgBpListList, inputMap)) {
//				return;
//			}
//
//			// サービスの処理結果が格納されるMAP
//			HashMap<String, Object> outputMap = new HashMap<String, Object>();
//
//			// サービスオーダ発行CCを実行する
//			JCCBatchEsbInterface.invokeService(super.commonItem, paramMap, inputMap, outputMap);
//
//			// リターンコード取得
//			String ret_cd = (String)outputMap.get(RETURN_CODE);
//			if(!(STAT_NORMAL.equals(ret_cd)) && !(STAT_NODATA.equals(ret_cd)))
//			{
//				// 異常終了（エラーファイル出力）
//				super.commonItem.setErrFlg(true);
//				return;
//			}
//
//			// レコード内容をカンマ区切りで配列化する
//			String[] nyukaJoho = this.split(strDlydList[j]);
//
//			// 行番号を生成する
//			String rowNo = String.valueOf(j + 1);
//
//			HashMap parentMap2 = null;
//			if(outputMap.containsKey("DKSV001302SC")){
//				parentMap2 = (HashMap)outputMap.get("DKSV001302SC");
//			}
//			ArrayList childList2 = null;
//			if (parentMap2.containsKey("EZM0411A010CBSMsg1List")){
//				childList2 = (ArrayList)parentMap2.get("EZM0411A010CBSMsg1List");
//			}
//
//			String SeizoUM = "";
//			if (childList2 != null) {
//				for(int k = 0; k < childList2.size(); k++){
//					HashMap childMap2 = (HashMap)childList2.get(k);
//					SeizoUM = (String)childMap2.get("seizo_no_um");
//				}
//			}
//
//			if ("".equals(SeizoUM)) {
//				// 棚移動出荷完了情報エラーリストの生成・追加
//				TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_MODEL_SON, strDlydList[j]});
//			}
//			else {
//				// 製造管理有り
//				if (SEIZO_NO_ARI.equals(SeizoUM)) {
//					// 製造番号が設定されていない場合
//					if ("".equals(nyukaJoho[TANA_FILE_COL_REC_SEIZO]))
//					{
//						// 棚移動出荷完了情報エラーリストの生成・追加
//						TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_SEIZO_SET, strDlydList[j]});
//					}
//
//					// 数量が１以外の場合
//					if (!"1".equals(nyukaJoho[TANA_FILE_COL_REC_CNT]))
//					{
//						// 棚移動出荷完了情報エラーリストの生成・追加
//						TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_CNT_ONE, strDlydList[j]});
//					}
//
//					// IT1-2014-0000333 DEL START
//					// IT1-2014-0000332 ADD START
//					// 棚移動種別区分リスト
////					MVSbtList.add("1");
//					// IT1-2014-0000332 ADD END
//					// IT1-2014-0000333 DEL END
//				}
//				// 製造管理無し
//				else if (!SEIZO_NO_ARI.equals(SeizoUM)) {
//					// 製造番号が設定されている場合
//					if (!"".equals(nyukaJoho[TANA_FILE_COL_REC_SEIZO]))
//					{
//						// 棚移動出荷完了情報エラーリストの生成・追加
//						TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_SEIZO_MI, strDlydList[j]});
//					}
//
//					// 数量が０・未設定の場合
//					if ("0".equals(nyukaJoho[TANA_FILE_COL_REC_CNT]) || "".equals(nyukaJoho[TANA_FILE_COL_REC_CNT]))
//					{
//						// 棚移動出荷完了情報エラーリストの生成・追加
//						TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_CNT_MI, strDlydList[j]});
//					}
//
//					// IT1-2014-0000333 DEL START
//					// IT1-2014-0000332 ADD START
//					// 棚移動種別区分リスト
////					MVSbtList.add("2");
//					// IT1-2014-0000332 ADD END
//					// IT1-2014-0000333 DEL END
//				}
//			}
//		}

		TkmdlcdList = new ArrayList<String>();

		// 入荷完了情報受信ファイルの情報を読込み、
		// 宅内機器型式コードと機器製造番号の配列を作成し、宅内機器型式コードを集約する
		ArrayList<String[]> keyMvKiki = new ArrayList<String[]>();
		HashMap<String, String> modelNoMap = new HashMap<String, String>();
		for (int j = 0; j < strDlydList.length - 1; j++)
		{
			// レコード内容をカンマ区切りで配列化する
			String[] nyukaJoho = this.split(strDlydList[j]);

			// 宅内機器型式コードと機器製造番号の配列を設定する
			keyMvKiki.add(new String[]{nyukaJoho[TANA_FILE_COL_REC_MODEL], nyukaJoho[TANA_FILE_COL_REC_SEIZO]});

			// 宅内機器型式コードを集約する
			if (!"".equals(nyukaJoho[TANA_FILE_COL_REC_MODEL])) {
				String ttlCnt = modelNoMap.get(nyukaJoho[TANA_FILE_COL_REC_MODEL]);
				if(ttlCnt == null)
				{
					modelNoMap.put(nyukaJoho[TANA_FILE_COL_REC_MODEL], "1");
				}
			}
		}

		// 抽出情報取得
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		HashMap<String, Object> inputMap = new HashMap<String, Object>();

		// ユースケースＩＤを設定
		paramMap.put(JCCBatchEsbInterface.TELEGRAM_INFO_USECASE_ID, DKSV0013);

		// 機器検索キーの設定処理
		if (!setDKSV001301SC(YbTgList, inputMap)) {
			return;
		}

		// 型式検索キーの設定処理
		if (!setDKSV001302SC(YbTgList, inputMap)) {
			return;
		}

		// サービスの処理結果が格納されるMAP
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// サービスオーダ発行CCを実行する
		JCCBatchEsbInterface.invokeService(super.commonItem, paramMap, inputMap, outputMap);

		// リターンコード取得
		String ret_cd = (String)outputMap.get(RETURN_CODE);
		// OM-2014-0003925 MOD START
//		if(!(STAT_NORMAL.equals(ret_cd)) || !(STAT_NODATA.equals(ret_cd)))
//		{
//			// 異常終了（エラーファイル出力）
//			super.commonItem.setErrFlg(true);
//			return;
//		}
		if(!(STAT_NORMAL.equals(ret_cd)) && !(STAT_NODATA.equals(ret_cd)))
		{
			// 異常終了（エラーファイル出力）
			super.commonItem.setErrFlg(true);
			return;
		}
		// OM-2014-0003925 MOD END

		// 型式情報の取得
		HashMap parentMap2 = null;
		if(outputMap.containsKey("DKSV001302SC")){
			parentMap2 = (HashMap)outputMap.get("DKSV001302SC");
		}
		ArrayList childList2 = null;
		if (parentMap2.containsKey("EZM0411A010CBSMsg1List")){
			childList2 = (ArrayList)parentMap2.get("EZM0411A010CBSMsg1List");
		}

		for (int j = 0; j < strDlydList.length - 1; j++)
		{
			// レコード内容をカンマ区切りで配列化する
			String[] nyukaJoho = this.split(strDlydList[j]);

			// 行番号を生成する
			String rowNo = String.valueOf(j + 1);

			String SeizoUM = "";
			if (childList2 != null) {
				for(int k = 0; k < childList2.size(); k++){
					HashMap childMap2 = (HashMap)childList2.get(k);

					if(!"".equals(nyukaJoho[TANA_FILE_COL_REC_MODEL]) 
						&& nyukaJoho[TANA_FILE_COL_REC_MODEL].equals((String)childMap2.get("taknkiki_model_cd")))
					{
						SeizoUM = (String)childMap2.get("seizo_no_um");
					}
				}
			}

			if ("".equals(SeizoUM)) {
				// 棚移動出荷完了情報エラーリストの生成・追加
				TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_MODEL_SON, strDlydList[j]});
			}
			else {
				// 製造管理有り
				if (SEIZO_NO_ARI.equals(SeizoUM)) {
					// 製造番号が設定されていない場合
					if ("".equals(nyukaJoho[TANA_FILE_COL_REC_SEIZO]))
					{
						// 棚移動出荷完了情報エラーリストの生成・追加
						TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_SEIZO_SET, strDlydList[j]});
					}
					// 数量が１以外の場合
					else if (!"1".equals(nyukaJoho[TANA_FILE_COL_REC_CNT]))
					{
						// 棚移動出荷完了情報エラーリストの生成・追加
						TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_CNT_ONE, strDlydList[j]});
					}
					else {
						// 棚移動出荷可能チェック
						boolean existKiki = false;
						if (childList2 != null) {
							for(int k = 0; k < childList2.size(); k++){
								HashMap childMap2 = (HashMap)childList2.get(k);

								khn_upd_dttm_k = (String)childMap2.get("kihon_upd_dttm");
								if((!"".equals(nyukaJoho[TANA_FILE_COL_REC_MODEL])
									&& nyukaJoho[TANA_FILE_COL_REC_MODEL].equals((String)childMap2.get("taknkiki_model_cd")))
									|| (!"".equals(nyukaJoho[TANA_FILE_COL_REC_MODEL])
									&& nyukaJoho[TANA_FILE_COL_REC_SEIZO].equals((String)childMap2.get("kk_seizo_no")))) {
									existKiki = true;
									break;
								}
							}
						}
						if (!existKiki)
						{
							// 棚移動出荷完了情報エラーリストの生成・追加
							TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_KUMI, strDlydList[j]});
						}
					}
				}
				// 製造管理無し
				else if (!SEIZO_NO_ARI.equals(SeizoUM)) {
					// 製造番号が設定されている場合
					if (!"".equals(nyukaJoho[TANA_FILE_COL_REC_SEIZO]))
					{
						// 棚移動出荷完了情報エラーリストの生成・追加
						TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_SEIZO_MI, strDlydList[j]});
					}
					// 数量が０・未設定の場合
					else if ("0".equals(nyukaJoho[TANA_FILE_COL_REC_CNT]) || "".equals(nyukaJoho[TANA_FILE_COL_REC_CNT]))
					{
						// 棚移動出荷完了情報エラーリストの生成・追加
						TanaMoveErrList.add(new String[]{rowNo, ERR_TANA_FILE_COL_REC_CNT_MI, strDlydList[j]});
					}
				}
			}
		}
		// IT1-2014-0000334 MOD END
	}

	/**
	 * 機器検索キーの設定処理を行います。
	 * @param YbTgBpListList 予備機器配送対象部品リスト
	 * @param outMap 検索キーマップ
	 * @return true:登録あり false:登録なし
	 */
	private boolean setDKSV001301SC(ArrayList<HashMap<String, Object>> YbTgBpListList, HashMap<String, Object> outMap) throws Exception
	{
		// 編集用マップ
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 機能コード
		parentMap.put(FUNC_CODE, FUNC_CODE_VAL);

		// IT1-2014-0000333 ADD START
		// ＫＥＹ＿処理区分を設定
		parentMap.put(KEY_TRN_DIV, KEY_TRN_DIV_VAL);
		// IT1-2014-0000333 ADD END

		ArrayList<HashMap<String, Object>> list = null;
		list = new ArrayList<HashMap<String, Object>>();
		
		for (int k = 0; k < YbTgBpListList.size(); k++)
		{
			HashMap<String, Object> YbTgBpListMap = YbTgBpListList.get(k);

			// 予備機器配送対象部品取得データリストを確認する。
			if (YbTgBpListMap == null) {
				// 異常終了（エラーファイル出力）
				super.commonItem.setErrFlg(true);
				return false;
			}

			// OM-2014-0003925 DEL START
//			String tkMdlCd = (String)YbTgBpListMap.get("TAKNKIKI_MODEL_CD");
//			if (!TkmdlcdList.contains(tkMdlCd))
//			{
//				TkmdlcdList.add(tkMdlCd);
//			}
			// OM-2014-0003925 DEL END

			// 機器製造番号が設定されていない場合は対象外
			if ("".equals(YbTgBpListMap.get("KIKI_SEIZO_NO"))) {
				continue;
			}

			// OM-2014-0003925 ADD START
			String tkMdlCd = (String)YbTgBpListMap.get("TAKNKIKI_MODEL_CD");
			if (!TkmdlcdList.contains(tkMdlCd))
			{
				TkmdlcdList.add(tkMdlCd);
			}
			// OM-2014-0003925 ADD END

			// 予備機器配送対象部品の情報を設定
			HashMap<String, Object> childMap = null;
			childMap = new HashMap<String, Object>();

			// ＫＥＹ＿宅内機器型式コードを設定
			childMap.put(KEY_TK_MDL_CD, YbTgBpListMap.get("TAKNKIKI_MODEL_CD"));

			// ＫＥＹ＿機器製造番号を設定
			childMap.put(KEY_KIKI_SEIZO_NO, YbTgBpListMap.get("KIKI_SEIZO_NO"));

			// ＫＥＹ＿宅内機器セット品型コードを設定
			childMap.put(KEY_TAKNKIKI_SETHIN_MODEL_CD, YbTgBpListMap.get("KEY_TAKNKIKI_SETHIN_MODEL_CD"));

			// ＫＥＹ＿宅内機器セット品番号を設定
			// IT1-2014-0000334 MOD START
//			childMap.put(KEY_TAKNKIKI_SETHIN_NO, YbTgBpListMap.get("KEY_TAKNKIKI_SETHIN_NO"));
			childMap.put(KEY_TAKNKIKI_SETHIN_NO, "");
			// IT1-2014-0000334 MOD END

			// IT1-2014-0000333 DEL START
			// ＫＥＹ＿処理区分を設定
//			childMap.put(KEY_TRN_DIV, KEY_TRN_DIV_VAL);
			// IT1-2014-0000333 DEL END

			// リストマップへ追加
			list.add(childMap);
		}

		// 検索キーを追加
		parentMap.put("EDKA0010009ConditionList", list);

		// outMapにデータをCCのタイトルをキーとして設定する。
		outMap.put(DKSV001301SC, parentMap);

		return true;
	}

	/**
	 * 型式検索キーの設定処理を行います。
	 * @param YbTgBpListList 予備機器配送対象部品リスト
	 * @param outMap 検索キーマップ
	 * @return true:登録あり false:登録なし
	 */
	private boolean setDKSV001302SC(ArrayList<HashMap<String, Object>> YbTgBpListList, HashMap<String, Object> outMap) throws Exception
	{
		// 編集用マップ
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 機能コード
		parentMap.put(FUNC_CODE, FUNC_CODE_VAL);

		ArrayList<HashMap<String, Object>> list = null;
		list = new ArrayList<HashMap<String, Object>>();

		for (int k = 0; k < YbTgBpListList.size(); k++)
		{
			HashMap<String, Object> YbTgBpListMap = YbTgBpListList.get(k);

			// 予備機器配送対象部品取得データリストを確認する。
			if (YbTgBpListMap == null) {
				// 異常終了（エラーファイル出力）
				super.commonItem.setErrFlg(true);
				return false;
			}

			// 予備機器配送対象部品の情報を設定
			HashMap<String, Object> childMap = null;
			childMap = new HashMap<String, Object>();

			// ＫＥＹ＿処理区分を設定
			childMap.put(KEY_TRN_DIV, KEY_TRN_DIV_VAL);

			// ＫＥＹ＿宅内機器型式コードを設定
			childMap.put("key_taknkiki_model_cd", YbTgBpListMap.get("TAKNKIKI_MODEL_CD"));

			// リストマップへ追加
			list.add(childMap);
		}

		// 検索キーを追加
		parentMap.put("EZM0411A010ConditionList", list);

		// outMapにデータをCCのタイトルをキーとして設定する。
		outMap.put(DKSV001302SC, parentMap);

		return true;
	}

	/**
	 * 予備機器配送のステータスを「出荷済み」にする。
	 * 
	 * @param strDlydList ファイル内容
	 * @throws Exception
	 */
	private void putServiceDKSV0042(String[] strDlydList) throws Exception
	{
		// ユースケースID格納用マップを生成
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(JCCBatchEsbInterface.TELEGRAM_INFO_USECASE_ID, DKSV0042);

		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// 予備機器配送データリストを確認する。
		if (YbTgList == null) {
			// 異常終了（エラーファイル出力）
			super.commonItem.setErrFlg(true);
			return;
		}

		// IT1-2014-0000334 DEL START
		// 予備機器配送対象部品取得データリストを確認する。
//		if (YbTgBpList == null) {
//			// 異常終了（エラーファイル出力）
//			super.commonItem.setErrFlg(true);
//			return;
//		}
		// IT1-2014-0000334 DEL END

		// IT1-2014-0000334 ADD START
		// 予備機器更新データリストを取得する。
		if (!getDKSV00567SC(strDlydList)) {
			return;
		}

		// 予備機器更新データリストを確認する。
		if (TblCCList == null) {
			// 異常終了（エラーファイル出力）
			super.commonItem.setErrFlg(true);
			return;
		}
		// IT1-2014-0000334 ADD START

		// 倉庫棚移動内訳棚移動完了
		if (!setDKSV004201SC(dataMap)) {
			return;
		}

		// ANK-2428-00-00 MOD START
		// 製番指定棚移動完了
//		if (!setDKSV004202SC(dataMap)) {
		if (!setDKSV004202SC(strDlydList, dataMap)) {
			return;
		}
		// ANK-2428-00-00 MOD END

		// 棚移動出荷詳細
		if (!setDKSV004203SC(dataMap)) {
			return;
		}

		// 予備機器出荷完了
		if (!setDKSV004204SC(dataMap)) {
			return;
		}

		// 予備機器配送内訳出荷完了
		if (!setDKSV004205SC(strDlydList,dataMap)) {
			return;
		}

		// 製番指定出荷完了
		if (!setDKSV004206SC(strDlydList,dataMap)) {
			return;
		}

		// 宅内管理情報更新
		if (!setDKSV004207SC(strDlydList,dataMap)) {
			return;
		}

		// 宅内システムとのデータ不整合の再現待ちのチェック処理
		// "kiki_list"には複数個を移動させる場合、宅内機器型式コードが同じものが複数存在する為、チェック用のリストを作る
		Object parentMap = dataMap.get(DKSV004207SC);
		ArrayList<HashMap<String, Object>> list = (ArrayList)((HashMap<String, Object>) parentMap).get("kiki_list");
		ArrayList<String> checkList = new ArrayList<String>();
		for(int i = 0; i < list.size(); i++)
		{
			HashMap<String, Object> childMap = (HashMap<String, Object>) list.get(i);
			String tkMdlCd = (String) childMap.get(KEY_TK_MDL_CD);
			if (!checkList.contains(tkMdlCd))
			{
				checkList.add(tkMdlCd);
			}
		}

		// 突合せチェック
		if (TkmdlcdList.size() == checkList.size())
		{
			for(int i = 0; i < TkmdlcdList.size(); i++)
			{
				boolean checkFlg = false;
				for(int j = 0; j < checkList.size(); j++)
				{
					if (TkmdlcdList.get(i).equals(checkList.get(j)))
					{
						checkFlg = true;
						break;
					}
				}
				if (!checkFlg)
				{
					// 製造番号有機器と判断されたが、宅内問合せ用のデータには存在しなかった場合、エラー
					super.commonItem.setErrFlg(true);
					return;
				}
			}
		}
		else
		{
			// 製造番号有機器と判断された件数と、宅内問合せ用のデータの件数が異なっていた場合、エラー
			super.commonItem.setErrFlg(true);
			return;
		}

		// サービスの処理結果が格納されるMAP
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// サービスオーダ発行CCを実行する
		JCCBatchEsbInterface.invokeService(super.commonItem, paramMap, dataMap, outputMap);
	}

	// IT1-2014-0000334 ADD START
	/**
	 * 予備機器更新データリストの取得処理を行います。
	 * @return true:登録あり false:登録なし
	 */
	private boolean getDKSV00567SC(String[] strDlydList) throws Exception
	{
		// 予備機器更新データリスト
		TblCCList = new ArrayList<ArrayList<HashMap<String, Object>>>();

		for (int j = 0; j < strDlydList.length - 1; j++)
		{
			// レコード内容をカンマ区切りで配列化する
			String[] nyukaJoho = this.split(strDlydList[j]);

			HashMap<String, Object> YbTgListMap = YbTgList.get(j);

			// 予備機器配送取得データを確認する。
			if (YbTgListMap == null) {
				// 異常終了（エラーファイル出力）
				super.commonItem.setErrFlg(true);
				return false;
			}

			// 数量指定を取得
			if (!YbTgListMap.get("SHITEI_WAY_CD").toString().equals(WAY_CD_SEIZO)) {
				// 予備機器更新データリストを取得
				String[] param = new String[]{nyukaJoho[TANA_FILE_COL_REC_LOT], nyukaJoho[TANA_FILE_COL_REC_MODEL]};

				// ANK-2428-00-00 MOD START
//				this.executeDK_T_YBKIKI_HAISO_DK_SELECT_003(param);

				if (!sokoFlg) {
					this.executeDK_T_YBKIKI_HAISO_DK_SELECT_003(param);
				}
				else {
					this.executeDK_T_SOKODNA_MOVE_DK_SELECT_003(param);
				}
				// ANK-2428-00-00 MOD END
			}
			// 製造番号指定を取得
			else {
				// 予備機器更新データリストを取得
				String[] param = new String[]{nyukaJoho[TANA_FILE_COL_REC_LOT], nyukaJoho[TANA_FILE_COL_REC_MODEL], YbTgListMap.get("KIKI_SEIZO_NO").toString()};

				// ANK-2428-00-00 MOD START
//				this.executeDK_T_YBKIKI_HAISO_DK_SELECT_004(param);

				if (!sokoFlg) {
					this.executeDK_T_YBKIKI_HAISO_DK_SELECT_004(param);
				}
				else {
					this.executeDK_T_SOKODNA_MOVE_DK_SELECT_004(param);
				}
				// ANK-2428-00-00 MOD END
			}

			// ANK-2428-00-00 MOD START
//			JBSbatCommonDBInterface resultMap = db_DK_T_YBKIKI_HAISO.selectNext();
			JBSbatCommonDBInterface resultMap;
			if (!sokoFlg) {
				resultMap = db_DK_T_YBKIKI_HAISO.selectNext();
			}
			else {
				resultMap = db_DK_T_SOKODNA_MOVE.selectNext();
			}
			// ANK-2428-00-00 MOD END
			if (resultMap == null)
			{
				return false;
			}

			// 予備機器更新取得リスト
			ArrayList<HashMap<String, Object>> TblCCListList = null;
			TblCCListList = new ArrayList<HashMap<String, Object>>();

			// 明細マップ
			HashMap<String, Object> woutListMap = null;
			woutListMap = new HashMap<String, Object>();

			while (resultMap != null)
			{
				if (!YbTgListMap.get("SHITEI_WAY_CD").toString().equals(WAY_CD_SEIZO)) {
					woutListMap.put("KIKI_SEIZO_NO", nyukaJoho[TANA_FILE_COL_REC_SEIZO]);
				}
				else {
					woutListMap.put("KIKI_SEIZO_NO", resultMap.getString("KIKI_SEIZO_NO"));
				}

				woutListMap.put("TAKNKIKI_SETHIN_NO", resultMap.getString("TAKNKIKI_SETHIN_NO"));
				woutListMap.put("YBKKHAI_TAIBPIN_BIKO", resultMap.getString("YBKKHAI_TAIBPIN_BIKO"));
				woutListMap.put("YBKKHAI_RSN_CD", resultMap.getString("YBKKHAI_RSN_CD"));
				woutListMap.put("SHUKKA_CNT", resultMap.getString("SHUKKA_CNT"));
				woutListMap.put("YBKIKI_HAISO_UCWK_NO", resultMap.getString("YBKIKI_HAISO_UCWK_NO"));
				woutListMap.put("YBKIKI_HAISO_NO", resultMap.getString("YBKIKI_HAISO_NO"));
				woutListMap.put("TAKMODELNO", resultMap.getString("TAKMODELNO"));
				woutListMap.put("SETMODELNO", resultMap.getString("SETMODELNO"));
				woutListMap.put("FZKMODELNO", resultMap.getString("FZKMODELNO"));
				woutListMap.put("SETTYPENM", resultMap.getString("SETTYPENM"));
				woutListMap.put("FZKTYPENM", resultMap.getString("FZKTYPENM"));
				woutListMap.put("BIKONASI", resultMap.getString("BIKONASI"));
				woutListMap.put("SJICNT", resultMap.getString("SJICNT"));
				woutListMap.put("SHITEIWAYCD", resultMap.getString("SHITEIWAYCD"));
				woutListMap.put("MOVESTAT", resultMap.getString("MOVESTAT"));
				woutListMap.put("UPDDTM", resultMap.getString("UPDDTM"));
				woutListMap.put("UCWK_UPDDTM", resultMap.getString("UCWK_UPDDTM"));
				woutListMap.put("SHELF_MOVE_LOT_NO_KIKI_SEQ", resultMap.getString("SHELF_MOVE_LOT_NO_KIKI_SEQ"));

				// 明細リストに取得結果した明細マップを格納
				TblCCListList.add(woutListMap);

				// ANK-2428-00-00 MOD START
//				resultMap = db_DK_T_YBKIKI_HAISO.selectNext();
				if (!sokoFlg) {
					resultMap = db_DK_T_YBKIKI_HAISO.selectNext();
				}
				else {
					resultMap = db_DK_T_SOKODNA_MOVE.selectNext();
				}
				// ANK-2428-00-00 MOD END
			}

			// 明細情報リストマップに値を格納
			TblCCList.add(TblCCListList);
		}

		return true;
	}
	// IT1-2014-0000334 ADD END

	/**
	 *倉庫棚移動内訳棚移動完了の設定処理を行います。
	 * @param outMap 更新キーマップ
	 * @return true:登録あり false:登録なし
	 */
	private boolean setDKSV004201SC(HashMap<String, Object> outMap) throws Exception
	{
		// ANK-2428-00-00 MOD START
//		// 編集用マップ
//		HashMap<String, Object> parentMap = new HashMap<String, Object>();
//
//		// 機能コード
//		parentMap.put(FUNC_CODE, FUNC_CODE_VAL_NON);
//
//		ArrayList<HashMap<String, Object>> list = null;
//		list = new ArrayList<HashMap<String, Object>>();
//
//		HashMap<String, Object> childMap = new HashMap<String, Object>();
//
//		// ＫＥＹ＿倉庫棚移動番号を設定
//		childMap.put("key_sokodna_move_no", "");
//
//		// 更新年月日時分秒（更新前）を設定
//		childMap.put("upd_dtm_bf", "");
//
//		// 倉庫棚移動結果コードを設定
//		childMap.put("sokodna_move_rslt_cd", "1");
//
//		// 倉庫棚移動結果メモを設定
//		childMap.put("sokodna_move_rslt_memo", "");
//
//		// 指定方法コードを設定
//		childMap.put("shitei_way_cd", "");
//
//		// 棚移動種別区分を設定
//		childMap.put("mv_sbt", "2");
//
//		list.add(childMap);

		// 編集用マップ
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		ArrayList<HashMap<String, Object>> list = null;
		list = new ArrayList<HashMap<String, Object>>();

		HashMap<String, Object> childMap = new HashMap<String, Object>();

		// 予備機器出荷の設定
		if (!sokoFlg) {
			// 機能コード
			parentMap.put(FUNC_CODE, FUNC_CODE_VAL_NON);

			// ＫＥＹ＿倉庫棚移動番号を設定
			childMap.put("key_sokodna_move_no", "");

			// 更新年月日時分秒（更新前）を設定
			childMap.put("upd_dtm_bf", "");

			// 倉庫棚移動結果コードを設定
			childMap.put("sokodna_move_rslt_cd", "1");

			// 倉庫棚移動結果メモを設定
			childMap.put("sokodna_move_rslt_memo", "");

			// 指定方法コードを設定
			childMap.put("shitei_way_cd", "");

			// 棚移動種別区分を設定
			childMap.put("mv_sbt", "2");

			list.add(childMap);
		}

		// 倉庫棚移動の設定
		else {
			// 機能コード
			parentMap.put(FUNC_CODE, "1");

			String tYBkikiHaiso = null;

			for (int k = 0; k < YbTgList.size(); k++)
			{
				HashMap<String, Object> YbTgListMap = YbTgList.get(k);

				// 倉庫棚移動取得データを確認する。
				if (YbTgListMap == null) {
					// 異常終了（エラーファイル出力）
					super.commonItem.setErrFlg(true);
					return false;
				}

				// 倉庫棚移動の情報を設定
				childMap = new HashMap<String, Object>();

				// ＫＥＹ＿倉庫棚移動番号を設定
				childMap.put("key_sokodna_move_no", YbTgListMap.get("YBKIKI_HAISO_NO"));

				// ＫＥＹ＿更新年月日時分秒（更新前）を設定
				childMap.put("upd_dtm_bf", YbTgListMap.get("UPD_DTM"));

				// 指定方法コードを設定
				childMap.put("shitei_way_cd", YbTgListMap.get("SHITEI_WAY_CD"));

				// 倉庫棚移動結果コードを設定
				childMap.put("sokodna_move_rslt_cd", "1");

				// 倉庫棚移動結果メモを設定
				if (null == YbTgListMap.get("SOKODNA_MOVE_RSN_MEMO")) {
					childMap.put("sokodna_move_rslt_memo", "");
				}
				else {
					childMap.put("sokodna_move_rslt_memo", YbTgListMap.get("SOKODNA_MOVE_RSN_MEMO"));
				}

				// 棚移動種別区分を設定
				childMap.put("mv_sbt", "1");

				if (tYBkikiHaiso != null && tYBkikiHaiso.equals(YbTgListMap.get("YBKIKI_HAISO_NO").toString())) {
					continue;
				}
				tYBkikiHaiso = YbTgListMap.get("YBKIKI_HAISO_NO").toString();

				list.add(childMap);
			}
		}
		// ANK-2428-00-00 MOD END

		// リストキーを追加
		parentMap.put("sokodna_move_list", list);

		// outMapにデータをCCのタイトルをキーとして設定する。
		outMap.put(DKSV004201CC, parentMap);

		return true;
	}

	/**
	 *製番指定棚移動完了の設定処理を行います。
	 * @param outMap 更新キーマップ
	 * @return true:登録あり false:登録なし
	 */
	// ANK-2428-00-00 MOD START
//	private boolean setDKSV004202SC(HashMap<String, Object> outMap) throws Exception
	private boolean setDKSV004202SC(String[] strDlydList, HashMap<String, Object> outMap) throws Exception
	// ANK-2428-00-00 MOD END
	{
		// ANK-2428-00-00 MOD START
//		// 編集用マップ
//		HashMap<String, Object> parentMap = new HashMap<String, Object>();
//
//		// 機能コード
//		parentMap.put(FUNC_CODE, FUNC_CODE_VAL_NON);
//
//		ArrayList<HashMap<String, Object>> list = null;
//		list = new ArrayList<HashMap<String, Object>>();
//
//		HashMap<String, Object> childMap = new HashMap<String, Object>();
//
//		// 倉庫棚移動番号を設定
//		childMap.put("sokodna_move_no", "");
//
//		// 棚移動数量を設定
//		childMap.put("shelf_move_cnt", "");
//
//		// 指定方法コードを設定
//		childMap.put("shitei_way_cd", "");
//
//		// 棚移動種別区分を設定
//		childMap.put("mv_sbt", "2");
//
//		ArrayList<Map> children = new ArrayList<Map> ();
//
//		HashMap<String, Object> childMap2 = new HashMap<String, Object>();
//
//		// 倉庫棚移動対象機器備考を設定
//		childMap2.put("skdn_mv_tg_kiki_biko", "");
//
//		// 倉庫棚移動理由コードを設定
//		childMap2.put("sokodna_move_rsn_cd", "");
//
//		// 宅内機器型式コードを設定
//		childMap2.put("taknkiki_model_cd", "");
//
//		// 付属品型式コードを設定
//		childMap2.put("huzokuhin_model_cd", "");
//
//		// 宅内機器セット品型コードを設定
//		childMap2.put("TAKNKIKI_SETHIN_MODEL_CD", "");
//
//		// 機器製造番号を設定
//		childMap2.put("kiki_seizo_no", "");
//
//		children.add(childMap2);
//
//		childMap.put("EDK0211D010CBSMsg1List", children);
//
//		list.add(childMap);

		// 編集用マップ
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		ArrayList<HashMap<String, Object>> list = null;
		list = new ArrayList<HashMap<String, Object>>();

		// 予備機器出荷の設定
		if (!sokoFlg) {
			// 機能コード
			parentMap.put(FUNC_CODE, FUNC_CODE_VAL_NON);

			HashMap<String, Object> childMap = new HashMap<String, Object>();

			// 倉庫棚移動番号を設定
			childMap.put("sokodna_move_no", "");

			// 棚移動数量を設定
			childMap.put("shelf_move_cnt", "");

			// 指定方法コードを設定
			childMap.put("shitei_way_cd", "");

			// 棚移動種別区分を設定
			childMap.put("mv_sbt", "2");

			ArrayList<Map> children = new ArrayList<Map> ();

			HashMap<String, Object> childMap2 = new HashMap<String, Object>();

			// 倉庫棚移動対象機器備考を設定
			childMap2.put("skdn_mv_tg_kiki_biko", "");

			// 倉庫棚移動理由コードを設定
			childMap2.put("sokodna_move_rsn_cd", "");

			// 宅内機器型式コードを設定
			childMap2.put("taknkiki_model_cd", "");

			// 付属品型式コードを設定
			childMap2.put("huzokuhin_model_cd", "");

			// 宅内機器セット品型コードを設定
			childMap2.put("TAKNKIKI_SETHIN_MODEL_CD", "");

			// 機器製造番号を設定
			childMap2.put("kiki_seizo_no", "");

			children.add(childMap2);

			childMap.put("EDK0211D010CBSMsg1List", children);

			list.add(childMap);
		}

		// 倉庫棚移動の設定
		else {
			String tYBkikiHaiso = "";

			ArrayList<HashMap<String, Object>> children = null;
			children = new ArrayList<HashMap<String, Object>>();

			HashMap<String, Object> childMap = null;

			// 機能コード
			parentMap.put(FUNC_CODE, "1");

			int shiped = 0;

			// 入荷完了情報受信ファイルの情報を読込
			for (int j = 0; j < strDlydList.length - 1; j++)
			{
				HashMap<String, Object> YbTgListMap = YbTgList.get(j);

				// 予備機器配送取得データを確認する。
				if (YbTgListMap == null) {
					// 異常終了（エラーファイル出力）
					super.commonItem.setErrFlg(true);
					return false;
				}

				// レコード内容をカンマ区切りで配列化する
				String[] nyukaJoho = this.split(strDlydList[j]);

				// 棚移動数量を集計する
				shiped += Integer.parseInt(nyukaJoho[TANA_FILE_COL_REC_CNT]);

				if ("".equals(tYBkikiHaiso)
					|| tYBkikiHaiso.equals(YbTgListMap.get("YBKIKI_HAISO_NO").toString()))
				{
					// 予備機器配送の情報を設定
					childMap = new HashMap<String, Object>();

					// 倉庫棚移動番号を設定
					childMap.put("sokodna_move_no", YbTgListMap.get("YBKIKI_HAISO_NO"));

					// 指定方法コードを設定
					childMap.put(SHITEI_WAY_CD, YbTgListMap.get("SHITEI_WAY_CD"));

					// 棚移動種別区分を設定
					childMap.put(MV_SBT, "1");

					// 予備機器配送対象部品取得データリストから予備機器配送対象部品リストを取得する。
					ArrayList<HashMap<String, Object>> YbTgBpListList = TblCCList.get(j);

					for (int k = 0; k < YbTgBpListList.size(); k++)
					{
						HashMap<String, Object> YbTgBpListMap = YbTgBpListList.get(k);

						// 予備機器配送対象部品取得データを確認する。
						if (YbTgBpListMap == null) {
							// 異常終了（エラーファイル出力）
							super.commonItem.setErrFlg(true);
							return false;
						}

						// 予備機器配送の情報を設定
						HashMap<String, Object> childMap2 = null;
						childMap2 = new HashMap<String, Object>();

						// 倉庫棚移動対象機器備考を設定
						if (null == YbTgBpListMap.get("YBKKHAI_TAIBPIN_BIKO")) {
							childMap2.put(SKDN_MV_TG_KIKI_BIKO, "");
						}
						else {
							childMap2.put(SKDN_MV_TG_KIKI_BIKO, YbTgBpListMap.get("YBKKHAI_TAIBPIN_BIKO"));
						}

						// 倉庫棚移動理由コードを設定
						if (null == YbTgBpListMap.get("YBKKHAI_RSN_CD")) {
							childMap2.put(SOKODNA_MOVE_RSN_CD, "");
						}
						else {	
							childMap2.put(SOKODNA_MOVE_RSN_CD, YbTgBpListMap.get("YBKKHAI_RSN_CD"));
						}

						// 宅内機器型式コードを設定
						childMap2.put(TAKNKIKI_MODEL_CD, YbTgBpListMap.get("TAKMODELNO"));

						// 付属品型式コードを設定
						if (null == YbTgBpListMap.get("FZKMODELNO")) {
							childMap2.put(HUZOKUHIN_MODEL_CD, "");
						}
						else {	
							childMap2.put(HUZOKUHIN_MODEL_CD, YbTgBpListMap.get("FZKMODELNO"));
						}

						// 宅内機器セット品型コードを設定
						if (null == YbTgBpListMap.get("SETMODELNO")) {
							childMap2.put(TAKNKIKI_SETHIN_MODEL_CD, "");
						}
						else {	
							childMap2.put(TAKNKIKI_SETHIN_MODEL_CD, YbTgBpListMap.get("SETMODELNO"));
						}

						// 宅内機器セット品型コードの確認
						if (null == YbTgBpListMap.get("SETMODELNO")) {
							// 機器製造番号を設定
							childMap2.put(KIKI_SEIZO_NO, YbTgBpListMap.get("KIKI_SEIZO_NO"));
						}
						else {
							// 機器製造番号を設定
							childMap2.put(TAKNKIKI_SETHIN_NO, YbTgBpListMap.get("TAKNKIKI_SETHIN_NO"));
						}

						children.add(childMap2);
					}

					HashMap<String, Object> YbTgBpListMap = YbTgBpListList.get(0);
					if ("".equals(YbTgBpListMap.get("KIKI_SEIZO_NO"))) {
						for (int k = 0; k < Integer.parseInt(nyukaJoho[TANA_FILE_COL_REC_CNT]) - 1; k++)
						{
							// 予備機器配送の情報を設定
							HashMap<String, Object> childMap2 = null;
							childMap2 = new HashMap<String, Object>();

							// 倉庫棚移動対象機器備考を設定
							if (null == YbTgBpListMap.get("YBKKHAI_TAIBPIN_BIKO")) {
								childMap2.put(SKDN_MV_TG_KIKI_BIKO, "");
							}
							else {
								childMap2.put(SKDN_MV_TG_KIKI_BIKO, YbTgBpListMap.get("YBKKHAI_TAIBPIN_BIKO"));
							}

							// 倉庫棚移動理由コードを設定
							if (null == YbTgBpListMap.get("YBKKHAI_RSN_CD")) {
								childMap2.put(SOKODNA_MOVE_RSN_CD, "");
							}
							else {
								childMap2.put(SOKODNA_MOVE_RSN_CD, YbTgBpListMap.get("YBKKHAI_RSN_CD"));
							}

							// 宅内機器型式コードを設定
							childMap2.put(TAKNKIKI_MODEL_CD, YbTgBpListMap.get("TAKMODELNO"));

							// 付属品型式コードを設定
							if (null == YbTgBpListMap.get("FZKMODELNO")) {
								childMap2.put(HUZOKUHIN_MODEL_CD, "");
							}
							else {
								childMap2.put(HUZOKUHIN_MODEL_CD, YbTgBpListMap.get("FZKMODELNO"));
							}

							// 宅内機器セット品型コードを設定
							if (null == YbTgBpListMap.get("SETMODELNO")) {
								childMap2.put(TAKNKIKI_SETHIN_MODEL_CD, "");
							}
							else {
								childMap2.put(TAKNKIKI_SETHIN_MODEL_CD, YbTgBpListMap.get("SETMODELNO"));
							}

							// 宅内機器セット品型コードの確認
							if (null == YbTgBpListMap.get("SETMODELNO")) {
								// 機器製造番号を設定
								childMap2.put(KIKI_SEIZO_NO, YbTgBpListMap.get("KIKI_SEIZO_NO"));
							}
							else {
								// 機器製造番号を設定
								childMap2.put(TAKNKIKI_SETHIN_NO, YbTgBpListMap.get("TAKNKIKI_SETHIN_NO"));
							}

							children.add(childMap2);
						}
					}
				}
				else {
					childMap.put("shelf_move_cnt", String.valueOf(shiped - Integer.parseInt(nyukaJoho[TANA_FILE_COL_REC_CNT])));
					shiped = Integer.parseInt(nyukaJoho[TANA_FILE_COL_REC_CNT]);

					childMap.put("EDK0211D010CBSMsg1List", children);
					list.add(childMap);

					children = new ArrayList<HashMap<String, Object>>();

					// 予備機器配送の情報を設定
					childMap = new HashMap<String, Object>();

					// 倉庫棚移動番号を設定
					childMap.put("sokodna_move_no", YbTgListMap.get("YBKIKI_HAISO_NO"));

					// 指定方法コードを設定
					childMap.put(SHITEI_WAY_CD, YbTgListMap.get("SHITEI_WAY_CD"));

					// 棚移動種別区分を設定
					childMap.put(MV_SBT, MV_SBT_VALUE);

					// 予備機器配送対象部品取得データリストから予備機器配送対象部品リストを取得する。
					ArrayList<HashMap<String, Object>> YbTgBpListList = TblCCList.get(j);

					for (int k = 0; k < YbTgBpListList.size(); k++)
					{
						HashMap<String, Object> YbTgBpListMap = YbTgBpListList.get(k);

						// 予備機器配送対象部品取得データを確認する。
						if (YbTgBpListMap == null) {
							// 異常終了（エラーファイル出力）
							super.commonItem.setErrFlg(true);
							return false;
						}

						// 予備機器配送の情報を設定
						HashMap<String, Object> childMap2 = null;
						childMap2 = new HashMap<String, Object>();

						// 倉庫棚移動対象機器備考を設定
						if (null == YbTgBpListMap.get("YBKKHAI_TAIBPIN_BIKO")) {
							childMap2.put(SKDN_MV_TG_KIKI_BIKO, "");
						}
						else {
							childMap2.put(SKDN_MV_TG_KIKI_BIKO, YbTgBpListMap.get("YBKKHAI_TAIBPIN_BIKO"));
						}

						// 倉庫棚移動理由コードを設定
						if (null == YbTgBpListMap.get("YBKKHAI_RSN_CD")) {
							childMap2.put(SOKODNA_MOVE_RSN_CD, "");
						}
						else {
							childMap2.put(SOKODNA_MOVE_RSN_CD, YbTgBpListMap.get("YBKKHAI_RSN_CD"));
						}

						// 宅内機器型式コードを設定
						childMap2.put(TAKNKIKI_MODEL_CD, YbTgBpListMap.get("TAKMODELNO"));

						// 付属品型式コードを設定
						if (null == YbTgBpListMap.get("FZKMODELNO")) {
							childMap2.put(HUZOKUHIN_MODEL_CD, "");
						}
						else {
							childMap2.put(HUZOKUHIN_MODEL_CD, YbTgBpListMap.get("FZKMODELNO"));
						}

						// 宅内機器セット品型コードを設定
						if (null == YbTgBpListMap.get("SETMODELNO")) {
							childMap2.put(TAKNKIKI_SETHIN_MODEL_CD, "");
						}
						else {
							childMap2.put(TAKNKIKI_SETHIN_MODEL_CD, YbTgBpListMap.get("SETMODELNO"));
						}

						// 宅内機器セット品型コードの確認
						if (null == YbTgBpListMap.get("SETMODELNO")) {
							// 機器製造番号を設定
							childMap2.put(KIKI_SEIZO_NO, YbTgBpListMap.get("KIKI_SEIZO_NO"));
						}
						else {
							// 機器製造番号を設定
							childMap2.put(TAKNKIKI_SETHIN_NO, YbTgBpListMap.get("TAKNKIKI_SETHIN_NO"));
						}

						children.add(childMap2);
					}

					HashMap<String, Object> YbTgBpListMap = YbTgBpListList.get(0);
					if ("".equals(YbTgBpListMap.get("KIKI_SEIZO_NO"))) {
						for (int k = 0; k < Integer.parseInt(nyukaJoho[TANA_FILE_COL_REC_CNT]) - 1; k++)
						{
							// 予備機器配送の情報を設定
							HashMap<String, Object> childMap2 = null;
							childMap2 = new HashMap<String, Object>();

							// 倉庫棚移動対象機器備考を設定
							if (null == YbTgBpListMap.get("YBKKHAI_TAIBPIN_BIKO")) {
								childMap2.put(SKDN_MV_TG_KIKI_BIKO, "");
							}
							else {
								childMap2.put(SKDN_MV_TG_KIKI_BIKO, YbTgBpListMap.get("YBKKHAI_TAIBPIN_BIKO"));
							}

							// 倉庫棚移動理由コードを設定
							if (null == YbTgBpListMap.get("YBKKHAI_RSN_CD")) {
								childMap2.put(SOKODNA_MOVE_RSN_CD, "");
							}
							else {
								childMap2.put(SOKODNA_MOVE_RSN_CD, YbTgBpListMap.get("YBKKHAI_RSN_CD"));
							}

							// 宅内機器型式コードを設定
							childMap2.put(TAKNKIKI_MODEL_CD, YbTgBpListMap.get("TAKMODELNO"));

							// 付属品型式コードを設定
							if (null == YbTgBpListMap.get("FZKMODELNO")) {
								childMap2.put(HUZOKUHIN_MODEL_CD, "");
							}
							else {
								childMap2.put(HUZOKUHIN_MODEL_CD, YbTgBpListMap.get("FZKMODELNO"));
							}

							// 宅内機器セット品型コードを設定
							if (null == YbTgBpListMap.get("SETMODELNO")) {
								childMap2.put(TAKNKIKI_SETHIN_MODEL_CD, "");
							}
							else {
								childMap2.put(TAKNKIKI_SETHIN_MODEL_CD, YbTgBpListMap.get("SETMODELNO"));
							}

							// 宅内機器セット品型コードの確認
							if (null == YbTgBpListMap.get("SETMODELNO")) {
								// 機器製造番号を設定
								childMap2.put(KIKI_SEIZO_NO, YbTgBpListMap.get("KIKI_SEIZO_NO"));
							}
							else {
								// 機器製造番号を設定
								childMap2.put(TAKNKIKI_SETHIN_NO, YbTgBpListMap.get("TAKNKIKI_SETHIN_NO"));
							}

							children.add(childMap2);
						}
					}
				}
				tYBkikiHaiso = YbTgListMap.get("YBKIKI_HAISO_NO").toString();
			}

			// 棚移動数量を設定
			childMap.put("shelf_move_cnt", String.valueOf(shiped));

			childMap.put("EDK0211D010CBSMsg1List", children);
			list.add(childMap);
		}
		// ANK-2428-00-00 MOD END

		// リストキーを追加
		parentMap.put("sokodna_move_list", list);

		// outMapにデータをCCのタイトルをキーとして設定する。
		outMap.put(DKSV004202CC, parentMap);

		return true;
	}

	/**
	 *棚移動出荷詳細の設定処理を行います。
	 * @param outMap 更新キーマップ
	 * @return true:登録あり false:登録なし
	 */
	private boolean setDKSV004203SC(HashMap<String, Object> outMap) throws Exception
	{
		// ANK-2428-00-00 MOD START
//		// 編集用マップ
//		HashMap<String, Object> parentMap = new HashMap<String, Object>();
//
//		// 機能コード
//		parentMap.put(FUNC_CODE, FUNC_CODE_VAL_NON);
//
//		ArrayList<HashMap<String, Object>> list = null;
//		list = new ArrayList<HashMap<String, Object>>();
//
//		HashMap<String, Object> childMap = new HashMap<String, Object>();
//
//		childMap.put("key_sokodna_move_no", "");
//
//		// ＫＥＹ＿倉庫棚移動内訳番号を設定
//		childMap.put("key_sokodna_move_ucwk_no", "");
//
//		// 棚移動数量を設定
//		childMap.put("shelf_move_cnt", "");
//
//		// 更新年月日時分秒（更新前）を設定
//		childMap.put("upd_dtm_bf", "");
//
//		// 指定方法コードを設定
//		childMap.put("shitei_way_cd", "");
//
//		// 棚移動種別区分を設定
//		childMap.put("mv_sbt", "2");
//
//		list.add(childMap);

		// 編集用マップ
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		ArrayList<HashMap<String, Object>> list = null;
		list = new ArrayList<HashMap<String, Object>>();

		// 予備機器出荷の設定
		if (!sokoFlg) {
			// 機能コード
			parentMap.put(FUNC_CODE, FUNC_CODE_VAL_NON);

			HashMap<String, Object> childMap = new HashMap<String, Object>();

			childMap.put("key_sokodna_move_no", "");

			// ＫＥＹ＿倉庫棚移動内訳番号を設定
			childMap.put("key_sokodna_move_ucwk_no", "");

			// 棚移動数量を設定
			childMap.put("shelf_move_cnt", "");

			// 更新年月日時分秒（更新前）を設定
			childMap.put("upd_dtm_bf", "");

			// 指定方法コードを設定
			childMap.put("shitei_way_cd", "");

			// 棚移動種別区分を設定
			childMap.put("mv_sbt", "2");

			list.add(childMap);
		}

		// 倉庫棚移動の設定
		else {
			// 機能コード
			parentMap.put(FUNC_CODE, "1");

			String tYBkikiHaiso = null;
			HashMap<String, Object> childMap = null;

			for (int k = 0; k < YbTgList.size(); k++)
			{
				HashMap<String, Object> YbTgListMap = YbTgList.get(k);

				// 予備機器配送取得データを確認する。
				if (YbTgListMap == null) {
					// 異常終了（エラーファイル出力）
					super.commonItem.setErrFlg(true);
					return false;
				}

				// 予備機器配送の情報を設定
				childMap = new HashMap<String, Object>();

				// ＫＥＹ＿予備機器配送番号を設定
				childMap.put("key_sokodna_move_no", YbTgListMap.get("YBKIKI_HAISO_NO"));

				// ＫＥＹ＿倉庫棚移動内訳番号を設定
				if (null ==  YbTgListMap.get("SOKODNA_MOVE_UCWK_NO") ||
					!YbTgListMap.get("SHITEI_WAY_CD").toString().equals(WAY_CD_SEIZO)) {
					// ＫＥＹ＿倉庫棚移動内訳番号を設定
					childMap.put("key_sokodna_move_ucwk_no", "");
				}
				else {
					// ＫＥＹ＿倉庫棚移動内訳番号を設定
					childMap.put("key_sokodna_move_ucwk_no", YbTgListMap.get("SOKODNA_MOVE_UCWK_NO"));
				}

				// 棚移動数量を設定
				childMap.put("shelf_move_cnt", YbTgListMap.get("SJI_CNT"));

				// ＫＥＹ＿更新年月日時分秒（更新前）を設定
				if (!YbTgListMap.get("SHITEI_WAY_CD").toString().equals(WAY_CD_SEIZO)) {
					childMap.put(UPD_DTM_BF, "");
				}
				else {
					childMap.put(UPD_DTM_BF, YbTgListMap.get("UCWK_UPDDTM"));
				}

				// 指定方法コードを設定
				childMap.put(SHITEI_WAY_CD, YbTgListMap.get("SHITEI_WAY_CD"));

				// 棚移動種別区分を設定
				childMap.put(MV_SBT, "1");

				if (tYBkikiHaiso != null && tYBkikiHaiso.equals(YbTgListMap.get("YBKIKI_HAISO_NO").toString())) {
					continue;
				}
				tYBkikiHaiso = YbTgListMap.get("YBKIKI_HAISO_NO").toString();

				list.add(childMap);
			}

		}
		// ANK-2428-00-00 MOD END

		// リストキーを追加
		parentMap.put("sokodna_move_list", list);

		// outMapにデータをCCのタイトルをキーとして設定する。
		outMap.put(DKSV004203CC, parentMap);

		return true;
	}

	/**
	 * 予備機器出荷完了の設定処理を行います。
	 * @param outMap 更新キーマップ
	 * @return true:登録あり false:登録なし
	 */
	private boolean setDKSV004204SC(HashMap<String, Object> outMap) throws Exception
	{
		// 編集用マップ
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 機能コード
		// ANK-2428-00-00 MOD START
//		parentMap.put(FUNC_CODE, FUNC_CODE_VAL);
		if (!sokoFlg) {
			parentMap.put(FUNC_CODE, FUNC_CODE_VAL);
		}
		else {
			parentMap.put(FUNC_CODE, FUNC_CODE_VAL_NON);

			ArrayList<HashMap<String, Object>> list = null;
			list = new ArrayList<HashMap<String, Object>>();

			HashMap<String, Object> childMap = null;

			childMap = new HashMap<String, Object>();

			// ＫＥＹ＿予備機器配送番号を設定
			childMap.put(KEY_YBKIKI_HAISO_NO, "");

			// ＫＥＹ＿更新年月日時分秒（更新前）を設定
			childMap.put(UPD_DTM_BF, "");

			// 指定方法コードを設定
			childMap.put(SHITEI_WAY_CD, "");

			// 棚移動種別区分を設定
			childMap.put(MV_SBT, "1");

			list.add(childMap);

			// リストキーを追加
			parentMap.put("ybkiki_haiso_list", list);

			// outMapにデータをCCのタイトルをキーとして設定する。
			outMap.put(DKSV004204CC, parentMap);

			return true;
		}
		// ANK-2428-00-00 MOD END

		ArrayList<HashMap<String, Object>> list = null;
		list = new ArrayList<HashMap<String, Object>>();

		// IT1-2014-0000334 ADD START
		String tYBkikiHaiso = null;
		HashMap<String, Object> childMap = null;
		// IT1-2014-0000334 ADD END

		for (int k = 0; k < YbTgList.size(); k++)
		{
			HashMap<String, Object> YbTgListMap = YbTgList.get(k);

			// 予備機器配送取得データを確認する。
			if (YbTgListMap == null) {
				// 異常終了（エラーファイル出力）
				super.commonItem.setErrFlg(true);
				return false;
			}

			// 予備機器配送の情報を設定
			// IT1-2014-0000334 DEL START
//			HashMap<String, Object> childMap = null;
			// IT1-2014-0000334 DEL END
			childMap = new HashMap<String, Object>();

			// ＫＥＹ＿予備機器配送番号を設定
			childMap.put(KEY_YBKIKI_HAISO_NO, YbTgListMap.get("YBKIKI_HAISO_NO"));

			// ＫＥＹ＿更新年月日時分秒（更新前）を設定
			childMap.put(UPD_DTM_BF, YbTgListMap.get("UPD_DTM"));

			// 指定方法コードを設定
			childMap.put(SHITEI_WAY_CD, YbTgListMap.get("SHITEI_WAY_CD"));

			// IT1-2014-0000333 MOD START
			// IT1-2014-0000332 MOD START
			// 棚移動種別区分を設定
//			childMap.put(MV_SBT, MV_SBT_GAI);
//			childMap.put(MV_SBT, MVSbtList.get(k));
			childMap.put(MV_SBT, MV_SBT_VALUE);
			// IT1-2014-0000332 MOD END
			// IT1-2014-0000333 MOD END

			// IT1-2014-0000334 ADD START
			if (tYBkikiHaiso != null && tYBkikiHaiso.equals(YbTgListMap.get("YBKIKI_HAISO_NO").toString())) {
				continue;
			}
			tYBkikiHaiso = YbTgListMap.get("YBKIKI_HAISO_NO").toString();
			// IT1-2014-0000334 ADD END

			list.add(childMap);
		}

		// リストキーを追加
		parentMap.put("ybkiki_haiso_list", list);

		// outMapにデータをCCのタイトルをキーとして設定する。
		outMap.put(DKSV004204CC, parentMap);

		return true;
	}

	/**
	 * 予備機器配送内訳出荷完了の設定処理を行います。
	 * @param strDlydList ファイル内容
	 * @param outMap 更新キーマップ
	 * @return true:登録あり false:登録なし
	 */
	private boolean setDKSV004205SC(String[] strDlydList, HashMap<String, Object> outMap) throws Exception
	{
		// 編集用マップ
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 機能コード
		// ANK-2428-00-00 MOD START
//		parentMap.put(FUNC_CODE, FUNC_CODE_VAL);
		if (!sokoFlg) {
			parentMap.put(FUNC_CODE, FUNC_CODE_VAL);
		}
		else {
			parentMap.put(FUNC_CODE, FUNC_CODE_VAL_NON);

			ArrayList<HashMap<String, Object>> list = null;
			list = new ArrayList<HashMap<String, Object>>();

			ArrayList<HashMap<String, Object>> children = null;
			children = new ArrayList<HashMap<String, Object>>();

			HashMap<String, Object> childMap = null;

			// 予備機器配送の情報を設定
			childMap = new HashMap<String, Object>();

			// 倉庫棚移動番号を設定
			childMap.put("ybkiki_haiso_no", "");

			// 指定方法コードを設定
			childMap.put(SHITEI_WAY_CD, "");

			// 棚移動種別区分を設定
			childMap.put(MV_SBT, "1");

			// 予備機器配送の情報を設定
			HashMap<String, Object> childMap2 = null;
			childMap2 = new HashMap<String, Object>();

			// 倉庫棚移動対象機器備考を設定
			childMap2.put(SKDN_MV_TG_KIKI_BIKO, "");

			// 倉庫棚移動理由コードを設定
			childMap2.put(SOKODNA_MOVE_RSN_CD, "");

			// 宅内機器型式コードを設定
			childMap2.put(TAKNKIKI_MODEL_CD, "");

			// 付属品型式コードを設定
			childMap2.put(HUZOKUHIN_MODEL_CD, "");

			// 宅内機器セット品型コードを設定
			childMap2.put(TAKNKIKI_SETHIN_MODEL_CD, "");

			// 機器製造番号を設定
			childMap2.put(KIKI_SEIZO_NO, "");

			children.add(childMap2);

			// 棚移動数量を設定
			childMap.put("shukka_cnt", "");

			childMap.put("EDK0071D020CBSMsg1List", children);
			list.add(childMap);

			// リストキーを追加
			parentMap.put("ybkiki_haiso_list", list);

			// outMapにデータをCCのタイトルをキーとして設定する。
			outMap.put(DKSV004205CC, parentMap);

			return true;
		}
		// ANK-2428-00-00 MOD END

		ArrayList<HashMap<String, Object>> list = null;
		list = new ArrayList<HashMap<String, Object>>();

		// IT1-2014-0000334 ADD START
		String tYBkikiHaiso = "";

		ArrayList<HashMap<String, Object>> children = null;
		children = new ArrayList<HashMap<String, Object>>();

		HashMap<String, Object> childMap = null;
		// IT1-2014-0000334 ADD END

		// IT1-2014-0000334 MOD START
//
//		// 入荷完了情報受信ファイルの情報を読込
//		for (int j = 0; j < strDlydList.length - 1; j++)
//		{
//			HashMap<String, Object> YbTgListMap = YbTgList.get(j);
//
//			// 予備機器配送取得データを確認する。
//			if (YbTgListMap == null) {
//				// 異常終了（エラーファイル出力）
//				super.commonItem.setErrFlg(true);
//				return false;
//			}
//
//			// IT1-2014-0000334 ADD START
//			if (null != tYBkikiHaiso  || !tYBkikiHaiso.equals(YbTgListMap.get("YBKIKI_HAISO_NO").toString())) {
//
//			// 予備機器配送の情報を設定
//			// IT1-2014-0000334 DEL START
////			HashMap<String, Object> childMap = null;
//			// IT1-2014-0000334 DEL END
//			childMap = new HashMap<String, Object>();
//
//			// レコード内容をカンマ区切りで配列化する
//			String[] nyukaJoho = this.split(strDlydList[j]);
//
//			// 倉庫棚移動番号を設定
//			childMap.put("ybkiki_haiso_no", YbTgListMap.get("YBKIKI_HAISO_NO"));
//
//			// IT1-2014-0000332 MOD START
//			// 棚移動数量を設定
////			childMap.put(SHELF_MOVE_CNT, nyukaJoho[TANA_FILE_COL_REC_CNT]);
//			childMap.put("shukka_cnt", nyukaJoho[TANA_FILE_COL_REC_CNT]);
//			// IT1-2014-0000332 MOD END
//
//			// IT1-2014-0000332 MOD START
//			// 指定方法コードを設定
////			childMap.put(SHITEI_WAY_CD, WAY_CD_SEIZO);
//			childMap.put(SHITEI_WAY_CD, YbTgListMap.get("SHITEI_WAY_CD"));
//			// IT1-2014-0000332 MOD END
//
//			// IT1-2014-0000333 MOD START
//			// IT1-2014-0000332 MOD START
//			// 棚移動種別区分を設定
////			childMap.put(MV_SBT, MV_SBT_GAI);
////			childMap.put(MV_SBT, MVSbtList.get(j));
//			childMap.put(MV_SBT, MV_SBT_VALUE);
//			// IT1-2014-0000332 MOD END
//			// IT1-2014-0000333 MOD END
//
//			// IT1-2014-0000334 DEL START
////			ArrayList<HashMap<String, Object>> children = null;
////			children = new ArrayList<HashMap<String, Object>>();
//			// IT1-2014-0000334 DEL END
//
//			// 予備機器配送対象部品取得データリストから予備機器配送対象部品リストを取得する。
//			// IT1-2014-0000334 MOD START
////			ArrayList<HashMap<String, Object>> YbTgBpListList = YbTgBpList.get(j);
//			ArrayList<HashMap<String, Object>> YbTgBpListList = TblCCList.get(j);
//			// IT1-2014-0000334 MOD END
//
//			for (int k = 0; k < YbTgBpListList.size(); k++)
//			{
//				HashMap<String, Object> YbTgBpListMap = YbTgBpListList.get(k);
//
//				// 予備機器配送対象部品取得データを確認する。
//				if (YbTgBpListMap == null) {
//					// 異常終了（エラーファイル出力）
//					super.commonItem.setErrFlg(true);
//					return false;
//				}
//
//				// 予備機器配送の情報を設定
//				HashMap<String, Object> childMap2 = null;
//				childMap2 = new HashMap<String, Object>();
//
//				// 倉庫棚移動対象機器備考を設定
//				// IT1-2014-0000334 MOD START
////				childMap2.put(SKDN_MV_TG_KIKI_BIKO, YbTgListMap.get("YBKKHAI_TAIBPIN_BIKO"));
//				childMap2.put(SKDN_MV_TG_KIKI_BIKO, YbTgBpListMap.get("YBKKHAI_TAIBPIN_BIKO"));
//				// IT1-2014-0000334 MOD END
//
//				// 倉庫棚移動理由コードを設定
//				// IT1-2014-0000334 MOD START
////				childMap2.put(SOKODNA_MOVE_RSN_CD, YbTgListMap.get("YBKKHAI_RSN_CD"));
//				childMap2.put(SOKODNA_MOVE_RSN_CD, YbTgBpListMap.get("YBKKHAI_RSN_CD"));
//				// IT1-2014-0000334 MOD END
//
//				// 宅内機器型式コードを設定
//				// IT1-2014-0000334 MOD START
////				childMap2.put(TAKNKIKI_MODEL_CD, YbTgListMap.get("TAKNKIKI_MODEL_CD"));
//				childMap2.put(TAKNKIKI_MODEL_CD, YbTgBpListMap.get("TAKMODELNO"));
//				// IT1-2014-0000334 MOD END
//
//				// 付属品型式コードを設定
//				// IT1-2014-0000334 MOD START
////				childMap2.put(HUZOKUHIN_MODEL_CD, YbTgListMap.get("HUZOKUHIN_MODEL_CD"));
//				childMap2.put(HUZOKUHIN_MODEL_CD, YbTgBpListMap.get("FZKMODELNO"));
//				// IT1-2014-0000334 MOD END
//
//				// 宅内機器セット品型コードを設定
//				// IT1-2014-0000334 MOD START
////				childMap2.put(TAKNKIKI_SETHIN_MODEL_CD, YbTgListMap.get("TAKNKIKI_SETHIN_MODEL_CD"));
//				childMap2.put(TAKNKIKI_SETHIN_MODEL_CD, YbTgBpListMap.get("SETMODELNO"));
//				// IT1-2014-0000334 MOD END
//
//				// 宅内機器セット品型コードの確認
//				// IT1-2014-0000334 MOD START
////				if ("".equals(YbTgListMap.get("TAKNKIKI_SETHIN_MODEL_CD"))) {
//				if (null == YbTgBpListMap.get("SETMODELNO")) {
//					// 機器製造番号を設定
////					childMap2.put(KIKI_SEIZO_NO, YbTgListMap.get("KIKI_SEIZO_NO"));
//					childMap2.put(KIKI_SEIZO_NO, YbTgBpListMap.get("KIKI_SEIZO_NO"));
//				}
//				else {
//					// 機器製造番号を設定
////					childMap2.put(TAKNKIKI_SETHIN_NO, YbTgListMap.get("TAKNKIKI_SETHIN_NO"));
//					childMap2.put(TAKNKIKI_SETHIN_NO, YbTgBpListMap.get("TAKNKIKI_SETHIN_NO"));
//				}
//				// IT1-2014-0000334 MOD END
//
//				children.add(childMap2);
//			}
//
//			// IT1-2014-0000332 MOD START
////			childMap.put("EDK0211D010CBSMsg1List", children);
//			childMap.put("EDK0071D020CBSMsg1List", children);
//			// IT1-2014-0000332 MOD END
//
//			list.add(childMap);
//
//			}
//			tYBkikiHaiso = YbTgListMap.get("YBKIKI_HAISO_NO").toString();
//			// IT1-2014-0000334 ADD END
//
//			// IT1-2014-0000334 ADD START
//			children = new ArrayList<HashMap<String, Object>>();
//			// IT1-2014-0000334 ADD END
//		}

		// IT1-2014-0000334 MOD END

		// OM-2014-0003749 ADD START
		int shiped = 0;
		// OM-2014-0003749 ADD END

		// 入荷完了情報受信ファイルの情報を読込
		for (int j = 0; j < strDlydList.length - 1; j++)
		{
			HashMap<String, Object> YbTgListMap = YbTgList.get(j);

			// 予備機器配送取得データを確認する。
			if (YbTgListMap == null) {
				// 異常終了（エラーファイル出力）
				super.commonItem.setErrFlg(true);
				return false;
			}

			// OM-2014-0003749 ADD START
			// レコード内容をカンマ区切りで配列化する
			String[] nyukaJoho = this.split(strDlydList[j]);

			// 棚移動数量を集計する
			shiped += Integer.parseInt(nyukaJoho[TANA_FILE_COL_REC_CNT]);
			// OM-2014-0003749 ADD END

			if ("".equals(tYBkikiHaiso)
				|| tYBkikiHaiso.equals(YbTgListMap.get("YBKIKI_HAISO_NO").toString()))
			{
				// 予備機器配送の情報を設定
				childMap = new HashMap<String, Object>();

				// OM-2014-0003749 DEL START
				// レコード内容をカンマ区切りで配列化する
//				String[] nyukaJoho = this.split(strDlydList[j]);
				// OM-2014-0003749 DEL END

				// 倉庫棚移動番号を設定
				childMap.put("ybkiki_haiso_no", YbTgListMap.get("YBKIKI_HAISO_NO"));

				// OM-2014-0003749 DEL START
				// 棚移動数量を設定
//				childMap.put("shukka_cnt", nyukaJoho[TANA_FILE_COL_REC_CNT]);
				// OM-2014-0003749 DEL END

				// 指定方法コードを設定
				childMap.put(SHITEI_WAY_CD, YbTgListMap.get("SHITEI_WAY_CD"));

				// 棚移動種別区分を設定
				childMap.put(MV_SBT, MV_SBT_VALUE);

				// 予備機器配送対象部品取得データリストから予備機器配送対象部品リストを取得する。
				ArrayList<HashMap<String, Object>> YbTgBpListList = TblCCList.get(j);

				for (int k = 0; k < YbTgBpListList.size(); k++)
				{
					HashMap<String, Object> YbTgBpListMap = YbTgBpListList.get(k);

					// 予備機器配送対象部品取得データを確認する。
					if (YbTgBpListMap == null) {
						// 異常終了（エラーファイル出力）
						super.commonItem.setErrFlg(true);
						return false;
					}

					// 予備機器配送の情報を設定
					HashMap<String, Object> childMap2 = null;
					childMap2 = new HashMap<String, Object>();

					// ANK-2428-00-00 MOD START
					// 倉庫棚移動対象機器備考を設定
//					childMap2.put(SKDN_MV_TG_KIKI_BIKO, YbTgBpListMap.get("YBKKHAI_TAIBPIN_BIKO"));
					if (null ==  YbTgListMap.get("YBKKHAI_TAIBPIN_BIKO")) {
						childMap2.put(SKDN_MV_TG_KIKI_BIKO, "");
					}
					else {
						childMap2.put(SKDN_MV_TG_KIKI_BIKO, YbTgBpListMap.get("YBKKHAI_TAIBPIN_BIKO"));
					}
					// ANK-2428-00-00 MOD END

					// ANK-2428-00-00 MOD START
					// 倉庫棚移動理由コードを設定
//					childMap2.put(SOKODNA_MOVE_RSN_CD, YbTgBpListMap.get("YBKKHAI_RSN_CD"));
					if (null ==  YbTgListMap.get("YBKKHAI_RSN_CD")) {
						childMap2.put(SOKODNA_MOVE_RSN_CD, "");
					}
					else {
						childMap2.put(SOKODNA_MOVE_RSN_CD, YbTgBpListMap.get("YBKKHAI_RSN_CD"));
					}
					// ANK-2428-00-00 MOD END

					// 宅内機器型式コードを設定
					childMap2.put(TAKNKIKI_MODEL_CD, YbTgBpListMap.get("TAKMODELNO"));

					// ANK-2428-00-00 MOD START
					// 付属品型式コードを設定
//					childMap2.put(HUZOKUHIN_MODEL_CD, YbTgBpListMap.get("FZKMODELNO"));
					if (null ==  YbTgListMap.get("FZKMODELNO")) {
						childMap2.put(HUZOKUHIN_MODEL_CD, "");
					}
					else {
						childMap2.put(HUZOKUHIN_MODEL_CD, YbTgBpListMap.get("FZKMODELNO"));
					}
					// ANK-2428-00-00 MOD END

					// ANK-2428-00-00 MOD START
					// 宅内機器セット品型コードを設定
//					childMap2.put(TAKNKIKI_SETHIN_MODEL_CD, YbTgBpListMap.get("SETMODELNO"));
					if (null ==  YbTgListMap.get("SETMODELNO")) {
						childMap2.put(TAKNKIKI_SETHIN_MODEL_CD, "");
					}
					else {
						childMap2.put(TAKNKIKI_SETHIN_MODEL_CD, YbTgBpListMap.get("SETMODELNO"));
					}
					// ANK-2428-00-00 MOD END

					// 宅内機器セット品型コードの確認
					if (null == YbTgBpListMap.get("SETMODELNO")) {
						// 機器製造番号を設定
						childMap2.put(KIKI_SEIZO_NO, YbTgBpListMap.get("KIKI_SEIZO_NO"));
					}
					else {
						// 機器製造番号を設定
						childMap2.put(TAKNKIKI_SETHIN_NO, YbTgBpListMap.get("TAKNKIKI_SETHIN_NO"));
					}

					children.add(childMap2);
				}

				// OM-2014-0003925 ADD START
				HashMap<String, Object> YbTgBpListMap = YbTgBpListList.get(0);
				if ("".equals(YbTgBpListMap.get("KIKI_SEIZO_NO"))) {
					for (int k = 0; k < Integer.parseInt(nyukaJoho[TANA_FILE_COL_REC_CNT]) - 1; k++)
					{
						// 予備機器配送の情報を設定
						HashMap<String, Object> childMap2 = null;
						childMap2 = new HashMap<String, Object>();

						// ANK-2428-00-00 MOD START
						// 倉庫棚移動対象機器備考を設定
//						childMap2.put(SKDN_MV_TG_KIKI_BIKO, YbTgBpListMap.get("YBKKHAI_TAIBPIN_BIKO"));
						if (null ==  YbTgListMap.get("YBKKHAI_TAIBPIN_BIKO")) {
							childMap2.put(SKDN_MV_TG_KIKI_BIKO, "");
						}
						else {
							childMap2.put(SKDN_MV_TG_KIKI_BIKO, YbTgBpListMap.get("YBKKHAI_TAIBPIN_BIKO"));
						}
						// ANK-2428-00-00 MOD END

						// ANK-2428-00-00 MOD START
						// 倉庫棚移動理由コードを設定
//						childMap2.put(SOKODNA_MOVE_RSN_CD, YbTgBpListMap.get("YBKKHAI_RSN_CD"));
						if (null ==  YbTgListMap.get("YBKKHAI_RSN_CD")) {
							childMap2.put(SOKODNA_MOVE_RSN_CD, "");
						}
						else {
							childMap2.put(SOKODNA_MOVE_RSN_CD, YbTgBpListMap.get("YBKKHAI_RSN_CD"));
						}
						// ANK-2428-00-00 MOD END

						// 宅内機器型式コードを設定
						childMap2.put(TAKNKIKI_MODEL_CD, YbTgBpListMap.get("TAKMODELNO"));

						// ANK-2428-00-00 MOD START
						// 付属品型式コードを設定
//						childMap2.put(HUZOKUHIN_MODEL_CD, YbTgBpListMap.get("FZKMODELNO"));
						if (null ==  YbTgListMap.get("FZKMODELNO")) {
							childMap2.put(HUZOKUHIN_MODEL_CD, "");
						}
						else {
							childMap2.put(HUZOKUHIN_MODEL_CD, YbTgBpListMap.get("FZKMODELNO"));
						}
						// ANK-2428-00-00 MOD END

						// ANK-2428-00-00 MOD START
						// 宅内機器セット品型コードを設定
//						childMap2.put(TAKNKIKI_SETHIN_MODEL_CD, YbTgBpListMap.get("SETMODELNO"));
						if (null ==  YbTgListMap.get("SETMODELNO")) {
							childMap2.put(TAKNKIKI_SETHIN_MODEL_CD, "");
						}
						else {
							childMap2.put(TAKNKIKI_SETHIN_MODEL_CD, YbTgBpListMap.get("SETMODELNO"));
						}
						// ANK-2428-00-00 MOD END

						// 宅内機器セット品型コードの確認
						if (null == YbTgBpListMap.get("SETMODELNO")) {
							// 機器製造番号を設定
							childMap2.put(KIKI_SEIZO_NO, YbTgBpListMap.get("KIKI_SEIZO_NO"));
						}
						else {
							// 機器製造番号を設定
							childMap2.put(TAKNKIKI_SETHIN_NO, YbTgBpListMap.get("TAKNKIKI_SETHIN_NO"));
						}

						children.add(childMap2);
					}
				}
				// OM-2014-0003925 ADD END
			}
			else {
				// OM-2014-0003925 MOD START
				// OM-2014-0003749 ADD START
				// 棚移動数量を設定
//				childMap.put("shukka_cnt", String.valueOf(shiped - 1));
//				shiped = 1;

				childMap.put("shukka_cnt", String.valueOf(shiped - Integer.parseInt(nyukaJoho[TANA_FILE_COL_REC_CNT])));
				shiped = Integer.parseInt(nyukaJoho[TANA_FILE_COL_REC_CNT]);
				// OM-2014-0003749 ADD END
				// OM-2014-0003925 MOD END

				childMap.put("EDK0071D020CBSMsg1List", children);
				list.add(childMap);

				children = new ArrayList<HashMap<String, Object>>();

				// 予備機器配送の情報を設定
				childMap = new HashMap<String, Object>();

				// OM-2014-0003749 DEL START
				// レコード内容をカンマ区切りで配列化する
//				String[] nyukaJoho = this.split(strDlydList[j]);
				// OM-2014-0003749 DEL END

				// 倉庫棚移動番号を設定
				childMap.put("ybkiki_haiso_no", YbTgListMap.get("YBKIKI_HAISO_NO"));

				// OM-2014-0003749 DEL START
				// 棚移動数量を設定
//				childMap.put("shukka_cnt", nyukaJoho[TANA_FILE_COL_REC_CNT]);
				// OM-2014-0003749 DEL END

				// 指定方法コードを設定
				childMap.put(SHITEI_WAY_CD, YbTgListMap.get("SHITEI_WAY_CD"));

				// 棚移動種別区分を設定
				childMap.put(MV_SBT, MV_SBT_VALUE);

				// 予備機器配送対象部品取得データリストから予備機器配送対象部品リストを取得する。
				ArrayList<HashMap<String, Object>> YbTgBpListList = TblCCList.get(j);

				for (int k = 0; k < YbTgBpListList.size(); k++)
				{
					HashMap<String, Object> YbTgBpListMap = YbTgBpListList.get(k);

					// 予備機器配送対象部品取得データを確認する。
					if (YbTgBpListMap == null) {
						// 異常終了（エラーファイル出力）
						super.commonItem.setErrFlg(true);
						return false;
					}

					// 予備機器配送の情報を設定
					HashMap<String, Object> childMap2 = null;
					childMap2 = new HashMap<String, Object>();

					// ANK-2428-00-00 MOD START
					// 倉庫棚移動対象機器備考を設定
//					childMap2.put(SKDN_MV_TG_KIKI_BIKO, YbTgBpListMap.get("YBKKHAI_TAIBPIN_BIKO"));
					if (null ==  YbTgListMap.get("YBKKHAI_TAIBPIN_BIKO")) {
						childMap2.put(SKDN_MV_TG_KIKI_BIKO, "");
					}
					else {
						childMap2.put(SKDN_MV_TG_KIKI_BIKO, YbTgBpListMap.get("YBKKHAI_TAIBPIN_BIKO"));
					}
					// ANK-2428-00-00 MOD END

					// ANK-2428-00-00 MOD START
					// 倉庫棚移動理由コードを設定
//					childMap2.put(SOKODNA_MOVE_RSN_CD, YbTgBpListMap.get("YBKKHAI_RSN_CD"));
					if (null ==  YbTgListMap.get("YBKKHAI_RSN_CD")) {
						childMap2.put(SOKODNA_MOVE_RSN_CD, "");
					}
					else {
						childMap2.put(SOKODNA_MOVE_RSN_CD, YbTgBpListMap.get("YBKKHAI_RSN_CD"));
					}
					// ANK-2428-00-00 MOD END

					// 宅内機器型式コードを設定
					childMap2.put(TAKNKIKI_MODEL_CD, YbTgBpListMap.get("TAKMODELNO"));

					// ANK-2428-00-00 MOD START
					// 付属品型式コードを設定
//					childMap2.put(HUZOKUHIN_MODEL_CD, YbTgBpListMap.get("FZKMODELNO"));
					if (null ==  YbTgListMap.get("FZKMODELNO")) {
						childMap2.put(HUZOKUHIN_MODEL_CD, "");
					}
					else {
						childMap2.put(HUZOKUHIN_MODEL_CD, YbTgBpListMap.get("FZKMODELNO"));
					}
					// ANK-2428-00-00 MOD END

					// ANK-2428-00-00 MOD START
					// 宅内機器セット品型コードを設定
//					childMap2.put(TAKNKIKI_SETHIN_MODEL_CD, YbTgBpListMap.get("SETMODELNO"));
					if (null ==  YbTgListMap.get("SETMODELNO")) {
						childMap2.put(TAKNKIKI_SETHIN_MODEL_CD, "");
					}
					else {
						childMap2.put(TAKNKIKI_SETHIN_MODEL_CD, YbTgBpListMap.get("SETMODELNO"));
					}
					// ANK-2428-00-00 MOD END

					// 宅内機器セット品型コードの確認
					if (null == YbTgBpListMap.get("SETMODELNO")) {
						// 機器製造番号を設定
						childMap2.put(KIKI_SEIZO_NO, YbTgBpListMap.get("KIKI_SEIZO_NO"));
					}
					else {
						// 機器製造番号を設定
						childMap2.put(TAKNKIKI_SETHIN_NO, YbTgBpListMap.get("TAKNKIKI_SETHIN_NO"));
					}

					children.add(childMap2);
				}

				// OM-2014-0003925 ADD START
				HashMap<String, Object> YbTgBpListMap = YbTgBpListList.get(0);
				if ("".equals(YbTgBpListMap.get("KIKI_SEIZO_NO"))) {
					for (int k = 0; k < Integer.parseInt(nyukaJoho[TANA_FILE_COL_REC_CNT]) - 1; k++)
					{
						// 予備機器配送の情報を設定
						HashMap<String, Object> childMap2 = null;
						childMap2 = new HashMap<String, Object>();

						// ANK-2428-00-00 MOD START
						// 倉庫棚移動対象機器備考を設定
//						childMap2.put(SKDN_MV_TG_KIKI_BIKO, YbTgBpListMap.get("YBKKHAI_TAIBPIN_BIKO"));
						if (null ==  YbTgListMap.get("YBKKHAI_TAIBPIN_BIKO")) {
							childMap2.put(SKDN_MV_TG_KIKI_BIKO, "");
						}
						else {
							childMap2.put(SKDN_MV_TG_KIKI_BIKO, YbTgBpListMap.get("YBKKHAI_TAIBPIN_BIKO"));
						}
						// ANK-2428-00-00 MOD END

						// ANK-2428-00-00 MOD START
						// 倉庫棚移動理由コードを設定
//						childMap2.put(SOKODNA_MOVE_RSN_CD, YbTgBpListMap.get("YBKKHAI_RSN_CD"));
						if (null ==  YbTgListMap.get("YBKKHAI_RSN_CD")) {
							childMap2.put(SOKODNA_MOVE_RSN_CD, "");
						}
						else {
							childMap2.put(SOKODNA_MOVE_RSN_CD, YbTgBpListMap.get("YBKKHAI_RSN_CD"));
						}
						// ANK-2428-00-00 MOD END

						// 宅内機器型式コードを設定
						childMap2.put(TAKNKIKI_MODEL_CD, YbTgBpListMap.get("TAKMODELNO"));

						// ANK-2428-00-00 MOD START
						// 付属品型式コードを設定
//						childMap2.put(HUZOKUHIN_MODEL_CD, YbTgBpListMap.get("FZKMODELNO"));
						if (null ==  YbTgListMap.get("FZKMODELNO")) {
							childMap2.put(HUZOKUHIN_MODEL_CD, "");
						}
						else {
							childMap2.put(HUZOKUHIN_MODEL_CD, YbTgBpListMap.get("FZKMODELNO"));
						}
						// ANK-2428-00-00 MOD END

						// ANK-2428-00-00 MOD START
						// 宅内機器セット品型コードを設定
//						childMap2.put(TAKNKIKI_SETHIN_MODEL_CD, YbTgBpListMap.get("SETMODELNO"));
						if (null ==  YbTgListMap.get("SETMODELNO")) {
							childMap2.put(TAKNKIKI_SETHIN_MODEL_CD, "");
						}
						else {
							childMap2.put(TAKNKIKI_SETHIN_MODEL_CD, YbTgBpListMap.get("SETMODELNO"));
						}
						// ANK-2428-00-00 MOD END

						// 宅内機器セット品型コードの確認
						if (null == YbTgBpListMap.get("SETMODELNO")) {
							// 機器製造番号を設定
							childMap2.put(KIKI_SEIZO_NO, YbTgBpListMap.get("KIKI_SEIZO_NO"));
						}
						else {
							// 機器製造番号を設定
							childMap2.put(TAKNKIKI_SETHIN_NO, YbTgBpListMap.get("TAKNKIKI_SETHIN_NO"));
						}

						children.add(childMap2);
					}
				}
				// OM-2014-0003925 ADD END
			}
			tYBkikiHaiso = YbTgListMap.get("YBKIKI_HAISO_NO").toString();
		}
		// IT1-2014-0000334 MOD END

		// OM-2014-0003749 ADD START
		// 棚移動数量を設定
		childMap.put("shukka_cnt", String.valueOf(shiped));
		// OM-2014-0003749 ADD END

		childMap.put("EDK0071D020CBSMsg1List", children);
		list.add(childMap);

		// リストキーを追加
		parentMap.put("ybkiki_haiso_list", list);

		// outMapにデータをCCのタイトルをキーとして設定する。
		outMap.put(DKSV004205CC, parentMap);

		return true;
	}

	/**
	 * 製番指定出荷完了の設定処理を行います。
	 * @param strDlydList ファイル内容
	 * @param outMap 更新キーマップ
	 * @return true:登録あり false:登録なし
	 */
	private boolean setDKSV004206SC(String[] strDlydList, HashMap<String, Object> outMap) throws Exception
	{
		// 編集用マップ
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 機能コード
		parentMap.put(FUNC_CODE, FUNC_CODE_VAL);

		Set<RecordKey> keies = new HashSet<RecordKey>();
		Map<RecordKey, Integer> shipAmounts = new HashMap<RecordKey, Integer>();

		ArrayList<HashMap<String, Object>> list = null;
		list = new ArrayList<HashMap<String, Object>>();

		// IT1-2014-0000332 ADD START
		String wShiteWayCD = "";
		// IT1-2014-0000332 ADD END

		// 移動数量の集計
		for (int j = 0; j < strDlydList.length - 1; j++)
		{
			// レコード内容をカンマ区切りで配列化する
			String[] nyukaJoho = this.split(strDlydList[j]);

			// 予備機器配送対象部品取得データリストから予備機器配送対象部品リストを取得する。
			// IT1-2014-0000334 MOD START
//			ArrayList<HashMap<String, Object>> YbTgBpListList = YbTgBpList.get(j);
			ArrayList<HashMap<String, Object>> YbTgBpListList = TblCCList.get(j);
			// IT1-2014-0000334 MOD END

			// 予備機器配送対象部品取得データを確認する。
			if (YbTgBpListList == null) {
				// 異常終了（エラーファイル出力）
				super.commonItem.setErrFlg(true);
				return false;
			}

			// IT1-2014-0000332 ADD START
			HashMap<String, Object> YbTgListMap = YbTgList.get(j);
			wShiteWayCD = YbTgListMap.get("SHITEI_WAY_CD").toString();
			// IT1-2014-0000332 ADD END

			for (int k = 0; k < YbTgBpListList.size(); k++)
			{
				HashMap<String, Object> YbTgBpListMap = YbTgBpListList.get(k);

				// 予備機器配送対象部品取得データリストを確認する。
				if (YbTgBpListMap == null) {
					// 異常終了（エラーファイル出力）
					super.commonItem.setErrFlg(true);
					return false;
				}

				// IT1-2014-0000334 MOD START
//				RecordKey key = new RecordKey(YbTgBpListMap.get("YBKIKI_HAISO_NO").toString(),
//						YbTgBpListMap.get("YBKIKI_HAISO_UCWK_NO").toString());
				RecordKey key;
				if (null == YbTgBpListMap.get("YBKIKI_HAISO_UCWK_NO")) {
					key = new RecordKey(YbTgBpListMap.get("YBKIKI_HAISO_NO").toString(), " ");
				}
				else {
					key = new RecordKey(YbTgBpListMap.get("YBKIKI_HAISO_NO").toString(),
							YbTgBpListMap.get("YBKIKI_HAISO_UCWK_NO").toString());
				}
				// IT1-2014-0000334 MOD END

				int shiped = 0;
				if (shipAmounts.containsKey(key)) {
					shiped = shipAmounts.get(key);
				}
				shiped += Integer.parseInt(nyukaJoho[TANA_FILE_COL_REC_CNT]);
				shipAmounts.put(key, shiped);
			}
		}

		// 予備機器配送対象部品の情報を読込
		// IT1-2014-0000334 MOD START
//		for (int j = 0; j < YbTgBpList.size(); j++)
		for (int j = 0; j < TblCCList.size(); j++)
		// IT1-2014-0000334 MOD END
		{
			// 予備機器配送対象部品取得データリストから予備機器配送対象部品リストを取得する。
			// IT1-2014-0000334 MOD START
//			ArrayList<HashMap<String, Object>> YbTgBpListList = YbTgBpList.get(j);
			ArrayList<HashMap<String, Object>> YbTgBpListList = TblCCList.get(j);
			// IT1-2014-0000334 MOD END

			// 予備機器配送対象部品取得データを確認する。
			if (YbTgBpListList == null) {
				// 異常終了（エラーファイル出力）
				super.commonItem.setErrFlg(true);
				return false;
			}

			for (int k = 0; k < YbTgBpListList.size(); k++)
			{
				HashMap<String, Object> YbTgBpListMap = YbTgBpListList.get(k);

				// 予備機器配送対象部品取得データリストを確認する。
				if (YbTgBpListMap == null) {
					// 異常終了（エラーファイル出力）
					super.commonItem.setErrFlg(true);
					return false;
				}

				// IT1-2014-0000334 MOD START
//				RecordKey key = new RecordKey(YbTgBpListMap.get("YBKIKI_HAISO_NO").toString(),
//											YbTgBpListMap.get("YBKIKI_HAISO_UCWK_NO").toString());
				RecordKey key;
				if (null == YbTgBpListMap.get("YBKIKI_HAISO_UCWK_NO")) {
					key = new RecordKey(YbTgBpListMap.get("YBKIKI_HAISO_NO").toString(), " ");
				}
				else {
					key = new RecordKey(YbTgBpListMap.get("YBKIKI_HAISO_NO").toString(),
							YbTgBpListMap.get("YBKIKI_HAISO_UCWK_NO").toString());
				}
				// IT1-2014-0000334 MOD END

				if (keies.contains(key))
				{
					continue;
				}

				HashMap<String, Object> childMap = new HashMap<String, Object>();

				// IT1-2014-0000332 DEL START
//				list.add(childMap);
				// IT1-2014-0000332 DEL END

				keies.add(key);

				// 予備機器配送番号を設定
				childMap.put(KEY_YBKIKI_HAISO_NO, YbTgBpListMap.get("YBKIKI_HAISO_NO"));

				// ANK-2428-00-00 MOD START
				// 予備機器配送内訳番号を設定
//				childMap.put(KEY_YBKIKI_HAISO_UCWK_NO, YbTgBpListMap.get("YBKIKI_HAISO_UCWK_NO"));
				if (null ==  YbTgBpListMap.get("YBKIKI_HAISO_UCWK_NO")) {
					childMap.put(KEY_YBKIKI_HAISO_UCWK_NO, "");
				}
				else {
					childMap.put(KEY_YBKIKI_HAISO_UCWK_NO, YbTgBpListMap.get("YBKIKI_HAISO_UCWK_NO"));
				}
				// ANK-2428-00-00 MOD END

				// 出荷数量を設定
				childMap.put(SHUKKA_CNT, Integer.toString(shipAmounts.get(key)));

				// ANK-2428-00-00 MOD START
				// 更新年月日時分秒（更新前）を設定
				// IT1-2014-0000334 MOD START
//				childMap.put(UPD_DTM_BF, YbTgBpListMap.get("UPD_DTM"));
				childMap.put(UPD_DTM_BF, YbTgBpListMap.get("UCWK_UPDDTM"));
				// IT1-2014-0000334 MOD END
				if (null ==  YbTgBpListMap.get("UCWK_UPDDTM")) {
					childMap.put(UPD_DTM_BF, "");
				}
				else {
					childMap.put(UPD_DTM_BF, YbTgBpListMap.get("UCWK_UPDDTM"));
				}
				// ANK-2428-00-00 MOD END

				// IT1-2014-0000334 MOD START
				// IT1-2014-0000332 MOD START
				// 指定方法コードを設定
//				childMap.put(SHITEI_WAY_CD, WAY_CD_SEIZO);
//				childMap.put(SHITEI_WAY_CD, wShiteWayCD);
				childMap.put(SHITEI_WAY_CD, YbTgBpListMap.get("SHITEIWAYCD"));
				// IT1-2014-0000332 MOD END
				// IT1-2014-0000334 MOD END

				// IT1-2014-0000333 MOD START
				// IT1-2014-0000332 MOD START
				// 棚移動種別区分を設定
//				childMap.put(MV_SBT, MV_SBT_GAI);
//				childMap.put(MV_SBT, MVSbtList.get(j));
				childMap.put(MV_SBT, MV_SBT_VALUE);
				// IT1-2014-0000332 MOD END
				// IT1-2014-0000333 MOD END

				// IT1-2014-0000332 ADD START
				list.add(childMap);
				// IT1-2014-0000332 ADD END
			}
		}

		// リストキーを追加
		parentMap.put("ybkiki_haiso_list", list);

		// outMapにデータをCCのタイトルをキーとして設定する。
		outMap.put(DKSV004206CC, parentMap);

		return true;
	}

	/**
	 * 内訳データのキーを表す
	 */
	class RecordKey
	{
		private String idoNo;
		private String detailNo;
		public RecordKey(String idoNo, String detailNo)
		{
			this.idoNo = idoNo;
			this.detailNo = detailNo;
		}
		
		
		@Override
		public int hashCode() {
			return idoNo.hashCode() + detailNo.hashCode();
		}


		@Override
		public boolean equals(Object o) {
			if (!(o instanceof RecordKey))
			{
				return false;
			}
			RecordKey other = (RecordKey)o;
			return this.idoNo.equals(other.idoNo) && this.detailNo.equals(other.detailNo);
		}
	}

	/**
	 * 宅内管理情報更新の設定処理を行います。
	 * @param strDlydList ファイル内容
	 * @param outMap 更新キーマップ
	 * @return true:登録あり false:登録なし
	 */
	private boolean setDKSV004207SC(String[] strDlydList, HashMap<String, Object> outMap) throws Exception
	{
		// 編集用マップ
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 機能コード
		parentMap.put(FUNC_CODE, FUNC_CODE_VAL);

		ArrayList<HashMap<String, Object>> list = null;
		list = new ArrayList<HashMap<String, Object>>();

		// 予備機器配送対象部品
		// IT1-2014-0000334 MOD START
//		for (int j = 0; j < YbTgBpList.size(); j++)
		for (int j = 0; j < TblCCList.size(); j++)
		// IT1-2014-0000334 MOD END
		{
			// 予備機器配送対象部品取得データリストから予備機器配送対象部品リストを取得する。
			// IT1-2014-0000334 MOD START
//			ArrayList<HashMap<String, Object>> YbTgBpListList = YbTgBpList.get(j);
			ArrayList<HashMap<String, Object>> YbTgBpListList = TblCCList.get(j);
			// IT1-2014-0000334 MOD END

			// 予備機器配送対象部品取得データを確認する。
			if (YbTgBpListList == null) {
				// 異常終了（エラーファイル出力）
				super.commonItem.setErrFlg(true);
				return false;
			}

			for (int k = 0; k < YbTgBpListList.size(); k++)
			{
				HashMap<String, Object> YbTgBpListMap = YbTgBpListList.get(k);

				// 予備機器配送対象部品取得データリストを確認する。
				if (YbTgBpListMap == null) {
					// 異常終了（エラーファイル出力）
					super.commonItem.setErrFlg(true);
					return false;
				}

				// 機器製造番号を確認する。
				if (!"".equals(YbTgBpListMap.get("KIKI_SEIZO_NO"))) {

					// 予備機器配送の情報を設定
					HashMap<String, Object> childMap = null;
					childMap = new HashMap<String, Object>();

					// ＫＥＹ＿宅内機器型式コードを設定
					// IT1-2014-0000334 MOD START
//					childMap.put(KEY_TK_MDL_CD, YbTgBpListMap.get("TAKNKIKI_MODEL_CD"));
					childMap.put(KEY_TK_MDL_CD, YbTgBpListMap.get("TAKMODELNO"));
					// IT1-2014-0000334 MOD END

					// ＫＥＹ＿機器製造番号を設定
					childMap.put(KEY_KK_SEIZO_NO, YbTgBpListMap.get("KIKI_SEIZO_NO"));

					// ＫＥＹ＿宅内機器基本Ｔ更新日付を設定
					// IT1-2014-0000334 MOD START
//					childMap.put(KEY_KIHON_UPD_DTTM, YbTgBpListMap.get("UPD_DTM"));
					childMap.put(KEY_KIHON_UPD_DTTM, YbTgBpListMap.get("UPDDTM"));
					// IT1-2014-0000334 MOD END

					list.add(childMap);
				}
			}
		}

		// リストキーを追加
		parentMap.put("kiki_list", list);

		// レコード内容をカンマ区切りで配列化する
		String[] nyukaJoho = this.split(strDlydList[0]);

		// 棚移動ロット番号を追加
		parentMap.put(KEY_SHELF_MV_LOT_NO, nyukaJoho[TANA_FILE_COL_REC_LOT]);

		// outMapにデータをCCのタイトルをキーとして設定する。
		outMap.put(DKSV004207SC, parentMap);

		return true;
	}
}
