#!/bin/bash

##############################################################
# システム名    ：
#
# サブシステム名：
#
# シェル名      ：
#
# 機能          ：
#
# コマンド形式  ：EO2H50110J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：
#
# 特記事項      ：
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v39.00.00     2018/09/15  WSJ)ニール     新規作成(【ANK-3412-00-00_５ギガ・１０ギガコース導入対応】)
# v40.0.0       2018/12/05  WSJ)ニール    【ANK-3412-09-00】開通住所一覧リスト取得内容変更
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

#---業務で必要な変数定義
#
#---運用日付取得
if [ "${OPD}" = "" ]; then
   . EOK010310J0.sh "BDATE"
   OPD=${RSLT_OPEDATE}
else
   RSLT_OPEDATE="${OPD}"
fi

file_exist() {
	#
	#--- ファイル存在チェック
	#
	if [ `ls -f $1 2> /dev/null | wc -l` -eq 0 ]
	then
    		echo $JOBNAME " File is nonexist($1) "
    		#sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME
    		sh ${G_TOOLSH}/EOK010210J0.sh EKKB1100CW $JOBNAME
    		exit ${G_RTN_ERROR}
	fi
}

error_check() {
	if [ $1 -ne 0 ]
	then
		sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " MATCHING UTIL Error($SVC util:rc=$rc) "
		echo $JOBNAME " MATCHING UTIL Error($SVC util:rc=$rc) "
		exit ${G_RTN_ERROR}
	fi
}

line_count() {
	LINE_COUNT=`wc -l ${1} | awk '{printf $1}'`

	if [ $LINE_COUNT -eq 0 ]
	then
        	echo "Empty Result File : ${OUTPUT_FILE_KKIFM858_TMP}"
       		exit ${G_RTN_ERROR}
	fi
}

INPUT_FILE_KK0251=${MID_DIR_CC}/CCIFM023002.csv			# KK_T_SVKEI_KAISEN_UW.csv
INPUT_FILE_KK0251_TMP=${MID_DIR_CC}/${JOBNAME}_CCIFM023002_tmp.csv

INPUT_FILE_KK0241=${MID_DIR_CC}/CCIFM022002.csv			# KK_T_KAISEN_TG_SVKEI.csv
INPUT_FILE_KK0241_TMP=${MID_DIR_CC}/${JOBNAME}_CCIFM022002_tmp.csv

INPUT_FILE_KK0081=${MID_DIR_CC}/CCIFM020002.csv			# KK_T_SVC_KEI.csv
INPUT_FILE_KK0081_TMP=${MID_DIR_CC}/${JOBNAME}_CCIFM020002_tmp.csv

INPUT_FILE_KU0081=${MID_DIR_CC}/CCIFM035001.csv			# KU_T_SVKEI_KOJIAK.csv
INPUT_FILE_KU0081_TMP=${MID_DIR_CC}/${JOBNAME}_CCIFM035001_tmp.csv

INPUT_FILE_KU0011=${MID_DIR_CC}/CCIFM034001.csv			# KU_T_KOJIAK.csv
INPUT_FILE_KU0011_TMP=${MID_DIR_CC}/${JOBNAME}_CCIFM034001_tmp.csv

OUTPUT_FILE_KKIFM826=${MID_DIR_KK}/${JOBNAME}_KKIFM826.csv
OUTPUT_FILE_KKIFM857=${MID_DIR_KK}/${JOBNAME}_KKIFM857.csv
OUTPUT_FILE_KKIFM858=${MID_DIR_KK}/${JOBNAME}_KKIFM858.csv

OUTPUT_FILE_KKIFM826_TMP=${MID_DIR_KK}/${JOBNAME}_KKIFM826_tmp.csv
OUTPUT_FILE_KKIFM858_TMP=${MID_DIR_KK}/${JOBNAME}_KKIFM858_tmp.csv

KK_CM_1013_DEF=${G_TOOLSH}/util/def/KK_CM_1013.def
KK_CM_1013_DEF_TMP=${G_TOOLSH}/util/def/${JOBNAME}_KK_CM_1013_tmp.def

KK_CM_1022_DEF=${G_TOOLSH}/util/def/KK_CM_1022.def
KK_CM_1022_DEF_TMP=${G_TOOLSH}/util/def/${JOBNAME}_KK_CM_1022_tmp.def

