/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCHPkozaInfoAdd
*	ソースファイル名		：JBSbatCHPkozaInfoAdd.java
*	作成者			：富士通　
*	作成日			：2020年10月06日
*＜機能概要＞
*　パーフェクト口座情報登録です。
*＜修正履歴＞
*	バージョン		修正日		修正者			修正内容
*	v52.00       2020/10/02  GDC)ジョバニー     【ANK-3838-00-00】窓口払い手数料の顧客負担方式導入
*	v52.00.01    2020/12/25  FJ)謝              【IT1-2020-0000086】対応
*********************************************************************/
package eo.business.service;

import java.io.File;

import eo.business.common.JACbatDebugLogUtil;
import eo.business.common.JBSbatBusinessService;
import eo.business.common.JBSbatMatchServiceInterface;
import eo.business.common.JCCBatCommon;
import eo.business.common.JCHbatSeikyKaknoBusinessUtil;
import eo.business.util.file.JBSbatCHIFM361;
import eo.business.util.file.JBSbatCHIFM364;
import eo.business.util.file.JBSbatCHIFM365;
import eo.common.constant.JACStrConst;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.file.JBSbatDefFileUtil;
import eo.framework.file.JBSbatOutputFileUtil;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.util.JBSbatAplConst;
import eo.framework.util.JBSbatDateUtil;
import eo.framework.util.JBSbatStringUtil;


/**
 * 
 * @author j.hortilano
 *
 */
// IT1-2020-0000086 MOD START
//public class JBSbatCHPkozaInfoAdd extends JBSbatBusinessService{
public class JBSbatCHPkozaInfoAdd  extends JBSbatBusinessService implements JBSbatMatchServiceInterface {
// IT1-2020-0000086 MOD END
	
	/** 請求収納業務共通クラス */
	private JCHbatSeikyKaknoBusinessUtil seikyKaknoBusinessUtil = null;
	
	// Free Items
	private String[] freeItems = null;
	
	// Billing Date
	private String billingDate = null;
	
	// Billing Date
	private String billProcessingDate = null;
	
	// Filename
	private String fileName = null;
	
	// Filename Format
	private static String FILE_NM = "CHLST093_PKOZA_UPD_INFO_yyyyMMddHHmmss.csv";
	
	/** ファイル名で利用するタイムスタンプのフォーマット */
	private static final String FILE_TIMESTAMP_FORMAT = "yyyyMMddHHmmss";
	
	/** ファイルコード */
	private static final String FILE_CD = "0000";
	
	private static final String PAYOUT_COMPLETE = "払出完了";
	
	private static final String INFORMATION_UPDATED = "情報変更あり";
	
	private static final String TRANSACTION_RESULT = "未反映（請求処理日以降にパーフェクト口座画面より更新あり）";
	
	/** 処理管理番号 */
	private static final String TRN_KANRI_NO = "000000000230";
	
	/** ファイルインスタンス（金融機関なし情報） */
	private JBSbatOutputFileUtil fileObj = null;
	
	/** 出力ファイル定義 */
	private JBSbatDefFileUtil outFileDef = null;
	
	/** 解約後転居先情報一括登録エラーファイルレコード件数 */
	private int recordCount = 0;
	
	/** テーブルアクセスクラス(ダウンロードファイル管理)*/
	private JBSbatSQLAccess db_ZM_T_DL_FILE_KANRI = null;
	
	private JBSbatSQLAccess db_CH_T_PKOZA = null;
	
	/** SQL定義キー(KK_INSERT_002)*/
	private static final String ZM_T_DL_FILE_KANRI_KK_INSERT_002 = "KK_INSERT_002";
	
	/** テーブル(ダウンロードファイル管理)*/
	private static final String D_TBL_NAME_ZM_T_DL_FILE_KANRI = "ZM_T_DL_FILE_KANRI";
	
	private static final String D_TBL_NAME_CH_T_PKOZA = "CH_T_PKOZA";
// IT1-2020-0000086 ADD START
	/** キーマッチ処理フラグ*/
	private boolean matchProcFlg;

	/** マスタファイル処理フラグ*/
	private boolean mastProcFlg;

