#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：物流管理
#
# シェル名      ：棚移動出荷完了ファイル登録
#
# 機能          ：棚移動出荷完了情報受信ファイルを電子ファイル管理に登録する。
#
# コマンド形式  ：EO50F0110K0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v10.00.00       2014/10/07  FJ）舩橋     ANK-2029-00-00
# v10.00.01       2014/10/17  FJ）舩橋     IT1-2014-0000334
# v11.00.00       2014/11/30  FJ）舩橋     OM-2014-0003749
#
##############################################################

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

#
#---ツール格納場所
#
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}"

#
#---業務で必要な変数定義
#
#xxx=xxxxxxx
##############################################################
# 業務処理
##############################################################
sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME

TARGET="${GAIBU_RECEIVE_DIR_DK}/DKIFE004/eo_tana3*[0-9]???.flg"

#-- フラグファイルが存在しない時は、正常終了で処理を行わない
CNT=`ls $TARGET 2>/dev/null | wc -l`
if [ $CNT -eq 0 ]; then
  sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME
  exit ${G_RNT_NORMAL}
fi

#-- フラグファイルの１件目を取得する
FLG_FILE=`ls --sort time $TARGET | tail -1`
echo $JOBNAME " File is exist($FLG_FILE)"

#-- 取得したフラグファイルに対応するCSVファイルが存在しない場合は
#-- エラーとして処理を終了する
FILE_NAME=`echo $FLG_FILE | sed -e 's/flg$/csv/'`
if [ ! -e $FILE_NAME ]; then
	sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME
	echo $JOBNAME " File is not exist($FILE_NAME)"
	exit ${G_RTN_ERROR}
fi

# ANK-2029-00-00 ADD START

#
#--- 棚移動出荷情報完了ファイル定義
#
OUTFILE=${MID_DIR_DK}/DKIFM112.csv
cat /dev/null > ${OUTFILE}

# OM-2014-0003749 ADD START

INFILE_TIME=${MID_DIR_DK}/DKIFM112.csv.time
COMMAND_FILE=${MID_DIR_DK}/command.sql

echo "SET LINE 10000" > ${COMMAND_FILE}
echo "SET PAGESIZE 0" >> ${COMMAND_FILE}
echo "SET FEED OFF" >> ${COMMAND_FILE}
echo "SELECT TO_CHAR(SYSTIMESTAMP,'YYYYMMDDHH24MISSFF3') FROM DUAL;" >> ${COMMAND_FILE}
echo "EXIT;" >> ${COMMAND_FILE}

sqlplus -s ${ORACLEUSER}/${ORACLEPASS}@${SID_S} @${COMMAND_FILE} > $INFILE_TIME

rm -f ${COMMAND_FILE}

# OM-2014-0003749 ADD END

# ANK-2029-00-00 ADD END

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

P1="OPD=$OPD,"
P2="SVCCTL=JBSbatUnitServiceControl,"
P3="JOB=EO50F0110K0,"
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=,"
# ANK-2029-00-00 MOD START
#P18="FREE=$FILE_NAME"
P18="FREE=$FILE_NAME;${MID_DIR_DK}/;DKIFM112.csv;DKIFM112.def"
# ANK-2029-00-00 MOD END
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

rc=$?
ERR_FLG=0
if [ $rc -ne 0 ]
then
   if [ $rc -ne 4 ]
   then
       if [ $rc -ne 8 ]
       then
           if [ $rc -ne 127 ]
           then
              rm -f `echo ${FILE_NAME} | sed -e 's/.csv$/_*.csv/'`
              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
    rm -f `echo ${FILE_NAME} | sed -e 's/.csv$/_*.csv/'`
    ERR_FLG=1
fi

exit_rc=$rc

# IT1-2014-0000334 ADD START
#
# 棚移動出荷完了情報登録呼出
#
# OM-2014-0003749 MOD START
#sh ${G_TOOLSH}/EO5150310J0.sh
# IT1-2014-0000334 ADD END

INFILE=${MID_DIR_DK}/DKIFM112.csv
INFILE_TEMP=${MID_DIR_DK}/DKIFM112.csv.temp
START_TIME=`cat ${INFILE_TIME}`
rm -f $INFILE_TIME

# 管理番号が設定されたファイルがない場合
if [ ! -s ${INFILE} ]; then
  sh ${G_TOOLSH}/EOK010210J0.sh CS00028I $JOBNAME
  sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME
  exit ${G_RNT_NORMAL}
fi

echo "SET LINE 10000" > ${COMMAND_FILE}
echo "SET PAGESIZE 0" >> ${COMMAND_FILE}
echo "SET FEED OFF" >> ${COMMAND_FILE}
echo "SELECT EFILE_KANRI_NO FROM ZM_T_DL_FILE_KANRI A WHERE A.FILE_NM LIKE 'eo_tana3%' AND A.ADD_DTM >= '${START_TIME}';" >> ${COMMAND_FILE}
echo "EXIT;" >> ${COMMAND_FILE}

sqlplus -s ${ORACLEUSER}/${ORACLEPASS}@${SID_S} @${COMMAND_FILE} > ${INFILE_TEMP}
rm -f ${COMMAND_FILE}

# データダウンロードファイルに登録したデータを１行づつ処理する。
while read readData
do
    echo $readData > ${INFILE}
    sh ${G_TOOLSH}/EO5150310J0.sh
done < ${INFILE_TEMP}

rm -f ${INFILE_TEMP}

# OM-2014-0003749 MOD END

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

exit $exit_rc
