#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約管理
#
# シェル名      ：ＣＡＳＥファイル送信（PCセットアップ）
#
# 機能          ：CASEファイルおよびCASE件数ファイルを顧客対応履歴Sの所定フォルダにコピーし、正常にコピーできれば、CASEフラグファイルを所定フォルダに作成する。
#
#※ 起動パラメータのFREE項目に、以下の情報を設定する。
#　・ CASEファイル(工事進捗状況メール送信)先頭文字列:"CASE_KKS0264"
#　・ CASEファイル(PCセットアップ結果データファイル)先頭文字列:"CASE_SUKEKKA"
#　・ CASEファイル(工事進捗状況メール送信):"${GAIBU_SEND_DIR_KK}/CASE_${TOKUT_CHR}_${SYS_YMDHMS}.CSV"
#　・ CASE件数ファイル(工事進捗状況メール送信):"${GAIBU_SEND_DIR_KK}/CASE_${TOKUT_CHR}_${SYS_YMDHMS}_CNT.TXT"
#　・ CASEファイル(PCセットアップ結果データファイル):"${GAIBU_SEND_DIR_KK}/CASE_SUKEKKA_${SYS_YMDHMSS}.CSV"
#　・ CASE件数ファイル(PCセットアップ結果データファイル):"${GAIBU_SEND_DIR_KK}/CASE_SUKEKKA_${SYS_YMDHMSS}_CNT.TXT"
#
# コマンド形式  ：EO22W0310J2.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v3.00.00      2012/08/21    FJ)藤原      【IT1-2012-0000956】PCセットアップのCASEファイルを5社分同時に送信できるように修正
# v5.00.00      2013/06/27    FJ)井熊      【LT-2013-0000130】工事進捗CASEファイルを送信しないように修正
#
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

#
#---業務で必要な変数定義
#
#xxx=xxxxxxx
# ファイル先頭文字(工事進捗状況)
FILE_NM_KJ="CASE_KKS0264"
# ファイル先頭文字(PCセットアップ結果)
FILE_NM_PC="CASE_SUKEKKA"
# 2012/08/21 add start
# リターンコード初期値
exit_rc=0
# 実行終了フラグ
# PCセットアップCASEファイルなし or 最大実行回数到達 で 実行終了値を設定
exe_end_flg=0
# 実行終了値
EXE_END_VALUE=1
# 実行回数
exe_cnt=0
# 最大実行回数(JPR,ALH,OBT,JPC,IPT=5社)
MAX_CNT=5
# 実行終了フラグが実行終了値になるまで
while [ ${exe_end_flg} -ne ${EXE_END_VALUE} ]
do
    # 実行回数をインクリメント
    exe_cnt=`expr ${exe_cnt} + 1`
# 2012/08/21 add end
    # 処理判定フラグ(工事進捗状況)
    FLG_KJ=""
    # 処理判定フラグ(PCセットアップ結果)
    FLG_PC=""
    # データファイル(工事進捗状況)
    DATA_FILE_KJ=""
    # 件数ファイル(工事進捗状況)
    CNT_FILE_KJ=""
    # データファイル(PCセットアップ結果)
    DATA_FILE_PC=""
    # 件数ファイル(PCセットアップ結果)
    CNT_FILE_PC=""

    # 各ファイル取得
# 2012/08/21 add start
    # 2回以上送信が必要なのはPCセットアップのみ
    # 工事進捗のCASEファイルは2回目以降の実行の場合、送信しない
#    if [ ${exe_cnt} -lt 2 ]
#    then
# 2012/08/21 add end
#        DATA_FILE_KJ=`find ${SEND_DIR}/${FILE_NM_KJ}_*.CSV | tail -1`
#        CNT_FILE_KJ=`find ${SEND_DIR}/${FILE_NM_KJ}_*_CNT.TXT | tail -1`
# 2012/08/21 add start
#    fi
# 2012/08/21 add end
    DATA_FILE_PC=`find ${SEND_DIR}/${FILE_NM_PC}_*.CSV | tail -1`
    CNT_FILE_PC=`find ${SEND_DIR}/${FILE_NM_PC}_*_CNT.TXT | tail -1`

    # データファイルと件数ファイルが揃っている場合、処理判定フラグに"1"を設定
#    if [ "${DATA_FILE_KJ}" != "" ] && [ "${CNT_FILE_KJ}" != "" ]
#    then
#        FLG_KJ="1"
#    fi
    if [ "${DATA_FILE_PC}" != "" ] && [ "${CNT_FILE_PC}" != "" ]
    then
        FLG_PC="1"
    fi

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

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

    P1="OPD=,"
    P2="SVCCTL=JBSbatUnitServiceControl,"
    P3="JOB=EO22W0310J2,"
    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=${FILE_NM_KJ};${FILE_NM_PC};${DATA_FILE_KJ};${CNT_FILE_KJ};${DATA_FILE_PC};${CNT_FILE_PC}"
    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

    #
    #---ＡＰＬ起動
    #

    if [ "${FLG_KJ}" != "" ] || [ "${FLG_PC}" != "" ]
    then
        java ${JAVA_OPTION} -jar ${JAR_DIR}/koptBatch.jar $PARA
    fi

    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
    else
#        if [ "${FLG_KJ}" != "" ]
#        then
#            if [ -e ${DATA_FILE_KJ} ]
#            then
#                mv ${DATA_FILE_KJ} ${SEND_DIR}/bk/
#            fi
#            if [ -e ${CNT_FILE_KJ} ]
#            then
#                mv ${CNT_FILE_KJ} ${SEND_DIR}/bk/
#            fi
#        fi
        if [ "${FLG_PC}" != "" ]
        then
            if [ -e ${DATA_FILE_PC} ]
            then
                mv ${DATA_FILE_PC} ${SEND_DIR}/bk/
            fi
            if [ -e ${CNT_FILE_PC} ]
            then
                mv ${CNT_FILE_PC} ${SEND_DIR}/bk/
            fi
        fi
    fi

# 2012/08/21 add start
    # rcの方が大きい(ループ中の一番高いエラーを返却)
    if [ ${exit_rc} -lt ${rc} ]
    then
        exit_rc=$rc
    fi
    # PCセットアップ結果ファイルがない場合、次の実行を行わない
    if [ "${FLG_PC}" == "" ]
    then
        exe_end_flg=${EXE_END_VALUE}
    fi
    # 最大実行回数 <= 実行回数 の場合、次の実行を行わない
    if [ ${MAX_CNT} -le ${exe_cnt} ]
    then
        exe_end_flg=${EXE_END_VALUE}
    fi
# 2012/08/21 add end
# 2012/08/21 del start
#    exit_rc=$rc
# 2012/08/21 del end
# 2012/08/21 add start
done
# 2012/08/21 add end

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

exit $exit_rc
