/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCNContSalesSmrFileMake
*	ソースファイル名	：JBSbatCNContSalesSmrFileMake.java
*	作成者				：富士通　
*	作成日				：2011年11月23日
*＜機能概要＞
*　コンテンツ毎売上集計ファイル作成処理部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/11/23   富士通		新規作成
*	v3.00.0		2012/09/19	FJ)小林		【ST1-2012-0000589】トランザクションテーブル取得0件の場合、異常終了から警告終了へ修正
*	v4.00.00    2012/09/25  FJ)小林     【TAI-2012-0000095】Fortify指摘内容の是正
*	v4.00.01	2013/02/06	FJ)小林		【TAI-2012-0000142】処理日付情報データ不在メッセージを見直し
*  v37.00.00	2018/07/05  FJ)鈴木		【ANK-3422-00-00】MVNOオプション追加に伴う事業者精算ファイルへの売上区分追加
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;
import java.util.HashMap;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCbatDenshiFileUtil;
import eo.business.common.JCNBatCommon;
import eo.common.constant.JCNStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.common.util.JPCDateUtil;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.util.JBSbatBusinessFileUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatCNContSalesSmrFileMake extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(処理日付情報)*/
	private static final String D_TBL_NAME_CN_T_TRAN_YMD_INFO = "CN_T_TRAN_YMD_INFO";

	/** テーブル(コンテンツ毎売上集計ワーク)*/
	private static final String D_TBL_NAME_CN_T_CONT_SALES_SHUK = "CN_T_CONT_SALES_SHUK";

	/** テーブル(コード名称管理)*/
	private static final String D_TBL_NAME_ZM_M_CD_NM_KANRI = "ZM_M_CD_NM_KANRI";

	/** テーブル(料金グループ)*/
	private static final String D_TBL_NAME_KK_M_PRC_GRP = "KK_M_PRC_GRP";

	/** テーブル(コンテンツ決済電子ファイル管理)*/
	private static final String D_TBL_NAME_CN_T_CNKS_EFILE_KNRI = "CN_T_CNKS_EFILE_KNRI";

	/** テーブル(ダウンロードファイル管理)*/
	private static final String D_TBL_NAME_ZM_T_DL_FILE_KANRI = "ZM_T_DL_FILE_KANRI";

	/** SQL定義キー(CN_SELECT_002)*/
	private static final String CN_T_TRAN_YMD_INFO_CN_SELECT_002 = "CN_SELECT_002";

	/** SQL定義キー(CN_SELECT_001)*/
	private static final String CN_T_CONT_SALES_SHUK_CN_SELECT_001 = "CN_SELECT_001";

	/** SQL定義キー(CN_SELECT_001)*/
	private static final String ZM_M_CD_NM_KANRI_CN_SELECT_001 = "CN_SELECT_001";

	/** SQL定義キー(CN_SELECT_003)*/
	private static final String ZM_M_CD_NM_KANRI_CN_SELECT_003 = "CN_SELECT_003";

	/** SQL定義キー(CN_SELECT_003)*/
	private static final String KK_M_PRC_GRP_CN_SELECT_003 = "CN_SELECT_003";

	/** SQL定義キー(CN_SELECT_001)*/
	private static final String CN_T_CNKS_EFILE_KNRI_CN_SELECT_001 = "CN_SELECT_001";

	/** SQL定義キー(CN_INSERT_001)*/
	private static final String CN_T_CNKS_EFILE_KNRI_CN_INSERT_001 = "CN_INSERT_001";

	/** SQL定義キー(CN_INSERT_001)*/
	private static final String ZM_T_DL_FILE_KANRI_CN_INSERT_001 = "CN_INSERT_001";
// ANK-3422-00-00 ADD START
	/** SQL定義キー(CN_SELECT_007)*/
	private static final String ZM_M_CD_NM_KANRI_CN_SELECT_007 = "CN_SELECT_007";
