#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約管理
#
# シェル名      ：ＴＶ監視サーバ向け異動情報抽出（アンロード共通処理）
#
# 機能          ：TV事業者(K-CAT)分の変更のあった内容を、eo光テレビ異動情報ファイルに出力する。
#(1)eo光テレビでの異動情報
#(2)eo光テレビ以外での異動情報
#
# コマンド形式  ：EO20H0119J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v10.00         2014/10/14  FJ）大山      ST4-2014-0000071
# v14.00         2015/05/18  FJ)有本       OM-2015-0001266 性能改善対応
# v14.01         2015/06/17  FJ)宇野       OM-2015-0001266 中間ファイル名変更
# v14.02         2015/07/09  FJ)栗秋       ST-2015-0000031 エラーコメント対応
# v19.00         2015/10/08  FJ) 有本      OM-2015-0002578 共通ＵＮＬＯＡＤ項目削除対応
# v20.00         2015/12/14  FJ) 有本      OM-2015-0003006 共通ＵＮＬＯＡＤ項目削除対応
#
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

#
#---業務で必要な変数定義
#
### OM-2015-0001266 性能改善対応 2015/05/18 有本 DEL START
#SQL_FILE_U_KK0081_50=${SQL_DIR}/KK_U_KK0081_50.sql
### OM-2015-0001266 性能改善対応 2015/05/18 有本 DEL END

DEF_FILE_KK_CM_0079=${G_TOOLSH}/util/def/KK_CM_0079.def
DEF_FILE_KK_CM_0080=${G_TOOLSH}/util/def/KK_CM_0080.def
DEF_FILE_KK_CM_0107=${G_TOOLSH}/util/def/KK_CM_0107.def

KK0081_UNLOAD_OUTFILE=${MID_DIR_KK}/KKIFM630001.csv

### OM-2015-0001266 性能改善対応 2015/05/18 有本 ADD START
### OM-2015-0001266 2015/06/17 宇野 MOD START
#COMULD_KK0081_ALL=${MID_DIR_CC}/CCIFM002001.csv
COMULD_KK0081_ALL=${MID_DIR_CC}/CCIFM018001.csv
### OM-2015-0001266 2015/06/17 宇野 MOD END
### OM-2015-0001266 性能改善対応 2015/05/18 有本 ADD END

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

### OM-2015-0002578 共通ＵＮＬＯＡＤ項目削除対応 2015/10/08 有本 DEL START
#if [ "${OPD}" = "" ];then
#    # 運用日取得
#    . EOK010310J0.sh BDATE
#    OPEDATE=`echo $RSLT_OPEDATE`
#else
#    # 運用日設定
#    OPEDATE=${OPD}
#fi
#
## システム日付取得
#. EOK010410J0.sh 1
#SYSDATETIME=`echo $RSLT_SYSDATE`
#
## 運用日付+システム日時取得
#SEARCHDTM=${OPEDATE}`echo $SYSDATETIME | cut -c 9-17`
#### OM-2015-0002578 共通ＵＮＬＯＡＤ項目削除対応 2015/10/08 有本 DEL END

#
#--- アンロード関数
#       p1：テーブル名／クエリファイル名
EXEC_UNLOAD()
{
	sh ${G_TOOLSH}/EOKULD02.sh $1 $2
	
	rc=$?
	if [ $rc -ne 0 ]
	then
		sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " unload error($2:rc=$rc) "
		echo $JOBNAME " unload error($2:rc=$rc) "
		exit ${G_RTN_ERROR}
	fi
}

#
#--- クエリ編集
#       p1：ＳＱＬ定義ファイル名
#       p2：バインド変数置換文字
EDIT_ULD_QUERY()
{
	SQL_FILE=$1
	SQL_WORK_FILE=${ULD_WORK_DIR}/${JOBNAME}_QUERY.tmp
	cat /dev/null > ${SQL_WORK_FILE}
	
	# SQL定義ファイルの編集
	if [ ! -r ${SQL_FILE} ]
	then
		sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${SQL_FILE}:rc=$rc) "
		echo $JOBNAME " File is nonexist(${SQL_FILE}:rc=$rc) "
		exit ${G_RTN_ERROR}
	fi

	# バインド変数を置き換える
	cat ${SQL_FILE} > ${SQL_WORK_FILE}
	
	for bind in $2
	do
		sed -i, -e 0,/?/s/?/"'"$bind"'"/ ${SQL_WORK_FILE}
	done
	
	export SQL_WORK_FILE
}

