/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：物流管理システム
*   モジュール名    ：DKW01102SFLogic
*   ソースファイル名：DKW01102SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年10月27日
*＜機能概要＞
*   棚移動出荷詳細画面です。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/10/27   FJ）仁多見  新規作成
*   v5.00.00    2013/10/21   FJ          OM-2013-0003394
*   v6.00.00    2013/12/16   FJ          宅内エラーチェックを追加(OM-2013-0005003)
*
**********************************************************************/
package eo.web.webview.DKW01102SF;

import static com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG;
import static eo.common.constant.JPCOnlineMessageConstant.*;
import static eo.common.util.JDKCommonUtil.join;
import static eo.web.webview.DKW01102SF.DKW01102SFConst.*;
import static eo.web.webview.common.JDKScreenConst.*;
import static eo.web.webview.common.JDKWebCommon.*;

import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.web.x31.X31BWebBusinessLogic;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.constant.JDKStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JDKCommonUtil;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.DKW01105SF.DKW01105SFConst;
import eo.web.webview.DKW01405SF.DKW01405SFConst;
import eo.web.webview.DKW01406SF.DKW01406SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JDKScreenConst;
import eo.web.webview.common.JDKWebCommon;
import eo.web.webview.common.JZMWebConst;
import eo.web.webview.mapping.DKSV0039_DKSV0039OPDBMapper;
import eo.web.webview.mapping.DKSV0042_DKSV0042OPDBMapper;
import eo.web.webview.mapping.DKSV0091_DKSV0091OPDBMapper;
import eo.web.webview.mapping.DKSV0093_DKSV0093OPDBMapper;

/**
 * 棚移動出荷詳細画面のビューロジック処理を行います。
 * @author user
 */
public class DKW01102SFLogic extends JCCWebBusinessLogic
{
	/**
	 * シリアルバージョンＩＤ
	 */
	private static final long serialVersionUID = 1L;

	/** 棚移動出荷 */
	private static final String MSG_STOCK = "棚移動出荷処理";
	/** VARB（詳細画面用） */
	private static final String L_PAG_DTL = "L_PAG_DTL";
	/** VARB（確認画面用） */
	private static final String L_PAG_FIX = "L_PAG_FIX";
	/** VARB（完了画面用） */
	private static final String L_PAG_FIN = "L_PAG_FIN";
	/** 指示内容CSVファイル名（先頭文字） */
	private static final String CSV_FILE_NAME_SJI = "eo_tana2_";
	/** 移動結果CSVファイル名（先頭文字）*/
	private static final String CSV_FILE_NAME_IDO = "eo_tana4_";
	/** ファイル拡張子 CSV */
	private static final String FILE_CSV = ".csv";
	/** 指示内容CSV 基本情報部 */
	private static final String RECORD_KIHON_SJI = "7B";
	/** 指示内容CSV 詳細情報部 */
	private static final String RECORD_SHOSAI_SJI = "7C";
	/** 指示内容CSV トレーラ部 */
	private static final String RECORD_TRAILER_SJI = "7D";
	/** 移動結果CSV 基本情報部 */
	private static final String RECORD_KIHON_IDO = "7G";
	/** 移動結果CSV 詳細情報部 */
	private static final String RECORD_SHOSAI_IDO = "7H";
	/** 移動結果CSV トレーラ部 */
	private static final String RECORD_TRAILER_IDO = "7I";
	/** 移動結果CSV レコード数カウント用 */
	private int record_count = 0;
	
	private static final String TRAILER_CODE = "78";

	private static final int COL_ID = 3;
	private static final int COL_MODEL_NO = 6;
	private static final int COL_SEIZO_NO = 7;
	private static final int COL_QUANTITY = 9;

	private static final String QUANTITY_ORDER = "1";
	private static final String MODEL_NO_ORDER = "2";
	
	/** 宅内チェック用のセッションキー */
	private static final String SESSION_KEY_TK_CHECK = "SESSION_KEY_TK_CHECK";
	
	/**
	 * 初期表示を処理します。
	 * <br>
	 * @return 成否
	 * @throws Exception 例外
	 */
	public boolean init() throws Exception
	{
		JCCWebCommon.getScreenInfo(this);
		setData(this, JCCWebCommon.getOpeDate(this, null), UNYO_YMD);
		JCCWebCommon.clearPageLinkInfo(this, SCREEN_ID_DKW01102);
		setData(this, "0", ROW_NO);
		
		// データが無かった場合、一覧画面に強制転送
		if (!putServiceDKSV0039(SCREEN_ID_DKW01102, true, true))
		{
			return toSearchScreen();
		}

		JCCWebCommon.setSearchCommand(this, L_PAG_DTL);
		if (JDKCommonUtil.isNull(getData(this, EFILE)))
		{
			setGamen();
		}
		else
		{
			innerRefrect();
		}
		
		setNextScreen(SCREEN_ID_DKW01102, SCREEN_NAME_DKW01102);

		return true;
	}

	/**
	 * 基本情報ボタンを処理します。
	 * <br>
	 * @return 成否
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	public boolean showBaseInfo() throws Exception
	{
		JCCWebCommon.setScreenId(this, SCREEN_ID_DKW01405, SCREEN_ID_DKW01102);
		
		
		HashMap dataMap = new HashMap();
		JCCWebCommon.setScreenInfo(this, SCREEN_ID_DKW01405, dataMap);
		
		dataMap.put(DKW01405SFConst.KEY_SHELF_MV_LOT_NO, getData(this, KEY_SHELF_MOVE_LOT_NO));

		
		HashMap returnMap = new HashMap();
		JCCWebCommon.setScreenInfo(this, SCREEN_ID_DKW01102, returnMap);

		returnMap.put(EFILE, getData(this, EFILE));
		returnMap.put(KEY_SHELF_MOVE_LOT_NO, getData(this, KEY_SHELF_MOVE_LOT_NO));
		returnMap.put(DISP_SHELF_MOVE_LOT_NO, getData(this, KEY_SHELF_MOVE_LOT_NO));
		String rowNo = getData(this, ROW_NO);
		returnMap.put(ROW_NO, rowNo);
		int intRowNo = 0;
		if (!JDKCommonUtil.isNull(rowNo))
		{
			intRowNo = Integer.parseInt(rowNo);
		}
		X31SDataBeanAccessArray shosaiList = getServiceFormBean().getDataBeanArray(DKW01102SFConst.SHOSAI_LIST);
		X31SDataBeanAccess subbean = shosaiList.getDataBean(intRowNo);
		returnMap.put(PAGING_KEY, getData(subbean, L_SHELF_MV_NO_02));
		storeButtonCondition(returnMap);

		// 画面遷移処理
		setNextScreen(SCREEN_ID_DKW01405, SCREEN_NAME_DKW01405);

		return true;
	}

	/**
	 * 数量詳細ボタンを処理します。
	 * <br>
	 * @return 成否
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	public boolean showCountDetail() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		// 画面情報を設定
		HashMap dataMap = new HashMap();

		// 棚移動番号
		String rowNo = getData(this, ROW_NO);
		int intRowNo = 0;
		if (!JDKCommonUtil.isNull(rowNo))
		{
			intRowNo = Integer.parseInt(rowNo);
		}
		X31SDataBeanAccessArray shosaiList = serviceFormBean.getDataBeanArray(DKW01102SFConst.SHOSAI_LIST);
		X31SDataBeanAccess subbean = shosaiList.getDataBean(intRowNo);
		dataMap.put(DKW01406SFConst.KEY_SHELF_MV_NO, getData(subbean, L_SHELF_MV_NO_02));

		// 棚移動種別区分
		X31SDataBeanAccessArray kihonList = serviceFormBean.getDataBeanArray(DKW01102SFConst.KIHON_LIST);
		X31SDataBeanAccess bean = kihonList.getDataBean(0);
		dataMap.put(DKW01406SFConst.MV_SBT, getData(bean, MV_SBT_01));

		// 画面情報を設定
		JCCWebCommon.setScreenInfo(this, SCREEN_ID_DKW01406, dataMap);

		// 戻る際に必要な情報を設定
		HashMap returnMap = new HashMap();
		// 棚移動ロット番号
		returnMap.put(KEY_SHELF_MOVE_LOT_NO, getData(this, KEY_SHELF_MOVE_LOT_NO));
		// 棚移動ロット番号（表示用）
		returnMap.put(DISP_SHELF_MOVE_LOT_NO, getData(this, KEY_SHELF_MOVE_LOT_NO));
		// 行番号
		returnMap.put(ROW_NO, rowNo);
		// ページングキー
		returnMap.put(PAGING_KEY, getData(subbean, L_SHELF_MV_NO_02));
		storeButtonCondition(returnMap);

		// 画面情報を設定
		JCCWebCommon.setScreenInfo(this, SCREEN_ID_DKW01102, returnMap);
		JCCWebCommon.setScreenId(this, SCREEN_ID_DKW01406, SCREEN_ID_DKW01102);

		// 画面遷移処理
		setNextScreen(SCREEN_ID_DKW01406, SCREEN_NAME_DKW01406);

		return true;
	}

	/**
	 * 戻るボタン（詳細画面）を処理します。
	 * <br>
	 * @return 成否
	 * @throws Exception 例外
	 */
	public boolean returnList() throws Exception
	{
		// 画面遷移処理
		JCCWebCommon.setScreenId(this, SCREEN_ID_DKW01101, SCREEN_ID_DKW01102);
		setNextScreen(SCREEN_ID_DKW01101, SCREEN_NAME_DKW01101);

		return true;
	}

