/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatWCCtrlKariStcInfGet
*	ソースファイル名	：JBSbatWCCtrlKariStcInfGet.java
*	作成者				：富士通　
*	作成日				：2012年02月03日
*＜機能概要＞
*　制御_STB仮設置_情報取得部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/02/03   富士通		新規作成
*	v3.00.00	2012/05/01	 FJ)大山	【ANK-0315-00-00】宅内対応を実施
*	v3.01.00	2012/12/10	 FJ)水谷	【TAI-2012-0000138】対応を実施
*	v3.01.01	2012/12/18	 FJ)水谷	【IT1-2012-0002482】対応を実施
**	v5.00.00	2013/01/15	 FJ)松嶋	【IT1-2013-0000368】
*	v7.00.00	2014/02/22	 FJ)水谷	【ANK-1949-00-00】仮鍵開け開始年月日表示対応
*	v54.00.00	2021/08/12	GDC)オーヴィー	【ANK-4069-00-00】EOL対応(バッチ・DBサーバリプレース対応)
*
*********************************************************************/
package eo.business.service;

import java.util.HashMap;

import eo.business.common.JBSbatBusinessService;
//20140222 ADD ANK-1949-00-00 START
import eo.business.common.JCCBatCommon;
//20140222 ADD ANK-1949-00-00 END
import eo.business.common.JWCBatCommon;
import eo.business.util.file.JBSbatWCIFI001;
import eo.common.constant.JPCBatchMessageConstant;
import eo.common.constant.JWCStrConst;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.application.JBSbatBusinessError;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.file.JBSbatOutputFileUtil;
import eo.framework.util.JBSbatCheckUtil;
//20140222 ADD ANK-1949-00-00 START
import eo.business.util.table.JBSbatWC_T_WC_ORDER;
//20140222 ADD ANK-1949-00-00 END

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatWCCtrlKariStcInfGet extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(視聴制御ＨＵＬＦＴ送信実績)*/
	private static final String D_TBL_NAME_WC_T_WC_HULFT_SDJSK = "WC_T_WC_HULFT_SDJSK";

	/** SQL定義キー(WC_INSERT_001)*/
	private static final String WC_T_WC_HULFT_SDJSK_WC_INSERT_001 = "WC_INSERT_001";

	/** テーブルアクセスクラス(視聴制御ＨＵＬＦＴ送信実績)*/
	private JBSbatSQLAccess db_WC_T_WC_HULFT_SDJSK = null;

//20140222 ADD ANK-1949-00-00 START
	/** テーブル(視聴制御オーダ)*/
	private static final String D_TBL_NAME_WC_T_WC_ORDER = "WC_T_WC_ORDER";

	/** SQL定義キー(WC_SELECT_006)*/
	private static final String WC_T_WC_ORDER_WC_SELECT_006 = "WC_SELECT_006";

	/** テーブルアクセスクラス(視聴制御オーダ)*/
	private JBSbatSQLAccess db_WC_T_WC_ORDER = null;
//20140222 ADD ANK-1949-00-00 END
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** ログ出力用項目名 */
	private HashMap<String, String> messageMap = new HashMap<String, String>(24);

	/**
	 * 出力ファイル名
	 */
	private String str_outputFile = "";
	
	/**
	 * 入力ファイル名
	 */
	private String str_inputFile = "";

	/**
	 * ファイル出力件数
	 */
	int outputCount = 0;
	
	//20130115 ADD
	private static final String TK_KK_IDO_CD_NEWSTB_OPN = "02";
	//20130115 ADD
	
//20140222 ADD ANK-1949-00-00 START
	/**
	 * 手動リンク情報取得件数
	 */
	int linkCount = 0;
//20140222 ADD ANK-1949-00-00 END
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EWCB0010AI, 
				new String[]{"制御＿STB仮設置＿情報取得"});

		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		
		// DBアクセスクラスを生成します
		db_WC_T_WC_HULFT_SDJSK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_WC_T_WC_HULFT_SDJSK);
//20140222 ADD ANK-1949-00-00 START
		db_WC_T_WC_ORDER = new JBSbatSQLAccess(commonItem, D_TBL_NAME_WC_T_WC_ORDER);
