#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約管理
#
# シェル名      ：ＥＣ向けスマートリンク契約情報ファイル受信
#
# 機能          ：EC向けスマートリンク契約情報ファイルを作成する。
#
#※バッチ処理実行前に連携されたファイル"EC_SYSID.csv"を所定のディレクトリにバックアップする。バックアップファイル名は"EC_SYSID_yyyyMMdd.csv"
#
# コマンド形式  ：EO2EM0110J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v10.00.00      2014/09/08   FJ)藤田     【ANK-1847-00-00】新規作成
# v10.01.00      2014/09/12   FJ)藤田     【IT1-2014-0000305】対応
# v11.00.00      2014/11/21   FJ)藤田     【ANK-2407-00-00】対応
# v23.00.00      2016/03/08   FJ)星野     【OM-2016-0000271】対応
##############################################################

##############################################################
# 環境変数定義
##############################################################

#
#---ツール格納場所
#
G_TOOLSH=.

#
#---環境変数定義Shell呼び出し
#
. EOK010110J0.sh

#
#---ＪＯＢ名
#
JOBNAME=`basename $0 | sed -e "s/\.sh//g"`

#
#---サービス（業務プロセス）
#
SVC=$JOBNAME

#
#---OPD
#
OPD=$1

#
#---運用日付取得
#
if [ "${OPD}" = "" ];then
  . EOK010310J0.sh "BDATE"
else
  RSLT_OPEDATE=${OPD}
fi

#
#---業務で必要な変数定義
#
#xxx=xxxxxxx
##############################################################
# 業務処理
##############################################################
sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME

### v23.00.00 ADD START
#
#--- クエリ編集
#       p1：ＳＱＬ定義ファイル名
#       p2：バインド変数置換文字
EDIT_MATCHING_QUERY()
{
	MATCHING_FILE=$1
	MATCHING_QUERY_WORK=${ULD_WORK_DIR}/${JOBNAME}_MATCH_QUERY.tmp
	
	cat /dev/null > ${MATCHING_QUERY_WORK}
	
	# SQL定義ファイルの編集
	if [ ! -r ${MATCHING_FILE} ]
	then
		sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${MATCHING_FILE}:rc=$rc) "
		echo $JOBNAME " File is nonexist(${MATCHING_FILE}:rc=$rc) "
		exit ${G_RTN_ERROR}
	fi

	# バインド変数を置き換える
	cat ${MATCHING_FILE} > ${MATCHING_QUERY_WORK}
	
	for bind in $2
	do
		bind_escape=`echo $bind | sed "s/\//\\\\\\\\\//g"`
		sed -i, -e 0,/#FILE#/s/#FILE#/$bind_escape/ ${MATCHING_QUERY_WORK}
	done
	
	export MATCHING_QUERY_WORK
}

#
#--- マッチング処理
#      p1：出力ファイルパス
#      p2：マッチングクエリファイルパス
EXEC_MATCHING()
{
	# 出力ファイルの初期化
	MATCHING_OUTFILE=$1
	cat /dev/null > ${MATCHING_OUTFILE}
	rc=$?
	if [ $rc -ne 0 ]
	then
		sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error(${MATCHING_OUTFILE}:rc=$rc) "
		echo $JOBNAME " File cat error(${MATCHING_OUTFILE}:rc=$rc) "
		exit ${G_RTN_ERROR}
	fi

	# マッチング実行
	export ZTLOUTFILE=${MATCHING_OUTFILE}
	${G_TOOLSH}/util/bin/ZTLMAT01 $2
	rc=$?
	if [ $rc -ne 0 ]
	then
		sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " matching error($2:rc=$rc) "
		echo $JOBNAME " matching error($2:rc=$rc) "
		exit ${G_RTN_ERROR}
	fi
}
### v23.00.00 ADD END


