#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約管理
#
# シェル名      ：会員ランク判定諸元情報抽出
#
# 機能          ：TRANKシステム向けに会員ランクを判定するための情報を抽出し、ファイルに出力する。
#
# コマンド形式  ：EO2FV0110J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v26.00.00      2016/06/13   FJ）藤本     【ANK-2687-00-00】プレミアムサポート施策（新規作成）
# v27.00.00      2016/10/26   FJ) 舘山     【ANK-3007-00-00】eoプレミアムクラブ導入対応フォロー案件
# v37.00.00      2016/02/22   FJ) 孫       【ANK-3366-00-00】eo光卸設備対応
# v37.00.00      2018/06/01   FJ) 岡       【ST-2018-0000017】ランク判定諸元情報ファイルにおける会員種別コード出力誤り
# v66.00.00      2023/03/08   FJ)松永      【ANK-4307-00-00】【eo定期】プレミアムクラブリニューアル対応
#                2023/03/08   FJ)松永      【ANK-4307-01-00】ランク判定諸元の連携対象の見直し
#                2023/04/17   FJ)松永      【IT1-2023-0000012】照査NGのサービス契約番号・ランク判定サービス種別コードが表示にされてしまっているため非表示に修正
#                2023/07/06   FJ)松永      【OM-2023-0000027】住所変更中の契約データのサービス開始年月日が消えてしまった不具合の修正
# v71.00.00      2024/05/13   FJ)吉川      【ANK-4468-00-00】eo光ネット「シンプルプラン」追加対応
# v73.00.00      2024/08/26   GDC)J.Zabala      【ANK-4427-00-00】NTT卸対応
#
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

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

#
#--- アンロード関数
#       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

#
#--- 1. シェル変数定義
#

#--- マッチングツール定義ファイル
# マッチングツール定義ファイル(料金プラン－サービス契約)
MATCHDEF_KK0081=${G_TOOLSH}/util/def/KK_CM_0598.def
# マッチングツール定義ファイル(お客様－サービス契約)
MATCHDEF_CK0011=${G_TOOLSH}/util/def/KK_CM_0599.def
# ANK-4427-00-00 ADD START
# マッチングツール定義ファイル(料金プラン－オプションサービス契約)
MATCHDEF_KK0351=${G_TOOLSH}/util/def/KK_CM_0780.def
# ANK-4427-00-00 ADD END

#--- アンロードSQL定義ファイル
# 料金プランアンロードSQL定義ファイル
ULDSQL_KK0591=${SQL_DIR}/KK_U_KK0591_08.sql

#--- 共通アンロードファイル
# お客様共通アンロードファイル<カレント>
COMULD2_CK0011_CUR=${MID_DIR_CC}/CCIFM019002.csv
# サービス契約共通アンロードファイル<カレント>
COMULD2_KK0081_CUR=${MID_DIR_CC}/CCIFM020002.csv
# ANK-4427-00-00 ADD START
# オプションサービス契約共通アンロードファイル<カレント>
COMULD2_KK0351_CUR=${MID_DIR_CC}/CCIFM026002.csv
# ANK-4427-00-00 ADD END

#--- 一時ファイル
# 料金プランアンロードファイル
ULDFILE_KK0591=${LOC_DIR_KK}/${JOBNAME}_KK0591.csv
# お客様抽出結果ファイル
TMPFILE_CK0011=${LOC_DIR_KK}/${JOBNAME}_CK0011.csv
# サービス契約抽出結果ファイル
TMPFILE_KK0081=${LOC_DIR_KK}/${JOBNAME}_KK0081.csv
# ANK-4427-00-00 ADD START
# オプションサービス契約抽出結果ファイル
TMPFILE_KK0351=${LOC_DIR_KK}/${JOBNAME}_KK0351.csv
# ANK-4427-00-00 ADD END
# サービス契約マッチング結果ファイル
TMPFILE_KK0081_MATCH=${LOC_DIR_KK}/${JOBNAME}_KK0081_MATCH.csv
# サービス契約サプレス結果ファイル
TMPFILE_KK0081_SUPPRESS=${LOC_DIR_KK}/${JOBNAME}_KK0081_SUPPRESS.csv
# 会員ランク判定諸元ファイル(置換前)
TMPFILE_KKIFE332=${LOC_DIR_KK}/${JOBNAME}_KKIFE332.csv
# 会員ランク判定諸元ファイル(置換1対象)
TMPFILE_KKIFE332_1=${LOC_DIR_KK}/${JOBNAME}_KKIFE332_1.csv
# 会員ランク判定諸元ファイル(置換1対象外)
TMPFILE_KKIFE332_2=${LOC_DIR_KK}/${JOBNAME}_KKIFE332_2.csv
# 会員ランク判定諸元ファイル(置換2対象)
TMPFILE_KKIFE332_3=${LOC_DIR_KK}/${JOBNAME}_KKIFE332_3.csv
# 会員ランク判定諸元ファイル(置換2対象外)
TMPFILE_KKIFE332_4=${LOC_DIR_KK}/${JOBNAME}_KKIFE332_4.csv
# ▼▼▼ANK-3366-00-00 ADD START▼▼▼
# お客様抽出結果ファイル
TMPFILE_CK0011_1=${LOC_DIR_KK}/${JOBNAME}_CK0011_1.csv
# お客様抽出結果ファイル
TMPFILE_CK0011_2=${LOC_DIR_KK}/${JOBNAME}_CK0011_2.csv
# お客様抽出結果ファイル
TMPFILE_CK0011_3=${LOC_DIR_KK}/${JOBNAME}_CK0011_3.csv
# ▲▲▲ANK-3366-00-00 ADD END  ▲▲▲
# ▼▼▼ANK-4307-00-00 ADD START▼▼▼
#サービス契約抽出結果ファイル
TMPFILE_KK0081_MATCH_1_AFTER=${LOC_DIR_KK}/${JOBNAME}_KK0081_MATCH_1_AFTER.csv
# ANK-4427-00-00 ADD START
#オプションサービス契約マッチング結果ファイル
TMPFILE_KK0351_MATCH_1=${LOC_DIR_KK}/${JOBNAME}_KK0351_MATCH_1.csv
# ANK-4427-00-00 ADD END
# サービス契約サプレス結果ファイル(抽出結果1)
TMPFILE_KK0081_SUPPRESS_1=${LOC_DIR_KK}/${JOBNAME}_KK0081_SUPPRESS_1.csv
# サービス契約サプレス結果ファイル(抽出結果2)
TMPFILE_KK0081_SUPPRESS_2=${LOC_DIR_KK}/${JOBNAME}_KK0081_SUPPRESS_2.csv
# サービス契約サプレス結果ファイル(抽出結果3)
TMPFILE_KK0081_SUPPRESS_PRE=${LOC_DIR_KK}/${JOBNAME}_KK0081_SUPPRESS_PRE.csv
# 会員ランク判定諸元ファイル(置換前)
TMPFILE_KKIFE332_PRE=${LOC_DIR_KK}/${JOBNAME}_KKIFE332_PRE.csv
# 会員ランク判定諸元ファイル(置換前)
#TMPFILE_KKIFE332_A=${LOC_DIR_KK}/${JOBNAME}_KKIFE332_A.csv
# 会員ランク判定諸元ファイル(置換前)
#TMPFILE_KKIFE332_B=${LOC_DIR_KK}/${JOBNAME}_KKIFE332_B.csv
# ▲▲▲ANK-4307-00-00 ADD END  ▲▲▲
# ▼▼▼OM-2023-0000027 ADD START▼▼▼
# サービス契約サプレス結果ファイル(抽出結果4)
TMPFILE_KK0081_SUPPRESS_2_BEFORE_1_PRE_1=${LOC_DIR_KK}/${JOBNAME}_KK0081_SUPPRESS_2_BEFORE_1_PRE_1.csv
# サービス契約サプレス結果ファイル(抽出結果5)
TMPFILE_KK0081_SUPPRESS_2_BEFORE_1_PRE_2=${LOC_DIR_KK}/${JOBNAME}_KK0081_SUPPRESS_2_BEFORE_1_PRE_2.csv
# サービス契約サプレス結果ファイル(抽出結果6)
TMPFILE_KK0081_SUPPRESS_2_BEFORE_1=${LOC_DIR_KK}/${JOBNAME}_KK0081_SUPPRESS_2_BEFORE_1.csv
# サービス契約サプレス結果ファイル(抽出結果7)
TMPFILE_KK0081_SUPPRESS_2_BEFORE_2=${LOC_DIR_KK}/${JOBNAME}_KK0081_SUPPRESS_2_BEFORE_2.csv
# サービス契約サプレス結果ファイル(抽出結果8)
TMPFILE_KK0081_SUPPRESS_2_AFTER=${LOC_DIR_KK}/${JOBNAME}_KK0081_SUPPRESS_2_AFTER.csv
# サービス契約サプレス結果ファイル(抽出結果9)
TMPFILE_KK0081_SUPPRESS_AFTER=${LOC_DIR_KK}/${JOBNAME}_KK0081_SUPPRESS_AFTER.csv
# サービス契約サプレス結果ファイル(抽出結果10)
TMPFILE_KK0081_SUPPRESS_AFTER_2=${LOC_DIR_KK}/${JOBNAME}_KK0081_SUPPRESS_AFTER_2.csv
# サービス契約サプレス結果ファイル(抽出結果11)
TMPFILE_KK0081_SUPPRESS_PRE=${LOC_DIR_KK}/${JOBNAME}_KK0081_SUPPRESS_PRE.csv
# 会員ランク判定諸元ファイル(置換前2)
TMPFILE_KKIFE332_PRE_2=${LOC_DIR_KK}/${JOBNAME}_KKIFE332_PRE_2.csv
# ▲▲▲OM-2023-0000027 ADD END  ▲▲▲