//20140222 ADD ANK-1949-00-00 END
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		String freeItem = commonItem.getFreeItem();
		String[] strArray = freeItem.split(JWCStrConst.FREE_PARAM_DELM);
		
		// 出力ファイル名をフリー項目から取得
		this.str_inputFile = strArray[0];
		this.str_outputFile = strArray[1];
		
		this.logPrint.printDebugLog("*******************************************");
		this.logPrint.printDebugLog("入力ファイル名      =" + this.str_inputFile);
		this.logPrint.printDebugLog("出力ファイル名      =" + this.str_outputFile);
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
			// ダブルクォーテーション削除
			inMap.setMap(JWCBatCommon.deleteDblQuote(inMap.getMap()));
			
			// ログ出力用項目値設定Mapを設定
			messageMap = createMessageMap(inMap.getMap());
	
			// 入力データの単項目チェック
			//20130115 MOD
			//boolean rtn = isSingleCheckWCIFM001_INF1(inMap.getMap(), messageMap);
			boolean rtn = isSingleCheckWCIFI001_INF1(inMap.getMap(), messageMap);
			//20130115 MOD
			if(rtn == false)
			{
				throw new JBSbatBusinessError();
			}
	
			//20130115 MOD
			// 入力ファイルの項目を退避
//			String wctrl_req_trn_cd = (String)inMap.get(JBSbatWCIFM001.WCTRL_REQ_TRN_CD); 		// 依頼処理コード
//			String inmap_stb_taknkiki_model_cd = 
//								(String)inMap.get(JBSbatWCIFM001.STB_TAKNKIKI_MODEL_CD);	// 宅内機器型式コード
//			String inmap_stb_kiki_seizo_no = 
//								(String)inMap.get(JBSbatWCIFM001.STB_ID);				// 機器製造番号
//			String inmap_dgtia_grp_cd = 
//								(String)inMap.get(JBSbatWCIFM001.DGTIA_GRP);				// デジタルティアグループコード
//			this.logPrint.printDebugLog("*******************************************");
//			this.logPrint.printDebugLog("依頼処理コード      =" + wctrl_req_trn_cd);
//			this.logPrint.printDebugLog("宅内機器型式コード  =" + inmap_stb_taknkiki_model_cd);
//			this.logPrint.printDebugLog("機器製造番号        =" + inmap_stb_kiki_seizo_no);
//			this.logPrint.printDebugLog("ティアグループ      =" + inmap_dgtia_grp_cd);

			String wctrl_req_trn_cd = (String)inMap.get(JBSbatWCIFI001.WCTRL_REQ_TRN_CD); 		// 依頼処理コード
			String kojiak_no = (String)inMap.get(JBSbatWCIFI001.KOJIAK_NO); 					// 工事案件番号
			String svc_kei_no = (String)inMap.get(JBSbatWCIFI001.SVC_KEI_NO); 					// サービス契約番号
			String inmap_new_stb_taknkiki_model_cd = 
								(String)inMap.get(JBSbatWCIFI001.NEW_STB_TAKNKIKI_MODEL_CD);	// 新宅内機器型式コード
			String inmap_new_kk_seizo_no = 
								(String)inMap.get(JBSbatWCIFI001.NEW_KK_SEIZO_NO);				// 新機器製造番号
			String inmap_new_stb_id = 
								(String)inMap.get(JBSbatWCIFI001.NEW_STB_ID);					// 新STBID
			String inmap_old_stb_taknkiki_model_cd = 
								(String)inMap.get(JBSbatWCIFI001.OLD_STB_TAKNKIKI_MODEL_CD);	// 旧宅内機器型式コード
			String inmap_old_kk_seizo_no = 
								(String)inMap.get(JBSbatWCIFI001.OLD_KK_SEIZO_NO);				// 旧機器製造番号
			String inmap_old_stb_id = 
								(String)inMap.get(JBSbatWCIFI001.OLD_STB_ID);					// 旧STBID
			String inmap_tk_kk_ido_cd = (String)inMap.get(JBSbatWCIFI001.TK_KK_IDO_CD);			// 宅内機器異動コード
			String inmap_dgtia_grp_cd = (String)inMap.get(JBSbatWCIFI001.DGTIA_GRP);			// デジタルティアグループコード
	
			this.logPrint.printDebugLog("*******************************************");
			this.logPrint.printDebugLog("依頼処理コード      =" + wctrl_req_trn_cd);
			this.logPrint.printDebugLog("工事案件番号        =" + kojiak_no);
			this.logPrint.printDebugLog("サービス契約番号    =" + svc_kei_no);
			this.logPrint.printDebugLog("新宅内機器型式コード=" + inmap_new_stb_taknkiki_model_cd);
			this.logPrint.printDebugLog("新機器製造番号      =" + inmap_new_kk_seizo_no);
			this.logPrint.printDebugLog("新STBID             =" + inmap_new_stb_id);
			this.logPrint.printDebugLog("旧宅内機器型式コード=" + inmap_old_stb_taknkiki_model_cd);
			this.logPrint.printDebugLog("旧機器製造番号      =" + inmap_old_kk_seizo_no);
			this.logPrint.printDebugLog("旧STBID             =" + inmap_old_stb_id);
			this.logPrint.printDebugLog("宅内機器異動コード  =" + inmap_tk_kk_ido_cd);
			this.logPrint.printDebugLog("ティアグループコード=" + inmap_dgtia_grp_cd);
			//20130115 MOD
			
			// 宅内機器情報抽出送信ファイルのデータを設定する。
			JBSbatOutputFileUtil outpututil =  this.commonItem.getOutPutFile();
			// in項目から必要な値を取得する。
			JBSbatOutputItem  outputBean = new JBSbatOutputItem();
			// 出力ファイル設定メソッドを呼び出す。
			//20130115 MOD
			//JBSbatServiceInterfaceMap outmap = JWCBatCommon.setJBSbatWCIFE006param(commonItem, this.outputCount + 1, inmap_stb_taknkiki_model_cd, inmap_stb_kiki_seizo_no,"");
			//outmap.setOutFlg(true);
			JBSbatServiceInterfaceMap outmap = null;

