#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約管理
#
# シェル名      ：移行対象抽出(メールウィルスチェック)
#
# 機能          ：移行対象抽出(メールウィルスチェック)
#
# コマンド形式  ：EO2EU0810J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v32.00.00       2017/06/20  FJ)大崎    新規作成(【ANK-3149-20-00】メールウィルスチェックの自動登録対応)
# v32.01.00       2017/07/06  FJ)大崎    【IT2-2017-0000019】オプションサービスに対するサブオプションステータスの不整合
# v32.02.00       2017/07/06  FJ)大崎    【IT2-2017-0000020】処理対象の優先度変更に伴う対応
#
##############################################################

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

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

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

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

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

#
#---OPD
#
#OPD=$1

#
#---業務で必要な変数定義
#
#xxx=xxxxxxx

#--- アンロードSQL定義ファイル
# 割引サービス契約アンロードSQL定義ファイル
ULDSQL_KK0451=${SQL_DIR}/KK_U_KK0451_19.sql
# 割引サービス対象契約アンロードSQL定義ファイル
ULDSQL_KK0481=${SQL_DIR}/KK_U_KK0481_16.sql
# オプションサービス契約アンロードSQL定義ファイル
ULDSQL_KK0351=${SQL_DIR}/KK_U_KK0351_29.sql
# サブオプションサービス契約アンロードSQL定義ファイル
ULDSQL_KK0401=${SQL_DIR}/KK_U_KK0401_08.sql
# オプションサービス契約<ISP>アンロードSQL定義ファイル
ULDSQL_KK0361=${SQL_DIR}/KK_U_KK0361_08.sql

#--- マッチングツール定義ファイル
# マッチングツール定義ファイル(割引サービス契約-割引サービス対象契約)
MATCHDEF_KK0451=${G_TOOLSH}/util/def/KK_CM_0623.def
# マッチングツール定義ファイル(オプションサービス契約-サブオプションサービス契約)
MATCHDEF_KK0351=${G_TOOLSH}/util/def/KK_CM_0624.def
# マッチングツール定義ファイル(オプションサービス契約-割引サービス契約)
MATCHDEF_KK0351_KK0451=${G_TOOLSH}/util/def/KK_CM_0625.def
# マッチングツール定義ファイル(オプションサービス契約-オプションサービス契約<ISP>)
MATCHDEF_KK0351_KK0361=${G_TOOLSH}/util/def/KK_CM_0626.def