#--- 出力ファイル
# 会員ランク判定諸元ファイル
OUTFILE_KKIFE332=${GAIBU_SEND_DIR_KK}/KKIFE332/
# 会員ランク判定諸元ファイルのレコード長
RECLEN_KKIFE332=90

# ▼▼▼ANK-3007-00-00 ADD START▼▼▼
# 住所変更アンロードSQL定義ファイル
ULDSQL_KK2091=${SQL_DIR}/KK_U_KK2091_03.sql
# 住所変更明細アンロードSQL定義ファイル
ULDSQL_KK2101=${SQL_DIR}/KK_U_KK2101_03.sql

# 住所変更アンロードファイル
ULDFILE_KK2091=${LOC_DIR_KK}/${JOBNAME}_KK2091.csv
# 住所変更明細アンロードファイル
ULDFILE_KK2101=${LOC_DIR_KK}/${JOBNAME}_KK2101.csv

#サービス契約抽出結果ファイル(解約済）
TMPFILE_KK0081_1=${LOC_DIR_KK}/${JOBNAME}_KK0081_1.csv
#サービス契約抽出結果ファイル(提供中未満）
TMPFILE_KK0081_2=${LOC_DIR_KK}/${JOBNAME}_KK0081_2.csv

# 料金プラン抽出結果ファイル
TMPFILE_KK0591=${LOC_DIR_KK}/${JOBNAME}_KK0591_1.csv
# 料金プランアンロードファイルのレコード長
LULD_REC_LEN_KK0591=46

# マッチングツール定義ファイル(住所変更明細－住所変更－料金プラン－サービス契約)
MATCHDEF_KK2101=${G_TOOLSH}/util/def/KK_CM_0606.def
# サービス契約マッチング結果１ファイル
TMPFILE_KK0081_MATCH_1=${LOC_DIR_KK}/${JOBNAME}_KK0081_MATCH_1.csv
# サービス契約マッチング結果２ファイル
TMPFILE_KK0081_MATCH_2=${LOC_DIR_KK}/${JOBNAME}_KK0081_MATCH_2.csv
# サービス契約マッチング結果ファイルのレコード長
MATCH_REC_LEN_KK0081=56
# ▲▲▲ANK-3007-00-00 ADD END  ▲▲▲

# ▼▼▼ANK-4307-00-00 ADD START▼▼▼
#サービス契約抽出結果ファイルレコード長
LULD_REC_LEN_KK0081_MATCH_1=1000
# ▲▲▲ANK-4307-00-00 ADD END  ▲▲▲
#
#--- 2. 料金プランのアンロード処理を実行する
#

EXEC_UNLOAD ${ULDFILE_KK0591} ${ULDSQL_KK0591}

# ▼▼▼ANK-3007-00-00 ADD START▼▼▼

# 住所変更のアンロード処理
EXEC_UNLOAD ${ULDFILE_KK2091} ${ULDSQL_KK2091}

# 住所変更明細のアンロード処理
EXEC_UNLOAD ${ULDFILE_KK2101} ${ULDSQL_KK2101}

# ▲▲▲ANK-3007-00-00 ADD END  ▲▲▲

#
#--- 3. 共通アンロードファイルの抽出処理を実行する
#

#--- お客様共通アンロードファイル<カレント>
#    抽出条件：契約者タイプコード ≠ '5'(マンションオーナー)

# bsort用項目定義
# ▼▼▼ANK-3366-00-00 MOD START▼▼▼
#BSORT_DEF_CK0011_CUR="@SYSID=0.10 @CUST_STAT=2.3 @KEISHA_TYPE_CD=3.1 @CUST_NTAIKAI_CD=23.1 @MEMBER_SBT_CD=29.2 @EONETID_MI_IKO_FLG=30.1 @MMB_SBT_TOKUT_FLG=31.1"
#bsortex -define ${BSORT_DEF_CK0011_CUR} -copy -record recform=txtcsv \
#        -input file=${COMULD2_CK0011_CUR} reclen=${ULD2_REC_LEN_CK0011} \
#               reconst="@SYSID,@CUST_STAT,@KEISHA_TYPE_CD,@MEMBER_SBT_CD,@CUST_NTAIKAI_CD,@MMB_SBT_TOKUT_FLG,@EONETID_MI_IKO_FLG" \
#               include="@KEISHA_TYPE_CDasc.ne.'5'" \
#        -output file=${TMPFILE_CK0011}
#rc=$?
#if [ $rc -ne 0 ]
#then
#    BSORT_ERROR ${rc} ${COMULD2_CK0011_CUR}
#fi

