#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約管理
#
# シェル名      ：番ポなし番号事前通知データ抽出
#
# サブシェル名  ：1. ディレイド処理依頼有無チェック     EO22V0510D0.sh
#               ：2. 番ポなし番号事前通知データ抽出     EO22V0511D0.sh
#               ：3. 番ポなし番号事前通知データ結果更新 EO22V0513D0.sh
#               ：4. 番ポなし番号事前通知データ更新     EO22V0512D0.sh
#
# 機能            1 ディレイド処理依頼有無チェック
#                   ディレイド処理依頼の有無をチェックし、依頼の有無をファイルに出力する。
#                 2 番ポなし番号事前通知データ抽出
#                   まだ通知していない番ポなし番号のデータを抽出する。
#                 3 番ポなし番号事前通知データ結果更新
#                   ファイルに含まれたサービス契約に、番ポ事前通知データ作成済みフラグを更新する。
#                 4 番ポなし番号事前通知データ更新
#                   番ポなし番号事前通知データを元に加入御礼書発行テーブルを更新する。
#
# コマンド形式  ：EO22V0510J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v4.00         2012/08/27    FJ)井熊      新規作成
# v4.01         2012/11/26    FJ)井熊      【TAI-2012-0000135】サブシェル化対応
# v4.02         2013/01/23    FJ)井熊      【ST2-2013-0000220】ディレイド処理結果更新実装
# v5.01         2013/05/15    FJ)掛木      【000-2013-0000000】番ポ更新と加入御礼更新の呼出順変更＆中間Ｆタイムスタンプ付与
# v5.02         2013/08/28    FJ)坂東      【OM-2013-0001114】二重起動チェックを修正
# v5.03         2013/10/08    FJ)鈴木      【OM-2013-0003104】ディレイド処理依頼有無チェックを追加
# v32.00        2017/04/18    FJ)鈴木      【OM-2017-0000425】ログ出力を追加
#
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

#
#---業務で必要な変数定義
#
#xxx=xxxxxxx
CHECK_FILE=${MID_DIR_KK}/1_$JOBNAME.flg
FLG_CODE=
BUF=0
### 2013.08.28 OM-2013-0001114 add start
DOUBLE_START_CHECK_FILE=${MID_DIR_KK}/DBL_$JOBNAME.flg
### 2013.08.28 OM-2013-0001114 add end

# 2017.04.18 OM-2017-0000425 add start
DBG_LOG=${MID_DIR_KK}/${JOBNAME}_`date '+%Y%m%d_%H%M%S'`.dat
touch ${DBG_LOG}

##############################################################
# 関数定義
##############################################################
function echolog () {
  echo "`date '+%Y%m%d %H%M%S'`: $1" >> ${DBG_LOG}
}
# 2017.04.18 OM-2017-0000425 add end
##############################################################
# 業務処理
##############################################################
sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME

. EOK010410J0.sh 1

TIME_STR=${RSLT_SYSDATE}
#
# ディレイド方式
#
# 最初に呼ばれるサブシェルでディレイド処理依頼を確認する。
# 確認用にサブシェルのフリーパラメータにJOBNAMEを渡す。
# 確認結果はフラグファイルに出力する。
#
# ２つ目以降のサブシェルは前処理のリターンコードが
# G_RTN_NORMAL、G_RTN_WARNの場合のみ実行する。
#
# 最後のＪＯＢでディレイド処理結果依頼をリターンコードに合わせて更新を行う。
# フリーパラメータにJOBNAME、リターンコードを渡す。
#

#
#--- 二重起動チェック
#
### 2013.08.28 OM-2013-0001114 del start
##if [ $$ != `pgrep -fxo "sh $0"` ] ; then
## echo $JOBNAME is already running !!
## sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME
## exit $G_RTN_ERROR
##fi
### 2013.08.28 OM-2013-0001114 del end

### 2013.08.28 OM-2013-0001114 add start
#
#--- 二重起動チェック
#
if [ -f ${DOUBLE_START_CHECK_FILE} ] ; then

# 2017.04.18 OM-2017-0000425 mod start
#  echo "$JOBNAME is already running !!!"
  echolog "00. ${JOBNAME} is already running !!!"
# 2017.04.18 OM-2017-0000425 mod end

    sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME
  exit ${G_RTN_NORMAL}
fi

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

# 2017.04.18 OM-2017-0000425 add start
  echolog "01. ${JOBNAME}:二重起動チェック用ファイル作成: ${DOUBLE_START_CHECK_FILE}"
# 2017.04.18 OM-2017-0000425 add end

### 2013.08.28 OM-2013-0001114 add end

##########################
# デバッグ用スリープ     #
##########################
#sleep 30

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

# 2013.10.08 OM-2013-0003104 add start
################################################
#
#--- 1. ディレイド処理依頼有無チェック
#
################################################
sh ${G_TOOLSH}/EO22V0510D0.sh $JOBNAME $CHECK_FILE $TIME_STR

# 2017.04.18 OM-2017-0000425 add start
    echolog "10. ディレイド処理依頼フラグファイル(${CHECK_FILE})の中身:`cat $CHECK_FILE | tail -1`"
# 2017.04.18 OM-2017-0000425 add end

#
#--- ディレイド処理依頼フラグファイル確認
#
if [ -r $CHECK_FILE ] ; then
  FLG_CODE=`cat $CHECK_FILE | tail -1`
  rm -f $CHECK_FILE
  if [ $FLG_CODE -eq 0 ] ; then

# 2017.04.18 OM-2017-0000425 mod start
#    echo $JOBNAME 'Not such a Order'
    echolog "11. ${JOBNAME}:ディレイド処理依頼がありません"
# 2017.04.18 OM-2017-0000425 mod end