	/**
	 * 戻るボタン（確認画面）押下処理
	 * @return 処理の成否
	 * @throws Exception
	 */
	public boolean returnDetail() throws Exception
	{
		pagingCommon(SCREEN_ID_DKW01102, SCREEN_NAME_DKW01102, L_PAG_DTL, true);
		JCCWebCommon.setScreenId(this, SCREEN_ID_DKW01102, SCREEN_ID_DKW01103);

		return true;
	}

	/**
	 * ページング（詳細画面）を処理します。
	 * <br>
	 * @return 成否
	 * @throws Exception 例外
	 */
	public boolean pagingDtl() throws Exception
	{
		pagingCommon(SCREEN_ID_DKW01102, SCREEN_NAME_DKW01102, L_PAG_DTL, false);

		// 行番号を初期化
		setData(this, "0", ROW_NO);

		return true;
	}

	/**
	 * ページング（確認画面）を処理します。
	 * <br>
	 * @return 成否
	 * @throws Exception 例外
	 */
	public boolean pagingFix() throws Exception
	{
		if (!pagingCommon(SCREEN_ID_DKW01103, SCREEN_NAME_DKW01103, L_PAG_FIX, false))
		{
			return true;
		}

		// 確認メッセージ表示
		JCCWebCommon.setMessageInfo(this, EKB0370__I, new String [] {MSG_STOCK});

		return true;
	}

	/**
	 * ページング（完了画面）を処理します。
	 * <br>
	 * @return 成否
	 * @throws Exception 例外
	 */
	public boolean pagingFin() throws Exception
	{
		if (!pagingCommon(SCREEN_ID_DKW01104, SCREEN_NAME_DKW01104, L_PAG_FIN, false))
		{
			return true;
		}

		// 完了メッセージ表示
		JCCWebCommon.setMessageInfo(this, EKB0380__I, new String [] {MSG_STOCK});

		return true;
	}

	/**
	 * ページング処理
	 * <br>
	 * @param screenId 画面ID
	 * @param screenNm 画面名
	 * @param varb VARB
	 * @param transBack 確認画面戻るボタン押下による遷移:true 以外:false
	 * @return 成否
	 * @throws Exception 例外
	 */
	public boolean pagingCommon(String screenId, String screenNm, String varb, boolean transBack) throws Exception
	{
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		// 初期化
		if (!transBack)
		{
			serviceFormBean.sendMessage(PAGING_KEY, X31CWebConst.DATABEAN_CLEAR);
		}
		serviceFormBean.getDataBeanArray(SHOSAI_LIST).clearArray();

		// サービスの呼び出しを行う
		if (!putServiceDKSV0039(screenId, transBack))
		{
			return toSearchScreen();
		}

		// 検索のコマンドIDを設定する。
		JCCWebCommon.setSearchCommand(this, varb, screenId);

		setGamen();
		
		setNextScreen(screenId, screenNm);

		return true;
	}

	/**
	 * 指示内容CSVボタンを処理します。
	 * <br>
	 * @return 成否
	 * @throws Exception 例外
	 */
	public boolean outputCsvSjiNyo() throws Exception
	{
		// サービスの呼び出しを行う
		putServiceDKSV0091();

		// ファイル名の作成を行う eo_tana2_TXXXXXXXXX_yyyyMMddhhmmss.csv
		StringBuffer fileName = new StringBuffer();
		fileName.append(CSV_FILE_NAME_SJI);
		String lotNo = getData(this, KEY_SHELF_MOVE_LOT_NO);
		fileName.append(lotNo);
		fileName.append("_");
		fileName.append(JCCWebCommon.getSysDateTime());
		fileName.append(FILE_CSV);

		// ダウンロード
		JCCWebCommon.setTempDownloadFile(this, buildFileSji(lotNo).getBytes(JDKStrConst.CHAR_SET_WIN31J), fileName.toString());
		getServiceFormBean().getDataBeanArray(SJI_CSV_LIST).clearArray();

		return true;
	}

	/**
	 * 指示内容データファイルを生成します。
	 * @param lotNo 棚移動ロット番号
	 * @return 指示内容データファイル
	 */
	private String buildFileSji(String lotNo)
	{
		X31SDataBeanAccessArray datas = getServiceFormBean().getDataBeanArray(SJI_CSV_LIST);

		StringBuffer bodyRecords = new StringBuffer();
		for (int i = 0; i < datas.getCount(); i++)
		{
			if (bodyRecords.length() > 0)
			{
				bodyRecords.append(JDKStrConst.LINE_SEPARATOR);
			}
			bodyRecords.append(buildDataRecordSji(datas.getDataBean(i), lotNo, i));
		}
		
		String file = join(JDKStrConst.LINE_SEPARATOR,
							buildHeaderRecordSji(lotNo),
							bodyRecords.toString(),
							buildTrailerRecordSji());

		DEBUG_LOG.debug(String.format("ファイル内容：%s", file));
		
		return file;
	}

