#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約管理
#
# シェル名      ：ルータ／ＶＡ機器付替登録
#
# 機能          ：新規申込による多機能ルーターを照査前時点で１０Ｇ無線ルータ／ＶＡへ付替登録を行う。
#付替登録を実施した場合、サービス契約番号単位に進捗を登録、および対応履歴に連携するCASEファイルを出力する。
#
# コマンド形式  ：EO2IB0110J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v55.00.00     2021/10/07    FJ)謝        【ANK-4146-00-00】【eo定期】多機能ルーター枯渇対応 STEP2
# v55.00.01     2021/11/08    FJ)謝        【IT1-2021-0000082】対応
#
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

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

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

#
#--- クエリ編集(マッチング)
#       p1：ＳＱＬ定義ファイル名
#       p2：バインド変数置換文字
#
EDIT_MATCHING_QUERY()
{
    MATCHING_FILE=$1
    MATCHING_QUERY_WORK=${ULD_WORK_DIR}/${JOBNAME}_MATCH_QUERY.tmp

    cat /dev/null > ${MATCHING_QUERY_WORK}

    # SQL定義ファイルの編集
    if [ ! -r ${MATCHING_FILE} ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${MATCHING_FILE}:rc=$rc) "
        echo $JOBNAME " File is nonexist(${MATCHING_FILE}:rc=$rc) "
        exit ${G_RTN_ERROR}
    fi

    # バインド変数を置き換える
    cat ${MATCHING_FILE} > ${MATCHING_QUERY_WORK}

    for bind in $2
    do
        bind_escape=`echo $bind | sed "s/\//\\\\\\\\\//g"`
        sed -i, -e 0,/#FILE#/s/#FILE#/$bind_escape/ ${MATCHING_QUERY_WORK}
    done

    export MATCHING_QUERY_WORK
}

