#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約管理
#
# シェル名      ：契約内容通知書ファイル作成
#
# サブシェル名  ：契約内容通知書ファイル抽出
#               ：契約内容通知書抽出結果更新
#               ：契約内容通知書ファイル送信
#               ：ESBファイル転送リモート起動
#
# 機能          ：契約内容通知書ファイル抽出
#                 ・契約内容通知書情報より、契約内容通知書の通知対象条件にて抽出し、ファイルを作成する。
#               ：契約内容通知書抽出結果更新
#                 ・契約内容通知書結果更新ファイルを元に、契約内容通知書ステータスを更新する。
#               ：契約内容通知書ファイル送信
#                 ・契約内容通知書ファイルをESBサーバへ送信する。
#               ：ESBファイル転送リモート起動
#                 ・契約内容通知書ファイルをESBサーバから守口印刷へリモートへ送信する。
#
# コマンド形式  ：EO2FA0110J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v23.00.00       2016/01/13  FJ)柳        【ANK-2737-00-00】新規作成
# v27.00.00       2016/09/01  FJ)中原      【ANK-2985-00-00】消費者保護ルール見直し追加対応STEP3
# v28.00.00       2017/01/23  FJ)大山      【ANK-3137-00-00】ｅｏ顧客基幹システム２拠点化対応　切替に伴う動作確認・切替支援、ＷＡＦチューニング他の実施
# v28.00.01       2017/02/20  FJ)大山      【ANK-3137-02-00】ｅｏ顧客基幹システム２拠点化対応　切替に伴う動作確認・切替支援、ＷＡＦチューニング他の実施
# v54.00.00       2021/09/11  FJ)星野      【ANK-4069-00-00】EOL対応(バッチ・DBサーバリプレース対応)
# v54.00.01       2021/11/08  FJ)寺川      【ANK-4069-00-00】EOL対応(バッチ・DBサーバリプレース対応)
# v57.00.00       2022/03/07  FJ)寺川      【ANK-4069-04-00】EOL対応(バッチ・DBサーバリプレース対応) 
##############################################################

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

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

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

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

BUF=0
#ANK-2985-00-00 ADD START
#---業務で必要な変数定義
#
IFFILE="KKIFE320"
DOUBLE_START_CHECK_FILE=${MID_DIR_KK}/DBL_$JOBNAME.flg
DELAYED_CHECK_FILE=${MID_DIR_KK}/DELAYED_$JOBNAME.flg
#ANK-2985-00-00 ADD END

# ANK-4069-00-00対応 20211108 寺川 ADD START
#社外連携イベントID
EVENT_ID_KKIFE320=${SHAGAI_EVENT_ID_KKIFE320}

#OBSジョブマネージャホスト
OBS_HOST=${SHAGAI_OBS_HOST}
# ANK-4069-00-00対応 20211108 寺川 ADD END

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

#
#---システム日付取得
#
. EOK010410J0.sh 1

TIME_STR=${RSLT_SYSDATE}

#ANK-2985-00-00 ADD START
#
#--- 二重起動チェック
#
if [ -f ${DOUBLE_START_CHECK_FILE} ] ; then
  echo "$JOBNAME is already running !!!"
  sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME
  exit ${G_RTN_NORMAL}
fi

##################################
# 二重起動チェック用ファイル作成 #
##################################
touch ${DOUBLE_START_CHECK_FILE}

#--- ディレイド処理依頼有無チェック
sh ${G_TOOLSH}/EO22V0510D0.sh $JOBNAME $DELAYED_CHECK_FILE $TIME_STR
ERR_FLG=$?
if [ $ERR_FLG -eq $G_RTN_NORMAL ] ; then
  echo " DEBUG_MSG Start running JOB EO2FA0111D0 by code:$ERR_FLG "
else
  rm -f ${DELAYED_CHECK_FILE} > /dev/null 2>&1
  rm -f ${DOUBLE_START_CHECK_FILE} > /dev/null 2>&1
  echo " DEBUG_MSG Skip JOB EO2FA0111D0 by code:$ERR_FLG "
  exit ${ERR_FLG}
fi

#
#--- ディレイド処理依頼フラグファイル確認
#
if [ -r ${DELAYED_CHECK_FILE} ] ; then
  DELAYED_FLG=`cat ${DELAYED_CHECK_FILE} | tail -1`
  rm -f ${DELAYED_CHECK_FILE} > /dev/null 2>&1

  #-- ディレイド処理依頼が無い場合
  if [ $DELAYED_FLG -eq 0 ] ; then
    echo $JOBNAME '0.Not such a Order'
    rm -f ${DOUBLE_START_CHECK_FILE} > /dev/null 2>&1
    echo "0. remove DOUBLE_START_CHECK_FILE: ${DOUBLE_START_CHECK_FILE} OK."
    sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME
    exit ${G_RTN_NORMAL}
  fi
fi

##########################
# デバッグ用スリープ5秒 #
##########################
#sleep 5

#ANK-2985-00-00 ADD END
#
# ２つ目以降のサブシェルは前処理のリターンコードが
# G_RTN_NORMAL、G_RTN_WARNの場合のみ実行する。
#

#
#--- サブシェル呼び出し ---
#

#--- 契約内容通知書ファイル抽出 ---
#ANK-2985-00-00 MOD START
#sh ${G_TOOLSH}/EO2FA0111J0.sh $TIME_STR
sh ${G_TOOLSH}/EO2FA0111D0.sh $TIME_STR
#ANK-2985-00-00 MOD END
ERR_FLG=$?