	/**
	 * 指示内容データファイルのヘッダ部を生成します。
	 * @param lotNo 棚移動ロット番号
	 * @return ヘッダレコード
	 */
	private String buildHeaderRecordSji(String lotNo)
	{
		X31SDataBeanAccessArray datas = getServiceFormBean().getDataBeanArray(KIHON_CSV_LIST);
		X31SDataBeanAccess kihonData = datas.getDataBean(0);

		String sokoMtCd = getData(kihonData, MV_MT_SOKO_CD_03);		// 移動元倉庫コード
		String kojiMtCd = getData(kihonData, MV_MT_KOJI_CD_03);		// 移動元工事会社コード
		String ofcMtCd = getData(kihonData, MV_MT_OFFICE_CD_03);	// 移動元預託先オフィスコード
		
		String sokoSkCd = getData(kihonData, MV_SK_SOKO_CD_03);		// 移動先倉庫コード
		String kojiSkCd = getData(kihonData, MV_SK_KOJI_CD_03);		// 移動先工事会社コード
		String ofcSkCd = getData(kihonData, MV_SK_OFFICE_CD_03);	// 移動先預託先オフィスコード
		
		String mtCd = "";	// 移動元コード
		String pcd = "";	// 郵便番号
		String state = "";	// 都道府県
		String city = "";	// 市区町村
		String oaztsu = "";	// 大字
		String azcho = "";	// 字丁目
		String bnchigo = "";// 番地・号
		String adrttm = "";	// 建物
		String adrrm = "";	// 部屋番号
		String telno = "";	// 電話番号
		String skNm = "";	// 移動先名
		
		String sbt = getData(kihonData, MV_SBT_03);		// 種別

		// 倉庫棚移動よりデータ取得時
		if (QUANTITY_ORDER.equals(sbt))
		{
			// 倉庫の場合
			if (!JDKCommonUtil.isNull(sokoMtCd))
			{
				mtCd = sokoMtCd;
				pcd = getData(kihonData, SOKO_PCD_03);
				state = getData(kihonData, SOKO_STATE_NM_03);
				city = getData(kihonData, SOKO_CITY_NM_03);
				oaztsu = getData(kihonData, SOKO_OAZTSU_NM_03);
				azcho = getData(kihonData, SOKO_AZCHO_NM_03);
				bnchigo = getData(kihonData, SOKO_BNCHIGO_03);
				adrttm = getData(kihonData, SOKO_ADRTTM_03);
				adrrm = getData(kihonData, SOKO_ADRRM_03);
				telno = getData(kihonData, SOKO_TELNO_03);
				skNm = getData(kihonData, MV_SK_SOKO_NM_03);
			}
			else if (!JDKCommonUtil.isNull(kojiMtCd))
			{
				// 工事会社の場合
				mtCd = kojiMtCd;
				pcd = getData(kihonData, KOJI_PCD_03);
				state = getData(kihonData, KOJI_STATE_NM_03);
				city = getData(kihonData, KOJI_CITY_NM_03);
				oaztsu = getData(kihonData, KOJI_OAZTSU_NM_03);
				azcho = getData(kihonData, KOJI_AZCHO_NM_03);
				bnchigo = getData(kihonData, KOJI_BNCHIGO_03);
				adrttm = getData(kihonData, KOJI_ADRTTM_03);
				adrrm = getData(kihonData, KOJI_ADRRM_03);
				telno = getData(kihonData, KOJI_TELNO_03);
				skNm = getData(kihonData, MV_SK_KOJI_NM_03);
			}
			else if (!JDKCommonUtil.isNull(ofcMtCd))
			{
				// 預託先オフィスの場合
				mtCd = ofcMtCd;
				pcd = getData(kihonData, OFFICE_PCD_03);
				state = getData(kihonData, OFFICE_STATE_NM_03);
				city = getData(kihonData, OFFICE_CITY_NM_03);
				oaztsu = getData(kihonData, OFFICE_OAZTSU_NM_03);
				azcho = getData(kihonData, OFFICE_AZCHO_NM_03);
				bnchigo = getData(kihonData, OFFICE_BNCHIGO_03);
				adrttm = getData(kihonData, OFFICE_ADRTTM_03);
				adrrm = getData(kihonData, OFFICE_ADRRM_03);
				telno = getData(kihonData, OFFICE_TELNO_03);
				skNm = getData(kihonData, MV_SK_OFFICE_NM_03);
			}
		}
		else
		{
			if (!JDKCommonUtil.isNull(sokoMtCd))
			{
				mtCd = sokoMtCd;
			}
			else if (!JDKCommonUtil.isNull(kojiMtCd))
			{
				mtCd = kojiMtCd;
			}
			else if (!JDKCommonUtil.isNull(ofcMtCd))
			{
				mtCd = ofcMtCd;
			}

			// 倉庫の場合
			if (!JDKCommonUtil.isNull(sokoSkCd))
			{
				pcd = getData(kihonData, SOKO_PCD_03);
				state = getData(kihonData, SOKO_STATE_NM_03);
				city = getData(kihonData, SOKO_CITY_NM_03);
				oaztsu = getData(kihonData, SOKO_OAZTSU_NM_03);
				azcho = getData(kihonData, SOKO_AZCHO_NM_03);
				bnchigo = getData(kihonData, SOKO_BNCHIGO_03);
				adrttm = getData(kihonData, SOKO_ADRTTM_03);
				adrrm = getData(kihonData, SOKO_ADRRM_03);
				telno = getData(kihonData, SOKO_TELNO_03);
				skNm = getData(kihonData, MV_SK_SOKO_NM_03);
			}
			else if (!JDKCommonUtil.isNull(kojiSkCd))
			{
				// 工事会社の場合
				pcd = getData(kihonData, KOJI_PCD_03);
				state = getData(kihonData, KOJI_STATE_NM_03);
				city = getData(kihonData, KOJI_CITY_NM_03);
				oaztsu = getData(kihonData, KOJI_OAZTSU_NM_03);
				azcho = getData(kihonData, KOJI_AZCHO_NM_03);
				bnchigo = getData(kihonData, KOJI_BNCHIGO_03);
				adrttm = getData(kihonData, KOJI_ADRTTM_03);
				adrrm = getData(kihonData, KOJI_ADRRM_03);
				telno = getData(kihonData, KOJI_TELNO_03);
				skNm = getData(kihonData, MV_SK_KOJI_NM_03);
			}
			else if (!JDKCommonUtil.isNull(ofcSkCd))
			{
				// 預託先オフィスの場合
				pcd = getData(kihonData, OFFICE_PCD_03);
				state = getData(kihonData, OFFICE_STATE_NM_03);
				city = getData(kihonData, OFFICE_CITY_NM_03);
				oaztsu = getData(kihonData, OFFICE_OAZTSU_NM_03);
				azcho = getData(kihonData, OFFICE_AZCHO_NM_03);
				bnchigo = getData(kihonData, OFFICE_BNCHIGO_03);
				adrttm = getData(kihonData, OFFICE_ADRTTM_03);
				adrrm = getData(kihonData, OFFICE_ADRRM_03);
				telno = getData(kihonData, OFFICE_TELNO_03);
				skNm = getData(kihonData, MV_SK_OFFICE_NM_03);
			}
		}
		
		// 倉庫棚移動よりデータ取得時
		if (QUANTITY_ORDER.equals(sbt))
		{
			return join(JDKStrConst.COMMA, 
							dqot(RECORD_KIHON_SJI), 
							dqot(getData(kihonData, SJI_YMD_03)), 
							dqot(lotNo), 
							dqot(mtCd), 
							dqot(getData(kihonData, MV_MT_SHELF_CD_03)), 
							dqot(pcd), 
							dqot(state), 
							dqot(city), 
							dqot(oaztsu), 
							dqot(azcho), 
							dqot(bnchigo), 
							dqot(adrttm), 
							dqot(adrrm), 
							dqot(skNm), 
							dqot(getData(kihonData, HAISOS_TNT_BUSHO_NM_03)), 
							dqot(getData(kihonData, HAISOS_TNTSHA_NM_03)), 
							dqot(mtCd), 
							dqot(getData(kihonData, MV_SK_SHELF_CD_03)), 
							dqot(pcd), 
							dqot(state), 
							dqot(city), 
							dqot(oaztsu), 
							dqot(azcho), 
							dqot(bnchigo), 
							dqot(adrttm), 
							dqot(adrrm), 
							dqot(skNm), 
							dqot(""), 
							dqot(""), 
							dqot(telno));
		}
		else
		{
			// 予備機器配送よりデータ取得時
			String skCd = "";
			if (!JDKCommonUtil.isNull(sokoSkCd))
			{
				skCd = sokoSkCd;
			}
			else if (!JDKCommonUtil.isNull(kojiSkCd))
			{
				skCd = kojiSkCd;
			}
			else if (!JDKCommonUtil.isNull(ofcSkCd))
			{
				skCd = ofcSkCd;
			}

			return join(JDKStrConst.COMMA, 
							dqot(RECORD_KIHON_SJI), 
							dqot(getData(kihonData, SJI_YMD_03)), 
							dqot(lotNo), 
							dqot(mtCd), 
							dqot(getData(kihonData, MV_MT_SHELF_CD_03)), 
							dqot(pcd), 
							dqot(state), 
							dqot(city), 
							dqot(oaztsu), 
							dqot(azcho), 
							dqot(bnchigo), 
							dqot(adrttm), 
							dqot(adrrm), 
							dqot(skNm), 
							dqot(getData(kihonData, HAISOS_TNT_BUSHO_NM_03)), 
							dqot(getData(kihonData, HAISOS_TNTSHA_NM_03)), 
							dqot(skCd), 
							dqot(getData(kihonData, MV_SK_SHELF_CD_03)), 
							dqot(getData(kihonData, YBKIKI_HISOS_PCD_03)), 
							dqot(getData(kihonData, YBKIKI_HISOS_STATE_NM_03)), 
							dqot(getData(kihonData, YBKIKI_HISOS_CITY_NM_03)), 
							dqot(getData(kihonData, YBKIKI_HISOS_OAZTSU_NM_03)), 
							dqot(getData(kihonData, YBKIKI_HISOS_AZCHO_NM_03)), 
							dqot(getData(kihonData, YBKIKI_HISOS_BNCHIGO_03)), 
							dqot(getData(kihonData, YBKIKI_HISOS_ADRTTM_03)), 
							dqot(getData(kihonData, YBKIKI_HISOS_ADRRM_03)), 
							dqot(getData(kihonData, YBKIKI_HISOS_NM_1_03)), 
							dqot(getData(kihonData, YBKIKI_HISOS_NM_2_03)), 
							dqot(getData(kihonData, YBKIKI_HISOS_NM_3_03)), 
							dqot(getData(kihonData, YBKIKI_HISOS_TELNO_03)));
		}
	}

	/**
	 * 指示内容データファイルのデータ部を生成します。
	 * @param data 行データ
	 * @param lotNo 棚移動ロット番号
	 * @param cnt 行番号
	 * @return データレコード
	 */
	private String buildDataRecordSji(X31SDataBeanAccess data, String lotNo, int cnt) 
	{
		// 型番号
		String nmlMdlNo = getData(data, TKKIKI_MDL_CD_04);
		String setMdlNo = getData(data, TKKIKI_SETHIN_MDL_CD_04);
		String fzkMdlNo = getData(data, HUZOKUHIN_MDL_CD_04);
		String mdlNo = "";
		if (!JDKCommonUtil.isNull(nmlMdlNo))
		{
			mdlNo = nmlMdlNo;
		}
		else if (!JDKCommonUtil.isNull(setMdlNo))
		{
			mdlNo = setMdlNo;
		}
		else if (!JDKCommonUtil.isNull(fzkMdlNo))
		{
			mdlNo = fzkMdlNo;
		}

		// 製造番号、指示数、移動理由、備考
		String seizoNo = "";
		String sjiNo = "";
		String riyu = "";
		String biko = "";
		String shiteiCd = getData(data, SHITEI_WAY_CD_04);
		
		String shelfMoveLotNoKikiSeq = null;
		
		
		// 製番指定の場合
		if (!JDKCommonUtil.isNull(shiteiCd) && MODEL_NO_ORDER.equals(shiteiCd))
		{
			String nmlSeizoNo = getData(data, KIKI_SEIZO_NO_04);
			String setSeizoNo = getData(data, TKKIKI_SETHIN_SEIZO_NO_04);
			if (!JDKCommonUtil.isNull(nmlSeizoNo))
			{
				seizoNo = nmlSeizoNo;
			}
			else if (!JDKCommonUtil.isNull(setSeizoNo))
			{
				seizoNo = setSeizoNo;
			}
			sjiNo = "1";
			riyu = getData(data, U_ARI_MV_RSN_CD_NM_04);
			biko = getData(data, U_ARI_BIKO_04);
			shelfMoveLotNoKikiSeq = getData(data, SHELF_MOVE_LOT_NO_KIKI_SEQ_04);
		}
		else
		{
			// 上記以外の場合
			seizoNo = "";
			sjiNo = getData(data, SJI_CNT_04);
			riyu = getData(data, U_NASI_MV_RSN_CD_NM_04);
			biko = getData(data, U_NASI_BIKO_04);
			// 棚移動番号(行番号 + 1)
			shelfMoveLotNoKikiSeq = String.valueOf(cnt + 1);
		}

		return join(JDKStrConst.COMMA, 
					dqot(RECORD_SHOSAI_SJI), 
					dqot(getData(data, SJI_YMD_04)), 
					dqot(lotNo), 
					dqot(shelfMoveLotNoKikiSeq), 
					dqot(mdlNo),
					dqot(seizoNo),
					dqot(getData(data, GDS_STAT_CD_04)),
					dqot(sjiNo),
					dqot(riyu),
					dqot(biko));
	}

