#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：顧客管理
#
# シェル名      ：解約後請求書参照情報抽出
#
# 機能          ：Web上の請求明細の参照可能期間を経過した会員を抽出する。
#
# コマンド形式  ：EO10S0110J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v33.00.00       2017/06/12  FJ)柳        【ANK-3179-00-00】解約済み契約の請求明細表示
# v33.01.00       2017/07/24  FJ)柳        【IT2-2017-0000032】最終収納日基準変更対応
# v33.02.00       2017/08/02  FJ)柳        【IT2-2017-0000045】督促なし判定変更対応
# v38.00.00       2018/07/28  FJ)舘山      【OM-2018-0000641】【水平展開】お客様併合／分割されたお客様が抽出されない
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

#
#--- ファイル定義
#
# マッチングツール定義ファイル(お客様－サービス契約－課金先)
MATCHDEF_CK0011_01=${G_TOOLSH}/util/def/CK_CM_0006.def
# 債権アンロードファイル
ULDSQL_CH0011_31=${SQL_DIR}/CH_U_CH0011_31.sql
# 督促アンロードファイル
ULDSQL_CH0231_10=${SQL_DIR}/CH_U_CH0231_10.sql
# マッチングツール定義ファイル(MATCHDEF_CK0011_01－債権－督促－入金)
MATCHDEF_CK0011_02=${G_TOOLSH}/util/def/CK_CM_0007.def
# お客様共通アンロードファイル<カレント>(サービス開始後)
COMULD2_CK0011_CUR=${MID_DIR_CC}/CCIFM019002.csv
# お客様解約後請求書参照可抽出ファイル
TMPFILE_CKIFM009_CUST=${LOC_DIR_CK}/CKIFM009001_cust.csv
# サービス契約共通アンロードファイル<カレント>(サービス開始後)
COMULD2_KK0081_CUR=${MID_DIR_CC}/CCIFM020002.csv
# サービス契約抽出ファイル
TMPFILE_CKIFM009_SVC=${LOC_DIR_CK}/CKIFM009001_svc.csv
# 課金先共通アンロードファイル(サービス開始後)
COMULD2_KK0321_ALL=${MID_DIR_CC}/CCIFM024001.csv
# 課金先抽出ファイル
TMPFILE_CKIFM009_KAKINS=${LOC_DIR_CK}/CKIFM009001_kakins.csv
# お客様－サービス契約－課金先マッチング結果ファイル
TMPFILE_CKIFM009_MATCH_TMP=${LOC_DIR_CK}/CKIFM009001_match_tmp.csv
# お客様－サービス契約－課金先マッチング結果ファイル(重複削除後)
TMPFILE_CKIFM009_MATCH=${LOC_DIR_CK}/CKIFM009001_match.csv
# 債権アンロード結果ファイル
TMPFILE_CKIFM010_SAIKEN=${LOC_DIR_CK}/CKIFM010001_saiken.csv
# 督促アンロード結果ファイル
TMPFILE_CKIFM010_TOKUSOKU=${LOC_DIR_CK}/CKIFM010001_tokusoku.csv
# TMPFILE_CKIFM009_MATCH－債権－督促－入金マッチング結果ファイル
TMPFILE_CKIFM010_MATCH=${LOC_DIR_CK}/CKIFM010001_match.csv
# 対象会員抽出ファイル
TMPFILE_CKIFM010=${MID_DIR_CK}/CKIFM010001.csv
# IT2-2017-0000032 2017/07/24 ADD START
# 債権アンロード結果ファイル(重複削除後)
TMPFILE_CKIFM010_SAIKEN_UNIQUE=${LOC_DIR_CK}/CKIFM010001_saiken_unique.csv
# 入金アンロードファイル
ULDSQL_CH0111_11=${SQL_DIR}/CH_U_CH0111_11.sql
# 入金アンロード結果ファイル
TMPFILE_CKIFM010_NYUKIN=${LOC_DIR_CK}/CKIFM010001_nyukin.csv
# 除外対象ファイル
TMPFILE_CKIFM010_EXCLUSION=${LOC_DIR_CK}/CKIFM010001_exclusion.csv
# 除外対象ファイル(重複削除後)
TMPFILE_CKIFM010_EXCLUSION_UNIQUE=${LOC_DIR_CK}/CKIFM010001_exclusion_unique.csv
# TMPFILE_CKIFM010_MATCH－除外対象マッチング結果ファイル
TMPFILE_CKIFM010_EXCLUSION_MATCH=${LOC_DIR_CK}/CKIFM010001_exclusion_match.csv
# マッチングツール定義ファイル(TMPFILE_CKIFM010_MATCH－除外対象)
MATCHDEF_CK0011_03=${G_TOOLSH}/util/def/CK_CM_0008.def
# 領収済抽出ファイル
TMPFILE_CKIFM010_RECEIPT=${LOC_DIR_CK}/CKIFM010001_receipt.csv
# IT2-2017-0000032 2017/07/24 ADD END

