#!/bin/bash
##############################################################
# システム名       ：eo顧客基幹システム
#
# サブシステム名   : 顧客管理システム
#
# シェル名        ：EO2IC0120J0.sh
#
# 機能            ：eo光ネット、電話、テレビを新規申込した際に入力する電話番号（契約者電話番号、優先連絡先電話番号、回線場所電話番号を取得する。
#                  電話番号の取得は、申込、申込明細のアンロードファイルと共通アンロードファイル（サービス契約、お客様、連絡先、サービス契約回線内訳、回線対象サービス契約）とマッチングを行う。
# 
#
# コマンド形式     ：EO2IC0120J0.sh
#
# 実行環境        ：.../app/shl
#
# 終了ステータス  ：ゼロ以外異常
#
# 特記事項        ：特になし
#
# 変更履歴        ：変更日         変更者                  障害／仕様変更No.
# v56.00.00      2021/12/15      GDC) J.Hortilano        ANK-4170-00-00_eフロントの改善要望に関するeo顧客基幹SのAPI・画面連携変更対応(2022年1月下旬リリース)
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1


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

#
#---業務で必要な変数定義
#
OPEDATE=$RSLT_OPEDATE


#
#--- アンロード関数
#       p1：テーブル名／クエリファイル名
#       p2：出力ファイル名
#
EXEC_UNLOAD()
{
	#
	#--- SQLファイルの存在チェックを行う
	#
	if [ ! -r $1 ]
	then
		sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($1) "
		echo $JOBNAME " File is nonexist($1) "
		exit ${G_RTN_ERROR}
	fi
	
	#
	#--- アンロードファイルのクリアを行う
	#
	cat /dev/null > $2
	
	#
	#--- UNLOAD処理
	#
	sh ${G_TOOLSH}/EOKULD02.sh ${1} ${2} ${JOBNAME}
  
	rc=$?
	if [ $rc -ne 0 ]
	then
		sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " UNLOAD Error($1 unload:rc=$rc) " 
		echo $JOBNAME " UNLOAD Error($1 unload:rc=$rc) "
		exit ${G_RTN_ERROR}
	fi
}


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

# (1)見込顧客のアンロード
# (2) 見込顧客アンロードファイル出力
SQL_CK0281_01=${SQL_DIR}/KK_U_CK0281_01.sql
KKIFM935001=${MID_DIR_KK}/KKIFM935001.csv
cat /dev/null > ${KKIFM935001}
EXEC_UNLOAD ${SQL_CK0281_01} ${KKIFM935001}



# (3) 見込顧客アンロードファイルの絞り込み
# (4) 見込顧客更新対象アンロードファイル出力
KKIFM935002=${MID_DIR_KK}/KKIFM935002.csv
cat /dev/null > ${KKIFM935002}

bsortex \
     -copy \
     -record recform=txtcsv \
     -input file=${KKIFM935001} \
            reclen=90 \
            include="2.1asc.ne.'1'" \
     -output file=${KKIFM935002} 

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



# (5)入力ファイルと一致する電話番号をもつ見込顧客の算出
# 契約者電話番号でマッチング
DEF_KK_CM_1041=${G_TOOLSH}/util/def/KK_CM_1041.def
TMP_DEF_KK_CM_1041=${ULD_WORK_DIR}/${JOBNAME}.KK_CM_1041_TMP.def
KKIFM934001=${MID_DIR_KK}/KKIFM934001.csv
MATCH_KKIFM935003_1=${MID_DIR_KK}/${JOBNAME}.MATCH_KKIFM935003_1.csv

cat /dev/null > ${MATCH_KKIFM935003_1}

export ZTLTMPDIR=${ULD_WORK_DIR}
export ZTLOUTFILE=${MATCH_KKIFM935003_1}

#--- 定義ファイル環境変数設定処理
cat ${DEF_KK_CM_1041} > ${TMP_DEF_KK_CM_1041}
sed -i -e s@':KKIFM934001_CSV'@${KKIFM934001}@g ${TMP_DEF_KK_CM_1041}
sed -i -e s@':KKIFM935002_CSV'@${KKIFM935002}@g ${TMP_DEF_KK_CM_1041}

#--- ファイルマッチング処理
${G_TOOLSH}/util/bin/ZTLMAT01 ${TMP_DEF_KK_CM_1041}
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " ZTLMAT01 Error($TMP_DEF_KK_CM_1041 ZTLMAT01:rc=$rc) " 
    echo $JOBNAME " ZTLMAT01 Error($TMP_DEF_KK_CM_1041 ZTLMAT01:$rc) "
    exit ${G_RTN_ERROR}