	/**
	 * 指示内容データファイルのトレーラ部を生成します。
	 * @return トレーラレコード
	 */
	private String buildTrailerRecordSji() 
	{
		// 詳細部の件数 + 2(ヘッダ部、トレーラ部)
		int cnt = getServiceFormBean().getDataBeanArray(SJI_CSV_LIST).getCount() + 2;
		String strCnt = Integer.toString(cnt);

		return join(JDKStrConst.COMMA, 
				dqot(RECORD_TRAILER_SJI), 
				dqot(strCnt));
	}

	/**
	 * 移動結果CSVボタンを処理します。
	 * <br>
	 * @return 成否
	 * @throws Exception 例外
	 */
	public boolean outputCsvIdoKekka() throws Exception
	{
		record_count = 0;
		String fileData = "";
		String lotNo = "";
		StringBuffer fileName = new StringBuffer();

		// 棚移動ロット番号を取得
		lotNo = getData(this, KEY_SHELF_MOVE_LOT_NO);

		// サービスの呼び出しを行う
		putServiceDKSV0093();

		// ファイル名の作成を行う eo_tana4_TXXXXXXXXX_yyyyMMddhhmmss.csv
		fileName.append(CSV_FILE_NAME_IDO);
		fileName.append(lotNo);
		fileName.append("_");
		fileName.append(JCCWebCommon.getSysDateTime());
		fileName.append(FILE_CSV);
		fileData = buildFileIdo(lotNo);

		fileData = join(JDKStrConst.LINE_SEPARATOR,
						fileData,
						buildTrailerRecordIdo());

		// ダウンロード
		JCCWebCommon.setTempDownloadFile(this, fileData.getBytes(JDKStrConst.CHAR_SET_WIN31J), fileName.toString());
		getServiceFormBean().getDataBeanArray(CSV_LIST).clearArray();

		return true;
	}

	/**
	 * 棚移動結果データファイルを生成します。
	 * @param lotNo 棚移動ロット番号
	 * @return 棚移動結果データファイル
	 */
	private String buildFileIdo(String lotNo)
	{
		X31SDataBeanAccessArray datas = getServiceFormBean().getDataBeanArray(CSV_LIST);

		// 指定方法を取得
		String shiteicd = "";
		if (0 < datas.getCount())
		{
			shiteicd = getData(datas.getDataBean(0), SHITEI_WAY_05);
		}

		StringBuffer bodyRecords = new StringBuffer();
		String mvNo = "";
		for (int i = 0; i < datas.getCount(); i++)
		{
			// 初回
			if (i == 0)
			{
				mvNo = getData(datas.getDataBean(i), MOVE_NO_05);
			}

			if (bodyRecords.length() > 0)
			{
				bodyRecords.append(JDKStrConst.LINE_SEPARATOR);
			}

			// 製番指定の場合ヘッダ部を毎回付与
			if (MODEL_NO_ORDER.equals(shiteicd))
			{
				bodyRecords.append(buildHeaderRecordIdo(lotNo, i));
				bodyRecords.append(JDKStrConst.LINE_SEPARATOR);
			}
			else
			{
				// 数量指定の場合
				// 初回の場合
				if (0 == i)
				{
					bodyRecords.append(buildHeaderRecordIdo(lotNo, i));
					bodyRecords.append(JDKStrConst.LINE_SEPARATOR);
				}
				// 数量指定の場合予備機器配送番号が同じでない場合ヘッダ部を付与
				if (i + 1 <= datas.getCount())
				{
					if (!mvNo.equals(getData(datas.getDataBean(i), MOVE_NO_05)))
					{
						bodyRecords.append(buildHeaderRecordIdo(lotNo, i));
						bodyRecords.append(JDKStrConst.LINE_SEPARATOR);
					}
				}
				// 最終行は前行と予備機器配送番号が異なる場合ヘッダ部を付与
				if (1 <= i && i + 1 == datas.getCount())
				{
					if (!mvNo.equals(getData(datas.getDataBean(i - 1), MOVE_NO_05)))
					{
						bodyRecords.append(buildHeaderRecordIdo(lotNo, i));
						bodyRecords.append(JDKStrConst.LINE_SEPARATOR);
					}
				}

				// 予備機器配送番号が異なる場合
				if (!mvNo.equals(getData(datas.getDataBean(i), MOVE_NO_05)))
				{
					mvNo = getData(datas.getDataBean(i), MOVE_NO_05);
				}

			}
			bodyRecords.append(buildDataRecordIdo(datas.getDataBean(i), lotNo));
			record_count++;
		}

		String file = bodyRecords.toString();
		DEBUG_LOG.debug(String.format("ファイル内容：%s", file));

		return file;
	}

	/**
	 * 移動結果データファイルのヘッダ部を生成します。
	 * @param lotNo 棚移動ロット番号
	 * @param rowNo データ行番号
	 * @return ヘッダレコード
	 */
	private String buildHeaderRecordIdo(String lotNo, int rowNo)
	{
		X31SDataBeanAccessArray datas = getServiceFormBean().getDataBeanArray(CSV_LIST);
		X31SDataBeanAccess resultData = datas.getDataBean(rowNo);

		// 移動元コード
		String mtCd = getFirstValiables(resultData, MV_MT_SOKO_CD_05, MV_MT_KOJI_CD_05, MV_MT_OFFICE_CD_05);
		String mdlNo = getFirstValiables(resultData, TKKIKI_MDL_CD_05, TKKIKI_SETHIN_MDL_CD_05, HUZOKUHIN_MDL_CD_05);

		// 製造番号、指示数、移動数
		String seizoNo = "";
		String sjiNo = "";
		String idoNo = "";
		String shiteiCd = getData(resultData, SHITEI_WAY_05);
		// 製番指定の場合
		if (!JDKCommonUtil.isNull(shiteiCd) && MODEL_NO_ORDER.equals(shiteiCd))
		{
			String nmlSeizoNo = getData(resultData, KIKI_SEIZO_NO_05);
			String setSeizoNo = getData(resultData, TKKIKI_SETHIN_SEIZO_NO_05);
			if (!JDKCommonUtil.isNull(nmlSeizoNo))
			{
				seizoNo = nmlSeizoNo;
			}
			else if (!JDKCommonUtil.isNull(setSeizoNo))
			{
				seizoNo = setSeizoNo;
			}
			sjiNo = "1";
			idoNo = "1";
		}
		// 数量指定の場合
		else
		{
			seizoNo = "";
			sjiNo = getData(resultData, SJI_CNT_05);

			// 移動数計算（予備機器配送番号が同じ機器の件数）
			int idoCnt = 0;
			String mvNo = getData(resultData, MOVE_NO_05);
			for (int i = 0; i < datas.getCount(); i++)
			{
				X31SDataBeanAccess data = datas.getDataBean(i);
				
				if (mvNo.equals(getData(data, MOVE_NO_05)))
				{
					idoCnt += 1;
				}
			}
			idoNo = Integer.toString(idoCnt);
		}

		record_count++;

		// 移動先コード
		String sokoSkCd = getData(resultData, MV_SK_SOKO_CD_05);
		String kojiSkCd = getData(resultData, MV_SK_KOJI_CD_05);
		String ofcSkCd = getData(resultData, MV_SK_OFFICE_CD_05);
		String skCd = "";
		if (!JDKCommonUtil.isNull(sokoSkCd))
		{
			skCd = sokoSkCd;
		}
		else if (!JDKCommonUtil.isNull(kojiSkCd))
		{
			skCd = kojiSkCd;
		}
		else if (!JDKCommonUtil.isNull(ofcSkCd))
		{
			skCd = ofcSkCd;
		}

		return join(JDKStrConst.COMMA, 
				dqot(RECORD_KIHON_IDO), 
				dqot(getData(resultData, SJI_YMD_05)), 
				dqot(lotNo), 
				dqot(mtCd), 
				dqot(getData(resultData, MV_MT_SHELF_CD_05)), 
				dqot(mdlNo), 
				dqot(seizoNo), 
				dqot(getData(resultData, GDS_STAT_CD_05)), 
				dqot(sjiNo), 
				dqot(skCd), 
				dqot(getData(resultData, MV_SK_SHELF_CD_05)), 
				dqot(idoNo));
	}