########## ▼▼▼ OM-2018-0000641 ADD START

# 月別請求契約＿お客様アンロードＳＱＬファイル
ULDSQL_CH0891_01=${SQL_DIR}/CK_U_CH0891_01.sql

# 月別請求契約＿お客様アンロードＳＱＬワークファイル
ULDSQL_CH0891_01_WORK=${LOC_DIR_CK}/CK_U_CH0891_01_work.sql

# 月別請求契約＿お客様アンロードファイル（ワーク）
TMPFILE_CKIFM010_CH0891_WORK=${LOC_DIR_CK}/CKIFM010001_CH0891_WORK.csv

# 月別請求契約＿お客様アンロードファイル
TMPFILE_CKIFM010_CH0891=${LOC_DIR_CK}/CKIFM010001_CH0891.csv

# お客様－サービス契約－課金先マッチング結果行サイズ 
TMPFILE_CKIFM009_LINE_LEN=32

# お客様－サービス契約－課金先マッチングファイル（請求契約番号未設定）
TMPFILE_CKIFM009_UNMATCH=${LOC_DIR_CK}/CKIFM009001_unmatch.csv

# お客様－サービス契約－課金先マッチングファイル（追加）
TMPFILE_CKIFM009_APPEND=${LOC_DIR_CK}/CKIFM009001_append.csv

# 請求契約番号未設定＿お客様リストファイル 
SYSID_LIST_FILE=${LOC_DIR_CK}/CKIFM009001_sysid_list.csv

# 月別請求契約＿お客様マッチング定義ファイル
MATCHDEF_CK0011_04=${G_TOOLSH}/util/def/CK_CM_0009.def

########## △△△ OM-2018-0000641 ADD END

#
#--- レコード長定義
#
# IT2-2017-0000032 2017/07/24 MOD START
## TMPFILE_CKIFM009_MATCH－債権－督促マッチング結果ファイルのレコード長
#RECLEN_CKIFM010_MATCH=68
# TMPFILE_CKIFM009_MATCH－債権－督促－入金マッチング結果ファイルのレコード長
RECLEN_CKIFM010_MATCH=81
# TMPFILE_CKIFM010_MATCH－除外対象マッチング結果ファイルのレコード長
RECLEN_CKIFM010_EXCLUSION_MATCH=94
# 領収済抽出ファイルのレコード長
RECLEN_CKIFM010_RECEIPT=68
# IT2-2017-0000032 2017/07/24 MOD END

#
#--- マッチングツール環境変数
#
export ZTLTMPDIR=$ULD_WORK_DIR
export TMPFILE_CKIFM009_CUST
export TMPFILE_CKIFM009_SVC
export TMPFILE_CKIFM009_KAKINS
export TMPFILE_CKIFM009_MATCH
# IT2-2017-0000032 2017/07/24 MOD START
#export TMPFILE_CKIFM010_SAIKEN
export TMPFILE_CKIFM010_SAIKEN_UNIQUE
# IT2-2017-0000032 2017/07/24 MOD END
export TMPFILE_CKIFM010_TOKUSOKU
# IT2-2017-0000032 2017/07/24 ADD START
export TMPFILE_CKIFM010_NYUKIN
export TMPFILE_CKIFM010_MATCH
export TMPFILE_CKIFM010_EXCLUSION_UNIQUE
# IT2-2017-0000032 2017/07/24 ADD END

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

#
#--- 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}
}