KK_CM_1017_DEF=${G_TOOLSH}/util/def/KK_CM_1017.def
KK_CM_1017_DEF_TMP=${G_TOOLSH}/util/def/${JOBNAME}_KK_CM_1017_tmp.def

file_exist $INPUT_FILE_KK0251
file_exist $KK_CM_1013_DEF
cp -v $INPUT_FILE_KK0251 $INPUT_FILE_KK0251_TMP

# CCIFM023002.csvにしか日本語文字が含まれていないため、結合(awk)前UTF-8まで変換 (2018/01/10)
nkf -Lu -x -S -w --overwrite $INPUT_FILE_KK0251_TMP				# Convert input file from SJIS to UTF-8

sed -e s@'${KK_T_SVKEI_KAISEN_UW}'@${INPUT_FILE_KK0251_TMP}@g $KK_CM_1013_DEF > $KK_CM_1013_DEF_TMP
file_exist $KK_CM_1013_DEF_TMP

echo "Performing Matching : ${KK_CM_1013_DEF_TMP} with Result Output : ${OUTPUT_FILE_KKIFM826}"
export ZTLOUTFILE=$OUTPUT_FILE_KKIFM826
${G_TOOLSH}/util/bin/ZTLMAT01 $KK_CM_1013_DEF_TMP
error_check $?

rm -v $KK_CM_1013_DEF_TMP
rm -v $INPUT_FILE_KK0251_TMP

line_count $OUTPUT_FILE_KKIFM826
cat /dev/null > $OUTPUT_FILE_KKIFM826_TMP	# Clear the output file
echo "Merging Columns for CSV Output : ${OUTPUT_FILE_KKIFM826_TMP}"

#【ANK-3412-09-00】MOD START
# Columns are all enclosed by double-quoutes(""). Using match function with REGEX, it will removed all the quotes when merging with other columns. 
awk 'BEGIN { FS = "," ; OFS="," } { match($4$5, /((\".*)\"\"(.*\"))/, addr1); \
	match($6, /\"(.*\")/, addr2); match($8$9, /(\"(.*\")(\".*)\")/, addr3); \
	print $1,$2,$3,addr1[2]addr3[2],addr3[3]addr2[1],$7 }' $OUTPUT_FILE_KKIFM826 > $OUTPUT_FILE_KKIFM826_TMP
#【ANK-3412-09-00】MOD END

rm -v $OUTPUT_FILE_KKIFM826
echo "Executing sed for ${KK_CM_1022_DEF_TMP}. Replacing :OPEDATE to ${RSLT_OPEDATE}."
sed -e s@'${OPEDATE}'@${RSLT_OPEDATE}@g $KK_CM_1022_DEF > $KK_CM_1022_DEF_TMP

file_exist $KK_CM_1022_DEF_TMP
echo "Executing sed for ${KK_CM_1022_DEF_TMP}. Replacing :KK_T_SVKEI_KAISEN_UW to ${OUTPUT_FILE_KKIFM826_TMP}."
sed -i -e s@'${KK_T_SVKEI_KAISEN_UW}'@${OUTPUT_FILE_KKIFM826_TMP}@g $KK_CM_1022_DEF_TMP

file_exist $INPUT_FILE_KK0241
cp -v $INPUT_FILE_KK0241 $INPUT_FILE_KK0241_TMP
nkf -Lu -x -S -w --overwrite $INPUT_FILE_KK0241_TMP
echo "Executing sed for ${KK_CM_1022_DEF_TMP}. Replacing :KK_T_KAISEN_TG_SVKEI to ${INPUT_FILE_KK0241}."
sed -i -e s@'${KK_T_KAISEN_TG_SVKEI}'@${INPUT_FILE_KK0241_TMP}@g $KK_CM_1022_DEF_TMP

file_exist $INPUT_FILE_KK0081
cp -v $INPUT_FILE_KK0081 $INPUT_FILE_KK0081_TMP
nkf -Lu -x -S -w --overwrite $INPUT_FILE_KK0081_TMP
echo "Executing sed for ${KK_CM_1022_DEF_TMP}. Replacing :KK_T_SVC_KEI to ${INPUT_FILE_KK0081}."
sed -i -e s@'${KK_T_SVC_KEI}'@${INPUT_FILE_KK0081_TMP}@g $KK_CM_1022_DEF_TMP

