#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約管理
#
# シェル名      ：通知書削除対象除外分抽出（工事案件チェック）
#
# 機能          ：1.UNLOADされているファイルでマッチングし
#                   工事案件が存在する通知書データを抽出
#                 2.重複行をサプレスし、出力可否に否を出力
#
#
# コマンド形式  ：EO2F60220J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v20.00.00      2015/12/28   FJ)舘山      新規作成
# v20.00.01      2016/01/13   FJ)真崎      IT1-2016-0000005 ID通知書削除除外データ抽出条件不備
# v20.00.02      2016/01/18   FJ)舘山      IT2-2016-0000002対応
#
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

#
#---業務で必要な変数定義
#
#xxx=xxxxxxx
##############################################################
# 業務処理
##############################################################
sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME

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

# シェル関数 START

##
#--- マッチング処理
#      p1：出力ファイルパス
#      p2：DEFファイルパス
#      p3：TMPDEFファイルパス
##
EXEC_MATCHING()
{
   OUTFILE=$1
   DEF=$2
   TMPDEF=$3

   # 出力ファイルの初期化
   cat /dev/null > ${OUTFILE}
   cat /dev/null > ${TMPDEF}
   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

   # DEFTMPファイル作成
   cat ${DEF}>${TMPDEF}
   sed -i -e s@'${MID_DIR_KK}'@${MID_DIR_KK}@g ${TMPDEF}
   sed -i -e s@'${LOC_DIR_KK}'@${LOC_DIR_KK}@g ${TMPDEF}
   sed -i -e s@'${MID_DIR_CC}'@${MID_DIR_CC}@g ${TMPDEF}
   sed -i -e s@'${OPEDATE}'@${OPEDATE}@g ${TMPDEF}
   
   # マッチング実行
   export ZTLOUTFILE=${OUTFILE}
   ${G_TOOLSH}/util/bin/ZTLMAT01 ${TMPDEF}
   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
}
##
#
#--- 存在チェック関数
#       p1：ファイルパス
##
EXEC_CHECK()
{
   if [ ! -r $1 ]
   then
       sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($1) "
       echo $JOBNAME " File is nonexist($1) "
       exit ${G_RTN_ERROR}
   fi
}
##
#
#--- 中間ファイルクリア関数
#       p1：ファイルパス
##
EXEC_CLEAR()
{
   FILE=$1
   # 出力ファイルの初期化
   cat /dev/null > ${FILE}
   rc=$?
   if [ $rc -ne 0 ]
   then
      sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error(${FILE}:rc=$rc) "
      echo $JOBNAME " File cat error(${FILE}:rc=$rc) "
      exit ${G_RTN_ERROR}
   fi
}

# シェル関数 END

# 工事案件を条件絞込みを行う
IN_FILE_KU0011=${MID_DIR_CC}/CCIFM016001.csv
OUT_FILE_KU0011=${MID_DIR_KK}/KKIFM684_CCIFM016001.tmp.csv

# 2016/01/13 IT1-2016-0000005 ID通知書削除除外データ抽出条件不備 MOD START
#bsortex \
#     -copy \
#     -record recform=txtcsv \
#     -input file=${IN_FILE_KU0011} \
#            reclen=${ULD_REC_LEN_KU0011} \
#     -output file=${OUT_FILE_KU0011} \
#            include="2.3asc.ne.'002',2.3asc.ne.'004',1.3asc.eq.'130'.or.1.3asc.eq.'140'.or.1.3asc.eq.'150'.or.1.3asc.eq.'160'.or.1.3asc.eq.'170'.or.1.3asc.eq.'180'.or.1.3asc.eq.'190'"
bsortex \
     -copy \
     -record recform=txtcsv \
     -input file=${IN_FILE_KU0011} \
            reclen=${ULD_REC_LEN_KU0011} \
     -output file=${OUT_FILE_KU0011} \
            include="(2.3asc.ne.'002'.and.2.3asc.ne.'004').and.(1.3asc.eq.'130'.or.1.3asc.eq.'140'.or.1.3asc.eq.'150'.or.1.3asc.eq.'160'.or.1.3asc.eq.'170'.or.1.3asc.eq.'180'.or.1.3asc.eq.'190')"
# 2016/01/13 IT1-2016-0000005 ID通知書削除除外データ抽出条件不備 MOD END

# ファイル定義
DEF_0579=${G_TOOLSH}/util/def/KK_CM_0579.def
OUT_FILE_0579=${LOC_DIR_KK}/KKIFM684002_tmp.csv
DEF_TMP_0579=${G_TOOLSH}/util/def/KK_CM_0579.tmp.def

# 通知書出力ファイル
OUTFILE1=${MID_DIR_KK}/KKIFM684002.csv

# ファイルクリア処理
EXEC_CLEAR ${OUT_FILE_0579} 
EXEC_CLEAR ${DEF_TMP_0579}

# ファイル存在チェック
EXEC_CHECK ${DEF_0579}

# 運用日付を環境変数に設定
OPEDATE=${RSLT_OPEDATE}

# マッチング
EXEC_MATCHING ${OUT_FILE_0579} ${DEF_0579} ${DEF_TMP_0579}

# 不要な行を削除
# IT2-2016-0000002 2016-01-18 Modify START
#bsortex \
#     -sort key=0.12asc \
#     -record recform=txtcsv \
#     -input file=${OUT_FILE_0579} \
#            reclen=50 \
#            reconst=0.12,1.10,2.8,'1'.1 \
#     -summary suppress \
#     -output file=${OUTFILE1} 
bsortex \
     -sort key=0.12asc \
     -record recform=txtcsv \
     -input file=${OUT_FILE_0579} \
            reclen=50 \
            reconst="0.12,1.10,2.8,'1'.1ascA" \
     -summary suppress \
     -output file=${OUTFILE1} 
# IT2-2016-0000002 2016-01-18 Modify END

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

rm -f ${OUT_FILE_0579}
rm -f ${DEF_TMP_0579}

#
#--- OUT_FILE_KU0011の削除処理
#
if [ -e ${OUT_FILE_KU0011} ]
then
  rm ${OUT_FILE_KU0011}
fi

exit_rc=$rc

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

exit $exit_rc