#--- 一時ファイル
# 割引サービス契約アンロードファイル
ULDFILE_KK0451=${LOC_DIR_KK}/${JOBNAME}_KK0451_ULD.csv
# 割引サービス契約アンロードファイル(ソート後)
ULDFILE_KK0451_SORT=${LOC_DIR_KK}/${JOBNAME}_KK0451_ULD_SORT.csv
# 割引サービス契約アンロードファイル(カレント)
ULDFILE_KK0451_CUR=${LOC_DIR_KK}/${JOBNAME}_KK0451_ULD_CUR.csv
# 割引サービス対象契約アンロードファイル
ULDFILE_KK0481=${LOC_DIR_KK}/${JOBNAME}_KK0481_ULD.csv
# 割引サービス対象契約アンロードファイル(ソート後)
ULDFILE_KK0481_SORT=${LOC_DIR_KK}/${JOBNAME}_KK0481_ULD_SORT.csv
# 割引サービス対象契約アンロードファイル(カレント)
ULDFILE_KK0481_CUR=${LOC_DIR_KK}/${JOBNAME}_KK0481_ULD_CUR.csv
# オプションサービス契約アンロードファイル
ULDFILE_KK0351=${LOC_DIR_KK}/${JOBNAME}_KK0351_ULD.csv
# オプションサービス契約アンロードファイル(ソート後)
ULDFILE_KK0351_SORT=${LOC_DIR_KK}/${JOBNAME}_KK0351_ULD_SORT.csv
# オプションサービス契約アンロードファイル(カレント)
ULDFILE_KK0351_CUR=${LOC_DIR_KK}/${JOBNAME}_KK0351_ULD_CUR.csv
# サブオプションサービス契約アンロードファイル
ULDFILE_KK0401=${LOC_DIR_KK}/${JOBNAME}_KK0401_ULD.csv
# サブオプションサービス契約アンロードファイル(ソート後)
ULDFILE_KK0401_SORT=${LOC_DIR_KK}/${JOBNAME}_KK0401_ULD_SORT.csv
# サブオプションサービス契約アンロードファイル(カレント)
ULDFILE_KK0401_CUR=${LOC_DIR_KK}/${JOBNAME}_KK0401_ULD_CUR.csv
# オプションサービス契約<ISP>アンロードファイル
ULDFILE_KK0361=${LOC_DIR_KK}/${JOBNAME}_KK0361_ULD.csv
# 割引サービス契約抽出ファイル(解約済除く)
TMPFILE_KK0451=${LOC_DIR_KK}/${JOBNAME}_KK0451.csv
# オプションサービス契約抽出ファイル(解約済除く)
TMPFILE_KK0351=${LOC_DIR_KK}/${JOBNAME}_KK0351.csv
# サブオプションサービス契約抽出ファイル(解約済除く)
TMPFILE_KK0401=${LOC_DIR_KK}/${JOBNAME}_KK0401.csv
# 割引サービス契約マッチングファイル
TMPFILE_MATCH_KK0451=${LOC_DIR_KK}/${JOBNAME}_KK0451_MATCH_RSLT.csv
# 割引サービス契約マッチングファイル(ソート後)
TMPFILE_MATCH_KK0451_SORT=${LOC_DIR_KK}/${JOBNAME}_KK0451_MATCH_SORT.csv
# オプションサービス契約マッチングファイル
TMPFILE_MATCH_KK0351=${LOC_DIR_KK}/${JOBNAME}_KK0351_MATCH_RSLT.csv
# オプションサービス契約マッチングファイル(ソート後)
TMPFILE_MATCH_KK0351_SORT=${LOC_DIR_KK}/${JOBNAME}_KK0351_MATCH_SORT.csv
# オプションサービス契約マッチングファイル２
TMPFILE_MATCH_KK0351_2=${LOC_DIR_KK}/${JOBNAME}_KK0351_MATCH_RSLT2.csv
# オプションサービス契約マッチングファイル２(ソート後)
TMPFILE_MATCH_KK0351_SORT_2=${LOC_DIR_KK}/${JOBNAME}_KK0351_MATCH_SORT2.csv
# オプションサービス契約マッチングファイル３
TMPFILE_MATCH_KK0351_3=${LOC_DIR_KK}/${JOBNAME}_KK0351_MATCH_RSLT3.csv

#--- 出力ファイル
OUTFILE=${MID_DIR_KK}/KKIFM736001.csv

#--- 分割ファイル定義
OUTFILE2=${MID_DIR_KK}/KKIFM736002.csv

#--- 分割元ファイル
OUTFILE2=${MID_DIR_KK}/KKIFM736002.csv
#--- 分割ファイル
SPLTFILE=${MID_DIR_KK}/KKIFM736002_
#--- 分割ファイル検索用(削除)
DELFILE=KKIFM736002_*.csv
#--- 分割ファイル検索用(リネーム)
RENMFILE=KKIFM736002_*

##############################################################
# 共通関数
##############################################################

