#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約管理
#
# シェル名      ：マンション提供方式情報受信
#
# 機能          ：マンション営業支援システムから、マンション提供方式関連の連携ファイルを受信する。
#
# コマンド形式  ：EO22J0200J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v5.00.00        2013/8/26   FJ)大山      OM-2013-0000874 
# v8.00.00        2014/6/12   FJ)村田      OM-2014-0002014 
# v33.00.00       2017/12/06  FJ)柳        【ANK-3256-00-00】eSMリプレースに伴うeSM⇔eo顧客ファイル連携のMQ化対応
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

#
#---業務で必要な変数定義
#

#実行結果
G_RTN_ERROR=0
rc=0
BAT_SLEEP_TIME=10
BAT_TIMEOUT=600

#最大日付のデータファイルを取得
RECEIVE_FILE2="${GAIBU_RECEIVE_DIR_KK}/KKIFE032/KKIFE032001_2*.csv"

FILECHECK="NG"
CNT=0
while [ "$FILECHECK" = "NG" ]
do
    if [ `ls -lt $RECEIVE_FILE2 2> /dev/null | wc -l` -eq 0 ]
    then
        # ファイルが存在しない場合スリープ実施
        sleep ${BAT_SLEEP_TIME}
        CNT=`expr ${CNT} + ${BAT_SLEEP_TIME}`
        # ${TN_BAT_TIMEOUT}分経過してファイルが未到着の場合エラー
        if [ ${CNT} == ${BAT_TIMEOUT} ]
        then
            #受信ファイルが存在しない場合
	        #--- ジョブの終了メッセージを出力する
	        echo "============================="
	        rc=${G_RTN_ERROR}
# ▼▼▼ OM-2014-0002014 ERR_LEVEL WAR対応 MOD START ▼▼▼
#         	sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " PROGRAM Error($SVC program:rc=$rc) 受信ファイルなし($RECEIVE_FILE2)"
          	sh ${G_TOOLSH}/EOK010210J0.sh CS00003W $JOBNAME " PROGRAM Error($SVC program:rc=$rc) 受信ファイルなし($RECEIVE_FILE2)"
#          	echo $JOBNAME " PROGRAM Error($SVC program:rc=$rc) "
#			exit ${G_RTN_ERROR}
			exit ${G_RTN_WARN}
# ▲▲▲ OM-2014-0002014 ERR_LEVEL WAR対応 MOD END   ▲▲▲
        fi
    else
        FILECHECK="OK"
    fi
done

RCVFILE="`ls -lt ${RECEIVE_FILE2} | head -n 1 | awk '{print $9}'`"

if [ -z ${RCVFILE} ]
then
    echo "データファイルなし"
    rc=0
    exit ${rc}
fi

date="`ls ${RCVFILE} | tail -c13`"
date=`echo ${date} | cut -c1-8`

# ANK-3256-00-00 2017/12/06 DEL START
# #件数ファイル読み込み
# RECEIVE_FILE3="${GAIBU_RECEIVE_DIR_KK}/KKIFE032/KKIFE032001_cnt_${date}.csv"
# FILECHECK="NG"
# CNT=0
# while [ "$FILECHECK" = "NG" ]
# do
#     if [ `ls -lt $RECEIVE_FILE3 2> /dev/null | wc -l` -eq 0 ]
#     then
#         # ファイルが存在しない場合スリープ実施
#         sleep ${BAT_SLEEP_TIME}
#         CNT=`expr ${CNT} + ${BAT_SLEEP_TIME}`
#         # ${TN_BAT_TIMEOUT}分経過してファイルが未到着の場合エラー
#         if [ ${CNT} == ${BAT_TIMEOUT} ]
#         then
#             #受信ファイルが存在しない場合
# 	        #--- ジョブの終了メッセージを出力する
# 	        echo "============================="
# 	        rc=${G_RTN_ERROR}
# # ▼▼▼ OM-2014-0002014 ERR_LEVEL WAR対応 MOD START ▼▼▼
# #         	sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " PROGRAM Error($SVC program:rc=$rc) 受信ファイルなし($RECEIVE_FILE3)"
#           	sh ${G_TOOLSH}/EOK010210J0.sh CS00003W $JOBNAME " PROGRAM Error($SVC program:rc=$rc) 受信ファイルなし($RECEIVE_FILE3)"
# #          	echo $JOBNAME " PROGRAM Error($SVC program:rc=$rc) "
# #			exit ${G_RTN_ERROR}
# 			exit ${G_RTN_WARN}
# # ▲▲▲ OM-2014-0002014 ERR_LEVEL WAR対応 MOD END   ▲▲▲
#         fi
#     else
#         FILECHECK="OK"
#     fi
# done
# 
# cnt_cnt=`cat ${RECEIVE_FILE3} | tr -d '\r|\n'`
# 
# #データファイルの件数取得
# ANK-3256-00-00 2017/12/06 DEL END
RECEIVE_FILE2="${GAIBU_RECEIVE_DIR_KK}/KKIFE032/KKIFE032001_${date}.csv"
# ANK-3256-00-00 2017/12/06 DEL START
# data_cnt=`wc -l $RECEIVE_FILE2| sed -e "s% $RECEIVE_FILE2%\n%"`
# 
# #フラグファイル
# RECEIVE_FILE1="${GAIBU_RECEIVE_DIR_KK}/KKIFE032/KKIFE032001_flg_${date}.csv"
# 
# FILECHECK="NG"
# CNT=0
# while [ "$FILECHECK" = "NG" ]
# do
#     if [ `ls -lt $RECEIVE_FILE1 2> /dev/null | wc -l` -eq 0 ]
#     then
#         # ファイルが存在しない場合スリープ実施
#         sleep ${BAT_SLEEP_TIME}
#         CNT=`expr ${CNT} + ${BAT_SLEEP_TIME}`
#         # ${TN_BAT_TIMEOUT}分経過してファイルが未到着の場合エラー
#         if [ ${CNT} == ${BAT_TIMEOUT} ]
#         then
#             #受信ファイルが存在しない場合
# 	        #--- ジョブの終了メッセージを出力する
# 	        echo "============================="
# 	        rc=${G_RTN_ERROR}
# # ▼▼▼ OM-2014-0002014 ERR_LEVEL WAR対応 MOD START ▼▼▼
# #         	sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " PROGRAM Error($SVC program:rc=$rc) 受信ファイルなし($RECEIVE_FILE1)"
#           	sh ${G_TOOLSH}/EOK010210J0.sh CS00003W $JOBNAME " PROGRAM Error($SVC program:rc=$rc) 受信ファイルなし($RECEIVE_FILE1)"
# #          	echo $JOBNAME " PROGRAM Error($SVC program:rc=$rc) "
# #			exit ${G_RTN_ERROR}
# 			exit ${G_RTN_WARN}
# # ▲▲▲ OM-2014-0002014 ERR_LEVEL WAR対応 MOD END   ▲▲▲
#         fi
#     else
#         FILECHECK="OK"
#     fi
# done
# ANK-3256-00-00 2017/12/06 DEL END