BSORT_DEF_CK0011_CUR="@SYSID=0.10 @CUST_STAT=2.3 @KEISHA_TYPE_CD=3.1 @CUST_NTAIKAI_CD=23.1 @MEMBER_SBT_CD=29.2 @EONETID_MI_IKO_FLG=30.1 @MMB_SBT_TOKUT_FLG=31.1 @ORSJGS_CD=33.2"
bsortex -define ${BSORT_DEF_CK0011_CUR} -copy -record recform=txtcsv \
        -input file=${COMULD2_CK0011_CUR} reclen=${ULD2_REC_LEN_CK0011} \
               reconst="@SYSID,@CUST_STAT,@KEISHA_TYPE_CD,@MEMBER_SBT_CD,@CUST_NTAIKAI_CD,@MMB_SBT_TOKUT_FLG,@EONETID_MI_IKO_FLG,@ORSJGS_CD" \
               include="@KEISHA_TYPE_CDasc.ne.'5'" \
        -output file=${TMPFILE_CK0011}
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${COMULD2_CK0011_CUR}
fi
# ▲▲▲ANK-3366-00-00 MOD END  ▲▲▲

# ▼▼▼ANK-3366-00-00 ADD START▼▼▼
#--- お客様抽出結果ファイル
#    TMPFILE_CK0011_1抽出条件：卸先事業者コード ≠ '00' OR 卸先事業者コード ≠ ' '
#    TMPFILE_CK0011_2抽出条件：卸先事業者コード ≠ '00' OR 卸先事業者コード ≠ ' '以外

# ▼▼▼ST-2018-0000017 MOD START▼▼▼
#BSORT_DEF_CK0011_CUR_1="@SYSID=0.10 @CUST_STAT=1.3 @KEISHA_TYPE_CD=2.1 @CUST_NTAIKAI_CD=3.1 @MEMBER_SBT_CD=4.2 @EONETID_MI_IKO_FLG=5.1 @MMB_SBT_TOKUT_FLG=6.1 @ORSJGS_CD=7.2"
BSORT_DEF_CK0011_CUR_1="@SYSID=0.10 @CUST_STAT=1.3 @KEISHA_TYPE_CD=2.1 @MEMBER_SBT_CD=3.2 @CUST_NTAIKAI_CD=4.1 @EONETID_MI_IKO_FLG=5.1 @MMB_SBT_TOKUT_FLG=6.1 @ORSJGS_CD=7.2"
# ▲▲▲ST-2018-0000017 MOD END  ▲▲▲

# ▼▼▼ST-2018-0000017 MOD START▼▼▼
#bsortex -define ${BSORT_DEF_CK0011_CUR_1} -copy -record recform=txtcsv \
#        -input file=${TMPFILE_CK0011} reclen=${ULD2_REC_LEN_CK0011} \
#        -output file=${TMPFILE_CK0011_1} case="(@ORSJGS_CDasc.eq.'00').or.(@ORSJGS_CDascb.eq.' ')" reconst="@SYSID","@CUST_STAT","@KEISHA_TYPE_CD","@CUST_NTAIKAI_CD","@MEMBER_SBT_CD","@EONETID_MI_IKO_FLG","@MMB_SBT_TOKUT_FLG" \
#        -output file=${TMPFILE_CK0011_2} case=other reconst="@SYSID","@CUST_STAT","'6'.1ascA","@CUST_NTAIKAI_CD","@MEMBER_SBT_CD","@EONETID_MI_IKO_FLG","@MMB_SBT_TOKUT_FLG"
bsortex -define ${BSORT_DEF_CK0011_CUR_1} -copy -record recform=txtcsv \
        -input file=${TMPFILE_CK0011} reclen=${ULD2_REC_LEN_CK0011} \
        -output file=${TMPFILE_CK0011_1} case="(@ORSJGS_CDasc.eq.'00').or.(@ORSJGS_CDascb.eq.' ')" reconst="@SYSID","@CUST_STAT","@KEISHA_TYPE_CD","@MEMBER_SBT_CD","@CUST_NTAIKAI_CD","@EONETID_MI_IKO_FLG","@MMB_SBT_TOKUT_FLG" \
        -output file=${TMPFILE_CK0011_2} case=other reconst="@SYSID","@CUST_STAT","'6'.1ascA","@MEMBER_SBT_CD","@CUST_NTAIKAI_CD","@EONETID_MI_IKO_FLG","@MMB_SBT_TOKUT_FLG"
# ▲▲▲ST-2018-0000017 MOD END  ▲▲▲
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${TMPFILE_CK0011}
fi

#--- お客様抽出結果ファイル（マージ結果）
#    お客様抽出結果ファイルをマージする
cat ${TMPFILE_CK0011_1} ${TMPFILE_CK0011_2} > ${TMPFILE_CK0011_3}

# ▲▲▲ANK-3366-00-00 ADD END  ▲▲▲

# ▼▼▼IT1-2023-0000012 MOD START▼▼▼
#--- サービス契約共通アンロードファイル<カレント>
#    抽出条件：サービス契約ステータス='030'(締結済) '100'(サービス提供中)、'210'(休止・中断中)、'220'(停止中)
#              または、サービス契約ステータス='020'(照査済)かつ、照査解約完了コードが'1'(照査OK)
# ▼▼▼ANK-4307-00-00 MOD START▼▼▼
# bsort用項目定義
#BSORT_DEF_KK0081_CUR="@SVC_KEI_NO=0.10 @SVC_KEI_STAT=2.3 @SYSID=3.10 @PCRS_CD=8.3 @PPLAN_CD=9.6 @SVC_STA_YMD=22.8"
#bsortex -define ${BSORT_DEF_KK0081_CUR} -copy -record recform=txtcsv \
#        -input file=${COMULD2_KK0081_CUR} reclen=${ULD2_REC_LEN_KK0081} \
#               reconst="@SVC_KEI_NO,@SVC_KEI_STAT,@PCRS_CD,@PPLAN_CD,@SYSID,@SVC_STA_YMD" \
#               include="@SVC_KEI_STATasc.eq.'100'.or.@SVC_KEI_STATasc.eq.'210'.or.@SVC_KEI_STATasc.eq.'220'" \
#        -output file=${TMPFILE_KK0081}

# bsort用項目定義
BSORT_DEF_KK0081_CUR="@SVC_KEI_NO=0.10 @SVC_KEI_STAT=2.3 @SYSID=3.10 @PCRS_CD=8.3 @PPLAN_CD=9.6 @SHOSA_YMD=11.8 @SVC_STA_YMD=22.8 @SHOSA_DSL_FIN_CD=37.1"
bsortex -define ${BSORT_DEF_KK0081_CUR} -copy -record recform=txtcsv \
        -input file=${COMULD2_KK0081_CUR} reclen=${ULD2_REC_LEN_KK0081} \
               reconst="@SVC_KEI_NO,@SVC_KEI_STAT,@PCRS_CD,@PPLAN_CD,@SYSID,@SHOSA_YMD,@SVC_STA_YMD" \
               include="(@SVC_KEI_STATasc.eq.'030'.or.@SVC_KEI_STATasc.eq.'100'.or.@SVC_KEI_STATasc.eq.'210'.or.@SVC_KEI_STATasc.eq.'220').or.(@SVC_KEI_STATasc.eq.'020'.and.@SHOSA_DSL_FIN_CDasc.eq.'1')" \
        -output file=${TMPFILE_KK0081}