//20140222 ADD ANK-1949-00-00 START
			if ( linkCount == 0 ) {
				// 前日分の手動リンク情報を取得
				outputBean = linkinf_get();
				this.linkCount++;
			}
//20140222 ADD ANK-1949-00-00 END

			if(!inmap_tk_kk_ido_cd.equals(TK_KK_IDO_CD_NEWSTB_OPN))
			{
				outmap = JWCBatCommon.setJBSbatWCIFE006param(commonItem, this.outputCount + 1, inmap_new_stb_taknkiki_model_cd, inmap_new_kk_seizo_no,"");
				outmap.setOutFlg(true);
			}
			else
			{
				outmap = JWCBatCommon.setJBSbatWCIFE006param(commonItem, this.outputCount + 1, inmap_new_stb_taknkiki_model_cd, inmap_new_kk_seizo_no,"");
				outmap.setOutFlg(true);
				outputBean.addOutMapList(outmap);
				this.outputCount++;
				outmap = JWCBatCommon.setJBSbatWCIFE006param(commonItem, this.outputCount + 1, inmap_old_stb_taknkiki_model_cd, inmap_old_kk_seizo_no,"");
				outmap.setOutFlg(true);
			}
			//20130115 MOD
			
			outputBean.addOutMapList(outmap);
			
			this.outputCount++;
			
			return outputBean;
			
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		
		if(this.outputCount != 0) {
/**
			// 視聴制御HULFT送信管理テーブルを登録する。
			String str_datetimestamp = JCCBatCommon.getSysDateTimeStamp();
	
			String str_seq_hulft_no = JBSbatOracleSeqUtil.getFormatedNextSeq(commonItem.getConnection() ,JWCStrConst.SEQ_WC_HULFT_SDJSK_NO , "",10);
			
			// HULFT送信実績の書き込みを行う。
			String[] paramList = new String[14];
			
			//視聴制御HULFT送信実績番号
			paramList[0] = str_seq_hulft_no;
			//HULFT送信年月日時分秒
			paramList[1] = JWCBatCommon.getTknFileTimeStamp(commonItem, this.str_outputFile) ;
			//送信ファイル名
			paramList[2] = this.str_outputFile;
			//連携ファイル名
			paramList[3] = this.str_inputFile;
			//継続処理ジョブＩＤ(制御＿ＳＴＢ仮設置）
			paramList[4] = JWCStrConst.KEIZKJOB_EOC070210J0;
			//ディレイド処理依頼番号
			paramList[5] = "";
			//宅内機器情報抽出ファイル名
			paramList[6] = "";
			//登録年月日時分秒
			paramList[7] = str_datetimestamp;
			//登録オペレータアカウント
			paramList[8] = super.commonItem.getBatchUserId();
			//更新年月日時分秒
			paramList[9] = str_datetimestamp;
			//更新オペレータアカウント
			paramList[10] = super.commonItem.getBatchUserId();
			//削除年月日時分秒
			paramList[11] = "";
			//削除オペレータアカウント
			paramList[12] = "";
			//無効フラグ
			paramList[13] = "0";
**/
		}
		String[] paramList = JWCBatCommon.createWC_T_WC_HULFT_SDJSK_WC_INSERT_001(commonItem, JWCBatCommon.getTknFileTimeStamp(commonItem, this.str_outputFile), this.str_outputFile, this.str_inputFile, JWCStrConst.KEIZKJOB_EOC070210J0, "", "");
		JWCBatCommon.executeWC_T_WC_HULFT_SDJSK_WC_INSERT_001(commonItem , paramList, db_WC_T_WC_HULFT_SDJSK);

		// ＦＴＰ転送共通部品を呼び出す
		super.commonItem.getOutPutFile().close();
		// ANK-4069-00-00 DEL START
		//JWCBatCommon.putFtp(commonItem, this.str_outputFile, JWCStrConst.FILEID_WCIFE006, this.outputCount);
		// ANK-4069-00-00 DEL END
			

		// DBアクセスクラスをクローズします
		db_WC_T_WC_HULFT_SDJSK.close();