//ANK-3422-00-00 ADD END
	/** テーブルアクセスクラス(処理日付情報)*/
	private JBSbatSQLAccess db_CN_T_TRAN_YMD_INFO = null;

	/** テーブルアクセスクラス(コンテンツ毎売上集計ワーク)*/
	private JBSbatSQLAccess db_CN_T_CONT_SALES_SHUK = null;

	/** テーブルアクセスクラス(コード名称管理)*/
	private JBSbatSQLAccess db_ZM_M_CD_NM_KANRI = null;

	/** テーブルアクセスクラス(料金グループ)*/
	private JBSbatSQLAccess db_KK_M_PRC_GRP = null;

	/** テーブルアクセスクラス(コンテンツ決済電子ファイル管理)*/
	private JBSbatSQLAccess db_CN_T_CNKS_EFILE_KNRI = null;
	
	/** テーブルアクセスクラス(ダウンロードファイル管理)*/
	private JBSbatSQLAccess db_ZM_T_DL_FILE_KANRI = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/** メッセージキー*/
	private static final String ECNB0410JW = JPCBatchMessageConstant.ECNB0410JW;
	
	/** メッセージキー*/
	private static final String ECNB0090AI = JPCBatchMessageConstant.ECNB0090AI;
	
	/** メッセージキー*/
	private static final String ECNB0060KE = JPCBatchMessageConstant.ECNB0060KE;
	
	/** メッセージキー*/
	private static final String ECNB0080KE = JPCBatchMessageConstant.ECNB0080KE;
	
	/** メッセージキー*/
	private static final String ECNB0230KE = JPCBatchMessageConstant.ECNB0230KE;
	
	/** 処理名(コンテンツ毎売上集計ファイル作成)*/
	public static final String S_JOB_NAME = "コンテンツ毎売上集計ファイル作成";
	
	/** ファイル名(コンテンツ毎売上集計)*/
	public static final String S_FILE_NAME = "コンテンツ毎売上集計";
	
	/** テスト用ＩＤ設定用(テスト用ＩＤ)*/
	public static final String S_TEST_ID = "テスト用ＩＤ";
	
	/** ＶＢ契約有無ネット契約有無識別設定用(ネット回線契約なし)*/
	public static final String S_VB_KEI_UM = "ネット回線契約なし";
	
	/** コンテンツ課金種別コードチェック用(3:課金訂正)*/
	public static final String S_CONT_CHRG_SBT_CD_3 = "3";
	
	/** コンテンツ課金種別コードチェック用(0:無料)*/
	public static final String S_CONT_CHRG_SBT_CD_0 = "0";
	
	/** ＶＢ契約有無ネット契約有無識別コードチェック用(0:ネット回線契約なし)*/
	public static final String S_VB_KEI_UM_CD_0 = "0";
	
	/** 料金グループコードチェック用(00:オープン回線)*/
	public static final String S_PRD_GRP_CD_00 = "00";
	
	/** ファイル出力用回線名(オープン回線)*/
	public static final String S_OPEN_KISN = "オープン回線";
	
	/** ファイルコード(0:コンテンツ毎売上集計ファイル)*/
	public static final String S_FILE_CD = "0002";
	
	/** コロン*/
	private static final String S_COL = ".";
	
	/** ファイル削除年月日算出用数値(6)*/
	private static final int I_P_SIX = 6;
	
	// ANK-3422-00-00 ADD START
	/** 売上区分(eo)*/
	private static final String S_URIAGE_CD_NM_EO ="eo";
	
	/** 売上区分(設定値なし)*/
	private static final String S_URIAGE_CD_NM ="";
	// ANK-3422-00-00 ADD END
	
	/** ヘッダー情報1*/
	private static final String S_HEADER_1 = "コンテンツ契約番号";
	
	/** ヘッダー情報2*/
	private static final String S_HEADER_2 = "コンテンツサービスコード";
	
	/** ヘッダー情報3*/
	private static final String S_HEADER_3 = "コンテンツサービス名";
	
	/** ヘッダー情報4*/
	private static final String S_HEADER_4 = "コンテンツ識別コード";
	
	/** ヘッダー情報5*/
	private static final String S_HEADER_5 = "コンテンツ名";
	
	/** ヘッダー情報6*/
	private static final String S_HEADER_6 = "コンテンツ契約開始年月日時分秒";
	
	/** ヘッダー情報7*/
	private static final String S_HEADER_7 = "コンテンツ契約終了年月日時分秒";
	
	/** ヘッダー情報8*/
	private static final String S_HEADER_8 = "コンテンツ単価";
	
	/** ヘッダー情報9*/
	private static final String S_HEADER_9 = "コンテンツ購入数量";
	
	/** ヘッダー情報10*/
	private static final String S_HEADER_10 = "課金額";
	
	/** ヘッダー情報11*/
	private static final String S_HEADER_11 = "訂正金額";
	
	/** ヘッダー情報12*/
	private static final String S_HEADER_12 = "合計";
	
	/** ヘッダー情報13*/
	private static final String S_HEADER_13 = "決済方法";
	
	/** ヘッダー情報14*/
	private static final String S_HEADER_14 = "クレジットカード会社名";
	
	/** ヘッダー情報15*/
	private static final String S_HEADER_15 = "仕入先";
	
	/** ヘッダー情報16*/
	private static final String S_HEADER_16 = "ＳＹＳＩＤ";
	
	/** ヘッダー情報17*/
	private static final String S_HEADER_17 = "サービス契約番号";
	
	/** ヘッダー情報18*/
	private static final String S_HEADER_18 = "月末時契約料金グループ名";
	
	/** ヘッダー情報19*/
	private static final String S_HEADER_19 = "契約者タイプ";
	
	/** ヘッダー情報20*/
	private static final String S_HEADER_20 = "テスト用ＩＤ";
	
	/** ヘッダー情報21*/
	private static final String S_HEADER_21 = "会員種別";
	
	/** ヘッダー情報22*/
	private static final String S_HEADER_22 = "ＶＢ契約有無ネット契約有無";
	
	/** ヘッダー情報23*/
	private static final String S_HEADER_23 = "集計時契約料金グループ名";
	
	// ANK-3422-00-00 ADD START
	/** ヘッダー情報24*/
	private static final String S_HEADER_24 = "売上区分";
	// ANK-3422-00-00 ADD END
	
	/** 処理管理番号 */
	private static final String TRN_KANRI_NO = "000000000012";

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		
		// FREEパラメータチェック
		String strFreeParam = commonItem.getFreeItem();
		String[] lines = strFreeParam.split(JCNStrConst.S_PARAM_DELIM);
		if(lines.length != 2 || "".equals(lines[0]))
		{
			throw new JBSbatBusinessException(ECNB0230KE);
		}
		
		// DBアクセスクラスを生成します
		db_CN_T_TRAN_YMD_INFO = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CN_T_TRAN_YMD_INFO);
		db_CN_T_CONT_SALES_SHUK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CN_T_CONT_SALES_SHUK);
		db_ZM_M_CD_NM_KANRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_CD_NM_KANRI);
		db_KK_M_PRC_GRP = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_M_PRC_GRP);
		db_CN_T_CNKS_EFILE_KNRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CN_T_CNKS_EFILE_KNRI);
		db_ZM_T_DL_FILE_KANRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_T_DL_FILE_KANRI);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		// 処理日付情報を取得
		JBSbatCommonDBInterface dbList11 = new JBSbatCommonDBInterface();
		dbList11.setValue(JCNStrConst.S_BAT_TRAN_CD_SMR);		// バッチ集計処理実行日取得キー(6)
		executeCN_T_TRAN_YMD_INFO_CN_SELECT_002(dbList11.getList().toArray());

		// SQL実行結果を取得
		JBSbatCommonDBInterface map = new JBSbatCommonDBInterface(); 
		String strTranTgYMD = "";
		String strTranTgSmrYMD = "";
		String strTranTgSmrYM = "";

		
		// 処理日付情報とエラーフラグ(true:エラーあり,false:エラーなし)の設定
		boolean tranErrFlg = true;
		for(map = db_CN_T_TRAN_YMD_INFO.selectNext(); 
				null != map; 
				map = db_CN_T_TRAN_YMD_INFO.selectNext())
		{
			strTranTgYMD = map.getString("TRAN_TG_YMD");			// 処理対象年月日
			strTranTgSmrYMD = map.getString("TRAN_TG_YMD_BEFRM");	// 集計対象年月日
			strTranTgSmrYM = strTranTgSmrYMD.substring(0, 6);		// 集計対象年月

			tranErrFlg = false;
		}
		
		// 処理日付情報エラーフラグ = true:エラーあり の場合は、エラー出力し終了する。
		if(tranErrFlg)
		{
			super.logPrint.printBusinessErrorLog(ECNB0080KE, new String[]
			                                                			{S_JOB_NAME, D_TBL_NAME_CN_T_TRAN_YMD_INFO, "BAT_TRAN_CD=" + JCNStrConst.S_BAT_TRAN_CD_SMR});
			throw new JBSbatBusinessException(ECNB0080KE, new String[]
			{S_JOB_NAME, D_TBL_NAME_CN_T_TRAN_YMD_INFO, "BAT_TRAN_CD=" + JCNStrConst.S_BAT_TRAN_CD_SMR});
		}
		
		// FREEパラメータ取得
		String strFreeParam = commonItem.getFreeItem();
		
		// パラメータを区切り文字で分割する
		String[] Paramlines = strFreeParam.split(JCNStrConst.S_PARAM_DELIM);
		// パラメータ取得
		String strFreeParam1 = Paramlines[0];	// ファイル名称込みのファイルパス
		String strFreeParam2 = Paramlines[1];	// ファイルパスのみ
		
		// ファイルのリネーム
