#!/bin/bash
##############################################################
# システム名         ：eo顧客基幹システム
#
# サブシステム名     : 顧客管理システム
#
# シェル名           ：EO61G0220J0.sh
#
# 機能              ：電話番号の取得は、申込、申込明細のアンロードファイルと共通アンロードファイル（サービス契約、お客様、連絡先、サービス契約回線内訳、回線対象サービス契約）とマッチングを行う
#
# コマンド形式       ：EO61G0220J0.sh
#
# 実行環境           ：.../app/shl
#
# 終了ステータス     ：ゼロ以外異常
#
# 特記事項           ：特になし
#
# 変更履歴           ：変更日         変更者                  障害／仕様変更No.
# vxx.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_KK0011_03=${SQL_DIR}/KK_U_KK0011_03.sql
ULD_KKIFM930=${MID_DIR_KK}/KKIFM930001.csv
EXEC_UNLOAD ${SQL_KK0011_03} ${ULD_KKIFM930}

# (3) 申込（全件）アンロードファイルの絞り込み
# ＜ソートキー＞
# ＜絞り込みの条件＞
SORT_KKIFM930=${MID_DIR_KK}/${JOBNAME}.KKIFM930_SORT_TMP.csv
cat /dev/null > ${SORT_KKIFM930}

bsortex \
     -sort key=0.12asc,5.17asc  \
     -record recform=txtcsv \
     -input file=${ULD_KKIFM930} \
            reclen=70 \
            include="6.1asc.eq.'0'" \
     -output file=${SORT_KKIFM930} 

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

# ＜マージキー＞
#(4) 申込（カレント）アンロードファイル出力
MERGE_KKIFM930002=${MID_DIR_KK}/KKIFM930002.csv
cat /dev/null > ${MERGE_KKIFM930002}

bsortex \
     -merge key=0.12asc  \
     -record recform=txtcsv \
     -input file=${SORT_KKIFM930} \
            reclen=70 \
     -summary suppress last \
     -output file=${MERGE_KKIFM930002} 

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


# (5) 申込（カレント）アンロードファイルの絞り込み
# (6) 申込（カレント）新規申込アンロードファイル出力
KKIFM930003=${MID_DIR_KK}/KKIFM930003.csv
cat /dev/null > ${KKIFM930003}

bsortex \
     -copy \
     -record recform=txtcsv \
     -input file=${MERGE_KKIFM930002} \
            reclen=70 \
            include="1.8asc.eq.'${OPEDATE}'.and.2.1asc.lt.' '.and.3.3asc.eq.'130'.and.4.5asc.eq.'00001'" \
     -output file=${KKIFM930003} 

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



# (7)申込明細（全件）のアンロード
# (8) 申込明細（全件）アンロードファイル出力
SQL_KK0021_10=${SQL_DIR}/KK_U_KK0021_10.sql
ULD_KKIFM931=${MID_DIR_KK}/KKIFM931001.csv
EXEC_UNLOAD ${SQL_KK0021_10} ${ULD_KKIFM931}


# (9) 申込明細（全件）アンロードファイルの絞り込み
# ＜ソートキー＞
# ＜絞り込みの条件＞
SORT_KKIFM931002=${MID_DIR_KK}/${JOBNAME}.KKIFM931002_SORT_TMP.csv
cat /dev/null > ${SORT_KKIFM931002}

bsortex \
     -sort key=1.12asc,2.17asc  \
     -record recform=txtcsv \
     -input file=${ULD_KKIFM931} \
            reclen=70 \
            include="3.1asc.eq.'0'" \
     -output file=${SORT_KKIFM931002} 

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

# ＜マージキー＞
# (10) 申込明細（カレント）アンロードファイル出力
KKIFM931002=${MID_DIR_KK}/KKIFM931002.csv
cat /dev/null > ${KKIFM931002}

bsortex \
     -merge key=1.12asc  \
     -record recform=txtcsv \
     -input file=${SORT_KKIFM931002} \
            reclen=70 \
     -summary suppress last \
     -output file=${KKIFM931002} 

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