fi


# 優先連絡先電話番号でマッチング
DEF_KK_CM_1042=${G_TOOLSH}/util/def/KK_CM_1042.def
TMP_DEF_KK_CM_1042=${ULD_WORK_DIR}/${JOBNAME}.KK_CM_1042_TMP.def
MATCH_KKIFM935003_2=${MID_DIR_KK}/${JOBNAME}.MATCH_KKIFM935003_2.csv

cat /dev/null > ${MATCH_KKIFM935003_2}

export ZTLTMPDIR=${ULD_WORK_DIR}
export ZTLOUTFILE=${MATCH_KKIFM935003_2}

#--- 定義ファイル環境変数設定処理
cat ${DEF_KK_CM_1042} > ${TMP_DEF_KK_CM_1042}
sed -i -e s@'KKIFM934001_CSV'@${KKIFM934001}@g ${TMP_DEF_KK_CM_1042}
sed -i -e s@'KKIFM935002_CSV'@${KKIFM935002}@g ${TMP_DEF_KK_CM_1042}

#--- ファイルマッチング処理
${G_TOOLSH}/util/bin/ZTLMAT01 ${TMP_DEF_KK_CM_1042}
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " ZTLMAT01 Error($TMP_DEF_KK_CM_1042 ZTLMAT01:rc=$rc) " 
    echo $JOBNAME " ZTLMAT01 Error($TMP_DEF_KK_CM_1042 ZTLMAT01:$rc) "
    exit ${G_RTN_ERROR}
fi


# 回線場所電話番号でマッチング
DEF_KK_CM_1043=${G_TOOLSH}/util/def/KK_CM_1043.def
TMP_DEF_KK_CM_1043=${ULD_WORK_DIR}/${JOBNAME}.KK_CM_1043_TMP.def
MATCH_KKIFM935003_3=${MID_DIR_KK}/${JOBNAME}.MATCH_KKIFM935003_3.csv

cat /dev/null > ${MATCH_KKIFM935003_3}

export ZTLTMPDIR=${ULD_WORK_DIR}
export ZTLOUTFILE=${MATCH_KKIFM935003_3}

#--- 定義ファイル環境変数設定処理
cat ${DEF_KK_CM_1043} > ${TMP_DEF_KK_CM_1043}
sed -i -e s@'KKIFM934001_CSV'@${KKIFM934001}@g ${TMP_DEF_KK_CM_1043}
sed -i -e s@'KKIFM935002_CSV'@${KKIFM935002}@g ${TMP_DEF_KK_CM_1043}

#--- ファイルマッチング処理
${G_TOOLSH}/util/bin/ZTLMAT01 ${TMP_DEF_KK_CM_1043}
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " ZTLMAT01 Error($TMP_DEF_KK_CM_1043 ZTLMAT01:rc=$rc) " 
    echo $JOBNAME " ZTLMAT01 Error($TMP_DEF_KK_CM_1043 ZTLMAT01:$rc) "
    exit ${G_RTN_ERROR}
fi


# マッチング結果のマージ
MATCH_KKIFM935003=${MID_DIR_KK}/${JOBNAME}.MATCH_KKIFM935003.csv
cat /dev/null > ${MATCH_KKIFM935003}

cat ${MATCH_KKIFM935003_1} ${MATCH_KKIFM935003_2} ${MATCH_KKIFM935003_3} > ${MATCH_KKIFM935003}


# (6) 見込顧客更新対象ファイルの絞り込み
# ＜ソートキー＞
SORT_KKIFM935003=${MID_DIR_KK}/${JOBNAME}.KKIFM935003_SORT_TMP.csv
cat /dev/null > ${SORT_KKIFM935003}

bsortex \
     -sort key=0.12asc \
     -record recform=txtcsv \
     -input file=${MATCH_KKIFM935003} \
            reclen=90 \
     -output file=${SORT_KKIFM935003} 

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

# ＜マージキー＞
# (7) 見込顧客更新対象ファイル出力
KKIFM935003=${MID_DIR_KK}/KKIFM935003.csv
cat /dev/null > ${KKIFM935003}

bsortex \
     -merge key=0.12asc  \
     -record recform=txtcsv \
     -input file=${SORT_KKIFM935003} \
            reclen=90 \
     -summary suppress last \
     -output file=${KKIFM935003} 

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



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

exit $exit_rc