# ▲▲▲ANK-4307-00-00 MOD END ▲▲▲
# ▲▲▲IT1-2023-0000012 MOD END ▲▲▲

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

# ▼▼▼ANK-3007-00-00 ADD START▼▼▼

#--- サービス契約共通アンロードファイル<カレント>
#    抽出条件：サービス契約ステータス ＝ '910'(解約済)
bsortex -define ${BSORT_DEF_KK0081_CUR} -copy -record recform=txtcsv \
        -input file=${COMULD2_KK0081_CUR} reclen=${ULD2_REC_LEN_KK0081} \
               reconst="@SVC_KEI_NO,@SVC_KEI_STAT,@PCRS_CD,@PPLAN_CD,@SYSID,@SVC_STA_YMD" \
               include="@SVC_KEI_STATasc.eq.'910'" \
        -output file=${TMPFILE_KK0081_1}
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${COMULD2_KK0081_CUR}
fi
# ▼▼▼ANK-4307-00-00 MOD START▼▼▼
#--- サービス契約共通アンロードファイル<カレント>
#    抽出条件：サービス契約ステータス ＝ '100'(サービス提供中)、サービス開始日 <> ''
#bsortex -define ${BSORT_DEF_KK0081_CUR} -copy -record recform=txtcsv \
#        -input file=${COMULD2_KK0081_CUR} reclen=${ULD2_REC_LEN_KK0081} \
#               reconst="@SVC_KEI_NO,@SVC_KEI_STAT,@PCRS_CD,@PPLAN_CD,@SYSID,@SVC_STA_YMD" \
#               include="@SVC_KEI_STATasc.lt.'100'.and.@SVC_STA_YMDasc.gt.' '" \
#        -output file=${TMPFILE_KK0081_2}
bsortex -define ${BSORT_DEF_KK0081_CUR} -copy -record recform=txtcsv \
        -input file=${COMULD2_KK0081_CUR} reclen=${ULD2_REC_LEN_KK0081} \
               reconst="@SVC_KEI_NO,@SVC_KEI_STAT,@PCRS_CD,@PPLAN_CD,@SYSID,@SVC_STA_YMD,@SHOSA_YMD" \
               include="@SVC_KEI_STATasc.lt.'100'.and.@SVC_STA_YMDasc.gt.' '" \
        -output file=${TMPFILE_KK0081_2}
# ▲▲▲ANK-4307-00-00 MOD END  ▲▲▲
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${COMULD2_KK0081_CUR}
fi

#--- 料金プラン
#    抽出条件：会員ランク判定対象サービス種別コード = '01'
BSORT_DEF_KK0591_NET="@PCRS_CD=0.3 @PPLAN_CD=1.6 @PPLAN_TSTAYMD=2.8 @PPLAN_TENDYMD=3.8 @MMB_RANK_JDG_TG_SVC_SBT_CD=4.2"
bsortex -define ${BSORT_DEF_KK0591_NET} -copy -record recform=txtcsv \
        -input file=${ULDFILE_KK0591} reclen=${LULD_REC_LEN_KK0591} \
               reconst="@PCRS_CD,@PPLAN_CD,@PPLAN_TSTAYMD,@PPLAN_TENDYMD,@MMB_RANK_JDG_TG_SVC_SBT_CD" \
               include="@MMB_RANK_JDG_TG_SVC_SBT_CDasc.eq.'01'" \
        -output file=${TMPFILE_KK0591}
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${ULDFILE_KK0591}
fi
# ▲▲▲ANK-3007-00-00 ADD END  ▲▲▲

#
#--- 4. 料金プランとサービス契約のマッチング処理を実行する
#

export ULDFILE_KK0591
export TMPFILE_KK0081
# ▼▼▼ANK-3007-00-00 ADD START▼▼▼
#EXEC_MATCHING ${TMPFILE_KK0081_MATCH} ${MATCHDEF_KK0081}
# 出力ファイルを変更（後でマージするため）
EXEC_MATCHING ${TMPFILE_KK0081_MATCH_1} ${MATCHDEF_KK0081}
# ▲▲▲ANK-3007-00-00 ADD END  ▲▲▲

# ANK-4427-00-00 ADD START
#--- オプションサービス契約共通アンロードファイル<カレント>
#    抽出条件：オプションサービス契約共通アンロードファイル<カレント>.オプションサービス契約ステータス　＝　'100'(サービス提供中)、'210'(休止・中断中)、'220'(停止中)
BSORT_DEF_KK0351_CUR="@SVC_KEI_NO=7.10 @OP_SVC_KEI_STAT=2.3 @PCRS_CD=4.3 @PPLAN_CD=5.6 @SYSID=9.10 @SHOSA_YMD=32.8 @SVC_STA_YMD=18.8"
bsortex -define ${BSORT_DEF_KK0351_CUR} -copy -record recform=txtcsv \
        -input file=${COMULD2_KK0351_CUR} reclen=${ULD2_REC_LEN_KK0351} \
               reconst="@SVC_KEI_NO,@OP_SVC_KEI_STAT,@PCRS_CD,@PPLAN_CD,@SYSID,@SHOSA_YMD,@SVC_STA_YMD" \
               include="@OP_SVC_KEI_STATasc.eq.'100'.or.@OP_SVC_KEI_STATasc.eq.'210'.or.@OP_SVC_KEI_STATasc.eq.'220'" \
        -output file=${TMPFILE_KK0351}

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

export TMPFILE_KK0351