#エラーログ出力
set_err ()
{
    echo $JOBNAME " PROGRAM Error($SVC program:rc=$rc) "
    G_RTN_ERROR=1
}

#バックアップ処理(コピー)失敗の場合、処理終了

# ANK-3256-00-00 2017/12/06 DEL START
# cp ${RECEIVE_FILE1} ${GAIBU_RECEIVE_DIR_KK}/KKIFE032/bk/.
# cp=$?
# if [ ${cp} -ne 0 ]
# then
#   FLG_FILE="`ls ${RECEIVE_FILE1} | tail -c28`"
#   echo "ファイルのバックアップに失敗しました。" ${FLG_FILE}
#   set_err
#   exit ${G_RTN_ERROR}
# fi
# ANK-3256-00-00 2017/12/06 DEL END

cp ${RECEIVE_FILE2} ${GAIBU_RECEIVE_DIR_KK}/KKIFE032/bk/.
cp=$?
if [ ${cp} -ne 0 ]
then
  DATA_FILE="`ls ${RECEIVE_FILE2} | tail -c24`"
  echo "ファイルのバックアップに失敗しました。" ${DATA_FILE}
  set_err
  exit ${G_RTN_ERROR}
fi

# ANK-3256-00-00 2017/12/06 DEL START
# cp ${RECEIVE_FILE3} ${GAIBU_RECEIVE_DIR_KK}/KKIFE032/bk/.
# cp=$?
# if [ ${cp} -ne 0 ]
# then
#   CNT_FILE="`ls ${RECEIVE_FILE3} | tail -c28`"
#   echo "ファイルのバックアップに失敗しました。" ${CNT_FILE}
#   set_err
#   exit ${G_RTN_ERROR}
# fi
# #echo "BK_end"
# 
# #件数比較
# FILE_ERR=1
# 
# tem=`echo ${cnt_cnt} |sed -e's/[^0-9]//g'`
# len=`expr length ${tem}`
# 
# loop=0
# i=1
# zero=0
# while [ $loop -ne $len ]
# do
#    zr=`echo ${tem} |cut -c${i}`
#    if [ "$zr" -eq "$zero" ]
#    then
#       i=`expr ${i} + 1`
#    else
#       break
#    fi
#    loop=`expr ${loop} + 1`
# done
# 
# rslt=`echo ${tem} | cut -c${i}-`
# #echo "i:"${i}" edit:"${rslt} " len:"${len} " loop:"${loop}
# 
# #ゼロ件の場合
# if [ "${len}" -eq "${loop}" ]
# then
#    rslt=0
# fi
# 
# if [ "$rslt" -eq "$data_cnt" ]
# then
#    echo "ok"
#    FILE_ERR=0
# else
#    echo "件数ファイルと実際のデータ件数が異なります。"
#    echo "件数ファイル" $rslt
#    echo "データ件数" $data_cnt
# fi
# 
# #ファイルエラーがあれば処理終了
# if [ ${FILE_ERR} -eq 1 ]
# then
#    rc=1
#    set_err
#    exit ${G_RTN_ERROR}
# fi
# ANK-3256-00-00 2017/12/06 DEL END

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

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

P1="OPD=$OPD,"
P2="SVCCTL=JBSbatUnitServiceControl,"
P3="JOB=EO22J0200J0,"
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="
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

# ANK-3256-00-00 2017/12/06 DEL START
# #---フラグ・件数ファイル削除
# rm -f ${RECEIVE_FILE1}
# rm -f ${RECEIVE_FILE3}
# ANK-3256-00-00 2017/12/06 DEL END

exit_rc=$rc

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

exit $exit_rc