#
#--- マッチング実行時のエラー処理
#      p1：マッチングの終了コード
#      p2：マッチングの定義ファイル
#
MATCHING_ERROR()
{
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " MATCHING error($2 matching:rc=$1) "
    echo $JOBNAME " MATCHING error($2 matching:rc=$1) "
    exit ${G_RTN_ERROR}
}

#
#--- アンロード実行時のエラー処理
#      p1：アンロードの終了コード
#      p2：アンロードの定義ファイル
#
UNLOAD_ERROR()
{
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " UNLOAD Error($2 unload:rc=$1) " 
    echo $JOBNAME " UNLOAD Error($2 unload:rc=$1) "
    exit ${G_RTN_ERROR}
}

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

#
#--- ■初期処理
#
CHK_FLG=0
# 各ファイルの存在チェックを行う
if [ ! -r $MATCHDEF_CK0011_01 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($MATCHDEF_CK0011_01) "
    echo $JOBNAME " File is nonexist($MATCHDEF_CK0011_01) "
    CHK_FLG=1
fi
if [ ! -r $ULDSQL_CH0011_31 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($ULDSQL_CH0011_31) "
    echo $JOBNAME " File is nonexist($ULDSQL_CH0011_31) "
    CHK_FLG=1
fi
if [ ! -r $ULDSQL_CH0231_10 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($ULDSQL_CH0231_10) "
    echo $JOBNAME " File is nonexist($ULDSQL_CH0231_10) "
    CHK_FLG=1
fi
# IT2-2017-0000032 2017/07/24 ADD START
if [ ! -r $ULDSQL_CH0111_11 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($ULDSQL_CH0111_11) "
    echo $JOBNAME " File is nonexist($ULDSQL_CH0111_11) "
    CHK_FLG=1
fi
# IT2-2017-0000032 2017/07/24 ADD END
if [ ! -r $MATCHDEF_CK0011_02 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($MATCHDEF_CK0011_02) "
    echo $JOBNAME " File is nonexist($MATCHDEF_CK0011_02) "
    CHK_FLG=1
fi
if [ $CHK_FLG -eq 1 ]
then
    exit ${G_RTN_ERROR}
fi
# IT2-2017-0000032 2017/07/24 ADD START
if [ ! -r $MATCHDEF_CK0011_03 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($MATCHDEF_CK0011_03) "
    echo $JOBNAME " File is nonexist($MATCHDEF_CK0011_03) "
    CHK_FLG=1
fi
if [ $CHK_FLG -eq 1 ]
then
    exit ${G_RTN_ERROR}
fi
# IT2-2017-0000032 2017/07/24 ADD END

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

#
#--- お客様共通アンロードファイル<カレント>(サービス開始後)から
#--- 解約後請求書参照可否＝'1'(可)であるレコードを抽出
#
# bsort用項目定義
BSORT_DEF_CK0011_CUR="@SYSID=0.10 @MEMBER_SBT_CD=29.2 @DSL_AF_SKSSNS_KH=32.1"

bsortex -define $BSORT_DEF_CK0011_CUR -copy -record recform=txtcsv \
        -input file=$COMULD2_CK0011_CUR reclen=$ULD2_REC_LEN_CK0011 \
        -output file=$TMPFILE_CKIFM009_CUST case="@DSL_AF_SKSSNS_KHasc.eq.'1'" \
                reconst="@SYSID,@MEMBER_SBT_CD"

rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR $rc $COMULD2_CK0011_CUR
fi

#
#--- サービス契約共通アンロードファイル<カレント>(サービス開始後)から必要項目を抽出
#
# bsort用項目定義
BSORT_DEF_KK0081_CUR="@SVC_KEI_NO=0.10 @SYSID=3.10"

bsortex -define $BSORT_DEF_KK0081_CUR -copy -record recform=txtcsv \
        -input file=$COMULD2_KK0081_CUR reclen=$ULD2_REC_LEN_KK0081 \
               reconst="@SYSID,@SVC_KEI_NO" \
        -output file=$TMPFILE_CKIFM009_SVC

rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR $rc $COMULD2_KK0081_CUR
fi

#
#--- 課金先共通アンロードファイル(サービス開始後)から以下の条件に当てはまるレコードを抽出
#--- サービス契約番号≠null かつ 課金先適用開始年月日＜＝運用日 かつ 課金先適用終了年月日＞＝運用日
#
# bsort用項目定義
BSORT_DEF_KK0321_ALL="@SEIKY_KEI_NO=0.10 @SVC_KEI_NO=1.10 @KAKINS_TSTAYMD=8.8 @KAKINS_TENDYMD=9.8"

bsortex -define $BSORT_DEF_KK0321_ALL -copy -record recform=txtcsv \
        -input file=$COMULD2_KK0321_ALL reclen=$ULD2_REC_LEN_KK0321 \
        -output file=$TMPFILE_CKIFM009_KAKINS \
                case="@SVC_KEI_NOasc.gt.' '.and.@KAKINS_TSTAYMDasc.le.'$RSLT_OPEDATE'.and.@KAKINS_TENDYMDasc.ge.'$RSLT_OPEDATE'" \
                reconst="@SVC_KEI_NO,@SEIKY_KEI_NO"

rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR $rc $COMULD2_KK0321_ALL
fi

#
#--- マッチングツール環境変数
#
export ZTLOUTFILE=$TMPFILE_CKIFM009_MATCH_TMP

#
#--- ファイルマッチング
#
${G_TOOLSH}/util/bin/ZTLMAT01 $MATCHDEF_CK0011_01

rc=$?
if [ $rc -ne 0 ]
then
    MATCHING_ERROR $rc $MATCHDEF_CK0011_01
fi

########## ▼▼▼ OM-2018-0000641 ADD START

#
##### 請求契約が判定した行と請求契約が判定できなかった行を分離する。
#

# bsort用項目定義
BSORT_DEF_CKIFM009_MATCH="@SYSID=0.10 @MEMBER_SBT_CD=1.2 @MATCH_SEIKY_KEI_NO=2.10"

bsortex -define ${BSORT_DEF_CKIFM009_MATCH} \
        -sort key=@SYSIDasc,@MATCH_SEIKY_KEI_NOasc \
        -record recform=txtcsv \
        -input reclen=${TMPFILE_CKIFM009_LINE_LEN} file=${TMPFILE_CKIFM009_MATCH_TMP} \
        -summary suppress first \
        -output file=${TMPFILE_CKIFM009_MATCH} include="@MATCH_SEIKY_KEI_NOasc.gt.' '" \
        -output file=${TMPFILE_CKIFM009_UNMATCH} include="@MATCH_SEIKY_KEI_NOasc.lt.' '"

rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR $rc ${TMPFILE_CKIFM009_MATCH_TMP}
fi

#
##### 請求契約番号が判定できなかったSYSIDを1000単位で１行に集約する。（検索キー）
#
cat /dev/null > ${SYSID_LIST_FILE}

ROWS=`wc -l ${TMPFILE_CKIFM009_UNMATCH} | cut -d " " -f 1`
awk -F, 'gsub("\"", "'"'"'") {if(NR%1000 == 0 || NR == '${ROWS}'){ORS="\n";}else{ORS=",";} print $1}' ${TMPFILE_CKIFM009_UNMATCH} > ${SYSID_LIST_FILE}

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " AWK error(input file=${TMPFILE_CKIFM009_UNMATCH}=$rc) "
    echo $JOBNAME " AWK error(input file=${TMPFILE_CKIFM009_UNMATCH}=$rc) "
    exit ${G_RTN_ERROR}
fi

#
##### 集約したSYSID毎に、月別請求契約＿お客様をアンロードを実行し、アンロード用メインファイルに追記する。
#

# 月別請求契約＿お客様のアンロード用メインのファイルを空にする
cat /dev/null > ${TMPFILE_CKIFM010_CH0891}

for PARAMS in `cat ${SYSID_LIST_FILE}`
do
    # SQLの条件を保管してファイルをワークにコピー
    cat ${ULDSQL_CH0891_01} | sed s/\?/${PARAMS}/ > ${ULDSQL_CH0891_01_WORK}

    # アンロード結果ファイルを念のためにする
    cat /dev/null > ${TMPFILE_CKIFM010_CH0891_WORK}
    
    # アンロード呼出し
    sh ${G_TOOLSH}/EOKULD02.sh ${ULDSQL_CH0891_01_WORK} ${TMPFILE_CKIFM010_CH0891_WORK}

    rc=$?
    if [ $rc -ne 0 ]
    then
        UNLOAD_ERROR $rc ${ULDSQL_CH0891_01_WORK}
    fi

    # アンロード用メインファイルへアンロード結果を追記
    cat ${TMPFILE_CKIFM010_CH0891_WORK} >> ${TMPFILE_CKIFM010_CH0891}
done

#
##### 請求契約番号が判定できなかったお客様と月別請求契約＿お客様をマッチングする。
#

#--- マッチングツール環境変数
export ZTLOUTFILE=${TMPFILE_CKIFM009_APPEND}

export TMPFILE_CKIFM009_UNMATCH
export TMPFILE_CKIFM010_CH0891

#--- ファイルマッチング
${G_TOOLSH}/util/bin/ZTLMAT01 ${MATCHDEF_CK0011_04}

rc=$?
if [ $rc -ne 0 ]
then
    MATCHING_ERROR $rc ${MATCHDEF_CK0011_04}
fi

#
##### 結果ファイルへ追記する。
#
cat ${TMPFILE_CKIFM009_MATCH} ${TMPFILE_CKIFM009_APPEND} > ${TMPFILE_CKIFM009_MATCH_TMP}

########## △△△ OM-2018-0000641 ADD END

#
#--- 重複レコードの削除
#
cat /dev/null > $TMPFILE_CKIFM009_MATCH
awk '!a[$0]++' $TMPFILE_CKIFM009_MATCH_TMP > $TMPFILE_CKIFM009_MATCH

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " AWK error(input file=$TMPFILE_CKIFM009_MATCH_TMP:rc=$rc) "
    echo $JOBNAME " AWK error(input file=$TMPFILE_CKIFM009_MATCH_TMP:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

#
#--- アンロード(債権)
#
sh ${G_TOOLSH}/EOKULD02.sh $ULDSQL_CH0011_31 $TMPFILE_CKIFM010_SAIKEN

rc=$?
if [ $rc -ne 0 ]
then
    UNLOAD_ERROR $rc $ULDSQL_CH0011_31
fi

# IT2-2017-0000032 2017/07/24 ADD START
#
#--- 重複レコードの削除
#
cat /dev/null > $TMPFILE_CKIFM010_SAIKEN_UNIQUE
awk '!a[$0]++' $TMPFILE_CKIFM010_SAIKEN > $TMPFILE_CKIFM010_SAIKEN_UNIQUE

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " AWK error(input file=$TMPFILE_CKIFM010_SAIKEN:rc=$rc) "
    echo $JOBNAME " AWK error(input file=$TMPFILE_CKIFM010_SAIKEN:rc=$rc) "
    exit ${G_RTN_ERROR}
fi
# IT2-2017-0000032 2017/07/24 ADD END

#
#--- アンロード(督促)
#
sh ${G_TOOLSH}/EOKULD02.sh $ULDSQL_CH0231_10 $TMPFILE_CKIFM010_TOKUSOKU

rc=$?
if [ $rc -ne 0 ]
then
    UNLOAD_ERROR $rc $ULDSQL_CH0231_10
fi

# IT2-2017-0000032 2017/07/24 ADD START
#
#--- アンロード(入金)
#
sh ${G_TOOLSH}/EOKULD02.sh $ULDSQL_CH0111_11 $TMPFILE_CKIFM010_NYUKIN

rc=$?
if [ $rc -ne 0 ]
then
    UNLOAD_ERROR $rc $ULDSQL_CH0111_11
fi
# IT2-2017-0000032 2017/07/24 ADD END

#
#--- マッチングツール環境変数
#
export ZTLOUTFILE=$TMPFILE_CKIFM010_MATCH

#
#--- ファイルマッチング
#
${G_TOOLSH}/util/bin/ZTLMAT01 $MATCHDEF_CK0011_02

rc=$?
if [ $rc -ne 0 ]
then
    MATCHING_ERROR $rc $MATCHDEF_CK0011_02
fi

# IT2-2017-0000032 2017/07/24 ADD START
#
#--- マッチング後のファイルから
#--- 課金先の請求契約番号と債権の請求契約番号が同じまたは(督促ステータス＜＝'00' かつ 入金の領収年月日がNULL)であるレコードを抽出
#
# bsort用項目定義
BSORT_DEF_CKIFM010_MATCH="@SYSID=0.10 @MEMBER_SBT_CD=1.2 @MATCH_SEIKY_KEI_NO=2.10 @SAIKEN_SEIKY_KEI_NO=3.10 @RECEIPT_YMD=4.8 @TOKUSOKU_STAT=5.2 @KASHID_TRAN_YMD=6.8"

# IT2-2017-0000045 2017/08/02 MOD START
#bsortex -define $BSORT_DEF_CKIFM010_MATCH -copy -record recform=txtcsv \
#        -input file=$TMPFILE_CKIFM010_MATCH reclen=$RECLEN_CKIFM010_MATCH \
#        -output file=$TMPFILE_CKIFM010_EXCLUSION case="@MATCH_SEIKY_KEI_NOasc.eq.@SAIKEN_SEIKY_KEI_NOasc.or.@RECEIPT_YMDasc.lt.' '" \
#                reconst="@SYSID"
bsortex -define $BSORT_DEF_CKIFM010_MATCH -copy -record recform=txtcsv \
        -input file=$TMPFILE_CKIFM010_MATCH reclen=$RECLEN_CKIFM010_MATCH \
        -output file=$TMPFILE_CKIFM010_EXCLUSION case="@MATCH_SEIKY_KEI_NOasc.eq.@SAIKEN_SEIKY_KEI_NOasc.or.(@TOKUSOKU_STATasc.le.'00'.and.@RECEIPT_YMDasc.lt.' ')" \
                reconst="@SYSID"
# IT2-2017-0000045 2017/08/02 MOD END

rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR $rc $TMPFILE_CKIFM010_MATCH
fi


#
#--- 重複レコードの削除
#
cat /dev/null > $TMPFILE_CKIFM010_EXCLUSION_UNIQUE
awk '!a[$0]++' $TMPFILE_CKIFM010_EXCLUSION > $TMPFILE_CKIFM010_EXCLUSION_UNIQUE

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " AWK error(input file=$TMPFILE_CKIFM010_EXCLUSION:rc=$rc) "
    echo $JOBNAME " AWK error(input file=$TMPFILE_CKIFM010_EXCLUSION:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

#
#--- マッチングツール環境変数
#
export ZTLOUTFILE=$TMPFILE_CKIFM010_EXCLUSION_MATCH

#
#--- ファイルマッチング
#
${G_TOOLSH}/util/bin/ZTLMAT01 $MATCHDEF_CK0011_03

rc=$?
if [ $rc -ne 0 ]
then
    MATCHING_ERROR $rc $MATCHDEF_CK0011_03
fi

#
#--- マッチング後のファイルから
#--- 除外対象のSYSIDがNULLであるレコードを抽出
#
# bsort用項目定義
BSORT_DEF_CKIFM010_EXCLUSION_MATCH="@SYSID=0.10 @MEMBER_SBT_CD=1.2 @MATCH_SEIKY_KEI_NO=2.10 @SAIKEN_SEIKY_KEI_NO=3.10 @RECEIPT_YMD=4.8 @TOKUSOKU_STAT=5.2 @KASHID_TRAN_YMD=6.8 @SYSIDD=7.10"

bsortex -define $BSORT_DEF_CKIFM010_EXCLUSION_MATCH -copy -record recform=txtcsv \
        -input file=$TMPFILE_CKIFM010_EXCLUSION_MATCH reclen=$RECLEN_CKIFM010_EXCLUSION_MATCH \
        -output file=$TMPFILE_CKIFM010_RECEIPT case="7.10asc.lt.' '" \
                reconst="@SYSID,@MEMBER_SBT_CD,@MATCH_SEIKY_KEI_NO,@RECEIPT_YMD,@TOKUSOKU_STAT,@KASHID_TRAN_YMD"

rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR $rc $TMPFILE_CKIFM010_EXCLUSION_MATCH
fi
# IT2-2017-0000032 2017/07/24 ADD END

# IT2-2017-0000032 2017/07/24 MOD START
##
##--- レコードの並べ替え
##
## bsort用項目定義
#BSORT_DEF_CKIFM010_MATCH="@SYSID=0.10 @MEMBER_SBT_CD=1.2 @SEIKY_KEI_NO=2.10 @RCNT_SAIKEN_JUTO_YMD=3.8 @TOKUSOKU_STAT=4.2 @KASHID_TRAN_YMD=5.8"

#bsortex -define $BSORT_DEF_CKIFM010_MATCH -sort key="@SYSIDasca,@SEIKY_KEI_NOasca" -record recform=txtcsv \
#        -input file=$TMPFILE_CKIFM010_MATCH reclen=$RECLEN_CKIFM010_MATCH \
#        -output file=$TMPFILE_CKIFM010

#
#--- レコードの並べ替え
#
# bsort用項目定義
BSORT_DEF_CKIFM010_RECEIPT="@SYSID=0.10 @MEMBER_SBT_CD=1.2 @SEIKY_KEI_NO=2.10 @RECEIPT_YMD=3.8 @TOKUSOKU_STAT=4.2 @KASHID_TRAN_YMD=5.8"

bsortex -define $BSORT_DEF_CKIFM010_RECEIPT -sort key="@SYSIDasca,@SEIKY_KEI_NOasca" -record recform=txtcsv \
        -input file=$TMPFILE_CKIFM010_RECEIPT reclen=$RECLEN_CKIFM010_RECEIPT \
        -output file=$TMPFILE_CKIFM010
# IT2-2017-0000032 2017/07/24 MOD END

rc=$?
if [ $rc -ne 0 ]
then
# IT2-2017-0000032 2017/07/24 MOD START
#    BSORT_ERROR $rc $TMPFILE_CKIFM010_MATCH
    BSORT_ERROR $rc $TMPFILE_CKIFM010_RECEIPT
# IT2-2017-0000032 2017/07/24 MOD END
fi

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

P1="OPD=$OPD,"
P2="SVCCTL=JBSbatUnitServiceControl,"
P3="JOB=EO10S0110J0,"
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=${MID_DIR_CK}/CKIFM010001.csv;CKIFM010.def;${MID_DIR_CK}/CKIFM011001.csv;CKIFM011.def"
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

#
#---ＡＰＬ起動
#

java ${JAVA_OPTION} -jar ${JAR_DIR}/koptBatch.jar $PARA

rc=$?
ERR_FLG=0
if [ $rc -ne 0 ]
then
   if [ $rc -ne 4 ]
   then
       if [ $rc -ne 8 ]
       then
           if [ $rc -ne 127 ]
           then
              sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " PROGRAM Error($SVC program:rc=$rc) "
              echo $JOBNAME " PROGRAM Error($SVC program:rc=$rc) "
              exit ${G_RTN_ERROR}
           fi
       fi
    fi
    ERR_FLG=1
fi

exit_rc=$rc

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

#
#--- 終了処理
#
# 一時ファイル削除
# IT2-2017-0000032 2017/07/24 MOD START
#rm -f $TMPFILE_CKIFM009_CUST $TMPFILE_CKIFM009_SVC $TMPFILE_CKIFM009_KAKINS $TMPFILE_CKIFM009_MATCH_TMP \
#$TMPFILE_CKIFM009_MATCH $TMPFILE_CKIFM010_SAIKEN $TMPFILE_CKIFM010_TOKUSOKU $TMPFILE_CKIFM010_MATCH
rm -f $TMPFILE_CKIFM009_CUST $TMPFILE_CKIFM009_SVC $TMPFILE_CKIFM009_KAKINS $TMPFILE_CKIFM009_MATCH_TMP \
$TMPFILE_CKIFM009_MATCH $TMPFILE_CKIFM010_SAIKEN $TMPFILE_CKIFM010_TOKUSOKU $TMPFILE_CKIFM010_MATCH \
$TMPFILE_CKIFM010_SAIKEN_UNIQUE $TMPFILE_CKIFM010_NYUKIN $TMPFILE_CKIFM010_EXCLUSION $TMPFILE_CKIFM010_EXCLUSION_UNIQUE \
$TMPFILE_CKIFM010_EXCLUSION_MATCH $TMPFILE_CKIFM010_RECEIPT
# IT2-2017-0000032 2017/07/24 MOD END

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

exit $exit_rc