# 料金プランとオプションサービス契約のマッチング処理を実行する
EXEC_MATCHING ${TMPFILE_KK0351_MATCH_1} ${MATCHDEF_KK0351}
# ANK-4427-00-00 ADD END
# ▼▼▼ANK-4307-01-00 ADD START▼▼▼
#    抽出条件：サービス契約ステータス = ('100', '210', '220')または、
#             (サービス契約ステータス'020','030'かつ会員ランク判定対象サービス種別コード = '01','91','92')
# ▼▼▼ANK-4468-00-00 MOD START▼▼▼
#BSORT_DEF_KK0081_MATCH_1="@SVC_KEI_NO=0.10 @SVC_KEI_STAT=1.3 @PCRS_CD=2.3 @PPLAN_CD=3.6 @SYSID=4.10 @SHOSA_YMD=5.8 @SVC_STA_YMD=6.8 @MMB_RANK_JDG_TG_SVC_SBT_CD=7.2 "
#bsortex -define ${BSORT_DEF_KK0081_MATCH_1} -copy -record recform=txtcsv \
#        -input file=${TMPFILE_KK0081_MATCH_1} reclen=${LULD_REC_LEN_KK0081_MATCH_1} \
#               reconst="@SVC_KEI_NO,@SVC_KEI_STAT,@PCRS_CD,@PPLAN_CD,@SYSID,@SHOSA_YMD,@SVC_STA_YMD,@MMB_RANK_JDG_TG_SVC_SBT_CD" \
#              include="(@SVC_KEI_STATasc.eq.'100'.or.@SVC_KEI_STATasc.eq.'210'.or.@SVC_KEI_STATasc.eq.'220').or.((@SVC_KEI_STATasc.eq.'020'.or.@SVC_KEI_STATasc.eq.'030').and.@MMB_RANK_JDG_TG_SVC_SBT_CDasc.eq.'01')" \
#        -output file=${TMPFILE_KK0081_MATCH_1_AFTER}
# ANK-4427-00-00 MOD START
#BSORT_DEF_KK0081_MATCH_1="@SVC_KEI_NO=0.10 @SVC_KEI_STAT=1.3 @PCRS_CD=2.3 @PPLAN_CD=3.6 @SYSID=4.10 @SHOSA_YMD=5.8 @SVC_STA_YMD=6.8 @MMB_RANK_JDG_TG_SVC_SBT_CD=7.2 "
#bsortex -define ${BSORT_DEF_KK0081_MATCH_1} -copy -record recform=txtcsv \
#        -input file=${TMPFILE_KK0081_MATCH_1} reclen=${LULD_REC_LEN_KK0081_MATCH_1} \
#               reconst="@SVC_KEI_NO,@SVC_KEI_STAT,@PCRS_CD,@PPLAN_CD,@SYSID,@SHOSA_YMD,@SVC_STA_YMD,@MMB_RANK_JDG_TG_SVC_SBT_CD" \
#               include="(@SVC_KEI_STATasc.eq.'100'.or.@SVC_KEI_STATasc.eq.'210'.or.@SVC_KEI_STATasc.eq.'220').or.((@SVC_KEI_STATasc.eq.'020'.or.@SVC_KEI_STATasc.eq.'030').and.(@MMB_RANK_JDG_TG_SVC_SBT_CDasc.eq.'01'.or.@MMB_RANK_JDG_TG_SVC_SBT_CDasc.eq.'91'))" \
#        -output file=${TMPFILE_KK0081_MATCH_1_AFTER}
BSORT_DEF_KK0081_MATCH_1="@SVC_KEI_NO=0.10 @SVC_KEI_STAT=1.3 @PCRS_CD=2.3 @PPLAN_CD=3.6 @SYSID=4.10 @SHOSA_YMD=5.8 @SVC_STA_YMD=6.8 @MMB_RANK_JDG_TG_SVC_SBT_CD=7.2 "
bsortex -define ${BSORT_DEF_KK0081_MATCH_1} -copy -record recform=txtcsv \
        -input file=${TMPFILE_KK0081_MATCH_1} reclen=${LULD_REC_LEN_KK0081_MATCH_1} \
               reconst="@SVC_KEI_NO,@SVC_KEI_STAT,@PCRS_CD,@PPLAN_CD,@SYSID,@SHOSA_YMD,@SVC_STA_YMD,@MMB_RANK_JDG_TG_SVC_SBT_CD" \
               include="(@SVC_KEI_STATasc.eq.'100'.or.@SVC_KEI_STATasc.eq.'210'.or.@SVC_KEI_STATasc.eq.'220').or.((@SVC_KEI_STATasc.eq.'020'.or.@SVC_KEI_STATasc.eq.'030').and.(@MMB_RANK_JDG_TG_SVC_SBT_CDasc.eq.'01'.or.@MMB_RANK_JDG_TG_SVC_SBT_CDasc.eq.'91'.or.@MMB_RANK_JDG_TG_SVC_SBT_CDasc.eq.'92'))" \
        -output file=${TMPFILE_KK0081_MATCH_1_AFTER}
# ANK-4427-00-00 MOD END
# ▲▲▲ANK-4468-00-00 MOD END▲▲▲
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${TMPFILE_KK0081_MATCH_1_AFTER}
fi
# ▲▲▲ANK-4307-01-00 ADD END  ▲▲▲

# ▼▼▼ANK-3007-00-00 ADD START▼▼▼
# 解約／新規の住所変更で移転元連携済み、新設側連携未の契約データを抽出
export ULDFILE_KK2101
export ULDFILE_KK2091
export TMPFILE_KK0081_1
export TMPFILE_KK0081_2
export TMPFILE_KK0591
EXEC_MATCHING ${TMPFILE_KK0081_MATCH_2} ${MATCHDEF_KK2101}

# マッチングした3つのファイルをマージ
# ANK-4427-00-00 MOD START
#cat ${TMPFILE_KK0081_MATCH_1_AFTER} ${TMPFILE_KK0081_MATCH_2} > ${TMPFILE_KK0081_MATCH}
cat ${TMPFILE_KK0081_MATCH_1_AFTER} ${TMPFILE_KK0081_MATCH_2} ${TMPFILE_KK0351_MATCH_1} > ${TMPFILE_KK0081_MATCH}
# ANK-4427-00-00 MOD END
# ▲▲▲ANK-3007-00-00 ADD END  ▲▲▲

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

#
#--- 5. サービス契約のサプレス処理を実行する
#