#
#--- マッチング処理
#      p1：出力ファイルパス
#      p2：マッチングクエリファイルパス
#
EXEC_MATCHING()
{
    # 出力ファイルの初期化
    OUTFILE=$1
    cat /dev/null > ${OUTFILE}
    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

    # マッチング実行
    export ZTLOUTFILE=${OUTFILE}
    ${G_TOOLSH}/util/bin/ZTLMAT01 $2
    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：ＳＱＬ定義ファイル名
#       p2：バインド変数置換文字
EDIT_ULD_QUERY()
{
    SQL_FILE=$1
    SQL_WORK_FILE=${ULD_WORK_DIR}/${JOBNAME}_QUERY.tmp
    cat /dev/null > ${SQL_WORK_FILE}

    # SQL定義ファイルの編集
    if [ ! -r ${SQL_FILE} ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${SQL_FILE}:rc=$rc) "
        echo $JOBNAME " File is nonexist(${SQL_FILE}:rc=$rc) "
        exit ${G_RTN_ERROR}
    fi

    # バインド変数を置き換える
    cat ${SQL_FILE} > ${SQL_WORK_FILE}

    for bind in $2
    do
        sed -i, -e 0,/?/s/?/"'"$bind"'"/ ${SQL_WORK_FILE}
    done

    export SQL_WORK_FILE
}

#
#--- アンロード関数
#       p1：テーブル名／クエリファイル名
#       p2：出力ファイル名
EXEC_UNLOAD()
{
    # 出力ファイルの初期化
    cat /dev/null > $2
    rc=$?
    if [ $rc -ne 0 ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($2:rc=$rc) "
        echo $JOBNAME " File cat error($2:rc=$rc) "
        exit ${G_RTN_ERROR}
    fi

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

#
#--- ファイル定義
#
# 機器提供サービス契約(カレント)
COMULD2_KK0341_CUR=${MID_DIR_CC}/CCIFM025002.csv
# 機器提供サービス契約(全件)
COMULD2_KK0341_ALL=${MID_DIR_CC}/CCIFM025001.csv
# IT1-2021-0000082 MOD START
##機器オプションサービス契約(カレント)
#COMULD2_KK2811_CUR=${MID_DIR_CC}/CCIFM033002.csv
# 機器オプションサービス契約アンロードファイル
FILE_KK2811_CUR=${MID_DIR_KK}/${JOBNAME}_KK2811_CUR.csv
# IT1-2021-0000082 MOD END
#お客様(カレント)
COMULD2_CK0011_CUR=${MID_DIR_CC}/CCIFM019002.csv
# IT1-2021-0000082 MOD START
## 回線対象サービス契約(カレント)
#COMULD2_KK0241_CUR=${MID_DIR_CC}/CCIFM022002.csv
# 回線対象サービス契約(全件)
COMULD2_KK0241_ALL=${MID_DIR_CC}/CCIFM022001.csv
# 回線対象サービス契約対象ファイル
FILE_KK0241_CUR=${MID_DIR_KK}/${JOBNAME}_KK0241_CUR.csv
# IT1-2021-0000082 MOD END
# サービス契約(カレント)
COMULD2_KK0081_CUR=${MID_DIR_CC}/CCIFM020002.csv
# 課金先(全件)
COMULD2_KK0321_ALL=${MID_DIR_CC}/CCIFM024001.csv
# 業務パラメータ管理アンロードファイル(ルータ／ＶＡ付替開始日)
FILE_ZM0321_13_1=${MID_DIR_KK}/${JOBNAME}_ZM0321_13_1.csv
# 業務パラメータ管理アンロードファイル(5G/10G料金コース(ホーム/メゾン))
FILE_ZM0321_13_2=${MID_DIR_KK}/${JOBNAME}_ZM0321_13_2.csv
FILE_5G10G_PCRS_HTMZ=${MID_DIR_KK}/${JOBNAME}_5G10G_PCRS_HTMZ.csv
# 機器提供サービス契約ファイル(多)
FILE_KK0341_TKNRT=${MID_DIR_KK}/${JOBNAME}_KK0341_TKNRT.csv
# 機器提供サービス契約ファイル(BBR)
FILE_KK0341_BBR=${MID_DIR_KK}/${JOBNAME}_KK0341_BBR.csv
# 機器提供サービス契約ファイル(VA)
FILE_KK0341_VA=${MID_DIR_KK}/${JOBNAME}_KK0341_VA.csv
# 機器提供サービス契約一時ファイル(最小世代)
FILE_KK0341_ALL_SORT=${MID_DIR_KK}/${JOBNAME}_KK0341_ALL_SORT.csv
FILE_KK0341_MIN_TMP=${MID_DIR_KK}/${JOBNAME}_KK0341_MIN_TMP.csv
# 機器提供サービス契約ファイル(最小世代)
FILE_KK0341_MIN=${MID_DIR_KK}/${JOBNAME}_KK0341_MIN.csv
# 機器オプションサービス契約ファイル(RT)
FILE_KK2811_RTKN=${MID_DIR_KK}/${JOBNAME}_KK2811_RTKN.csv
# 機器オプションサービス契約ファイル(VA)
FILE_KK2811_VAKN=${MID_DIR_KK}/${JOBNAME}_KK2811_VAKN.csv
# サービス契約ファイル(NET)
FILE_KK0081_NET=${MID_DIR_KK}/${JOBNAME}_KK0081_NET.csv
# サービス契約ファイル(TEL)
FILE_KK0081_TEL=${MID_DIR_KK}/${JOBNAME}_KK0081_TEL.csv
# お客様対象ファイル(卸以外)
FILE_CK0011_OROSIGAI=${MID_DIR_KK}/${JOBNAME}_CK0011_OROSIGAI.csv
# 課金先対象ファイル
FILE_KK0321=${MID_DIR_KK}/${JOBNAME}_KK0321.csv
# 回線対象サービス契約ファイル(TEL)
FILE_KK0241_TEL=${MID_DIR_KK}/${JOBNAME}_KK0241_TEL.csv
# 付替対象ファイル
FILE_REPTG_1=${MID_DIR_KK}/${JOBNAME}_REPTG_1.csv
FILE_REPTG_2=${MID_DIR_KK}/${JOBNAME}_REPTG_2.csv
FILE_REPTG_3=${MID_DIR_KK}/${JOBNAME}_REPTG_3.csv
FILE_REPTG_4=${MID_DIR_KK}/${JOBNAME}_REPTG_4.csv
FILE_REPTG_5=${MID_DIR_KK}/${JOBNAME}_REPTG_5.csv
FILE_REPTG_6=${MID_DIR_KK}/${JOBNAME}_REPTG_6.csv
# ルータ／ＶＡ機器付替登録抽出ファイル
FILE_KKIFM926_TMP=${MID_DIR_KK}/KKIFM926_TMP.csv
FILE_KKIFM926_SORT=${MID_DIR_KK}/KKIFM926_SORT.csv
FILE_KKIFM926=${MID_DIR_KK}/KKIFM926.csv
# SQLファイル定義
SQLFILE_KK_U_ZM0321_13=${SQL_DIR}/KK_U_ZM0321_13.sql
# IT1-2021-0000082 ADD START
SQLFILE_CC_U_KK2811_04=${SQL_DIR}/CC_U_KK2811_04.sql
TMPSQLFILE_CC_U_KK2811_04=${SQL_DIR}/${JOBNAME}_CC_U_KK2811_04_tmp.sql
# IT1-2021-0000082 ADD END
# マッチングファイル定義
DEFFILE_KK_CM_0739=${G_TOOLSH}/util/def/KK_CM_0739.def
DEFFILE_KK_CM_0740=${G_TOOLSH}/util/def/KK_CM_0740.def
DEFFILE_KK_CM_0741=${G_TOOLSH}/util/def/KK_CM_0741.def
DEFFILE_KK_CM_0742=${G_TOOLSH}/util/def/KK_CM_0742.def
DEFFILE_KK_CM_0743=${G_TOOLSH}/util/def/KK_CM_0743.def
DEFFILE_KK_CM_0744=${G_TOOLSH}/util/def/KK_CM_0744.def
DEFFILE_KK_CM_0745=${G_TOOLSH}/util/def/KK_CM_0745.def

#
#--- 出力ファイルの初期化を行う
#
cat /dev/null > ${FILE_ZM0321_13_1}
cat /dev/null > ${FILE_ZM0321_13_2}
cat /dev/null > ${FILE_5G10G_PCRS_HTMZ}
cat /dev/null > ${FILE_KK0341_TKNRT}
cat /dev/null > ${FILE_KK0341_BBR}
cat /dev/null > ${FILE_KK0341_VA}
cat /dev/null > ${FILE_KK0341_ALL_SORT}
cat /dev/null > ${FILE_KK0341_MIN_TMP}
cat /dev/null > ${FILE_KK0341_MIN}
cat /dev/null > ${FILE_KK2811_RTKN}
cat /dev/null > ${FILE_KK2811_VAKN}
cat /dev/null > ${FILE_KK0081_NET}
cat /dev/null > ${FILE_KK0081_TEL}
cat /dev/null > ${FILE_CK0011_OROSIGAI}
cat /dev/null > ${FILE_KK0321}
cat /dev/null > ${FILE_KK0241_TEL}
cat /dev/null > ${FILE_REPTG_1}
cat /dev/null > ${FILE_REPTG_2}
cat /dev/null > ${FILE_REPTG_3}
cat /dev/null > ${FILE_REPTG_4}
cat /dev/null > ${FILE_REPTG_5}
cat /dev/null > ${FILE_REPTG_6}
cat /dev/null > ${FILE_KKIFM926_TMP}
cat /dev/null > ${FILE_KKIFM926_SORT}
cat /dev/null > ${FILE_KKIFM926}
# IT1-2021-0000082 ADD START
cat /dev/null > ${FILE_KK2811_CUR}
cat /dev/null > ${FILE_KK0241_CUR}
cat /dev/null > ${TMPSQLFILE_CC_U_KK2811_04}
# IT1-2021-0000082 ADD END

#
#--- 業務パラメータ管理のアンロードを行う(ルータ／ＶＡ付替開始日)
#
EDIT_ULD_QUERY ${SQLFILE_KK_U_ZM0321_13} "KK_RTVA_REP_STAYMD ${OPD} ${OPD}"
EXEC_UNLOAD ${SQL_WORK_FILE} ${FILE_ZM0321_13_1}

# 業務パラメータ設定値を変数.ルータ／ＶＡ付替開始日に格納する
RTVA_REP_STAYMD=`cat ${FILE_ZM0321_13_1} | sed -e 's/"//g'`

#
#--- 業務パラメータ管理のアンロードを行う(5G/10G料金コース(ホーム/メゾン))
#
EDIT_ULD_QUERY ${SQLFILE_KK_U_ZM0321_13} "KK_5G10G_PCRS_HTMZ ${OPD} ${OPD}"
EXEC_UNLOAD ${SQL_WORK_FILE} ${FILE_ZM0321_13_2}

# ダブルコーテーションを削除する
sed -e "s/\"//g" ${FILE_ZM0321_13_2} > ${FILE_5G10G_PCRS_HTMZ}
# カンマ区切りの業務パラメータ設定値を行に変換する
sed -i -e "s/,/\n/g" ${FILE_5G10G_PCRS_HTMZ}
# ダブルコーテーションを付与する
sed -i -e "s/,/\",\"/g" ${FILE_5G10G_PCRS_HTMZ}
sed -i -e "s/^/\"/" ${FILE_5G10G_PCRS_HTMZ}
sed -i -e "s/$/\"/" ${FILE_5G10G_PCRS_HTMZ}

# IT1-2021-0000082 ADD START
#
#--- 機器オプションサービス契約のアンロードを行う
#
sed s/ZZZZZ/${OPD}/g ${SQLFILE_CC_U_KK2811_04} > ${TMPSQLFILE_CC_U_KK2811_04}
EXEC_UNLOAD ${TMPSQLFILE_CC_U_KK2811_04} ${FILE_KK2811_CUR}

#
#--- 回線対象サービス契約(カレント)を抽出する
#    抽出条件
#        ・回線内訳使用開始年月日 <= バッチ運用日付
#        ・回線内訳使用終了年月日 >= バッチ運用日付
#
bsortex -copy -record recform=txtcsv \
    -input file=${COMULD2_KK0241_ALL} reclen=${ULD2_REC_LEN_KK0241} \
        include="2.8asc.le.'${OPD}'.and.3.8asc.ge.'${OPD}'" \
    -output file=${FILE_KK0241_CUR}

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME "KK0241 SORT Error($SVC sort:rc=$rc) "
    echo $JOBNAME "KK0241 SORT Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi
# IT1-2021-0000082 ADD END
#
#--- 機器提供サービス契約ファイル(多)を抽出する
#-   SELECT(reconst)項目は以下
#      0 - 0.12 機器提供サービス契約番号
#      1 -14.12 サービス契約回線内訳番号
#    抽出条件
#        ・機器提供サービス契約ステータス = "010"(受付済)
#        ・宅内機器種別コード = "R0"(多機能ルーター)
#
bsortex -copy -record recform=txtcsv \
    -input file=${COMULD2_KK0341_CUR} reclen=${ULD2_REC_LEN_KK0341} reconst="0.12,14.12" \
        include="2.3asc.eq.'010'.and.7.2asc.eq.'R0'" \
    -output file=${FILE_KK0341_TKNRT}

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

#
#--- 機器提供サービス契約ファイル(BBR)を抽出する
#-   SELECT(reconst)項目は以下
#      0 - 0.12 機器提供サービス契約番号
#      1 -12.10 サービス契約番号
#      2 - 4.3  料金コースコード
#    抽出条件
#        ・機器提供サービス契約ステータス NOT IN ("910"(解約済), "920"(キャンセル済))
#        ・宅内機器種別コード = "F0"(ルーター)
#
bsortex -copy -record recform=txtcsv \
    -input file=${COMULD2_KK0341_CUR} reclen=${ULD2_REC_LEN_KK0341} reconst="0.12,12.10,4.3" \
        include="2.3asc.ne.'910'.and.2.3asc.ne.'920'.and.7.2asc.eq.'F0'" \
    -output file=${FILE_KK0341_BBR}

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

#
#--- 機器提供サービス契約ファイル(VA)を抽出する
#-   SELECT(reconst)項目は以下
#      0 - 0.12 機器提供サービス契約番号
#      1 -12.10 サービス契約番号
#    抽出条件
#        ・機器提供サービス契約ステータス NOT IN ("910"(解約済), "920"(キャンセル済))
#        ・宅内機器種別コード = "50"(eo電話用VA)
#
bsortex -copy -record recform=txtcsv \
    -input file=${COMULD2_KK0341_CUR} reclen=${ULD2_REC_LEN_KK0341} reconst="0.12,12.10" \
        include="2.3asc.ne.'910'.and.2.3asc.ne.'920'.and.7.2asc.eq.'50'" \
    -output file=${FILE_KK0341_VA}

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

#
#--- 機器提供サービス契約一時ファイル(最小世代)を抽出する
#    - SELECT(reconst)項目は以下
#        0 - 0.12 機器提供サービス契約番号
#        1 - 1.17 世代登録年月日時分秒
#        2 -17.12 申込明細番号
#        3 -37.5  異動区分
#        4 -44.8  登録運用年月日
#        5 -50.40 登録処理ID
#    ソートキー
#        ・機器提供サービス契約番号(昇順)
#        ・世代登録年月日時分秒(降順)
#    抽出条件
#        ・予約適用コード = "2"(予約確定)
#        ・予約適用年月日 <= バッチ運用日付
#
bsortex \
    -sort key=0.12asc,1.17ascr -record recform=txtcsv \
    -input file=${COMULD2_KK0341_ALL} reclen=${ULD2_REC_LEN_KK0341} reconst="0.12,1.17,17.12,37.5,44.8,50.40" \
        include="19.1asc.eq.'2'.and.18.8asc.gt.' '.and.18.8asc.le.'${OPD}'" \
    -output file=${FILE_KK0341_ALL_SORT}

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

#
#--- 機器提供サービス契約番号毎の最小世代のレコードのみを残す
#
bsortex \
    -merge key=0.12asc -record recform=txtcsv \
    -input file=${FILE_KK0341_ALL_SORT} reclen=${ULD2_REC_LEN_KK0341} \
    -summary suppress last \
    -output file=${FILE_KK0341_MIN_TMP}

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

#
#--- 機器提供サービス契約ファイル(最小世代)を抽出する
#    抽出条件
#        ・登録処理ID IN ("FUW00114"(入力内容確認), "FUW00116"(お支払い方法確認), "FUW00927"(入力内容確認（量販・訪販）), "FUW00943"(アンケート（量販・訪販）), "KKW00115"(申込新規登録確認), "KKW00185"(照査前登録確認))
#        ・登録運用年月日 >= 変数.ルータ／ＶＡ付替開始日
#
bsortex -copy -record recform=txtcsv \
    -input file=${FILE_KK0341_MIN_TMP} reclen=${ULD2_REC_LEN_KK0341} \
        include="(5.40asc.eq.'FUW00114'.or.5.40asc.eq.'FUW00116'.or.5.40asc.eq.'FUW00927'.or.5.40asc.eq.'FUW00943'.or.5.40asc.eq.'KKW00115'.or.5.40asc.eq.'KKW00185').and.4.8asc.ge.'${RTVA_REP_STAYMD}'" \
    -output file=${FILE_KK0341_MIN}

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

#
#--- 機器オプションサービス契約ファイル(RT)を抽出する
#-   SELECT(reconst)項目は以下
#      0 - 0.12 機器オプションサービス契約番号
#      1 - 4.3  料金コースコード
#      2 - 6.12 機器提供サービス契約番号
#    抽出条件
#        ・機器オプションサービス契約ステータス = "010"(受付済)
#        ・機器オプションサービスコード = "G01"(ルーター機能)
#
# IT1-2021-0000082 MOD START
#bsortex -copy -record recform=txtcsv \
#    -input file=${COMULD2_KK2811_CUR} reclen=${ULD2_REC_LEN_KK2811} reconst="0.12,4.3,6.12" \
#        include="2.3asc.eq.'010'.and.3.3asc.eq.'G01'" \
#    -output file=${FILE_KK2811_RTKN}
bsortex -copy -record recform=txtcsv \
    -input file=${FILE_KK2811_CUR} reclen=${ULD2_REC_LEN_KK2811} reconst="0.12,4.3,6.12" \
        include="2.3asc.eq.'010'.and.3.3asc.eq.'G01'" \
    -output file=${FILE_KK2811_RTKN}
# IT1-2021-0000082 MOD END

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

#
#--- 機器オプションサービス契約ファイル(VA)を抽出する
#-   SELECT(reconst)項目は以下
#      0 - 0.12 機器オプションサービス契約番号
#      1 - 4.3  料金コースコード
#      2 - 6.12 機器提供サービス契約番号
#    抽出条件
#        ・機器オプションサービス契約ステータス = "010"(受付済)
#        ・機器オプションサービスコード = "G02"(電話アダプター機能)
#
# IT1-2021-0000082 MOD START
#bsortex -copy -record recform=txtcsv \
#    -input file=${COMULD2_KK2811_CUR} reclen=${ULD2_REC_LEN_KK2811} reconst="0.12,4.3,6.12" \
#        include="2.3asc.eq.'010'.and.3.3asc.eq.'G02'" \
#    -output file=${FILE_KK2811_VAKN}
bsortex -copy -record recform=txtcsv \
    -input file=${FILE_KK2811_CUR} reclen=${ULD2_REC_LEN_KK2811} reconst="0.12,4.3,6.12" \
        include="2.3asc.eq.'010'.and.3.3asc.eq.'G02'" \
    -output file=${FILE_KK2811_VAKN}
# IT1-2021-0000082 MOD END

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

#
#--- サービス契約ファイル(NET)を抽出する
#-   SELECT(reconst)項目は以下
#      0 - 0.10 サービス契約番号
#      1 - 3.10 SYSID
#      2 - 8.3  料金コースコード
#    抽出条件
#        ・サービス契約ステータス NOT IN ("910"(解約済), "920"(キャンセル済))
#        ・サービスコード = "01"(ネット)
#
bsortex -copy -record recform=txtcsv \
    -input file=${COMULD2_KK0081_CUR} reclen=${ULD2_REC_LEN_KK0081} reconst="0.10,3.10,8.3" \
        include="2.3asc.ne.'910'.and.2.3asc.ne.'920'.and.4.2asc.eq.'01'" \
    -output file=${FILE_KK0081_NET}

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

#
#--- サービス契約ファイル(TEL)を抽出する
#-   SELECT(reconst)項目は以下
#      0 - 0.10 サービス契約番号
#    抽出条件
#        ・サービス契約ステータス NOT IN ("910"(解約済), "920"(キャンセル済))
#        ・サービスコード = "02"(電話)
#
bsortex -copy -record recform=txtcsv \
    -input file=${COMULD2_KK0081_CUR} reclen=${ULD2_REC_LEN_KK0081} reconst="0.10" \
        include="2.3asc.ne.'910'.and.2.3asc.ne.'920'.and.4.2asc.eq.'02'" \
    -output file=${FILE_KK0081_TEL}

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

#
#--- お客様対象ファイル(卸以外)を抽出する
#-   SELECT(reconst)項目は以下
#      0 - 0.10 SYSID
#    抽出条件
#        ・卸先事業者コード = ""(空白)
#
bsortex -copy -record recform=txtcsv \
    -input file=${COMULD2_CK0011_CUR} reclen=${ULD2_REC_LEN_CK0011} reconst="0.10" \
        include="33.2ascb.eq.' '" \
    -output file=${FILE_CK0011_OROSIGAI}

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

#
#--- 課金先対象ファイルを抽出する
#-   SELECT(reconst)項目は以下
#      0 - 0.10 請求契約番号
#      1 - 1.10 サービス契約番号
#    抽出条件
#        ・サービス契約番号 <> ""(空白)
#        ・課金先適用開始年月日 <= バッチ運用日付
#        ・課金先適用終了年月日 >= バッチ運用日付
#
bsortex -copy -record recform=txtcsv \
    -input file=${COMULD2_KK0321_ALL} reclen=${ULD2_REC_LEN_KK0321} reconst="0.10,1.10" \
        include="1.10asc.gt.' '.and.8.8asc.le.'${OPD}'.and.9.8asc.ge.'${OPD}'" \
    -output file=${FILE_KK0321}

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

#
#--- 新規契約で登録された多機能ルーターを抽出する。
#
EDIT_MATCHING_QUERY ${DEFFILE_KK_CM_0739} "${FILE_KK0341_TKNRT} ${FILE_KK0341_MIN}"
EXEC_MATCHING ${FILE_REPTG_1} ${MATCHING_QUERY_WORK}

#
#--- 多機能ルーターが機器オプションサービス契約情報を抽出する。
#
EDIT_MATCHING_QUERY ${DEFFILE_KK_CM_0740} "${FILE_REPTG_1} ${FILE_KK2811_RTKN} ${FILE_KK2811_VAKN}"
EXEC_MATCHING ${FILE_REPTG_2} ${MATCHING_QUERY_WORK}

#
#--- 多機能ルーターが有線ルーター機能、またはVA機能(2番号)のデータを除外する。
#    抽出条件
#        ・RT機能_料金コースコード <> "G01"(有線ルーター機能)
#        ・VA機能_料金コースコード <> "G04"(電話アダプター機能(2番号))
#
bsortex -copy -record recform=txtcsv \
    -input file=${FILE_REPTG_2} reclen=95 \
        include="5.3asc.ne.'G01'.and.7.3asc.ne.'G04'" \
    -output file=${FILE_REPTG_3}

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

#
#--- ネットの料金コースが5G/10Gコースのデータを抽出する。
#
# IT1-2021-0000082 MOD START
#EDIT_MATCHING_QUERY ${DEFFILE_KK_CM_0741} "${FILE_REPTG_3} ${COMULD2_KK0241_CUR} ${FILE_KK0081_NET} ${FILE_5G10G_PCRS_HTMZ}"
EDIT_MATCHING_QUERY ${DEFFILE_KK_CM_0741} "${FILE_REPTG_3} ${FILE_KK0241_CUR} ${FILE_KK0081_NET} ${FILE_5G10G_PCRS_HTMZ}"
# IT1-2021-0000082 MOD END
EXEC_MATCHING ${FILE_REPTG_4} ${MATCHING_QUERY_WORK}

#
#--- お客様が卸契約以外のデータを抽出する。
#
EDIT_MATCHING_QUERY ${DEFFILE_KK_CM_0742} "${FILE_REPTG_4} ${FILE_CK0011_OROSIGAI}"
EXEC_MATCHING ${FILE_REPTG_5} ${MATCHING_QUERY_WORK}

#
#--- ネット契約の機器(BBR)情報および請求先情報を抽出する。
#
EDIT_MATCHING_QUERY ${DEFFILE_KK_CM_0743} "${FILE_REPTG_5} ${FILE_KK0341_BBR} ${FILE_KK0321}"
EXEC_MATCHING ${FILE_REPTG_6} ${MATCHING_QUERY_WORK}

#
#--- 回線対象サービス契約ファイル(TEL)を抽出する。
#
# IT1-2021-0000082 MOD START
#EDIT_MATCHING_QUERY ${DEFFILE_KK_CM_0744} "${COMULD2_KK0241_CUR} ${FILE_KK0081_TEL}"
EDIT_MATCHING_QUERY ${DEFFILE_KK_CM_0744} "${FILE_KK0241_CUR} ${FILE_KK0081_TEL}"
# IT1-2021-0000082 MOD END
EXEC_MATCHING ${FILE_KK0241_TEL} ${MATCHING_QUERY_WORK}

#
#--- 電話契約の機器(VA)情報および請求先情報を抽出する。
#
EDIT_MATCHING_QUERY ${DEFFILE_KK_CM_0745} "${FILE_REPTG_6} ${FILE_KK0241_TEL} ${FILE_KK0341_VA} ${FILE_KK0321}"
EXEC_MATCHING ${FILE_KKIFM926_TMP} ${MATCHING_QUERY_WORK}

#
#--- ルータ／ＶＡ機器付替登録抽出ファイルを抽出する
#    ソートキー
#        ・機器提供サービス契約番号(昇順)
#        ・NET_サービス契約番号(昇順)
#        ・TEL_サービス契約番号(昇順)
#
bsortex \
    -sort key=0.12asc,8.10asc,12.10asc -record recform=txtcsv \
    -input file=${FILE_KKIFM926_TMP} reclen=183 \
    -output file=${FILE_KKIFM926_SORT}

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

#
#--- 機器提供サービス契約番号毎の一番下のレコードのみを残す
#
bsortex \
    -merge key=0.12asc -record recform=txtcsv \
    -input file=${FILE_KKIFM926_SORT} reclen=183 \
    -summary suppress last \
    -output file=${FILE_KKIFM926}

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

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

P1="OPD=$OPD,"
P2="SVCCTL=JBSbatMultiServiceControl,"
P3="JOB=EO2IB0110J0,"
P4="IND1=KKIFM926.def,"
P5="INF1=${MID_DIR_KK}/KKIFM926.csv,"
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="
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

#
#--- 一時ファイルの削除を行う
#
rm -f ${FILE_ZM0321_13_1}
rm -f ${FILE_ZM0321_13_2}
rm -f ${FILE_5G10G_PCRS_HTMZ}
rm -f ${FILE_KK0341_TKNRT}
rm -f ${FILE_KK0341_BBR}
rm -f ${FILE_KK0341_VA}
rm -f ${FILE_KK0341_ALL_SORT}
rm -f ${FILE_KK0341_MIN_TMP}
rm -f ${FILE_KK0341_MIN}
rm -f ${FILE_KK2811_RTKN}
rm -f ${FILE_KK2811_VAKN}
rm -f ${FILE_KK0081_NET}
rm -f ${FILE_KK0081_TEL}
rm -f ${FILE_CK0011_OROSIGAI}
rm -f ${FILE_KK0321}
rm -f ${FILE_KK0241_TEL}
rm -f ${FILE_REPTG_1}
rm -f ${FILE_REPTG_2}
rm -f ${FILE_REPTG_3}
rm -f ${FILE_REPTG_4}
rm -f ${FILE_REPTG_5}
rm -f ${FILE_REPTG_6}
rm -f ${FILE_KKIFM926_TMP}
rm -f ${FILE_KKIFM926_SORT}
rm -f ${FILE_KKIFM926}
# IT1-2021-0000082 ADD START
rm -f ${FILE_KK2811_CUR}
rm -f ${FILE_KK0241_CUR}
rm -f ${TMPSQLFILE_CC_U_KK2811_04}
# IT1-2021-0000082 ADD END

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

exit $exit_rc