//20140222 ADD ANK-1949-00-00 START
		db_WC_T_WC_ORDER.close();
//20140222 ADD ANK-1949-00-00 END
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EWCB0020AI, 
				new String[]{"制御＿STB仮設置＿情報取得"});
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 *入力情報（着工前ＳＴＢ鍵開け情報）の単項目チェックを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.単項目チェックを行います。<br>
	 * 
	 * 2.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		rsMap:(項目、値)を(key、value)として、データをrsMapに入れます
	 *		itemvalueMap:埋め込み文字の値をitemvalueMapに入れます。キーの値は、以下に説明します。
	 *			 TXT-WCIFM001-INF1.WCTRL_REQ_TRN_CD			着工前ＳＴＢ鍵開け情報.依頼処理コード
	 *			 TXT-WCIFM001-INF1.WCTRL_REQ_TRN_CD			着工前ＳＴＢ鍵開け情報.依頼処理コード
	 *			 TXT-WCIFM001-INF1.SVC_KEI_NO			着工前ＳＴＢ鍵開け情報.工事案件番号
	 *			 TXT-WCIFM001-INF1.SVC_KEI_NO			着工前ＳＴＢ鍵開け情報.工事案件番号
	 *			 TXT-WCIFM001-INF1.STB_TAKNKIKI_MODEL_CD			着工前ＳＴＢ鍵開け情報.宅内機器型式コード
	 *			 TXT-WCIFM001-INF1.STB_TAKNKIKI_MODEL_CD			着工前ＳＴＢ鍵開け情報.宅内機器型式コード
	 *			 TXT-WCIFM001-INF1.STB_ID			着工前ＳＴＢ鍵開け情報.機器製造番号
	 *			 TXT-WCIFM001-INF1.STB_ID			着工前ＳＴＢ鍵開け情報.機器製造番号
	 *			 TXT-WCIFM001-INF1.DLYD_FLG			着工前ＳＴＢ鍵開け情報.工事移動フラグ
	 *			 TXT-WCIFM001-INF1.DLYD_FLG			着工前ＳＴＢ鍵開け情報.工事移動フラグ
	 *			 TXT-WCIFM001-INF1.DGTIA_GRP			着工前ＳＴＢ鍵開け情報.ティアグループ
	 *			 TXT-WCIFM001-INF1.DGTIA_GRP			着工前ＳＴＢ鍵開け情報.ティアグループ
	 * </pre>
	 * <p>
	 * @param rsMap 入力データ（TXT又はDB）を格納されたHashMap。
	 * @param itemvalueMap エラーメッセージに関する項目値を格納されたHashMap。
	 * @return  boolean trueである場合、エラーがありません。falseである場合、エラーを発生しました。
	 */
	//20130115 MOD
