#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約管理
#
# シェル名      ：口座振替受付対象メール情報送信
#
# 機能          ：口座振替受付対象メール送信ファイルをESBサーバへFTP転送する。
#
# コマンド形式  ：EO2EX0210J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# V20.00          2015/10/19  FJ）黒田    【ANK-2073-00-00】（新規作成）
#
##############################################################

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

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

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

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

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

#
#---OPD
#

OPD=$1
#---運用日の指定がない場合、運用日付を取得する
if [ "${OPD}" = "" ]; then
   . EOK010310J0.sh "BDATE"
   OPD="${RSLT_OPEDATE}"
fi

#
#---業務で必要な変数定義
#
#インターフェイスID
INTERFACE_ID=KKIFE308
#送信ディレクトリ
SEND_DIR=${GAIBU_SEND_DIR_KK}/${INTERFACE_ID}/
#受信ディレクトリ
RECEIVE_DIR=${GAIBU_RECEIVE_DIR_KK}/${INTERFACE_ID}/

##############################################################
# 業務処理
##############################################################
sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME

#
#---ファイル存在チェック
#
flgfile_cnt=`find ${SEND_DIR}FTP_KHRIUK_*.flg -type f 2> /dev/null | wc -l`
if [ ${flgfile_cnt} -eq 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00003W $JOBNAME " 送信ディレクトリにファイルが存在しません(SEND_DIR:$SEND_DIR)"
    echo $JOBNAME " 送信ディレクトリにファイルが存在しません(SEND_DIR:$SEND_DIR)"
    sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME
    exit ${G_RTN_WARN}
fi

exit_rc=0
for flgfile in `ls -1 ${SEND_DIR}FTP_KHRIUK_*.flg`
do
    
    #フラグファイルのファイル名
    FLG_FILE=`echo ${flgfile}`
    #データファイルのファイル名
    DATA_FILE=`echo ${FLG_FILE} | sed -e "s/\.flg/\.csv/"`
    DATA_FILE=`echo ${DATA_FILE} | sed -e "s/\FTP_KHRIUK_/\KHRIUK_DAT_/"`
    #カウントファイルのファイル名
    CNT_FILE=`echo ${DATA_FILE} | sed -e "s/\_DAT_/\_CNT_/"`
    
    #
    #---転送先ファイル存在チェック
    #
    
    #---フラグファイル名取得
    FLG_FILE_NM=`basename ${FLG_FILE}`
    
    #---共通部品（ファイル存在確認）呼び出し
    FILE_CHK_FLG=0
    sh ${G_TOOLSH}/EOKFTPFILECHK.sh $INTERFACE_ID $FLG_FILE_NM $RECEIVE_DIR $OPD
    FILE_CHK_FLG=$?
    
    if [ $FILE_CHK_FLG -ne 0 ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00003W $JOBNAME " ESBサーバに既にファイルが存在します(${FLG_FILE_NM})"
        echo $JOBNAME " ESBサーバに既にファイルが存在します(${FLG_FILE_NM})"
        rc=${G_RTN_WARN}
    else
        #
        #---パラメタ定義
        #
        
        P1="OPD=$OPD,"
        P2="SVCCTL=JBSbatUnitServiceControl,"
        P3="JOB=EO2EX0210J0,"
        P4="IND1=,"
        P5="INF1=,"
        P6="IND2=,"
        P7="INF2=,"
        P8="OTD1=,"
        P9="OTF1=,"
        P10="OTD2=,"
        P11="OTF2=,"
        P12="TABLENAME=,"
        P13="SQLKEY=,"
        P14="SQLPARAM=,"
        P15="ERRFILE=,"
        P16="RECOVERY=,"
        P17="BREAKPTN=,"
        P18="FREE=${INTERFACE_ID};${DATA_FILE};${CNT_FILE};${FLG_FILE}"
        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
        
        #
        #--- ジョブの終了メッセージを出力する
        #
        sh ${G_TOOLSH}/EOK010210J0.sh CS00028I $JOBNAME
    fi
    
    #
    #---エラー発生時は処理を終了する
    #
    if [ $rc -eq 127 ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME
        exit ${G_RTN_ERROR}
    else
        if [ $rc -gt $exit_rc ]
        then
            exit_rc=$rc
        fi
    fi
    
done 2> /dev/null

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

exit $exit_rc