	/** トランファイル処理フラグ*/
	private boolean tranProcFlg;
// IT1-2020-0000086 ADD END
	
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception {
		
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		
		this.seikyKaknoBusinessUtil = new JCHbatSeikyKaknoBusinessUtil(commonItem);
		
		db_ZM_T_DL_FILE_KANRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_T_DL_FILE_KANRI);
		
		db_CH_T_PKOZA = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_PKOZA);
		
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		assert 	JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][initial]");
		assert 	JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][opeDate=" + super.opeDate + "]");
		assert 	JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][freeItem=" + super.freeItem + "]");
		
		try {
			
			// 請求年月取得
			this.billingDate = seikyKaknoBusinessUtil.getBillYmNotContain(super.opeDate, JACStrConst.EVENT_CD_SEIKY_SHORI_YMD);
			
			// 請求処理日取得
			this.billProcessingDate = seikyKaknoBusinessUtil.getEventYmd(billingDate, JACStrConst.EVENT_CD_SEIKY_SHORI_YMD);
			
		} finally {
			
			seikyKaknoBusinessUtil.close();
			
		}
		
		
		// 金融機関なし情報ファイル生成
		freeItems = super.freeItem.split(JACStrConst.SEMI_COLON);
		
		// システム日時を取得する
		String sysDateTime = JCCBatCommon.getSysDateTime();
		
		// Setting output filename
		this.fileName = FILE_NM.replaceAll(FILE_TIMESTAMP_FORMAT, sysDateTime);
		
		// 出力ファイルオブジェクトを生成する
		this.fileObj = new JBSbatOutputFileUtil(freeItems[0].concat(JACStrConst.SLASH).concat(fileName));
		
		// 出力定義ファイル名を取得する
		String outFileDefName = JBSbatAplConst.getAplConstValue("IND").concat(freeItems[1]);
				
		// 出力定義ファイルオブジェクトを生成する
		this.outFileDef = new JBSbatDefFileUtil(outFileDefName, this.fileObj);
		
		// Writerオブジェクトを生成する。
		this.fileObj.createWriter();
		
		// Create Header Map
		JBSbatServiceInterfaceMap headerMap = new JBSbatServiceInterfaceMap();
		
		headerMap.set(JBSbatCHIFM365.SEIKY_KEI_NO, "請求契約番号");
		headerMap.set(JBSbatCHIFM365.PKOZA_NO, "パーフェクト口座番号");
		headerMap.set(JBSbatCHIFM365.PKOZA_BANK_NM, "パーフェクト口座金融機関名");
		headerMap.set(JBSbatCHIFM365.PKOZA_SHITEN_NM, "パーフェクト口座支店名");
		headerMap.set(JBSbatCHIFM365.TRN_RSLT, "処理結果");
		
		// Call generateOutputHeaderMap Method
		this.generateOutputMap(headerMap);
		
	}
	
	