# (11)共通アンロードファイル（サービス契約（カレント））の絞り込み
# (12) サービス契約（カレント）eo光アンロードファイル出力
CCIFM020002=${MID_DIR_CC}/CCIFM020002.csv
KKIFM932001=${MID_DIR_KK}/KKIFM932001.csv
cat /dev/null > ${KKIFM932001}

bsortex \
     -copy \
     -record recform=txtcsv \
     -input file=${CCIFM020002} \
            reclen=${ULD2_REC_LEN_KK0081} \
            include="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'" \
     -output file=${KKIFM932001} \
            reconst="0.10,3.10"

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



# (13)共通アンロードファイル（連絡先（カレント））の絞り込み
# (14) 連絡先（カレント）電話番号アンロードファイル出力
CCIFM037002=${MID_DIR_CC}/CCIFM037002.csv
KKIFM933001=${MID_DIR_KK}/KKIFM933001.csv
cat /dev/null > ${KKIFM933001}

bsortex \
     -copy \
     -record recform=txtcsv \
     -input file=${CCIFM037002} \
            reclen=${ULD2_REC_LEN_CK0201} \
            include="3.3asc.eq.'003'.and.4.1asc.eq.'2'.and.12.1asc.eq.'0'" \
     -output file=${KKIFM933001} \
            reconst="2.10,6.12"

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


# (15)「契約者電話番号」「電話番号」「回線場所電話番号」の算出
DEF_KK_CM_1041=${G_TOOLSH}/util/def/KK_CM_1040.def
TMP_DEF_KK_CM_1040=${ULD_WORK_DIR}/${JOBNAME}.KK_CM_1040_TMP.def
CCIFM020001=${MID_DIR_CC}/CCIFM020001.csv
CCIFM019002=${MID_DIR_CC}/CCIFM019002.csv
CCIFM023002=${MID_DIR_CC}/CCIFM023002.csv
CCIFM022002=${MID_DIR_CC}/CCIFM022002.csv
MATCH_KKIFM934001=${MID_DIR_KK}/${JOBNAME}.MATCH_KKIFM934001.csv

cat /dev/null > ${MATCH_KKIFM934001}

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

#--- 定義ファイル環境変数設定処理
cat ${DEF_KK_CM_1041} > ${TMP_DEF_KK_CM_1040}
sed -i -e s@':KKIFM930003_CSV'@${KKIFM930003}@g ${TMP_DEF_KK_CM_1040}
sed -i -e s@':KKIFM931002_CSV'@${KKIFM931002}@g ${TMP_DEF_KK_CM_1040}
sed -i -e s@':CCIFM020001_CSV'@${CCIFM020001}@g ${TMP_DEF_KK_CM_1040}
sed -i -e s@':KKIFM932001_CSV'@${KKIFM932001}@g ${TMP_DEF_KK_CM_1040}
sed -i -e s@':CCIFM019002_CSV'@${CCIFM019002}@g ${TMP_DEF_KK_CM_1040}
sed -i -e s@':KKIFM933001_CSV'@${KKIFM933001}@g ${TMP_DEF_KK_CM_1040}
sed -i -e s@':CCIFM022002_CSV'@${CCIFM022002}@g ${TMP_DEF_KK_CM_1040}
sed -i -e s@':CCIFM023002_CSV'@${CCIFM023002}@g ${TMP_DEF_KK_CM_1040}

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


# (16) eo光新規申込時電話番号ファイルの絞り込み
# ＜ソートキー＞
SORT_KKIFM934001=${MID_DIR_KK}/${JOBNAME}.KKIFM934001_SORT_TMP.csv
cat /dev/null > ${SORT_KKIFM934001}

bsortex \
     -sort key=0.11asc,1.12asc,2.11asc  \
     -record recform=txtcsv \
     -input file=${MATCH_KKIFM934001} \
            reclen=50 \
     -output file=${SORT_KKIFM934001} 

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

# ＜マージキー＞
KKIFM934001=${MID_DIR_KK}/KKIFM934001.csv
cat /dev/null > ${KKIFM934001}

bsortex \
     -merge key=0.11asc,1.12asc,2.11asc  \
     -record recform=txtcsv \
     -input file=${SORT_KKIFM934001} \
            reclen=70 \
     -summary suppress last \
     -output file=${KKIFM934001} 

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



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

exit $exit_rc
