#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約異動
#
# シェル名      ：電子交付同意変更対象データ抽出アンロード
#
# 機能          ：当日夜間バッチでサービス照査済みとなったサービスとお客様レコードを結合してレコードを出力する。
#
# コマンド形式  ：EO2IY0110J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v74.00.00      2025/3/18   FJ)柴田      【ANK-4651-00-00】量販・訪販Web導線の電子交付同意取り扱い方法変更
##############################################################

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

#
#---ツール格納場所
#
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

#
#--- マッチング処理
#      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
}


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

#
#--- ファイル定義
#
#サービス契約共通アンロード(カレント)
INFILE_KK0081=${MID_DIR_CC}/CCIFM020002.csv

#
#--- 存在チェックを行う
#
if [ ! -r $INFILE_KK0081 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($INFILE_KK0081) "
    echo $JOBNAME " File is nonexist($INFILE_KK0081) "
    exit ${G_RTN_ERROR}
fi

#お客様共通アンロード(カレント)
INFILE_CK0011=${MID_DIR_CC}/CCIFM019002.csv

#
#--- 存在チェックを行う
#

if [ ! -r $INFILE_CK0011 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($INFILE_CK0011) "
    echo $JOBNAME " File is nonexist($INFILE_CK0011) "
    exit ${G_RTN_ERROR}
fi

#出力ファイル
OUTFILE_KK0081=${MID_DIR_KK}/EO2IY0110J0_CCIFM020002.csv
OUTFILE_CK0011=${MID_DIR_KK}/EO2IY0110J0_CCIFM019002.csv

OUTFILE=${MID_DIR_KK}/KKIFM980.csv

#
#--- マッチングツール定義ファイル
#
MATCHDEFFILE1=${G_TOOLSH}/util/def/KK_CM_1063.def


#
#--- アンロードファイルのクリアを行う
#
cat /dev/null > $OUTFILE_KK0081
cat /dev/null > $OUTFILE_CK0011

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

#
#--- 2.サービス契約共通アンロードファイルの抽出・ソート
#　抽出条件
#	2.3 サービス契約ステータス：020,030,100,210
#	7.2 料金グループコード：02,03,04,10,11,12,13
#	37.1 照査解約完了コードが="1"
#	11.8 照査年月日＝夜間バッチ運用日
#　ソート
#	3.10　SYSID
#   0.10　サービス契約番号
#　抽出項目
#	0.10 サービス契約番号
#	3.10 SYSID
#	8.3 料金コースコード
bsortex -sort key=3.10asc,0.10asc -record recform=txtcsv \
        -input file=${INFILE_KK0081} reclen=${ULD2_REC_LEN_KK0081} \
        include="(2.3asc.eq.'020'.or.2.3asc.eq.'030'.or.2.3asc.eq.'100'.or.2.3asc.eq.'210').and.(7.2asc.eq.'02'.or.7.2asc.eq.'03'.or.7.2asc.eq.'04'.or.7.2asc.eq.'10'.or.7.2asc.eq.'11'.or.7.2asc.eq.'12'.or.7.2asc.eq.'13').and.(37.1asc.eq.'1').and.(11.8asc.eq.'${OPD}')" \
        -output file=${OUTFILE_KK0081} \
        reconst="0.10,3.10,8.3"
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${OUTFILE_KK0081}
fi


#
#--- 3.お客様共通アンロードファイルの抽出・ソート
#　抽出条件
#   33.2: お客様.卸先事業者コード = 空白
#　ソート
#	0.10 : SYSID
#　抽出項目
#   0.10 : SYSID
bsortex -sort key=0.10asc -record recform=txtcsv -input file=${INFILE_CK0011} reclen=${ULD2_REC_LEN_CK0011} \
        include="33.2asc.lt.' '" -output file=${OUTFILE_CK0011} \
        reconst="0.10"
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${OUTFILE_CK0011}
fi

#
# --- マッチング SYSIDを基準にマッチングする。
#
# アンロードをマッチング
export OUTFILE_KK0081
export OUTFILE_CK0011
#---マッチング処理でLeftjoinがNULL時に"を付けなくする（マッチング使用時は必須）
#export ZTLQUOTES=''
EXEC_MATCHING ${OUTFILE} ${MATCHDEFFILE1}

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

exit ${G_RTN_NORMAL}