//	private boolean isSingleCheckWCIFM001_INF1(HashMap rsMap, HashMap itemvalueMap)
//
//	{
//		// 単項目チェックを行います
//		String strValue = null;
//
//		// 依頼処理コード項目チェック
//		strValue = (String)rsMap.get("WCTRL_REQ_TRN_CD");
//		// 必須チェック
//		if(strValue == null || "".equals(strValue))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EWCB0070TW", new String[]{
//															"依頼処理コード"});
//			return false;
//		}
//		// 桁数チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "2"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EWCB0080TW", new String[]{
//															"依頼処理コード",
//															(String)itemvalueMap.get("TXT-WCIFM001-INF1.WCTRL_REQ_TRN_CD")});
//			return false;
//		}
//		// 属性チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EWCB0090TW", new String[]{
//															"依頼処理コード",
//															(String)itemvalueMap.get("TXT-WCIFM001-INF1.WCTRL_REQ_TRN_CD")});
//			return false;
//		}
//
//		// 工事案件番号項目チェック
//		//20130115 MOD
//		strValue = (String)rsMap.get("SVC_KEI_NO");
//		// 桁数チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "20"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EWCB0080TW", new String[]{
//															"工事案件番号",
//															(String)itemvalueMap.get("TXT-WCIFM001-INF1.SVC_KEI_NO")});
//			return false;
//		}
//		// 属性チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EWCB0090TW", new String[]{
//															"工事案件番号",
//															(String)itemvalueMap.get("TXT-WCIFM001-INF1.SVC_KEI_NO")});
//			return false;
//		}
//
//		// 宅内機器型式コード項目チェック
//		strValue = (String)rsMap.get("STB_TAKNKIKI_MODEL_CD");
//		// 必須チェック
//		if(strValue == null || "".equals(strValue))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EWCB0070TW", new String[]{
//															"宅内機器型式コード"});
//			return false;
//		}
//		// 桁数チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "20"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EWCB0080TW", new String[]{
//															"宅内機器型式コード",
//															(String)itemvalueMap.get("TXT-WCIFM001-INF1.STB_TAKNKIKI_MODEL_CD")});
//			return false;
//		}
//		// 属性チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji2"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EWCB0090TW", new String[]{
//															"宅内機器型式コード",
//															(String)itemvalueMap.get("TXT-WCIFM001-INF1.STB_TAKNKIKI_MODEL_CD")});
//			return false;
//		}
//
//		// 機器製造番号項目チェック
//		strValue = (String)rsMap.get("STB_ID");
//		// 必須チェック
//		if(strValue == null || "".equals(strValue))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EWCB0070TW", new String[]{
//															"機器製造番号"});
//			return false;
//		}
//		// 桁数チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "20"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EWCB0080TW", new String[]{
//															"機器製造番号",
//															(String)itemvalueMap.get("TXT-WCIFM001-INF1.STB_ID")});
//			return false;
//		}
//		// 属性チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji2"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EWCB0090TW", new String[]{
//															"機器製造番号",
//															(String)itemvalueMap.get("TXT-WCIFM001-INF1.STB_ID")});
//			return false;
//		}
//
//		// 工事移動フラグ項目チェック
//		strValue = (String)rsMap.get("DLYD_FLG");
//		// 桁数チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "2"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EWCB0080TW", new String[]{
//															"工事移動フラグ",
//															(String)itemvalueMap.get("TXT-WCIFM001-INF1.DLYD_FLG")});
//			return false;
//		}
//		// 属性チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EWCB0090TW", new String[]{
//															"工事移動フラグ",
//															(String)itemvalueMap.get("TXT-WCIFM001-INF1.DLYD_FLG")});
//			return false;
//		}
//
//		// ティアグループ項目チェック
//		strValue = (String)rsMap.get("DGTIA_GRP");
//		// 必須チェック
//		if(strValue == null || "".equals(strValue))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EWCB0070TW", new String[]{
//															"ティアグループ"});
//			return false;
//		}
//		// 桁数チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "3"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EWCB0080TW", new String[]{
//															"ティアグループ",
//															(String)itemvalueMap.get("TXT-WCIFM001-INF1.DGTIA_GRP")});
//			return false;
//		}
//		// 属性チェック
//		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
//		{
//			commonItem.getLogPrint().printBusinessErrorLog("EWCB0090TW", new String[]{
//															"ティアグループ",
//															(String)itemvalueMap.get("TXT-WCIFM001-INF1.DGTIA_GRP")});
//			return false;
//		}
//
//		return true;
//	}
	private boolean isSingleCheckWCIFI001_INF1(HashMap rsMap, HashMap itemvalueMap)
	{
		// 単項目チェックを行います
		String strValue = null;

		// 依頼処理コード項目チェック
		strValue = (String)rsMap.get("WCTRL_REQ_TRN_CD");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0070TW", new String[]{
															"依頼処理コード"});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "2"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0080TW", new String[]{
															"依頼処理コード",
															(String)itemvalueMap.get("TXT-WCIFI001-INF1.WCTRL_REQ_TRN_CD")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0090TW", new String[]{
															"依頼処理コード",
															(String)itemvalueMap.get("TXT-WCIFI001-INF1.WCTRL_REQ_TRN_CD")});
			return false;
		}

		//工事案件番号項目チェック
		strValue = (String)rsMap.get("KOJIAK_NO");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "10"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0080TW", new String[]{
															"工事案件番号",
															(String)itemvalueMap.get("TXT-WCIFI001-INF1.KOJIAK_NO")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0090TW", new String[]{
															"工事案件番号",
															(String)itemvalueMap.get("TXT-WCIFI001-INF1.KOJIAK_NO")});
			return false;
		}
		
		//サービス契約番号項目チェック
		strValue = (String)rsMap.get("SVC_KEI_NO");
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0070TW", new String[]{
															"サービス契約番号"});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "10"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0080TW", new String[]{
															"サービス契約番号",
															(String)itemvalueMap.get("TXT-WCIFI001-INF1.SVC_KEI_NO")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0090TW", new String[]{
															"サービス契約番号",
															(String)itemvalueMap.get("TXT-WCIFI001-INF1.SVC_KEI_NO")});
			return false;
		}

		// 新宅内機器型式コード項目チェック
		strValue = (String)rsMap.get("NEW_STB_TAKNKIKI_MODEL_CD");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0070TW", new String[]{
															"新宅内機器型式コード"});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "20"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0080TW", new String[]{
															"新宅内機器型式コード",
															(String)itemvalueMap.get("TXT-WCIFI001-INF1.NEW_STB_TAKNKIKI_MODEL_CD")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji2"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0090TW", new String[]{
															"新宅内機器型式コード",
															(String)itemvalueMap.get("TXT-WCIFI001-INF1.NEW_STB_TAKNKIKI_MODEL_CD")});
			return false;
		}

		// 新機器製造番号項目チェック
		strValue = (String)rsMap.get("NEW_KK_SEIZO_NO");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0070TW", new String[]{
															"新機器製造番号"});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "20"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0080TW", new String[]{
															"新機器製造番号",
															(String)itemvalueMap.get("TXT-WCIFI001-INF1.NEW_KK_SEIZO_NO")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji2"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0090TW", new String[]{
															"新機器製造番号",
															(String)itemvalueMap.get("TXT-WCIFI001-INF1.NEW_KK_SEIZO_NO")});
			return false;
		}
		

		// 新STBID項目チェック
		strValue = (String)rsMap.get("NEW_STB_ID");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0070TW", new String[]{
															"新STBID"});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "12"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0080TW", new String[]{
															"新STBID",
															(String)itemvalueMap.get("TXT-WCIFI001-INF1.NEW_STB_ID")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji2"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0090TW", new String[]{
															"新STBID",
															(String)itemvalueMap.get("TXT-WCIFI001-INF1.NEW_STB_ID")});
			return false;
		}

		// 旧宅内機器型式コード項目チェック
		strValue = (String)rsMap.get("OLD_STB_TAKNKIKI_MODEL_CD");
		// 必須チェック
		if(TK_KK_IDO_CD_NEWSTB_OPN.equals((String)rsMap.get("TK_KK_IDO_CD")) && (strValue == null || "".equals(strValue)))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0070TW", new String[]{
															"旧宅内機器型式コード"});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "20"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0080TW", new String[]{
															"旧宅内機器型式コード",
															(String)itemvalueMap.get("TXT-WCIFI001-INF1.OLD_STB_TAKNKIKI_MODEL_CD")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji2"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0090TW", new String[]{
															"旧宅内機器型式コード",
															(String)itemvalueMap.get("TXT-WCIFI001-INF1.OLD_STB_TAKNKIKI_MODEL_CD")});
			return false;
		}

		// 旧機器製造番号項目チェック
		strValue = (String)rsMap.get("OLD_KK_SEIZO_NO");
		// 必須チェック
		if(TK_KK_IDO_CD_NEWSTB_OPN.equals((String)rsMap.get("TK_KK_IDO_CD")) && (strValue == null || "".equals(strValue)))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0070TW", new String[]{
															"旧機器製造番号"});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "20"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0080TW", new String[]{
															"旧機器製造番号",
															(String)itemvalueMap.get("TXT-WCIFI001-INF1.OLD_KK_SEIZO_NO")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji2"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0090TW", new String[]{
															"旧機器製造番号",
															(String)itemvalueMap.get("TXT-WCIFI001-INF1.OLD_KK_SEIZO_NO")});
			return false;
		}

		// 旧STBID項目チェック
		strValue = (String)rsMap.get("OLD_STB_ID");
		// 必須チェック
		if(TK_KK_IDO_CD_NEWSTB_OPN.equals((String)rsMap.get("TK_KK_IDO_CD")) && (strValue == null || "".equals(strValue)))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0070TW", new String[]{
															"旧STBID"});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "12"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0080TW", new String[]{
															"旧STBID",
															(String)itemvalueMap.get("TXT-WCIFI001-INF1.OLD_STB_ID")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji2"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0090TW", new String[]{
															"旧STBID",
															(String)itemvalueMap.get("TXT-WCIFI001-INF1.OLD_STB_ID")});
			return false;
		}

		// 宅内機器異動コード項目チェック
		strValue = (String)rsMap.get("TK_KK_IDO_CD");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0070TW", new String[]{
															"宅内機器異動コード"});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "2"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0080TW", new String[]{
															"宅内機器異動コード",
															(String)itemvalueMap.get("TXT-WCIFI001-INF1.TK_KK_IDO_CD")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0090TW", new String[]{
															"宅内機器異動コード",
															(String)itemvalueMap.get("TXT-WCIFI001-INF1.TK_KK_IDO_CD")});
			return false;
		}

		// ティアグループ項目チェック
		strValue = (String)rsMap.get("DGTIA_GRP");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0070TW", new String[]{
															"ティアグループ"});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "3"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0080TW", new String[]{
															"ティアグループ",
															(String)itemvalueMap.get("TXT-WCIFI001-INF1.DGTIA_GRP")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EWCB0090TW", new String[]{
															"ティアグループ",
															(String)itemvalueMap.get("TXT-WCIFI001-INF1.DGTIA_GRP")});
			return false;
		}
		
		return true;
	}
	//20130115 MOD
	/**
	 * SQLKEY(WC_INSERT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	視聴制御HULFT送信実績番号
	 *		 	HULFT_SEND_DTM
	 *		 	送信ファイル名
	 *		 	連携ファイル名
	 *		 	継続ジョブID
	 *		 	ディレイド処理依頼番号
	 *		 	宅内機器情報抽出ファイル名
	 *		 	登録年月日時分秒
	 *		 	登録オペレータアカウント
	 *		 	更新年月日時分秒
	 *		 	更新オペレータアカウント
	 *		 	削除年月日時分秒
	 *		 	削除オペレータアカウント
	 *		 	無効フラグ
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeWC_T_WC_HULFT_SDJSK_WC_INSERT_001(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());
		paramList.setValue(param[9].toString());
		paramList.setValue(param[10].toString());
		paramList.setValue(param[11].toString());
		paramList.setValue(param[12].toString());
		paramList.setValue(param[13].toString());

		// DBアクセスを実行します
		db_WC_T_WC_HULFT_SDJSK.executeBySqlDefine(paramList, WC_T_WC_HULFT_SDJSK_WC_INSERT_001);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/

	/**
	 * 項目チェックで使用するmessageMapを生成します。
	 * @param rsMap 項目名が格納されたHashMap
	 * @return messageMap 埋め込み文字の値
	 */
	private HashMap<String, String> createMessageMap(HashMap rsMap)
	{
//		messageMap.put("TXT-WCIFM001-INF1.WCTRL_REQ_TRN_CD", (String)rsMap.get("WCTRL_REQ_TRN_CD"));
//		messageMap.put("TXT-WCIFM001-INF1.SVC_KEI_NO", (String)rsMap.get("SVC_KEI_NO"));
//		messageMap.put("TXT-WCIFM001-INF1.STB_TAKNKIKI_MODEL_CD", (String)rsMap.get("STB_TAKNKIKI_MODEL_CD"));
//		messageMap.put("TXT-WCIFM001-INF1.STB_ID", (String)rsMap.get("STB_ID"));
//		messageMap.put("TXT-WCIFM001-INF1.DLYD_FLG", (String)rsMap.get("DLYD_FLG"));
//		messageMap.put("TXT-WCIFM001-INF1.DGTIA_GRP", (String)rsMap.get("DGTIA_GRP"));
		messageMap.put("TXT-WCIFI001-INF1.WCTRL_REQ_TRN_CD", (String)rsMap.get("WCTRL_REQ_TRN_CD"));
		messageMap.put("TXT-WCIFI001-INF1.KOJIAK_NO", (String)rsMap.get("KOJIAK_NO"));
		messageMap.put("TXT-WCIFI001-INF1.SVC_KEI_NO", (String)rsMap.get("SVC_KEI_NO"));
		messageMap.put("TXT-WCIFI001-INF1.NEW_STB_TAKNKIKI_MODEL_CD", (String)rsMap.get("NEW_STB_TAKNKIKI_MODEL_CD"));
		messageMap.put("TXT-WCIFI001-INF1.NEW_KK_SEIZO_NO", (String)rsMap.get("NEW_KK_SEIZO_NO"));
		messageMap.put("TXT-WCIFI001-INF1.NEW_STB_ID", (String)rsMap.get("NEW_STB_ID"));
		messageMap.put("TXT-WCIFI001-INF1.OLD_STB_TAKNKIKI_MODEL_CD", (String)rsMap.get("OLD_STB_TAKNKIKI_MODEL_CD"));
		messageMap.put("TXT-WCIFI001-INF1.OLD_KK_SEIZO_NO", (String)rsMap.get("OLD_KK_SEIZO_NO"));
		messageMap.put("TXT-WCIFI001-INF1.OLD_STB_ID", (String)rsMap.get("OLD_STB_ID"));
		messageMap.put("TXT-WCIFI001-INF1.TK_KK_IDO_CD", (String)rsMap.get("TK_KK_IDO_CD"));
		messageMap.put("TXT-WCIFI001-INF1.DGTIA_GRP", (String)rsMap.get("DGTIA_GRP"));
		return messageMap;
	}