# ① SYSID(昇順)、会員ランク判定対象サービス種別コード(昇順)、サービス開始年月日(昇順)、サービス契約番号(昇順)の順にソートする。
# ② ソートした結果のSYSID、会員ランク判定対象サービス種別コードが同一のレコードの中から、最初のレコード(サービス開始年月日、サービス契約番号が最小)のみを出力する。
# ▼▼▼ANK-4307-00-00 MOD START▼▼▼
# ③ サービス契約ステータスが'100'(サービス提供中)、'210'(休止・中断中)、'220'(停止中)のレコードのみを出力する。
# bsort用項目定義
#BSORT_DEF_KK0081_MATCH="@SVC_KEI_NO=0.10 @SVC_KEI_STAT=1.3 @PCRS_CD=2.3 @PPLAN_CD=3.6 @SYSID=4.10 @SVC_STA_YMD=5.8 @MMB_RANK_JDG_TG_SVC_SBT_CD=6.2"
#bsortex -define ${BSORT_DEF_KK0081_MATCH} -sort key="@SYSIDasc,@MMB_RANK_JDG_TG_SVC_SBT_CDasc,@SVC_STA_YMDasc,@SVC_KEI_NOasc" -record recform=txtcsv \
#        -input file=${TMPFILE_KK0081_MATCH} reclen=70 \
#    | bsortex -define ${BSORT_DEF_KK0081_MATCH} -merge key="@SYSIDasc,@MMB_RANK_JDG_TG_SVC_SBT_CDasc" -record recform=txtcsv \
#              -input reclen=70 -summary suppress first \
#              -output file=${TMPFILE_KK0081_SUPPRESS}
BSORT_DEF_KK0081_MATCH="@SVC_KEI_NO=0.10 @SVC_KEI_STAT=1.3 @PCRS_CD=2.3 @PPLAN_CD=3.6 @SYSID=4.10 @SHOSA_YMD=5.8 @SVC_STA_YMD=6.8 @MMB_RANK_JDG_TG_SVC_SBT_CD=7.2"
bsortex -define ${BSORT_DEF_KK0081_MATCH} -sort key="@SYSIDasc,@MMB_RANK_JDG_TG_SVC_SBT_CDasc,@SVC_STA_YMDasc,@SVC_KEI_NOasc" -record recform=txtcsv \
        -input file=${TMPFILE_KK0081_MATCH} reclen=78 \
               include="(@SVC_KEI_STATasc.eq.'100'.or.@SVC_KEI_STATasc.eq.'210'.or.@SVC_KEI_STATasc.eq.'220')" \
     | bsortex -define ${BSORT_DEF_KK0081_MATCH} -merge key="@SYSIDasc,@MMB_RANK_JDG_TG_SVC_SBT_CDasc" -record recform=txtcsv \
              -input reclen=78 -summary suppress first \
              -output file=${TMPFILE_KK0081_SUPPRESS_1} reconst="@SVC_KEI_NO,@SVC_KEI_STAT,@PCRS_CD,@PPLAN_CD,@SYSID,@SVC_STA_YMD,@MMB_RANK_JDG_TG_SVC_SBT_CD,@SHOSA_YMD"
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${TMPFILE_KK0081_SUPPRESS_1}
fi
# ▼▼▼OM-2023-0000027 MOD START▼▼▼
# ④ SYSID(昇順)、会員ランク判定対象サービス種別コード(昇順)、サービス開始年月日(昇順)、照査年月日(昇順)、サービス契約番号(昇順)の順にソートする。
# ⑤ ソートした結果のSYSID、会員ランク判定対象サービス種別コードが同一のレコードの中から、最初のレコード(サービス開始年月日、照査年月日、サービス契約番号が最小)のみを出力する。
# ⑥ サービス契約ステータスが'020'(照査済)、'030'(締結済)のレコードを抽出する。
# ⑦ サービス年月日に値がない場合、サービス開始年月日に'99999999'を設定して出力する。
#                    値がある場合、サービス開始年月日はそのまま出力する。
#BSORT_DEF_KK0081_MATCH="@SVC_KEI_NO=0.10 @SVC_KEI_STAT=1.3 @PCRS_CD=2.3 @PPLAN_CD=3.6 @SYSID=4.10 @SHOSA_YMD=5.8 @SVC_STA_YMD=6.8 @MMB_RANK_JDG_TG_SVC_SBT_CD=7.2"
#bsortex -define ${BSORT_DEF_KK0081_MATCH} -sort key="@SYSIDasc,@MMB_RANK_JDG_TG_SVC_SBT_CDasc,@SHOSA_YMDasc,@SVC_KEI_NOasc" -record recform=txtcsv \
#        -input file=${TMPFILE_KK0081_MATCH} reclen=78 \
#               include="(@SVC_KEI_STATasc.eq.'020'.or.@SVC_KEI_STATasc.eq.'030')" \
#     | bsortex -define ${BSORT_DEF_KK0081_MATCH} -merge key="@SYSIDasc,@MMB_RANK_JDG_TG_SVC_SBT_CDasc" -record recform=txtcsv \
#              -input reclen=78 -summary suppress first \
#              -output file=${TMPFILE_KK0081_SUPPRESS_2} reconst="@SVC_KEI_NO,@SVC_KEI_STAT,@PCRS_CD,@PPLAN_CD,@SYSID,'99999999'.8asc,@MMB_RANK_JDG_TG_SVC_SBT_CD,@SHOSA_YMD"

#rc=$?
#if [ $rc -ne 0 ]
#then
#    BSORT_ERROR ${rc} ${TMPFILE_KK0081_SUPPRESS_2}
#fi
BSORT_DEF_KK0081_MATCH="@SVC_KEI_NO=0.10 @SVC_KEI_STAT=1.3 @PCRS_CD=2.3 @PPLAN_CD=3.6 @SYSID=4.10 @SHOSA_YMD=5.8 @SVC_STA_YMD=6.8 @MMB_RANK_JDG_TG_SVC_SBT_CD=7.2"
bsortex -define ${BSORT_DEF_KK0081_MATCH} -sort key="@SYSIDasc,@MMB_RANK_JDG_TG_SVC_SBT_CDasc,@SVC_STA_YMDasc,@SHOSA_YMDasc,@SVC_KEI_NOasc" -record recform=txtcsv \
        -input file=${TMPFILE_KK0081_MATCH} reclen=78 \
               include="(@SVC_KEI_STATasc.eq.'020'.or.@SVC_KEI_STATasc.eq.'030')" \
     | bsortex -define ${BSORT_DEF_KK0081_MATCH} -merge key="@SYSIDasc,@MMB_RANK_JDG_TG_SVC_SBT_CDasc" -record recform=txtcsv \
              -input reclen=78 \
              -output file=${TMPFILE_KK0081_SUPPRESS_2_BEFORE_1_PRE_1} case="@SVC_STA_YMDasc.lt.' '" reconst="@SVC_KEI_NO,@SVC_KEI_STAT,@PCRS_CD,@PPLAN_CD,@SYSID,'99999999'.8asc,@MMB_RANK_JDG_TG_SVC_SBT_CD,@SHOSA_YMD" \
              -output file=${TMPFILE_KK0081_SUPPRESS_2_BEFORE_2} case=other reconst="@SVC_KEI_NO,@SVC_KEI_STAT,@PCRS_CD,@PPLAN_CD,@SYSID,@SVC_STA_YMD,@MMB_RANK_JDG_TG_SVC_SBT_CD,@SHOSA_YMD" \

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

# サービス開始年月日が99999999に設定されているものを"99999999"に変更する
sed -e 's/,99999999,/,"99999999",/g' ${TMPFILE_KK0081_SUPPRESS_2_BEFORE_1_PRE_1} > ${TMPFILE_KK0081_SUPPRESS_2_BEFORE_1_PRE_2}

# サービス契約ステータスが'020'(照査済)、'030'(締結済)のレコードの中から、SYSID(昇順)、会員ランク判定対象サービス種別コード(昇順)、照査年月日(昇順)、サービス契約番号(昇順)の順にソートする。
# ソートした結果のSYSID、会員ランク判定対象サービス種別コードが同一のレコードの中から、最初のレコード(照査年月日、サービス契約番号が最小)のみを出力する。
BSORT_DEF_KK0081_MATCH="@SVC_KEI_NO=0.10 @SVC_KEI_STAT=1.3 @PCRS_CD=2.3 @PPLAN_CD=3.6 @SYSID=4.10 @SVC_STA_YMD=5.8 @MMB_RANK_JDG_TG_SVC_SBT_CD=6.2 @SHOSA_YMD=7.8"
bsortex -define ${BSORT_DEF_KK0081_MATCH} -sort key="@SYSIDasc,@MMB_RANK_JDG_TG_SVC_SBT_CDasc,@SHOSA_YMDasc,@SVC_KEI_NOasc" -record recform=txtcsv \
        -input file=${TMPFILE_KK0081_SUPPRESS_2_BEFORE_1_PRE_2} reclen=78 \
     | bsortex -define ${BSORT_DEF_KK0081_MATCH} -merge key="@SYSIDasc,@MMB_RANK_JDG_TG_SVC_SBT_CDasc" -record recform=txtcsv \
              -input reclen=78 -summary suppress first \
              -output file=${TMPFILE_KK0081_SUPPRESS_2_BEFORE_1} 

#サービス開始年月日で出力方法を分けた２つのファイルをマージする。
cat ${TMPFILE_KK0081_SUPPRESS_2_BEFORE_1} ${TMPFILE_KK0081_SUPPRESS_2_BEFORE_2} > ${TMPFILE_KK0081_SUPPRESS_2}