//		String strContSalShukFile = updateFileName(strFreeParam, strTranTgSmrYM);
		String strContSalShukFile = strFreeParam1.replace(S_COL, JCNStrConst.S_UNDER_BAR + strTranTgSmrYM + S_COL);
		
		// ファイル出力レコード格納用
		ArrayList<String> strRecList = new ArrayList<String>();
		
		// ファイル出力件数
		int intOutputCnt = 0;
		
		// ヘッダレコード作成
		// ANK-3422-00-00 MOD START
//		String[] strData1 = new String[23];
		String[] strData1 = new String[24];
		// ANK-3422-00-00 MOD END
		strData1[0] = S_HEADER_1;
		strData1[1] = S_HEADER_2;
		strData1[2] = S_HEADER_3;
		strData1[3] = S_HEADER_4;
		strData1[4] = S_HEADER_5;
		strData1[5] = S_HEADER_6;
		strData1[6] = S_HEADER_7;
		strData1[7] = S_HEADER_8;
		strData1[8] = S_HEADER_9;
		strData1[9] = S_HEADER_10;
		strData1[10] = S_HEADER_11;
		strData1[11] = S_HEADER_12;
		strData1[12] = S_HEADER_13;
		strData1[13] = S_HEADER_14;
		strData1[14] = S_HEADER_15;
		strData1[15] = S_HEADER_16;
		strData1[16] = S_HEADER_17;
		strData1[17] = S_HEADER_18;
		strData1[18] = S_HEADER_19;
		strData1[19] = S_HEADER_20;
		strData1[20] = S_HEADER_21;
		strData1[21] = S_HEADER_22;
		strData1[22] = S_HEADER_23;
		// ANK-3422-00-00 ADD START
		strData1[23] = S_HEADER_24;
		// ANK-3422-00-00 ADD END
		strRecList.add(createCSV1(strData1, true) + JCNStrConst.S_LINE_SEPARAOR_CR_LF);
		
		// ファイル出力件数カウントアップ
		intOutputCnt++;
		
		// 契約者タイプコード取得
		JBSbatCommonDBInterface dbList1 = new JBSbatCommonDBInterface();
//		String[] strKTCList = new String[4];
		String[] strKTCList = new String[5];
		int i = 0;
		dbList1.setValue(JCNStrConst.S_CD00036);
		executeZM_M_CD_NM_KANRI_CN_SELECT_001(dbList1.getList().toArray());
		for(map = db_ZM_M_CD_NM_KANRI.selectNext(); null != map; map = db_ZM_M_CD_NM_KANRI.selectNext())
		{
			strKTCList[i] = map.getString("CD_DIV");
			i++;
		}
		
		String strKeishaTypeCD3 = strKTCList[2];
		
		// コンテンツ決済文書種別コード取得
		JBSbatCommonDBInterface dbList2 = new JBSbatCommonDBInterface();
		String[] strCBSCList = new String[2];
		i = 0;
		dbList2.setValue(JCNStrConst.S_CD01134);
		executeZM_M_CD_NM_KANRI_CN_SELECT_001(dbList2.getList().toArray());
		for(map = db_ZM_M_CD_NM_KANRI.selectNext(); null != map; map = db_ZM_M_CD_NM_KANRI.selectNext())
		{
			strCBSCList[i] = map.getString("CD_DIV");
			i++;
		}
		
		String strCnksBunSbtCD02 = strCBSCList[1];
		
		// ダウンロード済フラグ取得
		JBSbatCommonDBInterface dbList3 = new JBSbatCommonDBInterface();
		String[] strDZFList = new String[2];
		i = 0;
		dbList3.setValue(JCNStrConst.S_CD00833);
		executeZM_M_CD_NM_KANRI_CN_SELECT_001(dbList3.getList().toArray());
		for(map = db_ZM_M_CD_NM_KANRI.selectNext(); null != map; map = db_ZM_M_CD_NM_KANRI.selectNext())
		{
			strDZFList[i] = map.getString("CD_DIV");
			i++;
		}
		
		String strDLZumiFlg0 = strDZFList[0];
		
		// 会員種別コード取得
		JBSbatCommonDBInterface dbList10 = new JBSbatCommonDBInterface();
		String[] strMSCList = new String[6];
		i = 0;
		dbList10.setValue(JCNStrConst.S_CD00039);
		executeZM_M_CD_NM_KANRI_CN_SELECT_001(dbList10.getList().toArray());
		for(map = db_ZM_M_CD_NM_KANRI.selectNext(); null != map; map = db_ZM_M_CD_NM_KANRI.selectNext())
		{
			strMSCList[i] = map.getString("CD_DIV");
			i++;
		}
		
		String strMemberSbtCD00 = strMSCList[0];
		String strMemberSbtCD30 = strMSCList[5];
		
		// コード区分名取得（コンテンツ支払い方法コード→決済方法）
		HashMap<String, String> hmKesaiWay = new HashMap<String, String>();
		JBSbatCommonDBInterface dbList4 = new JBSbatCommonDBInterface();
		dbList4.setValue(JCNStrConst.S_CD00828);
		executeZM_M_CD_NM_KANRI_CN_SELECT_003(dbList4.getList().toArray());
		for(map = db_ZM_M_CD_NM_KANRI.selectNext(); null != map; map = db_ZM_M_CD_NM_KANRI.selectNext())
		{
			hmKesaiWay.put(map.getString("CD_DIV"), map.getString("CD_DIV_NM"));
		}
		
		// コード区分名取得（契約者タイプコード→契約者タイプ）
		HashMap<String, String> hmKeishaType = new HashMap<String, String>();
		JBSbatCommonDBInterface dbList5 = new JBSbatCommonDBInterface();
		dbList5.setValue(JCNStrConst.S_CD00036);
		executeZM_M_CD_NM_KANRI_CN_SELECT_003(dbList5.getList().toArray());
		for(map = db_ZM_M_CD_NM_KANRI.selectNext(); null != map; map = db_ZM_M_CD_NM_KANRI.selectNext())
		{
			hmKeishaType.put(map.getString("CD_DIV"), map.getString("CD_DIV_NM"));
		}
		
		// コード区分名取得（会員種別コード→会員種別）
		HashMap<String, String> hmMemberSbt = new HashMap<String, String>();
		JBSbatCommonDBInterface dbList6 = new JBSbatCommonDBInterface();
		dbList6.setValue(JCNStrConst.S_CD00039);
		executeZM_M_CD_NM_KANRI_CN_SELECT_003(dbList6.getList().toArray());
		for(map = db_ZM_M_CD_NM_KANRI.selectNext(); null != map; map = db_ZM_M_CD_NM_KANRI.selectNext())
		{
			hmMemberSbt.put(map.getString("CD_DIV"), map.getString("CD_DIV_NM"));
		}
		
		// コード区分名取得（料金グループコード→料金グループ名）
		HashMap<String, String> hmPRC_GRP = new HashMap<String, String>();
		JBSbatCommonDBInterface dbList7 = new JBSbatCommonDBInterface();
		dbList7.setValue(JCNStrConst.S_CD01201);
		executeZM_M_CD_NM_KANRI_CN_SELECT_003(dbList7.getList().toArray());
		for(map = db_ZM_M_CD_NM_KANRI.selectNext(); null != map; map = db_ZM_M_CD_NM_KANRI.selectNext())
		{
			hmPRC_GRP.put(map.getString("CD_DIV"), map.getString("CD_DIV_NM"));
		}
		
		// ANK-3422-00-00 ADD START
		// コード区分名取得（連携先区分→連携先区分名称）
		HashMap<String, String> rnksakiCdNm = new HashMap<String, String>();
		JBSbatCommonDBInterface dbList = new JBSbatCommonDBInterface();
		dbList.setValue(JCNStrConst.S_CD00520);
		executeZM_M_CD_NM_KANRI_CN_SELECT_007(dbList.getList().toArray());
		for(map = db_ZM_M_CD_NM_KANRI.selectNext(); null != map; map = db_ZM_M_CD_NM_KANRI.selectNext())
		{
			rnksakiCdNm.put(map.getString("CD_DIV"), map.getString("CD_DIV_NM"));
		}
		// ANK-3422-00-00 ADD END
		
		// コンテンツ毎売上集計ワーク情報取得
		// 変数の宣言
		// データ部格納用配列
		// ANK-3422-00-00 MOD START