#
#--- クエリ編集
#       p1：ＳＱＬ定義ファイル名
#       p2：バインド変数置換文字
EDIT_MATCHING_QUERY()
{
	MATCHING_FILE=$1
	MATCHING_QUERY_WORK=${ULD_WORK_DIR}/${JOBNAME}_MATCH_QUERY.tmp
	
	cat /dev/null > ${MATCHING_QUERY_WORK}
	
	# SQL定義ファイルの編集
	if [ ! -r ${MATCHING_FILE} ]
	then
		sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${MATCHING_FILE}:rc=$rc) "
		echo $JOBNAME " File is nonexist(${MATCHING_FILE}:rc=$rc) "
		exit ${G_RTN_ERROR}
	fi

	# バインド変数を置き換える
	cat ${MATCHING_FILE} > ${MATCHING_QUERY_WORK}
	
	for bind in $2
	do
		bind_escape=`echo $bind | sed "s/\//\\\\\\\\\//g"`
		sed -i, -e 0,/#STRVAL#/s/#STRVAL#/$bind_escape/ ${MATCHING_QUERY_WORK}
	done
	
	export MATCHING_QUERY_WORK
}

#
#--- マッチング処理
#      p1：出力ファイルパス
#      p2：マッチングクエリファイルパス
EXEC_MATCHING()
{
	# 出力ファイルの初期化
	OUTFILE=$1
	cat /dev/null > ${OUTFILE}
	rc=$?
	if [ $rc -ne 0 ]
	then
		sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error(${OUTFILE}:rc=$rc) "
		echo $JOBNAME " File cat error(${OUTFILE}:rc=$rc) "
		exit ${G_RTN_ERROR}
	fi

	# マッチング実行
	export ZTLOUTFILE=${OUTFILE}
	${G_TOOLSH}/util/bin/ZTLMAT01 $2
	rc=$?
	if [ $rc -ne 0 ]
	then
		sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " matching error($2:rc=$rc) "
		echo $JOBNAME " matching error($2:rc=$rc) "
		exit ${G_RTN_ERROR}
	fi
}

# KK0081(KK_T_SVC_KEI)の全データをアンロード
### OM-2015-0001266 性能改善対応 2015/05/18 有本 DEL START
# EXEC_UNLOAD ${SQL_FILE_U_KK0081_50} ${KK0081_UNLOAD_OUTFILE}
### OM-2015-0001266 性能改善対応 2015/05/18 有本 DEL END
### OM-2015-0001266 性能改善対応 2015/05/18 有本 ADD START
#共通アンロード(サービス契約 サービス開始前 全件)から、必要なデータを取得する。
### OM-2015-0002578 共通ＵＮＬＯＡＤ項目削除対応 2015/10/08 有本 MOD START
#bsortex -copy -record recform=txtcsv -input file=${COMULD_KK0081_ALL} reclen=${ULD_REC_LEN_KK0081} reconst="0.10,4.2,8.2,1.17,33.8,35.1,96.1,2.3,3.10,103.8,104.8,9.3" -output file=${KK0081_UNLOAD_OUTFILE}
### OM-2015-0003006 共通ＵＮＬＯＡＤ項目削除対応 2015/12/14 有本 MOD START
#bsortex -copy -record recform=txtcsv \
#        -input file=${COMULD_KK0081_ALL} \
#               reclen=${ULD_REC_LEN_KK0081} \
#               reconst="0.10,4.2,7.2,1.17,15.8,17.1,35.1,2.3,3.10,36.8,37.8,8.3" \
#        -output file=${KK0081_UNLOAD_OUTFILE}
bsortex -copy -record recform=txtcsv \
        -input file=${COMULD_KK0081_ALL} \
               reclen=${ULD_REC_LEN_KK0081} \
               reconst="0.10,4.2,7.2,1.17,15.8,17.1,35.1,2.3,3.10,36.8,34.8,8.3" \
        -output file=${KK0081_UNLOAD_OUTFILE}
### OM-2015-0003006 共通ＵＮＬＯＡＤ項目削除対応 2015/12/14 有本 MOD END
### OM-2015-0002578 共通ＵＮＬＯＡＤ項目削除対応 2015/10/08 有本 MOD END
### OM-2015-0001266 性能改善対応 2015/05/18 有本 ADD END
# ST-2015-0000031 エラーコメント対応 2015/07/09 栗秋 ADD START
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " SORT Error($SVC sort:rc=$rc) " 
    echo $JOBNAME " SORT Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi
# ST-2015-0000031 エラーコメント対応 2015/07/09 栗秋 ADD END
#
#--- ジョブの終了メッセージを出力する
#
sh ${G_TOOLSH}/EOK010210J0.sh CS00028I $JOBNAME
sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME

exit $exit_rc