// IT1-2020-0000086 MOD START
//	/** 主処理
//	 * @param inMap　入力電文
//	 * @return JBSbatOutputItem　出力情報
//	 * @throws Exception
//	 */
//	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
//	{
	/**
	 * 主処理
	 * @param mastMap　入力電文
	 * @param tranMap　入力電文
	 * @param outputInItem  入力情報
	 * @return JBSbatOutputItem 出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap mastMap, JBSbatServiceInterfaceMap tranMap, JBSbatOutputItem outputInItem) throws Exception
	{
		JBSbatServiceInterfaceMap inMap = new JBSbatServiceInterfaceMap();
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute]");
		assert mastMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute][mastMap=" + mastMap.getMap().toString() + "]") : true;
		assert tranMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute][tranMap=" + tranMap.getMap().toString() + "]") : true;
		
		// パーフェクト口座情報ファイルのみ存在する
		if (mastMap != null && tranMap == null)
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入力Ｍのみ存在する]");
			
			// パーフェクト口座情報ファイルの次レコード読込
			this.setMastProcFlg(true);
			return outputInItem;
		}
		// お客様情報チェック済ファイルのみ存在する
		else if (mastMap == null && tranMap != null)
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入力Ｔのみ存在する]");
			
			// お客様情報チェック済ファイルの次レコード読込
			this.setTranProcFlg(true);
			return outputInItem;
		}
		// パーフェクト口座情報ファイル、お客様情報チェック済ファイルともに存在する
		else
		{
			// マッチングキー（請求契約番号）取得
			String mastSeiKeiNo = JBSbatStringUtil.trim( mastMap.getString(JBSbatCHIFM361.SEIKY_KEI_NO) );
			String tranSeiKeiNo = JBSbatStringUtil.trim( tranMap.getString(JBSbatCHIFM364.SEIKY_KEI_NO) );
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入力Ｍ．比較キー=" + mastSeiKeiNo + "]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入力Ｔ．比較キー=" + tranSeiKeiNo + "]");
			
			// 入力Ｍ＝入力Ｔ
			if (mastSeiKeiNo.equals(tranSeiKeiNo))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入力Ｍ、入力Ｔともに存在する][入力Ｍ＝入力Ｔ（マッチ）]");
				
				// 請求契約番号
				inMap.setString(JBSbatCHIFM361.SEIKY_KEI_NO, mastMap.getString(JBSbatCHIFM361.SEIKY_KEI_NO));
				// 新パーフェクト口座番号
				inMap.setString(JBSbatCHIFM361.NEW_PKOZA_NO, tranMap.getString(JBSbatCHIFM364.PKOZA_NO));
				// 新パーフェクト口座金融機関名
				inMap.setString(JBSbatCHIFM361.NEW_PKOZA_BANK_NM, tranMap.getString(JBSbatCHIFM364.BANK_NM));
				// 新パーフェクト口座支店名
				inMap.setString(JBSbatCHIFM361.NEW_PKOZA_SHITEN_NM, tranMap.getString(JBSbatCHIFM364.SHITEN_NM));
				// パーフェクト口座ステータス
				inMap.setString(JBSbatCHIFM361.PKOZA_STAT, mastMap.getString(JBSbatCHIFM361.PKOZA_STAT));
				// パーフェクト口座番号
				inMap.setString(JBSbatCHIFM361.PKOZA_NO, mastMap.getString(JBSbatCHIFM361.PKOZA_NO));
				// パーフェクト口座利用有無
				inMap.setString(JBSbatCHIFM361.PKOZA_USE_UM, mastMap.getString(JBSbatCHIFM361.PKOZA_USE_UM));
				// パーフェクト口座登録年月日
				inMap.setString(JBSbatCHIFM361.PKOZA_ADD_YMD, mastMap.getString(JBSbatCHIFM361.PKOZA_ADD_YMD));
				// パーフェクト口座金融機関名
				inMap.setString(JBSbatCHIFM361.PKOZA_BANK_NM, mastMap.getString(JBSbatCHIFM361.PKOZA_BANK_NM));
				// パーフェクト口座支店名
				inMap.setString(JBSbatCHIFM361.PKOZA_SHITEN_NM, mastMap.getString(JBSbatCHIFM361.PKOZA_SHITEN_NM));
				// パーフェクト口座備考
				inMap.setString(JBSbatCHIFM361.PKOZA_BIKO, mastMap.getString(JBSbatCHIFM361.PKOZA_BIKO));
				// 更新運用年月日
				inMap.setString(JBSbatCHIFM361.UPD_UNYO_YMD, mastMap.getString(JBSbatCHIFM361.UPD_UNYO_YMD));
				
				this.setMastProcFlg(true);
				this.setTranProcFlg(true);
			}
			// 入力Ｍ＜入力Ｔ
			else if (mastSeiKeiNo.compareTo(tranSeiKeiNo) < 0)
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入力Ｍ、入力Ｔともに存在する][入力Ｍ＜入力Ｔ]");
				
				// パーフェクト口座情報ファイルの次レコード読込
				this.setMastProcFlg(true);
				return outputInItem;
			}
			// 入力Ｍ＞入力Ｔ
			else
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入力Ｍ、入力Ｔともに存在する][入力Ｍ＞入力Ｔ]");
				
				// お客様情報チェック済ファイルの次レコード読込
				this.setTranProcFlg(true);
				return outputInItem;
			}
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute]");
// IT1-2020-0000086 MOD END
	
		
		String seikyKeiNo        = JBSbatStringUtil.trim( inMap.getString(JBSbatCHIFM361.SEIKY_KEI_NO) );
		String newPkozaNo        = JBSbatStringUtil.trim( inMap.getString(JBSbatCHIFM361.NEW_PKOZA_NO) );
		String pkozaNo           = JBSbatStringUtil.trim( inMap.getString(JBSbatCHIFM361.PKOZA_NO) );
		String newPkozaBankNm    = JBSbatStringUtil.trim( inMap.getString(JBSbatCHIFM361.NEW_PKOZA_BANK_NM) );
		String pkozaBankNm       = JBSbatStringUtil.trim( inMap.getString(JBSbatCHIFM361.PKOZA_BANK_NM) );
		String newPkozaShittenNm = JBSbatStringUtil.trim( inMap.getString(JBSbatCHIFM361.NEW_PKOZA_SHITEN_NM) );
		String pkozaShittenNm    = JBSbatStringUtil.trim( inMap.getString(JBSbatCHIFM361.PKOZA_SHITEN_NM) );
		String updUnyoYmd        = JBSbatStringUtil.trim( inMap.getString(JBSbatCHIFM361.UPD_UNYO_YMD) );
		String pkozaStat         = JBSbatStringUtil.trim( inMap.getString(JBSbatCHIFM361.PKOZA_STAT) );
		String pkozaBiko         = JBSbatStringUtil.trim( inMap.getString(JBSbatCHIFM361.PKOZA_BIKO) );
		String pkozaUseUm        = JBSbatStringUtil.trim( inMap.getString(JBSbatCHIFM361.PKOZA_USE_UM) );
		String pkozaAddYmd       = JBSbatStringUtil.trim( inMap.getString(JBSbatCHIFM361.PKOZA_ADD_YMD) );
		
		
		if ((newPkozaNo != null && !JACStrConst.KARA_MOJI.equals(newPkozaNo) && newPkozaNo.compareTo(pkozaNo) != 0) 
				|| (newPkozaBankNm != null && !JACStrConst.KARA_MOJI.equals(newPkozaBankNm) && newPkozaBankNm.compareTo(pkozaBankNm) != 0)
				|| (newPkozaShittenNm != null && !JACStrConst.KARA_MOJI.equals(newPkozaShittenNm) && newPkozaShittenNm.compareTo(pkozaShittenNm) != 0)) {
			
			JBSbatServiceInterfaceMap rowMap = new JBSbatServiceInterfaceMap();
			
			if (updUnyoYmd.compareTo(this.billProcessingDate) > 0) {
				
				rowMap.set(JBSbatCHIFM365.SEIKY_KEI_NO, seikyKeiNo);
				rowMap.set(JBSbatCHIFM365.PKOZA_NO, newPkozaNo);
				rowMap.set(JBSbatCHIFM365.PKOZA_BANK_NM, newPkozaBankNm);
				rowMap.set(JBSbatCHIFM365.PKOZA_SHITEN_NM, newPkozaShittenNm);
				rowMap.set(JBSbatCHIFM365.TRN_RSLT, TRANSACTION_RESULT);
				
			} else {
				
				insertCH_T_PKOZA(seikyKeiNo, pkozaStat, newPkozaNo, 
						pkozaNo, pkozaUseUm, pkozaAddYmd, newPkozaBankNm, 
						pkozaBankNm, newPkozaShittenNm, pkozaShittenNm, pkozaBiko);
						
				rowMap.set(JBSbatCHIFM365.SEIKY_KEI_NO, seikyKeiNo);
				rowMap.set(JBSbatCHIFM365.PKOZA_NO, newPkozaNo);
				rowMap.set(JBSbatCHIFM365.PKOZA_BANK_NM, newPkozaBankNm);
				rowMap.set(JBSbatCHIFM365.PKOZA_SHITEN_NM, newPkozaShittenNm);
				
				if (JACStrConst.PKOZA_STAT_HARAIDASICHU.equals(pkozaStat)) {
					
					rowMap.set(JBSbatCHIFM365.TRN_RSLT, PAYOUT_COMPLETE);
					
				} else {
					
					rowMap.set(JBSbatCHIFM365.TRN_RSLT, INFORMATION_UPDATED );
					
				}
			}
			
			this.generateOutputMap(rowMap);
			
			recordCount++;
		}
		
// IT1-2020-0000086 MOD START
//		return null;
		return outputInItem;
// IT1-2020-0000086 MOD END
		
	}
	
	
	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception {
		
		/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		
		// ファイルインスタンスがNULLでない場合
		if(null != this.fileObj)
		{
			// ファイルクローズ
			this.fileObj.close();
		}
		
		String filePath = freeItems[0].concat(JACStrConst.SLASH).concat(fileName);
		
		// 電子ファイル管理登録処理
		JBSbatCommonItem arg0 = commonItem;											// 業務共通電文
		String arg1 = FILE_CD;														// ファイルコード
		String arg2 = filePath;														// ファイルパス
		String arg3 = JBSbatDateUtil.adjustMonth(super.opeDate, 1);					// ファイル削除年月日（運用日付 + 1ヶ月）
		String[] rc = JCCBatCommon.createDenshiFile(arg0, arg1, arg2, arg3);

		// ログ出力
		super.logPrint.printDebugLog("電子ファイル管理番号(" + rc[0] + ")、世代登録年月日時分秒(" + rc[1] + ")");

		// ダウンロードファイル管理登録処理
		insertZM_T_DL_FILE_KANRI(this.fileName, rc[0], rc[1]);
		
		// 一時ファイルを削除する
		File zmifmFile = new File(filePath);
		if (zmifmFile.exists())
		{
			zmifmFile.delete();
		}
		
		
		if (db_ZM_T_DL_FILE_KANRI != null) {
			db_ZM_T_DL_FILE_KANRI.close();
		}
		
		if (db_CH_T_PKOZA != null) {
			db_CH_T_PKOZA.close();
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][terminal]");
		/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
		
	}
	
	
	/**
	 * 
	 * @param mastMap
	 * @throws Exception
	 */
	private void generateOutputMap(JBSbatServiceInterfaceMap mastMap) throws Exception
	{
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][generateOutputHeaderMap]");
		
		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();

		// 請求契約番号
		outMap.set(JBSbatCHIFM365.SEIKY_KEI_NO,			mastMap.get(JBSbatCHIFM365.SEIKY_KEI_NO));
		// パーフェクト口座番号
		outMap.set(JBSbatCHIFM365.PKOZA_NO,				mastMap.get(JBSbatCHIFM365.PKOZA_NO));
		// パーフェクト口座番号
		outMap.set(JBSbatCHIFM365.PKOZA_BANK_NM,		mastMap.get(JBSbatCHIFM365.PKOZA_BANK_NM));
		// パーフェクト口座支店名
		outMap.set(JBSbatCHIFM365.PKOZA_SHITEN_NM,		mastMap.get(JBSbatCHIFM365.PKOZA_SHITEN_NM));
		// 処理結果 
		outMap.set(JBSbatCHIFM365.TRN_RSLT,				mastMap.get(JBSbatCHIFM365.TRN_RSLT));

		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][generateOutputHeaderMap][outRec=" + outMap.getMap().toString() + "]");
		
		outMap.setOutFlg(true);

		// ファイル出力を行います。
		this.fileObj.print(outMap, this.outFileDef);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][generateOutputHeaderMap]");
		
	}
	
	
	/**
	 * ダウンロードファイル管理の登録を行います。
	 * <br>
	 * @param fileName ファイル名
	 * @param fileKanriNo 電子ファイル管理番号
	 * @param geneAddDtm 世代登録年月日時分秒
	 * @throws Exception 
	 */
	private void insertZM_T_DL_FILE_KANRI(String fileName, String fileKanriNo, String geneAddDtm) throws Exception
	{

		String[] insertSetParam = new String[5];
		insertSetParam[0] = TRN_KANRI_NO;								// 処理管理番号
		insertSetParam[1] = fileName;									// ファイル名
		insertSetParam[2] = String.valueOf(recordCount);				// データ件数
		insertSetParam[3] = fileKanriNo;								// 電子ファイル管理番号
		insertSetParam[4] = geneAddDtm;									// 世代登録年月日時分秒

		executeZM_T_DL_FILE_KANRI_KK_INSERT_002(insertSetParam);
	}
	
	
	/**
	 * SQLKEY(KK_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_KK_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());

		// DBアクセスを実行します
		db_ZM_T_DL_FILE_KANRI.executeBySqlDefine(paramList, ZM_T_DL_FILE_KANRI_KK_INSERT_002);
	}
	
	
	/**
	 * 
	 * @param seikyKeiNo
	 * @param sysDateTime
	 * @param pkozaStat
	 * @param newPkozaNo
	 * @param pkozaNo
	 * @param pkozaUseUm
	 * @param pkozaAddYmd
	 * @param newPkozaBankNm
	 * @param pkozaBankNm
	 * @param newPkozaShittenNm
	 * @param pkozaShittenNm
	 * @param pkozaBiko
	 * @throws Exception
	 */
	private void insertCH_T_PKOZA(String seikyKeiNo, String pkozaStat, String newPkozaNo, 
			String pkozaNo, String pkozaUseUm, String pkozaAddYmd, String newPkozaBankNm, 
			String pkozaBankNm, String newPkozaShittenNm, String pkozaShittenNm, String pkozaBiko) throws Exception {
		
		// パラメータ設定
		Object[] param = new Object[12];
		
		param[0] = seikyKeiNo;
		
		// システム日時を取得する
		String sysDateTime = JCCBatCommon.getSysDateTimeStamp();
		param[1] = sysDateTime;
		
		if (JACStrConst.PKOZA_STAT_HARAIDASICHU.equals(pkozaStat)) {
			param[2] = JACStrConst.PKOZA_STAT_HARAIDASIZUMI;
		} else {
			param[2] = pkozaStat;
		}
		
		if (newPkozaNo != null && !JACStrConst.KARA_MOJI.equals(newPkozaNo)) {
			param[3] = newPkozaNo;
		} else {
			param[3] = pkozaNo;
		}
		
		param[4] = pkozaUseUm;
		param[5] = pkozaAddYmd;
		
		if (newPkozaBankNm != null && !JACStrConst.KARA_MOJI.equals(newPkozaBankNm)) {
			param[6] = newPkozaBankNm;
		} else {
			param[6] = pkozaBankNm;
		}
		
		if (newPkozaShittenNm != null && !JACStrConst.KARA_MOJI.equals(newPkozaShittenNm)) {
			param[7] = newPkozaShittenNm;
		} else {
			param[7] = pkozaShittenNm;
		}
		
		param[8] = pkozaBiko;
		
		
		executedb_CH_T_PKOZA_PKINSERT(param);
	}
	
	
	/**
	 * 
	 * @param setParam
	 * @throws Exception
	 */
	private void executedb_CH_T_PKOZA_PKINSERT(Object[] setParam) throws Exception {
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("SEIKY_KEI_NO", setParam[0]);
		setMap.setValue("GENE_ADD_DTM", setParam[1]);
		setMap.setValue("PKOZA_STAT", setParam[2]);
		setMap.setValue("PKOZA_NO", setParam[3]);
		setMap.setValue("PKOZA_USE_UM", setParam[4]);
		setMap.setValue("PKOZA_ADD_YMD", setParam[5]);
		setMap.setValue("PKOZA_BANK_NM", setParam[6]);
		setMap.setValue("PKOZA_SHITEN_NM", setParam[7]);
		setMap.setValue("PKOZA_BIKO", setParam[8]);
		
		// DBアクセスを実行します
		db_CH_T_PKOZA.insertByPrimaryKeys(setMap);
	}
	
// IT1-2020-0000086 ADD START
	/**
	 * @return mastProcFlg を戻します。
	 */
	public boolean isMastProcFlg()
	{
		return mastProcFlg;
	}

	/**
	 * @return matchProcFlg を戻します。
	 */
	public boolean isMatchProcFlg()
	{
		return matchProcFlg;
	}

	/**
	 * @return tranProcFlg を戻します。
	 */
	public boolean isTranProcFlg()
	{
		return tranProcFlg;
	}

	/**
	 * @param mast_ProcFlg 設定する mastProcFlg。
	 */
	public void setMastProcFlg(boolean mast_ProcFlg)
	{
		this.mastProcFlg = mast_ProcFlg;
	}

	/**
	 * @param match_ProcFlg 設定する matchProcFlg。
	 */
	public void setMatchProcFlg(boolean match_ProcFlg)
	{
		this.matchProcFlg = match_ProcFlg;
	}

	/**
	 * @param tran_ProcFlg 設定する tranProcFlg。
	 */
	public void setTranProcFlg(boolean tran_ProcFlg)
	{
		this.tranProcFlg = tran_ProcFlg;
	}
// IT1-2020-0000086 ADD END
}