//20140222 ADD ANK-1949-00-00 START
	/**
	 * 前日分の手動リンク情報を取得する。
	 * @param 
	 * @return messageMap 埋め込み文字の値
	 */
	public JBSbatOutputItem linkinf_get() throws Exception
	{
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		// システム日付から−１した日付を取得
		paramList.setValue(JWCBatCommon.addDay(JCCBatCommon.getSysDate(), -1));
		this.logPrint.printDebugLog("getSysDate      =" + JCCBatCommon.getSysDate());

		// 前日実施分の手動リンク情報を取得
		executeWC_T_WC_ORDER_WC_SELECT_006(paramList.getList().toArray());

		// 実行結果の取得
		JBSbatCommonDBInterface linkinf = new JBSbatCommonDBInterface(); 
		JBSbatServiceInterfaceMap outmap = null;
		JBSbatOutputItem  outputBean = new JBSbatOutputItem();

		while((linkinf=db_WC_T_WC_ORDER.selectNext())!=null)
		{
			// 宅内機器情報抽出送信ファイル作成
			outmap = (JWCBatCommon.setJBSbatWCIFE006param(commonItem, this.outputCount + 1, 
														linkinf.getString(JBSbatWC_T_WC_ORDER.STB_TAKNKIKI_MODEL_CD), 
														linkinf.getString(JBSbatWC_T_WC_ORDER.STB_KIKI_SEIZO_NO),"")
														);
			outmap.setOutFlg(true);
			outputBean.addOutMapList(outmap);
			this.outputCount++;
		}
		return outputBean;
	}
	
	/**
	 * SQLKEY(WC_SELECT_006)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	受付年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeWC_T_WC_ORDER_WC_SELECT_006(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_WC_T_WC_ORDER.selectBySqlDefine(paramList, WC_T_WC_ORDER_WC_SELECT_006);
	}
//20140222 ADD ANK-1949-00-00 END

}