echo "Performing Matching : ${KK_CM_1022_DEF_TMP} with Result Output : ${OUTPUT_FILE_KKIFM857}"
export ZTLOUTFILE=$OUTPUT_FILE_KKIFM857
${G_TOOLSH}/util/bin/ZTLMAT01 $KK_CM_1022_DEF_TMP
error_check $?

rm -v $OUTPUT_FILE_KKIFM826_TMP
rm -v $KK_CM_1022_DEF_TMP
rm -v $INPUT_FILE_KK0241_TMP
rm -v $INPUT_FILE_KK0081_TMP
echo "Executing sed for ${KK_CM_1017_DEF_TMP}. Replacing :KKIFM857 to ${OUTPUT_FILE_KKIFM857}."
sed -e s@'${KKIFM857}'@${OUTPUT_FILE_KKIFM857}@g $KK_CM_1017_DEF > $KK_CM_1017_DEF_TMP
file_exist $KK_CM_1017_DEF_TMP

file_exist $INPUT_FILE_KU0081
cp -v $INPUT_FILE_KU0081 $INPUT_FILE_KU0081_TMP
nkf -Lu -x -S -w --overwrite $INPUT_FILE_KU0081_TMP
echo "Executing sed for ${KK_CM_1017_DEF_TMP}. Replacing :KU_T_SVKEI_KOJIAK to ${INPUT_FILE_KU0081}."
sed -i -e s@'${KU_T_SVKEI_KOJIAK}'@${INPUT_FILE_KU0081_TMP}@g $KK_CM_1017_DEF_TMP

file_exist $INPUT_FILE_KU0011
cp -v $INPUT_FILE_KU0011 $INPUT_FILE_KU0011_TMP
nkf -Lu -x -S -w --overwrite $INPUT_FILE_KU0011_TMP
echo "Executing sed for ${KK_CM_1017_DEF_TMP}. Replacing :KU_T_KOJIAK to ${INPUT_FILE_KU0011}."
sed -i -e s@'${KU_T_KOJIAK}'@${INPUT_FILE_KU0011_TMP}@g $KK_CM_1017_DEF_TMP

export ZTLOUTFILE=$OUTPUT_FILE_KKIFM858
${G_TOOLSH}/util/bin/ZTLMAT01 $KK_CM_1017_DEF_TMP
error_check $?

rm -v $KK_CM_1017_DEF_TMP
rm -v $INPUT_FILE_KU0081_TMP
rm -v $INPUT_FILE_KU0011_TMP
rm -v $OUTPUT_FILE_KKIFM857
file_exist $OUTPUT_FILE_KKIFM858
line_count $OUTPUT_FILE_KKIFM858

# Add two(2) columns : Service Available Area Start Date and Service Available Area End Date.
echo "Peforming bsortex for file : ${OUTPUT_FILE_KKIFM858} to ${OUTPUT_FILE_KKIFM858_TMP}."
bsortex -copy -record recform=txtcsv -input reclen=511 file=${OUTPUT_FILE_KKIFM858} -output reconst="0.END,EMPTY,EMPTY" file=${OUTPUT_FILE_KKIFM858_TMP}
rm -v $OUTPUT_FILE_KKIFM858

echo "Converting ${OUTPUT_FILE_KKIFM858_TMP} to SJIS encoding."
nkf -Lu -x -W -s --overwrite ${OUTPUT_FILE_KKIFM858_TMP}

P1="OPD=${OPD},"
P2="SVCCTL=JBSbatUnitServiceControl,"
P3="JOB=EO2H50110J0,"
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=,"
P18="FREE=${OUTPUT_FILE_KKIFM858_TMP};${MID_DIR_KK}/開通済住所一覧"
PARA="$P1$P2$P3$P4$P5$P6$P7$P8$P9$P10$P11$P12$P13$P14$P15$P16$P17$P18"

echo "Calling Batch for File : ${OUTPUT_FILE_KKIFM858_TMP} with parameters : ${PARA}"
java ${JAVA_OPTION} -jar ${JAR_DIR}/koptBatch.jar $PARA
rc=$?

# Clean up
rm -v $OUTPUT_FILE_KKIFM858_TMP

# Perform Return Code Check for Java Application
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
fi

exit_rc=$rc
exit $exit_rc
