#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：顧客管理
#
# シェル名      ：ＶＬＡＮ－ＩＤ情報設定
#
# 機能          ：サービス制御管理システムから内部I/FされたVLAN-ID情報を、契約管理システムに反映する。
#
#
#
# コマンド形式  ：EO2BI0110K0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v8.00.00       2014/04/07   FJ)北谷      OM-2014-0001359 同一のお客様ＩＤに対し、ＶＬＡＮ－ＩＤ連携が大量に出力される
# v12.00.00      2015/01/07   FJ)吉田      ANK-2336-00-00  【ＮＯ．１７５１】VLAN-ID情報受信処理の分割実行
# v19.00.00      2015/09/28   FJ)三浦      OM-2015-0001112 VLAN-ID情報受信処理の分割実行の仕様調整（ファイル分割を200件→50件に変更）
#
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

if [ $# == 0 ]
then
 . EOK010310J0.sh "ODATE"
 OPE_YMD=$RSLT_OPEDATE
else
 OPE_YMD=$OPD
fi

#
#---業務で必要な変数定義
#
#xxx=xxxxxxx

# OM-2015-0001112 2015/09/28 MOD START
#SPLIT_LINE=200
SPLIT_LINE=50
# OM-2015-0001112 2015/09/28 MOD END

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

#JOB
EXEC=EO2BI0110K0


# リターン値の初期化
exit_rc=0

# 該当フォルダ以下のファイル名の年月日が小さいものから処理を実行する
#for fname in $(find ${SEND_DIR} -name "KKIFI027_*.csv" -exec sort)
#for fname in $(ls ${SEND_DIR}/"KKIFI027_*.csv")
ls ${SEND_DIR}/KKIFI027_*.csv | (while read passname;

do
	fname=$(basename ${passname})

    # 入力ファイル名退避
    IN_FILE_NM=${fname}

# ANK-2336-00-00 ADD START
	# 入力ファイル名（拡張子なし）
	IN_FILE_NM_NONE_EXT="${IN_FILE_NM%.*}"
	lsize=`grep -c '' ${SEND_DIR}/${IN_FILE_NM}`

	if [ $lsize -gt $SPLIT_LINE ]
	then
		IDX=1
		split -l $SPLIT_LINE ${SEND_DIR}/${IN_FILE_NM} ${SEND_DIR}/split
		ls ${SEND_DIR}/split* | (while read passname;
		do
			sFname=$(basename ${passname})
			
			affname=`printf "${SEND_DIR}/${IN_FILE_NM_NONE_EXT}_%03d.csv" ${IDX}`
			
			mv ${SEND_DIR}/${sFname} ${affname}
			
			IDX=`expr $IDX + 1`
		done)
		rm ${SEND_DIR}/${IN_FILE_NM}
	fi

	ls ${SEND_DIR}/${IN_FILE_NM_NONE_EXT}* | (while read passname;
	do
		EXE_FILE_NM=$(basename ${passname})
# ANK-2336-00-00 ADD END
		#
		#---パラメタ定義
		#
	
		P1="OPD=,"
		P2="SVCCTL=JBSbatMultiServiceControl,"
		P3="JOB=EO2BI0110K0,"
		P4="IND1=KKIFI027.def,"
# ANK-2336-00-00 CHANGE
		#P5="INF1=${SEND_DIR}/${IN_FILE_NM},"
		P5="INF1=${SEND_DIR}/${EXE_FILE_NM},"
		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-2336-00-00 CHANGE
		#P18="FREE=${IN_FILE_NM};${OPE_YMD}"
		P18="FREE=${EXE_FILE_NM};${OPE_YMD}"
		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
	# 2014/04/08 OM-2014-0001359 add start
		if [ $rc -ne 0 ]
		then
		    if [ $rc -ne 4 ]
		    then
		        if [ $rc -ne 8 ]
		        then
# ANK-2336-00-00 CHANGE
		            #mv ${SEND_DIR}/${IN_FILE_NM} ${SEND_DIR}/bk/${IN_FILE_NM}
		            mv ${SEND_DIR}/${EXE_FILE_NM} ${SEND_DIR}/bk/${IN_FILE_NM}
		            rc=8
		        fi
		    fi
		fi
	# 2014/04/08 OM-2014-0001359 add end
	
		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
			if [ ! -e ${SEND_DIR}/bk ]
			then
				mkdir ${SEND_DIR}/bk
			fi
# ANK-2336-00-00 CHANGE
		    #mv ${SEND_DIR}/${IN_FILE_NM} ${SEND_DIR}/bk/${IN_FILE_NM}
		    mv ${SEND_DIR}/${EXE_FILE_NM} ${SEND_DIR}/bk/${EXE_FILE_NM}
		fi
		if [ $rc -gt $exit_rc ]
		then
		   exit_rc=$rc
		fi
# ANK-2336-00-00 ADD START
	done)
# ANK-2336-00-00 ADD END
done

#
#--- ジョブの終了メッセージを出力する
#

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


exit $exit_rc)