	/**
	 * 移動結果データファイルのデータ部を生成します。
	 * @param data 行データ
	 * @param lotNo 棚移動ロット番号
	 * @return データレコード
	 */
	private String buildDataRecordIdo(X31SDataBeanAccess data, String lotNo) 
	{
		// 型番号
		String nmlMdlNo = getData(data, TKKIKI_MDL_CD_05);			// 宅内機器型式コード
		String setMdlNo = getData(data, TKKIKI_SETHIN_MDL_CD_05);	// 宅内機器セット品型コード
		String fzkMdlNo = getData(data, HUZOKUHIN_MDL_CD_05);		// 付属品型式コード
		String mdlNo = "";
		// 宅内機器の場合
		if (!JDKCommonUtil.isNull(nmlMdlNo))
		{
			mdlNo = nmlMdlNo;
		}
		// セット品の場合
		else if (!JDKCommonUtil.isNull(setMdlNo))
		{
			mdlNo = setMdlNo;
		}
		// 付属品の場合
		else if (!JDKCommonUtil.isNull(fzkMdlNo))
		{
			mdlNo = fzkMdlNo;
		}

		// 製造番号
		String seizoNo = "";
		String nmlSeizoNo = getData(data, KIKI_SEIZO_NO_05);
		String setSeizoNo = getData(data, TKKIKI_SETHIN_SEIZO_NO_05);
		if (!JDKCommonUtil.isNull(nmlSeizoNo))
		{
			seizoNo = nmlSeizoNo;
		}
		else if (!JDKCommonUtil.isNull(setSeizoNo))
		{
			seizoNo = setSeizoNo;
		}

		// 移動数
		String idoNo = "1";

		return join(JDKStrConst.COMMA, 
				dqot(RECORD_SHOSAI_IDO), 
				dqot(getData(data, SJI_YMD_05)), 
				dqot(lotNo), 
				dqot(mdlNo), 
				dqot(seizoNo), 
				dqot(getData(data, GDS_STAT_CD_05)), 
				dqot(idoNo));
	}

	/**
	 * 移動結果データファイルのトレーラ部を生成します。
	 * @return トレーラレコード
	 */
	private String buildTrailerRecordIdo() 
	{
		record_count++;
		String strCnt = Integer.toString(record_count);
		return join(JDKStrConst.COMMA, 
				dqot(RECORD_TRAILER_IDO), 
				dqot(strCnt));
	}

	/**
	 * 登録確認ボタンを処理します。
	 * <br>
	 * @return 成否
	 * @throws Exception 例外
	 */
	public boolean confirmCreate() throws Exception
	{
		
		// サービスを使用して入力の妥当性をチェックする
		if (!putServiceDKSV0042(JPCModelConstant.FUNC_CD_2))
		{
			return true;
		}

		JCCWebCommon.clearPageLinkInfo(this, SCREEN_ID_DKW01103);
		if (!putServiceDKSV0039(SCREEN_ID_DKW01103, false))
		{
			return toSearchScreen();
		}

		setGamen();

		JCCWebCommon.setSearchCommand(this, L_PAG_FIX, SCREEN_ID_DKW01103);
		setNextScreen(SCREEN_ID_DKW01103, SCREEN_NAME_DKW01103);

		JCCWebCommon.setMessageInfo(this, EKB0370__I, new String [] {MSG_STOCK});

		return true;
	}

	/**
	 * データ読込ボタンを処理します。
	 * <br>
	 * @return 成否
	 */
	@SuppressWarnings("unchecked")
	public boolean showDataLoad()
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		HashMap<String, Object> aMap = new HashMap<String, Object>();

		// 基本情報一覧を設定
		ArrayList<HashMap> kihonList = new ArrayList<HashMap>();
		X31SDataBeanAccessArray dbaaKihonList = bean.getDataBeanArray(KIHON_LIST);
		X31SDataBeanAccess dbaKihonList = dbaaKihonList.getDataBean(0);
		HashMap<String, String> kihonMap = new HashMap<String, String>();

		String mvMtCd = getFirstValiables(dbaKihonList, MV_MT_SOKO_CD_01, MV_MT_KOJI_CD_01, MV_MT_OFFICE_CD_01);

		kihonMap.put(DKW01105SFConst.MV_MT_CD_01, mvMtCd);
		kihonMap.put(DKW01105SFConst.SHELF_MOVE_LOT_NO_01, getData(bean, KEY_SHELF_MOVE_LOT_NO));
		kihonMap.put(DKW01105SFConst.SJI_YMD_01, getData(dbaKihonList, SJI_YMD_01));
		kihonList.add(kihonMap);

		// 出荷詳細一覧（全件）を設定
		ArrayList<HashMap> shosaiList = new ArrayList<HashMap>();
		X31SDataBeanAccessArray dbaaShosaiList = bean.getDataBeanArray(ALL_LIST);
		for (int i = 0; i < dbaaShosaiList.getCount(); i++)
		{
			X31SDataBeanAccess dbaShosaiList = dbaaShosaiList.getDataBean(i);
			HashMap<String, String> shosaiMap = new HashMap<String, String>();

			String mdlNo = getFirstValiables(dbaShosaiList, L_TKKIKI_MDL_CD_02, L_TKKIKI_SETHIN_MDL_CD_02, L_HUZOKUHIN_MDL_CD_02);

			String seizoNo = "";
			if (MODEL_NO_ORDER.equals(getOrderKind()))
			{
				seizoNo = getFirstValiables(dbaShosaiList, L_KIKI_SEIZO_NO_02, L_TKKIKI_SETHIN_SEIZO_NO_02);
			}

			shosaiMap.put(DKW01105SFConst.L_MDL_NO_02, mdlNo);
			shosaiMap.put(DKW01105SFConst.L_SEIZO_NO_02, seizoNo);
			shosaiList.add(shosaiMap);
		}

		paramMap.put(DKW01105SFConst.SHITEI_WAY_CD, getData(dbaKihonList, SHITEI_WAY_CD_01));
		paramMap.put(DKW01105SFConst.KIHON_LIST, kihonList);
		paramMap.put(DKW01105SFConst.SHOSAI_LIST, shosaiList);

		// 画面情報を設定
		JCCWebCommon.setScreenInfo(this, JDKScreenConst.SCREEN_ID_DKW01105 + "0PJP", paramMap);

		// 画面情報を設定
		JCCWebCommon.setScreenInfo(this, JDKScreenConst.SCREEN_ID_DKW01102 + "0PJP", aMap);

		// 戻り先画面IDを設定 
		JCCWebCommon.setScreenId(this, JDKScreenConst.SCREEN_ID_DKW01105, JDKScreenConst.SCREEN_ID_DKW01102);

		this.setNextScreen(JDKScreenConst.SCREEN_ID_DKW01105, JDKScreenConst.SCREEN_NAME_DKW01105);

