#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約管理
#
# シェル名      ：連携ファイル作成（電話情報）
#
# 機能          ：監視制御システムに連携する電話情報を取得し、連携用のCSVファイルを作成する。
#                 なお、「契約サービス」の「サービス」が"電話サービス"の情報を抽出する。
#
# コマンド形式  ：EO21V0410J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v3.01         2012/11/26    FJ)藤原      【ST4-2012-0000089】性能改善の為、アンロードを使用するように変更
# v4.00         2012/12/21    FJ)井熊      【IT1-2012-0002529】MS932→UTF8対応
# v5.00         2013/05/08    FJ)米谷      【IT1-2013-0001185】SQLファイルの分割。ファイルマッチング処理追加。
# v5.02         2013/06/01    FJ)鈴木      【KT1-2013-0000643】KK0241 回線対象サービス契約のソートを修正。開始年月日は降順に、最大日付は除く。
# v15.00        2015/07/01    FJ)有本      【OM-2015-0001816】 共通UNLOAD対応
# v19.00.00     2015/10/09    FJ)福山      【OM-2015-0002578】 性能改善：アンロード共通ファイル縮小対応
#
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

#
#---業務で必要な変数定義
#
#SYS_YMDHMSS=`date +'%Y%m%d%H%M%S'`
. EOK010410J0.sh 2
# 運用日付取得
. EOK010310J0.sh "BDATE"

##2013/06/01 add start
MAX_DATE=20991231
##2013/06/01 add end
##############################################################
# 業務処理
##############################################################
sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME

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

P1="OPD=,"
P2="SVCCTL=,"
P3="JOB=EO21V0410J0,"
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="
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

#
#--- ファイル定義
#
#SQLFILE=${SQL_DIR}/KK_U_KK0081_01.sql
OUTFILE=${GAIBU_SEND_DIR_KK}/KKIFE162/KKIFE162_${RSLT_SYSDATE}.csv
#SQLFILE_TEMP=${SQL_DIR}/KK_U_KK0081_01_temp.sql
OUTFILE_TEMP1=${GAIBU_SEND_DIR_KK}/KKIFE162/TEMP1.csv
OUTFILE_TEMP2=${GAIBU_SEND_DIR_KK}/KKIFE162/TEMP2.csv

##アンロード用
SQLFILE_KK0081=${SQL_DIR}/KK_U_KK0081_61.sql
# OM-2015-0001816 共通UNLOAD対応 2015/07/01 有本 DEL START
#SQLFILE_KK0241=${SQL_DIR}/KK_U_KK0241_13.sql
#SQLFILE_KK0251=${SQL_DIR}/KK_U_KK0251_09.sql
# OM-2015-0001816 共通UNLOAD対応 2015/07/01 有本 DEL END
SQLFILE_KK0081_TEMP=${SQL_DIR}/KK_U_KK0081_01_temp.sql

#アンロード出力用
SQLOUT_KK0081=${MID_DIR_KK}/KKIFE162001_SQLOUT_KK0081.csv
SQLOUT_KK0241=${MID_DIR_KK}/KKIFE162001_SQLOUT_KK0241.csv
# OM-2015-0001816 共通UNLOAD対応 2015/07/01 有本 DEL START
#SQLOUT_KK0251=${MID_DIR_KK}/KKIFE162001_SQLOUT_KK0251.csv
# OM-2015-0001816 共通UNLOAD対応 2015/07/01 有本 DEL END
#ソート結果格納用
KK0081_SORT=${MID_DIR_KK}/KKIFE162001_KK0081_SORT.csv
KK0241_SORT=${MID_DIR_KK}/KKIFE162001_KK0241_SORT.csv
# OM-2015-0001816 共通UNLOAD対応 2015/07/01 有本 DEL START
#KK0251_SORT=${MID_DIR_KK}/KKIFE162001_KK0251_SORT.csv
# OM-2015-0001816 共通UNLOAD対応 2015/07/01 有本 DEL END
#bsort絞込み結果格納用
KK0081_CRNT=${MID_DIR_KK}/KKIFE162001_KK0081_CRNT.csv
KK0241_CRNT=${MID_DIR_KK}/KKIFE162001_KK0241_CRNT.csv
KK0251_CRNT=${MID_DIR_KK}/KKIFE162001_KK0251_CRNT.csv