#
#---入力ファイルをバックアップフォルダに複写
#
#--- IT1-2014-0000305 20140911 mod start
RECEIVE_FILE="${GAIBU_RECEIVE_DIR_KK}/KKIFE245/EC_SYSID.csv"
cp -p -f $RECEIVE_FILE ${GAIBU_RECEIVE_DIR_KK}/KKIFE245/bk/EC_SYSID_${RSLT_OPEDATE}.csv
#--- IT1-2014-0000305 20140911 mod end
#--- ANK-2407-00-00 20141121 add start
RECEIVE_CNT_FILE="${GAIBU_RECEIVE_DIR_KK}/KKIFE245/EC_SYSID_CNT.TXT"
cp -p -f $RECEIVE_CNT_FILE ${GAIBU_RECEIVE_DIR_KK}/KKIFE245/bk/EC_SYSID_CNT_${RSLT_OPEDATE}.TXT
RECEIVE_FLG_FILE="${GAIBU_RECEIVE_DIR_KK}/KKIFE245/EC_SYSID_FTP.FLG"
cp -p -f $RECEIVE_FLG_FILE ${GAIBU_RECEIVE_DIR_KK}/KKIFE245/bk/EC_SYSID_FTP_${RSLT_OPEDATE}.FLG
#--- ANK-2407-00-00 20141121 add end

#
#--- ファイル定義
#
#--- IT1-2014-0000305 20140911 mod start
KKIFE246_CSV=${GAIBU_SEND_DIR_KK}/KKIFE246/KKIFE246_${RSLT_OPEDATE}.csv
KKIFE246_CNT=${GAIBU_SEND_DIR_KK}/KKIFE246/KKIFE246_${RSLT_OPEDATE}_CNT.TXT
KKIFE246_FLG=${GAIBU_SEND_DIR_KK}/KKIFE246/KKIFE246_${RSLT_OPEDATE}_FTP.FLG
#--- IT1-2014-0000305 20140911 mod end


### v23.00.00 ADD START
#お客様(カレント)
COMULD2_CK0011_CUR=${MID_DIR_CC}/CCIFM019002.csv
#サービス契約(カレント)
COMULD2_KK0081_CUR=${MID_DIR_CC}/CCIFM020002.csv
#オプションサービス契約(カレント)
COMULD2_KK0351_CUR=${MID_DIR_CC}/CCIFM026002.csv

SORT_FILE_CK0011=${MID_DIR_KK}/${JOBNAME}_CCIFM019002_tmp.csv
SORT_FILE_KK0081=${MID_DIR_KK}/${JOBNAME}_CCIFM020002_tmp.csv
SORT_FILE_KK0351=${MID_DIR_KK}/${JOBNAME}_CCIFM026002_tmp.csv

KKIFM702_CSV=${MID_DIR_KK}/KKIFM702001.csv

#共通アンロードファイルの取得・再編成：お客様（カレント）
#
# 1.SYSID
# 2.会員種別コード
#
bsortex \
   -copy -record recform=txtcsv \
   -input file=${COMULD2_CK0011_CUR} \
          reclen=${ULD2_REC_LEN_CK0011} \
          reconst="0.10,29.2" \
   -output file=${SORT_FILE_CK0011}

#共通アンロードファイルの取得・再編成：サービス契約（カレント）
# 抽出条件：
#  照査解約完了コード ＝ 1
#  サービス契約ステータス in ('020', '030', '100', '210', '220')
#
# 1.サービス契約番号
# 2.サービス契約ステータス
# 3.サービスコード
# 4.料金グループコード
# 5.料金プランコード
# 6.SYSID
# 7.照査解約完了コード
#
bsortex \
   -copy -record recform=txtcsv \
   -input file=${COMULD2_KK0081_CUR} \
          reclen=${ULD2_REC_LEN_KK0081} \
          reconst="0.10,2.3,4.2,7.2,9.6,3.10,37.1" \
          include="37.1asc.eq.'1',(2.3asc.eq.'020'.or.2.3asc.eq.'030'.or.2.3asc.eq.'100'.or.2.3asc.eq.'210'.or.2.3asc.eq.'220')" \
   -output file=${SORT_FILE_KK0081}
   