# SYSID(昇順)、会員ランク判定対象サービス種別コード(昇順)、サービス開始年月日(昇順)、照査年月日(昇順)、サービス契約番号(昇順)の順にソートする。
# ソートした結果のSYSID、会員ランク判定対象サービス種別コードが同一のレコードの中から、最初のレコード(サービス開始年月日、照査年月日、サービス契約番号が最小)のみを出力する。
bsortex -define ${BSORT_DEF_KK0081_MATCH} -sort key="@SYSIDasc,@MMB_RANK_JDG_TG_SVC_SBT_CDasc,@SVC_STA_YMDasc,@SHOSA_YMDasc,@SVC_KEI_NOasc" -record recform=txtcsv \
        -input file=${TMPFILE_KK0081_SUPPRESS_2} reclen=78 \
     | bsortex -define ${BSORT_DEF_KK0081_MATCH} -merge key="@SYSIDasc,@MMB_RANK_JDG_TG_SVC_SBT_CDasc" -record recform=txtcsv \
     -input reclen=78 -summary suppress first \
     -output file=${TMPFILE_KK0081_SUPPRESS_2_AFTER} 

# サービス契約の各サプレス処理をマージする
cat ${TMPFILE_KK0081_SUPPRESS_1} ${TMPFILE_KK0081_SUPPRESS_2_AFTER} > ${TMPFILE_KK0081_SUPPRESS_PRE}

# SYSID(昇順)、会員ランク判定対象サービス種別コード(昇順)、サービス開始年月日(昇順)、照査年月日(昇順)、サービス契約番号(昇順)の順にソートする。
BSORT_DEF_KK0081_MATCH="@SVC_KEI_NO=0.10 @SVC_KEI_STAT=1.3 @PCRS_CD=2.3 @PPLAN_CD=3.6 @SYSID=4.10 @SVC_STA_YMD=5.8 @MMB_RANK_JDG_TG_SVC_SBT_CD=6.2 @SHOSA_YMD=7.8"
bsortex -define ${BSORT_DEF_KK0081_MATCH} -sort key="@SYSIDasc,@MMB_RANK_JDG_TG_SVC_SBT_CDasc,@SVC_KEI_STATascr,@SVC_STA_YMDasc,@SHOSA_YMDasc,@SVC_KEI_NOasc" -record recform=txtcsv \
        -input file=${TMPFILE_KK0081_SUPPRESS_PRE} reclen=78 \
     | bsortex -define ${BSORT_DEF_KK0081_MATCH} -merge key="@SYSIDasc,@MMB_RANK_JDG_TG_SVC_SBT_CDasc" -record recform=txtcsv \
     -input reclen=78  -summary suppress first \
     -output file=${TMPFILE_KK0081_SUPPRESS} 
# ▲▲▲OM-2023-0000027 MOD END  ▲▲▲
# ▲▲▲ANK-4307-00-00 MOD END  ▲▲▲
#
#--- 6. お客様とサービス契約のマッチング処理を実行する
#

export TMPFILE_CK0011_3
export TMPFILE_KK0081_SUPPRESS
EXEC_MATCHING ${TMPFILE_KKIFE332_PRE} ${MATCHDEF_CK0011}

# ▼▼▼OM-2023-0000027 MOD START▼▼▼
# ▼▼▼ANK-4307-00-00 ADD START▼▼▼
# マッチング後再度、SYSID、会員ランク判定対象サービス種別コードが同一のレコードの中から、最初のレコード(サービス開始年月日が最小、サービス契約番号が最小)のみを出力する。
#BSORT_DEF_KK0081_MATCH="@SYSID=0.10 @CUST_STAT=1.2 @KEISHA_TYPE_CD=2.1 @MEMBER_SBT_CD=3.2 @CUST_NTAIKAI_CD=4.1 @MMB_SBT_TOKUT_FLG=5.1 @EONETID_MI_IKO_FLG=6.1 @MMB_RANK_JDG_TG_SVC_SBT_CD=7.2 @SVC_KEI_NO=8.10 @SVC_STA_YMD=9.8"
#bsortex -define ${BSORT_DEF_KK0081_MATCH} -sort key="@SYSIDasc,@MMB_RANK_JDG_TG_SVC_SBT_CDasc,@SVC_STA_YMDasc,@SVC_KEI_NOasc" -record recform=txtcsv \
#        -input file=${TMPFILE_KKIFE332_PRE} reclen=78 \
#     | bsortex -define ${BSORT_DEF_KK0081_MATCH} -merge key="@SYSIDasc,@MMB_RANK_JDG_TG_SVC_SBT_CDasc" -record recform=txtcsv \
#              -input reclen=78 -summary suppress first \
#              -output file=${TMPFILE_KKIFE332_A} 
#
#rc=$?
#if [ $rc -ne 0 ]
#then
#    BSORT_ERROR ${rc} ${TMPFILE_KKIFE332_A}
#fi
#
# サービス開始年月日が'99999999'に設定されているレコードは空文字に設定する。
#sed -e 's/,99999999/,""/g' ${TMPFILE_KKIFE332_A} > ${TMPFILE_KKIFE332}

BSORT_DEF_KK0081_MATCH="@SYSID=0.10 @CUST_STAT=1.2 @KEISHA_TYPE_CD=2.1 @MEMBER_SBT_CD=3.2 @CUST_NTAIKAI_CD=4.1 @MMB_SBT_TOKUT_FLG=5.1 @EONETID_MI_IKO_FLG=6.1 @MMB_RANK_JDG_TG_SVC_SBT_CD=7.2 @SVC_KEI_NO=8.10 @SVC_STA_YMD=9.8"
bsortex -define ${BSORT_DEF_KK0081_MATCH} -sort key="@SYSIDasc,@MMB_RANK_JDG_TG_SVC_SBT_CDasc,@SVC_STA_YMDasc,@SVC_KEI_NOasc" -record recform=txtcsv \
        -input file=${TMPFILE_KKIFE332_PRE} reclen=78 \
     | bsortex -define ${BSORT_DEF_KK0081_MATCH} -merge key="@SYSIDasc,@MMB_RANK_JDG_TG_SVC_SBT_CDasc" -record recform=txtcsv \
              -input reclen=78 -summary suppress first \
              -output file=${TMPFILE_KKIFE332_PRE_2} 

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

# サービス開始年月日が'99999999'に設定されているレコードは空文字に設定する。
sed -e 's/,"99999999"/,""/g' ${TMPFILE_KKIFE332_PRE_2} > ${TMPFILE_KKIFE332}

# ▲▲▲ANK-4307-00-00 ADD END  ▲▲▲
# ▲▲▲OM-2023-0000027 MOD END  ▲▲▲
#
#--- 7. 特定項目の値を置換する
#

# bsort用項目定義
BSORT_DEF_KKIFE332="@SYSID=0.10 @CUST_STAT=1.3 @KEISHA_TYPE_CD=2.1 @MEMBER_SBT_CD=3.2 @CUST_NTAIKAI_CD=4.1 @MMB_SBT_TOKUT_FLG=5.1 @EONETID_MI_IKO_FLG=6.1 @MMB_RANK_JDG_TG_SVC_SBT_CD=7.2 @SVC_KEI_NO=8.10 @SVC_STA_YMD=9.8"