# OM-2015-0001816 共通UNLOAD対応 2015/07/01 有本 ADD START
#共通UNLOADファイル名
#回線対象サービス契約(全件)
COMULD2_KK0241_ALL=${MID_DIR_CC}/CCIFM022001.csv
#サービス契約回線内訳(カレント)
COMULD2_KK0251_CUR=${MID_DIR_CC}/CCIFM023002.csv
# OM-2015-0001816 共通UNLOAD対応 2015/07/01 有本 ADD END
#

#
#--- 各ファイルの存在チェックを行う TODO
#
if [ ! -r $SQLFILE ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($SQLFILE) "
    echo $JOBNAME " File is nonexist($SQLFILE) "
    exit ${G_RTN_ERROR}
fi

#
#--- アンロードファイルのクリアを行う TODO
#
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

#
#--- UNLOAD処理
#
# KK0081

#運用日埋め込み用SQLファイル作成
sed s/?/"'"$RSLT_OPEDATE"'"/g $SQLFILE_KK0081 > $SQLFILE_KK0081_TEMP

sh ${G_TOOLSH}/EOKULD02.sh $SQLFILE_KK0081_TEMP $SQLOUT_KK0081 $JOBNAME
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " UNLOAD Error($SQLOUT_KK0081 unload:rc=$rc) " 
    echo $JOBNAME " UNLOAD Error($SQLOUT_KK0081 unload:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

# KK0241
# OM-2015-0001816 共通UNLOAD対応 2015/07/01 有本 MOD START
#sh ${G_TOOLSH}/EOKULD02.sh $SQLFILE_KK0241 $SQLOUT_KK0241 $JOBNAME
# OM-2015-0002578 2015/10/09 福山 MOD START
#bsortex \
#  -copy -record recform=txtcsv \
#  -input file=${COMULD2_KK0241_ALL} \
#         reclen=${ULD_REC_LEN_KK0241} \
#         reconst="0.10,2.8,10.1,1.12,3.8" \
#   -output file=${SQLOUT_KK0241}
bsortex \
  -copy -record recform=txtcsv \
  -input file=${COMULD2_KK0241_ALL} \
         reclen=${ULD2_REC_LEN_KK0241} \
         reconst="0.10,2.8,4.1,1.12,3.8" \
   -output file=${SQLOUT_KK0241}
# OM-2015-0002578 2015/10/09 福山 MOD END
# OM-2015-0001816 共通UNLOAD対応 2015/07/01 有本 MOD END
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " UNLOAD Error($SQLOUT_KK0241 unload:rc=$rc) " 
    echo $JOBNAME " UNLOAD Error($SQLOUT_KK0241 unload:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

# OM-2015-0001816 共通UNLOAD対応 2015/07/01 有本 DEL START
# KK0251
#sh ${G_TOOLSH}/EOKULD02.sh $SQLFILE_KK0251 $SQLOUT_KK0251 $JOBNAME
#rc=$?
#if [ $rc -ne 0 ]
#then
#    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " UNLOAD Error($SQLOUT_KK0251 unload:rc=$rc) " 
#    echo $JOBNAME " UNLOAD Error($SQLOUT_KK0251 unload:rc=$rc) "
#    exit ${G_RTN_ERROR}
#fi
# OM-2015-0001816 共通UNLOAD対応 2015/07/01 有本 DEL END

#############################################################################
# KK0081_サービス契約
# 絞込み条件
#  サービス契約：カレント
#  旧ICSコード変換:カレント
#          17.2 KK0081.SVC_CD = '02
#          18.2 KK0081.PRC_GRP_CD = '10'
#include="4.1asc.eq.'0',21.1asc.eq.'2',20.8asc.le.'${RSLT_OPEDATE}',12.2asc.eq.'02',13.2asc.eq.'01',14.1asc.eq.'0',15.8asc.le.'${RSLT_OPEDATE}',16.8asc.ge.'${RSLT_OPEDATE}'" \
bsortex \
     -sort key=0.10asc,20.8asc,19.17asc \
     -record recform=txtcsv \
     -input file=${SQLOUT_KK0081} \
            reclen=1000 \
            include="4.1asc.eq.'0',21.1asc.eq.'2',20.8asc.le.'${RSLT_OPEDATE}'" \
     -output file=${KK0081_SORT}

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " KK0081 Sort Error($SVC sort:rc=$rc) "
    echo $JOBNAME " KK0081 Sort Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

bsortex \
     -merge key=0.10asc \
     -record recform=txtcsv \
     -input file=${KK0081_SORT} \
            reclen=1000 \
     -summary suppress last \
     -output file=${KK0081_CRNT} \
            include="17.2asc.eq.'02',18.2asc.eq.'10'"

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " KK0081 merge Error($SVC sort:rc=$rc) "
    echo $JOBNAME " KK0081 merge Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

#############################################################################
# KK0241 回線対象サービス契約
# ソート条件：
#          0.10 サービス契約番号 昇順
#          4.8  終了年月日       昇順
#          1.8  開始年月日       降順
# 絞込み条件：
#          2.1 MK_FLG = '0'
#          1.8 KAISEN_UCWK_USE_STAYMD != 最大年月日(20991231)
#
# 2013.06.01  ソート条件 開始年月日の昇順⇒降順に修正
#             絞込み条件 開始年月日 <= 運用日 ⇒ != 最大年月日 に修正（未来日も取り込む）
bsortex \
     -sort key=0.10asc,4.8asc,1.8ascr \
     -record recform=txtcsv \
     -input file=${SQLOUT_KK0241} \
            reclen=60 \
            include="2.1asc.eq.'0',1.8asc.ne.'${MAX_DATE}'" \
     -output file=${KK0241_SORT}

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " KK0241 Sort Error($SVC sort:rc=$rc) "
    echo $JOBNAME " KK0241 Sort Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

bsortex \
     -merge key=0.10asc \
     -record recform=txtcsv \
     -input file=${KK0241_SORT} \
            reclen=60 \
     -summary suppress last \
     -output file=${KK0241_CRNT}

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " KK0241 merge Error($SVC sort:rc=$rc) "
    echo $JOBNAME " KK0241 merge Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

#############################################################################
# KK0251 サービス契約回線内訳
# 絞込み条件 カレント
#          0.12 SVC_KEI_KAISEN_UCWK_NO
#          1.17  GENE_ADD_DTM
#          2.1  MK_FLG
# OM-2015-0001816 共通UNLOAD対応 2015/07/01 有本 DEL START
#bsortex \
#     -sort key=0.12asc,1.17asc \
#     -record recform=txtcsv \
#     -input file=${SQLOUT_KK0251} \
#            reclen=70 \
#            include="2.1asc.eq.'0'" \
#     -output file=${KK0251_SORT}
#
#rc=$?
#if [ $rc -ne 0 ]
#then
#    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " KK0251 Sort Error($SVC sort:rc=$rc) "
#    echo $JOBNAME " KK0251 Sort Error($SVC sort:rc=$rc) "
#    exit ${G_RTN_ERROR}
#fi
# OM-2015-0001816 共通UNLOAD対応 2015/07/01 有本 DEL END

# OM-2015-0001816 共通UNLOAD対応 2015/07/01 有本 MOD START
#bsortex \
#     -merge key=0.12asc \
#     -record recform=txtcsv \
#     -input file=${KK0251_SORT} \
#            reclen=70 \
#     -summary suppress last \
#     -output file=${KK0251_CRNT}
# OM-2015-0002578 2015/10/09 福山 MOD START
#bsortex \
#     -sort key=0.12asc,1.17asc \
#     -record recform=txtcsv \
#     -input file=${COMULD2_KK0251_CUR} \
#            reclen=${ULD_REC_LEN_KK0251} \
#            reconst="0.12,1.17,78.1,13.11" \
#     -output file=${KK0251_CRNT}
bsortex \
     -sort key=0.12asc,1.17asc \
     -record recform=txtcsv \
     -input file=${COMULD2_KK0251_CUR} \
            reclen=${ULD2_REC_LEN_KK0251} \
            reconst="0.12,1.17,13.1,5.11" \
     -output file=${KK0251_CRNT}
# OM-2015-0002578 2015/10/09 福山 MOD END
# OM-2015-0001816 共通UNLOAD対応 2015/07/01 有本 MOD END

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " KK0251 merge Error($SVC sort:rc=$rc) "
    echo $JOBNAME " KK0251 merge Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

#############################################################################
# マッチング
DEFFILE_KKIFE162=${G_TOOLSH}/util/def/KK_CM_0141.def
TMPDEFFILE_KKIFE1621=${ULD_WORK_DIR}/KK_CM_0141.tmp.def
export ZTLTMPDIR=${ULD_WORK_DIR}
export ZTLOUTFILE=${OUTFILE_TEMP1}

#
#--- 定義ファイル環境変数設定処理
#
cat ${DEFFILE_KKIFE162} > ${TMPDEFFILE_KKIFE1621}
sed -i -e s@'${MID_DIR_KK}'@${MID_DIR_KK}@g ${TMPDEFFILE_KKIFE1621}

#
#--- UNLOAD処理
#
${G_TOOLSH}/util/bin/ZTLMAT01 ${TMPDEFFILE_KKIFE1621}

rc=$?
if [ $rc -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

#--- 運用日埋め込み済みSQLファイル削除処理
#
#if [ -e $SQLFILE_TEMP ]
#then
#  rm $SQLFILE_TEMP
#fi

#
#--- MS932 → UTF-8 変換処理
#
iconv -f MS932 -t UTF8 $OUTFILE_TEMP1 -o $OUTFILE_TEMP2

#
#--- ダブルクォートの削除処理
#
sed s/\"//g $OUTFILE_TEMP2 > $OUTFILE

#
#--- 出力作業ファイルを削除
#
if [ -e $OUTFILE_TEMP1 ]
then
  rm $OUTFILE_TEMP1
fi
if [ -e $OUTFILE_TEMP2 ]
then
  rm $OUTFILE_TEMP2
fi

rm -f  ${SQLOUT_KK0081} > /dev/null 2>&1
rm -f  ${SQLOUT_KK0241} > /dev/null 2>&1
# OM-2015-0001816 共通UNLOAD対応 2015/07/01 有本 DEL START
#rm -f  ${SQLOUT_KK0251} > /dev/null 2>&1
# OM-2015-0001816 共通UNLOAD対応 2015/07/01 有本 DEL END

rm -f  ${KK0081_SORT} > /dev/null 2>&1
rm -f  ${KK0241_SORT} > /dev/null 2>&1
# OM-2015-0001816 共通UNLOAD対応 2015/07/01 有本 DEL START
#rm -f  ${KK0251_SORT} > /dev/null 2>&1
# OM-2015-0001816 共通UNLOAD対応 2015/07/01 有本 DEL END

rm -f  ${KK0081_CRNT} > /dev/null 2>&1
rm -f  ${KK0241_CRNT} > /dev/null 2>&1
rm -f  ${KK0251_CRNT} > /dev/null 2>&1

rm -f  ${SQLFILE_KK0081_TEMP} > /dev/null 2>&1

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

exit ${G_RTN_NORMAL}