#
#--- アンロード関数
#       p1：出力ファイル名
#       p2：クエリファイル名
#       p3：バインド変数置換文字
EXEC_UNLOAD()
{
    local _OTF=$1
    local _SQL_FILE=$2
    local _BIND_VAL=$3
    local _SQL_WORK_FILE=${ULD_WORK_DIR}/${JOBNAME}.W_ULD.sql

    # SQLクエリファイル初期化
    cat /dev/null > ${_SQL_WORK_FILE}
    
    # SQL定義ファイルが存在しない場合エラー
    if [ ! -r ${_SQL_FILE} ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${_SQL_FILE}) "
        echo $JOBNAME " File is nonexist(${_SQL_FILE}) "
        exit ${G_RTN_ERROR}
    fi

    cat ${_SQL_FILE} > ${_SQL_WORK_FILE}

    # バインド変数を置き換える
    if [ "${_BIND_VAL}" != "" ]
    then
        for bind in ${_BIND_VAL}
        do
            sed -i -e 0,/?/s/?/"'"$bind"'"/ ${_SQL_WORK_FILE}
        done
    fi

    # 出力ファイルの初期化
    cat /dev/null > ${_OTF}

    # アンロード
    sh ${G_TOOLSH}/EOKULD02.sh ${_SQL_WORK_FILE} ${_OTF}
    rc=$?
    if [ $rc -ne 0 ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " unload error(${_SQL_FILE}:rc=$rc) "
        echo $JOBNAME " unload error(${_SQL_FILE}:rc=$rc) "
        exit ${G_RTN_ERROR}
    fi

    # 一時ファイル削除
    rm -f ${_SQL_WORK_FILE}
}

#
#--- マッチング処理
#      p1：出力ファイルパス
#      p2：マッチングクエリファイルパス
EXEC_MATCHING()
{
    local _OUTFILE=$1
    local _MATCHING_FILE=$2

    # マッチングクエリファイルの存在チェック
    if [ ! -r ${_MATCHING_FILE} ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${_MATCHING_FILE}) "
        echo $JOBNAME " File is nonexist(${_MATCHING_FILE}) "
        exit ${G_RTN_ERROR}
    fi

    # 出力ファイルの初期化
    cat /dev/null > ${_OUTFILE}

    # マッチング実行
    export ZTLOUTFILE=${_OUTFILE}
    ${G_TOOLSH}/util/bin/ZTLMAT01 ${_MATCHING_FILE}

    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
}

#
#--- bsortexコマンド実行時のエラー処理
#      p1：bsortexコマンドの終了コード
#      p2：bsortexコマンドの入力ファイル
BSORT_ERROR()
{
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " bsortex error(input file=$2:rc=$1) "
    echo $JOBNAME " bsortex error(input file=$2:rc=$1) "
    exit ${G_RTN_ERROR}
}


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

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

#
#---パラメーターの取得
#
PROP=${MID_DIR_KK}/DATA_IKOU.csv

# パラメーター定義ファイルが存在しない場合エラー
if [ ! -r ${PROP} ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${PROP}) "
    echo $JOBNAME " File is nonexist(${PROP}) "
    exit ${G_RTN_ERROR}
fi

for line in `cat ${PROP} | grep -v ^#`
do
    FILE_PARA1=`echo ${line} | cut -d ',' -f 1`
    FILE_PARA2=`echo ${line} | cut -d ',' -f 2`
done

#
#---1. アンロード処理
#

# 1-1. 割引サービス契約
EXEC_UNLOAD ${ULDFILE_KK0451} ${ULDSQL_KK0451}

# キー項目毎に予約適用年月日、世代登録年月日時分秒でソート
# 抽出条件：割引サービスコード = 'W00000080','W00000010'
BSORT_DEF_KK0451="@WRIB_SVC_KEI_NO=0.12 @WRIB_SVC_KEI_STAT=1.3 @UPD_DTM=2.17 @GENE_ADD_DTM=3.17 @WRIB_SVC_CD=4.9 @RSV_APLY_YMD=5.8 @RSV_APLY_CD=6.1"
# IT2-2017-0000020 2017/07/07 MOD START
#bsortex -define ${BSORT_DEF_KK0451} -sort key=@WRIB_SVC_KEI_NOasc,@RSV_APLY_YMDasc,@GENE_ADD_DTMasc -record recform=txtcsv \
#        -input file=${ULDFILE_KK0451} reclen=88 \
#         include="@RSV_APLY_CDasc.eq.'2'.and.@RSV_APLY_YMDasc.gt.' '.and.@RSV_APLY_YMDasc.le.'${OPD}'.and.(@WRIB_SVC_CDasc.eq.'W00000080'.or.@WRIB_SVC_CDasc.eq.'W00000010')" \
#        -output file=${ULDFILE_KK0451_SORT} \
#         reconst="@WRIB_SVC_KEI_NO,@WRIB_SVC_KEI_STAT,@UPD_DTM"
bsortex -define ${BSORT_DEF_KK0451} -sort key=@WRIB_SVC_KEI_NOasc,@RSV_APLY_YMDasc,@GENE_ADD_DTMasc -record recform=txtcsv \
        -input file=${ULDFILE_KK0451} reclen=88 \
         include="@RSV_APLY_CDasc.eq.'2'.and.@RSV_APLY_YMDasc.gt.' '.and.@RSV_APLY_YMDasc.le.'${OPD}'.and.(@WRIB_SVC_CDasc.eq.'W00000080'.or.@WRIB_SVC_CDasc.eq.'W00000010')" \
        -output file=${ULDFILE_KK0451_SORT} \
         reconst="@WRIB_SVC_KEI_NO,@WRIB_SVC_KEI_STAT,@UPD_DTM,@WRIB_SVC_CD"
# IT2-2017-0000020 2017/07/07 MOD END
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${ULDFILE_KK0451}
fi

# マージ（各キー項目毎のカレントレコードのみを残す）
# IT2-2017-0000020 2017/07/07 MOD START
#bsortex -define ${BSORT_DEF_KK0451} -merge key=@WRIB_SVC_KEI_NOasc -record recform=txtcsv \
#        -input file=${ULDFILE_KK0451_SORT} reclen=41 -summary suppress last \
#        -output file=${ULDFILE_KK0451_CUR}
bsortex -define ${BSORT_DEF_KK0451} -merge key=@WRIB_SVC_KEI_NOasc -record recform=txtcsv \
        -input file=${ULDFILE_KK0451_SORT} reclen=53 -summary suppress last \
        -output file=${ULDFILE_KK0451_CUR}
# IT2-2017-0000020 2017/07/07 MOD END
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${ULDFILE_KK0451_SORT}
fi

# 1-2. 割引サービス対象契約
EXEC_UNLOAD ${ULDFILE_KK0481} ${ULDSQL_KK0481}

# キー項目毎に世代登録年月日時分秒でソート
BSORT_DEF_KK0481="@WRIB_SVC_KEI_NO=0.12 @WRIB_SVC_TRGT_KEI_NO=1.12 @GENE_ADD_DTM=2.17 @SVC_KEI_NO=3.10 @WRISVC_TG_KEI_TSTAYMD=4.8 @WRISVC_TG_KEI_TENDYMD=5.8 @TG_KEI_SKBT_CD=6.2"
bsortex -define ${BSORT_DEF_KK0481} -sort key=@WRIB_SVC_KEI_NOasc,@WRIB_SVC_TRGT_KEI_NOasc,@GENE_ADD_DTMasc -record recform=txtcsv \
        -input file=${ULDFILE_KK0481} reclen=90 \
         include="@WRISVC_TG_KEI_TSTAYMDasc.gt.' ',@WRISVC_TG_KEI_TSTAYMDasc.le.'${OPD}',@WRISVC_TG_KEI_TENDYMDasc.gt.' ',@WRISVC_TG_KEI_TENDYMDasc.ge.'${OPD}'.and.@TG_KEI_SKBT_CDasc.eq.'01'" \
        -output file=${ULDFILE_KK0481_SORT} \
         reconst="@WRIB_SVC_KEI_NO,@WRIB_SVC_TRGT_KEI_NO,@SVC_KEI_NO"
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${ULDFILE_KK0481}
fi

# マージ（各キー項目毎のカレントレコードのみを残す）
bsortex -define ${BSORT_DEF_KK0481} -merge key=@WRIB_SVC_KEI_NOasc,@WRIB_SVC_TRGT_KEI_NOasc -record recform=txtcsv \
        -input file=${ULDFILE_KK0481_SORT} reclen=43 -summary suppress last \
        -output file=${ULDFILE_KK0481_CUR}
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${ULDFILE_KK0481_SORT}
fi

# 1-3. オプションサービス契約
EXEC_UNLOAD ${ULDFILE_KK0351} ${ULDSQL_KK0351}

# キー項目毎に予約適用年月日、世代登録年月日時分秒でソート
# 抽出条件：オプションサービスコード = 'B001'
BSORT_DEF_KK0351="@OP_SVC_KEI_NO=0.12 @OP_SVC_KEI_STAT=1.3 @SVC_KEI_NO=2.10 @SYSID=3.10 @GENE_ADD_DTM=4.17 @DSP_SVCTK_STAYMD=5.8 @UPD_DTM=6.17 @OP_SVC_CD=7.4 @RSV_APLY_YMD=8.8 @RSV_APLY_CD=9.1"
bsortex -define ${BSORT_DEF_KK0351} -sort key=@OP_SVC_KEI_NOasc,@RSV_APLY_YMDasc,@GENE_ADD_DTMasc -record recform=txtcsv \
        -input file=${ULDFILE_KK0351} reclen=120 \
         include="@RSV_APLY_CDasc.eq.'2',@RSV_APLY_YMDasc.gt.' ',@RSV_APLY_YMDasc.le.'${OPD}',@OP_SVC_CDasc.eq.'B001'" \
        -output file=${ULDFILE_KK0351_SORT} \
         reconst="@OP_SVC_KEI_NO,@OP_SVC_KEI_STAT,@SVC_KEI_NO,@SYSID,@GENE_ADD_DTM,@DSP_SVCTK_STAYMD,@UPD_DTM"
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${ULDFILE_KK0351}
fi

# マージ（各キー項目毎のカレントレコードのみを残す）
bsortex -define ${BSORT_DEF_KK0351} -merge key=@OP_SVC_KEI_NOasc -record recform=txtcsv \
        -input file=${ULDFILE_KK0351_SORT} reclen=98 -summary suppress last \
        -output file=${ULDFILE_KK0351_CUR}
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${ULDFILE_KK0351_SORT}
fi

# 1-4. サブオプションサービス契約
EXEC_UNLOAD ${ULDFILE_KK0401} ${ULDSQL_KK0401}

# キー項目毎に予約適用年月日、世代登録年月日時分秒でソート
# 抽出条件：サブオプションサービスコード = 'D03'
BSORT_DEF_KK0401="@OP_SVC_KEI_NO=0.12 @SBOP_SVC_KEI_NO=1.12 @SBOP_SVC_KEI_STAT=2.3 @GENE_ADD_DTM=3.17 @SBOP_SVC_CD=4.3 @RSV_APLY_YMD=5.8 @RSV_APLY_CD=6.1"
bsortex -define ${BSORT_DEF_KK0401} -sort key=@OP_SVC_KEI_NOasc,@SBOP_SVC_KEI_NOasc,@RSV_APLY_YMDasc,@GENE_ADD_DTMasc -record recform=txtcsv \
        -input file=${ULDFILE_KK0401} reclen=77 \
         include="@RSV_APLY_CDasc.eq.'2',@RSV_APLY_YMDasc.gt.' ',@RSV_APLY_YMDasc.le.'${OPD}',@SBOP_SVC_CDasc.eq.'D03'" \
        -output file=${ULDFILE_KK0401_SORT} \
         reconst="@OP_SVC_KEI_NO,@SBOP_SVC_KEI_NO,@SBOP_SVC_KEI_STAT"
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${ULDFILE_KK0401}
fi

# マージ（各キー項目毎のカレントレコードのみを残す）
bsortex -define ${BSORT_DEF_KK0401} -merge key=@OP_SVC_KEI_NOasc,@SBOP_SVC_KEI_NOasc -record recform=txtcsv \
        -input file=${ULDFILE_KK0401_SORT} reclen=36 -summary suppress last \
        -output file=${ULDFILE_KK0401_CUR}
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${ULDFILE_KK0401_SORT}
fi

# 1-5. オプションサービス契約<ISP>
EXEC_UNLOAD ${ULDFILE_KK0361} ${ULDSQL_KK0361}

#
#---2. アンロードファイルからの抽出
#

# 2-1. 割引サービス契約(解約済除く)を出力
#      抽出条件：割引サービス契約ステータス IN ('010','100')
# IT2-2017-0000020 2017/07/07 MOD START
#bsortex -define ${BSORT_DEF_KK0451} -copy -record recform=txtcsv \
#        -input file=${ULDFILE_KK0451_CUR} reclen=41 \
#               include="(@WRIB_SVC_KEI_STATasc.eq.'010'.or.@WRIB_SVC_KEI_STATasc.eq.'100')" \
#        -output file=${TMPFILE_KK0451}
bsortex -define ${BSORT_DEF_KK0451} -copy -record recform=txtcsv \
        -input file=${ULDFILE_KK0451_CUR} reclen=53 \
               include="(@WRIB_SVC_KEI_STATasc.eq.'010'.or.@WRIB_SVC_KEI_STATasc.eq.'100')" \
        -output file=${TMPFILE_KK0451}
# IT2-2017-0000020 2017/07/07 MOD END
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${ULDFILE_KK0451_CUR}
fi

# 2-2. オプションサービス契約抽出ファイル(解約済除く)を出力
#      抽出条件：オプションサービス契約ステータス IN ('010','020','030','100')
# IT2-2017-0000019 2017/07/06 MOD START
#bsortex -define ${BSORT_DEF_KK0351} -copy -record recform=txtcsv \
#        -input file=${ULDFILE_KK0351_CUR} reclen=98 \
#               include="(@OP_SVC_KEI_STATasc.eq.'010'.or.@OP_SVC_KEI_STATasc.eq.'020'.or.@OP_SVC_KEI_STATasc.eq.'030'.or.@OP_SVC_KEI_STATasc.eq.'100'.or.@OP_SVC_KEI_STATasc.eq.'210'.or.@OP_SVC_KEI_STATasc.eq.'220')" \
#        -output file=${TMPFILE_KK0351}
bsortex -define ${BSORT_DEF_KK0351} -copy -record recform=txtcsv \
        -input file=${ULDFILE_KK0351_CUR} reclen=98 \
               include="(@OP_SVC_KEI_STATasc.eq.'010'.or.@OP_SVC_KEI_STATasc.eq.'020'.or.@OP_SVC_KEI_STATasc.eq.'030'.or.@OP_SVC_KEI_STATasc.eq.'100')" \
        -output file=${TMPFILE_KK0351}
# IT2-2017-0000019 2017/07/06 MOD END
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${ULDFILE_KK0351_CUR}
fi

# 2-3. サブオプションサービス契約抽出ファイル(解約済除く)を出力
#      抽出条件：サブオプションサービス契約ステータス IN ('010','020','030','100','210','220')
bsortex -define ${BSORT_DEF_KK0401} -copy -record recform=txtcsv \
        -input file=${ULDFILE_KK0401_CUR} reclen=36 \
               include="(@SBOP_SVC_KEI_STATasc.eq.'010'.or.@SBOP_SVC_KEI_STATasc.eq.'020'.or.@SBOP_SVC_KEI_STATasc.eq.'030'.or.@SBOP_SVC_KEI_STATasc.eq.'100'.or.@SBOP_SVC_KEI_STATasc.eq.'210'.or.@SBOP_SVC_KEI_STATasc.eq.'220')" \
        -output file=${TMPFILE_KK0401}
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${ULDFILE_KK0401_CUR}
fi

#
#---3. マッチング
#

# 3-1. 割引サービス契約(解約済除く)、割引サービス対象契約(カレント)をマッチング
export TMPFILE_KK0451
export ULDFILE_KK0481_CUR
EXEC_MATCHING ${TMPFILE_MATCH_KK0451} ${MATCHDEF_KK0451}

# 3-2. 割引サービス契約(マッチング)のソート
# IT2-2017-0000020 2017/07/07 MOD START
#BSORT_DEF_OUTFILE1="@SVC_KEI_NO=0.10 @WRIB_SVC_KEI_NO=1.12 @WRIB_SVC_KEI_STAT=2.3 @UPD_DTM=3.17"
#bsortex -define ${BSORT_DEF_OUTFILE1} -sort key=@SVC_KEI_NOasc -record recform=txtcsv \
#        -input file=${TMPFILE_MATCH_KK0451} reclen=54 \
#        -output file=${TMPFILE_MATCH_KK0451_SORT}
BSORT_DEF_OUTFILE1="@SVC_KEI_NO=0.10 @WRIB_SVC_KEI_NO=1.12 @WRIB_SVC_KEI_STAT=2.3 @UPD_DTM=3.17 @WRIB_SVC_CD=4.9"
bsortex -define ${BSORT_DEF_OUTFILE1} -sort key=@SVC_KEI_NOasc -record recform=txtcsv \
        -input file=${TMPFILE_MATCH_KK0451} reclen=66 \
        -output file=${TMPFILE_MATCH_KK0451_SORT}
# IT2-2017-0000020 2017/07/07 MOD END
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${TMPFILE_MATCH_KK0451}
fi

# 3-3. オプションサービス契約抽出ファイル(解約済除く)、サブオプションサービス契約(カレント)をマッチング
export TMPFILE_KK0351
export TMPFILE_KK0401
EXEC_MATCHING ${TMPFILE_MATCH_KK0351} ${MATCHDEF_KK0351}

# 3-4. オプションサービス契約(マッチング)のソート
# 抽出条件：サブオプションステータス IN (NULL)
BSORT_DEF_OUTFILE2="@OP_SVC_KEI_NO=0.12 @OP_SVC_KEI_STAT=1.3 @SVC_KEI_NO=2.10 @SYSID=3.10 @GENE_ADD_DTM=4.17 @DSP_SVCTK_STAYMD=5.8 @UPD_DTM=6.17 @SBOP_SVC_KEI_NO=7.12 @SBOP_SVC_KEI_STAT=8.3"
bsortex -define ${BSORT_DEF_OUTFILE2} -sort key=@OP_SVC_KEI_NOasc -record recform=txtcsv \
        -input file=${TMPFILE_MATCH_KK0351} reclen=119 \
               include="@SBOP_SVC_KEI_STATasc.lt.' '" \
        -output file=${TMPFILE_MATCH_KK0351_SORT}
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${TMPFILE_MATCH_KK0351}
fi

# 3-5. オプションサービス契約(マッチング)、割引サービス契約(マッチング)をマッチング
export TMPFILE_MATCH_KK0351_SORT
export TMPFILE_MATCH_KK0451_SORT
EXEC_MATCHING ${TMPFILE_MATCH_KK0351_2} ${MATCHDEF_KK0351_KK0451}

# 3-6. オプションサービス契約(マッチング)２のソート
BSORT_DEF_OUTFILE3="@OP_SVC_KEI_NO=0.12"
# IT2-2017-0000020 2017/07/07 MOD START
#bsortex -define ${BSORT_DEF_OUTFILE3} -sort key=@OP_SVC_KEI_NOasc -record recform=txtcsv \
#        -input file=${TMPFILE_MATCH_KK0351_2} reclen=133 \
#        -output file=${TMPFILE_MATCH_KK0351_SORT_2}
bsortex -define ${BSORT_DEF_OUTFILE3} -sort key=@OP_SVC_KEI_NOasc -record recform=txtcsv \
        -input file=${TMPFILE_MATCH_KK0351_2} reclen=145 \
        -output file=${TMPFILE_MATCH_KK0351_SORT_2}
# IT2-2017-0000020 2017/07/07 MOD END
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${TMPFILE_MATCH_KK0351_2}
fi

# 3-7. オプションサービス契約(マッチング)２、オプションサービス契約<ISP>をマッチング
export TMPFILE_MATCH_KK0351_SORT_2
export ULDFILE_KK0361
EXEC_MATCHING ${TMPFILE_MATCH_KK0351_3} ${MATCHDEF_KK0351_KK0361}

# 3-8. オプションサービス契約(マッチング)３のソート
# IT2-2017-0000020 2017/07/07 MOD START
#BSORT_DEF_OUTFILE4="@UPD_DTM_OP=3.17"
#bsortex -define ${BSORT_DEF_OUTFILE4} -sort key=@UPD_DTM_OPascr -record recform=txtcsv \
#        -input file=${TMPFILE_MATCH_KK0351_3} reclen=324 \
#        -output file=${OUTFILE}
BSORT_DEF_OUTFILE4="@SVC_KEI_NO=0.10 @SYSID=1.10 @OP_SVC_KEI_NO=2.12 @UPD_DTM_OP=3.17 @GENE_ADD_DTM=4.17 @OP_SVC_KEI_STAT=5.3 @DSP_SVCTK_STAYMD=6.8 @MLAD=7.256 @CAPA=8.8 @WRIB_SVC_KEI_NO=9.12 @UPD_DTM_WRIB=10.17 @WRIB_SVC_CD=11.9"
bsortex -define ${BSORT_DEF_OUTFILE4} -sort key=@WRIB_SVC_CDasc,@UPD_DTM_OPascr -record recform=txtcsv \
        -input file=${TMPFILE_MATCH_KK0351_3} reclen=336 \
        -output file=${OUTFILE} \
         reconst="@SVC_KEI_NO,@SYSID,@OP_SVC_KEI_NO,@UPD_DTM_OP,@GENE_ADD_DTM,@OP_SVC_KEI_STAT,@DSP_SVCTK_STAYMD,@MLAD,@CAPA,@WRIB_SVC_KEI_NO,@UPD_DTM_WRIB"
# IT2-2017-0000020 2017/07/07 MOD END
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${TMPFILE_MATCH_KK0351_3}
fi

#
#---4. ファイル分割
#

# 分割元ファイルの作成
head -${FILE_PARA1} ${OUTFILE} > ${OUTFILE2}

# 一時ファイルの削除
for FILE in `find ${MID_DIR_KK} -maxdepth 1 -name ${DELFILE}`; do
    rm ${FILE}
done

echo "■ 入力ファイル分割実行(全行数：${FILE_PARA1})"
echo "分割行数：${FILE_PARA2}"

split -dl ${FILE_PARA2} ${OUTFILE2} ${SPLTFILE}

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

# 分割後のファイル名をリネーム
CNT=1
for FILE in `find ${MID_DIR_KK} -maxdepth 1 -name ${RENMFILE}`; do
    mv $FILE ${SPLTFILE}0$CNT.csv
    echo "ファイル_0${CNT}："`cat ${SPLTFILE}0$CNT.csv | wc -l`
    CNT=`expr $CNT + 1`
done

# 一時ファイル削除
#rm -f ${ULDFILE_KK0451}
#rm -f ${ULDFILE_KK0451_SORT}
#rm -f ${ULDFILE_KK0451_CUR}
#rm -f ${ULDFILE_KK0481}
#rm -f ${ULDFILE_KK0481_SORT}
#rm -f ${ULDFILE_KK0481_CUR}
#rm -f ${ULDFILE_KK0351}
#rm -f ${ULDFILE_KK0351_SORT}
#rm -f ${ULDFILE_KK0351_CUR}
#rm -f ${ULDFILE_KK0401}
#rm -f ${ULDFILE_KK0401_SORT}
#rm -f ${ULDFILE_KK0401_CUR}
#rm -f ${ULDFILE_KK0361}
#rm -f ${TMPFILE_KK0451}
#rm -f ${TMPFILE_KK0351}
#rm -f ${TMPFILE_KK0401}
#rm -f ${TMPFILE_MATCH_KK0451}
#rm -f ${TMPFILE_MATCH_KK0451_SORT}
#rm -f ${TMPFILE_MATCH_KK0351}
#rm -f ${TMPFILE_MATCH_KK0351_SORT}
#rm -f ${TMPFILE_MATCH_KK0351_2}
#rm -f ${TMPFILE_MATCH_KK0351_SORT_2}
#rm -f ${TMPFILE_MATCH_KK0351_3}

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

exit $exit_rc
