#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：料金管理
#
# シェル名      ：ｅｏ光電話呼情報入力チェック前処理
#
# 機能          ：１．ｅｏ光電話呼情報入力チェック前処理
#
#(1)後続ジョブで使用するアンロードデータの準備を行う。
#  ｅｏ光電話呼情報入力チェック処理
#
# コマンド形式  ：EO3080139J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v22.00.00       2016/01/18  FJ）土井    【OM-2016-0000115】新規作成
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

#
#---業務で必要な変数定義
#
[ $# -eq 2 ] &&TAJUKIDO="_$2"

#--- 運用日付取得
if [ "${OPD}" = "" ]; then
   . EOK010310J0.sh "BDATE"
else
    RSLT_OPEDATE="${OPD}"
fi

#--システム年月日時分秒取得
. EOK010410J0.sh "2"
SYSTIME=${RSLT_OPEDATE}`echo ${RSLT_SYSDATE} | cut -c 9-`

#---ワークファイル削除モード
WK_RM=true

#---マッチング処理でLeftjoinがNULL時に"を付けなくする（マッチング使用時は必須）
export ZTLQUOTES=''

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

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

#
#--- ファイル定義
#

#--- 出力ファイル
OUTFILE=${MID_DIR_AC}/ACIFM199002.csv
OUTFILE_WRK=${MID_DIR_AC}/${JOBNAME}_ACIFM199002_OUT_WK_1$TAJUKIDO.csv

#--- 1.サービス契約内訳（KK_T_SVC_KEI_UCWK）
INPUT_KK0161_ULD=${MID_DIR_AC}/EO3080155J0_ACIFM234_ULD.csv
CSVFILE_KK0161=${MID_DIR_AC}/${JOBNAME}_KK0161_UNLOADER_WK_1$TAJUKIDO.csv

#--- 2.サービス契約内訳＜eo光電話＞（KK_T_SVKEIUW_EOH_TEL）
INPUT_KK0191_ULD=${MID_DIR_AC}/EO3080155J0_ACIFM235_ULD.csv
CSVFILE_KK0191=${MID_DIR_AC}/${JOBNAME}_KK0191_UNLOADER_WK_1$TAJUKIDO.csv

#--- 3.オプションサービス契約（KK_T_OP_SVC_KEI）
SQLFILE_KK0351=${SQL_DIR}/AC_U_KK0351_01.sql

CSVFILE_KK0351=${MID_DIR_AC}/${JOBNAME}_KK0351_UNLOADER_WK_1$TAJUKIDO.csv
CSVFILE_KK0351_WRK=${MID_DIR_AC}/${JOBNAME}_KK0351_UNLOADER_WK_2$TAJUKIDO.csv

#--- 4.オプションサービス契約＜電話＞（KK_T_OPSVKEI_TEL）
SQLFILE_KK0371=${SQL_DIR}/AC_U_KK0371_01.sql

CSVFILE_KK0371=${MID_DIR_AC}/${JOBNAME}_KK0371_UNLOADER_WK_1$TAJUKIDO.csv
CSVFILE_KK0371_WRK=${MID_DIR_AC}/${JOBNAME}_KK0371_UNLOADER_WK_2$TAJUKIDO.csv

#--- ＯＡＢＪ番号チェック用データ
DEFFILE=${G_TOOLSH}/util/def/AC_CM_0010.def
DEFFILE_WRK=${G_TOOLSH}/util/def/${JOBNAME}_AC_CM_0010_MATCHING_WK_1$TAJUKIDO.def

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

#--- SQLパラメータセット
cp -f ${DEFFILE} ${DEFFILE_WRK}
sed -i -e "s%\:CSVFILE_KK0161%${CSVFILE_KK0161}%"  ${DEFFILE_WRK} 
sed -i -e "s%\:CSVFILE_KK0191%${CSVFILE_KK0191}%"  ${DEFFILE_WRK} 
sed -i -e "s%\:CSVFILE_KK0351%${CSVFILE_KK0351}%"  ${DEFFILE_WRK} 
sed -i -e "s%\:CSVFILE_KK0371%${CSVFILE_KK0371}%"  ${DEFFILE_WRK} 

#
#--- アンロードファイルのクリアを行う
#
cat /dev/null > $OUTFILE
cat /dev/null > $OUTFILE_WRK

#
#--- サブルーチン（UNLOAD）
#
UNLOAD(){

#unload
sh ${G_TOOLSH}/EOKULD03.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
}

#--- アンロード処理
#--- オプションサービス契約＜電話＞
UNLOAD ${SQLFILE_KK0371} ${CSVFILE_KK0371_WRK} &
pid_UNLOAD_KK0371=$!

#
#---抽出処理
#     サービス契約内訳＜eo光電話＞
#       抽出項目
#         0.11：電話番号
#         1.12：サービス契約内訳番号
#         2.17：世代登録年月日時分秒
bsortex \
   -copy -record recform=txtcsv \
   -input file=${INPUT_KK0191_ULD} \
          reclen=80 \
          reconst="0.11,1.12,2.17" \
   -output file=${CSVFILE_KK0191} 
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

#--- オプションサービス契約＜電話＞待ち合わせ
wait ${pid_UNLOAD_KK0371}
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " UNLOAD ERROR(${SQLFILE_KK0371}:rc=$rc) "
    echo $JOBNAME "UNLOAD ERROR(${SQLFILE_KK0371}:rc=$rc) "
fi

#--- アンロード処理
#--- オプションサービス契約
UNLOAD ${SQLFILE_KK0351} ${CSVFILE_KK0351_WRK} &
pid_UNLOAD_KK0351=$!

#
#---抽出処理
#     サービス契約内訳
#       抽出項目
#         0.8 ：サービス開始年月日
#         1.8 ：サービス終了年月日
#         2.12：サービス契約内訳番号
#         3.17：世代登録年月日時分秒
#       抽出条件
#         本来の抽出条件と、結合キーがNULLでないものを抽出
bsortex \
   -copy -record recform=txtcsv \
   -input file=${INPUT_KK0161_ULD} \
          reclen=110 \
          reconst="0.8,1.8,2.12,3.17" \
   -output omit="0.8ascb.eq.' '.or.1.8ascb.eq.' '" \
           file=${CSVFILE_KK0161}
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


#
#---ＳＯＲＴ
#     オプションサービス契約＜電話＞待ち合わせ
#       キー項目
#         1.12：オプションサービス契約番号
#         2.17：世代登録年月日時分秒
#       抽出項目
#         0.11：050オプション電話番号
#         1.12：オプションサービス契約番号
#         2.17：世代登録年月日時分秒
#       抽出条件
#         3.1 ：無効フラグ='0'
#         4.1 ：予約適用コード='2'
#         本来の抽出条件と、結合キーがNULLでないものを抽出
bsortex \
  -record recform=txtcsv \
  -input reclen=60 \
         include="3.1asc.eq.'0'.and.4.1asc.eq.'2'" \
         reconst="0.11,1.12,2.17" \
  -sort key="1.12asc,2.17asc" \
 < ${CSVFILE_KK0371_WRK} \
 | bsortex \
  -record recform=txtcsv \
  -input reclen=49 \
  -merge key="1.12asc" \
  -summary suppress last \
  -output omit="0.11ascb.eq.' '.or.1.12ascb.eq.' '" \
 > ${CSVFILE_KK0371}
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

#--- オプションサービス契約 待ち合わせ
wait ${pid_UNLOAD_KK0351}
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " UNLOAD ERROR(${SQLFILE_KK0351}:rc=$rc) "
    echo $JOBNAME "UNLOAD ERROR(${SQLFILE_KK0351}:rc=$rc) "
fi

#
#---ＳＯＲＴ
#     オプションサービス契約
#       キー項目
#         2.12：サービス契約内訳番号
#         3.12：オプションサービス契約番号
#         4.17：世代登録年月日時分秒
#       抽出項目
#         0.8 ：サービス開始年月日
#         1.8 ：サービス終了年月日
#         2.12：サービス契約内訳番号
#         3.12：オプションサービス契約番号
#         4.17：世代登録年月日時分秒
#         8.4 ：オプションサービスコード
#       抽出条件
#         5.1 ：無効フラグ='0'
#         6.1 ：予約適用コード='2'
#         7.8 ：予約適用年月日<=運用日
#         本来の抽出条件と、結合キーがNULLでないものを抽出
bsortex \
  -record recform=txtcsv \
  -input reclen=100 \
         include="5.1asc.eq.'0'.and.6.1asc.eq.'2'.and.7.8asc.le.'${RSLT_OPEDATE}'" \
         reconst="0.8,1.8,2.12,3.12,4.17,8.4" \
  -sort key="2.12asc,3.12asc,4.17asc" \
 < ${CSVFILE_KK0351_WRK} \
  | bsortex \
   -record recform=txtcsv \
   -input reclen=80 \
   -merge key="2.12asc,3.12asc" \
   -summary suppress last \
   -output omit="0.8ascb.eq.' '.or.1.8ascb.eq.' '.or.2.12ascb.eq.' '" \
 > ${CSVFILE_KK0351}
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

# マッチング処理→入力ファイルへ
(export ZTLOUTFILE=${OUTFILE_WRK}
${G_TOOLSH}/util/bin/ZTLMAT01 ${DEFFILE_WRK})
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " MV Error($SVC mv:rc=$rc) "
    echo $JOBNAME " ZTLOUTFILE Error($SVC mv:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

bsortex \
  -record recform=txtcsv \
  -input reclen=70 \
   file=${OUTFILE_WRK} \
  -sort key="3.11asc,0.8asc,1.8asc" \
  -output file=${OUTFILE} \
   linedlmt=crlf ;
rc=$?
if [ $rc -ne 0 ]
then
      sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " sort error${OUTFILE}(bsortex:rc=$rc) "
      echo $JOBNAME " sort error${OUTFILE}(bsortex:rc=$rc) "
      exit ${G_RTN_ERROR}
fi

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

exit $exit_rc


