#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約管理
#
# シェル名      ：サービス契約利用停止（月次）
#
# 機能          ：１. 利用停止用中間ファイルより利用停止対象のサービスを取得する。
#２. 利用停止実行CCを介し、利用停止可能なサービスに対して利用停止要求を発行する。
#３. 利用停止できなかったサービスを、停止対象外サービス契約実績に登録する。
#
# コマンド形式  ：EO20Y0211J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
#                2013/01/31   FJ)津田     ST1-2013-0000216 新規作成（EO20Y0210J0から月次処理を分割）
#                2013/04/12   FJ)鈴木     IT1-2013-0000862 中間ファイルを残すよう修正
#                2013/04/26   FJ)坂東     IT1-2013-0001066 バックグラウンドで実行するよう修正
#
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

#---分割数
SPLT=5
#---ループカウンタ
count=0

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

#
#--- 運用日の取得
#
. EOK010310J0.sh "BDATE"

#
#--- ファイル定義
#
SOURCEFILE_DAY=${SEND_DIR}/KKIFI005002.csv
TARGETFILE_DAY=${SEND_DIR}/bk/KKIFI005002_${RSLT_OPEDATE}.csv

#
#--- 多重実行処理
#
while [ ${count} -lt ${SPLT} ]
do

   #
   #---分割ファイルに付与する連番
   #
   seqno=`printf "%02d" $((${count} + 1))`

   #
   #---入力ファイル名
   #
   filename[${count}]=${MID_DIR_KK}/KKIFM083002_${seqno}.csv

   #
   #---出力ファイル名（リラン用）
   #
   filename_err[${count}]=${MID_DIR_KK}/KKIFM083002_ERR_${seqno}.csv

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

   P1="OPD=,"
   P2="SVCCTL=JBSbatMultiServiceControl,"
   P3="JOB=EO20Y0211J0,"
   P4="IND1=KKIFM083.def,"
   P5="INF1=${filename[${count}]},"
   P6="IND2=,"
   P7="INF2=,"
   P8="OTD1=KKIFM083.def,"
   P9="OTF1=${filename_err[${count}]},"
   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

   #
   #---ＡＰＬ起動
   #

### IT1-2013-0001066 mod start
#  java ${JAVA_OPTION} -jar ${JAR_DIR}/koptBatch.jar $PARA
   java ${JAVA_OPTION} -jar ${JAR_DIR}/koptBatch.jar $PARA &
### IT1-2013-0001066 mod end

   PID=$!
   ARRAY_PID[${count}]=${PID}
   ARRAY_KEKKA[${count}]=0
   
   count=`expr ${count} + 1`
done



ERR_FLG=0

exit_rc=0
count=0
while [ ${count} -lt ${SPLT} ]
do
   wait ${ARRAY_PID[${count}]}
   rc=$?

   if [ $rc -ne 0 ]
   then
      if [ $rc -ne 4 ]
      then
          if [ $rc -ne 8 ]
          then
              if [ $rc -ne 127 ]
              then
                 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
       ERR_FLG=1
   else
       #
       #---中間ファイルクリア(自動生成後、追記)
       #
       cat /dev/null > ${filename[${count}]}

   fi

   if [ $rc -gt $exit_rc ]
   then
       exit_rc=$rc
   fi

   sh ${G_TOOLSH}/EOK010210J0.sh CS00028I $JOBNAME

   count=`expr ${count} + 1`
done

if [ $ERR_FLG -eq 0 ]
then

    #
    #---料金ＳからのＩＦファイルを退避
    #

    if [ -e ${SEND_DIR}/KKIFI005002.csv ]; then
        mv -f $SOURCEFILE_DAY $TARGETFILE_DAY
    fi
    
    #分割ファイルを削除する
    for filename in ${MID_DIR_KK}/KKIFM083002_*
    do
       if [ -e $filename ]
       then
           rm -f $filename
       fi
    done
    
### IT1-2013-0000862 del start
#    #中間ファイルを削除する
#    if [ -e ${MID_DIR_KK}/KKIFM083002.csv ]
#    then
#        rm -f ${MID_DIR_KK}/KKIFM083002.csv
#    fi
### IT1-2013-0000862 del end
    
fi

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

exit $exit_rc