# eonetID未移行フラグがNULLの場合は「0」(移行済)に置換する
bsortex -define ${BSORT_DEF_KKIFE332} -copy -record recform=txtcsv \
     -input file=${TMPFILE_KKIFE332} reclen=${RECLEN_KKIFE332} \
     -output file=${TMPFILE_KKIFE332_1} case="@EONETID_MI_IKO_FLGasc.lt.' '" reconst="@SYSID,@CUST_STAT,@KEISHA_TYPE_CD,@MEMBER_SBT_CD,@CUST_NTAIKAI_CD,@MMB_SBT_TOKUT_FLG,'0'.1ascA,@MMB_RANK_JDG_TG_SVC_SBT_CD,@SVC_KEI_NO,@SVC_STA_YMD" \
     -output file=${TMPFILE_KKIFE332_2} case=other
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${TMPFILE_KKIFE332}
fi

# 会員種別特定フラグがNULLの場合は「1」(特定済)に置換する
bsortex -define ${BSORT_DEF_KKIFE332} -copy -record recform=txtcsv \
     -input file=${TMPFILE_KKIFE332_1},${TMPFILE_KKIFE332_2} reclen=${RECLEN_KKIFE332} \
     -output file=${TMPFILE_KKIFE332_3} case="@MMB_SBT_TOKUT_FLGasc.lt.' '" reconst="@SYSID,@CUST_STAT,@KEISHA_TYPE_CD,@MEMBER_SBT_CD,@CUST_NTAIKAI_CD,'1'.1ascA,@EONETID_MI_IKO_FLG,@MMB_RANK_JDG_TG_SVC_SBT_CD,@SVC_KEI_NO,@SVC_STA_YMD" \
     -output file=${TMPFILE_KKIFE332_4} case=other
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${TMPFILE_KKIFE332_1},${TMPFILE_KKIFE332_2}
fi

#
#--- 8. 会員ランク判定諸元ファイルを出力する
#

# ① 会員ランク判定諸元ファイルのファイル名をシステム日時(年月日時分秒)から生成する。
# ② 会員ランク判定諸元ファイル(置換2対象)、会員ランク判定諸元ファイル(置換2対象外)を連結する。
# ③ SYSID(昇順)、会員ランク判定対象サービス種別コード(昇順)の順にソートする。
# ④ 改行コードをCRLFに変換する。

OUTFILE_KKIFE332=${OUTFILE_KKIFE332}KKIFE332_`date +%Y%m%d%H%M%S`.csv
bsortex -define ${BSORT_DEF_KKIFE332} -sort key="@SYSIDasc,@MMB_RANK_JDG_TG_SVC_SBT_CDasc" -record recform=txtcsv \
     -input file=${TMPFILE_KKIFE332_3},${TMPFILE_KKIFE332_4} reclen=${RECLEN_KKIFE332} \
     -output file=${OUTFILE_KKIFE332} linedlmt=crlf
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${TMPFILE_KKIFE332_3},${TMPFILE_KKIFE332_4}
fi

# 一時ファイル削除
rm -f ${ULDFILE_KK0591}
# ▼▼▼ST-2018-0000017 MOD START▼▼▼
#rm -f ${TMPFILE_CK0011}
rm -f ${TMPFILE_CK0011}
# ▲▲▲ST-2018-0000017 MOD END  ▲▲▲
rm -f ${TMPFILE_KK0081}
rm -f ${TMPFILE_KK0081_MATCH}
rm -f ${TMPFILE_KK0081_SUPPRESS}
rm -f ${TMPFILE_KKIFE332}
rm -f ${TMPFILE_KKIFE332_1}
rm -f ${TMPFILE_KKIFE332_2}
rm -f ${TMPFILE_KKIFE332_3}
rm -f ${TMPFILE_KKIFE332_4}
# ▼▼▼ANK-3007-00-00 ADD START▼▼▼
rm -f ${ULDFILE_KK2091}
rm -f ${ULDFILE_KK2101}
rm -f ${TMPFILE_KK0081_1}
rm -f ${TMPFILE_KK0081_2}
rm -f ${TMPFILE_KK0591}
rm -f ${TMPFILE_KK0081_MATCH_1}
rm -f ${TMPFILE_KK0081_MATCH_2}
# ▲▲▲ANK-3007-00-00 ADD END  ▲▲▲
# ▼▼▼ANK-3366-00-00 ADD START▼▼▼
#rm -f ${TMPFILE_CK0011_1}
#rm -f ${TMPFILE_CK0011_2}
#rm -f ${TMPFILE_CK0011_3}
# ▲▲▲ANK-3366-00-00 ADD END  ▲▲▲
# ▼▼▼ST-2018-0000017 ADD START▼▼▼
rm -f ${TMPFILE_CK0011_1}
rm -f ${TMPFILE_CK0011_2}
rm -f ${TMPFILE_CK0011_3}
# ▲▲▲ST-2018-0000017 ADD END  ▲▲▲
# ▼▼▼ANK-4307-00-00 ADD START▼▼▼
rm -f ${TMPFILE_KK0081_MATCH_1_AFTER}
rm -f ${TMPFILE_KK0081_SUPPRESS_1}
rm -f ${TMPFILE_KK0081_SUPPRESS_2}
rm -f ${TMPFILE_KK0081_SUPPRESS_PRE}
rm -f ${TMPFILE_KKIFE332_PRE}
# ▼▼▼OM-2023-0000027 MOD START▼▼▼
#rm -f ${TMPFILE_KKIFE332_A}
# ▲▲▲ANK-4307-00-00 ADD END  ▲▲▲
rm -f ${TMPFILE_KKIFE332_PRE_2}
rm -f ${TMPFILE_KK0081_SUPPRESS_PRE}
rm -f ${TMPFILE_KK0081_SUPPRESS_2_BEFORE_2}
rm -f ${TMPFILE_KK0081_SUPPRESS_2_BEFORE_1}
rm -f ${TMPFILE_KK0081_SUPPRESS_2_BEFORE_1_PRE_1}
rm -f ${TMPFILE_KK0081_SUPPRESS_2_BEFORE_1_PRE_2}
rm -f ${TMPFILE_KK0081_SUPPRESS_2_AFTER}
rm -f ${TMPFILE_KK0081_KK0081_SUPPRESS_AFTER_2}
rm -f ${TMPFILE_KK0081_SUPPRESS_AFTER}
rm -f ${TMPFILE_KK0081_SUPPRESS_2_AFTER_2}
# ANK-4427-00-00 ADD START
rm -f ${TMPFILE_KK0351}
rm -f ${TMPFILE_KK0351_MATCH_1}
# ANK-4427-00-00 ADD END
# ▲▲▲OM-2023-0000027 MOD END  ▲▲▲
# Javaプログラム開始(Program_Start)
sh ${G_TOOLSH}/EOK010210J0.sh CS00027I $JOBNAME

# Javaプログラム終了(Program_End)
sh ${G_TOOLSH}/EOK010210J0.sh CS00028I $JOBNAME

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

exit ${G_RTN_NORMAL}