//		String[] strData2 = new String[23];
		String[] strData2 = new String[24];
		// ANK-3422-00-00 MOD END
		
		String strContChrgSbt = "";		// コンテンツ課金種別
		String strContKeiNo = "";		// コンテンツ契約番号
		String strContSvcCD = "";		// コンテンツサービスコード
		String strContSvcNM = "";		// コンテンツサービス名
		String strContSkbtCD = "";		// コンテンツ識別コード
		String strContNM = "";			// コンテンツ名
		String strContKeiStaDTM = "";	// コンテンツ契約開始年月日時分秒
		String strContKeiEndDTM = "";	// コンテンツ契約終了年月日時分秒
		String strContTanka = "";		// コンテンツ単価
		String strContBuyCnt = "";		// コンテンツ購入数量
		String strChrgAmnt = "";		// 課金額
		String strSalesGenAmnt = "";	// 売上減額
		String strTeiseAmnt = "";		// 訂正金額
		String strGokei = "";			// 合計
		String strContPaywayCD = "";	// コンテンツ支払い方法コード
		String strCrecardCompNM = "";	// クレジットカード会社名
		String strSupplier = "";		// 仕入先
		String strSysid = "";			// SYSID
		String strSvcKeiNo = "";		// サービス契約番号
		String strGtmtKeiPrcGrpCD = "";	// 月末時契約料金グループコード
		String strKeishaTypeCD = "";	// 契約者タイプコード
		String strMemberSbtCD = "";		// 会員種別コード
		String strTestID = "";			// テスト用ID
		String strVBKeiUM = "";			// ウイルスバスター契約有無
		String strShukKeiPrcGrpCD = "";	// 集計時契約料金グループコード
		long lTeiseGokei = 0;			// 訂正済合計（数値）
		long lTeiseAmnt = 0;			// 訂正金額（数値）
		// ANK-3422-00-00 ADD START
		String strUriAgeCD = "";		// 売上区分
		// ANK-3422-00-00 ADD END	
		
		// コンテンツ毎売上集計ワークからデータを抽出
		executeCN_T_CONT_SALES_SHUK_CN_SELECT_001();
		map = db_CN_T_CONT_SALES_SHUK.selectNext();
		
		// データが0件であれば警告ログを出力し、処理を終了する
		if(null == map)
		{
			super.logPrint.printBusinessErrorLog(ECNB0410JW, new String[] {S_JOB_NAME + JCNStrConst.S_HAIFUN + D_TBL_NAME_CN_T_CONT_SALES_SHUK + "取得"});		
		}
		else
		{
		
			// 1レコード目を読み出して比較用変数へ格納する
			String strContChrgSbtC = map.getString("CHRG_SBT_CD");
			String strContKeiNoC = map.getString("CONT_KEI_NO");
			String strContSvcCDC = map.getString("CONT_SVC_CD");
			String strContSvcNMC = map.getString("CONT_SVC_NM");
			String strContSkbtCDC = map.getString("CONT_SKBT_CD");
			String strContNMC = map.getString("CONT_NM");
			String strContKeiStaDTMC = map.getString("CONT_KEI_STA_DTM");
			String strContKeiEndDTMC = map.getString("CONT_KEI_END_DTM");
			String strContTankaC = map.getString("CONT_TANKA");
			String strContBuyCntC = map.getString("CONT_BUY_CNT");
			String strChrgAmntC = map.getString("CHRG_AMNT");
			String strSalesGenAmntC = map.getString("SALES_GEN_AMNT");
			String strTeiseAmntC = "";
			String strGokeiC = strChrgAmntC;
			String strContPaywayCDC = map.getString("CONT_PAYWAY_CD");
			String strCrecardCompNMC = map.getString("CRECARD_COMP_NM");
			String strSupplierC = map.getString("SUPPLIER");
			String strSysidC = map.getString("SYSID");
			String strSvcKeiNoC = map.getString("SVC_KEI_NO");
			String strGtmtKeiPrcGrpCDC = map.getString("GTMT_JI_KEI_PRC_SKBT_CD");
			String strKeishaTypeCDC = map.getString("KEISHA_TYPE_CD");
			String strMemberSbtCDC = map.getString("MEMBER_SBT_CD");
			String strTestIDC = "";
			// ANK-3422-00-00 ADD START
			String strUriAgeCDC = map.getString("RNKSAKI_CD");
			// ANK-3422-00-00 ADD END
			
			// テスト用ＩＤ設定
			if(strKeishaTypeCD3.equals(strKeishaTypeCDC))
			{
				strTestIDC = S_TEST_ID;
			}
			else
			{
				strTestIDC = "";
			}
			
			String strVBKeiUMC = "";
			
			// ＶＢ契約有無ネット契約有無設定
			if(S_VB_KEI_UM_CD_0.equals(map.getString("VBKEI_UM_NETKEI_UM_SKBT_CD")))
			{
				strVBKeiUMC = S_VB_KEI_UM;
			}
			else
			{
				strVBKeiUMC = "";
			}
			
			String strShukKeiPrcGrpCDC = map.getString("SHUK_JI_KEI_PRC_SKBT_CD");
			
			
			// 2レコード目以降を読み込みコンテンツ毎売上集計ファイルへ出力する
			for(map = db_CN_T_CONT_SALES_SHUK.selectNext(); null != map; map = db_CN_T_CONT_SALES_SHUK.selectNext())
			{
				if(S_CONT_CHRG_SBT_CD_3.equals(map.getString("CONT_CHRG_SBT_CD")))
				{
					if(strContKeiNoC.equals(map.getString("CONT_KEI_NO")))
					{
						// 訂正済合計と訂正金額の数値を初期化する
						lTeiseGokei = 0;
						lTeiseAmnt = 0;
					}
					else
					{
						strGokeiC = "0";
					}
					
					// 売上減額取得
					strSalesGenAmnt = map.getString("SALES_GEN_AMNT");
					
					// 課金情報の合計に課金訂正の売上減額（マイナス）を加算する
					lTeiseGokei = Long.parseLong(strGokeiC) + Long.parseLong(strSalesGenAmnt);
					
					// 課金情報の合計から訂正された合計を減算した値を訂正金額とする
					lTeiseAmnt = lTeiseGokei - Long.parseLong(strGokeiC);
					
					//比較用合計を非表示に設定
					strGokeiC = "";
					
					// 課金訂正情報の処理
					strContChrgSbt = map.getString("CONT_CHRG_SBT_CD");
					strContKeiNo = map.getString("CONT_KEI_NO");
					strContSvcCD = map.getString("CONT_SVC_CD");
					strContSvcNM = map.getString("CONT_SVC_NM");
					strContSkbtCD = "";
					strContNM = map.getString("CONT_NM");
					strContKeiStaDTM = map.getString("CHRG_TEISE_DTM");
					strContKeiEndDTM = "";
					strContTanka = "";
					strContBuyCnt = "";
					strChrgAmnt = "";
					strTeiseAmnt = String.valueOf(lTeiseAmnt);
					strGokei = String.valueOf(lTeiseGokei);
					strContPaywayCD = map.getString("CONT_PAYWAY_CD");
					strCrecardCompNM = strCrecardCompNMC;
					strSupplier = "";
					strSysid = map.getString("SYSID");
					strSvcKeiNo = strSvcKeiNoC;
					strGtmtKeiPrcGrpCD = strGtmtKeiPrcGrpCDC;
					strKeishaTypeCD = map.getString("KEISHA_TYPE_CD");
					strMemberSbtCD = map.getString("MEMBER_SBT_CD");
					// ANK-3422-00-00 ADD START
					strUriAgeCD = map.getString("RNKSAKI_CD");
					// ANK-3422-00-00 ADD END
					
					// テスト用ＩＤ設定
					if(strKeishaTypeCD3.equals(strKeishaTypeCD))
					{
						strTestID = S_TEST_ID;
					}
					else
					{
						strTestID = "";
					}
					strVBKeiUM = "";
					strShukKeiPrcGrpCD = strShukKeiPrcGrpCDC;
				}
				else
				{
					// 課金情報の場合（クレカ課金、ISP課金、無料）
					// 読み取ったデータを変数へ格納する
					strContChrgSbt = map.getString("CONT_CHRG_SBT_CD");
					strContKeiNo = map.getString("CONT_KEI_NO");
					strContSvcCD = map.getString("CONT_SVC_CD");
					strContSvcNM = map.getString("CONT_SVC_NM");
					strContSkbtCD = map.getString("CONT_SKBT_CD");
					strContNM = map.getString("CONT_NM");
					strContKeiStaDTM = map.getString("CONT_KEI_STA_DTM");
					strContKeiEndDTM = map.getString("CONT_KEI_END_DTM");
					strContTanka = map.getString("CONT_TANKA");
					strContBuyCnt = map.getString("CONT_BUY_CNT");
					strChrgAmnt = map.getString("CHRG_AMNT");
					strSalesGenAmnt = map.getString("SALES_GEN_AMNT");
					strTeiseAmnt = "";
					strGokei = strChrgAmnt;
					strContPaywayCD = map.getString("CONT_PAYWAY_CD");
					strCrecardCompNM = map.getString("CRECARD_COMP_NM");
					strSupplier = map.getString("SUPPLIER");
					strSysid = map.getString("SYSID");
					strSvcKeiNo = map.getString("SVC_KEI_NO");
					strGtmtKeiPrcGrpCD = map.getString("GTMT_JI_KEI_PRC_SKBT_CD");
					strKeishaTypeCD = map.getString("KEISHA_TYPE_CD");
					strMemberSbtCD = map.getString("MEMBER_SBT_CD");
					// ANK-3422-00-00 ADD START
					strUriAgeCD = map.getString("RNKSAKI_CD");
					// ANK-3422-00-00 ADD END
					
					// テスト用ＩＤ設定
					if(strKeishaTypeCD3.equals(strKeishaTypeCD))
					{
						strTestID = S_TEST_ID;
					}
					else
					{
						strTestID = "";
					}
					
					// ＶＢ契約有無ネット契約有無設定
					if(S_VB_KEI_UM_CD_0.equals(map.getString("VBKEI_UM_NETKEI_UM_SKBT_CD")))
					{
						strVBKeiUM = S_VB_KEI_UM;
					}
					else
					{
						strVBKeiUM = "";
					}
					
					strShukKeiPrcGrpCD = map.getString("SHUK_JI_KEI_PRC_SKBT_CD");
				}
				
				// 比較用変数のデータをファイルに出力
				if(S_CONT_CHRG_SBT_CD_0.equals(strContChrgSbtC))
				{
					// 無料コンテンツの場合
					// ファイルに出力するデータを設定
					strData2[0] = strContKeiNoC;
					strData2[1] = strContSvcCDC;
					strData2[2] = strContSvcNMC;
					strData2[3] = strContSkbtCDC;
					strData2[4] = strContNMC;
					strData2[5] = strContKeiStaDTMC;
					strData2[6] = strContKeiEndDTMC;
					strData2[7] = strContTankaC;
					strData2[8] = strContBuyCntC;
					strData2[9] = "";
					strData2[10] = "";
					strData2[11] = "";
					strData2[12] = hmKesaiWay.get(strContPaywayCDC);
					strData2[13] = "";
					strData2[14] = strSupplierC;
					strData2[15] = strSysidC;
					strData2[16] = strSvcKeiNoC;
					
					if(S_PRD_GRP_CD_00.equals(strGtmtKeiPrcGrpCDC))
					{
						strData2[17] = S_OPEN_KISN;
					}
					else
					{
						strData2[17] = hmPRC_GRP.get(strGtmtKeiPrcGrpCDC);
					}
					
					if(strMemberSbtCD00.equals(strMemberSbtCDC) || strMemberSbtCD30.equals(strMemberSbtCDC))
					{
						strData2[18] = "";
					}
					else
					{
						strData2[18] = hmKeishaType.get(strKeishaTypeCDC);
					}
					
					strData2[19] = strTestIDC;
					strData2[20] = hmMemberSbt.get(strMemberSbtCDC);
					strData2[21] = "";
					
					if(S_PRD_GRP_CD_00.equals(strShukKeiPrcGrpCDC))
					{
						strData2[22] = S_OPEN_KISN;
					}
					else
					{
						strData2[22] = hmPRC_GRP.get(strShukKeiPrcGrpCDC);
					}
					// ANK-3422-00-00 ADD START
					if(strUriAgeCDC == null)
					{
						// 売上区分がnullの場合「eo」を設定
						strData2[23] = S_URIAGE_CD_NM_EO;
					}
					else
					{
						// コード名称から連携先区分を設定
						if((rnksakiCdNm.get(strUriAgeCDC) != null))
						{
							String uriageCdNm = rnksakiCdNm.get(strUriAgeCDC);
							strData2[23] = uriageCdNm;
						}
						else
						{
							strData2[23] = S_URIAGE_CD_NM;
						}
					}
					// ANK-3422-00-00 ADD END
				}
				else
				{
					// クレカ課金、ISP課金、課金訂正の場合
					// ファイルに出力するデータを設定
					strData2[0] = strContKeiNoC;
					strData2[1] = strContSvcCDC;
					strData2[2] = strContSvcNMC;
					strData2[3] = strContSkbtCDC;
					strData2[4] = strContNMC;
					strData2[5] = strContKeiStaDTMC;
					strData2[6] = strContKeiEndDTMC;
					strData2[7] = strContTankaC;
					strData2[8] = strContBuyCntC;
					strData2[9] = strChrgAmntC;
					strData2[10] = strTeiseAmntC;
					strData2[11] = strGokeiC;
					strData2[12] = hmKesaiWay.get(strContPaywayCDC);
					strData2[13] = strCrecardCompNMC;
					strData2[14] = strSupplierC;
					strData2[15] = strSysidC;
					strData2[16] = strSvcKeiNoC;
					
					if(S_PRD_GRP_CD_00.equals(strGtmtKeiPrcGrpCDC))
					{
						strData2[17] = S_OPEN_KISN;
					}
					else
					{
						strData2[17] = hmPRC_GRP.get(strGtmtKeiPrcGrpCDC);
					}
					
					if(strMemberSbtCD00.equals(strMemberSbtCDC) || strMemberSbtCD30.equals(strMemberSbtCDC))
					{
						strData2[18] = "";
					}
					else
					{
						strData2[18] = hmKeishaType.get(strKeishaTypeCDC);
					}
					
					strData2[19] = strTestIDC;
					strData2[20] = hmMemberSbt.get(strMemberSbtCDC);
					strData2[21] = strVBKeiUMC;
					
					if(S_PRD_GRP_CD_00.equals(strShukKeiPrcGrpCDC))
					{
						strData2[22] = S_OPEN_KISN;
					}
					else
					{
						strData2[22] = hmPRC_GRP.get(strShukKeiPrcGrpCDC);
					}
					// ANK-3422-00-00 ADD START
					if(strUriAgeCDC == null)
					{
						// 売上区分がnullの場合「eo」を設定
						strData2[23] = S_URIAGE_CD_NM_EO;
					}
					else
					{
						// コード名称から連携先区分を設定
						if((rnksakiCdNm.get(strUriAgeCDC) != null))
						{
							String uriageCdNm = rnksakiCdNm.get(strUriAgeCDC);
							strData2[23] = uriageCdNm;
						}
						else
						{
							strData2[23] = S_URIAGE_CD_NM;
						}
					}
					// ANK-3422-00-00 ADD END
				}
				
				strRecList.add(createCSV2(strData2, true) + JCNStrConst.S_LINE_SEPARAOR_CR_LF);
				
				// ファイル出力件数カウントアップ
				intOutputCnt++;
				
				// 変数から比較用変数へ値を退避
				strContChrgSbtC = strContChrgSbt;
				strContKeiNoC = strContKeiNo;
				strContSvcCDC = strContSvcCD;
				strContSvcNMC = strContSvcNM;
				strContSkbtCDC = strContSkbtCD;
				strContNMC = strContNM;
				strContKeiStaDTMC = strContKeiStaDTM;
				strContKeiEndDTMC = strContKeiEndDTM;
				strContTankaC = strContTanka;
				strContBuyCntC = strContBuyCnt;
				strChrgAmntC = strChrgAmnt;
				strSalesGenAmntC = strSalesGenAmnt;
				strTeiseAmntC = strTeiseAmnt;
				strGokeiC = strGokei;
				strContPaywayCDC = strContPaywayCD;
				strCrecardCompNMC = strCrecardCompNM;
				strSupplierC = strSupplier;
				strSysidC = strSysid;
				strSvcKeiNoC = strSvcKeiNo;
				strGtmtKeiPrcGrpCDC = strGtmtKeiPrcGrpCD;
				strKeishaTypeCDC = strKeishaTypeCD;
				strMemberSbtCDC = strMemberSbtCD;
				strTestIDC = strTestID;
				strVBKeiUMC = strVBKeiUM;
				strShukKeiPrcGrpCDC = strShukKeiPrcGrpCD;
				// ANK-3422-00-00 ADD START
				strUriAgeCDC = strUriAgeCD;
				// ANK-3422-00-00 ADD END
			}
			
			// 比較用変数のデータをファイルに出力
			if(S_CONT_CHRG_SBT_CD_0.equals(strContChrgSbtC))
			{
				// 無料コンテンツの場合
				// ファイルに出力するデータを設定
				strData2[0] = strContKeiNoC;
				strData2[1] = strContSvcCDC;
				strData2[2] = strContSvcNMC;
				strData2[3] = strContSkbtCDC;
				strData2[4] = strContNMC;
				strData2[5] = strContKeiStaDTMC;
				strData2[6] = strContKeiEndDTMC;
				strData2[7] = strContTankaC;
				strData2[8] = strContBuyCntC;
				strData2[9] = "";
				strData2[10] = "";
				strData2[11] = "";
				strData2[12] = hmKesaiWay.get(strContPaywayCDC);
				strData2[13] = "";
				strData2[14] = strSupplierC;
				strData2[15] = strSysidC;
				strData2[16] = strSvcKeiNoC;
				
				if(S_PRD_GRP_CD_00.equals(strGtmtKeiPrcGrpCDC))
				{
					strData2[17] = S_OPEN_KISN;
				}
				else
				{
					strData2[17] = hmPRC_GRP.get(strGtmtKeiPrcGrpCDC);
				}
				
				if(strMemberSbtCD00.equals(strMemberSbtCDC) || strMemberSbtCD30.equals(strMemberSbtCDC))
				{
					strData2[18] = "";
				}
				else
				{
					strData2[18] = hmKeishaType.get(strKeishaTypeCDC);
				}
				
				strData2[19] = strTestIDC;
				strData2[20] = hmMemberSbt.get(strMemberSbtCDC);
				strData2[21] = "";
				
				if(S_PRD_GRP_CD_00.equals(strShukKeiPrcGrpCDC))
				{
					strData2[22] = S_OPEN_KISN;
				}
				else
				{
					strData2[22] = hmPRC_GRP.get(strShukKeiPrcGrpCDC);
				}
				// ANK-3422-00-00 ADD START
				if(strUriAgeCDC == null)
				{
					// 売上区分がnullの場合「eo」を設定
					strData2[23] = S_URIAGE_CD_NM_EO;
				}
				else
				{
					// コード名称から連携先区分を設定
					if((rnksakiCdNm.get(strUriAgeCDC) != null))
					{
						String uriageCdNm = rnksakiCdNm.get(strUriAgeCDC);
						strData2[23] = uriageCdNm;
					}
					else
					{
						strData2[23] = S_URIAGE_CD_NM;
					}
				}
				// ANK-3422-00-00 ADD END
			}
			else
			{
				// クレカ課金、ISP課金、課金訂正の場合
				// ファイルに出力するデータを設定
				strData2[0] = strContKeiNoC;
				strData2[1] = strContSvcCDC;
				strData2[2] = strContSvcNMC;
				strData2[3] = strContSkbtCDC;
				strData2[4] = strContNMC;
				strData2[5] = strContKeiStaDTMC;
				strData2[6] = strContKeiEndDTMC;
				strData2[7] = strContTankaC;
				strData2[8] = strContBuyCntC;
				strData2[9] = strChrgAmntC;
				strData2[10] = strTeiseAmntC;
				strData2[11] = strGokeiC;
				strData2[12] = hmKesaiWay.get(strContPaywayCDC);
				strData2[13] = strCrecardCompNMC;
				strData2[14] = strSupplierC;
				strData2[15] = strSysidC;
				strData2[16] = strSvcKeiNoC;
				
				if(S_PRD_GRP_CD_00.equals(strGtmtKeiPrcGrpCDC))
				{
					strData2[17] = S_OPEN_KISN;
				}
				else
				{
					strData2[17] = hmPRC_GRP.get(strGtmtKeiPrcGrpCDC);
				}
				
				if(strMemberSbtCD00.equals(strMemberSbtCDC) || strMemberSbtCD30.equals(strMemberSbtCDC))
				{
					strData2[18] = "";
				}
				else
				{
					strData2[18] = hmKeishaType.get(strKeishaTypeCDC);
				}
				
				strData2[19] = strTestIDC;
				strData2[20] = hmMemberSbt.get(strMemberSbtCDC);
				strData2[21] = strVBKeiUMC;
				
				if(S_PRD_GRP_CD_00.equals(strShukKeiPrcGrpCDC))
				{
					strData2[22] = S_OPEN_KISN;
				}
				else
				{
					strData2[22] = hmPRC_GRP.get(strShukKeiPrcGrpCDC);
				}
				// ANK-3422-00-00 ADD START
				if(strUriAgeCDC == null)
				{
					// 売上区分がnullの場合「eo」を設定
					strData2[23] = S_URIAGE_CD_NM_EO;
				}
				else
				{
					// コード名称から連携先区分を設定
					if((rnksakiCdNm.get(strUriAgeCDC) != null))
					{
						String uriageCdNm = rnksakiCdNm.get(strUriAgeCDC);
						strData2[23] = uriageCdNm;
					}
					else
					{
						strData2[23] = S_URIAGE_CD_NM;
					}
				}
				// ANK-3422-00-00 ADD END
			}
			
			strRecList.add(createCSV2(strData2, true) + JCNStrConst.S_LINE_SEPARAOR_CR_LF);
			
			// ファイル出力件数カウントアップ
			intOutputCnt++;
			
			// ファイル出力
			JBSbatBusinessFileUtil obj = JCNBatCommon.createBusinessFileUtil(strContSalShukFile, JCNStrConst.SJIS, JCNStrConst.S_LINE_SEPARAOR_LF, "");
			JCNBatCommon.printBusinessFileUtil(obj, strRecList);
			JCNBatCommon.closeBusinessFileUtil(obj);
			
			// ファイル削除年月日の算出
			String strFileDelYMD = JPCDateUtil.addMonth(strTranTgYMD, I_P_SIX);
			
			// パラメータを区切り文字で分割する
			String[] lines = strContSalShukFile.split(JCNStrConst.S_PARAM_SLASH);
			
			// 出力したファイルをzip圧縮する。
			String strContSalShukFileZip = JCNBatCommon.compressFile(strContSalShukFile, strFreeParam2, "5");
	
			
			// 電子ファイル管理にコンテンツ毎売上集計ファイルを登録する
			String[] strEFileReturn = JCCbatDenshiFileUtil.createDenshiFile(commonItem, S_FILE_CD, strContSalShukFileZip, strFileDelYMD);
			
			// 電子ファイル管理番号取得
			String strEFileKanriNo = strEFileReturn[0];
			
			String strFileNM = "";
			
			// ファイル名を取得
			for(i = 0; i < lines.length; i++)
			{
				strFileNM = lines[i];
				
				// 「.csv」の文言を「.zip」に置換する
				strFileNM = strFileNM.replaceAll(".csv", ".zip");
			}
			
			// コンテンツ決済電子ファイル管理番号を取得（+1加算）
			executeCN_T_CNKS_EFILE_KNRI_CN_SELECT_001();
			String strCnksEFileKNo = db_CN_T_CNKS_EFILE_KNRI.selectNext().getString("SEQ_NEXTVAL");
			String strCnksEFileKNoZP = JCNBatCommon.strZeroPad(strCnksEFileKNo, 10);
			
			// コンテンツ決済電子ファイル管理へ登録
			JBSbatCommonDBInterface dbList9 = new JBSbatCommonDBInterface();
			dbList9.setValue(strCnksEFileKNoZP);
			dbList9.setValue(strCnksBunSbtCD02);
			dbList9.setValue(strEFileKanriNo);
			dbList9.setValue(strFileNM);
			dbList9.setValue(strDLZumiFlg0);
//			dbList9.setValue(JCNBatCommon.getSysDateTimeStamp());
//			dbList9.setValue(commonItem.getBatchUserId());
//			dbList9.setValue(JCNBatCommon.getSysDateTimeStamp());
//			dbList9.setValue(commonItem.getBatchUserId());
			dbList9.setValue("");
			dbList9.setValue("");
//			dbList9.setValue(JCNStrConst.S_MK_FLG);
			executeCN_T_CNKS_EFILE_KNRI_CN_INSERT_001(dbList9.getList().toArray());
		
			// 電子ファイル管理テーブルに正常登録された場合ダウンロードファイル管理の登録を行う
			String[] insertData = new String[7];
			insertData[0] = TRN_KANRI_NO;
			insertData[1] = strFileNM;
			insertData[2] = String.valueOf(intOutputCnt);
			insertData[3] = JCNBatCommon.getSysDateTimeStamp();
			insertData[4] = strFileDelYMD;
//			insertData[5] = JCNBatCommon.getSysDateTimeStamp();
//			insertData[6] = commonItem.getBatchUserId();
//			insertData[7] = JCNBatCommon.getSysDateTimeStamp();
//			insertData[8] = commonItem.getBatchUserId();
			insertData[5] = strEFileKanriNo;
			insertData[6] = strEFileReturn[1];
			
			executeZM_T_DL_FILE_KANRI_CN_INSERT_001(insertData);
		}
		
		// ファイル出力件数ログ出力
		super.logPrint.printBusinessErrorLog(ECNB0090AI, new String[] {S_FILE_NAME, String.valueOf(intOutputCnt)});
		
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_CN_T_TRAN_YMD_INFO.close();
		db_CN_T_CONT_SALES_SHUK.close();
		db_ZM_M_CD_NM_KANRI.close();
		db_KK_M_PRC_GRP.close();
		db_CN_T_CNKS_EFILE_KNRI.close();
		db_ZM_T_DL_FILE_KANRI.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 * SQLKEY(CN_SELECT_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	バッチ処理コード
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCN_T_TRAN_YMD_INFO_CN_SELECT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_CN_T_TRAN_YMD_INFO.selectBySqlDefine(paramList, CN_T_TRAN_YMD_INFO_CN_SELECT_002);
	}

	/**
	 * SQLKEY(CN_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 * </pre>
	 * <p>
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCN_T_CONT_SALES_SHUK_CN_SELECT_001() throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();

		// DBアクセスを実行します
		db_CN_T_CONT_SALES_SHUK.selectBySqlDefine(paramList, CN_T_CONT_SALES_SHUK_CN_SELECT_001);
	}

	/**
	 * SQLKEY(CN_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	コード種別コード
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZM_M_CD_NM_KANRI_CN_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_ZM_M_CD_NM_KANRI.selectBySqlDefine(paramList, ZM_M_CD_NM_KANRI_CN_SELECT_001);
	}

	/**
	 * SQLKEY(CN_SELECT_003)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	コード種別コード
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZM_M_CD_NM_KANRI_CN_SELECT_003(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_ZM_M_CD_NM_KANRI.selectBySqlDefine(paramList, ZM_M_CD_NM_KANRI_CN_SELECT_003);
	}

	/**
	 * SQLKEY(CN_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 * </pre>
	 * <p>
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCN_T_CNKS_EFILE_KNRI_CN_SELECT_001() throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();

		// DBアクセスを実行します
		db_CN_T_CNKS_EFILE_KNRI.selectBySqlDefine(paramList, CN_T_CNKS_EFILE_KNRI_CN_SELECT_001);
	}

	/**
	 * SQLKEY(CN_INSERT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	コンテンツ決済電子ファイル管理番号
	 *		 	コンテンツ決済文書種別コード
	 *		 	電子ファイル管理番号
	 *		 	コンテンツ決済電子ファイル名
	 *		 	ダウンロード済フラグ
	 *		 	削除年月日時分秒
	 *		 	削除オペレータアカウント
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCN_T_CNKS_EFILE_KNRI_CN_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());

		// DBアクセスを実行します
		db_CN_T_CNKS_EFILE_KNRI.executeBySqlDefine(paramList, CN_T_CNKS_EFILE_KNRI_CN_INSERT_001);
	}
	
	/**
	 * SQLKEY(CN_INSERT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	処理管理番号
	 *		 	電子ファイル管理番号
	 *		 	ファイル登録年月日時分秒
	 *		 	電子ファイル管理番号
	 *		 	世代登録年月日時分秒
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZM_T_DL_FILE_KANRI_CN_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());

		// DBアクセスを実行します
		db_ZM_T_DL_FILE_KANRI.executeBySqlDefine(paramList, ZM_T_DL_FILE_KANRI_CN_INSERT_001);
	}
	
// ANK-3422-00-00 ADD START
	/**
	 * SQLKEY(CN_SELECT_007)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 * </pre>
	 * <p>
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZM_M_CD_NM_KANRI_CN_SELECT_007(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		
		// DBアクセスを実行します
		db_ZM_M_CD_NM_KANRI.selectBySqlDefine(paramList,ZM_M_CD_NM_KANRI_CN_SELECT_007);
	}
	
// ANK-3422-00-00 ADD END
	
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * CSV形式に文字列編集を行います(ヘッダー部専用)。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で連結文字列、""括り有無を設定します。<br>
	 *
	 * 2.引数を元に文字列を連結します。
	 *   連結文字列最後尾には改行コードを設定します。<br>
	 *   返却文字列内のnullは""へ置換します。
	 * </pre>
	 * <p>
	 * @param strData       出力対象データ。
	 * @param bDqFlg        ""括りあり(true),括りなし(false)。
	 * @return strRec       文字列連結結果を返却します。
	 * @throws Exception    業務サービス内で発生した例外全般。
	 */
	public static String createCSV1(String[] strData, boolean bDqFlg) throws Exception
	{

		StringBuffer sBufRec = new StringBuffer();

		for (int i = 0; i < strData.length; i++)
		{
			if(!bDqFlg)
			{
				sBufRec.append(strData[i]);
			}
			else
			{
					sBufRec.append(JCNStrConst.S_SEP_DQ);
					sBufRec.append(strData[i]);
					sBufRec.append(JCNStrConst.S_SEP_DQ);
			}
				
			if(i < strData.length - 1)
			{
					sBufRec.append(JCNStrConst.S_SEP_CAM);
			}
		}
		
		return sBufRec.toString().replace(JCNStrConst.S_IS_NULL, "");
	}
	
	/**
	 * CSV形式に文字列編集を行います(データ部専用)。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で連結文字列、""括り有無を設定します。<br>
	 *
	 * 2.引数を元に文字列を連結します。
	 *   連結文字列最後尾には改行コードを設定します。<br>
	 *   返却文字列内のnullは""へ置換します。
	 * 3.数字項目が格納されたインデックスに対しては""括りを実行しない。
	 * </pre>
	 * <p>
	 * @param strData       出力対象データ。
	 * @param bDqFlg        ""括りあり(true),括りなし(false)。
	 * @return strRec       文字列連結結果を返却します。
	 * @throws Exception    業務サービス内で発生した例外全般。
	 */
	public static String createCSV2(String[] strData, boolean bDqFlg) throws Exception
	{

		StringBuffer sBufRec = new StringBuffer();

		for (int i = 0; i < strData.length; i++)
		{
			if(!bDqFlg)
			{
				sBufRec.append(strData[i]);
			}
			else
			{
				if(i >= 7 && i <= 11)
				{
					sBufRec.append(strData[i]);
				}
				else
				{
					sBufRec.append(JCNStrConst.S_SEP_DQ);
					sBufRec.append(strData[i]);
					sBufRec.append(JCNStrConst.S_SEP_DQ);
				}
			}
				
			if(i < strData.length - 1)
			{
					sBufRec.append(JCNStrConst.S_SEP_CAM);
			}
		}
		
		return sBufRec.toString().replace(JCNStrConst.S_IS_NULL, "");
	}
}