#共通アンロードファイルの取得・再編成：オプションサービス契約（カレント）
# 抽出条件：
#  オプションサービスコード ＝ 'B077'
#
#
# 1.オプションサービス契約番号
# 2.オプションサービス契約ステータス
# 3.オプションサービスコード
# 4.サービス契約番号
#
bsortex \
   -copy -record recform=txtcsv \
   -input file=${COMULD2_KK0351_CUR} \
          reclen=${ULD2_REC_LEN_KK0351} \
          reconst="0.12,2.3,3.4,7.10" \
          include="3.4asc.eq.'B077'" \
   -output file=${SORT_FILE_KK0351}

#--- 連携ファイル、お客様、サービス契約、オプションサービス契約のマッチング
EDIT_MATCHING_QUERY ${G_TOOLSH}/util/def/KK_CM_0590.def "${RECEIVE_FILE} ${SORT_FILE_CK0011} ${SORT_FILE_KK0081} ${SORT_FILE_KK0351}"
EXEC_MATCHING ${KKIFM702_CSV} ${MATCHING_QUERY_WORK}

### v23.00.00 ADD END

#
#---パラメタ定義
#

P1="OPD=$OPD,"
P2="SVCCTL=JBSbatMultiServiceControl,"
P3="JOB=EO2EM0110J0,"
### v23.00.00 MOD START
#P4="IND1=KKIFE245.def,"
#P5="INF1=${RECEIVE_FILE},"
P4="IND1=KKIFM702.def,"
P5="INF1=${KKIFM702_CSV},"
### v23.00.00 MOD END
P6="IND2=,"
P7="INF2=,"
P8="OTD1=KKIFE246.def,"
P9="OTF1=${KKIFE246_CSV},"
P10="OTD2=,"
P11="OTF2=,"
P12="TABLENAME=,"
P13="SQLKEY=,"
P14="SQLPARAM=,"
P15="ERRFILE=,"
P16="RECOVERY=,"
P17="BREAKPTN=,"
P18="FREE=${KKIFE246_CNT};${KKIFE246_FLG}"
PARA="$P1$P2$P3$P4$P5$P6$P7$P8$P9$P10$P11$P12$P13$P14$P15$P16$P17$P18"

sh ${G_TOOLSH}/EOK010210J0.sh CS00027I $JOBNAME

#
#---ＡＰＬ起動
#

java ${JAVA_OPTION} -jar ${JAR_DIR}/koptBatch.jar $PARA

rc=$?
ERR_FLG=0
if [ $rc -ne 0 ]
then
   if [ $rc -ne 4 ]
   then
       if [ $rc -ne 8 ]
       then
           if [ $rc -ne 127 ]
           then
              sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " PROGRAM Error($SVC program:rc=$rc) "
              echo $JOBNAME " PROGRAM Error($SVC program:rc=$rc) "
              exit ${G_RTN_ERROR}
           fi
       fi
    fi
    ERR_FLG=1
fi

exit_rc=$rc

#
#---バックアップフォルダへ複写したファイルを削除
#
#--- ANK-2407-00-00 20141121 add start
if [ $exit_rc = 0 ]
then
   rm -f ${RECEIVE_FILE}
   rm -f ${RECEIVE_CNT_FILE}
   rm -f ${RECEIVE_FLG_FILE}
### v23.00.00 ADD START
   rm -f ${SORT_FILE_CK0011}
   rm -f ${SORT_FILE_KK0081}
   rm -f ${SORT_FILE_KK0351}
   rm -f ${KKIFM702_CSV}
### v23.00.00 ADD END
fi
#--- ANK-2407-00-00 20141121 add end

#
#--- ジョブの終了メッセージを出力する
#
sh ${G_TOOLSH}/EOK010210J0.sh CS00028I $JOBNAME
sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME

exit $exit_rc
