#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：物流管理
#
# シェル名      ：宅内機器物流在庫更新依頼ファイル作成（工事予定３）
#
# 機能          ：バッチ用宅内機器物流在庫より宅内機器物流在庫更新依頼ファイルを作成する。
#
# コマンド形式  ：EO5030410J2.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v54.00.00       2021/09/17  FJ)謝        【ANK-4069-00-00】バッチ・DBサーバーリプレース対応
#
##############################################################

##############################################################
# 環境変数定義
##############################################################
#
#---ツール格納場所
#
G_TOOLSH=.

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

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

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

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

#
#---業務で必要な変数定義
#
# システム日付を取得
. EOK010410J0.sh 2
TODAY="${RSLT_SYSDATE}"

# プロセスＩＤ
PID=$$

#前バッチ
PREV_JOBNAME=EO5030110J2

#送信IF
MID_SEND_IF=DKIFE037
#中間ファイル
MIDFILE=${MID_DIR_DK}/${JOBNAME}_${MID_SEND_IF}.csv
#送信中間ファイル名
MID_SEND_FILE_NAME=${GAIBU_SEND_DIR_DK}/${MID_SEND_IF}/${MID_SEND_IF}_${TODAY}.csv
# ANK-4069-00-00 ADD START
#フラグファイル
MID_SEND_FILE_NAME_FLG=${GAIBU_SEND_DIR_DK}/${MID_SEND_IF}/${MID_SEND_IF}_${TODAY}.flg
# ANK-4069-00-00 ADD END

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

#--- 転送対象データが存在しているかデータ件数を取得
DATA_COUNT=`sqlplus -s ${ORACLEUSER}/${ORACLEPASS}@${SID_S} @${SQL_DIR}/DK_S_DK0511_05.sql ${PREV_JOBNAME}`

rc=$?

#オラクルエラー発生時
if [ ${rc} -ne 0 ]; then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME " sqlplus Error(program:rc=$rc) "
    echo $JOBNAME " sqlplus Error(program:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

#送信データなしの場合正常終了
if [ ${DATA_COUNT} -eq 0 ] ; then
    echo $JOBNAME " No Send Data."
    sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME
    exit 0
fi

# 宅内機器物流在庫更新依頼ファイル作成
TMP_FILE=${MID_SEND_FILE_NAME}_${PID}.tmp
sqlplus -s ${ORACLEUSER}/${ORACLEPASS}@${SID_S} @${SQL_DIR}/DK_S_DK0511_06.sql ${PREV_JOBNAME} > ${TMP_FILE}
rc=$?

#オラクルエラー発生時
if [ ${rc} -ne 0 ]; then
    #中間ワークファイルがあったら削除する。
    if [ -e ${MID_SEND_FILE_NAME}_${PID}_temp1 ]
    then
        rm ${MID_SEND_FILE_NAME}_${PID}_temp1
    fi
    sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME " sqlplus Error(program:rc=$rc) "
    echo $JOBNAME " sqlplus Error(program:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

cat ${TMP_FILE} | sed -e 's/|/","/g' | sed -e 's/\t//g' | sed -e 's/ //g' | sed -e 's/^/"/' | sed -e 's/$/"/' | sed -e "s/\r\n/\r/g" > ${MID_SEND_FILE_NAME}
rc=$?
if [ $rc -ne 0 ] ; then
    echo "送信ファイルの作成に失敗しました。"
    rm -f ${MID_SEND_FILE_NAME}
    rm -f ${TMP_FILE}
    sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME
    exit ${G_RTN_ERROR}
fi

#ワークファイルを削除
rm -f ${TMP_FILE}
# ANK-4069-00-00 ADD START
#フラグファイル作成
: >  ${MID_SEND_FILE_NAME_FLG}
# ANK-4069-00-00 ADD END

#送信用中間ファイル作成
echo ${MID_SEND_FILE_NAME} > ${MIDFILE}
rc=$?
if [ $rc -ne 0 ] ; then
    echo "中間ファイルの作成に失敗しました。"
    rm -f ${MIDFILE}
    rm -f ${MID_SEND_FILE_NAME}
    sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME
    exit ${G_RTN_ERROR}
fi

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

exit 0