		return true;
	}

	/**
	 * 反映処理。
	 * <br>
	 * @return 成否
	 * @throws Exception 例外
	 */
	public boolean reflect() throws Exception
	{
		this.setTkniUpdInfo();
		
		if (!putServiceDKSV0039(SCREEN_ID_DKW01102, true, true))
		{
			return toSearchScreen();
		}
		
		this.setNextScreen(JDKScreenConst.SCREEN_ID_DKW01102, JDKScreenConst.SCREEN_NAME_DKW01102);
		
		if (innerRefrect())
		{
			buttonControl(false, false, true, false);
		}
		else
		{
			buttonControl(true, false, false, false);
		}
		
		return true;
	}
	
	
	/**
	 * 反映処理
	 * @return
	 */
	private boolean innerRefrect() throws Exception
	{
		JCCWebCommon.getScreenInfo(this);
		
		// 画面の一覧とファイルを突き合わせチェックを行う
		// 将来的には複数のファイルをアップロードする改修があり得る。
		// そのため、アップロード画面では数量の突き合わせチェックを行うことができないのでここで行う
		// エラー検出数について
		// 2011年現在は出荷登録を分割して行うことができないため、１レコードたりとも不整合があってはいけない。
		detectDiffers();


		// 画面の表示設定を行う
		setGamen();
		
		if (!isAllListGreen())
		{
			JCCWebCommon.setMessageInfo(this, EKB2080_KW);
			// 当処理でエラーありと判断された場合は、前回の情報が残っている為、出荷完了データファイル情報をクリアしておく
			X31SDataBeanAccess bean = super.getServiceFormBean();
			X31SDataBeanAccessArray shFinData = bean.getDataBeanArray(DKW01102SFConst.SHK_FIN_DATA_FILE);
			shFinData.clearArray();
			return false;
		}
		
		return true;
	}
	
	
	/**
	 * 全件一覧がすべて出荷対象となっているかどうかをチェックする
	 * @return 
	 */
	private boolean isAllListGreen()
	{
		X31SDataBeanAccessArray list = getServiceFormBean().getDataBeanArray(ALL_LIST);
		for (int i = 0;i < list.getCount(); i++)
		{
			X31SDataBeanAccess data = list.getDataBean(i);
			if (!JDKWebCommon.getDataB(data, L_MV_TARGET_02))
			{
				return false;
			}
		}
		return true;
	}

	/**
	 * 相違チェック処理。
	 * <br>
	 * @return 成否
	 * @throws Exception 例外
	 */
	private void detectDiffers() throws Exception
	{
		String shiteiCd = getOrderKind();

		if (QUANTITY_ORDER.equals(shiteiCd))
		{
			differenceCheckForQuantity();
		}
		else
		{
			differenceCheckForProductNo();
		}
	}
	
	
	/**
	 * 明細データの１件目から指定方法（製番、数量指定）を取得します。
	 */
	private String getOrderKind() 
	{
		X31SDataBeanAccess kbean = getServiceFormBean().getDataBeanArray(KIHON_LIST).getDataBean(0);
		return getData(kbean, SHITEI_WAY_CD_01);
	}
	
	/**
	 * アップロードされたファイル情報を取得します。
	 * トレーラーレコードは不要なので取得しない
	 * @return
	 */
	private List<String []> getUpdatedFileLinesWithoutTrailer()
	{
		List<String[]> lines = new ArrayList<String[]>();
		
		for (String line : getData(this, DKW01102SFConst.EFILE).split(JDKStrConst.LINE_SEPARATOR))
		{
			String [] columns = line.replaceAll("\"", "").split(",");
			if (TRAILER_CODE.equals(columns[0]))
			{
				continue;
			}
			lines.add(columns);
		}
		
		return lines;
	}
	

	/**
	 * 製番指定のレコードの突き合わせチェックを行います。
	 */
	private void differenceCheckForProductNo()
	{
		X31SDataBeanAccessArray allList =  getServiceFormBean().getDataBeanArray(ALL_LIST);
		List<String []> lines = getUpdatedFileLinesWithoutTrailer();
		
		for (String [] columns : lines)
		{
			// 画面のレコード件数分以下の処理を繰り返し行う
			for (int j = 0; j < allList.getCount(); j++)
			{
				X31SDataBeanAccess abean = allList.getDataBean(j);
				
				String shelfMvNo = getData(abean, SHELF_MOVE_LOT_NO_KIKI_SEQ_02);
				String mdlNo = getFirstValiables(abean, L_TKKIKI_MDL_CD_02, L_TKKIKI_SETHIN_MDL_CD_02, L_HUZOKUHIN_MDL_CD_02);
				String seizoNo = getFirstValiables(abean, L_KIKI_SEIZO_NO_02, L_TKKIKI_SETHIN_SEIZO_NO_02);
				
				setData(abean, mdlNo, L_MDL_NO_02);
				setData(abean, seizoNo, L_SEIZO_NO_02);
				
				// DKIFE004の「棚移動番号」「型番号」「製造番号」
				if (shelfMvNo.equals(columns[COL_ID]) && mdlNo.equals(columns[COL_MODEL_NO]) && seizoNo.equals(columns[COL_SEIZO_NO]))
				{
					String sjiCnt = getData(abean, L_SJI_CNT_02);
					setData(abean, columns[COL_QUANTITY], L_MV_CNT_02);
					setData(abean, isShiped(sjiCnt, columns[COL_QUANTITY]), L_MV_TARGET_02);
					break;
				}
			}
		}
	}
	
	
	/**
	 * 数量指定のレコードの突き合わせチェックを行います。
	 */
	private void differenceCheckForQuantity()
	{
		X31SDataBeanAccessArray allList =  getServiceFormBean().getDataBeanArray(ALL_LIST);
		List<String []> lines = getUpdatedFileLinesWithoutTrailer();
		
		// 型番ごとに出荷数量のサマリを算出する
		HashMap<String, ModelQuantity> shipedAmontByModelNo = new HashMap<String, ModelQuantity>();
		for (String [] columns : lines)
		{
			String key = columns[COL_MODEL_NO];
			ModelQuantity quantity = shipedAmontByModelNo.get(key);
			if (quantity == null)
			{
				quantity = new ModelQuantity (columns[COL_QUANTITY], columns[COL_SEIZO_NO]);
				shipedAmontByModelNo.put(key, quantity);
			}
			else
			{
				quantity.add(columns[COL_QUANTITY], columns[COL_SEIZO_NO]);
			}
		}

		// 全指示一覧に対して、出荷数量や製番などを反映していく
		for (String modelNo : shipedAmontByModelNo.keySet())
		{
			for (int i = 0; i < allList.getCount(); i++)
			{
				X31SDataBeanAccess data = allList.getDataBean(i);
				String modelNoInAllList = getFirstValiables(data, L_TKKIKI_MDL_CD_02, L_TKKIKI_SETHIN_MDL_CD_02, L_HUZOKUHIN_MDL_CD_02);
				
				if (!modelNo.equals(modelNoInAllList))
				{
					continue;
				}
				
				ModelQuantity modelQuantity = shipedAmontByModelNo.get(modelNo);
				int cnt = modelQuantity.quantity;
				setData(data, Integer.toString(modelQuantity.quantity), L_MV_CNT_02);
				setData(data,
						isShiped(getData(data, L_SJI_CNT_02),
										Integer.toString(modelQuantity.quantity)),
						L_MV_TARGET_02);
				
				for (String productNo : modelQuantity.productNos)
				{
					if(JDKCommonUtil.isNull(productNo))
					{
						for(int j = 0; j < cnt; j++){
							data.sendMessageString(L_SEIZO_NO_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, productNo);
						}
					}
					else
					{
						data.sendMessageString(L_SEIZO_NO_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, productNo);
					}
				}
				
				break;
			}
		}
	}
	
	
	/**
	 * 指示数量と出荷数量を比較し、出荷済みであるかどうかを判定する。
	 * 2011年現在では指示内容と出荷完了ファイルの内容が一致している必要があるため完全一致であること。
	 * しかし将来的には複数回に分けて出荷完了登録できるようになるかもしれない。
	 * @param orderQuantity 指示数量
	 * @param shipedQuantity 出荷数量
	 * @return 出荷完了したかどうか
	 */
	private boolean isShiped(String orderQuantity, String shipedQuantity)
	{
		return orderQuantity.equals(shipedQuantity);
	}
	
	
	/**
	 * 一覧中の製品番号を返します。
	 * @return 型番号
	 */
	private String getFirstValiables(X31SDataBeanAccess lineData, String...keies)
	{
		for (String key : keies)
		{
			String value = getData(lineData, key);
			if (!JDKCommonUtil.isNull(value))
			{
				return value;
			}
		}
		return "";

	}

	/**
	 * 確定ボタンを処理します。
	 * <br>
	 * @return 成否
	 * @throws Exception 例外
	 */
	public boolean fix() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		// ページングキーを設定
		X31SDataBeanAccessArray shosaiList = serviceFormBean.getDataBeanArray(SHOSAI_LIST);
		int idx = Integer.parseInt(JDKWebCommon.getData(serviceFormBean, ROW_NO));
		X31SDataBeanAccess subbean = shosaiList.getDataBean(idx);
		setData(this, getData(subbean, L_SHELF_MV_NO_02), PAGING_KEY);
		
		// 完了サービスの呼び出しを行う（チェック＆更新モード）
		if (!putServiceDKSV0042(JPCModelConstant.FUNC_CD_1))
		{
			return true;
		}
		
		JCCWebCommon.clearPageLinkInfo(this, SCREEN_ID_DKW01104);
		if (!putServiceDKSV0039(SCREEN_ID_DKW01104, false))
		{
			return toSearchScreen();
		}

		setGamen();
		
		// 検索のコマンドIDを設定する。
		JCCWebCommon.setSearchCommand(this, L_PAG_FIN, SCREEN_ID_DKW01104);
		setNextScreen(SCREEN_ID_DKW01104, SCREEN_NAME_DKW01104);

		// 完了メッセージ表示
		JCCWebCommon.setMessageInfo(this, EKB0380__I, new String [] {MSG_STOCK});

		//セッション情報のクリア
		JCCWebCommon.removeScreenInfo(this, SESSION_KEY_TK_CHECK);
		
		return true;
	}

	/**
	 * 完了ボタンを処理します。
	 * <br>
	 * @return 成否
	 * @throws Exception 例外
	 */
	public boolean complete() throws Exception
	{
		init();
		buttonControl(false, QUANTITY_ORDER.equals(getOrderKind()), false, true);
		return true;
	}

	/**
	 * 画面の表示設定を行います。
	 * <br>
	 * @param serviceFormBean 設定する画面のServiceFormBean
	 * @throws UnsupportedEncodingException 例外
	 */
	private void setGamen() throws UnsupportedEncodingException
	{
		// 基本情報部の設定
		X31SDataBeanAccess sbean = getServiceFormBean().getDataBeanArray(KIHON_LIST).getDataBean(0);

		// 移動元
		String moveFrom = getFirstValiables(sbean, MV_MT_SOKO_NM_01, MV_MT_KOJI_NM_01, MV_MT_OFFICE_NM_01);
		setData(sbean, moveFrom, MV_MT_NM_01);

		// 移動先
		String moveTo = getFirstValiables(sbean, MV_SK_SOKO_NM_01, MV_SK_KOJI_NM_01, MV_SK_OFFICE_NM_01);
		setData(sbean, moveTo, MV_SK_NM_01);

		// 倉庫棚移動よりデータ取得時のみ出荷先を設定
		setData(sbean, moveTo, SHKA_SK_01);

		// 明細部の設定
		setList();

	}

	/**
	 * リストの表示設定を行います。
	 * <br>
	 * @param paramBean 設定する一覧のBean情報
	 * @param serviceFormBean 設定する画面のServiceFormBean
	 * @throws UnsupportedEncodingException 例外
	 */
	private void setList() throws UnsupportedEncodingException
	{
		X31SDataBeanAccessArray shosaiList = getServiceFormBean().getDataBeanArray(SHOSAI_LIST);

		for (int i = 0; i < shosaiList.getCount(); i++)
		{
			X31SDataBeanAccess subbean = shosaiList.getDataBean(i);

			setData(subbean, (i % 2) == 1 ? "even" : "odd", L_COLOR_02);
			setData(subbean, Integer.toString(i + 1), L_NO_02);

			// 型番号、商品名の設定
			String mdlNo = getFirstValiables(subbean, L_TKKIKI_MDL_CD_02, L_TKKIKI_SETHIN_MDL_CD_02, L_HUZOKUHIN_MDL_CD_02);
			String shohinNm = getFirstValiables(subbean, L_TKKIKI_MDL_NM_02, L_TKKIKI_SETHIN_MDL_NM_02, L_HUZOKUHIN_MDL_NM_02);
			setData(subbean, mdlNo, L_MDL_NO_02);

			// 商品名 20桁
			setData(subbean, JDKWebCommon.substr(shohinNm, 0, 20), L_SHOHIN_NM_02);
			setData(subbean, shohinNm, L_SHOHIN_NM_DISP_02);

			boolean isOrderByModelCode = MODEL_NO_ORDER.equals(getOrderKind());
			
			String seizoNo = isOrderByModelCode ? getFirstValiables(subbean, L_KIKI_SEIZO_NO_02, L_TKKIKI_SETHIN_SEIZO_NO_02) : "";
			setData(subbean, seizoNo, L_SEIZO_NO_02);
			
			String riyu = getData(subbean, isOrderByModelCode ? L_ARI_MV_RSN_02 : L_NASI_MV_RSN_02);
			setData(subbean, riyu, L_MV_RSN_02);
			
			String sjiCnt = getData(subbean, L_SJI_CNT_02);
			setData(subbean, sjiCnt, L_SJI_CNT_02);
			
			String biko = getData(subbean, isOrderByModelCode ? L_ARI_BIKO_02 : L_NASI_BIKO_02);
			setData(subbean, JDKWebCommon.substr(biko, 0, 10), L_BIKO_02);
			setData(subbean, biko, L_BIKO_DISP_02);
			
			X31SDataBeanAccess beanInAllList = pickFromAllListHavingIdIs(subbean);
			if (beanInAllList != null)
			{
				setData(subbean, getData(beanInAllList, L_MV_CNT_02), L_MV_CNT_02);
				setData(subbean, getDataB(beanInAllList, L_MV_TARGET_02), L_MV_TARGET_02);
			}
			else
			{
				setData(subbean, "0", L_MV_CNT_02);
				setData(subbean, false, L_MV_TARGET_02);
			}
		}
	}
	
	
	/**
	 * 全リストの中から指定のＩＤを持つデータを取得します。
	 * @param id ＩＤ
	 * @return データ
	 */
	private X31SDataBeanAccess pickFromAllListHavingIdIs(X31SDataBeanAccess bean)
	{
		X31SDataBeanAccessArray allList = getServiceFormBean().getDataBeanArray(ALL_LIST);
		for (int i = 0 ;i < allList.getCount();i++)
		{
			X31SDataBeanAccess data = allList.getDataBean(i);
			
			if (equals(bean, data))
			{
				return data;
			}
		}
		
		return null;
	}
	
	/**
	 * 両データのキーが一致するかを判定します。
	 * @param src 調査対象
	 * @param dest 判定対象
	 * @return キーが同一である：ture 同一でない:false
	 */
	private boolean equals (X31SDataBeanAccess src, X31SDataBeanAccess dest)
	{
		if (QUANTITY_ORDER.equals(getOrderKind()))
		{
			return getData(src, L_SHELF_MV_NO_02).equals(getData(dest, L_SHELF_MV_NO_02));
		}
		else
		{
			return getData(src, L_MDL_NO_02).equals(getData(dest, L_MDL_NO_02))
					&& getData(src, L_SEIZO_NO_02).equals(getData(dest, L_SEIZO_NO_02));
		}
	}

	/**
	 * サービス（DKSV0039）の呼び出しを行います。
	 * <br>
	 * @param sFormBean サービスフォームビーン
	 * @param screenId 画面ID
	 * @param transBack 確認画面戻るボタン押下による遷移:true 以外:false
	 * @return 成否
	 * @throws Exception データベースアクセスエラーが発生した場合
	 */
	private boolean putServiceDKSV0039(String screenId, boolean transBack) throws Exception
	{
		return putServiceDKSV0039(screenId, transBack, false);
	}
	
	
	/**
	 * サービス（DKSV0039）の呼び出しを行います。
	 * <br>
	 * @param sFormBean サービスフォームビーン
	 * @param screenId 画面ID
	 * @param transBack 確認画面戻るボタン押下による遷移:true 以外:false
	 * @return 成否
	 * @throws Exception データベースアクセスエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	private boolean putServiceDKSV0039(String screenId, boolean transBack, boolean updateAllList) throws Exception
	{
		X31SDataBeanAccess[] paramBean = {getServiceFormBean()};
		getServiceFormBean().getDataBeanArray(SHOSAI_LIST).clearArray();

		// ユースケースID格納用マップを生成
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "DKSV0039");

		// マッピングクラスのインスタンスを生成
		DKSV0039_DKSV0039OPDBMapper mapper = new DKSV0039_DKSV0039OPDBMapper();

		HashMap<String, String> dataMap = new HashMap<String, String>();

		mapper.setDKSV003901SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setDKSV003902SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setDKSV003903SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		JCCWebCommon.upmapperPageLinkInfo(this, "0", "DKSV003902SC", dataMap, screenId);

		HashMap outputMap = new HashMap();

		invokeService(paramMap, dataMap, outputMap);

		// データ未取得時
		HashMap<String, Object> map = (HashMap<String, Object>)outputMap.get("DKSV003901SC");
		int cnt = ((ArrayList)map.get("EDK0111B028CBSMsg1List")).size();
		if (0 == cnt)
		{
			return false;
		}

		mapper.getDKSV003901SC(paramBean, outputMap);
		mapper.getDKSV003902SC(paramBean, outputMap);
		if (updateAllList)
		{
			getServiceFormBean().getDataBeanArray(ALL_LIST).clearArray();
			mapper.getDKSV003903SC(paramBean, outputMap);
		}

		// ページング情報の設定
		JCCWebCommon.downmapperPageLinkInfo(this, "DKSV003902SC", outputMap, screenId);
		
		return true;
	}

	/**
	 * サービス（DKSV0042）の呼び出しを行います。
	 * <br>
	 * @param sFormBean サービスフォームビーン
	 * @param func_code 機能コード
	 * @return 成否
	 * @throws Exception データベースアクセスエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	private boolean putServiceDKSV0042(String func_code) throws Exception
	{
		X31SDataBeanAccess[] paramBean = {getServiceFormBean()};

		// ユースケースID格納用マップを生成
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "DKSV0042");

		// マッピングクラスのインスタンスを生成
		DKSV0042_DKSV0042OPDBMapper mapper = new DKSV0042_DKSV0042OPDBMapper();

		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// 倉庫棚移動結果コード 固定値：1（OK）
		setData(this, "1", SOKODNA_MOVE_RSLT_CD);
		// 倉庫棚移動結果メモ 固定値：ブランク
		setData(this, "", SOKODNA_MOVE_RSLT_MEMO);

		// 倉庫棚機器移動
		mapper.setDKSV004201SC(paramBean, dataMap, func_code);
		// 倉庫棚移動内訳棚移動完了
		mapper.setDKSV004202SC(paramBean, dataMap, func_code);
		// 製番指定棚移動完了
		mapper.setDKSV004203SC(paramBean, dataMap, func_code);
		
		// 予備機器出荷完了
		mapper.setDKSV004204SC(paramBean, dataMap, func_code);
		// 予備機器配送内訳出荷完了
		mapper.setDKSV004205SC(paramBean, dataMap, func_code);
		// 製番指定出荷完了
		mapper.setDKSV004206SC(paramBean, dataMap, func_code);
		// 宅内管理情報更新
		mapper.setDKSV004207SC(paramBean, dataMap, func_code);
		
		// -------------------------------------------------------------------------------------------------------------------------------------------------------
		// 以下の処理は宅内システムとのデータ不整合の再現待ちのチェック処理(OM-2013-0005003)
		//   →製造有機器リスト(EZM0411A010)と宅内管理情報更新(setDKSV004207SC)のリストの宅内機器型式コードを突合せ確認する
		
		// セッションから製造番号有の宅内機器型式コードリストを取り出す
		HashMap<String, Object> sessionDataMap = JCCWebCommon.getScreenInfo(this, SESSION_KEY_TK_CHECK);
		List<String> sessionTKModelList = (List<String>) sessionDataMap.get("宅内機器型式コードリスト");
		
		// "kiki_list"には複数個を移動させる場合、宅内機器型式コードが同じものが複数存在する為、チェック用のリストを作る
		Object parentMap = dataMap.get("DKSV004207SC");
		ArrayList list = (ArrayList)((HashMap) parentMap).get("kiki_list");
		ArrayList checkList = new ArrayList();
		for(int i = 0; i < list.size(); i++)
		{
			HashMap childMap = (HashMap) list.get(i);
			String tkMdlCd = (String) childMap.get("key_tk_mdl_cd");
			if (!checkList.contains(tkMdlCd))
			{
				checkList.add(tkMdlCd);
			}
		}
		
		// 突合せチェック
		if (sessionTKModelList.size() == checkList.size())
		{
			for(int i = 0; i < sessionTKModelList.size(); i++)
			{
				boolean checkFlg = false;
				for(int j = 0; j < checkList.size(); j++)
				{
					if (sessionTKModelList.get(i).equals(checkList.get(j)))
					{
						checkFlg = true;
						break;
					}
				}
				if (!checkFlg)
				{
					// 製造番号有機器と判断されたが、宅内問合せ用のデータには存在しなかった場合、エラー
					JCCWebCommon.setMessageInfo(this, "EKB9750-KW", new String [] {"宅内連携チェック(内容)"});
					return false;
				}
			}
		}
		else
		{
			// 製造番号有機器と判断された件数と、宅内問合せ用のデータの件数が異なっていた場合、エラー
			JCCWebCommon.setMessageInfo(this, "EKB9750-KW", new String [] {"宅内連携チェック(件数)"});
			return false;
		}
		// -------------------------------------------------------------------------------------------------------------------------------------------------------
		
		// 結果格納用マップ
		Map outputMap = new HashMap();

		// 処理呼出
		invokeService(paramMap, dataMap, outputMap);

		return true;
	}

	/**
	 * サービス（DKSV0091）の呼び出しを行います。
	 * <br>
	 * @param sFormBean サービスフォームビーン
	 * @throws Exception データベースアクセスエラーが発生した場合
	 */
	private void putServiceDKSV0091() throws Exception
	{
		X31SDataBeanAccess[] paramBean = {getServiceFormBean()};

		HashMap<String, String> paramMap = new HashMap<String, String>();
		HashMap<String, String> dataMap = new HashMap<String, String>();
		HashMap<String, String> outputMap = new HashMap<String, String>();

		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "DKSV0091");

		DKSV0091_DKSV0091OPDBMapper mapper = new DKSV0091_DKSV0091OPDBMapper();
		mapper.setDKSV009101SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setDKSV009102SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		invokeService(paramMap, dataMap, outputMap);

		mapper.getDKSV009101SC(paramBean, outputMap);
		mapper.getDKSV009102SC(paramBean, outputMap);
	}

	/**
	 * サービス（DKSV0093）の呼び出しを行います。
	 * <br>
	 * @param sFormBean サービスフォームビーン
	 * @throws Exception データベースアクセスエラーが発生した場合
	 */
	private void putServiceDKSV0093() throws Exception
	{
		X31SDataBeanAccess[] paramBean = {getServiceFormBean()};

		HashMap<String, String> paramMap = new HashMap<String, String>();
		HashMap<String, String> dataMap = new HashMap<String, String>();
		HashMap<String, String> outputMap = new HashMap<String, String>();
		
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "DKSV0093");
		
		DKSV0093_DKSV0093OPDBMapper mapper = new DKSV0093_DKSV0093OPDBMapper();
		mapper.setDKSV009301SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		invokeService(paramMap, dataMap, outputMap);

		mapper.getDKSV009301SC(paramBean, outputMap);
	}

	/**
	 * 画面遷移先を設定します。
	 * @param nextScreenId 遷移先画面ＩＤ
	 * @param nextScreenName 遷移先画面名
	 */
	private void setNextScreen(String nextScreenId, String nextScreenName)
	{
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();

		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, 
											X31CWebConst.DATABEAN_SET_VALUE, nextScreenId);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, 
											X31CWebConst.DATABEAN_SET_VALUE, nextScreenName);

		DEBUG_LOG.debug(String.format("遷移先 CD：%s NM：%s", nextScreenId, nextScreenName));
	}
	
	/**
	 * 一覧画面へ遷移する
	 * @return 結果
	 */
	private boolean toSearchScreen()
	{
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0320_KW);

		setNextScreen(SCREEN_ID_DKW01101, JZMWebConst.BLANK);
		setTransferPageId(SCREEN_ID_DKW01101 + JZMWebConst.PJP);
		JCCWebCommon.setScreenId(this, SCREEN_ID_DKW01101, SCREEN_ID_DKW01102);

		return true;
	}

	/**
	 * 文字列をダブルクォーテッドする
	 * @param src 囲まれる文字列
	 * @return \"囲まれる文字列\"
	 */
	private String dqot(String src)
	{
		return String.format("\"%s\"", src);
	}
	
	
	
	/**
	 * 機器ごとの終了をカウントする
	 */
	class ModelQuantity
	{
		int quantity = 0;
		List<String> productNos = new ArrayList<String>();
		
		public ModelQuantity (String quantity, String productNo)
		{
			add(quantity, productNo);
		}
		
		public void add(String quantity, String productNo)
		{
			this.quantity += Integer.parseInt(quantity);
			productNos.add(productNo);
		}
	}
	
	
	/**
	 * ボタンの表示コントロール
	 * @param dataLoad データ読込ボタン
	 * @param detail 詳細ボタン
	 * @param confirm 確認ボタン
	 * @param csvDownload ダウンロードボタン
	 */
	private void buttonControl(boolean dataLoad, boolean detail, boolean confirm, boolean csvDownload)
	{
		setData(this, dataLoad, B_DATA_LOAD_FLG);
		setData(this, detail, B_CNT_DTL_FLG);
		setData(this, confirm, B_ADD_CFM_FLG);
		setData(this, csvDownload, B_MV_RSLT_CSV_DOWNLOAD_FLG);
	}
	
	/**
	 * ボタンの表示状態を保存する
	 * @param map 保存場所
	 */
	@SuppressWarnings("unchecked")
	private void storeButtonCondition(Map map)
	{
		for (String flag : new String [] {B_DATA_LOAD_FLG, B_CNT_DTL_FLG, B_ADD_CFM_FLG, B_MV_RSLT_CSV_DOWNLOAD_FLG})
		{
			map.put(flag, getDataB(this, flag));
		}
	}
	
	/**
	 * 宅内の更新情報を設定する
	 */
	private void setTkniUpdInfo()
	{
		
		JCCWebCommon.getScreenInfo(this);
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		X31SDataBeanAccessArray finData = bean.getDataBeanArray(DKW01102SFConst.SHK_FIN_DATA_FILE);
		// 出荷完了データ情報を取得
		X31SDataBeanAccessArray kikiData = bean.getDataBeanArray(DKW01102SFConst.TKKK_UPD_LIST);
		kikiData.clearArray();
		for(int i=0;i<finData.getCount();i++){
			X31SDataBeanAccess subbean = finData.getDataBean(i);
			
			String seizoNoUm = subbean.sendMessageString(DKW01102SFConst.SEIZO_NO_UM_06, X31CWebConst.DATABEAN_GET_VALUE);
			if(seizoNoUm.equals("0")){
				String cnt = subbean.sendMessageString(DKW01102SFConst.CNT_06, X31CWebConst.DATABEAN_GET_VALUE);
				for(int j=0;j<Integer.parseInt(cnt);j++){
					X31SDataBeanAccess kkbean = kikiData.addDataBean();
					kkbean.sendMessageString(DKW01102SFConst.KEY_MDL_CD_07, X31CWebConst.DATABEAN_SET_VALUE
							, subbean.sendMessageString(DKW01102SFConst.MDL_NO_06, X31CWebConst.DATABEAN_GET_VALUE));
					kkbean.sendMessageString(DKW01102SFConst.KEY_KK_SEIZO_NO_07, X31CWebConst.DATABEAN_SET_VALUE
							, subbean.sendMessageString(DKW01102SFConst.SEIZO_NO_06, X31CWebConst.DATABEAN_GET_VALUE));
					kkbean.sendMessageString(DKW01102SFConst.KEY_KIHON_UPD_DTTM_07, X31CWebConst.DATABEAN_SET_VALUE
							, subbean.sendMessageString(DKW01102SFConst.KIHON_UPD_DTTM_06, X31CWebConst.DATABEAN_GET_VALUE));
				}
			}else{
				X31SDataBeanAccess kkbean = kikiData.addDataBean();
				kkbean.sendMessageString(DKW01102SFConst.KEY_MDL_CD_07, X31CWebConst.DATABEAN_SET_VALUE
						, subbean.sendMessageString(DKW01102SFConst.MDL_NO_06, X31CWebConst.DATABEAN_GET_VALUE));
				kkbean.sendMessageString(DKW01102SFConst.KEY_KK_SEIZO_NO_07, X31CWebConst.DATABEAN_SET_VALUE
						, subbean.sendMessageString(DKW01102SFConst.SEIZO_NO_06, X31CWebConst.DATABEAN_GET_VALUE));
				kkbean.sendMessageString(DKW01102SFConst.KEY_KIHON_UPD_DTTM_07, X31CWebConst.DATABEAN_SET_VALUE
						, subbean.sendMessageString(DKW01102SFConst.KIHON_UPD_DTTM_06, X31CWebConst.DATABEAN_GET_VALUE));
			}

		}

	}
	
	
}