#--- 契約内容通知書抽出結果更新 ---
#  G_RTN_NORMAL、G_RTN_WARNのみ実行
if [ $ERR_FLG -eq $G_RTN_NORMAL -o $ERR_FLG -eq $G_RTN_WARN ] ; then
#ANK-2985-00-00 MOD START
#  echo " DEBUG_MSG Start running JOB EO2FA0210J0 by code:$ERR_FLG "
#  sh ${G_TOOLSH}/EO2FA0210J0.sh
  echo " DEBUG_MSG Start running JOB EO2FA0210D0 by code:$ERR_FLG "
  sh ${G_TOOLSH}/EO2FA0210D0.sh
#ANK-2985-00-00 MOD END
  BUF=$?
  if [ $ERR_FLG -lt $BUF ] ; then
      ERR_FLG=$BUF
  fi
else
#ANK-2985-00-00 MOD START
#  echo " DEBUG_MSG Skip JOB EO2FA0210J0 by code:$ERR_FLG "
  echo " DEBUG_MSG Skip JOB EO2FA0210D0 by code:$ERR_FLG "
#ANK-2985-00-00 MOD END
fi

#--- 契約内容通知書ファイル送信 ---
#  G_RTN_NORMAL、G_RTN_WARNのみ実行
if [ $ERR_FLG -eq $G_RTN_NORMAL -o $ERR_FLG -eq $G_RTN_WARN ] ; then
#ANK-2985-00-00 MOD START
#  echo " DEBUG_MSG Start running JOB EO2FA0310J0 by code:$ERR_FLG "
#  sh ${G_TOOLSH}/EO2FA0310J0.sh $TIME_STR
  echo " DEBUG_MSG Start running JOB EO2FA0310D0 by code:$ERR_FLG "
  sh ${G_TOOLSH}/EO2FA0310D0.sh $TIME_STR $JOBNAME $ERR_FLG
#ANK-2985-00-00 MOD END
  BUF=$?
  if [ $ERR_FLG -lt $BUF ] ; then
      ERR_FLG=$BUF
  fi
else
#ANK-2985-00-00 MOD START
#  echo " DEBUG_MSG Skip JOB EO2FA0310J0 by code:$ERR_FLG "
  echo " DEBUG_MSG Skip JOB EO2FA0310D0 by code:$ERR_FLG "
#ANK-2985-00-00 MOD END
fi

#ANK-2985-00-00 ADD START
#--- ファイル転送起動 ---
#  G_RTN_NORMAL、G_RTN_WARNのみ実行
if [ $ERR_FLG -eq $G_RTN_NORMAL -o $ERR_FLG -eq $G_RTN_WARN ] ; then
  echo " DEBUG_MSG Start running JOB EOLESBFRMT by code:$ERR_FLG "
# ANK-4069-00-00対応 20210906 星野 MOD START
## ANK-3137-00-00 MOD START
##  sh ${G_TOOLSH}/EOLESBFRMT.sh $IFFILE $JOBNAME
## ANK-3137-02-00 MOD START
##  sh ${G_TOOLSH}/EOLESBFRMT_OLD.sh $IFFILE $JOBNAME
#  sh ${G_TOOLSH}/EOLESBFRMT.sh $IFFILE $JOBNAME
## ANK-3137-02-00 MOD END
## ANK-3137-00-00 MOD END
  sh ${G_TRANSFERSH}/EOL000002J0.sh $IFFILE
# ANK-4069-00-00対応 20210906 星野 MOD END
  BUF=$?
  if [ $ERR_FLG -lt $BUF ] ; then
      #エラーログ出力
# ANK-4069-00-00対応 20210906 星野 MOD START
#      sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME "ESBファイル転送リモートシェルでエラーが発生しました　外部インタフェースID：$IFFILE"
      sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME "ファイル転送シェルでエラーが発生しました　外部インタフェースID：$IFFILE"
# ANK-4069-00-00対応 20210906 星野 MOD END
      
      ERR_FLG=$BUF
  fi
else
  echo " DEBUG_MSG Skip JOB EOLESBFRMT by code:$ERR_FLG "
fi

# ANK-4069-00-00対応 20211108 寺川 ADD START
if [ $ERR_FLG -eq 0 ]
then
# ANK-4069-04-00対応 20220307 寺川 ADD START
    #
    # 社外連携イベント発行前ログ出力
    #
    sh ${G_TOOLSH}/EOK010210J0.sh CS00031I $JOBNAME "社外連携イベントID($EVENT_ID_KKIFE320) ホスト名($OBS_HOST)"
# ANK-4069-04-00対応 20220307 寺川 ADD END
    #
    #社外連携イベント発行
    #
    /opt/jp1base/bin/jevsend -i $EVENT_ID_KKIFE320 -d $OBS_HOST
fi
# ANK-4069-00-00対応 20211108 寺川 ADD END

##################################
# 二重起動チェック用ファイル削除 #
##################################
rm -f ${DOUBLE_START_CHECK_FILE} > /dev/null 2>&1
echo "2. remove DOUBLE_START_CHECK_FILE: ${DOUBLE_START_CHECK_FILE} OK."

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

#--- 正常終了 ---
exit ${ERR_FLG}