### 2013.08.28 OM-2013-0001114 add start
##################################
# 二重起動チェック用ファイル削除 #
##################################
    rm -f ${DOUBLE_START_CHECK_FILE} > /dev/null 2>&1
    
# 2017.04.18 OM-2017-0000425 mod start
#    echo "1. remove DOUBLE_START_CHECK_FILE: ${DOUBLE_START_CHECK_FILE} OK."
    echolog "12. 二重起動チェック用ファイル削除: ${DOUBLE_START_CHECK_FILE} OK. 終了します"
# 2017.04.18 OM-2017-0000425 mod end

### 2013.08.28 OM-2013-0001114 add end
    sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME
    exit ${G_RTN_NORMAL}
  fi
fi

# 2013.10.08 OM-2013-0003104 add end

################################################
#
#--- 2. 番ポなし番号事前通知データ抽出 ---
#
################################################
sh ${G_TOOLSH}/EO22V0511D0.sh $JOBNAME $CHECK_FILE $TIME_STR
RETURN_FLG=$?

# 2017.04.18 OM-2017-0000425 add start
echolog "20. EO22V0511D0.sh 結果=${RETURN_FLG}"
# 2017.04.18 OM-2017-0000425 add end

#
#--- ディレイド処理依頼フラグファイル確認
#
if [ -r $CHECK_FILE ] ; then
  FLG_CODE=`cat $CHECK_FILE | tail -1`
  
# 2017.04.18 OM-2017-0000425 add start
  echolog "21. ディレイド処理依頼フラグファイルの中身:${FLG_CODE}  (ここは通らないはず)"
# 2017.04.18 OM-2017-0000425 add end

  rm -f $CHECK_FILE
  if [ $FLG_CODE -eq 0 ] ; then
  
# 2017.04.18 OM-2017-0000425 mod start
#    echo $JOBNAME 'Not such a Order'
    echolog "22. ${JOBNAME}:ディレイド処理依頼がありません  (ここは通らないはず)"
# 2017.04.18 OM-2017-0000425 mod end

### 2013.08.28 OM-2013-0001114 add start
##################################
# 二重起動チェック用ファイル削除 #
##################################
    rm -f ${DOUBLE_START_CHECK_FILE} > /dev/null 2>&1
    
# 2017.04.18 OM-2017-0000425 mod start
#    echo "1. remove DOUBLE_START_CHECK_FILE: ${DOUBLE_START_CHECK_FILE} OK."
    echolog "23. 二重起動チェック用ファイル削除: ${DOUBLE_START_CHECK_FILE} OK.  (ここは通らないはず)"
# 2017.04.18 OM-2017-0000425 mod end

### 2013.08.28 OM-2013-0001114 add end
    sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME
    exit ${G_RTN_NORMAL}
  fi
fi

################################################
#
#--- 3. 番ポなし番号事前通知データ結果更新 ---
#
################################################
#  G_RTN_NORMAL、G_RTN_WARNのみ実行
if [ $RETURN_FLG -eq $G_RTN_NORMAL -o $RETURN_FLG -eq $G_RTN_WARN ] ; then

# 2017.04.18 OM-2017-0000425 mod start
#  echo " DEBUG_MSG Start running JOB EO22V0513D0 by code:$RETURN_FLG "
  echolog "30. EO22V0513D0.sh を開始します... 前処理の結果=${RETURN_FLG}"
# 2017.04.18 OM-2017-0000425 mod end

  sh ${G_TOOLSH}/EO22V0513D0.sh $TIME_STR
  BUF=$?
  
# 2017.04.18 OM-2017-0000425 add start
  echolog "31. EO22V0513D0.sh 結果=${BUF}"
# 2017.04.18 OM-2017-0000425 add end

  if [ $RETURN_FLG -lt $BUF ] ; then
      RETURN_FLG=$BUF
  fi
else

# 2017.04.18 OM-2017-0000425 mod start
#  echo " DEBUG_MSG Skip JOB EO22V0513D0 by code:$RETURN_FLG "
  echolog "32. EO22V0513D0.shをスキップしました。 前処理の結果=${RETURN_FLG}"
# 2017.04.18 OM-2017-0000425 mod end

fi

################################################
#
#--- 4. 番ポなし番号事前通知データ更新 ---
#
################################################

# 2017.04.18 OM-2017-0000425 mod start
#echo " DEBUG_MSG Start running JOB EO22V0512D0 by code:$RETURN_FLG "
echolog "40. EO22V0512D0.sh を開始します... 前処理の結果=${RETURN_FLG}"
# 2017.04.18 OM-2017-0000425 mod end

sh ${G_TOOLSH}/EO22V0512D0.sh $JOBNAME $RETURN_FLG $TIME_STR
BUF=$?

# 2017.04.18 OM-2017-0000425 add start
  echolog "41. EO22V0512D0.sh 結果=${BUF}"
# 2017.04.18 OM-2017-0000425 add end

if [ $RETURN_FLG -lt $BUF ] ; then
    RETURN_FLG=$BUF
fi

### 2013.08.28 OM-2013-0001114 add start
##################################
# 二重起動チェック用ファイル削除 #
##################################
rm -f ${DOUBLE_START_CHECK_FILE} > /dev/null 2>&1

# 2017.04.18 OM-2017-0000425 mod start
#echo "2. remove DOUBLE_START_CHECK_FILE: ${DOUBLE_START_CHECK_FILE} OK."
echolog "42. 二重起動チェック用ファイル削除: ${DOUBLE_START_CHECK_FILE} OK. 処理終了 RETURN_FLG=${RETURN_FLG}"
# 2017.04.18 OM-2017-0000425 mod end

### 2013.08.28 OM-2013-0001114 add end

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

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